wyrm-mcp 7.2.4 → 7.3.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.
Files changed (49) hide show
  1. package/dist/autoconfig.d.ts.map +1 -1
  2. package/dist/autoconfig.js +17 -17
  3. package/dist/autoconfig.js.map +1 -1
  4. package/dist/causality.d.ts +21 -0
  5. package/dist/causality.d.ts.map +1 -1
  6. package/dist/causality.js +12 -6
  7. package/dist/causality.js.map +1 -1
  8. package/dist/content-signature.d.ts +33 -0
  9. package/dist/content-signature.d.ts.map +1 -0
  10. package/dist/content-signature.js +1 -0
  11. package/dist/content-signature.js.map +1 -0
  12. package/dist/failure-patterns.d.ts +15 -0
  13. package/dist/failure-patterns.d.ts.map +1 -1
  14. package/dist/failure-patterns.js +26 -20
  15. package/dist/failure-patterns.js.map +1 -1
  16. package/dist/handlers/causality.d.ts.map +1 -1
  17. package/dist/handlers/causality.js +7 -5
  18. package/dist/handlers/causality.js.map +1 -1
  19. package/dist/handlers/recall.d.ts.map +1 -1
  20. package/dist/handlers/recall.js +11 -9
  21. package/dist/handlers/recall.js.map +1 -1
  22. package/dist/handlers/run.d.ts +44 -0
  23. package/dist/handlers/run.d.ts.map +1 -1
  24. package/dist/handlers/run.js +10 -12
  25. package/dist/handlers/run.js.map +1 -1
  26. package/dist/importers.d.ts +77 -0
  27. package/dist/importers.d.ts.map +1 -0
  28. package/dist/importers.js +1 -0
  29. package/dist/importers.js.map +1 -0
  30. package/dist/migrations.d.ts.map +1 -1
  31. package/dist/migrations.js +1 -1
  32. package/dist/migrations.js.map +1 -1
  33. package/dist/receipt.d.ts +45 -0
  34. package/dist/receipt.d.ts.map +1 -0
  35. package/dist/receipt.js +1 -0
  36. package/dist/receipt.js.map +1 -0
  37. package/dist/render-target.d.ts +15 -1
  38. package/dist/render-target.d.ts.map +1 -1
  39. package/dist/render-target.js +11 -11
  40. package/dist/render-target.js.map +1 -1
  41. package/dist/tool-manifest-v2.json +1 -1
  42. package/dist/tool-manifest.json +1 -1
  43. package/dist/wyrm-cli.js +45 -42
  44. package/dist/wyrm-cli.js.map +1 -1
  45. package/dist/wyrm-guard.d.ts.map +1 -1
  46. package/dist/wyrm-guard.js +13 -13
  47. package/dist/wyrm-guard.js.map +1 -1
  48. package/dist/wyrm-manifest.json +1 -1
  49. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import{sanitizeFtsQuery as I}from"./security.js";import{emitEvent as b,isLiveMemoryEnabled as A}from"./events.js";import{getActor as E,hasExplicitAttribution as j}from"./handlers/boundary.js";import{readActor as m,resolveAttribution as C}from"./attribution.js";const T={run:0,project:1,global:2},D=200,y=5;function W(a){const e=r=>Object.entries(r).filter(([,o])=>o>0).map(([o,c])=>`${o} ${c}`).join(" \xB7 ")||"none",t=r=>r.map(o=>`${"who"in o?o.who:o.run_id} \xD7${o.count}`).join(" \xB7 ")||"none",n=a.blocked.this_run.run_id===null?"- This run: (no run identity \u2014 export WYRM_RUN_ID or pass run_id)":`- This run (${a.blocked.this_run.run_id}): ${a.blocked.this_run.blocked} repeat(s) blocked`;return`\u{F115D} **Failure Analytics** (${a.project_id===null?"all projects":`project #${a.project_id}`})
1
+ import{sanitizeFtsQuery as I}from"./security.js";import{emitEvent as b,isLiveMemoryEnabled as A}from"./events.js";import{getActor as E,hasExplicitAttribution as j}from"./handlers/boundary.js";import{readActor as C,resolveAttribution as m}from"./attribution.js";import{normalizeContentSignature as D,containsFailedSignature as y}from"./content-signature.js";const g={run:0,project:1,global:2},M=200,U=5;function B(a){const e=r=>Object.entries(r).filter(([,o])=>o>0).map(([o,c])=>`${o} ${c}`).join(" \xB7 ")||"none",t=r=>r.map(o=>`${"who"in o?o.who:o.run_id} \xD7${o.count}`).join(" \xB7 ")||"none",n=a.blocked.this_run.run_id===null?"- This run: (no run identity \u2014 export WYRM_RUN_ID or pass run_id)":`- This run (${a.blocked.this_run.run_id}): ${a.blocked.this_run.blocked} repeat(s) blocked`;return`\u{F115D} **Failure Analytics** (${a.project_id===null?"all projects":`project #${a.project_id}`})
2
2
 
3
3
  **Recorded:** ${a.recorded.total} failure(s), ${a.recorded.unresolved} unresolved
4
4
  - By quarantine: ${e(a.recorded.by_quarantine_scope)}
@@ -12,7 +12,7 @@ import{sanitizeFtsQuery as I}from"./security.js";import{emitEvent as b,isLiveMem
12
12
  ${n}
13
13
  - By agent: ${t(a.blocked.by_agent)}
14
14
  - By run: ${t(a.blocked.by_run)}
15
- - Top blockers: ${a.blocked.top_blocked.map(r=>`#${r.failure_id} ${r.scope}:${r.target} \xD7${r.blocks}`).join(" \xB7 ")||"none"}`}function M(a,e){if(a==="exact")return 1;if(a==="target")return .95;const t=Math.max(0,-(e??0));return Number((.05+.85*(t/(t+2))).toFixed(4))}function h(a){return a.toLowerCase().replace(/\s+/g," ").trim()}function g(a){return h(a).slice(0,200)}class O{db;constructor(e){this.db=e}static signature(e,t,n){return`${e}:${g(t)}:${g(n).slice(0,80)}`}record(e){const t=O.signature(e.scope,e.target,e.description),n=e.project_id??null,r=E(),c=this.db.transaction(()=>{const i=this.db.prepare(`
15
+ - Top blockers: ${a.blocked.top_blocked.map(r=>`#${r.failure_id} ${r.scope}:${r.target} \xD7${r.blocks}`).join(" \xB7 ")||"none"}`}function k(a,e){if(a==="exact")return 1;if(a==="target")return .95;const t=Math.max(0,-(e??0));return Number((.05+.85*(t/(t+2))).toFixed(4))}function h(a){return a.toLowerCase().replace(/\s+/g," ").trim()}function T(a){return h(a).slice(0,200)}class O{db;constructor(e){this.db=e}static signature(e,t,n){return`${e}:${T(t)}:${T(n).slice(0,80)}`}record(e){const t=O.signature(e.scope,e.target,e.description),n=e.project_id??null,r=e.content&&D(e.content)||null,o=E(),s=this.db.transaction(()=>{const i=this.db.prepare(`
16
16
  SELECT * FROM failure_patterns
17
17
  WHERE signature = ? AND (project_id IS ? OR project_id = ?)
18
18
  `).get(t,n,n);if(i)return this.db.prepare(`
@@ -21,23 +21,29 @@ ${n}
21
21
  last_seen = datetime('now'),
22
22
  why_failed = COALESCE(?, why_failed),
23
23
  severity = ?,
24
+ content_sig = COALESCE(?, content_sig),
24
25
  resolved = 0
25
26
  WHERE id = ?
26
- `).run(e.why_failed??null,e.severity??i.severity,i.id),this.noteConfirmation(i.id,r),this.get(i.id);const s=e.quarantine_scope??(r.run_id!==null?"run":n===null?"global":"project"),d=this.db.prepare(`
27
+ `).run(e.why_failed??null,e.severity??i.severity,r,i.id),this.noteConfirmation(i.id,o),this.get(i.id);const u=e.quarantine_scope??(o.run_id!==null?"run":n===null?"global":"project"),l=this.db.prepare(`
27
28
  INSERT INTO failure_patterns
28
- (project_id, signature, scope, target, description, why_failed, severity, agent_id, run_id, quarantine_scope)
29
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
30
- `).run(n,t,e.scope,e.target,e.description,e.why_failed??null,e.severity??"medium",r.agent_id,r.run_id,s),u=this.get(d.lastInsertRowid);return this.noteConfirmation(u.id,r),u}).immediate();return b(this.db,{projectId:c.project_id??0,kind:"failure",refTable:"failure_patterns",refId:c.id}),c}get(e){return this.db.prepare("SELECT * FROM failure_patterns WHERE id = ?").get(e)??null}noteConfirmation(e,t){if(t.agent_id===null)return;this.db.prepare(`
29
+ (project_id, signature, scope, target, description, why_failed, severity, agent_id, run_id, quarantine_scope, content_sig)
30
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
31
+ `).run(n,t,e.scope,e.target,e.description,e.why_failed??null,e.severity??"medium",o.agent_id,o.run_id,u,r),d=this.get(l.lastInsertRowid);return this.noteConfirmation(d.id,o),d}).immediate();return b(this.db,{projectId:s.project_id??0,kind:"failure",refTable:"failure_patterns",refId:s.id}),s}contentMatch(e,t,n){const r=this.db.prepare(`
32
+ SELECT * FROM failure_patterns
33
+ WHERE content_sig IS NOT NULL AND scope = ? AND resolved = 0
34
+ AND (project_id IS ? OR project_id = ?)
35
+ ORDER BY occurrences DESC, last_seen DESC
36
+ `).all(t,n,n);for(const o of r)if(o.content_sig&&y(e,o.content_sig))return o;return null}get(e){return this.db.prepare("SELECT * FROM failure_patterns WHERE id = ?").get(e)??null}noteConfirmation(e,t){if(t.agent_id===null)return;this.db.prepare(`
31
37
  INSERT OR IGNORE INTO failure_confirmations (failure_id, agent_id, run_id)
32
38
  VALUES (?, ?, ?)
33
- `).run(e,t.agent_id,t.run_id);const n=this.get(e);if(!n||n.quarantine_scope!=="run")return;const{n:r}=this.db.prepare("SELECT COUNT(*) AS n FROM failure_confirmations WHERE failure_id = ?").get(e);r>=2&&this.applyPromotion(e,"project")}applyPromotion(e,t){const n=this.get(e);if(!n)return!1;const r=t==="project"&&n.project_id===null?"global":t;return T[r]<=T[n.quarantine_scope]?!1:(this.db.prepare("UPDATE failure_patterns SET quarantine_scope = ? WHERE id = ?").run(r,e),b(this.db,{projectId:n.project_id??0,kind:"failure",refTable:"failure_patterns",refId:e}),!0)}promote(e,t){if(!j(E()))return{row:this.get(e),authorized:!1,changed:!1};const n=this.applyPromotion(e,t);return{row:this.get(e),authorized:!0,changed:n}}sweepRunQuarantine(e){const t=Math.max(1,Math.floor(e?.runInactiveHours??24)),n=`-${t} hours`,r=Date.now()-t*36e5,o=A(),c=this.db.transaction(()=>{const i=this.db.prepare(`
39
+ `).run(e,t.agent_id,t.run_id);const n=this.get(e);if(!n||n.quarantine_scope!=="run")return;const{n:r}=this.db.prepare("SELECT COUNT(*) AS n FROM failure_confirmations WHERE failure_id = ?").get(e);r>=2&&this.applyPromotion(e,"project")}applyPromotion(e,t){const n=this.get(e);if(!n)return!1;const r=t==="project"&&n.project_id===null?"global":t;return g[r]<=g[n.quarantine_scope]?!1:(this.db.prepare("UPDATE failure_patterns SET quarantine_scope = ? WHERE id = ?").run(r,e),b(this.db,{projectId:n.project_id??0,kind:"failure",refTable:"failure_patterns",refId:e}),!0)}promote(e,t){if(!j(E()))return{row:this.get(e),authorized:!1,changed:!1};const n=this.applyPromotion(e,t);return{row:this.get(e),authorized:!0,changed:n}}sweepRunQuarantine(e){const t=Math.max(1,Math.floor(e?.runInactiveHours??24)),n=`-${t} hours`,r=Date.now()-t*36e5,o=A(),c=this.db.transaction(()=>{const s=this.db.prepare(`
34
40
  UPDATE failure_patterns
35
41
  SET resolved = 1,
36
42
  resolution_note = COALESCE(resolution_note || ' \xB7 ', '')
37
43
  || 'auto-expired by run-quarantine sweep: run ' || run_id || ' was abandoned'
38
44
  WHERE resolved = 0 AND quarantine_scope = 'run' AND run_id IS NOT NULL
39
45
  AND run_id IN (SELECT run_id FROM runs WHERE status = 'abandoned')
40
- `).run().changes,s=this.db.prepare(`
46
+ `).run().changes,i=this.db.prepare(`
41
47
  SELECT fp.id FROM failure_patterns fp
42
48
  WHERE fp.resolved = 0 AND fp.quarantine_scope = 'run' AND fp.run_id IS NOT NULL
43
49
  AND (
@@ -63,18 +69,18 @@ ${n}
63
69
  )
64
70
  )
65
71
  )
66
- `).all({cut:n,cutMs:r,ttl:o?1:0}).map(l=>l.id),d=this.db.prepare(`
72
+ `).all({cut:n,cutMs:r,ttl:o?1:0}).map(d=>d.id),u=this.db.prepare(`
67
73
  UPDATE failure_patterns
68
74
  SET quarantine_scope = CASE WHEN project_id IS NULL THEN 'global' ELSE 'project' END
69
75
  WHERE id = ?
70
- `);for(const l of s)d.run(l);const u=o?this.db.prepare(`
76
+ `);for(const d of i)u.run(d);const l=o?this.db.prepare(`
71
77
  UPDATE runs SET status = 'abandoned', updated_at = datetime('now')
72
78
  WHERE status = 'running' AND updated_at < datetime('now', @cut)
73
79
  AND NOT EXISTS (
74
80
  SELECT 1 FROM events e
75
81
  WHERE e.run_id = runs.run_id AND e.created_at >= @cutMs
76
82
  )
77
- `).run({cut:n,cutMs:r}).changes:0;return{promotedIds:s,expired:i,abandoned:u}})();for(const i of c.promotedIds){const s=this.get(i);b(this.db,{projectId:s?.project_id??0,kind:"failure",refTable:"failure_patterns",refId:i,agentId:null,runId:null})}return{promoted:c.promotedIds.length,expired:c.expired,runs_abandoned:c.abandoned,...o?{}:{degraded:"live memory off (WYRM_LIVE_MEMORY) \u2014 run-tagged events do not exist, so the run-inactivity TTL paths were skipped; only explicit run verdicts acted (completed/failed promote, abandoned expires)"}}}check(e,t,n,r,o){return this.query(e,t,n,r??null,o).map(({_match:c,_rank:i,...s})=>s)}checkVerdict(e,t,n,r,o){const i=this.query(e,t,n,r??null,o).map(s=>this.toVerdictMatch(s,s._match,s._rank));return{blocked:i.length>0,matches:i,recorded_by_agent:i[0]?.recorded_by_agent??null,run_id:i[0]?.run_id??null,confidence:i.reduce((s,d)=>Math.max(s,d.confidence),0)}}toVerdictMatch(e,t,n=null){const r=C(e);return{id:e.id,pattern:e.signature,scope:e.scope,quarantine_scope:e.quarantine_scope,target:e.target,description:e.description,why_failed:e.why_failed,severity:e.severity,occurrences:e.occurrences,last_seen:e.last_seen,recorded_by_agent:r.actor,run_id:r.run_id,match:t,confidence:M(t,n)}}targetIdentityMatches(e,t,n,r){const o=h(t),c=o.slice(0,200);if(c.length===0)return[];const i=r?.callerRunId!==void 0?r.callerRunId:E().run_id,s=`${e}:${c}:`,d=`${e}:${c};`;return this.db.prepare(`
83
+ `).run({cut:n,cutMs:r}).changes:0;return{promotedIds:i,expired:s,abandoned:l}})();for(const s of c.promotedIds){const i=this.get(s);b(this.db,{projectId:i?.project_id??0,kind:"failure",refTable:"failure_patterns",refId:s,agentId:null,runId:null})}return{promoted:c.promotedIds.length,expired:c.expired,runs_abandoned:c.abandoned,...o?{}:{degraded:"live memory off (WYRM_LIVE_MEMORY) \u2014 run-tagged events do not exist, so the run-inactivity TTL paths were skipped; only explicit run verdicts acted (completed/failed promote, abandoned expires)"}}}check(e,t,n,r,o){return this.query(e,t,n,r??null,o).map(({_match:c,_rank:s,...i})=>i)}checkVerdict(e,t,n,r,o){const s=this.query(e,t,n,r??null,o).map(i=>this.toVerdictMatch(i,i._match,i._rank));return{blocked:s.length>0,matches:s,recorded_by_agent:s[0]?.recorded_by_agent??null,run_id:s[0]?.run_id??null,confidence:s.reduce((i,u)=>Math.max(i,u.confidence),0)}}toVerdictMatch(e,t,n=null){const r=m(e);return{id:e.id,pattern:e.signature,scope:e.scope,quarantine_scope:e.quarantine_scope,target:e.target,description:e.description,why_failed:e.why_failed,severity:e.severity,occurrences:e.occurrences,last_seen:e.last_seen,recorded_by_agent:r.actor,run_id:r.run_id,match:t,confidence:k(t,n)}}targetIdentityMatches(e,t,n,r){const o=h(t),c=o.slice(0,200);if(c.length===0)return[];const s=r?.callerRunId!==void 0?r.callerRunId:E().run_id,i=`${e}:${c}:`,u=`${e}:${c};`;return this.db.prepare(`
78
84
  SELECT * FROM failure_patterns
79
85
  WHERE resolved = 0
80
86
  AND signature >= @lo AND signature < @hi
@@ -82,7 +88,7 @@ ${n}
82
88
  AND (quarantine_scope <> 'run' OR run_id = @run)
83
89
  ORDER BY occurrences DESC, last_seen DESC
84
90
  LIMIT @cap
85
- `).all({lo:s,hi:d,project:n??null,run:i,cap:D}).filter(l=>h(l.target)===o).slice(0,y)}recordBlock(e,t){if(!(!e.blocked||e.matches.length===0))try{const n=E();this.db.prepare(`
91
+ `).all({lo:i,hi:u,project:n??null,run:s,cap:M}).filter(d=>h(d.target)===o).slice(0,U)}recordBlock(e,t){if(!(!e.blocked||e.matches.length===0))try{const n=E();this.db.prepare(`
86
92
  INSERT INTO failure_blocks (failure_id, project_id, agent_id, run_id)
87
93
  VALUES (?, ?, ?, ?)
88
94
  `).run(e.matches[0].id,t??null,n.agent_id,n.run_id)}catch{}}pruneBlocks(e){const t=Math.max(1,Math.floor(e));try{return this.db.prepare("DELETE FROM failure_blocks WHERE blocked_at < datetime('now', @cut)").run({cut:`-${t} days`}).changes}catch{return 0}}failureStats(e){const t=e?.projectId??null,n=e?.callerRunId!==void 0?e.callerRunId:E().run_id,r={project:t},o=this.db.prepare(`
@@ -91,18 +97,18 @@ ${n}
91
97
  `).get(r),c={run:0,project:0,global:0};for(const _ of this.db.prepare(`
92
98
  SELECT quarantine_scope AS k, COUNT(*) AS n FROM failure_patterns
93
99
  WHERE (@project IS NULL OR project_id = @project) GROUP BY quarantine_scope
94
- `).all(r))c[_.k]=_.n;const i={file:0,symbol:0,command:0,prompt:0,edit:0};for(const _ of this.db.prepare(`
100
+ `).all(r))c[_.k]=_.n;const s={file:0,symbol:0,command:0,prompt:0,edit:0};for(const _ of this.db.prepare(`
95
101
  SELECT scope AS k, COUNT(*) AS n FROM failure_patterns
96
102
  WHERE (@project IS NULL OR project_id = @project) GROUP BY scope
97
- `).all(r))i[_.k]=_.n;const s=_=>_.map(N=>({who:m(N.agent_id),count:N.count})),d=s(this.db.prepare(`
103
+ `).all(r))s[_.k]=_.n;const i=_=>_.map(N=>({who:C(N.agent_id),count:N.count})),u=i(this.db.prepare(`
98
104
  SELECT agent_id, COUNT(*) AS count FROM failure_patterns
99
105
  WHERE (@project IS NULL OR project_id = @project)
100
106
  GROUP BY agent_id ORDER BY count DESC, agent_id ASC LIMIT 10
101
- `).all(r)),u=this.db.prepare(`
107
+ `).all(r)),l=this.db.prepare(`
102
108
  SELECT run_id, COUNT(*) AS count FROM failure_patterns
103
109
  WHERE run_id IS NOT NULL AND (@project IS NULL OR project_id = @project)
104
110
  GROUP BY run_id ORDER BY count DESC, run_id ASC LIMIT 10
105
- `).all(r),l=s(this.db.prepare(`
111
+ `).all(r),d=i(this.db.prepare(`
106
112
  SELECT agent_id, COUNT(*) AS count FROM failure_blocks
107
113
  WHERE (@project IS NULL OR project_id = @project)
108
114
  GROUP BY agent_id ORDER BY count DESC, agent_id ASC LIMIT 10
@@ -126,7 +132,7 @@ ${n}
126
132
  JOIN failure_patterns fp ON fp.id = fb.failure_id
127
133
  WHERE (@project IS NULL OR fb.project_id = @project)
128
134
  GROUP BY fb.failure_id ORDER BY blocks DESC, fb.failure_id ASC LIMIT 5
129
- `).all(r);return{view:"failures",project_id:t,recorded:{total:o.total,unresolved:o.unresolved,by_quarantine_scope:c,by_scope:i,by_agent:d,by_run:u},confirmations:{total:R.total,distinct_agents:R.distinct_agents},blocked:{total:p,by_agent:l,by_run:f,this_run:{run_id:n??null,blocked:S},top_blocked:L}}}query(e,t,n,r,o){const c=o?.callerRunId!==void 0?o.callerRunId:E().run_id,i=o?.runScope??"any",s={project:r,run:c,tier:i==="any"?null:i},d=O.signature(e,t,n),u=this.db.prepare(`
135
+ `).all(r);return{view:"failures",project_id:t,recorded:{total:o.total,unresolved:o.unresolved,by_quarantine_scope:c,by_scope:s,by_agent:u,by_run:l},confirmations:{total:R.total,distinct_agents:R.distinct_agents},blocked:{total:p,by_agent:d,by_run:f,this_run:{run_id:n??null,blocked:S},top_blocked:L}}}query(e,t,n,r,o){const c=o?.callerRunId!==void 0?o.callerRunId:E().run_id,s=o?.runScope??"any",i={project:r,run:c,tier:s==="any"?null:s},u=O.signature(e,t,n),l=this.db.prepare(`
130
136
  SELECT *, NULL AS _rank FROM failure_patterns
131
137
  WHERE resolved = 0 AND signature = @sig
132
138
  AND (project_id IS @project OR project_id = @project OR project_id IS NULL)
@@ -134,7 +140,7 @@ ${n}
134
140
  AND (@tier IS NULL OR quarantine_scope = @tier)
135
141
  ORDER BY occurrences DESC, last_seen DESC
136
142
  LIMIT 5
137
- `).all({...s,sig:d});if(u.length>0)return u.map(p=>({...p,_match:"exact",_rank:null}));const l=I(`${t} ${n}`.slice(0,100));if(!l)return[];const f=l.split(" ").filter(p=>/[\p{L}\p{N}]/u.test(p));if(f.length===0)return[];const R=f.map(p=>`"${p.replace(/"/g,"")}"`).join(" ");try{return this.db.prepare(`
143
+ `).all({...i,sig:u});if(l.length>0)return l.map(p=>({...p,_match:"exact",_rank:null}));const d=I(`${t} ${n}`.slice(0,100));if(!d)return[];const f=d.split(" ").filter(p=>/[\p{L}\p{N}]/u.test(p));if(f.length===0)return[];const R=f.map(p=>`"${p.replace(/"/g,"")}"`).join(" ");try{return this.db.prepare(`
138
144
  SELECT fp.*, bm25(failure_patterns_fts) AS _rank FROM failure_patterns fp
