opencode-swarm-plugin 0.51.0 → 0.53.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/bin/commands/log.test.ts +117 -0
- package/bin/commands/log.ts +362 -0
- package/bin/swarm.ts +53 -2
- package/dist/bin/swarm.js +1392 -1332
- package/dist/compaction-hook.d.ts.map +1 -1
- package/dist/examples/plugin-wrapper-template.ts +271 -23
- package/dist/index.js +130 -6
- package/dist/plugin.js +130 -6
- package/dist/swarm-insights.d.ts +54 -0
- package/dist/swarm-insights.d.ts.map +1 -1
- package/dist/swarm-prompts.js +89 -2
- package/dist/swarm-strategies.d.ts.map +1 -1
- package/examples/plugin-wrapper-template.ts +271 -23
- package/package.json +2 -2
- package/dist/tools/ubs/index.d.ts +0 -28
- package/dist/tools/ubs/index.d.ts.map +0 -1
- package/dist/tools/ubs/patterns/stub-patterns.d.ts +0 -43
- package/dist/tools/ubs/patterns/stub-patterns.d.ts.map +0 -1
- package/dist/tools/ubs/scanner.d.ts +0 -49
- package/dist/tools/ubs/scanner.d.ts.map +0 -1
- package/dist/tools/ubs/types.d.ts +0 -46
- package/dist/tools/ubs/types.d.ts.map +0 -1
package/dist/plugin.js
CHANGED
|
@@ -22764,7 +22764,8 @@ var init_swarm_strategies = __esm(() => {
|
|
|
22764
22764
|
"remove",
|
|
22765
22765
|
"cleanup",
|
|
22766
22766
|
"lint",
|
|
22767
|
-
"format"
|
|
22767
|
+
"format",
|
|
22768
|
+
"move"
|
|
22768
22769
|
],
|
|
22769
22770
|
guidelines: [
|
|
22770
22771
|
"Group files by directory or type (e.g., all components, all tests)",
|
|
@@ -22830,7 +22831,8 @@ var init_swarm_strategies = __esm(() => {
|
|
|
22830
22831
|
"hotfix",
|
|
22831
22832
|
"patch",
|
|
22832
22833
|
"audit",
|
|
22833
|
-
"review"
|
|
22834
|
+
"review",
|
|
22835
|
+
"cve"
|
|
22834
22836
|
],
|
|
22835
22837
|
guidelines: [
|
|
22836
22838
|
"Write tests FIRST to capture expected behavior",
|
|
@@ -45524,6 +45526,7 @@ __export(exports_swarm_insights, {
|
|
|
45524
45526
|
getFileInsights: () => getFileInsights,
|
|
45525
45527
|
getFileGotchas: () => getFileGotchas,
|
|
45526
45528
|
getFileFailureHistory: () => getFileFailureHistory,
|
|
45529
|
+
getCompactionAnalytics: () => getCompactionAnalytics,
|
|
45527
45530
|
getCachedInsights: () => getCachedInsights,
|
|
45528
45531
|
formatInsightsForPrompt: () => formatInsightsForPrompt,
|
|
45529
45532
|
formatFileHistoryWarnings: () => formatFileHistoryWarnings,
|
|
@@ -45918,6 +45921,90 @@ async function getViolationAnalytics(swarmMail, projectKey) {
|
|
|
45918
45921
|
violationRate
|
|
45919
45922
|
};
|
|
45920
45923
|
}
|
|
45924
|
+
async function getCompactionAnalytics(swarmMail) {
|
|
45925
|
+
const db = await swarmMail.getDatabase();
|
|
45926
|
+
const query = `
|
|
45927
|
+
SELECT data, timestamp
|
|
45928
|
+
FROM events
|
|
45929
|
+
WHERE type = 'coordinator_compaction'
|
|
45930
|
+
ORDER BY timestamp DESC
|
|
45931
|
+
`;
|
|
45932
|
+
const result = await db.query(query, []);
|
|
45933
|
+
if (!result.rows || result.rows.length === 0) {
|
|
45934
|
+
return {
|
|
45935
|
+
totalEvents: 0,
|
|
45936
|
+
byType: {
|
|
45937
|
+
prompt_generated: 0,
|
|
45938
|
+
detection_complete: 0,
|
|
45939
|
+
context_injected: 0,
|
|
45940
|
+
resumption_started: 0,
|
|
45941
|
+
tool_call_tracked: 0
|
|
45942
|
+
},
|
|
45943
|
+
avgPromptSize: 0,
|
|
45944
|
+
successRate: 0,
|
|
45945
|
+
recentPrompts: [],
|
|
45946
|
+
byConfidence: { high: 0, medium: 0, low: 0 }
|
|
45947
|
+
};
|
|
45948
|
+
}
|
|
45949
|
+
const byType = {};
|
|
45950
|
+
const byConfidence = { high: 0, medium: 0, low: 0 };
|
|
45951
|
+
const promptSizes = [];
|
|
45952
|
+
const recentPrompts = [];
|
|
45953
|
+
let totalEvents = 0;
|
|
45954
|
+
let successfulCompactions = 0;
|
|
45955
|
+
for (const row of result.rows) {
|
|
45956
|
+
try {
|
|
45957
|
+
const data = JSON.parse(row.data);
|
|
45958
|
+
if (data.event_type === "COMPACTION") {
|
|
45959
|
+
totalEvents++;
|
|
45960
|
+
const compactionType = data.compaction_type || "unknown";
|
|
45961
|
+
byType[compactionType] = (byType[compactionType] || 0) + 1;
|
|
45962
|
+
if (data.payload?.confidence) {
|
|
45963
|
+
const conf = data.payload.confidence.toLowerCase();
|
|
45964
|
+
if (conf in byConfidence) {
|
|
45965
|
+
byConfidence[conf]++;
|
|
45966
|
+
}
|
|
45967
|
+
}
|
|
45968
|
+
if (compactionType === "prompt_generated") {
|
|
45969
|
+
successfulCompactions++;
|
|
45970
|
+
if (data.payload?.prompt_length) {
|
|
45971
|
+
promptSizes.push(data.payload.prompt_length);
|
|
45972
|
+
}
|
|
45973
|
+
if (recentPrompts.length < 10) {
|
|
45974
|
+
const preview = {
|
|
45975
|
+
timestamp: new Date(row.timestamp).toISOString(),
|
|
45976
|
+
length: data.payload?.prompt_length || 0,
|
|
45977
|
+
confidence: data.payload?.confidence
|
|
45978
|
+
};
|
|
45979
|
+
if (data.payload?.full_prompt) {
|
|
45980
|
+
preview.preview = truncateText(data.payload.full_prompt, 200);
|
|
45981
|
+
}
|
|
45982
|
+
recentPrompts.push(preview);
|
|
45983
|
+
}
|
|
45984
|
+
}
|
|
45985
|
+
}
|
|
45986
|
+
} catch (e) {
|
|
45987
|
+
continue;
|
|
45988
|
+
}
|
|
45989
|
+
}
|
|
45990
|
+
const avgPromptSize = promptSizes.length > 0 ? promptSizes.reduce((sum2, size10) => sum2 + size10, 0) / promptSizes.length : 0;
|
|
45991
|
+
const successRate = totalEvents > 0 ? successfulCompactions / totalEvents * 100 : 0;
|
|
45992
|
+
return {
|
|
45993
|
+
totalEvents,
|
|
45994
|
+
byType: {
|
|
45995
|
+
prompt_generated: byType.prompt_generated || 0,
|
|
45996
|
+
detection_complete: byType.detection_complete || 0,
|
|
45997
|
+
context_injected: byType.context_injected || 0,
|
|
45998
|
+
resumption_started: byType.resumption_started || 0,
|
|
45999
|
+
tool_call_tracked: byType.tool_call_tracked || 0,
|
|
46000
|
+
...byType
|
|
46001
|
+
},
|
|
46002
|
+
avgPromptSize: Math.round(avgPromptSize),
|
|
46003
|
+
successRate: Math.round(successRate * 100) / 100,
|
|
46004
|
+
recentPrompts,
|
|
46005
|
+
byConfidence
|
|
46006
|
+
};
|
|
46007
|
+
}
|
|
45921
46008
|
function formatFileHistoryWarnings(histories) {
|
|
45922
46009
|
if (histories.length === 0) {
|
|
45923
46010
|
return "";
|
|
@@ -70262,11 +70349,11 @@ async function detectSwarm(getHiveAdapterFn, checkSwarmHealthFn, getHiveWorkingD
|
|
|
70262
70349
|
}, "captured epic state for context");
|
|
70263
70350
|
}
|
|
70264
70351
|
}
|
|
70265
|
-
const
|
|
70266
|
-
const recentCells = cells.filter((c) => c.updated_at >
|
|
70352
|
+
const thirtyMinutesAgo = Date.now() - 30 * 60 * 1000;
|
|
70353
|
+
const recentCells = cells.filter((c) => c.updated_at > thirtyMinutesAgo);
|
|
70267
70354
|
if (recentCells.length > 0) {
|
|
70268
70355
|
mediumConfidence = true;
|
|
70269
|
-
reasons.push(`${recentCells.length} cells updated in last
|
|
70356
|
+
reasons.push(`${recentCells.length} cells updated in last 30 minutes`);
|
|
70270
70357
|
}
|
|
70271
70358
|
if (cells.length > 0) {
|
|
70272
70359
|
lowConfidence = true;
|
|
@@ -70354,6 +70441,16 @@ function createCompactionHook(options2) {
|
|
|
70354
70441
|
recordPhaseStart(metrics, "DETECT" /* DETECT */);
|
|
70355
70442
|
const detection = await detectSwarm(customGetHiveAdapter || getHiveAdapter, customCheckSwarmHealth || checkSwarmHealth3, customGetHiveWorkingDirectory || getHiveWorkingDirectory, log3);
|
|
70356
70443
|
let effectiveConfidence = detection.confidence;
|
|
70444
|
+
if (scannedState.agentName && effectiveConfidence === "none") {
|
|
70445
|
+
effectiveConfidence = "medium";
|
|
70446
|
+
detection.reasons.push("coordinator initialized (swarmmail_init)");
|
|
70447
|
+
recordPatternExtracted(metrics, "coordinator_init", "swarmmail_init detected");
|
|
70448
|
+
}
|
|
70449
|
+
if (scannedState.epicId && effectiveConfidence === "none") {
|
|
70450
|
+
effectiveConfidence = "medium";
|
|
70451
|
+
detection.reasons.push("epic created (hive_create_epic)");
|
|
70452
|
+
recordPatternExtracted(metrics, "epic_created", "hive_create_epic detected");
|
|
70453
|
+
}
|
|
70357
70454
|
if (scannedState.epicId || scannedState.subtasks.size > 0) {
|
|
70358
70455
|
if (effectiveConfidence === "none" || effectiveConfidence === "low") {
|
|
70359
70456
|
effectiveConfidence = "medium";
|
|
@@ -70466,6 +70563,32 @@ function createCompactionHook(options2) {
|
|
|
70466
70563
|
recordPhaseStart(metrics, "COMPLETE" /* COMPLETE */);
|
|
70467
70564
|
const duration3 = Date.now() - startTime;
|
|
70468
70565
|
const summary5 = getMetricsSummary(metrics);
|
|
70566
|
+
const openSubtasksCount = detection.state?.subtasks.open || 0;
|
|
70567
|
+
const activeReservationsCount = detection.reasons.find((r) => r.includes("active file reservations")) ? parseInt(detection.reasons.find((r) => r.includes("active file reservations"))?.match(/\d+/)?.[0] || "0") : 0;
|
|
70568
|
+
const registeredAgentsCount = detection.reasons.find((r) => r.includes("registered agents")) ? parseInt(detection.reasons.find((r) => r.includes("registered agents"))?.match(/\d+/)?.[0] || "0") : 0;
|
|
70569
|
+
const compactionSignals = [];
|
|
70570
|
+
let compactionRecommended = false;
|
|
70571
|
+
if (openSubtasksCount >= 3) {
|
|
70572
|
+
compactionSignals.push(`${openSubtasksCount} open subtasks`);
|
|
70573
|
+
compactionRecommended = true;
|
|
70574
|
+
}
|
|
70575
|
+
if (activeReservationsCount >= 2) {
|
|
70576
|
+
compactionSignals.push(`${activeReservationsCount} active reservations`);
|
|
70577
|
+
compactionRecommended = true;
|
|
70578
|
+
}
|
|
70579
|
+
if (registeredAgentsCount >= 2) {
|
|
70580
|
+
compactionSignals.push(`${registeredAgentsCount} registered agents`);
|
|
70581
|
+
compactionRecommended = true;
|
|
70582
|
+
}
|
|
70583
|
+
if (compactionRecommended) {
|
|
70584
|
+
log3.info({
|
|
70585
|
+
compaction_recommended: true,
|
|
70586
|
+
reasons: compactionSignals,
|
|
70587
|
+
open_subtasks: openSubtasksCount,
|
|
70588
|
+
active_reservations: activeReservationsCount,
|
|
70589
|
+
registered_agents: registeredAgentsCount
|
|
70590
|
+
}, "compaction recommended");
|
|
70591
|
+
}
|
|
70469
70592
|
log3.info({
|
|
70470
70593
|
duration_ms: duration3,
|
|
70471
70594
|
success: true,
|
|
@@ -70480,7 +70603,8 @@ function createCompactionHook(options2) {
|
|
|
70480
70603
|
})),
|
|
70481
70604
|
patterns_extracted: summary5.patterns_extracted,
|
|
70482
70605
|
patterns_skipped: summary5.patterns_skipped,
|
|
70483
|
-
extraction_success_rate: summary5.extraction_success_rate
|
|
70606
|
+
extraction_success_rate: summary5.extraction_success_rate,
|
|
70607
|
+
compaction_signals: compactionSignals
|
|
70484
70608
|
}
|
|
70485
70609
|
}, "compaction complete");
|
|
70486
70610
|
recordPhaseComplete(metrics, "COMPLETE" /* COMPLETE */);
|
package/dist/swarm-insights.d.ts
CHANGED
|
@@ -310,6 +310,60 @@ export declare function trackCoordinatorViolation(swarmMail: SwarmMailAdapter, v
|
|
|
310
310
|
* ```
|
|
311
311
|
*/
|
|
312
312
|
export declare function getViolationAnalytics(swarmMail: SwarmMailAdapter, projectKey?: string): Promise<ViolationAnalytics>;
|
|
313
|
+
export interface CompactionPromptPreview {
|
|
314
|
+
timestamp: string;
|
|
315
|
+
length: number;
|
|
316
|
+
preview?: string;
|
|
317
|
+
confidence?: string;
|
|
318
|
+
}
|
|
319
|
+
export interface CompactionAnalytics {
|
|
320
|
+
totalEvents: number;
|
|
321
|
+
byType: {
|
|
322
|
+
prompt_generated: number;
|
|
323
|
+
detection_complete: number;
|
|
324
|
+
context_injected: number;
|
|
325
|
+
resumption_started: number;
|
|
326
|
+
tool_call_tracked: number;
|
|
327
|
+
[key: string]: number;
|
|
328
|
+
};
|
|
329
|
+
avgPromptSize: number;
|
|
330
|
+
successRate: number;
|
|
331
|
+
recentPrompts: CompactionPromptPreview[];
|
|
332
|
+
byConfidence: {
|
|
333
|
+
high: number;
|
|
334
|
+
medium: number;
|
|
335
|
+
low: number;
|
|
336
|
+
};
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Get analytics for coordinator compaction events.
|
|
340
|
+
*
|
|
341
|
+
* Queries coordinator_compaction events to calculate:
|
|
342
|
+
* - Total compaction attempts by type (prompt_generated vs detection_failed)
|
|
343
|
+
* - Average prompt size for successful compactions
|
|
344
|
+
* - Success/failure rate
|
|
345
|
+
* - Recent prompts with preview (truncated to 200 chars)
|
|
346
|
+
* - Confidence distribution
|
|
347
|
+
*
|
|
348
|
+
* @param swarmMail - SwarmMail adapter for database access
|
|
349
|
+
* @returns Promise resolving to compaction analytics
|
|
350
|
+
*
|
|
351
|
+
* @example
|
|
352
|
+
* ```typescript
|
|
353
|
+
* const analytics = await getCompactionAnalytics(swarmMail);
|
|
354
|
+
* // Returns: {
|
|
355
|
+
* // totalEvents: 83,
|
|
356
|
+
* // byType: { prompt_generated: 72, detection_failed: 11 },
|
|
357
|
+
* // avgPromptSize: 4800,
|
|
358
|
+
* // successRate: 86.7,
|
|
359
|
+
* // recentPrompts: [
|
|
360
|
+
* // { timestamp: "2025-12-25T10:00:00Z", length: 5200, preview: "Epic bd-123...", confidence: "high" }
|
|
361
|
+
* // ],
|
|
362
|
+
* // byConfidence: { high: 60, medium: 12, low: 11 }
|
|
363
|
+
* // }
|
|
364
|
+
* ```
|
|
365
|
+
*/
|
|
366
|
+
export declare function getCompactionAnalytics(swarmMail: SwarmMailAdapter): Promise<CompactionAnalytics>;
|
|
313
367
|
/**
|
|
314
368
|
* Format file failure history as warnings for worker prompts.
|
|
315
369
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swarm-insights.d.ts","sourceRoot":"","sources":["../src/swarm-insights.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"swarm-insights.d.ts","sourceRoot":"","sources":["../src/swarm-insights.ts"],"names":[],"mappings":"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"}
|
package/dist/swarm-prompts.js
CHANGED
|
@@ -35862,6 +35862,7 @@ __export(exports_swarm_insights, {
|
|
|
35862
35862
|
getFileInsights: () => getFileInsights,
|
|
35863
35863
|
getFileGotchas: () => getFileGotchas,
|
|
35864
35864
|
getFileFailureHistory: () => getFileFailureHistory,
|
|
35865
|
+
getCompactionAnalytics: () => getCompactionAnalytics,
|
|
35865
35866
|
getCachedInsights: () => getCachedInsights,
|
|
35866
35867
|
formatInsightsForPrompt: () => formatInsightsForPrompt,
|
|
35867
35868
|
formatFileHistoryWarnings: () => formatFileHistoryWarnings,
|
|
@@ -36256,6 +36257,90 @@ async function getViolationAnalytics(swarmMail, projectKey) {
|
|
|
36256
36257
|
violationRate
|
|
36257
36258
|
};
|
|
36258
36259
|
}
|
|
36260
|
+
async function getCompactionAnalytics(swarmMail) {
|
|
36261
|
+
const db = await swarmMail.getDatabase();
|
|
36262
|
+
const query = `
|
|
36263
|
+
SELECT data, timestamp
|
|
36264
|
+
FROM events
|
|
36265
|
+
WHERE type = 'coordinator_compaction'
|
|
36266
|
+
ORDER BY timestamp DESC
|
|
36267
|
+
`;
|
|
36268
|
+
const result = await db.query(query, []);
|
|
36269
|
+
if (!result.rows || result.rows.length === 0) {
|
|
36270
|
+
return {
|
|
36271
|
+
totalEvents: 0,
|
|
36272
|
+
byType: {
|
|
36273
|
+
prompt_generated: 0,
|
|
36274
|
+
detection_complete: 0,
|
|
36275
|
+
context_injected: 0,
|
|
36276
|
+
resumption_started: 0,
|
|
36277
|
+
tool_call_tracked: 0
|
|
36278
|
+
},
|
|
36279
|
+
avgPromptSize: 0,
|
|
36280
|
+
successRate: 0,
|
|
36281
|
+
recentPrompts: [],
|
|
36282
|
+
byConfidence: { high: 0, medium: 0, low: 0 }
|
|
36283
|
+
};
|
|
36284
|
+
}
|
|
36285
|
+
const byType = {};
|
|
36286
|
+
const byConfidence = { high: 0, medium: 0, low: 0 };
|
|
36287
|
+
const promptSizes = [];
|
|
36288
|
+
const recentPrompts = [];
|
|
36289
|
+
let totalEvents = 0;
|
|
36290
|
+
let successfulCompactions = 0;
|
|
36291
|
+
for (const row of result.rows) {
|
|
36292
|
+
try {
|
|
36293
|
+
const data = JSON.parse(row.data);
|
|
36294
|
+
if (data.event_type === "COMPACTION") {
|
|
36295
|
+
totalEvents++;
|
|
36296
|
+
const compactionType = data.compaction_type || "unknown";
|
|
36297
|
+
byType[compactionType] = (byType[compactionType] || 0) + 1;
|
|
36298
|
+
if (data.payload?.confidence) {
|
|
36299
|
+
const conf = data.payload.confidence.toLowerCase();
|
|
36300
|
+
if (conf in byConfidence) {
|
|
36301
|
+
byConfidence[conf]++;
|
|
36302
|
+
}
|
|
36303
|
+
}
|
|
36304
|
+
if (compactionType === "prompt_generated") {
|
|
36305
|
+
successfulCompactions++;
|
|
36306
|
+
if (data.payload?.prompt_length) {
|
|
36307
|
+
promptSizes.push(data.payload.prompt_length);
|
|
36308
|
+
}
|
|
36309
|
+
if (recentPrompts.length < 10) {
|
|
36310
|
+
const preview = {
|
|
36311
|
+
timestamp: new Date(row.timestamp).toISOString(),
|
|
36312
|
+
length: data.payload?.prompt_length || 0,
|
|
36313
|
+
confidence: data.payload?.confidence
|
|
36314
|
+
};
|
|
36315
|
+
if (data.payload?.full_prompt) {
|
|
36316
|
+
preview.preview = truncateText(data.payload.full_prompt, 200);
|
|
36317
|
+
}
|
|
36318
|
+
recentPrompts.push(preview);
|
|
36319
|
+
}
|
|
36320
|
+
}
|
|
36321
|
+
}
|
|
36322
|
+
} catch (e) {
|
|
36323
|
+
continue;
|
|
36324
|
+
}
|
|
36325
|
+
}
|
|
36326
|
+
const avgPromptSize = promptSizes.length > 0 ? promptSizes.reduce((sum2, size10) => sum2 + size10, 0) / promptSizes.length : 0;
|
|
36327
|
+
const successRate = totalEvents > 0 ? successfulCompactions / totalEvents * 100 : 0;
|
|
36328
|
+
return {
|
|
36329
|
+
totalEvents,
|
|
36330
|
+
byType: {
|
|
36331
|
+
prompt_generated: byType.prompt_generated || 0,
|
|
36332
|
+
detection_complete: byType.detection_complete || 0,
|
|
36333
|
+
context_injected: byType.context_injected || 0,
|
|
36334
|
+
resumption_started: byType.resumption_started || 0,
|
|
36335
|
+
tool_call_tracked: byType.tool_call_tracked || 0,
|
|
36336
|
+
...byType
|
|
36337
|
+
},
|
|
36338
|
+
avgPromptSize: Math.round(avgPromptSize),
|
|
36339
|
+
successRate: Math.round(successRate * 100) / 100,
|
|
36340
|
+
recentPrompts,
|
|
36341
|
+
byConfidence
|
|
36342
|
+
};
|
|
36343
|
+
}
|
|
36259
36344
|
function formatFileHistoryWarnings(histories) {
|
|
36260
36345
|
if (histories.length === 0) {
|
|
36261
36346
|
return "";
|
|
@@ -36490,7 +36575,8 @@ var init_swarm_strategies = __esm(() => {
|
|
|
36490
36575
|
"remove",
|
|
36491
36576
|
"cleanup",
|
|
36492
36577
|
"lint",
|
|
36493
|
-
"format"
|
|
36578
|
+
"format",
|
|
36579
|
+
"move"
|
|
36494
36580
|
],
|
|
36495
36581
|
guidelines: [
|
|
36496
36582
|
"Group files by directory or type (e.g., all components, all tests)",
|
|
@@ -36556,7 +36642,8 @@ var init_swarm_strategies = __esm(() => {
|
|
|
36556
36642
|
"hotfix",
|
|
36557
36643
|
"patch",
|
|
36558
36644
|
"audit",
|
|
36559
|
-
"review"
|
|
36645
|
+
"review",
|
|
36646
|
+
"cve"
|
|
36560
36647
|
],
|
|
36561
36648
|
guidelines: [
|
|
36562
36649
|
"Write tests FIRST to capture expected behavior",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swarm-strategies.d.ts","sourceRoot":"","sources":["../src/swarm-strategies.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAC7B,YAAY,GACZ,eAAe,GACf,YAAY,GACZ,gBAAgB,GAChB,MAAM,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,2BAA2B;;;;;;EAMtC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB,UAO5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,UAQ5B,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,CAC7B,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,EACtC,kBAAkB,
|
|
1
|
+
{"version":3,"file":"swarm-strategies.d.ts","sourceRoot":"","sources":["../src/swarm-strategies.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAC7B,YAAY,GACZ,eAAe,GACf,YAAY,GACZ,gBAAgB,GAChB,MAAM,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,2BAA2B;;;;;;EAMtC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB,UAO5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,UAQ5B,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,CAC7B,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,EACtC,kBAAkB,CAkKnB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC;IACT,QAAQ,EAAE,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,KAAK,CAAC;QAClB,QAAQ,EAAE,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;QACjD,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,SAAS,CAAC,EAAE;QACV,iBAAiB,EAAE,MAAM,CAAC;QAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;CACH,CAAC,CAwKD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,GAC/C,MAAM,CAmBR;AAMD;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;CA0ChC,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;CAEzB,CAAC"}
|