open-multi-agent-kit 0.94.1 → 0.95.1

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 (126) hide show
  1. package/CHANGELOG.md +49 -1
  2. package/README.md +100 -647
  3. package/dist/core/agent-session.d.ts.map +1 -1
  4. package/dist/core/agent-session.js +11 -11
  5. package/dist/core/agent-session.js.map +1 -1
  6. package/dist/core/auth-storage.d.ts +27 -2
  7. package/dist/core/auth-storage.d.ts.map +1 -1
  8. package/dist/core/auth-storage.js +239 -56
  9. package/dist/core/auth-storage.js.map +1 -1
  10. package/dist/core/context-budget-v2-cache-invalidation.d.ts.map +1 -1
  11. package/dist/core/context-budget-v2-cache-invalidation.js +1 -1
  12. package/dist/core/context-budget-v2-cache-invalidation.js.map +1 -1
  13. package/dist/core/context-budget-v2-cache-provider.d.ts +5 -1
  14. package/dist/core/context-budget-v2-cache-provider.d.ts.map +1 -1
  15. package/dist/core/context-budget-v2-cache-provider.js +37 -7
  16. package/dist/core/context-budget-v2-cache-provider.js.map +1 -1
  17. package/dist/core/context-budget-v2-cache-telemetry.d.ts +1 -1
  18. package/dist/core/context-budget-v2-cache-telemetry.d.ts.map +1 -1
  19. package/dist/core/context-budget-v2-cache-telemetry.js +2 -1
  20. package/dist/core/context-budget-v2-cache-telemetry.js.map +1 -1
  21. package/dist/core/context-budget-v2-cache.d.ts.map +1 -1
  22. package/dist/core/context-budget-v2-cache.js +3 -0
  23. package/dist/core/context-budget-v2-cache.js.map +1 -1
  24. package/dist/core/context-budget-v2-plan-cache-keys.d.ts.map +1 -1
  25. package/dist/core/context-budget-v2-plan-cache-keys.js +39 -5
  26. package/dist/core/context-budget-v2-plan-cache-keys.js.map +1 -1
  27. package/dist/core/context-budget-v2-representation-cache.d.ts.map +1 -1
  28. package/dist/core/context-budget-v2-representation-cache.js +4 -3
  29. package/dist/core/context-budget-v2-representation-cache.js.map +1 -1
  30. package/dist/core/context-budget-v2-selection.d.ts.map +1 -1
  31. package/dist/core/context-budget-v2-selection.js +4 -0
  32. package/dist/core/context-budget-v2-selection.js.map +1 -1
  33. package/dist/core/context-budget-v2-types.d.ts +3 -0
  34. package/dist/core/context-budget-v2-types.d.ts.map +1 -1
  35. package/dist/core/context-budget-v2-types.js.map +1 -1
  36. package/dist/core/extensions/types.d.ts +2 -0
  37. package/dist/core/extensions/types.d.ts.map +1 -1
  38. package/dist/core/extensions/types.js.map +1 -1
  39. package/dist/core/github-repository.d.ts +3 -0
  40. package/dist/core/github-repository.d.ts.map +1 -0
  41. package/dist/core/github-repository.js +3 -0
  42. package/dist/core/github-repository.js.map +1 -0
  43. package/dist/core/headroom.d.ts.map +1 -1
  44. package/dist/core/headroom.js +7 -2
  45. package/dist/core/headroom.js.map +1 -1
  46. package/dist/core/model-registry.d.ts +3 -3
  47. package/dist/core/model-registry.d.ts.map +1 -1
  48. package/dist/core/model-registry.js +9 -8
  49. package/dist/core/model-registry.js.map +1 -1
  50. package/dist/core/provider-usage.d.ts +48 -0
  51. package/dist/core/provider-usage.d.ts.map +1 -0
  52. package/dist/core/provider-usage.js +780 -0
  53. package/dist/core/provider-usage.js.map +1 -0
  54. package/dist/core/sdk.d.ts.map +1 -1
  55. package/dist/core/sdk.js +10 -0
  56. package/dist/core/sdk.js.map +1 -1
  57. package/dist/core/session-termination.d.ts.map +1 -1
  58. package/dist/core/session-termination.js +8 -1
  59. package/dist/core/session-termination.js.map +1 -1
  60. package/dist/core/settings-manager.d.ts +1 -5
  61. package/dist/core/settings-manager.d.ts.map +1 -1
  62. package/dist/core/settings-manager.js +15 -17
  63. package/dist/core/settings-manager.js.map +1 -1
  64. package/dist/core/skills-catalog-cache.d.ts +1 -0
  65. package/dist/core/skills-catalog-cache.d.ts.map +1 -1
  66. package/dist/core/skills-catalog-cache.js +42 -11
  67. package/dist/core/skills-catalog-cache.js.map +1 -1
  68. package/dist/core/slash-commands.d.ts.map +1 -1
  69. package/dist/core/slash-commands.js +1 -4
  70. package/dist/core/slash-commands.js.map +1 -1
  71. package/dist/core/tools/read.d.ts +1 -1
  72. package/dist/core/tools/read.d.ts.map +1 -1
  73. package/dist/core/tools/read.js.map +1 -1
  74. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  75. package/dist/modes/interactive/components/footer.js.map +1 -1
  76. package/dist/modes/interactive/components/index.d.ts +1 -0
  77. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  78. package/dist/modes/interactive/components/index.js +1 -0
  79. package/dist/modes/interactive/components/index.js.map +1 -1
  80. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  81. package/dist/modes/interactive/components/model-selector.js +5 -3
  82. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  83. package/dist/modes/interactive/components/oauth-account-selector.d.ts +16 -0
  84. package/dist/modes/interactive/components/oauth-account-selector.d.ts.map +1 -0
  85. package/dist/modes/interactive/components/oauth-account-selector.js +61 -0
  86. package/dist/modes/interactive/components/oauth-account-selector.js.map +1 -0
  87. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  88. package/dist/modes/interactive/components/oauth-selector.js +25 -4
  89. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  90. package/dist/modes/interactive/components/status-sidebar.d.ts +21 -1
  91. package/dist/modes/interactive/components/status-sidebar.d.ts.map +1 -1
  92. package/dist/modes/interactive/components/status-sidebar.js +165 -6
  93. package/dist/modes/interactive/components/status-sidebar.js.map +1 -1
  94. package/dist/modes/interactive/interactive-mode.d.ts +1 -1
  95. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  96. package/dist/modes/interactive/interactive-mode.js +89 -60
  97. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  98. package/dist/utils/image-resize-core.d.ts.map +1 -1
  99. package/dist/utils/image-resize-core.js +2 -2
  100. package/dist/utils/image-resize-core.js.map +1 -1
  101. package/docs/development.md +3 -2
  102. package/docs/providers.md +19 -4
  103. package/docs/settings.md +9 -20
  104. package/docs/usage.md +10 -10
  105. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  106. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  107. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  108. package/examples/extensions/gondolin/package-lock.json +2 -2
  109. package/examples/extensions/gondolin/package.json +1 -1
  110. package/examples/extensions/sandbox/package-lock.json +2 -2
  111. package/examples/extensions/sandbox/package.json +1 -1
  112. package/examples/extensions/subagent/agents/planner.md +1 -1
  113. package/examples/extensions/subagent/agents/reviewer.md +1 -1
  114. package/examples/extensions/subagent/agents/scout.md +1 -1
  115. package/examples/extensions/with-deps/package-lock.json +2 -2
  116. package/examples/extensions/with-deps/package.json +1 -1
  117. package/npm-shrinkwrap.json +24 -24
  118. package/package.json +6 -6
  119. package/dist/core/context-budget-compressors.d.ts +0 -50
  120. package/dist/core/context-budget-compressors.d.ts.map +0 -1
  121. package/dist/core/context-budget-compressors.js +0 -166
  122. package/dist/core/context-budget-compressors.js.map +0 -1
  123. package/dist/core/github-star-nudge.d.ts +0 -15
  124. package/dist/core/github-star-nudge.d.ts.map +0 -1
  125. package/dist/core/github-star-nudge.js +0 -21
  126. package/dist/core/github-star-nudge.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,10 +1,42 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.95.1] - 2026-08-01
