open-multi-agent-kit 0.90.3 → 0.90.5

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 (184) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/README.md +16 -14
  3. package/dist/config.d.ts +3 -6
  4. package/dist/config.d.ts.map +1 -1
  5. package/dist/config.js +27 -19
  6. package/dist/config.js.map +1 -1
  7. package/dist/core/adaptorch-bridge.d.ts +250 -0
  8. package/dist/core/adaptorch-bridge.d.ts.map +1 -0
  9. package/dist/core/adaptorch-bridge.js +466 -0
  10. package/dist/core/adaptorch-bridge.js.map +1 -0
  11. package/dist/core/agent-session.d.ts +97 -0
  12. package/dist/core/agent-session.d.ts.map +1 -1
  13. package/dist/core/agent-session.js +194 -0
  14. package/dist/core/agent-session.js.map +1 -1
  15. package/dist/core/bang-skill-invocation.d.ts.map +1 -1
  16. package/dist/core/bang-skill-invocation.js +149 -0
  17. package/dist/core/bang-skill-invocation.js.map +1 -1
  18. package/dist/core/compaction/utils.d.ts.map +1 -1
  19. package/dist/core/compaction/utils.js +15 -2
  20. package/dist/core/compaction/utils.js.map +1 -1
  21. package/dist/core/context-budget-v2-planner.d.ts.map +1 -1
  22. package/dist/core/context-budget-v2-planner.js +10 -2
  23. package/dist/core/context-budget-v2-planner.js.map +1 -1
  24. package/dist/core/context-budget-v2-types.d.ts +7 -1
  25. package/dist/core/context-budget-v2-types.d.ts.map +1 -1
  26. package/dist/core/context-budget-v2-types.js.map +1 -1
  27. package/dist/core/domain-loadouts.d.ts.map +1 -1
  28. package/dist/core/domain-loadouts.js +1 -1
  29. package/dist/core/domain-loadouts.js.map +1 -1
  30. package/dist/core/reasoning-router-bias.d.ts +107 -0
  31. package/dist/core/reasoning-router-bias.d.ts.map +1 -0
  32. package/dist/core/reasoning-router-bias.js +278 -0
  33. package/dist/core/reasoning-router-bias.js.map +1 -0
  34. package/dist/core/reasoning-router-resolver.d.ts +44 -0
  35. package/dist/core/reasoning-router-resolver.d.ts.map +1 -0
  36. package/dist/core/reasoning-router-resolver.js +79 -0
  37. package/dist/core/reasoning-router-resolver.js.map +1 -0
  38. package/dist/core/reasoning-router-v4-weights.d.ts +80 -0
  39. package/dist/core/reasoning-router-v4-weights.d.ts.map +1 -0
  40. package/dist/core/reasoning-router-v4-weights.js +68 -0
  41. package/dist/core/reasoning-router-v4-weights.js.map +1 -0
  42. package/dist/core/reasoning-router-v4.d.ts +118 -0
  43. package/dist/core/reasoning-router-v4.d.ts.map +1 -0
  44. package/dist/core/reasoning-router-v4.js +585 -0
  45. package/dist/core/reasoning-router-v4.js.map +1 -0
  46. package/dist/core/router-feedback-collector.d.ts +98 -0
  47. package/dist/core/router-feedback-collector.d.ts.map +1 -0
  48. package/dist/core/router-feedback-collector.js +236 -0
  49. package/dist/core/router-feedback-collector.js.map +1 -0
  50. package/dist/core/settings-manager.d.ts +28 -0
  51. package/dist/core/settings-manager.d.ts.map +1 -1
  52. package/dist/core/settings-manager.js +16 -0
  53. package/dist/core/settings-manager.js.map +1 -1
  54. package/dist/core/slash-commands.d.ts.map +1 -1
  55. package/dist/core/slash-commands.js +4 -1
  56. package/dist/core/slash-commands.js.map +1 -1
  57. package/dist/modes/interactive/components/control-panel-runtime-status.d.ts +15 -0
  58. package/dist/modes/interactive/components/control-panel-runtime-status.d.ts.map +1 -1
  59. package/dist/modes/interactive/components/control-panel-runtime-status.js +95 -5
  60. package/dist/modes/interactive/components/control-panel-runtime-status.js.map +1 -1
  61. package/dist/modes/interactive/interactive-mode.d.ts +4 -0
  62. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  63. package/dist/modes/interactive/interactive-mode.js +60 -17
  64. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  65. package/docs/loadout-domains/README.md +8 -6
  66. package/docs/loadout-domains/ai-agent-ops.md +3 -2
  67. package/docs/loadout-domains/backend-api.md +3 -2
  68. package/docs/loadout-domains/data-science.md +3 -2
  69. package/docs/loadout-domains/devops-infra.md +2 -1
  70. package/docs/loadout-domains/docs-writing.md +7 -2
  71. package/docs/loadout-domains/frontend-ui.md +42 -11
  72. package/docs/loadout-domains/korean-document.md +83 -0
  73. package/docs/loadout-domains/mobile.md +1 -1
  74. package/docs/loadout-domains/qa-testing.md +4 -2
  75. package/docs/loadout-domains/security-audit.md +2 -1
  76. package/docs/loadout-domains/visual-qa.md +94 -0
  77. package/docs/skills.md +4 -1
  78. package/docs/usage.md +36 -3
  79. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  80. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  81. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  82. package/examples/extensions/gondolin/package-lock.json +2 -2
  83. package/examples/extensions/gondolin/package.json +1 -1
  84. package/examples/extensions/sandbox/package-lock.json +2 -2
  85. package/examples/extensions/sandbox/package.json +1 -1
  86. package/examples/extensions/subagent/agent-capability-router.test.ts +123 -0
  87. package/examples/extensions/subagent/agent-capability-router.ts +274 -0
  88. package/examples/extensions/subagent/agents/planner.md +3 -0
  89. package/examples/extensions/subagent/agents/reviewer.md +3 -0
  90. package/examples/extensions/subagent/agents/scout.md +3 -0
  91. package/examples/extensions/subagent/agents/worker.md +2 -0
  92. package/examples/extensions/subagent/agents.ts +14 -0
  93. package/examples/extensions/subagent/capabilities.ts +368 -0
  94. package/examples/extensions/subagent/domain-profiles.ts +1089 -0
  95. package/examples/extensions/subagent/index.ts +71 -3
  96. package/examples/extensions/with-deps/package-lock.json +2 -2
  97. package/examples/extensions/with-deps/package.json +1 -1
  98. package/examples/sdk/12-full-control.ts +1 -1
  99. package/npm-shrinkwrap.json +12 -12
  100. package/package.json +4 -4
  101. package/dist/agents/jailbreak/index.d.ts +0 -7
  102. package/dist/agents/jailbreak/index.d.ts.map +0 -1
  103. package/dist/agents/jailbreak/index.js +0 -7
  104. package/dist/agents/jailbreak/index.js.map +0 -1
  105. package/dist/agents/jailbreak/subagent-f.d.ts +0 -44
  106. package/dist/agents/jailbreak/subagent-f.d.ts.map +0 -1
  107. package/dist/agents/jailbreak/subagent-f.js +0 -60
  108. package/dist/agents/jailbreak/subagent-f.js.map +0 -1
  109. package/dist/cli/jailbreak-args.d.ts +0 -26
  110. package/dist/cli/jailbreak-args.d.ts.map +0 -1
  111. package/dist/cli/jailbreak-args.js +0 -86
  112. package/dist/cli/jailbreak-args.js.map +0 -1
  113. package/dist/commands/jailbreak.d.ts +0 -49
  114. package/dist/commands/jailbreak.d.ts.map +0 -1
  115. package/dist/commands/jailbreak.js +0 -201
  116. package/dist/commands/jailbreak.js.map +0 -1
  117. package/dist/core/compactor.d.ts +0 -42
  118. package/dist/core/compactor.d.ts.map +0 -1
  119. package/dist/core/compactor.js +0 -128
  120. package/dist/core/compactor.js.map +0 -1
  121. package/dist/core/token-optimizer.d.ts +0 -58
  122. package/dist/core/token-optimizer.d.ts.map +0 -1
  123. package/dist/core/token-optimizer.js +0 -179
  124. package/dist/core/token-optimizer.js.map +0 -1
  125. package/dist/encoding/index.d.ts +0 -6
  126. package/dist/encoding/index.d.ts.map +0 -1
  127. package/dist/encoding/index.js +0 -6
  128. package/dist/encoding/index.js.map +0 -1
  129. package/dist/encoding/l4-encoder.d.ts +0 -96
  130. package/dist/encoding/l4-encoder.d.ts.map +0 -1
  131. package/dist/encoding/l4-encoder.js +0 -474
  132. package/dist/encoding/l4-encoder.js.map +0 -1
  133. package/dist/fuzzing/index.d.ts +0 -6
  134. package/dist/fuzzing/index.d.ts.map +0 -1
  135. package/dist/fuzzing/index.js +0 -6
  136. package/dist/fuzzing/index.js.map +0 -1
  137. package/dist/fuzzing/mutation-engine.d.ts +0 -93
  138. package/dist/fuzzing/mutation-engine.d.ts.map +0 -1
  139. package/dist/fuzzing/mutation-engine.js +0 -244
  140. package/dist/fuzzing/mutation-engine.js.map +0 -1
  141. package/dist/jailbreak-extension.d.ts +0 -48
  142. package/dist/jailbreak-extension.d.ts.map +0 -1
  143. package/dist/jailbreak-extension.js +0 -47
  144. package/dist/jailbreak-extension.js.map +0 -1
  145. package/dist/modules/index.d.ts +0 -8
  146. package/dist/modules/index.d.ts.map +0 -1
  147. package/dist/modules/index.js +0 -7
  148. package/dist/modules/index.js.map +0 -1
  149. package/dist/modules/lrl-bypass.d.ts +0 -40
  150. package/dist/modules/lrl-bypass.d.ts.map +0 -1
  151. package/dist/modules/lrl-bypass.js +0 -84
  152. package/dist/modules/lrl-bypass.js.map +0 -1
  153. package/dist/modules/lrl-deps.d.ts +0 -38
  154. package/dist/modules/lrl-deps.d.ts.map +0 -1
  155. package/dist/modules/lrl-deps.js +0 -128
  156. package/dist/modules/lrl-deps.js.map +0 -1
  157. package/dist/multiturn/easl-chain.d.ts +0 -113
  158. package/dist/multiturn/easl-chain.d.ts.map +0 -1
  159. package/dist/multiturn/easl-chain.js +0 -351
  160. package/dist/multiturn/easl-chain.js.map +0 -1
  161. package/dist/multiturn/index.d.ts +0 -6
  162. package/dist/multiturn/index.d.ts.map +0 -1
  163. package/dist/multiturn/index.js +0 -6
  164. package/dist/multiturn/index.js.map +0 -1
  165. package/dist/routing/fallback-router.d.ts +0 -123
  166. package/dist/routing/fallback-router.d.ts.map +0 -1
  167. package/dist/routing/fallback-router.js +0 -355
  168. package/dist/routing/fallback-router.js.map +0 -1
  169. package/dist/routing/index.d.ts +0 -6
  170. package/dist/routing/index.d.ts.map +0 -1
  171. package/dist/routing/index.js +0 -6
  172. package/dist/routing/index.js.map +0 -1
  173. package/dist/types/jailbreak.d.ts +0 -246
  174. package/dist/types/jailbreak.d.ts.map +0 -1
  175. package/dist/types/jailbreak.js +0 -8
  176. package/dist/types/jailbreak.js.map +0 -1
  177. package/dist/utils/jailbreak/common.d.ts +0 -63
  178. package/dist/utils/jailbreak/common.d.ts.map +0 -1
  179. package/dist/utils/jailbreak/common.js +0 -130
  180. package/dist/utils/jailbreak/common.js.map +0 -1
  181. package/dist/utils/jailbreak/index.d.ts +0 -7
  182. package/dist/utils/jailbreak/index.d.ts.map +0 -1
  183. package/dist/utils/jailbreak/index.js +0 -7
  184. package/dist/utils/jailbreak/index.js.map +0 -1
