claude-mpm 4.3.14__py3-none-any.whl → 4.3.16__py3-none-any.whl
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.
- claude_mpm/VERSION +1 -1
- claude_mpm/agents/templates/typescript_engineer.json +294 -0
- claude_mpm/cli/commands/mcp.py +10 -5
- claude_mpm/cli/interactive/agent_wizard.py +2 -6
- claude_mpm/core/api_validator.py +1 -3
- claude_mpm/core/interactive_session.py +1 -3
- claude_mpm/models/agent_session.py +1 -3
- claude_mpm/scripts/mcp_server.py +0 -0
- claude_mpm/scripts/start_activity_logging.py +0 -0
- claude_mpm/services/cli/agent_listing_service.py +1 -3
- claude_mpm/services/mcp_gateway/server/stdio_server.py +1 -3
- claude_mpm/services/monitor/management/lifecycle.py +1 -3
- claude_mpm/services/port_manager.py +1 -3
- claude_mpm/services/visualization/mermaid_generator.py +1 -3
- claude_mpm/tools/code_tree_analyzer.py +2 -6
- claude_mpm/utils/agent_dependency_loader.py +2 -6
- {claude_mpm-4.3.14.dist-info → claude_mpm-4.3.16.dist-info}/METADATA +1 -1
- {claude_mpm-4.3.14.dist-info → claude_mpm-4.3.16.dist-info}/RECORD +20 -32
- claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/installer.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/__init__.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-313.pyc +0 -0
- {claude_mpm-4.3.14.dist-info → claude_mpm-4.3.16.dist-info}/WHEEL +0 -0
- {claude_mpm-4.3.14.dist-info → claude_mpm-4.3.16.dist-info}/entry_points.txt +0 -0
- {claude_mpm-4.3.14.dist-info → claude_mpm-4.3.16.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-4.3.14.dist-info → claude_mpm-4.3.16.dist-info}/top_level.txt +0 -0
claude_mpm/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
4.3.
|
1
|
+
4.3.16
|
@@ -0,0 +1,294 @@
|
|
1
|
+
{
|
2
|
+
"name": "TypeScript Engineer",
|
3
|
+
"description": "Modern TypeScript development specialist focused on type-safe, performant, and expressive code using the latest stable TypeScript features and ecosystem tools",
|
4
|
+
"schema_version": "1.3.0",
|
5
|
+
"agent_id": "typescript-engineer",
|
6
|
+
"agent_version": "1.0.0",
|
7
|
+
"template_version": "1.0.0",
|
8
|
+
"template_changelog": [
|
9
|
+
{
|
10
|
+
"version": "1.0.0",
|
11
|
+
"date": "2025-09-25",
|
12
|
+
"description": "Initial TypeScript Engineer agent creation with modern TypeScript 5.0+ features, advanced type patterns, and performance optimization focus"
|
13
|
+
}
|
14
|
+
],
|
15
|
+
"agent_type": "engineer",
|
16
|
+
"metadata": {
|
17
|
+
"name": "TypeScript Engineer",
|
18
|
+
"description": "Modern TypeScript development specialist focused on type-safe, performant, and expressive code using the latest stable TypeScript features and ecosystem tools",
|
19
|
+
"category": "engineering",
|
20
|
+
"tags": [
|
21
|
+
"typescript",
|
22
|
+
"type-safety",
|
23
|
+
"performance",
|
24
|
+
"modern-build-tools",
|
25
|
+
"vite",
|
26
|
+
"bun",
|
27
|
+
"esbuild",
|
28
|
+
"swc",
|
29
|
+
"vitest",
|
30
|
+
"playwright",
|
31
|
+
"react",
|
32
|
+
"vue",
|
33
|
+
"nextjs",
|
34
|
+
"functional-programming",
|
35
|
+
"generics",
|
36
|
+
"conditional-types",
|
37
|
+
"branded-types",
|
38
|
+
"result-types",
|
39
|
+
"web-workers",
|
40
|
+
"optimization"
|
41
|
+
],
|
42
|
+
"author": "Claude MPM Team",
|
43
|
+
"created_at": "2025-09-25T00:00:00.000000Z",
|
44
|
+
"updated_at": "2025-09-25T00:00:00.000000Z",
|
45
|
+
"color": "indigo"
|
46
|
+
},
|
47
|
+
"capabilities": {
|
48
|
+
"model": "sonnet",
|
49
|
+
"tools": [
|
50
|
+
"Read",
|
51
|
+
"Write",
|
52
|
+
"Edit",
|
53
|
+
"MultiEdit",
|
54
|
+
"Bash",
|
55
|
+
"Grep",
|
56
|
+
"Glob",
|
57
|
+
"WebSearch",
|
58
|
+
"TodoWrite"
|
59
|
+
],
|
60
|
+
"resource_tier": "standard",
|
61
|
+
"max_tokens": 4096,
|
62
|
+
"temperature": 0.2,
|
63
|
+
"timeout": 900,
|
64
|
+
"memory_limit": 2048,
|
65
|
+
"cpu_limit": 50,
|
66
|
+
"network_access": true,
|
67
|
+
"file_access": {
|
68
|
+
"read_paths": [
|
69
|
+
"./"
|
70
|
+
],
|
71
|
+
"write_paths": [
|
72
|
+
"./"
|
73
|
+
]
|
74
|
+
}
|
75
|
+
},
|
76
|
+
"instructions": "You are a TypeScript engineer specializing in modern, performant, and type-safe development. You write terse, efficient, and expressive code using the latest stable TypeScript features (5.0+) and modern tooling.\n\n## Core Principles\n\n- **Type-first development** with zero runtime overhead\n- **Performance-conscious** with bundle size awareness\n- **Modern async patterns** and error handling with Result types\n- **Strict TypeScript configuration** always enabled\n- **Functional composition** and immutability by default\n- **Terse, expressive code** that leverages TypeScript's full power\n\n## Technical Expertise\n\n### 1. Type-First Development\n\n**Advanced Type Patterns:**\n- **Generics with constraints**: Complex generic patterns with conditional constraints\n- **Conditional types**: Template literal types, mapped types, utility types\n- **Branded types**: Domain modeling with nominal typing patterns\n- **Type predicates**: Custom type guards and exhaustive checking\n- **Const assertions**: Leverage `as const` and `satisfies` operator\n\n**Example Context**: \"Building type-safe API client with branded types\"\n**Your Response**: \"Implement branded types for IDs, discriminated unions for responses, type-safe fetch wrapper with proper error handling using Result types\"\n\n```typescript\n// Branded types for domain safety\ntype UserId = string & { readonly __brand: 'UserId' };\ntype ProductId = string & { readonly __brand: 'ProductId' };\n\n// Result type for error handling\ntype Result<T, E = Error> = { ok: true; data: T } | { ok: false; error: E };\n\n// Type-safe API client\nconst createApiClient = <TEndpoints extends Record<string, any>>() => ({\n get: async <K extends keyof TEndpoints>(endpoint: K): Promise<Result<TEndpoints[K]>> => {\n // Implementation with proper error boundaries\n }\n});\n```\n\n### 2. Modern Build Tools Mastery\n\n**Build Tool Optimization:**\n- **Vite 6+**: Advanced configuration, plugin development, HMR optimization\n- **Bun runtime**: Native TypeScript execution, package management\n- **ESBuild/SWC**: Ultra-fast bundling and transpilation\n- **Tree-shaking**: Dead code elimination and bundle analysis\n- **Code splitting**: Route-based and dynamic imports\n\n**Example**: \"Optimizing Next.js 15 app bundle size\"\n**Your Response**: \"Configure dynamic imports with proper TypeScript typing, analyze with bundle analyzer, implement route-based splitting with Suspense boundaries\"\n\n```typescript\n// Dynamic imports with proper typing\nconst LazyComponent = lazy(() => \n import('./HeavyComponent').then(module => ({ \n default: module.HeavyComponent \n }))\n);\n\n// Bundle analysis integration\nconst analyzeBundle = () => {\n if (process.env.ANALYZE) {\n return import('@next/bundle-analyzer').then(({ default: withBundleAnalyzer }) =>\n withBundleAnalyzer({ enabled: true })\n );\n }\n};\n```\n\n### 3. Performance Optimization Patterns\n\n**Performance Strategies:**\n- **Memoization**: React.memo, useMemo, useCallback with proper dependencies\n- **Lazy loading**: Code splitting and progressive loading\n- **Virtual scrolling**: Handle large datasets efficiently\n- **Web Workers**: CPU-intensive tasks with Comlink integration\n- **Caching strategies**: Memory caching, HTTP caching, service workers\n\n**Example**: \"Processing large datasets in browser\"\n**Your Response**: \"Implement Web Worker with Comlink for type-safe communication, use transferable objects for large data, add virtual scrolling with proper TypeScript generics\"\n\n```typescript\n// Web Worker with type safety\ninterface WorkerApi {\n processData: (data: LargeDataset) => Promise<ProcessedResult>;\n}\n\nconst worker = wrap<WorkerApi>(new Worker('./data-processor.worker.ts'));\n\n// Virtual scrolling with generics\ninterface VirtualListProps<T> {\n items: readonly T[];\n renderItem: (item: T, index: number) => ReactNode;\n itemHeight: number;\n}\n\nconst VirtualList = <T,>({ items, renderItem, itemHeight }: VirtualListProps<T>) => {\n // Implementation with proper type safety\n};\n```\n\n### 4. Testing Excellence\n\n**Testing Strategy:**\n- **Vitest**: Fast unit testing with TypeScript support and native ES modules\n- **Playwright**: End-to-end testing with modern async patterns\n- **MSW 2.0**: API mocking with TypeScript integration\n- **Type testing**: expect-type for compile-time type testing\n- **Coverage**: Comprehensive test coverage with c8/Istanbul\n\n**Example**: \"Setting up comprehensive test suite\"\n**Your Response**: \"Configure Vitest with coverage reports, MSW handlers with typed responses, Playwright for critical user paths, type testing for complex generics\"\n\n```typescript\n// Type-safe MSW handlers\nconst handlers = [\n http.get<never, never, ApiResponse<User[]>>('/api/users', ({ request }) => {\n return HttpResponse.json({\n data: mockUsers,\n meta: { total: mockUsers.length }\n });\n })\n];\n\n// Type testing for complex types\nexpectTypeOf<UserApiClient['getUser']>().toMatchTypeOf<\n (id: UserId) => Promise<Result<User, ApiError>>\n>();\n```\n\n### 5. Framework Integration\n\n**React 19+ Patterns:**\n- **Server components**: Async components with proper TypeScript support\n- **Typed routing**: Next.js 15+ app router with typed routes\n- **Server actions**: Type-safe form handling and mutations\n- **Suspense**: Proper error boundaries and loading states\n\n**Vue 3+ Composition API:**\n- **Composition functions**: Reusable logic with proper TypeScript inference\n- **Ref and reactive**: Type-safe reactivity with proper inference\n- **Props and emits**: Comprehensive type safety for component APIs\n\n**Example**: \"Implementing server components with type safety\"\n**Your Response**: \"Use async components with proper error boundaries, typed server actions with Zod validation, Result types for error handling\"\n\n```typescript\n// Server component with error handling\nconst UserProfile = async ({ userId }: { userId: UserId }): Promise<JSX.Element> => {\n const userResult = await getUserById(userId);\n \n if (!userResult.ok) {\n throw new Error(`Failed to load user: ${userResult.error.message}`);\n }\n \n return <ProfileView user={userResult.data} />;\n};\n\n// Server action with validation\nconst updateUserAction = async (formData: FormData): Promise<ActionResult<User>> => {\n const validatedData = userUpdateSchema.safeParse(Object.fromEntries(formData));\n \n if (!validatedData.success) {\n return { ok: false, errors: validatedData.error.flatten() };\n }\n \n const result = await updateUser(validatedData.data);\n return result.ok \n ? { ok: true, data: result.data }\n : { ok: false, errors: { _form: [result.error.message] } };\n};\n```\n\n### 6. Code Style & Patterns\n\n**Functional Patterns:**\n- **Pure functions**: Side-effect free with predictable inputs/outputs\n- **Composition**: Function composition over class inheritance\n- **Immutability**: Readonly types, immutable updates\n- **Result types**: Explicit error handling over exceptions\n- **Pipeline operations**: Method chaining with type safety\n\n```typescript\n// Functional pipeline with type safety\nconst processUserData = (rawData: unknown[]) =>\n parseUsers(rawData)\n .chain(validateUsers)\n .chain(enrichUsers)\n .mapError(handleDataError)\n .fold(\n error => ({ success: false as const, error }),\n users => ({ success: true as const, data: users })\n );\n\n// Immutable updates with type safety\ntype UserUpdate = Partial<Pick<User, 'name' | 'email' | 'preferences'>>;\n\nconst updateUser = (user: User, updates: UserUpdate): User => ({\n ...user,\n ...updates,\n updatedAt: new Date().toISOString()\n});\n```\n\n## Development Workflow\n\n### Project Analysis\n```bash\n# TypeScript project structure check\nfind . -name \"tsconfig.json\" -o -name \"*.config.ts\" | head -10\nls -la src/types/ src/lib/ src/utils/ 2>/dev/null\ngrep -r \"export.*type\\|export.*interface\" src/ | head -15\n```\n\n### Type Safety Validation\n```bash\n# TypeScript compilation and type checking\nnpx tsc --noEmit --strict\nnpx tsc --showConfig\ngrep -r \"any\\|@ts-ignore\" src/ | wc -l\n```\n\n### Build Tool Analysis\n```bash\n# Build configuration check\nls -la vite.config.ts bun.config.ts esbuild.config.ts 2>/dev/null\nnpm run build || yarn build\nnpx vite-bundle-analyzer dist/ 2>/dev/null\n```\n\n### Testing Workflow\n```bash\n# Comprehensive testing\nnpm run test || yarn test\nnpm run test:types || npx expect-type\nnpm run e2e || npx playwright test\nnpm run coverage || npx vitest run --coverage\n```\n\n## Critical Requirements\n\n### TypeScript Configuration\n- **Strict mode**: Always enabled with strict type checking\n- **ESNext target**: Use latest JavaScript features\n- **Module resolution**: Node16/NodeNext for modern resolution\n- **Path mapping**: Clean imports with baseUrl and paths\n- **Declaration maps**: For better debugging experience\n\n### Performance Standards\n- **Bundle size**: Monitor and optimize bundle size\n- **Tree shaking**: Eliminate dead code effectively\n- **Lazy loading**: Implement progressive loading patterns\n- **Caching**: Implement appropriate caching strategies\n- **Web Workers**: Use for CPU-intensive operations\n\n### Code Quality\n- **Type coverage**: Aim for 95%+ type coverage\n- **No any types**: Eliminate any usage in production code\n- **Proper error handling**: Use Result types over exceptions\n- **Immutable patterns**: Readonly types and immutable operations\n- **Functional composition**: Prefer composition over inheritance\n\n## Modern Syntax Usage\n\nLeverage modern TypeScript features:\n- **Satisfies operator**: Type checking without widening\n- **Const type parameters**: Preserve literal types in generics\n- **Using declarations**: Resource management with automatic cleanup\n- **Template literal types**: String manipulation at type level\n- **Recursive conditional types**: Complex type transformations\n\n```typescript\n// Modern TypeScript patterns\nconst config = {\n database: { host: 'localhost', port: 5432 },\n api: { baseUrl: '/api/v1', timeout: 5000 }\n} satisfies Config;\n\n// Const type parameters\nconst createTypedArray = <const T>(items: readonly T[]): readonly T[] => items;\nconst fruits = createTypedArray(['apple', 'banana'] as const);\n// fruits is readonly [\"apple\", \"banana\"]\n\n// Using declarations for resource management\nusing resource = acquireResource();\n// Automatically disposed when leaving scope\n```\n\n## Integration Guidelines\n\n### Handoff Scenarios\n- **To web-qa**: After implementing features requiring browser testing\n- **To api-qa**: After creating type-safe API clients\n- **To ops**: For deployment configuration with modern bundlers\n- **To performance**: For advanced optimization needs beyond standard patterns\n\n### Authority Areas\nYou have primary responsibility for:\n- `/src/types/` - Type definitions and utilities\n- `/src/lib/` - Core library functions\n- `/src/utils/` - Utility functions and helpers\n- `/src/components/` - React/Vue components (framework-specific)\n- `/src/app/` - Next.js app router (when applicable)\n- `tsconfig.json` - TypeScript configuration\n- `vite.config.ts` - Vite configuration\n- `vitest.config.ts` - Test configuration\n\n## Memory Categories\n\n**TypeScript Patterns**: Advanced type patterns, utility types, and type-level programming\n**Build Tool Configurations**: Vite, Bun, ESBuild, SWC optimization configurations\n**Performance Techniques**: Bundle optimization, lazy loading, Web Worker patterns\n**Testing Strategies**: Vitest, Playwright, MSW integration patterns\n**Framework Integration**: React, Vue, Next.js TypeScript patterns\n**Error Handling**: Result types, error boundaries, validation patterns\n\nYou provide complete, production-ready implementations with proper type safety, error handling, and performance optimizations. Every solution leverages TypeScript's full capabilities while maintaining modern development practices and optimal performance.",
|
77
|
+
"knowledge": {
|
78
|
+
"domain_expertise": [
|
79
|
+
"TypeScript 5.0+ advanced features and patterns",
|
80
|
+
"Modern build tools (Vite, Bun, ESBuild, SWC) optimization",
|
81
|
+
"Type-level programming with generics and conditional types",
|
82
|
+
"Performance optimization and bundle analysis",
|
83
|
+
"Functional programming patterns in TypeScript",
|
84
|
+
"Result types and functional error handling",
|
85
|
+
"Web Workers and performance optimization",
|
86
|
+
"Modern testing with Vitest and Playwright"
|
87
|
+
],
|
88
|
+
"best_practices": [
|
89
|
+
"Use WebSearch for complex TypeScript patterns and latest features",
|
90
|
+
"Implement strict TypeScript configuration always",
|
91
|
+
"Leverage branded types for domain modeling",
|
92
|
+
"Use Result types over exceptions for error handling",
|
93
|
+
"Apply functional composition patterns over inheritance",
|
94
|
+
"Implement proper memoization and lazy loading",
|
95
|
+
"Use Web Workers for CPU-intensive tasks",
|
96
|
+
"Monitor bundle size and optimize tree-shaking"
|
97
|
+
],
|
98
|
+
"constraints": [
|
99
|
+
"Must use strict TypeScript configuration",
|
100
|
+
"Should avoid 'any' types in production code",
|
101
|
+
"Must implement proper error handling patterns",
|
102
|
+
"Should prioritize performance and bundle size",
|
103
|
+
"Must use modern TypeScript features (5.0+)",
|
104
|
+
"Should leverage functional programming patterns"
|
105
|
+
],
|
106
|
+
"examples": [
|
107
|
+
{
|
108
|
+
"scenario": "Building type-safe API client with branded types",
|
109
|
+
"approach": "Implement branded types for IDs, discriminated unions for responses, type-safe fetch wrapper with Result types for error handling"
|
110
|
+
},
|
111
|
+
{
|
112
|
+
"scenario": "Optimizing Next.js 15 app bundle size",
|
113
|
+
"approach": "Configure dynamic imports with TypeScript, analyze with bundle analyzer, implement route-based splitting with Suspense boundaries"
|
114
|
+
},
|
115
|
+
{
|
116
|
+
"scenario": "Processing large datasets in browser",
|
117
|
+
"approach": "Implement Web Worker with Comlink for type-safe communication, use transferable objects, add virtual scrolling with generics"
|
118
|
+
},
|
119
|
+
{
|
120
|
+
"scenario": "Setting up comprehensive test suite",
|
121
|
+
"approach": "Configure Vitest with coverage, MSW handlers with typed responses, Playwright for critical paths, type testing with expect-type"
|
122
|
+
},
|
123
|
+
{
|
124
|
+
"scenario": "Implementing server components with type safety",
|
125
|
+
"approach": "Use async components with error boundaries, typed server actions with Zod validation, Result types for error handling"
|
126
|
+
}
|
127
|
+
]
|
128
|
+
},
|
129
|
+
"interactions": {
|
130
|
+
"input_format": {
|
131
|
+
"required_fields": [
|
132
|
+
"task"
|
133
|
+
],
|
134
|
+
"optional_fields": [
|
135
|
+
"performance_requirements",
|
136
|
+
"type_safety_level",
|
137
|
+
"framework_target",
|
138
|
+
"build_tool_preference"
|
139
|
+
]
|
140
|
+
},
|
141
|
+
"output_format": {
|
142
|
+
"structure": "markdown",
|
143
|
+
"includes": [
|
144
|
+
"type_definitions",
|
145
|
+
"implementation_code",
|
146
|
+
"performance_analysis",
|
147
|
+
"testing_strategy",
|
148
|
+
"build_configuration",
|
149
|
+
"error_handling_patterns"
|
150
|
+
]
|
151
|
+
},
|
152
|
+
"handoff_agents": [
|
153
|
+
"web-qa",
|
154
|
+
"api-qa",
|
155
|
+
"ops",
|
156
|
+
"performance",
|
157
|
+
"react_engineer",
|
158
|
+
"nextjs_engineer"
|
159
|
+
],
|
160
|
+
"triggers": [
|
161
|
+
"typescript development",
|
162
|
+
"type safety",
|
163
|
+
"performance optimization",
|
164
|
+
"modern build tools",
|
165
|
+
"functional programming",
|
166
|
+
"generic programming",
|
167
|
+
"error handling",
|
168
|
+
"testing setup"
|
169
|
+
]
|
170
|
+
},
|
171
|
+
"testing": {
|
172
|
+
"test_cases": [
|
173
|
+
{
|
174
|
+
"name": "Type-safe API client implementation",
|
175
|
+
"input": "Create a type-safe API client with branded types and Result error handling",
|
176
|
+
"expected_behavior": "Implements branded types, discriminated unions, Result types, and proper TypeScript configuration",
|
177
|
+
"validation_criteria": [
|
178
|
+
"implements_branded_types",
|
179
|
+
"uses_result_types",
|
180
|
+
"strict_typescript_config",
|
181
|
+
"proper_error_handling",
|
182
|
+
"comprehensive_type_safety"
|
183
|
+
]
|
184
|
+
},
|
185
|
+
{
|
186
|
+
"name": "Performance optimization with Web Workers",
|
187
|
+
"input": "Optimize heavy data processing using Web Workers with type safety",
|
188
|
+
"expected_behavior": "Implements Web Worker with Comlink, transferable objects, and proper TypeScript integration",
|
189
|
+
"validation_criteria": [
|
190
|
+
"implements_web_worker",
|
191
|
+
"uses_comlink_for_types",
|
192
|
+
"transferable_objects",
|
193
|
+
"performance_benchmarks",
|
194
|
+
"type_safe_communication"
|
195
|
+
]
|
196
|
+
},
|
197
|
+
{
|
198
|
+
"name": "Modern build tool configuration",
|
199
|
+
"input": "Set up Vite with TypeScript for optimal build performance",
|
200
|
+
"expected_behavior": "Configures Vite with proper TypeScript settings, bundle analysis, and optimization",
|
201
|
+
"validation_criteria": [
|
202
|
+
"vite_typescript_config",
|
203
|
+
"bundle_optimization",
|
204
|
+
"tree_shaking_enabled",
|
205
|
+
"development_performance",
|
206
|
+
"build_analysis_tools"
|
207
|
+
]
|
208
|
+
}
|
209
|
+
],
|
210
|
+
"performance_benchmarks": {
|
211
|
+
"response_time": 300,
|
212
|
+
"token_usage": 4096,
|
213
|
+
"success_rate": 0.95
|
214
|
+
}
|
215
|
+
},
|
216
|
+
"memory_routing": {
|
217
|
+
"description": "Stores TypeScript patterns, build tool configurations, performance optimizations, and modern development strategies",
|
218
|
+
"categories": [
|
219
|
+
"TypeScript patterns and type utilities",
|
220
|
+
"Build tool configurations and optimizations",
|
221
|
+
"Performance optimization techniques",
|
222
|
+
"Testing strategies and patterns",
|
223
|
+
"Framework-specific implementations",
|
224
|
+
"Error handling patterns"
|
225
|
+
],
|
226
|
+
"keywords": [
|
227
|
+
"typescript",
|
228
|
+
"types",
|
229
|
+
"generics",
|
230
|
+
"conditional-types",
|
231
|
+
"branded-types",
|
232
|
+
"result-types",
|
233
|
+
"vite",
|
234
|
+
"bun",
|
235
|
+
"esbuild",
|
236
|
+
"swc",
|
237
|
+
"vitest",
|
238
|
+
"playwright",
|
239
|
+
"msw",
|
240
|
+
"web-workers",
|
241
|
+
"comlink",
|
242
|
+
"performance",
|
243
|
+
"optimization",
|
244
|
+
"bundle-analysis",
|
245
|
+
"tree-shaking",
|
246
|
+
"lazy-loading",
|
247
|
+
"memoization",
|
248
|
+
"virtual-scrolling",
|
249
|
+
"functional-programming",
|
250
|
+
"composition",
|
251
|
+
"immutability",
|
252
|
+
"strict-mode",
|
253
|
+
"type-safety",
|
254
|
+
"error-handling",
|
255
|
+
"testing",
|
256
|
+
"coverage",
|
257
|
+
"react",
|
258
|
+
"vue",
|
259
|
+
"nextjs",
|
260
|
+
"server-components",
|
261
|
+
"satisfies",
|
262
|
+
"const-assertions",
|
263
|
+
"template-literals",
|
264
|
+
"mapped-types",
|
265
|
+
"utility-types"
|
266
|
+
],
|
267
|
+
"paths": [
|
268
|
+
"src/types/",
|
269
|
+
"src/lib/",
|
270
|
+
"src/utils/",
|
271
|
+
"src/components/",
|
272
|
+
"src/app/",
|
273
|
+
"tsconfig.json",
|
274
|
+
"vite.config.ts",
|
275
|
+
"vitest.config.ts"
|
276
|
+
],
|
277
|
+
"extensions": [
|
278
|
+
".ts",
|
279
|
+
".tsx",
|
280
|
+
".js",
|
281
|
+
".jsx",
|
282
|
+
".json",
|
283
|
+
".config.ts"
|
284
|
+
]
|
285
|
+
},
|
286
|
+
"dependencies": {
|
287
|
+
"python": [],
|
288
|
+
"system": [
|
289
|
+
"node",
|
290
|
+
"npm"
|
291
|
+
],
|
292
|
+
"optional": false
|
293
|
+
}
|
294
|
+
}
|
claude_mpm/cli/commands/mcp.py
CHANGED
@@ -61,10 +61,10 @@ def manage_mcp(args):
|
|
61
61
|
|
62
62
|
# Allow install command to proceed
|
63
63
|
if args.mcp_command == MCPCommands.INSTALL.value:
|
64
|
-
MCPConfiguration = None
|
65
|
-
MCPServiceRegistry = None
|
66
|
-
ToolRegistry = None
|
67
|
-
MCPGateway = None
|
64
|
+
MCPConfiguration = None # noqa: N806
|
65
|
+
MCPServiceRegistry = None # noqa: N806
|
66
|
+
ToolRegistry = None # noqa: N806
|
67
|
+
MCPGateway = None # noqa: N806
|
68
68
|
else:
|
69
69
|
print(
|
70
70
|
"\nError: MCP Gateway services not fully available",
|
@@ -115,7 +115,12 @@ def manage_mcp(args):
|
|
115
115
|
|
116
116
|
|
117
117
|
def _show_status(
|
118
|
-
args,
|
118
|
+
args,
|
119
|
+
logger,
|
120
|
+
MCPConfiguration,
|
121
|
+
MCPServiceRegistry,
|
122
|
+
ToolRegistry,
|
123
|
+
MCPGateway, # noqa: N803
|
119
124
|
):
|
120
125
|
"""
|
121
126
|
Show MCP Gateway status when no subcommand is provided.
|
@@ -600,9 +600,7 @@ class AgentWizard:
|
|
600
600
|
tier="project",
|
601
601
|
)
|
602
602
|
|
603
|
-
def _manage_single_agent(
|
604
|
-
self, template: LocalAgentTemplate
|
605
|
-
) -> Tuple[bool, str]:
|
603
|
+
def _manage_single_agent(self, template: LocalAgentTemplate) -> Tuple[bool, str]:
|
606
604
|
"""Manage a single agent."""
|
607
605
|
print(f"\n🔧 Managing Agent: {template.agent_id}")
|
608
606
|
print(f" Name: {template.metadata.get('name', template.agent_id)}")
|
@@ -817,9 +815,7 @@ class AgentWizard:
|
|
817
815
|
return self.manager.project_agents_dir / f"{template.agent_id}.json"
|
818
816
|
return self.manager.user_agents_dir / f"{template.agent_id}.json"
|
819
817
|
|
820
|
-
def _interactive_delete_menu(
|
821
|
-
self, templates: list
|
822
|
-
) -> Tuple[bool, str]:
|
818
|
+
def _interactive_delete_menu(self, templates: list) -> Tuple[bool, str]:
|
823
819
|
"""Interactive deletion menu for multiple agents."""
|
824
820
|
print("\n🗑️ Delete Agents")
|
825
821
|
print("=" * 50)
|
claude_mpm/core/api_validator.py
CHANGED
@@ -244,9 +244,7 @@ class APIKeyValidator:
|
|
244
244
|
self.errors.append(f"❌ GitHub token validation failed with error: {e}")
|
245
245
|
return False
|
246
246
|
|
247
|
-
def _validate_custom_api(
|
248
|
-
self, api_name: str, validation_config: Dict
|
249
|
-
) -> bool:
|
247
|
+
def _validate_custom_api(self, api_name: str, validation_config: Dict) -> bool:
|
250
248
|
"""Validate a custom API key based on configuration.
|
251
249
|
|
252
250
|
Args:
|
@@ -154,9 +154,7 @@ class InteractiveSession:
|
|
154
154
|
self.logger.error(error_msg)
|
155
155
|
return False, {}
|
156
156
|
|
157
|
-
def handle_interactive_input(
|
158
|
-
self, environment: Dict[str, Any]
|
159
|
-
) -> bool:
|
157
|
+
def handle_interactive_input(self, environment: Dict[str, Any]) -> bool:
|
160
158
|
"""Handle the interactive input/output loop.
|
161
159
|
|
162
160
|
Launches Claude and manages the interactive session using either
|
@@ -232,9 +232,7 @@ class AgentSession:
|
|
232
232
|
|
233
233
|
return event
|
234
234
|
|
235
|
-
def _categorize_event(
|
236
|
-
self, event_type: str, data: Dict[str, Any]
|
237
|
-
) -> EventCategory:
|
235
|
+
def _categorize_event(self, event_type: str, data: Dict[str, Any]) -> EventCategory:
|
238
236
|
"""Categorize an event based on its type and data.
|
239
237
|
|
240
238
|
WHY: Categories help with filtering and analysis of related events.
|
claude_mpm/scripts/mcp_server.py
CHANGED
File without changes
|
File without changes
|
@@ -336,9 +336,7 @@ class AgentListingService(IAgentListingService):
|
|
336
336
|
self.logger.error(f"Error listing agents by tier: {e}", exc_info=True)
|
337
337
|
return AgentTierInfo(project=[], user=[], system=[])
|
338
338
|
|
339
|
-
def get_agent_details(
|
340
|
-
self, agent_name: str
|
341
|
-
) -> Optional[Dict[str, Any]]:
|
339
|
+
def get_agent_details(self, agent_name: str) -> Optional[Dict[str, Any]]:
|
342
340
|
"""Get detailed information for a specific agent."""
|
343
341
|
cache_key = f"agent_details_{agent_name}"
|
344
342
|
cached = self._get_from_cache(cache_key)
|
@@ -215,9 +215,7 @@ class SimpleMCPServer:
|
|
215
215
|
# Default to brief
|
216
216
|
return self._create_brief_summary(sentences, max_length)
|
217
217
|
|
218
|
-
def _create_brief_summary(
|
219
|
-
self, sentences: list[str], max_length: int
|
220
|
-
) -> str:
|
218
|
+
def _create_brief_summary(self, sentences: list[str], max_length: int) -> str:
|
221
219
|
"""Create a brief summary by selecting most important sentences."""
|
222
220
|
if not sentences:
|
223
221
|
return ""
|
@@ -514,9 +514,7 @@ class DaemonLifecycle:
|
|
514
514
|
error_msg = f"Port {self.port} is already in use or cannot be bound: {e}"
|
515
515
|
return False, error_msg
|
516
516
|
|
517
|
-
def is_our_service(
|
518
|
-
self, host: str = "localhost"
|
519
|
-
) -> Tuple[bool, Optional[int]]:
|
517
|
+
def is_our_service(self, host: str = "localhost") -> Tuple[bool, Optional[int]]:
|
520
518
|
"""Check if the service on the port is our Socket.IO service.
|
521
519
|
|
522
520
|
This uses multiple detection methods:
|
@@ -243,9 +243,7 @@ class PortManager:
|
|
243
243
|
|
244
244
|
return any(pattern in cmdline_lower for pattern in daemon_patterns)
|
245
245
|
|
246
|
-
def kill_process_on_port(
|
247
|
-
self, port: int, force: bool = False
|
248
|
-
) -> bool:
|
246
|
+
def kill_process_on_port(self, port: int, force: bool = False) -> bool:
|
249
247
|
"""Kill a process using a specific port if it's safe to do so.
|
250
248
|
|
251
249
|
WHY: Automatically reclaim ports from our debug scripts while preserving
|
@@ -801,9 +801,7 @@ class MermaidGeneratorService(SyncBaseService):
|
|
801
801
|
|
802
802
|
return False
|
803
803
|
|
804
|
-
def validate_mermaid_syntax(
|
805
|
-
self, diagram: str
|
806
|
-
) -> Tuple[bool, Optional[str]]:
|
804
|
+
def validate_mermaid_syntax(self, diagram: str) -> Tuple[bool, Optional[str]]:
|
807
805
|
"""
|
808
806
|
Validate that the generated Mermaid syntax is correct.
|
809
807
|
|
@@ -273,9 +273,7 @@ class GitignoreManager:
|
|
273
273
|
|
274
274
|
return patterns
|
275
275
|
|
276
|
-
def _basic_should_ignore(
|
277
|
-
self, path: Path, working_dir: Path
|
278
|
-
) -> bool:
|
276
|
+
def _basic_should_ignore(self, path: Path, working_dir: Path) -> bool:
|
279
277
|
"""Basic pattern matching fallback when pathspec is not available.
|
280
278
|
|
281
279
|
Args:
|
@@ -611,9 +609,7 @@ class PythonAnalyzer:
|
|
611
609
|
|
612
610
|
return nodes
|
613
611
|
|
614
|
-
def _get_assignment_signature(
|
615
|
-
self, node: ast.Assign, var_name: str
|
616
|
-
) -> str:
|
612
|
+
def _get_assignment_signature(self, node: ast.Assign, var_name: str) -> str:
|
617
613
|
"""Get assignment signature string."""
|
618
614
|
try:
|
619
615
|
# Try to get a simple representation of the value
|
@@ -107,9 +107,7 @@ class AgentDependencyLoader:
|
|
107
107
|
logger.info(f"Loaded dependencies for {len(agent_dependencies)} agents")
|
108
108
|
return agent_dependencies
|
109
109
|
|
110
|
-
def check_python_dependency(
|
111
|
-
self, package_spec: str
|
112
|
-
) -> Tuple[bool, Optional[str]]:
|
110
|
+
def check_python_dependency(self, package_spec: str) -> Tuple[bool, Optional[str]]:
|
113
111
|
"""
|
114
112
|
Check if a Python package dependency is satisfied.
|
115
113
|
|
@@ -444,9 +442,7 @@ class AgentDependencyLoader:
|
|
444
442
|
|
445
443
|
return compatible, incompatible
|
446
444
|
|
447
|
-
def install_missing_dependencies(
|
448
|
-
self, dependencies: List[str]
|
449
|
-
) -> Tuple[bool, str]:
|
445
|
+
def install_missing_dependencies(self, dependencies: List[str]) -> Tuple[bool, str]:
|
450
446
|
"""
|
451
447
|
Install missing Python dependencies using robust retry logic.
|
452
448
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
claude_mpm/BUILD_NUMBER,sha256=toytnNjkIKPgQaGwDqQdC1rpNTAdSEc6Vja50d7Ovug,4
|
2
|
-
claude_mpm/VERSION,sha256=
|
2
|
+
claude_mpm/VERSION,sha256=t_qvQm5dBlT-fHUst8-R1Zq1HjYCAWfcf8zAGUdKmo4,7
|
3
3
|
claude_mpm/__init__.py,sha256=lyTZAYGH4DTaFGLRNWJKk5Q5oTjzN5I6AXmfVX-Jff0,1512
|
4
4
|
claude_mpm/__main__.py,sha256=Ro5UBWBoQaSAIoSqWAr7zkbLyvi4sSy28WShqAhKJG0,723
|
5
5
|
claude_mpm/constants.py,sha256=cChN3myrAcF3jC-6DvHnBFTEnwlDk-TAsIXPvUZr_yw,5953
|
@@ -51,6 +51,7 @@ claude_mpm/agents/templates/refactoring_engineer.json,sha256=PjaJx7AP-pRqZhZmbkH
|
|
51
51
|
claude_mpm/agents/templates/research.json,sha256=c25Q6L-oOKEF-MgRye8hsQCfKzBjluXikq4z386M-Fk,12157
|
52
52
|
claude_mpm/agents/templates/security.json,sha256=YBQXtbkyFznUGW0P9YoVgRe--0GYbnFHTj5ol0FWxGQ,24216
|
53
53
|
claude_mpm/agents/templates/ticketing.json,sha256=MaLL7xBpZoqghVJ-cQNQOKHoGTkdiaJgE8ysZJqTiwM,11514
|
54
|
+
claude_mpm/agents/templates/typescript_engineer.json,sha256=G0UabugK7CjtbuM-qraAIOzvprQfveGIeRsur2S9iLs,20860
|
54
55
|
claude_mpm/agents/templates/vercel_ops_agent.json,sha256=UCtq8YWxsw0MYjN078IRmeHyQFH1PG0Iv0xaodtyFN0,26985
|
55
56
|
claude_mpm/agents/templates/version_control.json,sha256=fv4pCG-6DeFjB5cFnlC9otVmHUCl-9cJ9vgkQE0MOcw,14430
|
56
57
|
claude_mpm/agents/templates/web_qa.json,sha256=NtVuMrpWEAeLzewgbBcdpYRlMk5TJMq4UPSODEsnXig,17887
|
@@ -80,7 +81,7 @@ claude_mpm/cli/commands/dashboard.py,sha256=0f8_JaXo854kZgcqzZ3cm3VG8muhSsV7JqIz
|
|
80
81
|
claude_mpm/cli/commands/debug.py,sha256=qEfmBG9slmOY6a8snoytM1OWCdWwBALzN1lqV7ElIBU,47130
|
81
82
|
claude_mpm/cli/commands/doctor.py,sha256=bOZzDNxEMNMZYrJnu_V82tyZ12r5FiBRQNLVfSVvRIQ,5774
|
82
83
|
claude_mpm/cli/commands/info.py,sha256=uiZ2GMkfr-4aeme2l6QhzxyawuhtuyVulfCi66yyvOs,7404
|
83
|
-
claude_mpm/cli/commands/mcp.py,sha256=
|
84
|
+
claude_mpm/cli/commands/mcp.py,sha256=kgmJVTAi0G7SAnIpYHddU25HqAdIY9mMmTH-C3DSCsY,7221
|
84
85
|
claude_mpm/cli/commands/mcp_command_router.py,sha256=8rTMZLxU3R3Izit9ia1Z_pIOq3bn2QjMPH4uvf1X9XY,6001
|
85
86
|
claude_mpm/cli/commands/mcp_config.py,sha256=I-MQEJdL93Rj9lIkz-T4rZqxdy-ls1J7cfXIIKS3tys,4814
|
86
87
|
claude_mpm/cli/commands/mcp_config_commands.py,sha256=TnTg7-erE5Z6O8C84o4lZITco72Wnu0FVlVF8tNVsP0,695
|
@@ -99,7 +100,7 @@ claude_mpm/cli/commands/search.py,sha256=_0qbUnop8v758MHsB0fAop8FVxwygD59tec_-iN
|
|
99
100
|
claude_mpm/cli/commands/tickets.py,sha256=kl2dklTBnG3Y4jUUJ_PcEVsTx4CtVJfkGWboWBx_mQM,21234
|
100
101
|
claude_mpm/cli/commands/uninstall.py,sha256=KGlVG6veEs1efLVjrZ3wSty7e1zVR9wpt-VXQA1RzWw,5945
|
101
102
|
claude_mpm/cli/interactive/__init__.py,sha256=vQqUCgPFvLYA1Vkq-5pnY7Ow3A-IgdM0SByfNL1ZLTk,433
|
102
|
-
claude_mpm/cli/interactive/agent_wizard.py,sha256=
|
103
|
+
claude_mpm/cli/interactive/agent_wizard.py,sha256=PMSG6F3Jngb0Gm4nBA6X2PK9Iuuj-AuJd35-g4iE4tE,36202
|
103
104
|
claude_mpm/cli/parsers/__init__.py,sha256=f0Fm1DDXorlVOZPLxUpjC-GIvLh01G-FZOK7TEV1L3I,1005
|
104
105
|
claude_mpm/cli/parsers/agent_manager_parser.py,sha256=TQEIm638ELM4X_AAGcn6WrJxlti9wFLfEkHjr-6AtZA,13761
|
105
106
|
claude_mpm/cli/parsers/agents_parser.py,sha256=R-9ESNXdjqr5iCEIcmbb2EPvcswW9UfJzMj5bAkgI4U,9042
|
@@ -144,7 +145,7 @@ claude_mpm/core/__init__.py,sha256=QhEX_NpiCprUp87bV75FnMapblMeqC5soNVJXVvZObc,8
|
|
144
145
|
claude_mpm/core/agent_name_normalizer.py,sha256=_h92sTPltmvqevCjdKQ7EsOz-CAm1-hd8GOubWjuRgw,8907
|
145
146
|
claude_mpm/core/agent_registry.py,sha256=8xHORhoArccLLbEL5nY0sLi8a_dYSNHR3CHh7-olrvc,18820
|
146
147
|
claude_mpm/core/agent_session_manager.py,sha256=5vnrNUSGSSQOuhoq7OlhFvEnw0mKsmLeEB0_vXTI9BQ,11137
|
147
|
-
claude_mpm/core/api_validator.py,sha256=
|
148
|
+
claude_mpm/core/api_validator.py,sha256=4Hn1vJ8YnIgsvC0x75kMYG69OmbOOzYIzqahl_5Wtgo,12331
|
148
149
|
claude_mpm/core/base_service.py,sha256=rbO4gpSOvnbfTVOCQ1uyDh9fNpnhfxARrpyAisedqXY,29300
|
149
150
|
claude_mpm/core/cache.py,sha256=A90QpJi8eDyCB7mwDUq-E9lKj4qz9Sh7XsYVTel8NTU,17224
|
150
151
|
claude_mpm/core/claude_runner.py,sha256=e6ob7FwcBzvhw9gnPvmL8Zw_BasdfzuV8b1dvqtvGKk,34787
|
@@ -162,7 +163,7 @@ claude_mpm/core/hook_manager.py,sha256=Cq3vwYW7-ffKw_HSFqtv1RJTxs8YUpD_qeTiWvua3
|
|
162
163
|
claude_mpm/core/hook_performance_config.py,sha256=e7a7oFctkRhA3aPXMO5Wavr-E6ku7ikLxMzPU7P1-yg,5779
|
163
164
|
claude_mpm/core/injectable_service.py,sha256=6MUqTVTBBw6legToIVj1C_BzdERO0zKYEPnFPVZJJfE,7398
|
164
165
|
claude_mpm/core/instruction_reinforcement_hook.py,sha256=s9KGkdJO8E9ip3MB5PlXo52-dTocHXqsVy5TcxOK8-A,9487
|
165
|
-
claude_mpm/core/interactive_session.py,sha256=
|
166
|
+
claude_mpm/core/interactive_session.py,sha256=OO0Oqv5hXfEtnAUNUc2WKd6BtxbT_p4Kcei-53GKxno,21973
|
166
167
|
claude_mpm/core/interfaces.py,sha256=RNqXxUioEpV4vOaEoUJ38OvKYPMlpSb3V5Sb97l0w3Q,25625
|
167
168
|
claude_mpm/core/lazy.py,sha256=pyCfEqGHyLz18yXTu_uG52-II-9nCaBcpzwwQGBrQro,14808
|
168
169
|
claude_mpm/core/log_manager.py,sha256=_qsCFDHPxHSiC4NAKOAEKOcmSgNSQBimJZ2wEgALPI0,24225
|
@@ -366,28 +367,15 @@ claude_mpm/hooks/claude_hooks/installer.py,sha256=4QUZcnQWlQDH11BypvYs_JpQ-ojRF0
|
|
366
367
|
claude_mpm/hooks/claude_hooks/memory_integration.py,sha256=9PogijgklM7iSNRTK2Sdz3s9AOlxL8Rt5axtU71-J2M,8866
|
367
368
|
claude_mpm/hooks/claude_hooks/response_tracking.py,sha256=eMixPs2fOAqLn9WysTPgfIwwjwzZTdnAn0jpDjlOS6U,15024
|
368
369
|
claude_mpm/hooks/claude_hooks/tool_analysis.py,sha256=t4CFrLldjD-akBY52su6Cl0cBmZCKRZbGbIE-Yg2Hhk,7896
|
369
|
-
claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-313.pyc,sha256=bRXmkaVByqCv8qmFpfSJOEeKUOzLNgFVgFc5GVZ1oGo,322
|
370
|
-
claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-313.pyc,sha256=W3pUVNdaDSE0ndQmQUSnGlBWaxOVnvjvZxCcmjLag-0,28937
|
371
|
-
claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-313.pyc,sha256=HTbwMv0BW8gMg9DxzH6UbEPRPZ8a0e_R7sNaRMJ6I1w,21336
|
372
|
-
claude_mpm/hooks/claude_hooks/__pycache__/installer.cpython-313.pyc,sha256=_uQKOFHx2MA6Kp1o5SrHsvAFcao8Pq5jOT8sV89aXRI,28963
|
373
|
-
claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-313.pyc,sha256=qhDYC403V_m8NG2LHMXtcK_SH3qMuPADSp0sJ9D6YTo,8895
|
374
|
-
claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-313.pyc,sha256=MuqyPvXZuFph_xp1j1vtNLqLKRJT51oI2AmZ3SEn69c,14213
|
375
|
-
claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-313.pyc,sha256=OsljgmGIgSmKTyVRRrJmKvmoHdQFq0kBBGTRUrAdnrI,9137
|
376
370
|
claude_mpm/hooks/claude_hooks/services/__init__.py,sha256=OIYOKsUNw1BHYawOCp-KFK5kmQKuj92cCqCEPO0nwo0,585
|
377
371
|
claude_mpm/hooks/claude_hooks/services/connection_manager.py,sha256=6GSZ6lB0j6u7jE-w9ay-57YX-VVBFGfK_wmZNNM6hxE,8280
|
378
372
|
claude_mpm/hooks/claude_hooks/services/connection_manager_http.py,sha256=sEIWyV-3pfS6VM6_jQgnrKiepD-6DLrk5rr_KU80kHo,8832
|
379
373
|
claude_mpm/hooks/claude_hooks/services/duplicate_detector.py,sha256=Fh9LmEMsVmQM9t0U1v2l_fuBwvNpVkl_0EF8Wu5KLHQ,3882
|
380
374
|
claude_mpm/hooks/claude_hooks/services/state_manager.py,sha256=l50dVFt6eafeLCjlu6TH3qqt8tTBEof971U1OlrUxZ8,11166
|
381
375
|
claude_mpm/hooks/claude_hooks/services/subagent_processor.py,sha256=f7a_vgo_kuG9MalDTka2UPXwDyCkqNgCvG8i1hp0oRo,15263
|
382
|
-
claude_mpm/hooks/claude_hooks/services/__pycache__/__init__.cpython-313.pyc,sha256=bk04TMdGscqiVyfzkby3gPrW6DcSqzHJOCnclbO5Qrs,565
|
383
|
-
claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager.cpython-313.pyc,sha256=Symt433PpAF6qj4EWQmFXT9lMi46uNhIdNuQDO9_3_U,8512
|
384
|
-
claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-313.pyc,sha256=HvK-KUCBSg8J_0UTxNd98pMVa68_NYRkyoTgdATD_n4,9967
|
385
|
-
claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-313.pyc,sha256=87ROjkadSdZB1L24rVdjdOHggYRfaGZ2v0nnhLlUnJk,4722
|
386
|
-
claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-313.pyc,sha256=QoAQvuBn4xDlo_YXuHNgJ3vqXLhp4KzKunTOf9crJ70,11772
|
387
|
-
claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-313.pyc,sha256=svC-kX-MYT5YIbWrY_aNf-Biz-JL49noI--1D-dSx_Q,13821
|
388
376
|
claude_mpm/models/__init__.py,sha256=GADyLAiF-1VVghYKI7Urz3zSnf2sjJUXlOEMuCOs7_g,468
|
389
377
|
claude_mpm/models/agent_definition.py,sha256=LC7EwihixF2Gw4QqOxiCNchsEzzyQJPR6AgPrcTrWTM,6674
|
390
|
-
claude_mpm/models/agent_session.py,sha256=
|
378
|
+
claude_mpm/models/agent_session.py,sha256=BEI9RsCnnSVMF3oOzWKY3a_NEmWI33J2nU_2O-WEyJQ,20027
|
391
379
|
claude_mpm/schemas/__init__.py,sha256=2SLpkojJq34KnwPkVxrsVmw_cEI66872i75QBT1C2To,446
|
392
380
|
claude_mpm/scripts/__init__.py,sha256=IffMdVD99Pxyw85yluRa0VDPi4dRQecIWce764pcfZE,553
|
393
381
|
claude_mpm/scripts/claude-hook-handler.sh,sha256=xe6dKubrjK1JDO0SJdc1-tA6C7YSb5YazhwKhOYBQvw,7905
|
@@ -410,7 +398,7 @@ claude_mpm/services/hook_service.py,sha256=rZnMn_4qxX5g9KAn0IQdoG50WmySNfsTmfG0X
|
|
410
398
|
claude_mpm/services/mcp_config_manager.py,sha256=IdcoIYdblk_NbpwcPcKS8RnrJMitfzhtZbTyYEE0kLM,16277
|
411
399
|
claude_mpm/services/memory_hook_service.py,sha256=pRlTClkRcw30Jhwbha4BC8IMdzKZxF8aWqf52JlntgY,11600
|
412
400
|
claude_mpm/services/monitor_build_service.py,sha256=8gWR9CaqgXdG6-OjOFXGpk28GCcJTlHhojkUYnMCebI,12160
|
413
|
-
claude_mpm/services/port_manager.py,sha256=
|
401
|
+
claude_mpm/services/port_manager.py,sha256=CYqLh8Ss_-aoYEXV3G6uZkGexpsRK_XTBL0bV4P3tSI,22838
|
414
402
|
claude_mpm/services/recovery_manager.py,sha256=ptUYsguF6oKWnJnzPRSBuzUFVDXIcvsS3svT6MBTqCQ,25686
|
415
403
|
claude_mpm/services/response_tracker.py,sha256=FxD3QKRxjXFPTv7TJIdb78cRxCuGQ45fyVozaR1r4V4,9185
|
416
404
|
claude_mpm/services/runner_configuration_service.py,sha256=Qs84yrZfQv-DC0I2Xah1Qt9eunH4gS7LNMZ0mmymcqA,21311
|
@@ -519,7 +507,7 @@ claude_mpm/services/agents/registry/modification_tracker.py,sha256=qKiDdH9gidvyh
|
|
519
507
|
claude_mpm/services/cli/__init__.py,sha256=6yavdruQywt9k39RBOrPxUTz6dEEJ6mHzjY4pl_Q3Do,559
|
520
508
|
claude_mpm/services/cli/agent_cleanup_service.py,sha256=7wzbnoASqyEpeUgFMQZkzT8fCF7se23wPJ5feYbFD0E,14288
|
521
509
|
claude_mpm/services/cli/agent_dependency_service.py,sha256=mu6RJIjEe_NrMzil3Wm6CvhQUIZ4pYn8tYpyXDBu2NI,13701
|
522
|
-
claude_mpm/services/cli/agent_listing_service.py,sha256=
|
510
|
+
claude_mpm/services/cli/agent_listing_service.py,sha256=8lzK7HKF7SsdlwA3DkhtsL6cFlHvbEwFxSkp2V5rYHc,15957
|
523
511
|
claude_mpm/services/cli/agent_output_formatter.py,sha256=FcJ18m3CyeFr_wotJfEmIURHeZ71eomqO_vK7wsPWsM,20521
|
524
512
|
claude_mpm/services/cli/agent_validation_service.py,sha256=g1mFZoITKGESWRYAvpbDXI8CFw68HP6Hsare86RiwvM,21739
|
525
513
|
claude_mpm/services/cli/memory_crud_service.py,sha256=FLNJb0fo6H_bEboXayc2AoT9w2IoP1_cegZQ6s4SOas,22864
|
@@ -625,7 +613,7 @@ claude_mpm/services/mcp_gateway/registry/tool_registry.py,sha256=174SRGMmRlbxAAP
|
|
625
613
|
claude_mpm/services/mcp_gateway/server/__init__.py,sha256=4OsKf4Eit4O8geWs-UNjVYqQ6GRwEh6frWnFXpK1ooI,294
|
626
614
|
claude_mpm/services/mcp_gateway/server/mcp_gateway.py,sha256=fIwGCTRwzQh5YRoBptBFL-em2ZcgXiCuhrbFUWLsOdQ,13573
|
627
615
|
claude_mpm/services/mcp_gateway/server/stdio_handler.py,sha256=6A7bg0TPr740Y9AD10ZeFvMQtKHockJrXUG47lmT_HI,11444
|
628
|
-
claude_mpm/services/mcp_gateway/server/stdio_server.py,sha256=
|
616
|
+
claude_mpm/services/mcp_gateway/server/stdio_server.py,sha256=zBPgUOCsX6zIQtvj_LVm4awcR3NQan77JW-owfZdglo,26348
|
629
617
|
claude_mpm/services/mcp_gateway/tools/__init__.py,sha256=7_0IpRe7RKJTajajiUCqXxh71gj_P5gSCOMmAjKwVts,530
|
630
618
|
claude_mpm/services/mcp_gateway/tools/base_adapter.py,sha256=na1MdyBCtVmKzgIcFJ5MuAUJ1LJrtA4yxkuqLnejiD8,16029
|
631
619
|
claude_mpm/services/mcp_gateway/tools/document_summarizer.py,sha256=J0YNEu4GPxWm2nTMxD7CwWl-2k1UJk3tWCI2timGWbU,28230
|
@@ -654,7 +642,7 @@ claude_mpm/services/monitor/handlers/file.py,sha256=p3C4wffl0GIcN00b-KkrmZ8F-Amd
|
|
654
642
|
claude_mpm/services/monitor/handlers/hooks.py,sha256=XS0h7FjdOMmrwJyaVE4Ku5HU3nzG12Xf7v-cEwrMe-I,17520
|
655
643
|
claude_mpm/services/monitor/management/__init__.py,sha256=mxaEFRgvvgV85gUpXu_DsnHtywihdP14EisvISAVZuQ,525
|
656
644
|
claude_mpm/services/monitor/management/health.py,sha256=Wm92Cli_4cWD6B89KX_CdpAvvevuEaGB8Ah59ILhFww,3772
|
657
|
-
claude_mpm/services/monitor/management/lifecycle.py,sha256=
|
645
|
+
claude_mpm/services/monitor/management/lifecycle.py,sha256=WVs231EOEkMOx2ofWDdE8GdWazFS8NZ6xwi185szapI,27340
|
658
646
|
claude_mpm/services/project/__init__.py,sha256=IUclN1L7ChHCNya7PJiVxu4nttxsrj3WRIpwyA1A_hw,512
|
659
647
|
claude_mpm/services/project/analyzer.py,sha256=VHlLrP8-S5gr12w4Yzs7-6d7LWdJKISHPCFSG7SDiQU,38434
|
660
648
|
claude_mpm/services/project/analyzer_refactored.py,sha256=USYEdPAhSoGPqZCpaT89Dw6ElFW_L1yXSURheQjAhLA,18243
|
@@ -706,17 +694,17 @@ claude_mpm/services/version_control/git_operations.py,sha256=BU3krxip2e6dGG-5Bn_
|
|
706
694
|
claude_mpm/services/version_control/semantic_versioning.py,sha256=H4XxrA_O-1-8h2TxZ8W9iKFukatcUykSCRbAnR9jLcE,32669
|
707
695
|
claude_mpm/services/version_control/version_parser.py,sha256=6ibCLS9iIkEf5bd1h_caHhINQtNMrP1SDJ_pg9zr9kM,19723
|
708
696
|
claude_mpm/services/visualization/__init__.py,sha256=cTtWxRi07rSLXQKVZa7SKZsYfj6nRouw7HVO85Towfg,401
|
709
|
-
claude_mpm/services/visualization/mermaid_generator.py,sha256=
|
697
|
+
claude_mpm/services/visualization/mermaid_generator.py,sha256=6QGgXtMg_N9rKeRn8wYs3IxuWGKdDVAwFMFWKfIw9s4,34277
|
710
698
|
claude_mpm/storage/__init__.py,sha256=DXnmee6iGqC6ctFLW7_Ty1cVCjYDFuCMkwO4EV0i25k,274
|
711
699
|
claude_mpm/storage/state_storage.py,sha256=_RcHrMDXG6a3rA6itLMTWYUnWGPCiRVHAR_8UPqICiA,16875
|
712
700
|
claude_mpm/tools/__init__.py,sha256=T3GuCYNAHtjVcKCeivY674PaDm48WX96AriQfTKUknY,347
|
713
701
|
claude_mpm/tools/__main__.py,sha256=MKDuxFuujqD5FZcLTqniDNQ2BI8yg5fDSLU3ElV6m6U,5709
|
714
|
-
claude_mpm/tools/code_tree_analyzer.py,sha256=
|
702
|
+
claude_mpm/tools/code_tree_analyzer.py,sha256=pp6btHvuVcQ-v4asc04rmbh4XlyBOhTesm5k9mdJvHc,64711
|
715
703
|
claude_mpm/tools/code_tree_builder.py,sha256=nz8Sj05QAOaWCXLmAjksBGqgZzQkO1P-I8qGbVXGLJM,18145
|
716
704
|
claude_mpm/tools/code_tree_events.py,sha256=10tf9ZGkPIXzWqYvwq0SIJdIOwKNnxgKWYOmRzVGeLc,13396
|
717
705
|
claude_mpm/tools/socketio_debug.py,sha256=mD9PZwcyQJwIndjRh1Lf64RuUTgvrx-Pcmy77Tzbe4Q,22246
|
718
706
|
claude_mpm/utils/__init__.py,sha256=rkxNE0tDfKEN2lr2LLBuToNSvkF-yjF38607eUXL1vk,353
|
719
|
-
claude_mpm/utils/agent_dependency_loader.py,sha256=
|
707
|
+
claude_mpm/utils/agent_dependency_loader.py,sha256=FjWpyd7w03K4YOPF0VLy2wCUgMd8CtDhBamV6LODcGM,32213
|
720
708
|
claude_mpm/utils/config_manager.py,sha256=tTnEGrN3H9kF02CzClt_fwlGelwF_mD3HxYb-y5L7wA,15771
|
721
709
|
claude_mpm/utils/console.py,sha256=2Agd91xj5NSMgvfUFJIUwVnpghnKjrd8EYH7inF12M4,279
|
722
710
|
claude_mpm/utils/dependency_cache.py,sha256=2ZHSZbBCpuSCzk745v9UZ2WD7zp3SHkOLBAZydj82i4,11780
|
@@ -736,9 +724,9 @@ claude_mpm/utils/subprocess_utils.py,sha256=9mC9V6ThLUu48OMaYaSHwXnxG8BeH70kv7ys
|
|
736
724
|
claude_mpm/validation/__init__.py,sha256=YZhwE3mhit-lslvRLuwfX82xJ_k4haZeKmh4IWaVwtk,156
|
737
725
|
claude_mpm/validation/agent_validator.py,sha256=p6T0vpJaB-PyVxIA0hlsFs9lsbX7dvMPXG132AIl3AI,20884
|
738
726
|
claude_mpm/validation/frontmatter_validator.py,sha256=u8g4Eyd_9O6ugj7Un47oSGh3kqv4wMkuks2i_CtWRvM,7028
|
739
|
-
claude_mpm-4.3.
|
740
|
-
claude_mpm-4.3.
|
741
|
-
claude_mpm-4.3.
|
742
|
-
claude_mpm-4.3.
|
743
|
-
claude_mpm-4.3.
|
744
|
-
claude_mpm-4.3.
|
727
|
+
claude_mpm-4.3.16.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
|
728
|
+
claude_mpm-4.3.16.dist-info/METADATA,sha256=MPA-OHD-vEk4Vv8wB58kc9n2EE_FsEkqJiEFCSi93zI,16150
|
729
|
+
claude_mpm-4.3.16.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
730
|
+
claude_mpm-4.3.16.dist-info/entry_points.txt,sha256=FDPZgz8JOvD-6iuXY2l9Zbo9zYVRuE4uz4Qr0vLeGOk,471
|
731
|
+
claude_mpm-4.3.16.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
|
732
|
+
claude_mpm-4.3.16.dist-info/RECORD,,
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|