@kosuke-ai/cli 0.0.56 → 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.
Files changed (251) hide show
  1. package/README.md +31 -448
  2. package/dist/commands/auth.js +117 -0
  3. package/dist/generated/commands/deploy/cancel.js +17 -0
  4. package/dist/generated/commands/deploy/messages.js +17 -0
  5. package/dist/generated/commands/deploy/run.js +60 -0
  6. package/dist/generated/commands/index.js +132 -0
  7. package/dist/generated/commands/preview/get.js +25 -0
  8. package/dist/generated/commands/preview/health.js +25 -0
  9. package/dist/generated/commands/preview/reset.js +27 -0
  10. package/dist/generated/commands/preview/share-create.js +36 -0
  11. package/dist/generated/commands/preview/share-delete.js +26 -0
  12. package/dist/generated/commands/preview/share-get.js +26 -0
  13. package/dist/generated/commands/preview/shared.js +17 -0
  14. package/dist/generated/commands/projects/create.js +37 -0
  15. package/dist/generated/commands/projects/delete.js +17 -0
  16. package/dist/generated/commands/projects/env-vars-add.js +21 -0
  17. package/dist/generated/commands/projects/env-vars-remove.js +21 -0
  18. package/dist/generated/commands/projects/get.js +17 -0
  19. package/dist/generated/commands/projects/list.js +15 -0
  20. package/dist/generated/commands/projects/services-add.js +87 -0
  21. package/dist/generated/commands/projects/services-list.js +18 -0
  22. package/dist/generated/commands/projects/services-remove.js +19 -0
  23. package/dist/generated/commands/projects/services-update.js +81 -0
  24. package/dist/generated/commands/projects/settings-get.js +18 -0
  25. package/dist/generated/commands/projects/settings-import.js +91 -0
  26. package/dist/generated/commands/projects/settings-update.js +77 -0
  27. package/dist/generated/commands/projects/skills.js +35 -0
  28. package/dist/generated/commands/projects/update.js +27 -0
  29. package/dist/generated/commands/sessions/activate.js +18 -0
  30. package/dist/generated/commands/sessions/checklist-generate.js +19 -0
  31. package/dist/generated/commands/sessions/checklist-get.js +19 -0
  32. package/dist/generated/commands/sessions/comments-add.js +63 -0
  33. package/dist/generated/commands/sessions/comments-delete.js +20 -0
  34. package/dist/generated/commands/sessions/comments-list.js +19 -0
  35. package/dist/generated/commands/sessions/comments-update.js +23 -0
  36. package/dist/generated/commands/sessions/create.js +126 -0
  37. package/dist/generated/commands/sessions/delete.js +18 -0
  38. package/dist/generated/commands/sessions/diff-files.js +19 -0
  39. package/dist/generated/commands/sessions/diff-patch.js +86 -0
  40. package/dist/generated/commands/sessions/edit-prompt.js +59 -0
  41. package/dist/generated/commands/sessions/files-get.js +27 -0
  42. package/dist/generated/commands/sessions/files-list.js +19 -0
  43. package/dist/generated/commands/sessions/files-write.js +41 -0
  44. package/dist/generated/commands/sessions/get.js +18 -0
  45. package/dist/generated/commands/sessions/git-commit-message.js +19 -0
  46. package/dist/generated/commands/sessions/git-commit.js +29 -0
  47. package/dist/generated/commands/sessions/git-push.js +19 -0
  48. package/dist/generated/commands/sessions/git-state.js +19 -0
  49. package/dist/generated/commands/sessions/jobs-cancel.js +20 -0
  50. package/dist/generated/commands/sessions/jobs-get.js +20 -0
  51. package/dist/generated/commands/sessions/list.js +81 -0
  52. package/dist/generated/commands/sessions/messages.js +18 -0
  53. package/dist/generated/commands/sessions/search.js +23 -0
  54. package/dist/generated/commands/sessions/send.js +98 -0
  55. package/dist/generated/commands/sessions/update.js +72 -0
  56. package/dist/generated/commands/workspaces/access-status.js +29 -0
  57. package/dist/generated/commands/workspaces/ai-provider-get.js +18 -0
  58. package/dist/generated/commands/workspaces/ai-provider-remove.js +42 -0
  59. package/dist/generated/commands/workspaces/ai-provider-set.js +21 -0
  60. package/dist/generated/commands/workspaces/credits.js +17 -0
  61. package/dist/generated/commands/workspaces/get.js +17 -0
  62. package/dist/generated/commands/workspaces/getting-started-get.js +18 -0
  63. package/dist/generated/commands/workspaces/getting-started-update.js +32 -0
  64. package/dist/generated/commands/workspaces/list.js +15 -0
  65. package/dist/generated/commands/workspaces/members.js +25 -0
  66. package/dist/generated/commands/workspaces/sandbox-limit.js +17 -0
  67. package/dist/generated/commands/workspaces/stop-sandboxes.js +27 -0
  68. package/dist/generated/commands/workspaces/usage.js +32 -0
  69. package/dist/index.js +5 -516
  70. package/dist/program.js +46 -0
  71. package/dist/runtime/attach.js +139 -0
  72. package/dist/runtime/attachments.js +58 -0
  73. package/dist/runtime/client.js +12 -0
  74. package/dist/runtime/config.js +49 -0
  75. package/dist/runtime/credentials.js +24 -0
  76. package/dist/runtime/descriptor.js +7 -0
  77. package/dist/runtime/invoke.js +152 -0
  78. package/dist/runtime/runtime.js +41 -0
  79. package/dist/runtime/version.js +5 -0
  80. package/openapi.json +5222 -0
  81. package/package.json +21 -79
  82. package/LICENSE +0 -21
  83. package/claude.costs.json +0 -34
  84. package/dist/__tests__/utils/file-discovery.test.d.ts +0 -5
  85. package/dist/__tests__/utils/file-discovery.test.d.ts.map +0 -1
  86. package/dist/__tests__/utils/file-discovery.test.js +0 -51
  87. package/dist/__tests__/utils/file-discovery.test.js.map +0 -1
  88. package/dist/__tests__/utils/logger-nologs.test.d.ts +0 -5
  89. package/dist/__tests__/utils/logger-nologs.test.d.ts.map +0 -1
  90. package/dist/__tests__/utils/logger-nologs.test.js +0 -34
  91. package/dist/__tests__/utils/logger-nologs.test.js.map +0 -1
  92. package/dist/__tests__/utils/logger.test.d.ts +0 -5
  93. package/dist/__tests__/utils/logger.test.d.ts.map +0 -1
  94. package/dist/__tests__/utils/logger.test.js +0 -243
  95. package/dist/__tests__/utils/logger.test.js.map +0 -1
  96. package/dist/__tests__/utils/validator.test.d.ts +0 -5
  97. package/dist/__tests__/utils/validator.test.d.ts.map +0 -1
  98. package/dist/__tests__/utils/validator.test.js +0 -206
  99. package/dist/__tests__/utils/validator.test.js.map +0 -1
  100. package/dist/index.d.ts +0 -35
  101. package/dist/index.d.ts.map +0 -1
  102. package/dist/index.js.map +0 -1
  103. package/dist/kosuke/commands/analyse.d.ts +0 -15
  104. package/dist/kosuke/commands/analyse.d.ts.map +0 -1
  105. package/dist/kosuke/commands/analyse.js +0 -273
  106. package/dist/kosuke/commands/analyse.js.map +0 -1
  107. package/dist/kosuke/commands/build.d.ts +0 -35
  108. package/dist/kosuke/commands/build.d.ts.map +0 -1
  109. package/dist/kosuke/commands/build.js +0 -659
  110. package/dist/kosuke/commands/build.js.map +0 -1
  111. package/dist/kosuke/commands/getcode.d.ts +0 -29
  112. package/dist/kosuke/commands/getcode.d.ts.map +0 -1
  113. package/dist/kosuke/commands/getcode.js +0 -221
  114. package/dist/kosuke/commands/getcode.js.map +0 -1
  115. package/dist/kosuke/commands/lint.d.ts +0 -21
  116. package/dist/kosuke/commands/lint.d.ts.map +0 -1
  117. package/dist/kosuke/commands/lint.js +0 -321
  118. package/dist/kosuke/commands/lint.js.map +0 -1
  119. package/dist/kosuke/commands/migrate.d.ts +0 -38
  120. package/dist/kosuke/commands/migrate.d.ts.map +0 -1
  121. package/dist/kosuke/commands/migrate.js +0 -284
  122. package/dist/kosuke/commands/migrate.js.map +0 -1
  123. package/dist/kosuke/commands/plan.d.ts +0 -28
  124. package/dist/kosuke/commands/plan.d.ts.map +0 -1
  125. package/dist/kosuke/commands/plan.js +0 -630
  126. package/dist/kosuke/commands/plan.js.map +0 -1
  127. package/dist/kosuke/commands/requirements.d.ts +0 -52
  128. package/dist/kosuke/commands/requirements.d.ts.map +0 -1
  129. package/dist/kosuke/commands/requirements.js +0 -615
  130. package/dist/kosuke/commands/requirements.js.map +0 -1
  131. package/dist/kosuke/commands/review.d.ts +0 -26
  132. package/dist/kosuke/commands/review.d.ts.map +0 -1
  133. package/dist/kosuke/commands/review.js +0 -303
  134. package/dist/kosuke/commands/review.js.map +0 -1
  135. package/dist/kosuke/commands/serve.d.ts +0 -9
  136. package/dist/kosuke/commands/serve.d.ts.map +0 -1
  137. package/dist/kosuke/commands/serve.js +0 -17
  138. package/dist/kosuke/commands/serve.js.map +0 -1
  139. package/dist/kosuke/commands/ship.d.ts +0 -37
  140. package/dist/kosuke/commands/ship.d.ts.map +0 -1
  141. package/dist/kosuke/commands/ship.js +0 -375
  142. package/dist/kosuke/commands/ship.js.map +0 -1
  143. package/dist/kosuke/commands/sync-rules.d.ts +0 -9
  144. package/dist/kosuke/commands/sync-rules.d.ts.map +0 -1
  145. package/dist/kosuke/commands/sync-rules.js +0 -379
  146. package/dist/kosuke/commands/sync-rules.js.map +0 -1
  147. package/dist/kosuke/commands/test.d.ts +0 -42
  148. package/dist/kosuke/commands/test.d.ts.map +0 -1
  149. package/dist/kosuke/commands/test.js +0 -540
  150. package/dist/kosuke/commands/test.js.map +0 -1
  151. package/dist/kosuke/commands/tickets.d.ts +0 -43
  152. package/dist/kosuke/commands/tickets.d.ts.map +0 -1
  153. package/dist/kosuke/commands/tickets.js +0 -499
  154. package/dist/kosuke/commands/tickets.js.map +0 -1
  155. package/dist/kosuke/serve/middleware/error-handler.d.ts +0 -14
  156. package/dist/kosuke/serve/middleware/error-handler.d.ts.map +0 -1
  157. package/dist/kosuke/serve/middleware/error-handler.js +0 -42
  158. package/dist/kosuke/serve/middleware/error-handler.js.map +0 -1
  159. package/dist/kosuke/serve/middleware/validation.d.ts +0 -13
  160. package/dist/kosuke/serve/middleware/validation.d.ts.map +0 -1
  161. package/dist/kosuke/serve/middleware/validation.js +0 -38
  162. package/dist/kosuke/serve/middleware/validation.js.map +0 -1
  163. package/dist/kosuke/serve/routes/build.d.ts +0 -6
  164. package/dist/kosuke/serve/routes/build.d.ts.map +0 -1
  165. package/dist/kosuke/serve/routes/build.js +0 -226
  166. package/dist/kosuke/serve/routes/build.js.map +0 -1
  167. package/dist/kosuke/serve/routes/health.d.ts +0 -6
  168. package/dist/kosuke/serve/routes/health.d.ts.map +0 -1
  169. package/dist/kosuke/serve/routes/health.js +0 -11
  170. package/dist/kosuke/serve/routes/health.js.map +0 -1
  171. package/dist/kosuke/serve/routes/plan.d.ts +0 -6
  172. package/dist/kosuke/serve/routes/plan.d.ts.map +0 -1
  173. package/dist/kosuke/serve/routes/plan.js +0 -106
  174. package/dist/kosuke/serve/routes/plan.js.map +0 -1
  175. package/dist/kosuke/serve/server.d.ts +0 -16
  176. package/dist/kosuke/serve/server.d.ts.map +0 -1
  177. package/dist/kosuke/serve/server.js +0 -67
  178. package/dist/kosuke/serve/server.js.map +0 -1
  179. package/dist/kosuke/serve/validation/build.d.ts +0 -41
  180. package/dist/kosuke/serve/validation/build.d.ts.map +0 -1
  181. package/dist/kosuke/serve/validation/build.js +0 -20
  182. package/dist/kosuke/serve/validation/build.js.map +0 -1
  183. package/dist/kosuke/serve/validation/plan.d.ts +0 -26
  184. package/dist/kosuke/serve/validation/plan.d.ts.map +0 -1
  185. package/dist/kosuke/serve/validation/plan.js +0 -15
  186. package/dist/kosuke/serve/validation/plan.js.map +0 -1
  187. package/dist/kosuke/types.d.ts +0 -469
  188. package/dist/kosuke/types.d.ts.map +0 -1
  189. package/dist/kosuke/types.js +0 -5
  190. package/dist/kosuke/types.js.map +0 -1
  191. package/dist/kosuke/utils/batch-creator.d.ts +0 -14
  192. package/dist/kosuke/utils/batch-creator.d.ts.map +0 -1
  193. package/dist/kosuke/utils/batch-creator.js +0 -76
  194. package/dist/kosuke/utils/batch-creator.js.map +0 -1
  195. package/dist/kosuke/utils/claude-agent.d.ts +0 -145
  196. package/dist/kosuke/utils/claude-agent.d.ts.map +0 -1
  197. package/dist/kosuke/utils/claude-agent.js +0 -504
  198. package/dist/kosuke/utils/claude-agent.js.map +0 -1
  199. package/dist/kosuke/utils/constants.d.ts +0 -40
  200. package/dist/kosuke/utils/constants.d.ts.map +0 -1
  201. package/dist/kosuke/utils/constants.js +0 -54
  202. package/dist/kosuke/utils/constants.js.map +0 -1
  203. package/dist/kosuke/utils/file-discovery.d.ts +0 -15
  204. package/dist/kosuke/utils/file-discovery.d.ts.map +0 -1
  205. package/dist/kosuke/utils/file-discovery.js +0 -80
  206. package/dist/kosuke/utils/file-discovery.js.map +0 -1
  207. package/dist/kosuke/utils/git.d.ts +0 -41
  208. package/dist/kosuke/utils/git.d.ts.map +0 -1
  209. package/dist/kosuke/utils/git.js +0 -145
  210. package/dist/kosuke/utils/git.js.map +0 -1
  211. package/dist/kosuke/utils/github.d.ts +0 -17
  212. package/dist/kosuke/utils/github.d.ts.map +0 -1
  213. package/dist/kosuke/utils/github.js +0 -22
  214. package/dist/kosuke/utils/github.js.map +0 -1
  215. package/dist/kosuke/utils/interactive-input.d.ts +0 -22
  216. package/dist/kosuke/utils/interactive-input.d.ts.map +0 -1
  217. package/dist/kosuke/utils/interactive-input.js +0 -124
  218. package/dist/kosuke/utils/interactive-input.js.map +0 -1
  219. package/dist/kosuke/utils/logger.d.ts +0 -161
  220. package/dist/kosuke/utils/logger.d.ts.map +0 -1
  221. package/dist/kosuke/utils/logger.js +0 -234
  222. package/dist/kosuke/utils/logger.js.map +0 -1
  223. package/dist/kosuke/utils/playwright-mcp-client.d.ts +0 -46
  224. package/dist/kosuke/utils/playwright-mcp-client.d.ts.map +0 -1
  225. package/dist/kosuke/utils/playwright-mcp-client.js +0 -135
  226. package/dist/kosuke/utils/playwright-mcp-client.js.map +0 -1
  227. package/dist/kosuke/utils/pr-orchestrator.d.ts +0 -49
  228. package/dist/kosuke/utils/pr-orchestrator.d.ts.map +0 -1
  229. package/dist/kosuke/utils/pr-orchestrator.js +0 -154
  230. package/dist/kosuke/utils/pr-orchestrator.js.map +0 -1
  231. package/dist/kosuke/utils/repository-manager.d.ts +0 -13
  232. package/dist/kosuke/utils/repository-manager.d.ts.map +0 -1
  233. package/dist/kosuke/utils/repository-manager.js +0 -94
  234. package/dist/kosuke/utils/repository-manager.js.map +0 -1
  235. package/dist/kosuke/utils/repository-resolver.d.ts +0 -12
  236. package/dist/kosuke/utils/repository-resolver.d.ts.map +0 -1
  237. package/dist/kosuke/utils/repository-resolver.js +0 -186
  238. package/dist/kosuke/utils/repository-resolver.js.map +0 -1
  239. package/dist/kosuke/utils/tickets-manager.d.ts +0 -64
  240. package/dist/kosuke/utils/tickets-manager.d.ts.map +0 -1
  241. package/dist/kosuke/utils/tickets-manager.js +0 -331
  242. package/dist/kosuke/utils/tickets-manager.js.map +0 -1
  243. package/dist/kosuke/utils/validator.d.ts +0 -45
  244. package/dist/kosuke/utils/validator.d.ts.map +0 -1
  245. package/dist/kosuke/utils/validator.js +0 -248
  246. package/dist/kosuke/utils/validator.js.map +0 -1
  247. package/dist/lib.d.ts +0 -96
  248. package/dist/lib.d.ts.map +0 -1
  249. package/dist/lib.js +0 -95
  250. package/dist/lib.js.map +0 -1
  251. package/dist/package.json +0 -99
