@hongmaple0820/scale-engine 0.7.1 → 0.8.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 +31 -5
- package/dist/adapters/ClaudeCodeAdapter.js +5 -3
- package/dist/adapters/ClaudeCodeAdapter.js.map +1 -1
- package/dist/adapters/CodexAdapter.js +5 -3
- package/dist/adapters/CodexAdapter.js.map +1 -1
- package/dist/adapters/CursorAdapter.js +5 -3
- package/dist/adapters/CursorAdapter.js.map +1 -1
- package/dist/adapters/GeminiAdapter.js +5 -3
- package/dist/adapters/GeminiAdapter.js.map +1 -1
- package/dist/adapters/HermesAdapter.js +5 -3
- package/dist/adapters/HermesAdapter.js.map +1 -1
- package/dist/adapters/OpenClawAdapter.js +5 -3
- package/dist/adapters/OpenClawAdapter.js.map +1 -1
- package/dist/adapters/OpenCodeAdapter.js +5 -3
- package/dist/adapters/OpenCodeAdapter.js.map +1 -1
- package/dist/adapters/QCoderAdapter.js +5 -3
- package/dist/adapters/QCoderAdapter.js.map +1 -1
- package/dist/adapters/TraeAdapter.js +5 -3
- package/dist/adapters/TraeAdapter.js.map +1 -1
- package/dist/adapters/VSCAdapter.js +5 -3
- package/dist/adapters/VSCAdapter.js.map +1 -1
- package/dist/adapters/WorkBuddyAdapter.js +5 -3
- package/dist/adapters/WorkBuddyAdapter.js.map +1 -1
- package/dist/agents/AgentChannel.d.ts +43 -0
- package/dist/agents/AgentChannel.js +136 -0
- package/dist/agents/AgentChannel.js.map +1 -0
- package/dist/agents/AgentCoordinator.d.ts +29 -0
- package/dist/agents/AgentCoordinator.js +136 -0
- package/dist/agents/AgentCoordinator.js.map +1 -0
- package/dist/agents/AgentDispatcher.d.ts +24 -0
- package/dist/agents/AgentDispatcher.js +112 -0
- package/dist/agents/AgentDispatcher.js.map +1 -0
- package/dist/agents/AgentManager.d.ts +14 -0
- package/dist/agents/AgentManager.js +85 -0
- package/dist/agents/AgentManager.js.map +1 -0
- package/dist/agents/AgentPool.d.ts +59 -0
- package/dist/agents/AgentPool.js +192 -0
- package/dist/agents/AgentPool.js.map +1 -0
- package/dist/agents/AgentRegistry.d.ts +20 -0
- package/dist/agents/AgentRegistry.js +36 -0
- package/dist/agents/AgentRegistry.js.map +1 -0
- package/dist/agents/AgentSourceLoader.d.ts +73 -0
- package/dist/agents/AgentSourceLoader.js +101 -0
- package/dist/agents/AgentSourceLoader.js.map +1 -0
- package/dist/agents/IAgent.d.ts +53 -0
- package/dist/agents/IAgent.js +4 -0
- package/dist/agents/IAgent.js.map +1 -0
- package/dist/agents/definitions/debugger.d.ts +2 -0
- package/dist/agents/definitions/debugger.js +6 -0
- package/dist/agents/definitions/debugger.js.map +1 -0
- package/dist/agents/definitions/doc-writer.d.ts +2 -0
- package/dist/agents/definitions/doc-writer.js +6 -0
- package/dist/agents/definitions/doc-writer.js.map +1 -0
- package/dist/agents/definitions/implementer.d.ts +2 -0
- package/dist/agents/definitions/implementer.js +6 -0
- package/dist/agents/definitions/implementer.js.map +1 -0
- package/dist/agents/definitions/planner.d.ts +2 -0
- package/dist/agents/definitions/planner.js +6 -0
- package/dist/agents/definitions/planner.js.map +1 -0
- package/dist/agents/definitions/researcher.d.ts +2 -0
- package/dist/agents/definitions/researcher.js +6 -0
- package/dist/agents/definitions/researcher.js.map +1 -0
- package/dist/agents/definitions/reviewer.d.ts +2 -0
- package/dist/agents/definitions/reviewer.js +6 -0
- package/dist/agents/definitions/reviewer.js.map +1 -0
- package/dist/agents/definitions/security.d.ts +2 -0
- package/dist/agents/definitions/security.js +6 -0
- package/dist/agents/definitions/security.js.map +1 -0
- package/dist/agents/definitions/tester.d.ts +2 -0
- package/dist/agents/definitions/tester.js +6 -0
- package/dist/agents/definitions/tester.js.map +1 -0
- package/dist/agents/index.d.ts +23 -0
- package/dist/agents/index.js +44 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/profiles.d.ts +26 -0
- package/dist/agents/profiles.js +197 -0
- package/dist/agents/profiles.js.map +1 -0
- package/dist/agents/types.d.ts +262 -0
- package/dist/agents/types.js +4 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/api/cli.js +121 -3
- package/dist/api/cli.js.map +1 -1
- package/dist/api/doctor.js +0 -2
- package/dist/api/doctor.js.map +1 -1
- package/dist/api/mcp.js +0 -5
- package/dist/api/mcp.js.map +1 -1
- package/dist/artifact/fsm.js +3 -5
- package/dist/artifact/fsm.js.map +1 -1
- package/dist/artifact/sqliteStore.js +1 -14
- package/dist/artifact/sqliteStore.js.map +1 -1
- package/dist/artifact/store.js +2 -4
- package/dist/artifact/store.js.map +1 -1
- package/dist/artifact/types.d.ts +94 -1
- package/dist/artifact/types.js +0 -3
- package/dist/artifact/types.js.map +1 -1
- package/dist/context/AntiPatternRegistry.d.ts +38 -0
- package/dist/context/AntiPatternRegistry.js +203 -0
- package/dist/context/AntiPatternRegistry.js.map +1 -0
- package/dist/context/CavemanCompressor.d.ts +20 -0
- package/dist/context/CavemanCompressor.js +14 -0
- package/dist/context/CavemanCompressor.js.map +1 -0
- package/dist/context/ContextBuilder.js +132 -4
- package/dist/context/ContextBuilder.js.map +1 -1
- package/dist/context/SessionStartSequence.d.ts +54 -0
- package/dist/context/SessionStartSequence.js +153 -0
- package/dist/context/SessionStartSequence.js.map +1 -0
- package/dist/core/container.js +4 -2
- package/dist/core/container.js.map +1 -1
- package/dist/core/eventBus.js +5 -6
- package/dist/core/eventBus.js.map +1 -1
- package/dist/dashboard/DashboardServer.d.ts +17 -0
- package/dist/dashboard/DashboardServer.js +53 -7
- package/dist/dashboard/DashboardServer.js.map +1 -1
- package/dist/dashboard/index.d.ts +2 -0
- package/dist/dashboard/index.js +2 -0
- package/dist/dashboard/index.js.map +1 -0
- package/dist/dashboard/server.d.ts +52 -0
- package/dist/dashboard/server.js +83 -0
- package/dist/dashboard/server.js.map +1 -0
- package/dist/evolution/AutoDefectCreator.js +2 -4
- package/dist/evolution/AutoDefectCreator.js.map +1 -1
- package/dist/evolution/BehaviorTracker.js +3 -5
- package/dist/evolution/BehaviorTracker.js.map +1 -1
- package/dist/evolution/EvolutionEngine.js +3 -14
- package/dist/evolution/EvolutionEngine.js.map +1 -1
- package/dist/evolution/EvolutionEvaluator.js +1 -4
- package/dist/evolution/EvolutionEvaluator.js.map +1 -1
- package/dist/evolution/LessonValidator.js +0 -4
- package/dist/evolution/LessonValidator.js.map +1 -1
- package/dist/evolution/PatternExtractor.d.ts +40 -0
- package/dist/evolution/PatternExtractor.js +83 -0
- package/dist/evolution/PatternExtractor.js.map +1 -0
- package/dist/evolution/SkillCreator.d.ts +75 -0
- package/dist/evolution/SkillCreator.js +219 -0
- package/dist/evolution/SkillCreator.js.map +1 -0
- package/dist/fsm/FSMAgentBridge.js +11 -13
- package/dist/fsm/FSMAgentBridge.js.map +1 -1
- package/dist/guardrails/DetectorEnhanced.js +32 -30
- package/dist/guardrails/DetectorEnhanced.js.map +1 -1
- package/dist/guardrails/GateEvaluator.d.ts +18 -0
- package/dist/guardrails/GateEvaluator.js +129 -0
- package/dist/guardrails/GateEvaluator.js.map +1 -0
- package/dist/guardrails/Gateway.js +6 -7
- package/dist/guardrails/Gateway.js.map +1 -1
- package/dist/guardrails/ReviewEnforcer.d.ts +52 -0
- package/dist/guardrails/ReviewEnforcer.js +117 -0
- package/dist/guardrails/ReviewEnforcer.js.map +1 -0
- package/dist/guardrails/advancedDetectors.js +33 -31
- package/dist/guardrails/advancedDetectors.js.map +1 -1
- package/dist/guardrails/detectors.js +76 -16
- package/dist/guardrails/detectors.js.map +1 -1
- package/dist/hooks/HookDeployer.js +2 -3
- package/dist/hooks/HookDeployer.js.map +1 -1
- package/dist/hooks/HookGeneratorEnhanced.js +2 -3
- package/dist/hooks/HookGeneratorEnhanced.js.map +1 -1
- package/dist/index.d.ts +20 -2
- package/dist/index.js +19 -2
- package/dist/index.js.map +1 -1
- package/dist/knowledge/KnowledgeBase.d.ts +26 -0
- package/dist/knowledge/KnowledgeBase.js +109 -8
- package/dist/knowledge/KnowledgeBase.js.map +1 -1
- package/dist/knowledge/SQLiteKnowledgeBase.js +1 -3
- package/dist/knowledge/SQLiteKnowledgeBase.js.map +1 -1
- package/dist/knowledge/UbiquitousLanguageManager.d.ts +49 -0
- package/dist/knowledge/UbiquitousLanguageManager.js +133 -0
- package/dist/knowledge/UbiquitousLanguageManager.js.map +1 -0
- package/dist/routing/ModelRouter.js +0 -2
- package/dist/routing/ModelRouter.js.map +1 -1
- package/dist/skills/ExternalSkills.d.ts +3 -0
- package/dist/skills/ExternalSkills.js +20 -0
- package/dist/skills/ExternalSkills.js.map +1 -0
- package/dist/skills/GrillingSessionSkill.d.ts +65 -0
- package/dist/skills/GrillingSessionSkill.js +113 -0
- package/dist/skills/GrillingSessionSkill.js.map +1 -0
- package/dist/skills/GrillingTemplates.d.ts +7 -0
- package/dist/skills/GrillingTemplates.js +38 -0
- package/dist/skills/GrillingTemplates.js.map +1 -0
- package/dist/skills/SkillDiscovery.d.ts +45 -20
- package/dist/skills/SkillDiscovery.js +201 -117
- package/dist/skills/SkillDiscovery.js.map +1 -1
- package/dist/skills/SkillExecutor.js +1 -3
- package/dist/skills/SkillExecutor.js.map +1 -1
- package/dist/skills/SkillInstaller.d.ts +40 -0
- package/dist/skills/SkillInstaller.js +112 -0
- package/dist/skills/SkillInstaller.js.map +1 -0
- package/dist/skills/SkillRegistry.js +1 -2
- package/dist/skills/SkillRegistry.js.map +1 -1
- package/dist/skills/TriggerEngine.js +3 -5
- package/dist/skills/TriggerEngine.js.map +1 -1
- package/dist/skills/index.d.ts +3 -0
- package/dist/skills/index.js +3 -0
- package/dist/skills/index.js.map +1 -1
- package/dist/tasks/IssueTriageFSM.d.ts +26 -0
- package/dist/tasks/IssueTriageFSM.js +107 -0
- package/dist/tasks/IssueTriageFSM.js.map +1 -0
- package/dist/tasks/TaskEngine.js +1 -5
- package/dist/tasks/TaskEngine.js.map +1 -1
- package/dist/workflows/DAGBuilder.d.ts +52 -0
- package/dist/workflows/DAGBuilder.js +169 -0
- package/dist/workflows/DAGBuilder.js.map +1 -0
- package/dist/workflows/WorkflowExecutor.js +2 -4
- package/dist/workflows/WorkflowExecutor.js.map +1 -1
- package/dist/workflows/WorkflowOrchestrator.d.ts +48 -0
- package/dist/workflows/WorkflowOrchestrator.js +181 -0
- package/dist/workflows/WorkflowOrchestrator.js.map +1 -0
- package/dist/workflows/index.d.ts +2 -4
- package/dist/workflows/index.js +4 -4
- package/dist/workflows/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tester.js","sourceRoot":"","sources":["../../../src/agents/definitions/tester.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,YAAY,GAAoB;IAC3C,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe;IAC1D,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzG,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,eAAe,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC;CAC5G,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export type { IAgentManager, IAgent, AgentDefinition, AgentTaskContext, AgentResult, AgentCapability, } from './IAgent.js';
|
|
2
|
+
export { AGENT_MANAGER_TOKEN } from './IAgent.js';
|
|
3
|
+
export { AgentManager, initializeAgentManager } from './AgentManager.js';
|
|
4
|
+
export { PLANNER_AGENT } from './definitions/planner.js';
|
|
5
|
+
export { RESEARCHER_AGENT } from './definitions/researcher.js';
|
|
6
|
+
export { IMPLEMENTER_AGENT } from './definitions/implementer.js';
|
|
7
|
+
export { REVIEWER_AGENT } from './definitions/reviewer.js';
|
|
8
|
+
export { TESTER_AGENT } from './definitions/tester.js';
|
|
9
|
+
export { SECURITY_AGENT } from './definitions/security.js';
|
|
10
|
+
export { DEBUGGER_AGENT } from './definitions/debugger.js';
|
|
11
|
+
export { DOC_WRITER_AGENT } from './definitions/doc-writer.js';
|
|
12
|
+
import type { AgentDefinition } from './IAgent.js';
|
|
13
|
+
export declare const ALL_AGENTS: AgentDefinition[];
|
|
14
|
+
import type { AgentManager } from './AgentManager.js';
|
|
15
|
+
export declare function registerAllAgents(manager: AgentManager): void;
|
|
16
|
+
export * from './types.js';
|
|
17
|
+
export * from './profiles.js';
|
|
18
|
+
export { AgentRegistry, DEFAULT_REGISTRY, type IAgentRegistry } from './AgentRegistry.js';
|
|
19
|
+
export { AgentPool, type IAgentPool } from './AgentPool.js';
|
|
20
|
+
export { AgentDispatcher, type IAgentDispatcher } from './AgentDispatcher.js';
|
|
21
|
+
export { AgentChannel, type IAgentChannel } from './AgentChannel.js';
|
|
22
|
+
export { AgentCoordinator, type IAgentCoordinator } from './AgentCoordinator.js';
|
|
23
|
+
export { AgentSourceLoader, type IAgentSourceLoader, type YAMLAgentDefinition, defaultAgentSourceLoader, loadAgentsFromDirectory, loadAgentFromFile, exportProfileToYAML } from './AgentSourceLoader.js';
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// SCALE Engine — Agent System
|
|
2
|
+
// 旧 Agent 系统 + 新 Multi-Agent 协作系统共存
|
|
3
|
+
export { AGENT_MANAGER_TOKEN } from './IAgent.js';
|
|
4
|
+
export { AgentManager, initializeAgentManager } from './AgentManager.js';
|
|
5
|
+
export { PLANNER_AGENT } from './definitions/planner.js';
|
|
6
|
+
export { RESEARCHER_AGENT } from './definitions/researcher.js';
|
|
7
|
+
export { IMPLEMENTER_AGENT } from './definitions/implementer.js';
|
|
8
|
+
export { REVIEWER_AGENT } from './definitions/reviewer.js';
|
|
9
|
+
export { TESTER_AGENT } from './definitions/tester.js';
|
|
10
|
+
export { SECURITY_AGENT } from './definitions/security.js';
|
|
11
|
+
export { DEBUGGER_AGENT } from './definitions/debugger.js';
|
|
12
|
+
export { DOC_WRITER_AGENT } from './definitions/doc-writer.js';
|
|
13
|
+
import { PLANNER_AGENT } from './definitions/planner.js';
|
|
14
|
+
import { RESEARCHER_AGENT } from './definitions/researcher.js';
|
|
15
|
+
import { IMPLEMENTER_AGENT } from './definitions/implementer.js';
|
|
16
|
+
import { REVIEWER_AGENT } from './definitions/reviewer.js';
|
|
17
|
+
import { TESTER_AGENT } from './definitions/tester.js';
|
|
18
|
+
import { SECURITY_AGENT } from './definitions/security.js';
|
|
19
|
+
import { DEBUGGER_AGENT } from './definitions/debugger.js';
|
|
20
|
+
import { DOC_WRITER_AGENT } from './definitions/doc-writer.js';
|
|
21
|
+
export const ALL_AGENTS = [
|
|
22
|
+
PLANNER_AGENT,
|
|
23
|
+
RESEARCHER_AGENT,
|
|
24
|
+
IMPLEMENTER_AGENT,
|
|
25
|
+
REVIEWER_AGENT,
|
|
26
|
+
TESTER_AGENT,
|
|
27
|
+
SECURITY_AGENT,
|
|
28
|
+
DEBUGGER_AGENT,
|
|
29
|
+
DOC_WRITER_AGENT,
|
|
30
|
+
];
|
|
31
|
+
export function registerAllAgents(manager) {
|
|
32
|
+
for (const def of ALL_AGENTS)
|
|
33
|
+
manager.register(def);
|
|
34
|
+
}
|
|
35
|
+
// ===== 新 Multi-Agent 协作系统(团队协作)=====
|
|
36
|
+
export * from './types.js';
|
|
37
|
+
export * from './profiles.js';
|
|
38
|
+
export { AgentRegistry, DEFAULT_REGISTRY } from './AgentRegistry.js';
|
|
39
|
+
export { AgentPool } from './AgentPool.js';
|
|
40
|
+
export { AgentDispatcher } from './AgentDispatcher.js';
|
|
41
|
+
export { AgentChannel } from './AgentChannel.js';
|
|
42
|
+
export { AgentCoordinator } from './AgentCoordinator.js';
|
|
43
|
+
export { AgentSourceLoader, defaultAgentSourceLoader, loadAgentsFromDirectory, loadAgentFromFile, exportProfileToYAML } from './AgentSourceLoader.js';
|
|
44
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,oCAAoC;AAYpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAExE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAI9D,MAAM,CAAC,MAAM,UAAU,GAAsB;IAC3C,aAAa;IACb,gBAAgB;IAChB,iBAAiB;IACjB,cAAc;IACd,YAAY;IACZ,cAAc;IACd,cAAc;IACd,gBAAgB;CACjB,CAAA;AAID,MAAM,UAAU,iBAAiB,CAAC,OAAqB;IACrD,KAAK,MAAM,GAAG,IAAI,UAAU;QAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AACrD,CAAC;AAED,sCAAsC;AACtC,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAuB,MAAM,oBAAoB,CAAA;AACzF,OAAO,EAAE,SAAS,EAAmB,MAAM,gBAAgB,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAyB,MAAM,sBAAsB,CAAA;AAC7E,OAAO,EAAE,YAAY,EAAsB,MAAM,mBAAmB,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAA0B,MAAM,uBAAuB,CAAA;AAChF,OAAO,EAAE,iBAAiB,EAAqD,wBAAwB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { AgentProfile } from './types.js';
|
|
2
|
+
export declare const PROFESSIONAL_AGENTS: AgentProfile[];
|
|
3
|
+
export declare class AgentProfileRegistry {
|
|
4
|
+
private profiles;
|
|
5
|
+
constructor();
|
|
6
|
+
/** 获取 Profile */
|
|
7
|
+
get(id: string): AgentProfile | undefined;
|
|
8
|
+
/** 获取所有 Profiles */
|
|
9
|
+
listAll(): AgentProfile[];
|
|
10
|
+
/** 按 Domain 筛选 */
|
|
11
|
+
findByDomain(domain: string): AgentProfile[];
|
|
12
|
+
/** 按能力标签筛选 */
|
|
13
|
+
findByCapability(capability: string): AgentProfile[];
|
|
14
|
+
/** 注册自定义 Profile */
|
|
15
|
+
register(profile: AgentProfile): void;
|
|
16
|
+
}
|
|
17
|
+
/** 默认 Registry 实例 */
|
|
18
|
+
export declare const defaultProfileRegistry: AgentProfileRegistry;
|
|
19
|
+
/** 获取单个 Profile */
|
|
20
|
+
export declare function getProfile(id: string): AgentProfile | undefined;
|
|
21
|
+
/** 按 Domain 获取 Profiles */
|
|
22
|
+
export declare function getProfilesByDomain(domain: string): AgentProfile[];
|
|
23
|
+
/** 按 Role 获取 Profiles */
|
|
24
|
+
export declare function getProfilesByRole(role: string): AgentProfile[];
|
|
25
|
+
/** 列出所有 Profile IDs */
|
|
26
|
+
export declare function listProfiles(): string[];
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
// SCALE Engine — Predefined Agent Profiles (v0.8.0)
|
|
2
|
+
// 12 个专业 Agent Profile 定义
|
|
3
|
+
// ============================================================================
|
|
4
|
+
// 12 个预定义 Professional Agent Profiles
|
|
5
|
+
// ============================================================================
|
|
6
|
+
export const PROFESSIONAL_AGENTS = [
|
|
7
|
+
{
|
|
8
|
+
id: 'frontend-agent',
|
|
9
|
+
name: 'Frontend Developer',
|
|
10
|
+
domain: 'frontend',
|
|
11
|
+
inheritsRole: 'Implementer',
|
|
12
|
+
capabilities: ['react', 'vue', 'css', 'animation', 'accessibility', 'typescript'],
|
|
13
|
+
preferredModel: 'balanced',
|
|
14
|
+
outputFormat: { fileTypes: ['.tsx', '.css', '.html'], style: 'component-based' },
|
|
15
|
+
collaboration: { reportsTo: 'backend-agent', sharesWith: ['ui-design-agent', 'test-agent'] },
|
|
16
|
+
description: 'UI/UX implementation, React/Vue components, CSS styling'
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
id: 'backend-agent',
|
|
20
|
+
name: 'Backend Developer',
|
|
21
|
+
domain: 'backend',
|
|
22
|
+
inheritsRole: 'Implementer',
|
|
23
|
+
capabilities: ['api', 'database', 'auth', 'performance', 'caching', 'sql'],
|
|
24
|
+
preferredModel: 'balanced',
|
|
25
|
+
outputFormat: { fileTypes: ['.ts', '.sql', '.json'], style: 'layered-architecture' },
|
|
26
|
+
collaboration: { reportsTo: 'frontend-agent', sharesWith: ['test-agent', 'ops-agent'] },
|
|
27
|
+
description: 'API design, database operations, authentication, performance optimization'
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
id: 'test-agent',
|
|
31
|
+
name: 'Test Engineer',
|
|
32
|
+
domain: 'testing',
|
|
33
|
+
inheritsRole: 'Verifier',
|
|
34
|
+
capabilities: ['tdd', 'e2e', 'mocking', 'coverage', 'playwright', 'vitest'],
|
|
35
|
+
preferredModel: 'fast',
|
|
36
|
+
outputFormat: { fileTypes: ['.test.ts', '.spec.ts'], style: 'aaa-pattern' },
|
|
37
|
+
collaboration: { sharesWith: ['frontend-agent', 'backend-agent'] },
|
|
38
|
+
description: 'TDD workflow, E2E testing, test coverage, mocking strategies'
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
id: 'ui-design-agent',
|
|
42
|
+
name: 'UI/UX Designer',
|
|
43
|
+
domain: 'ui-design',
|
|
44
|
+
inheritsRole: 'SpecWriter',
|
|
45
|
+
capabilities: ['visual-design', 'accessibility', 'ux', 'responsive', 'animation', 'figma'],
|
|
46
|
+
preferredModel: 'powerful',
|
|
47
|
+
outputFormat: { fileTypes: ['.md', '.css'], style: 'design-spec' },
|
|
48
|
+
collaboration: { reportsTo: 'frontend-agent', sharesWith: ['product-agent'] },
|
|
49
|
+
description: 'Visual design, accessibility compliance, UX patterns, responsive layouts'
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
id: 'ops-agent',
|
|
53
|
+
name: 'DevOps Engineer',
|
|
54
|
+
domain: 'operations',
|
|
55
|
+
inheritsRole: 'Releaser',
|
|
56
|
+
capabilities: ['deploy', 'cicd', 'monitoring', 'docker', 'k8s', 'terraform'],
|
|
57
|
+
preferredModel: 'fast',
|
|
58
|
+
outputFormat: { fileTypes: ['.yaml', '.sh', '.dockerfile', '.tf'], style: 'automation' },
|
|
59
|
+
collaboration: { reportsTo: 'backend-agent', sharesWith: ['security-agent'] },
|
|
60
|
+
description: 'Deployment, CI/CD pipelines, monitoring, Docker/Kubernetes'
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
id: 'product-agent',
|
|
64
|
+
name: 'Product Manager',
|
|
65
|
+
domain: 'product',
|
|
66
|
+
inheritsRole: 'SpecWriter',
|
|
67
|
+
capabilities: ['requirements', 'user-story', 'analytics', 'roadmap', 'prioritization'],
|
|
68
|
+
preferredModel: 'powerful',
|
|
69
|
+
outputFormat: { fileTypes: ['.md'], style: 'user-centric' },
|
|
70
|
+
collaboration: { sharesWith: ['ui-design-agent', 'architect-agent'] },
|
|
71
|
+
description: 'Requirements gathering, user stories, analytics, roadmap planning'
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
id: 'code-review-agent',
|
|
75
|
+
name: 'Code Reviewer',
|
|
76
|
+
domain: 'code-review',
|
|
77
|
+
inheritsRole: 'Verifier',
|
|
78
|
+
capabilities: ['quality', 'security', 'patterns', 'best-practices', 'clean-code'],
|
|
79
|
+
preferredModel: 'powerful',
|
|
80
|
+
outputFormat: { fileTypes: ['.md'], style: 'review-report' },
|
|
81
|
+
collaboration: { sharesWith: ['test-agent', 'security-agent'] },
|
|
82
|
+
description: 'Code quality review, security analysis, pattern enforcement'
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
id: 'security-agent',
|
|
86
|
+
name: 'Security Specialist',
|
|
87
|
+
domain: 'security',
|
|
88
|
+
inheritsRole: 'Verifier',
|
|
89
|
+
capabilities: ['owasp', 'auth', 'crypto', 'compliance', 'audit', 'penetration-testing'],
|
|
90
|
+
preferredModel: 'powerful',
|
|
91
|
+
outputFormat: { fileTypes: ['.md', '.yaml'], style: 'security-report' },
|
|
92
|
+
collaboration: { sharesWith: ['code-review-agent', 'ops-agent'] },
|
|
93
|
+
description: 'OWASP compliance, authentication, cryptography, security audit'
|
|
94
|
+
},
|
|
95
|
+
// ===== 新增 4 个 Agent =====
|
|
96
|
+
{
|
|
97
|
+
id: 'database-agent',
|
|
98
|
+
name: 'Database Specialist',
|
|
99
|
+
domain: 'database',
|
|
100
|
+
inheritsRole: 'Implementer',
|
|
101
|
+
capabilities: ['migration', 'schema-design', 'sql-optimization', 'indexing', 'backup-recovery'],
|
|
102
|
+
preferredModel: 'balanced',
|
|
103
|
+
outputFormat: { fileTypes: ['.sql', '.ts'], style: 'migration-script' },
|
|
104
|
+
collaboration: { reportsTo: 'backend-agent', sharesWith: ['ops-agent'] },
|
|
105
|
+
description: 'Database migrations, schema design, query optimization'
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
id: 'performance-agent',
|
|
109
|
+
name: 'Performance Engineer',
|
|
110
|
+
domain: 'performance',
|
|
111
|
+
inheritsRole: 'Verifier',
|
|
112
|
+
capabilities: ['profiling', 'benchmarking', 'optimization', 'caching', 'load-testing'],
|
|
113
|
+
preferredModel: 'powerful',
|
|
114
|
+
outputFormat: { fileTypes: ['.md', '.ts'], style: 'performance-report' },
|
|
115
|
+
collaboration: { sharesWith: ['frontend-agent', 'backend-agent', 'database-agent'] },
|
|
116
|
+
description: 'Performance profiling, benchmarking, optimization strategies'
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
id: 'docs-agent',
|
|
120
|
+
name: 'Documentation Specialist',
|
|
121
|
+
domain: 'documentation',
|
|
122
|
+
inheritsRole: 'SpecWriter',
|
|
123
|
+
capabilities: ['api-docs', 'user-guide', 'technical-writing', 'diagrams', 'examples'],
|
|
124
|
+
preferredModel: 'fast',
|
|
125
|
+
outputFormat: { fileTypes: ['.md', '.mdx'], style: 'documentation' },
|
|
126
|
+
collaboration: { sharesWith: ['product-agent', 'architect-agent'] },
|
|
127
|
+
description: 'API documentation, user guides, technical writing'
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
id: 'architect-agent',
|
|
131
|
+
name: 'Software Architect',
|
|
132
|
+
domain: 'architecture',
|
|
133
|
+
inheritsRole: 'Planner',
|
|
134
|
+
capabilities: ['system-design', 'microservices', 'patterns', 'scalability', 'trade-offs'],
|
|
135
|
+
preferredModel: 'powerful',
|
|
136
|
+
outputFormat: { fileTypes: ['.md', '.yaml'], style: 'architecture-spec' },
|
|
137
|
+
collaboration: { sharesWith: ['product-agent', 'backend-agent', 'frontend-agent'] },
|
|
138
|
+
description: 'System architecture design, scalability planning, pattern selection'
|
|
139
|
+
}
|
|
140
|
+
];
|
|
141
|
+
// ============================================================================
|
|
142
|
+
// Profile Registry
|
|
143
|
+
// ============================================================================
|
|
144
|
+
export class AgentProfileRegistry {
|
|
145
|
+
constructor() {
|
|
146
|
+
this.profiles = new Map();
|
|
147
|
+
// 注册预定义 Profiles
|
|
148
|
+
for (const profile of PROFESSIONAL_AGENTS) {
|
|
149
|
+
this.profiles.set(profile.id, profile);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/** 获取 Profile */
|
|
153
|
+
get(id) {
|
|
154
|
+
return this.profiles.get(id);
|
|
155
|
+
}
|
|
156
|
+
/** 获取所有 Profiles */
|
|
157
|
+
listAll() {
|
|
158
|
+
return Array.from(this.profiles.values());
|
|
159
|
+
}
|
|
160
|
+
/** 按 Domain 筛选 */
|
|
161
|
+
findByDomain(domain) {
|
|
162
|
+
return this.listAll().filter(p => p.domain === domain);
|
|
163
|
+
}
|
|
164
|
+
/** 按能力标签筛选 */
|
|
165
|
+
findByCapability(capability) {
|
|
166
|
+
return this.listAll().filter(p => p.capabilities.includes(capability));
|
|
167
|
+
}
|
|
168
|
+
/** 注册自定义 Profile */
|
|
169
|
+
register(profile) {
|
|
170
|
+
if (this.profiles.has(profile.id)) {
|
|
171
|
+
throw new Error(`Profile already registered: ${profile.id}`);
|
|
172
|
+
}
|
|
173
|
+
this.profiles.set(profile.id, profile);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
/** 默认 Registry 实例 */
|
|
177
|
+
export const defaultProfileRegistry = new AgentProfileRegistry();
|
|
178
|
+
// ============================================================================
|
|
179
|
+
// Helper Functions(测试需要)
|
|
180
|
+
// ============================================================================
|
|
181
|
+
/** 获取单个 Profile */
|
|
182
|
+
export function getProfile(id) {
|
|
183
|
+
return defaultProfileRegistry.get(id);
|
|
184
|
+
}
|
|
185
|
+
/** 按 Domain 获取 Profiles */
|
|
186
|
+
export function getProfilesByDomain(domain) {
|
|
187
|
+
return defaultProfileRegistry.findByDomain(domain);
|
|
188
|
+
}
|
|
189
|
+
/** 按 Role 获取 Profiles */
|
|
190
|
+
export function getProfilesByRole(role) {
|
|
191
|
+
return PROFESSIONAL_AGENTS.filter(p => p.inheritsRole === role);
|
|
192
|
+
}
|
|
193
|
+
/** 列出所有 Profile IDs */
|
|
194
|
+
export function listProfiles() {
|
|
195
|
+
return PROFESSIONAL_AGENTS.map(p => p.id);
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=profiles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../src/agents/profiles.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
import type { ArtifactId, Timestamp, AgentPlatform } from '../artifact/types.js';
|
|
2
|
+
/** Agent 专业领域 */
|
|
3
|
+
export type AgentDomain = 'frontend' | 'backend' | 'testing' | 'ui-design' | 'operations' | 'product' | 'code-review' | 'security' | 'documentation' | 'planning' | 'exploration' | 'database' | 'performance' | 'architecture';
|
|
4
|
+
/** 模型层级偏好 */
|
|
5
|
+
export type ModelTier = 'fast' | 'balanced' | 'powerful';
|
|
6
|
+
/** 输出规范 */
|
|
7
|
+
export interface OutputSpec {
|
|
8
|
+
fileTypes: string[];
|
|
9
|
+
style: string;
|
|
10
|
+
}
|
|
11
|
+
/** 协作偏好 */
|
|
12
|
+
export interface CollaborationSpec {
|
|
13
|
+
reportsTo?: string;
|
|
14
|
+
sharesWith: string[];
|
|
15
|
+
}
|
|
16
|
+
/** Agent 人设定义 */
|
|
17
|
+
export interface AgentIdentity {
|
|
18
|
+
role: string;
|
|
19
|
+
personality: string;
|
|
20
|
+
memory: string;
|
|
21
|
+
experience: string;
|
|
22
|
+
}
|
|
23
|
+
/** Agent 核心使命 */
|
|
24
|
+
export interface AgentMission {
|
|
25
|
+
name: string;
|
|
26
|
+
description: string;
|
|
27
|
+
priority: 'critical' | 'high' | 'normal';
|
|
28
|
+
}
|
|
29
|
+
/** Agent 关键规则 */
|
|
30
|
+
export interface AgentRule {
|
|
31
|
+
name: string;
|
|
32
|
+
description: string;
|
|
33
|
+
enforcement: 'block' | 'warn' | 'suggest';
|
|
34
|
+
}
|
|
35
|
+
/** Agent 交付物模板 */
|
|
36
|
+
export interface AgentDeliverable {
|
|
37
|
+
name: string;
|
|
38
|
+
template: string;
|
|
39
|
+
format: 'markdown' | 'code' | 'json' | 'yaml';
|
|
40
|
+
}
|
|
41
|
+
/** Agent 工作流程步骤 */
|
|
42
|
+
export interface AgentWorkflowStep {
|
|
43
|
+
stepId: string;
|
|
44
|
+
name: string;
|
|
45
|
+
description: string;
|
|
46
|
+
outputs?: string[];
|
|
47
|
+
}
|
|
48
|
+
/** Agent 成功指标 */
|
|
49
|
+
export interface AgentSuccessMetric {
|
|
50
|
+
name: string;
|
|
51
|
+
target: string;
|
|
52
|
+
measurement: string;
|
|
53
|
+
}
|
|
54
|
+
/** Agent Profile:专业 Agent 定义 (v0.9.0 增强) */
|
|
55
|
+
export interface AgentProfile {
|
|
56
|
+
id: string;
|
|
57
|
+
name: string;
|
|
58
|
+
description: string;
|
|
59
|
+
domain: AgentDomain;
|
|
60
|
+
emoji?: string;
|
|
61
|
+
color?: string;
|
|
62
|
+
identity?: AgentIdentity;
|
|
63
|
+
missions?: AgentMission[];
|
|
64
|
+
rules?: AgentRule[];
|
|
65
|
+
inheritsRole: string;
|
|
66
|
+
capabilities: string[];
|
|
67
|
+
preferredModel: ModelTier;
|
|
68
|
+
outputFormat?: OutputSpec;
|
|
69
|
+
deliverables?: AgentDeliverable[];
|
|
70
|
+
workflow?: AgentWorkflowStep[];
|
|
71
|
+
successMetrics?: AgentSuccessMetric[];
|
|
72
|
+
collaboration?: CollaborationSpec;
|
|
73
|
+
}
|
|
74
|
+
/** Agent 实例状态 */
|
|
75
|
+
export type AgentStatus = 'idle' | 'running' | 'blocked' | 'completed' | 'failed' | 'recycled';
|
|
76
|
+
/** 消息类型 */
|
|
77
|
+
export type MessageType = 'task-request' | 'task-complete' | 'task-fail' | 'dependency-block' | 'dependency-resolve' | 'output-share' | 'review-request' | 'review-result' | 'help-request' | 'status-update';
|
|
78
|
+
/** Agent 消息 */
|
|
79
|
+
export interface AgentMessage {
|
|
80
|
+
id: string;
|
|
81
|
+
from: string;
|
|
82
|
+
to: string | 'broadcast';
|
|
83
|
+
type: MessageType;
|
|
84
|
+
payload: unknown;
|
|
85
|
+
timestamp: Timestamp;
|
|
86
|
+
}
|
|
87
|
+
/** Agent 实例运行时 */
|
|
88
|
+
export interface AgentRuntime {
|
|
89
|
+
id: string;
|
|
90
|
+
profile: AgentProfile;
|
|
91
|
+
status: AgentStatus;
|
|
92
|
+
assignedTask?: ArtifactId;
|
|
93
|
+
model: ModelConfig;
|
|
94
|
+
startedAt: Timestamp;
|
|
95
|
+
completedAt?: Timestamp;
|
|
96
|
+
outputArtifacts: ArtifactId[];
|
|
97
|
+
messages: AgentMessage[];
|
|
98
|
+
blockedBy?: string[];
|
|
99
|
+
retryCount: number;
|
|
100
|
+
error?: string;
|
|
101
|
+
}
|
|
102
|
+
/** 模型配置 */
|
|
103
|
+
export interface ModelConfig {
|
|
104
|
+
provider: AgentPlatform | 'anthropic' | 'openai' | 'google';
|
|
105
|
+
modelId: string;
|
|
106
|
+
tier: ModelTier;
|
|
107
|
+
}
|
|
108
|
+
/** Agent 团队 */
|
|
109
|
+
export interface AgentTeam {
|
|
110
|
+
id: string;
|
|
111
|
+
agents: AgentRuntime[];
|
|
112
|
+
leader: AgentRuntime;
|
|
113
|
+
startedAt: Timestamp;
|
|
114
|
+
completedAt?: Timestamp;
|
|
115
|
+
dissolvedAt?: Timestamp;
|
|
116
|
+
taskId?: ArtifactId;
|
|
117
|
+
scenarioMode?: 'sandbox' | 'standard' | 'critical';
|
|
118
|
+
}
|
|
119
|
+
/** 团队执行结果 */
|
|
120
|
+
export interface TeamExecutionResult {
|
|
121
|
+
teamId: string;
|
|
122
|
+
success: boolean;
|
|
123
|
+
outputArtifacts: ArtifactId[];
|
|
124
|
+
duration: number;
|
|
125
|
+
agentResults: Map<string, AgentResult>;
|
|
126
|
+
}
|
|
127
|
+
/** 单个 Agent 执行结果 */
|
|
128
|
+
export interface AgentResult {
|
|
129
|
+
agentId: string;
|
|
130
|
+
status: AgentStatus;
|
|
131
|
+
outputArtifacts: ArtifactId[];
|
|
132
|
+
duration: number;
|
|
133
|
+
retryCount: number;
|
|
134
|
+
}
|
|
135
|
+
/** Agent 执行结果(兼容旧版) */
|
|
136
|
+
export interface AgentExecutionResult {
|
|
137
|
+
agentId: string;
|
|
138
|
+
success: boolean;
|
|
139
|
+
outputArtifacts: ArtifactId[];
|
|
140
|
+
duration: number;
|
|
141
|
+
error?: string;
|
|
142
|
+
}
|
|
143
|
+
/** 团队配置 */
|
|
144
|
+
export interface TeamConfig {
|
|
145
|
+
profiles: string[];
|
|
146
|
+
parallelism: number;
|
|
147
|
+
timeout?: number;
|
|
148
|
+
onConflict: 'abort' | 'retry' | 'skip';
|
|
149
|
+
scenarioMode?: 'sandbox' | 'standard' | 'critical';
|
|
150
|
+
}
|
|
151
|
+
/** 任务依赖解析结果 */
|
|
152
|
+
export interface DependencyResolution {
|
|
153
|
+
taskId: ArtifactId;
|
|
154
|
+
blockedBy: ArtifactId[];
|
|
155
|
+
ready: boolean;
|
|
156
|
+
}
|
|
157
|
+
/** 任务分组(按依赖关系) */
|
|
158
|
+
export interface TaskGroups {
|
|
159
|
+
independent: ArtifactId[];
|
|
160
|
+
dependent: DependentTask[];
|
|
161
|
+
}
|
|
162
|
+
/** 有依赖的任务 */
|
|
163
|
+
export interface DependentTask {
|
|
164
|
+
taskId: ArtifactId;
|
|
165
|
+
dependencies: ArtifactId[];
|
|
166
|
+
}
|
|
167
|
+
/** 任务 → Profile 映射 */
|
|
168
|
+
export type TaskProfileMap = Record<string, string[]>;
|
|
169
|
+
/** 进度报告 */
|
|
170
|
+
export interface ProgressReport {
|
|
171
|
+
teamId: string;
|
|
172
|
+
taskId?: ArtifactId;
|
|
173
|
+
total: number;
|
|
174
|
+
completed: number;
|
|
175
|
+
running: number;
|
|
176
|
+
blocked: number;
|
|
177
|
+
failed: number;
|
|
178
|
+
idle: number;
|
|
179
|
+
agents: AgentStatusReport[];
|
|
180
|
+
}
|
|
181
|
+
/** Agent 状态报告 */
|
|
182
|
+
export interface AgentStatusReport {
|
|
183
|
+
agentId: string;
|
|
184
|
+
profileId: string;
|
|
185
|
+
status: AgentStatus;
|
|
186
|
+
task?: ArtifactId;
|
|
187
|
+
duration: number;
|
|
188
|
+
}
|
|
189
|
+
/** LLM Provider 配置 */
|
|
190
|
+
export type WorkflowLLMProvider = 'claude-code' | 'gemini-cli' | 'copilot-cli' | 'codex-cli' | 'deepseek' | 'anthropic' | 'openai' | 'ollama';
|
|
191
|
+
/** LLM 配置 */
|
|
192
|
+
export interface WorkflowLLMConfig {
|
|
193
|
+
provider: WorkflowLLMProvider;
|
|
194
|
+
model?: string;
|
|
195
|
+
apiKey?: string;
|
|
196
|
+
baseUrl?: string;
|
|
197
|
+
}
|
|
198
|
+
/** Workflow 输入参数 */
|
|
199
|
+
export interface WorkflowInput {
|
|
200
|
+
name: string;
|
|
201
|
+
required?: boolean;
|
|
202
|
+
default?: string;
|
|
203
|
+
description?: string;
|
|
204
|
+
}
|
|
205
|
+
/** Workflow 步骤 */
|
|
206
|
+
export interface WorkflowStepDef {
|
|
207
|
+
id: string;
|
|
208
|
+
role: string;
|
|
209
|
+
task: string;
|
|
210
|
+
output?: string;
|
|
211
|
+
depends_on?: string[];
|
|
212
|
+
retry?: number;
|
|
213
|
+
timeout?: number;
|
|
214
|
+
}
|
|
215
|
+
/** YAML Workflow 定义 */
|
|
216
|
+
export interface WorkflowDefinition {
|
|
217
|
+
name: string;
|
|
218
|
+
description?: string;
|
|
219
|
+
version?: string;
|
|
220
|
+
agents_dir?: string;
|
|
221
|
+
llm: WorkflowLLMConfig;
|
|
222
|
+
concurrency?: number;
|
|
223
|
+
inputs?: WorkflowInput[];
|
|
224
|
+
steps: WorkflowStepDef[];
|
|
225
|
+
output_dir?: string;
|
|
226
|
+
}
|
|
227
|
+
/** DAG 节点(用于执行图) */
|
|
228
|
+
export interface DAGNode {
|
|
229
|
+
stepId: string;
|
|
230
|
+
step: WorkflowStepDef;
|
|
231
|
+
dependencies: string[];
|
|
232
|
+
dependents: string[];
|
|
233
|
+
level: number;
|
|
234
|
+
}
|
|
235
|
+
/** DAG 执行图 */
|
|
236
|
+
export interface DAGExecutionGraph {
|
|
237
|
+
nodes: Map<string, DAGNode>;
|
|
238
|
+
levels: DAGNode[][];
|
|
239
|
+
maxLevel: number;
|
|
240
|
+
}
|
|
241
|
+
/** 步骤执行结果 */
|
|
242
|
+
export interface WorkflowStepResult {
|
|
243
|
+
stepId: string;
|
|
244
|
+
status: 'pending' | 'running' | 'completed' | 'failed' | 'skipped';
|
|
245
|
+
output?: string;
|
|
246
|
+
duration?: number;
|
|
247
|
+
retryCount?: number;
|
|
248
|
+
error?: string;
|
|
249
|
+
agentId?: string;
|
|
250
|
+
}
|
|
251
|
+
/** Workflow 执行结果 */
|
|
252
|
+
export interface WorkflowExecutionResult {
|
|
253
|
+
workflowName: string;
|
|
254
|
+
success: boolean;
|
|
255
|
+
totalSteps: number;
|
|
256
|
+
completedSteps: number;
|
|
257
|
+
failedSteps: number;
|
|
258
|
+
duration: number;
|
|
259
|
+
stepResults: Map<string, WorkflowStepResult>;
|
|
260
|
+
outputs: Record<string, string>;
|
|
261
|
+
executionLog: string[];
|
|
262
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agents/types.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qBAAqB"}
|