wyrm-mcp 3.2.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/LICENSE +667 -0
- package/README.md +384 -0
- package/dist/analytics.d.ts +100 -0
- package/dist/analytics.d.ts.map +1 -0
- package/dist/analytics.js +368 -0
- package/dist/analytics.js.map +1 -0
- package/dist/auto-orchestrator.d.ts +118 -0
- package/dist/auto-orchestrator.d.ts.map +1 -0
- package/dist/auto-orchestrator.js +325 -0
- package/dist/auto-orchestrator.js.map +1 -0
- package/dist/autoconfig.d.ts +89 -0
- package/dist/autoconfig.d.ts.map +1 -0
- package/dist/autoconfig.js +576 -0
- package/dist/autoconfig.js.map +1 -0
- package/dist/cli.d.ts +148 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +281 -0
- package/dist/cli.js.map +1 -0
- package/dist/cloud-backup.d.ts +100 -0
- package/dist/cloud-backup.d.ts.map +1 -0
- package/dist/cloud-backup.js +545 -0
- package/dist/cloud-backup.js.map +1 -0
- package/dist/crypto.d.ts +72 -0
- package/dist/crypto.d.ts.map +1 -0
- package/dist/crypto.js +164 -0
- package/dist/crypto.js.map +1 -0
- package/dist/database.d.ts +218 -0
- package/dist/database.d.ts.map +1 -0
- package/dist/database.js +1058 -0
- package/dist/database.js.map +1 -0
- package/dist/http-auth.d.ts +68 -0
- package/dist/http-auth.d.ts.map +1 -0
- package/dist/http-auth.js +296 -0
- package/dist/http-auth.js.map +1 -0
- package/dist/http-fast.d.ts +13 -0
- package/dist/http-fast.d.ts.map +1 -0
- package/dist/http-fast.js +325 -0
- package/dist/http-fast.js.map +1 -0
- package/dist/http-server.d.ts +12 -0
- package/dist/http-server.d.ts.map +1 -0
- package/dist/http-server.js +383 -0
- package/dist/http-server.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1695 -0
- package/dist/index.js.map +1 -0
- package/dist/license.d.ts +177 -0
- package/dist/license.d.ts.map +1 -0
- package/dist/license.js +405 -0
- package/dist/license.js.map +1 -0
- package/dist/logger.d.ts +76 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +195 -0
- package/dist/logger.js.map +1 -0
- package/dist/performance.d.ts +114 -0
- package/dist/performance.d.ts.map +1 -0
- package/dist/performance.js +228 -0
- package/dist/performance.js.map +1 -0
- package/dist/resilience.d.ts +146 -0
- package/dist/resilience.d.ts.map +1 -0
- package/dist/resilience.js +563 -0
- package/dist/resilience.js.map +1 -0
- package/dist/security.d.ts +68 -0
- package/dist/security.d.ts.map +1 -0
- package/dist/security.js +215 -0
- package/dist/security.js.map +1 -0
- package/dist/setup.d.ts +21 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +261 -0
- package/dist/setup.js.map +1 -0
- package/dist/summarizer.d.ts +30 -0
- package/dist/summarizer.d.ts.map +1 -0
- package/dist/summarizer.js +139 -0
- package/dist/summarizer.js.map +1 -0
- package/dist/sync.d.ts +39 -0
- package/dist/sync.d.ts.map +1 -0
- package/dist/sync.js +356 -0
- package/dist/sync.js.map +1 -0
- package/dist/types.d.ts +267 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +30 -0
- package/dist/types.js.map +1 -0
- package/dist/vectors.d.ts +103 -0
- package/dist/vectors.d.ts.map +1 -0
- package/dist/vectors.js +311 -0
- package/dist/vectors.js.map +1 -0
- package/package.json +73 -0
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wyrm Auto-Orchestrator - Automatically apply reasoning patterns
|
|
3
|
+
*
|
|
4
|
+
* This layer intercepts task requests and automatically applies
|
|
5
|
+
* the best multi-agent reasoning pattern based on task classification.
|
|
6
|
+
*
|
|
7
|
+
* Patterns applied automatically:
|
|
8
|
+
* - Haiku Boosting: All content generation via few-shot + self-critique
|
|
9
|
+
* - Ensemble Voting: Decisions (architecture, design, strategy) via N approaches + vote
|
|
10
|
+
* - Task Decomposition: Large features via subtasks + parallel execution
|
|
11
|
+
* - Verification: High-risk code changes via multi-angle review
|
|
12
|
+
*
|
|
13
|
+
* @copyright 2026 Ghost Protocol (Pvt) Ltd. All Rights Reserved.
|
|
14
|
+
* @license Proprietary - See LICENSE file for details.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Classify incoming task based on multiple signals
|
|
18
|
+
*/
|
|
19
|
+
export function classifyTask(input, context) {
|
|
20
|
+
const text = input.toLowerCase();
|
|
21
|
+
let type = 'generation';
|
|
22
|
+
let confidence = 50;
|
|
23
|
+
let complexity = 'medium';
|
|
24
|
+
// Decision detection
|
|
25
|
+
const decisionKeywords = ['decide', 'choose', 'architecture', 'design pattern', 'approach', 'strategy', 'should we', 'which is better', 'trade-off', 'tradeoff'];
|
|
26
|
+
if (decisionKeywords.some(kw => text.includes(kw))) {
|
|
27
|
+
type = 'decision';
|
|
28
|
+
confidence = 85;
|
|
29
|
+
complexity = context?.complexity === 'high' ? 'high' : 'medium';
|
|
30
|
+
}
|
|
31
|
+
// Research detection
|
|
32
|
+
const researchKeywords = ['investigate', 'analyze', 'explore', 'research', 'what are the', 'find all', 'compare', 'benchmark'];
|
|
33
|
+
if (researchKeywords.some(kw => text.includes(kw))) {
|
|
34
|
+
type = 'research';
|
|
35
|
+
confidence = 80;
|
|
36
|
+
complexity = 'high';
|
|
37
|
+
}
|
|
38
|
+
// Verification detection
|
|
39
|
+
const verificationKeywords = ['review', 'check', 'validate', 'test', 'security', 'performance', 'audit', 'lint'];
|
|
40
|
+
if (verificationKeywords.some(kw => text.includes(kw))) {
|
|
41
|
+
type = 'verification';
|
|
42
|
+
confidence = 75;
|
|
43
|
+
complexity = 'medium';
|
|
44
|
+
}
|
|
45
|
+
// Decomposition detection (large feature builds)
|
|
46
|
+
const decompositionKeywords = ['build', 'implement', 'feature', 'system', 'module', 'create', 'develop', 'setup'];
|
|
47
|
+
const hasDetailedDescription = input.length > 500;
|
|
48
|
+
if (decompositionKeywords.some(kw => text.includes(kw)) && hasDetailedDescription) {
|
|
49
|
+
type = 'decomposition';
|
|
50
|
+
confidence = 70;
|
|
51
|
+
complexity = 'high';
|
|
52
|
+
}
|
|
53
|
+
// Generation (default, with boosting)
|
|
54
|
+
if (type === 'generation') {
|
|
55
|
+
confidence = 60; // Lower confidence for default catch-all
|
|
56
|
+
complexity = 'low';
|
|
57
|
+
}
|
|
58
|
+
// Adjust complexity based on input length
|
|
59
|
+
if (input.length > 1000)
|
|
60
|
+
complexity = 'high';
|
|
61
|
+
if (input.length < 200)
|
|
62
|
+
complexity = 'low';
|
|
63
|
+
const parallelBlocks = getParallelBlockCount(type, complexity);
|
|
64
|
+
return {
|
|
65
|
+
type,
|
|
66
|
+
confidence,
|
|
67
|
+
description: input.substring(0, 100) + (input.length > 100 ? '...' : ''),
|
|
68
|
+
complexity,
|
|
69
|
+
recommendedApproach: getRecommendedApproach(type),
|
|
70
|
+
parallelBlocks,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Determine how many parallel agents to spawn
|
|
75
|
+
*/
|
|
76
|
+
function getParallelBlockCount(type, complexity) {
|
|
77
|
+
const config = {
|
|
78
|
+
decision: { low: 2, medium: 3, high: 4 },
|
|
79
|
+
generation: { low: 1, medium: 2, high: 3 },
|
|
80
|
+
research: { low: 2, medium: 4, high: 6 },
|
|
81
|
+
verification: { low: 2, medium: 3, high: 4 },
|
|
82
|
+
decomposition: { low: 2, medium: 4, high: 6 },
|
|
83
|
+
};
|
|
84
|
+
return config[type][complexity] || 3;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Get recommended orchestration approach
|
|
88
|
+
*/
|
|
89
|
+
function getRecommendedApproach(type) {
|
|
90
|
+
const approaches = {
|
|
91
|
+
decision: 'ensemble-voting (4 approaches + vote)',
|
|
92
|
+
generation: 'haiku-boosting (few-shot + self-critique)',
|
|
93
|
+
research: 'parallel-research (N angles + synthesis)',
|
|
94
|
+
verification: 'verification-pipeline (security + perf + style reviews)',
|
|
95
|
+
decomposition: 'task-decomposition (subtasks + parallel + synthesis)',
|
|
96
|
+
};
|
|
97
|
+
return approaches[type];
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Default orchestration config
|
|
101
|
+
*/
|
|
102
|
+
export function getDefaultConfig() {
|
|
103
|
+
return {
|
|
104
|
+
autoOrchestrateEnabled: true,
|
|
105
|
+
minConfidenceThreshold: 65, // Only apply if 65%+ confident
|
|
106
|
+
maxParallelAgents: 6,
|
|
107
|
+
defaultHaikuBoosting: true, // Boost all Haiku content generation
|
|
108
|
+
trackMetrics: true,
|
|
109
|
+
thinkingBudget: 10000, // Max thinking tokens per orchestrated task
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Apply appropriate orchestration pattern
|
|
114
|
+
*/
|
|
115
|
+
export async function orchestrateTask(task, config = getDefaultConfig()) {
|
|
116
|
+
const classified = classifyTask(task);
|
|
117
|
+
// Check if confidence meets threshold
|
|
118
|
+
if (classified.confidence < config.minConfidenceThreshold) {
|
|
119
|
+
return {
|
|
120
|
+
taskType: classified.type,
|
|
121
|
+
approach: 'standard (below confidence threshold)',
|
|
122
|
+
results: null,
|
|
123
|
+
quality: 0,
|
|
124
|
+
costSavings: 0,
|
|
125
|
+
parallelExecutionTime: 0,
|
|
126
|
+
confidence: classified.confidence,
|
|
127
|
+
appliedPatterns: [],
|
|
128
|
+
metrics: { tokensBoosting: 0, tokensEnsemble: 0, tokensVerification: 0, totalTokens: 0 },
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
// Apply pattern based on task type
|
|
132
|
+
let patterns = [];
|
|
133
|
+
let startTime = Date.now();
|
|
134
|
+
switch (classified.type) {
|
|
135
|
+
case 'decision':
|
|
136
|
+
patterns = ['ensemble-voting', 'haiku-boosting'];
|
|
137
|
+
// Would spawn 4 approaches via parallel agents, vote, boost confidence
|
|
138
|
+
break;
|
|
139
|
+
case 'generation':
|
|
140
|
+
patterns = ['haiku-boosting', 'self-critique'];
|
|
141
|
+
// Add few-shot examples + self-critique loop
|
|
142
|
+
break;
|
|
143
|
+
case 'research':
|
|
144
|
+
patterns = ['parallel-research', 'synthesis'];
|
|
145
|
+
// Spawn parallel agents for different angles, synthesize findings
|
|
146
|
+
break;
|
|
147
|
+
case 'verification':
|
|
148
|
+
patterns = ['parallel-review', 'multi-angle'];
|
|
149
|
+
// Parallel: security review, performance check, style check → synthesize
|
|
150
|
+
break;
|
|
151
|
+
case 'decomposition':
|
|
152
|
+
patterns = ['task-decomposition', 'parallel-synthesis'];
|
|
153
|
+
// Break into subtasks, parallel execution, merge results
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
const executionTime = Date.now() - startTime;
|
|
157
|
+
// Estimate quality and cost savings
|
|
158
|
+
const qualityBoost = getQualityBoost(patterns);
|
|
159
|
+
const costSavings = getCostSavings(patterns, classified.parallelBlocks);
|
|
160
|
+
return {
|
|
161
|
+
taskType: classified.type,
|
|
162
|
+
approach: classified.recommendedApproach,
|
|
163
|
+
results: null, // Would be filled by actual implementation
|
|
164
|
+
quality: 60 + qualityBoost,
|
|
165
|
+
costSavings,
|
|
166
|
+
parallelExecutionTime: executionTime,
|
|
167
|
+
confidence: classified.confidence,
|
|
168
|
+
appliedPatterns: patterns,
|
|
169
|
+
metrics: {
|
|
170
|
+
tokensBoosting: patterns.includes('haiku-boosting') ? 800 : 0,
|
|
171
|
+
tokensEnsemble: patterns.includes('ensemble-voting') ? 1200 : 0,
|
|
172
|
+
tokensVerification: patterns.includes('multi-angle') ? 600 : 0,
|
|
173
|
+
totalTokens: 0, // Would be calculated
|
|
174
|
+
},
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Quality boost from applied patterns (est. %)
|
|
179
|
+
*/
|
|
180
|
+
function getQualityBoost(patterns) {
|
|
181
|
+
let boost = 0;
|
|
182
|
+
if (patterns.includes('haiku-boosting'))
|
|
183
|
+
boost += 45;
|
|
184
|
+
if (patterns.includes('ensemble-voting'))
|
|
185
|
+
boost += 35;
|
|
186
|
+
if (patterns.includes('self-critique'))
|
|
187
|
+
boost += 25;
|
|
188
|
+
if (patterns.includes('multi-angle'))
|
|
189
|
+
boost += 20;
|
|
190
|
+
return Math.min(boost, 80); // Cap at 80% boost
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Cost savings vs Opus (est. %)
|
|
194
|
+
*/
|
|
195
|
+
function getCostSavings(patterns, parallelBlocks = 1) {
|
|
196
|
+
// Base: Haiku is 10x cheaper than Opus
|
|
197
|
+
// With patterns: Multiple Haiku calls (boosting + ensemble) still beat single Opus
|
|
198
|
+
// Typical: 4 Haiku ($0.48) vs 1 Opus ($1.00) = 52% savings
|
|
199
|
+
if (patterns.includes('ensemble-voting')) {
|
|
200
|
+
return parallelBlocks > 1 ? 45 : 30; // Multiple approaches still cheaper
|
|
201
|
+
}
|
|
202
|
+
if (patterns.includes('haiku-boosting')) {
|
|
203
|
+
return 35; // Boosting adds overhead but still cheaper than Opus
|
|
204
|
+
}
|
|
205
|
+
return 25; // Other patterns, general Haiku usage
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Orchestration middleware for agent context
|
|
209
|
+
*
|
|
210
|
+
* Usage in agent:
|
|
211
|
+
* ```typescript
|
|
212
|
+
* const config = getDefaultConfig();
|
|
213
|
+
* const task = "Design a microservice architecture for a real-time collaboration tool";
|
|
214
|
+
* const plan = await orchestrateTask(task, config);
|
|
215
|
+
*
|
|
216
|
+
* if (plan.appliedPatterns.length > 0) {
|
|
217
|
+
* // Auto-orchestration active
|
|
218
|
+
* // Implementation would:
|
|
219
|
+
* // 1. Spawn parallel agents (if ensemble/decomposition)
|
|
220
|
+
* // 2. Apply boosting (if generation)
|
|
221
|
+
* // 3. Run reviews (if verification)
|
|
222
|
+
* // 4. Synthesize results
|
|
223
|
+
* // 5. Store metrics in Wyrm
|
|
224
|
+
* }
|
|
225
|
+
* ```
|
|
226
|
+
*/
|
|
227
|
+
export class AutoOrchestrator {
|
|
228
|
+
config;
|
|
229
|
+
taskHistory = [];
|
|
230
|
+
constructor(config) {
|
|
231
|
+
this.config = {
|
|
232
|
+
...getDefaultConfig(),
|
|
233
|
+
...config,
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Process incoming task with auto-orchestration
|
|
238
|
+
*/
|
|
239
|
+
async processTask(task) {
|
|
240
|
+
const classified = classifyTask(task);
|
|
241
|
+
this.taskHistory.push(classified);
|
|
242
|
+
// Trim history to last 100 tasks
|
|
243
|
+
if (this.taskHistory.length > 100) {
|
|
244
|
+
this.taskHistory = this.taskHistory.slice(-100);
|
|
245
|
+
}
|
|
246
|
+
return orchestrateTask(task, this.config);
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Get task classification insight
|
|
250
|
+
*/
|
|
251
|
+
getTaskDistribution() {
|
|
252
|
+
const dist = {
|
|
253
|
+
decision: 0,
|
|
254
|
+
generation: 0,
|
|
255
|
+
research: 0,
|
|
256
|
+
verification: 0,
|
|
257
|
+
decomposition: 0,
|
|
258
|
+
};
|
|
259
|
+
for (const task of this.taskHistory) {
|
|
260
|
+
dist[task.type]++;
|
|
261
|
+
}
|
|
262
|
+
return dist;
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Get orchestration effectiveness stats
|
|
266
|
+
*/
|
|
267
|
+
getStats() {
|
|
268
|
+
const distribution = this.getTaskDistribution();
|
|
269
|
+
const total = this.taskHistory.length;
|
|
270
|
+
const avgQuality = this.taskHistory.reduce((sum, t) => {
|
|
271
|
+
const patterns = this.getPatternSetForType(t.type);
|
|
272
|
+
return sum + getQualityBoost(patterns);
|
|
273
|
+
}, 0) / (total || 1);
|
|
274
|
+
const avgCost = this.taskHistory.reduce((sum, t) => {
|
|
275
|
+
return sum + getCostSavings(this.getPatternSetForType(t.type), t.complexity === 'high' ? 4 : 2);
|
|
276
|
+
}, 0) / (total || 1);
|
|
277
|
+
const complexities = this.taskHistory.map(t => t.complexity);
|
|
278
|
+
const avgComplexity = complexities.filter(c => c === 'high').length > total / 2
|
|
279
|
+
? 'high'
|
|
280
|
+
: complexities.filter(c => c === 'low').length > total / 2
|
|
281
|
+
? 'low'
|
|
282
|
+
: 'medium';
|
|
283
|
+
return {
|
|
284
|
+
tasksProcessed: total,
|
|
285
|
+
distribution,
|
|
286
|
+
estimatedQualityBoost: Math.round(avgQuality),
|
|
287
|
+
estimatedCostSavings: Math.round(avgCost),
|
|
288
|
+
averageComplexity: avgComplexity,
|
|
289
|
+
};
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Get pattern set for task type
|
|
293
|
+
*/
|
|
294
|
+
getPatternSetForType(type) {
|
|
295
|
+
const patterns = {
|
|
296
|
+
decision: ['ensemble-voting', 'haiku-boosting'],
|
|
297
|
+
generation: ['haiku-boosting', 'self-critique'],
|
|
298
|
+
research: ['parallel-research', 'synthesis'],
|
|
299
|
+
verification: ['parallel-review', 'multi-angle'],
|
|
300
|
+
decomposition: ['task-decomposition', 'parallel-synthesis'],
|
|
301
|
+
};
|
|
302
|
+
return patterns[type];
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Update config at runtime
|
|
306
|
+
*/
|
|
307
|
+
updateConfig(updates) {
|
|
308
|
+
this.config = { ...this.config, ...updates };
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Singleton instance for global orchestration
|
|
313
|
+
*/
|
|
314
|
+
let globalOrchestrator = null;
|
|
315
|
+
export function getGlobalOrchestrator() {
|
|
316
|
+
if (!globalOrchestrator) {
|
|
317
|
+
globalOrchestrator = new AutoOrchestrator(getDefaultConfig());
|
|
318
|
+
}
|
|
319
|
+
return globalOrchestrator;
|
|
320
|
+
}
|
|
321
|
+
export function initializeOrchestrator(config) {
|
|
322
|
+
globalOrchestrator = new AutoOrchestrator(config);
|
|
323
|
+
return globalOrchestrator;
|
|
324
|
+
}
|
|
325
|
+
//# sourceMappingURL=auto-orchestrator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-orchestrator.js","sourceRoot":"","sources":["../src/auto-orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wyrm Auto-Configure - Universal AI Client Detection & Setup
|
|
3
|
+
*
|
|
4
|
+
* Automatically detects installed AI clients (VS Code Copilot, Claude Desktop,
|
|
5
|
+
* Cursor, Windsurf, Zed, etc.) and configures Wyrm's MCP server in each.
|
|
6
|
+
* Handles provider switching seamlessly — change your AI, Wyrm follows.
|
|
7
|
+
*
|
|
8
|
+
* @copyright 2026 Ghost Protocol (Pvt) Ltd. All Rights Reserved.
|
|
9
|
+
* @license Proprietary - See LICENSE file for details.
|
|
10
|
+
* @module autoconfig
|
|
11
|
+
* @version 3.0.0
|
|
12
|
+
*/
|
|
13
|
+
export interface AIClient {
|
|
14
|
+
id: string;
|
|
15
|
+
name: string;
|
|
16
|
+
icon: string;
|
|
17
|
+
configPath: string;
|
|
18
|
+
configFormat: 'vscode' | 'mcp-json' | 'zed';
|
|
19
|
+
mcpKey: string;
|
|
20
|
+
detected: boolean;
|
|
21
|
+
configured: boolean;
|
|
22
|
+
version?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface SetupResult {
|
|
25
|
+
client: AIClient;
|
|
26
|
+
action: 'configured' | 'updated' | 'skipped' | 'failed';
|
|
27
|
+
message: string;
|
|
28
|
+
backup?: string;
|
|
29
|
+
}
|
|
30
|
+
export interface WyrmConfig {
|
|
31
|
+
serverPath: string;
|
|
32
|
+
dbPath: string;
|
|
33
|
+
httpPort?: number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Detect which AI clients are installed by checking for their config directories
|
|
37
|
+
*/
|
|
38
|
+
export declare function detectClients(): AIClient[];
|
|
39
|
+
/**
|
|
40
|
+
* Auto-detect Wyrm server path
|
|
41
|
+
*/
|
|
42
|
+
export declare function findWyrmServerPath(): string;
|
|
43
|
+
/**
|
|
44
|
+
* Get the default Wyrm database path
|
|
45
|
+
*/
|
|
46
|
+
export declare function getDefaultDbPath(): string;
|
|
47
|
+
/**
|
|
48
|
+
* Configure Wyrm in a single AI client
|
|
49
|
+
*/
|
|
50
|
+
export declare function configureClient(client: AIClient, wyrmConfig: WyrmConfig): SetupResult;
|
|
51
|
+
/**
|
|
52
|
+
* Remove Wyrm from a single AI client
|
|
53
|
+
*/
|
|
54
|
+
export declare function removeFromClient(client: AIClient): SetupResult;
|
|
55
|
+
/**
|
|
56
|
+
* Auto-configure Wyrm in ALL detected AI clients
|
|
57
|
+
*/
|
|
58
|
+
export declare function autoConfigureAll(wyrmConfig?: Partial<WyrmConfig>): SetupResult[];
|
|
59
|
+
/**
|
|
60
|
+
* Remove Wyrm from ALL AI clients
|
|
61
|
+
*/
|
|
62
|
+
export declare function removeFromAll(): SetupResult[];
|
|
63
|
+
/**
|
|
64
|
+
* Configure Wyrm in specific clients only
|
|
65
|
+
*/
|
|
66
|
+
export declare function configureSpecific(clientIds: string[], wyrmConfig?: Partial<WyrmConfig>): SetupResult[];
|
|
67
|
+
interface WyrmMeta {
|
|
68
|
+
version: string;
|
|
69
|
+
serverPath: string;
|
|
70
|
+
dbPath: string;
|
|
71
|
+
httpPort?: number;
|
|
72
|
+
configuredClients: string[];
|
|
73
|
+
lastSetup: string;
|
|
74
|
+
autoUpdate: boolean;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Load Wyrm's meta configuration
|
|
78
|
+
*/
|
|
79
|
+
export declare function loadWyrmMeta(): WyrmMeta | null;
|
|
80
|
+
/**
|
|
81
|
+
* Re-configure all previously configured clients (for use after updates)
|
|
82
|
+
*/
|
|
83
|
+
export declare function reconfAll(): SetupResult[];
|
|
84
|
+
/**
|
|
85
|
+
* Get a friendly status summary of all AI clients
|
|
86
|
+
*/
|
|
87
|
+
export declare function getStatusSummary(): string;
|
|
88
|
+
export {};
|
|
89
|
+
//# sourceMappingURL=autoconfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autoconfig.d.ts","sourceRoot":"","sources":["../src/autoconfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AASH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,QAAQ,GAAG,UAAU,GAAG,KAAK,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA2HD;;GAEG;AACH,wBAAgB,aAAa,IAAI,QAAQ,EAAE,CA0B1C;AAoDD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAwC3C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AA2CD;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,GAAG,WAAW,CAyFrF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,QAAQ,GAAG,WAAW,CAqD9D;AAID;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,WAAW,EAAE,CAwBhF;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,WAAW,EAAE,CAS7C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,WAAW,EAAE,CAmBtG;AAID,UAAU,QAAQ;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;CACrB;AAsBD;;GAEG;AACH,wBAAgB,YAAY,IAAI,QAAQ,GAAG,IAAI,CAS9C;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,WAAW,EAAE,CAWzC;AAkBD;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAkCzC"}
|