opencode-swarm 7.109.2 → 7.109.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 (31) hide show
  1. package/.opencode/skills/ci-failure-batching/SKILL.md +39 -0
  2. package/.opencode/skills/gate-attribution/SKILL.md +31 -0
  3. package/.opencode/skills/merge-queue-readiness/SKILL.md +37 -0
  4. package/.opencode/skills/skill-edit-validation/SKILL.md +29 -0
  5. package/.opencode/skills/worktree-retry-cleanup/SKILL.md +24 -0
  6. package/dist/cli/{curator-6p9tpprq.js → curator-9q3m25va.js} +6 -6
  7. package/dist/cli/{curator-llm-factory-wqbm9mwr.js → curator-llm-factory-78dyv010.js} +6 -6
  8. package/dist/cli/{guardrail-explain-ynge4ww3.js → guardrail-explain-csnawe0d.js} +7 -7
  9. package/dist/cli/{hive-promoter-qh2rh8x2.js → hive-promoter-xnx734y3.js} +6 -6
  10. package/dist/cli/{index-3qwaydq1.js → index-3nd7bz90.js} +7 -7
  11. package/dist/cli/{index-fz1jgbvw.js → index-41fgssqr.js} +22 -2
  12. package/dist/cli/{index-wg0665ft.js → index-8f10r7ay.js} +2 -2
  13. package/dist/cli/{index-9qxntjtx.js → index-b15qbvph.js} +190 -41
  14. package/dist/cli/{index-5gnp8fyw.js → index-mtzjbaaa.js} +3 -3
  15. package/dist/cli/{index-8a8b5wjf.js → index-r9dbs4zr.js} +1 -1
  16. package/dist/cli/{index-cqbqynzp.js → index-xyz8epk6.js} +643 -548
  17. package/dist/cli/{index-mmny81g1.js → index-y5z2qdvk.js} +1 -1
  18. package/dist/cli/index.js +6 -6
  19. package/dist/cli/{knowledge-escalator-6v7sjprx.js → knowledge-escalator-9ksrgq7h.js} +3 -3
  20. package/dist/cli/{knowledge-events-6n3x3he2.js → knowledge-events-ymysgtrr.js} +1 -1
  21. package/dist/cli/{knowledge-store-exkw6yb1.js → knowledge-store-562fefjy.js} +1 -1
  22. package/dist/cli/{knowledge-validator-exymfcb9.js → knowledge-validator-b9nvmzjc.js} +4 -2
  23. package/dist/cli/{skill-generator-mx9br4ty.js → skill-generator-mjfqvnn0.js} +15 -5
  24. package/dist/config/bundled-skills.d.ts +1 -1
  25. package/dist/hooks/knowledge-types.d.ts +6 -0
  26. package/dist/hooks/knowledge-validator.d.ts +5 -0
  27. package/dist/hooks/skill-invalidator.d.ts +48 -0
  28. package/dist/index.js +215 -214
  29. package/dist/services/skill-generator.d.ts +47 -2
  30. package/dist/tools/knowledge-remove.d.ts +3 -8
  31. package/package.json +6 -1
@@ -594,7 +594,7 @@ async function applyKnowledgeVerdictFeedback(directory, options) {
594
594
  deltas.push({ id, delta });
595
595
  }
596
596
  if (deltas.length > 0) {
597
- const { bumpKnowledgeConfidenceBatch } = await import("./knowledge-store-exkw6yb1.js");
597
+ const { bumpKnowledgeConfidenceBatch } = await import("./knowledge-store-562fefjy.js");
598
598
  await bumpKnowledgeConfidenceBatch(directory, deltas, options?.floorOptions);
599
599
  }
600
600
  return {
package/dist/cli/index.js CHANGED
@@ -7,9 +7,9 @@ import {
7
7
  getPluginLockFilePaths,
8
8
  package_default,
9
9
  resolveCommand
10
- } from "./index-cqbqynzp.js";
10
+ } from "./index-xyz8epk6.js";
11
11
  import"./index-wj4jeavn.js";
12
- import"./index-5gnp8fyw.js";
12
+ import"./index-mtzjbaaa.js";
13
13
  import"./index-c8s9a3zh.js";
