@claude-flow/cli 3.5.82 → 3.6.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 +126 -7474
- package/dist/src/mcp-tools/analyze-tools.js +6 -6
- package/dist/src/mcp-tools/analyze-tools.js.map +1 -1
- package/dist/src/mcp-tools/validate-input.d.ts +5 -0
- package/dist/src/mcp-tools/validate-input.d.ts.map +1 -1
- package/dist/src/mcp-tools/validate-input.js +20 -0
- package/dist/src/mcp-tools/validate-input.js.map +1 -1
- package/dist/src/services/event-stream.d.ts +25 -0
- package/dist/src/services/event-stream.d.ts.map +1 -0
- package/dist/src/services/event-stream.js +27 -0
- package/dist/src/services/event-stream.js.map +1 -0
- package/dist/src/services/loop-worker-runner.d.ts +16 -0
- package/dist/src/services/loop-worker-runner.d.ts.map +1 -0
- package/dist/src/services/loop-worker-runner.js +34 -0
- package/dist/src/services/loop-worker-runner.js.map +1 -0
- package/dist/src/services/runtime-capabilities.d.ts +22 -0
- package/dist/src/services/runtime-capabilities.d.ts.map +1 -0
- package/dist/src/services/runtime-capabilities.js +45 -0
- package/dist/src/services/runtime-capabilities.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Analyze MCP Tools
|
|
3
3
|
* Provides diff analysis and classification via MCP protocol
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
5
|
+
import { validateGitRef, validatePath } from './validate-input.js';
|
|
6
6
|
import { analyzeDiff, assessFileRisk, assessOverallRisk, classifyDiff, suggestReviewers, getGitDiffNumstat, } from '../ruvector/diff-classifier.js';
|
|
7
7
|
/**
|
|
8
8
|
* Diff Analysis Tool
|
|
@@ -40,7 +40,7 @@ export const analyzeDiffTool = {
|
|
|
40
40
|
},
|
|
41
41
|
handler: async (params) => {
|
|
42
42
|
if (params.ref) {
|
|
43
|
-
const vRef =
|
|
43
|
+
const vRef = validateGitRef(params.ref, 'ref');
|
|
44
44
|
if (!vRef.valid)
|
|
45
45
|
return { error: true, message: vRef.error, ref: params.ref };
|
|
46
46
|
}
|
|
@@ -100,7 +100,7 @@ export const diffRiskTool = {
|
|
|
100
100
|
},
|
|
101
101
|
handler: async (params) => {
|
|
102
102
|
if (params.ref) {
|
|
103
|
-
const vRef =
|
|
103
|
+
const vRef = validateGitRef(params.ref, 'ref');
|
|
104
104
|
if (!vRef.valid)
|
|
105
105
|
return { error: true, message: vRef.error, ref: params.ref };
|
|
106
106
|
}
|
|
@@ -145,7 +145,7 @@ export const diffClassifyTool = {
|
|
|
145
145
|
},
|
|
146
146
|
handler: async (params) => {
|
|
147
147
|
if (params.ref) {
|
|
148
|
-
const vRef =
|
|
148
|
+
const vRef = validateGitRef(params.ref, 'ref');
|
|
149
149
|
if (!vRef.valid)
|
|
150
150
|
return { error: true, message: vRef.error, ref: params.ref };
|
|
151
151
|
}
|
|
@@ -194,7 +194,7 @@ export const diffReviewersTool = {
|
|
|
194
194
|
},
|
|
195
195
|
handler: async (params) => {
|
|
196
196
|
if (params.ref) {
|
|
197
|
-
const vRef =
|
|
197
|
+
const vRef = validateGitRef(params.ref, 'ref');
|
|
198
198
|
if (!vRef.valid)
|
|
199
199
|
return { error: true, message: vRef.error, ref: params.ref };
|
|
200
200
|
}
|
|
@@ -295,7 +295,7 @@ export const diffStatsTool = {
|
|
|
295
295
|
},
|
|
296
296
|
handler: async (params) => {
|
|
297
297
|
if (params.ref) {
|
|
298
|
-
const vRef =
|
|
298
|
+
const vRef = validateGitRef(params.ref, 'ref');
|
|
299
299
|
if (!vRef.valid)
|
|
300
300
|
return { error: true, message: vRef.error, ref: params.ref };
|
|
301
301
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-tools.js","sourceRoot":"","sources":["../../../src/mcp-tools/analyze-tools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"analyze-tools.js","sourceRoot":"","sources":["../../../src/mcp-tools/analyze-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,11 @@ export interface ValidationResult {
|
|
|
16
16
|
* Rejects shell metacharacters and path traversal.
|
|
17
17
|
*/
|
|
18
18
|
export declare function validateIdentifier(value: unknown, label: string): ValidationResult;
|
|
19
|
+
/**
|
|
20
|
+
* Validate a git ref (HEAD~1, main..feature, commit hashes, etc.).
|
|
21
|
+
* Allows ~, ^, and / which are standard git revision selectors.
|
|
22
|
+
*/
|
|
23
|
+
export declare function validateGitRef(value: unknown, label: string): ValidationResult;
|
|
19
24
|
/**
|
|
20
25
|
* Validate a file path (prevents traversal and shell injection).
|
|
21
26
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-input.d.ts","sourceRoot":"","sources":["../../../src/mcp-tools/validate-input.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"validate-input.d.ts","sourceRoot":"","sources":["../../../src/mcp-tools/validate-input.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAiBlF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAc9E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAc5E;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,GAAG,gBAAgB,CAU7F;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAK5D;AAmBD;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAyCtH"}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
const SHELL_META = /[;&|`$(){}[\]<>!#\\]/;
|
|
11
11
|
const PATH_TRAVERSAL = /\.\.[/\\]/;
|
|
12
12
|
const IDENTIFIER_RE = /^[a-zA-Z0-9_][a-zA-Z0-9_\-.:]{0,127}$/;
|
|
13
|
+
const GIT_REF_RE = /^[a-zA-Z0-9_][a-zA-Z0-9_\-.:~^/]{0,255}$/;
|
|
13
14
|
/**
|
|
14
15
|
* Validate an identifier (agent ID, agent type, namespace, key, etc.)
|
|
15
16
|
* Rejects shell metacharacters and path traversal.
|
|
@@ -32,6 +33,25 @@ export function validateIdentifier(value, label) {
|
|
|
32
33
|
}
|
|
33
34
|
return { valid: true, sanitized: value };
|
|
34
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Validate a git ref (HEAD~1, main..feature, commit hashes, etc.).
|
|
38
|
+
* Allows ~, ^, and / which are standard git revision selectors.
|
|
39
|
+
*/
|
|
40
|
+
export function validateGitRef(value, label) {
|
|
41
|
+
if (typeof value !== 'string' || value.length === 0) {
|
|
42
|
+
return { valid: false, sanitized: '', error: `${label} must be a non-empty string` };
|
|
43
|
+
}
|
|
44
|
+
if (value.length > 256) {
|
|
45
|
+
return { valid: false, sanitized: '', error: `${label} exceeds 256 characters` };
|
|
46
|
+
}
|
|
47
|
+
if (SHELL_META.test(value)) {
|
|
48
|
+
return { valid: false, sanitized: '', error: `${label} contains disallowed characters` };
|
|
49
|
+
}
|
|
50
|
+
if (!GIT_REF_RE.test(value)) {
|
|
51
|
+
return { valid: false, sanitized: '', error: `${label} contains invalid characters (allowed: alphanumeric, _, -, ., :, ~, ^, /)` };
|
|
52
|
+
}
|
|
53
|
+
return { valid: true, sanitized: value };
|
|
54
|
+
}
|
|
35
55
|
/**
|
|
36
56
|
* Validate a file path (prevents traversal and shell injection).
|
|
37
57
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-input.js","sourceRoot":"","sources":["../../../src/mcp-tools/validate-input.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validate-input.js","sourceRoot":"","sources":["../../../src/mcp-tools/validate-input.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NDJSON Event Stream for CLI --stream mode
|
|
3
|
+
*
|
|
4
|
+
* Emits newline-delimited JSON events to stdout for consumption
|
|
5
|
+
* by Claude Code's Monitor tool. Each event includes schema versioning.
|
|
6
|
+
*
|
|
7
|
+
* @see ADR-091: NDJSON event streaming infrastructure
|
|
8
|
+
*/
|
|
9
|
+
export interface StreamEvent {
|
|
10
|
+
schema: 'ruflo.event.v1';
|
|
11
|
+
event: string;
|
|
12
|
+
runId: string;
|
|
13
|
+
agentId?: string;
|
|
14
|
+
ts: string;
|
|
15
|
+
[key: string]: unknown;
|
|
16
|
+
}
|
|
17
|
+
/** Generate a short unique run ID (e.g. run_m1abc_3f2a1b) */
|
|
18
|
+
export declare function createRunId(): string;
|
|
19
|
+
/** Write one NDJSON line to stdout with schema and timestamp auto-populated */
|
|
20
|
+
export declare function emitEvent(event: Omit<StreamEvent, 'schema' | 'ts'>): void;
|
|
21
|
+
/** Convenience wrapper that binds a runId to an emitter */
|
|
22
|
+
export declare function createEventEmitter(runId: string): {
|
|
23
|
+
emit(event: string, data?: Record<string, unknown>): void;
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=event-stream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-stream.d.ts","sourceRoot":"","sources":["../../../src/services/event-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,gBAAgB,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,6DAA6D;AAC7D,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED,+EAA+E;AAC/E,wBAAgB,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,IAAI,CAMzE;AAED,2DAA2D;AAC3D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG;IACjD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC3D,CAMA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NDJSON Event Stream for CLI --stream mode
|
|
3
|
+
*
|
|
4
|
+
* Emits newline-delimited JSON events to stdout for consumption
|
|
5
|
+
* by Claude Code's Monitor tool. Each event includes schema versioning.
|
|
6
|
+
*
|
|
7
|
+
* @see ADR-091: NDJSON event streaming infrastructure
|
|
8
|
+
*/
|
|
9
|
+
import { randomBytes } from 'crypto';
|
|
10
|
+
/** Generate a short unique run ID (e.g. run_m1abc_3f2a1b) */
|
|
11
|
+
export function createRunId() {
|
|
12
|
+
return `run_${Date.now().toString(36)}_${randomBytes(3).toString('hex')}`;
|
|
13
|
+
}
|
|
14
|
+
/** Write one NDJSON line to stdout with schema and timestamp auto-populated */
|
|
15
|
+
export function emitEvent(event) {
|
|
16
|
+
const full = Object.assign({ schema: 'ruflo.event.v1', ts: new Date().toISOString() }, event);
|
|
17
|
+
process.stdout.write(JSON.stringify(full) + '\n');
|
|
18
|
+
}
|
|
19
|
+
/** Convenience wrapper that binds a runId to an emitter */
|
|
20
|
+
export function createEventEmitter(runId) {
|
|
21
|
+
return {
|
|
22
|
+
emit(event, data) {
|
|
23
|
+
emitEvent({ runId, event, ...data });
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=event-stream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-stream.js","sourceRoot":"","sources":["../../../src/services/event-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAWrC,6DAA6D;AAC7D,MAAM,UAAU,WAAW;IACzB,OAAO,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;AAC5E,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,SAAS,CAAC,KAAyC;IACjE,MAAM,IAAI,GAAgB,MAAM,CAAC,MAAM,CACrC,EAAE,MAAM,EAAE,gBAAyB,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,EACnE,KAAK,CACS,CAAC;IACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACpD,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAG9C,OAAO;QACL,IAAI,CAAC,KAAa,EAAE,IAA8B;YAChD,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACvC,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ADR-091 Phase 2 -- Stateless Loop Worker Runner
|
|
3
|
+
*
|
|
4
|
+
* Designed for /loop execution: runs a single worker iteration and returns
|
|
5
|
+
* metadata that the caller can use with ScheduleWakeup.
|
|
6
|
+
*/
|
|
7
|
+
export interface LoopWorkerResult {
|
|
8
|
+
workerType: string;
|
|
9
|
+
success: boolean;
|
|
10
|
+
suggestedDelay: number;
|
|
11
|
+
reason: string;
|
|
12
|
+
loopPrompt: string;
|
|
13
|
+
metrics?: Record<string, unknown>;
|
|
14
|
+
}
|
|
15
|
+
export declare function runLoopWorker(workerType: string): Promise<LoopWorkerResult>;
|
|
16
|
+
//# sourceMappingURL=loop-worker-runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop-worker-runner.d.ts","sourceRoot":"","sources":["../../../src/services/loop-worker-runner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,wBAAsB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA6BjF"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ADR-091 Phase 2 -- Stateless Loop Worker Runner
|
|
3
|
+
*
|
|
4
|
+
* Designed for /loop execution: runs a single worker iteration and returns
|
|
5
|
+
* metadata that the caller can use with ScheduleWakeup.
|
|
6
|
+
*/
|
|
7
|
+
import { execSync } from 'child_process';
|
|
8
|
+
import { getCacheWarmDelay } from './runtime-capabilities.js';
|
|
9
|
+
export async function runLoopWorker(workerType) {
|
|
10
|
+
const startMs = Date.now();
|
|
11
|
+
let success = false;
|
|
12
|
+
let reason = '';
|
|
13
|
+
try {
|
|
14
|
+
const safeWorkerType = workerType.replace(/[^a-zA-Z0-9_-]/g, '');
|
|
15
|
+
const stdout = execSync(`npx @claude-flow/cli hooks worker dispatch --trigger ${safeWorkerType}`, { encoding: 'utf-8', timeout: 120_000, stdio: ['ignore', 'pipe', 'pipe'] });
|
|
16
|
+
success = true;
|
|
17
|
+
reason = stdout.trim().slice(0, 200) || `${workerType} completed`;
|
|
18
|
+
}
|
|
19
|
+
catch (err) {
|
|
20
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
21
|
+
reason = `${workerType} failed: ${msg.slice(0, 200)}`;
|
|
22
|
+
}
|
|
23
|
+
const durationMs = Date.now() - startMs;
|
|
24
|
+
const suggestedDelay = getCacheWarmDelay();
|
|
25
|
+
return {
|
|
26
|
+
workerType,
|
|
27
|
+
success,
|
|
28
|
+
suggestedDelay,
|
|
29
|
+
reason,
|
|
30
|
+
loopPrompt: `Run ${workerType} worker and report results`,
|
|
31
|
+
metrics: { durationMs, timestamp: new Date().toISOString() },
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=loop-worker-runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop-worker-runner.js","sourceRoot":"","sources":["../../../src/services/loop-worker-runner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAW9D,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,UAAkB;IACpD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,QAAQ,CACrB,wDAAwD,cAAc,EAAE,EACxE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAC3E,CAAC;QACF,OAAO,GAAG,IAAI,CAAC;QACf,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,UAAU,YAAY,CAAC;IACpE,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,GAAG,GAAG,UAAU,YAAY,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IACxD,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;IACxC,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAE3C,OAAO;QACL,UAAU;QACV,OAAO;QACP,cAAc;QACd,MAAM;QACN,UAAU,EAAE,OAAO,UAAU,4BAA4B;QACzD,OAAO,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE;KAC7D,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ADR-091 Phase 1 -- Runtime Capabilities Detection
|
|
3
|
+
*
|
|
4
|
+
* Detects the host environment and exposes which execution primitives are
|
|
5
|
+
* available so that higher-level services can choose the right path:
|
|
6
|
+
* 1. claude-code-native -- full Claude Code tooling (loop, monitor, cron, teams)
|
|
7
|
+
* 2. mcp-fallback -- MCP transport active but native tools missing
|
|
8
|
+
* 3. ci-daemon -- headless / CI, use detached daemon
|
|
9
|
+
*/
|
|
10
|
+
export interface RuntimeCapabilities {
|
|
11
|
+
loop: boolean;
|
|
12
|
+
monitor: boolean;
|
|
13
|
+
cron: boolean;
|
|
14
|
+
teams: boolean;
|
|
15
|
+
worktreeIsolation: boolean;
|
|
16
|
+
pushNotification: boolean;
|
|
17
|
+
}
|
|
18
|
+
export type RuntimeTier = 'claude-code-native' | 'mcp-fallback' | 'ci-daemon';
|
|
19
|
+
export declare function detectCapabilities(): RuntimeCapabilities;
|
|
20
|
+
export declare function getRuntimeTier(): RuntimeTier;
|
|
21
|
+
export declare function getCacheWarmDelay(providerCacheTtlSeconds?: number): number;
|
|
22
|
+
//# sourceMappingURL=runtime-capabilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-capabilities.d.ts","sourceRoot":"","sources":["../../../src/services/runtime-capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,MAAM,WAAW,GAAG,oBAAoB,GAAG,cAAc,GAAG,WAAW,CAAC;AAoB9E,wBAAgB,kBAAkB,IAAI,mBAAmB,CAYxD;AAED,wBAAgB,cAAc,IAAI,WAAW,CAK5C;AAED,wBAAgB,iBAAiB,CAAC,uBAAuB,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1E"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ADR-091 Phase 1 -- Runtime Capabilities Detection
|
|
3
|
+
*
|
|
4
|
+
* Detects the host environment and exposes which execution primitives are
|
|
5
|
+
* available so that higher-level services can choose the right path:
|
|
6
|
+
* 1. claude-code-native -- full Claude Code tooling (loop, monitor, cron, teams)
|
|
7
|
+
* 2. mcp-fallback -- MCP transport active but native tools missing
|
|
8
|
+
* 3. ci-daemon -- headless / CI, use detached daemon
|
|
9
|
+
*/
|
|
10
|
+
function isClaudeCodeNative() {
|
|
11
|
+
return !!(process.env.CLAUDE_CODE ||
|
|
12
|
+
process.env.CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS);
|
|
13
|
+
}
|
|
14
|
+
function isMcpTransportActive() {
|
|
15
|
+
return (!process.stdin.isTTY &&
|
|
16
|
+
process.env.CLAUDE_FLOW_MCP_TRANSPORT === 'stdio');
|
|
17
|
+
}
|
|
18
|
+
function isCiOrHeadless() {
|
|
19
|
+
return !!(process.env.CI || process.env.CLAUDE_FLOW_HEADLESS);
|
|
20
|
+
}
|
|
21
|
+
export function detectCapabilities() {
|
|
22
|
+
const native = isClaudeCodeNative();
|
|
23
|
+
const teamsEnabled = !!process.env.CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS;
|
|
24
|
+
return {
|
|
25
|
+
loop: native,
|
|
26
|
+
monitor: native,
|
|
27
|
+
cron: native,
|
|
28
|
+
teams: native && teamsEnabled,
|
|
29
|
+
worktreeIsolation: native,
|
|
30
|
+
pushNotification: native,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export function getRuntimeTier() {
|
|
34
|
+
if (isClaudeCodeNative())
|
|
35
|
+
return 'claude-code-native';
|
|
36
|
+
if (isMcpTransportActive())
|
|
37
|
+
return 'mcp-fallback';
|
|
38
|
+
if (isCiOrHeadless())
|
|
39
|
+
return 'ci-daemon';
|
|
40
|
+
return 'mcp-fallback';
|
|
41
|
+
}
|
|
42
|
+
export function getCacheWarmDelay(providerCacheTtlSeconds) {
|
|
43
|
+
return Math.min(270, (providerCacheTtlSeconds ?? 300) * 0.9);
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=runtime-capabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-capabilities.js","sourceRoot":"","sources":["../../../src/services/runtime-capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAaH,SAAS,kBAAkB;IACzB,OAAO,CAAC,CAAC,CACP,OAAO,CAAC,GAAG,CAAC,WAAW;QACvB,OAAO,CAAC,GAAG,CAAC,oCAAoC,CACjD,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO,CACL,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;QACpB,OAAO,CAAC,GAAG,CAAC,yBAAyB,KAAK,OAAO,CAClD,CAAC;AACJ,CAAC;AAED,SAAS,cAAc;IACrB,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACpC,MAAM,YAAY,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC;IAExE,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,MAAM;QACf,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM,IAAI,YAAY;QAC7B,iBAAiB,EAAE,MAAM;QACzB,gBAAgB,EAAE,MAAM;KACzB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,IAAI,kBAAkB,EAAE;QAAE,OAAO,oBAAoB,CAAC;IACtD,IAAI,oBAAoB,EAAE;QAAE,OAAO,cAAc,CAAC;IAClD,IAAI,cAAc,EAAE;QAAE,OAAO,WAAW,CAAC;IACzC,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,uBAAgC;IAChE,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,uBAAuB,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AAC/D,CAAC"}
|