open-multi-agent-kit 0.93.0 → 0.94.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 (99) hide show
  1. package/CHANGELOG.md +29 -1
  2. package/README.md +3 -2
  3. package/dist/core/agent-session.d.ts +7 -14
  4. package/dist/core/agent-session.d.ts.map +1 -1
  5. package/dist/core/agent-session.js +78 -347
  6. package/dist/core/agent-session.js.map +1 -1
  7. package/dist/core/github-star-nudge.d.ts +15 -0
  8. package/dist/core/github-star-nudge.d.ts.map +1 -0
  9. package/dist/core/github-star-nudge.js +21 -0
  10. package/dist/core/github-star-nudge.js.map +1 -0
  11. package/dist/core/package-manager.d.ts.map +1 -1
  12. package/dist/core/package-manager.js +11 -1
  13. package/dist/core/package-manager.js.map +1 -1
  14. package/dist/core/sandbox/default-policy.d.ts +14 -0
  15. package/dist/core/sandbox/default-policy.d.ts.map +1 -0
  16. package/dist/core/sandbox/default-policy.js +58 -0
  17. package/dist/core/sandbox/default-policy.js.map +1 -0
  18. package/dist/core/sdk.d.ts.map +1 -1
  19. package/dist/core/sdk.js +1 -1
  20. package/dist/core/sdk.js.map +1 -1
  21. package/dist/core/session-bash-runtime.d.ts +62 -0
  22. package/dist/core/session-bash-runtime.d.ts.map +1 -0
  23. package/dist/core/session-bash-runtime.js +167 -0
  24. package/dist/core/session-bash-runtime.js.map +1 -0
  25. package/dist/core/session-bash-service.d.ts +61 -0
  26. package/dist/core/session-bash-service.d.ts.map +1 -0
  27. package/dist/core/session-bash-service.js +155 -0
  28. package/dist/core/session-bash-service.js.map +1 -0
  29. package/dist/core/session-compaction-service.d.ts +48 -0
  30. package/dist/core/session-compaction-service.d.ts.map +1 -0
  31. package/dist/core/session-compaction-service.js +250 -0
  32. package/dist/core/session-compaction-service.js.map +1 -0
  33. package/dist/core/settings-manager.d.ts +5 -0
  34. package/dist/core/settings-manager.d.ts.map +1 -1
  35. package/dist/core/settings-manager.js +9 -0
  36. package/dist/core/settings-manager.js.map +1 -1
  37. package/dist/core/skills-catalog-cache.d.ts +25 -0
  38. package/dist/core/skills-catalog-cache.d.ts.map +1 -0
  39. package/dist/core/skills-catalog-cache.js +123 -0
  40. package/dist/core/skills-catalog-cache.js.map +1 -0
  41. package/dist/core/skills.d.ts +6 -0
  42. package/dist/core/skills.d.ts.map +1 -1
  43. package/dist/core/skills.js +25 -4
  44. package/dist/core/skills.js.map +1 -1
  45. package/dist/core/slash-commands.d.ts.map +1 -1
  46. package/dist/core/slash-commands.js +4 -0
  47. package/dist/core/slash-commands.js.map +1 -1
  48. package/dist/core/system-prompt.d.ts.map +1 -1
  49. package/dist/core/system-prompt.js +1 -1
  50. package/dist/core/system-prompt.js.map +1 -1
  51. package/dist/core/tools/bash.d.ts +3 -0
  52. package/dist/core/tools/bash.d.ts.map +1 -1
  53. package/dist/core/tools/bash.js +3 -2
  54. package/dist/core/tools/bash.js.map +1 -1
  55. package/dist/core/tools/diagnostics.d.ts +29 -0
  56. package/dist/core/tools/diagnostics.d.ts.map +1 -0
  57. package/dist/core/tools/diagnostics.js +325 -0
  58. package/dist/core/tools/diagnostics.js.map +1 -0
  59. package/dist/core/tools/index.d.ts +2 -1
  60. package/dist/core/tools/index.d.ts.map +1 -1
  61. package/dist/core/tools/index.js +18 -1
  62. package/dist/core/tools/index.js.map +1 -1
  63. package/dist/core/verified-bash-adapter.d.ts +18 -1
  64. package/dist/core/verified-bash-adapter.d.ts.map +1 -1
  65. package/dist/core/verified-bash-adapter.js +38 -1
  66. package/dist/core/verified-bash-adapter.js.map +1 -1
  67. package/dist/core/verified-bash-runtime.d.ts +13 -0
  68. package/dist/core/verified-bash-runtime.d.ts.map +1 -0
  69. package/dist/core/verified-bash-runtime.js +81 -0
  70. package/dist/core/verified-bash-runtime.js.map +1 -0
  71. package/dist/index.d.ts +4 -2
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +4 -2
  74. package/dist/index.js.map +1 -1
  75. package/dist/modes/interactive/interactive-mode.d.ts +2 -0
  76. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  77. package/dist/modes/interactive/interactive-mode.js +55 -0
  78. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  79. package/dist/types/evidence.d.ts +1 -1
  80. package/dist/types/evidence.d.ts.map +1 -1
  81. package/dist/types/evidence.js.map +1 -1
  82. package/dist/utils/frontmatter.d.ts.map +1 -1
  83. package/dist/utils/frontmatter.js +31 -5
  84. package/dist/utils/frontmatter.js.map +1 -1
  85. package/docs/environment-variables.md +4 -0
  86. package/docs/sdk.md +10 -4
  87. package/docs/settings.md +11 -0
  88. package/docs/usage.md +1 -0
  89. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  90. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  91. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  92. package/examples/extensions/gondolin/package-lock.json +2 -2
  93. package/examples/extensions/gondolin/package.json +1 -1
  94. package/examples/extensions/sandbox/package-lock.json +2 -2
  95. package/examples/extensions/sandbox/package.json +1 -1
  96. package/examples/extensions/with-deps/package-lock.json +2 -2
  97. package/examples/extensions/with-deps/package.json +1 -1
  98. package/npm-shrinkwrap.json +15 -15
  99. package/package.json +5 -5
