@cyanautomation/kaseki-agent 1.26.0 → 1.27.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 (116) hide show
  1. package/README.md +103 -46
  2. package/dist/cli/KasekiCLI.d.ts +4 -0
  3. package/dist/cli/KasekiCLI.d.ts.map +1 -1
  4. package/dist/cli/KasekiCLI.js +130 -5
  5. package/dist/cli/KasekiCLI.js.map +1 -1
  6. package/dist/cli/api/LocalKasekiApiClient.d.ts +23 -0
  7. package/dist/cli/api/LocalKasekiApiClient.d.ts.map +1 -0
  8. package/dist/cli/api/LocalKasekiApiClient.js +208 -0
  9. package/dist/cli/api/LocalKasekiApiClient.js.map +1 -0
  10. package/dist/cli/commands/CancelCommand.d.ts +20 -0
  11. package/dist/cli/commands/CancelCommand.d.ts.map +1 -0
  12. package/dist/cli/commands/CancelCommand.js +49 -0
  13. package/dist/cli/commands/CancelCommand.js.map +1 -0
  14. package/dist/cli/commands/DoctorCommand.d.ts.map +1 -1
  15. package/dist/cli/commands/DoctorCommand.js +12 -3
  16. package/dist/cli/commands/DoctorCommand.js.map +1 -1
  17. package/dist/cli/commands/InitCommand.d.ts +22 -0
  18. package/dist/cli/commands/InitCommand.d.ts.map +1 -0
  19. package/dist/cli/commands/InitCommand.js +151 -0
  20. package/dist/cli/commands/InitCommand.js.map +1 -0
  21. package/dist/cli/commands/ListCommand.d.ts +11 -1
  22. package/dist/cli/commands/ListCommand.d.ts.map +1 -1
  23. package/dist/cli/commands/ListCommand.js +33 -48
  24. package/dist/cli/commands/ListCommand.js.map +1 -1
  25. package/dist/cli/commands/ReportCommand.d.ts +21 -1
  26. package/dist/cli/commands/ReportCommand.d.ts.map +1 -1
  27. package/dist/cli/commands/ReportCommand.js +225 -72
  28. package/dist/cli/commands/ReportCommand.js.map +1 -1
  29. package/dist/cli/commands/RunCommand.d.ts +13 -9
  30. package/dist/cli/commands/RunCommand.d.ts.map +1 -1
  31. package/dist/cli/commands/RunCommand.js +56 -185
  32. package/dist/cli/commands/RunCommand.js.map +1 -1
  33. package/dist/cli/commands/SetupCommand.d.ts +4 -21
  34. package/dist/cli/commands/SetupCommand.d.ts.map +1 -1
  35. package/dist/cli/commands/SetupCommand.js +16 -164
  36. package/dist/cli/commands/SetupCommand.js.map +1 -1
  37. package/dist/cli/commands/StatusCommand.d.ts +19 -0
  38. package/dist/cli/commands/StatusCommand.d.ts.map +1 -0
  39. package/dist/cli/commands/StatusCommand.js +62 -0
  40. package/dist/cli/commands/StatusCommand.js.map +1 -0
  41. package/dist/cli.d.ts +1 -1
  42. package/dist/cli.js +40 -21
  43. package/dist/cli.js.map +1 -1
  44. package/dist/config/ConfigManager.d.ts +30 -2
  45. package/dist/config/ConfigManager.d.ts.map +1 -1
  46. package/dist/config/ConfigManager.js +72 -4
  47. package/dist/config/ConfigManager.js.map +1 -1
  48. package/dist/kaseki-api-client.d.ts +0 -4
  49. package/dist/kaseki-api-client.d.ts.map +1 -1
  50. package/dist/kaseki-api-client.js +0 -11
  51. package/dist/kaseki-api-client.js.map +1 -1
  52. package/dist/kaseki-api-config.d.ts +2 -0
  53. package/dist/kaseki-api-config.d.ts.map +1 -1
  54. package/dist/kaseki-api-config.js +39 -16
  55. package/dist/kaseki-api-config.js.map +1 -1
  56. package/dist/kaseki-api-routes.d.ts +1 -1
  57. package/dist/kaseki-api-routes.d.ts.map +1 -1
  58. package/dist/kaseki-api-routes.js +166 -13
  59. package/dist/kaseki-api-routes.js.map +1 -1
  60. package/dist/kaseki-api-service-wrapper.d.ts +1 -1
  61. package/dist/kaseki-api-service-wrapper.d.ts.map +1 -1
  62. package/dist/kaseki-api-service-wrapper.js +24 -6
  63. package/dist/kaseki-api-service-wrapper.js.map +1 -1
  64. package/dist/kaseki-api-service.d.ts.map +1 -1
  65. package/dist/kaseki-api-service.js +84 -14
  66. package/dist/kaseki-api-service.js.map +1 -1
  67. package/dist/kaseki-api-types.d.ts +7 -3
  68. package/dist/kaseki-api-types.d.ts.map +1 -1
  69. package/dist/kaseki-api-types.js +2 -3
  70. package/dist/kaseki-api-types.js.map +1 -1
  71. package/dist/metrics.d.ts +2 -1
  72. package/dist/metrics.d.ts.map +1 -1
  73. package/dist/metrics.js +1 -1
  74. package/dist/metrics.js.map +1 -1
  75. package/dist/openapi-spec-generator.d.ts.map +1 -1
  76. package/dist/openapi-spec-generator.js +20 -1085
  77. package/dist/openapi-spec-generator.js.map +1 -1
  78. package/dist/openapi-spec-generators/components.d.ts +36 -0
  79. package/dist/openapi-spec-generators/components.d.ts.map +1 -0
  80. package/dist/openapi-spec-generators/components.js +106 -0
  81. package/dist/openapi-spec-generators/components.js.map +1 -0
  82. package/dist/openapi-spec-generators/paths.d.ts +20 -0
  83. package/dist/openapi-spec-generators/paths.d.ts.map +1 -0
  84. package/dist/openapi-spec-generators/paths.js +843 -0
  85. package/dist/openapi-spec-generators/paths.js.map +1 -0
  86. package/dist/openapi-spec-generators/schemas.d.ts +30 -0
  87. package/dist/openapi-spec-generators/schemas.d.ts.map +1 -0
  88. package/dist/openapi-spec-generators/schemas.js +313 -0
  89. package/dist/openapi-spec-generators/schemas.js.map +1 -0
  90. package/dist/run-artifact-metadata-cache.d.ts +0 -1
  91. package/dist/run-artifact-metadata-cache.d.ts.map +1 -1
  92. package/dist/run-artifact-metadata-cache.js +1 -1
  93. package/dist/run-artifact-metadata-cache.js.map +1 -1
  94. package/dist/setup/SetupWizard.d.ts +129 -0
  95. package/dist/setup/SetupWizard.d.ts.map +1 -0
  96. package/dist/setup/SetupWizard.js +455 -0
  97. package/dist/setup/SetupWizard.js.map +1 -0
  98. package/dist/setup/env-defaults.d.ts +86 -0
  99. package/dist/setup/env-defaults.d.ts.map +1 -0
  100. package/dist/setup/env-defaults.js +403 -0
  101. package/dist/setup/env-defaults.js.map +1 -0
  102. package/dist/utils/progress-normalizer.d.ts +0 -1
  103. package/dist/utils/progress-normalizer.d.ts.map +1 -1
  104. package/dist/utils/progress-normalizer.js +1 -1
  105. package/dist/utils/progress-normalizer.js.map +1 -1
  106. package/dist/utils/response-helpers.d.ts +0 -7
  107. package/dist/utils/response-helpers.d.ts.map +1 -1
  108. package/dist/utils/response-helpers.js +0 -25
  109. package/dist/utils/response-helpers.js.map +1 -1
  110. package/kaseki-agent.sh +12 -5
  111. package/package.json +15 -14
  112. package/scripts/deploy-pi-template.sh +29 -0
  113. package/scripts/docker-entrypoint.sh +14 -0
  114. package/scripts/startup-checks.sh +268 -0
  115. package/scripts/templates/REST_API_SERVICE.md +5 -6
  116. package/scripts/test-github-app.sh +19 -1
