@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 +0,0 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../kosuke/serve/routes/build.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAO5D,wBAAsB,UAAU,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA6PxF"}
@@ -1,226 +0,0 @@
1
- /**
2
- * Build command SSE route
3
- */
4
- import { existsSync } from 'fs';
5
- import { buildCoreStream } from '../../commands/build.js';
6
- import { parseToolAction } from '../../utils/claude-agent.js';
7
- export async function buildRoute(req, reply) {
8
- // Request body is already validated by middleware
9
- const { cwd, ticketsFile, dbUrl, reset, review, url, headless, verbose, trace } = req.body;
10
- // Verify directory exists
11
- if (!existsSync(cwd)) {
12
- reply.code(400).send({
13
- error: 'Invalid directory',
14
- message: `Directory does not exist: ${cwd}`,
15
- });
16
- return;
17
- }
18
- // Set SSE headers
19
- reply.raw.writeHead(200, {
20
- 'Content-Type': 'text/event-stream',
21
- 'Cache-Control': 'no-cache',
22
- Connection: 'keep-alive',
23
- });
24
- const sendEvent = (event, data) => {
25
- reply.raw.write(`event: ${event}\n`);
26
- reply.raw.write(`data: ${JSON.stringify(data)}\n\n`);
27
- };
28
- try {
29
- const options = {
30
- directory: cwd,
31
- ticketsFile,
32
- dbUrl,
33
- reset,
34
- review,
35
- url,
36
- headless,
37
- verbose,
38
- trace,
39
- // No askCommit/askConfirm in API mode (auto-commit everything)
40
- };
41
- const stream = buildCoreStream(options);
42
- // Stream events to client
43
- for await (const event of stream) {
44
- switch (event.type) {
45
- case 'build_started':
46
- sendEvent('build_started', {
47
- totalTickets: event.data.totalTickets,
48
- ticketsFile: event.data.ticketsFile,
49
- });
50
- break;
51
- case 'ticket_started':
52
- sendEvent('ticket_started', {
53
- ticket: event.data.ticket,
54
- index: event.data.index,
55
- total: event.data.total,
56
- });
57
- break;
58
- case 'ticket_phase':
59
- sendEvent('ticket_phase', {
60
- phase: event.data.phase,
61
- status: event.data.status,
62
- });
63
- break;
64
- case 'ship_event':
65
- // Handle nested ship events
66
- if (event.data.type === 'message') {
67
- const msg = event.data.data;
68
- // Skip verbose tool results
69
- if (msg.type === 'user' && 'tool_use_result' in msg) {
70
- break;
71
- }
72
- // Skip system init
73
- if (msg.type === 'system' && msg.subtype === 'init') {
74
- break;
75
- }
76
- // Extract tool calls and text from assistant messages
77
- if (msg.type === 'assistant' && msg.message) {
78
- const msgData = msg.message;
79
- if (msgData.content && Array.isArray(msgData.content)) {
80
- let hasText = false;
81
- for (const block of msgData.content) {
82
- if (block.type === 'tool_use' && block.name) {
83
- // Send tool call event
84
- const toolInput = block.input;
85
- const parsed = parseToolAction(block.name, toolInput);
86
- sendEvent('ship_tool_call', {
87
- action: parsed.action,
88
- params: parsed.params,
89
- });
90
- }
91
- else if (block.type === 'text' && block.text) {
92
- hasText = true;
93
- }
94
- }
95
- // Only forward message if it has text (skip usage-only)
96
- if (hasText) {
97
- sendEvent('ship_message', msg);
98
- }
99
- }
100
- }
101
- }
102
- else {
103
- // Forward other ship events as-is
104
- sendEvent(`ship_${event.data.type}`, event.data.data);
105
- }
106
- break;
107
- case 'test_event':
108
- // Handle nested test events (uses Playwright MCP, different event structure)
109
- if (event.data.type === 'tool_executed') {
110
- // Send tool execution as tool_call
111
- const toolData = event.data.data;
112
- sendEvent('test_tool_call', {
113
- action: toolData.toolName,
114
- params: { success: toolData.success },
115
- });
116
- }
117
- else if (event.data.type === 'assistant_message') {
118
- // Send assistant message with text (skip if empty)
119
- const msgData = event.data.data;
120
- if (msgData.text && msgData.text.trim()) {
121
- sendEvent('test_message', { text: msgData.text });
122
- }
123
- }
124
- else {
125
- // Forward other test events as-is
126
- sendEvent(`test_${event.data.type}`, event.data.data);
127
- }
128
- break;
129
- case 'migrate_event':
130
- // Handle nested migrate events
131
- if (event.data.type === 'message') {
132
- const msg = event.data.data;
133
- // Skip verbose tool results
134
- if (msg.type === 'user' && 'tool_use_result' in msg) {
135
- break;
136
- }
137
- // Skip system init
138
- if (msg.type === 'system' && msg.subtype === 'init') {
139
- break;
140
- }
141
- // Extract tool calls and text from assistant messages
142
- if (msg.type === 'assistant' && msg.message) {
143
- const msgData = msg.message;
144
- if (msgData.content && Array.isArray(msgData.content)) {
145
- let hasText = false;
146
- for (const block of msgData.content) {
147
- if (block.type === 'tool_use' && block.name) {
148
- // Send tool call event
149
- const toolInput = block.input;
150
- const parsed = parseToolAction(block.name, toolInput);
151
- sendEvent('migrate_tool_call', {
152
- action: parsed.action,
153
- params: parsed.params,
154
- });
155
- }
156
- else if (block.type === 'text' && block.text) {
157
- hasText = true;
158
- }
159
- }
160
- // Only forward message if it has text (skip usage-only)
161
- if (hasText) {
162
- sendEvent('migrate_message', msg);
163
- }
164
- }
165
- }
166
- }
167
- else {
168
- // Forward other migrate events as-is
169
- sendEvent(`migrate_${event.data.type}`, event.data.data);
170
- }
171
- break;
172
- case 'test_retry':
173
- sendEvent('test_retry', {
174
- attempt: event.data.attempt,
175
- maxRetries: event.data.maxRetries,
176
- error: event.data.error,
177
- });
178
- break;
179
- case 'ticket_completed':
180
- sendEvent('ticket_completed', {
181
- ticket: event.data.ticket,
182
- result: event.data.result,
183
- });
184
- break;
185
- case 'ticket_committed':
186
- sendEvent('ticket_committed', {
187
- ticket: event.data.ticket,
188
- commitMessage: event.data.commitMessage,
189
- });
190
- break;
191
- case 'progress':
192
- sendEvent('progress', {
193
- completed: event.data.completed,
194
- total: event.data.total,
195
- percentage: event.data.percentage,
196
- });
197
- break;
198
- case 'done':
199
- sendEvent('done', {
200
- success: event.data.success,
201
- ticketsProcessed: event.data.ticketsProcessed,
202
- ticketsSucceeded: event.data.ticketsSucceeded,
203
- ticketsFailed: event.data.ticketsFailed,
204
- totalCost: event.data.totalCost,
205
- tokensUsed: event.data.tokensUsed,
206
- });
207
- break;
208
- }
209
- }
210
- }
211
- catch (error) {
212
- sendEvent('done', {
213
- success: false,
214
- ticketsProcessed: 0,
215
- ticketsSucceeded: 0,
216
- ticketsFailed: 0,
217
- totalCost: 0,
218
- tokensUsed: { input: 0, output: 0, cacheCreation: 0, cacheRead: 0 },
219
- error: error instanceof Error ? error.message : String(error),
220
- });
221
- }
222
- finally {
223
- reply.raw.end();
224
- }
225
- }
226
- //# sourceMappingURL=build.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../../kosuke/serve/routes/build.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Health check route
3
- */
4
- import type { FastifyRequest, FastifyReply } from 'fastify';
5
- export declare function healthRoute(_req: FastifyRequest, reply: FastifyReply): Promise<void>;
6
- //# sourceMappingURL=health.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../../../kosuke/serve/routes/health.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5D,wBAAsB,WAAW,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAM1F"}
@@ -1,11 +0,0 @@
1
- /**
2
- * Health check route
3
- */
4
- export async function healthRoute(_req, reply) {
5
- reply.send({
6
- status: 'ok',
7
- uptime: process.uptime(),
8
- timestamp: new Date().toISOString(),
9
- });
10
- }
11
- //# sourceMappingURL=health.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"health.js","sourceRoot":"","sources":["../../../../kosuke/serve/routes/health.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAoB,EAAE,KAAmB;IACzE,KAAK,CAAC,IAAI,CAAC;QACT,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;QACxB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC,CAAC;AACL,CAAC"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Plan command SSE route
3
- */
4
- import type { FastifyRequest, FastifyReply } from 'fastify';
5
- export declare function planRoute(req: FastifyRequest, reply: FastifyReply): Promise<void>;
6
- //# sourceMappingURL=plan.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../../kosuke/serve/routes/plan.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAO5D,wBAAsB,SAAS,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAmHvF"}
@@ -1,106 +0,0 @@
1
- /**
2
- * Plan command SSE route
3
- */
4
- import { planCoreStream } from '../../commands/plan.js';
5
- import { parseToolAction } from '../../utils/claude-agent.js';
6
- import { existsSync } from 'fs';
7
- export async function planRoute(req, reply) {
8
- // Request body is already validated by middleware
9
- const { query, cwd, noTest, resume } = req.body;
10
- // Verify directory exists
11
- if (!existsSync(cwd)) {
12
- reply.code(400).send({
13
- error: 'Invalid directory',
14
- message: `Directory does not exist: ${cwd}`,
15
- });
16
- return;
17
- }
18
- // Set SSE headers
19
- reply.raw.writeHead(200, {
20
- 'Content-Type': 'text/event-stream',
21
- 'Cache-Control': 'no-cache',
22
- Connection: 'keep-alive',
23
- });
24
- const sendEvent = (event, data) => {
25
- reply.raw.write(`event: ${event}\n`);
26
- reply.raw.write(`data: ${JSON.stringify(data)}\n\n`);
27
- };
28
- try {
29
- const options = {
30
- prompt: query,
31
- directory: cwd,
32
- noTest,
33
- resume,
34
- };
35
- const stream = planCoreStream(options);
36
- // Stream polished events (filter verbose content)
37
- for await (const event of stream) {
38
- if (event.type === 'tool_call') {
39
- // Parse and send tool call event
40
- const toolInput = event.data.input;
41
- const parsed = parseToolAction(event.data.name, toolInput);
42
- sendEvent('tool_call', {
43
- action: parsed.action,
44
- params: parsed.params,
45
- });
46
- }
47
- else if (event.type === 'message') {
48
- const msg = event.data;
49
- // Skip verbose tool results (file contents, grep results)
50
- if (msg.type === 'user' && 'tool_use_result' in msg) {
51
- continue; // Don't send file contents to client
52
- }
53
- // Skip system init (too verbose)
54
- if (msg.type === 'system' && msg.subtype === 'init') {
55
- continue;
56
- }
57
- // Send assistant messages (text only, tool calls handled separately)
58
- if (msg.type === 'assistant') {
59
- const polishedMsg = {
60
- type: msg.type,
61
- session_id: msg.session_id,
62
- };
63
- // Extract text content
64
- const msgData = msg.message;
65
- if (msgData.content && Array.isArray(msgData.content)) {
66
- for (const block of msgData.content) {
67
- if (block.type === 'text' && block.text) {
68
- polishedMsg.text = block.text;
69
- }
70
- }
71
- }
72
- // Include token usage
73
- if (msgData.usage) {
74
- polishedMsg.usage = msgData.usage;
75
- }
76
- // Only send if there's actual text content (skip usage-only messages)
77
- if (polishedMsg.text) {
78
- sendEvent('message', polishedMsg);
79
- }
80
- }
81
- // Skip result messages (usage-only, not useful for client)
82
- }
83
- else if (event.type === 'done') {
84
- // Send final result
85
- sendEvent('done', {
86
- status: event.data.status,
87
- ticketsFile: event.data.ticketsFile,
88
- tokensUsed: event.data.tokensUsed,
89
- cost: event.data.cost,
90
- sessionId: event.data.sessionId,
91
- error: event.data.error,
92
- });
93
- }
94
- }
95
- }
96
- catch (error) {
97
- sendEvent('done', {
98
- status: 'error',
99
- error: error instanceof Error ? error.message : String(error),
100
- });
101
- }
102
- finally {
103
- reply.raw.end();
104
- }
105
- }
106
- //# sourceMappingURL=plan.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../../kosuke/serve/routes/plan.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- /**
2
- * Fastify server for Kosuke CLI commands over HTTP with SSE
3
- */
4
- import type { FastifyInstance } from 'fastify';
5
- export interface ServeOptions {
6
- port?: number;
7
- }
8
- /**
9
- * Create and configure Fastify server
10
- */
11
- export declare function createServer(): FastifyInstance;
12
- /**
13
- * Start the Kosuke server
14
- */
15
- export declare function startServer(options?: ServeOptions): Promise<never>;
16
- //# sourceMappingURL=server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../kosuke/serve/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAU/C,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,eAAe,CAgB9C;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,KAAK,CAAC,CAqC5E"}
@@ -1,67 +0,0 @@
1
- /**
2
- * Fastify server for Kosuke CLI commands over HTTP with SSE
3
- */
4
- import Fastify from 'fastify';
5
- import { healthRoute } from './routes/health.js';
6
- import { planRoute } from './routes/plan.js';
7
- import { buildRoute } from './routes/build.js';
8
- import { validateRequest } from './middleware/validation.js';
9
- import { errorHandler, notFoundHandler } from './middleware/error-handler.js';
10
- import { planRequestSchema } from './validation/plan.js';
11
- import { buildRequestSchema } from './validation/build.js';
12
- import { DEFAULT_SERVER_PORT } from '../utils/constants.js';
13
- /**
14
- * Create and configure Fastify server
15
- */
16
- export function createServer() {
17
- const app = Fastify({
18
- logger: false,
19
- disableRequestLogging: true,
20
- });
21
- // Routes
22
- app.get('/health', healthRoute);
23
- app.post('/api/plan', { preHandler: validateRequest(planRequestSchema) }, planRoute);
24
- app.post('/api/build', { preHandler: validateRequest(buildRequestSchema) }, buildRoute);
25
- // Error handlers
26
- app.setNotFoundHandler(notFoundHandler);
27
- app.setErrorHandler(errorHandler);
28
- return app;
29
- }
30
- /**
31
- * Start the Kosuke server
32
- */
33
- export async function startServer(options = {}) {
34
- const port = options.port || DEFAULT_SERVER_PORT;
35
- // Validate environment
36
- if (!process.env.ANTHROPIC_API_KEY) {
37
- throw new Error('ANTHROPIC_API_KEY environment variable is required');
38
- }
39
- if (!process.env.GITHUB_TOKEN) {
40
- throw new Error('GITHUB_TOKEN environment variable is required for build command');
41
- }
42
- const app = createServer();
43
- try {
44
- await app.listen({ port, host: '0.0.0.0' });
45
- console.log(`
46
- ╔══════════════════════════════════════════════════════════════════════════════╗
47
- ║ Kosuke Server Running ║
48
- ╚══════════════════════════════════════════════════════════════════════════════╝
49
-
50
- 🚀 Server listening on http://localhost:${port}
51
-
52
- 📡 Available endpoints:
53
- GET /health - Health check
54
- POST /api/plan - Plan command with SSE
55
- POST /api/build - Build command with SSE
56
-
57
- Press Ctrl+C to stop the server.
58
- `);
59
- }
60
- catch (error) {
61
- console.error('❌ Failed to start server:', error);
62
- throw error;
63
- }
64
- // Keep the promise pending forever (server runs until Ctrl+C)
65
- return new Promise(() => { });
66
- }
67
- //# sourceMappingURL=server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../kosuke/serve/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAM5D;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,GAAG,GAAG,OAAO,CAAC;QAClB,MAAM,EAAE,KAAK;QACb,qBAAqB,EAAE,IAAI;KAC5B,CAAC,CAAC;IAEH,SAAS;IACT,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAChC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,eAAe,CAAC,iBAAiB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACrF,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,eAAe,CAAC,kBAAkB,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IAExF,iBAAiB;IACjB,GAAG,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACxC,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IAElC,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,UAAwB,EAAE;IAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,mBAAmB,CAAC;IAEjD,uBAAuB;IACvB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;IAE3B,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC;;;;;0CAK0B,IAAI;;;;;;;;CAQ7C,CAAC,CAAC;IACD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;QAClD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,8DAA8D;IAC9D,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AAC/B,CAAC"}
@@ -1,41 +0,0 @@
1
- /**
2
- * Build command validation schemas
3
- */
4
- import { z } from 'zod';
5
- /**
6
- * Build request validation schema
7
- * Note: No askCommit/askConfirm in API mode (auto-commit everything)
8
- */
9
- export declare const buildRequestSchema: z.ZodObject<{
10
- cwd: z.ZodString;
11
- ticketsFile: z.ZodOptional<z.ZodString>;
12
- dbUrl: z.ZodOptional<z.ZodString>;
13
- reset: z.ZodOptional<z.ZodBoolean>;
14
- review: z.ZodOptional<z.ZodBoolean>;
15
- url: z.ZodOptional<z.ZodString>;
16
- headless: z.ZodOptional<z.ZodBoolean>;
17
- verbose: z.ZodOptional<z.ZodBoolean>;
18
- trace: z.ZodOptional<z.ZodBoolean>;
19
- }, "strip", z.ZodTypeAny, {
20
- cwd: string;
21
- verbose?: boolean | undefined;
22
- url?: string | undefined;
23
- review?: boolean | undefined;
24
- dbUrl?: string | undefined;
25
- trace?: boolean | undefined;
26
- headless?: boolean | undefined;
27
- ticketsFile?: string | undefined;
28
- reset?: boolean | undefined;
29
- }, {
30
- cwd: string;
31
- verbose?: boolean | undefined;
32
- url?: string | undefined;
33
- review?: boolean | undefined;
34
- dbUrl?: string | undefined;
35
- trace?: boolean | undefined;
36
- headless?: boolean | undefined;
37
- ticketsFile?: string | undefined;
38
- reset?: boolean | undefined;
39
- }>;
40
- export type BuildRequest = z.infer<typeof buildRequestSchema>;
41
- //# sourceMappingURL=build.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../kosuke/serve/validation/build.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
@@ -1,20 +0,0 @@
1
- /**
2
- * Build command validation schemas
3
- */
4
- import { z } from 'zod';
5
- /**
6
- * Build request validation schema
7
- * Note: No askCommit/askConfirm in API mode (auto-commit everything)
8
- */
9
- export const buildRequestSchema = z.object({
10
- cwd: z.string().min(1, 'Working directory is required'),
11
- ticketsFile: z.string().optional(), // Relative to cwd, defaults to 'tickets.json'
12
- dbUrl: z.string().optional(), // Defaults to postgres://postgres:postgres@localhost:5432/postgres
13
- reset: z.boolean().optional(), // Reset all tickets to "Todo" before processing
14
- review: z.boolean().optional(), // Enable code review phase (default: true)
15
- url: z.string().optional(), // Base URL for web tests
16
- headless: z.boolean().optional(), // Run tests in headless mode
17
- verbose: z.boolean().optional(), // Verbose test output
18
- trace: z.boolean().optional(), // Enable Playwright trace recording
19
- });
20
- //# sourceMappingURL=build.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../../kosuke/serve/validation/build.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,+BAA+B,CAAC;IACvD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,8CAA8C;IAClF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,mEAAmE;IACjG,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,gDAAgD;IAC/E,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,2CAA2C;IAC3E,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,yBAAyB;IACrD,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,6BAA6B;IAC/D,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,sBAAsB;IACvD,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,oCAAoC;CACpE,CAAC,CAAC"}
@@ -1,26 +0,0 @@
1
- /**
2
- * Plan command validation schemas
3
- */
4
- import { z } from 'zod';
5
- /**
6
- * Plan request validation schema
7
- *
8
- */
9
- export declare const planRequestSchema: z.ZodObject<{
10
- query: z.ZodString;
11
- cwd: z.ZodString;
12
- noTest: z.ZodOptional<z.ZodBoolean>;
13
- resume: z.ZodOptional<z.ZodString>;
14
- }, "strip", z.ZodTypeAny, {
15
- cwd: string;
16
- query: string;
17
- resume?: string | undefined;
18
- noTest?: boolean | undefined;
19
- }, {
20
- cwd: string;
21
- query: string;
22
- resume?: string | undefined;
23
- noTest?: boolean | undefined;
24
- }>;
25
- export type PlanRequest = z.infer<typeof planRequestSchema>;
26
- //# sourceMappingURL=plan.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../../kosuke/serve/validation/plan.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAK5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -1,15 +0,0 @@
1
- /**
2
- * Plan command validation schemas
3
- */
4
- import { z } from 'zod';
5
- /**
6
- * Plan request validation schema
7
- *
8
- */
9
- export const planRequestSchema = z.object({
10
- query: z.string().min(1, 'Query cannot be empty'),
11
- cwd: z.string().min(1, 'Working directory is required'),
12
- noTest: z.boolean().optional(),
13
- resume: z.string().optional(),
14
- });
15
- //# sourceMappingURL=plan.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../../kosuke/serve/validation/plan.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;IACjD,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,+BAA+B,CAAC;IACvD,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC"}