iosm-cli 0.2.9 → 0.2.11

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 (79) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/README.md +11 -2
  3. package/dist/core/agent-session.d.ts +9 -0
  4. package/dist/core/agent-session.d.ts.map +1 -1
  5. package/dist/core/agent-session.js +425 -50
  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 +8 -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 +146 -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/core/ultrathink.d.ts +122 -0
  61. package/dist/core/ultrathink.d.ts.map +1 -0
  62. package/dist/core/ultrathink.js +621 -0
  63. package/dist/core/ultrathink.js.map +1 -0
  64. package/dist/main.d.ts.map +1 -1
  65. package/dist/main.js +93 -1
  66. package/dist/main.js.map +1 -1
  67. package/dist/modes/interactive/interactive-mode.d.ts +6 -0
  68. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  69. package/dist/modes/interactive/interactive-mode.js +281 -24
  70. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  71. package/docs/cli-reference.md +10 -0
  72. package/docs/configuration.md +57 -1
  73. package/docs/development-and-testing.md +3 -2
  74. package/docs/extensions-packages-themes.md +27 -0
  75. package/docs/interactive-mode.md +7 -0
  76. package/docs/orchestration-and-subagents.md +16 -0
  77. package/docs/rpc-json-sdk.md +14 -0
  78. package/docs/sessions-traces-export.md +7 -0
  79. package/package.json +1 -1