139
145
  JOIN failure_patterns_fts fts ON fts.rowid = fp.id
140
146
  WHERE failure_patterns_fts MATCH @q
@@ -145,11 +151,11 @@ ${n}
145
151
  AND (@tier IS NULL OR fp.quarantine_scope = @tier)
146
152
  ORDER BY fp.occurrences DESC, fp.last_seen DESC
147
153
  LIMIT 5
148
- `).all({...s,q:R,scope:e}).map(S=>({...S,_match:"fuzzy"}))}catch{return[]}}list(e,t=20){return e==null?this.db.prepare(`SELECT * FROM failure_patterns WHERE resolved = 0
154
+ `).all({...i,q:R,scope:e}).map(S=>({...S,_match:"fuzzy"}))}catch{return[]}}list(e,t=20){return e==null?this.db.prepare(`SELECT * FROM failure_patterns WHERE resolved = 0
149
155
  ORDER BY last_seen DESC LIMIT ?`).all(t):this.db.prepare(`SELECT * FROM failure_patterns
150
156
  WHERE resolved = 0 AND project_id = ?
151
157
  ORDER BY last_seen DESC LIMIT ?`).all(e,t)}resolve(e,t){return this.db.prepare(`
152
158
  UPDATE failure_patterns
153
159
  SET resolved = 1, resolution_note = ?