package/README.md CHANGED
@@ -10,15 +10,23 @@ Kaseki is a proof-of-concept ephemeral coding-agent runner. Each run is a number
10
10
  # Global install (recommended)
11
11
  npm install -g @cyanautomation/kaseki-agent
12
12
 
13
- # First-time setup
13
+ # First-time admin workflows
14
+ kaseki-agent doctor
14
15
  kaseki-agent setup
16
+ kaseki-agent config show
17
+ kaseki-agent secrets list
18
+ ```
15
19
 
16
- # Run agent on a repository
17
- kaseki-agent run https://github.com/CyanAutomation/crudmapper main
20
+ The npm CLI is primarily an admin/helper toolbox (`doctor`, `setup`, `config`, and `secrets`) plus an API client for task workflows. Task commands such as `run`, `list`, `report`, `status`, and `stop`/`cancel` require a running local API service or a configured `KASEKI_API_URL`.
18
21
 
19
- # View results
20
- kaseki-agent list
21
- kaseki-agent report kaseki-1
22
+ ```bash
23
+ # Start a local API service in one terminal
24
+ KASEKI_API_KEYS=sk-dev kaseki-agent serve --port 8080
25
+
26
+ # Submit and inspect work through that API in another terminal
27
+ KASEKI_API_KEY=sk-dev kaseki-agent run https://github.com/CyanAutomation/crudmapper main
28
+ KASEKI_API_KEY=sk-dev kaseki-agent list
29
+ KASEKI_API_KEY=sk-dev kaseki-agent report kaseki-1
22
30
  ```
23
31
 
24
32
  ### Without Global Install
@@ -26,7 +34,7 @@ kaseki-agent report kaseki-1
26
34
  ```bash
