opencode-swarm-plugin 0.56.1 → 0.57.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -0
- package/claude-plugin/agents/background-worker.md +1 -0
- package/claude-plugin/agents/coordinator.md +2 -0
- package/claude-plugin/agents/worker.md +1 -0
- package/claude-plugin/bin/swarm-mcp-server.ts +53 -8
- package/claude-plugin/dist/agent-mail.d.ts +480 -0
- package/claude-plugin/dist/agent-mail.d.ts.map +1 -0
- package/claude-plugin/dist/anti-patterns.d.ts +257 -0
- package/claude-plugin/dist/anti-patterns.d.ts.map +1 -0
- package/claude-plugin/dist/bin/swarm.js +373132 -0
- package/claude-plugin/dist/build/mcp-bundle.d.ts +16 -0
- package/claude-plugin/dist/build/mcp-bundle.d.ts.map +1 -0
- package/claude-plugin/dist/cache/claude-plugin-cache.d.ts +41 -0
- package/claude-plugin/dist/cache/claude-plugin-cache.d.ts.map +1 -0
- package/claude-plugin/dist/cass-tools.d.ts +74 -0
- package/claude-plugin/dist/cass-tools.d.ts.map +1 -0
- package/claude-plugin/dist/claude-plugin/claude-plugin-assets.d.ts +10 -0
- package/claude-plugin/dist/claude-plugin/claude-plugin-assets.d.ts.map +1 -0
- package/claude-plugin/dist/compaction-hook.d.ts +178 -0
- package/claude-plugin/dist/compaction-hook.d.ts.map +1 -0
- package/claude-plugin/dist/compaction-observability.d.ts +173 -0
- package/claude-plugin/dist/compaction-observability.d.ts.map +1 -0
- package/claude-plugin/dist/compaction-prompt-scoring.d.ts +125 -0
- package/claude-plugin/dist/compaction-prompt-scoring.d.ts.map +1 -0
- package/claude-plugin/dist/compaction-prompt-scoring.js +139 -0
- package/claude-plugin/dist/contributor-tools.d.ts +42 -0
- package/claude-plugin/dist/contributor-tools.d.ts.map +1 -0
- package/claude-plugin/dist/coordinator-guard.d.ts +79 -0
- package/claude-plugin/dist/coordinator-guard.d.ts.map +1 -0
- package/claude-plugin/dist/dashboard.d.ts +82 -0
- package/claude-plugin/dist/dashboard.d.ts.map +1 -0
- package/claude-plugin/dist/decision-trace-integration.d.ts +204 -0
- package/claude-plugin/dist/decision-trace-integration.d.ts.map +1 -0
- package/claude-plugin/dist/error-enrichment.d.ts +49 -0
- package/claude-plugin/dist/error-enrichment.d.ts.map +1 -0
- package/claude-plugin/dist/eval-capture.d.ts +494 -0
- package/claude-plugin/dist/eval-capture.d.ts.map +1 -0
- package/claude-plugin/dist/eval-capture.js +12844 -0
- package/claude-plugin/dist/eval-gates.d.ts +84 -0
- package/claude-plugin/dist/eval-gates.d.ts.map +1 -0
- package/claude-plugin/dist/eval-history.d.ts +117 -0
- package/claude-plugin/dist/eval-history.d.ts.map +1 -0
- package/claude-plugin/dist/eval-learning.d.ts +216 -0
- package/claude-plugin/dist/eval-learning.d.ts.map +1 -0
- package/claude-plugin/dist/eval-runner.d.ts +134 -0
- package/claude-plugin/dist/eval-runner.d.ts.map +1 -0
- package/claude-plugin/dist/examples/plugin-wrapper-template.ts +3341 -0
- package/claude-plugin/dist/export-tools.d.ts +76 -0
- package/claude-plugin/dist/export-tools.d.ts.map +1 -0
- package/claude-plugin/dist/hive.d.ts +949 -0
- package/claude-plugin/dist/hive.d.ts.map +1 -0
- package/claude-plugin/dist/hive.js +15009 -0
- package/claude-plugin/dist/hivemind-tools.d.ts +479 -0
- package/claude-plugin/dist/hivemind-tools.d.ts.map +1 -0
- package/claude-plugin/dist/hooks/atomic-write.d.ts +21 -0
- package/claude-plugin/dist/hooks/atomic-write.d.ts.map +1 -0
- package/claude-plugin/dist/hooks/constants.d.ts +28 -0
- package/claude-plugin/dist/hooks/constants.d.ts.map +1 -0
- package/claude-plugin/dist/hooks/index.d.ts +16 -0
- package/claude-plugin/dist/hooks/index.d.ts.map +1 -0
- package/claude-plugin/dist/hooks/session-start.d.ts +30 -0
- package/claude-plugin/dist/hooks/session-start.d.ts.map +1 -0
- package/claude-plugin/dist/hooks/tool-complete.d.ts +54 -0
- package/claude-plugin/dist/hooks/tool-complete.d.ts.map +1 -0
- package/claude-plugin/dist/index.d.ts +2017 -0
- package/claude-plugin/dist/index.d.ts.map +1 -0
- package/claude-plugin/dist/index.js +73454 -0
- package/claude-plugin/dist/learning.d.ts +700 -0
- package/claude-plugin/dist/learning.d.ts.map +1 -0
- package/claude-plugin/dist/logger.d.ts +38 -0
- package/claude-plugin/dist/logger.d.ts.map +1 -0
- package/claude-plugin/dist/mandate-promotion.d.ts +93 -0
- package/claude-plugin/dist/mandate-promotion.d.ts.map +1 -0
- package/claude-plugin/dist/mandate-storage.d.ts +209 -0
- package/claude-plugin/dist/mandate-storage.d.ts.map +1 -0
- package/claude-plugin/dist/mandates.d.ts +230 -0
- package/claude-plugin/dist/mandates.d.ts.map +1 -0
- package/claude-plugin/dist/mcp/swarm-mcp-server.js +19675 -0
- package/claude-plugin/dist/memory-tools.d.ts +281 -0
- package/claude-plugin/dist/memory-tools.d.ts.map +1 -0
- package/claude-plugin/dist/memory.d.ts +164 -0
- package/claude-plugin/dist/memory.d.ts.map +1 -0
- package/claude-plugin/dist/model-selection.d.ts +37 -0
- package/claude-plugin/dist/model-selection.d.ts.map +1 -0
- package/claude-plugin/dist/observability-health.d.ts +87 -0
- package/claude-plugin/dist/observability-health.d.ts.map +1 -0
- package/claude-plugin/dist/observability-tools.d.ts +184 -0
- package/claude-plugin/dist/observability-tools.d.ts.map +1 -0
- package/claude-plugin/dist/output-guardrails.d.ts +125 -0
- package/claude-plugin/dist/output-guardrails.d.ts.map +1 -0
- package/claude-plugin/dist/pattern-maturity.d.ts +246 -0
- package/claude-plugin/dist/pattern-maturity.d.ts.map +1 -0
- package/claude-plugin/dist/planning-guardrails.d.ts +183 -0
- package/claude-plugin/dist/planning-guardrails.d.ts.map +1 -0
- package/claude-plugin/dist/plugin.d.ts +22 -0
- package/claude-plugin/dist/plugin.d.ts.map +1 -0
- package/claude-plugin/dist/plugin.js +72296 -0
- package/claude-plugin/dist/post-compaction-tracker.d.ts +133 -0
- package/claude-plugin/dist/post-compaction-tracker.d.ts.map +1 -0
- package/claude-plugin/dist/query-tools.d.ts +90 -0
- package/claude-plugin/dist/query-tools.d.ts.map +1 -0
- package/claude-plugin/dist/rate-limiter.d.ts +218 -0
- package/claude-plugin/dist/rate-limiter.d.ts.map +1 -0
- package/claude-plugin/dist/regression-detection.d.ts +58 -0
- package/claude-plugin/dist/regression-detection.d.ts.map +1 -0
- package/claude-plugin/dist/replay-tools.d.ts +28 -0
- package/claude-plugin/dist/replay-tools.d.ts.map +1 -0
- package/claude-plugin/dist/repo-crawl.d.ts +146 -0
- package/claude-plugin/dist/repo-crawl.d.ts.map +1 -0
- package/claude-plugin/dist/schemas/cell-events.d.ts +1352 -0
- package/claude-plugin/dist/schemas/cell-events.d.ts.map +1 -0
- package/claude-plugin/dist/schemas/cell.d.ts +413 -0
- package/claude-plugin/dist/schemas/cell.d.ts.map +1 -0
- package/claude-plugin/dist/schemas/evaluation.d.ts +161 -0
- package/claude-plugin/dist/schemas/evaluation.d.ts.map +1 -0
- package/claude-plugin/dist/schemas/index.d.ts +46 -0
- package/claude-plugin/dist/schemas/index.d.ts.map +1 -0
- package/claude-plugin/dist/schemas/mandate.d.ts +336 -0
- package/claude-plugin/dist/schemas/mandate.d.ts.map +1 -0
- package/claude-plugin/dist/schemas/swarm-context.d.ts +131 -0
- package/claude-plugin/dist/schemas/swarm-context.d.ts.map +1 -0
- package/claude-plugin/dist/schemas/task.d.ts +189 -0
- package/claude-plugin/dist/schemas/task.d.ts.map +1 -0
- package/claude-plugin/dist/schemas/worker-handoff.d.ts +78 -0
- package/claude-plugin/dist/schemas/worker-handoff.d.ts.map +1 -0
- package/claude-plugin/dist/sessions/agent-discovery.d.ts +59 -0
- package/claude-plugin/dist/sessions/agent-discovery.d.ts.map +1 -0
- package/claude-plugin/dist/sessions/index.d.ts +10 -0
- package/claude-plugin/dist/sessions/index.d.ts.map +1 -0
- package/claude-plugin/dist/skills.d.ts +490 -0
- package/claude-plugin/dist/skills.d.ts.map +1 -0
- package/claude-plugin/dist/storage.d.ts +260 -0
- package/claude-plugin/dist/storage.d.ts.map +1 -0
- package/claude-plugin/dist/structured.d.ts +206 -0
- package/claude-plugin/dist/structured.d.ts.map +1 -0
- package/claude-plugin/dist/swarm-adversarial-review.d.ts +104 -0
- package/claude-plugin/dist/swarm-adversarial-review.d.ts.map +1 -0
- package/claude-plugin/dist/swarm-decompose.d.ts +297 -0
- package/claude-plugin/dist/swarm-decompose.d.ts.map +1 -0
- package/claude-plugin/dist/swarm-insights.d.ts +390 -0
- package/claude-plugin/dist/swarm-insights.d.ts.map +1 -0
- package/claude-plugin/dist/swarm-mail.d.ts +274 -0
- package/claude-plugin/dist/swarm-mail.d.ts.map +1 -0
- package/claude-plugin/dist/swarm-orchestrate.d.ts +924 -0
- package/claude-plugin/dist/swarm-orchestrate.d.ts.map +1 -0
- package/claude-plugin/dist/swarm-prompts.d.ts +467 -0
- package/claude-plugin/dist/swarm-prompts.d.ts.map +1 -0
- package/claude-plugin/dist/swarm-prompts.js +45286 -0
- package/claude-plugin/dist/swarm-research.d.ts +125 -0
- package/claude-plugin/dist/swarm-research.d.ts.map +1 -0
- package/claude-plugin/dist/swarm-review.d.ts +214 -0
- package/claude-plugin/dist/swarm-review.d.ts.map +1 -0
- package/claude-plugin/dist/swarm-signature.d.ts +106 -0
- package/claude-plugin/dist/swarm-signature.d.ts.map +1 -0
- package/claude-plugin/dist/swarm-strategies.d.ts +113 -0
- package/claude-plugin/dist/swarm-strategies.d.ts.map +1 -0
- package/claude-plugin/dist/swarm-validation.d.ts +127 -0
- package/claude-plugin/dist/swarm-validation.d.ts.map +1 -0
- package/claude-plugin/dist/swarm-worktree.d.ts +185 -0
- package/claude-plugin/dist/swarm-worktree.d.ts.map +1 -0
- package/claude-plugin/dist/swarm.d.ts +590 -0
- package/claude-plugin/dist/swarm.d.ts.map +1 -0
- package/claude-plugin/dist/tool-availability.d.ts +91 -0
- package/claude-plugin/dist/tool-availability.d.ts.map +1 -0
- package/claude-plugin/dist/utils/tree-renderer.d.ts +61 -0
- package/claude-plugin/dist/utils/tree-renderer.d.ts.map +1 -0
- package/claude-plugin/dist/validators/index.d.ts +7 -0
- package/claude-plugin/dist/validators/index.d.ts.map +1 -0
- package/claude-plugin/dist/validators/schema-validator.d.ts +58 -0
- package/claude-plugin/dist/validators/schema-validator.d.ts.map +1 -0
- package/claude-plugin/scripts/copyClaudePluginRuntimeAssets.ts +84 -0
- package/claude-plugin/skills/always-on-guidance/SKILL.md +45 -0
- package/claude-plugin/tests/mcp-runtime.test.ts +187 -0
- package/dist/agent-mail.d.ts +4 -4
- package/dist/agent-mail.d.ts.map +1 -1
- package/dist/bin/swarm.js +479 -20
- package/dist/build/mcp-bundle.d.ts +16 -0
- package/dist/build/mcp-bundle.d.ts.map +1 -0
- package/dist/cache/claude-plugin-cache.d.ts +41 -0
- package/dist/cache/claude-plugin-cache.d.ts.map +1 -0
- package/dist/claude-plugin/claude-plugin-assets.d.ts +10 -0
- package/dist/claude-plugin/claude-plugin-assets.d.ts.map +1 -0
- package/dist/compaction-hook.d.ts +1 -1
- package/dist/compaction-hook.d.ts.map +1 -1
- package/dist/index.js +371 -260
- package/dist/mcp/swarm-mcp-server.js +19675 -0
- package/dist/plugin.js +370 -259
- package/dist/skills.d.ts +15 -0
- package/dist/skills.d.ts.map +1 -1
- package/dist/swarm-mail.d.ts.map +1 -1
- package/dist/swarm-prompts.d.ts +3 -1
- package/dist/swarm-prompts.d.ts.map +1 -1
- package/dist/swarm-prompts.js +88 -8
- package/package.json +4 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-availability.d.ts","sourceRoot":"","sources":["../src/tool-availability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAUH,MAAM,MAAM,QAAQ,GAChB,iBAAiB,GACjB,MAAM,GACN,UAAU,GACV,MAAM,GACN,OAAO,GACP,YAAY,GACZ,YAAY,CAAC;AAEjB,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAuRD;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAWnE;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAGtE;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,gBAAgB,CAAC,CAO3B;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAC5C,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAChC,CA0BA;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAQpD;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAO/D;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EACtC,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACxB,QAAQ,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAC7B,OAAO,CAAC,CAAC,CAAC,CASZ;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,CAAC,EACrC,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACvB,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CASxB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAGrC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC,GAC5C,MAAM,CAWR"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Tree visualization utilities for cell hierarchies
|
|
3
|
+
*
|
|
4
|
+
* Inspired by Chainlink's tree command.
|
|
5
|
+
* Credit: https://github.com/dollspace-gay/chainlink
|
|
6
|
+
*
|
|
7
|
+
* Renders cell/epic hierarchies with ASCII box-drawing characters:
|
|
8
|
+
* - ○ open
|
|
9
|
+
* - ◐ in_progress
|
|
10
|
+
* - ● closed
|
|
11
|
+
* - ⊘ blocked
|
|
12
|
+
*
|
|
13
|
+
* Priority indicators: P0 (critical), P1 (high), P2 (medium), P3 (low)
|
|
14
|
+
*/
|
|
15
|
+
import type { Cell } from "swarm-mail";
|
|
16
|
+
export interface TreeNode {
|
|
17
|
+
cell: Cell;
|
|
18
|
+
children: TreeNode[];
|
|
19
|
+
}
|
|
20
|
+
export interface CellDisplay {
|
|
21
|
+
title: string;
|
|
22
|
+
type: string;
|
|
23
|
+
status: string;
|
|
24
|
+
priority: number;
|
|
25
|
+
blocked: boolean;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Get status indicator character
|
|
29
|
+
*/
|
|
30
|
+
export declare function getStatusIndicator(status: string): string;
|
|
31
|
+
/**
|
|
32
|
+
* Get priority label (P0-P3)
|
|
33
|
+
*/
|
|
34
|
+
export declare function getPriorityLabel(priority: number): string;
|
|
35
|
+
/**
|
|
36
|
+
* Format a single cell line with status, priority, and type
|
|
37
|
+
*/
|
|
38
|
+
export declare function formatCellLine(cell: CellDisplay): string;
|
|
39
|
+
/**
|
|
40
|
+
* Build tree structure from flat cell list
|
|
41
|
+
*
|
|
42
|
+
* Algorithm:
|
|
43
|
+
* 1. Create map of id -> TreeNode
|
|
44
|
+
* 2. For each cell, find parent and attach as child
|
|
45
|
+
* 3. Return nodes without parents as roots
|
|
46
|
+
*/
|
|
47
|
+
export declare function buildTreeStructure(cells: Cell[]): TreeNode[];
|
|
48
|
+
/**
|
|
49
|
+
* Render a tree node with box-drawing characters
|
|
50
|
+
*
|
|
51
|
+
* @param node - The node to render
|
|
52
|
+
* @param prefix - Prefix string for indentation
|
|
53
|
+
* @param isLast - Whether this is the last child of its parent
|
|
54
|
+
* @returns Array of output lines
|
|
55
|
+
*/
|
|
56
|
+
export declare function renderTreeNode(node: TreeNode, prefix: string, isLast: boolean): string[];
|
|
57
|
+
/**
|
|
58
|
+
* Render full tree from multiple root nodes
|
|
59
|
+
*/
|
|
60
|
+
export declare function renderTree(roots: TreeNode[]): string;
|
|
61
|
+
//# sourceMappingURL=tree-renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree-renderer.d.ts","sourceRoot":"","sources":["../../src/utils/tree-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,QAAQ,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAazD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKzD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAaxD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,CAqB5D;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,GACd,MAAM,EAAE,CAmCV;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAepD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validators/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event Schema Validator
|
|
3
|
+
*
|
|
4
|
+
* Validates emitted events against their Zod schemas.
|
|
5
|
+
* Catches:
|
|
6
|
+
* - Type mismatches
|
|
7
|
+
* - Missing required fields
|
|
8
|
+
* - Undefined values that could break UI rendering
|
|
9
|
+
* - Schema violations
|
|
10
|
+
*
|
|
11
|
+
* Used by:
|
|
12
|
+
* - Swarm event emission (validateEvent before emit)
|
|
13
|
+
* - Post-run validation (validateSwarmEvents for all events)
|
|
14
|
+
* - Debug tooling (identify schema drift)
|
|
15
|
+
*/
|
|
16
|
+
import type { ZodError } from "zod";
|
|
17
|
+
export interface ValidationIssue {
|
|
18
|
+
severity: "error" | "warning";
|
|
19
|
+
category: "schema_mismatch" | "undefined_value" | "missing_field" | "type_error";
|
|
20
|
+
message: string;
|
|
21
|
+
location?: {
|
|
22
|
+
event_type?: string;
|
|
23
|
+
field?: string;
|
|
24
|
+
};
|
|
25
|
+
zodError?: ZodError;
|
|
26
|
+
}
|
|
27
|
+
export interface SchemaValidationResult {
|
|
28
|
+
valid: boolean;
|
|
29
|
+
issues: ValidationIssue[];
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Validate a single event against its schema
|
|
33
|
+
*
|
|
34
|
+
* Usage:
|
|
35
|
+
* ```typescript
|
|
36
|
+
* const result = validateEvent(event);
|
|
37
|
+
* if (!result.valid) {
|
|
38
|
+
* console.error("Schema validation failed:", result.issues);
|
|
39
|
+
* }
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export declare function validateEvent(event: unknown): SchemaValidationResult;
|
|
43
|
+
/**
|
|
44
|
+
* Validate all events from a swarm run
|
|
45
|
+
*
|
|
46
|
+
* Usage:
|
|
47
|
+
* ```typescript
|
|
48
|
+
* const { passed, issueCount } = await validateSwarmEvents(events);
|
|
49
|
+
* if (!passed) {
|
|
50
|
+
* console.error(`Found ${issueCount} validation issues`);
|
|
51
|
+
* }
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export declare function validateSwarmEvents(events: unknown[]): Promise<{
|
|
55
|
+
passed: boolean;
|
|
56
|
+
issueCount: number;
|
|
57
|
+
}>;
|
|
58
|
+
//# sourceMappingURL=schema-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-validator.d.ts","sourceRoot":"","sources":["../../src/validators/schema-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,QAAQ,EACJ,iBAAiB,GACjB,iBAAiB,GACjB,eAAe,GACf,YAAY,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE;QACT,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,CAkDpE;AAgCD;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,OAAO,EAAE,GAChB,OAAO,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAWlD"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude plugin runtime asset copy CLI entrypoint.
|
|
3
|
+
*/
|
|
4
|
+
import { copyClaudePluginRuntimeAssets } from "../../src/claude-plugin/claude-plugin-assets";
|
|
5
|
+
import { existsSync } from "fs";
|
|
6
|
+
import { dirname, join, resolve } from "path";
|
|
7
|
+
import { fileURLToPath } from "url";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Resolve the package root that owns the Claude plugin assets.
|
|
11
|
+
*/
|
|
12
|
+
export function resolveClaudePluginPackageRoot({
|
|
13
|
+
currentDir = dirname(fileURLToPath(import.meta.url)),
|
|
14
|
+
cwd = process.cwd(),
|
|
15
|
+
}: {
|
|
16
|
+
currentDir?: string;
|
|
17
|
+
cwd?: string;
|
|
18
|
+
} = {}): string {
|
|
19
|
+
const candidates = [cwd, currentDir];
|
|
20
|
+
|
|
21
|
+
for (const candidate of candidates) {
|
|
22
|
+
const resolved = findClaudePluginPackageRoot(candidate);
|
|
23
|
+
if (resolved) {
|
|
24
|
+
return resolved;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
throw new Error(
|
|
29
|
+
"Unable to locate the package root containing claude-plugin assets.",
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function findClaudePluginPackageRoot(startDir: string): string | null {
|
|
34
|
+
let current = resolve(startDir);
|
|
35
|
+
|
|
36
|
+
while (true) {
|
|
37
|
+
const manifestPath = join(current, "package.json");
|
|
38
|
+
const pluginDir = join(current, "claude-plugin");
|
|
39
|
+
|
|
40
|
+
if (existsSync(manifestPath) && existsSync(pluginDir)) {
|
|
41
|
+
return current;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const parent = dirname(current);
|
|
45
|
+
if (parent === current) {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
current = parent;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Ensure claude-plugin/dist exists before copying runtime assets.
|
|
55
|
+
*/
|
|
56
|
+
export function assertClaudePluginDistExists({
|
|
57
|
+
packageRoot,
|
|
58
|
+
}: {
|
|
59
|
+
packageRoot: string;
|
|
60
|
+
}): void {
|
|
61
|
+
const pluginDistPath = join(packageRoot, "claude-plugin", "dist");
|
|
62
|
+
|
|
63
|
+
if (!existsSync(pluginDistPath)) {
|
|
64
|
+
throw new Error(
|
|
65
|
+
`[swarm-mcp] Missing claude-plugin/dist directory at ${pluginDistPath}. ` +
|
|
66
|
+
"Build the package so claude-plugin/dist is populated.",
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Run the runtime asset copy using the package root.
|
|
73
|
+
*/
|
|
74
|
+
export function runCopyClaudePluginRuntimeAssets(): void {
|
|
75
|
+
const packageRoot = resolveClaudePluginPackageRoot();
|
|
76
|
+
assertClaudePluginDistExists({ packageRoot });
|
|
77
|
+
copyClaudePluginRuntimeAssets({ packageRoot });
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export { copyClaudePluginRuntimeAssets };
|
|
81
|
+
|
|
82
|
+
if (import.meta.main) {
|
|
83
|
+
runCopyClaudePluginRuntimeAssets();
|
|
84
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: always-on-guidance
|
|
3
|
+
description: Always-on rule-oriented guidance for claude-plugin agents. Use to align behavior, tool usage, and model-specific defaults (GPT-5.2-code vs Opus 4.5) while avoiding deprecated bd/cass references.
|
|
4
|
+
tags:
|
|
5
|
+
- guidance
|
|
6
|
+
- rules
|
|
7
|
+
- models
|
|
8
|
+
tools:
|
|
9
|
+
- "*"
|
|
10
|
+
related_skills:
|
|
11
|
+
- swarm-coordination
|
|
12
|
+
- testing-patterns
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Always-On Guidance
|
|
16
|
+
|
|
17
|
+
## Global Rules
|
|
18
|
+
|
|
19
|
+
- Follow instruction priority: system → developer → user → AGENTS.
|
|
20
|
+
- Use swarm plugin tools (`hive_*`, `swarm_*`, `swarmmail_*`, `hivemind_*`); avoid deprecated `bd`/`cass` references.
|
|
21
|
+
- Stay within assigned files; reserve before edits with `ttl_seconds`; release reservations on done; finish swarm work with `swarm_complete`.
|
|
22
|
+
- After every `swarm_spawn_subtask`, immediately call `Task(subagent_type="swarm-worker", prompt="<prompt returned by swarm_spawn_subtask>")`.
|
|
23
|
+
- `swarmmail_release_all` is coordinator-only for stale/orphaned reservations.
|
|
24
|
+
- Keep outputs concise and action-oriented.
|
|
25
|
+
|
|
26
|
+
## Model Defaults
|
|
27
|
+
|
|
28
|
+
### GPT-5.2-code
|
|
29
|
+
|
|
30
|
+
- Prefer strict checklists and short imperatives.
|
|
31
|
+
- Ask a single clarifying question if blocked; otherwise proceed.
|
|
32
|
+
- Avoid speculative reasoning; state decisions plainly.
|
|
33
|
+
- Keep outputs minimal and non-narrative.
|
|
34
|
+
|
|
35
|
+
### Opus 4.5
|
|
36
|
+
|
|
37
|
+
- Allow brief rationale (1–2 sentences) for decisions.
|
|
38
|
+
- Use sections when work has multiple phases.
|
|
39
|
+
- Suggest alternatives only when risk is high, then choose one.
|
|
40
|
+
- Stay compact; avoid long exposition.
|
|
41
|
+
|
|
42
|
+
## Testing Discipline
|
|
43
|
+
|
|
44
|
+
- Use red → green → refactor when tests cover the touched area.
|
|
45
|
+
- If tests are absent or out of scope, state that explicitly.
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unit tests for Claude MCP runtime packaging.
|
|
3
|
+
*/
|
|
4
|
+
import { describe, expect, it } from "vitest";
|
|
5
|
+
import {
|
|
6
|
+
existsSync,
|
|
7
|
+
mkdirSync,
|
|
8
|
+
mkdtempSync,
|
|
9
|
+
readFileSync,
|
|
10
|
+
rmSync,
|
|
11
|
+
writeFileSync,
|
|
12
|
+
} from "fs";
|
|
13
|
+
import { dirname, join, resolve } from "path";
|
|
14
|
+
import { tmpdir } from "os";
|
|
15
|
+
import { fileURLToPath } from "url";
|
|
16
|
+
import {
|
|
17
|
+
copyClaudePluginRuntimeAssets,
|
|
18
|
+
resolveClaudePluginPackageRoot,
|
|
19
|
+
assertClaudePluginDistExists,
|
|
20
|
+
} from "../scripts/copyClaudePluginRuntimeAssets";
|
|
21
|
+
import { resolveToolRegistryPath } from "../bin/swarm-mcp-server";
|
|
22
|
+
|
|
23
|
+
type PackageManifest = {
|
|
24
|
+
files?: string[];
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const TEST_DIR = dirname(fileURLToPath(import.meta.url));
|
|
28
|
+
const PACKAGE_ROOT = resolve(TEST_DIR, "../..");
|
|
29
|
+
const MANIFEST_PATH = join(PACKAGE_ROOT, "package.json");
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Reads the package manifest used for marketplace packaging.
|
|
33
|
+
*/
|
|
34
|
+
function readPackageManifest(): PackageManifest {
|
|
35
|
+
return JSON.parse(readFileSync(MANIFEST_PATH, "utf-8")) as PackageManifest;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
describe("claude-plugin MCP runtime assets", () => {
|
|
39
|
+
it("publishes the claude-plugin runtime dist", () => {
|
|
40
|
+
const manifest = readPackageManifest();
|
|
41
|
+
|
|
42
|
+
expect(manifest.files).toContain("claude-plugin");
|
|
43
|
+
expect(manifest.files).toContain("claude-plugin/dist");
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it("resolves the package root from built claude-plugin scripts", () => {
|
|
47
|
+
const workspaceRoot = mkdtempSync(join(tmpdir(), "swarm-plugin-"));
|
|
48
|
+
|
|
49
|
+
try {
|
|
50
|
+
const pluginRoot = join(workspaceRoot, "claude-plugin");
|
|
51
|
+
const builtScripts = join(workspaceRoot, "dist", "claude-plugin", "scripts");
|
|
52
|
+
|
|
53
|
+
mkdirSync(pluginRoot, { recursive: true });
|
|
54
|
+
mkdirSync(builtScripts, { recursive: true });
|
|
55
|
+
writeFileSync(join(workspaceRoot, "package.json"), "{}\n");
|
|
56
|
+
|
|
57
|
+
expect(
|
|
58
|
+
resolveClaudePluginPackageRoot({
|
|
59
|
+
currentDir: builtScripts,
|
|
60
|
+
cwd: builtScripts,
|
|
61
|
+
}),
|
|
62
|
+
).toBe(workspaceRoot);
|
|
63
|
+
} finally {
|
|
64
|
+
rmSync(workspaceRoot, { recursive: true, force: true });
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
it("prefers claude-plugin/dist for the MCP runtime bundle", () => {
|
|
69
|
+
const workspaceRoot = mkdtempSync(join(tmpdir(), "swarm-plugin-"));
|
|
70
|
+
|
|
71
|
+
try {
|
|
72
|
+
const pluginRoot = join(workspaceRoot, "claude-plugin");
|
|
73
|
+
const pluginBin = join(pluginRoot, "bin");
|
|
74
|
+
const pluginDist = join(pluginRoot, "dist");
|
|
75
|
+
|
|
76
|
+
mkdirSync(pluginBin, { recursive: true });
|
|
77
|
+
mkdirSync(pluginDist, { recursive: true });
|
|
78
|
+
writeFileSync(join(workspaceRoot, "package.json"), "{}\n");
|
|
79
|
+
writeFileSync(join(pluginDist, "index.js"), "bundle");
|
|
80
|
+
|
|
81
|
+
expect(
|
|
82
|
+
resolveToolRegistryPath({
|
|
83
|
+
currentDir: pluginBin,
|
|
84
|
+
}),
|
|
85
|
+
).toBe(join(pluginDist, "index.js"));
|
|
86
|
+
} finally {
|
|
87
|
+
rmSync(workspaceRoot, { recursive: true, force: true });
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
it("throws when claude-plugin/dist is missing", () => {
|
|
92
|
+
const workspaceRoot = mkdtempSync(join(tmpdir(), "swarm-plugin-"));
|
|
93
|
+
|
|
94
|
+
try {
|
|
95
|
+
const pluginBin = join(workspaceRoot, "claude-plugin", "bin");
|
|
96
|
+
const rootDist = join(workspaceRoot, "dist");
|
|
97
|
+
|
|
98
|
+
mkdirSync(pluginBin, { recursive: true });
|
|
99
|
+
mkdirSync(rootDist, { recursive: true });
|
|
100
|
+
writeFileSync(join(workspaceRoot, "package.json"), "{}\n");
|
|
101
|
+
writeFileSync(join(rootDist, "index.js"), "bundle");
|
|
102
|
+
|
|
103
|
+
expect(() =>
|
|
104
|
+
resolveToolRegistryPath({
|
|
105
|
+
currentDir: pluginBin,
|
|
106
|
+
}),
|
|
107
|
+
).toThrowError(/claude-plugin[\\/]+dist/);
|
|
108
|
+
} finally {
|
|
109
|
+
rmSync(workspaceRoot, { recursive: true, force: true });
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
it("throws when claude-plugin/dist is missing for runtime copy", () => {
|
|
114
|
+
const workspaceRoot = mkdtempSync(join(tmpdir(), "swarm-plugin-"));
|
|
115
|
+
|
|
116
|
+
try {
|
|
117
|
+
writeFileSync(join(workspaceRoot, "package.json"), "{}\n");
|
|
118
|
+
mkdirSync(join(workspaceRoot, "claude-plugin"), { recursive: true });
|
|
119
|
+
|
|
120
|
+
expect(() =>
|
|
121
|
+
assertClaudePluginDistExists({ packageRoot: workspaceRoot }),
|
|
122
|
+
).toThrowError(/claude-plugin[\\/]+dist/);
|
|
123
|
+
} finally {
|
|
124
|
+
rmSync(workspaceRoot, { recursive: true, force: true });
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
it("throws when the runtime dist directory is missing", () => {
|
|
129
|
+
const workspaceRoot = mkdtempSync(join(tmpdir(), "swarm-plugin-"));
|
|
130
|
+
|
|
131
|
+
try {
|
|
132
|
+
expect(() =>
|
|
133
|
+
copyClaudePluginRuntimeAssets({ packageRoot: workspaceRoot }),
|
|
134
|
+
).toThrowError(/Missing runtime dist directory/);
|
|
135
|
+
} finally {
|
|
136
|
+
rmSync(workspaceRoot, { recursive: true, force: true });
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
it("throws when the runtime bundle is missing", () => {
|
|
141
|
+
const workspaceRoot = mkdtempSync(join(tmpdir(), "swarm-plugin-"));
|
|
142
|
+
|
|
143
|
+
try {
|
|
144
|
+
const distRoot = join(workspaceRoot, "dist");
|
|
145
|
+
mkdirSync(distRoot, { recursive: true });
|
|
146
|
+
|
|
147
|
+
expect(() =>
|
|
148
|
+
copyClaudePluginRuntimeAssets({ packageRoot: workspaceRoot }),
|
|
149
|
+
).toThrowError(/Missing runtime bundle/);
|
|
150
|
+
} finally {
|
|
151
|
+
rmSync(workspaceRoot, { recursive: true, force: true });
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
it("copies runtime assets into claude-plugin/dist", () => {
|
|
156
|
+
const workspaceRoot = mkdtempSync(join(tmpdir(), "swarm-plugin-"));
|
|
157
|
+
|
|
158
|
+
try {
|
|
159
|
+
const distRoot = join(workspaceRoot, "dist");
|
|
160
|
+
const pluginRoot = join(workspaceRoot, "claude-plugin");
|
|
161
|
+
const pluginDist = join(pluginRoot, "dist");
|
|
162
|
+
|
|
163
|
+
mkdirSync(distRoot, { recursive: true });
|
|
164
|
+
mkdirSync(pluginRoot, { recursive: true });
|
|
165
|
+
mkdirSync(join(distRoot, "schemas"), { recursive: true });
|
|
166
|
+
|
|
167
|
+
writeFileSync(join(distRoot, "index.js"), "runtime-bundle");
|
|
168
|
+
writeFileSync(join(distRoot, "schemas", "tools.json"), "{}");
|
|
169
|
+
|
|
170
|
+
mkdirSync(pluginDist, { recursive: true });
|
|
171
|
+
writeFileSync(join(pluginDist, "stale.txt"), "old");
|
|
172
|
+
|
|
173
|
+
copyClaudePluginRuntimeAssets({ packageRoot: workspaceRoot });
|
|
174
|
+
|
|
175
|
+
expect(existsSync(join(pluginRoot, "dist", "index.js"))).toBe(true);
|
|
176
|
+
expect(readFileSync(join(pluginRoot, "dist", "index.js"), "utf-8")).toBe(
|
|
177
|
+
"runtime-bundle",
|
|
178
|
+
);
|
|
179
|
+
expect(existsSync(join(pluginRoot, "dist", "schemas", "tools.json"))).toBe(
|
|
180
|
+
true,
|
|
181
|
+
);
|
|
182
|
+
expect(existsSync(join(pluginRoot, "dist", "stale.txt"))).toBe(false);
|
|
183
|
+
} finally {
|
|
184
|
+
rmSync(workspaceRoot, { recursive: true, force: true });
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
});
|
package/dist/agent-mail.d.ts
CHANGED
|
@@ -270,13 +270,13 @@ export declare const agentmail_reserve: {
|
|
|
270
270
|
description: string;
|
|
271
271
|
args: {
|
|
272
272
|
paths: z.ZodArray<z.ZodString>;
|
|
273
|
-
ttl_seconds: z.
|
|
273
|
+
ttl_seconds: z.ZodNumber;
|
|
274
274
|
exclusive: z.ZodOptional<z.ZodBoolean>;
|
|
275
275
|
reason: z.ZodOptional<z.ZodString>;
|
|
276
276
|
};
|
|
277
277
|
execute(args: {
|
|
278
278
|
paths: string[];
|
|
279
|
-
ttl_seconds
|
|
279
|
+
ttl_seconds: number;
|
|
280
280
|
exclusive?: boolean | undefined;
|
|
281
281
|
reason?: string | undefined;
|
|
282
282
|
}, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
|
|
@@ -419,13 +419,13 @@ export declare const agentMailTools: {
|
|
|
419
419
|
description: string;
|
|
420
420
|
args: {
|
|
421
421
|
paths: z.ZodArray<z.ZodString>;
|
|
422
|
-
ttl_seconds: z.
|
|
422
|
+
ttl_seconds: z.ZodNumber;
|
|
423
423
|
exclusive: z.ZodOptional<z.ZodBoolean>;
|
|
424
424
|
reason: z.ZodOptional<z.ZodString>;
|
|
425
425
|
};
|
|
426
426
|
execute(args: {
|
|
427
427
|
paths: string[];
|
|
428
|
-
ttl_seconds
|
|
428
|
+
ttl_seconds: number;
|
|
429
429
|
exclusive?: boolean | undefined;
|
|
430
430
|
reason?: string | undefined;
|
|
431
431
|
}, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
|
package/dist/agent-mail.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-mail.d.ts","sourceRoot":"","sources":["../src/agent-mail.ts"],"names":[],"mappings":"AA8BA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAMnD,QAAA,MAAM,cAAc,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-mail.d.ts","sourceRoot":"","sources":["../src/agent-mail.ts"],"names":[],"mappings":"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"}
|