@jjlabsio/claude-crew 0.1.12 → 0.1.13
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.
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"name": "claude-crew",
|
|
12
12
|
"source": "./",
|
|
13
13
|
"description": "오케스트레이터 + PM, 플래너, 개발, QA, 마케팅 에이전트 팀으로 단일 제품의 개발과 마케팅을 통합 관리",
|
|
14
|
-
"version": "0.1.
|
|
14
|
+
"version": "0.1.13",
|
|
15
15
|
"author": {
|
|
16
16
|
"name": "Jaejin Song",
|
|
17
17
|
"email": "wowlxx28@gmail.com"
|
|
@@ -28,5 +28,5 @@
|
|
|
28
28
|
"category": "workflow"
|
|
29
29
|
}
|
|
30
30
|
],
|
|
31
|
-
"version": "0.1.
|
|
31
|
+
"version": "0.1.13"
|
|
32
32
|
}
|
package/hud/index.mjs
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
import { execSync } from 'node:child_process';
|
|
13
|
-
import { readFileSync, existsSync } from 'node:fs';
|
|
13
|
+
import { readFileSync, existsSync, readdirSync } from 'node:fs';
|
|
14
14
|
import { join, dirname, basename } from 'node:path';
|
|
15
15
|
import { fileURLToPath } from 'node:url';
|
|
16
16
|
|
|
@@ -57,6 +57,28 @@ function getVersion() {
|
|
|
57
57
|
return '0.0.0';
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
+
// ---------------------------------------------------------------------------
|
|
61
|
+
// Agent definitions (subagent_type → model)
|
|
62
|
+
// ---------------------------------------------------------------------------
|
|
63
|
+
function loadAgentModels() {
|
|
64
|
+
try {
|
|
65
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
66
|
+
const agentsDir = join(__dirname, '..', 'agents');
|
|
67
|
+
const models = {};
|
|
68
|
+
const files = readdirSync(agentsDir).filter(f => f.endsWith('.md'));
|
|
69
|
+
for (const file of files) {
|
|
70
|
+
const content = readFileSync(join(agentsDir, file), 'utf-8');
|
|
71
|
+
const fmMatch = content.match(/^---\n([\s\S]*?)\n---/);
|
|
72
|
+
if (!fmMatch) continue;
|
|
73
|
+
const fm = fmMatch[1];
|
|
74
|
+
const name = fm.match(/^name:\s*(.+)$/m)?.[1]?.trim();
|
|
75
|
+
const model = fm.match(/^model:\s*(.+)$/m)?.[1]?.trim();
|
|
76
|
+
if (name && model) models[name] = model;
|
|
77
|
+
}
|
|
78
|
+
return models;
|
|
79
|
+
} catch { return {}; }
|
|
80
|
+
}
|
|
81
|
+
|
|
60
82
|
// ---------------------------------------------------------------------------
|
|
61
83
|
// Git helpers
|
|
62
84
|
// ---------------------------------------------------------------------------
|
|
@@ -144,6 +166,8 @@ function parseTranscript(transcriptPath) {
|
|
|
144
166
|
const result = { agents: [], lastSkill: null, sessionStart: null };
|
|
145
167
|
if (!transcriptPath || !existsSync(transcriptPath)) return result;
|
|
146
168
|
|
|
169
|
+
const agentModels = loadAgentModels();
|
|
170
|
+
|
|
147
171
|
try {
|
|
148
172
|
const content = readFileSync(transcriptPath, 'utf-8');
|
|
149
173
|
const lines = content.split('\n').filter(Boolean);
|
|
@@ -178,7 +202,8 @@ function parseTranscript(transcriptPath) {
|
|
|
178
202
|
if (id) {
|
|
179
203
|
const input = block.input || {};
|
|
180
204
|
const agentType = input.subagent_type || input.type || 'general';
|
|
181
|
-
const
|
|
205
|
+
const rawType = agentType.replace(/^claude-crew:/, '');
|
|
206
|
+
const model = input.model || agentModels[rawType] || null;
|
|
182
207
|
const description = input.description || input.prompt?.slice(0, 50) || '';
|
|
183
208
|
const ts = entry.timestamp || lastTimestamp;
|
|
184
209
|
agentMap.set(id, {
|