opencode-swarm 7.129.4 → 7.130.1

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 (43) hide show
  1. package/.opencode/skills/swarm-pr-review/SKILL.md +75 -26
  2. package/dist/background/pr-monitor-worker.d.ts +19 -0
  3. package/dist/cli/{config-doctor-2admdwc2.js → config-doctor-489wej17.js} +2 -2
  4. package/dist/cli/{curation-policy-s08pg90f.js → curation-policy-aaz0hap6.js} +2 -2
  5. package/dist/cli/{curator-6ggzktne.js → curator-by14m5fc.js} +12 -12
  6. package/dist/cli/{curator-llm-factory-w6ep20tm.js → curator-llm-factory-7rz7mvcr.js} +12 -12
  7. package/dist/cli/{guardrail-explain-0gr9wkj0.js → guardrail-explain-mvct2n9f.js} +13 -13
  8. package/dist/cli/{guardrail-log-7cychbgs.js → guardrail-log-2cejc33f.js} +3 -3
  9. package/dist/cli/{hive-promoter-4x3470c9.js → hive-promoter-trezcyrd.js} +12 -12
  10. package/dist/cli/{index-mgz9nm4a.js → index-3rnkyb60.js} +5 -5
  11. package/dist/cli/{index-jke1z4f2.js → index-4qrbvrz5.js} +41 -38
  12. package/dist/cli/{index-7ttstfv6.js → index-5xxgeksy.js} +9 -0
  13. package/dist/cli/{index-nbdge8b6.js → index-agte9w1e.js} +2 -2
  14. package/dist/cli/{index-v4n224r1.js → index-hjar4crm.js} +1 -1
  15. package/dist/cli/{index-hn1dxcr3.js → index-j0py44fv.js} +2 -2
  16. package/dist/cli/{index-8fy8q1px.js → index-jvyn76xe.js} +3 -3
  17. package/dist/cli/{index-bz814zsm.js → index-jxha73tm.js} +1 -1
  18. package/dist/cli/{index-yxz0c97p.js → index-nr5pr54q.js} +1 -1
  19. package/dist/cli/{index-cpssctv1.js → index-p6qgjkbt.js} +1 -1
  20. package/dist/cli/{index-hbbj7ktj.js → index-s8h2cedv.js} +1 -1
  21. package/dist/cli/{index-n08cksd6.js → index-ts9wh1ba.js} +4 -4
  22. package/dist/cli/{index-x7wt1g4w.js → index-wy3q73j2.js} +2 -2
  23. package/dist/cli/{index-nhexgq4a.js → index-xa29259t.js} +1 -1
  24. package/dist/cli/{index-803bqrzq.js → index-xdx5b4s1.js} +14 -14
  25. package/dist/cli/{index-8etcyr9r.js → index-zft4hp35.js} +1 -1
  26. package/dist/cli/index.js +12 -12
  27. package/dist/cli/{knowledge-escalator-jjyn29ht.js → knowledge-escalator-1ypz0266.js} +3 -3
  28. package/dist/cli/{knowledge-events-f75n3916.js → knowledge-events-yvcczmja.js} +1 -1
  29. package/dist/cli/{knowledge-store-7sahm702.js → knowledge-store-h8bp9eje.js} +1 -1
  30. package/dist/cli/{knowledge-validator-rjwvafv3.js → knowledge-validator-sz9v1fdq.js} +4 -4
  31. package/dist/cli/{scan-cursor-518rhxyd.js → scan-cursor-k9zyt374.js} +2 -2
  32. package/dist/cli/{schema-2x7wsb0n.js → schema-fkpn2r1s.js} +1 -1
  33. package/dist/cli/{skill-generator-hk6mc7pc.js → skill-generator-a6a9jxfd.js} +5 -5
  34. package/dist/config/schema.d.ts +2 -0
  35. package/dist/hooks/pr-workflow-gate.d.ts +9 -0
  36. package/dist/hooks/pr-workflow-response-gate.d.ts +29 -6
  37. package/dist/index.js +47 -43
  38. package/dist/tools/index.d.ts +1 -0
  39. package/dist/tools/manifest.d.ts +1 -0
  40. package/dist/tools/pr-workflow-status.d.ts +28 -0
  41. package/dist/tools/prepare-pr-workflow-checkout.d.ts +7 -1
  42. package/dist/tools/tool-metadata.d.ts +8 -0
  43. package/package.json +1 -1
