iosm-cli 0.2.10 → 0.2.12

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 (75) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/README.md +12 -2
  3. package/dist/core/agent-session.d.ts +4 -0
  4. package/dist/core/agent-session.d.ts.map +1 -1
  5. package/dist/core/agent-session.js +123 -49
  6. package/dist/core/agent-session.js.map +1 -1
  7. package/dist/core/background-processes.d.ts +31 -0
  8. package/dist/core/background-processes.d.ts.map +1 -0
  9. package/dist/core/background-processes.js +241 -0
  10. package/dist/core/background-processes.js.map +1 -0
  11. package/dist/core/bash-executor.d.ts +6 -0
  12. package/dist/core/bash-executor.d.ts.map +1 -1
  13. package/dist/core/bash-executor.js.map +1 -1
  14. package/dist/core/extensions/types.d.ts +3 -0
  15. package/dist/core/extensions/types.d.ts.map +1 -1
  16. package/dist/core/extensions/types.js.map +1 -1
  17. package/dist/core/extensions/wrapper.d.ts +19 -2
  18. package/dist/core/extensions/wrapper.d.ts.map +1 -1
  19. package/dist/core/extensions/wrapper.js +23 -4
  20. package/dist/core/extensions/wrapper.js.map +1 -1
  21. package/dist/core/mcp/runtime.d.ts.map +1 -1
  22. package/dist/core/mcp/runtime.js +2 -0
  23. package/dist/core/mcp/runtime.js.map +1 -1
  24. package/dist/core/messages.d.ts +1 -1
  25. package/dist/core/messages.d.ts.map +1 -1
  26. package/dist/core/messages.js +2 -1
  27. package/dist/core/messages.js.map +1 -1
  28. package/dist/core/sdk.d.ts.map +1 -1
  29. package/dist/core/sdk.js +30 -2
  30. package/dist/core/sdk.js.map +1 -1
  31. package/dist/core/settings-manager.d.ts +17 -0
  32. package/dist/core/settings-manager.d.ts.map +1 -1
  33. package/dist/core/settings-manager.js +29 -0
  34. package/dist/core/settings-manager.js.map +1 -1
  35. package/dist/core/slash-commands.d.ts.map +1 -1
  36. package/dist/core/slash-commands.js +4 -0
  37. package/dist/core/slash-commands.js.map +1 -1
  38. package/dist/core/subagents.d.ts +10 -2
  39. package/dist/core/subagents.d.ts.map +1 -1
  40. package/dist/core/subagents.js +66 -17
  41. package/dist/core/subagents.js.map +1 -1
  42. package/dist/core/system-prompt.d.ts +25 -0
  43. package/dist/core/system-prompt.d.ts.map +1 -1
  44. package/dist/core/system-prompt.js +147 -14
  45. package/dist/core/system-prompt.js.map +1 -1
  46. package/dist/core/tools/bash.d.ts +5 -0
  47. package/dist/core/tools/bash.d.ts.map +1 -1
  48. package/dist/core/tools/bash.js +28 -2
  49. package/dist/core/tools/bash.js.map +1 -1
  50. package/dist/core/tools/index.d.ts +2 -1
  51. package/dist/core/tools/index.d.ts.map +1 -1
  52. package/dist/core/tools/index.js.map +1 -1
  53. package/dist/core/tools/permissions.d.ts +3 -0
  54. package/dist/core/tools/permissions.d.ts.map +1 -1
  55. package/dist/core/tools/permissions.js.map +1 -1
  56. package/dist/core/tools/task.d.ts +3 -1
  57. package/dist/core/tools/task.d.ts.map +1 -1
  58. package/dist/core/tools/task.js +48 -23
  59. package/dist/core/tools/task.js.map +1 -1
  60. package/dist/main.d.ts.map +1 -1
  61. package/dist/main.js +93 -1
  62. package/dist/main.js.map +1 -1
  63. package/dist/modes/interactive/interactive-mode.d.ts +5 -0
  64. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  65. package/dist/modes/interactive/interactive-mode.js +252 -24
  66. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  67. package/docs/cli-reference.md +6 -0
  68. package/docs/configuration.md +57 -1
  69. package/docs/development-and-testing.md +3 -2
  70. package/docs/extensions-packages-themes.md +27 -0
  71. package/docs/interactive-mode.md +4 -0
  72. package/docs/orchestration-and-subagents.md +16 -0
  73. package/docs/rpc-json-sdk.md +14 -0
  74. package/docs/sessions-traces-export.md +7 -0
  75. package/package.json +1 -1
