mstro-app 0.4.39 → 0.4.44
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/PRIVACY.md +1 -3
- package/bin/commands/login.js +17 -7
- package/bin/commands/logout.js +14 -6
- package/bin/commands/status.js +9 -3
- package/bin/commands/whoami.js +10 -4
- package/bin/mstro.js +11 -1
- package/dist/server/cli/headless/claude-invoker-stream.d.ts.map +1 -1
- package/dist/server/cli/headless/claude-invoker-stream.js +1 -0
- package/dist/server/cli/headless/claude-invoker-stream.js.map +1 -1
- package/dist/server/cli/headless/index.d.ts +1 -0
- package/dist/server/cli/headless/index.d.ts.map +1 -1
- package/dist/server/cli/headless/index.js +2 -0
- package/dist/server/cli/headless/index.js.map +1 -1
- package/dist/server/cli/headless/resilient-runner.d.ts +47 -0
- package/dist/server/cli/headless/resilient-runner.d.ts.map +1 -0
- package/dist/server/cli/headless/resilient-runner.js +234 -0
- package/dist/server/cli/headless/resilient-runner.js.map +1 -0
- package/dist/server/cli/headless/retry-strategies.d.ts +44 -0
- package/dist/server/cli/headless/retry-strategies.d.ts.map +1 -0
- package/dist/server/cli/headless/retry-strategies.js +262 -0
- package/dist/server/cli/headless/retry-strategies.js.map +1 -0
- package/dist/server/cli/headless/stall-assessor.d.ts.map +1 -1
- package/dist/server/cli/headless/stall-assessor.js +5 -0
- package/dist/server/cli/headless/stall-assessor.js.map +1 -1
- package/dist/server/cli/headless/tool-watchdog.d.ts +2 -0
- package/dist/server/cli/headless/tool-watchdog.d.ts.map +1 -1
- package/dist/server/cli/headless/tool-watchdog.js +31 -4
- package/dist/server/cli/headless/tool-watchdog.js.map +1 -1
- package/dist/server/cli/improvisation-retry.d.ts.map +1 -1
- package/dist/server/cli/improvisation-retry.js +1 -30
- package/dist/server/cli/improvisation-retry.js.map +1 -1
- package/dist/server/cli/improvisation-session-manager.d.ts +1 -0
- package/dist/server/cli/improvisation-session-manager.d.ts.map +1 -1
- package/dist/server/cli/improvisation-session-manager.js +16 -3
- package/dist/server/cli/improvisation-session-manager.js.map +1 -1
- package/dist/server/cli/prompt-builders.d.ts.map +1 -1
- package/dist/server/cli/prompt-builders.js +31 -13
- package/dist/server/cli/prompt-builders.js.map +1 -1
- package/dist/server/index.js +1 -9
- package/dist/server/index.js.map +1 -1
- package/dist/server/mcp/bouncer-cli.js +5 -4
- package/dist/server/mcp/bouncer-cli.js.map +1 -1
- package/dist/server/mcp/bouncer-haiku.js +1 -1
- package/dist/server/mcp/bouncer-haiku.js.map +1 -1
- package/dist/server/mcp/bouncer-integration.d.ts.map +1 -1
- package/dist/server/mcp/bouncer-integration.js +14 -8
- package/dist/server/mcp/bouncer-integration.js.map +1 -1
- package/dist/server/mcp/security-patterns.js +1 -1
- package/dist/server/mcp/security-patterns.js.map +1 -1
- package/dist/server/services/plan/composer.d.ts.map +1 -1
- package/dist/server/services/plan/composer.js +19 -9
- package/dist/server/services/plan/composer.js.map +1 -1
- package/dist/server/services/plan/executor.d.ts +6 -1
- package/dist/server/services/plan/executor.d.ts.map +1 -1
- package/dist/server/services/plan/executor.js +163 -77
- package/dist/server/services/plan/executor.js.map +1 -1
- package/dist/server/services/plan/front-matter.d.ts +1 -0
- package/dist/server/services/plan/front-matter.d.ts.map +1 -1
- package/dist/server/services/plan/front-matter.js +6 -0
- package/dist/server/services/plan/front-matter.js.map +1 -1
- package/dist/server/services/plan/issue-classification.d.ts +11 -0
- package/dist/server/services/plan/issue-classification.d.ts.map +1 -0
- package/dist/server/services/plan/issue-classification.js +20 -0
- package/dist/server/services/plan/issue-classification.js.map +1 -0
- package/dist/server/services/plan/issue-prompt-builder.d.ts.map +1 -1
- package/dist/server/services/plan/issue-prompt-builder.js +7 -4
- package/dist/server/services/plan/issue-prompt-builder.js.map +1 -1
- package/dist/server/services/plan/issue-retry.d.ts +0 -5
- package/dist/server/services/plan/issue-retry.d.ts.map +1 -1
- package/dist/server/services/plan/issue-retry.js +12 -241
- package/dist/server/services/plan/issue-retry.js.map +1 -1
- package/dist/server/services/plan/parser-core.d.ts.map +1 -1
- package/dist/server/services/plan/parser-core.js +1 -0
- package/dist/server/services/plan/parser-core.js.map +1 -1
- package/dist/server/services/plan/review-gate.d.ts.map +1 -1
- package/dist/server/services/plan/review-gate.js +9 -6
- package/dist/server/services/plan/review-gate.js.map +1 -1
- package/dist/server/services/plan/types.d.ts +1 -0
- package/dist/server/services/plan/types.d.ts.map +1 -1
- package/dist/server/services/platform-credentials.d.ts.map +1 -1
- package/dist/server/services/platform-credentials.js +11 -4
- package/dist/server/services/platform-credentials.js.map +1 -1
- package/dist/server/services/terminal/pty-manager.d.ts.map +1 -1
- package/dist/server/services/terminal/pty-manager.js +7 -1
- package/dist/server/services/terminal/pty-manager.js.map +1 -1
- package/dist/server/services/websocket/file-search-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/file-search-handlers.js +4 -0
- package/dist/server/services/websocket/file-search-handlers.js.map +1 -1
- package/dist/server/services/websocket/handler-context.d.ts +2 -0
- package/dist/server/services/websocket/handler-context.d.ts.map +1 -1
- package/dist/server/services/websocket/handler.d.ts +2 -0
- package/dist/server/services/websocket/handler.d.ts.map +1 -1
- package/dist/server/services/websocket/handler.js +18 -7
- package/dist/server/services/websocket/handler.js.map +1 -1
- package/dist/server/services/websocket/plan-execution-handlers.js +6 -6
- package/dist/server/services/websocket/plan-execution-handlers.js.map +1 -1
- package/dist/server/services/websocket/quality-fix-agent.d.ts.map +1 -1
- package/dist/server/services/websocket/quality-fix-agent.js +90 -42
- package/dist/server/services/websocket/quality-fix-agent.js.map +1 -1
- package/dist/server/services/websocket/quality-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/quality-handlers.js +48 -7
- package/dist/server/services/websocket/quality-handlers.js.map +1 -1
- package/dist/server/services/websocket/quality-persistence.d.ts +22 -0
- package/dist/server/services/websocket/quality-persistence.d.ts.map +1 -1
- package/dist/server/services/websocket/quality-persistence.js +48 -1
- package/dist/server/services/websocket/quality-persistence.js.map +1 -1
- package/dist/server/services/websocket/quality-review-agent.d.ts.map +1 -1
- package/dist/server/services/websocket/quality-review-agent.js +74 -32
- package/dist/server/services/websocket/quality-review-agent.js.map +1 -1
- package/dist/server/services/websocket/quality-tools.d.ts.map +1 -1
- package/dist/server/services/websocket/quality-tools.js +18 -18
- package/dist/server/services/websocket/quality-tools.js.map +1 -1
- package/dist/server/services/websocket/skill-handlers.d.ts +3 -1
- package/dist/server/services/websocket/skill-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/skill-handlers.js +52 -41
- package/dist/server/services/websocket/skill-handlers.js.map +1 -1
- package/dist/server/services/websocket/skill-watcher.d.ts +17 -0
- package/dist/server/services/websocket/skill-watcher.d.ts.map +1 -0
- package/dist/server/services/websocket/skill-watcher.js +85 -0
- package/dist/server/services/websocket/skill-watcher.js.map +1 -0
- package/dist/server/services/websocket/types.d.ts +2 -268
- package/dist/server/services/websocket/types.d.ts.map +1 -1
- package/dist/server/services/websocket/types.js +0 -4
- package/dist/server/services/websocket/types.js.map +1 -1
- package/package.json +1 -1
- package/server/cli/headless/claude-invoker-stream.ts +1 -0
- package/server/cli/headless/index.ts +2 -0
- package/server/cli/headless/resilient-runner.ts +354 -0
- package/server/cli/headless/retry-strategies.ts +330 -0
- package/server/cli/headless/stall-assessor.ts +5 -0
- package/server/cli/headless/tool-watchdog.ts +40 -4
- package/server/cli/improvisation-retry.ts +1 -32
- package/server/cli/improvisation-session-manager.ts +17 -3
- package/server/cli/prompt-builders.ts +33 -12
- package/server/index.ts +1 -9
- package/server/mcp/bouncer-cli.ts +5 -4
- package/server/mcp/bouncer-haiku.ts +1 -1
- package/server/mcp/bouncer-integration.ts +15 -8
- package/server/mcp/security-patterns.ts +1 -1
- package/server/services/plan/agents/code-review.md +109 -0
- package/server/services/plan/agents/commit-message.md +26 -0
- package/server/services/plan/agents/fix-quality.md +24 -0
- package/server/services/plan/agents/pr-description.md +28 -0
- package/server/services/plan/composer.ts +20 -9
- package/server/services/plan/executor.ts +165 -77
- package/server/services/plan/front-matter.ts +7 -0
- package/server/services/plan/issue-classification.ts +21 -0
- package/server/services/plan/issue-prompt-builder.ts +8 -4
- package/server/services/plan/issue-retry.ts +15 -330
- package/server/services/plan/parser-core.ts +1 -0
- package/server/services/plan/review-gate.ts +9 -6
- package/server/services/plan/types.ts +3 -0
- package/server/services/platform-credentials.ts +10 -4
- package/server/services/terminal/pty-manager.ts +7 -1
- package/server/services/websocket/file-search-handlers.ts +2 -0
- package/server/services/websocket/handler-context.ts +2 -0
- package/server/services/websocket/handler.ts +18 -8
- package/server/services/websocket/plan-execution-handlers.ts +7 -7
- package/server/services/websocket/quality-fix-agent.ts +86 -44
- package/server/services/websocket/quality-handlers.ts +48 -7
- package/server/services/websocket/quality-persistence.ts +75 -1
- package/server/services/websocket/quality-review-agent.ts +70 -31
- package/server/services/websocket/quality-tools.ts +16 -14
- package/server/services/websocket/skill-handlers.ts +50 -40
- package/server/services/websocket/skill-watcher.ts +79 -0
- package/server/services/websocket/types.ts +0 -311
- package/dist/server/services/deploy/ai-broker.d.ts +0 -63
- package/dist/server/services/deploy/ai-broker.d.ts.map +0 -1
- package/dist/server/services/deploy/ai-broker.js +0 -360
- package/dist/server/services/deploy/ai-broker.js.map +0 -1
- package/dist/server/services/deploy/board-execution-handler.d.ts +0 -114
- package/dist/server/services/deploy/board-execution-handler.d.ts.map +0 -1
- package/dist/server/services/deploy/board-execution-handler.js +0 -621
- package/dist/server/services/deploy/board-execution-handler.js.map +0 -1
- package/dist/server/services/deploy/credentials.d.ts +0 -35
- package/dist/server/services/deploy/credentials.d.ts.map +0 -1
- package/dist/server/services/deploy/credentials.js +0 -177
- package/dist/server/services/deploy/credentials.js.map +0 -1
- package/dist/server/services/deploy/deploy-ai-service.d.ts +0 -107
- package/dist/server/services/deploy/deploy-ai-service.d.ts.map +0 -1
- package/dist/server/services/deploy/deploy-ai-service.js +0 -294
- package/dist/server/services/deploy/deploy-ai-service.js.map +0 -1
- package/dist/server/services/deploy/headless-session-handler.d.ts +0 -94
- package/dist/server/services/deploy/headless-session-handler.d.ts.map +0 -1
- package/dist/server/services/deploy/headless-session-handler.js +0 -266
- package/dist/server/services/deploy/headless-session-handler.js.map +0 -1
- package/dist/server/services/websocket/deploy-handlers.d.ts +0 -14
- package/dist/server/services/websocket/deploy-handlers.d.ts.map +0 -1
- package/dist/server/services/websocket/deploy-handlers.js +0 -409
- package/dist/server/services/websocket/deploy-handlers.js.map +0 -1
- package/dist/server/services/websocket/handlers/deploy-handlers.d.ts +0 -11
- package/dist/server/services/websocket/handlers/deploy-handlers.d.ts.map +0 -1
- package/dist/server/services/websocket/handlers/deploy-handlers.js +0 -176
- package/dist/server/services/websocket/handlers/deploy-handlers.js.map +0 -1
- package/server/cli/headless/RESEARCH.md +0 -627
- package/server/services/deploy/ai-broker.ts +0 -512
- package/server/services/deploy/board-execution-handler.ts +0 -847
- package/server/services/deploy/credentials.ts +0 -200
- package/server/services/deploy/deploy-ai-service.ts +0 -401
- package/server/services/deploy/headless-session-handler.ts +0 -414
- package/server/services/websocket/deploy-handlers.ts +0 -544
- package/server/services/websocket/handlers/deploy-handlers.ts +0 -228
|
@@ -8,7 +8,7 @@ import { fileURLToPath } from 'node:url';
|
|
|
8
8
|
import { findSkillsDir } from '../../utils/paths.js';
|
|
9
9
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
10
10
|
const SYSTEM_AGENTS_DIR = join(__dirname, '..', 'plan', 'agents');
|
|
11
|
-
const USER_SKILLS_DIR = join(homedir(), '.claude', 'skills');
|
|
11
|
+
export const USER_SKILLS_DIR = join(homedir(), '.claude', 'skills');
|
|
12
12
|
const PLATFORM_COMMANDS = [
|
|
13
13
|
{
|
|
14
14
|
name: 'board',
|
|
@@ -128,24 +128,37 @@ function scanSystemAgents(agentsDir, seen) {
|
|
|
128
128
|
}
|
|
129
129
|
return entries;
|
|
130
130
|
}
|
|
131
|
-
export function
|
|
132
|
-
const skills = [
|
|
133
|
-
const seen = new Set(
|
|
131
|
+
export function collectAllSkills(workingDir) {
|
|
132
|
+
const skills = [];
|
|
133
|
+
const seen = new Set();
|
|
134
|
+
// 1. Project skills (highest priority — override everything)
|
|
134
135
|
const projectSkillsDir = findSkillsDir(workingDir);
|
|
135
136
|
if (projectSkillsDir) {
|
|
136
|
-
const
|
|
137
|
-
for (const s of projectSkills) {
|
|
137
|
+
for (const s of scanProjectSkills(projectSkillsDir)) {
|
|
138
138
|
if (!seen.has(s.name)) {
|
|
139
139
|
skills.push(s);
|
|
140
140
|
seen.add(s.name);
|
|
141
141
|
}
|
|
142
142
|
}
|
|
143
143
|
}
|
|
144
|
+
// 2. User skills (override platform commands and system agents)
|
|
144
145
|
skills.push(...scanUserSkills(USER_SKILLS_DIR, seen));
|
|
145
146
|
for (const s of skills)
|
|
146
147
|
seen.add(s.name);
|
|
148
|
+
// 3. Platform commands (only if not overridden by an external skill)
|
|
149
|
+
for (const cmd of PLATFORM_COMMANDS) {
|
|
150
|
+
if (!seen.has(cmd.name)) {
|
|
151
|
+
skills.push(cmd);
|
|
152
|
+
seen.add(cmd.name);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// 4. System agents (lowest priority)
|
|
147
156
|
skills.push(...scanSystemAgents(SYSTEM_AGENTS_DIR, seen));
|
|
148
157
|
skills.sort((a, b) => a.name.localeCompare(b.name));
|
|
158
|
+
return skills;
|
|
159
|
+
}
|
|
160
|
+
export function handleListSkills(ctx, ws, workingDir) {
|
|
161
|
+
const skills = collectAllSkills(workingDir);
|
|
149
162
|
ctx.send(ws, { type: 'skillsList', data: { skills } });
|
|
150
163
|
}
|
|
151
164
|
/**
|
|
@@ -159,41 +172,38 @@ function extractSkillContent(fileContent) {
|
|
|
159
172
|
return fileContent;
|
|
160
173
|
return fileContent.slice(endIdx + 3).trim();
|
|
161
174
|
}
|
|
175
|
+
function tryReadSkillFile(filePath, skillDir, userInvocableOnly, source) {
|
|
176
|
+
if (!existsSync(filePath))
|
|
177
|
+
return null;
|
|
178
|
+
try {
|
|
179
|
+
const content = readFileSync(filePath, 'utf-8');
|
|
180
|
+
if (userInvocableOnly && parseFrontmatter(content)['user-invocable'] === 'false')
|
|
181
|
+
return null;
|
|
182
|
+
return { content, skillDir, source };
|
|
183
|
+
}
|
|
184
|
+
catch {
|
|
185
|
+
return null;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
162
188
|
/**
|
|
163
|
-
* Find and read a skill's SKILL.md by name. Checks project skills first, then system agents.
|
|
164
|
-
*
|
|
189
|
+
* Find and read a skill's SKILL.md by name. Checks project skills first, then user skills, then system agents.
|
|
190
|
+
* When `userInvocableOnly` is true, skips entries with `user-invocable: false` and continues
|
|
191
|
+
* to the next source — this ensures internal-only project skills don't shadow user skills.
|
|
165
192
|
*/
|
|
166
|
-
function findSkillContent(skillName, workingDir) {
|
|
167
|
-
// Project skills: .claude/skills/<name>/SKILL.md
|
|
193
|
+
function findSkillContent(skillName, workingDir, userInvocableOnly = false) {
|
|
168
194
|
const projectSkillsDir = findSkillsDir(workingDir);
|
|
169
195
|
if (projectSkillsDir) {
|
|
170
196
|
const skillDir = join(projectSkillsDir, skillName);
|
|
171
|
-
const
|
|
172
|
-
if (
|
|
173
|
-
|
|
174
|
-
return { content: readFileSync(skillFile, 'utf-8'), skillDir };
|
|
175
|
-
}
|
|
176
|
-
catch { /* fall through */ }
|
|
177
|
-
}
|
|
197
|
+
const found = tryReadSkillFile(join(skillDir, 'SKILL.md'), skillDir, userInvocableOnly, 'project');
|
|
198
|
+
if (found)
|
|
199
|
+
return found;
|
|
178
200
|
}
|
|
179
|
-
// User skills: ~/.claude/skills/<name>/SKILL.md
|
|
180
201
|
const userSkillDir = join(USER_SKILLS_DIR, skillName);
|
|
181
|
-
const
|
|
182
|
-
if (
|
|
183
|
-
|
|
184
|
-
return { content: readFileSync(userSkillFile, 'utf-8'), skillDir: userSkillDir };
|
|
185
|
-
}
|
|
186
|
-
catch { /* fall through */ }
|
|
187
|
-
}
|
|
188
|
-
// System agents: <agents-dir>/<name>.md
|
|
202
|
+
const found = tryReadSkillFile(join(userSkillDir, 'SKILL.md'), userSkillDir, userInvocableOnly, 'user');
|
|
203
|
+
if (found)
|
|
204
|
+
return found;
|
|
189
205
|
const agentFile = join(SYSTEM_AGENTS_DIR, `${skillName}.md`);
|
|
190
|
-
|
|
191
|
-
try {
|
|
192
|
-
return { content: readFileSync(agentFile, 'utf-8'), skillDir: SYSTEM_AGENTS_DIR };
|
|
193
|
-
}
|
|
194
|
-
catch { /* fall through */ }
|
|
195
|
-
}
|
|
196
|
-
return null;
|
|
206
|
+
return tryReadSkillFile(agentFile, SYSTEM_AGENTS_DIR, userInvocableOnly, 'system');
|
|
197
207
|
}
|
|
198
208
|
/**
|
|
199
209
|
* Fill in {{mustache}} template variables in skill content.
|
|
@@ -254,7 +264,9 @@ function fillArgumentVariables(content, userArgs) {
|
|
|
254
264
|
* Also handles fenced ```! blocks for multi-line commands.
|
|
255
265
|
* Runs in the skill's working directory with a short timeout.
|
|
256
266
|
*/
|
|
257
|
-
function executeInlineShellCommands(content, workingDir) {
|
|
267
|
+
function executeInlineShellCommands(content, workingDir, source) {
|
|
268
|
+
if (source !== 'system' && source !== 'user')
|
|
269
|
+
return content;
|
|
258
270
|
// Fenced ```! blocks — multi-line shell execution
|
|
259
271
|
let result = content.replace(/```!\n([\s\S]*?)```/g, (_, block) => {
|
|
260
272
|
const cmd = block.trim();
|
|
@@ -298,7 +310,7 @@ function parseSlashCommand(trimmed) {
|
|
|
298
310
|
}
|
|
299
311
|
const CLAUDE_SKILL_DIR_RE = /\$\{CLAUDE_SKILL_DIR}/g;
|
|
300
312
|
const CLAUDE_SESSION_ID_RE = /\$\{CLAUDE_SESSION_ID}/g;
|
|
301
|
-
function processSkillContent(rawContent, userArgs, skillDir, workingDir) {
|
|
313
|
+
function processSkillContent(rawContent, userArgs, skillDir, workingDir, source) {
|
|
302
314
|
let content = extractSkillContent(rawContent);
|
|
303
315
|
content = fillTemplateVariables(content, {
|
|
304
316
|
dirPath: userArgs || workingDir,
|
|
@@ -311,7 +323,7 @@ function processSkillContent(rawContent, userArgs, skillDir, workingDir) {
|
|
|
311
323
|
content = content.replace(CLAUDE_SKILL_DIR_RE, skillDir);
|
|
312
324
|
content = content.replace(CLAUDE_SESSION_ID_RE, `mstro-${Date.now()}`);
|
|
313
325
|
if (/!`[^`]+`/.test(content) || /```!\n/.test(content)) {
|
|
314
|
-
content = executeInlineShellCommands(content, workingDir);
|
|
326
|
+
content = executeInlineShellCommands(content, workingDir, source);
|
|
315
327
|
}
|
|
316
328
|
if (userArgs && !hasArgumentsPlaceholder && !rawContent.includes('{{dirPath}}')) {
|
|
317
329
|
content = `${content}\n\nARGUMENTS: ${userArgs}`;
|
|
@@ -322,13 +334,12 @@ export function resolveSkillPrompt(prompt, workingDir) {
|
|
|
322
334
|
const parsed = parseSlashCommand(prompt.trim());
|
|
323
335
|
if (!parsed)
|
|
324
336
|
return null;
|
|
325
|
-
|
|
337
|
+
// Only resolve user-invocable skills — internal-only skills (user-invocable: false)
|
|
338
|
+
// are skipped so they don't shadow external skills with the same name.
|
|
339
|
+
const found = findSkillContent(parsed.skillName, workingDir, true);
|
|
326
340
|
if (!found)
|
|
327
341
|
return null;
|
|
328
|
-
const
|
|
329
|
-
if (fm['user-invocable'] === 'false')
|
|
330
|
-
return null;
|
|
331
|
-
const skillPrompt = processSkillContent(found.content, parsed.userArgs, found.skillDir, workingDir);
|
|
342
|
+
const skillPrompt = processSkillContent(found.content, parsed.userArgs, found.skillDir, workingDir, found.source);
|
|
332
343
|
return { prompt: skillPrompt, skillName: parsed.skillName, userArgs: parsed.userArgs };
|
|
333
344
|
}
|
|
334
345
|
//# sourceMappingURL=skill-handlers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-handlers.js","sourceRoot":"","sources":["../../../../server/services/websocket/skill-handlers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skill-handlers.js","sourceRoot":"","sources":["../../../../server/services/websocket/skill-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { HandlerContext } from './handler-context.js';
|
|
2
|
+
export declare class SkillsWatcher {
|
|
3
|
+
private readonly workingDir;
|
|
4
|
+
private readonly ctx;
|
|
5
|
+
private userWatcher;
|
|
6
|
+
private projectWatcher;
|
|
7
|
+
private debounceTimer;
|
|
8
|
+
private lastSkillsHash;
|
|
9
|
+
private started;
|
|
10
|
+
constructor(workingDir: string, ctx: HandlerContext);
|
|
11
|
+
start(): void;
|
|
12
|
+
stop(): void;
|
|
13
|
+
private debounce;
|
|
14
|
+
private handleChange;
|
|
15
|
+
private computeHash;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=skill-watcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-watcher.d.ts","sourceRoot":"","sources":["../../../../server/services/websocket/skill-watcher.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,qBAAa,aAAa;IAQtB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,GAAG;IARtB,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,cAAc,CAAM;IAC5B,OAAO,CAAC,OAAO,CAAS;gBAGL,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,cAAc;IAGtC,KAAK,IAAI,IAAI;IA2Bb,IAAI,IAAI,IAAI;IAOZ,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,WAAW;CAIpB"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
// Copyright (c) 2025-present Mstro, Inc. All rights reserved.
|
|
2
|
+
// Licensed under the MIT License. See LICENSE file for details.
|
|
3
|
+
import { watch } from 'node:fs';
|
|
4
|
+
import { findSkillsDir } from '../../utils/paths.js';
|
|
5
|
+
import { collectAllSkills, USER_SKILLS_DIR } from './skill-handlers.js';
|
|
6
|
+
export class SkillsWatcher {
|
|
7
|
+
workingDir;
|
|
8
|
+
ctx;
|
|
9
|
+
userWatcher = null;
|
|
10
|
+
projectWatcher = null;
|
|
11
|
+
debounceTimer = null;
|
|
12
|
+
lastSkillsHash = '';
|
|
13
|
+
started = false;
|
|
14
|
+
constructor(workingDir, ctx) {
|
|
15
|
+
this.workingDir = workingDir;
|
|
16
|
+
this.ctx = ctx;
|
|
17
|
+
}
|
|
18
|
+
start() {
|
|
19
|
+
if (this.started)
|
|
20
|
+
return;
|
|
21
|
+
this.lastSkillsHash = this.computeHash();
|
|
22
|
+
try {
|
|
23
|
+
this.userWatcher = watch(USER_SKILLS_DIR, { recursive: true }, (_event, filename) => {
|
|
24
|
+
if (!filename || !filename.endsWith('.md'))
|
|
25
|
+
return;
|
|
26
|
+
this.debounce();
|
|
27
|
+
});
|
|
28
|
+
this.userWatcher.on('error', () => { });
|
|
29
|
+
}
|
|
30
|
+
catch { /* directory missing or recursive watch unsupported */ }
|
|
31
|
+
const projectSkillsDir = findSkillsDir(this.workingDir);
|
|
32
|
+
if (projectSkillsDir) {
|
|
33
|
+
try {
|
|
34
|
+
this.projectWatcher = watch(projectSkillsDir, { recursive: true }, (_event, filename) => {
|
|
35
|
+
if (!filename || !filename.endsWith('.md'))
|
|
36
|
+
return;
|
|
37
|
+
this.debounce();
|
|
38
|
+
});
|
|
39
|
+
this.projectWatcher.on('error', () => { });
|
|
40
|
+
}
|
|
41
|
+
catch { /* directory missing or recursive watch unsupported */ }
|
|
42
|
+
}
|
|
43
|
+
this.started = true;
|
|
44
|
+
}
|
|
45
|
+
stop() {
|
|
46
|
+
if (this.userWatcher) {
|
|
47
|
+
this.userWatcher.close();
|
|
48
|
+
this.userWatcher = null;
|
|
49
|
+
}
|
|
50
|
+
if (this.projectWatcher) {
|
|
51
|
+
this.projectWatcher.close();
|
|
52
|
+
this.projectWatcher = null;
|
|
53
|
+
}
|
|
54
|
+
if (this.debounceTimer) {
|
|
55
|
+
clearTimeout(this.debounceTimer);
|
|
56
|
+
this.debounceTimer = null;
|
|
57
|
+
}
|
|
58
|
+
this.started = false;
|
|
59
|
+
}
|
|
60
|
+
debounce() {
|
|
61
|
+
if (this.debounceTimer)
|
|
62
|
+
clearTimeout(this.debounceTimer);
|
|
63
|
+
this.debounceTimer = setTimeout(() => {
|
|
64
|
+
this.handleChange();
|
|
65
|
+
}, 250);
|
|
66
|
+
}
|
|
67
|
+
handleChange() {
|
|
68
|
+
try {
|
|
69
|
+
const skills = collectAllSkills(this.workingDir);
|
|
70
|
+
const hash = JSON.stringify(skills.map(s => `${s.name}:${s.source}:${s.description}`));
|
|
71
|
+
if (hash === this.lastSkillsHash)
|
|
72
|
+
return;
|
|
73
|
+
this.lastSkillsHash = hash;
|
|
74
|
+
this.ctx.broadcastToAll({ type: 'skillsList', data: { skills } });
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
// Ignore errors from partial writes or missing files
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
computeHash() {
|
|
81
|
+
const skills = collectAllSkills(this.workingDir);
|
|
82
|
+
return JSON.stringify(skills.map(s => `${s.name}:${s.source}:${s.description}`));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=skill-watcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-watcher.js","sourceRoot":"","sources":["../../../../server/services/websocket/skill-watcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,10 +30,8 @@ declare const FileUploadMessages: readonly ["fileUploadStart", "fileUploadChunk"
|
|
|
30
30
|
declare const PlanMessages: readonly ["planInit", "planGetState", "planListIssues", "planGetIssue", "planGetSprint", "planGetMilestone", "planCreateIssue", "planUpdateIssue", "planDeleteIssue", "planScaffold", "planPrompt", "planExecute", "planExecuteEpic", "planPause", "planStop", "planResume"];
|
|
31
31
|
declare const PlanBoardMessages: readonly ["planCreateBoard", "planUpdateBoard", "planArchiveBoard", "planGetBoard", "planGetBoardState", "planReorderBoards", "planSetActiveBoard", "planGetBoardArtifacts"];
|
|
32
32
|
declare const PlanSprintMessages: readonly ["planCreateSprint", "planActivateSprint", "planCompleteSprint", "planGetSprintArtifacts"];
|
|
33
|
-
declare const DeployMessages: readonly ["deployCreate", "deployStop", "deployResume", "deployDelete", "deployList", "deployGetStatus", "deployUpdateConfig", "deploySetApiKey", "deployValidateApiKey"];
|
|
34
|
-
declare const DeployRelayMessages: readonly ["deployHttpRequest", "deployUsageReport", "deployAiHealthUpdate"];
|
|
35
33
|
declare const SkillMessages: readonly ["listSkills", "chatToBoard"];
|
|
36
|
-
type WebSocketMessageType = typeof CoreMessages[number] | typeof TerminalMessages[number] | typeof FileExplorerMessages[number] | typeof GitMessages[number] | typeof GitBranchMessages[number] | typeof GitDiffMessages[number] | typeof GitTagMessages[number] | typeof GitWorktreeMessages[number] | typeof GitMergeMessages[number] | typeof SessionSyncMessages[number] | typeof SettingsMessages[number] | typeof QualityMessages[number] | typeof FileUploadMessages[number] | typeof PlanMessages[number] | typeof PlanBoardMessages[number] | typeof PlanSprintMessages[number] | typeof
|
|
34
|
+
type WebSocketMessageType = typeof CoreMessages[number] | typeof TerminalMessages[number] | typeof FileExplorerMessages[number] | typeof GitMessages[number] | typeof GitBranchMessages[number] | typeof GitDiffMessages[number] | typeof GitTagMessages[number] | typeof GitWorktreeMessages[number] | typeof GitMergeMessages[number] | typeof SessionSyncMessages[number] | typeof SettingsMessages[number] | typeof QualityMessages[number] | typeof FileUploadMessages[number] | typeof PlanMessages[number] | typeof PlanBoardMessages[number] | typeof PlanSprintMessages[number] | typeof SkillMessages[number];
|
|
37
35
|
export interface WebSocketMessage {
|
|
38
36
|
type: WebSocketMessageType;
|
|
39
37
|
tabId?: string;
|
|
@@ -58,10 +56,8 @@ declare const FileUploadResponseMessages: readonly ["fileUploadAck", "fileUpload
|
|
|
58
56
|
declare const PlanResponseMessages: readonly ["planState", "planIssueList", "planIssue", "planSprint", "planMilestone", "planNotFound", "planStateUpdated", "planIssueUpdated", "planIssueCreated", "planIssueDeleted", "planScaffolded", "planPromptStreaming", "planPromptProgress", "planPromptResponse", "planExecutionStarted", "planExecutionProgress", "planExecutionOutput", "planExecutionMetrics", "planExecutionComplete", "planExecutionError", "planError"];
|
|
59
57
|
declare const PlanBoardResponseMessages: readonly ["planBoardCreated", "planBoardUpdated", "planBoardArchived", "planBoardState", "planBoardArtifacts", "planWorkspaceUpdated"];
|
|
60
58
|
declare const PlanSprintResponseMessages: readonly ["planSprintCreated", "planSprintUpdated", "planSprintCompleted", "planSprintArtifacts", "planReviewProgress"];
|
|
61
|
-
declare const DeployResponseMessages: readonly ["deployCreated", "deployStopped", "deployResumed", "deployDeleted", "deployListResult", "deployStatusResult", "deployConfigUpdated", "deployApiKeyStatus", "deployError"];
|
|
62
|
-
declare const DeployRelayResponseMessages: readonly ["deployHttpResponse", "deployHttpResponseChunk", "deployStatus", "deployUsageReportAck", "deployAiHealthAck"];
|
|
63
59
|
declare const SkillResponseMessages: readonly ["skillsList", "chatToBoardCreated"];
|
|
64
|
-
type WebSocketResponseType = typeof CoreResponseMessages[number] | typeof TerminalResponseMessages[number] | typeof FileExplorerResponseMessages[number] | typeof GitResponseMessages[number] | typeof GitBranchResponseMessages[number] | typeof GitDiffResponseMessages[number] | typeof GitTagResponseMessages[number] | typeof GitWorktreeResponseMessages[number] | typeof GitMergeResponseMessages[number] | typeof SessionSyncResponseMessages[number] | typeof SettingsResponseMessages[number] | typeof QualityResponseMessages[number] | typeof FileUploadResponseMessages[number] | typeof PlanResponseMessages[number] | typeof PlanBoardResponseMessages[number] | typeof PlanSprintResponseMessages[number] | typeof
|
|
60
|
+
type WebSocketResponseType = typeof CoreResponseMessages[number] | typeof TerminalResponseMessages[number] | typeof FileExplorerResponseMessages[number] | typeof GitResponseMessages[number] | typeof GitBranchResponseMessages[number] | typeof GitDiffResponseMessages[number] | typeof GitTagResponseMessages[number] | typeof GitWorktreeResponseMessages[number] | typeof GitMergeResponseMessages[number] | typeof SessionSyncResponseMessages[number] | typeof SettingsResponseMessages[number] | typeof QualityResponseMessages[number] | typeof FileUploadResponseMessages[number] | typeof PlanResponseMessages[number] | typeof PlanBoardResponseMessages[number] | typeof PlanSprintResponseMessages[number] | typeof SkillResponseMessages[number];
|
|
65
61
|
export interface WebSocketResponse {
|
|
66
62
|
type: WebSocketResponseType;
|
|
67
63
|
tabId?: string;
|
|
@@ -332,267 +328,5 @@ export interface WorktreeMergeResult {
|
|
|
332
328
|
/** List of conflicting files (if conflicts) */
|
|
333
329
|
conflictFiles?: string[];
|
|
334
330
|
}
|
|
335
|
-
/**
|
|
336
|
-
* Deployment status
|
|
337
|
-
*/
|
|
338
|
-
export type DeploymentStatus = 'running' | 'stopped' | 'error' | 'starting' | 'stopping';
|
|
339
|
-
/**
|
|
340
|
-
* Deployment configuration
|
|
341
|
-
*/
|
|
342
|
-
export interface DeployConfig {
|
|
343
|
-
/** Subdomain for the deployment (e.g. "my-app" -> my-app.mstro.app) */
|
|
344
|
-
subdomain: string;
|
|
345
|
-
/** Local port to expose */
|
|
346
|
-
port: number;
|
|
347
|
-
/** Whether AI features are enabled for this deployment */
|
|
348
|
-
aiEnabled: boolean;
|
|
349
|
-
/** Custom domain if configured */
|
|
350
|
-
customDomain?: string;
|
|
351
|
-
}
|
|
352
|
-
/**
|
|
353
|
-
* Deployment info returned in responses
|
|
354
|
-
*/
|
|
355
|
-
export interface DeploymentInfo {
|
|
356
|
-
/** Unique deployment identifier */
|
|
357
|
-
deploymentId: string;
|
|
358
|
-
/** Deployment configuration */
|
|
359
|
-
config: DeployConfig;
|
|
360
|
-
/** Current deployment status */
|
|
361
|
-
status: DeploymentStatus;
|
|
362
|
-
/** Public URL of the deployment */
|
|
363
|
-
url: string;
|
|
364
|
-
/** When the deployment was created (ISO string) */
|
|
365
|
-
createdAt: string;
|
|
366
|
-
/** When the deployment was last updated (ISO string) */
|
|
367
|
-
updatedAt: string;
|
|
368
|
-
}
|
|
369
|
-
/**
|
|
370
|
-
* Message data for deployCreate request
|
|
371
|
-
*/
|
|
372
|
-
export interface DeployCreateData {
|
|
373
|
-
/** Subdomain for the deployment */
|
|
374
|
-
subdomain: string;
|
|
375
|
-
/** Local port to expose */
|
|
376
|
-
port: number;
|
|
377
|
-
/** Whether AI features are enabled */
|
|
378
|
-
aiEnabled: boolean;
|
|
379
|
-
}
|
|
380
|
-
/**
|
|
381
|
-
* Message data for deployStop request
|
|
382
|
-
*/
|
|
383
|
-
export interface DeployStopData {
|
|
384
|
-
/** ID of the deployment to stop */
|
|
385
|
-
deploymentId: string;
|
|
386
|
-
}
|
|
387
|
-
/**
|
|
388
|
-
* Message data for deployResume request
|
|
389
|
-
*/
|
|
390
|
-
export interface DeployResumeData {
|
|
391
|
-
/** ID of the deployment to resume */
|
|
392
|
-
deploymentId: string;
|
|
393
|
-
}
|
|
394
|
-
/**
|
|
395
|
-
* Message data for deployDelete request
|
|
396
|
-
*/
|
|
397
|
-
export interface DeployDeleteData {
|
|
398
|
-
/** ID of the deployment to delete */
|
|
399
|
-
deploymentId: string;
|
|
400
|
-
}
|
|
401
|
-
/**
|
|
402
|
-
* Message data for deployGetStatus request
|
|
403
|
-
*/
|
|
404
|
-
export interface DeployGetStatusData {
|
|
405
|
-
/** ID of the deployment to get status for */
|
|
406
|
-
deploymentId: string;
|
|
407
|
-
}
|
|
408
|
-
/**
|
|
409
|
-
* Message data for deployUpdateConfig request
|
|
410
|
-
*/
|
|
411
|
-
export interface DeployUpdateConfigData {
|
|
412
|
-
/** ID of the deployment to update */
|
|
413
|
-
deploymentId: string;
|
|
414
|
-
/** Partial config to update */
|
|
415
|
-
config: Partial<DeployConfig>;
|
|
416
|
-
}
|
|
417
|
-
/**
|
|
418
|
-
* Message data for deploySetApiKey request
|
|
419
|
-
* Note: API key transits via WSS but is never stored or logged by the server relay
|
|
420
|
-
*/
|
|
421
|
-
export interface DeploySetApiKeyData {
|
|
422
|
-
/** The API key to set */
|
|
423
|
-
apiKey: string;
|
|
424
|
-
}
|
|
425
|
-
/**
|
|
426
|
-
* Response data for deployCreated
|
|
427
|
-
*/
|
|
428
|
-
export interface DeployCreatedResponse {
|
|
429
|
-
/** The created deployment */
|
|
430
|
-
deployment: DeploymentInfo;
|
|
431
|
-
}
|
|
432
|
-
/**
|
|
433
|
-
* Response data for deployStopped
|
|
434
|
-
*/
|
|
435
|
-
export interface DeployStoppedResponse {
|
|
436
|
-
/** ID of the stopped deployment */
|
|
437
|
-
deploymentId: string;
|
|
438
|
-
}
|
|
439
|
-
/**
|
|
440
|
-
* Response data for deployResumed
|
|
441
|
-
*/
|
|
442
|
-
export interface DeployResumedResponse {
|
|
443
|
-
/** ID of the resumed deployment */
|
|
444
|
-
deploymentId: string;
|
|
445
|
-
}
|
|
446
|
-
/**
|
|
447
|
-
* Response data for deployDeleted
|
|
448
|
-
*/
|
|
449
|
-
export interface DeployDeletedResponse {
|
|
450
|
-
/** ID of the deleted deployment */
|
|
451
|
-
deploymentId: string;
|
|
452
|
-
}
|
|
453
|
-
/**
|
|
454
|
-
* Response data for deployListResult
|
|
455
|
-
*/
|
|
456
|
-
export interface DeployListResultResponse {
|
|
457
|
-
/** All deployments for this orchestra */
|
|
458
|
-
deployments: DeploymentInfo[];
|
|
459
|
-
}
|
|
460
|
-
/**
|
|
461
|
-
* Response data for deployStatusResult
|
|
462
|
-
*/
|
|
463
|
-
export interface DeployStatusResultResponse {
|
|
464
|
-
/** The requested deployment */
|
|
465
|
-
deployment: DeploymentInfo;
|
|
466
|
-
}
|
|
467
|
-
/**
|
|
468
|
-
* Response data for deployConfigUpdated
|
|
469
|
-
*/
|
|
470
|
-
export interface DeployConfigUpdatedResponse {
|
|
471
|
-
/** The updated deployment */
|
|
472
|
-
deployment: DeploymentInfo;
|
|
473
|
-
}
|
|
474
|
-
/**
|
|
475
|
-
* Response data for deployApiKeyStatus
|
|
476
|
-
* Note: Never includes the full API key — only the last four characters
|
|
477
|
-
*/
|
|
478
|
-
export interface DeployApiKeyStatusResponse {
|
|
479
|
-
/** Validation status of the API key */
|
|
480
|
-
status: 'valid' | 'invalid' | 'missing' | 'rate_limited';
|
|
481
|
-
/** Last four characters of the API key (for display) */
|
|
482
|
-
lastFour?: string;
|
|
483
|
-
/** Where the key was detected from */
|
|
484
|
-
source?: 'env' | 'stored';
|
|
485
|
-
}
|
|
486
|
-
/**
|
|
487
|
-
* Response data for deployError
|
|
488
|
-
*/
|
|
489
|
-
export interface DeployErrorResponse {
|
|
490
|
-
/** Error message */
|
|
491
|
-
error: string;
|
|
492
|
-
/** The deployment ID that caused the error, if applicable */
|
|
493
|
-
deploymentId?: string;
|
|
494
|
-
}
|
|
495
|
-
/**
|
|
496
|
-
* Message data for deployHttpRequest (server→cli)
|
|
497
|
-
* Represents an inbound HTTP request to be handled by the CLI
|
|
498
|
-
*/
|
|
499
|
-
export interface DeployHttpRequestData {
|
|
500
|
-
/** UUID for correlating this request with its response */
|
|
501
|
-
requestId: string;
|
|
502
|
-
/** HTTP method (GET, POST, PUT, DELETE, etc.) */
|
|
503
|
-
method: string;
|
|
504
|
-
/** Request URL path with query string (e.g. "/api/hello?name=world") */
|
|
505
|
-
url: string;
|
|
506
|
-
/** HTTP request headers */
|
|
507
|
-
headers: Record<string, string>;
|
|
508
|
-
/** HTTP request body (may be undefined for GET/HEAD) */
|
|
509
|
-
body?: string;
|
|
510
|
-
/** ID of the deployment this request is for */
|
|
511
|
-
deploymentId: string;
|
|
512
|
-
/** Local port of the developer's server to proxy to */
|
|
513
|
-
port: number;
|
|
514
|
-
}
|
|
515
|
-
/**
|
|
516
|
-
* Response data for deployHttpResponse (cli→server)
|
|
517
|
-
* The CLI's response to a proxied HTTP request
|
|
518
|
-
*/
|
|
519
|
-
export interface DeployHttpResponseData {
|
|
520
|
-
/** UUID matching the original deployHttpRequest */
|
|
521
|
-
requestId: string;
|
|
522
|
-
/** HTTP status code */
|
|
523
|
-
status: number;
|
|
524
|
-
/** HTTP response headers */
|
|
525
|
-
headers: Record<string, string>;
|
|
526
|
-
/** HTTP response body */
|
|
527
|
-
body?: string;
|
|
528
|
-
}
|
|
529
|
-
/**
|
|
530
|
-
* Response data for deployHttpResponseChunk (cli→server)
|
|
531
|
-
* A chunk of a large HTTP response streamed over multiple WebSocket messages
|
|
532
|
-
*/
|
|
533
|
-
export interface DeployHttpResponseChunkData {
|
|
534
|
-
/** UUID matching the original deployHttpRequest */
|
|
535
|
-
requestId: string;
|
|
536
|
-
/** Zero-based index of this chunk */
|
|
537
|
-
chunkIndex: number;
|
|
538
|
-
/** Total number of chunks (known after reading the full response) */
|
|
539
|
-
totalChunks: number;
|
|
540
|
-
/** Base64-encoded chunk data */
|
|
541
|
-
data: string;
|
|
542
|
-
/** Whether this is the last chunk */
|
|
543
|
-
isLast: boolean;
|
|
544
|
-
/** HTTP status code (sent with first chunk) */
|
|
545
|
-
status?: number;
|
|
546
|
-
/** HTTP response headers (sent with first chunk) */
|
|
547
|
-
headers?: Record<string, string>;
|
|
548
|
-
}
|
|
549
|
-
/**
|
|
550
|
-
* Response data for deployStatus (cli→server)
|
|
551
|
-
* Status update for a deployment
|
|
552
|
-
*/
|
|
553
|
-
export interface DeployStatusData {
|
|
554
|
-
/** ID of the deployment */
|
|
555
|
-
deploymentId: string;
|
|
556
|
-
/** Current status of the deployment */
|
|
557
|
-
status: DeploymentStatus;
|
|
558
|
-
}
|
|
559
|
-
/**
|
|
560
|
-
* Message data for deployUsageReport (cli→server)
|
|
561
|
-
* Sent after each AI execution. Contains metadata only — never prompts or responses.
|
|
562
|
-
*/
|
|
563
|
-
export interface DeployUsageReportData {
|
|
564
|
-
/** ID of the deployment */
|
|
565
|
-
deploymentId: string;
|
|
566
|
-
/** End user who triggered the execution */
|
|
567
|
-
endUserId: string;
|
|
568
|
-
/** AI capability used */
|
|
569
|
-
capability: 'headless' | 'pm-board';
|
|
570
|
-
/** Total tokens consumed (input + output) */
|
|
571
|
-
tokensUsed: number;
|
|
572
|
-
/** Model used for execution */
|
|
573
|
-
model: string;
|
|
574
|
-
/** Execution duration in milliseconds */
|
|
575
|
-
durationMs: number;
|
|
576
|
-
/** Optional board ID if capability was pm-board */
|
|
577
|
-
boardId?: string;
|
|
578
|
-
}
|
|
579
|
-
/**
|
|
580
|
-
* AI health status values
|
|
581
|
-
*/
|
|
582
|
-
export type DeployAiHealthStatus = 'healthy' | 'invalid_key' | 'no_credits' | 'rate_limited' | 'unknown_error';
|
|
583
|
-
/**
|
|
584
|
-
* Message data for deployAiHealthUpdate (cli→server)
|
|
585
|
-
* Sent when the CLI detects an API key or AI service issue.
|
|
586
|
-
*/
|
|
587
|
-
export interface DeployAiHealthUpdateData {
|
|
588
|
-
/** ID of the deployment */
|
|
589
|
-
deploymentId: string;
|
|
590
|
-
/** Current AI health status */
|
|
591
|
-
status: DeployAiHealthStatus;
|
|
592
|
-
/** Human-readable error message */
|
|
593
|
-
message: string;
|
|
594
|
-
/** Whether AI features are currently disabled locally */
|
|
595
|
-
aiDisabled: boolean;
|
|
596
|
-
}
|
|
597
331
|
export {};
|
|
598
332
|
//# sourceMappingURL=types.d.ts.map
|