opencode-swarm 7.88.1 → 7.88.2

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.
package/README.md CHANGED
@@ -1106,7 +1106,7 @@ Control how tool outputs are summarized for LLM context.
1106
1106
  | `/swarm pr-feedback [<pr-url\|owner/repo#N\|N>] [instructions...]` | Ingest and close known PR feedback (review comments, CI failures, conflicts) without a fresh review |
1107
1107
  | `/swarm pr subscribe <pr-url\|owner/repo#N\|N>` | Subscribe current session to PR monitoring (session-scoped); requires `pr_monitor.enabled: true` |
1108
1108
  | `/swarm pr unsubscribe <pr-url\|owner/repo#N\|N>` | Remove session's subscription to a PR |
1109
- | `/swarm pr status` | List active PR subscriptions for current session with relative timestamps |
1109
+ | `/swarm pr status` | List active PR subscriptions for current session with relative timestamps (the `bunx opencode-swarm run pr status` CLI has no session context, so it lists subscriptions across all sessions) |
1110
1110
  | `/swarm deep-dive <scope> [--profile <name>] [--max-explorers <n>]` | Read-only codebase audit with parallel explorers, dual reviewers, and critic challenge |
1111
1111
  | `/swarm design-docs <description> [--out <dir>] [--lang <name>] [--update]` | Generate or sync language-agnostic design docs (requires `design_docs.enabled`) |
1112
1112
  | `/swarm dark-matter` | Detect hidden file couplings from co-change history |
@@ -1,8 +1,8 @@
1
1
  // @bun
2
2
  import {
3
3
  handleGuardrailExplain
4
- } from "./index-tt5aehrb.js";
5
- import"./index-4td9ef53.js";
4
+ } from "./index-09smngfp.js";
5
+ import"./index-y72bw1wb.js";
6
6
  import"./index-g00qm2gf.js";
7
7
  import"./index-yhsmmv2z.js";
8
8
  import"./index-32axfg6h.js";
@@ -12,7 +12,7 @@ import {
12
12
  detectPosixWrites,
13
13
  detectWindowsWrites,
14
14
  resolveWriteTargets
15
- } from "./index-4td9ef53.js";
15
+ } from "./index-y72bw1wb.js";
16
16
  import {
17
17
  checkFileAuthority,
18
18
  classifyFile,
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  handleGuardrailExplain
4
- } from "./index-tt5aehrb.js";
4
+ } from "./index-09smngfp.js";
5
5
  import {
6
6
  handleGuardrailLog
7
7
  } from "./index-vjsr9bqt.js";
@@ -76,7 +76,7 @@ import {
76
76
  handleWriteRetroCommand,
77
77
  normalizeSwarmCommandInput,
78
78
  resolveCommand
79
- } from "./index-4td9ef53.js";
79
+ } from "./index-y72bw1wb.js";
80
80
  import"./index-g00qm2gf.js";
81
81
  import"./index-yhsmmv2z.js";
82
82
  import"./index-32axfg6h.js";