package/CHANGELOG.md CHANGED
@@ -1,6 +1,34 @@
1
1
  # Changelog
2
2
 
3
- ## [Unreleased]
3
+ ## [0.94.1] - 2026-07-27
4
+
5
+ ### Added
6
+
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.
8
+
9
+ ## [0.94.0] - 2026-07-27
10
+
11
+ ### Added
12
+
13
+ - **`diagnostics` is now a default-active tool** for new sessions (LLM-callable alongside `read`/`bash`/`edit`/`write`). It stays registered-but-inactive for sessions that pin their own tool list; opt out per session via `activeToolNames` or `excludedToolNames`.
14
+ - **Persistent skill-catalog cache** (`src/core/skills-catalog-cache.ts`): per-dir fingerprint walk (readdir/stat only) gates a JSON catalog at `<agentDir>/cache/skill-catalog-v1.json`. Repeat session starts skip all SKILL.md reads on unchanged trees (measured on this host: 105 ms cold → 41 ms warm for the full scan). Any add/edit/delete under a scanned tree invalidates exactly that dir; corrupt cache degrades to a clean miss. Atomic tmp+rename writes.
15
+ - **Hermetic test environment** (`test/setup-env.ts`): machine-level `OMK_*` and provider credential variables are scrubbed before every worker, so test results no longer depend on the developer shell (safety-gate suites saw env-disabled gates; live e2e suites ran against expired credentials instead of skipping). `LIVE_E2E=1` keeps provider keys when running the live suites on purpose.
16
+ - **`diagnostics` tool** (`src/core/tools/diagnostics.ts`): compiler-backed diagnostics via the project's own checkers — `tsc --noEmit`, `pyright`/`ruff`, `go vet`, `cargo check` — normalized to `SEVERITY path:line:col message`, per-language fail-soft (`skipped` instead of tool errors), 5 s TTL cache, 50-item cap, path/language auto-detect. Registered in `createAllToolDefinitions` and exported from the SDK (`createDiagnosticsTool`, `createDiagnosticsToolDefinition`).
17
+ - **Interactive sandbox promotion**: `session.setBashSandboxMode("audit" | "enforce" | "off")` switches the session sandbox at runtime (next spawn), with a `sandbox_audit` mode-change ledger entry; `session.bashSandboxMode` reads the effective mode. `SessionBashRuntime.setSandboxMode` backs it.
18
+ - **Default-on bash sandbox (opt-out).** Session bash now carries a default `audit`-mode sandbox preflight (workspace-write rooted at the session cwd, OS temp dir as extra write target). Spawns stay unwrapped but every decision lands in the replay ledger as a `sandbox_audit` event — a tamper-evident trail no other harness ships. `OMK_BASH_SANDBOX=enforce` activates the real OS backend (macOS `sandbox-exec` / Linux `bwrap`, auto-detected) and fails closed when unavailable; `=0` disables. New `onSpawnDecision` observer on `BashSandboxPreflight`, plus `createWorkspaceSandboxPolicy()` / `resolveBashSandboxMode()` SDK exports.
19
+ - **Git-aware verified-bash scope.** Session bash receipts now bind the git toplevel plus the sorted dirty set (staged/modified/untracked, capped at 32 paths, 1 s TTL cache) instead of an empty artifact set, so `captureWorkspaceFingerprint` records HEAD and a scope-limited dirty digest. Exported as `resolveSessionWorkspaceScope()`.
20
+
21
+ ### Fixed
22
+
23
+ - **API provider registry is now a process-wide singleton** (`globalThis`-anchored in `omk-ai/api-registry`). Symlinked workspace dist copies consumed natively and the same files inlined by vite-node used to keep separate registries, so `registerFauxProvider` (and any runtime registration) was invisible to streamers resolving through the other copy — surfacing as "No API provider registered for api: ..." in agent loops. Also removed a stale nested `packages/agent/node_modules/omk-ai` copy (0.92.0) that shadowed the workspace build.
24
+
25
+ ### Changed
26
+
27
+ - **Extracted `SessionCompactionService`** (`src/core/session-compaction-service.ts`): the compaction state machine — capture/lock, barrier evaluation, emergency tail repair, provenance capture, transaction begin, envelope commit — moved out of `AgentSession` (5,271 → 4,911 lines), which now delegates through thin one-line wrappers. Transaction symbols import from `compaction/transaction.ts` directly so the `compaction/index.js` vi.mock pattern in suites keeps working.
28
+ - **Extracted `SessionBashService`** (`src/core/session-bash-service.ts`): the full bash surface — `executeBash` (prefix/loadout/safety-floor/headless gate), `recordBashResult` with the streaming-deferral queue, `abortBash`, `flushPending` — moved out of `AgentSession`, which now delegates one line each. Ordering contract (queue while streaming, flush on turn end) is pinned by the bash-persistence suite.
29
+ - **Extracted `SessionBashRuntime`** (`src/core/session-bash-runtime.ts`) from `AgentSession`: verified-evidence executor, default sandbox preflight (audit/enforce), git-aware workspace scope, and the receipt-bound bash orchestration (`executeVerified`) now live in one lazily-initialized unit; the session delegates. No behavior change.
30
+
31
+ - **Verified bash is default-on (opt-out).** When an AgentSession has a replay ledger, LLM-callable `bash` and interactive/RPC `executeBash` bind through `executeVerifiedBash` (`executor: "bash-tool"`, receipts under `<sessionFile>.evidence`). Set `OMK_VERIFIED_BASH=0` for the legacy unverified path. Adapter gains `env`/`onData` fan-out and `createVerifiedBashOperations()` so session PI_* env and live streaming stay intact without import cycles. See [SDK — Evidence](docs/sdk.md#evidence-and-verification) and [Environment Variables](docs/environment-variables.md).
4
32
 
5
33
  ## [0.93.0] - 2026-07-26
6
34
 
package/README.md CHANGED
@@ -15,7 +15,7 @@
15
15
  <p align="center">
16
16
  <a href="https://discord.com/invite/3cU7Bz4UPx"><img alt="Discord" src="https://img.shields.io/badge/discord-community-5865F2?style=flat-square&logo=discord&logoColor=white" /></a>
17
17
  <a href="https://www.npmjs.com/package/open-multi-agent-kit"><img alt="npm" src="https://img.shields.io/npm/v/open-multi-agent-kit?style=flat-square" /></a>
18
- <a href="https://github.com/dmae97/omk/releases/tag/v0.93.0"><img alt="Release" src="https://img.shields.io/badge/release-v0.93.0-00d7ff?style=flat-square" /></a>
18
+ <a href="https://github.com/dmae97/omk/releases/tag/v0.94.1"><img alt="Release" src="https://img.shields.io/badge/release-v0.94.1-00d7ff?style=flat-square" /></a>
19
19
  </p>
20
20
 
21
21
  > New issues and PRs from new contributors are auto-closed by default. Maintainers review auto-closed issues daily. See [CONTRIBUTING.md](https://github.com/dmae97/open-multi-agent-kit/blob/v0.90.4/CONTRIBUTING.md).
@@ -43,7 +43,7 @@ This feature release moves footer resource metrics to whole-machine telemetry, s
43
43
  | AdaptOrch | `omk-adaptorch-wpl` promoted to stable as a CLI runtime dependency; opt-in global-only `adaptorchBridge` advisory hints for the auto thinking-level resolver (default off). |
44
44
  | Providers | New built-in subscription providers under `/login`: Qwen (Qwen Code Subscription) and Grok (xAI OAuth Proxy). |
45
45
 
46
- GitHub-focused release notes live in [RELEASE_NOTES_v0.93.0.md](https://github.com/dmae97/omk/blob/v0.93.0/.github/RELEASE_NOTES_v0.93.0.md). The GitHub release workflow also extracts the canonical release body from [packages/coding-agent/CHANGELOG.md](https://github.com/dmae97/omk/blob/v0.93.0/packages/coding-agent/CHANGELOG.md).
46
+ GitHub-focused release notes live in [RELEASE_NOTES_v0.94.1.md](https://github.com/dmae97/omk/blob/v0.94.1/.github/RELEASE_NOTES_v0.94.1.md). The GitHub release workflow also extracts the canonical release body from [packages/coding-agent/CHANGELOG.md](https://github.com/dmae97/omk/blob/v0.94.1/packages/coding-agent/CHANGELOG.md).
47
47
 
48
48
  ## Release v0.90.8
49
49
 
@@ -226,6 +226,7 @@ Type `/` in the editor to trigger commands. [Extensions](#extensions) can regist
226
226
  | `/share` | Upload as private GitHub gist with shareable HTML link |
227
227
  | `/reload` | Reload keybindings, extensions, skills, prompts, and context files (themes hot-reload automatically) |
228
228
  | `/hotkeys` | Show all keyboard shortcuts |
229
+ | `/star` | Open the OMK GitHub repo and stop the startup star nudge (`/star reset` restores it) |
229
230
  | `/changelog` | Display version history |
230
231
  | `/quit` | Quit omk |
231
232
 
@@ -12,10 +12,10 @@
12
12
  *
13
13
  * Modes use this class and add their own I/O layer on top.
14
14
  */
15
- import { type Agent, type AgentEvent, type AgentMessage, type AgentState, type AgentTool, type ThinkingLevel } from "omk-agent-core";
15
+ import type { Agent, AgentEvent, AgentMessage, AgentState, AgentTool, ThinkingLevel } from "omk-agent-core";
16
16
  import type { ImageContent, Model, TextContent } from "omk-ai";
17
17
  import type { ReplayLedgerManager } from "../guardrails/evidence-system.ts";
18
- import { type BashResult } from "./bash-executor.ts";
18
+ import type { BashResult } from "./bash-executor.ts";
19
19
  import { type CompactionResult } from "./compaction/index.ts";
20
20
  import { type ContextCacheInvalidationSnapshot } from "./context-budget-v2-cache-invalidation.ts";
21
21
  import { type ContextUsage, type ExtensionCommandContextActions, type ExtensionErrorListener, type ExtensionMode, ExtensionRunner, type ExtensionUIContext, type InputSource, type ReplacedSessionContext, type SessionStartEvent, type ShutdownHandler, type ToolDefinition, type ToolInfo } from "./extensions/index.ts";
@@ -290,10 +290,8 @@ export declare class AgentSession {
290
290
  private _retryAbortController;
291
291
  private _retryAttempt;
292
292
  private _refusedModels;
293
- private _bashAbortController;
294
- private _pendingBashMessages;
295
- private _configuredBashSandboxPreflight;
296
- private _detectedBashSandboxBackend;
293
+ private readonly _bashService;
294
+ private readonly _compactionService;
297
295
  private _extensionRunner;
298
296
  private _turnIndex;
299
297
  private _resourceLoader;
@@ -323,6 +321,7 @@ export declare class AgentSession {
323
321
  private readonly _replayLedger;
324
322
  private readonly _replayGoalId;
325
323
  private readonly _replayLaneId;
324
+ private readonly _bashRuntime;
326
325
  private _transcriptRepair;
327
326
  private _sessionRiskLevel;
328
327
  private _workspaceMutationCount;
@@ -358,6 +357,8 @@ export declare class AgentSession {
358
357
  private _recordEvidenceReceiptInvalidation;
359
358
  private _sessionRevision;
360
359
  private _appendReplayEvent;
360
+ /** Lazy verified-bash executor bound to this session's replay ledger (default-on path). */
361
+ private _getVerifiedEvidenceExecutor;
361
362
  /** Append one required durable audit record. Persistence failures propagate. */
362
363
  private _appendRunJournalAudit;
363
364
  private _terminationMessage;
@@ -722,15 +723,7 @@ export declare class AgentSession {
722
723
  * Saves to settings.
723
724
  */
724
725
  setFollowUpMode(mode: "all" | "one-at-a-time"): void;
725
- private _captureCompactionState;
726
- private _captureCompactionStateLocked;
727
- private _captureCompactionProvenance;
728
- private _barrierError;
729
- private _evaluateCompactionBarrier;
730
- private _repairEmergencyCompactionTail;
731
- private _priorCommittedCompactionSourceDigests;
732
726
  private _beginCompactionTransaction;
733
- private _detailsWithCompactionEnvelope;
734
727
  private _commitCompaction;
735
728
  private _pendingToolResultReserve;
736
729
  private _compactionHysteresisConfig;