4
+
5
+ ### Added
6
+
7
+ - **Harness Graph control plane** (`.omk/harness-graph/`): deterministic agents×skills×hooks×MCP inventory with 3-tier skill classification, bipartite SPOF criticality, Louvain communities, association-rule lift, hybrid CF wiring recommendations (`jaccard · idf · lift_boost`), fail-closed `health_gate.py` + debt allowlist, executive `dashboard.md`, review-only `wiring-patch`, synthetic unit + property tests, and CI workflow `.github/workflows/harness-graph.yml`.
8
+ - **Harness Graph ops tooling**: `compact-skills-index.mjs` (demand-union index rebuild), `prune-retired-hooks.mjs` (retired hook capability cleanup), `apply-wiring-patch.py` (half-bundle completion checklist), session-start drift audit hook with optional `HARNESS_GRAPH_STRICT=1`.
9
+
10
+ ### Fixed
11
+
12
+ - Harness Graph green-metric traps: runtime-derived hook/MCP catalogs (no hardcoded answer keys), bipartite SPOF instead of empty articulation tables, default-only model-drift axis (failover is advisory), skills-index no longer dumps the full on-disk universe into false orphan-active counts.
13
+
14
+ ### Docs
15
+
16
+ - Root README: AEO/SEO-oriented positioning, FAQ, and marketing/growth skill keyword map (`omk-marketing` + marketingskills pack).
17
+ - Spec/plan/scorecard for harness-graph engineering (`specs/012-harness-graph-engineering/`, `.omk/harness-graph/SCORECARD.md`).
18
+
19
+ ## [0.95.0] - 2026-07-31
20
+
21
+ ### Added
22
+
23
+ - Added explicit multi-account subscription authentication: `/login` now opens an account picker for configured OAuth providers, offers a separate **Add another account** action, captures ChatGPT/Claude/Google email identities, and pins requests to the selected account without silent rotation or failover.
24
+ - Added multi-provider quota meters to the pinned STATUS RAIL: every configured Codex, Claude, Kimi Code, and GLM/ZAI subscription is shown together with independent windows and reset countdowns. Codex polling passively merges official `x-codex-primary-*`, `x-codex-secondary-*`, and `codex.rate_limits` signals when they are present. Claude Code's passive `anthropic-ratelimit-unified-*` headers preserve recent 5-hour/7-day values; when the usage endpoint is rate limited and the snapshot is incomplete, an account-scoped, hourly-capped one-token Haiku quota check mirrors Claude Code's startup fallback. Model Studio Token Plan is identified as `QWEN TOKEN PLAN` with `console-only quota` because its official usage endpoint requires an Alibaba Cloud console session rather than the plan API key; Qwen OAuth/Grok remain explicit `quota API unavailable` entries.
25
+
26
+ ### Fixed
27
+
28
+ - Removed the persistent GitHub star prompt from interactive startup. The `/star` command remains available as an explicit, on-demand repository shortcut and no longer writes a tracking flag to settings.
29
+ - Anthropic-bound images now default to a 1,900 px longest edge and pass through a final header-level size guard, preventing sticky oversized-image request failures from clipboard and extension paths.
30
+ - Cancelling manual compaction now clears the transient compaction notice and restores queued input without duplicating messages.
31
+ - Refreshed built-in model metadata via `omk-ai` so OpenCode Zen (`opencode`) gains the `kimi-k3` entry that OpenCode Go (`opencode-go`) already had, with current provider handoff coverage for both catalogs.
32
+ - `glm-5.2` on OpenCode Zen/Go now exposes the `xhigh`/`max` thinking levels in the thinking-level selector (`Ctrl+T` / `/thinking`); it was previously capped at `high` because top-tier levels require an explicit `thinkingLevelMap` entry to appear.
33
+ - Auto-compaction now fails fast on insufficient-balance 429 responses instead of repeating the same quota error through every retry.
34
+
3
35
  ## [0.94.1] - 2026-07-27
