opencode-swarm-plugin 0.45.7 → 0.47.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/cass.characterization.test.ts +400 -379
- package/bin/eval-gate.test.ts +23 -0
- package/bin/eval-gate.ts +21 -0
- package/bin/swarm.ts +485 -151
- package/dist/bin/swarm.js +2120 -971
- package/dist/cass-tools.d.ts +1 -2
- package/dist/cass-tools.d.ts.map +1 -1
- package/dist/compaction-hook.d.ts +50 -6
- package/dist/compaction-hook.d.ts.map +1 -1
- package/dist/dashboard.d.ts +5 -6
- package/dist/dashboard.d.ts.map +1 -1
- package/dist/eval-capture.d.ts +20 -10
- package/dist/eval-capture.d.ts.map +1 -1
- package/dist/eval-capture.js +54 -21
- package/dist/eval-learning.d.ts +5 -5
- package/dist/eval-learning.d.ts.map +1 -1
- package/dist/hive.d.ts +7 -0
- package/dist/hive.d.ts.map +1 -1
- package/dist/hive.js +61 -24
- package/dist/hivemind-tools.d.ts +479 -0
- package/dist/hivemind-tools.d.ts.map +1 -0
- package/dist/index.d.ts +31 -98
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1018 -467
- package/dist/observability-health.d.ts +87 -0
- package/dist/observability-health.d.ts.map +1 -0
- package/dist/observability-tools.d.ts +5 -1
- package/dist/observability-tools.d.ts.map +1 -1
- package/dist/planning-guardrails.d.ts +24 -5
- package/dist/planning-guardrails.d.ts.map +1 -1
- package/dist/plugin.js +1006 -475
- package/dist/query-tools.d.ts +23 -5
- package/dist/query-tools.d.ts.map +1 -1
- package/dist/regression-detection.d.ts +58 -0
- package/dist/regression-detection.d.ts.map +1 -0
- package/dist/swarm-orchestrate.d.ts +3 -3
- package/dist/swarm-orchestrate.d.ts.map +1 -1
- package/dist/swarm-prompts.d.ts +4 -4
- package/dist/swarm-prompts.d.ts.map +1 -1
- package/dist/swarm-prompts.js +165 -74
- package/dist/swarm-research.d.ts +0 -2
- package/dist/swarm-research.d.ts.map +1 -1
- package/dist/tool-availability.d.ts +1 -1
- package/dist/tool-availability.d.ts.map +1 -1
- package/examples/commands/swarm.md +7 -7
- package/global-skills/swarm-coordination/SKILL.md +6 -6
- package/package.json +6 -3
package/dist/cass-tools.d.ts
CHANGED
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
* CASS Tools - Cross-Agent Session Search
|
|
3
3
|
*
|
|
4
4
|
* Provides tools for searching across AI coding agent histories.
|
|
5
|
-
*
|
|
6
|
-
* https://github.com/Dicklesworthstone/coding_agent_session_search
|
|
5
|
+
* Uses inhouse SessionIndexer from swarm-mail package.
|
|
7
6
|
*
|
|
8
7
|
* Events emitted:
|
|
9
8
|
* - cass_searched: When a search is performed
|
package/dist/cass-tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cass-tools.d.ts","sourceRoot":"","sources":["../src/cass-tools.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cass-tools.d.ts","sourceRoot":"","sources":["../src/cass-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAgaH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOrB,CAAC"}
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
* 6. Role & mandates (strong language, coordinatorIdentity scorer)
|
|
48
48
|
* 7. Reference sections (supporting material)
|
|
49
49
|
*/
|
|
50
|
-
export declare const SWARM_COMPACTION_CONTEXT = "\n\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 \u2502\n\u2502 \uD83D\uDC1D YOU ARE THE COORDINATOR \uD83D\uDC1D \u2502\n\u2502 \u2502\n\u2502 NOT A WORKER. NOT AN IMPLEMENTER. \u2502\n\u2502 YOU ORCHESTRATE. \u2502\n\u2502 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n\nContext was compacted but the swarm is still running. **YOU ARE THE COORDINATOR.**\n\nYour role is ORCHESTRATION, not implementation. The resume steps above (if present) tell you exactly what to do first.\n\n---\n\n## \uD83C\uDFAF WHAT GOOD LOOKS LIKE (Behavioral Examples)\n\n**\u2705 GOOD Coordinator Behavior:**\n- Spawned researcher for unfamiliar tech \u2192 got summary \u2192 stored in
|
|
50
|
+
export declare const SWARM_COMPACTION_CONTEXT = "\n\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 \u2502\n\u2502 \uD83D\uDC1D YOU ARE THE COORDINATOR \uD83D\uDC1D \u2502\n\u2502 \u2502\n\u2502 NOT A WORKER. NOT AN IMPLEMENTER. \u2502\n\u2502 YOU ORCHESTRATE. \u2502\n\u2502 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n\nContext was compacted but the swarm is still running. **YOU ARE THE COORDINATOR.**\n\nYour role is ORCHESTRATION, not implementation. The resume steps above (if present) tell you exactly what to do first.\n\n---\n\n## \uD83C\uDFAF WHAT GOOD LOOKS LIKE (Behavioral Examples)\n\n**\u2705 GOOD Coordinator Behavior:**\n- Spawned researcher for unfamiliar tech \u2192 got summary \u2192 stored in hivemind\n- Loaded `skills_use(name=\"testing-patterns\")` BEFORE spawning test workers\n- Checked `swarmmail_inbox()` every 5-10 minutes \u2192 caught blocked worker \u2192 unblocked in 2min\n- Delegated planning to swarm/planner subagent \u2192 main context stayed clean\n- Workers reserved their OWN files \u2192 no conflicts\n- Reviewed all worker output with `swarm_review` \u2192 caught integration issue before merge\n\n**\u274C COMMON MISTAKES (Avoid These):**\n- Called context7/pdf-brain directly \u2192 dumped 50KB into thread \u2192 context exhaustion\n- Skipped skill loading \u2192 workers reinvented patterns already in skills\n- Never checked inbox \u2192 worker stuck 25 minutes \u2192 silent failure\n- Reserved files as coordinator \u2192 workers blocked \u2192 swarm stalled\n- Closed cells when workers said \"done\" \u2192 skipped review \u2192 shipped broken code\n\n---\n\n## \uD83D\uDEAB FORBIDDEN TOOLS (NEVER Use These Directly)\n\nCoordinators do NOT do implementation work. These tools are **FORBIDDEN**:\n\n### File Modification (ALWAYS spawn workers instead)\n- `Edit` - SPAWN A WORKER\n- `Write` - SPAWN A WORKER\n- `bash` (for file modifications) - SPAWN A WORKER\n- `swarmmail_reserve` - Workers reserve their own files\n- `git commit` - Workers commit their own changes\n\n### External Data Fetching (SPAWN A RESEARCHER instead)\n\n**Repository fetching:**\n- `repo-crawl_file`, `repo-crawl_readme`, `repo-crawl_search`, `repo-crawl_structure`, `repo-crawl_tree`\n- `repo-autopsy_*` (all repo-autopsy tools)\n\n**Web/documentation fetching:**\n- `webfetch`, `fetch_fetch`\n- `context7_resolve-library-id`, `context7_get-library-docs`\n\n**Knowledge base:**\n- `pdf-brain_search`, `pdf-brain_read`\n\n**Instead:** Use `swarm_spawn_researcher` with a clear research task. The researcher will fetch, summarize, and return findings.\n\n---\n\n## \uD83D\uDCBC YOUR ROLE (Non-Negotiable)\n\nYou are the **COORDINATOR**. Your job is ORCHESTRATION, not implementation.\n\n### What Coordinators Do:\n- \u2705 Spawn workers for implementation tasks\n- \u2705 Monitor worker progress via `swarm_status` and `swarmmail_inbox`\n- \u2705 Review completed work with `swarm_review`\n- \u2705 Unblock dependencies and resolve conflicts\n- \u2705 Close the loop when epics complete\n\n### What Coordinators NEVER Do:\n- \u274C **NEVER** edit or write files directly\n- \u274C **NEVER** run tests with `bash`\n- \u274C **NEVER** \"just do it myself to save time\"\n- \u274C **NEVER** reserve files (workers reserve)\n- \u274C **NEVER** fetch external data directly (spawn researchers)\n\n**If you catch yourself about to edit a file, STOP. Use `swarm_spawn_subtask` instead.**\n\n### Strong Mandates:\n- **ALWAYS** spawn workers for implementation tasks\n- **ALWAYS** check status and inbox before decisions\n- **ALWAYS** review worker output before accepting\n- **NON-NEGOTIABLE:** You orchestrate. You do NOT implement.\n\n---\n\n## \uD83D\uDCCB MANDATORY BEHAVIORS (Post-Compaction Checklist)\n\n### 1. Inbox Monitoring (EVERY 5-10 MINUTES)\n```\nswarmmail_inbox(limit=5) # Check for messages\nswarmmail_read_message(message_id=N) # Read urgent ones\nswarm_status(epic_id, project_key) # Overall progress\n```\n**Intervention triggers:** Worker blocked >5min, file conflict, scope creep\n\n### 2. Skill Loading (BEFORE spawning workers)\n```\nskills_use(name=\"swarm-coordination\") # ALWAYS for swarms\nskills_use(name=\"testing-patterns\") # If task involves tests\nskills_use(name=\"system-design\") # If architectural decisions\n```\n**Include skill recommendations in shared_context for workers.**\n\n### 3. Worker Review (AFTER EVERY worker returns)\n```\nswarm_review(project_key, epic_id, task_id, files_touched)\n# Evaluate: Does it fulfill requirements? Enable downstream tasks? Type safe?\nswarm_review_feedback(project_key, task_id, worker_id, status, issues)\n```\n**3-Strike Rule:** After 3 rejections \u2192 mark blocked \u2192 escalate to human.\n\n### 4. Research Spawning (For unfamiliar tech)\n```\nTask(subagent_type=\"swarm-researcher\", prompt=\"Research <topic>...\")\n```\n**NEVER call context7, pdf-brain, webfetch directly.** Spawn a researcher.\n\n---\n\n## \uD83D\uDCDD SUMMARY FORMAT (Preserve This State)\n\nWhen compaction occurs, extract and preserve this structure:\n\n```\n## \uD83D\uDC1D Swarm State\n\n**Epic:** CELL_ID - TITLE\n**Project:** PROJECT_PATH\n**Progress:** X/Y subtasks complete\n\n**Active:**\n- CELL_ID: TITLE [in_progress] \u2192 AGENT working on FILES\n\n**Blocked:**\n- CELL_ID: TITLE - BLOCKED: REASON\n\n**Completed:**\n- CELL_ID: TITLE \u2713\n\n**Ready to Spawn:**\n- CELL_ID: TITLE (files: FILES)\n```\n\n### What to Extract:\n1. **Epic & Subtasks** - IDs, titles, status, file assignments\n2. **What's Running** - Active agents and their current work\n3. **What's Blocked** - Blockers and what's needed to unblock\n4. **What's Done** - Completed work and follow-ups\n5. **What's Next** - Pending subtasks ready to spawn\n\n---\n\n## \uD83D\uDCCB REFERENCE: Full Coordinator Workflow\n\nYou are ALWAYS swarming. Use this workflow for any new work:\n\n### Phase 1.5: Research (For Complex Tasks)\n\nIf the task requires unfamiliar technologies, spawn a researcher FIRST:\n\n```\nswarm_spawn_researcher(\n research_id=\"research-TOPIC\",\n epic_id=\"mjkw...\", # your epic ID\n tech_stack=[\"TECHNOLOGY\"],\n project_path=\"PROJECT_PATH\"\n)\n// Then spawn with Task(subagent_type=\"swarm-researcher\", prompt=\"...\")\n```\n\n### Phase 2: Knowledge Gathering\n\n```\nhivemind_find(query=\"TASK_KEYWORDS\", limit=5) # Past learnings\nskills_list() # Available skills\n```\n\n### Phase 3: Decompose\n\n```\nswarm_select_strategy(task=\"TASK\")\nswarm_plan_prompt(task=\"TASK\", context=\"KNOWLEDGE\")\nswarm_validate_decomposition(response=\"CELLTREE_JSON\")\n```\n\n### Phase 4: Create Cells\n\n`hive_create_epic(epic_title=\"TASK\", subtasks=[...])`\n\n### Phase 5: File Reservations\n\n> **\u26A0\uFE0F Coordinator NEVER reserves files.** Workers reserve their own files with `swarmmail_reserve`.\n\n### Phase 6: Spawn Workers\n\n```\nswarm_spawn_subtask(bead_id, epic_id, title, files, shared_context, project_path)\nTask(subagent_type=\"swarm-worker\", prompt=\"GENERATED_PROMPT\")\n```\n\n### Phase 7: Review Loop (MANDATORY)\n\n**AFTER EVERY Task() RETURNS:**\n\n1. `swarmmail_inbox()` - Check for messages\n2. `swarm_review(project_key, epic_id, task_id, files_touched)` - Generate review\n3. Evaluate against epic goals\n4. `swarm_review_feedback(project_key, task_id, worker_id, status, issues)`\n\n**If needs_changes:**\n```\nswarm_spawn_retry(bead_id, epic_id, original_prompt, attempt, issues, diff, files, project_path)\n// Spawn NEW worker with Task() using retry prompt\n// Max 3 attempts before marking task blocked\n```\n\n### Phase 8: Complete\n\n`hive_sync()` - Sync all cells to git\n\n---\n\n## \uD83D\uDCCA REFERENCE: Decomposition Strategies\n\n| Strategy | Best For | Keywords |\n| -------------- | ------------------------ | -------------------------------------- |\n| file-based | Refactoring, migrations | refactor, migrate, rename, update all |\n| feature-based | New features | add, implement, build, create, feature |\n| risk-based | Bug fixes, security | fix, bug, security, critical, urgent |\n\n---\n\n**You are the COORDINATOR. You orchestrate. You do NOT implement. Spawn workers.**\n";
|
|
51
51
|
/**
|
|
52
52
|
* Fallback detection prompt - tells the compactor what to look for
|
|
53
53
|
*
|
|
@@ -101,6 +101,44 @@ export interface ScannedSwarmState {
|
|
|
101
101
|
* @returns Extracted swarm state
|
|
102
102
|
*/
|
|
103
103
|
export declare function scanSessionMessages(client: OpencodeClient, sessionID: string, limit?: number): Promise<ScannedSwarmState>;
|
|
104
|
+
/**
|
|
105
|
+
* Options for creating a compaction hook with dependency injection
|
|
106
|
+
*/
|
|
107
|
+
export interface CompactionHookOptions {
|
|
108
|
+
/** Optional OpenCode SDK client for scanning session messages */
|
|
109
|
+
client?: OpencodeClient;
|
|
110
|
+
/** Custom getHiveAdapter function (for testing) */
|
|
111
|
+
getHiveAdapter?: (projectKey: string) => Promise<{
|
|
112
|
+
queryCells: (projectKey: string, filters: Record<string, unknown>) => Promise<Array<{
|
|
113
|
+
id: string;
|
|
114
|
+
title?: string;
|
|
115
|
+
type: string;
|
|
116
|
+
status: string;
|
|
117
|
+
parent_id: string | null;
|
|
118
|
+
updated_at: number;
|
|
119
|
+
}>>;
|
|
120
|
+
}>;
|
|
121
|
+
/** Custom checkSwarmHealth function (for testing) */
|
|
122
|
+
checkSwarmHealth?: (projectKey?: string) => Promise<{
|
|
123
|
+
healthy: boolean;
|
|
124
|
+
database: "connected" | "disconnected";
|
|
125
|
+
stats?: {
|
|
126
|
+
events: number;
|
|
127
|
+
agents: number;
|
|
128
|
+
messages: number;
|
|
129
|
+
reservations: number;
|
|
130
|
+
};
|
|
131
|
+
}>;
|
|
132
|
+
/** Custom getHiveWorkingDirectory function (for testing) */
|
|
133
|
+
getHiveWorkingDirectory?: () => string;
|
|
134
|
+
/** Custom logger instance (for testing) */
|
|
135
|
+
logger?: {
|
|
136
|
+
info: (data: unknown, message?: string) => void;
|
|
137
|
+
debug: (data: unknown, message?: string) => void;
|
|
138
|
+
warn: (data: unknown, message?: string) => void;
|
|
139
|
+
error: (data: unknown, message?: string) => void;
|
|
140
|
+
};
|
|
141
|
+
}
|
|
104
142
|
/**
|
|
105
143
|
* Create the compaction hook for use in plugin registration
|
|
106
144
|
*
|
|
@@ -112,9 +150,7 @@ export declare function scanSessionMessages(client: OpencodeClient, sessionID: s
|
|
|
112
150
|
* Philosophy: Err on the side of continuation. A false positive costs
|
|
113
151
|
* a bit of context space. A false negative loses the swarm.
|
|
114
152
|
*
|
|
115
|
-
* @param
|
|
116
|
-
* When provided, extracts PRECISE swarm state from actual tool calls.
|
|
117
|
-
* When undefined, falls back to hive/swarm-mail heuristic detection.
|
|
153
|
+
* @param options - Configuration options including SDK client and dependency injection hooks
|
|
118
154
|
*
|
|
119
155
|
* @example
|
|
120
156
|
* ```typescript
|
|
@@ -122,11 +158,19 @@ export declare function scanSessionMessages(client: OpencodeClient, sessionID: s
|
|
|
122
158
|
*
|
|
123
159
|
* export const SwarmPlugin: Plugin = async (input) => ({
|
|
124
160
|
* tool: { ... },
|
|
125
|
-
* "experimental.session.compacting": createCompactionHook(input.client),
|
|
161
|
+
* "experimental.session.compacting": createCompactionHook({ client: input.client }),
|
|
162
|
+
* });
|
|
163
|
+
* ```
|
|
164
|
+
*
|
|
165
|
+
* @example Testing with custom dependencies
|
|
166
|
+
* ```typescript
|
|
167
|
+
* const hook = createCompactionHook({
|
|
168
|
+
* getHiveAdapter: async () => mockAdapter,
|
|
169
|
+
* checkSwarmHealth: async () => mockHealth,
|
|
126
170
|
* });
|
|
127
171
|
* ```
|
|
128
172
|
*/
|
|
129
|
-
export declare function createCompactionHook(
|
|
173
|
+
export declare function createCompactionHook(options?: OpencodeClient | CompactionHookOptions): (input: {
|
|
130
174
|
sessionID: string;
|
|
131
175
|
}, output: {
|
|
132
176
|
context: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compaction-hook.d.ts","sourceRoot":"","sources":["../src/compaction-hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;
|
|
1
|
+
{"version":3,"file":"compaction-hook.d.ts","sourceRoot":"","sources":["../src/compaction-hook.ts"],"names":[],"mappings":"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"}
|
package/dist/dashboard.d.ts
CHANGED
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
* - Agent projections (agent states)
|
|
9
9
|
* - Reservation projections (file locks)
|
|
10
10
|
*/
|
|
11
|
-
import type { DatabaseAdapter } from "swarm-mail";
|
|
12
11
|
export interface WorkerStatus {
|
|
13
12
|
agent_name: string;
|
|
14
13
|
status: "idle" | "working" | "blocked";
|
|
@@ -46,26 +45,26 @@ export interface EpicInfo {
|
|
|
46
45
|
* Get current status of all worker agents.
|
|
47
46
|
* Derives status from latest events: task_started, progress_reported, task_blocked, etc.
|
|
48
47
|
*/
|
|
49
|
-
export declare function getWorkerStatus(
|
|
48
|
+
export declare function getWorkerStatus(projectPath: string, options?: {
|
|
50
49
|
project_key?: string;
|
|
51
50
|
}): Promise<WorkerStatus[]>;
|
|
52
51
|
/**
|
|
53
52
|
* Get progress of all subtasks within an epic.
|
|
54
53
|
* Returns completion percentage from progress_reported events.
|
|
55
54
|
*/
|
|
56
|
-
export declare function getSubtaskProgress(
|
|
55
|
+
export declare function getSubtaskProgress(projectPath: string, epic_id: string): Promise<SubtaskProgress[]>;
|
|
57
56
|
/**
|
|
58
57
|
* Get currently active file reservations.
|
|
59
58
|
* Excludes released reservations.
|
|
60
59
|
*/
|
|
61
|
-
export declare function getFileLocks(
|
|
60
|
+
export declare function getFileLocks(projectPath: string, options?: {
|
|
62
61
|
project_key?: string;
|
|
63
62
|
}): Promise<FileLock[]>;
|
|
64
63
|
/**
|
|
65
64
|
* Get recent swarm mail messages, ordered by timestamp descending.
|
|
66
65
|
* Defaults to limit of 10.
|
|
67
66
|
*/
|
|
68
|
-
export declare function getRecentMessages(
|
|
67
|
+
export declare function getRecentMessages(projectPath: string, options?: {
|
|
69
68
|
limit?: number;
|
|
70
69
|
thread_id?: string;
|
|
71
70
|
importance?: "low" | "normal" | "high" | "urgent";
|
|
@@ -77,7 +76,7 @@ export declare function getRecentMessages(db: DatabaseAdapter, options?: {
|
|
|
77
76
|
* Derives epic information from events when beads table doesn't exist (test mode).
|
|
78
77
|
* In production, queries beads table directly.
|
|
79
78
|
*/
|
|
80
|
-
export declare function getEpicList(
|
|
79
|
+
export declare function getEpicList(projectPath: string, options?: {
|
|
81
80
|
status?: "open" | "in_progress" | "completed" | "blocked";
|
|
82
81
|
}): Promise<EpicInfo[]>;
|
|
83
82
|
//# sourceMappingURL=dashboard.d.ts.map
|
package/dist/dashboard.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,MAAM,WAAW,YAAY;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,WAAW,GAAG,SAAS,CAAC;IACzD,gBAAgB,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;CACjD;AAED,MAAM,WAAW,QAAQ;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACpC,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAChC,OAAO,CAAC,YAAY,EAAE,CAAC,CAsEzB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACvC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACb,OAAO,CAAC,eAAe,EAAE,CAAC,CAyD5B;AAED;;;GAGG;AACH,wBAAsB,YAAY,CACjC,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAChC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAmDrB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACtC,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;CAClD,GACC,OAAO,CAAC,aAAa,EAAE,CAAC,CAoD1B;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAChC,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,WAAW,GAAG,SAAS,CAAA;CAAE,GACrE,OAAO,CAAC,QAAQ,EAAE,CAAC,CA4IrB"}
|
package/dist/eval-capture.d.ts
CHANGED
|
@@ -100,6 +100,7 @@ export declare const CoordinatorEventSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
|
|
|
100
100
|
coordinator_ran_tests: "coordinator_ran_tests";
|
|
101
101
|
coordinator_reserved_files: "coordinator_reserved_files";
|
|
102
102
|
no_worker_spawned: "no_worker_spawned";
|
|
103
|
+
worker_completed_without_review: "worker_completed_without_review";
|
|
103
104
|
}>;
|
|
104
105
|
payload: z.ZodAny;
|
|
105
106
|
}, z.core.$strip>, z.ZodObject<{
|
|
@@ -166,6 +167,7 @@ export declare const CoordinatorSessionSchema: z.ZodObject<{
|
|
|
166
167
|
coordinator_ran_tests: "coordinator_ran_tests";
|
|
167
168
|
coordinator_reserved_files: "coordinator_reserved_files";
|
|
168
169
|
no_worker_spawned: "no_worker_spawned";
|
|
170
|
+
worker_completed_without_review: "worker_completed_without_review";
|
|
169
171
|
}>;
|
|
170
172
|
payload: z.ZodAny;
|
|
171
173
|
}, z.core.$strip>, z.ZodObject<{
|
|
@@ -318,6 +320,7 @@ export declare function getEvalDataStats(projectPath: string): {
|
|
|
318
320
|
};
|
|
319
321
|
/**
|
|
320
322
|
* Get the session directory path
|
|
323
|
+
* Can be overridden via SWARM_SESSIONS_DIR env var for testing
|
|
321
324
|
*/
|
|
322
325
|
export declare function getSessionDir(): string;
|
|
323
326
|
/**
|
|
@@ -329,11 +332,18 @@ export declare function getSessionPath(sessionId: string): string;
|
|
|
329
332
|
*/
|
|
330
333
|
export declare function ensureSessionDir(): void;
|
|
331
334
|
/**
|
|
332
|
-
* Capture a coordinator event to
|
|
335
|
+
* Capture a coordinator event to libSQL via appendEvent
|
|
333
336
|
*
|
|
334
|
-
*
|
|
337
|
+
* Stores event in events table with type based on event_type:
|
|
338
|
+
* - DECISION → coordinator_decision
|
|
339
|
+
* - VIOLATION → coordinator_violation
|
|
340
|
+
* - OUTCOME → coordinator_outcome
|
|
341
|
+
* - COMPACTION → coordinator_compaction
|
|
342
|
+
*
|
|
343
|
+
* The project_key is derived from the session working directory (process.cwd()).
|
|
344
|
+
* Events are queryable via observability-tools.ts.
|
|
335
345
|
*/
|
|
336
|
-
export declare function captureCoordinatorEvent(event: CoordinatorEvent): void
|
|
346
|
+
export declare function captureCoordinatorEvent(event: CoordinatorEvent): Promise<void>;
|
|
337
347
|
/**
|
|
338
348
|
* Capture a compaction event to the session file
|
|
339
349
|
*
|
|
@@ -387,7 +397,7 @@ export declare function captureCompactionEvent(params: {
|
|
|
387
397
|
epic_id: string;
|
|
388
398
|
compaction_type: "detection_complete" | "prompt_generated" | "context_injected" | "resumption_started" | "tool_call_tracked";
|
|
389
399
|
payload: any;
|
|
390
|
-
}): void
|
|
400
|
+
}): Promise<void>;
|
|
391
401
|
/**
|
|
392
402
|
* Capture a researcher spawned event
|
|
393
403
|
*
|
|
@@ -400,7 +410,7 @@ export declare function captureResearcherSpawned(params: {
|
|
|
400
410
|
researcher_id: string;
|
|
401
411
|
research_topic: string;
|
|
402
412
|
tools_used?: string[];
|
|
403
|
-
}): void
|
|
413
|
+
}): Promise<void>;
|
|
404
414
|
/**
|
|
405
415
|
* Capture a skill loaded event
|
|
406
416
|
*
|
|
@@ -411,7 +421,7 @@ export declare function captureSkillLoaded(params: {
|
|
|
411
421
|
epic_id: string;
|
|
412
422
|
skill_name: string;
|
|
413
423
|
context?: string;
|
|
414
|
-
}): void
|
|
424
|
+
}): Promise<void>;
|
|
415
425
|
/**
|
|
416
426
|
* Capture an inbox checked event
|
|
417
427
|
*
|
|
@@ -423,7 +433,7 @@ export declare function captureInboxChecked(params: {
|
|
|
423
433
|
epic_id: string;
|
|
424
434
|
message_count: number;
|
|
425
435
|
urgent_count: number;
|
|
426
|
-
}): void
|
|
436
|
+
}): Promise<void>;
|
|
427
437
|
/**
|
|
428
438
|
* Capture a blocker resolved event
|
|
429
439
|
*
|
|
@@ -436,7 +446,7 @@ export declare function captureBlockerResolved(params: {
|
|
|
436
446
|
subtask_id: string;
|
|
437
447
|
blocker_type: string;
|
|
438
448
|
resolution: string;
|
|
439
|
-
}): void
|
|
449
|
+
}): Promise<void>;
|
|
440
450
|
/**
|
|
441
451
|
* Capture a scope change decision event
|
|
442
452
|
*
|
|
@@ -453,7 +463,7 @@ export declare function captureScopeChangeDecision(params: {
|
|
|
453
463
|
requested_scope?: string;
|
|
454
464
|
rejection_reason?: string;
|
|
455
465
|
estimated_time_add?: number;
|
|
456
|
-
}): void
|
|
466
|
+
}): Promise<void>;
|
|
457
467
|
/**
|
|
458
468
|
* Capture a blocker detected event
|
|
459
469
|
*
|
|
@@ -466,7 +476,7 @@ export declare function captureBlockerDetected(params: {
|
|
|
466
476
|
subtask_id: string;
|
|
467
477
|
blocker_type: string;
|
|
468
478
|
blocker_description: string;
|
|
469
|
-
}): void
|
|
479
|
+
}): Promise<void>;
|
|
470
480
|
/**
|
|
471
481
|
* Read all events from a session file
|
|
472
482
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eval-capture.d.ts","sourceRoot":"","sources":["../src/eval-capture.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"eval-capture.d.ts","sourceRoot":"","sources":["../src/eval-capture.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;iBAmB/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA2D3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG;IACpD,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAkEjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAMnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAM1E;;GAEG;AACH,eAAO,MAAM,sBAAsB,8BAA8B,CAAC;AAElE;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAM3D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,UAAU,GAAG,iBAAiB,GACrC,IAAI,CAKN;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,EAAE,CAajE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAU3E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAC3B,OAAO,CAgBT;AAWD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,YAAY,GAAG,eAAe,GAAG,YAAY,GAAG,MAAM,CAAC;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;KAC/B,CAAC,CAAC;CACJ,GAAG,iBAAiB,CAsBpB;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,IAAI,CAwBP;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,UAAU,GAAG,IAAI,CAoDpB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,IAAI,CAMP;AAMD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,KAAK,CAAC;IAC3D,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,QAAQ,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B,CAAC;IACF,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC,CAkBD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG;IACrD,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CACxB,CAuCA;AAMD;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAKvC;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,uBAAuB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDpF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EACX,oBAAoB,GACpB,kBAAkB,GAClB,kBAAkB,GAClB,oBAAoB,GACpB,mBAAmB,CAAC;IACxB,OAAO,EAAE,GAAG,CAAC;CACd,GAAG,OAAO,CAAC,IAAI,CAAC,CAWhB;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAAC,MAAM,EAAE;IACrD,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,GAAG,OAAO,CAAC,IAAI,CAAC,CAehB;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CAchB;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,IAAI,CAAC,CAchB;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBhB;AAED;;;;GAIG;AACH,wBAAsB,0BAA0B,CAAC,MAAM,EAAE;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBhB;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;CAC7B,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBhB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAavE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,kBAAkB,GAAG,IAAI,CAoB5B"}
|
package/dist/eval-capture.js
CHANGED
|
@@ -12330,6 +12330,7 @@ function date4(params) {
|
|
|
12330
12330
|
// ../../node_modules/.bun/zod@4.1.8/node_modules/zod/v4/classic/external.js
|
|
12331
12331
|
config(en_default());
|
|
12332
12332
|
// src/eval-capture.ts
|
|
12333
|
+
import { getSwarmMailLibSQL } from "swarm-mail";
|
|
12333
12334
|
var SubtaskOutcomeSchema = exports_external.object({
|
|
12334
12335
|
bead_id: exports_external.string(),
|
|
12335
12336
|
title: exports_external.string(),
|
|
@@ -12398,7 +12399,8 @@ var CoordinatorEventSchema = exports_external.discriminatedUnion("event_type", [
|
|
|
12398
12399
|
"coordinator_edited_file",
|
|
12399
12400
|
"coordinator_ran_tests",
|
|
12400
12401
|
"coordinator_reserved_files",
|
|
12401
|
-
"no_worker_spawned"
|
|
12402
|
+
"no_worker_spawned",
|
|
12403
|
+
"worker_completed_without_review"
|
|
12402
12404
|
]),
|
|
12403
12405
|
payload: exports_external.any()
|
|
12404
12406
|
}),
|
|
@@ -12619,7 +12621,7 @@ function getEvalDataStats(projectPath) {
|
|
|
12619
12621
|
};
|
|
12620
12622
|
}
|
|
12621
12623
|
function getSessionDir() {
|
|
12622
|
-
return path.join(os.homedir(), ".config", "swarm-tools", "sessions");
|
|
12624
|
+
return process.env.SWARM_SESSIONS_DIR || path.join(os.homedir(), ".config", "swarm-tools", "sessions");
|
|
12623
12625
|
}
|
|
12624
12626
|
function getSessionPath(sessionId) {
|
|
12625
12627
|
return path.join(getSessionDir(), `${sessionId}.jsonl`);
|
|
@@ -12630,15 +12632,46 @@ function ensureSessionDir() {
|
|
|
12630
12632
|
fs.mkdirSync(sessionDir, { recursive: true });
|
|
12631
12633
|
}
|
|
12632
12634
|
}
|
|
12633
|
-
function captureCoordinatorEvent(event) {
|
|
12635
|
+
async function captureCoordinatorEvent(event) {
|
|
12634
12636
|
CoordinatorEventSchema.parse(event);
|
|
12635
|
-
|
|
12636
|
-
|
|
12637
|
-
|
|
12637
|
+
try {
|
|
12638
|
+
const projectPath = process.cwd();
|
|
12639
|
+
const swarmMail = await getSwarmMailLibSQL(projectPath);
|
|
12640
|
+
const eventType = `coordinator_${event.event_type.toLowerCase()}`;
|
|
12641
|
+
const eventData = {
|
|
12642
|
+
type: eventType,
|
|
12643
|
+
project_key: projectPath,
|
|
12644
|
+
timestamp: new Date(event.timestamp).getTime(),
|
|
12645
|
+
session_id: event.session_id,
|
|
12646
|
+
epic_id: event.epic_id,
|
|
12647
|
+
event_type: event.event_type,
|
|
12648
|
+
payload: event.payload
|
|
12649
|
+
};
|
|
12650
|
+
if (event.event_type === "DECISION") {
|
|
12651
|
+
eventData.decision_type = event.decision_type;
|
|
12652
|
+
} else if (event.event_type === "VIOLATION") {
|
|
12653
|
+
eventData.violation_type = event.violation_type;
|
|
12654
|
+
} else if (event.event_type === "OUTCOME") {
|
|
12655
|
+
eventData.outcome_type = event.outcome_type;
|
|
12656
|
+
} else if (event.event_type === "COMPACTION") {
|
|
12657
|
+
eventData.compaction_type = event.compaction_type;
|
|
12658
|
+
}
|
|
12659
|
+
await swarmMail.appendEvent(eventData);
|
|
12660
|
+
ensureSessionDir();
|
|
12661
|
+
const sessionPath = getSessionPath(event.session_id);
|
|
12662
|
+
const line = `${JSON.stringify(event)}
|
|
12638
12663
|
`;
|
|
12639
|
-
|
|
12664
|
+
fs.appendFileSync(sessionPath, line, "utf-8");
|
|
12665
|
+
} catch (error45) {
|
|
12666
|
+
console.warn("Failed to append event to libSQL, using JSONL fallback:", error45);
|
|
12667
|
+
ensureSessionDir();
|
|
12668
|
+
const sessionPath = getSessionPath(event.session_id);
|
|
12669
|
+
const line = `${JSON.stringify(event)}
|
|
12670
|
+
`;
|
|
12671
|
+
fs.appendFileSync(sessionPath, line, "utf-8");
|
|
12672
|
+
}
|
|
12640
12673
|
}
|
|
12641
|
-
function captureCompactionEvent(params) {
|
|
12674
|
+
async function captureCompactionEvent(params) {
|
|
12642
12675
|
const event = {
|
|
12643
12676
|
session_id: params.session_id,
|
|
12644
12677
|
epic_id: params.epic_id,
|
|
@@ -12647,9 +12680,9 @@ function captureCompactionEvent(params) {
|
|
|
12647
12680
|
compaction_type: params.compaction_type,
|
|
12648
12681
|
payload: params.payload
|
|
12649
12682
|
};
|
|
12650
|
-
captureCoordinatorEvent(event);
|
|
12683
|
+
await captureCoordinatorEvent(event);
|
|
12651
12684
|
}
|
|
12652
|
-
function captureResearcherSpawned(params) {
|
|
12685
|
+
async function captureResearcherSpawned(params) {
|
|
12653
12686
|
const event = {
|
|
12654
12687
|
session_id: params.session_id,
|
|
12655
12688
|
epic_id: params.epic_id,
|
|
@@ -12662,9 +12695,9 @@ function captureResearcherSpawned(params) {
|
|
|
12662
12695
|
tools_used: params.tools_used || []
|
|
12663
12696
|
}
|
|
12664
12697
|
};
|
|
12665
|
-
captureCoordinatorEvent(event);
|
|
12698
|
+
await captureCoordinatorEvent(event);
|
|
12666
12699
|
}
|
|
12667
|
-
function captureSkillLoaded(params) {
|
|
12700
|
+
async function captureSkillLoaded(params) {
|
|
12668
12701
|
const event = {
|
|
12669
12702
|
session_id: params.session_id,
|
|
12670
12703
|
epic_id: params.epic_id,
|
|
@@ -12676,9 +12709,9 @@ function captureSkillLoaded(params) {
|
|
|
12676
12709
|
context: params.context
|
|
12677
12710
|
}
|
|
12678
12711
|
};
|
|
12679
|
-
captureCoordinatorEvent(event);
|
|
12712
|
+
await captureCoordinatorEvent(event);
|
|
12680
12713
|
}
|
|
12681
|
-
function captureInboxChecked(params) {
|
|
12714
|
+
async function captureInboxChecked(params) {
|
|
12682
12715
|
const event = {
|
|
12683
12716
|
session_id: params.session_id,
|
|
12684
12717
|
epic_id: params.epic_id,
|
|
@@ -12690,9 +12723,9 @@ function captureInboxChecked(params) {
|
|
|
12690
12723
|
urgent_count: params.urgent_count
|
|
12691
12724
|
}
|
|
12692
12725
|
};
|
|
12693
|
-
captureCoordinatorEvent(event);
|
|
12726
|
+
await captureCoordinatorEvent(event);
|
|
12694
12727
|
}
|
|
12695
|
-
function captureBlockerResolved(params) {
|
|
12728
|
+
async function captureBlockerResolved(params) {
|
|
12696
12729
|
const event = {
|
|
12697
12730
|
session_id: params.session_id,
|
|
12698
12731
|
epic_id: params.epic_id,
|
|
@@ -12706,9 +12739,9 @@ function captureBlockerResolved(params) {
|
|
|
12706
12739
|
resolution: params.resolution
|
|
12707
12740
|
}
|
|
12708
12741
|
};
|
|
12709
|
-
captureCoordinatorEvent(event);
|
|
12742
|
+
await captureCoordinatorEvent(event);
|
|
12710
12743
|
}
|
|
12711
|
-
function captureScopeChangeDecision(params) {
|
|
12744
|
+
async function captureScopeChangeDecision(params) {
|
|
12712
12745
|
const event = {
|
|
12713
12746
|
session_id: params.session_id,
|
|
12714
12747
|
epic_id: params.epic_id,
|
|
@@ -12728,9 +12761,9 @@ function captureScopeChangeDecision(params) {
|
|
|
12728
12761
|
rejection_reason: params.rejection_reason
|
|
12729
12762
|
}
|
|
12730
12763
|
};
|
|
12731
|
-
captureCoordinatorEvent(event);
|
|
12764
|
+
await captureCoordinatorEvent(event);
|
|
12732
12765
|
}
|
|
12733
|
-
function captureBlockerDetected(params) {
|
|
12766
|
+
async function captureBlockerDetected(params) {
|
|
12734
12767
|
const event = {
|
|
12735
12768
|
session_id: params.session_id,
|
|
12736
12769
|
epic_id: params.epic_id,
|
|
@@ -12745,7 +12778,7 @@ function captureBlockerDetected(params) {
|
|
|
12745
12778
|
reported_at: new Date().toISOString()
|
|
12746
12779
|
}
|
|
12747
12780
|
};
|
|
12748
|
-
captureCoordinatorEvent(event);
|
|
12781
|
+
await captureCoordinatorEvent(event);
|
|
12749
12782
|
}
|
|
12750
12783
|
function readSessionEvents(sessionId) {
|
|
12751
12784
|
const sessionPath = getSessionPath(sessionId);
|
package/dist/eval-learning.d.ts
CHANGED
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
*
|
|
10
10
|
* ```typescript
|
|
11
11
|
* import { learnFromEvalFailure } from "./eval-learning";
|
|
12
|
-
* import {
|
|
12
|
+
* import { getHivemindAdapter } from "./hivemind-tools";
|
|
13
13
|
* import { getScoreHistory } from "./eval-history";
|
|
14
14
|
*
|
|
15
|
-
* const memoryAdapter = await
|
|
15
|
+
* const memoryAdapter = await getHivemindAdapter();
|
|
16
16
|
* const history = getScoreHistory(projectPath, "compaction-test");
|
|
17
17
|
*
|
|
18
18
|
* const result = await learnFromEvalFailure(
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
* @module eval-learning
|
|
56
56
|
*/
|
|
57
57
|
import type { EvalRunRecord } from "./eval-history";
|
|
58
|
-
import type { MemoryAdapter } from "./
|
|
58
|
+
import type { MemoryAdapter } from "./hivemind-tools";
|
|
59
59
|
/**
|
|
60
60
|
* Configuration for eval-to-learning feedback
|
|
61
61
|
*/
|
|
@@ -156,10 +156,10 @@ export declare function formatFailureContext(evalName: string, currentScore: num
|
|
|
156
156
|
* @example
|
|
157
157
|
* ```typescript
|
|
158
158
|
* import { learnFromEvalFailure } from "./eval-learning.js";
|
|
159
|
-
* import {
|
|
159
|
+
* import { getHivemindAdapter } from "./hivemind-tools.js";
|
|
160
160
|
* import { getScoreHistory } from "./eval-history.js";
|
|
161
161
|
*
|
|
162
|
-
* const memoryAdapter = await
|
|
162
|
+
* const memoryAdapter = await getHivemindAdapter();
|
|
163
163
|
* const history = getScoreHistory("/path/to/project", "coordinator-behavior");
|
|
164
164
|
*
|
|
165
165
|
* const result = await learnFromEvalFailure(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eval-learning.d.ts","sourceRoot":"","sources":["../src/eval-learning.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"eval-learning.d.ts","sourceRoot":"","sources":["../src/eval-learning.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMtD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,+DAA+D;IAC/D,aAAa,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,4BAA4B,EAAE,kBAG1C,CAAC;AAMF;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,iDAAiD;IACjD,SAAS,EAAE,OAAO,CAAC;IACnB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,eAAe,EAAE,MAAM,CAAC;IACxB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACtC,OAAO,EAAE,aAAa,EAAE,EACxB,UAAU,GAAE,MAAU,GACpB,MAAM,CAQR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAChC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,MAAa,GACtB,OAAO,CAQT;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CACnC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,MAAM,GACpB,MAAM,CAsBR;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwEG;AACH,wBAAsB,oBAAoB,CACzC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,aAAa,EAAE,EACxB,aAAa,EAAE,aAAa,EAC5B,OAAO,CAAC,EAAE;IACT,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB,GACC,OAAO,CAAC,cAAc,CAAC,CAqDzB;AAMD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CACnC,aAAa,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,MAAM,GACjB,kBAAkB,CAKpB"}
|
package/dist/hive.d.ts
CHANGED
|
@@ -123,6 +123,13 @@ export declare function importJsonlToPGLite(projectPath: string): Promise<{
|
|
|
123
123
|
*/
|
|
124
124
|
export declare function getHiveAdapter(projectKey: string): Promise<HiveAdapter>;
|
|
125
125
|
export declare const getBeadsAdapter: typeof getHiveAdapter;
|
|
126
|
+
/**
|
|
127
|
+
* Clear the hive adapter cache
|
|
128
|
+
*
|
|
129
|
+
* Used in tests to ensure clean state between test runs.
|
|
130
|
+
* Clears all cached adapters without closing them (caller should close first).
|
|
131
|
+
*/
|
|
132
|
+
export declare function clearHiveAdapterCache(): void;
|
|
126
133
|
/**
|
|
127
134
|
* Create a new cell with type-safe validation
|
|
128
135
|
*/
|
package/dist/hive.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hive.d.ts","sourceRoot":"","sources":["../src/hive.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAKL,KAAK,WAAW,EAKjB,MAAM,YAAY,CAAC;AAepB;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAE/D;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAGD,eAAO,MAAM,wBAAwB,gCAA0B,CAAC;AAChE,eAAO,MAAM,wBAAwB,gCAA0B,CAAC;AAuChE;;GAEG;AACH,qBAAa,SAAU,SAAQ,KAAK;aAGhB,OAAO,EAAE,MAAM;aACf,QAAQ,CAAC,EAAE,MAAM;aACjB,MAAM,CAAC,EAAE,MAAM;gBAH/B,OAAO,EAAE,MAAM,EACC,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,YAAA,EACjB,MAAM,CAAC,EAAE,MAAM,YAAA;CAKlC;AAGD,eAAO,MAAM,SAAS,kBAAY,CAAC;AAEnC;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;aAG1B,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBADpC,OAAO,EAAE,MAAM,EACC,QAAQ,EAAE,CAAC,CAAC,QAAQ;CAKvC;AAGD,eAAO,MAAM,mBAAmB,4BAAsB,CAAC;AAMvD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,kCAAkC;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,QAAQ,EAAE,OAAO,CAAC;IAClB,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,oBAAoB,CAgBnF;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAyBtF;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAO7D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,CAAC,CA6CxG;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAmGD;AAoFD;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAiB7E;AAGD,eAAO,MAAM,eAAe,uBAAiB,CAAC;AA+
|
|
1
|
+
{"version":3,"file":"hive.d.ts","sourceRoot":"","sources":["../src/hive.ts"],"names":[],"mappings":"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"}
|