154
160
  WHERE id = ?
155
- `).run(t??null,e),this.get(e)}delete(e){return this.db.prepare("DELETE FROM failure_patterns WHERE id = ?").run(e).changes>0}}export{O as FailurePatterns,M as matchConfidence,h as normalizeIdentity,g as normalizeSignal,W as renderFailureStats};
161
+ `).run(t??null,e),this.get(e)}delete(e){return this.db.prepare("DELETE FROM failure_patterns WHERE id = ?").run(e).changes>0}}export{O as FailurePatterns,k as matchConfidence,h as normalizeIdentity,T as normalizeSignal,B as renderFailureStats};
@@ -1 +1 @@
1
- {"version":3,"file":"failure-patterns.js","sourceRoot":"","sources":["../src/failure-patterns.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"failure-patterns.js","sourceRoot":"","sources":["../src/failure-patterns.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"causality.d.ts","sourceRoot":"","sources":["../../src/handlers/causality.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAIzE,eAAO,MAAM,kBAAkB,EAAE,aAAa,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAoHzE,CAAC"}
1
+ {"version":3,"file":"causality.d.ts","sourceRoot":"","sources":["../../src/handlers/causality.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAKzE,eAAO,MAAM,kBAAkB,EAAE,aAAa,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAwHzE,CAAC"}
@@ -1,7 +1,9 @@
1
- import{TOOL_ANNOTATIONS as u}from"../tool-annotations.js";const h=[{name:"wyrm_decided_because",description:"Use to link a choice or decision to the assumption or evidence it was based on - records a causal edge (truth/quest/artifact/session) so stale foundations invalidate downstream.",inputSchema:{type:"object",properties:{projectPath:{type:"string"},from_kind:{type:"string",enum:["truth","artifact","quest","session","data"]},from_id:{type:"number"},to_kind:{type:"string",enum:["truth","artifact","quest","session","data"]},to_id:{type:"number"},relation:{type:"string",enum:["because_of","supersedes","refutes","verifies"],description:"Default because_of"},rationale:{type:"string",description:"Why"},confidence:{type:"number",description:"0-1, default 1.0"}},required:["projectPath","from_kind","from_id","to_kind","to_id"]},annotations:u.wyrm_decided_because,aliases:[],handler:async(i,a)=>{const{causality:r,db:o}=a,{projectPath:n,from_kind:e,from_id:s,to_kind:t,to_id:c,relation:d,rationale:m,confidence:y}=i,p=o.getProject(n);if(!p)return{content:[{type:"text",text:"Project not found"}],isError:!0};const l=r.link({project_id:p.id,from_kind:e,from_id:s,to_kind:t,to_id:c,relation:d,rationale:m,confidence:y});return{content:[{type:"text",text:`\u{F115D} Edge #${l.id} \u2014 ${e}#${s} ${l.relation} ${t}#${c}`}]}}},{name:"wyrm_decision_downstream",description:"List all decisions that depend on the given source. Use before invalidating a truth to see the blast radius.",inputSchema:{type:"object",properties:{kind:{type:"string",enum:["truth","artifact","quest","session","data"]},id:{type:"number"}},required:["kind","id"]},annotations:u.wyrm_decision_downstream,aliases:[],handler:async(i,a)=>{const{causality:r}=a,{kind:o,id:n}=i,e=r.downstreamOf(o,n);if(e.length===0)return{content:[{type:"text",text:`\u{F115D} No active dependents on ${o}#${n}.`}]};const s=e.map(t=>`\u2022 ${t.from_kind}#${t.from_id} (${t.relation}, conf ${t.confidence})${t.rationale?` \u2014 ${t.rationale}`:""}`).join(`
1
+ import{TOOL_ANNOTATIONS as u}from"../tool-annotations.js";import{staleFoundationWarning as f}from"../causality.js";const $=[{name:"wyrm_decided_because",description:"Use to link a choice or decision to the assumption or evidence it was based on - records a causal edge (truth/quest/artifact/session) so stale foundations invalidate downstream.",inputSchema:{type:"object",properties:{projectPath:{type:"string"},from_kind:{type:"string",enum:["truth","artifact","quest","session","data"]},from_id:{type:"number"},to_kind:{type:"string",enum:["truth","artifact","quest","session","data"]},to_id:{type:"number"},relation:{type:"string",enum:["because_of","supersedes","refutes","verifies"],description:"Default because_of"},rationale:{type:"string",description:"Why"},confidence:{type:"number",description:"0-1, default 1.0"}},required:["projectPath","from_kind","from_id","to_kind","to_id"]},annotations:u.wyrm_decided_because,aliases:[],handler:async(a,d)=>{const{causality:r,db:o}=d,{projectPath:i,from_kind:e,from_id:s,to_kind:t,to_id:c,relation:n,rationale:m,confidence:y}=a,p=o.getProject(i);if(!p)return{content:[{type:"text",text:"Project not found"}],isError:!0};const l=r.link({project_id:p.id,from_kind:e,from_id:s,to_kind:t,to_id:c,relation:n,rationale:m,confidence:y});return{content:[{type:"text",text:`\u{F115D} Edge #${l.id} \u2014 ${e}#${s} ${l.relation} ${t}#${c}`}]}}},{name:"wyrm_decision_downstream",description:"List all decisions that depend on the given source. Use before invalidating a truth to see the blast radius.",inputSchema:{type:"object",properties:{kind:{type:"string",enum:["truth","artifact","quest","session","data"]},id:{type:"number"}},required:["kind","id"]},annotations:u.wyrm_decision_downstream,aliases:[],handler:async(a,d)=>{const{causality:r}=d,{kind:o,id:i}=a,e=r.downstreamOf(o,i);if(e.length===0)return{content:[{type:"text",text:`\u{F115D} No active dependents on ${o}#${i}.`}]};const s=e.map(t=>`\u2022 ${t.from_kind}#${t.from_id} (${t.relation}, conf ${t.confidence})${t.rationale?` \u2014 ${t.rationale}`:""}`).join(`
2
2
  `);return{content:[{type:"text",text:`\u{F115D} ${e.length} dependent(s):
3
- ${s}`}]}}},{name:"wyrm_decision_upstream",description:"List all sources a decision was based on (incoming edges). Walks the 'why did we choose this?' chain.",inputSchema:{type:"object",properties:{kind:{type:"string",enum:["truth","artifact","quest","session","data"]},id:{type:"number"}},required:["kind","id"]},annotations:u.wyrm_decision_upstream,aliases:[],handler:async(i,a)=>{const{causality:r}=a,{kind:o,id:n}=i,e=r.upstreamOf(o,n);if(e.length===0)return{content:[{type:"text",text:`\u{F115D} No recorded basis for ${o}#${n}.`}]};const s=e.map(t=>`\u2022 ${t.to_kind}#${t.to_id} (${t.relation}, conf ${t.confidence})${t.rationale?` \u2014 ${t.rationale}`:""}`).join(`
4
- `);return{content:[{type:"text",text:`\u{F115D} ${e.length} basis edge(s):
5
- ${s}`}]}}},{name:"wyrm_decision_invalidate",description:"Cascade-invalidate all decisions downstream of a source (recursive). Use when a foundational truth turns out to be wrong. Returns the set of affected (kind, id) pairs.",inputSchema:{type:"object",properties:{kind:{type:"string",enum:["truth","artifact","quest","session","data"]},id:{type:"number"},reason:{type:"string",description:"Why the source was invalidated"}},required:["kind","id"]},annotations:u.wyrm_decision_invalidate,aliases:[],handler:async(i,a)=>{const{causality:r}=a,o=i||{},{kind:n,id:e,reason:s}=i,t=r.invalidateDownstream(n,e,s);if(t.invalidated===0)return{content:[{type:"text",text:`\u{F115D} No dependents to invalidate from ${n}#${e}.`}]};const c=t.affected.map(d=>`\u2022 ${d.kind}#${d.id} (edge #${d.edge_id})`).join(`
3
+ ${s}`}]}}},{name:"wyrm_decision_upstream",description:"List all sources a decision was based on (incoming edges). Walks the 'why did we choose this?' chain.",inputSchema:{type:"object",properties:{kind:{type:"string",enum:["truth","artifact","quest","session","data"]},id:{type:"number"}},required:["kind","id"]},annotations:u.wyrm_decision_upstream,aliases:[],handler:async(a,d)=>{const{causality:r}=d,{kind:o,id:i}=a,e=r.upstreamOf(o,i),s=f(r.staleFoundations(o,i)),t=s?`${s}
4
+
5
+ `:"";if(e.length===0)return{content:[{type:"text",text:`${t}\u{F115D} No recorded basis for ${o}#${i}.`}]};const c=e.map(n=>`\u2022 ${n.to_kind}#${n.to_id} (${n.relation}, conf ${n.confidence})${n.rationale?` \u2014 ${n.rationale}`:""}`).join(`
6
+ `);return{content:[{type:"text",text:`${t}\u{F115D} ${e.length} basis edge(s):
7
+ ${c}`}]}}},{name:"wyrm_decision_invalidate",description:"Cascade-invalidate all decisions downstream of a source (recursive). Use when a foundational truth turns out to be wrong. Returns the set of affected (kind, id) pairs.",inputSchema:{type:"object",properties:{kind:{type:"string",enum:["truth","artifact","quest","session","data"]},id:{type:"number"},reason:{type:"string",description:"Why the source was invalidated"}},required:["kind","id"]},annotations:u.wyrm_decision_invalidate,aliases:[],handler:async(a,d)=>{const{causality:r}=d,o=a||{},{kind:i,id:e,reason:s}=a,t=r.invalidateDownstream(i,e,s);if(t.invalidated===0)return{content:[{type:"text",text:`\u{F115D} No dependents to invalidate from ${i}#${e}.`}]};const c=t.affected.map(n=>`\u2022 ${n.kind}#${n.id} (edge #${n.edge_id})`).join(`
6
8
  `);return{content:[{type:"text",text:`\u{F115D} Invalidated ${t.invalidated} downstream decision(s):
7
- ${c}`}]}}}];export{h as causalityToolSpecs};
9
+ ${c}`}]}}}];export{$ as causalityToolSpecs};
@@ -1 +1 @@
1
- {"version":3,"file":"causality.js","sourceRoot":"","sources":["../../src/handlers/causality.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"causality.js","sourceRoot":"","sources":["../../src/handlers/causality.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"recall.d.ts","sourceRoot":"","sources":["../../src/handlers/recall.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAM3E,kFAAkF;AAClF,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC,GACtF,IAAI,CAAC,cAAc,EAAE,yBAAyB,CAAC,CAAC;AAElD,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CA0NlE,CAAC"}
1
+ {"version":3,"file":"recall.d.ts","sourceRoot":"","sources":["../../src/handlers/recall.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQ3E,kFAAkF;AAClF,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC,GACtF,IAAI,CAAC,cAAc,EAAE,yBAAyB,CAAC,CAAC;AAElD,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CA4OlE,CAAC"}
@@ -1,11 +1,13 @@
1
- import{TOOL_ANNOTATIONS as x}from"../tool-annotations.js";import{renderResult as j,withGlyph as u}from"../render.js";import{memoryUri as q,resourceLink as P}from"./resources.js";const U=[{name:"wyrm_recall",description:"Use before starting any non-trivial task - what do we know about this? Pull up relevant lessons learned, proven patterns, anti-patterns, and reasoning traces from past work. Hybrid lexical+semantic retrieval, fully local, no LLM. Mark what you recalled as useful (or not) with wyrm_feedback.",inputSchema:{type:"object",properties:{projectPath:{type:"string"},query:{type:"string",description:"The task or problem"},kind:{type:"string",enum:["reasoning_trace","lesson","pattern","anti_pattern","heuristic"]},limit:{type:"number",description:"Default 10"},minConfidence:{type:"number",description:"0-1 (default 0)"},detail:{type:"string",enum:["full","link"],description:"Default full"}},required:["projectPath","query"]},outputSchema:{type:"object",properties:{query:{type:"string"},count:{type:"integer"},results:{type:"array",items:{type:"object",properties:{id:{type:"integer"},kind:{type:"string"},relevance:{type:"number"},problem:{type:"string"},validated_fix:{type:["string","null"]},confidence:{type:"number"},reuse_count:{type:"integer"}},required:["id","kind","relevance","problem","confidence","reuse_count"]}}},required:["query","count","results"]},annotations:x.wyrm_recall,aliases:[],handler:async(y,{store:_,raw:w,memory:l,vectors:h,clientSupportsResources:k})=>{const{projectPath:d,query:i,kind:b,limit:v,minConfidence:$,detail:p}=y,c=_.getProject(d);if(!c)return{content:[{type:"text",text:`Project not found: ${d}`}],isError:!0};const f={kind:b,limit:v??10,minConfidence:$},o=h()?await l.recallHybrid(c.id,i,f):l.recall(c.id,i,f);if(o.length>0){const r=o.map(n=>n.artifact.id),e=r.map(()=>"?").join(",");w().prepare(`UPDATE memory_artifacts SET last_accessed_at = datetime('now'), access_count = access_count + 1 WHERE id IN (${e})`).run(...r)}const m=r=>Math.round(r*1e4)/1e4,s={query:i,count:o.length,results:o.map(r=>{const e=r.artifact,n={id:e.id,kind:e.kind,relevance:m(r.relevance_score),problem:e.problem,outcome:e.outcome,confidence:e.confidence==null?e.confidence:m(e.confidence),reuse_count:e.reuse_count,reuse_success_count:e.reuse_success_count};return e.constraints!=null&&(n.constraints=e.constraints),e.validated_fix!=null&&(n.validated_fix=e.validated_fix),e.why_it_worked!=null&&(n.why_it_worked=e.why_it_worked),n})},a=j(s,(r,e)=>{if(r.count===0)return u(e.brand,`No relevant memory found for: "${r.query}"`)+"\n\nUse `wyrm_remember` to store knowledge as you work.";let n=u(e.brand,`**Memory Recall** -- "${r.query}" (${r.count} found)`)+`
1
+ import{TOOL_ANNOTATIONS as E}from"../tool-annotations.js";import{renderResult as R,withGlyph as d}from"../render.js";import{memoryUri as P,resourceLink as D}from"./resources.js";import{buildDeterminismReceipt as L,attestation as S}from"../receipt.js";import{rerankConfigured as T}from"../rerank.js";const F=[{name:"wyrm_recall",description:"Use before starting any non-trivial task - what do we know about this? Pull up relevant lessons learned, proven patterns, anti-patterns, and reasoning traces from past work. Hybrid lexical+semantic retrieval, fully local, no LLM. Mark what you recalled as useful (or not) with wyrm_feedback.",inputSchema:{type:"object",properties:{projectPath:{type:"string"},query:{type:"string",description:"The task or problem"},kind:{type:"string",enum:["reasoning_trace","lesson","pattern","anti_pattern","heuristic"]},limit:{type:"number",description:"Default 10"},minConfidence:{type:"number",description:"0-1 (default 0)"},detail:{type:"string",enum:["full","link"],description:"Default full"}},required:["projectPath","query"]},outputSchema:{type:"object",properties:{query:{type:"string"},count:{type:"integer"},results:{type:"array",items:{type:"object",properties:{id:{type:"integer"},kind:{type:"string"},relevance:{type:"number"},problem:{type:"string"},validated_fix:{type:["string","null"]},confidence:{type:"number"},reuse_count:{type:"integer"}},required:["id","kind","relevance","problem","confidence","reuse_count"]}}},required:["query","count","results"]},annotations:E.wyrm_recall,aliases:[],handler:async(w,{store:h,raw:v,memory:p,vectors:b,clientSupportsResources:$})=>{const{projectPath:m,query:s,kind:g,limit:x,minConfidence:M,detail:f}=w,c=h.getProject(m);if(!c)return{content:[{type:"text",text:`Project not found: ${m}`}],isError:!0};const a=!!b(),y=a&&T()&&/^(1|true|yes|on)$/i.test(process.env.WYRM_RERANK??""),_={kind:g,limit:x??10,minConfidence:M,rerank:y},i=a?await p.recallHybrid(c.id,s,_):p.recall(c.id,s,_),j=L({vectorsAvailable:a,rerankActive:y,embedModel:process.env.WYRM_EMBED_MODEL||"nomic-embed-text",rerankModel:process.env.WYRM_RERANK_MODEL||null});if(i.length>0){const n=i.map(r=>r.artifact.id),e=n.map(()=>"?").join(",");v().prepare(`UPDATE memory_artifacts SET last_accessed_at = datetime('now'), access_count = access_count + 1 WHERE id IN (${e})`).run(...n)}const k=n=>Math.round(n*1e4)/1e4,l={query:s,count:i.length,results:i.map(n=>{const e=n.artifact,r={id:e.id,kind:e.kind,relevance:k(n.relevance_score),problem:e.problem,outcome:e.outcome,confidence:e.confidence==null?e.confidence:k(e.confidence),reuse_count:e.reuse_count,reuse_success_count:e.reuse_success_count};return e.constraints!=null&&(r.constraints=e.constraints),e.validated_fix!=null&&(r.validated_fix=e.validated_fix),e.why_it_worked!=null&&(r.why_it_worked=e.why_it_worked),r}),receipt:j},u=R(l,(n,e)=>{const r=`
2
2
 
3
- `;for(const t of r.results){n+=`### ${t.kind} (ID: ${t.id}) -- relevance ${(t.relevance*100).toFixed(0)}%
4
- `,n+=`**Problem:** ${t.problem}
5
- `,t.constraints&&(n+=`**Constraints:** ${t.constraints}
6
- `),t.validated_fix&&(n+=`**Solution:** ${t.validated_fix}
7
- `),t.why_it_worked&&(n+=`**Why:** ${t.why_it_worked}
8
- `),t.outcome==="negative"&&(n+=u(e.warn,"_This approach failed -- see solution for what to do instead_")+`
9
- `);const g=t.confidence==null?"unknown":`${(t.confidence*100).toFixed(0)}%`;n+=`_Confidence: ${g} | Used ${t.reuse_count}x | Success rate: ${t.reuse_count>0?(t.reuse_success_count/t.reuse_count*100).toFixed(0)+"%":"not yet used"}_
3
+ _${S(n.receipt)}_`;if(n.count===0)return d(e.brand,`No relevant memory found for: "${n.query}"`)+"\n\nUse `wyrm_remember` to store knowledge as you work."+r;let o=d(e.brand,`**Memory Recall** -- "${n.query}" (${n.count} found)`)+`
10
4
 
11
- `}return n+="_Use `wyrm_feedback` to record whether these were helpful._",n},{exemptStructured:!0});if((p==="link"||p!=="full"&&!!k?.())&&s.count>0){const r=s.results.map(e=>P(q(e.id),`memory #${e.id} (${e.kind})`,{description:e.problem.slice(0,120),mimeType:"application/json"}));return{...a,content:[...a.content,...r]}}return a}}];export{U as recallToolSpecs};
5
+ `;for(const t of n.results){o+=`### ${t.kind} (ID: ${t.id}) -- relevance ${(t.relevance*100).toFixed(0)}%
6
+ `,o+=`**Problem:** ${t.problem}
7
+ `,t.constraints&&(o+=`**Constraints:** ${t.constraints}
8
+ `),t.validated_fix&&(o+=`**Solution:** ${t.validated_fix}
9
+ `),t.why_it_worked&&(o+=`**Why:** ${t.why_it_worked}
10
+ `),t.outcome==="negative"&&(o+=d(e.warn,"_This approach failed -- see solution for what to do instead_")+`
11
+ `);const q=t.confidence==null?"unknown":`${(t.confidence*100).toFixed(0)}%`;o+=`_Confidence: ${q} | Used ${t.reuse_count}x | Success rate: ${t.reuse_count>0?(t.reuse_success_count/t.reuse_count*100).toFixed(0)+"%":"not yet used"}_
12
+
13
+ `}return o+="_Use `wyrm_feedback` to record whether these were helpful._",o+r},{exemptStructured:!0});if((f==="link"||f!=="full"&&!!$?.())&&l.count>0){const n=l.results.map(e=>D(P(e.id),`memory #${e.id} (${e.kind})`,{description:e.problem.slice(0,120),mimeType:"application/json"}));return{...u,content:[...u.content,...n]}}return u}}];export{F as recallToolSpecs};
@@ -1 +1 @@
1
- {"version":3,"file":"recall.js","sourceRoot":"","sources":["../../src/handlers/recall.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recall.js","sourceRoot":"","sources":["../../src/handlers/recall.ts"],"names":[],"mappings":"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"}
@@ -43,5 +43,49 @@ import type { HotPathContext, ToolSpec } from './types.js';
43
43
  /** Narrow slice this domain declares (T027): raw runs/run_agents SQL +
44
44
  * project lookup + review-queue writes + the T015 sweep + claim release. */
45
45
  export type RunContext = Pick<HotPathContext, 'store' | 'raw' | 'memory' | 'failures' | 'presence' | 'cache'>;
46
+ export interface RunRow {
47
+ run_id: string;
48
+ parent_run_id: string | null;
49
+ orchestrator: string | null;
50
+ status: 'running' | 'completed' | 'failed' | 'abandoned';
51
+ debrief_artifact_id: number | null;
52
+ created_at: string;
53
+ updated_at: string;
54
+ }
55
+ export interface RunAgentRow {
56
+ agent_id: string;
57
+ role: string | null;
58
+ joined_at: string;
59
+ }
60
+ /** The verbatim-SQL seam: a raw better-sqlite3 handle. Exported so the trusted
61
+ * local `wyrm run` CLI path (src/wyrm-cli.ts) reuses these helpers instead of
62
+ * re-spelling the migration-20 runs/run_agents SQL — single source of truth. */
63
+ export type Raw = ReturnType<RunContext['raw']>;
64
+ export declare const getRun: (db: Raw, runId: string) => RunRow | undefined;
65
+ export declare const getAgents: (db: Raw, runId: string) => RunAgentRow[];
66
+ /** Mint the run row (status defaults to 'running'). The ONE place the
67
+ * `INSERT INTO runs` lives — both the wyrm_run handler and the CLI call here. */
68
+ export declare const createRun: (db: Raw, runId: string, parentRunId: string | null, orchestrator: string | null) => void;
69
+ /** Set a run's terminal (or any) status + bump updated_at. The ONE place the
70
+ * status `UPDATE runs` lives. The handler's `end` wraps this with the full
71
+ * lifecycle (quarantine sweep, claim release, summary artifact); the CLI's
72
+ * `wyrm run end` is the minimal status flip. */
73
+ export declare const setRunStatus: (db: Raw, runId: string, status: RunRow["status"]) => void;
74
+ /** Register run membership (idempotent CAS on the (run_id, agent_id) PK;
75
+ * re-join refreshes the role when one is supplied — EXCEPT off
76
+ * 'orchestrator', which only `action=start` assigns and nothing strips.
77
+ *
78
+ * Second-round review of security pass #1 (confirmed finding): the plain
79
+ * COALESCE refresh let an envelope-less caller re-join AS the orchestrator's
80
+ * agent_id with any fleet role and silently DEMOTE the run's only
81
+ * 'orchestrator' row — gate (2) at join only guards CLAIMING the role, not
82
+ * stripping it — after which the start-door orphan-adoption branch (hasOrch
83
+ * now false) handed 'orchestrator' to a different agent: a two-step takeover
84
+ * that defeated the reserved-role invariant the pass introduced. The role is
85
+ * now sticky at the one seam every roster write passes through; the
86
+ * trusted-mesh self-identify re-join still succeeds, it just cannot mutate
87
+ * owner truth. */
88
+ export declare function registerAgent(db: Raw, runId: string, agentId: string, role: string | null): void;
89
+ export declare const touchRun: (db: Raw, runId: string) => void;
46
90
  export declare const runToolSpecs: ReadonlyArray<ToolSpec<RunContext>>;
47
91
  //# sourceMappingURL=run.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/handlers/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAc,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQvE;4EAC4E;AAC5E,MAAM,MAAM,UAAU,GAAG,IAAI,CAC3B,cAAc,EACd,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAC/D,CAAC;AAuGF,eAAO,MAAM,YAAY,EAAE,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,CA6Y5D,CAAC"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/handlers/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAc,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQvE;4EAC4E;AAC5E,MAAM,MAAM,UAAU,GAAG,IAAI,CAC3B,cAAc,EACd,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAC/D,CAAC;AAKF,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;IACzD,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;gFAEgF;AAChF,MAAM,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AAEhD,eAAO,MAAM,MAAM,GAAI,IAAI,GAAG,EAAE,OAAO,MAAM,KAAG,MAAM,GAAG,SAC2B,CAAC;AAErF,eAAO,MAAM,SAAS,GAAI,IAAI,GAAG,EAAE,OAAO,MAAM,KAAG,WAAW,EAG/B,CAAC;AAEhC;iFACiF;AACjF,eAAO,MAAM,SAAS,GACpB,IAAI,GAAG,EAAE,OAAO,MAAM,EAAE,aAAa,MAAM,GAAG,IAAI,EAAE,cAAc,MAAM,GAAG,IAAI,KAC9E,IAIF,CAAC;AAEF;;;gDAGgD;AAChD,eAAO,MAAM,YAAY,GAAI,IAAI,GAAG,EAAE,OAAO,MAAM,EAAE,QAAQ,MAAM,CAAC,QAAQ,CAAC,KAAG,IAG/E,CAAC;AAYF;;;;;;;;;;;;;kBAakB;AAClB,wBAAgB,aAAa,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAOhG;AAiCD,eAAO,MAAM,QAAQ,GAAI,IAAI,GAAG,EAAE,OAAO,MAAM,KAAG,IAEjD,CAAC;AAMF,eAAO,MAAM,YAAY,EAAE,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,CA0Y5D,CAAC"}
@@ -1,28 +1,26 @@
1
- import{TOOL_ANNOTATIONS as z}from"../tool-annotations.js";import{renderResult as R,withGlyph as w}from"../render.js";import{ValidationError as E,asEnum as W,asString as A}from"../validate.js";import{getActor as B,runWithActor as G,sanitizeActorId as V}from"./boundary.js";import{extractCandidates as J,candidateToArtifact as Q,escapeLikePattern as K}from"../auto-capture.js";import{ulid as X}from"../ulid.js";const H=["start","join","status","debrief","end"],Z=["completed","failed","abandoned"],O=(e,a)=>e.prepare("SELECT * FROM runs WHERE run_id = ?").get(a),v=(e,a)=>e.prepare("SELECT agent_id, role, joined_at FROM run_agents WHERE run_id = ? ORDER BY joined_at, agent_id").all(a);function h(e,a){if(a==null)return null;const u=V(a);if(u===null)throw new E(e,'must be <=64 printable-ASCII chars (no ";")');return u}function q(e,a,u,r){e.prepare(`
1
+ import{TOOL_ANNOTATIONS as z}from"../tool-annotations.js";import{renderResult as R,withGlyph as x}from"../render.js";import{ValidationError as E,asEnum as W,asString as w}from"../validate.js";import{getActor as B,runWithActor as G,sanitizeActorId as V}from"./boundary.js";import{extractCandidates as J,candidateToArtifact as Q,escapeLikePattern as K}from"../auto-capture.js";import{ulid as X}from"../ulid.js";const H=["start","join","status","debrief","end"],Z=["completed","failed","abandoned"],O=(e,n)=>e.prepare("SELECT * FROM runs WHERE run_id = ?").get(n),v=(e,n)=>e.prepare("SELECT agent_id, role, joined_at FROM run_agents WHERE run_id = ? ORDER BY joined_at, agent_id").all(n),ee=(e,n,s,r)=>{e.prepare("INSERT INTO runs (run_id, parent_run_id, orchestrator, status) VALUES (?, ?, ?, 'running')").run(n,s,r)},te=(e,n,s)=>{e.prepare("UPDATE runs SET status = ?, updated_at = datetime('now') WHERE run_id = ?").run(s,n)};function h(e,n){if(n==null)return null;const s=V(n);if(s===null)throw new E(e,'must be <=64 printable-ASCII chars (no ";")');return s}function q(e,n,s,r){e.prepare(`
2
2
  INSERT INTO run_agents (run_id, agent_id, role) VALUES (?, ?, ?)
3
3
  ON CONFLICT(run_id, agent_id) DO UPDATE SET role =
4
4
  CASE WHEN run_agents.role = 'orchestrator' THEN run_agents.role
5
5
  ELSE COALESCE(excluded.role, run_agents.role) END
6
- `).run(a,u,r)}function S(e,a,u){return u?e.prepare("SELECT 1 FROM run_agents WHERE run_id = ? AND agent_id = ? AND role = 'orchestrator'").get(a,u)!==void 0:!1}function ee(e,a,u){return e.prepare("SELECT 1 FROM run_agents WHERE run_id = ? AND agent_id = ?").get(a,u)!==void 0}function te(e){return e.agent_id!==null&&e.source!=="client"&&e.source!=="legacy"}const C=(e,a)=>{e.prepare("UPDATE runs SET updated_at = datetime('now') WHERE run_id = ?").run(a)},re=e=>({content:[{type:"text",text:`Run not found: ${e}`}],isError:!0}),ce=[{name:"wyrm_run",description:"Use to manage a fleet run lifecycle from the orchestrator: action=start mints a ULID run_id and registers the orchestrator, join registers each subagent (agent_id, role), status reports agents, run-quarantined failure counts, and quest claims, debrief fans each agent's learnings through the LOCAL extractor (never a cloud LLM) into a run-scoped review queue for wyrm_review, and end writes the run summary, promotes or expires quarantined failures, and releases claims.",inputSchema:{type:"object",properties:{action:{type:"string",enum:["start","join","status","debrief","end"]},run_id:{type:"string",description:"start mints if omitted"},agent_id:{type:"string",description:"default: ambient envelope"},role:{type:"string",description:"join"},orchestrator:{type:"string",description:"start"},parent_run_id:{type:"string",description:"start: nested fleets"},project_path:{type:"string",description:"debrief/end"},learnings:{type:"array",items:{type:"object"},description:"debrief: [{agent_id?, text}]"},status:{type:"string",enum:["completed","failed","abandoned"],description:"end (default completed)"}},required:["action"]},outputSchema:{type:"object",properties:{action:{type:"string"},run_id:{type:"string"},status:{type:"string"},orchestrator:{type:["string","null"]},agents:{type:"array",items:{type:"object",properties:{agent_id:{type:"string"},role:{type:["string","null"]}},required:["agent_id","role"]}},quarantined:{type:"integer"},resolved:{type:"integer"},claims:{type:"integer"},method:{type:"string"},queued:{type:"integer"},skipped:{type:"integer"},promoted:{type:"integer"},expired:{type:"integer"},claims_released:{type:"integer"},summary_artifact_id:{type:["integer","null"]}},required:["action","run_id","status"]},annotations:z.wyrm_run,aliases:[],handler:async(e,a)=>{const u=W("action",e.action,H);if(!u)throw new E("action",`must be one of: ${H.join(", ")}`);const r=a.raw(),_=B();if(u==="start"){const n=h("run_id",e.run_id),i=n??X(),s=A("orchestrator",e.orchestrator,{maxLen:200})??_.agent_id??null,c=h("agent_id",e.agent_id)??_.agent_id,o=h("parent_run_id",e.parent_run_id),p=O(r,i);if(p){if(!n||p.status!=="running")return{content:[{type:"text",text:`Run ${i} already exists (status: ${p.status}).`}],isError:!0};if(c){if(r.prepare("SELECT 1 FROM run_agents WHERE run_id = ? AND role = 'orchestrator' LIMIT 1").get(i)!==void 0&&!S(r,i,c))return{content:[{type:"text",text:`Run ${i} already has an orchestrator \u2014 re-start with the same agent_id, or join as a member instead.`}],isError:!0};q(r,i,c,"orchestrator")}C(r,i)}else{if(o&&!O(r,o))return{content:[{type:"text",text:`Parent run not found: ${o}`}],isError:!0};r.prepare(`
7
- INSERT INTO runs (run_id, parent_run_id, orchestrator, status) VALUES (?, ?, ?, 'running')
8
- `).run(i,o,s),c&&q(r,i,c,"orchestrator")}return R({action:"start",run_id:i,status:"running",parent_run_id:o,orchestrator:s,agents:c?[{agent_id:c,role:"orchestrator"}]:[]},(l,d)=>w(d.brand,`Run ${l.run_id} started${l.orchestrator?` by ${l.orchestrator}`:""}.`)+`
6
+ `).run(n,s,r)}function S(e,n,s){return s?e.prepare("SELECT 1 FROM run_agents WHERE run_id = ? AND agent_id = ? AND role = 'orchestrator'").get(n,s)!==void 0:!1}function re(e,n,s){return e.prepare("SELECT 1 FROM run_agents WHERE run_id = ? AND agent_id = ?").get(n,s)!==void 0}function ne(e){return e.agent_id!==null&&e.source!=="client"&&e.source!=="legacy"}const C=(e,n)=>{e.prepare("UPDATE runs SET updated_at = datetime('now') WHERE run_id = ?").run(n)},ie=e=>({content:[{type:"text",text:`Run not found: ${e}`}],isError:!0}),le=[{name:"wyrm_run",description:"Use to manage a fleet run lifecycle from the orchestrator: action=start mints a ULID run_id and registers the orchestrator, join registers each subagent (agent_id, role), status reports agents, run-quarantined failure counts, and quest claims, debrief fans each agent's learnings through the LOCAL extractor (never a cloud LLM) into a run-scoped review queue for wyrm_review, and end writes the run summary, promotes or expires quarantined failures, and releases claims.",inputSchema:{type:"object",properties:{action:{type:"string",enum:["start","join","status","debrief","end"]},run_id:{type:"string",description:"start mints if omitted"},agent_id:{type:"string",description:"default: ambient envelope"},role:{type:"string",description:"join"},orchestrator:{type:"string",description:"start"},parent_run_id:{type:"string",description:"start: nested fleets"},project_path:{type:"string",description:"debrief/end"},learnings:{type:"array",items:{type:"object"},description:"debrief: [{agent_id?, text}]"},status:{type:"string",enum:["completed","failed","abandoned"],description:"end (default completed)"}},required:["action"]},outputSchema:{type:"object",properties:{action:{type:"string"},run_id:{type:"string"},status:{type:"string"},orchestrator:{type:["string","null"]},agents:{type:"array",items:{type:"object",properties:{agent_id:{type:"string"},role:{type:["string","null"]}},required:["agent_id","role"]}},quarantined:{type:"integer"},resolved:{type:"integer"},claims:{type:"integer"},method:{type:"string"},queued:{type:"integer"},skipped:{type:"integer"},promoted:{type:"integer"},expired:{type:"integer"},claims_released:{type:"integer"},summary_artifact_id:{type:["integer","null"]}},required:["action","run_id","status"]},annotations:z.wyrm_run,aliases:[],handler:async(e,n)=>{const s=W("action",e.action,H);if(!s)throw new E("action",`must be one of: ${H.join(", ")}`);const r=n.raw(),_=B();if(s==="start"){const i=h("run_id",e.run_id),a=i??X(),d=w("orchestrator",e.orchestrator,{maxLen:200})??_.agent_id??null,c=h("agent_id",e.agent_id)??_.agent_id,o=h("parent_run_id",e.parent_run_id),p=O(r,a);if(p){if(!i||p.status!=="running")return{content:[{type:"text",text:`Run ${a} already exists (status: ${p.status}).`}],isError:!0};if(c){if(r.prepare("SELECT 1 FROM run_agents WHERE run_id = ? AND role = 'orchestrator' LIMIT 1").get(a)!==void 0&&!S(r,a,c))return{content:[{type:"text",text:`Run ${a} already has an orchestrator \u2014 re-start with the same agent_id, or join as a member instead.`}],isError:!0};q(r,a,c,"orchestrator")}C(r,a)}else{if(o&&!O(r,o))return{content:[{type:"text",text:`Parent run not found: ${o}`}],isError:!0};ee(r,a,o,d),c&&q(r,a,c,"orchestrator")}return R({action:"start",run_id:a,status:"running",parent_run_id:o,orchestrator:d,agents:c?[{agent_id:c,role:"orchestrator"}]:[]},(l,u)=>x(u.brand,`Run ${l.run_id} started${l.orchestrator?` by ${l.orchestrator}`:""}.`)+`
9
7
  Subagents join with: wyrm_run({ action: 'join', run_id: '${l.run_id}', agent_id, role })
10
8
  Export WYRM_RUN_ID=${l.run_id} so every write in the fleet carries run attribution.
11
- Prime ONCE per role: wyrm_session_prime({ run_id: '${l.run_id}', role, for_spawn: true }) -> embed the returned brief in each same-role agent's spawn prefix (don't re-prime per agent).`)}const t=h("run_id",e.run_id);if(!t)throw new E("run_id",`is required for action=${u}`);const g=O(r,t);if(!g)return re(t);if(u==="join"){if(g.status!=="running")return{content:[{type:"text",text:`Run ${t} already ended (status: ${g.status}) \u2014 cannot join.`}],isError:!0};const n=h("agent_id",e.agent_id),i=n??_.agent_id;if(!i)throw new E("agent_id","no agent identity \u2014 pass agent_id or supply the actor envelope (actor param / _meta / WYRM_AGENT_ID)");const s=A("role",e.role,{maxLen:200})??null;if(n&&te(_)&&n!==_.agent_id&&!S(r,t,_.agent_id))return{content:[{type:"text",text:`Joining run ${t} as '${n}' while attributed as '${_.agent_id}' is orchestrator-only \u2014 join as yourself, or have the orchestrator register the agent.`}],isError:!0};if(s==="orchestrator"&&!S(r,t,i)&&!S(r,t,_.agent_id))return{content:[{type:"text",text:`Role 'orchestrator' on run ${t} is reserved \u2014 it is registered at action=start. Join with a fleet role instead.`}],isError:!0};q(r,t,i,s),C(r,t);const c=v(r,t),o={action:"join",run_id:t,status:g.status,agents:c.map(p=>({agent_id:p.agent_id,role:p.role}))};return R(o,(p,m)=>w(m.brand,`${i} joined run ${p.run_id}${s?` as ${s}`:""} (${p.agents.length} agent(s) registered).`))}if(u==="status"){const n=v(r,t),i=r.prepare(`
9
+ Prime ONCE per role: wyrm_session_prime({ run_id: '${l.run_id}', role, for_spawn: true }) -> embed the returned brief in each same-role agent's spawn prefix (don't re-prime per agent).`)}const t=h("run_id",e.run_id);if(!t)throw new E("run_id",`is required for action=${s}`);const g=O(r,t);if(!g)return ie(t);if(s==="join"){if(g.status!=="running")return{content:[{type:"text",text:`Run ${t} already ended (status: ${g.status}) \u2014 cannot join.`}],isError:!0};const i=h("agent_id",e.agent_id),a=i??_.agent_id;if(!a)throw new E("agent_id","no agent identity \u2014 pass agent_id or supply the actor envelope (actor param / _meta / WYRM_AGENT_ID)");const d=w("role",e.role,{maxLen:200})??null;if(i&&ne(_)&&i!==_.agent_id&&!S(r,t,_.agent_id))return{content:[{type:"text",text:`Joining run ${t} as '${i}' while attributed as '${_.agent_id}' is orchestrator-only \u2014 join as yourself, or have the orchestrator register the agent.`}],isError:!0};if(d==="orchestrator"&&!S(r,t,a)&&!S(r,t,_.agent_id))return{content:[{type:"text",text:`Role 'orchestrator' on run ${t} is reserved \u2014 it is registered at action=start. Join with a fleet role instead.`}],isError:!0};q(r,t,a,d),C(r,t);const c=v(r,t),o={action:"join",run_id:t,status:g.status,agents:c.map(p=>({agent_id:p.agent_id,role:p.role}))};return R(o,(p,m)=>x(m.brand,`${a} joined run ${p.run_id}${d?` as ${d}`:""} (${p.agents.length} agent(s) registered).`))}if(s==="status"){const i=v(r,t),a=r.prepare(`
12
10
  SELECT
13
11
  SUM(CASE WHEN quarantine_scope = 'run' AND resolved = 0 THEN 1 ELSE 0 END) AS quarantined,
14
12
  SUM(CASE WHEN resolved = 1 THEN 1 ELSE 0 END) AS resolved
15
13
  FROM failure_patterns WHERE run_id = ?
16
- `).get(t),s=r.prepare("SELECT COUNT(*) AS n FROM quest_claims WHERE run_id = ?").get(t).n,c={action:"status",run_id:t,status:g.status,parent_run_id:g.parent_run_id,orchestrator:g.orchestrator,agents:n.map(o=>({agent_id:o.agent_id,role:o.role})),quarantined:i.quarantined??0,resolved:i.resolved??0,claims:s};return R(c,(o,p)=>{const m=o.agents.map(l=>`${p.bullet} ${l.agent_id}${l.role?` (${l.role})`:""}`).join(`
17
- `);return w(p.brand,`Run ${o.run_id} [${o.status}]`)+`${o.orchestrator?`
14
+ `).get(t),d=r.prepare("SELECT COUNT(*) AS n FROM quest_claims WHERE run_id = ?").get(t).n,c={action:"status",run_id:t,status:g.status,parent_run_id:g.parent_run_id,orchestrator:g.orchestrator,agents:i.map(o=>({agent_id:o.agent_id,role:o.role})),quarantined:a.quarantined??0,resolved:a.resolved??0,claims:d};return R(c,(o,p)=>{const m=o.agents.map(l=>`${p.bullet} ${l.agent_id}${l.role?` (${l.role})`:""}`).join(`
15
+ `);return x(p.brand,`Run ${o.run_id} [${o.status}]`)+`${o.orchestrator?`
18
16
  Orchestrator: ${o.orchestrator}`:""}
19
17
  Agents (${o.agents.length}):${m?`
20
18
  ${m}`:" none"}
21
19
  Failures: ${o.quarantined} run-quarantined unresolved, ${o.resolved} resolved
22
- Quest claims held: ${o.claims}`})}if(u==="debrief"){const n=A("project_path",e.project_path,{maxLen:500});if(!n)throw new E("project_path","is required for action=debrief (the project the candidates file under)");const i=a.store.getProject(n);if(!i)return{content:[{type:"text",text:`Project not found: ${n}`}],isError:!0};const s=e.learnings;if(!Array.isArray(s)||s.length===0)throw new E("learnings","is required for action=debrief \u2014 an array of { agent_id?, text }");if(s.length>64)throw new E("learnings","too many entries (max 64 per debrief call)");for(const d of s){const f=d&&typeof d=="object"?d.text:void 0;typeof f=="string"&&A("learnings[].text",f,{maxLen:32e3})}let c=0,o=0,p=0;const m=new Set;for(const d of s){const f=d&&typeof d=="object"?d.text:void 0;if(typeof f!="string"||f.trim().length<20){o++;continue}const F=f,P=h("learnings[].agent_id",d.agent_id)??_.agent_id,{candidates:M,method:U}=await J(F);m.add(U),p+=M.length;for(const k of M){const y=Q(k),Y=y.tags[y.tags.length-1];if(r.prepare("SELECT 1 FROM memory_artifacts WHERE project_id = ? AND tags LIKE ? ESCAPE '\\' LIMIT 1").get(i.id,"%"+K(Y)+"%")){o++;continue}G({agent_id:P,run_id:t,source:"param"},()=>a.memory.add(i.id,{kind:y.kind,problem:y.problem,tags:[...y.tags,`run:${t}`],confidence:y.confidence,needsReview:1,createdBy:"run-debrief"})),c++}}C(r,t),c>0&&a.cache.invalidate();const l={action:"debrief",run_id:t,status:g.status,method:m.size===1?[...m][0]:m.size===0?"none":"mixed",submitted:s.length,candidates:p,queued:c,skipped:o};return R(l,(d,f)=>w(f.brand,`Run ${d.run_id} debrief (${d.method}): ${d.submitted} learning(s) -> ${d.queued} candidate(s) queued for review, ${d.skipped} skipped.`)+`
23
- Approve/reject with wyrm_review (run-scoped tag run:${d.run_id}).`)}if(g.status!=="running")return{content:[{type:"text",text:`Run ${t} already ended (status: ${g.status}).`}],isError:!0};const T=h("agent_id",e.agent_id)??_.agent_id;if(!T)throw new E("agent_id","no agent identity \u2014 action=end is member-only; pass agent_id or supply the actor envelope (actor param / _meta / WYRM_AGENT_ID)");if(!ee(r,t,T))return{content:[{type:"text",text:`'${T}' is not a registered member of run ${t} \u2014 only run members may end it (action=join first).`}],isError:!0};const $=W("status",e.status,Z,"completed"),x=A("project_path",e.project_path,{maxLen:500}),j=x?a.store.getProject(x):void 0;if(x&&!j)return{content:[{type:"text",text:`Project not found: ${x}`}],isError:!0};const I=r.prepare(`
20
+ Quest claims held: ${o.claims}`})}if(s==="debrief"){const i=w("project_path",e.project_path,{maxLen:500});if(!i)throw new E("project_path","is required for action=debrief (the project the candidates file under)");const a=n.store.getProject(i);if(!a)return{content:[{type:"text",text:`Project not found: ${i}`}],isError:!0};const d=e.learnings;if(!Array.isArray(d)||d.length===0)throw new E("learnings","is required for action=debrief \u2014 an array of { agent_id?, text }");if(d.length>64)throw new E("learnings","too many entries (max 64 per debrief call)");for(const u of d){const f=u&&typeof u=="object"?u.text:void 0;typeof f=="string"&&w("learnings[].text",f,{maxLen:32e3})}let c=0,o=0,p=0;const m=new Set;for(const u of d){const f=u&&typeof u=="object"?u.text:void 0;if(typeof f!="string"||f.trim().length<20){o++;continue}const F=f,P=h("learnings[].agent_id",u.agent_id)??_.agent_id,{candidates:M,method:U}=await J(F);m.add(U),p+=M.length;for(const k of M){const y=Q(k),Y=y.tags[y.tags.length-1];if(r.prepare("SELECT 1 FROM memory_artifacts WHERE project_id = ? AND tags LIKE ? ESCAPE '\\' LIMIT 1").get(a.id,"%"+K(Y)+"%")){o++;continue}G({agent_id:P,run_id:t,source:"param"},()=>n.memory.add(a.id,{kind:y.kind,problem:y.problem,tags:[...y.tags,`run:${t}`],confidence:y.confidence,needsReview:1,createdBy:"run-debrief"})),c++}}C(r,t),c>0&&n.cache.invalidate();const l={action:"debrief",run_id:t,status:g.status,method:m.size===1?[...m][0]:m.size===0?"none":"mixed",submitted:d.length,candidates:p,queued:c,skipped:o};return R(l,(u,f)=>x(f.brand,`Run ${u.run_id} debrief (${u.method}): ${u.submitted} learning(s) -> ${u.queued} candidate(s) queued for review, ${u.skipped} skipped.`)+`
21
+ Approve/reject with wyrm_review (run-scoped tag run:${u.run_id}).`)}if(g.status!=="running")return{content:[{type:"text",text:`Run ${t} already ended (status: ${g.status}).`}],isError:!0};const T=h("agent_id",e.agent_id)??_.agent_id;if(!T)throw new E("agent_id","no agent identity \u2014 action=end is member-only; pass agent_id or supply the actor envelope (actor param / _meta / WYRM_AGENT_ID)");if(!re(r,t,T))return{content:[{type:"text",text:`'${T}' is not a registered member of run ${t} \u2014 only run members may end it (action=join first).`}],isError:!0};const $=W("status",e.status,Z,"completed"),A=w("project_path",e.project_path,{maxLen:500}),j=A?n.store.getProject(A):void 0;if(A&&!j)return{content:[{type:"text",text:`Project not found: ${A}`}],isError:!0};const I=r.prepare(`
24
22
  SELECT id FROM failure_patterns
25
23
  WHERE run_id = ? AND quarantine_scope = 'run' AND resolved = 0
26
- `).all(t).map(n=>n.id);r.prepare("UPDATE runs SET status = ?, updated_at = datetime('now') WHERE run_id = ?").run($,t),a.failures.sweepRunQuarantine();let N=0,L=0;if(I.length>0){const n=r.prepare("SELECT quarantine_scope, resolved FROM failure_patterns WHERE id = ?");for(const i of I){const s=n.get(i);s&&(s.quarantine_scope!=="run"?N++:s.resolved===1&&L++)}}const D=a.presence.releaseRunClaims(t);try{r.prepare("DELETE FROM run_briefs WHERE run_id = ?").run(t)}catch{}let b=null;if(j){const n=v(r,t);b=a.memory.add(j.id,{kind:"reasoning_trace",problem:`Fleet run ${t} ended ${$}: ${n.length} agent(s), ${N} quarantined failure(s) promoted, ${L} expired, ${D} quest claim(s) released.`,outcome:$==="completed"?"positive":$==="failed"?"negative":"neutral",tags:["run-summary",`run:${t}`],confidence:1,createdBy:"wyrm_run"}).id,r.prepare("UPDATE runs SET debrief_artifact_id = ? WHERE run_id = ?").run(b,t)}return a.cache.invalidate(),R({action:"end",run_id:t,status:$,promoted:N,expired:L,claims_released:D,summary_artifact_id:b},(n,i)=>w(i.brand,`Run ${n.run_id} ended (${n.status}): ${n.promoted} failure(s) promoted, ${n.expired} expired, ${n.claims_released} claim(s) released.`)+(n.summary_artifact_id!==null?`
27
- Summary artifact #${n.summary_artifact_id} filed.`:`
28
- No project_path given -- summary artifact skipped.`))}}];export{ce as runToolSpecs};
24
+ `).all(t).map(i=>i.id);te(r,t,$),n.failures.sweepRunQuarantine();let N=0,L=0;if(I.length>0){const i=r.prepare("SELECT quarantine_scope, resolved FROM failure_patterns WHERE id = ?");for(const a of I){const d=i.get(a);d&&(d.quarantine_scope!=="run"?N++:d.resolved===1&&L++)}}const D=n.presence.releaseRunClaims(t);try{r.prepare("DELETE FROM run_briefs WHERE run_id = ?").run(t)}catch{}let b=null;if(j){const i=v(r,t);b=n.memory.add(j.id,{kind:"reasoning_trace",problem:`Fleet run ${t} ended ${$}: ${i.length} agent(s), ${N} quarantined failure(s) promoted, ${L} expired, ${D} quest claim(s) released.`,outcome:$==="completed"?"positive":$==="failed"?"negative":"neutral",tags:["run-summary",`run:${t}`],confidence:1,createdBy:"wyrm_run"}).id,r.prepare("UPDATE runs SET debrief_artifact_id = ? WHERE run_id = ?").run(b,t)}return n.cache.invalidate(),R({action:"end",run_id:t,status:$,promoted:N,expired:L,claims_released:D,summary_artifact_id:b},(i,a)=>x(a.brand,`Run ${i.run_id} ended (${i.status}): ${i.promoted} failure(s) promoted, ${i.expired} expired, ${i.claims_released} claim(s) released.`)+(i.summary_artifact_id!==null?`
25
+ Summary artifact #${i.summary_artifact_id} filed.`:`
26
+ No project_path given -- summary artifact skipped.`))}}];export{ee as createRun,v as getAgents,O as getRun,q as registerAgent,le as runToolSpecs,te as setRunStatus,C as touchRun};