opencode-swarm 7.160.2 → 7.161.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 (79) hide show
  1. package/dist/background/delegation-lifecycle.d.ts +374 -0
  2. package/dist/background/pending-delegations.d.ts +6 -0
  3. package/dist/cli/{coder-settlement-gzar5ypz.js → coder-settlement-nayk1bbf.js} +8 -8
  4. package/dist/cli/{config-doctor-ancn1sj7.js → config-doctor-b1w7yvcs.js} +2 -2
  5. package/dist/cli/{core-bhmqtxev.js → core-whesnhpf.js} +1 -1
  6. package/dist/cli/{curation-policy-47przjwg.js → curation-policy-ej9xc0cd.js} +5 -5
  7. package/dist/cli/{curator-sgmynbpm.js → curator-1rzb285s.js} +29 -29
  8. package/dist/cli/{curator-llm-factory-6mw01jx1.js → curator-llm-factory-bqfkaq6y.js} +29 -29
  9. package/dist/cli/{evidence-summary-service-1pcfsqhv.js → evidence-summary-service-ma8drpv5.js} +12 -12
  10. package/dist/cli/{gate-evidence-w0kjqmew.js → gate-evidence-7eh82zs0.js} +5 -5
  11. package/dist/cli/{guardrail-explain-k99eje1y.js → guardrail-explain-em2mqz9a.js} +30 -30
  12. package/dist/cli/{guardrail-log-md5gcpk7.js → guardrail-log-845tfrwb.js} +6 -6
  13. package/dist/cli/{guardrail-reset-3385eqmq.js → guardrail-reset-091xw53a.js} +29 -29
  14. package/dist/cli/{hive-promoter-r0ekyn5m.js → hive-promoter-kx8t5em3.js} +29 -29
  15. package/dist/cli/{index-vv760pbg.js → index-14dgnwmh.js} +2 -2
  16. package/dist/cli/{index-k0qy284k.js → index-3cxfqdpv.js} +3 -3
  17. package/dist/cli/{index-vsy942dt.js → index-52f67bbh.js} +31 -31
  18. package/dist/cli/{index-yd6y4qr7.js → index-54jznpq7.js} +1 -1
  19. package/dist/cli/{index-7h2armwf.js → index-7619tk9a.js} +2 -2
  20. package/dist/cli/{index-am5bz6mf.js → index-7qera0f6.js} +2 -2
  21. package/dist/cli/{index-re338hf1.js → index-93pf824c.js} +3 -3
  22. package/dist/cli/{index-xsd7y4hp.js → index-ambz0ryy.js} +4 -4
  23. package/dist/cli/{index-prv20xq6.js → index-c6zyqgpq.js} +1 -1
  24. package/dist/cli/{index-war2dt6a.js → index-d1h4sf8f.js} +6 -6
  25. package/dist/cli/{index-7ezv5j23.js → index-d8st72j7.js} +1 -1
  26. package/dist/cli/{index-nk498mx6.js → index-dq41vsf9.js} +2 -2
  27. package/dist/cli/{index-2123hwbj.js → index-et1jpj6z.js} +3 -3
  28. package/dist/cli/{index-717pmdce.js → index-etdtfhhv.js} +1 -1
  29. package/dist/cli/{index-zbnf26br.js → index-f4dmccpd.js} +7 -7
  30. package/dist/cli/{index-znf683sm.js → index-f5axf6vq.js} +1 -1
  31. package/dist/cli/{index-dke4wzkn.js → index-fx3em0dr.js} +17 -1
  32. package/dist/cli/{index-3a35tt6a.js → index-gkv7s4xy.js} +8 -8
  33. package/dist/cli/{index-xtwny1ae.js → index-h6wtxzvm.js} +1 -1
  34. package/dist/cli/{index-mmr96pwr.js → index-k55td019.js} +1 -1
  35. package/dist/cli/{index-k50kxd3w.js → index-mbktm1ah.js} +7 -4
  36. package/dist/cli/{index-yp81ebrx.js → index-mj6ndvee.js} +4 -4
  37. package/dist/cli/{index-b5adxpy6.js → index-nqbqkx4c.js} +1 -1
  38. package/dist/cli/{index-s7w6ntw6.js → index-qjge2m9r.js} +63 -63
  39. package/dist/cli/{index-j3ss86kf.js → index-s33ee2w3.js} +1 -1
  40. package/dist/cli/{index-4dcz9fpn.js → index-t81fmfjj.js} +4 -4
  41. package/dist/cli/{index-xkmzsfg5.js → index-trmqq4wm.js} +2 -2
  42. package/dist/cli/{index-4d8cq6e1.js → index-w9g58t3j.js} +5 -5
  43. package/dist/cli/{index-5xfx5sbw.js → index-wrtgyvre.js} +5 -5
  44. package/dist/cli/{index-kqzba6ex.js → index-xy0e0r5f.js} +1 -1
  45. package/dist/cli/{index-5th50g17.js → index-y0ra2v4w.js} +3 -3
  46. package/dist/cli/{index-497a3hhj.js → index-y14mwbk8.js} +3 -3
  47. package/dist/cli/{index-6scakreq.js → index-zkgrayya.js} +1 -1
  48. package/dist/cli/index.js +29 -29
  49. package/dist/cli/{knowledge-escalator-saekqp8t.js → knowledge-escalator-9eqpsbw5.js} +11 -11
  50. package/dist/cli/{knowledge-events-ej8yz3yq.js → knowledge-events-a8r4ej12.js} +9 -9
  51. package/dist/cli/{knowledge-link-xezm8hr3.js → knowledge-link-8knefv8x.js} +4 -4
  52. package/dist/cli/{knowledge-store-3jamj5n4.js → knowledge-store-ydzeppv7.js} +5 -5
  53. package/dist/cli/{knowledge-validator-26w2mvqv.js → knowledge-validator-mnv58he9.js} +7 -7
  54. package/dist/cli/{pending-delegations-7xak7g59.js → pending-delegations-9mwmrwwm.js} +6 -4
  55. package/dist/cli/{pr-review-reentry-authorization-v97q63q4.js → pr-review-reentry-authorization-h1ssfq37.js} +29 -29
  56. package/dist/cli/{pr-subscriptions-asjevc5p.js → pr-subscriptions-3zwthnan.js} +4 -4
  57. package/dist/cli/{runner-wsdcy2d6.js → runner-fzgkd6m1.js} +5 -5
  58. package/dist/cli/{scan-cursor-1agr50f8.js → scan-cursor-5rmaqw2t.js} +6 -6
  59. package/dist/cli/{schema-z0ygrqgy.js → schema-72vpr9xy.js} +1 -1
  60. package/dist/cli/{scope-persistence-tncg38by.js → scope-persistence-39mwns79.js} +8 -8
  61. package/dist/cli/{skill-generator-jq20a09m.js → skill-generator-9aay0t53.js} +13 -13
  62. package/dist/cli/{telemetry-gpr9s3sm.js → telemetry-cmbjv240.js} +1 -1
  63. package/dist/cli/{worktree-collision-ownership-b9cp9zvw.js → worktree-collision-ownership-ybhktnq4.js} +4 -4
  64. package/dist/cli/{worktree-isolation-dzyxf8hn.js → worktree-isolation-w8ett6bs.js} +29 -29
  65. package/dist/config/evidence-schema.d.ts +2 -2
  66. package/dist/config/schema.d.ts +7 -7
  67. package/dist/hooks/delegate-ack-collector.d.ts +74 -0
  68. package/dist/hooks/knowledge-injector.d.ts +12 -1
  69. package/dist/index.js +93 -93
  70. package/dist/learning/admission.d.ts +2 -2
  71. package/dist/memory/schema.d.ts +3 -3
  72. package/dist/observability/catalog.d.ts +2 -2
  73. package/dist/prm/types.d.ts +9 -0
  74. package/dist/telemetry.d.ts +9 -1
  75. package/dist/tools/repo-graph/retrieval-router.d.ts +57 -0
  76. package/dist/tools/repo-graph.d.ts +2 -0
  77. package/dist/tools/repo-map.d.ts +202 -0
  78. package/dist/tools/search.d.ts +2 -2
  79. package/package.json +1 -1
