opencode-swarm 7.187.2 → 7.187.3

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 (85) hide show
  1. package/README.md +18 -1
  2. package/binaries/win32-arm64/swarm-sandbox-runner.exe +0 -0
  3. package/binaries/win32-x64/swarm-sandbox-runner.exe +0 -0
  4. package/dist/cli/{auto-checkpoint-2xmptd5t.js → auto-checkpoint-521fehr3.js} +7 -7
  5. package/dist/cli/{checkpoint-2y7z19y5.js → checkpoint-czx5eken.js} +12 -12
  6. package/dist/cli/{coder-settlement-s4d28fa6.js → coder-settlement-skfkfgt7.js} +8 -8
  7. package/dist/cli/{config-doctor-312afzhr.js → config-doctor-t88fd5ra.js} +11 -11
  8. package/dist/cli/{core-2bywxc4w.js → core-fap9x47g.js} +1 -1
  9. package/dist/cli/{curation-policy-sr29thf5.js → curation-policy-e1ce7ha8.js} +5 -5
  10. package/dist/cli/{curator-dvhf6jex.js → curator-b7zzsv98.js} +35 -35
  11. package/dist/cli/{curator-drift-xx8pp4g9.js → curator-drift-ea11apaw.js} +5 -5
  12. package/dist/cli/{curator-llm-factory-4g2nvr76.js → curator-llm-factory-758hynyn.js} +35 -35
  13. package/dist/cli/{doctor-knowledge-receipt-phase-id-m239pgbz.js → doctor-knowledge-receipt-phase-id-5768wb0n.js} +6 -6
  14. package/dist/cli/{evidence-summary-service-9et04fjh.js → evidence-summary-service-z2yj87tn.js} +15 -15
  15. package/dist/cli/{gate-evidence-73vj3bgm.js → gate-evidence-m90ynftc.js} +5 -5
  16. package/dist/cli/{guardrail-explain-8n4fx9zv.js → guardrail-explain-y2g82gqv.js} +36 -36
  17. package/dist/cli/{guardrail-log-9gmfvnd7.js → guardrail-log-c50qd8sf.js} +6 -6
  18. package/dist/cli/{guardrail-reset-k3mrq25e.js → guardrail-reset-h7g9a90e.js} +35 -35
  19. package/dist/cli/{hive-promoter-bp3rz0q6.js → hive-promoter-wpcn3wyz.js} +35 -35
  20. package/dist/cli/{index-310h5192.js → index-02nzb100.js} +2 -2
  21. package/dist/cli/{index-exj7czz9.js → index-10h0jx4e.js} +4 -4
  22. package/dist/cli/{index-tkm2rj27.js → index-45d3vpry.js} +1 -1
  23. package/dist/cli/{index-m1vsqmyr.js → index-468s960k.js} +1 -1
  24. package/dist/cli/{index-b5tthmy2.js → index-4tmk29gc.js} +1 -1
  25. package/dist/cli/{index-w0bvez8c.js → index-5ktekhxk.js} +1 -1
  26. package/dist/cli/{index-3ckfawjf.js → index-5x8zhfsq.js} +3 -3
  27. package/dist/cli/{index-pqffq9mm.js → index-6551m2st.js} +2 -2
  28. package/dist/cli/{index-tq6sbcys.js → index-6rdajskg.js} +94 -81
  29. package/dist/cli/{index-v9y0230d.js → index-7ba0hdg4.js} +1 -1
  30. package/dist/cli/{index-z04d01pv.js → index-7fekgghd.js} +7 -7
  31. package/dist/cli/{index-f6pft90q.js → index-7t15ybzn.js} +3 -3
  32. package/dist/cli/{index-tngc1erw.js → index-a5pjm9zc.js} +2 -2
  33. package/dist/cli/{index-jyxgkp4a.js → index-bkcd3nwh.js} +1 -1
  34. package/dist/cli/{index-3y0nr248.js → index-by488z8m.js} +3 -3
  35. package/dist/cli/{index-9jafghwk.js → index-by7x4ty3.js} +35 -35
  36. package/dist/cli/{index-n55exns2.js → index-e3vbyy10.js} +1 -1
  37. package/dist/cli/{index-3g3n9fjq.js → index-ez4kkgcd.js} +3 -3
  38. package/dist/cli/{index-26zs9wsj.js → index-fk7s8btv.js} +2 -2
  39. package/dist/cli/{index-j5db3v56.js → index-h03j41jw.js} +4 -4
  40. package/dist/cli/{index-kc635w60.js → index-h7p78r0w.js} +4 -4
  41. package/dist/cli/{index-e9ry78z5.js → index-hrxr48p5.js} +2 -2
  42. package/dist/cli/{index-wpxy7099.js → index-japwz660.js} +1 -1
  43. package/dist/cli/{index-jh9nrshe.js → index-ksvm96bz.js} +1 -1
  44. package/dist/cli/{index-tmp07h7b.js → index-m3dcecc5.js} +37 -37
  45. package/dist/cli/{index-33345434.js → index-mdxrk3az.js} +3 -3
  46. package/dist/cli/{index-xs070yr9.js → index-mh3nsv7v.js} +2 -2
  47. package/dist/cli/{index-7fxy1s86.js → index-naxtsh2e.js} +4 -4
  48. package/dist/cli/{index-xv0t2sed.js → index-npkxp81s.js} +4 -4
  49. package/dist/cli/{index-n8kqhxay.js → index-nsvm2j4x.js} +1 -1
  50. package/dist/cli/{index-n45kz69m.js → index-q0am9gm3.js} +1 -1
  51. package/dist/cli/{index-dx6bhbd6.js → index-sec8fwf1.js} +3 -3
  52. package/dist/cli/{index-dqberkr3.js → index-v8ytrkrg.js} +4 -4
  53. package/dist/cli/{index-b308erem.js → index-w3xapqjq.js} +3 -3
  54. package/dist/cli/{index-efbhea00.js → index-w9p41945.js} +1 -1
  55. package/dist/cli/{index-rtdxyjrg.js → index-wvkbp1qr.js} +6 -6
  56. package/dist/cli/{index-6t7ygevg.js → index-xpj149rz.js} +1 -1
  57. package/dist/cli/{index-4g39nne8.js → index-yk9vs9pw.js} +2 -2
  58. package/dist/cli/{index-y81jjedn.js → index-zbv9t6p2.js} +6 -6
  59. package/dist/cli/{index-85cx1mmb.js → index-zzgv4jy6.js} +4 -4
  60. package/dist/cli/index.js +36 -36
  61. package/dist/cli/{knowledge-escalator-fnqctvxz.js → knowledge-escalator-wzsxp6yg.js} +12 -12
  62. package/dist/cli/{knowledge-events-mr1vh3nb.js → knowledge-events-dcchq50n.js} +10 -10
  63. package/dist/cli/{knowledge-link-93nzznwd.js → knowledge-link-zh9rzesj.js} +4 -4
  64. package/dist/cli/{knowledge-store-dxy4s9k6.js → knowledge-store-p27r8wa9.js} +5 -5
  65. package/dist/cli/{knowledge-validator-gy39attk.js → knowledge-validator-rmtymth5.js} +7 -7
  66. package/dist/cli/{mcp-bxb59wsq.js → mcp-jr1rr2zd.js} +1 -1
  67. package/dist/cli/{model-preflight-2kje0sp0.js → model-preflight-xzy5x4rt.js} +35 -35
  68. package/dist/cli/{pending-delegations-fm2nx2k0.js → pending-delegations-4k740a2c.js} +7 -7
  69. package/dist/cli/{pr-subscriptions-g4f9rehb.js → pr-subscriptions-515xdgjj.js} +7 -7
  70. package/dist/cli/{pr-workflow-gate-qtq1wq95.js → pr-workflow-gate-srpa0mds.js} +35 -35
  71. package/dist/cli/{runner-verr6er5.js → runner-tk1cmgzt.js} +5 -5
  72. package/dist/cli/{scan-cursor-8taj944f.js → scan-cursor-w89sck5y.js} +6 -6
  73. package/dist/cli/{schema-yxq3bjmd.js → schema-1mwgvrv7.js} +1 -1
  74. package/dist/cli/{scope-persistence-jppvjncr.js → scope-persistence-qen27qx7.js} +11 -11
  75. package/dist/cli/{server-2s7wqg9e.js → server-rhz44ye9.js} +35 -35
  76. package/dist/cli/{skill-generator-pyf95aqw.js → skill-generator-05mxym3d.js} +14 -14
  77. package/dist/cli/{snapshot-coordination-init-8gbxw9sa.js → snapshot-coordination-init-jjegs3v5.js} +35 -35
  78. package/dist/cli/{speckit-checkoff-x2z0jamv.js → speckit-checkoff-3m04ks95.js} +3 -3
  79. package/dist/cli/{telemetry-xwj899pd.js → telemetry-vwxbsnye.js} +1 -1
  80. package/dist/cli/{worktree-collision-ownership-455bdcnk.js → worktree-collision-ownership-0d73y8h0.js} +7 -7
  81. package/dist/cli/{worktree-isolation-8x4p7tvm.js → worktree-isolation-d0vn38wb.js} +35 -35
  82. package/dist/index.js +7 -7
  83. package/dist/models/model-override-state.d.ts +24 -1
  84. package/dist/models/task-model-routing.d.ts +58 -1
  85. package/package.json +1 -1