27
35
  npm install @cyanautomation/kaseki-agent
28
36
  npx kaseki-agent setup
29
- npx kaseki-agent run https://github.com/CyanAutomation/crudmapper main
37
+ KASEKI_API_URL=http://localhost:8080/api npx kaseki-agent run https://github.com/CyanAutomation/crudmapper main
30
38
  ```
31
39
 
32
40
  ### Using Docker ⭐ (Alternative)
@@ -52,11 +60,11 @@ docker run -it \
52
60
 
53
61
  **Kaseki** orchestrates three deployment patterns:
54
62
 
55
- 1. **CLI** — `kaseki-agent` command for direct execution (this package)
56
- 2. **Docker** — Containerized execution without host dependencies
57
- 3. **REST API** — `kaseki-agent serve` for distributed orchestration
63
+ 1. **NPM CLI** — admin/helper workflows plus API-backed task clients (this package)
64
+ 2. **Docker** — containerized setup and service execution without host Node.js
65
+ 3. **REST API** — `kaseki-agent serve` for local or distributed orchestration
58
66
 
59
- Each produces a numbered instance (kaseki-1, kaseki-2, …) with isolated workspace and results.
67
+ Task execution produces a numbered instance (kaseki-1, kaseki-2, …) with isolated workspace and results.
60
68
 
61
69
  ---
62
70
 
@@ -106,7 +114,7 @@ Create `~/.kaseki/config.json`:
106
114
  "auth": {
107
115
  "openrouter_api_key_file": "/home/pi/secrets/openrouter_api_key",
108
116
  "github_app_id_file": "/home/pi/secrets/github_app_id",
109
- "github_app_client_id_file": "/home/pi/secrets/github_client_id",
117
+ "github_app_client_id_file": "/home/pi/secrets/github_app_client_id",
110
118
  "github_app_private_key_file": "/home/pi/secrets/github_app_private_key"
111
119
  }
112
120
  }
@@ -119,11 +127,11 @@ Create `~/.kaseki/config.json`:
119
127
  ```bash
120
128
  export OPENROUTER_API_KEY_FILE=/path/to/openrouter_key
121
129
  export GITHUB_APP_ID_FILE=/path/to/github_app_id
122
- export GITHUB_APP_CLIENT_ID_FILE=/path/to/github_client_id
130
+ export GITHUB_APP_CLIENT_ID_FILE=/path/to/github_app_client_id
123
131
  export GITHUB_APP_PRIVATE_KEY_FILE=/path/to/github_app_private_key
124
132
 
125
133
  # If using sudo, preserve env vars with -E flag
126
- sudo -E kaseki-agent run ...
134
+ sudo -E env KASEKI_API_URL=http://localhost:8080/api kaseki-agent run ...
127
135
  ```
128
136
 
129
137
  **Advantages:** Works for one-off runs, CI/CD pipelines.
@@ -134,25 +142,38 @@ See [docs/DEPLOYMENT.md](docs/DEPLOYMENT.md) for setting up the kaseki-api servi
134
142
 
135
143
  **👉 Full guide:** [docs/AUTH_SETUP.md](docs/AUTH_SETUP.md)
136
144
 
137
- ### Run Your First Task
145
+ ### Run Your First API-Backed Task
146
+
147
+ Start or select a Kaseki API controller before using task commands:
148
+
149
+ ```bash
150
+ # Local controller
151
+ KASEKI_API_KEYS=sk-dev kaseki-agent serve --port 8080
152
+
153
+ # Or remote controller
154
+ export KASEKI_API_URL=https://controller.example.com/api
155
+ export KASEKI_API_KEY=sk-your-kaseki-api-key
156
+ ```
157
+
158
+ Then submit work through the API client:
138
159
 
139
160
  ```bash
140
161
  # Simple example
141
- kaseki-agent run https://github.com/CyanAutomation/crudmapper main
162
+ KASEKI_API_KEY=sk-dev kaseki-agent run https://github.com/CyanAutomation/crudmapper main
142
163
 
143
164
  # With custom task prompt