14
14
  import"./index-fm7xz1ne.js";
15
15
  import"./index-j2v3w1ds.js";
@@ -20,10 +20,10 @@ import"./index-09xpycan.js";
20
20
  import {
21
21
  DEFAULT_AGENT_CONFIGS
22
22
  } from "./index-h4c4rrwx.js";
23
- import"./index-9qxntjtx.js";
24
- import"./index-mmny81g1.js";
25
- import"./index-fz1jgbvw.js";
26
- import"./index-wg0665ft.js";
23
+ import"./index-b15qbvph.js";
24
+ import"./index-y5z2qdvk.js";
25
+ import"./index-41fgssqr.js";
26
+ import"./index-8f10r7ay.js";
27
27
  import"./index-2nt4mq9n.js";
28
28
  import"./index-bfwt3abw.js";
29
29
  import"./index-wvrj16f0.js";
@@ -8,9 +8,9 @@ import {
8
8
  maybeEscalateOnViolation,
9
9
  maybeQuarantineOnContradiction,
10
10
  readRecentEscalations
11
- } from "./index-5gnp8fyw.js";
12
- import"./index-mmny81g1.js";
13
- import"./index-wg0665ft.js";
11
+ } from "./index-mtzjbaaa.js";
12
+ import"./index-y5z2qdvk.js";
13
+ import"./index-8f10r7ay.js";
14
14
  import"./index-2nt4mq9n.js";
15
15
  import"./index-bfwt3abw.js";
16
16
  import"./index-jtqkh8jf.js";
@@ -25,7 +25,7 @@ import {
25
25
  resolveKnowledgeCounterBaselinePath,
26
26
  resolveKnowledgeEventsPath,
27
27
  resolveLegacyApplicationLogPath
28
- } from "./index-mmny81g1.js";
28
+ } from "./index-y5z2qdvk.js";
29
29
  import"./index-2nt4mq9n.js";
30
30
  import"./index-zgwm4ryv.js";
31
31
  import"./index-1cn967sa.js";
@@ -32,7 +32,7 @@ import {
32
32
  transactFile,
33
33
  transactKnowledge,
34
34
  wordBigrams
35
- } from "./index-wg0665ft.js";
35
+ } from "./index-8f10r7ay.js";
36
36
  import"./index-2nt4mq9n.js";
37
37
  import"./index-bfwt3abw.js";
38
38
  import"./index-jtqkh8jf.js";
@@ -8,6 +8,7 @@ import {
8
8
  DANGEROUS_COMMAND_WARNING_PATTERNS,
9
9
  INJECTION_PATTERNS,
10
10
  INVISIBLE_FORMAT_CHARS,
11
+ RETIRED_SKILL_HISTORY_MAX,
11
12
  SECURITY_DEGRADING_PATTERNS,
12
13
  _internals,
13
14
  appendUnactionable,
@@ -21,8 +22,8 @@ import {
21
22
  validateLesson,
22
23
  validateSkillCandidatePath,
23
24
  validateSkillPath
24
- } from "./index-fz1jgbvw.js";
25
- import"./index-wg0665ft.js";
25
+ } from "./index-41fgssqr.js";
26
+ import"./index-8f10r7ay.js";
26
27
  import"./index-2nt4mq9n.js";
27
28
  import"./index-bfwt3abw.js";
28
29
  import"./index-jtqkh8jf.js";