@@ -1,154 +0,0 @@
1
- /**
2
- * PR Orchestrator - Generic PR workflow utility
3
- *
4
- * Handles branch creation, commits, push, and PR creation
5
- * Used across all commands that support --pr flag
6
- */
7
- import simpleGit from 'simple-git';
8
- import { createBranch, commit, push, getCurrentRepo, getCurrentBranch } from './git.js';
9
- import { createPullRequest } from './github.js';
10
- /**
11
- * Execute core logic wrapped with PR workflow
12
- */
13
- export async function runWithPR(options, coreLogic) {
14
- // Validate environment
15
- if (!process.env.GITHUB_TOKEN) {
16
- throw new Error('GITHUB_TOKEN environment variable is required for --pr flag');
17
- }
18
- const { cwd } = options;
19
- const git = cwd ? simpleGit(cwd) : simpleGit();
20
- // Get base branch (current branch before creating feature branch)
21
- const baseBranch = options.baseBranch || (await getCurrentBranch(cwd));
22
- console.log(`📍 Base branch: ${baseBranch}\n`);
23
- // Create working branch with unique name
24
- const timestamp = new Date().toISOString().replace(/[:.]/g, '-').split('.')[0];
25
- const branchName = `${options.branchPrefix}/${timestamp}`;
26
- console.log(`🌿 Creating branch: ${branchName}\n`);
27
- await createBranch(branchName, baseBranch, cwd);
28
- // Execute core logic
29
- const result = await coreLogic();
30
- // Check if there are any changes to commit
31
- const status = await git.status();
32
- if (status.files.length === 0) {
33
- console.log('\nℹ️ No changes detected. Skipping PR creation.');
34
- throw new Error('No changes to commit');
35
- }
36
- // Commit changes
37
- console.log('\n📝 Committing changes...');
38
- const commitMsg = typeof options.commitMessage === 'function' ? options.commitMessage(0) : options.commitMessage;
39
- await commit(commitMsg, cwd);
40
- console.log(' ✅ Changes committed\n');
41
- // Push branch
42
- console.log('📤 Pushing branch...');
43
- await push(branchName, cwd);
44
- console.log(' ✅ Branch pushed\n');
45
- // Create PR
46
- console.log('📋 Creating pull request...');
47
- const { owner, repo } = await getCurrentRepo(cwd);
48
- const prUrl = await createPullRequest({
49
- owner,
50
- repo,
51
- title: options.prTitle,
52
- head: branchName,
53
- base: baseBranch,
54
- body: options.prBody,
55
- });
56
- console.log(` ✅ Pull request created: ${prUrl}\n`);
57
- return {
58
- result,
59
- prInfo: {
60
- branchName,
61
- prUrl,
62
- baseBranch,
63
- commitsCreated: 1,
64
- },
65
- };
66
- }
67
- /**
68
- * Execute core logic wrapped with PR workflow (batch mode)
69
- * Supports multiple commits for batch processing
70
- */
71
- export async function runWithPRBatched(options, batches) {
72
- // Validate environment
73
- if (!process.env.GITHUB_TOKEN) {
74
- throw new Error('GITHUB_TOKEN environment variable is required for --pr flag');
75
- }
76
- const { cwd } = options;
77
- const git = cwd ? simpleGit(cwd) : simpleGit();
78
- // Get base branch
79
- const baseBranch = options.baseBranch || (await getCurrentBranch(cwd));
80
- console.log(`📍 Base branch: ${baseBranch}\n`);
81
- // Create working branch
82
- const timestamp = new Date().toISOString().replace(/[:.]/g, '-').split('.')[0];
83
- const branchName = `${options.branchPrefix}/${timestamp}`;
84
- console.log(`🌿 Creating branch: ${branchName}\n`);
85
- await createBranch(branchName, baseBranch, cwd);
86
- // Process each batch
87
- const results = [];
88
- let commitsCreated = 0;
89
- for (let i = 0; i < batches.length; i++) {
90
- console.log(`\n📊 Processing batch ${i + 1}/${batches.length}...`);
91
- // Execute batch logic
92
- const result = await batches[i]();
93
- results.push(result);
94
- // Check if there are changes
95
- const status = await git.status();
96
- if (status.files.length === 0) {
97
- console.log(' ℹ️ No changes in this batch, skipping commit');
98
- continue;
99
- }
100
- // Validate if needed
101
- if (options.validateBeforeCommit) {
102
- console.log(' 🔧 Running validation...');
103
- const isValid = await options.validateBeforeCommit();
104
- if (!isValid) {
105
- console.warn(' ⚠️ Validation failed, skipping this batch');
106
- await git.reset(['--hard', 'HEAD']);
107
- continue;
108
- }
109
- console.log(' ✅ Validation passed');
110
- }
111
- // Commit batch
112
- const commitMsg = typeof options.commitMessage === 'function'
113
- ? options.commitMessage(i)
114
- : options.commitMessage;
115
- await commit(commitMsg, cwd);
116
- commitsCreated++;
117
- console.log(' ✅ Batch committed');
118
- // Callback if needed
119
- if (options.onBatchComplete) {
120
- await options.onBatchComplete(i);
121
- }
122
- }
123
- // Check if any commits were made
124
- if (commitsCreated === 0) {
125
- console.log('\nℹ️ No changes were committed. Skipping PR creation.');
126
- throw new Error('No changes to commit');
127
- }
128
- // Push all commits
129
- console.log(`\n📤 Pushing ${commitsCreated} commit(s)...`);
130
- await push(branchName, cwd);
131
- console.log(' ✅ All commits pushed\n');
132
- // Create PR
133
- console.log('📋 Creating pull request...');
134
- const { owner, repo } = await getCurrentRepo(cwd);
135
- const prUrl = await createPullRequest({
136
- owner,
137
- repo,
138
- title: options.prTitle,
139
- head: branchName,
140
- base: baseBranch,
141
- body: options.prBody,
142
- });
143
- console.log(` ✅ Pull request created: ${prUrl}\n`);
144
- return {
145
- results,
146
- prInfo: {
147
- branchName,
148
- prUrl,
149
- baseBranch,
150
- commitsCreated,
151
- },
152
- };
153
- }
154
- //# sourceMappingURL=pr-orchestrator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pr-orchestrator.js","sourceRoot":"","sources":["../../../kosuke/utils/pr-orchestrator.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Repository Manager - Clone and update GitHub repositories
3
- */
4
- import type { RepositoryInfo } from '../types.js';
5
- /**
6
- * Ensure repository is cloned and up-to-date
7
- */
8
- export declare function ensureRepoReady(repoIdentifier: string): Promise<RepositoryInfo>;
9
- /**
10
- * Get local path for a repository (without ensuring it exists)
11
- */
12
- export declare function getRepoLocalPath(repoIdentifier: string): string;
13
- //# sourceMappingURL=repository-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"repository-manager.d.ts","sourceRoot":"","sources":["../../../kosuke/utils/repository-manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD;;GAEG;AACH,wBAAsB,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAYrF;AAiFD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAG/D"}
@@ -1,94 +0,0 @@
1
- /**
2
- * Repository Manager - Clone and update GitHub repositories
3
- */
4
- import simpleGit from 'simple-git';
5
- import { existsSync, mkdirSync } from 'fs';
6
- import { join } from 'path';
7
- import { REPOS_DIR } from './constants.js';
8
- /**
9
- * Ensure repository is cloned and up-to-date
10
- */
11
- export async function ensureRepoReady(repoIdentifier) {
12
- const repoInfo = getRepositoryInfo(repoIdentifier);
13
- if (existsSync(repoInfo.localPath)) {
14
- // Repository exists, pull latest changes
15
- await updateRepository(repoInfo);
16
- }
17
- else {
18
- // Clone repository
19
- await cloneRepository(repoInfo);
20
- }
21
- return repoInfo;
22
- }
23
- /**
24
- * Get repository information
25
- */
26
- function getRepositoryInfo(repoIdentifier) {
27
- const [owner, repo] = repoIdentifier.split('/');
28
- if (!owner || !repo) {
29
- throw new Error(`Invalid repository identifier: ${repoIdentifier}`);
30
- }
31
- // Replace '/' with '__' to avoid nested directories
32
- const safeName = repoIdentifier.replace('/', '__');
33
- const localPath = join(process.cwd(), REPOS_DIR, safeName);
34
- return {
35
- owner,
36
- repo,
37
- fullName: repoIdentifier,
38
- localPath,
39
- };
40
- }
41
- /**
42
- * Clone repository
43
- */
44
- async function cloneRepository(repoInfo) {
45
- console.log(`📥 Cloning ${repoInfo.fullName}...`);
46
- const git = simpleGit();
47
- const repoUrl = `https://github.com/${repoInfo.fullName}.git`;
48
- // Ensure repos directory exists
49
- const reposDir = join(process.cwd(), REPOS_DIR);
50
- if (!existsSync(reposDir)) {
51
- mkdirSync(reposDir, { recursive: true });
52
- }
53
- try {
54
- await git.clone(repoUrl, repoInfo.localPath, [
55
- '--depth',
56
- '1', // Shallow clone for faster cloning
57
- '--single-branch',
58
- ]);
59
- console.log(` ✅ Cloned to ${REPOS_DIR}/${repoInfo.fullName.replace('/', '__')}\n`);
60
- }
61
- catch (error) {
62
- throw new Error(`Failed to clone repository ${repoInfo.fullName}:\n` +
63
- `${error instanceof Error ? error.message : String(error)}\n\n` +
64
- `Please check:\n` +
65
- `- Repository exists and is accessible\n` +
66
- `- You have network connectivity\n` +
67
- `- Repository name is correct (owner/repo format)`);
68
- }
69
- }
70
- /**
71
- * Update repository (git pull)
72
- */
73
- async function updateRepository(repoInfo) {
74
- console.log(`🔄 Updating ${repoInfo.fullName}...`);
75
- const git = simpleGit(repoInfo.localPath);
76
- try {
77
- // Fetch and pull latest changes
78
- await git.fetch(['origin', '--depth', '1']);
79
- await git.pull('origin', 'HEAD');
80
- console.log(` ✅ Updated to latest version\n`);
81
- }
82
- catch (error) {
83
- // If update fails, it's not critical - we can use the existing version
84
- console.warn(` ⚠️ Could not update repository (using cached version):\n ${error instanceof Error ? error.message : String(error)}\n`);
85
- }
86
- }
87
- /**
88
- * Get local path for a repository (without ensuring it exists)
89
- */
90
- export function getRepoLocalPath(repoIdentifier) {
91
- const safeName = repoIdentifier.replace('/', '__');
92
- return join(process.cwd(), REPOS_DIR, safeName);
93
- }
94
- //# sourceMappingURL=repository-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"repository-manager.js","sourceRoot":"","sources":["../../../kosuke/utils/repository-manager.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- /**
2
- * Repository Resolver - Smart repository inference from queries
3
- */
4
- /**
5
- * Resolve repository identifier to owner/repo format
6
- */
7
- export declare function resolveRepository(repo: string | undefined, query: string, useTemplate: boolean, githubToken?: string): Promise<string>;
8
- /**
9
- * Validate repository access
10
- */
11
- export declare function validateRepoAccess(repoIdentifier: string, githubToken?: string): Promise<boolean>;
12
- //# sourceMappingURL=repository-resolver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"repository-resolver.d.ts","sourceRoot":"","sources":["../../../kosuke/utils/repository-resolver.ts"],"names":[],"mappings":"AAAA;;GAEG;AAiCH;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,OAAO,EACpB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAiCjB;AA4HD;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,cAAc,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC,CAelB"}
@@ -1,186 +0,0 @@
1
- /**
2
- * Repository Resolver - Smart repository inference from queries
3
- */
4
- import { Octokit } from '@octokit/rest';
5
- const KOSUKE_TEMPLATE_REPO = 'Kosuke-Org/kosuke-template';
6
- const DEFAULT_ORG = 'Kosuke-Org';
7
- // Well-known repositories mapping
8
- const WELL_KNOWN_REPOS = {
9
- nextjs: 'vercel/next.js',
10
- 'next.js': 'vercel/next.js',
11
- next: 'vercel/next.js',
12
- react: 'facebook/react',
13
- shadcn: 'shadcn/ui',
14
- 'shadcn-ui': 'shadcn/ui',
15
- tailwind: 'tailwindlabs/tailwindcss',
16
- tailwindcss: 'tailwindlabs/tailwindcss',
17
- prisma: 'prisma/prisma',
18
- drizzle: 'drizzle-team/drizzle-orm',
19
- 'drizzle-orm': 'drizzle-team/drizzle-orm',
20
- trpc: 'trpc/trpc',
21
- remix: 'remix-run/remix',
22
- astro: 'withastro/astro',
23
- svelte: 'sveltejs/svelte',
24
- vue: 'vuejs/core',
25
- nuxt: 'nuxt/nuxt',
26
- angular: 'angular/angular',
27
- express: 'expressjs/express',
28
- fastify: 'fastify/fastify',
29
- nestjs: 'nestjs/nest',
30
- 'kosuke-template': KOSUKE_TEMPLATE_REPO,
31
- };
32
- /**
33
- * Resolve repository identifier to owner/repo format
34
- */
35
- export async function resolveRepository(repo, query, useTemplate, githubToken) {
36
- // If --template flag is used, always use kosuke-template
37
- if (useTemplate) {
38
- return KOSUKE_TEMPLATE_REPO;
39
- }
40
- // If repo is explicitly provided, normalize it
41
- if (repo) {
42
- return normalizeRepoIdentifier(repo);
43
- }
44
- // Try to infer from query
45
- const inferred = inferRepoFromQuery(query);
46
- if (inferred) {
47
- return inferred;
48
- }
49
- // If we have a GitHub token, try searching (optional, as per requirement)
50
- if (githubToken) {
51
- const searched = await searchGitHubRepo(query, githubToken);
52
- if (searched) {
53
- return searched;
54
- }
55
- }
56
- // Could not determine repository
57
- throw new Error(`Could not determine repository from query: "${query}"\n` +
58
- `Please specify the repository explicitly:\n` +
59
- ` kosuke getcode "owner/repo" "${query}"\n` +
60
- `Or use --template flag for kosuke-template:\n` +
61
- ` kosuke getcode --template "${query}"`);
62
- }
63
- /**
64
- * Normalize repository identifier to owner/repo format
65
- */
66
- function normalizeRepoIdentifier(repo) {
67
- // Handle GitHub URLs
68
- const urlPatterns = [
69
- /github\.com\/([^\/]+)\/([^\/\s]+)/i, // https://github.com/owner/repo
70
- /github\.com:([^\/]+)\/([^\/\s]+)/i, // git@github.com:owner/repo
71
- ];
72
- for (const pattern of urlPatterns) {
73
- const match = repo.match(pattern);
74
- if (match) {
75
- const owner = match[1];
76
- const repoName = match[2].replace(/\.git$/, ''); // Remove .git suffix
77
- return `${owner}/${repoName}`;
78
- }
79
- }
80
- // Already in owner/repo format
81
- if (repo.includes('/')) {
82
- return repo;
83
- }
84
- // Just repo name, assume Kosuke-Org
85
- if (repo.startsWith('kosuke-')) {
86
- return `${DEFAULT_ORG}/${repo}`;
87
- }
88
- // Can't normalize
89
- throw new Error(`Invalid repository format: "${repo}"\n` +
90
- `Expected formats:\n` +
91
- ` - owner/repo (e.g., "facebook/react")\n` +
92
- ` - https://github.com/owner/repo\n` +
93
- ` - kosuke-* (assumes Kosuke-Org/kosuke-*)`);
94
- }
95
- /**
96
- * Extract repository name from user input
97
- */
98
- function inferRepoFromQuery(query) {
99
- const queryLower = query.toLowerCase();
100
- // Pattern 1: Explicit owner/repo format in query
101
- const ownerRepoPattern = /\b([a-zA-Z0-9_-]+)\/([a-zA-Z0-9_.-]+)\b/;
102
- const match = query.match(ownerRepoPattern);
103
- if (match) {
104
- return `${match[1]}/${match[2]}`;
105
- }
106
- // Pattern 2: Kosuke-specific repos (e.g., "kosuke-template", "kosuke-cli")
107
- const kosukeRepoPattern = /\b(kosuke-[a-zA-Z0-9_-]+)\b/i;
108
- const kosukeMatch = query.match(kosukeRepoPattern);
109
- if (kosukeMatch) {
110
- return `${DEFAULT_ORG}/${kosukeMatch[1].toLowerCase()}`;
111
- }
112
- // Pattern 3: Well-known repositories
113
- for (const [keyword, repoIdentifier] of Object.entries(WELL_KNOWN_REPOS)) {
114
- if (queryLower.includes(keyword)) {
115
- return repoIdentifier;
116
- }
117
- }
118
- return null;
119
- }
120
- /**
121
- * Search GitHub for repository (fallback, requires token)
122
- */
123
- async function searchGitHubRepo(query, githubToken) {
124
- try {
125
- const octokit = new Octokit({ auth: githubToken });
126
- // Extract potential repo names from query
127
- const words = query.match(/\b[a-zA-Z][a-zA-Z0-9_-]{2,}\b/g) || [];
128
- for (const word of words) {
129
- // Skip common words
130
- const skipWords = [
131
- 'from',
132
- 'repository',
133
- 'repo',
134
- 'code',
135
- 'implementation',
136
- 'inspiration',
137
- 'example',
138
- 'how',
139
- 'does',
140
- 'work',
141
- 'what',
142
- 'where',
143
- 'show',
144
- 'find',
145
- ];
146
- if (skipWords.includes(word.toLowerCase())) {
147
- continue;
148
- }
149
- // Search GitHub
150
- const { data } = await octokit.search.repos({
151
- q: word,
152
- sort: 'stars',
153
- order: 'desc',
154
- per_page: 1,
155
- });
156
- // Only return if it's a popular repo (>1000 stars)
157
- if (data.items.length > 0 && data.items[0].stargazers_count > 1000) {
158
- return data.items[0].full_name;
159
- }
160
- }
161
- }
162
- catch {
163
- // Silently fail - this is just a fallback
164
- console.warn(' ⚠️ GitHub search failed, explicit repo required');
165
- }
166
- return null;
167
- }
168
- /**
169
- * Validate repository access
170
- */
171
- export async function validateRepoAccess(repoIdentifier, githubToken) {
172
- if (!githubToken) {
173
- // Without token, assume public access
174
- return true;
175
- }
176
- try {
177
- const octokit = new Octokit({ auth: githubToken });
178
- const [owner, repo] = repoIdentifier.split('/');
179
- await octokit.repos.get({ owner, repo });
180
- return true;
181
- }
182
- catch {
183
- return false;
184
- }
185
- }
186
- //# sourceMappingURL=repository-resolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"repository-resolver.js","sourceRoot":"","sources":["../../../kosuke/utils/repository-resolver.ts"],"names":[],"mappings":"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"}
@@ -1,64 +0,0 @@
1
- /**
2
- * Tickets file management utilities
3
- *
4
- * Handles loading, saving, updating, parsing, validating, and displaying tickets
5
- */
6
- import type { Ticket } from '../types.js';
7
- export interface TicketsFile {
8
- generatedAt: string;
9
- totalTickets: number;
10
- tickets: Ticket[];
11
- }
12
- /**
13
- * Review result structure from validation agent
14
- */
15
- export interface TicketReviewResult {
16
- validationIssues: string[];
17
- fixedTickets: Ticket[];
18
- }
19
- /**
20
- * Load tickets from file
21
- */
22
- export declare function loadTicketsFile(ticketsPath: string): TicketsFile;
23
- /**
24
- * Save tickets to file
25
- */
26
- export declare function saveTicketsFile(ticketsPath: string, ticketsData: TicketsFile): void;
27
- /**
28
- * Write tickets to a JSON file (creates new file structure)
29
- */
30
- export declare function writeTicketsFile(outputPath: string, tickets: Ticket[]): void;
31
- /**
32
- * Update ticket status in file
33
- */
34
- export declare function updateTicketStatus(ticketsPath: string, ticketId: string, status: Ticket['status'], error?: string): void;
35
- /**
36
- * Parse tickets from a JSON string or response
37
- * Validates basic structure and normalizes data
38
- */
39
- export declare function parseTickets(response: string): Ticket[];
40
- /**
41
- * Sort tickets by processing order
42
- */
43
- export declare function sortTicketsByOrder(tickets: Ticket[]): Ticket[];
44
- /**
45
- * Validate and fix tickets using Claude
46
- * Returns fixed tickets and list of issues found
47
- */
48
- export declare function validateAndFixTickets(tickets: Ticket[], projectPath: string): Promise<TicketReviewResult>;
49
- /**
50
- * Display tickets summary to console
51
- */
52
- export declare function displayTicketsSummary(tickets: Ticket[]): void;
53
- /**
54
- * Full pipeline: parse, validate, sort, and write tickets
55
- * Used by both plan.ts and tickets.ts
56
- */
57
- export declare function processAndWriteTickets(rawTickets: Ticket[], outputPath: string, projectPath: string, options?: {
58
- skipValidation?: boolean;
59
- displaySummary?: boolean;
60
- }): Promise<{
61
- tickets: Ticket[];
62
- validationIssues: string[];
63
- }>;
64
- //# sourceMappingURL=tickets-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tickets-manager.d.ts","sourceRoot":"","sources":["../../../kosuke/utils/tickets-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAMD;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CAgBhE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI,CAEnF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAQ5E;AAaD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,EACxB,KAAK,CAAC,EAAE,MAAM,GACb,IAAI,CAiBN;AAMD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAmCvD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CA0B9D;AAgED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EAAE,EACjB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,kBAAkB,CAAC,CA8D7B;AAMD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CA2B7D;AAMD;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,EAAE,EACpB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GACnE,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,gBAAgB,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAuB5D"}