@@ -17,8 +17,8 @@
17
17
  *
18
18
  * - the `transactKnowledge` call is NEVER raced or timed out;
19
19
  * - only genuinely cancellable work (the optional LLM screening call) is
20
- * bounded, via a manual `AbortController` + `setTimeout` (see
21
- * `timeoutSignal` below) + `isAbortError`. This deliberately does NOT use
20
+ * bounded by the shared `withTimeoutSignal` helper, which uses a manual
21
+ * `AbortController` + `setTimeout` + `isAbortError`. This deliberately does NOT use
22
22
  * the host's built-in timeout signal: Bun on Windows
23
23
  * has a native bug where that signal's `abort` event never fires when
24
24
  * awaited by a plain JS Promise (oven-sh/bun#29546) — exactly the shape
@@ -52,8 +52,8 @@ export declare const MemorySourceSchema: z.ZodObject<{
52
52
  agent: "agent";
53
53
  file: "file";
54
54
  tool: "tool";
55
- manual: "manual";
56
55
  test: "test";
56
+ manual: "manual";
57
57
  commit: "commit";
58
58
  user: "user";
59
59
  repo: "repo";
@@ -117,8 +117,8 @@ export declare const MemoryRecordSchema: z.ZodObject<{
117
117
  agent: "agent";
118
118
  file: "file";
119
119
  tool: "tool";
120
- manual: "manual";
121
120
  test: "test";
121
+ manual: "manual";
122
122
  commit: "commit";
123
123
  user: "user";
124
124
  repo: "repo";
@@ -211,8 +211,8 @@ export declare const MemoryProposalSchema: z.ZodObject<{
211
211
  agent: "agent";
212
212
  file: "file";
213
213
  tool: "tool";
214
- manual: "manual";
215
214
  test: "test";
215
+ manual: "manual";
216
216
  commit: "commit";
217
217
  user: "user";
218
218
  repo: "repo";
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * The event catalog (issue #2029).
3
3
  *
4
- * Exactly 55 entries, matching the `TelemetryEvent` union at
4
+ * Exactly 56 entries, matching the `TelemetryEvent` union at
5
5
  * `src/telemetry.ts:15-131`. Thirty-eight predate the #2029 contract; the 39th is
6
6
  * `agent_conflict_detected` (previously emitted through a force-cast past the
7
7
  * type system), the 40th is `close_archive_result` (issue #2030 — the
@@ -80,7 +80,7 @@ export interface CatalogEntry {
80
80
  /**
81
81
  * Whether an event of this kind must carry `trace.parentSpanId`.
82
82
  *
83
- * `false` for all 55 entries today, and that is a truthful statement about
83
+ * `false` for all 56 entries today, and that is a truthful statement about
84
84
  * the current system rather than a placeholder: no producer supplies a
85
85
  * parent span, so `createObservation` never sets one. Setting this to `true`
86
86
  * for a kind whose producer cannot supply a parent would make every
@@ -38,6 +38,15 @@ export interface TrajectoryEntry {
38
38
  args_summary?: string;
39
39
  /** Optional: elapsed time in milliseconds */
40
40
  elapsed_ms?: number;
41
+ /**
42
+ * Issue #2045 canonical join keys for delegation-terminal observations: a
43
+ * lane terminal entry correlates to its background-delegation record by
44
+ * these exact IDs, never by agent-name matching. Optional + additive; the
45
+ * bounded store serializes entries as JSON with no strict field validation.
46
+ */
47
+ batchId?: string;
48
+ laneId?: string;
49
+ taskId?: string;
41
50
  }
42
51
  /**
43
52
  * Result of pattern detection indicating a detected problematic trajectory pattern
@@ -1,6 +1,6 @@
1
1
  import { createObservation, toLegacyTelemetryLine } from './observability/index.js';
2
2
  import type { DelegationCostFields } from './services/cost-accounting.js';
3
- export type TelemetryEvent = 'session_started' | 'session_ended' | 'agent_activated' | 'delegation_begin' | 'delegation_end' | 'delegation_cost_correction' | 'delegation_cost_binding' | 'delegation_cost_join' | 'task_state_changed' | 'gate_passed' | 'gate_failed' | 'gate_parse_error' | 'reviewer_gate_decision' | 'phase_changed' | 'budget_updated' | 'context_pruned' | 'model_fallback'
3
+ export type TelemetryEvent = 'session_started' | 'session_ended' | 'agent_activated' | 'delegation_begin' | 'delegation_end' | 'delegation_cost_correction' | 'delegation_cost_binding' | 'delegation_cost_join' | 'task_state_changed' | 'gate_passed' | 'gate_failed' | 'gate_parse_error' | 'reviewer_gate_decision' | 'phase_changed' | 'budget_updated' | 'context_pruned' | 'retrieval_routed' | 'model_fallback'
4
4
  /**
5
5
  * Issue #2271 bug 4 — a configured agent model id was POSITIVELY confirmed
6
6
  * unresolvable against the live provider catalog (distinct from a runtime
@@ -435,6 +435,14 @@ export declare const telemetry: {
435
435
  * containment armed but never reached the model.
436
436
  */
437
437
  prmHardStopDelivered(sessionId: string, pattern: string, level: number, occurrenceCount: number): void;
438
+ retrievalRouted(sessionId: string, data: {
439
+ mode: "graph" | "lexical" | "semantic" | "security" | "test" | "hybrid";
440
+ graph_hit: boolean;
441
+ fallback_reason: string | null;
442
+ token_budget_requested: number;
443
+ token_budget_used: number;
444
+ omitted_context_count: number;
445
+ }): void;
438
446
  };
439
447
  /**
440
448
  * Test-only dependency-injection seam. Production code calls
@@ -0,0 +1,57 @@
1
+ import type { RepoGraph, RouteMethod } from './types';
2
+ export declare const RETRIEVAL_MODES: readonly ["graph", "lexical", "semantic", "security", "test", "hybrid"];
3
+ export type RetrievalMode = (typeof RETRIEVAL_MODES)[number];
4
+ export declare const ROUTER_METADATA_OVERHEAD_TOKENS = 2048;
5
+ export interface RetrievalRequest {
6
+ question: string;
7
+ file?: string;
8
+ files?: string[];
9
+ symbol?: string;
10
+ diff?: string;
11
+ entity?: string;
12
+ routePath?: string;
13
+ method?: RouteMethod;
14
+ maxTokens?: number;
15
+ topN?: number;
16
+ }
17
+ export interface LexicalResult {
18
+ matches?: unknown[];
19
+ total?: number;
20
+ truncated?: boolean;
21
+ engine?: string;
22
+ warning?: string;
23
+ error?: boolean;
24
+ }
25
+ /** Structured fallback request so lexical retrieval preserves validated scope
26
+ * and security hints instead of reducing everything to a bare string. */
27
+ export interface LexicalRequest {
28
+ query: string;
29
+ files?: string[];
30
+ routePath?: string;
31
+ method?: RouteMethod;
32
+ }
33
+ export interface RetrievalResult {
34
+ mode: RetrievalMode;
35
+ algorithm: 'literal' | 'graph' | 'fuzzy_graph' | 'graph_packs' | 'mixed';
36
+ reason: string;
37
+ actions: string[];
38
+ graphHit: boolean;
39
+ fallbackReason: string | null;
40
+ context: Array<{
41
+ action: string;
42
+ data: unknown;
43
+ }>;
44
+ explanation: string[];
45
+ warnings: string[];
46
+ budget: {
47
+ requestedTokens: number;
48
+ usedTokens: number;
49
+ omittedContextCount: number;
50
+ metadataOverheadTokens: number;
51
+ };
52
+ }
53
+ export declare function classifyRetrieval(question: string): {
54
+ mode: RetrievalMode;
55
+ reason: string;
56
+ };
57
+ export declare function routeRetrieval(graph: RepoGraph | null, request: RetrievalRequest, lexical: (request: LexicalRequest) => Promise<LexicalResult>, graphUnavailableReason?: string): Promise<RetrievalResult>;
@@ -28,6 +28,8 @@ export { extractFileOntology, normalizeRoutePathInput, } from './repo-graph/onto
28
28
  export { buildTestPack, traceData, traceRoute } from './repo-graph/pack-query';
29
29
  export type { DeadExportsOptions } from './repo-graph/query';
30
30
  export { buildOntologyPreflightPacket, getBlastRadius, getCallers, getContextPack, getDeadExports, getDependencies, getFileOntology, getGraphHealth, getGraphNode, getImporters, getKeyFiles, getLocalizationContext, getPackageBoundaries, getSymbolConsumers, isGraphFresh, resetQueryCache, } from './repo-graph/query';
31
+ export type { LexicalRequest, LexicalResult, RetrievalMode, RetrievalRequest, RetrievalResult, } from './repo-graph/retrieval-router';
32
+ export { classifyRetrieval, RETRIEVAL_MODES, ROUTER_METADATA_OVERHEAD_TOKENS, routeRetrieval, } from './repo-graph/retrieval-router';
31
33
  export { getGraphPath, loadGraph, loadGraphSync, loadOrCreateGraph, saveGraph, saveIfDirty, } from './repo-graph/storage';
32
34
  export { explainGraphEntry, getDiffContext, getImpactCone, getSymbolContext, searchSymbols, } from './repo-graph/symbol-query';
33
35
  export type { AskHit, AskOptions, AskResult, BlastRadiusResult, BuildWorkspaceGraphOptions, CallerReference, ConeEntry, ContextPackCoverage, ContextPackResult, ContextPackSnippet, ContextPackSourceMode, ContextPackSpan, ConventionFact, DataOperationFact, DataTraceAccess, DataTraceResult, DeadExportCandidate, DeadExportsResult, DerivedAssociation, DiffContextResult, DiffFileSummary, DiffSymbolChange, ExplainReason, FileOntology, FileReference, FileRole, FreshnessProbeState, GraphEdge, GraphExplainResult, GraphExtractionFailure, GraphExtractorInputWitness, GraphHealthResult, GraphNode, GraphSymbolKind, GraphSymbolVisibility, GraphUnresolvedImport, ImpactConeResult, LocalizationBlock, OntologyFinding, OntologyLink, OntologyLinkConfidence, OntologyLinkKind, PackageBoundarySummary, RepoGraph, RepoGraphDiagnostics, RouteFact, RouteMethod, RouteTraceResult, RouteTraceRoute, SecurityFact, SymbolContextResult, SymbolEdge, SymbolEdgeEvidence, SymbolEdgeKind, SymbolEdgeResolution, SymbolHit, SymbolIdentityKind, SymbolReference, SymbolSearchResult, TestPackFixture, TestPackResult, TestPackTestEntry, } from './repo-graph/types';
@@ -6,5 +6,207 @@ export declare const _internals: {
6
6
  probeFreshness: typeof probeFreshness;
7
7
  updateGraphForFiles: typeof updateGraphForFiles;
8
8
  writeFingerprint: typeof writeFingerprint;
9
+ telemetry: {
10
+ sessionStarted(sessionId: string, agentName: string): void;
11
+ sessionEnded(sessionId: string, reason: string): void;
12
+ agentActivated(sessionId: string, agentName: string, oldName?: string): void;
13
+ delegationBegin(sessionId: string, agentName: string, taskId: string): void;
14
+ delegationEnd(sessionId: string, agentName: string, taskId: string, result: string, costFields?: Partial<import("../services/cost-accounting").DelegationCostFields>): void;
15
+ taskStateChanged(sessionId: string, taskId: string, newState: string, oldState?: string): void;
16
+ gatePassed(sessionId: string, gate: string, taskId: string): void;
17
+ gateParseError(taskId: string, error: Error): void;
18
+ gateFailed(sessionId: string, gate: string, taskId: string, reason: string): void;
19
+ reviewerGateDecision(sessionId: string, taskId: string, blocked: boolean, reasonCode: import("../telemetry").ReviewerGateReasonCode, evidenceKind: import("../telemetry").ReviewerGateEvidenceKind): void;
20
+ phaseChanged(sessionId: string, oldPhase: number, newPhase: number): void;
21
+ budgetUpdated(sessionId: string, budgetPct: number, agentName: string): void;
22
+ contextPruned(data: {
23
+ sessionId: string;
24
+ agentName: string;
25
+ trigger: "agent_switch" | "critical_threshold";
26
+ usageSource: "provider" | "estimated";
27
+ beforeTokens: number;
28
+ afterTokens: number;
29
+ modelLimit: number;
30
+ maskedMessages: number;
31
+ maskedToolParts: number;
32
+ maskedTokensFreed: number;
33
+ prunedMessages: number;
34
+ prunedTextParts: number;
35
+ prunedToolParts: number;
36
+ prunedTokensFreed: number;
37
+ }): void;
38
+ modelFallback(sessionId: string, agentName: string, fromModel: string, toModel: string, reason: string): void;
39
+ modelUnresolved(agentName: string, model: string, detail: string): void;
40
+ hardLimitHit(sessionId: string, agentName: string, limitType: string, value: number): void;
41
+ revisionLimitHit(sessionId: string, agentName: string): void;
42
+ loopDetected(sessionId: string, agentName: string, loopType: string): void;
43
+ noOpStrongWarning(sessionId: string, agentName: string, count: number, threshold: number): void;
44
+ gateDenialLoop(sessionId: string, tool: string, code: string, count: number): void;
45
+ executionStallWarning(sessionId: string, count: number, threshold: number): void;
46
+ executionStallDenied(sessionId: string, tool: string, count: number, threshold: number): void;
47
+ swarmInternalsReadDenied(sessionId: string, tool: string, target: string): void;
48
+ scopeViolation(sessionId: string, agentName: string, file: string, reason: string): void;
49
+ qaSkipViolation(sessionId: string, agentName: string, skipCount: number): void;
50
+ heartbeat(sessionId: string): void;
51
+ turboModeChanged(sessionId: string, enabled: boolean, agentName: string): void;
52
+ autoOversightEscalation(sessionId: string, reason: string, interactionCount: number, deadlockCount: number, phase?: number): void;
53
+ environmentDetected(sessionId: string, hostOS: string, shellFamily: string, executionMode: string): void;
54
+ prmPatternDetected(sessionId: string, pattern: string, severity: string, category: string, stepRange: [number, number]): void;
55
+ prmCourseCorrectionInjected(sessionId: string, pattern: string, level: number): void;
56
+ prmEscalationTriggered(sessionId: string, pattern: string, level: number, occurrenceCount: number): void;
57
+ prmHardStop(sessionId: string, pattern: string, level: number, occurrenceCount: number): void;
58
+ closeArchiveResult(data: {
59
+ archive_valid: boolean;
60
+ archive_empty: boolean;
61
+ file_count: number;
62
+ bundle: string;
63
+ artifacts: Array<{
64
+ artifact: string;
65
+ requiredness: string;
66
+ attempt: string;
67
+ validation: string;
68
+ source_disposition: string;
69
+ method: string;
70
+ reason_code: string;
71
+ row_counts?: {
72
+ schema_migrations_max_version: number | null;
73
+ project_constraints: number;
74
+ qa_gate_profile: number;
75
+ };
76
+ }>;
77
+ }): void;
78
+ residueHealth(data: {
79
+ trigger: string;
80
+ scanned: number;
81
+ matched: number;
82
+ eligible: number;
83
+ ambiguous: number;
84
+ quarantined: number;
85
+ preserved: number;
86
+ total_bytes: number;
87
+ oldest_age_ms: number;
88
+ grammar_counts: Record<string, number>;
89
+ }): void;
90
+ contextTelemetryHealth(data: {
91
+ trigger: "compaction" | "close";
92
+ accepted_count: number;
93
+ compacted_count: number;
94
+ retained_count: number;
95
+ dropped_count: number;
96
+ corrupt_count: number;
97
+ oldest_timestamp: string | null;
98
+ newest_timestamp: string | null;
99
+ bytes: number;
100
+ limit_bytes: number;
101
+ }): void;
102
+ skillUsageHealth(data: {
103
+ trigger: "compaction" | "migration" | "consumption" | "pressure";
104
+ accepted: number;
105
+ compacted: number;
106
+ dropped: number;
107
+ skills_dropped: number;
108
+ corrupt: number;
109
+ pending_retained: number;
110
+ uncertain_retained: number;
111
+ uncertain_expired: number;
112
+ pending_evicted: number;
113
+ no_source_knowledge: number;
114
+ no_matching_knowledge: number;
115
+ bump_retry: number;
116
+ bump_unrecoverable: number;
117
+ bump_applied_zero: number;
118
+ pressure: number;
119
+ curator_skipped: number;
120
+ bytes: number;
121
+ limit_bytes: number;
122
+ oldest_timestamp: string | null;
123
+ newest_timestamp: string | null;
124
+ coverage: boolean;
125
+ }): void;
126
+ coreEventsHealth(data: {
127
+ trigger: "compaction" | "close";
128
+ accepted_count: number;
129
+ compacted_count: number;
130
+ retained_count: number;
131
+ dropped_count: number;
132
+ corrupt_count: number;
133
+ authority_index_count: number;
134
+ authority_evicted_count: number;
135
+ oldest_timestamp: string | null;
136
+ newest_timestamp: string | null;
137
+ bytes: number;
138
+ limit_bytes: number;
139
+ }): void;
140
+ shellAuditHealth(data: {
141
+ trigger: "compaction" | "close";
142
+ accepted_count: number;
143
+ compacted_count: number;
144
+ retained_count: number;
145
+ dropped_count: number;
146
+ corrupt_count: number;
147
+ oldest_timestamp: string | null;
148
+ newest_timestamp: string | null;
149
+ bytes: number;
150
+ limit_bytes: number;
151
+ }): void;
152
+ trajectoryHealth(data: {
153
+ trigger: "compaction" | "cleanup" | "append_skip";
154
+ retained_count: number;
155
+ dropped_count: number;
156
+ corrupt_count: number;
157
+ skipped_lock_count: number;
158
+ bytes: number;
159
+ limit_bytes: number;
160
+ }): void;
161
+ prSubscriptionHealth(data: {
162
+ trigger: "compact" | "migrate-complete" | "archive" | "foreign-rebind" | "corrupt-quarantine";
163
+ active_count: number;
164
+ terminal_count: number;
165
+ compactions: number;
166
+ corrupt_count: number;
167
+ dropped_audit_count: number;
168
+ recovery_resets: number;
169
+ checkpoint_bytes: number;
170
+ limit_bytes: number;
171
+ }): void;
172
+ learningHealthAlarm(data: {
173
+ alarm: string;
174
+ transition: "raised" | "sustained" | "recovered";
175
+ severity: "warning" | "critical";
176
+ scope_class: "session" | "identity" | "project";
177
+ session_ref?: string;
178
+ model?: string;
179
+ provider?: string;
180
+ window_ms: number;
181
+ coverage_facts: number;
182
+ raise_facts: number;
183
+ age_ms: number;
184
+ limit_source?: string;
185
+ denominator_fallback?: boolean;
186
+ pressure_pct?: number;
187
+ band?: string;
188
+ share_pct?: number;
189
+ field_count?: number;
190
+ non_field_count?: number;
191
+ store?: string;
192
+ dropped?: number;
193
+ corrupt?: number;
194
+ retained?: number;
195
+ accepted?: number;
196
+ gap_type?: "membership_to_terminal" | "terminal_to_application";
197
+ role?: string;
198
+ phase?: number;
199
+ reason?: string;
200
+ }): void;
201
+ prmHardStopDelivered(sessionId: string, pattern: string, level: number, occurrenceCount: number): void;
202
+ retrievalRouted(sessionId: string, data: {
203
+ mode: "graph" | "lexical" | "semantic" | "security" | "test" | "hybrid";
204
+ graph_hit: boolean;
205
+ fallback_reason: string | null;
206
+ token_budget_requested: number;
207
+ token_budget_used: number;
208
+ omitted_context_count: number;
209
+ }): void;
210
+ };
9
211
  };
10
212
  export declare const repo_map: ReturnType<typeof createSwarmTool>;
@@ -44,13 +44,13 @@ interface FallbackSearchOptions {
44
44
  /**
45
45
  * Execute search using Node.js fallback (when ripgrep not available).
46
46
  */
47
- declare function fallbackSearch(opts: FallbackSearchOptions): Promise<SearchResult | SearchError>;
47
+ export declare function searchWorkspaceLiteral(opts: FallbackSearchOptions): Promise<SearchResult | SearchError>;
48
48
  export declare const search: ToolDefinition;
49
49
  export declare const _internals: {
50
50
  resolvePackagedRipgrep: typeof resolvePackagedRipgrep;
51
51
  resolveExecutableFromPath: typeof resolveExecutableFromPath;
52
52
  resolveRipgrepBinary: typeof resolveRipgrepBinary;
53
53
  runExternalTool: typeof runExternalTool;
54
- fallbackSearch: typeof fallbackSearch;
54
+ fallbackSearch: typeof searchWorkspaceLiteral;
55
55
  };
56
56
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-swarm",
3
- "version": "7.160.2",
3
+ "version": "7.161.0",
4
4
  "description": "Architect-centric agentic swarm plugin for OpenCode - hub-and-spoke orchestration with SME consultation, code generation, and QA review",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",