opencode-swarm 7.139.8 → 7.140.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 (53) hide show
  1. package/.opencode/skills/commit-pr/SKILL.md +7 -0
  2. package/.opencode/skills/issue-ingest/SKILL.md +32 -1
  3. package/.opencode/skills/swarm-pr-feedback/SKILL.md +2 -2
  4. package/.opencode/skills/swarm-pr-review/SKILL.md +14 -3
  5. package/dist/cli/{config-doctor-9p18410e.js → config-doctor-0b5z13vq.js} +3 -3
  6. package/dist/cli/{core-jtj9j6z5.js → core-m5y25n0j.js} +2 -2
  7. package/dist/cli/{curation-policy-csqy6sxv.js → curation-policy-bn7g8n40.js} +2 -2
  8. package/dist/cli/{curator-nm119d34.js → curator-b7f6nt8h.js} +14 -14
  9. package/dist/cli/{curator-llm-factory-9jx0967z.js → curator-llm-factory-0mkbw2hg.js} +14 -14
  10. package/dist/cli/{guardrail-explain-jcw3c310.js → guardrail-explain-p2htdqkz.js} +15 -15
  11. package/dist/cli/{guardrail-log-kezxpmcr.js → guardrail-log-rqt9wrzw.js} +4 -4
  12. package/dist/cli/{hive-promoter-pjyx3wy7.js → hive-promoter-61sjdrgt.js} +14 -14
  13. package/dist/cli/{index-mejjza6g.js → index-0an7an2s.js} +2 -2
  14. package/dist/cli/{index-fzf15czt.js → index-6fwr2w8v.js} +2 -2
  15. package/dist/cli/{index-g5dfrs6s.js → index-7f72x6nv.js} +71 -53
  16. package/dist/cli/{index-2y3kqsrj.js → index-7nhrn9sy.js} +1 -1
  17. package/dist/cli/{index-nxfwwsdh.js → index-a98msw3z.js} +1 -1
  18. package/dist/cli/{index-j358ngpt.js → index-acc18zrj.js} +2 -2
  19. package/dist/cli/{index-cdkp8p0d.js → index-dbg3agxz.js} +4 -4
  20. package/dist/cli/{index-8rzgy9eq.js → index-dn3nkwbc.js} +1 -1
  21. package/dist/cli/{index-c5t1dz4k.js → index-ff7b0cr5.js} +16 -16
  22. package/dist/cli/{index-z6je7zhk.js → index-hgrzjhsf.js} +3 -3
  23. package/dist/cli/{index-61hxp7jc.js → index-hnprx6qv.js} +2 -2
  24. package/dist/cli/{index-bdvbjh9n.js → index-jq7n7w9y.js} +2 -2
  25. package/dist/cli/{index-82q5cn2m.js → index-m9csth1h.js} +2 -2
  26. package/dist/cli/{index-0gre0ke3.js → index-r7tg8kjh.js} +5 -5
  27. package/dist/cli/{index-r4t92q32.js → index-v1d4qz8y.js} +8 -0
  28. package/dist/cli/{index-hbnsmnb0.js → index-vw75bhf3.js} +1 -1
  29. package/dist/cli/{index-fsrsvn0j.js → index-wysn7pcz.js} +1 -1
  30. package/dist/cli/{index-t3wschfh.js → index-yf6p4wc5.js} +3 -3
  31. package/dist/cli/index.js +14 -14
  32. package/dist/cli/{knowledge-escalator-tzv6e9cb.js → knowledge-escalator-twwz5a0d.js} +3 -3
  33. package/dist/cli/{knowledge-events-g5t9m5y3.js → knowledge-events-hgaz06m8.js} +1 -1
  34. package/dist/cli/{knowledge-store-azpephvt.js → knowledge-store-46jrzgvm.js} +1 -1
  35. package/dist/cli/{knowledge-validator-eqd7kywp.js → knowledge-validator-7vnqwjtv.js} +4 -4
  36. package/dist/cli/{scan-cursor-mq7g3a95.js → scan-cursor-acsjpv2n.js} +2 -2
  37. package/dist/cli/{schema-dcjtwyvf.js → schema-4dy7emnw.js} +2 -2
  38. package/dist/cli/{skill-generator-npzqnyac.js → skill-generator-a48t83hf.js} +5 -5
  39. package/dist/hooks/issue-trace-reducer.d.ts +37 -13
  40. package/dist/hooks/issue-trace-state.d.ts +38 -9
  41. package/dist/hooks/issue-trace.d.ts +15 -2
  42. package/dist/hooks/pr-workflow-gate.d.ts +9 -1
  43. package/dist/index.js +133 -126
  44. package/dist/tools/index.d.ts +2 -0
  45. package/dist/tools/manifest.d.ts +2 -0
  46. package/dist/tools/record-issue-publication.d.ts +16 -0
  47. package/dist/tools/record-issue-reproduction.d.ts +22 -0
  48. package/dist/tools/repo-graph/ask.d.ts +24 -0
  49. package/dist/tools/repo-graph/query.d.ts +2 -0
  50. package/dist/tools/repo-graph/types.d.ts +24 -0
  51. package/dist/tools/repo-graph.d.ts +3 -2
  52. package/dist/tools/tool-metadata.d.ts +8 -0
  53. package/package.json +1 -1
