geeto 0.1.0-beta.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 (203) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +152 -0
  3. package/lib/api/copilot-adapter.d.ts +11 -0
  4. package/lib/api/copilot-adapter.d.ts.map +1 -0
  5. package/lib/api/copilot-adapter.js +41 -0
  6. package/lib/api/copilot-adapter.js.map +1 -0
  7. package/lib/api/copilot-sdk.d.ts +48 -0
  8. package/lib/api/copilot-sdk.d.ts.map +1 -0
  9. package/lib/api/copilot-sdk.js +451 -0
  10. package/lib/api/copilot-sdk.js.map +1 -0
  11. package/lib/api/copilot.d.ts +21 -0
  12. package/lib/api/copilot.d.ts.map +1 -0
  13. package/lib/api/copilot.js +87 -0
  14. package/lib/api/copilot.js.map +1 -0
  15. package/lib/api/gemini-sdk.d.ts +24 -0
  16. package/lib/api/gemini-sdk.d.ts.map +1 -0
  17. package/lib/api/gemini-sdk.js +245 -0
  18. package/lib/api/gemini-sdk.js.map +1 -0
  19. package/lib/api/gemini.d.ts +21 -0
  20. package/lib/api/gemini.d.ts.map +1 -0
  21. package/lib/api/gemini.js +87 -0
  22. package/lib/api/gemini.js.map +1 -0
  23. package/lib/api/openrouter-sdk.d.ts +58 -0
  24. package/lib/api/openrouter-sdk.d.ts.map +1 -0
  25. package/lib/api/openrouter-sdk.js +341 -0
  26. package/lib/api/openrouter-sdk.js.map +1 -0
  27. package/lib/api/openrouter.d.ts +17 -0
  28. package/lib/api/openrouter.d.ts.map +1 -0
  29. package/lib/api/openrouter.js +111 -0
  30. package/lib/api/openrouter.js.map +1 -0
  31. package/lib/api/trello.d.ts +17 -0
  32. package/lib/api/trello.d.ts.map +1 -0
  33. package/lib/api/trello.js +72 -0
  34. package/lib/api/trello.js.map +1 -0
  35. package/lib/cli/input.d.ts +39 -0
  36. package/lib/cli/input.d.ts.map +1 -0
  37. package/lib/cli/input.js +119 -0
  38. package/lib/cli/input.js.map +1 -0
  39. package/lib/cli/menu.d.ts +9 -0
  40. package/lib/cli/menu.d.ts.map +1 -0
  41. package/lib/cli/menu.js +201 -0
  42. package/lib/cli/menu.js.map +1 -0
  43. package/lib/core/constants.d.ts +22 -0
  44. package/lib/core/constants.d.ts.map +1 -0
  45. package/lib/core/constants.js +24 -0
  46. package/lib/core/constants.js.map +1 -0
  47. package/lib/core/copilot-setup.d.ts +13 -0
  48. package/lib/core/copilot-setup.d.ts.map +1 -0
  49. package/lib/core/copilot-setup.js +447 -0
  50. package/lib/core/copilot-setup.js.map +1 -0
  51. package/lib/core/gemini-setup.d.ts +8 -0
  52. package/lib/core/gemini-setup.d.ts.map +1 -0
  53. package/lib/core/gemini-setup.js +84 -0
  54. package/lib/core/gemini-setup.js.map +1 -0
  55. package/lib/core/menu-constants.d.ts +24 -0
  56. package/lib/core/menu-constants.d.ts.map +1 -0
  57. package/lib/core/menu-constants.js +22 -0
  58. package/lib/core/menu-constants.js.map +1 -0
  59. package/lib/core/openrouter-setup.d.ts +8 -0
  60. package/lib/core/openrouter-setup.d.ts.map +1 -0
  61. package/lib/core/openrouter-setup.js +73 -0
  62. package/lib/core/openrouter-setup.js.map +1 -0
  63. package/lib/core/setup.d.ts +21 -0
  64. package/lib/core/setup.d.ts.map +1 -0
  65. package/lib/core/setup.js +88 -0
  66. package/lib/core/setup.js.map +1 -0
  67. package/lib/core/trello-setup.d.ts +8 -0
  68. package/lib/core/trello-setup.d.ts.map +1 -0
  69. package/lib/core/trello-setup.js +107 -0
  70. package/lib/core/trello-setup.js.map +1 -0
  71. package/lib/index.d.ts +3 -0
  72. package/lib/index.d.ts.map +1 -0
  73. package/lib/index.js +250 -0
  74. package/lib/index.js.map +1 -0
  75. package/lib/types/index.d.ts +78 -0
  76. package/lib/types/index.d.ts.map +1 -0
  77. package/lib/types/index.js +2 -0
  78. package/lib/types/index.js.map +1 -0
  79. package/lib/utils/branch-naming.d.ts +11 -0
  80. package/lib/utils/branch-naming.d.ts.map +1 -0
  81. package/lib/utils/branch-naming.js +396 -0
  82. package/lib/utils/branch-naming.js.map +1 -0
  83. package/lib/utils/colors.d.ts +14 -0
  84. package/lib/utils/colors.d.ts.map +1 -0
  85. package/lib/utils/colors.js +14 -0
  86. package/lib/utils/colors.js.map +1 -0
  87. package/lib/utils/commit-helpers.d.ts +53 -0
  88. package/lib/utils/commit-helpers.d.ts.map +1 -0
  89. package/lib/utils/commit-helpers.js +177 -0
  90. package/lib/utils/commit-helpers.js.map +1 -0
  91. package/lib/utils/config.d.ts +87 -0
  92. package/lib/utils/config.d.ts.map +1 -0
  93. package/lib/utils/config.js +326 -0
  94. package/lib/utils/config.js.map +1 -0
  95. package/lib/utils/display.d.ts +27 -0
  96. package/lib/utils/display.d.ts.map +1 -0
  97. package/lib/utils/display.js +116 -0
  98. package/lib/utils/display.js.map +1 -0
  99. package/lib/utils/error-helpers.d.ts +27 -0
  100. package/lib/utils/error-helpers.d.ts.map +1 -0
  101. package/lib/utils/error-helpers.js +102 -0
  102. package/lib/utils/error-helpers.js.map +1 -0
  103. package/lib/utils/exec.d.ts +18 -0
  104. package/lib/utils/exec.d.ts.map +1 -0
  105. package/lib/utils/exec.js +96 -0
  106. package/lib/utils/exec.js.map +1 -0
  107. package/lib/utils/git-ai-errors.d.ts +10 -0
  108. package/lib/utils/git-ai-errors.d.ts.map +1 -0
  109. package/lib/utils/git-ai-errors.js +71 -0
  110. package/lib/utils/git-ai-errors.js.map +1 -0
  111. package/lib/utils/git-ai.d.ts +26 -0
  112. package/lib/utils/git-ai.d.ts.map +1 -0
  113. package/lib/utils/git-ai.js +603 -0
  114. package/lib/utils/git-ai.js.map +1 -0
  115. package/lib/utils/git-commands.d.ts +21 -0
  116. package/lib/utils/git-commands.d.ts.map +1 -0
  117. package/lib/utils/git-commands.js +58 -0
  118. package/lib/utils/git-commands.js.map +1 -0
  119. package/lib/utils/git-errors.d.ts +76 -0
  120. package/lib/utils/git-errors.d.ts.map +1 -0
  121. package/lib/utils/git-errors.js +565 -0
  122. package/lib/utils/git-errors.js.map +1 -0
  123. package/lib/utils/git.d.ts +61 -0
  124. package/lib/utils/git.d.ts.map +1 -0
  125. package/lib/utils/git.js +245 -0
  126. package/lib/utils/git.js.map +1 -0
  127. package/lib/utils/logging.d.ts +25 -0
  128. package/lib/utils/logging.d.ts.map +1 -0
  129. package/lib/utils/logging.js +71 -0
  130. package/lib/utils/logging.js.map +1 -0
  131. package/lib/utils/menu-builders.d.ts +47 -0
  132. package/lib/utils/menu-builders.d.ts.map +1 -0
  133. package/lib/utils/menu-builders.js +34 -0
  134. package/lib/utils/menu-builders.js.map +1 -0
  135. package/lib/utils/platform.d.ts +13 -0
  136. package/lib/utils/platform.d.ts.map +1 -0
  137. package/lib/utils/platform.js +32 -0
  138. package/lib/utils/platform.js.map +1 -0
  139. package/lib/utils/spinner-wrapper.d.ts +16 -0
  140. package/lib/utils/spinner-wrapper.d.ts.map +1 -0
  141. package/lib/utils/spinner-wrapper.js +56 -0
  142. package/lib/utils/spinner-wrapper.js.map +1 -0
  143. package/lib/utils/state.d.ts +22 -0
  144. package/lib/utils/state.d.ts.map +1 -0
  145. package/lib/utils/state.js +75 -0
  146. package/lib/utils/state.js.map +1 -0
  147. package/lib/utils/time.d.ts +4 -0
  148. package/lib/utils/time.d.ts.map +1 -0
  149. package/lib/utils/time.js +29 -0
  150. package/lib/utils/time.js.map +1 -0
  151. package/lib/utils/type-guards.d.ts +10 -0
  152. package/lib/utils/type-guards.d.ts.map +1 -0
  153. package/lib/utils/type-guards.js +29 -0
  154. package/lib/utils/type-guards.js.map +1 -0
  155. package/lib/workflows/ai-provider.d.ts +13 -0
  156. package/lib/workflows/ai-provider.d.ts.map +1 -0
  157. package/lib/workflows/ai-provider.js +55 -0
  158. package/lib/workflows/ai-provider.js.map +1 -0
  159. package/lib/workflows/author.d.ts +4 -0
  160. package/lib/workflows/author.d.ts.map +1 -0
  161. package/lib/workflows/author.js +80 -0
  162. package/lib/workflows/author.js.map +1 -0
  163. package/lib/workflows/branch-helpers.d.ts +9 -0
  164. package/lib/workflows/branch-helpers.d.ts.map +1 -0
  165. package/lib/workflows/branch-helpers.js +406 -0
  166. package/lib/workflows/branch-helpers.js.map +1 -0
  167. package/lib/workflows/branch-utils.d.ts +9 -0
  168. package/lib/workflows/branch-utils.d.ts.map +1 -0
  169. package/lib/workflows/branch-utils.js +61 -0
  170. package/lib/workflows/branch-utils.js.map +1 -0
  171. package/lib/workflows/branch.d.ts +12 -0
  172. package/lib/workflows/branch.d.ts.map +1 -0
  173. package/lib/workflows/branch.js +555 -0
  174. package/lib/workflows/branch.js.map +1 -0
  175. package/lib/workflows/cleanup.d.ts +10 -0
  176. package/lib/workflows/cleanup.d.ts.map +1 -0
  177. package/lib/workflows/cleanup.js +287 -0
  178. package/lib/workflows/cleanup.js.map +1 -0
  179. package/lib/workflows/commit.d.ts +10 -0
  180. package/lib/workflows/commit.d.ts.map +1 -0
  181. package/lib/workflows/commit.js +771 -0
  182. package/lib/workflows/commit.js.map +1 -0
  183. package/lib/workflows/main-steps.d.ts +12 -0
  184. package/lib/workflows/main-steps.d.ts.map +1 -0
  185. package/lib/workflows/main-steps.js +407 -0
  186. package/lib/workflows/main-steps.js.map +1 -0
  187. package/lib/workflows/main.d.ts +8 -0
  188. package/lib/workflows/main.d.ts.map +1 -0
  189. package/lib/workflows/main.js +720 -0
  190. package/lib/workflows/main.js.map +1 -0
  191. package/lib/workflows/security-gate.d.ts +8 -0
  192. package/lib/workflows/security-gate.d.ts.map +1 -0
  193. package/lib/workflows/security-gate.js +447 -0
  194. package/lib/workflows/security-gate.js.map +1 -0
  195. package/lib/workflows/settings.d.ts +15 -0
  196. package/lib/workflows/settings.d.ts.map +1 -0
  197. package/lib/workflows/settings.js +438 -0
  198. package/lib/workflows/settings.js.map +1 -0
  199. package/lib/workflows/trello-menu.d.ts +16 -0
  200. package/lib/workflows/trello-menu.d.ts.map +1 -0
  201. package/lib/workflows/trello-menu.js +361 -0
  202. package/lib/workflows/trello-menu.js.map +1 -0
  203. package/package.json +112 -0