4
36
 
5
37
  ### Added
6
38
 
7
- - **Persistent GitHub star nudge** on interactive startup: first installs and anyone who has not confirmed a star keep seeing a nag banner every launch until they star https://github.com/dmae97/omk and run `/star` (writes global `githubStarred: true` in `~/.omk/agent/settings.json`). `/star reset` brings the nag back. Project settings cannot silence it.
39
+ - **Persistent GitHub star nudge** on interactive startup: first installs and anyone who has not confirmed a star keep seeing a nag banner every launch until they star <https://github.com/dmae97/omk> and run `/star` (writes global `githubStarred: true` in `~/.omk/agent/settings.json`). `/star reset` brings the nag back. Project settings cannot silence it.
8
40
 
9
41
  ## [0.94.0] - 2026-07-27
10
42
 
@@ -1126,10 +1158,12 @@
1126
1158
  Interactive mode now sends a lightweight anonymous install/update telemetry ping to `https://pi.dev/install?version=x.y.z` after it writes `lastChangelogVersion` in `settings.json`.
1127
1159
 
1128
1160
  Why this exists:
1161
+
1129
1162
  - Pi needs a reliable per-version usage signal to understand whether releases are being adopted and to help justify funding continued development.
1130
1163
  - npm download counts are not a reliable proxy for actual Pi usage.
