ai-devkit 0.18.0 → 0.20.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.
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyDpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsM3D"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmEpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyU3D"}
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.registerAgentCommand = registerAgentCommand;
7
+ const os_1 = __importDefault(require("os"));
7
8
  const chalk_1 = __importDefault(require("chalk"));
8
9
  const inquirer_1 = __importDefault(require("inquirer"));
9
10
  const agent_manager_1 = require("@ai-devkit/agent-manager");
@@ -40,6 +41,15 @@ const TYPE_LABELS = {
40
41
  function formatType(type) {
41
42
  return TYPE_LABELS[type] ?? type;
42
43
  }
44
+ function formatCwd(projectPath) {
45
+ if (!projectPath)
46
+ return '';
47
+ const home = os_1.default.homedir();
48
+ if (projectPath.startsWith(home)) {
49
+ return '~' + projectPath.slice(home.length);
50
+ }
51
+ return projectPath;
52
+ }
43
53
  function formatWorkOn(summary) {
44
54
  const firstLine = (summary ?? '').split(/\r?\n/, 1)[0] || '';
45
55
  return firstLine || 'No active task';
@@ -71,17 +81,19 @@ function registerAgentCommand(program) {
71
81
  terminal_ui_1.ui.text('Running Agents:', { breakline: true });
72
82
  const rows = agents.map(agent => [
73
83
  agent.name,
84
+ formatCwd(agent.projectPath),
74
85
  formatType(agent.type),
75
86
  formatStatus(agent.status),
76
87
  formatWorkOn(agent.summary),
77
88
  formatRelativeTime(agent.lastActive)
78
89
  ]);
79
90
  terminal_ui_1.ui.table({
80
- headers: ['Agent', 'Type', 'Status', 'Working On', 'Active'],
91
+ headers: ['Agent', 'CWD', 'Type', 'Status', 'Working On', 'Active'],
81
92
  rows: rows,
82
93
  columnStyles: [
83
94
  (text) => chalk_1.default.cyan(text),
84
95
  (text) => chalk_1.default.dim(text),
96
+ (text) => chalk_1.default.dim(text),
85
97
  (text) => {
86
98
  if (text.includes(STATUS_DISPLAY[agent_manager_1.AgentStatus.RUNNING].label))
87
99
  return chalk_1.default.green(text);
@@ -173,7 +185,7 @@ function registerAgentCommand(program) {
173
185
  agentCommand
174
186
  .command('send <message>')
175
187
  .description('Send a message to a running agent')
176
- .requiredOption('--id <identifier>', 'Agent name, slug, or partial match')
188
+ .requiredOption('--id <identifier>', 'Agent name or partial match')
177
189
  .action(async (message, options) => {
178
190
  try {
179
191
  const manager = new agent_manager_1.AgentManager();
@@ -215,5 +227,118 @@ function registerAgentCommand(program) {
215
227
  process.exit(1);
216
228
  }
217
229
  });
230
+ agentCommand
231
+ .command('detail')
232
+ .description('Show detailed information about a running agent')
233
+ .requiredOption('--id <name>', 'Agent name (as shown in agent list)')
234
+ .option('-j, --json', 'Output as JSON')
235
+ .option('--full', 'Show entire conversation history')
236
+ .option('--tail <n>', 'Show last N messages (default: 20)', '20')
237
+ .option('--verbose', 'Include tool call/result details')
238
+ .action(async (options) => {
239
+ try {
240
+ const claudeAdapter = new agent_manager_1.ClaudeCodeAdapter();
241
+ const codexAdapter = new agent_manager_1.CodexAdapter();
242
+ const manager = new agent_manager_1.AgentManager();
243
+ manager.registerAdapter(claudeAdapter);
244
+ manager.registerAdapter(codexAdapter);
245
+ const agents = await manager.listAgents();
246
+ if (agents.length === 0) {
247
+ terminal_ui_1.ui.error('No running agents found.');
248
+ return;
249
+ }
250
+ const resolved = manager.resolveAgent(options.id, agents);
251
+ if (!resolved) {
252
+ terminal_ui_1.ui.error(`No agent found matching "${options.id}".`);
253
+ terminal_ui_1.ui.info('Available agents:');
254
+ agents.forEach(a => console.log(` - ${a.name}`));
255
+ return;
256
+ }
257
+ if (Array.isArray(resolved)) {
258
+ terminal_ui_1.ui.error(`Multiple agents match "${options.id}":`);
259
+ resolved.forEach(a => console.log(` - ${a.name} (${formatStatus(a.status)})`));
260
+ terminal_ui_1.ui.info('Please use a more specific name.');
261
+ return;
262
+ }
263
+ const agent = resolved;
264
+ if (!agent.sessionFilePath) {
265
+ terminal_ui_1.ui.error(`No session file found for agent "${agent.name}".`);
266
+ return;
267
+ }
268
+ // Pick the right adapter for conversation reading
269
+ const adapters = {
270
+ claude: claudeAdapter,
271
+ codex: codexAdapter,
272
+ };
273
+ const adapter = adapters[agent.type];
274
+ if (!adapter) {
275
+ terminal_ui_1.ui.error(`Unsupported agent type: ${agent.type}`);
276
+ return;
277
+ }
278
+ const conversation = adapter.getConversation(agent.sessionFilePath, {
279
+ verbose: options.verbose,
280
+ });
281
+ // Apply tail/full limit
282
+ const tailCount = options.full ? conversation.length : parseInt(options.tail, 10) || 20;
283
+ const displayMessages = conversation.slice(-tailCount);
284
+ const isTruncated = displayMessages.length < conversation.length;
285
+ // Derive start time from first conversation message, fall back to lastActive
286
+ const startTime = conversation.length > 0 && conversation[0].timestamp
287
+ ? new Date(conversation[0].timestamp)
288
+ : agent.lastActive;
289
+ if (options.json) {
290
+ const output = {
291
+ sessionId: agent.sessionId,
292
+ cwd: agent.projectPath,
293
+ startTime,
294
+ status: agent.status,
295
+ type: agent.type,
296
+ name: agent.name,
297
+ lastActive: agent.lastActive,
298
+ conversation: displayMessages,
299
+ };
300
+ console.log(JSON.stringify(output, null, 2));
301
+ return;
302
+ }
303
+ // Human-readable output
304
+ terminal_ui_1.ui.text('Agent Detail', { breakline: true });
305
+ console.log(chalk_1.default.dim('─'.repeat(40)));
306
+ console.log(` ${chalk_1.default.bold('Session ID:')} ${agent.sessionId}`);
307
+ console.log(` ${chalk_1.default.bold('CWD:')} ${formatCwd(agent.projectPath)}`);
308
+ console.log(` ${chalk_1.default.bold('Start Time:')} ${new Date(startTime).toLocaleString()}`);
309
+ console.log(` ${chalk_1.default.bold('Last Active:')} ${formatRelativeTime(agent.lastActive)}`);
310
+ console.log(` ${chalk_1.default.bold('Status:')} ${formatStatus(agent.status)}`);
311
+ console.log(` ${chalk_1.default.bold('Type:')} ${formatType(agent.type)}`);
312
+ terminal_ui_1.ui.breakline();
313
+ const label = isTruncated
314
+ ? `Conversation (last ${displayMessages.length} of ${conversation.length} messages)`
315
+ : `Conversation (${displayMessages.length} messages)`;
316
+ terminal_ui_1.ui.text(label, { breakline: false });
317
+ console.log(chalk_1.default.dim('─'.repeat(40)));
318
+ for (const msg of displayMessages) {
319
+ const time = msg.timestamp
320
+ ? chalk_1.default.dim(`[${new Date(msg.timestamp).toLocaleTimeString()}]`)
321
+ : '';
322
+ const roleColor = msg.role === 'user'
323
+ ? chalk_1.default.green
324
+ : msg.role === 'assistant'
325
+ ? chalk_1.default.cyan
326
+ : chalk_1.default.yellow;
327
+ console.log(`${time} ${roleColor(msg.role + ':')}`);
328
+ const lines = msg.content.split('\n');
329
+ for (const line of lines) {
330
+ console.log(` ${line}`);
331
+ }
332
+ console.log();
333
+ }
334
+ if (isTruncated) {
335
+ terminal_ui_1.ui.info(`Showing last ${displayMessages.length} of ${conversation.length} messages. Use --full to see all.`);
336
+ }
337
+ }
338
+ catch (error) {
339
+ terminal_ui_1.ui.error(`Failed to get agent detail: ${error.message}`);
340
+ process.exit(1);
341
+ }
342
+ });
218
343
  }
219
344
  //# sourceMappingURL=agent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,9 @@ Review the design documentation in `{{docsDir}}/design/feature-{name}.md` (and t
13
13
  - API/interface contracts (inputs, outputs, auth)
14
14
  - Major design decisions and trade-offs
15
15
  - Non-functional requirements that must be preserved
16
- 3. Highlight inconsistencies, missing sections, or diagrams that need updates.
16
+ 3. **Clarify and explore (loop until converged)**:
17
+ - **Ask clarification questions** for every gap, inconsistency, or misalignment between requirements and design. Do not just list issues — actively ask specific questions to resolve them.
18
+ - **Brainstorm and explore options** — For key architecture decisions, trade-offs, or areas with multiple viable approaches, proactively brainstorm alternatives. Present options with pros/cons and trade-offs. Challenge assumptions and surface creative alternatives.
19
+ - **Repeat** — Continue looping until the user is satisfied with the chosen approach and no open questions remain.
17
20
  4. **Store Reusable Knowledge** — Persist approved design patterns/constraints with `npx ai-devkit@latest memory store ...` when they will help future work.
18
21
  5. **Next Command Guidance** — If requirements gaps are found, return to `/review-requirements`; if design is sound, continue to `/execute-plan`.
@@ -11,6 +11,9 @@ Review `{{docsDir}}/requirements/feature-{name}.md` and the project-level templa
11
11
  - Primary user stories & critical flows
12
12
  - Constraints, assumptions, open questions
13
13
  - Any missing sections or deviations from the template
14
- 3. Identify gaps or contradictions and suggest clarifications.
14
+ 3. **Clarify and explore (loop until converged)**:
15
+ - **Ask clarification questions** for every gap, contradiction, or ambiguity. Do not just list issues — actively ask specific questions to resolve them.
16
+ - **Brainstorm and explore options** — For key decisions, trade-offs, or areas with multiple viable approaches, proactively brainstorm alternatives. Present options with pros/cons and trade-offs. Challenge assumptions and surface creative alternatives.
17
+ - **Repeat** — Continue looping until the user is satisfied with the chosen approach and no open questions remain.
15
18
  4. **Store Reusable Knowledge** — If new reusable requirement conventions are agreed, store them with `npx ai-devkit@latest memory store ...`.
16
19
  5. **Next Command Guidance** — If fundamentals are missing, go back to `/new-requirement`; otherwise continue to `/review-design`.
@@ -13,6 +13,9 @@ Review the design documentation in `{{docsDir}}/design/feature-{name}.md` (and t
13
13
  - API/interface contracts (inputs, outputs, auth)
14
14
  - Major design decisions and trade-offs
15
15
  - Non-functional requirements that must be preserved
16
- 3. Highlight inconsistencies, missing sections, or diagrams that need updates.
16
+ 3. **Clarify and explore (loop until converged)**:
17
+ - **Ask clarification questions** for every gap, inconsistency, or misalignment between requirements and design. Do not just list issues — actively ask specific questions to resolve them.
18
+ - **Brainstorm and explore options** — For key architecture decisions, trade-offs, or areas with multiple viable approaches, proactively brainstorm alternatives. Present options with pros/cons and trade-offs. Challenge assumptions and surface creative alternatives.
19
+ - **Repeat** — Continue looping until the user is satisfied with the chosen approach and no open questions remain.
17
20
  4. **Store Reusable Knowledge** — Persist approved design patterns/constraints with `npx ai-devkit@latest memory store ...` when they will help future work.
18
21
  5. **Next Command Guidance** — If requirements gaps are found, return to `/review-requirements`; if design is sound, continue to `/execute-plan`.
@@ -11,6 +11,9 @@ Review `{{docsDir}}/requirements/feature-{name}.md` and the project-level templa
11
11
  - Primary user stories & critical flows
12
12
  - Constraints, assumptions, open questions
13
13
  - Any missing sections or deviations from the template
14
- 3. Identify gaps or contradictions and suggest clarifications.
14
+ 3. **Clarify and explore (loop until converged)**:
15
+ - **Ask clarification questions** for every gap, contradiction, or ambiguity. Do not just list issues — actively ask specific questions to resolve them.
16
+ - **Brainstorm and explore options** — For key decisions, trade-offs, or areas with multiple viable approaches, proactively brainstorm alternatives. Present options with pros/cons and trade-offs. Challenge assumptions and surface creative alternatives.
17
+ - **Repeat** — Continue looping until the user is satisfied with the chosen approach and no open questions remain.
15
18
  4. **Store Reusable Knowledge** — If new reusable requirement conventions are agreed, store them with `npx ai-devkit@latest memory store ...`.
16
19
  5. **Next Command Guidance** — If fundamentals are missing, go back to `/new-requirement`; otherwise continue to `/review-design`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ai-devkit",
3
- "version": "0.18.0",
3
+ "version": "0.20.0",
4
4
  "description": "A CLI toolkit for AI-assisted software development with phase templates and environment setup",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -27,7 +27,7 @@
27
27
  "author": "",
28
28
  "license": "MIT",
29
29
  "dependencies": {
30
- "@ai-devkit/agent-manager": "0.4.0",
30
+ "@ai-devkit/agent-manager": "0.6.0",
31
31
  "@ai-devkit/memory": "0.7.0",
32
32
  "chalk": "^4.1.2",
33
33
  "commander": "^11.1.0",
@@ -13,6 +13,9 @@ Review the design documentation in `{{docsDir}}/design/feature-{name}.md` (and t
13
13
  - API/interface contracts (inputs, outputs, auth)
14
14
  - Major design decisions and trade-offs
15
15
  - Non-functional requirements that must be preserved
16
- 3. Highlight inconsistencies, missing sections, or diagrams that need updates.
16
+ 3. **Clarify and explore (loop until converged)**:
17
+ - **Ask clarification questions** for every gap, inconsistency, or misalignment between requirements and design. Do not just list issues — actively ask specific questions to resolve them.
18
+ - **Brainstorm and explore options** — For key architecture decisions, trade-offs, or areas with multiple viable approaches, proactively brainstorm alternatives. Present options with pros/cons and trade-offs. Challenge assumptions and surface creative alternatives.
19
+ - **Repeat** — Continue looping until the user is satisfied with the chosen approach and no open questions remain.
17
20
  4. **Store Reusable Knowledge** — Persist approved design patterns/constraints with `npx ai-devkit@latest memory store ...` when they will help future work.
18
21
  5. **Next Command Guidance** — If requirements gaps are found, return to `/review-requirements`; if design is sound, continue to `/execute-plan`.
@@ -11,6 +11,9 @@ Review `{{docsDir}}/requirements/feature-{name}.md` and the project-level templa
11
11
  - Primary user stories & critical flows
12
12
  - Constraints, assumptions, open questions
13
13
  - Any missing sections or deviations from the template
14
- 3. Identify gaps or contradictions and suggest clarifications.
14
+ 3. **Clarify and explore (loop until converged)**:
15
+ - **Ask clarification questions** for every gap, contradiction, or ambiguity. Do not just list issues — actively ask specific questions to resolve them.
16
+ - **Brainstorm and explore options** — For key decisions, trade-offs, or areas with multiple viable approaches, proactively brainstorm alternatives. Present options with pros/cons and trade-offs. Challenge assumptions and surface creative alternatives.
17
+ - **Repeat** — Continue looping until the user is satisfied with the chosen approach and no open questions remain.
15
18
  4. **Store Reusable Knowledge** — If new reusable requirement conventions are agreed, store them with `npx ai-devkit@latest memory store ...`.
16
19
  5. **Next Command Guidance** — If fundamentals are missing, go back to `/new-requirement`; otherwise continue to `/review-design`.
@@ -1,52 +0,0 @@
1
- /**
2
- * File Utilities
3
- *
4
- * Helper functions for reading files efficiently
5
- */
6
- /**
7
- * Read last N lines from a file efficiently
8
- *
9
- * @param filePath Path to the file
10
- * @param lineCount Number of lines to read from the end (default: 100)
11
- * @returns Array of lines
12
- *
13
- * @example
14
- * ```typescript
15
- * const lastLines = readLastLines('/path/to/log.txt', 50);
16
- * ```
17
- */
18
- export declare function readLastLines(filePath: string, lineCount?: number): string[];
19
- /**
20
- * Read a JSONL (JSON Lines) file and parse each line
21
- *
22
- * @param filePath Path to the JSONL file
23
- * @param maxLines Maximum number of lines to read from end (default: 1000)
24
- * @returns Array of parsed objects
25
- *
26
- * @example
27
- * ```typescript
28
- * const entries = readJsonLines<MyType>('/path/to/data.jsonl');
29
- * const recent = readJsonLines<MyType>('/path/to/data.jsonl', 100);
30
- * ```
31
- */
32
- export declare function readJsonLines<T = any>(filePath: string, maxLines?: number): T[];
33
- /**
34
- * Check if a file exists
35
- *
36
- * @param filePath Path to check
37
- * @returns True if file exists
38
- */
39
- export declare function fileExists(filePath: string): boolean;
40
- /**
41
- * Read a JSON file safely
42
- *
43
- * @param filePath Path to JSON file
44
- * @returns Parsed JSON object or null if error
45
- *
46
- * @example
47
- * ```typescript
48
- * const config = readJson<ConfigType>('/path/to/config.json');
49
- * ```
50
- */
51
- export declare function readJson<T = any>(filePath: string): T | null;
52
- //# sourceMappingURL=file.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/util/file.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAE,MAAY,GAAG,MAAM,EAAE,CAejF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAa,GAAG,CAAC,EAAE,CAUrF;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAMpD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAY5D"}
package/dist/util/file.js DELETED
@@ -1,135 +0,0 @@
1
- "use strict";
2
- /**
3
- * File Utilities
4
- *
5
- * Helper functions for reading files efficiently
6
- */
7
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
- if (k2 === undefined) k2 = k;
9
- var desc = Object.getOwnPropertyDescriptor(m, k);
10
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
- desc = { enumerable: true, get: function() { return m[k]; } };
12
- }
13
- Object.defineProperty(o, k2, desc);
14
- }) : (function(o, m, k, k2) {
15
- if (k2 === undefined) k2 = k;
16
- o[k2] = m[k];
17
- }));
18
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
- Object.defineProperty(o, "default", { enumerable: true, value: v });
20
- }) : function(o, v) {
21
- o["default"] = v;
22
- });
23
- var __importStar = (this && this.__importStar) || (function () {
24
- var ownKeys = function(o) {
25
- ownKeys = Object.getOwnPropertyNames || function (o) {
26
- var ar = [];
27
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
- return ar;
29
- };
30
- return ownKeys(o);
31
- };
32
- return function (mod) {
33
- if (mod && mod.__esModule) return mod;
34
- var result = {};
35
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
- __setModuleDefault(result, mod);
37
- return result;
38
- };
39
- })();
40
- Object.defineProperty(exports, "__esModule", { value: true });
41
- exports.readLastLines = readLastLines;
42
- exports.readJsonLines = readJsonLines;
43
- exports.fileExists = fileExists;
44
- exports.readJson = readJson;
45
- const fs = __importStar(require("fs"));
46
- /**
47
- * Read last N lines from a file efficiently
48
- *
49
- * @param filePath Path to the file
50
- * @param lineCount Number of lines to read from the end (default: 100)
51
- * @returns Array of lines
52
- *
53
- * @example
54
- * ```typescript
55
- * const lastLines = readLastLines('/path/to/log.txt', 50);
56
- * ```
57
- */
58
- function readLastLines(filePath, lineCount = 100) {
59
- if (!fs.existsSync(filePath)) {
60
- return [];
61
- }
62
- try {
63
- const content = fs.readFileSync(filePath, 'utf-8');
64
- const allLines = content.trim().split('\n');
65
- // Return last N lines (or all if file has fewer lines)
66
- return allLines.slice(-lineCount);
67
- }
68
- catch (error) {
69
- console.error(`Failed to read ${filePath}:`, error);
70
- return [];
71
- }
72
- }
73
- /**
74
- * Read a JSONL (JSON Lines) file and parse each line
75
- *
76
- * @param filePath Path to the JSONL file
77
- * @param maxLines Maximum number of lines to read from end (default: 1000)
78
- * @returns Array of parsed objects
79
- *
80
- * @example
81
- * ```typescript
82
- * const entries = readJsonLines<MyType>('/path/to/data.jsonl');
83
- * const recent = readJsonLines<MyType>('/path/to/data.jsonl', 100);
84
- * ```
85
- */
86
- function readJsonLines(filePath, maxLines = 1000) {
87
- const lines = readLastLines(filePath, maxLines);
88
- return lines.map(line => {
89
- try {
90
- return JSON.parse(line);
91
- }
92
- catch {
93
- return null;
94
- }
95
- }).filter((entry) => entry !== null);
96
- }
97
- /**
98
- * Check if a file exists
99
- *
100
- * @param filePath Path to check
101
- * @returns True if file exists
102
- */
103
- function fileExists(filePath) {
104
- try {
105
- return fs.existsSync(filePath);
106
- }
107
- catch {
108
- return false;
109
- }
110
- }
111
- /**
112
- * Read a JSON file safely
113
- *
114
- * @param filePath Path to JSON file
115
- * @returns Parsed JSON object or null if error
116
- *
117
- * @example
118
- * ```typescript
119
- * const config = readJson<ConfigType>('/path/to/config.json');
120
- * ```
121
- */
122
- function readJson(filePath) {
123
- if (!fs.existsSync(filePath)) {
124
- return null;
125
- }
126
- try {
127
- const content = fs.readFileSync(filePath, 'utf-8');
128
- return JSON.parse(content);
129
- }
130
- catch (error) {
131
- console.error(`Failed to parse JSON from ${filePath}:`, error);
132
- return null;
133
- }
134
- }
135
- //# sourceMappingURL=file.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/util/file.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBH,sCAeC;AAeD,sCAUC;AAQD,gCAMC;AAaD,4BAYC;AA7FD,uCAAyB;AAEzB;;;;;;;;;;;GAWG;AACH,SAAgB,aAAa,CAAC,QAAgB,EAAE,YAAoB,GAAG;IACnE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE5C,uDAAuD;QACvD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,kBAAkB,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAC;QACpD,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,aAAa,CAAU,QAAgB,EAAE,WAAmB,IAAI;IAC5E,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAEhD,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACpB,IAAI,CAAC;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAc,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;AACrD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,QAAgB;IACvC,IAAI,CAAC;QACD,OAAO,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,QAAQ,CAAU,QAAgB;IAC9C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAM,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,6BAA6B,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC"}
@@ -1,61 +0,0 @@
1
- /**
2
- * Process Detection Utilities
3
- *
4
- * Utilities for detecting and inspecting running processes on the system.
5
- * Primarily focused on macOS/Unix-like systems using the `ps` command.
6
- */
7
- import type { ProcessInfo } from '@ai-devkit/agent-manager';
8
- /**
9
- * Options for listing processes
10
- */
11
- export interface ListProcessesOptions {
12
- /** Filter processes by name pattern (case-insensitive) */
13
- namePattern?: string;
14
- /** Include only processes matching these PIDs */
15
- pids?: number[];
16
- }
17
- /**
18
- * List running processes on the system
19
- *
20
- * @param options Filtering options
21
- * @returns Array of process information
22
- *
23
- * @example
24
- * ```typescript
25
- * // List all Claude Code processes
26
- * const processes = listProcesses({ namePattern: 'claude' });
27
- *
28
- * // Get specific process info
29
- * const process = listProcesses({ pids: [12345] });
30
- * ```
31
- */
32
- export declare function listProcesses(options?: ListProcessesOptions): ProcessInfo[];
33
- /**
34
- * Get the current working directory for a specific process
35
- *
36
- * @param pid Process ID
37
- * @returns Working directory path, or empty string if unavailable
38
- */
39
- export declare function getProcessCwd(pid: number): string;
40
- /**
41
- * Get the TTY device for a specific process
42
- *
43
- * @param pid Process ID
44
- * @returns TTY device name (e.g., "ttys030"), or "?" if unavailable
45
- */
46
- export declare function getProcessTty(pid: number): string;
47
- /**
48
- * Check if a process with the given PID is running
49
- *
50
- * @param pid Process ID
51
- * @returns True if process is running
52
- */
53
- export declare function isProcessRunning(pid: number): boolean;
54
- /**
55
- * Get detailed information for a specific process
56
- *
57
- * @param pid Process ID
58
- * @returns Process information, or null if process not found
59
- */
60
- export declare function getProcessInfo(pid: number): ProcessInfo | null;
61
- //# sourceMappingURL=process.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../src/util/process.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,WAAW,EAAE,CA2D/E;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAgCjD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAYjD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CASrD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAG9D"}
@@ -1,166 +0,0 @@
1
- "use strict";
2
- /**
3
- * Process Detection Utilities
4
- *
5
- * Utilities for detecting and inspecting running processes on the system.
6
- * Primarily focused on macOS/Unix-like systems using the `ps` command.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.listProcesses = listProcesses;
10
- exports.getProcessCwd = getProcessCwd;
11
- exports.getProcessTty = getProcessTty;
12
- exports.isProcessRunning = isProcessRunning;
13
- exports.getProcessInfo = getProcessInfo;
14
- const child_process_1 = require("child_process");
15
- /**
16
- * List running processes on the system
17
- *
18
- * @param options Filtering options
19
- * @returns Array of process information
20
- *
21
- * @example
22
- * ```typescript
23
- * // List all Claude Code processes
24
- * const processes = listProcesses({ namePattern: 'claude' });
25
- *
26
- * // Get specific process info
27
- * const process = listProcesses({ pids: [12345] });
28
- * ```
29
- */
30
- function listProcesses(options = {}) {
31
- try {
32
- // Get all processes with full details
33
- // Format: user pid command
34
- const psOutput = (0, child_process_1.execSync)('ps aux', { encoding: 'utf-8' });
35
- const lines = psOutput.trim().split('\n');
36
- // Skip header line
37
- const processLines = lines.slice(1);
38
- const processes = [];
39
- for (const line of processLines) {
40
- // Parse ps aux output
41
- // Format: USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
42
- const parts = line.trim().split(/\s+/);
43
- if (parts.length < 11)
44
- continue;
45
- const pid = parseInt(parts[1], 10);
46
- if (isNaN(pid))
47
- continue;
48
- const tty = parts[6];
49
- const command = parts.slice(10).join(' ');
50
- // Apply PID filter
51
- if (options.pids && !options.pids.includes(pid)) {
52
- continue;
53
- }
54
- // Apply name pattern filter (case-insensitive)
55
- if (options.namePattern) {
56
- const pattern = options.namePattern.toLowerCase();
57
- const commandLower = command.toLowerCase();
58
- if (!commandLower.includes(pattern)) {
59
- continue;
60
- }
61
- }
62
- // Get working directory for this process
63
- const cwd = getProcessCwd(pid);
64
- // Get TTY in short format (remove /dev/ prefix if present)
65
- const ttyShort = tty.startsWith('/dev/') ? tty.slice(5) : tty;
66
- processes.push({
67
- pid,
68
- command,
69
- cwd,
70
- tty: ttyShort,
71
- });
72
- }
73
- return processes;
74
- }
75
- catch (error) {
76
- // If ps command fails, return empty array
77
- console.error('Failed to list processes:', error);
78
- return [];
79
- }
80
- }
81
- /**
82
- * Get the current working directory for a specific process
83
- *
84
- * @param pid Process ID
85
- * @returns Working directory path, or empty string if unavailable
86
- */
87
- function getProcessCwd(pid) {
88
- try {
89
- // Use lsof to get the current working directory
90
- // -a: AND the selections, -d cwd: get cwd only, -Fn: output format (file names only)
91
- const output = (0, child_process_1.execSync)(`lsof -a -p ${pid} -d cwd -Fn 2>/dev/null`, {
92
- encoding: 'utf-8',
93
- });
94
- // Parse lsof output
95
- // Format: p{PID}\nn{path}
96
- const lines = output.trim().split('\n');
97
- for (const line of lines) {
98
- if (line.startsWith('n')) {
99
- return line.slice(1); // Remove 'n' prefix
100
- }
101
- }
102
- return '';
103
- }
104
- catch (error) {
105
- // If lsof fails, try alternative method using pwdx (Linux)
106
- try {
107
- const output = (0, child_process_1.execSync)(`pwdx ${pid} 2>/dev/null`, {
108
- encoding: 'utf-8',
109
- });
110
- // Format: {PID}: {path}
111
- const match = output.match(/^\d+:\s*(.+)$/);
112
- return match ? match[1].trim() : '';
113
- }
114
- catch {
115
- // Both methods failed
116
- return '';
117
- }
118
- }
119
- }
120
- /**
121
- * Get the TTY device for a specific process
122
- *
123
- * @param pid Process ID
124
- * @returns TTY device name (e.g., "ttys030"), or "?" if unavailable
125
- */
126
- function getProcessTty(pid) {
127
- try {
128
- const output = (0, child_process_1.execSync)(`ps -p ${pid} -o tty=`, {
129
- encoding: 'utf-8',
130
- });
131
- const tty = output.trim();
132
- // Remove /dev/ prefix if present
133
- return tty.startsWith('/dev/') ? tty.slice(5) : tty;
134
- }
135
- catch (error) {
136
- return '?';
137
- }
138
- }
139
- /**
140
- * Check if a process with the given PID is running
141
- *
142
- * @param pid Process ID
143
- * @returns True if process is running
144
- */
145
- function isProcessRunning(pid) {
146
- try {
147
- // Send signal 0 to check if process exists
148
- // This doesn't actually send a signal, just checks if we can
149
- (0, child_process_1.execSync)(`kill -0 ${pid} 2>/dev/null`);
150
- return true;
151
- }
152
- catch {
153
- return false;
154
- }
155
- }
156
- /**
157
- * Get detailed information for a specific process
158
- *
159
- * @param pid Process ID
160
- * @returns Process information, or null if process not found
161
- */
162
- function getProcessInfo(pid) {
163
- const processes = listProcesses({ pids: [pid] });
164
- return processes.length > 0 ? processes[0] : null;
165
- }
166
- //# sourceMappingURL=process.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/util/process.ts"],"names":[],"mappings":"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"}