@hongmaple0820/scale-engine 0.40.2 → 0.43.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 +30 -2
- package/dist/api/cli.js +19 -0
- package/dist/api/cli.js.map +1 -1
- package/dist/api/quickstart.d.ts +11 -0
- package/dist/api/quickstart.js +98 -1
- package/dist/api/quickstart.js.map +1 -1
- package/dist/artifact/fsmDefinitions.js +15 -2
- package/dist/artifact/fsmDefinitions.js.map +1 -1
- package/dist/artifact/types.d.ts +1 -1
- package/dist/artifact/types.js.map +1 -1
- package/dist/cache/ScanCache.d.ts +41 -0
- package/dist/cache/ScanCache.js +120 -0
- package/dist/cache/ScanCache.js.map +1 -0
- package/dist/capabilities/BrowserQACapability.d.ts +14 -0
- package/dist/capabilities/BrowserQACapability.js +94 -0
- package/dist/capabilities/BrowserQACapability.js.map +1 -1
- package/dist/cli/autofixCommands.d.ts +22 -0
- package/dist/cli/autofixCommands.js +32 -0
- package/dist/cli/autofixCommands.js.map +1 -0
- package/dist/cli/cortexCommands.d.ts +71 -0
- package/dist/cli/cortexCommands.js +335 -0
- package/dist/cli/cortexCommands.js.map +1 -0
- package/dist/cli/costCommands.d.ts +13 -0
- package/dist/cli/costCommands.js +48 -0
- package/dist/cli/costCommands.js.map +1 -0
- package/dist/cli/orchCommands.d.ts +43 -0
- package/dist/cli/orchCommands.js +135 -0
- package/dist/cli/orchCommands.js.map +1 -0
- package/dist/cli/phaseCommands.js +1 -2
- package/dist/cli/phaseCommands.js.map +1 -1
- package/dist/cli/qaCommands.d.ts +22 -0
- package/dist/cli/qaCommands.js +84 -0
- package/dist/cli/qaCommands.js.map +1 -0
- package/dist/cli/quickstartCommands.d.ts +17 -0
- package/dist/cli/quickstartCommands.js +47 -0
- package/dist/cli/quickstartCommands.js.map +1 -0
- package/dist/cli/shieldCommands.d.ts +30 -0
- package/dist/cli/shieldCommands.js +212 -0
- package/dist/cli/shieldCommands.js.map +1 -0
- package/dist/cli/tuiCommands.d.ts +7 -0
- package/dist/cli/tuiCommands.js +33 -0
- package/dist/cli/tuiCommands.js.map +1 -0
- package/dist/config/profiles.js +26 -0
- package/dist/config/profiles.js.map +1 -1
- package/dist/cortex/GovernanceMetrics.d.ts +66 -0
- package/dist/cortex/GovernanceMetrics.js +230 -0
- package/dist/cortex/GovernanceMetrics.js.map +1 -0
- package/dist/cortex/InstinctExtractor.d.ts +61 -0
- package/dist/cortex/InstinctExtractor.js +184 -0
- package/dist/cortex/InstinctExtractor.js.map +1 -0
- package/dist/cortex/InstinctStore.d.ts +54 -0
- package/dist/cortex/InstinctStore.js +266 -0
- package/dist/cortex/InstinctStore.js.map +1 -0
- package/dist/cortex/ReflexionEngine.d.ts +34 -0
- package/dist/cortex/ReflexionEngine.js +157 -0
- package/dist/cortex/ReflexionEngine.js.map +1 -0
- package/dist/cortex/SessionInjector.d.ts +44 -0
- package/dist/cortex/SessionInjector.js +127 -0
- package/dist/cortex/SessionInjector.js.map +1 -0
- package/dist/cortex/adapters/ClaudeAdapter.d.ts +17 -0
- package/dist/cortex/adapters/ClaudeAdapter.js +61 -0
- package/dist/cortex/adapters/ClaudeAdapter.js.map +1 -0
- package/dist/cortex/adapters/CodexAdapter.d.ts +10 -0
- package/dist/cortex/adapters/CodexAdapter.js +52 -0
- package/dist/cortex/adapters/CodexAdapter.js.map +1 -0
- package/dist/cortex/adapters/CursorAdapter.d.ts +10 -0
- package/dist/cortex/adapters/CursorAdapter.js +46 -0
- package/dist/cortex/adapters/CursorAdapter.js.map +1 -0
- package/dist/cortex/adapters/GeminiAdapter.d.ts +11 -0
- package/dist/cortex/adapters/GeminiAdapter.js +48 -0
- package/dist/cortex/adapters/GeminiAdapter.js.map +1 -0
- package/dist/eval/BenchmarkPublisher.d.ts +25 -0
- package/dist/eval/BenchmarkPublisher.js +27 -0
- package/dist/eval/BenchmarkPublisher.js.map +1 -0
- package/dist/guardrails/DependencyAuditor.js +10 -1
- package/dist/guardrails/DependencyAuditor.js.map +1 -1
- package/dist/orchestrator/OrchestratorDaemon.d.ts +44 -0
- package/dist/orchestrator/OrchestratorDaemon.js +150 -0
- package/dist/orchestrator/OrchestratorDaemon.js.map +1 -0
- package/dist/orchestrator/PolicyLoader.d.ts +80 -0
- package/dist/orchestrator/PolicyLoader.js +229 -0
- package/dist/orchestrator/PolicyLoader.js.map +1 -0
- package/dist/orchestrator/ReconciliationLoop.d.ts +71 -0
- package/dist/orchestrator/ReconciliationLoop.js +266 -0
- package/dist/orchestrator/ReconciliationLoop.js.map +1 -0
- package/dist/orchestrator/TrackerAdapter.d.ts +60 -0
- package/dist/orchestrator/TrackerAdapter.js +147 -0
- package/dist/orchestrator/TrackerAdapter.js.map +1 -0
- package/dist/orchestrator/WorkspaceManager.d.ts +66 -0
- package/dist/orchestrator/WorkspaceManager.js +257 -0
- package/dist/orchestrator/WorkspaceManager.js.map +1 -0
- package/dist/qa/BrowserDaemon.d.ts +23 -0
- package/dist/qa/BrowserDaemon.js +79 -0
- package/dist/qa/BrowserDaemon.js.map +1 -0
- package/dist/qa/E2ETestOrchestrator.d.ts +14 -0
- package/dist/qa/E2ETestOrchestrator.js +19 -0
- package/dist/qa/E2ETestOrchestrator.js.map +1 -0
- package/dist/review/CrossModelReviewer.d.ts +35 -0
- package/dist/review/CrossModelReviewer.js +75 -0
- package/dist/review/CrossModelReviewer.js.map +1 -0
- package/dist/review/ReviewAggregator.d.ts +13 -0
- package/dist/review/ReviewAggregator.js +28 -0
- package/dist/review/ReviewAggregator.js.map +1 -0
- package/dist/review/reviewCommands.d.ts +15 -0
- package/dist/review/reviewCommands.js +24 -0
- package/dist/review/reviewCommands.js.map +1 -0
- package/dist/routing/LocalModelProvider.d.ts +11 -0
- package/dist/routing/LocalModelProvider.js +21 -0
- package/dist/routing/LocalModelProvider.js.map +1 -0
- package/dist/routing/ModelRouter.d.ts +12 -0
- package/dist/routing/ModelRouter.js +31 -4
- package/dist/routing/ModelRouter.js.map +1 -1
- package/dist/runtime/AiOsRuntime.d.ts +1 -0
- package/dist/runtime/AiOsRuntime.js +15 -0
- package/dist/runtime/AiOsRuntime.js.map +1 -1
- package/dist/runtime/CostAnalyzer.d.ts +53 -0
- package/dist/runtime/CostAnalyzer.js +160 -0
- package/dist/runtime/CostAnalyzer.js.map +1 -0
- package/dist/runtime/CostOptimizer.d.ts +11 -0
- package/dist/runtime/CostOptimizer.js +21 -0
- package/dist/runtime/CostOptimizer.js.map +1 -0
- package/dist/shield/PolicyCompiler.d.ts +70 -0
- package/dist/shield/PolicyCompiler.js +540 -0
- package/dist/shield/PolicyCompiler.js.map +1 -0
- package/dist/shield/ProtectedPaths.d.ts +39 -0
- package/dist/shield/ProtectedPaths.js +179 -0
- package/dist/shield/ProtectedPaths.js.map +1 -0
- package/dist/shield/ShieldProtocol.d.ts +50 -0
- package/dist/shield/ShieldProtocol.js +103 -0
- package/dist/shield/ShieldProtocol.js.map +1 -0
- package/dist/skills/SkillMdStandard.d.ts +33 -0
- package/dist/skills/SkillMdStandard.js +88 -0
- package/dist/skills/SkillMdStandard.js.map +1 -0
- package/dist/skills/SkillRegistry.d.ts +9 -1
- package/dist/skills/SkillRegistry.js +20 -0
- package/dist/skills/SkillRegistry.js.map +1 -1
- package/dist/skills/interop/GStackInterop.d.ts +15 -0
- package/dist/skills/interop/GStackInterop.js +34 -0
- package/dist/skills/interop/GStackInterop.js.map +1 -0
- package/dist/skills/interop/OMCInterop.d.ts +15 -0
- package/dist/skills/interop/OMCInterop.js +34 -0
- package/dist/skills/interop/OMCInterop.js.map +1 -0
- package/dist/tui/TuiDashboard.d.ts +3 -0
- package/dist/tui/TuiDashboard.js +120 -0
- package/dist/tui/TuiDashboard.js.map +1 -0
- package/dist/workflow/GateCatalog.d.ts +2 -0
- package/dist/workflow/GateCatalog.js +59 -3
- package/dist/workflow/GateCatalog.js.map +1 -1
- package/dist/workflow/GovernanceTemplatePacks.d.ts +1 -1
- package/dist/workflow/GovernanceTemplatePacks.js +15 -0
- package/dist/workflow/GovernanceTemplatePacks.js.map +1 -1
- package/dist/workflow/TddLoop.d.ts +2 -0
- package/dist/workflow/TddLoop.js +2 -0
- package/dist/workflow/TddLoop.js.map +1 -1
- package/dist/workflow/UpgradeManager.d.ts +10 -1
- package/dist/workflow/UpgradeManager.js +55 -0
- package/dist/workflow/UpgradeManager.js.map +1 -1
- package/dist/workflow/VerificationProfile.d.ts +8 -0
- package/dist/workflow/VerificationProfile.js +61 -0
- package/dist/workflow/VerificationProfile.js.map +1 -1
- package/dist/workflow/VerificationSchema.d.ts +46 -0
- package/dist/workflow/VerificationSchema.js +97 -0
- package/dist/workflow/VerificationSchema.js.map +1 -0
- package/dist/workflow/autofix/AutoFixEngine.d.ts +37 -0
- package/dist/workflow/autofix/AutoFixEngine.js +169 -0
- package/dist/workflow/autofix/AutoFixEngine.js.map +1 -0
- package/dist/workflow/execution/RalphEngine.d.ts +18 -0
- package/dist/workflow/execution/RalphEngine.js +22 -0
- package/dist/workflow/execution/RalphEngine.js.map +1 -1
- package/dist/workflow/gates/EnhancedGates.d.ts +74 -0
- package/dist/workflow/gates/EnhancedGates.js +653 -0
- package/dist/workflow/gates/EnhancedGates.js.map +1 -0
- package/dist/workflow/gates/GateSystem.d.ts +3 -0
- package/dist/workflow/gates/GateSystem.js +94 -1
- package/dist/workflow/gates/GateSystem.js.map +1 -1
- package/dist/workflow/types.d.ts +1 -1
- package/docs/README.md +3 -0
- package/docs/guides/DEVELOPMENT_WORKFLOW.md +28 -9
- package/docs/guides/GETTING_STARTED.md +19 -0
- package/docs/guides/MIGRATION.md +119 -0
- package/docs/workflow/GATES_AND_SCORE.md +34 -1
- package/docs/workflow/README.md +58 -10
- package/package.json +5 -17
- package/docs/ACTIVE_SECURITY_VISUAL_GATES.md +0 -87
- package/docs/AI_ENGINEERING_OS_POSITIONING.md +0 -607
- package/docs/BACKGROUND_HUNTER.md +0 -62
- package/docs/CODE_INTELLIGENCE.md +0 -180
- package/docs/CONTEXT_BUDGET.md +0 -165
- package/docs/DEPENDENCY_AUDIT.md +0 -118
- package/docs/EVOLUTION_SHADOW_MODE.md +0 -63
- package/docs/GITLAB_FLOW.md +0 -125
- package/docs/GOVERNANCE_DASHBOARD.md +0 -92
- package/docs/MEMORY_BRAIN.md +0 -104
- package/docs/MEMORY_FABRIC.md +0 -161
- package/docs/RESOURCE_GOVERNANCE.md +0 -92
- package/docs/RUNTIME_EVIDENCE.md +0 -101
- package/docs/WORKFLOW_EVAL.md +0 -151
- package/image/wechat-public.jpg +0 -0
- package/image/wxPay.jpg +0 -0
- package/image/zfb.jpg +0 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface UnifiedHookInput {
|
|
2
|
+
harness: 'claude' | 'codex' | 'cursor' | 'gemini';
|
|
3
|
+
sessionId: string;
|
|
4
|
+
cwd: string;
|
|
5
|
+
toolName: string;
|
|
6
|
+
toolInput: Record<string, unknown>;
|
|
7
|
+
event: 'PreToolUse' | 'PostToolUse' | 'Stop' | 'SessionStart';
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Parse Claude Code hook stdin JSON into unified format.
|
|
11
|
+
* Claude Code format: { session_id, cwd, tool_name, tool_input }
|
|
12
|
+
*/
|
|
13
|
+
export declare function parseClaudeInput(raw: string): UnifiedHookInput;
|
|
14
|
+
/**
|
|
15
|
+
* Generate Claude Code settings.json hook entry for Cortex.
|
|
16
|
+
*/
|
|
17
|
+
export declare function generateClaudeHookConfig(scriptPath: string): object;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
// SCALE Cortex — Claude Code Adapter
|
|
2
|
+
// 对齐 ECC: DRY adapter pattern — same hook logic, different stdin format
|
|
3
|
+
// Converts Claude Code hook stdin JSON to unified Cortex format
|
|
4
|
+
/**
|
|
5
|
+
* Parse Claude Code hook stdin JSON into unified format.
|
|
6
|
+
* Claude Code format: { session_id, cwd, tool_name, tool_input }
|
|
7
|
+
*/
|
|
8
|
+
export function parseClaudeInput(raw) {
|
|
9
|
+
try {
|
|
10
|
+
const input = JSON.parse(raw);
|
|
11
|
+
return {
|
|
12
|
+
harness: 'claude',
|
|
13
|
+
sessionId: input.session_id ?? 'unknown',
|
|
14
|
+
cwd: input.cwd ?? process.cwd(),
|
|
15
|
+
toolName: input.tool_name ?? '',
|
|
16
|
+
toolInput: input.tool_input ?? {},
|
|
17
|
+
event: input.hook_event ?? 'PreToolUse',
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return {
|
|
22
|
+
harness: 'claude',
|
|
23
|
+
sessionId: 'unknown',
|
|
24
|
+
cwd: process.cwd(),
|
|
25
|
+
toolName: '',
|
|
26
|
+
toolInput: {},
|
|
27
|
+
event: 'PreToolUse',
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Generate Claude Code settings.json hook entry for Cortex.
|
|
33
|
+
*/
|
|
34
|
+
export function generateClaudeHookConfig(scriptPath) {
|
|
35
|
+
return {
|
|
36
|
+
hooks: {
|
|
37
|
+
PreToolUse: [
|
|
38
|
+
{
|
|
39
|
+
type: 'command',
|
|
40
|
+
command: `node ${scriptPath}`,
|
|
41
|
+
timeout: 5000,
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
SessionStart: [
|
|
45
|
+
{
|
|
46
|
+
type: 'command',
|
|
47
|
+
command: `node ${scriptPath} --event SessionStart`,
|
|
48
|
+
timeout: 10000,
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
Stop: [
|
|
52
|
+
{
|
|
53
|
+
type: 'command',
|
|
54
|
+
command: `node ${scriptPath} --event Stop`,
|
|
55
|
+
timeout: 10000,
|
|
56
|
+
},
|
|
57
|
+
],
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=ClaudeAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClaudeAdapter.js","sourceRoot":"","sources":["../../../src/cortex/adapters/ClaudeAdapter.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,wEAAwE;AACxE,gEAAgE;AAWhE;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC7B,OAAO;YACL,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,KAAK,CAAC,UAAU,IAAI,SAAS;YACxC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE;YAC/B,QAAQ,EAAE,KAAK,CAAC,SAAS,IAAI,EAAE;YAC/B,SAAS,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE;YACjC,KAAK,EAAE,KAAK,CAAC,UAAU,IAAI,YAAY;SACxC,CAAA;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,SAAS;YACpB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,EAAE;YACb,KAAK,EAAE,YAAY;SACpB,CAAA;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,UAAkB;IACzD,OAAO;QACL,KAAK,EAAE;YACL,UAAU,EAAE;gBACV;oBACE,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,QAAQ,UAAU,EAAE;oBAC7B,OAAO,EAAE,IAAI;iBACd;aACF;YACD,YAAY,EAAE;gBACZ;oBACE,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,QAAQ,UAAU,uBAAuB;oBAClD,OAAO,EAAE,KAAK;iBACf;aACF;YACD,IAAI,EAAE;gBACJ;oBACE,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,QAAQ,UAAU,eAAe;oBAC1C,OAAO,EAAE,KAAK;iBACf;aACF;SACF;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { UnifiedHookInput } from './ClaudeAdapter.js';
|
|
2
|
+
/**
|
|
3
|
+
* Parse Codex hook stdin JSON into unified format.
|
|
4
|
+
* Codex format: { session, workspace, tool, input }
|
|
5
|
+
*/
|
|
6
|
+
export declare function parseCodexInput(raw: string): UnifiedHookInput;
|
|
7
|
+
/**
|
|
8
|
+
* Generate Codex hooks.json config entry for Cortex.
|
|
9
|
+
*/
|
|
10
|
+
export declare function generateCodexHookConfig(scriptPath: string): object;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
// SCALE Cortex — Codex Adapter
|
|
2
|
+
// 对齐 ECC: DRY adapter pattern — converts Codex hook format to unified Cortex format
|
|
3
|
+
// Codex uses .codex/hooks.json with slightly different stdin shape
|
|
4
|
+
/**
|
|
5
|
+
* Parse Codex hook stdin JSON into unified format.
|
|
6
|
+
* Codex format: { session, workspace, tool, input }
|
|
7
|
+
*/
|
|
8
|
+
export function parseCodexInput(raw) {
|
|
9
|
+
try {
|
|
10
|
+
const input = JSON.parse(raw);
|
|
11
|
+
return {
|
|
12
|
+
harness: 'codex',
|
|
13
|
+
sessionId: input.session?.id ?? input.sessionId ?? 'unknown',
|
|
14
|
+
cwd: input.workspace ?? input.cwd ?? process.cwd(),
|
|
15
|
+
toolName: input.tool ?? input.toolName ?? '',
|
|
16
|
+
toolInput: input.input ?? input.toolInput ?? {},
|
|
17
|
+
event: input.event ?? 'PreToolUse',
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return {
|
|
22
|
+
harness: 'codex',
|
|
23
|
+
sessionId: 'unknown',
|
|
24
|
+
cwd: process.cwd(),
|
|
25
|
+
toolName: '',
|
|
26
|
+
toolInput: {},
|
|
27
|
+
event: 'PreToolUse',
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Generate Codex hooks.json config entry for Cortex.
|
|
33
|
+
*/
|
|
34
|
+
export function generateCodexHookConfig(scriptPath) {
|
|
35
|
+
return {
|
|
36
|
+
hooks: {
|
|
37
|
+
PreToolUse: [
|
|
38
|
+
{
|
|
39
|
+
command: `node ${scriptPath}`,
|
|
40
|
+
timeout: 5000,
|
|
41
|
+
},
|
|
42
|
+
],
|
|
43
|
+
SessionStart: [
|
|
44
|
+
{
|
|
45
|
+
command: `node ${scriptPath} --event SessionStart`,
|
|
46
|
+
timeout: 10000,
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=CodexAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodexAdapter.js","sourceRoot":"","sources":["../../../src/cortex/adapters/CodexAdapter.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,oFAAoF;AACpF,mEAAmE;AAInE;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC7B,OAAO;YACL,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,KAAK,CAAC,SAAS,IAAI,SAAS;YAC5D,GAAG,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE;YAClD,QAAQ,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE;YAC5C,SAAS,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,IAAI,EAAE;YAC/C,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,YAAY;SACnC,CAAA;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,SAAS;YACpB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,EAAE;YACb,KAAK,EAAE,YAAY;SACpB,CAAA;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAAkB;IACxD,OAAO;QACL,KAAK,EAAE;YACL,UAAU,EAAE;gBACV;oBACE,OAAO,EAAE,QAAQ,UAAU,EAAE;oBAC7B,OAAO,EAAE,IAAI;iBACd;aACF;YACD,YAAY,EAAE;gBACZ;oBACE,OAAO,EAAE,QAAQ,UAAU,uBAAuB;oBAClD,OAAO,EAAE,KAAK;iBACf;aACF;SACF;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { UnifiedHookInput } from './ClaudeAdapter.js';
|
|
2
|
+
/**
|
|
3
|
+
* Parse Cursor hook stdin JSON into unified format.
|
|
4
|
+
* Cursor format: { session_id, working_dir, action, args }
|
|
5
|
+
*/
|
|
6
|
+
export declare function parseCursorInput(raw: string): UnifiedHookInput;
|
|
7
|
+
/**
|
|
8
|
+
* Generate Cursor hooks.json config entry for Cortex.
|
|
9
|
+
*/
|
|
10
|
+
export declare function generateCursorHookConfig(scriptPath: string): object;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// SCALE Cortex — Cursor Adapter
|
|
2
|
+
// 对齐 ECC: DRY adapter pattern — converts Cursor hook format to unified Cortex format
|
|
3
|
+
// Cursor uses .cursor/hooks.json with a slightly different stdin schema
|
|
4
|
+
/**
|
|
5
|
+
* Parse Cursor hook stdin JSON into unified format.
|
|
6
|
+
* Cursor format: { session_id, working_dir, action, args }
|
|
7
|
+
*/
|
|
8
|
+
export function parseCursorInput(raw) {
|
|
9
|
+
try {
|
|
10
|
+
const input = JSON.parse(raw);
|
|
11
|
+
return {
|
|
12
|
+
harness: 'cursor',
|
|
13
|
+
sessionId: input.session_id ?? input.sessionId ?? 'unknown',
|
|
14
|
+
cwd: input.working_dir ?? input.cwd ?? process.cwd(),
|
|
15
|
+
toolName: input.action ?? input.tool ?? '',
|
|
16
|
+
toolInput: input.args ?? input.input ?? {},
|
|
17
|
+
event: input.hook_event ?? input.event ?? 'PreToolUse',
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return {
|
|
22
|
+
harness: 'cursor',
|
|
23
|
+
sessionId: 'unknown',
|
|
24
|
+
cwd: process.cwd(),
|
|
25
|
+
toolName: '',
|
|
26
|
+
toolInput: {},
|
|
27
|
+
event: 'PreToolUse',
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Generate Cursor hooks.json config entry for Cortex.
|
|
33
|
+
*/
|
|
34
|
+
export function generateCursorHookConfig(scriptPath) {
|
|
35
|
+
return {
|
|
36
|
+
hooks: {
|
|
37
|
+
PreToolUse: [
|
|
38
|
+
{
|
|
39
|
+
type: 'command',
|
|
40
|
+
command: `node ${scriptPath}`,
|
|
41
|
+
},
|
|
42
|
+
],
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=CursorAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CursorAdapter.js","sourceRoot":"","sources":["../../../src/cortex/adapters/CursorAdapter.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,qFAAqF;AACrF,wEAAwE;AAIxE;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC7B,OAAO;YACL,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,SAAS,IAAI,SAAS;YAC3D,GAAG,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE;YACpD,QAAQ,EAAE,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE;YAC1C,SAAS,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;YAC1C,KAAK,EAAE,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,IAAI,YAAY;SACvD,CAAA;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,SAAS;YACpB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,EAAE;YACb,KAAK,EAAE,YAAY;SACpB,CAAA;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,UAAkB;IACzD,OAAO;QACL,KAAK,EAAE;YACL,UAAU,EAAE;gBACV;oBACE,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,QAAQ,UAAU,EAAE;iBAC9B;aACF;SACF;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { UnifiedHookInput } from './ClaudeAdapter.js';
|
|
2
|
+
/**
|
|
3
|
+
* Parse Gemini CLI hook stdin JSON into unified format.
|
|
4
|
+
* Gemini format varies per tool, this normalizes across known shapes.
|
|
5
|
+
*/
|
|
6
|
+
export declare function parseGeminiInput(raw: string): UnifiedHookInput;
|
|
7
|
+
/**
|
|
8
|
+
* Generate Gemini CLI hook config entry for Cortex.
|
|
9
|
+
* Gemini CLI uses GEMINI.md with hooks section.
|
|
10
|
+
*/
|
|
11
|
+
export declare function generateGeminiHookConfig(scriptPath: string): object;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
// SCALE Cortex — Gemini CLI Adapter
|
|
2
|
+
// 对齐 ECC: DRY adapter pattern — converts Gemini CLI hook format to unified Cortex format
|
|
3
|
+
// Gemini CLI uses GEMINI.md hooks with its own stdin format
|
|
4
|
+
/**
|
|
5
|
+
* Parse Gemini CLI hook stdin JSON into unified format.
|
|
6
|
+
* Gemini format varies per tool, this normalizes across known shapes.
|
|
7
|
+
*/
|
|
8
|
+
export function parseGeminiInput(raw) {
|
|
9
|
+
try {
|
|
10
|
+
const input = JSON.parse(raw);
|
|
11
|
+
return {
|
|
12
|
+
harness: 'gemini',
|
|
13
|
+
sessionId: input.session_id ?? input.sessionId ?? input.sid ?? 'unknown',
|
|
14
|
+
cwd: input.cwd ?? input.working_directory ?? process.cwd(),
|
|
15
|
+
toolName: input.tool_name ?? input.toolName ?? input.action ?? '',
|
|
16
|
+
toolInput: input.input ?? input.tool_input ?? input.args ?? {},
|
|
17
|
+
event: input.event ?? input.hook_event ?? 'PreToolUse',
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return {
|
|
22
|
+
harness: 'gemini',
|
|
23
|
+
sessionId: 'unknown',
|
|
24
|
+
cwd: process.cwd(),
|
|
25
|
+
toolName: '',
|
|
26
|
+
toolInput: {},
|
|
27
|
+
event: 'PreToolUse',
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Generate Gemini CLI hook config entry for Cortex.
|
|
33
|
+
* Gemini CLI uses GEMINI.md with hooks section.
|
|
34
|
+
*/
|
|
35
|
+
export function generateGeminiHookConfig(scriptPath) {
|
|
36
|
+
return {
|
|
37
|
+
hooks: {
|
|
38
|
+
PreToolUse: [
|
|
39
|
+
{
|
|
40
|
+
type: 'command',
|
|
41
|
+
command: `node ${scriptPath}`,
|
|
42
|
+
timeout: 5000,
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=GeminiAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeminiAdapter.js","sourceRoot":"","sources":["../../../src/cortex/adapters/GeminiAdapter.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,yFAAyF;AACzF,4DAA4D;AAI5D;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC7B,OAAO;YACL,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,GAAG,IAAI,SAAS;YACxE,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,iBAAiB,IAAI,OAAO,CAAC,GAAG,EAAE;YAC1D,QAAQ,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,EAAE;YACjE,SAAS,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE;YAC9D,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,IAAI,YAAY;SACvD,CAAA;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,SAAS;YACpB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,EAAE;YACb,KAAK,EAAE,YAAY;SACpB,CAAA;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,UAAkB;IACzD,OAAO;QACL,KAAK,EAAE;YACL,UAAU,EAAE;gBACV;oBACE,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,QAAQ,UAAU,EAAE;oBAC7B,OAAO,EAAE,IAAI;iBACd;aACF;SACF;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface BenchmarkData {
|
|
2
|
+
timestamp: string;
|
|
3
|
+
version: string;
|
|
4
|
+
summary: {
|
|
5
|
+
passAt1: number;
|
|
6
|
+
passAt3: number;
|
|
7
|
+
totalCases: number;
|
|
8
|
+
avgDurationMs: number;
|
|
9
|
+
avgTokens: number;
|
|
10
|
+
avgCostUsd: number;
|
|
11
|
+
};
|
|
12
|
+
byCategory: Record<string, {
|
|
13
|
+
total: number;
|
|
14
|
+
passed: number;
|
|
15
|
+
avgDurationMs: number;
|
|
16
|
+
avgTokens: number;
|
|
17
|
+
}>;
|
|
18
|
+
trends: Array<{
|
|
19
|
+
date: string;
|
|
20
|
+
passAt1: number;
|
|
21
|
+
totalCases: number;
|
|
22
|
+
}>;
|
|
23
|
+
}
|
|
24
|
+
export declare function publishBenchmark(data: BenchmarkData, outputDir?: string): string;
|
|
25
|
+
export declare function createBenchmarkSummary(version: string): BenchmarkData;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { writeFileSync, mkdirSync, existsSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
export function publishBenchmark(data, outputDir = '.scale/benchmarks') {
|
|
4
|
+
if (!existsSync(outputDir))
|
|
5
|
+
mkdirSync(outputDir, { recursive: true });
|
|
6
|
+
const filename = `benchmark-${data.version}-${data.timestamp.replace(/[:.]/g, '-')}.json`;
|
|
7
|
+
const path = join(outputDir, filename);
|
|
8
|
+
writeFileSync(path, JSON.stringify(data, null, 2));
|
|
9
|
+
return path;
|
|
10
|
+
}
|
|
11
|
+
export function createBenchmarkSummary(version) {
|
|
12
|
+
return {
|
|
13
|
+
timestamp: new Date().toISOString(),
|
|
14
|
+
version,
|
|
15
|
+
summary: {
|
|
16
|
+
passAt1: 0,
|
|
17
|
+
passAt3: 0,
|
|
18
|
+
totalCases: 0,
|
|
19
|
+
avgDurationMs: 0,
|
|
20
|
+
avgTokens: 0,
|
|
21
|
+
avgCostUsd: 0,
|
|
22
|
+
},
|
|
23
|
+
byCategory: {},
|
|
24
|
+
trends: [],
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=BenchmarkPublisher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BenchmarkPublisher.js","sourceRoot":"","sources":["../../src/eval/BenchmarkPublisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AA0BhC,MAAM,UAAU,gBAAgB,CAAC,IAAmB,EAAE,YAAoB,mBAAmB;IAC3F,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACrE,MAAM,QAAQ,GAAG,aAAa,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAA;IACzF,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IACtC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IAClD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACpD,OAAO;QACL,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO;QACP,OAAO,EAAE;YACP,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,CAAC;YAChB,SAAS,EAAE,CAAC;YACZ,UAAU,EAAE,CAAC;SACd;QACD,UAAU,EAAE,EAAE;QACd,MAAM,EAAE,EAAE;KACX,CAAA;AACH,CAAC"}
|
|
@@ -242,6 +242,15 @@ function scanPackageSource(projectDir, pkg, maxPackageFiles) {
|
|
|
242
242
|
}
|
|
243
243
|
return findings;
|
|
244
244
|
}
|
|
245
|
+
// Packages that legitimately use eval/Function for browser automation, sandboxing, etc.
|
|
246
|
+
const KNOWN_EVAL_PACKAGES = new Set([
|
|
247
|
+
'playwright',
|
|
248
|
+
'playwright-core',
|
|
249
|
+
'puppeteer-core',
|
|
250
|
+
'puppeteer',
|
|
251
|
+
'jsdom',
|
|
252
|
+
'happy-dom',
|
|
253
|
+
]);
|
|
245
254
|
function sourceFindingForLine(pkg, path, lineNumber, line) {
|
|
246
255
|
const trimmed = line.trim();
|
|
247
256
|
if (trimmed === '' || trimmed.startsWith('//') || trimmed.startsWith('*') || trimmed.startsWith('/*'))
|
|
@@ -251,7 +260,7 @@ function sourceFindingForLine(pkg, path, lineNumber, line) {
|
|
|
251
260
|
packageName: pkg.name,
|
|
252
261
|
version: pkg.metadata.version,
|
|
253
262
|
ruleId: 'dependency.eval',
|
|
254
|
-
severity: 'CRITICAL',
|
|
263
|
+
severity: KNOWN_EVAL_PACKAGES.has(pkg.name) ? 'MEDIUM' : 'CRITICAL',
|
|
255
264
|
path,
|
|
256
265
|
message: 'Dependency source uses dynamic code execution.',
|
|
257
266
|
evidence: `line ${lineNumber}: ${trimmed.slice(0, 180)}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DependencyAuditor.js","sourceRoot":"","sources":["../../src/guardrails/DependencyAuditor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DependencyAuditor.js","sourceRoot":"","sources":["../../src/guardrails/DependencyAuditor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export interface DaemonStatus {
|
|
2
|
+
running: boolean;
|
|
3
|
+
pid?: number;
|
|
4
|
+
startedAt?: string;
|
|
5
|
+
policyPath: string;
|
|
6
|
+
policyHash: string;
|
|
7
|
+
activeWorkspaces: number;
|
|
8
|
+
totalDispatched: number;
|
|
9
|
+
activeIssues: string[];
|
|
10
|
+
lastTickAt?: string;
|
|
11
|
+
uptime?: number;
|
|
12
|
+
}
|
|
13
|
+
export declare class OrchestratorDaemon {
|
|
14
|
+
private policyLoader;
|
|
15
|
+
private workspaceManager;
|
|
16
|
+
private reconciliationLoop;
|
|
17
|
+
private tracker;
|
|
18
|
+
private projectDir;
|
|
19
|
+
private startedAt;
|
|
20
|
+
constructor(projectDir?: string);
|
|
21
|
+
/**
|
|
22
|
+
* Start the daemon.
|
|
23
|
+
*/
|
|
24
|
+
start(): Promise<{
|
|
25
|
+
success: boolean;
|
|
26
|
+
pid: number;
|
|
27
|
+
reason?: string;
|
|
28
|
+
}>;
|
|
29
|
+
/**
|
|
30
|
+
* Stop the daemon gracefully.
|
|
31
|
+
*/
|
|
32
|
+
stop(): Promise<{
|
|
33
|
+
success: boolean;
|
|
34
|
+
}>;
|
|
35
|
+
/**
|
|
36
|
+
* Get current daemon status.
|
|
37
|
+
*/
|
|
38
|
+
status(): DaemonStatus;
|
|
39
|
+
/**
|
|
40
|
+
* Read daemon log.
|
|
41
|
+
*/
|
|
42
|
+
readLog(lines?: number): string;
|
|
43
|
+
private createTracker;
|
|
44
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
// SCALE Orchestrator — Daemon
|
|
2
|
+
// 对齐 Symphony: long-running daemon with poll loop + workspace lifecycle
|
|
3
|
+
// Manages: start, stop, status, signal handling, graceful shutdown
|
|
4
|
+
import { existsSync, mkdirSync, writeFileSync, readFileSync, unlinkSync } from 'node:fs';
|
|
5
|
+
import { join } from 'node:path';
|
|
6
|
+
import { logger } from '../core/logger.js';
|
|
7
|
+
import { PolicyLoader } from './PolicyLoader.js';
|
|
8
|
+
import { WorkspaceManager } from './WorkspaceManager.js';
|
|
9
|
+
import { ReconciliationLoop } from './ReconciliationLoop.js';
|
|
10
|
+
import { GitHubTrackerAdapter, MockTrackerAdapter } from './TrackerAdapter.js';
|
|
11
|
+
// ---------------------------------------------------------------------------
|
|
12
|
+
// PID file management (for daemon lifecycle)
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
const DAEMON_DIR = '.scale/orchestrator';
|
|
15
|
+
const PID_FILE = join(DAEMON_DIR, 'daemon.pid');
|
|
16
|
+
const LOG_FILE = join(DAEMON_DIR, 'daemon.log');
|
|
17
|
+
export class OrchestratorDaemon {
|
|
18
|
+
constructor(projectDir = process.cwd()) {
|
|
19
|
+
this.policyLoader = new PolicyLoader();
|
|
20
|
+
this.workspaceManager = null;
|
|
21
|
+
this.reconciliationLoop = null;
|
|
22
|
+
this.tracker = null;
|
|
23
|
+
this.startedAt = null;
|
|
24
|
+
this.projectDir = projectDir;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Start the daemon.
|
|
28
|
+
*/
|
|
29
|
+
async start() {
|
|
30
|
+
// Ensure daemon directory
|
|
31
|
+
if (!existsSync(DAEMON_DIR))
|
|
32
|
+
mkdirSync(DAEMON_DIR, { recursive: true });
|
|
33
|
+
// Check if already running
|
|
34
|
+
if (existsSync(PID_FILE)) {
|
|
35
|
+
const existingPid = parseInt(readFileSync(PID_FILE, 'utf-8'), 10);
|
|
36
|
+
try {
|
|
37
|
+
process.kill(existingPid, 0);
|
|
38
|
+
return { success: false, pid: existingPid, reason: 'Daemon already running' };
|
|
39
|
+
}
|
|
40
|
+
catch { /* stale PID */ }
|
|
41
|
+
}
|
|
42
|
+
// Load policy
|
|
43
|
+
const policy = this.policyLoader.load(this.projectDir);
|
|
44
|
+
this.policyLoader.watch(this.projectDir);
|
|
45
|
+
// Create tracker adapter
|
|
46
|
+
this.tracker = this.createTracker(policy);
|
|
47
|
+
// Create workspace manager
|
|
48
|
+
this.workspaceManager = new WorkspaceManager(policy);
|
|
49
|
+
// Create reconciliation loop
|
|
50
|
+
this.reconciliationLoop = new ReconciliationLoop(this.tracker, this.workspaceManager, policy);
|
|
51
|
+
// Wire up events
|
|
52
|
+
this.reconciliationLoop.on('dispatched', (record) => {
|
|
53
|
+
logger.info({ issueId: record.issueId, workspace: record.workspaceId, attempt: record.attempts }, 'Task dispatched');
|
|
54
|
+
});
|
|
55
|
+
this.reconciliationLoop.on('completed', (issueId, success) => {
|
|
56
|
+
logger.info({ issueId, success }, 'Task completed');
|
|
57
|
+
});
|
|
58
|
+
this.reconciliationLoop.on('released', (issueId) => {
|
|
59
|
+
this.workspaceManager?.updateStatus(issueId, 'terminal');
|
|
60
|
+
});
|
|
61
|
+
this.reconciliationLoop.on('error', (issueId, error) => {
|
|
62
|
+
logger.error({ issueId, err: error }, 'Task error');
|
|
63
|
+
});
|
|
64
|
+
// Start the loop
|
|
65
|
+
this.reconciliationLoop.start();
|
|
66
|
+
this.startedAt = new Date().toISOString();
|
|
67
|
+
// Write PID
|
|
68
|
+
writeFileSync(PID_FILE, String(process.pid));
|
|
69
|
+
// Signal handling for graceful shutdown
|
|
70
|
+
const shutdown = () => { void this.stop(); process.exit(0); };
|
|
71
|
+
process.on('SIGINT', shutdown);
|
|
72
|
+
process.on('SIGTERM', shutdown);
|
|
73
|
+
// Append to log
|
|
74
|
+
writeFileSync(LOG_FILE, `${this.startedAt} — Daemon started (PID ${process.pid})\n`, { flag: 'a' });
|
|
75
|
+
logger.info({ pid: process.pid, policy: policy.hash }, 'Orchestrator daemon started');
|
|
76
|
+
return { success: true, pid: process.pid };
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Stop the daemon gracefully.
|
|
80
|
+
*/
|
|
81
|
+
async stop() {
|
|
82
|
+
if (this.reconciliationLoop)
|
|
83
|
+
this.reconciliationLoop.stop();
|
|
84
|
+
if (this.workspaceManager) {
|
|
85
|
+
this.workspaceManager.cleanupTerminal();
|
|
86
|
+
}
|
|
87
|
+
if (existsSync(PID_FILE))
|
|
88
|
+
unlinkSync(PID_FILE);
|
|
89
|
+
this.startedAt = null;
|
|
90
|
+
const timestamp = new Date().toISOString();
|
|
91
|
+
writeFileSync(LOG_FILE, `${timestamp} — Daemon stopped\n`, { flag: 'a' });
|
|
92
|
+
logger.info('Orchestrator daemon stopped');
|
|
93
|
+
return { success: true };
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Get current daemon status.
|
|
97
|
+
*/
|
|
98
|
+
status() {
|
|
99
|
+
const records = this.reconciliationLoop?.getDispatchRecords() ?? [];
|
|
100
|
+
const activeRecords = records.filter(r => r.state === 'Running');
|
|
101
|
+
const activeWorkspaces = this.workspaceManager?.listActive() ?? [];
|
|
102
|
+
const uptime = this.startedAt
|
|
103
|
+
? Date.now() - new Date(this.startedAt).getTime()
|
|
104
|
+
: undefined;
|
|
105
|
+
return {
|
|
106
|
+
running: existsSync(PID_FILE),
|
|
107
|
+
pid: existsSync(PID_FILE) ? parseInt(readFileSync(PID_FILE, 'utf-8'), 10) : undefined,
|
|
108
|
+
startedAt: this.startedAt ?? undefined,
|
|
109
|
+
policyPath: join(this.projectDir, 'SCALE_POLICY.md'),
|
|
110
|
+
policyHash: this.policyLoader.get().hash,
|
|
111
|
+
activeWorkspaces: activeWorkspaces.length,
|
|
112
|
+
totalDispatched: records.length,
|
|
113
|
+
activeIssues: activeRecords.map(r => r.issueId),
|
|
114
|
+
lastTickAt: records[0]?.lastActivityAt,
|
|
115
|
+
uptime,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Read daemon log.
|
|
120
|
+
*/
|
|
121
|
+
readLog(lines = 50) {
|
|
122
|
+
if (!existsSync(LOG_FILE))
|
|
123
|
+
return '(no log)';
|
|
124
|
+
const entries = readFileSync(LOG_FILE, 'utf-8').trim().split('\n');
|
|
125
|
+
return entries.slice(-lines).join('\n');
|
|
126
|
+
}
|
|
127
|
+
// -----------------------------------------------------------------------
|
|
128
|
+
// Internal
|
|
129
|
+
// -----------------------------------------------------------------------
|
|
130
|
+
createTracker(policy) {
|
|
131
|
+
switch (policy.tracker.type) {
|
|
132
|
+
case 'github':
|
|
133
|
+
return new GitHubTrackerAdapter({
|
|
134
|
+
type: 'github',
|
|
135
|
+
owner: policy.tracker.owner,
|
|
136
|
+
repo: policy.tracker.repo,
|
|
137
|
+
activeStates: policy.tracker.activeStates,
|
|
138
|
+
terminalStates: policy.tracker.terminalStates,
|
|
139
|
+
priorityLabels: policy.polling.priorityLabels,
|
|
140
|
+
});
|
|
141
|
+
case 'linear':
|
|
142
|
+
case 'jira':
|
|
143
|
+
logger.warn(`${policy.tracker.type} tracker not yet implemented — using mock`);
|
|
144
|
+
return new MockTrackerAdapter();
|
|
145
|
+
default:
|
|
146
|
+
return new MockTrackerAdapter();
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=OrchestratorDaemon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrchestratorDaemon.js","sourceRoot":"","sources":["../../src/orchestrator/OrchestratorDaemon.ts"],"names":[],"mappings":"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"}
|