144
- kaseki-agent run https://github.com/CyanAutomation/crudmapper main \
165
+ KASEKI_API_KEY=sk-dev kaseki-agent run https://github.com/CyanAutomation/crudmapper main \
145
166
  "Fix the TypeScript errors in src/"
146
167
  ```
147
168
 
148
- ### View Results
169
+ ### View API Results
149
170
 
150
171
  ```bash
151
- # List all instances
152
- kaseki-agent list
172
+ # List all API-known instances
173
+ KASEKI_API_KEY=sk-dev kaseki-agent list
153
174
 
154
- # View specific instance
155
- kaseki-agent report kaseki-1
175
+ # View a specific API-backed instance
176
+ KASEKI_API_KEY=sk-dev kaseki-agent report kaseki-1
156
177
  ```
157
178
 
158
179
  ---
@@ -176,34 +197,40 @@ kaseki-agent setup
176
197
  - Saves configuration (project-local or user-global)
177
198
  - Runs doctor checks to verify everything works
178
199
 
179
- #### `run` — Execute Agent on Repository
200
+ #### `run` — Submit Agent Task Through the API
180
201
 
181
202
  ```bash
182
203
  kaseki-agent run <REPO_URL> [GIT_REF] [TASK_PROMPT]
183
204
  ```
184
205
 
206
+ `run` is an API-backed client command. Start `kaseki-agent serve` locally first, or set `KASEKI_API_URL` to an existing controller. Set `KASEKI_API_KEY` when the service requires bearer authentication.
207
+
185
208
  **Examples:**
186
209
 
187
210
  ```bash
188
- # Simple execution (uses main branch)
189
- kaseki-agent run https://github.com/CyanAutomation/crudmapper
211
+ # Local API service in another terminal
212
+ KASEKI_API_KEYS=sk-dev kaseki-agent serve --port 8080
213
+
214
+ # Simple API submission (uses main branch)
215
+ KASEKI_API_KEY=sk-dev kaseki-agent run https://github.com/CyanAutomation/crudmapper
190
216
 
191
- # Specify branch
217
+ # Remote controller
218
+ KASEKI_API_URL=https://controller.example.com/api \
219
+ KASEKI_API_KEY=sk-your-kaseki-api-key \
192
220
  kaseki-agent run https://github.com/CyanAutomation/crudmapper develop
193
221
 
194
222
  # With custom task prompt
195
- kaseki-agent run https://github.com/CyanAutomation/crudmapper main \
223
+ KASEKI_API_KEY=sk-dev kaseki-agent run https://github.com/CyanAutomation/crudmapper main \
196
224
  "Fix all TypeScript errors in src/"
197
225
  ```
198
226
 
199
- **Execution Flow:**
227
+ **API Flow:**
200
228
 
201
- 1. Pre-flight checks (docker, node, npm, git, API key)
202
- 2. Auto-pull Docker image (if needed)
203
- 3. Create instance directories (workspace + results)
204
- 4. Spawn container with security hardening
205
- 5. Stream agent output in real-time
206
- 6. Collect results and generate report
229
+ 1. Resolve the API base URL from `KASEKI_API_URL`, config `api.base_url`, or `http://localhost:8080/api`.
230
+ 2. Include `Authorization: Bearer $KASEKI_API_KEY` when configured.
231
+ 3. Submit the task to `POST /api/runs`.
232
+ 4. Print the controller-provided run ID and status URL.
233
+ 5. Use `status`, `list`, or `report` to inspect the API-backed run.
207
234
 
208
235
  #### `doctor` — Health Check & Validation
209
236
 
@@ -226,12 +253,14 @@ kaseki-agent doctor [--json] [--fix]
226
253
  - `--json` — JSON output (useful for scripts)
227
254
  - `--fix` — Attempt auto-remediation (pull image, show install hints)
228
255
 
229
- #### `list` — Show All Instances
256
+ #### `list` — Show API-Known Instances
230
257
 
231
258
  ```bash
232
259
  kaseki-agent list [--status STATE]
233
260
  ```
234
261
 
262
+ `list` reads the configured Kaseki API. It requires a local API service or `KASEKI_API_URL`; it does not scan local result directories.
263
+
235
264
  **Filter by status:**
236
265
 
237
266
  ```bash
@@ -247,12 +276,14 @@ kaseki-agent list --status running
247
276
  - Creation date
248
277
  - Execution duration
249
278
 
250
- #### `report` — View Instance Results
279
+ #### `report` — View API-Backed Instance Results
251
280
 
252
281
  ```bash
253
282
  kaseki-agent report <INSTANCE_ID>