1131
1164
 
1132
1165
  How it works:
1166
+
1133
1167
  - It only runs in interactive mode.
1134
1168
  - It does not run in RPC mode, print mode, JSON mode, or SDK mode.
1135
1169
  - On a fresh interactive install, Pi writes `lastChangelogVersion`, then sends the ping.
@@ -1137,11 +1171,13 @@ How it works:
1137
1171
  - The request is fire-and-forget. Startup does not wait for it, and any errors are ignored.
1138
1172
 
1139
1173
  What data is collected:
1174
+
1140
1175
  - Only the Pi version in the request path, for example `https://pi.dev/install?version=0.67.1`.
1141
1176
  - The server stores only aggregate per-version counters such as `{ "0.67.1": 3 }`.
1142
1177
  - It does not store IP addresses, client identifiers, prompts, paths, models, auth state, or any other per-user data. It literally only increments a counter for that version.
1143
1178
 
1144
1179
  How to disable it:
1180
+
1145
1181
  - `/settings` → disable `Install telemetry`
1146
1182
  - `settings.json` → set `enableInstallTelemetry` to `false`
1147
1183
  - `PI_OFFLINE=1`
@@ -1154,6 +1190,7 @@ How to disable it:
1154
1190
  - Updated `antigravity-image-gen.ts` example extension to use User-Agent version `1.21.9` ([#2901](https://github.com/badlogic/pi-mono/pull/2901) by [@aadishv](https://github.com/aadishv))
1155
1191
  - Fixed `--list-models` silently swallowing `models.json` load errors; errors are now printed to stderr ([#3072](https://github.com/badlogic/pi-mono/issues/3072))
1156
1192
  - Fixed custom models for built-in providers (e.g. `openrouter`) being silently dropped from `--list-models` by inheriting `api`/`baseUrl` from built-in model definitions and no longer requiring `apiKey` for providers with existing auth ([#2921](https://github.com/badlogic/pi-mono/issues/2921) and [#3072](https://github.com/badlogic/pi-mono/issues/3072))
1193
+
1157
1194
  ### Added
1158
1195
 
1159
1196
  - Added full `openRouterRouting` field support in `models.json`, including fallbacks, parameter requirements, data collection, ZDR, ignore lists, quantizations, provider sorting, max price, and preferred throughput and latency constraints ([#2904](https://github.com/badlogic/pi-mono/pull/2904) by [@zmberber](https://github.com/zmberber))
@@ -1442,6 +1479,7 @@ return streamSimple(model, messages, {
1442
1479
  Resource, command, and tool provenance now use `sourceInfo` consistently.
1443
1480
 
1444
1481
  Common updates:
1482
+
1445
1483
  - RPC `get_commands`: replace `path` and `location` with `sourceInfo.path`, `sourceInfo.scope`, and `sourceInfo.source`
1446
1484
  - `SlashCommandInfo`: replace `command.path` and `command.location` with `command.sourceInfo`
1447
1485
  - `Skill` and `PromptTemplate`: replace `.source` with `.sourceInfo.source`
@@ -1449,6 +1487,7 @@ Common updates:
1449
1487
  - Custom `ResourceLoader` implementations: remove `getPathMetadata()` and read provenance from loaded resources directly
1450
1488
 
1451
1489
  Examples:
1490
+
1452
1491
  - `command.path` -> `command.sourceInfo.path`
1453
1492
  - `command.location === "user"` -> `command.sourceInfo.scope === "user"`
1454
1493
  - `skill.source` -> `skill.sourceInfo.source`
@@ -1683,16 +1722,19 @@ Examples:
1683
1722
  ## [0.57.1] - 2026-03-07
1684
1723
 
1685
1724
  ### New Features
1725
+
1686
1726
  - Tree branch folding and segment-jump navigation in `/tree`, with `Ctrl+←`/`Ctrl+→` and `Alt+←`/`Alt+→` shortcuts while `←`/`→` and `Page Up`/`Page Down` remain available for paging. See [docs/tree.md](docs/tree.md) and [docs/keybindings.md](docs/keybindings.md).
1687
1727
  - `session_directory` extension event for customizing session directory paths before session manager creation. See [docs/extensions.md](docs/extensions.md).
1688
1728
  - Digit keybindings (`0-9`) in the TUI keybinding system, including modified combos like `ctrl+1`. See [docs/keybindings.md](docs/keybindings.md).
1689
1729
 
1690
1730
  ### Added
1731
+
1691
1732
  - Added `/tree` branch folding and segment-jump navigation with `Ctrl+←`/`Ctrl+→` and `Alt+←`/`Alt+→`, while keeping `←`/`→` and `Page Up`/`Page Down` for paging ([#1724](https://github.com/badlogic/pi-mono/pull/1724) by [@Perlence](https://github.com/Perlence))
1692
1733
  - Added `session_directory` extension event that fires before session manager creation, allowing extensions to customize the session directory path based on cwd and other factors. CLI `--session-dir` flag takes precedence over extension-provided paths ([#1730](https://github.com/badlogic/pi-mono/pull/1730) by [@hjanuschka](https://github.com/hjanuschka)).
1693
1734
  - Added digit keys (`0-9`) to the keybinding system, including Kitty CSI-u and xterm `modifyOtherKeys` support for bindings like `ctrl+1` ([#1905](https://github.com/badlogic/pi-mono/issues/1905))
1694
1735
 
1695
1736
  ### Fixed
1737
+
1696
1738
  - Fixed custom tool collapsed/expanded rendering in HTML exports. Custom tools that define different collapsed vs expanded displays now render correctly in exported HTML, with expandable sections when both states differ and direct display when only expanded exists ([#1934](https://github.com/badlogic/pi-mono/pull/1934) by [@aliou](https://github.com/aliou))
1697
1739
  - Fixed tmux startup guidance and keyboard setup warnings for modified key handling, including Ghostty `shift+enter=text:\n` remap guidance and tmux `extended-keys-format` detection ([#1872](https://github.com/badlogic/pi-mono/issues/1872))
1698
1740
  - Fixed z.ai context overflow recovery so `model_context_window_exceeded` errors trigger auto-compaction instead of surfacing as unhandled stop reason failures ([#1937](https://github.com/badlogic/pi-mono/issues/1937))
@@ -1835,6 +1877,7 @@ Examples:
1835
1877
  - Fixed Bedrock `AWS_PROFILE` region resolution by honoring profile `region` values ([#1800](https://github.com/badlogic/pi-mono/issues/1800)).
1836
1878
  - Fixed Gemini 3.1 thinking-level detection for `google` and `google-vertex` providers ([#1785](https://github.com/badlogic/pi-mono/issues/1785)).
1837
1879
  - Fixed browser bundling compatibility for `@mariozechner/pi-ai` by removing Node-only side effects from default browser import paths ([#1814](https://github.com/badlogic/pi-mono/issues/1814)).
1880
+
1838
1881
  ## [0.55.4] - 2026-03-02
1839
1882
 
1840
1883
  ### New Features
@@ -2278,6 +2321,7 @@ Examples:
2278
2321
  ### Breaking Changes
2279
2322
 
2280
2323
  - **Extension tool signature change**: `ToolDefinition.execute` now uses `(toolCallId, params, signal, onUpdate, ctx)` parameter order to match `AgentTool.execute`. Previously it was `(toolCallId, params, onUpdate, ctx, signal)`. This makes wrapping built-in tools trivial since the first four parameters now align. Update your extensions by swapping the `signal` and `onUpdate` parameters:
2324
+
2281
2325
  ```ts
2282
2326
  // Before
2283
2327
  async execute(toolCallId, params, onUpdate, ctx, signal) { ... }
@@ -2289,12 +2333,14 @@ Examples:
2289
2333
  ### New Features
2290
2334
 
2291
2335
  - **Android/Termux support**: Pi now runs on Android via Termux. Install with:
2336
+
2292
2337
  ```bash
2293
2338
  pkg install nodejs termux-api git
2294
2339
  npm install -g @mariozechner/pi-coding-agent
2295
2340
  mkdir -p ~/.pi/agent
2296
2341
  echo "You are running on Android in Termux." > ~/.pi/agent/AGENTS.md
2297
2342
  ```
2343
+
2298
2344
  Clipboard operations fall back gracefully when `termux-api` is unavailable. ([#1164](https://github.com/badlogic/pi-mono/issues/1164))
2299
2345
  - **Bash spawn hook**: Extensions can now intercept and modify bash commands before execution via `pi.setBashSpawnHook()`. Adjust the command string, working directory, or environment variables. See [docs/extensions.md](docs/extensions.md). ([#1160](https://github.com/badlogic/pi-mono/pull/1160) by [@mitsuhiko](https://github.com/mitsuhiko))
2300
2346
  - **Linux ARM64 musl support**: Pi now runs on Alpine Linux ARM64 (linux-arm64-musl) via updated clipboard dependency.
@@ -2611,6 +2657,7 @@ There are multiple SDK breaking changes since v0.49.3. For the quickest migratio
2611
2657
  - Improved error message for OAuth authentication failures (expired credentials, offline) instead of generic 'No API key found' ([#849](https://github.com/badlogic/pi-mono/pull/849) by [@zedrdave](https://github.com/zedrdave))
2612
2658
 
2613
2659
  ### Fixed
2660
+
2614
2661
  - Fixed `/model` selector scope toggle so you can switch between all and scoped models when scoped models are saved ([#844](https://github.com/badlogic/pi-mono/issues/844))
2615
2662
  - Fixed OpenAI Responses 400 error "reasoning without following item" when replaying aborted turns ([#838](https://github.com/badlogic/pi-mono/pull/838))
2616
2663
  - Fixed pi exiting with code 0 when cancelling resume session selection
@@ -2858,6 +2905,7 @@ There are multiple SDK breaking changes since v0.49.3. For the quickest migratio
2858
2905
  - `SessionManager.list()` and `SessionManager.listAll()` are now async, returning `Promise<SessionInfo[]>`. Callers must await them. ([#620](https://github.com/badlogic/pi-mono/pull/620) by [@tmustier](https://github.com/tmustier))
2859
2906
 
2860
2907
  ### Added
2908
+
2861
2909
  - `/resume` selector now toggles between current-folder and all sessions with Tab, showing the session cwd in the All view and loading progress. ([#620](https://github.com/badlogic/pi-mono/pull/620) by [@tmustier](https://github.com/tmustier))
2862
2910
  - `SessionManager.list()` and `SessionManager.listAll()` accept optional `onProgress` callback for progress updates
2863
2911
  - `SessionInfo.cwd` field containing the session's working directory (empty string for old sessions)