@hongmaple0820/scale-engine 0.40.2 → 0.44.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 +43 -2
- 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/codegraph/CodeIntelligence.d.ts +27 -0
- package/dist/codegraph/CodeIntelligence.js +316 -3
- package/dist/codegraph/CodeIntelligence.js.map +1 -1
- 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/dashboard/DashboardServer.d.ts +33 -13
- package/dist/dashboard/DashboardServer.js +314 -182
- package/dist/dashboard/DashboardServer.js.map +1 -1
- package/dist/dashboard/index.d.ts +2 -2
- package/dist/dashboard/index.js +1 -1
- package/dist/dashboard/index.js.map +1 -1
- package/dist/dashboard/server.d.ts +8 -22
- package/dist/dashboard/server.js +2 -83
- package/dist/dashboard/server.js.map +1 -1
- 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/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.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/topology/DomainMapper.d.ts +23 -0
- package/dist/topology/DomainMapper.js +179 -0
- package/dist/topology/DomainMapper.js.map +1 -0
- package/dist/topology/LayerClassifier.d.ts +8 -0
- package/dist/topology/LayerClassifier.js +109 -0
- package/dist/topology/LayerClassifier.js.map +1 -0
- package/dist/topology/TourGenerator.d.ts +18 -0
- package/dist/topology/TourGenerator.js +120 -0
- package/dist/topology/TourGenerator.js.map +1 -0
- package/dist/topology/index.d.ts +3 -0
- package/dist/topology/index.js +4 -0
- package/dist/topology/index.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 +7 -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"}
|
|
@@ -1,8 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dashboard Server 2.0 — Unified Hono server with Node.js adapter
|
|
3
|
+
* SPA architecture, SSE real-time, ECharts visualization
|
|
4
|
+
*/
|
|
5
|
+
import { Hono } from 'hono';
|
|
1
6
|
import type { EventBus } from '../core/eventBus.js';
|
|
2
7
|
import type { IArtifactStore } from '../artifact/store.js';
|
|
3
8
|
import type { IFSM } from '../artifact/fsm.js';
|
|
4
9
|
import type { IEvolutionEvaluator, EvolutionMetrics } from '../evolution/EvolutionEvaluator.js';
|
|
5
10
|
import type { DetectorStatisticsTracker } from '../guardrails/DetectorEnhanced.js';
|
|
11
|
+
import { type TopologyGraph } from '../codegraph/CodeIntelligence.js';
|
|
6
12
|
export interface DashboardState {
|
|
7
13
|
artifacts: ArtifactTreeNode[];
|
|
8
14
|
evolutionMetrics: EvolutionMetrics | null;
|
|
@@ -52,9 +58,17 @@ export interface RecentEvent {
|
|
|
52
58
|
artifactId?: string;
|
|
53
59
|
data?: Record<string, unknown>;
|
|
54
60
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
61
|
+
export interface DashboardOptions {
|
|
62
|
+
port?: number;
|
|
63
|
+
host?: string;
|
|
64
|
+
store?: IArtifactStore;
|
|
65
|
+
fsm?: IFSM;
|
|
66
|
+
evaluator?: IEvolutionEvaluator;
|
|
67
|
+
detectorTracker?: DetectorStatisticsTracker;
|
|
68
|
+
bus?: EventBus;
|
|
69
|
+
projectDir?: string;
|
|
70
|
+
scaleDir?: string;
|
|
71
|
+
}
|
|
58
72
|
export declare class DashboardServer {
|
|
59
73
|
private app;
|
|
60
74
|
private bus;
|
|
@@ -63,21 +77,27 @@ export declare class DashboardServer {
|
|
|
63
77
|
private evaluator;
|
|
64
78
|
private detectorTracker;
|
|
65
79
|
private port;
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
private
|
|
80
|
+
private host;
|
|
81
|
+
private projectDir;
|
|
82
|
+
private scaleDir;
|
|
83
|
+
private server;
|
|
84
|
+
constructor(options?: DashboardOptions);
|
|
85
|
+
private setupMiddleware;
|
|
86
|
+
private setupSPA;
|
|
87
|
+
private setupAPI;
|
|
88
|
+
private setupSSE;
|
|
89
|
+
private setupWriteOps;
|
|
74
90
|
getDashboardState(): Promise<DashboardState>;
|
|
75
91
|
getArtifactTree(): Promise<ArtifactTreeNode[]>;
|
|
76
92
|
getEvolutionMetrics(): Promise<EvolutionMetrics | null>;
|
|
77
93
|
getDetectorStats(): DetectorStatSummary[];
|
|
78
94
|
getAutoDefectStats(): Promise<AutoDefectSummary | null>;
|
|
79
95
|
getRecentEvents(limit: number): Promise<RecentEvent[]>;
|
|
80
|
-
|
|
96
|
+
getTopology(): TopologyGraph;
|
|
97
|
+
private listDocuments;
|
|
98
|
+
private serveDocument;
|
|
99
|
+
start(): Promise<void>;
|
|
81
100
|
stop(): void;
|
|
82
|
-
|
|
101
|
+
/** Get the underlying Hono app (for testing or embedding) */
|
|
102
|
+
getApp(): Hono;
|
|
83
103
|
}
|