@@ -23,11 +23,11 @@ import {
23
23
  validateLesson,
24
24
  validateSkillCandidatePath,
25
25
  validateSkillPath
26
- } from "./index-x7wt1g4w.js";
27
- import"./index-nhexgq4a.js";
26
+ } from "./index-wy3q73j2.js";
27
+ import"./index-xa29259t.js";
28
28
  import"./index-rtry5xyf.js";
29
- import"./index-n08cksd6.js";
30
- import"./index-bz814zsm.js";
29
+ import"./index-ts9wh1ba.js";
30
+ import"./index-jxha73tm.js";
31
31
  import"./index-ae75rja9.js";
32
32
  import"./index-q27bajqb.js";
33
33
  import"./index-bk5tah7q.js";
@@ -4,8 +4,8 @@ import {
4
4
  alreadyCuratedThisGeneration,
5
5
  claimNextScanBatch,
6
6
  getScanStatus
7
- } from "./index-hbbj7ktj.js";
8
- import"./index-n08cksd6.js";
7
+ } from "./index-s8h2cedv.js";
8
+ import"./index-ts9wh1ba.js";
9
9
  import"./index-ae75rja9.js";
10
10
  import"./index-q27bajqb.js";
11
11
  import"./index-bk5tah7q.js";
@@ -89,7 +89,7 @@ import {
89
89
  resolveGeneratedAgentRole,
90
90
  resolveGuardrailsConfig,
91
91
  stripKnownSwarmPrefix
92
- } from "./index-7ttstfv6.js";
92
+ } from "./index-5xxgeksy.js";
93
93
  import"./index-bk5tah7q.js";
94
94
  import"./index-zjygnfay.js";
95
95
  import"./index-bpmtbmy9.js";
@@ -33,12 +33,12 @@ import {
33
33
  sanitizeSlug,
34
34
  selectCandidateEntries,
35
35
  writeEvalStub
36
- } from "./index-8fy8q1px.js";
37
- import"./index-x7wt1g4w.js";
38
- import"./index-nhexgq4a.js";
36
+ } from "./index-jvyn76xe.js";
37
+ import"./index-wy3q73j2.js";
38
+ import"./index-xa29259t.js";
39
39
  import"./index-rtry5xyf.js";
40
- import"./index-n08cksd6.js";
41
- import"./index-bz814zsm.js";
40
+ import"./index-ts9wh1ba.js";
41
+ import"./index-jxha73tm.js";
42
42
  import"./index-ae75rja9.js";
43
43
  import"./index-q27bajqb.js";
44
44
  import"./index-bk5tah7q.js";
@@ -553,6 +553,7 @@ export type RepoGraphConfig = z.infer<typeof RepoGraphConfigSchema>;
553
553
  export declare const CheckpointConfigSchema: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodObject<{
554
554
  enabled: z.ZodDefault<z.ZodBoolean>;
555
555
  auto_checkpoint_threshold: z.ZodDefault<z.ZodNumber>;
556
+ max_retention: z.ZodDefault<z.ZodNumber>;
556
557
  allow_empty_commits: z.ZodDefault<z.ZodBoolean>;
557
558
  }, z.core.$strict>>;
558
559
  export type CheckpointConfig = z.infer<typeof CheckpointConfigSchema>;