@@ -0,0 +1,73 @@
1
+ /**
2
+ * OpenRouter integration setup
3
+ */
4
+ import fs from 'node:fs';
5
+ import { askQuestion, confirm } from '../cli/input.js';
6
+ import { ensureGeetoIgnored, getOpenRouterConfigPath } from '../utils/config.js';
7
+ import { log } from '../utils/logging.js';
8
+ /**
9
+ * Setup OpenRouter config interactively
10
+ */
11
+ export const setupOpenRouterConfigInteractive = () => {
12
+ const configPath = getOpenRouterConfigPath();
13
+ // If config already exists, nothing to do
14
+ try {
15
+ if (fs.existsSync(configPath)) {
16
+ log.success('OpenRouter API configuration is ready!');
17
+ return true;
18
+ }
19
+ }
20
+ catch {
21
+ // fall through to interactive setup
22
+ }
23
+ log.info('OpenRouter integration is not configured for this project.\n');
24
+ log.info('OpenRouter provides access to various AI models through a single API key.');
25
+ log.info('Some models are free, while others may require credits from your OpenRouter account.');
26
+ log.info('Note: Even models marked as "free" may require account verification or limited credits.');
27
+ log.info('Supported models include: Llama, Mistral, Gemma, WizardLM, and many more.');
28
+ log.info('You need an OpenRouter API key to use this service.');
29
+ log.info('Visit https://openrouter.ai/ to create an account and get your API key.\n');
30
+ log.info(`The OpenRouter API key will be saved to: ${getOpenRouterConfigPath()}`);
31
+ const shouldSetup = confirm('Setup OpenRouter integration now?');
32
+ if (!shouldSetup) {
33
+ return false;
34
+ }
35
+ if (process.stdin.isTTY) {
36
+ process.stdin.setRawMode(false);
37
+ }
38
+ const openrouterKey = askQuestion('Enter OpenRouter API Key: ').trim();
39
+ if (!openrouterKey) {
40
+ log.warn('No API key provided. OpenRouter setup cancelled.');
41
+ return false;
42
+ }
43
+ const path = getOpenRouterConfigPath();
44
+ const configDir = path.slice(0, path.lastIndexOf('/'));
45
+ // Ensure .geeto is in .gitignore
46
+ ensureGeetoIgnored();
47
+ try {
48
+ if (!fs.existsSync(configDir)) {
49
+ fs.mkdirSync(configDir, { recursive: true });
50
+ log.success(`Created config directory: ${configDir}`);
51
+ }
52
+ }
53
+ catch (error) {
54
+ log.error(`Failed to create config directory: ${error.message}`);
55
+ return false;
56
+ }
57
+ const configContent = `# Geeto OpenRouter Configuration
58
+ # Generated on ${new Date().toISOString()}
59
+ # API key for OpenRouter (access to multiple free AI models)
60
+
61
+ openrouter_api_key = "${openrouterKey}"
62
+ `;
63
+ try {
64
+ fs.writeFileSync(path, configContent, 'utf8');
65
+ log.success(`OpenRouter config saved to: ${path}`);
66
+ return true;
67
+ }
68
+ catch (error) {
69
+ log.error(`Failed to save config: ${error.message}`);
70
+ return false;
71
+ }
72
+ };
73
+ //# sourceMappingURL=openrouter-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openrouter-setup.js","sourceRoot":"","sources":["../../src/core/openrouter-setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Check and setup gemini API + API key
3
+ */
4
+ export declare const ensureGemini: () => Promise<boolean>;
5
+ /**
6
+ * Check and setup GitHub Copilot CLI
7
+ */
8
+ export declare const ensureGitHubCopilot: () => Promise<boolean>;
9
+ /**
10
+ * Check and setup OpenRouter API key
11
+ */
12
+ export declare const ensureOpenRouter: () => Promise<boolean>;
13
+ /**
14
+ * Export Trello setup instructions
15
+ */
16
+ export declare const setupTrelloConfig: () => void;
17
+ /**
18
+ * Unified AI provider setup function
19
+ */
20
+ export declare const ensureAIProvider: (aiProvider: "gemini" | "copilot" | "openrouter") => Promise<boolean>;
21
+ //# sourceMappingURL=setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/core/setup.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,eAAO,MAAM,YAAY,QAAa,OAAO,CAAC,OAAO,CAcpD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAAa,OAAO,CAAC,OAAO,CAc3D,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAa,OAAO,CAAC,OAAO,CAYxD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,QAAO,IAapC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAC3B,YAAY,QAAQ,GAAG,SAAS,GAAG,YAAY,KAC9C,OAAO,CAAC,OAAO,CAgBjB,CAAA"}
@@ -0,0 +1,88 @@
1
+ import { log } from '../utils/logging.js';
2
+ /**
3
+ * Check and setup gemini API + API key
4
+ */
5
+ export const ensureGemini = async () => {
6
+ // Delegate interactive setup to dedicated file
7
+ try {
8
+ const mod = await import('./gemini-setup.js');
9
+ if (typeof mod.setupGeminiConfigInteractive === 'function') {
10
+ return mod.setupGeminiConfigInteractive();
11
+ }
12
+ }
13
+ catch {
14
+ log.warn('Gemini setup helper not available; please run setup manually or ensure gemini-setup is present');
15
+ }
16
+ return false;
17
+ };
18
+ /**
19
+ * Check and setup GitHub Copilot CLI
20
+ */
21
+ export const ensureGitHubCopilot = async () => {
22
+ try {
23
+ const mod = await import('./copilot-setup.js');
24
+ if (typeof mod.setupGitHubCopilotInteractive === 'function') {
25
+ return mod.setupGitHubCopilotInteractive();
26
+ }
27
+ }
28
+ catch {
29
+ log.warn('Copilot setup helper not available, falling back to inline setup');
30
+ }
31
+ // Fallback: cannot perform interactive setup because helper is missing
32
+ log.warn('Unable to run Copilot setup helper.');
33
+ log.info('Authenticate: copilot auth');
34
+ return false;
35
+ };
36
+ /**
37
+ * Check and setup OpenRouter API key
38
+ */
39
+ export const ensureOpenRouter = async () => {
40
+ try {
41
+ const mod = await import('./openrouter-setup.js');
42
+ if (typeof mod.setupOpenRouterConfigInteractive === 'function') {
43
+ return mod.setupOpenRouterConfigInteractive();
44
+ }
45
+ }
46
+ catch {
47
+ log.warn('OpenRouter setup helper not available; please run setup manually or ensure openrouter-setup is present');
48
+ }
49
+ return true;
50
+ };
51
+ /**
52
+ * Export Trello setup instructions
53
+ */
54
+ export const setupTrelloConfig = () => {
55
+ log.info('Trello integration is not configured.');
56
+ log.info('To enable Trello integration, create a config file at:');
57
+ log.info(' .geeto/trello.toml');
58
+ log.info('');
59
+ log.info('With the following content:');
60
+ log.info(' api_key = "YOUR_TRELLO_API_KEY"');
61
+ log.info(' token = "YOUR_TRELLO_TOKEN"');
62
+ log.info(' board_id = "YOUR_TRELLO_BOARD_ID"');
63
+ log.info('');
64
+ log.info('Get your API key from: https://trello.com/app-key');
65
+ log.info('Generate a token by clicking the "Token" link on that page');
66
+ log.info('Find your board ID in the board URL: trello.com/b/{BOARD_ID}/');
67
+ };
68
+ /**
69
+ * Unified AI provider setup function
70
+ */
71
+ export const ensureAIProvider = async (aiProvider) => {
72
+ switch (aiProvider) {
73
+ case 'gemini': {
74
+ return ensureGemini();
75
+ }
76
+ case 'copilot': {
77
+ return ensureGitHubCopilot();
78
+ }
79
+ case 'openrouter': {
80
+ return ensureOpenRouter();
81
+ }
82
+ default: {
83
+ log.error(`Unknown AI provider: ${aiProvider}`);
84
+ return false;
85
+ }
86
+ }
87
+ };
88
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/core/setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Trello integration setup
3
+ */
4
+ /**
5
+ * Setup Trello config interactively
6
+ */
7
+ export declare const setupTrelloConfigInteractive: () => boolean;
8
+ //# sourceMappingURL=trello-setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trello-setup.d.ts","sourceRoot":"","sources":["../../src/core/trello-setup.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH;;GAEG;AACH,eAAO,MAAM,4BAA4B,QAAO,OAqG/C,CAAA"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Trello integration setup
3
+ */
4
+ import fs from 'node:fs';
5
+ import { askQuestion, confirm } from '../cli/input.js';
6
+ import { ensureGeetoIgnored, getTrelloConfigPath, setSkipTrelloPrompt } from '../utils/config.js';
7
+ import { exec } from '../utils/exec.js';
8
+ import { log } from '../utils/logging.js';
9
+ /**
10
+ * Setup Trello config interactively
11
+ */
12
+ export const setupTrelloConfigInteractive = () => {
13
+ log.info('Trello integration is not configured for this project.\n');
14
+ log.info('To enable Trello task linking, you need:');
15
+ log.info(' 1. API Key from: https://trello.com/app-key');
16
+ log.info(' 2. Token (we will generate URL for you)');
17
+ log.info(' 3. Board ID (from board URL: trello.com/b/{BOARD_ID}/)\n');
18
+ const shouldSetup = confirm('Setup Trello integration now?');
19
+ if (!shouldSetup) {
20
+ // Remember the user declined so we don't prompt again automatically
21
+ try {
22
+ setSkipTrelloPrompt(true);
23
+ }
24
+ catch {
25
+ /* ignore */
26
+ }
27
+ return false;
28
+ }
29
+ if (process.stdin.isTTY) {
30
+ process.stdin.setRawMode(false);
31
+ }
32
+ const apiKey = askQuestion('Enter Trello API Key: ').trim();
33
+ if (!apiKey) {
34
+ log.error('API Key is required');
35
+ return false;
36
+ }
37
+ const tokenUrl = `https://trello.com/1/authorize?expiration=never&name=Geeto&scope=read,write&response_type=token&key=${apiKey}`;
38
+ log.info(`Open this URL to get your token:`);
39
+ log.info(`${tokenUrl}\n`);
40
+ // Offer to open the token URL in the user's default browser
41
+ const openNow = confirm('Open authorization URL in your browser now?');
42
+ if (openNow) {
43
+ try {
44
+ const platform = process.platform;
45
+ let openCmd = 'xdg-open';
46
+ if (platform === 'darwin')
47
+ openCmd = 'open';
48
+ else if (platform === 'win32')
49
+ openCmd = 'start ""';
50
+ try {
51
+ // Try to open the URL; ignore output
52
+ exec(`${openCmd} "${tokenUrl}"`, true);
53
+ log.success('Opened authorization URL in your browser');
54
+ }
55
+ catch {
56
+ // Best-effort: if opening fails, fall back to instructing the user to open manually
57
+ log.warn('Could not open browser automatically—please open the URL above manually');
58
+ }
59
+ }
60
+ catch {
61
+ // ignore
62
+ }
63
+ }
64
+ const token = askQuestion('Enter Trello Token (after authorizing): ').trim();
65
+ if (!token) {
66
+ log.error('Token is required');
67
+ return false;
68
+ }
69
+ const boardId = askQuestion('Enter Trello Board ID: ').trim();
70
+ if (!boardId) {
71
+ log.error('Board ID is required');
72
+ return false;
73
+ }
74
+ const path = getTrelloConfigPath();
75
+ const configDir = path.slice(0, path.lastIndexOf('/'));
76
+ // Ensure .geeto is in .gitignore
77
+ ensureGeetoIgnored();
78
+ try {
79
+ if (!fs.existsSync(configDir)) {
80
+ fs.mkdirSync(configDir, { recursive: true });
81
+ log.success(`Created config directory: ${configDir}`);
82
+ }
83
+ }
84
+ catch (error) {
85
+ const msg = error instanceof Error ? error.message : String(error);
86
+ log.error(`Failed to create config directory: ${msg}`);
87
+ return false;
88
+ }
89
+ const configContent = `# Geeto Trello Configuration
90
+ # Generated on ${new Date().toISOString()}
91
+
92
+ api_key = "${apiKey}"
93
+ token = "${token}"
94
+ board_id = "${boardId}"
95
+ `;
96
+ try {
97
+ fs.writeFileSync(path, configContent, 'utf8');
98
+ log.success(`Trello config saved to: ${path}`);
99
+ return true;
100
+ }
101
+ catch (error) {
102
+ const msg = error instanceof Error ? error.message : String(error);
103
+ log.error(`Failed to save config: ${msg}`);
104
+ return false;
105
+ }
106
+ };
107
+ //# sourceMappingURL=trello-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trello-setup.js","sourceRoot":"","sources":["../../src/core/trello-setup.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/lib/index.js ADDED
@@ -0,0 +1,250 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Geeto - Git flow automation CLI tool with AI-powered branch naming
4
+ * Main entry point - delegates to modular workflows
5
+ */
6
+ const { main } = await import('./workflows/main.js');
7
+ // Parse simple CLI flags for quick step shortcuts
8
+ const argv = process.argv.slice(2);
9
+ let startAt;
10
+ let fresh = false;
11
+ let resume = false;
12
+ let stageAll = false;
13
+ let showVersion = false;
14
+ let showHelp = false;
15
+ let showCleanup = false;
16
+ let showTrello = false;
17
+ let showTrelloLists = false;
18
+ let showTrelloGenerate = false;
19
+ let settingsAction;
20
+ for (const arg of argv) {
21
+ if (arg === '-c' || arg === '--commit') {
22
+ startAt = 'commit';
23
+ }
24
+ if (arg === '-m' || arg === '--merge') {
25
+ startAt = 'merge';
26
+ }
27
+ if (arg === '-b' || arg === '--branch') {
28
+ startAt = 'branch';
29
+ }
30
+ if (arg === '-s' || arg === '--stage') {
31
+ startAt = 'stage';
32
+ }
33
+ if (arg === '-sa' || arg === '-as') {
34
+ startAt = 'stage';
35
+ stageAll = true;
36
+ }
37
+ if (arg === '-p' || arg === '--push') {
38
+ startAt = 'push';
39
+ }
40
+ if (arg === '-f' || arg === '--fresh') {
41
+ fresh = true;
42
+ }
43
+ if (arg === '-r' || arg === '--resume') {
44
+ resume = true;
45
+ }
46
+ if (arg === '-v' || arg === '--version') {
47
+ showVersion = true;
48
+ }
49
+ if (arg === '-h' || arg === '--help') {
50
+ showHelp = true;
51
+ }
52
+ if (arg === '--separator') {
53
+ settingsAction = 'separator';
54
+ }
55
+ if (arg === '--sync-models') {
56
+ settingsAction = 'models';
57
+ }
58
+ if (arg === '--change-model') {
59
+ settingsAction = 'change-model';
60
+ }
61
+ if (arg === '--setup-gemini') {
62
+ settingsAction = 'gemini';
63
+ }
64
+ if (arg === '--setup-openrouter') {
65
+ settingsAction = 'openrouter';
66
+ }
67
+ if (arg === '--setup-trello') {
68
+ settingsAction = 'trello';
69
+ }
70
+ if (arg === '--cleanup' || arg === '-cl') {
71
+ showCleanup = true;
72
+ }
73
+ if (arg === '--trello') {
74
+ showTrello = true;
75
+ }
76
+ if (arg === '--trello-list') {
77
+ showTrelloLists = true;
78
+ }
79
+ if (arg === '--trello-generate') {
80
+ showTrelloGenerate = true;
81
+ }
82
+ }
83
+ // Validate unknown flags
84
+ const validFlags = new Set([
85
+ '-c',
86
+ '--commit',
87
+ '-m',
88
+ '--merge',
89
+ '-b',
90
+ '--branch',
91
+ '-s',
92
+ '--stage',
93
+ '-sa',
94
+ '-as',
95
+ '-p',
96
+ '--push',
97
+ '--cleanup',
98
+ '-cl',
99
+ '-f',
100
+ '--fresh',
101
+ '-r',
102
+ '--resume',
103
+ '-v',
104
+ '--version',
105
+ '-h',
106
+ '--help',
107
+ '--separator',
108
+ '--sync-models',
109
+ '--change-model',
110
+ '--setup-gemini',
111
+ '--setup-openrouter',
112
+ '--setup-trello',
113
+ '--trello',
114
+ '--trello-list',
115
+ '--trello-generate',
116
+ ]);
117
+ for (const arg of argv) {
118
+ if (arg.startsWith('-') && !validFlags.has(arg)) {
119
+ console.error(`Unknown flag: ${arg}`);
120
+ console.error('Use --help to see available options');
121
+ process.exit(1);
122
+ }
123
+ }
124
+ ;
125
+ (async () => {
126
+ if (showVersion) {
127
+ console.log('Geeto v1.1.0-beta.0');
128
+ process.exit(0);
129
+ }
130
+ if (showHelp) {
131
+ console.log('Geeto CLI — Git flow automation');
132
+ console.log('');
133
+ console.log('Usage: geeto [options]');
134
+ console.log('');
135
+ console.log('Options:');
136
+ console.log(' -c, --commit Start at commit step');
137
+ console.log(' -m, --merge Start at merge step');
138
+ console.log(' -b, --branch Start at branch step');
139
+ console.log(' -s, --stage Start at stage step');
140
+ console.log(' -sa, -as Start at stage step and automatically stage all changes');
141
+ console.log(' -p, --push Start at push step');
142
+ console.log(' -cl, --cleanup Interactive branch cleanup (delete local & remote branches)');
143
+ console.log(' -f, --fresh Start fresh workflow (ignore checkpoint)');
144
+ console.log(' -r, --resume Resume from checkpoint (default if exists)');
145
+ console.log(' -v, --version Show version');
146
+ console.log(' -h, --help Show this help message');
147
+ console.log('');
148
+ console.log('Settings:');
149
+ console.log(' --separator Configure branch separator (hyphen/underscore)');
150
+ console.log(' --sync-models Sync model configurations (fetch live models)');
151
+ console.log(' --change-model Change AI provider / model');
152
+ console.log(' --setup-gemini Setup Gemini AI integration');
153
+ console.log(' --setup-openrouter Setup OpenRouter AI integration');
154
+ console.log(' --setup-trello Setup Trello integration');
155
+ console.log('');
156
+ console.log('Trello:');
157
+ console.log(' --trello Open Trello menu');
158
+ console.log(' --trello-list Get Trello lists from board');
159
+ console.log(' --trello-generate Generate tasks.instructions.md from Trello list');
160
+ process.exit(0);
161
+ }
162
+ if (showCleanup) {
163
+ try {
164
+ const { handleInteractiveCleanup } = await import('./workflows/cleanup.js');
165
+ handleInteractiveCleanup();
166
+ process.exit(0);
167
+ }
168
+ catch (error) {
169
+ console.error('Cleanup error:', error);
170
+ process.exit(1);
171
+ }
172
+ }
173
+ if (showTrello) {
174
+ try {
175
+ const { showTrelloMenu } = await import('./workflows/trello-menu.js');
176
+ await showTrelloMenu();
177
+ process.exit(0);
178
+ }
179
+ catch (error) {
180
+ console.error('Trello menu error:', error);
181
+ process.exit(1);
182
+ }
183
+ }
184
+ if (showTrelloLists) {
185
+ try {
186
+ const { handleGetTrelloLists } = await import('./workflows/trello-menu.js');
187
+ await handleGetTrelloLists();
188
+ process.exit(0);
189
+ }
190
+ catch (error) {
191
+ console.error('Trello list error:', error);
192
+ process.exit(1);
193
+ }
194
+ }
195
+ if (showTrelloGenerate) {
196
+ try {
197
+ const { handleGenerateTaskInstructions } = await import('./workflows/trello-menu.js');
198
+ await handleGenerateTaskInstructions();
199
+ process.exit(0);
200
+ }
201
+ catch (error) {
202
+ console.error('Trello generate error:', error);
203
+ process.exit(1);
204
+ }
205
+ }
206
+ if (settingsAction) {
207
+ try {
208
+ const { handleSeparatorSetting, handleModelResetSetting, handleChangeModelSetting, handleGeminiSetting, handleOpenRouterSetting, handleTrelloSetting, } = await import('./workflows/settings.js');
209
+ switch (settingsAction) {
210
+ case 'separator': {
211
+ await handleSeparatorSetting();
212
+ break;
213
+ }
214
+ case 'models': {
215
+ await handleModelResetSetting();
216
+ break;
217
+ }
218
+ case 'change-model': {
219
+ await handleChangeModelSetting();
220
+ break;
221
+ }
222
+ case 'gemini': {
223
+ await handleGeminiSetting();
224
+ break;
225
+ }
226
+ case 'openrouter': {
227
+ await handleOpenRouterSetting();
228
+ break;
229
+ }
230
+ case 'trello': {
231
+ await handleTrelloSetting();
232
+ break;
233
+ }
234
+ }
235
+ process.exit(0);
236
+ }
237
+ catch (error) {
238
+ console.error('Settings error:', error);
239
+ process.exit(1);
240
+ }
241
+ }
242
+ // Pass stageAll flag into main so workflows can auto-stage all changes
243
+ // Start the application with optional start step
244
+ main({ startAt, fresh, resume, stageAll }).catch((error) => {
245
+ console.error('Fatal error:', error);
246
+ process.exit(1);
247
+ });
248
+ })();
249
+ export {};
250
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}