open-multi-agent-kit 0.90.7 → 0.90.8

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 (65) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +11 -10
  3. package/dist/cli/args.d.ts.map +1 -1
  4. package/dist/cli/args.js +1 -1
  5. package/dist/cli/args.js.map +1 -1
  6. package/dist/core/agent-session.d.ts +3 -0
  7. package/dist/core/agent-session.d.ts.map +1 -1
  8. package/dist/core/agent-session.js +26 -3
  9. package/dist/core/agent-session.js.map +1 -1
  10. package/dist/core/context-budget-headroom.d.ts.map +1 -1
  11. package/dist/core/context-budget-headroom.js +5 -1
  12. package/dist/core/context-budget-headroom.js.map +1 -1
  13. package/dist/core/context-budget-v2-cache-provider.d.ts +4 -2
  14. package/dist/core/context-budget-v2-cache-provider.d.ts.map +1 -1
  15. package/dist/core/context-budget-v2-cache-provider.js +9 -5
  16. package/dist/core/context-budget-v2-cache-provider.js.map +1 -1
  17. package/dist/core/context-budget-v2-selection.d.ts.map +1 -1
  18. package/dist/core/context-budget-v2-selection.js +9 -0
  19. package/dist/core/context-budget-v2-selection.js.map +1 -1
  20. package/dist/core/extensions/loader.d.ts.map +1 -1
  21. package/dist/core/extensions/loader.js +4 -0
  22. package/dist/core/extensions/loader.js.map +1 -1
  23. package/dist/core/extensions/types.d.ts +2 -0
  24. package/dist/core/extensions/types.d.ts.map +1 -1
  25. package/dist/core/extensions/types.js.map +1 -1
  26. package/dist/core/loop-gates.d.ts.map +1 -1
  27. package/dist/core/loop-gates.js +25 -1
  28. package/dist/core/loop-gates.js.map +1 -1
  29. package/dist/core/pi-package-intake.d.ts +1 -0
  30. package/dist/core/pi-package-intake.d.ts.map +1 -1
  31. package/dist/core/pi-package-intake.js +7 -0
  32. package/dist/core/pi-package-intake.js.map +1 -1
  33. package/dist/core/settings-manager.d.ts +10 -0
  34. package/dist/core/settings-manager.d.ts.map +1 -1
  35. package/dist/core/settings-manager.js +15 -0
  36. package/dist/core/settings-manager.js.map +1 -1
  37. package/dist/guardrails/evidence-system.d.ts +8 -1
  38. package/dist/guardrails/evidence-system.d.ts.map +1 -1
  39. package/dist/guardrails/evidence-system.js +154 -16
  40. package/dist/guardrails/evidence-system.js.map +1 -1
  41. package/dist/modes/interactive/components/control-panel-layout.d.ts.map +1 -1
  42. package/dist/modes/interactive/components/control-panel-layout.js +1 -1
  43. package/dist/modes/interactive/components/control-panel-layout.js.map +1 -1
  44. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  45. package/dist/modes/interactive/components/footer.js +1 -1
  46. package/dist/modes/interactive/components/footer.js.map +1 -1
  47. package/dist/types/evidence.d.ts +4 -0
  48. package/dist/types/evidence.d.ts.map +1 -1
  49. package/dist/types/evidence.js.map +1 -1
  50. package/docs/compaction.md +6 -0
  51. package/docs/providers.md +6 -0
  52. package/docs/settings.md +17 -2
  53. package/examples/extensions/correctness-wall/README.md +6 -6
  54. package/examples/extensions/correctness-wall/index.ts +37 -11
  55. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  56. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  57. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  58. package/examples/extensions/gondolin/package-lock.json +2 -2
  59. package/examples/extensions/gondolin/package.json +1 -1
  60. package/examples/extensions/sandbox/package-lock.json +2 -2
  61. package/examples/extensions/sandbox/package.json +1 -1
  62. package/examples/extensions/with-deps/package-lock.json +2 -2
  63. package/examples/extensions/with-deps/package.json +1 -1
  64. package/npm-shrinkwrap.json +12 -12
  65. package/package.json +4 -4
@@ -25,6 +25,7 @@ import { executeBashWithOperations } from "./bash-executor.js";
25
25
  import { classifyShellCommand } from "./command-safety.js";
26
26
  import { calculateContextTokens, collectEntriesForBranchSummary, compact, estimateContextTokens, estimateProjectedContextTokens, generateBranchSummary, prepareCompaction, resolveCompactionModel, shouldCompact, } from "./compaction/index.js";
27
27
  import { compactionEmitWillRetry } from "./compaction/resume-policy.js";
28
+ import { createMemoryContextBudgetCacheProviderV2 } from "./context-budget-v2-cache-provider.js";
28
29
  import { DEFAULT_THINKING_LEVEL } from "./defaults.js";
29
30
  import { exportSessionToHtml } from "./export-html/index.js";
30
31
  import { createToolHtmlRenderer } from "./export-html/tool-renderer.js";
@@ -34,6 +35,7 @@ import { emitSessionShutdownEvent } from "./extensions/runner.js";
34
35
  import { assertTextChatModelForCompletion } from "./grok-harness.js";