@@ -1885,6 +1886,7 @@ export declare const PluginConfigSchema: z.ZodObject<{
1885
1886
  checkpoint: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodObject<{
1886
1887
  enabled: z.ZodDefault<z.ZodBoolean>;
1887
1888
  auto_checkpoint_threshold: z.ZodDefault<z.ZodNumber>;
1889
+ max_retention: z.ZodDefault<z.ZodNumber>;
1888
1890
  allow_empty_commits: z.ZodDefault<z.ZodBoolean>;
1889
1891
  }, z.core.$strict>>>;
1890
1892
  apply_patch: z.ZodOptional<z.ZodObject<{
@@ -357,6 +357,15 @@ export declare const _test_exports: {
357
357
  rename: typeof fsp.rename;
358
358
  nowMs: () => number;
359
359
  };
360
+ /**
361
+ * Strip the tolerated read-only wrappers (leading `cd <path> &&` segments and one
362
+ * trailing `2>&1`), reporting whether a cd prefix was removed so state-transition
363
+ * verbs can keep requiring the bare form (see the git `-C` ban those verbs carry).
364
+ */
365
+ export declare function normalizePrWorkflowShellCommand(command: string): {
366
+ normalized: string;
367
+ strippedCdPrefix: boolean;
368
+ };
360
369
  /** Require at least one real discovery row or a lane-bound CLEAN attestation. */
361
370
  export declare function prReviewDiscoveryArtifactCoversLane(text: string, expectedWorkflowLane: string): boolean;
362
371
  declare function parseCriticVerdict(text: string, itemId: string, reviewerSeverity?: string): {
@@ -25,9 +25,27 @@ export declare const DEFAULT_MAX_CONSECUTIVE_UNPRODUCTIVE_WAKES = 5;
25
25
  * bumping `revision` never waits.
26
26
  */
27
27
  export declare const DEFAULT_WAKE_COOLDOWN_MS = 30000;
28
+ /**
29
+ * Minimum time between FULL workflow banners prepended to a single session's
30
+ * completed text parts. The textComplete hook prepends a banner to every
31
+ * architect text part while the durable gate exists; without a cooldown a
32
+ * burst of reasoning parts repeats the full multi-line banner many times
33
+ * (field report: ~8 repeats between two model thoughts). Within the cooldown a
34
+ * short one-line marker is prepended instead; the full banner (and its
35
+ * suspension/interruption recovery notices) returns once the cooldown elapses.
36
+ *
37
+ * The input event exposes only `{ sessionID }` — there is NO message/part ID —
38
+ * so this dedupe is necessarily a per-session cooldown, not a per-message one.
39
+ *
40
+ * Suspended and user-interrupted states BYPASS the cooldown entirely: those are
41
+ * invariant-10 operational notices that must appear in full on every part.
42
+ * Overridable via `createPrWorkflowResponseGate({ bannerCooldownMs })`.
43
+ */
44
+ export declare const DEFAULT_BANNER_COOLDOWN_MS = 20000;
28
45
  /**
29
46
  * Bounded FIFO map of tracked wake budgets. Invariant 8 (session/global
30
- * state): module-level state must have an explicit eviction strategy.
47
+ * state): module-level state must have an explicit eviction strategy. The
48
+ * banner-stamp map (last full-banner instant per session) shares this bound.
31
49
  */
32
50
  export declare const MAX_TRACKED_WAKE_SESSIONS = 200;
33
51
  interface PrWorkflowResponseGateClient {
@@ -41,15 +59,19 @@ interface WakeBudget {
41
59
  }
42
60
  /**
43
61
  * Prevent an architect from masquerading a premature text output as a terminal
44
- * verdict. The text-complete hook prepends a workflow-active banner to every
45
- * architect-session text part while the durable gate exists; the model's
46
- * original text is preserved below the banner. session.idle then mechanically
62
+ * verdict. The text-complete hook prepends a workflow-active banner to
63
+ * architect-session text parts while the durable gate exists; the model's
64
+ * original text is preserved below the banner. To avoid spamming the full
65
+ * multi-line banner across a burst of reasoning parts, the full banner is
66
+ * throttled per session (see DEFAULT_BANNER_COOLDOWN_MS) — within the cooldown a
67
+ * short one-line marker is prepended instead. session.idle then mechanically
47
68
  * resumes that session.
48
69
  *
49
70
  * The resume loop is bounded (see DEFAULT_MAX_CONSECUTIVE_UNPRODUCTIVE_WAKES)
50
71
  * so a session that cannot make progress suspends instead of spinning
51
- * forever. The banner always carries suspension/interruption recovery notices
52
- * so the user-visible surface always names the recovery path.
72
+ * forever. Suspended and user-interrupted parts bypass the cooldown and always
73
+ * carry the full suspension/interruption recovery notices so the user-visible
74
+ * surface always names the recovery path.
53
75
  */
54
76
  export declare function createPrWorkflowResponseGate(options: {
55
77
  directory: string;
@@ -57,6 +79,7 @@ export declare function createPrWorkflowResponseGate(options: {
57
79
  wakeTimeoutMs?: number;
58
80
  maxConsecutiveUnproductiveWakes?: number;
59
81
  wakeCooldownMs?: number;
82
+ bannerCooldownMs?: number;
60
83
  }): {
61
84
  event: (input: {
62
85
  event: unknown;