opencode-swarm 7.186.5 → 7.186.7

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 (73) hide show
  1. package/binaries/win32-arm64/swarm-sandbox-runner.exe +0 -0
  2. package/binaries/win32-x64/swarm-sandbox-runner.exe +0 -0
  3. package/dist/cli/{auto-checkpoint-ktp27ghj.js → auto-checkpoint-2wez0vzz.js} +5 -5
  4. package/dist/cli/{checkpoint-bmn087gt.js → checkpoint-ywqsp7d7.js} +9 -9
  5. package/dist/cli/{coder-settlement-d7m82pge.js → coder-settlement-nfzcjeda.js} +3 -3
  6. package/dist/cli/{config-doctor-5mqjz945.js → config-doctor-1fjsn7zq.js} +2 -2
  7. package/dist/cli/{core-rxnyh5x1.js → core-xs68b2jw.js} +1 -1
  8. package/dist/cli/{curator-drift-wag10j7q.js → curator-drift-cz65fcz0.js} +5 -5
  9. package/dist/cli/{curator-llm-factory-53p0h2zb.js → curator-llm-factory-p9r4sb0v.js} +25 -25
  10. package/dist/cli/{curator-186d4nm5.js → curator-nejfgxfm.js} +25 -25
  11. package/dist/cli/{evidence-summary-service-6wh823gt.js → evidence-summary-service-0jt68dq5.js} +10 -10
  12. package/dist/cli/{gate-evidence-vna61z6j.js → gate-evidence-ypmdcgrt.js} +2 -2
  13. package/dist/cli/{guardrail-explain-keqn86wf.js → guardrail-explain-c42va9fp.js} +26 -26
  14. package/dist/cli/{guardrail-log-nyfsyafa.js → guardrail-log-1hv4awyg.js} +3 -3
  15. package/dist/cli/{guardrail-reset-7w1mrxsv.js → guardrail-reset-cpw83epe.js} +25 -25
  16. package/dist/cli/{hive-promoter-s8q7y45e.js → hive-promoter-y1f7zsrj.js} +25 -25
  17. package/dist/cli/{index-rn6rmf07.js → index-059dnh78.js} +5 -5
  18. package/dist/cli/{index-f5wtnesp.js → index-2rkw7nft.js} +3 -3
  19. package/dist/cli/{index-9n10dpx0.js → index-4c4s8yww.js} +2 -2
  20. package/dist/cli/{index-qvk6eh90.js → index-5z3qzesd.js} +4 -4
  21. package/dist/cli/{index-gzvq7xrw.js → index-63e62vkg.js} +95 -66
  22. package/dist/cli/{index-yy0zk513.js → index-671k5bzj.js} +2 -2
  23. package/dist/cli/{index-7gnwpmca.js → index-8t5z1yxt.js} +3 -3
  24. package/dist/cli/{index-p32em2st.js → index-93mgmhe5.js} +27 -27
  25. package/dist/cli/{index-a5a4n622.js → index-9n1va1c4.js} +1 -1
  26. package/dist/cli/{index-4ft1hq7q.js → index-9qgncxbv.js} +1 -1
  27. package/dist/cli/{index-2rh911mw.js → index-d7sxckqj.js} +5 -5
  28. package/dist/cli/{index-v4dmx9nm.js → index-e27aph2j.js} +4 -4
  29. package/dist/cli/{index-ezya35f2.js → index-emjnn90k.js} +1 -1
  30. package/dist/cli/{index-38v2kw2f.js → index-fzah4ctw.js} +1 -1
  31. package/dist/cli/{index-hf3xc4st.js → index-gaf95msf.js} +1 -1
  32. package/dist/cli/{index-2xhf2zqg.js → index-gmwzspch.js} +2 -2
  33. package/dist/cli/{index-7dz5baxx.js → index-kb30szp0.js} +1 -1
  34. package/dist/cli/{index-frcemc0b.js → index-kbkk7vnh.js} +2 -0
  35. package/dist/cli/{index-7ra03prr.js → index-mpvvgktj.js} +2 -2
  36. package/dist/cli/{index-4e30e36r.js → index-q93b3xdh.js} +25 -25
  37. package/dist/cli/{index-fz5mvrg9.js → index-qc8r1gy4.js} +1 -1
  38. package/dist/cli/{index-dya7fvxm.js → index-qs706r9x.js} +1 -1
  39. package/dist/cli/{index-scx7ap3m.js → index-qwd1qpmg.js} +1 -1
  40. package/dist/cli/{index-0pzr0gv0.js → index-qy60v48q.js} +1 -1
  41. package/dist/cli/{index-g3akwsyy.js → index-rsrsv4c6.js} +1 -1
  42. package/dist/cli/{index-bjenrady.js → index-v3w5y2zp.js} +1 -1
  43. package/dist/cli/{index-va63e494.js → index-vtbehfx1.js} +1 -1
  44. package/dist/cli/{index-csqdjm26.js → index-w4q83wf9.js} +3 -3
  45. package/dist/cli/{index-tra2xts5.js → index-xadre3f0.js} +1 -1
  46. package/dist/cli/{index-czsmzgsv.js → index-yan163x1.js} +3 -3
  47. package/dist/cli/index.js +26 -26
  48. package/dist/cli/{knowledge-escalator-pee8ed7v.js → knowledge-escalator-1g4ewbtd.js} +7 -7
  49. package/dist/cli/{knowledge-events-1v4cspg1.js → knowledge-events-t4axcrwt.js} +5 -5
  50. package/dist/cli/{knowledge-store-cj7j8w51.js → knowledge-store-dfdktsc9.js} +1 -1
  51. package/dist/cli/{knowledge-validator-r7p1h4gk.js → knowledge-validator-kraghq1k.js} +2 -2
  52. package/dist/cli/{mcp-3zsg302f.js → mcp-gv7qrj3a.js} +1 -1
  53. package/dist/cli/{model-preflight-a42nfvb5.js → model-preflight-gztv8xqx.js} +25 -25
  54. package/dist/cli/{pending-delegations-k0m9hp25.js → pending-delegations-rxyjgkrw.js} +2 -2
  55. package/dist/cli/{pr-subscriptions-9exqrz8y.js → pr-subscriptions-csr7n0mx.js} +1 -1
  56. package/dist/cli/{pr-workflow-gate-5e8zq79d.js → pr-workflow-gate-3nrrg0je.js} +25 -25
  57. package/dist/cli/{scan-cursor-pw6t2b4p.js → scan-cursor-0v2a2kya.js} +2 -2
  58. package/dist/cli/{schema-txnvj734.js → schema-zzz1ddnv.js} +1 -1
  59. package/dist/cli/{scope-persistence-m19e7e20.js → scope-persistence-5p4kkrgt.js} +5 -5
  60. package/dist/cli/{server-bd3m3nay.js → server-96a0yyge.js} +25 -25
  61. package/dist/cli/{skill-generator-jg8g3v1y.js → skill-generator-v5q1vkxk.js} +8 -8
  62. package/dist/cli/{snapshot-coordination-init-3fb8aa76.js → snapshot-coordination-init-7cr259p8.js} +25 -25
  63. package/dist/cli/{speckit-checkoff-xtanamx0.js → speckit-checkoff-j9skdc02.js} +3 -3
  64. package/dist/cli/{worktree-collision-ownership-5yx378vf.js → worktree-collision-ownership-k5kcnw6t.js} +2 -2
  65. package/dist/cli/{worktree-isolation-g83bmwn3.js → worktree-isolation-p0p13n1e.js} +25 -25
  66. package/dist/config/evidence-schema.d.ts +6 -0
  67. package/dist/hooks/diff-scope.d.ts +6 -0
  68. package/dist/index.js +15 -14
  69. package/dist/state.d.ts +6 -0
  70. package/dist/tools/pre-check-batch.d.ts +8 -1
  71. package/dist/tools/secretscan.d.ts +27 -2
  72. package/dist/tools/update-task-status.d.ts +7 -0
  73. package/package.json +1 -1