35
36
  import { grokPlaybookAppendForProvider } from "./grok-playbook.js";
36
37
  import { assertLoadoutAccess, decideLoadoutAccess } from "./loadout-access-policy.js";
38
+ import { findExactModelReferenceMatch } from "./model-resolver.js";
37
39
  import { expandPromptTemplate } from "./prompt-templates.js";
38
40
  import { getBiasStepsForCell, getDefaultRouterBiasSnapshotPath, parseRouterBiasSnapshot, } from "./reasoning-router-bias.js";
39
41
  import { classifyTaskV4, resolveThinkingLevelV4WithUncertainty } from "./reasoning-router-v4.js";
@@ -171,6 +173,8 @@ export class AgentSession {
171
173
  _extensionErrorUnsubscriber;
172
174
  // Model registry for API key resolution
173
175
  _modelRegistry;
176
+ /** Lazy, in-memory only; never shared across sessions or persisted. */
177
+ _contextBudgetCacheProvider;
174
178
  // Tool registry for extension getTools/setTools
175
179
  _toolRegistry = new Map();
176
180
  _toolDefinitions = new Map();
@@ -744,7 +748,11 @@ export class AgentSession {
744
748
  return undefined;
745
749
  }
746
750
  _getContextBudgetOptions() {
747
- if (process.env.OMK_CONTEXT_GOVERNOR !== "1") {
751
+ const contextGovernorOverride = process.env.OMK_CONTEXT_GOVERNOR;
752
+ if (contextGovernorOverride === "0") {
753
+ return undefined;
754
+ }
755
+ if (contextGovernorOverride !== "1" && !this.settingsManager.getContextBudgetEnabled()) {
748
756
  return undefined;
749
757
  }
750
758
  const contextWindow = this.model?.contextWindow ?? 0;
@@ -782,6 +790,8 @@ export class AgentSession {
782
790
  responseReserveTokens =
783
791
  parsePositiveIntegerEnv("OMK_CONTEXT_GOVERNOR_RESPONSE_RESERVE_TOKENS") ?? LEGACY_RESPONSE_RESERVE_TOKENS;
784
792
  }
793
+ const cacheProvider = this._contextBudgetCacheProvider ?? createMemoryContextBudgetCacheProviderV2("session");
794
+ this._contextBudgetCacheProvider = cacheProvider;
785
795
  // Enforce floor
786
796
  if (maxPromptTokens < MIN_PROMPT_TOKENS) {
787
797
  maxPromptTokens = MIN_PROMPT_TOKENS;
@@ -797,6 +807,7 @@ export class AgentSession {
797
807
  tokenizerMode: parseTokenizerModeEnv(process.env.OMK_CONTEXT_GOVERNOR_TOKENIZER),
798
808
  activeSkillNames: parseCommaSeparatedEnv(process.env.OMK_CONTEXT_GOVERNOR_ACTIVE_SKILLS),
799
809
  queryContext: this._extractCurrentQuery(),
810
+ cacheProvider,
800
811
  };
801
812
  }
802
813
  /**
@@ -1649,6 +1660,18 @@ export class AgentSession {
1649
1660
  // =========================================================================
1650
1661
  // Compaction
1651
1662
  // =========================================================================
1663
+ _resolveCompactionModel(sessionModel) {
1664
+ const configuredModel = this.settingsManager.getCompactionModel();
1665
+ const availableModels = this._modelRegistry.getAvailable();
1666
+ if (configuredModel) {
1667
+ const model = findExactModelReferenceMatch(configuredModel, availableModels);
1668
+ if (!model) {
1669
+ throw new Error(`Configured compaction model "${configuredModel}" is unavailable or unauthenticated.`);
1670
+ }
1671
+ return model;
1672
+ }
1673
+ return resolveCompactionModel(sessionModel, availableModels);
1674
+ }
1652
1675
  /**
1653
1676
  * Manually compact the session context.
1654
1677
  * Aborts current agent operation first.
@@ -1663,7 +1686,7 @@ export class AgentSession {
1663
1686
  if (!this.model) {
1664
1687
  throw new Error(formatNoModelSelectedMessage());
1665
1688
  }
1666
- const compactionModel = resolveCompactionModel(this.model, this._modelRegistry.getAvailable());
1689
+ const compactionModel = this._resolveCompactionModel(this.model);
1667
1690
  const { apiKey, headers } = await this._getCompactionRequestAuth(compactionModel);
1668
1691
  const pathEntries = this.sessionManager.getBranch();
1669
1692
  const settings = this.settingsManager.getCompactionSettings();
@@ -1897,7 +1920,7 @@ export class AgentSession {
1897
1920
  });
1898
1921
  return false;
1899
1922
  }
1900
- const compactionModel = resolveCompactionModel(this.model, this._modelRegistry.getAvailable());
1923
+ const compactionModel = this._resolveCompactionModel(this.model);
1901
1924
  let apiKey;
1902
1925
  let headers;
1903
1926
  if (this.agent.streamFn === streamSimple) {