@@ -47,6 +48,7 @@ export {
47
48
  appendUnactionable,
48
49
  _internals,
49
50
  SECURITY_DEGRADING_PATTERNS,
51
+ RETIRED_SKILL_HISTORY_MAX,
50
52
  INVISIBLE_FORMAT_CHARS,
51
53
  INJECTION_PATTERNS,
52
54
  DANGEROUS_COMMAND_WARNING_PATTERNS,
@@ -9,10 +9,13 @@ import {
9
9
  activePath,
10
10
  activeRepoRelativePath,
11
11
  autoApplyProposals,
12
+ clearDraftSkillLinks,
13
+ clearRetiredSkillLinks,
12
14
  clearSkillStale,
13
15
  clusterEntries,
14
16
  findSkillsBySourceKnowledgeId,
15
17
  findStaleSkillsBySourceKnowledgeId,
18
+ generateEvalStub,
16
19
  generateSkills,
17
20
  inspectSkill,
18
21
  isSkillMaturityEligible,
@@ -21,16 +24,18 @@ import {
21
24
  markSkillStale,
22
25
  parseDraftFrontmatter,
23
26
  proposalPath,
27
+ proposalRepoRelativePath,
24
28
  regenerateSkill,
25
29
  renderSkillMarkdown,
26
30
  retireOrMarkStale,
27
31
  retireSkill,
28
32
  sanitizeSlug,
29
- selectCandidateEntries
30
- } from "./index-9qxntjtx.js";
31
- import"./index-mmny81g1.js";
32
- import"./index-fz1jgbvw.js";
33
- import"./index-wg0665ft.js";
33
+ selectCandidateEntries,
34
+ writeEvalStub
35
+ } from "./index-b15qbvph.js";
36
+ import"./index-y5z2qdvk.js";
37
+ import"./index-41fgssqr.js";
38
+ import"./index-8f10r7ay.js";
34
39
  import"./index-2nt4mq9n.js";
35
40
  import"./index-bfwt3abw.js";
36
41
  import"./index-jtqkh8jf.js";
@@ -42,12 +47,14 @@ import"./index-vvk2g744.js";
42
47
  import"./index-7xgqky26.js";
43
48
  import"./index-a76rekgs.js";
44
49
  export {
50
+ writeEvalStub,
45
51
  selectCandidateEntries,
46
52
  sanitizeSlug,
47
53
  retireSkill,
48
54
  retireOrMarkStale,
49
55
  renderSkillMarkdown,
50
56
  regenerateSkill,
57
+ proposalRepoRelativePath,
51
58
  proposalPath,
52
59
  parseDraftFrontmatter,
53
60
  markSkillStale,
@@ -56,10 +63,13 @@ export {
56
63
  isSkillMaturityEligible,
57
64
  inspectSkill,
58
65
  generateSkills,
66
+ generateEvalStub,
59
67
  findStaleSkillsBySourceKnowledgeId,
60
68
  findSkillsBySourceKnowledgeId,
61
69
  clusterEntries,
62
70
  clearSkillStale,
71
+ clearRetiredSkillLinks,
72
+ clearDraftSkillLinks,
63
73
  autoApplyProposals,
64
74
  activeRepoRelativePath,
65
75
  activePath,
@@ -1,4 +1,4 @@
1
- export declare const BUNDLED_PROJECT_SKILLS: readonly ["brainstorm", "specify", "clarify-spec", "resume", "clarify", "discover", "consult", "pre-phase-briefing", "council", "deep-dive", "deep-research", "codebase-review-swarm", "swarm-implement", "design-docs", "swarm-pr-review", "swarm-pr-feedback", "swarm-pr-subscribe", "issue-ingest", "plan", "critic-gate", "execute", "phase-wrap", "loop", "writing-tests", "running-tests", "engineering-conventions", "commit-pr"];
1
+ export declare const BUNDLED_PROJECT_SKILLS: readonly ["brainstorm", "specify", "clarify-spec", "resume", "clarify", "discover", "consult", "pre-phase-briefing", "council", "deep-dive", "deep-research", "codebase-review-swarm", "swarm-implement", "design-docs", "swarm-pr-review", "swarm-pr-feedback", "swarm-pr-subscribe", "issue-ingest", "plan", "critic-gate", "execute", "phase-wrap", "loop", "writing-tests", "running-tests", "engineering-conventions", "commit-pr", "worktree-retry-cleanup", "skill-edit-validation", "merge-queue-readiness", "gate-attribution", "ci-failure-batching"];
2
2
  interface CopyState {
3
3
  files: number;
4
4
  bytes: number;
@@ -90,6 +90,12 @@ export interface ActionableDirectiveFields {
90
90
  generated_skill_slug?: string;
91
91
  /** Repo-local path to generated SKILL.md. */
92
92
  generated_skill_path?: string;
93
+ /** G10 (issue #1717): slug of a draft proposal compiled from this entry. */
94
+ draft_generated_skill_slug?: string;
95
+ /** G10 (issue #1717): repo-local path to the draft proposal. */
96
+ draft_generated_skill_path?: string;
97
+ /** G12 (issue #1717): retired skill slugs previously generated from this entry. */
98
+ retired_skill_history?: string[];
93
99
  /** Directive priority for ranking/enforcement. */
94
100
  directive_priority?: DirectivePriority;
95
101
  /**
@@ -35,6 +35,11 @@ export declare function validateLesson(candidate: string, existingLessons: strin
35
35
  export declare const ACTIONABLE_STRING_MAX = 200;
36
36
  /** Maximum number of items in any actionable list (triggers, required_actions, etc.). */
37
37
  export declare const ACTIONABLE_LIST_MAX = 20;
38
+ /**
39
+ * Maximum retired_skill_history entries. Must match the FIFO cap in
40
+ * src/services/skill-generator.ts's clearSkillLinks (`if (history.length > 50)`).
41
+ */
42
+ export declare const RETIRED_SKILL_HISTORY_MAX = 50;
38
43
  /** Generated skill paths must be repo-local under one of these prefixes. */
39
44
  export declare const ALLOWED_SKILL_PATH_PREFIXES: string[];
40
45
  export interface ActionableValidationResult {
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Shared skill-invalidation helper for knowledge archival/removal paths.
3
+ *
4
+ * Issue #1717 (G11): the tombstone + retire/stale invalidation sequence was
5
+ * inlined independently in `knowledge-archive.ts` and `knowledge-remove.ts`,
6
+ * and was entirely absent from the curator archive recommendation path. This
7
+ * module is the single shared entry point all three callers use so they can
8
+ * no longer diverge.
9
+ *
10
+ * Contract:
11
+ * - Writes an audit tombstone (fire-and-forget, fail-open) unless
12
+ * `skipTombstone:true` (knowledge-remove hard-deletes and historically
13
+ * wrote no tombstone; that behavior is preserved).
14
+ * - Schedules a microtask that retires/marks-stale every generated skill
15
+ * whose source_knowledge_ids reference the archived entry.
16
+ * - Never throws.
17
+ */
18
+ import { findSkillsBySourceKnowledgeId, findStaleSkillsBySourceKnowledgeId, retireOrMarkStale } from '../services/skill-generator.js';
19
+ import { recordHiveKnowledgeEvent, recordKnowledgeEvent } from './knowledge-events.js';
20
+ import { getArchivedKnowledgeIds } from './knowledge-store.js';
21
+ export interface ArchiveInvalidationContext {
22
+ directory: string;
23
+ entryId: string;
24
+ tier: 'swarm' | 'hive';
25
+ actor: string;
26
+ reason: string;
27
+ mode: 'archive' | 'quarantine' | 'purge';
28
+ evidence?: string;
29
+ previousStatus?: string;
30
+ skipTombstone?: boolean;
31
+ sourceLabel?: string;
32
+ /**
33
+ * Pre-computed archived-ID set for callers invalidating multiple entries
34
+ * in one batch (e.g. curator processing several archive recommendations).
35
+ * Skips this call's own `getArchivedKnowledgeIds` scan when provided.
36
+ */
37
+ precomputedArchivedIds?: Set<string>;
38
+ }
39
+ export declare function writeArchiveTombstoneAndInvalidateSkills(ctx: ArchiveInvalidationContext): Promise<void>;
40
+ export declare const _internals: {
41
+ writeArchiveTombstoneAndInvalidateSkills: typeof writeArchiveTombstoneAndInvalidateSkills;
42
+ recordKnowledgeEvent: typeof recordKnowledgeEvent;
43
+ recordHiveKnowledgeEvent: typeof recordHiveKnowledgeEvent;
44
+ getArchivedKnowledgeIds: typeof getArchivedKnowledgeIds;
45
+ findSkillsBySourceKnowledgeId: typeof findSkillsBySourceKnowledgeId;
46
+ findStaleSkillsBySourceKnowledgeId: typeof findStaleSkillsBySourceKnowledgeId;
47
+ retireOrMarkStale: typeof retireOrMarkStale;
48
+ };