@@ -97,6 +97,13 @@ class ExpandableText extends Text {
97
97
  }
98
98
  }
99
99
  const DEAD_TERMINAL_ERROR_CODES = new Set(["EIO", "EPIPE", "ENOTCONN"]);
100
+ /**
101
+ * Pseudo-entry for the thinking selector/autocomplete representing auto mode.
102
+ * "auto" is a thinking MODE (per-task routing), not a ThinkingLevel value; the
103
+ * selector renders plain strings, so it is injected as a pseudo-level entry and
104
+ * intercepted before reaching the session level API.
105
+ */
106
+ const AUTO_THINKING_ENTRY = "auto";
100
107
  function isDeadTerminalError(error) {
101
108
  if (!error || typeof error !== "object" || !("code" in error)) {
102
109
  return false;
@@ -337,15 +344,25 @@ export class InteractiveMode {
337
344
  const thinkCommand = slashCommands.find((command) => command.name === "think");
338
345
  if (thinkCommand) {
339
346
  thinkCommand.getArgumentCompletions = (prefix) => {
340
- const levels = this.session.getAvailableThinkingLevels();
341
- const filtered = fuzzyFilter(levels, prefix, (level) => level);
347
+ const isAutoMode = this.session.thinkingMode === "auto";
348
+ const choices = [AUTO_THINKING_ENTRY, ...this.session.getAvailableThinkingLevels()];
349
+ const filtered = fuzzyFilter(choices, prefix, (choice) => choice);
342
350
  if (filtered.length === 0)
343
351
  return null;
344
- return filtered.map((level) => ({
345
- value: level,
346
- label: level,
347
- description: level === this.session.thinkingLevel ? "current" : undefined,
348
- }));
352
+ return filtered.map((choice) => {
353
+ let description;
354
+ if (choice === AUTO_THINKING_ENTRY) {
355
+ description = `route level per task with v4${isAutoMode ? " (current)" : ""}`;
356
+ }
357
+ else if (!isAutoMode && choice === this.session.thinkingLevel) {
358
+ description = "current";
359
+ }
360
+ return {
361
+ value: choice,
362
+ label: choice,
363
+ description,
364
+ };
365
+ });
349
366
  };
350
367
  }
351
368
  const modelCommand = slashCommands.find((command) => command.name === "model");
@@ -3037,6 +3054,8 @@ export class InteractiveMode {
3037
3054
  this.showStatus("Current model does not support thinking");
3038
3055
  }
3039
3056
  else {
3057
+ // Cycling picks a concrete level: an explicit user override back to manual mode.
3058
+ this.session.setThinkingMode("manual");
3040
3059
  this.footer.invalidate();
3041
3060
  this.updateEditorBorderColor();
3042
3061
  this.showStatus(`Thinking level: ${newLevel}`);
@@ -3387,8 +3406,8 @@ export class InteractiveMode {
3387
3406
  followUpMode: this.session.followUpMode,
3388
3407
  transport: this.settingsManager.getTransport(),
3389
3408
  httpIdleTimeoutMs: this.settingsManager.getHttpIdleTimeoutMs(),
3390
- thinkingLevel: this.session.thinkingLevel,
3391
- availableThinkingLevels: this.session.getAvailableThinkingLevels(),
3409
+ thinkingLevel: this.getThinkingSelectorValue(),
3410
+ availableThinkingLevels: this.getThinkingSelectorLevels(),
3392
3411
  currentTheme: this.settingsManager.getTheme() || "dark",
3393
3412
  availableThemes: getAvailableThemes(),
3394
3413
  hideThinkingBlock: this.hideThinkingBlock,
@@ -3450,9 +3469,7 @@ export class InteractiveMode {
3450
3469
  this.showStatus(`HTTP idle timeout: ${formatHttpIdleTimeoutMs(timeoutMs)}`);
3451
3470
  },
3452
3471
  onThinkingLevelChange: (level) => {
3453
- this.session.setThinkingLevel(level);
3454
- this.footer.invalidate();
3455
- this.updateEditorBorderColor();
3472
+ this.applyThinkingSelection(level);
3456
3473
  },
3457
3474
  onThemeChange: (themeName) => {
3458
3475
  const result = setTheme(themeName, true);
@@ -3536,19 +3553,45 @@ export class InteractiveMode {
3536
3553
  this.showThinkingSelector();
3537
3554
  return;
3538
3555
  }
3556
+ const normalizedLevel = level.replace(/\s+/g, " ");
3557
+ if (normalizedLevel === AUTO_THINKING_ENTRY) {
3558
+ this.enableAutoThinkingMode();
3559
+ return;
3560
+ }
3539
3561
  const availableLevels = this.session.getAvailableThinkingLevels();
3540
- if (!availableLevels.includes(level)) {
3541
- this.showError(`Thinking level "${level}" is not available. Available: ${availableLevels.join(", ")}`);
3562
+ if (!availableLevels.includes(normalizedLevel)) {
3563
+ this.showError(`Thinking level "${level}" is not available. Available: auto, ${availableLevels.join(", ")}`);
3564
+ return;
3565
+ }
3566
+ this.applyThinkingLevel(normalizedLevel);
3567
+ }
3568
+ applyThinkingSelection(level) {
3569
+ if (level === AUTO_THINKING_ENTRY) {
3570
+ this.enableAutoThinkingMode();
3542
3571
  return;
3543
3572
  }
3544
3573
  this.applyThinkingLevel(level);
3545
3574
  }
3575
+ enableAutoThinkingMode() {
3576
+ this.session.setThinkingMode("auto");
3577
+ this.footer.invalidate();
3578
+ this.updateEditorBorderColor();
3579
+ this.showStatus("Thinking: auto (v4 router, level routed per task)");
3580
+ }
3546
3581
  applyThinkingLevel(level) {
3582
+ // A concrete level is an explicit user override: always return to manual mode.
3583
+ this.session.setThinkingMode("manual");
3547
3584
  this.session.setThinkingLevel(level);
3548
3585
  this.footer.invalidate();
3549
3586
  this.updateEditorBorderColor();
3550
3587
  this.showStatus(`Thinking: ${this.session.thinkingLevel}`);
3551
3588
  }
3589
+ getThinkingSelectorValue() {
3590
+ return this.session.thinkingMode === "auto" ? AUTO_THINKING_ENTRY : this.session.thinkingLevel;
3591
+ }
3592
+ getThinkingSelectorLevels() {
3593
+ return [AUTO_THINKING_ENTRY, ...this.session.getAvailableThinkingLevels()];
3594
+ }
3552
3595
  async handleModelCommand(searchTerm) {
3553
3596
  if (!searchTerm) {
3554
3597
  this.showModelSelector();
@@ -3625,11 +3668,11 @@ export class InteractiveMode {
3625
3668
  showThinkingSelector() {
3626
3669
  this.showSelector((done) => {
3627
3670
  const selector = new ThinkingSelectorComponent({
3628
- thinkingLevel: this.session.thinkingLevel,
3629
- availableThinkingLevels: this.session.getAvailableThinkingLevels(),
3671
+ thinkingLevel: this.getThinkingSelectorValue(),
3672
+ availableThinkingLevels: this.getThinkingSelectorLevels(),
3630
3673
  }, {
3631
3674
  onThinkingLevelChange: (level) => {
3632
- this.applyThinkingLevel(level);
3675
+ this.applyThinkingSelection(level);
3633
3676
  },
3634
3677
  onSelectComplete: () => {
3635
3678
  done();