package/dist/state.d.ts CHANGED
@@ -1246,6 +1246,12 @@ export declare function recordModifiedFilesForTask(session: AgentSessionState, t
1246
1246
  * Add one file to a task's attribution without disturbing its existing files.
1247
1247
  */
1248
1248
  export declare function recordModifiedFileForTask(session: AgentSessionState, taskId: string, file: string): boolean;
1249
+ /**
1250
+ * Whether a per-task attribution slot EXISTS for the task (present-but-empty
1251
+ * counts as present). Distinguishes "no record" from "record with zero files"
1252
+ * for callers that must not conflate the two (issue #2926 follow-up).
1253
+ */
1254
+ export declare function hasModifiedFilesForTask(session: AgentSessionState | undefined, taskId: string): boolean;
1249
1255
  /**
1250
1256
  * Return a defensive copy of the files attributed to one task.
1251
1257
  */
@@ -123,7 +123,14 @@ declare function runLintOnFiles(resolvedLinter: ResolvedLinterCommand, files: st
123
123
  /**
124
124
  * Run secretscan with timeout
125
125
  */
126
- declare function runSecretscanWrapped(files: string[] | undefined, directory: string, _gates?: GateConfigOverrides, abortSignal?: AbortSignal): Promise<ToolResult<SecretscanResult | SecretscanErrorResult>>;
126
+ declare function runSecretscanWrapped(files: string[] | undefined, directory: string, _gates?: GateConfigOverrides, abortSignal?: AbortSignal,
127
+ /**
128
+ * #2918: raw declared file count captured BEFORE the batch's validation
129
+ * drop loop — the gate's request basis. Plumbed into the scan result's
130
+ * requested_files so a dropped entry keeps requested > policy counter
131
+ * (non-vacuous, fail-closed).
132
+ */
133
+ rawRequestedFiles?: number): Promise<ToolResult<SecretscanResult | SecretscanErrorResult>>;
127
134
  /**
128
135
  * Run SAST scan with timeout
129
136
  */
@@ -18,6 +18,23 @@ export interface SecretscanResult {
18
18
  count: number;
19
19
  files_scanned: number;
20
20
  skipped_files: number;
21
+ /**
22
+ * Skips attributable specifically to scan-policy extension exclusion
23
+ * (#2918). The extension-exclusion site in runSecretscanOnFiles is the
24
+ * ONLY increment site: binary-content skips, missing files, invalid
25
+ * entries, and every incomplete route deliberately do NOT count, so
26
+ * `policy_skipped_files === requested_files` with zero findings and zero
27
+ * incomplete coverage proves vacuous coverage (nothing the scan policy
28
+ * allows scanning was requested).
29
+ */
30
+ policy_skipped_files: number;
31
+ /**
32
+ * Raw declared file count backing the scan, captured BEFORE any caller
33
+ * validation-drop (#2918). Direct callers default to `files.length`; the
34
+ * pre_check batch passes its pre-drop declared count so a dropped entry
35
+ * keeps requested > policy counter (non-vacuous, fail-closed).
36
+ */
37
+ requested_files: number;
21
38
  /** Files requested or discovered but not completely examined. */
22
39
  incomplete_files: number;
23
40
  incomplete_paths: IncompletePath[];
@@ -25,7 +42,7 @@ export interface SecretscanResult {
25
42
  }
26
43
  export interface IncompletePath {
27
44
  path: string;
28
- reason: 'cleanup_failed' | 'deadline' | 'directory_limit' | 'max_files' | 'non_file' | 'oversized' | 'read_error' | 'scope_escape' | 'symlink' | 'truncated';
45
+ reason: 'cleanup_failed' | 'deadline' | 'directory_limit' | 'invalid_entry' | 'max_files' | 'missing' | 'non_file' | 'oversized' | 'read_error' | 'scope_escape' | 'symlink' | 'truncated';
29
46
  }
30
47
  export interface SecretscanErrorResult {
31
48
  error: string;
@@ -54,7 +71,14 @@ export declare function runSecretscan(directory: string): Promise<SecretscanResu
54
71
  * Used by pre_check_batch so changed-file hard gates share the same detector
55
72
  * registry and entropy logic as the standalone scanner.
56
73
  */
57
- export declare function runSecretscanOnFiles(files: string[], directory: string): Promise<SecretscanResult | SecretscanErrorResult>;
74
+ export declare function runSecretscanOnFiles(files: string[], directory: string,
75
+ /**
76
+ * Raw declared file count from BEFORE any caller-side validation drop
77
+ * (#2918). Defaults to `files.length` for direct callers; the pre_check
78
+ * batch passes its pre-drop capture so a dropped entry keeps
79
+ * requested_files above the policy-skip counter (non-vacuous).
80
+ */
81
+ rawRequestedFiles?: number): Promise<SecretscanResult | SecretscanErrorResult>;
58
82
  /**
59
83
  * DI seam for testability. Contains all test-mocked exports.
60
84
  * Internal calls should use _internals.fn() instead of fn() directly.
@@ -71,6 +95,7 @@ export declare const _internals: {
71
95
  readFileChunk: typeof fs.readSync;
72
96
  closeFile: typeof fs.closeSync;
73
97
  lstatFile: (path: fs.PathLike) => fs.BigIntStats;
98
+ realpathSync: (path: fs.PathLike) => string;
74
99
  closeDirectory: (directory: fs.Dir) => void;
75
100
  };
76
101
  export {};
@@ -53,6 +53,13 @@ export interface UpdateTaskStatusResult {
53
53
  new_status?: string;
54
54
  current_phase?: number;
55
55
  errors?: string[];
56
+ /**
57
+ * Non-blocking advisory lines (issue #2926) — e.g. the SCOPE ADVISORY
58
+ * disclosing that the completion's scope check ran without the session's
59
+ * per-task attribution record. Present on successful completions so the
60
+ * degraded-fallback disclosure reaches the operator on the common path.
61
+ */
62
+ warnings?: string[];
56
63
  /** Present when the call failed due to lock contention. Instructs the caller to retry. */
57
64
  recovery_guidance?: string;
58
65
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-swarm",
3
- "version": "7.186.5",
3
+ "version": "7.186.7",
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",