@@ -106,6 +106,8 @@ export { lean_turbo_status } from './lean-turbo-status';
106
106
  export { lint_spec } from './lint-spec';
107
107
  export { mutation_test } from './mutation-test';
108
108
  export { executePreparePrWorkflowCheckout, prepare_pr_workflow_checkout, } from './prepare-pr-workflow-checkout';
109
+ export { executeRecordIssuePublication, record_issue_publication, } from './record-issue-publication';
110
+ export { executeRecordIssueReproduction, record_issue_reproduction, } from './record-issue-reproduction';
109
111
  export { executeRunPrFeedbackStageA, run_pr_feedback_stage_a, } from './run-pr-feedback-stage-a';
110
112
  export { symbols } from './symbols';
111
113
  export { type SyntaxCheckFileResult, type SyntaxCheckInput, type SyntaxCheckResult, syntax_check, syntaxCheck, } from './syntax-check';
@@ -46,6 +46,8 @@ export declare const TOOL_MANIFEST: {
46
46
  abort_pr_workflow: () => ToolDefinition;
47
47
  approve_plan_critic: () => ToolDefinition;
48
48
  prepare_pr_workflow_checkout: () => ToolDefinition;
49
+ record_issue_publication: () => ToolDefinition;
50
+ record_issue_reproduction: () => ToolDefinition;
49
51
  run_pr_feedback_stage_a: () => ToolDefinition;
50
52
  submit_council_verdicts: () => ToolDefinition;
51
53
  submit_phase_council_verdicts: () => ToolDefinition;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * record_issue_publication — persist an issue-bound publication receipt for the
3
+ * issue-trace workflow (issue #2131 finding 2.4).
4
+ *
5
+ * The issue-trace reducer reaches `publication_handoff` when all implementation
6
+ * phases are complete and the commit-pr directive has been emitted, but that is
7
+ * NOT a terminal "issue resolved" state. The trace reaches `published` (the only
8
+ * terminal state) only after an issue-bound publication receipt is observed.
9
+ * commit-pr invokes this tool after PR creation/update. The reader
10
+ * (`publicationReceiptExists` in issue-trace-state.ts) accepts the receipt only
11
+ * when `published === true` AND `issueNumber` matches the traced issue — so a
12
+ * prior issue's receipt cannot satisfy a new trace.
13
+ */
14
+ import { createSwarmTool } from './create-tool';
15
+ export declare function executeRecordIssuePublication(args: unknown, directory: string): Promise<string>;
16
+ export declare const record_issue_publication: ReturnType<typeof createSwarmTool>;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * record_issue_reproduction — persist an issue-bound reproduction receipt for
3
+ * the issue-trace workflow (issue #2131 finding 2.6).
4
+ *
5
+ * The issue-trace reducer requires reproduction evidence (OR a typed waiver)
6
+ * before the localization → PLAN transition can fire. The noRepro flag/waiver
7
+ * path is set by `/swarm issue --no-repro`; this tool is the writer for the
8
+ * case where reproduction was actually performed. The reader
9
+ * (`reproductionReceiptExists` in issue-trace-state.ts) accepts the receipt only
10
+ * when `performed === true` and `issueNumber` matches the traced issue.
11
+ *
12
+ * Note: this is an agent self-attestation, not an independently verified
13
+ * reproduction — it records the commands the agent ran and the output summary it
14
+ * observed. It raises the bar from unchecked prose to a structured, issue-bound
15
+ * artifact with a session provenance stamp, but does not itself prove the
16
+ * reproduction exercises the defect.
17
+ */
18
+ import { createSwarmTool } from './create-tool';
19
+ export declare function executeRecordIssueReproduction(args: unknown, directory: string, context?: {
20
+ sessionID?: string;
21
+ }): Promise<string>;
22
+ export declare const record_issue_reproduction: ReturnType<typeof createSwarmTool>;
@@ -0,0 +1,24 @@
1
+ import type { AskOptions, AskResult, GraphNode, RepoGraph } from './types';
2
+ declare function tokenize(text: string): string[];
3
+ declare function splitCompound(token: string): string[];
4
+ declare function buildVocabulary(graph: RepoGraph): Set<string>;
5
+ declare function expandTerms(tokens: string[], vocab: Set<string>): string[];
6
+ declare function computeIDF(term: string, nodes: GraphNode[]): number;
7
+ declare function lexicalScore(node: GraphNode, terms: string[], idfMap: Map<string, number>): {
8
+ score: number;
9
+ matchedTerms: string[];
10
+ };
11
+ declare function buildUndirectedAdjacency(graph: RepoGraph, nodeKeys: string[]): Map<string, Set<string>>;
12
+ declare function personalizedPageRank(adj: Map<string, Set<string>>, restart: Map<string, number>, nodeKeys: string[]): Map<string, number>;
13
+ export declare function askGraph(graph: RepoGraph, question: string, options?: AskOptions): AskResult;
14
+ export declare const _internals: {
15
+ tokenize: typeof tokenize;
16
+ splitCompound: typeof splitCompound;
17
+ expandTerms: typeof expandTerms;
18
+ buildVocabulary: typeof buildVocabulary;
19
+ computeIDF: typeof computeIDF;
20
+ lexicalScore: typeof lexicalScore;
21
+ personalizedPageRank: typeof personalizedPageRank;
22
+ buildUndirectedAdjacency: typeof buildUndirectedAdjacency;
23
+ };
24
+ export {};
@@ -48,6 +48,8 @@ export declare function getLocalizationContext(graph: RepoGraph, filePath: strin
48
48
  export declare function getContextPack(graph: RepoGraph, file: string, symbol: string, options?: {
49
49
  maxDepth?: number;
50
50
  maxTokens?: number;
51
+ includeSource?: boolean;
52
+ directory?: string;
51
53
  }): ContextPackResult;
52
54
  export declare function getPackageBoundaries(graph: RepoGraph, topN?: number): PackageBoundarySummary[];
53
55
  export declare function buildOntologyPreflightPacket(graph: RepoGraph, filePaths?: string[], options?: {
@@ -218,6 +218,8 @@ export interface ContextPackSpan {
218
218
  startLine: number;
219
219
  endLine: number;
220
220
  mode: 'full' | 'signature';
221
+ text?: string;
222
+ note?: string;
221
223
  }
222
224
  /**
223
225
  * Result of a context-pack query: the set of spans needed to understand
@@ -239,6 +241,28 @@ export interface ContextPackResult {
239
241
  estimatedTokens: number;
240
242
  /** Optional human-readable note about scope or limitations. */
241
243
  note?: string;
244
+ /** Whether source text was embedded in spans (only present when include_source was requested). */
245
+ sourceIncluded?: boolean;
246
+ }
247
+ export interface AskHit {
248
+ file: string;
249
+ score: number;
250
+ matchedTerms: string[];
251
+ topExports: string[];
252
+ role: string;
253
+ community: string;
254
+ }
255
+ export interface AskOptions {
256
+ topN?: number;
257
+ }
258
+ export interface AskResult {
259
+ hits: AskHit[];
260
+ expandedTerms: string[];
261
+ budget: {
262
+ requested: number;
263
+ returned: number;
264
+ dropped: number;
265
+ };
242
266
  }
243
267
  /**
244
268
  * A file that references a specific exported symbol of a target file.
@@ -14,6 +14,7 @@
14
14
  *
15
15
  * All existing imports of this module continue to work unchanged.
16
16
  */
17
+ export { _internals as _askInternals, askGraph } from './repo-graph/ask';
17
18
  export type { RepoGraphInputMetadata, RepoGraphInputWalkOptions, RepoGraphInputWalkResult, ScanResult, } from './repo-graph/builder';
18
19
  export { addEdge, buildWorkspaceGraph, buildWorkspaceGraphAsync, isGraphWideInputPath, isScannableSourcePath, resolveModuleSpecifier, upsertNode, walkRepoGraphInputs, } from './repo-graph/builder';
19
20
  export { clearCache, getCachedGraph, getCachedMtime, isDirty, markDirty, setCachedGraph, } from './repo-graph/cache';
@@ -25,6 +26,6 @@ export { extractFileOntology } from './repo-graph/ontology';
25
26
  export type { DeadExportsOptions } from './repo-graph/query';
26
27
  export { buildOntologyPreflightPacket, getBlastRadius, getCallers, getContextPack, getDeadExports, getDependencies, getFileOntology, getGraphHealth, getGraphNode, getImporters, getKeyFiles, getLocalizationContext, getPackageBoundaries, getSymbolConsumers, isGraphFresh, resetQueryCache, } from './repo-graph/query';
27
28
  export { getGraphPath, loadGraph, loadGraphSync, loadOrCreateGraph, saveGraph, saveIfDirty, } from './repo-graph/storage';
28
- export type { BlastRadiusResult, BuildWorkspaceGraphOptions, CallerReference, ContextPackResult, ContextPackSpan, ConventionFact, DataOperationFact, DeadExportCandidate, DeadExportsResult, FileOntology, FileReference, FileRole, FreshnessProbeState, GraphEdge, GraphExtractionFailure, GraphExtractorInputWitness, GraphHealthResult, GraphNode, GraphUnresolvedImport, LocalizationBlock, OntologyFinding, PackageBoundarySummary, RepoGraph, RepoGraphDiagnostics, RouteFact, RouteMethod, SecurityFact, SymbolEdge, SymbolReference, } from './repo-graph/types';
29
- export { createEmptyGraph, GRAPH_SCHEMA_VERSION, isSchemaVersionAtLeast, normalizeGraphPath, REPO_GRAPH_FILENAME, updateGraphMetadata, } from './repo-graph/types';
29
+ export type { AskHit, AskOptions, AskResult, BlastRadiusResult, BuildWorkspaceGraphOptions, CallerReference, ContextPackResult, ContextPackSpan, ConventionFact, DataOperationFact, DeadExportCandidate, DeadExportsResult, FileOntology, FileReference, FileRole, FreshnessProbeState, GraphEdge, GraphExtractionFailure, GraphExtractorInputWitness, GraphHealthResult, GraphNode, GraphUnresolvedImport, LocalizationBlock, OntologyFinding, PackageBoundarySummary, RepoGraph, RepoGraphDiagnostics, RouteFact, RouteMethod, SecurityFact, SymbolEdge, SymbolReference, } from './repo-graph/types';
30
+ export { createEmptyGraph, GRAPH_SCHEMA_VERSION, inferPackageBoundary, isSchemaVersionAtLeast, normalizeGraphPath, REPO_GRAPH_FILENAME, updateGraphMetadata, } from './repo-graph/types';
30
31
  export { validateGraphEdge, validateGraphNode, validateWorkspace, } from './repo-graph/validation';
@@ -164,6 +164,14 @@ export declare const TOOL_METADATA: {
164
164
  description: string;
165
165
  agents: "architect"[];
166
166
  };
167
+ record_issue_publication: {
168
+ description: string;
169
+ agents: "architect"[];
170
+ };
171
+ record_issue_reproduction: {
172
+ description: string;
173
+ agents: "architect"[];
174
+ };
167
175
  run_pr_feedback_stage_a: {
168
176
  description: string;
169
177
  agents: "architect"[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-swarm",
3
- "version": "7.139.8",
3
+ "version": "7.140.1",
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",