254
283
  ```
255
284
 
285
+ By default, `report` reads status, analysis, artifact, and log endpoints from the configured API. Use `kaseki-agent report <INSTANCE_ID> --from-disk` only when intentionally inspecting local result files without an API.
286
+
256
287
  **Shows:**
257
288
 
258
289
  - Instance metadata (repo, branch, model, status)
@@ -260,6 +291,23 @@ kaseki-agent report <INSTANCE_ID>
260
291
  - Final status and exit code
261
292
  - Detailed summary (if available)
262
293
 
294
+ #### `status` — Poll API Run Status
295
+
296
+ ```bash
297
+ kaseki-agent status <INSTANCE_ID> [--json]
298
+ ```
299
+
300
+ `status` requires a local API service or configured `KASEKI_API_URL`.
301
+
302
+ #### `stop` / `cancel` — Cancel API-Backed Work
303
+
304
+ ```bash
305
+ kaseki-agent stop <INSTANCE_ID>
306
+ kaseki-agent cancel <INSTANCE_ID>
307
+ ```
308
+
309
+ Both commands call the configured API to cancel queued or running work.
310
+
263
311
  #### `config` — Manage Configuration
264
312
 
265
313
  ```bash
@@ -399,7 +447,11 @@ Configuration is loaded from (in order of precedence):
399
447
  # Required
400
448
  OPENROUTER_API_KEY_FILE=~/.kaseki/secrets/openrouter_api_key
401
449
 
402
- # Optional
450
+ # API-client commands
451
+ KASEKI_API_URL=http://localhost:8080/api # Controller API base URL
452
+ KASEKI_API_KEY=sk-your-kaseki-api-key # Bearer token for authenticated APIs
453
+
454
+ # Optional worker/service settings
403
455
  KASEKI_ROOT=/agents # Base directory
404
456
  KASEKI_MODEL=openrouter/free # AI model
405
457
  KASEKI_AGENT_TIMEOUT_SECONDS=1200 # Timeout
@@ -415,15 +467,18 @@ KASEKI_STARTUP_CHECK_MODE=boot # boot or baseline-validation for dry-ru
415
467
 
416
468
  ### Deployment Patterns
417
469
 
418
- #### CLI (Direct Execution)
470
+ #### npm CLI (Admin Toolbox + API Client)
419
471
 
420
472
  ```bash
473
+ kaseki-agent doctor
474
+ kaseki-agent setup
475
+ kaseki-agent config show
421
476
  kaseki-agent run <repo> <ref>
422
477
  ```
423
478
 
424
- - Single-step orchestration
425
- - Immediate results
426
- - Best for: CI/CD, direct usage
479
+ - Primary workflows: `doctor`, `setup`, `config`, and `secrets`
480
+ - Task workflows: `run`, `list`, `report`, `status`, and `stop`/`cancel` call the Kaseki API
481
+ - Best for: host setup, diagnostics, and submitting work to a local or remote controller
427
482
 
428
483
  #### REST API (Distributed)
429
484
 
@@ -664,7 +719,7 @@ curl -H "Authorization: Bearer sk-your-secret-key" \
664
719
  | `GET` | `/api/runs/:id/analysis` | Comprehensive summary |
665
720
  | `GET` | `/api/results/:id/:file` | Download artifact (diff, metadata) |
666
721
 
667
- **Full API documentation:** See [docs/API.md](docs/API.md)
722
+ **Full API documentation:** See [docs/API.md](docs/API.md)
668
723
  **Deployment guide:** See [docs/DEPLOYMENT.md](docs/DEPLOYMENT.md)
669
724
 
670
725
  **When to use:** Distributed orchestration, external controller integration, multi-user scenarios.
@@ -1217,7 +1272,7 @@ mkdir -p ~/secrets
1217
1272
  chmod 0700 ~/secrets
1218
1273
 
1219
1274
  echo "YOUR_APP_ID" > ~/secrets/github_app_id
1220
- echo "YOUR_CLIENT_ID" > ~/secrets/github_client_id
1275
+ echo "YOUR_CLIENT_ID" > ~/secrets/github_app_client_id
1221
1276
  cp ~/path/to/private-key.pem ~/secrets/github_app_private_key
1222
1277
  chmod 0600 ~/secrets/github_app_*
1223
1278
  ```
@@ -1227,7 +1282,7 @@ chmod 0600 ~/secrets/github_app_*
1227
1282
  ```bash
1228
1283
  OPENROUTER_API_KEY_FILE=~/secrets/openrouter_api_key \
1229
1284
  GITHUB_APP_ID_FILE=~/secrets/github_app_id \
1230
- GITHUB_APP_CLIENT_ID_FILE=~/secrets/github_client_id \
1285
+ GITHUB_APP_CLIENT_ID_FILE=~/secrets/github_app_client_id \
1231
1286
  GITHUB_APP_PRIVATE_KEY_FILE=~/secrets/github_app_private_key \