@@ -42,6 +42,29 @@ export declare function normalizeModelChain(primaryModel: string | undefined, fa
42
42
  export declare function resolveScopedModelSelection(scope: ScopedModelOverrideKey, chain: NormalizedModelChain, now?: number): ScopedModelSelection;
43
43
  export declare function advanceScopedModelSelection(scope: ScopedModelOverrideKey, chain: NormalizedModelChain, expectedGeneration: number, now?: number): ScopedModelAdvanceResult;
44
44
  export declare function resetScopedModelSelection(scope: ScopedModelOverrideKey, expectedGeneration?: number): boolean;
45
- export declare function clearScopedModelSelectionsForSession(sessionID: string): void;
45
+ /**
46
+ * Issue #2989: non-seeding read of a scoped selection for read-side
47
+ * consumers (the primary-session chat-boundary override).
48
+ *
49
+ * Unlike {@link resolveScopedModelSelection}, this NEVER creates or resets an
50
+ * entry: an absent key, an expired entry, or a stored signature that does not
51
+ * match the current chain all read as `undefined` (stale entries stay stale —
52
+ * the advance path owns reseeding). A PRESENT, signature-matching entry is
53
+ * touched (its `updatedAt` is refreshed), so an actively-used session's
54
+ * selection stays alive and an idle session's selection expires via the TTL.
55
+ */
56
+ export declare function peekScopedModelSelection(scope: ScopedModelOverrideKey, chain: NormalizedModelChain, now?: number): ScopedModelSelection | undefined;
57
+ export interface ClearScopedModelSelectionsOptions {
58
+ /**
59
+ * Issue #2989: when false, primary-session scopes (the sentinel
60
+ * empty-string `invocationID` used by the session-scoped fallback) are
61
+ * preserved. The per-invocation boundary clear
62
+ * (`clearPendingTaskModelRoutesForSession(..., 'invocation')`) uses this
63
+ * so a primary session's fallback selection stays sticky across turns;
64
+ * the session-end clear keeps the default (clear everything).
65
+ */
66
+ primaryScopes?: boolean;
67
+ }
68
+ export declare function clearScopedModelSelectionsForSession(sessionID: string, opts?: ClearScopedModelSelectionsOptions): void;
46
69
  export declare function getScopedModelSelectionSnapshot(): readonly ScopedModelSelectionSnapshotEntry[];
47
70
  export declare function resetScopedModelSelectionStateForTests(): void;
@@ -61,7 +61,64 @@ export declare function registerPendingTaskModelRoute(input: PendingTaskModelRou
61
61
  export declare function bindPendingTaskModelRouteChild(input: BindTaskModelRouteChildInput, now?: number): PendingTaskModelRouteSnapshotEntry | undefined;
62
62
  export declare function advancePendingTaskModelRoute(input: AdvanceTaskModelRouteInput): TaskModelRouteAdvanceResult | undefined;
63
63
  export declare function resolveTaskChatModelOverride(input: ResolveTaskChatModelOverrideInput): Promise<TaskChatModelOverrideResolution>;
64
- export declare function clearPendingTaskModelRoutesForSession(sessionID: string): void;
64
+ export interface AdvanceSessionFallbackSelectionInput {
65
+ sessionID: string;
66
+ role: string;
67
+ swarmID?: string;
68
+ primaryModel?: string;
69
+ fallbackModels?: Iterable<string | null | undefined>;
70
+ now?: number;
71
+ }
72
+ export interface SessionFallbackAdvanceResult {
73
+ accepted: boolean;
74
+ exhausted: boolean;
75
+ fallbackIndex: number;
76
+ modelString?: string;
77
+ scope: ScopedModelOverrideKey;
78
+ }
79
+ export interface ResolveSessionChatModelOverrideInput {
80
+ sessionID: string;
81
+ role: string;
82
+ swarmID?: string;
83
+ primaryModel?: string;
84
+ fallbackModels?: Iterable<string | null | undefined>;
85
+ now?: number;
86
+ }
87
+ export interface SessionChatModelOverrideResolution {
88
+ status: 'override' | 'primary' | 'exhausted' | 'missing';
89
+ model?: ModelOverrideParts;
90
+ modelString?: string;
91
+ fallbackIndex?: number;
92
+ }
93
+ /**
94
+ * Issue #2989: advance the primary-session (host-driven) fallback chain for
95
+ * a session with no Task route. Seed-then-advance mirrors
96
+ * {@link advancePendingTaskModelRoute}'s flow: `resolveScopedModelSelection`
97
+ * seeds a fresh entry at fallbackIndex 0, `advanceScopedModelSelection` moves
98
+ * it forward (clamped at chain end, where `exhausted` becomes true).
99
+ */
100
+ export declare function advanceSessionFallbackSelection(input: AdvanceSessionFallbackSelectionInput): SessionFallbackAdvanceResult;
101
+ /**
102
+ * Issue #2989: non-seeding read of the primary-session fallback selection
103
+ * for the chat-boundary override. `missing` covers no-selection/no-fallbacks
104
+ * (and stale-signature entries, which read as absent and are left alone);
105
+ * `exhausted` never throws here — a primary session's user message must
106
+ * never be blocked by the plugin.
107
+ */
108
+ export declare function resolveSessionChatModelOverride(input: ResolveSessionChatModelOverrideInput): SessionChatModelOverrideResolution;
109
+ /**
110
+ * Issue #2989 review (F-001): record the exact `input.agent` string at the
111
+ * chat boundary so the session.error no-route branch can resolve the same
112
+ * identity (the activeAgent pointer is reset by Task-tool completions).
113
+ */
114
+ export declare function recordSessionChatAgent(sessionID: string, agentName: string): void;
115
+ /**
116
+ * Issue #2989 review (F-001): the chat-boundary-recorded agent name for a
117
+ * session, or undefined when no chat.message has been seen for it in this
118
+ * process.
119
+ */
120
+ export declare function resolveSessionChatAgent(sessionID: string): string | undefined;
121
+ export declare function clearPendingTaskModelRoutesForSession(sessionID: string, mode?: 'session' | 'invocation'): void;
65
122
  export declare function getPendingTaskModelRouteSnapshot(): readonly PendingTaskModelRouteSnapshotEntry[];
66
123
  export declare function getTaskModelRoutingStateSnapshot(): {
67
124
  routes: readonly PendingTaskModelRouteSnapshotEntry[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-swarm",
3
- "version": "7.187.2",
3
+ "version": "7.187.3",
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",