@@ -899,7 +899,7 @@ var init_executor = __esm(() => {
899
899
  // package.json
900
900
  var package_default = {
901
901
  name: "opencode-swarm",
902
- version: "7.88.1",
902
+ version: "7.88.2",
903
903
  description: "Architect-centric agentic swarm plugin for OpenCode - hub-and-spoke orchestration with SME consultation, code generation, and QA review",
904
904
  main: "dist/index.js",
905
905
  types: "dist/index.d.ts",
@@ -22294,31 +22294,35 @@ var _internals34 = {
22294
22294
  formatRelativeTime,
22295
22295
  listActive
22296
22296
  };
22297
- async function handlePrMonitorStatusCommand(directory, _args, sessionID) {
22297
+ async function handlePrMonitorStatusCommand(directory, _args, sessionID, source) {
22298
22298
  const allActive = await _internals34.listActive(directory);
22299
- const sessionSubs = allActive.filter((record) => record.sessionID === sessionID);
22300
- if (sessionSubs.length === 0) {
22301
- return "No active PR subscriptions for this session.";
22299
+ const allSessions = source === "cli";
22300
+ const subs = allSessions ? allActive : allActive.filter((record) => record.sessionID === sessionID);
22301
+ if (subs.length === 0) {
22302
+ return allSessions ? "No active PR subscriptions." : "No active PR subscriptions for this session.";
22302
22303
  }
22303
22304
  const lines = [];
22304
- lines.push(`PR Monitor Status \u2014 Session: ${sessionID}`);
22305
+ lines.push(allSessions ? "PR Monitor Status \u2014 all sessions" : `PR Monitor Status \u2014 Session: ${sessionID}`);
22305
22306
  lines.push("");
22306
22307
  const totalActive = allActive.length;
22307
- lines.push(`Active subscriptions (${sessionSubs.length}):`);
22308
- for (let i = 0;i < sessionSubs.length; i++) {
22309
- const sub = sessionSubs[i];
22308
+ lines.push(`Active subscriptions (${subs.length}):`);
22309
+ for (let i = 0;i < subs.length; i++) {
22310
+ const sub = subs[i];
22310
22311
  const index = i + 1;
22311
22312
  lines.push(` ${index}. ${sub.repoFullName}#${sub.prNumber}`);
22312
22313
  lines.push(` URL: ${sub.prUrl}`);
22314
+ if (allSessions) {
22315
+ lines.push(` Session: ${sub.sessionID}`);
22316
+ }
22313
22317
  lines.push(` Last checked: ${formatRelativeTime(sub.lastCheckedAt)}`);
22314
22318
  lines.push(` Watching: ${sub.isWatching ? "yes" : "no"}`);
22315
22319
  lines.push(` Errors: ${sub.errorCount}`);
22316
- if (i < sessionSubs.length - 1) {
22320
+ if (i < subs.length - 1) {
22317
22321
  lines.push("");
22318
22322
  }
22319
22323
  }
22320
22324
  lines.push("");
22321
- if (totalActive !== sessionSubs.length) {
22325
+ if (!allSessions && totalActive !== subs.length) {
22322
22326
  lines.push(`Total active across all sessions: ${totalActive}`);
22323
22327
  }
22324
22328
  return lines.join(`
@@ -22415,6 +22419,15 @@ async function handlePrSubscribeCommand(directory, args, sessionID) {
22415
22419
  "Expected: full GitHub URL, owner/repo#N shorthand,",
22416
22420
  "or a bare PR number (resolved against origin)."
22417
22421
  ].join(`
22422
+ `);
22423
+ }
22424
+ if (!sessionID || sessionID.trim() === "") {
22425
+ return [
22426
+ "Error: Cannot subscribe \u2014 no active session.",
22427
+ "",
22428
+ "PR subscriptions are session-scoped and require a live OpenCode session.",
22429
+ "Subscribe from inside OpenCode; the bunx CLI has no session context."
22430
+ ].join(`
22418
22431
  `);
22419
22432
  }
22420
22433
  const repoFullName = `${prInfo.owner}/${prInfo.repo}`;
@@ -29921,7 +29934,7 @@ function buildDetailedHelp(commandName, entry) {
29921
29934
  async function handleHelpCommand(ctx) {
29922
29935
  const targetCommand = ctx.args.join(" ");
29923
29936
  if (!targetCommand) {
29924
- const { buildHelpText } = await import("./index-sr7g2msm.js");
29937
+ const { buildHelpText } = await import("./index-tjr1m8wf.js");
29925
29938
  return buildHelpText();
29926
29939
  }
29927
29940
  const tokens = targetCommand.split(/\s+/);
@@ -29930,7 +29943,7 @@ async function handleHelpCommand(ctx) {
29930
29943
  return _internals45.buildDetailedHelp(resolved.key, resolved.entry);
29931
29944
  }
29932
29945
  const similar = _internals45.findSimilarCommands(targetCommand);
29933
- const { buildHelpText: fullHelp } = await import("./index-sr7g2msm.js");
29946
+ const { buildHelpText: fullHelp } = await import("./index-tjr1m8wf.js");
29934
29947
  if (similar.length > 0) {
29935
29948
  return `Command '/swarm ${targetCommand}' not found.
29936
29949
 
@@ -30063,7 +30076,7 @@ var COMMAND_REGISTRY = {
30063
30076
  },
30064
30077
  "guardrail explain": {
30065
30078
  handler: async (ctx) => {
30066
- const { handleGuardrailExplain } = await import("./guardrail-explain-995zavv8.js");
30079
+ const { handleGuardrailExplain } = await import("./guardrail-explain-qd243wrm.js");
30067
30080
  return handleGuardrailExplain(ctx.directory, ctx.args);
30068
30081
  },
30069
30082
  description: "Dry-run: show what the guardrails would do to a command or write target (executes nothing)",
@@ -30436,7 +30449,7 @@ Subcommands:
30436
30449
  deprecated: true
30437
30450
  },
30438
30451
  "pr status": {
30439
- handler: (ctx) => handlePrMonitorStatusCommand(ctx.directory, ctx.args, ctx.sessionID),
30452
+ handler: (ctx) => handlePrMonitorStatusCommand(ctx.directory, ctx.args, ctx.sessionID, ctx.source),
30440
30453
  description: "Show PR monitor subscription status for the current session",
30441
30454
  args: "",
30442
30455
  details: "Displays all active PR subscriptions for the current session. Shows PR URL, last checked time, watching status, and error count per subscription. Also shows total active subscriptions across all sessions.",
@@ -30445,7 +30458,7 @@ Subcommands:
30445
30458
  toolNoArgs: true
30446
30459
  },
30447
30460
  "pr-status": {
30448
- handler: (ctx) => handlePrMonitorStatusCommand(ctx.directory, ctx.args, ctx.sessionID),
30461
+ handler: (ctx) => handlePrMonitorStatusCommand(ctx.directory, ctx.args, ctx.sessionID, ctx.source),
30449
30462
  description: "Show PR monitor subscription status for the current session",
30450
30463
  aliasOf: "pr status",
30451
30464
  deprecated: true
package/dist/cli/index.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  getPluginLockFilePaths,
8
8
  package_default,
9
9
  resolveCommand
10
- } from "./index-4td9ef53.js";
10
+ } from "./index-y72bw1wb.js";
11
11
  import"./index-g00qm2gf.js";
12
12
  import"./index-yhsmmv2z.js";
13
13
  import"./index-32axfg6h.js";
@@ -32,5 +32,5 @@ export declare const _internals: {
32
32
  * time, watching status, and error count. Appends a cross-session
33
33
  * total at the end.
34
34
  */
35
- export declare function handlePrMonitorStatusCommand(directory: string, _args: string[], sessionID: string): Promise<string>;
35
+ export declare function handlePrMonitorStatusCommand(directory: string, _args: string[], sessionID: string, source?: 'cli' | 'chat'): Promise<string>;
36
36
  export {};
package/dist/index.js CHANGED
@@ -69,7 +69,7 @@ var package_default;
69
69
  var init_package = __esm(() => {
70
70
  package_default = {
71
71
  name: "opencode-swarm",
72
- version: "7.88.1",
72
+ version: "7.88.2",
73
73
  description: "Architect-centric agentic swarm plugin for OpenCode - hub-and-spoke orchestration with SME consultation, code generation, and QA review",
74
74
  main: "dist/index.js",
75
75
  types: "dist/index.d.ts",
@@ -87852,31 +87852,35 @@ function formatRelativeTime(epochMs) {
87852
87852
  const diffDays = Math.floor(diffHours / 24);
87853
87853
  return `${diffDays} day${diffDays === 1 ? "" : "s"} ago`;
87854
87854
  }
87855
- async function handlePrMonitorStatusCommand(directory, _args, sessionID) {
87855
+ async function handlePrMonitorStatusCommand(directory, _args, sessionID, source) {
87856
87856
  const allActive = await _internals55.listActive(directory);
87857
- const sessionSubs = allActive.filter((record3) => record3.sessionID === sessionID);
87858
- if (sessionSubs.length === 0) {
87859
- return "No active PR subscriptions for this session.";
87857
+ const allSessions = source === "cli";
87858
+ const subs = allSessions ? allActive : allActive.filter((record3) => record3.sessionID === sessionID);
87859
+ if (subs.length === 0) {
87860
+ return allSessions ? "No active PR subscriptions." : "No active PR subscriptions for this session.";
87860
87861
  }
87861
87862
  const lines = [];
87862
- lines.push(`PR Monitor Status — Session: ${sessionID}`);
87863
+ lines.push(allSessions ? "PR Monitor Status — all sessions" : `PR Monitor Status — Session: ${sessionID}`);
87863
87864
  lines.push("");
87864
87865
  const totalActive = allActive.length;
87865
- lines.push(`Active subscriptions (${sessionSubs.length}):`);
87866
- for (let i2 = 0;i2 < sessionSubs.length; i2++) {
87867
- const sub = sessionSubs[i2];
87866
+ lines.push(`Active subscriptions (${subs.length}):`);
87867
+ for (let i2 = 0;i2 < subs.length; i2++) {
87868
+ const sub = subs[i2];
87868
87869
  const index = i2 + 1;
87869
87870
  lines.push(` ${index}. ${sub.repoFullName}#${sub.prNumber}`);
87870
87871
  lines.push(` URL: ${sub.prUrl}`);
87872
+ if (allSessions) {
87873
+ lines.push(` Session: ${sub.sessionID}`);
87874
+ }
87871
87875
  lines.push(` Last checked: ${formatRelativeTime(sub.lastCheckedAt)}`);
87872
87876
  lines.push(` Watching: ${sub.isWatching ? "yes" : "no"}`);
87873
87877
  lines.push(` Errors: ${sub.errorCount}`);
87874
- if (i2 < sessionSubs.length - 1) {
87878
+ if (i2 < subs.length - 1) {
87875
87879
  lines.push("");
87876
87880
  }
87877
87881
  }
87878
87882
  lines.push("");
87879
- if (totalActive !== sessionSubs.length) {
87883
+ if (!allSessions && totalActive !== subs.length) {
87880
87884
  lines.push(`Total active across all sessions: ${totalActive}`);
87881
87885
  }
87882
87886
  return lines.join(`
@@ -87985,6 +87989,15 @@ async function handlePrSubscribeCommand(directory, args2, sessionID) {
87985
87989
  "Expected: full GitHub URL, owner/repo#N shorthand,",
87986
87990
  "or a bare PR number (resolved against origin)."
87987
87991
  ].join(`
87992
+ `);
87993
+ }
87994
+ if (!sessionID || sessionID.trim() === "") {
87995
+ return [
87996
+ "Error: Cannot subscribe — no active session.",
87997
+ "",
87998
+ "PR subscriptions are session-scoped and require a live OpenCode session.",
87999
+ "Subscribe from inside OpenCode; the bunx CLI has no session context."
88000
+ ].join(`
87988
88001
  `);
87989
88002
  }
87990
88003
  const repoFullName = `${prInfo.owner}/${prInfo.repo}`;
@@ -99394,7 +99407,7 @@ Subcommands:
99394
99407
  deprecated: true
99395
99408
  },
99396
99409
  "pr status": {
99397
- handler: (ctx) => handlePrMonitorStatusCommand(ctx.directory, ctx.args, ctx.sessionID),
99410
+ handler: (ctx) => handlePrMonitorStatusCommand(ctx.directory, ctx.args, ctx.sessionID, ctx.source),
99398
99411
  description: "Show PR monitor subscription status for the current session",
99399
99412
  args: "",
99400
99413
  details: "Displays all active PR subscriptions for the current session. Shows PR URL, last checked time, watching status, and error count per subscription. Also shows total active subscriptions across all sessions.",
@@ -99403,7 +99416,7 @@ Subcommands:
99403
99416
  toolNoArgs: true
99404
99417
  },
99405
99418
  "pr-status": {
99406
- handler: (ctx) => handlePrMonitorStatusCommand(ctx.directory, ctx.args, ctx.sessionID),
99419
+ handler: (ctx) => handlePrMonitorStatusCommand(ctx.directory, ctx.args, ctx.sessionID, ctx.source),
99407
99420
  description: "Show PR monitor subscription status for the current session",
99408
99421
  aliasOf: "pr status",
99409
99422
  deprecated: true
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-swarm",
3
- "version": "7.88.1",
3
+ "version": "7.88.2",
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",