1232
1287
  /agents/kaseki-template/run-kaseki.sh https://github.com/org/repo
1233
1288
  ```
@@ -1238,7 +1293,7 @@ and pass paths rather than embedding the PEM in `.env`:
1238
1293
  ```yaml
1239
1294
  environment:
1240
1295
  GITHUB_APP_ID_FILE: /agents/secrets/github_app_id
1241
- GITHUB_APP_CLIENT_ID_FILE: /agents/secrets/github_client_id
1296
+ GITHUB_APP_CLIENT_ID_FILE: /agents/secrets/github_app_client_id
1242
1297
  GITHUB_APP_PRIVATE_KEY_FILE: /agents/secrets/github_app_private_key
1243
1298
  volumes:
1244
1299
  - /agents:/agents:rw
@@ -1364,7 +1419,9 @@ Startup checks have two depths. Boot-only startup checks (`startupCheck: true`,
1364
1419
 
1365
1420
  | Variable | Default | Notes |
1366
1421
  |---|---|---|
1367
- | `KASEKI_API_KEYS` | | Comma-separated API keys (required for service) |
1422
+ | `KASEKI_API_URL` | `http://localhost:8080/api` | Client-side API base URL for npm task commands |
1423
+ | `KASEKI_API_KEY` | — | Client-side bearer token for npm task commands |
1424
+ | `KASEKI_API_KEYS` | — | Comma-separated API keys accepted by the service |
1368
1425
  | `KASEKI_API_PORT` | 8080 | HTTP listen port |
1369
1426
  | `KASEKI_API_LOG_LEVEL` | info | Log verbosity: debug/info/warn/error |
1370
1427
  | `KASEKI_API_MAX_CONCURRENT_RUNS` | 3 | Max concurrent jobs |
@@ -22,6 +22,10 @@ export declare class KasekiCLI {
22
22
  * Dispatch to appropriate subcommand
23
23
  */
24
24
  dispatch(subcommand: string | undefined, args: string[]): Promise<number>;
25
+ /**
26
+ * Print command-specific help without executing checks or API calls.
27
+ */
28
+ private printCommandHelp;
25
29
  /**
26
30
  * Get list of available commands
27
31
  */
@@ -1 +1 @@
1
- {"version":3,"file":"KasekiCLI.d.ts","sourceRoot":"","sources":["../../src/cli/KasekiCLI.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAIxD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1C;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,QAAQ,CAA0B;gBAE9B,aAAa,EAAE,aAAa;IAMxC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAoFxB;;OAEG;IACG,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IA6B/E;;OAEG;IACH,WAAW,IAAI,UAAU,EAAE;CAG5B"}
1
+ {"version":3,"file":"KasekiCLI.d.ts","sourceRoot":"","sources":["../../src/cli/KasekiCLI.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAIxD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1C;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,QAAQ,CAA0B;gBAE9B,aAAa,EAAE,aAAa;IAMxC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IA+HxB;;OAEG;IACG,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAkC/E;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAkFxB;;OAEG;IACH,WAAW,IAAI,UAAU,EAAE;CAG5B"}
@@ -20,9 +20,20 @@ export class KasekiCLI {
20
20
  registerCommands() {
21
21
  // Commands will be loaded dynamically to avoid circular dependencies
22
22
  // and reduce startup time
23
+ // NEW: Unified setup wizard (preferred)
24
+ this.commands.set('init', {
25
+ name: 'init',
26
+ description: 'Unified setup wizard (single-run, local API, or production)',
27
+ execute: async (args) => {
28
+ const { InitCommand } = await import('./commands/InitCommand.js');
29
+ const cmd = new InitCommand(this.configManager);
30
+ return cmd.execute(args);
31
+ },
32
+ });
33
+ // DEPRECATED: Old setup command (delegated to InitCommand for backwards compat)
23
34
  this.commands.set('setup', {
24
35
  name: 'setup',
25
- description: 'Interactive setup wizard (first-time configuration)',
36
+ description: '(DEPRECATED: use "init" instead) Interactive setup wizard',
26
37
  execute: async (args) => {
27
38
  const { SetupCommand } = await import('./commands/SetupCommand.js');
28
39
  const cmd = new SetupCommand(this.configManager);
@@ -31,7 +42,7 @@ export class KasekiCLI {
31
42
  });
32
43
  this.commands.set('run', {
33
44
  name: 'run',
34
- description: 'Run kaseki agent on target repository',
45
+ description: 'Submit a task run through the local Kaseki API',
35
46
  execute: async (args) => {
36
47
  const { RunCommand } = await import('./commands/RunCommand.js');
37
48
  const cmd = new RunCommand(this.configManager);
@@ -49,7 +60,7 @@ export class KasekiCLI {
49
60
  });
50
61
  this.commands.set('serve', {
51
62
  name: 'serve',
52
- description: 'Start REST API service for async execution',
63
+ description: 'Start the local REST API service for async task execution',
53
64
  execute: async (args) => {
54
65
  const { ServeCommand } = await import('./commands/ServeCommand.js');
55
66
  const cmd = new ServeCommand(this.configManager);
@@ -67,7 +78,7 @@ export class KasekiCLI {
67
78
  });
68
79
  this.commands.set('list', {
69
80
  name: 'list',
70
- description: 'List all kaseki instances',
81
+ description: 'List task runs through the local Kaseki API',
71
82
  execute: async (args) => {
72
83
  const { ListCommand } = await import('./commands/ListCommand.js');
73
84
  const cmd = new ListCommand(this.configManager);
@@ -76,13 +87,40 @@ export class KasekiCLI {
76
87
  });
77
88
  this.commands.set('report', {
78
89
  name: 'report',
79
- description: 'Generate report for completed instance',
90
+ description: 'Generate a task report through the local Kaseki API',
80
91
  execute: async (args) => {
81
92
  const { ReportCommand } = await import('./commands/ReportCommand.js');
82
93
  const cmd = new ReportCommand(this.configManager);
83
94
  return cmd.execute(args);
84
95
  },
85
96
  });
97
+ this.commands.set('status', {
98
+ name: 'status',
99
+ description: 'Poll task status through the local Kaseki API',
100
+ execute: async (args) => {
101
+ const { StatusCommand } = await import('./commands/StatusCommand.js');
102
+ const cmd = new StatusCommand(this.configManager);
103
+ return cmd.execute(args);
104
+ },
105
+ });
106
+ this.commands.set('cancel', {
107
+ name: 'cancel',
108
+ description: 'Cancel a queued or running task through the local Kaseki API',
109
+ execute: async (args) => {
110
+ const { CancelCommand } = await import('./commands/CancelCommand.js');
111
+ const cmd = new CancelCommand(this.configManager);
112
+ return cmd.execute(args);
113
+ },
114
+ });
115
+ this.commands.set('stop', {
116
+ name: 'stop',
117
+ description: 'Alias for cancel; stops a task through the local Kaseki API',
118
+ execute: async (args) => {
119
+ const { CancelCommand } = await import('./commands/CancelCommand.js');
120
+ const cmd = new CancelCommand(this.configManager, undefined, 'stop');
121
+ return cmd.execute(args);
122
+ },
123
+ });
86
124
  this.commands.set('secrets', {
87
125
  name: 'secrets',
88
126
  description: 'Manage stored secrets (keyring/file)',
@@ -107,6 +145,10 @@ export class KasekiCLI {
107
145
  console.error('\nRun \'kaseki-agent --help\' for available commands');
108
146
  return 1;
109
147
  }
148
+ if (args.includes('--help') || args.includes('-h')) {
149
+ this.printCommandHelp(command.name);
150
+ return 0;
151
+ }
110
152
  try {
111
153
  logger.debug(`Executing command: ${subcommand}`);
112
154
  return await command.execute(args);
@@ -124,6 +166,89 @@ export class KasekiCLI {
124
166
  return 1;
125
167
  }
126
168
  }
169
+ /**
170
+ * Print command-specific help without executing checks or API calls.
171
+ */
172
+ printCommandHelp(commandName) {
173
+ const help = {
174
+ doctor: `doctor - diagnose host, dependencies, templates, and configuration
175
+
176
+ USAGE
177
+ kaseki-agent doctor [--json] [--fix] [--verbose]
178
+
179
+ OPTIONS
180
+ --json Emit machine-readable check results
181
+ --fix Attempt safe auto-remediation for fixable checks
182
+ --verbose Include more diagnostic context where available`,
183
+ setup: `setup - interactive first-time configuration wizard
184
+
185
+ USAGE
186
+ kaseki-agent setup`,
187
+ config: `config - manage Kaseki configuration
188
+
189
+ USAGE
190
+ kaseki-agent config get <KEY> [--global]
191
+ kaseki-agent config set <KEY> <VALUE> [--global]
192
+ kaseki-agent config show [--global]
193
+ kaseki-agent config locations`,
194
+ secrets: `secrets - manage stored secrets
195
+
196
+ USAGE
197
+ kaseki-agent secrets init
198
+ kaseki-agent secrets set <NAME> <VALUE>
199
+ kaseki-agent secrets get <NAME> [--show]
200
+ kaseki-agent secrets list
201
+ kaseki-agent secrets delete <NAME>`,
202
+ serve: `serve - start the local REST API service
203
+
204
+ USAGE
205
+ kaseki-agent serve [--port PORT]`,
206
+ run: `run - submit a task run through the configured Kaseki API
207
+
208
+ USAGE
209
+ kaseki-agent run <REPO_URL> [GIT_REF] [TASK_PROMPT]
210
+
211
+ REQUIRES
212
+ A local API service at http://localhost:8080/api or KASEKI_API_URL pointing to a controller API.
213
+ Set KASEKI_API_KEY when the API requires bearer-token authentication.`,
214
+ list: `list - list task runs through the configured Kaseki API
215
+
216
+ USAGE
217
+ kaseki-agent list [--status queued|running|completed|failed]
218
+
219
+ REQUIRES
220
+ A local API service at http://localhost:8080/api or KASEKI_API_URL pointing to a controller API.`,
221
+ report: `report - generate a run report
222
+
223
+ USAGE
224
+ kaseki-agent report <RUN_ID> [--from-disk]
225
+
226
+ REQUIRES
227
+ API mode requires a local API service or KASEKI_API_URL. Use --from-disk to inspect local result files without API access.`,
228
+ status: `status - poll task status through the configured Kaseki API
229
+
230
+ USAGE
231
+ kaseki-agent status <RUN_ID> [--json]
232
+
233
+ REQUIRES
234
+ A local API service at http://localhost:8080/api or KASEKI_API_URL pointing to a controller API.`,
235
+ cancel: `cancel - cancel a queued or running task through the configured Kaseki API
236
+
237
+ USAGE
238
+ kaseki-agent cancel <RUN_ID>
239
+
240
+ REQUIRES
241
+ A local API service at http://localhost:8080/api or KASEKI_API_URL pointing to a controller API.`,
242
+ stop: `stop - alias for cancel
243
+
244
+ USAGE
245
+ kaseki-agent stop <RUN_ID>
246
+
247
+ REQUIRES
248
+ A local API service at http://localhost:8080/api or KASEKI_API_URL pointing to a controller API.`,
249
+ };
250
+ console.log(help[commandName] || `${commandName} - no detailed help available`);
251
+ }
127
252
  /**
128
253
  * Get list of available commands
129
254
  */
@@ -1 +1 @@
1
- {"version":3,"file":"KasekiCLI.js","sourceRoot":"","sources":["../../src/cli/KasekiCLI.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KasekiCLI.js","sourceRoot":"","sources":["../../src/cli/KasekiCLI.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { ConfigManager } from '../../config/ConfigManager';
2
+ import { type AnalysisResponse, type LogResponse, type RunArtifactsResponse, type RunRequest, type RunResponse, type RunsListResponse, type StatusResponse } from '../../kaseki-api-types';
3
+ export interface LocalKasekiApiClientOptions {
4
+ baseUrl?: string;
5
+ apiKey?: string;
6
+ }
7
+ export declare class LocalKasekiApiClient {
8
+ readonly baseUrl: string;
9
+ private readonly apiKey?;
10
+ constructor(options?: LocalKasekiApiClientOptions);
11
+ static fromConfig(configManager: ConfigManager): LocalKasekiApiClient;
12
+ getRunStatusUrl(runId: string): string;
13
+ createRun(request: RunRequest): Promise<RunResponse>;
14
+ listRuns(): Promise<RunsListResponse>;
15
+ getRunStatus(runId: string): Promise<StatusResponse>;
16
+ getRunAnalysis(runId: string): Promise<AnalysisResponse>;
17
+ getRunArtifacts(runId: string): Promise<RunArtifactsResponse>;
18
+ getRunLog(runId: string, logType: LogResponse['logType']): Promise<LogResponse>;
19
+ cancelRun(runId: string): Promise<StatusResponse>;
20
+ private requestJson;
21
+ private readErrorDetail;
22
+ }
23
+ //# sourceMappingURL=LocalKasekiApiClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalKasekiApiClient.d.ts","sourceRoot":"","sources":["../../../src/cli/api/LocalKasekiApiClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAwB,KAAK,gBAAgB,EAAE,KAAK,WAAW,EAAE,KAAK,oBAAoB,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAwHjN,MAAM,WAAW,2BAA2B;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,oBAAoB;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;gBAErB,OAAO,GAAE,2BAAgC;IAKrD,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,oBAAoB;IAUrE,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIhC,SAAS,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAyBpD,QAAQ,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAKrC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAKpD,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAKxD,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAK7D,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAK/E,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;YAOzC,WAAW;YAuBX,eAAe;CAS9B"}