pm-orchestrator-enhancement
Version:
PM Orchestrator Enhancement - Multi-agent parallel execution system
293 lines • 5.96 kB
TypeScript
/**
* PM Orchestrator Enhancement - Subagent Type Definitions
*
* 各専門サブエージェントのインターフェース定義を提供します。
*/
import { Finding } from './core';
/**
* Rule Checkerサブエージェントへの入力
*/
export interface RuleCheckerInput {
taskType: string;
files: string[];
operation: 'git' | 'file' | 'api';
}
/**
* Rule Checkerサブエージェントからの出力
*/
export interface RuleCheckerOutput {
status: 'pass' | 'fail';
violations: RuleViolation[];
recommendations: string[];
}
/**
* ルール違反
*/
export interface RuleViolation {
ruleNumber: number;
ruleName: string;
severity: 'critical' | 'warning';
description: string;
location?: string;
}
/**
* Code Analyzerサブエージェントへの入力
*/
export interface CodeAnalyzerInput {
files: string[];
analysisType: 'similarity' | 'quality' | 'architecture';
context?: string;
}
/**
* Code Analyzerサブエージェントからの出力
*/
export interface CodeAnalyzerOutput {
status: 'completed';
findings: Finding[];
metrics: CodeMetrics;
recommendations: string[];
}
/**
* コードメトリクス
*/
export interface CodeMetrics {
complexity: number;
maintainability: number;
testCoverage: number;
}
/**
* Designerサブエージェントへの入力
*/
export interface DesignerInput {
requirements: string;
constraints: string[];
existingArchitecture?: string;
}
/**
* Designerサブエージェントからの出力
*/
export interface DesignerOutput {
status: 'completed';
designDoc: string;
architecture: ArchitectureDesign;
components: ComponentDesign[];
dataModels: DataModel[];
}
/**
* アーキテクチャ設計
*/
export interface ArchitectureDesign {
pattern: string;
layers: Layer[];
dependencies: Dependency[];
}
/**
* レイヤー定義
*/
export interface Layer {
name: string;
purpose: string;
components: string[];
}
/**
* 依存関係
*/
export interface Dependency {
from: string;
to: string;
type: 'required' | 'optional';
}
/**
* コンポーネント設計
*/
export interface ComponentDesign {
name: string;
purpose: string;
interfaces: string[];
}
/**
* データモデル
*/
export interface DataModel {
name: string;
fields: Field[];
}
/**
* フィールド定義
*/
export interface Field {
name: string;
type: string;
required: boolean;
}
/**
* Implementerサブエージェントへの入力
*/
export interface ImplementerInput {
design: string;
files: FileOperation[];
tests: boolean;
}
/**
* Implementerサブエージェントからの出力
*/
export interface ImplementerOutput {
status: 'success' | 'error';
filesCreated: string[];
filesModified: string[];
filesDeleted: string[];
linesAdded: number;
linesDeleted: number;
autoFixApplied: boolean;
errors?: string[];
}
/**
* ファイル操作
*/
export interface FileOperation {
path: string;
operation: 'create' | 'modify' | 'delete';
content?: string;
}
/**
* Testerサブエージェントへの入力
*/
export interface TesterInput {
implementation: string;
testType: 'unit' | 'integration' | 'e2e';
coverage: number;
}
/**
* Testerサブエージェントからの出力
*/
export interface TesterOutput {
status: 'completed';
testsCreated: string[];
testCases: TestCase[];
coverage: number;
}
/**
* テストケース
*/
export interface TestCase {
name: string;
type: string;
file: string;
assertions: number;
}
/**
* QAサブエージェントへの入力
*/
export interface QAInput {
files: string[];
checks: ('lint' | 'test' | 'typecheck' | 'build')[];
}
/**
* QAサブエージェントからの出力
*/
export interface QAOutput {
status: 'pass' | 'fail';
lint: CheckResult;
test: CheckResult;
typecheck: CheckResult;
build: CheckResult;
qualityScore: number;
}
/**
* チェック結果
*/
export interface CheckResult {
passed: boolean;
errors: number;
warnings: number;
details: string[];
}
/**
* CICD Engineerサブエージェントへの入力
*/
export interface CICDEngineerInput {
platform: 'github' | 'gitlab' | 'jenkins';
pipeline: PipelineConfig;
}
/**
* CICD Engineerサブエージェントからの出力
*/
export interface CICDEngineerOutput {
status: 'completed';
configFiles: string[];
workflows: Workflow[];
validationResult: ValidationResult;
}
/**
* パイプライン設定
*/
export interface PipelineConfig {
stages: Stage[];
triggers: Trigger[];
environment: Record<string, string>;
}
/**
* ステージ定義
*/
export interface Stage {
name: string;
steps: Step[];
}
/**
* ステップ定義
*/
export interface Step {
name: string;
command: string;
}
/**
* トリガー定義
*/
export interface Trigger {
type: 'push' | 'pr' | 'schedule';
branches?: string[];
}
/**
* ワークフロー定義
*/
export interface Workflow {
name: string;
file: string;
}
/**
* バリデーション結果
*/
export interface ValidationResult {
valid: boolean;
errors: string[];
}
/**
* Reporterサブエージェントへの入力
*/
export interface ReporterInput {
subagentResults: any[];
executionLog: any;
}
/**
* Reporterサブエージェントからの出力
*/
export interface ReporterOutput {
status: 'success' | 'warning' | 'error';
title: string;
summary: string;
details: ReportDetails;
nextSteps: string[];
userFriendlyMessage: string;
}
/**
* レポート詳細
*/
export interface ReportDetails {
taskOverview: string;
executedSteps: string[];
changes: string[];
verification: string[];
warnings: string[];
errors: string[];
}
//# sourceMappingURL=subagents.d.ts.map