@sudosandwich/limps 1.1.0 → 2.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.
- package/README.md +46 -82
- package/dist/cli/config-cmd.d.ts +38 -0
- package/dist/cli/config-cmd.d.ts.map +1 -1
- package/dist/cli/config-cmd.js +40 -4
- package/dist/cli/config-cmd.js.map +1 -1
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init-project.d.ts.map +1 -1
- package/dist/cli/init-project.js +1 -6
- package/dist/cli/init-project.js.map +1 -1
- package/dist/cli/json-output.d.ts +71 -0
- package/dist/cli/json-output.d.ts.map +1 -0
- package/dist/cli/json-output.js +83 -0
- package/dist/cli/json-output.js.map +1 -0
- package/dist/cli/next-task.d.ts +4 -5
- package/dist/cli/next-task.d.ts.map +1 -1
- package/dist/cli/next-task.js +17 -35
- package/dist/cli/next-task.js.map +1 -1
- package/dist/cli/status.d.ts +47 -2
- package/dist/cli/status.d.ts.map +1 -1
- package/dist/cli/status.js +67 -1
- package/dist/cli/status.js.map +1 -1
- package/dist/cli/task-resolver.d.ts +67 -0
- package/dist/cli/task-resolver.d.ts.map +1 -0
- package/dist/cli/task-resolver.js +217 -0
- package/dist/cli/task-resolver.js.map +1 -0
- package/dist/commands/config/list.d.ts +9 -1
- package/dist/commands/config/list.d.ts.map +1 -1
- package/dist/commands/config/list.js +11 -2
- package/dist/commands/config/list.js.map +1 -1
- package/dist/commands/config/show.d.ts +9 -1
- package/dist/commands/config/show.d.ts.map +1 -1
- package/dist/commands/config/show.js +13 -2
- package/dist/commands/config/show.js.map +1 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +16 -2
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/list-agents.d.ts +1 -0
- package/dist/commands/list-agents.d.ts.map +1 -1
- package/dist/commands/list-agents.js +18 -1
- package/dist/commands/list-agents.js.map +1 -1
- package/dist/commands/list-plans.d.ts +1 -0
- package/dist/commands/list-plans.d.ts.map +1 -1
- package/dist/commands/list-plans.js +13 -0
- package/dist/commands/list-plans.js.map +1 -1
- package/dist/commands/next-task.d.ts +1 -0
- package/dist/commands/next-task.d.ts.map +1 -1
- package/dist/commands/next-task.js +27 -1
- package/dist/commands/next-task.js.map +1 -1
- package/dist/commands/status.d.ts +4 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +67 -6
- package/dist/commands/status.js.map +1 -1
- package/dist/components/AgentStatus.d.ts +11 -0
- package/dist/components/AgentStatus.d.ts.map +1 -0
- package/dist/components/AgentStatus.js +45 -0
- package/dist/components/AgentStatus.js.map +1 -0
- package/dist/components/WhatsNew.d.ts +10 -0
- package/dist/components/WhatsNew.d.ts.map +1 -0
- package/dist/components/WhatsNew.js +49 -0
- package/dist/components/WhatsNew.js.map +1 -0
- package/dist/config.d.ts +5 -4
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +6 -19
- package/dist/config.js.map +1 -1
- package/dist/resources/agents-status.d.ts +7 -8
- package/dist/resources/agents-status.d.ts.map +1 -1
- package/dist/resources/agents-status.js +10 -55
- package/dist/resources/agents-status.js.map +1 -1
- package/dist/server-main.d.ts.map +1 -1
- package/dist/server-main.js +3 -7
- package/dist/server-main.js.map +1 -1
- package/dist/server.d.ts +1 -3
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +1 -4
- package/dist/server.js.map +1 -1
- package/dist/tools/get-next-task.d.ts +4 -30
- package/dist/tools/get-next-task.d.ts.map +1 -1
- package/dist/tools/get-next-task.js +5 -212
- package/dist/tools/get-next-task.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +3 -16
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/update-task-status.d.ts.map +1 -1
- package/dist/tools/update-task-status.js +32 -122
- package/dist/tools/update-task-status.js.map +1 -1
- package/dist/types.d.ts +0 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/changelog.d.ts +20 -0
- package/dist/utils/changelog.d.ts.map +1 -0
- package/dist/utils/changelog.js +104 -0
- package/dist/utils/changelog.js.map +1 -0
- package/dist/utils/errors.d.ts +47 -0
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +91 -0
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/os-paths.d.ts +0 -11
- package/dist/utils/os-paths.d.ts.map +1 -1
- package/dist/utils/os-paths.js +0 -21
- package/dist/utils/os-paths.js.map +1 -1
- package/dist/utils/suggestions.d.ts +38 -0
- package/dist/utils/suggestions.d.ts.map +1 -0
- package/dist/utils/suggestions.js +71 -0
- package/dist/utils/suggestions.js.map +1 -0
- package/dist/utils/version-state.d.ts +30 -0
- package/dist/utils/version-state.d.ts.map +1 -0
- package/dist/utils/version-state.js +106 -0
- package/dist/utils/version-state.js.map +1 -0
- package/package.json +1 -1
- package/dist/coordination.d.ts +0 -102
- package/dist/coordination.d.ts.map +0 -1
- package/dist/coordination.js +0 -157
- package/dist/coordination.js.map +0 -1
- package/dist/tools/claim-task.d.ts +0 -25
- package/dist/tools/claim-task.d.ts.map +0 -1
- package/dist/tools/claim-task.js +0 -288
- package/dist/tools/claim-task.js.map +0 -1
- package/dist/tools/release-task.d.ts +0 -23
- package/dist/tools/release-task.d.ts.map +0 -1
- package/dist/tools/release-task.js +0 -154
- package/dist/tools/release-task.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# limps
|
|
2
2
|
|
|
3
|
-
**L**ocal **I**ntelligent **M**CP **P**lanning **S**erver - AI agent plan management
|
|
3
|
+
**L**ocal **I**ntelligent **M**CP **P**lanning **S**erver - AI agent plan management.
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/@sudosandwich/limps)
|
|
6
6
|
[](https://opensource.org/licenses/MIT)
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
limps solves this by providing a **standardized MCP interface** that any MCP-compatible tool can access. Your planning documents, tasks, and decisions live in one place, accessible to:
|
|
19
19
|
|
|
20
|
-
- **Claude Desktop** — Full access to search, read, update, create documents,
|
|
20
|
+
- **Claude Desktop** — Full access to search, read, update, create documents, and more
|
|
21
21
|
- **Cursor** — Integrated planning and task management via MCP tools
|
|
22
22
|
- **GitHub Copilot** — When MCP support is enabled
|
|
23
23
|
- **Any MCP-compatible tool** — Standard protocol means universal access
|
|
@@ -29,22 +29,20 @@ limps solves this by providing a **standardized MCP interface** that any MCP-com
|
|
|
29
29
|
|
|
30
30
|
## Used In Production
|
|
31
31
|
|
|
32
|
-
limps is actively used to build [runi](https://github.com/paulbreuler/runi) - managing planning documents
|
|
32
|
+
limps is actively used to build [runi](https://github.com/paulbreuler/runi) - managing planning documents and task tracking across the development lifecycle.
|
|
33
33
|
|
|
34
34
|
### How runi Uses limps
|
|
35
35
|
|
|
36
36
|
The [runi](https://github.com/paulbreuler/runi) project uses a separate git repository ([runi-planning-docs](https://github.com/paulbreuler/runi-planning-docs)) for version-controlled planning documents. Custom Cursor commands in `.cursor/commands/` integrate with limps tools:
|
|
37
37
|
|
|
38
|
-
|
|
39
|
-
|
|
40
38
|
**Core Commands:**
|
|
41
39
|
|
|
42
40
|
| Command | Description | MCP Tools Used |
|
|
43
41
|
|---------|-------------|----------------|
|
|
44
42
|
| `/create-feature-plan` | Generate TDD plan with docs and agent files | `create_plan`, `create_doc`, `list_docs` |
|
|
45
43
|
| `/list-feature-plans` | List all plans with clickable file paths | `list_docs`, `process_doc` |
|
|
46
|
-
| `/run-agent` | Start work on next agent task | `process_doc`, `
|
|
47
|
-
| `/close-feature-agent` | Verify completion, sync status | `process_doc`, `update_doc`, `
|
|
44
|
+
| `/run-agent` | Start work on next agent task | `process_doc`, `update_task_status` |
|
|
45
|
+
| `/close-feature-agent` | Verify completion, sync status | `process_doc`, `update_doc`, `update_task_status` |
|
|
48
46
|
| `/update-feature-plan` | Regenerate agents from updated plan | `process_doc`, `create_doc`, `process_docs` |
|
|
49
47
|
| `/plan-list-agents` | Show all agents with status | `list_docs`, `process_docs` |
|
|
50
48
|
|
|
@@ -204,15 +202,6 @@ The server automatically finds configuration at OS-specific locations:
|
|
|
204
202
|
| Linux | `~/.config/limps/config.json` |
|
|
205
203
|
| Windows | `%APPDATA%\limps\config.json` |
|
|
206
204
|
|
|
207
|
-
### From Source
|
|
208
|
-
|
|
209
|
-
```bash
|
|
210
|
-
git clone https://github.com/paulbreuler/limps.git
|
|
211
|
-
cd limps
|
|
212
|
-
npm install
|
|
213
|
-
npm run build
|
|
214
|
-
```
|
|
215
|
-
|
|
216
205
|
## Configuration
|
|
217
206
|
|
|
218
207
|
Create a `config.json` at the OS-specific location or specify a path:
|
|
@@ -222,53 +211,59 @@ Create a `config.json` at the OS-specific location or specify a path:
|
|
|
222
211
|
"plansPath": "~/Documents/my-plans",
|
|
223
212
|
"docsPaths": ["~/Documents/my-plans"],
|
|
224
213
|
"fileExtensions": [".md"],
|
|
225
|
-
"dataPath": "~/Library/Application Support/limps/data"
|
|
226
|
-
"coordinationPath": "~/Library/Application Support/limps/coordination.json",
|
|
227
|
-
"heartbeatTimeout": 300000,
|
|
228
|
-
"debounceDelay": 200,
|
|
229
|
-
"maxHandoffIterations": 3
|
|
214
|
+
"dataPath": "~/Library/Application Support/limps/data"
|
|
230
215
|
}
|
|
231
216
|
```
|
|
232
217
|
|
|
233
|
-
|
|
234
|
-
1. CLI: `limps --config /path/to/config.json`
|
|
235
|
-
2. Environment: `MCP_PLANNING_CONFIG=/path/to/config.json`
|
|
236
|
-
3. OS-specific default location
|
|
218
|
+
### Config Resolution Priority
|
|
237
219
|
|
|
238
|
-
|
|
239
|
-
- Tilde expansion: `~/Documents/plans`
|
|
240
|
-
- Absolute: `/Users/john/Documents/plans`
|
|
241
|
-
- Relative (to config file): `./plans`
|
|
220
|
+
The server finds configuration in this order:
|
|
242
221
|
|
|
243
|
-
|
|
222
|
+
1. **CLI argument**: `limps serve --config /path/to/config.json`
|
|
223
|
+
2. **Environment variable**: `MCP_PLANNING_CONFIG=/path/to/config.json`
|
|
224
|
+
3. **Project environment**: `LIMPS_PROJECT=my-project` (looks up in registry)
|
|
225
|
+
4. **Registry current project**: Set via `limps config use <name>`
|
|
226
|
+
5. **OS-specific default**: See table above
|
|
244
227
|
|
|
245
|
-
|
|
228
|
+
> **Note:** If no config exists at the resolved path, limps auto-creates a default config file.
|
|
246
229
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
230
|
+
### Config Options
|
|
231
|
+
|
|
232
|
+
| Option | Type | Default | Description |
|
|
233
|
+
|--------|------|---------|-------------|
|
|
234
|
+
| `plansPath` | string | `./plans` | Primary directory for plan documents |
|
|
235
|
+
| `docsPaths` | string[] | `[]` | Additional directories to index |
|
|
236
|
+
| `fileExtensions` | string[] | `[".md"]` | File types to index |
|
|
237
|
+
| `dataPath` | string | `./data` | SQLite database location |
|
|
238
|
+
|
|
239
|
+
### Path Options
|
|
240
|
+
|
|
241
|
+
- **Tilde expansion**: `~/Documents/plans` → `/Users/you/Documents/plans`
|
|
242
|
+
- **Absolute paths**: `/Users/john/Documents/plans`
|
|
243
|
+
- **Relative paths**: `./plans` (relative to config file location)
|
|
244
|
+
|
|
245
|
+
## MCP Client Setup
|
|
246
|
+
|
|
247
|
+
> **Important:** MCP clients must use the `serve` subcommand. Run `limps init my-project` first to generate a config.
|
|
248
|
+
|
|
249
|
+
### Cursor
|
|
250
|
+
|
|
251
|
+
Add to settings (`Cmd+Shift+P` → "Preferences: Open User Settings (JSON)"):
|
|
256
252
|
|
|
257
|
-
With explicit config:
|
|
258
253
|
```json
|
|
259
254
|
{
|
|
260
255
|
"mcp.servers": {
|
|
261
256
|
"limps": {
|
|
262
257
|
"command": "limps",
|
|
263
|
-
"args": ["--config", "/path/to/config.json"]
|
|
258
|
+
"args": ["serve", "--config", "/path/to/config.json"]
|
|
264
259
|
}
|
|
265
260
|
}
|
|
266
261
|
}
|
|
267
262
|
```
|
|
268
263
|
|
|
269
|
-
|
|
264
|
+
### Claude Desktop
|
|
270
265
|
|
|
271
|
-
Claude Desktop runs in a macOS sandbox
|
|
266
|
+
Claude Desktop runs in a macOS sandbox—use `npx` instead of global binaries.
|
|
272
267
|
|
|
273
268
|
Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
|
|
274
269
|
|
|
@@ -277,29 +272,15 @@ Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
|
|
|
277
272
|
"mcpServers": {
|
|
278
273
|
"limps": {
|
|
279
274
|
"command": "npx",
|
|
280
|
-
"args": ["-y", "@sudosandwich/limps"]
|
|
275
|
+
"args": ["-y", "@sudosandwich/limps", "serve", "--config", "/path/to/config.json"]
|
|
281
276
|
}
|
|
282
277
|
}
|
|
283
278
|
}
|
|
284
279
|
```
|
|
285
280
|
|
|
286
|
-
With explicit config:
|
|
287
|
-
```json
|
|
288
|
-
{
|
|
289
|
-
"mcpServers": {
|
|
290
|
-
"limps": {
|
|
291
|
-
"command": "npx",
|
|
292
|
-
"args": ["-y", "@sudosandwich/limps", "--config", "/path/to/config.json"]
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
```
|
|
297
|
-
|
|
298
|
-
> **Note:** Run `limps init my-project` first to generate a config, then use the full path above.
|
|
299
|
-
|
|
300
281
|
## Features
|
|
301
282
|
|
|
302
|
-
### MCP Tools (
|
|
283
|
+
### MCP Tools (14 Tools)
|
|
303
284
|
|
|
304
285
|
#### Document Operations
|
|
305
286
|
|
|
@@ -323,13 +304,11 @@ With explicit config:
|
|
|
323
304
|
| `list_agents` | List agents for a plan with status, persona, and file counts |
|
|
324
305
|
| `get_plan_status` | Get plan progress with completion %, blocked/WIP agents |
|
|
325
306
|
|
|
326
|
-
#### Task
|
|
307
|
+
#### Task Management
|
|
327
308
|
|
|
328
309
|
| Tool | Description |
|
|
329
310
|
|------|-------------|
|
|
330
311
|
| `get_next_task` | Get highest-priority task with detailed score breakdown |
|
|
331
|
-
| `claim_task` | Claim tasks with file locks |
|
|
332
|
-
| `release_task` | Release tasks and locks |
|
|
333
312
|
| `update_task_status` | Update task status (GAP → WIP → PASS/BLOCKED) |
|
|
334
313
|
|
|
335
314
|
#### Task Scoring Algorithm
|
|
@@ -377,9 +356,11 @@ Implements the [RLM pattern from MIT CSAIL](https://arxiv.org/abs/2512.24601) fo
|
|
|
377
356
|
## Development
|
|
378
357
|
|
|
379
358
|
```bash
|
|
359
|
+
git clone https://github.com/paulbreuler/limps.git
|
|
360
|
+
cd limps
|
|
380
361
|
npm install # Install dependencies
|
|
381
|
-
npm test # Run tests
|
|
382
362
|
npm run build # Build TypeScript
|
|
363
|
+
npm test # Run tests
|
|
383
364
|
npm run dev # Watch mode
|
|
384
365
|
npm run lint # ESLint check
|
|
385
366
|
npm run format # Prettier format
|
|
@@ -407,7 +388,6 @@ GitHub Actions automatically builds, tests, and creates releases with changelogs
|
|
|
407
388
|
|
|
408
389
|
- Full-text search with auto-indexing
|
|
409
390
|
- Real-time file watching (Chokidar)
|
|
410
|
-
- Multi-agent coordination with heartbeats
|
|
411
391
|
- RLM sandbox (QuickJS)
|
|
412
392
|
|
|
413
393
|
### Principles
|
|
@@ -420,23 +400,7 @@ GitHub Actions automatically builds, tests, and creates releases with changelogs
|
|
|
420
400
|
|
|
421
401
|
## Adapting for Other Uses
|
|
422
402
|
|
|
423
|
-
The server is designed for planning documents but the core is generic:
|
|
424
|
-
|
|
425
|
-
**Configuration-only:**
|
|
426
|
-
|
|
427
|
-
```json
|
|
428
|
-
{
|
|
429
|
-
"plansPath": "./your-docs",
|
|
430
|
-
"docsPaths": ["./content", "./docs"],
|
|
431
|
-
"fileExtensions": [".md", ".txt", ".rst"]
|
|
432
|
-
}
|
|
433
|
-
```
|
|
434
|
-
|
|
435
|
-
**For different domains** (wikis, knowledge bases):
|
|
436
|
-
|
|
437
|
-
- Replace/remove planning-specific tools
|
|
438
|
-
- Customize document extractors in `src/rlm/extractors.ts`
|
|
439
|
-
- Modify coordination patterns or remove if single-agent
|
|
403
|
+
The server is designed for planning documents but the core is generic. For wikis or knowledge bases: configure `plansPath`/`docsPaths`/`fileExtensions` to point at your content, and optionally customize extractors in `src/rlm/extractors.ts`.
|
|
440
404
|
|
|
441
405
|
## What is MCP?
|
|
442
406
|
|
package/dist/cli/config-cmd.d.ts
CHANGED
|
@@ -2,6 +2,24 @@
|
|
|
2
2
|
* Config subcommand handlers for limps CLI.
|
|
3
3
|
* Provides commands to manage the project registry and view configuration.
|
|
4
4
|
*/
|
|
5
|
+
/**
|
|
6
|
+
* Project data for JSON output.
|
|
7
|
+
*/
|
|
8
|
+
export interface ProjectsData {
|
|
9
|
+
projects: {
|
|
10
|
+
name: string;
|
|
11
|
+
configPath: string;
|
|
12
|
+
current: boolean;
|
|
13
|
+
exists: boolean;
|
|
14
|
+
}[];
|
|
15
|
+
total: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Get projects data for JSON output.
|
|
19
|
+
*
|
|
20
|
+
* @returns Projects data object
|
|
21
|
+
*/
|
|
22
|
+
export declare function getProjectsData(): ProjectsData;
|
|
5
23
|
/**
|
|
6
24
|
* List all registered projects.
|
|
7
25
|
*
|
|
@@ -16,6 +34,26 @@ export declare function configList(): string;
|
|
|
16
34
|
* @throws Error if project not found
|
|
17
35
|
*/
|
|
18
36
|
export declare function configUse(name: string): string;
|
|
37
|
+
/**
|
|
38
|
+
* Configuration data for JSON output.
|
|
39
|
+
*/
|
|
40
|
+
export interface ConfigData {
|
|
41
|
+
configPath: string;
|
|
42
|
+
config: {
|
|
43
|
+
plansPath: string;
|
|
44
|
+
dataPath: string;
|
|
45
|
+
docsPaths?: string[];
|
|
46
|
+
fileExtensions?: string[];
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Get configuration data for JSON output.
|
|
51
|
+
*
|
|
52
|
+
* @param resolveConfigPathFn - Function to resolve config path (injected to avoid circular deps)
|
|
53
|
+
* @returns Configuration data object
|
|
54
|
+
* @throws Error if config file not found
|
|
55
|
+
*/
|
|
56
|
+
export declare function getConfigData(resolveConfigPathFn: () => string): ConfigData;
|
|
19
57
|
/**
|
|
20
58
|
* Show the resolved configuration values.
|
|
21
59
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-cmd.d.ts","sourceRoot":"","sources":["../../src/cli/config-cmd.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAmBnC;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG9C;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,mBAAmB,EAAE,MAAM,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"config-cmd.d.ts","sourceRoot":"","sources":["../../src/cli/config-cmd.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,OAAO,CAAC;KACjB,EAAE,CAAC;IACJ,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAY9C;AAED;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAmBnC;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG9C;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;KAC3B,CAAC;CACH;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,mBAAmB,EAAE,MAAM,MAAM,GAAG,UAAU,CAkB3E;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,mBAAmB,EAAE,MAAM,MAAM,GAAG,MAAM,CA4BpE;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,mBAAmB,EAAE,MAAM,MAAM,GAAG,MAAM,CAEpE;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAkBtE;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGjD;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAmCxD;AAID;;;;;GAKG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAmDvC"}
|
package/dist/cli/config-cmd.js
CHANGED
|
@@ -6,6 +6,23 @@ import { existsSync, readdirSync } from 'fs';
|
|
|
6
6
|
import { resolve, dirname, basename } from 'path';
|
|
7
7
|
import { registerProject, unregisterProject, setCurrentProject, listProjects, loadRegistry, } from './registry.js';
|
|
8
8
|
import { loadConfig } from '../config.js';
|
|
9
|
+
/**
|
|
10
|
+
* Get projects data for JSON output.
|
|
11
|
+
*
|
|
12
|
+
* @returns Projects data object
|
|
13
|
+
*/
|
|
14
|
+
export function getProjectsData() {
|
|
15
|
+
const projects = listProjects();
|
|
16
|
+
return {
|
|
17
|
+
projects: projects.map((p) => ({
|
|
18
|
+
name: p.name,
|
|
19
|
+
configPath: p.configPath,
|
|
20
|
+
current: p.current,
|
|
21
|
+
exists: existsSync(p.configPath),
|
|
22
|
+
})),
|
|
23
|
+
total: projects.length,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
9
26
|
/**
|
|
10
27
|
* List all registered projects.
|
|
11
28
|
*
|
|
@@ -38,6 +55,29 @@ export function configUse(name) {
|
|
|
38
55
|
setCurrentProject(name);
|
|
39
56
|
return `Switched to project "${name}"`;
|
|
40
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Get configuration data for JSON output.
|
|
60
|
+
*
|
|
61
|
+
* @param resolveConfigPathFn - Function to resolve config path (injected to avoid circular deps)
|
|
62
|
+
* @returns Configuration data object
|
|
63
|
+
* @throws Error if config file not found
|
|
64
|
+
*/
|
|
65
|
+
export function getConfigData(resolveConfigPathFn) {
|
|
66
|
+
const configPath = resolveConfigPathFn();
|
|
67
|
+
if (!existsSync(configPath)) {
|
|
68
|
+
throw new Error(`Config file not found: ${configPath}`);
|
|
69
|
+
}
|
|
70
|
+
const config = loadConfig(configPath);
|
|
71
|
+
return {
|
|
72
|
+
configPath,
|
|
73
|
+
config: {
|
|
74
|
+
plansPath: config.plansPath,
|
|
75
|
+
dataPath: config.dataPath,
|
|
76
|
+
docsPaths: config.docsPaths,
|
|
77
|
+
fileExtensions: config.fileExtensions,
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
}
|
|
41
81
|
/**
|
|
42
82
|
* Show the resolved configuration values.
|
|
43
83
|
*
|
|
@@ -56,7 +96,6 @@ export function configShow(resolveConfigPathFn) {
|
|
|
56
96
|
lines.push('Configuration:');
|
|
57
97
|
lines.push(` plansPath: ${config.plansPath}`);
|
|
58
98
|
lines.push(` dataPath: ${config.dataPath}`);
|
|
59
|
-
lines.push(` coordinationPath: ${config.coordinationPath}`);
|
|
60
99
|
if (config.docsPaths && config.docsPaths.length > 0) {
|
|
61
100
|
lines.push(` docsPaths:`);
|
|
62
101
|
for (const p of config.docsPaths) {
|
|
@@ -66,9 +105,6 @@ export function configShow(resolveConfigPathFn) {
|
|
|
66
105
|
if (config.fileExtensions) {
|
|
67
106
|
lines.push(` fileExtensions: ${config.fileExtensions.join(', ')}`);
|
|
68
107
|
}
|
|
69
|
-
lines.push(` heartbeatTimeout: ${config.heartbeatTimeout}ms`);
|
|
70
|
-
lines.push(` debounceDelay: ${config.debounceDelay}ms`);
|
|
71
|
-
lines.push(` maxHandoffIterations: ${config.maxHandoffIterations}`);
|
|
72
108
|
return lines.join('\n');
|
|
73
109
|
}
|
|
74
110
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-cmd.js","sourceRoot":"","sources":["../../src/cli/config-cmd.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAClD,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"config-cmd.js","sourceRoot":"","sources":["../../src/cli/config-cmd.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.d.ts
CHANGED
|
@@ -8,4 +8,5 @@ export { nextTask, calculateDependencyScore, calculatePriorityScore, calculateWo
|
|
|
8
8
|
export { status, getPlanStatusSummary, type PlanStatusSummary } from './status.js';
|
|
9
9
|
export { getRegistryPath, loadRegistry, saveRegistry, registerProject, unregisterProject, setCurrentProject, getCurrentProjectPath, getProjectPath, listProjects, type RegisteredProject, type ProjectRegistry, } from './registry.js';
|
|
10
10
|
export { configList, configUse, configShow, configPath, configAdd, configRemove, configSet, configDiscover, } from './config-cmd.js';
|
|
11
|
+
export { wrapSuccess, wrapError, outputJson, isJsonMode, handleJsonOutput, type JsonSuccess, type JsonError, type JsonEnvelope, } from './json-output.js';
|
|
11
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACpG,OAAO,EACL,QAAQ,EACR,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,cAAc,EACd,SAAS,EACT,KAAK,kBAAkB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGnF,OAAO,EACL,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,eAAe,GACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,UAAU,EACV,SAAS,EACT,UAAU,EACV,UAAU,EACV,SAAS,EACT,YAAY,EACZ,SAAS,EACT,cAAc,GACf,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACpG,OAAO,EACL,QAAQ,EACR,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,cAAc,EACd,SAAS,EACT,KAAK,kBAAkB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGnF,OAAO,EACL,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,eAAe,GACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,UAAU,EACV,SAAS,EACT,UAAU,EACV,UAAU,EACV,SAAS,EACT,YAAY,EACZ,SAAS,EACT,cAAc,GACf,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,WAAW,EACX,SAAS,EACT,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,YAAY,GAClB,MAAM,kBAAkB,CAAC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -9,4 +9,6 @@ export { status, getPlanStatusSummary } from './status.js';
|
|
|
9
9
|
// Registry and config management
|
|
10
10
|
export { getRegistryPath, loadRegistry, saveRegistry, registerProject, unregisterProject, setCurrentProject, getCurrentProjectPath, getProjectPath, listProjects, } from './registry.js';
|
|
11
11
|
export { configList, configUse, configShow, configPath, configAdd, configRemove, configSet, configDiscover, } from './config-cmd.js';
|
|
12
|
+
// JSON output utilities
|
|
13
|
+
export { wrapSuccess, wrapError, outputJson, isJsonMode, handleJsonOutput, } from './json-output.js';
|
|
12
14
|
//# sourceMappingURL=index.js.map
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAqB,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,aAAa,EAAsB,MAAM,kBAAkB,CAAC;AACpG,OAAO,EACL,QAAQ,EACR,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,cAAc,EACd,SAAS,GAEV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAA0B,MAAM,aAAa,CAAC;AAEnF,iCAAiC;AACjC,OAAO,EACL,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,YAAY,GAGb,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,UAAU,EACV,SAAS,EACT,UAAU,EACV,UAAU,EACV,SAAS,EACT,YAAY,EACZ,SAAS,EACT,cAAc,GACf,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAqB,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,aAAa,EAAsB,MAAM,kBAAkB,CAAC;AACpG,OAAO,EACL,QAAQ,EACR,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,cAAc,EACd,SAAS,GAEV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAA0B,MAAM,aAAa,CAAC;AAEnF,iCAAiC;AACjC,OAAO,EACL,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,YAAY,GAGb,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,UAAU,EACV,SAAS,EACT,UAAU,EACV,UAAU,EACV,SAAS,EACT,YAAY,EACZ,SAAS,EACT,cAAc,GACf,MAAM,iBAAiB,CAAC;AAEzB,wBAAwB;AACxB,OAAO,EACL,WAAW,EACX,SAAS,EACT,UAAU,EACV,UAAU,EACV,gBAAgB,GAIjB,MAAM,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-project.d.ts","sourceRoot":"","sources":["../../src/cli/init-project.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"init-project.d.ts","sourceRoot":"","sources":["../../src/cli/init-project.ts"],"names":[],"mappings":"AAAA;;GAEG;AA+BH;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CA0F1E"}
|
package/dist/cli/init-project.js
CHANGED
|
@@ -5,7 +5,7 @@ import { resolve } from 'path';
|
|
|
5
5
|
import { mkdirSync, existsSync, writeFileSync } from 'fs';
|
|
6
6
|
import { homedir } from 'os';
|
|
7
7
|
import which from 'which';
|
|
8
|
-
import { getOSConfigPath, getOSBasePath, getOSDataPath
|
|
8
|
+
import { getOSConfigPath, getOSBasePath, getOSDataPath } from '../utils/os-paths.js';
|
|
9
9
|
import { registerProject } from './registry.js';
|
|
10
10
|
/**
|
|
11
11
|
* Expand tilde in path to full home directory path.
|
|
@@ -39,7 +39,6 @@ export function initProject(projectName, docsPath) {
|
|
|
39
39
|
const basePath = getOSBasePath(projectName);
|
|
40
40
|
const configPath = getOSConfigPath(projectName);
|
|
41
41
|
const dataPath = getOSDataPath(projectName);
|
|
42
|
-
const coordinationPath = getOSCoordinationPath(projectName);
|
|
43
42
|
// Expand tilde in docsPath if provided
|
|
44
43
|
const resolvedDocsPath = docsPath ? expandTilde(docsPath) : null;
|
|
45
44
|
const defaultDocsPath = resolve(homedir(), 'Documents', projectName);
|
|
@@ -57,10 +56,6 @@ export function initProject(projectName, docsPath) {
|
|
|
57
56
|
docsPaths: [resolvedDocsPath || defaultDocsPath],
|
|
58
57
|
fileExtensions: ['.md'],
|
|
59
58
|
dataPath: dataPath,
|
|
60
|
-
coordinationPath: coordinationPath,
|
|
61
|
-
heartbeatTimeout: 300000,
|
|
62
|
-
debounceDelay: 200,
|
|
63
|
-
maxHandoffIterations: 3,
|
|
64
59
|
};
|
|
65
60
|
writeFileSync(configPath, JSON.stringify(config, null, 2));
|
|
66
61
|
// Auto-register in the project registry
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-project.js","sourceRoot":"","sources":["../../src/cli/init-project.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,
|
|
1
|
+
{"version":3,"file":"init-project.js","sourceRoot":"","sources":["../../src/cli/init-project.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON output utilities for CLI commands.
|
|
3
|
+
*
|
|
4
|
+
* Provides consistent JSON envelope format for all CLI commands when --json flag is used.
|
|
5
|
+
* This enables scripting, CI/CD integration, and machine-readable output.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Success envelope for JSON output.
|
|
9
|
+
*/
|
|
10
|
+
export interface JsonSuccess<T> {
|
|
11
|
+
success: true;
|
|
12
|
+
data: T;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Error envelope for JSON output.
|
|
16
|
+
*/
|
|
17
|
+
export interface JsonError {
|
|
18
|
+
success: false;
|
|
19
|
+
error: string;
|
|
20
|
+
code?: string;
|
|
21
|
+
suggestions?: string[];
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Union type for all JSON responses.
|
|
25
|
+
*/
|
|
26
|
+
export type JsonEnvelope<T> = JsonSuccess<T> | JsonError;
|
|
27
|
+
/**
|
|
28
|
+
* Wrap data in success envelope.
|
|
29
|
+
*
|
|
30
|
+
* @param data - The data to wrap
|
|
31
|
+
* @returns Success envelope with data
|
|
32
|
+
*/
|
|
33
|
+
export declare function wrapSuccess<T>(data: T): JsonSuccess<T>;
|
|
34
|
+
/**
|
|
35
|
+
* Wrap error in error envelope.
|
|
36
|
+
*
|
|
37
|
+
* @param message - Error message
|
|
38
|
+
* @param options - Optional code and suggestions
|
|
39
|
+
* @returns Error envelope
|
|
40
|
+
*/
|
|
41
|
+
export declare function wrapError(message: string, options?: {
|
|
42
|
+
code?: string;
|
|
43
|
+
suggestions?: string[];
|
|
44
|
+
}): JsonError;
|
|
45
|
+
/**
|
|
46
|
+
* Output JSON to stdout and exit.
|
|
47
|
+
* Bypasses Ink rendering entirely for clean JSON output.
|
|
48
|
+
*
|
|
49
|
+
* @param envelope - JSON envelope to output
|
|
50
|
+
* @param exitCode - Exit code (default: 0 for success, 1 for error)
|
|
51
|
+
*/
|
|
52
|
+
export declare function outputJson<T>(envelope: JsonEnvelope<T>, exitCode?: number): never;
|
|
53
|
+
/**
|
|
54
|
+
* Check if JSON output mode is requested.
|
|
55
|
+
* Useful for early bailout in command handlers.
|
|
56
|
+
*
|
|
57
|
+
* @param options - Command options
|
|
58
|
+
* @returns True if --json flag is set
|
|
59
|
+
*/
|
|
60
|
+
export declare function isJsonMode(options: {
|
|
61
|
+
json?: boolean;
|
|
62
|
+
}): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Handle JSON output for a command.
|
|
65
|
+
* Executes the data getter and outputs JSON, catching errors.
|
|
66
|
+
*
|
|
67
|
+
* @param getData - Function that returns data or throws
|
|
68
|
+
* @param errorCode - Optional error code for failures
|
|
69
|
+
*/
|
|
70
|
+
export declare function handleJsonOutput<T>(getData: () => T, errorCode?: string): never;
|
|
71
|
+
//# sourceMappingURL=json-output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-output.d.ts","sourceRoot":"","sources":["../../src/cli/json-output.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,CAAC,CAAC;CACT;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AAEzD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAKtD;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAClD,SAAS,CAeX;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,CAQjF;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAE/D;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAa/E"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON output utilities for CLI commands.
|
|
3
|
+
*
|
|
4
|
+
* Provides consistent JSON envelope format for all CLI commands when --json flag is used.
|
|
5
|
+
* This enables scripting, CI/CD integration, and machine-readable output.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Wrap data in success envelope.
|
|
9
|
+
*
|
|
10
|
+
* @param data - The data to wrap
|
|
11
|
+
* @returns Success envelope with data
|
|
12
|
+
*/
|
|
13
|
+
export function wrapSuccess(data) {
|
|
14
|
+
return {
|
|
15
|
+
success: true,
|
|
16
|
+
data,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Wrap error in error envelope.
|
|
21
|
+
*
|
|
22
|
+
* @param message - Error message
|
|
23
|
+
* @param options - Optional code and suggestions
|
|
24
|
+
* @returns Error envelope
|
|
25
|
+
*/
|
|
26
|
+
export function wrapError(message, options) {
|
|
27
|
+
const envelope = {
|
|
28
|
+
success: false,
|
|
29
|
+
error: message,
|
|
30
|
+
};
|
|
31
|
+
if (options?.code) {
|
|
32
|
+
envelope.code = options.code;
|
|
33
|
+
}
|
|
34
|
+
if (options?.suggestions && options.suggestions.length > 0) {
|
|
35
|
+
envelope.suggestions = options.suggestions;
|
|
36
|
+
}
|
|
37
|
+
return envelope;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Output JSON to stdout and exit.
|
|
41
|
+
* Bypasses Ink rendering entirely for clean JSON output.
|
|
42
|
+
*
|
|
43
|
+
* @param envelope - JSON envelope to output
|
|
44
|
+
* @param exitCode - Exit code (default: 0 for success, 1 for error)
|
|
45
|
+
*/
|
|
46
|
+
export function outputJson(envelope, exitCode) {
|
|
47
|
+
const code = exitCode ?? (envelope.success ? 0 : 1);
|
|
48
|
+
// Write JSON to stdout
|
|
49
|
+
console.log(JSON.stringify(envelope, null, 2));
|
|
50
|
+
// Exit with appropriate code
|
|
51
|
+
process.exit(code);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Check if JSON output mode is requested.
|
|
55
|
+
* Useful for early bailout in command handlers.
|
|
56
|
+
*
|
|
57
|
+
* @param options - Command options
|
|
58
|
+
* @returns True if --json flag is set
|
|
59
|
+
*/
|
|
60
|
+
export function isJsonMode(options) {
|
|
61
|
+
return options.json === true;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Handle JSON output for a command.
|
|
65
|
+
* Executes the data getter and outputs JSON, catching errors.
|
|
66
|
+
*
|
|
67
|
+
* @param getData - Function that returns data or throws
|
|
68
|
+
* @param errorCode - Optional error code for failures
|
|
69
|
+
*/
|
|
70
|
+
export function handleJsonOutput(getData, errorCode) {
|
|
71
|
+
try {
|
|
72
|
+
const data = getData();
|
|
73
|
+
outputJson(wrapSuccess(data));
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
77
|
+
const suggestions = error instanceof Error && 'suggestions' in error
|
|
78
|
+
? error.suggestions
|
|
79
|
+
: undefined;
|
|
80
|
+
outputJson(wrapError(message, { code: errorCode, suggestions }), 1);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=json-output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-output.js","sourceRoot":"","sources":["../../src/cli/json-output.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAyBH;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAI,IAAO;IACpC,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI;KACL,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CACvB,OAAe,EACf,OAAmD;IAEnD,MAAM,QAAQ,GAAc;QAC1B,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,OAAO;KACf,CAAC;IAEF,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;QAClB,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED,IAAI,OAAO,EAAE,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3D,QAAQ,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAC7C,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAI,QAAyB,EAAE,QAAiB;IACxE,MAAM,IAAI,GAAG,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpD,uBAAuB;IACvB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAE/C,6BAA6B;IAC7B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,OAA2B;IACpD,OAAO,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC;AAC/B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAI,OAAgB,EAAE,SAAkB;IACtE,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;QACvB,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,WAAW,GACf,KAAK,YAAY,KAAK,IAAI,aAAa,IAAI,KAAK;YAC9C,CAAC,CAAE,KAA4C,CAAC,WAAW;YAC3D,CAAC,CAAC,SAAS,CAAC;QAEhB,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC;AACH,CAAC"}
|