@@ -144,6 +144,7 @@ export declare class InteractiveMode {
144
144
  private getContractArgumentCompletions;
145
145
  private getSingularArgumentCompletions;
146
146
  private getSwarmArgumentCompletions;
147
+ private getUltrathinkArgumentCompletions;
147
148
  private setupAutocomplete;
148
149
  init(): Promise<void>;
149
150
  private buildStartupHeaderContent;
@@ -398,6 +399,7 @@ export declare class InteractiveMode {
398
399
  private resolveModelsDevApi;
399
400
  private buildModelsDevProviderConfig;
400
401
  private hasRegisteredProviderModels;
402
+ private isProviderConfiguredInModelsJson;
401
403
  private hydrateProviderModelsFromModelsDev;
402
404
  private hydrateMissingProviderModelsForSavedAuth;
403
405
  private restoreSavedModelSelectionOnStartup;
@@ -544,6 +546,9 @@ export declare class InteractiveMode {
544
546
  private createAgentWithAi;
545
547
  private handleSubagentRunsSlashCommand;
546
548
  private handleSubagentResumeSlashCommand;
549
+ private formatBackgroundProcessOptionLabel;
550
+ private pickBackgroundProcessId;
551
+ private handleBackgroundProcessesSlashCommand;
547
552
  private handleTeamRunsSlashCommand;
548
553
  private handleTeamStatusSlashCommand;
549
554
  private showIosmAutomationSummaryCard;
@@ -584,6 +589,7 @@ export declare class InteractiveMode {
584
589
  private handleArminSaysHi;
585
590
  private handleDaxnuts;
586
591
  private checkDaxnutsEasterEgg;
592
+ private parseBashSubmission;
587
593
  private handleBashCommand;
588
594
  private handleCompactCommand;
589
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",
@@ -1629,6 +1654,31 @@ export class InteractiveMode {
1629
1654
  }
1630
1655
  return null;
1631
1656
  }
1657
+ getUltrathinkArgumentCompletions(prefix) {
1658
+ const hasTrailingSpace = /\\s$/.test(prefix);
1659
+ const tokens = this.parseSlashArgs(prefix);
1660
+ const queryToken = hasTrailingSpace ? "" : (tokens[tokens.length - 1] ?? "");
1661
+ if (tokens.length === 0) {
1662
+ return [
1663
+ { value: "-q", label: "-q", description: `Iterations (default 5, max 12)` },
1664
+ { value: "--iterations", label: "--iterations", description: "Same as -q" },
1665
+ ];
1666
+ }
1667
+ const previousToken = tokens[tokens.length - 2];
1668
+ if (previousToken === "-q" || previousToken === "--iterations") {
1669
+ const values = ["3", "5", "7", "10", "12"];
1670
+ return values
1671
+ .filter((value) => value.startsWith(queryToken))
1672
+ .map((value) => ({ value, label: value, description: "iteration count" }));
1673
+ }
1674
+ if (queryToken.startsWith("-")) {
1675
+ return [
1676
+ { value: "-q", label: "-q", description: `Iterations (default 5, max 12)` },
1677
+ { value: "--iterations", label: "--iterations", description: "Same as -q" },
1678
+ ].filter((item) => item.value.startsWith(queryToken));
1679
+ }
1680
+ return null;
1681
+ }
1632
1682
  setupAutocomplete(fdPath) {
1633
1683
  // Define commands for autocomplete
1634
1684
  const builtinCommands = BUILTIN_SLASH_COMMANDS.filter((command) => this.activeProfileName === "iosm" || !IOSM_PROFILE_ONLY_COMMANDS.has(command.name));
@@ -1686,6 +1736,10 @@ export class InteractiveMode {
1686
1736
  if (swarmCommand) {
1687
1737
  swarmCommand.getArgumentCompletions = (prefix) => this.getSwarmArgumentCompletions(prefix);
1688
1738
  }
1739
+ const ultrathinkCommand = slashCommands.find((command) => command.name === "ultrathink");
1740
+ if (ultrathinkCommand) {
1741
+ ultrathinkCommand.getArgumentCompletions = (prefix) => this.getUltrathinkArgumentCompletions(prefix);
1742
+ }
1689
1743
  // Convert prompt templates to SlashCommand format for autocomplete
1690
1744
  const templateCommands = this.session.promptTemplates.map((cmd) => ({
1691
1745
  name: cmd.name,
@@ -1710,7 +1764,11 @@ export class InteractiveMode {
1710
1764
  }
1711
1765
  const customAgentMentionItems = (() => {
1712
1766
  const cwd = this.sessionManager.getCwd();
1713
- const loaded = loadCustomSubagents({ cwd, agentDir: getAgentDir() });
1767
+ const loaded = loadCustomSubagents({
1768
+ cwd,
1769
+ agentDir: getAgentDir(),
1770
+ knownToolNames: getKnownSubagentToolNamesFromSession(this.session),
1771
+ });
1714
1772
  return loaded.agents.map((agent) => ({
1715
1773
  name: agent.name,
1716
1774
  value: `@${agent.name} `,
@@ -1786,6 +1844,9 @@ export class InteractiveMode {
1786
1844
  // Both are needed: fd for autocomplete, rg for grep tool and bash commands
1787
1845
  const [fdPath] = await Promise.all([ensureTool("fd"), ensureTool("rg")]);
1788
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 });
1789
1850
  // Restore saved default model early so startup header/session are consistent after restart.
1790
1851
  await this.restoreSavedModelSelectionOnStartup();
1791
1852
  // Add header container as first child
@@ -3260,6 +3321,11 @@ export class InteractiveMode {
3260
3321
  await this.handleSubagentResumeSlashCommand(text);
3261
3322
  return;
3262
3323
  }
3324
+ if (text === "/bg" || text.startsWith("/bg ")) {
3325
+ this.editor.setText("");
3326
+ await this.handleBackgroundProcessesSlashCommand(text);
3327
+ return;
3328
+ }
3263
3329
  if (text === "/team-runs" || text.startsWith("/team-runs ")) {
3264
3330
  this.editor.setText("");
3265
3331
  this.handleTeamRunsSlashCommand(text);
@@ -3458,15 +3524,16 @@ export class InteractiveMode {
3458
3524
  // Handle bash command (! for normal, !! for excluded from context)
3459
3525
  if (text.startsWith("!")) {
3460
3526
  const isExcluded = text.startsWith("!!");
3461
- 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);
3462
3529
  if (command) {
3463
- if (this.session.isBashRunning) {
3530
+ if (!runInBackground && this.session.isBashRunning) {
3464
3531
  this.showWarning("A bash command is already running. Press Esc to cancel it first.");
3465
3532
  this.editor.setText(text);
3466
3533
  return;
3467
3534
  }
3468
3535
  this.editor.addToHistory?.(text);
3469
- await this.handleBashCommand(command, isExcluded);
3536
+ await this.handleBashCommand(command, isExcluded, runInBackground);
3470
3537
  this.isBashMode = false;
3471
3538
  this.updateEditorBorderColor();
3472
3539
  return;
@@ -5890,7 +5957,7 @@ export class InteractiveMode {
5890
5957
  this.showModelSelector(searchTerm);
5891
5958
  }
5892
5959
  async showModelProviderSelector(preferredProvider) {
5893
- await this.hydrateMissingProviderModelsForSavedAuth();
5960
+ await this.hydrateMissingProviderModelsForSavedAuth({ forceRefresh: true });
5894
5961
  this.session.modelRegistry.refresh();
5895
5962
  let models = [];
5896
5963
  try {
@@ -6424,10 +6491,31 @@ export class InteractiveMode {
6424
6491
  return true;
6425
6492
  return registry.getAll().some((model) => model.provider === providerId);
6426
6493
  }
6427
- async hydrateProviderModelsFromModelsDev(providerId) {
6428
- 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))
6429
6512
  return true;
6430
- await this.refreshModelsDevProviderCatalog();
6513
+ if (forceRefresh && this.isProviderConfiguredInModelsJson(providerId)) {
6514
+ return this.hasRegisteredProviderModels(providerId);
6515
+ }
6516
+ if (!options?.skipCatalogRefresh) {
6517
+ await this.refreshModelsDevProviderCatalog();
6518
+ }
6431
6519
  const providerInfo = this.modelsDevProviderCatalogById.get(providerId);
6432
6520
  if (!providerInfo)
6433
6521
  return false;
@@ -6442,14 +6530,17 @@ export class InteractiveMode {
6442
6530
  return false;
6443
6531
  }
6444
6532
  }
6445
- async hydrateMissingProviderModelsForSavedAuth() {
6533
+ async hydrateMissingProviderModelsForSavedAuth(options) {
6446
6534
  const savedProviders = this.session.modelRegistry.authStorage.list();
6447
6535
  if (savedProviders.length === 0)
6448
6536
  return;
6537
+ await this.refreshModelsDevProviderCatalog();
6538
+ const forceRefresh = options?.forceRefresh === true;
6449
6539
  for (const providerId of savedProviders) {
6450
- if (this.hasRegisteredProviderModels(providerId))
6451
- continue;
6452
- await this.hydrateProviderModelsFromModelsDev(providerId);
6540
+ await this.hydrateProviderModelsFromModelsDev(providerId, {
6541
+ forceRefresh,
6542
+ skipCatalogRefresh: true,
6543
+ });
6453
6544
  }
6454
6545
  }
6455
6546
  async restoreSavedModelSelectionOnStartup() {
@@ -6459,9 +6550,7 @@ export class InteractiveMode {
6459
6550
  const defaultModelId = this.settingsManager.getDefaultModel();
6460
6551
  if (!defaultProvider || !defaultModelId)
6461
6552
  return;
6462
- if (!this.hasRegisteredProviderModels(defaultProvider)) {
6463
- await this.hydrateProviderModelsFromModelsDev(defaultProvider);
6464
- }
6553
+ await this.hydrateProviderModelsFromModelsDev(defaultProvider, { forceRefresh: true });
6465
6554
  const model = this.session.modelRegistry.find(defaultProvider, defaultModelId);
6466
6555
  if (!model)
6467
6556
  return;
@@ -6540,9 +6629,9 @@ export class InteractiveMode {
6540
6629
  return;
6541
6630
  }
6542
6631
  this.session.modelRegistry.authStorage.set(providerId, { type: "api_key", key: apiKey });
6543
- let hasProviderModels = this.hasRegisteredProviderModels(providerId);
6632
+ let hasProviderModels = await this.hydrateProviderModelsFromModelsDev(providerId, { forceRefresh: true });
6544
6633
  if (!hasProviderModels) {
6545
- hasProviderModels = await this.hydrateProviderModelsFromModelsDev(providerId);
6634
+ hasProviderModels = this.hasRegisteredProviderModels(providerId);
6546
6635
  }
6547
6636
  await this.updateAvailableProviderCount();
6548
6637
  this.showStatus(`${providerName} API key saved to ${getAuthPath()}`);
@@ -9548,7 +9637,11 @@ export class InteractiveMode {
9548
9637
  }
9549
9638
  resolveMentionedAgent(text) {
9550
9639
  const cwd = this.sessionManager.getCwd();
9551
- const loaded = loadCustomSubagents({ cwd, agentDir: getAgentDir() });
9640
+ const loaded = loadCustomSubagents({
9641
+ cwd,
9642
+ agentDir: getAgentDir(),
9643
+ knownToolNames: getKnownSubagentToolNamesFromSession(this.session),
9644
+ });
9552
9645
  if (loaded.agents.length === 0)
9553
9646
  return undefined;
9554
9647
  const matches = text.matchAll(/(?:^|\s)@([^\s]+)/g);
@@ -9625,7 +9718,7 @@ export class InteractiveMode {
9625
9718
  });
9626
9719
  }
9627
9720
  async selectModelForImmediateRetry(preferredProvider) {
9628
- await this.hydrateMissingProviderModelsForSavedAuth();
9721
+ await this.hydrateMissingProviderModelsForSavedAuth({ forceRefresh: true });
9629
9722
  this.session.modelRegistry.refresh();
9630
9723
  let models = [];
9631
9724
  try {
@@ -9728,7 +9821,11 @@ export class InteractiveMode {
9728
9821
  const cleaned = userInput.replace(/(?:^|\s)@[^\s]+/g, " ").trim();
9729
9822
  if (this.isCapabilityQuery(cleaned)) {
9730
9823
  const cwd = this.sessionManager.getCwd();
9731
- const loaded = loadCustomSubagents({ cwd, agentDir: getAgentDir() });
9824
+ const loaded = loadCustomSubagents({
9825
+ cwd,
9826
+ agentDir: getAgentDir(),
9827
+ knownToolNames: getKnownSubagentToolNamesFromSession(this.session),
9828
+ });
9732
9829
  const agent = loaded.agents.find((item) => item.name === mentionedAgent);
9733
9830
  if (agent) {
9734
9831
  const capabilityPrompt = [
@@ -11872,7 +11969,11 @@ export class InteractiveMode {
11872
11969
  const args = this.parseSlashArgs(text).slice(1);
11873
11970
  const asJson = args.includes("--json");
11874
11971
  const cwd = this.sessionManager.getCwd();
11875
- const loaded = loadCustomSubagents({ cwd, agentDir: getAgentDir() });
11972
+ const loaded = loadCustomSubagents({
11973
+ cwd,
11974
+ agentDir: getAgentDir(),
11975
+ knownToolNames: getKnownSubagentToolNamesFromSession(this.session),
11976
+ });
11876
11977
  const profiles = getProfileNames().map((name) => getAgentProfile(name));
11877
11978
  if (asJson) {
11878
11979
  this.showCommandJsonBlock("Agents", {
@@ -12360,6 +12461,137 @@ export class InteractiveMode {
12360
12461
  source: "interactive",
12361
12462
  });
12362
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
+ }
12363
12595
  handleTeamRunsSlashCommand(text) {
12364
12596
  const args = this.parseSlashArgs(text).slice(1);
12365
12597
  const limitRaw = args[0];
@@ -13841,7 +14073,21 @@ The agent will automatically receive IOSM context on every turn.`;
13841
14073
  this.handleDaxnuts();
13842
14074
  }
13843
14075
  }
13844
- 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) {
13845
14091
  if (isReadOnlyProfileName(this.activeProfileName)) {
13846
14092
  this.showWarning(`Bash is disabled in ${this.activeProfileName} profile. Switch to full/meta/iosm (Shift+Tab).`);
13847
14093
  return;
@@ -13856,6 +14102,10 @@ The agent will automatically receive IOSM context on every turn.`;
13856
14102
  cwd: process.cwd(),
13857
14103
  })
13858
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
+ }
13859
14109
  // If extension returned a full result, use it directly
13860
14110
  if (eventResult?.result) {
13861
14111
  const result = eventResult.result;
@@ -13898,8 +14148,15 @@ The agent will automatically receive IOSM context on every turn.`;
13898
14148
  this.bashComponent.appendOutput(chunk);
13899
14149
  this.ui.requestRender();
13900
14150
  }
13901
- }, { excludeFromContext, operations: eventResult?.operations });
14151
+ }, {
14152
+ excludeFromContext,
14153
+ operations: eventResult?.operations,
14154
+ runInBackground: effectiveRunInBackground,
14155
+ });
13902
14156
  if (this.bashComponent) {
14157
+ if (result.backgroundTaskId && result.output) {
14158
+ this.bashComponent.appendOutput(result.output);
14159
+ }
13903
14160
  this.bashComponent.setComplete(result.exitCode, result.cancelled, result.truncated ? { truncated: true, content: result.output } : undefined, result.fullOutputPath);
13904
14161
  }
13905
14162
  }