@@ -399,6 +399,7 @@ export declare class InteractiveMode {
399
399
  private resolveModelsDevApi;
400
400
  private buildModelsDevProviderConfig;
401
401
  private hasRegisteredProviderModels;
402
+ private isProviderConfiguredInModelsJson;
402
403
  private hydrateProviderModelsFromModelsDev;
403
404
  private hydrateMissingProviderModelsForSavedAuth;
404
405
  private restoreSavedModelSelectionOnStartup;
@@ -545,6 +546,9 @@ export declare class InteractiveMode {
545
546
  private createAgentWithAi;
546
547
  private handleSubagentRunsSlashCommand;
547
548
  private handleSubagentResumeSlashCommand;
549
+ private formatBackgroundProcessOptionLabel;
550
+ private pickBackgroundProcessId;
551
+ private handleBackgroundProcessesSlashCommand;
548
552
  private handleTeamRunsSlashCommand;
549
553
  private handleTeamStatusSlashCommand;
550
554
  private showIosmAutomationSummaryCard;
@@ -585,6 +589,7 @@ export declare class InteractiveMode {
585
589
  private handleArminSaysHi;
586
590
  private handleDaxnuts;
587
591
  private checkDaxnutsEasterEgg;
592
+ private parseBashSubmission;
588
593
  private handleBashCommand;
589
594
  private handleCompactCommand;
590
595
  private executeCompaction;
@@ -1 +1 @@
1
- {"version":3,"file":"interactive-mode.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-mode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interactive-mode.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-mode.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,7 @@ import { createTeamRun, getTeamRun, listTeamRuns } from "../../core/agent-teams.
33
33
  import { buildSwarmPlanFromSingular, buildSwarmPlanFromTask, runSwarmScheduler, SwarmStateStore, } from "../../core/swarm/index.js";
34
34
  import { loadCustomSubagents, resolveCustomSubagentReference, } from "../../core/subagents.js";
35
35
  import { getSubagentRun, listSubagentRuns } from "../../core/subagent-runs.js";
36
+ import { getBackgroundProcess, listBackgroundProcesses, readBackgroundProcessLogTail, stopBackgroundProcess, } from "../../core/background-processes.js";
36
37
  import { SessionManager } from "../../core/session-manager.js";
37
38
  import { SettingsManager } from "../../core/settings-manager.js";
38
39
  import { BUILTIN_SLASH_COMMANDS } from "../../core/slash-commands.js";
@@ -897,6 +898,14 @@ function hasDependencyCycle(agents, dependencies) {
897
898
  }
898
899
  return false;
899
900
  }
901
+ function getKnownSubagentToolNamesFromSession(session) {
902
+ if (!session || typeof session !== "object")
903
+ return undefined;
904
+ const maybeSession = session;
905
+ if (typeof maybeSession.getAllTools !== "function")
906
+ return undefined;
907
+ return maybeSession.getAllTools().map((tool) => tool.name);
908
+ }
900
909
  export class InteractiveMode {
901
910
  // Convenience accessors
902
911
  get agent() {
@@ -1119,6 +1128,9 @@ export class InteractiveMode {
1119
1128
  }
1120
1129
  }
1121
1130
  async requestToolPermission(request) {
1131
+ const strictExtensionToolEnforcement = typeof this.settingsManager?.getPermissionExtensionToolEnforcement === "function"
1132
+ ? this.settingsManager.getPermissionExtensionToolEnforcement()
1133
+ : false;
1122
1134
  if (this.activeProfileName === "meta" &&
1123
1135
  !this.currentTurnSawTaskToolCall &&
1124
1136
  (request.toolName === "bash" || request.toolName === "edit" || request.toolName === "write")) {
@@ -1141,6 +1153,17 @@ export class InteractiveMode {
1141
1153
  return true;
1142
1154
  }
1143
1155
  }
1156
+ if (strictExtensionToolEnforcement && request.toolSource === "extension") {
1157
+ if (this.permissionMode === "auto") {
1158
+ if (request.requiredPermission === "read-only") {
1159
+ return true;
1160
+ }
1161
+ if (!request.requiredPermission) {
1162
+ this.showWarning(`Extension tool ${request.toolName} is missing requiredPermission metadata. Add an allow rule or switch to ask/yolo mode.`);
1163
+ return false;
1164
+ }
1165
+ }
1166
+ }
1144
1167
  if (this.permissionMode === "yolo") {
1145
1168
  return true;
1146
1169
  }
@@ -1160,7 +1183,9 @@ export class InteractiveMode {
1160
1183
  return true;
1161
1184
  if (this.sessionAllowedToolSignatures.has(signature))
1162
1185
  return true;
1163
- const label = `${request.toolName}: ${request.summary}`;
1186
+ const tierLabel = request.requiredPermission ? ` [${request.requiredPermission}]` : "";
1187
+ const sourceLabel = request.toolSource === "extension" ? " extension" : "";
1188
+ const label = `${request.toolName}${tierLabel}${sourceLabel}: ${request.summary}`;
1164
1189
  const choice = await this.showExtensionSelector("Permission required", [
1165
1190
  "Allow once",
1166
1191
  "Deny",
@@ -1739,7 +1764,11 @@ export class InteractiveMode {
1739
1764
  }
1740
1765
  const customAgentMentionItems = (() => {
1741
1766
  const cwd = this.sessionManager.getCwd();
1742
- const loaded = loadCustomSubagents({ cwd, agentDir: getAgentDir() });
1767
+ const loaded = loadCustomSubagents({
1768
+ cwd,
1769
+ agentDir: getAgentDir(),
1770
+ knownToolNames: getKnownSubagentToolNamesFromSession(this.session),
1771
+ });
1743
1772
  return loaded.agents.map((agent) => ({
1744
1773
  name: agent.name,
1745
1774
  value: `@${agent.name} `,
@@ -1815,6 +1844,9 @@ export class InteractiveMode {
1815
1844
  // Both are needed: fd for autocomplete, rg for grep tool and bash commands
1816
1845
  const [fdPath] = await Promise.all([ensureTool("fd"), ensureTool("rg")]);
1817
1846
  this.fdPath = fdPath;
1847
+ // Refresh provider model catalogs on startup for all authenticated providers.
1848
+ // Skip providers explicitly configured in models.json to preserve manual overrides.
1849
+ await this.hydrateMissingProviderModelsForSavedAuth({ forceRefresh: true });
1818
1850
  // Restore saved default model early so startup header/session are consistent after restart.
1819
1851
  await this.restoreSavedModelSelectionOnStartup();
1820
1852
  // Add header container as first child
@@ -3289,6 +3321,11 @@ export class InteractiveMode {
3289
3321
  await this.handleSubagentResumeSlashCommand(text);
3290
3322
  return;
3291
3323
  }
3324
+ if (text === "/bg" || text.startsWith("/bg ")) {
3325
+ this.editor.setText("");
3326
+ await this.handleBackgroundProcessesSlashCommand(text);
3327
+ return;
3328
+ }
3292
3329
  if (text === "/team-runs" || text.startsWith("/team-runs ")) {
3293
3330
  this.editor.setText("");
3294
3331
  this.handleTeamRunsSlashCommand(text);
@@ -3487,15 +3524,16 @@ export class InteractiveMode {
3487
3524
  // Handle bash command (! for normal, !! for excluded from context)
3488
3525
  if (text.startsWith("!")) {
3489
3526
  const isExcluded = text.startsWith("!!");
3490
- const command = isExcluded ? text.slice(2).trim() : text.slice(1).trim();
3527
+ const rawCommand = isExcluded ? text.slice(2).trim() : text.slice(1).trim();
3528
+ const { command, runInBackground } = this.parseBashSubmission(rawCommand);
3491
3529
  if (command) {
3492
- if (this.session.isBashRunning) {
3530
+ if (!runInBackground && this.session.isBashRunning) {
3493
3531
  this.showWarning("A bash command is already running. Press Esc to cancel it first.");
3494
3532
  this.editor.setText(text);
3495
3533
  return;
3496
3534
  }
3497
3535
  this.editor.addToHistory?.(text);
3498
- await this.handleBashCommand(command, isExcluded);
3536
+ await this.handleBashCommand(command, isExcluded, runInBackground);
3499
3537
  this.isBashMode = false;
3500
3538
  this.updateEditorBorderColor();
3501
3539
  return;
@@ -5919,7 +5957,7 @@ export class InteractiveMode {
5919
5957
  this.showModelSelector(searchTerm);
5920
5958
  }
5921
5959
  async showModelProviderSelector(preferredProvider) {
5922
- await this.hydrateMissingProviderModelsForSavedAuth();
5960
+ await this.hydrateMissingProviderModelsForSavedAuth({ forceRefresh: true });
5923
5961
  this.session.modelRegistry.refresh();
5924
5962
  let models = [];
5925
5963
  try {
@@ -6453,10 +6491,31 @@ export class InteractiveMode {
6453
6491
  return true;
6454
6492
  return registry.getAll().some((model) => model.provider === providerId);
6455
6493
  }
6456
- async hydrateProviderModelsFromModelsDev(providerId) {
6457
- if (this.hasRegisteredProviderModels(providerId))
6494
+ isProviderConfiguredInModelsJson(providerId) {
6495
+ const modelsPath = getModelsPath();
6496
+ if (!fs.existsSync(modelsPath))
6497
+ return false;
6498
+ try {
6499
+ const parsed = JSON.parse(fs.readFileSync(modelsPath, "utf-8"));
6500
+ const providers = parsed?.providers;
6501
+ if (!providers || typeof providers !== "object" || Array.isArray(providers))
6502
+ return false;
6503
+ return Object.prototype.hasOwnProperty.call(providers, providerId);
6504
+ }
6505
+ catch {
6506
+ return false;
6507
+ }
6508
+ }
6509
+ async hydrateProviderModelsFromModelsDev(providerId, options) {
6510
+ const forceRefresh = options?.forceRefresh === true;
6511
+ if (!forceRefresh && this.hasRegisteredProviderModels(providerId))
6458
6512
  return true;
6459
- await this.refreshModelsDevProviderCatalog();
6513
+ if (forceRefresh && this.isProviderConfiguredInModelsJson(providerId)) {
6514
+ return this.hasRegisteredProviderModels(providerId);
6515
+ }
6516
+ if (!options?.skipCatalogRefresh) {
6517
+ await this.refreshModelsDevProviderCatalog();
6518
+ }
6460
6519
  const providerInfo = this.modelsDevProviderCatalogById.get(providerId);
6461
6520
  if (!providerInfo)
6462
6521
  return false;
@@ -6471,14 +6530,17 @@ export class InteractiveMode {
6471
6530
  return false;
6472
6531
  }
6473
6532
  }
6474
- async hydrateMissingProviderModelsForSavedAuth() {
6533
+ async hydrateMissingProviderModelsForSavedAuth(options) {
6475
6534
  const savedProviders = this.session.modelRegistry.authStorage.list();
6476
6535
  if (savedProviders.length === 0)
6477
6536
  return;
6537
+ await this.refreshModelsDevProviderCatalog();
6538
+ const forceRefresh = options?.forceRefresh === true;
6478
6539
  for (const providerId of savedProviders) {
6479
- if (this.hasRegisteredProviderModels(providerId))
6480
- continue;
6481
- await this.hydrateProviderModelsFromModelsDev(providerId);
6540
+ await this.hydrateProviderModelsFromModelsDev(providerId, {
6541
+ forceRefresh,
6542
+ skipCatalogRefresh: true,
6543
+ });
6482
6544
  }
6483
6545
  }
6484
6546
  async restoreSavedModelSelectionOnStartup() {
@@ -6488,9 +6550,7 @@ export class InteractiveMode {
6488
6550
  const defaultModelId = this.settingsManager.getDefaultModel();
6489
6551
  if (!defaultProvider || !defaultModelId)
6490
6552
  return;
6491
- if (!this.hasRegisteredProviderModels(defaultProvider)) {
6492
- await this.hydrateProviderModelsFromModelsDev(defaultProvider);
6493
- }
6553
+ await this.hydrateProviderModelsFromModelsDev(defaultProvider, { forceRefresh: true });
6494
6554
  const model = this.session.modelRegistry.find(defaultProvider, defaultModelId);
6495
6555
  if (!model)
6496
6556
  return;
@@ -6569,9 +6629,9 @@ export class InteractiveMode {
6569
6629
  return;
6570
6630
  }
6571
6631
  this.session.modelRegistry.authStorage.set(providerId, { type: "api_key", key: apiKey });
6572
- let hasProviderModels = this.hasRegisteredProviderModels(providerId);
6632
+ let hasProviderModels = await this.hydrateProviderModelsFromModelsDev(providerId, { forceRefresh: true });
6573
6633
  if (!hasProviderModels) {
6574
- hasProviderModels = await this.hydrateProviderModelsFromModelsDev(providerId);
6634
+ hasProviderModels = this.hasRegisteredProviderModels(providerId);
6575
6635
  }
6576
6636
  await this.updateAvailableProviderCount();
6577
6637
  this.showStatus(`${providerName} API key saved to ${getAuthPath()}`);
@@ -9577,7 +9637,11 @@ export class InteractiveMode {
9577
9637
  }
9578
9638
  resolveMentionedAgent(text) {
9579
9639
  const cwd = this.sessionManager.getCwd();
9580
- const loaded = loadCustomSubagents({ cwd, agentDir: getAgentDir() });
9640
+ const loaded = loadCustomSubagents({
9641
+ cwd,
9642
+ agentDir: getAgentDir(),
9643
+ knownToolNames: getKnownSubagentToolNamesFromSession(this.session),
9644
+ });
9581
9645
  if (loaded.agents.length === 0)
9582
9646
  return undefined;
9583
9647
  const matches = text.matchAll(/(?:^|\s)@([^\s]+)/g);
@@ -9654,7 +9718,7 @@ export class InteractiveMode {
9654
9718
  });
9655
9719
  }
9656
9720
  async selectModelForImmediateRetry(preferredProvider) {
9657
- await this.hydrateMissingProviderModelsForSavedAuth();
9721
+ await this.hydrateMissingProviderModelsForSavedAuth({ forceRefresh: true });
9658
9722
  this.session.modelRegistry.refresh();
9659
9723
  let models = [];
9660
9724
  try {
@@ -9757,7 +9821,11 @@ export class InteractiveMode {
9757
9821
  const cleaned = userInput.replace(/(?:^|\s)@[^\s]+/g, " ").trim();
9758
9822
  if (this.isCapabilityQuery(cleaned)) {
9759
9823
  const cwd = this.sessionManager.getCwd();
9760
- const loaded = loadCustomSubagents({ cwd, agentDir: getAgentDir() });
9824
+ const loaded = loadCustomSubagents({
9825
+ cwd,
9826
+ agentDir: getAgentDir(),
9827
+ knownToolNames: getKnownSubagentToolNamesFromSession(this.session),
9828
+ });
9761
9829
  const agent = loaded.agents.find((item) => item.name === mentionedAgent);
9762
9830
  if (agent) {
9763
9831
  const capabilityPrompt = [
@@ -11901,7 +11969,11 @@ export class InteractiveMode {
11901
11969
  const args = this.parseSlashArgs(text).slice(1);
11902
11970
  const asJson = args.includes("--json");
11903
11971
  const cwd = this.sessionManager.getCwd();
11904
- const loaded = loadCustomSubagents({ cwd, agentDir: getAgentDir() });
11972
+ const loaded = loadCustomSubagents({
11973
+ cwd,
11974
+ agentDir: getAgentDir(),
11975
+ knownToolNames: getKnownSubagentToolNamesFromSession(this.session),
11976
+ });
11905
11977
  const profiles = getProfileNames().map((name) => getAgentProfile(name));
11906
11978
  if (asJson) {
11907
11979
  this.showCommandJsonBlock("Agents", {
@@ -12389,6 +12461,137 @@ export class InteractiveMode {
12389
12461
  source: "interactive",
12390
12462
  });
12391
12463
  }
12464
+ formatBackgroundProcessOptionLabel(record, index) {
12465
+ const status = `status=${record.status}`;
12466
+ const pid = `pid=${record.pid}`;
12467
+ const created = record.createdAt ? `created=${record.createdAt}` : "";
12468
+ const commandPreview = record.command.length > 64 ? `${record.command.slice(0, 61)}...` : record.command;
12469
+ return `${index + 1}. ${record.id} · ${status} · ${pid}${created ? ` · ${created}` : ""} · ${commandPreview}`;
12470
+ }
12471
+ async pickBackgroundProcessId(cwd, actionLabel) {
12472
+ const records = listBackgroundProcesses(cwd, 30);
12473
+ if (records.length === 0) {
12474
+ this.showStatus("No background processes found.");
12475
+ return undefined;
12476
+ }
12477
+ const options = records.map((record, index) => this.formatBackgroundProcessOptionLabel(record, index));
12478
+ const selected = await this.showExtensionSelector(`/bg ${actionLabel}: select process`, options);
12479
+ if (!selected) {
12480
+ this.showStatus(`/bg ${actionLabel} cancelled.`);
12481
+ return undefined;
12482
+ }
12483
+ const selectedIndex = options.indexOf(selected);
12484
+ return selectedIndex >= 0 ? records[selectedIndex]?.id : undefined;
12485
+ }
12486
+ async handleBackgroundProcessesSlashCommand(text) {
12487
+ const args = this.parseSlashArgs(text).slice(1);
12488
+ const cwd = this.sessionManager.getCwd();
12489
+ const firstArg = (args[0] ?? "").toLowerCase();
12490
+ const subcommand = firstArg || "list";
12491
+ if (subcommand === "list" || /^\d+$/.test(subcommand)) {
12492
+ const limitRaw = subcommand === "list" ? args[1] : subcommand;
12493
+ const limit = limitRaw ? Number.parseInt(limitRaw, 10) : 20;
12494
+ if (!Number.isInteger(limit) || limit < 1 || limit > 200) {
12495
+ this.showWarning("Usage: /bg [list [limit: 1..200]] | /bg status [id] | /bg logs [id] [lines] | /bg stop [id]");
12496
+ return;
12497
+ }
12498
+ const records = listBackgroundProcesses(cwd, limit);
12499
+ if (records.length === 0) {
12500
+ this.showStatus("No background processes found.");
12501
+ return;
12502
+ }
12503
+ const lines = records.map((record, index) => {
12504
+ const status = `status=${record.status}`;
12505
+ const pid = `pid=${record.pid}`;
12506
+ const created = record.createdAt ? ` · ${record.createdAt}` : "";
12507
+ const finished = record.finishedAt ? ` · finished=${record.finishedAt}` : "";
12508
+ const exitCode = typeof record.exitCode === "number" ? ` · exit=${record.exitCode}` : "";
12509
+ return `${index + 1}. ${record.id} · ${status} · ${pid}${created}${finished}${exitCode}\n ${record.command}`;
12510
+ });
12511
+ this.showCommandTextBlock("Background Processes", lines.join("\n"));
12512
+ return;
12513
+ }
12514
+ if (subcommand === "status") {
12515
+ let id = args[1];
12516
+ if (!id) {
12517
+ id = await this.pickBackgroundProcessId(cwd, "status");
12518
+ }
12519
+ if (!id)
12520
+ return;
12521
+ const record = getBackgroundProcess(cwd, id);
12522
+ if (!record) {
12523
+ this.showWarning(`Background process not found: ${id}`);
12524
+ return;
12525
+ }
12526
+ const lines = [
12527
+ `ID: ${record.id}`,
12528
+ `Status: ${record.status}`,
12529
+ `PID: ${record.pid}`,
12530
+ `Created: ${record.createdAt}`,
12531
+ `Started: ${record.startedAt}`,
12532
+ `Finished: ${record.finishedAt ?? "-"}`,
12533
+ `Exit code: ${typeof record.exitCode === "number" ? record.exitCode : "-"}`,
12534
+ `Cwd: ${record.cwd}`,
12535
+ `Source: ${record.source ?? "-"}`,
12536
+ `Requested stop: ${record.requestedStopAt ?? "-"}`,
12537
+ `Status file: ${record.metaPath}`,
12538
+ `Log file: ${record.logPath}`,
12539
+ "",
12540
+ "Command:",
12541
+ record.command,
12542
+ ];
12543
+ this.showCommandTextBlock("Background Status", lines.join("\n"));
12544
+ return;
12545
+ }
12546
+ if (subcommand === "logs") {
12547
+ let id = args[1];
12548
+ if (!id) {
12549
+ id = await this.pickBackgroundProcessId(cwd, "logs");
12550
+ }
12551
+ if (!id)
12552
+ return;
12553
+ const linesRaw = args[2];
12554
+ const tailLines = linesRaw ? Number.parseInt(linesRaw, 10) : 120;
12555
+ if (!Number.isInteger(tailLines) || tailLines < 1 || tailLines > 1000) {
12556
+ this.showWarning("Usage: /bg logs [id] [lines: 1..1000]");
12557
+ return;
12558
+ }
12559
+ const record = getBackgroundProcess(cwd, id);
12560
+ if (!record) {
12561
+ this.showWarning(`Background process not found: ${id}`);
12562
+ return;
12563
+ }
12564
+ const tail = readBackgroundProcessLogTail(cwd, id, tailLines);
12565
+ if (tail === undefined) {
12566
+ this.showWarning(`Background process not found: ${id}`);
12567
+ return;
12568
+ }
12569
+ const body = tail.trim().length > 0 ? tail : "(no output yet)";
12570
+ this.showCommandTextBlock("Background Logs", [`ID: ${record.id} · status=${record.status} · tail=${tailLines} lines`, "", body].join("\n"));
12571
+ return;
12572
+ }
12573
+ if (subcommand === "stop" || subcommand === "kill" || subcommand === "cancel") {
12574
+ let id = args[1];
12575
+ if (!id) {
12576
+ id = await this.pickBackgroundProcessId(cwd, "stop");
12577
+ }
12578
+ if (!id)
12579
+ return;
12580
+ const record = stopBackgroundProcess(cwd, id);
12581
+ if (!record) {
12582
+ this.showWarning(`Background process not found: ${id}`);
12583
+ return;
12584
+ }
12585
+ if (record.status === "running") {
12586
+ this.showWarning(`Stop signal sent to ${record.id}, but process still appears running.`);
12587
+ }
12588
+ else {
12589
+ this.showStatus(`Background process ${record.id} stopped (${record.status}).`);
12590
+ }
12591
+ return;
12592
+ }
12593
+ this.showWarning("Usage: /bg [list [limit: 1..200]] | /bg status [id] | /bg logs [id] [lines] | /bg stop [id]");
12594
+ }
12392
12595
  handleTeamRunsSlashCommand(text) {
12393
12596
  const args = this.parseSlashArgs(text).slice(1);
12394
12597
  const limitRaw = args[0];
@@ -13870,7 +14073,21 @@ The agent will automatically receive IOSM context on every turn.`;
13870
14073
  this.handleDaxnuts();
13871
14074
  }
13872
14075
  }
13873
- async handleBashCommand(command, excludeFromContext = false) {
14076
+ parseBashSubmission(command) {
14077
+ const trimmed = command.trim();
14078
+ if (!trimmed)
14079
+ return { command: "", runInBackground: false };
14080
+ const hasTrailingBackgroundFlag = trimmed.endsWith("&") && !trimmed.endsWith("&&") && !trimmed.endsWith("|&") && !trimmed.endsWith("\\&");
14081
+ if (!hasTrailingBackgroundFlag) {
14082
+ return { command: trimmed, runInBackground: false };
14083
+ }
14084
+ const withoutFlag = trimmed.slice(0, -1).trim();
14085
+ return {
14086
+ command: withoutFlag,
14087
+ runInBackground: withoutFlag.length > 0,
14088
+ };
14089
+ }
14090
+ async handleBashCommand(command, excludeFromContext = false, runInBackground = false) {
13874
14091
  if (isReadOnlyProfileName(this.activeProfileName)) {
13875
14092
  this.showWarning(`Bash is disabled in ${this.activeProfileName} profile. Switch to full/meta/iosm (Shift+Tab).`);
13876
14093
  return;
@@ -13885,6 +14102,10 @@ The agent will automatically receive IOSM context on every turn.`;
13885
14102
  cwd: process.cwd(),
13886
14103
  })
13887
14104
  : undefined;
14105
+ const effectiveRunInBackground = runInBackground && !eventResult?.operations;
14106
+ if (runInBackground && eventResult?.operations) {
14107
+ this.showWarning("Background bash is not supported with extension custom execution. Running in foreground.");
14108
+ }
13888
14109
  // If extension returned a full result, use it directly
13889
14110
  if (eventResult?.result) {
13890
14111
  const result = eventResult.result;
@@ -13927,8 +14148,15 @@ The agent will automatically receive IOSM context on every turn.`;
13927
14148
  this.bashComponent.appendOutput(chunk);
13928
14149
  this.ui.requestRender();
13929
14150
  }
13930
- }, { excludeFromContext, operations: eventResult?.operations });
14151
+ }, {
14152
+ excludeFromContext,
14153
+ operations: eventResult?.operations,
14154
+ runInBackground: effectiveRunInBackground,
14155
+ });
13931
14156
  if (this.bashComponent) {
14157
+ if (result.backgroundTaskId && result.output) {
14158
+ this.bashComponent.appendOutput(result.output);
14159
+ }
13932
14160
  this.bashComponent.setComplete(result.exitCode, result.cancelled, result.truncated ? { truncated: true, content: result.output } : undefined, result.fullOutputPath);
13933
14161
  }
13934
14162
  }