open-multi-agent-kit 0.90.6 → 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 (97) hide show
  1. package/CHANGELOG.md +37 -1
  2. package/README.md +11 -10
  3. package/dist/cli/args.d.ts.map +1 -1
  4. package/dist/cli/args.js +2 -2
  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/command-safety.d.ts.map +1 -1
  11. package/dist/core/command-safety.js +7 -0
  12. package/dist/core/command-safety.js.map +1 -1
  13. package/dist/core/context-budget-headroom.d.ts.map +1 -1
  14. package/dist/core/context-budget-headroom.js +5 -1
  15. package/dist/core/context-budget-headroom.js.map +1 -1
  16. package/dist/core/context-budget-v2-cache-provider.d.ts +4 -2
  17. package/dist/core/context-budget-v2-cache-provider.d.ts.map +1 -1
  18. package/dist/core/context-budget-v2-cache-provider.js +9 -5
  19. package/dist/core/context-budget-v2-cache-provider.js.map +1 -1
  20. package/dist/core/context-budget-v2-selection.d.ts.map +1 -1
  21. package/dist/core/context-budget-v2-selection.js +9 -0
  22. package/dist/core/context-budget-v2-selection.js.map +1 -1
  23. package/dist/core/extensions/loader.d.ts.map +1 -1
  24. package/dist/core/extensions/loader.js +4 -0
  25. package/dist/core/extensions/loader.js.map +1 -1
  26. package/dist/core/extensions/types.d.ts +2 -0
  27. package/dist/core/extensions/types.d.ts.map +1 -1
  28. package/dist/core/extensions/types.js.map +1 -1
  29. package/dist/core/loop-gates.d.ts.map +1 -1
  30. package/dist/core/loop-gates.js +25 -1
  31. package/dist/core/loop-gates.js.map +1 -1
  32. package/dist/core/pi-package-intake.d.ts +1 -0
  33. package/dist/core/pi-package-intake.d.ts.map +1 -1
  34. package/dist/core/pi-package-intake.js +7 -0
  35. package/dist/core/pi-package-intake.js.map +1 -1
  36. package/dist/core/reasoning-router-v4-normalize.d.ts +11 -0
  37. package/dist/core/reasoning-router-v4-normalize.d.ts.map +1 -0
  38. package/dist/core/reasoning-router-v4-normalize.js +224 -0
  39. package/dist/core/reasoning-router-v4-normalize.js.map +1 -0
  40. package/dist/core/reasoning-router-v4-weights.d.ts +13 -5
  41. package/dist/core/reasoning-router-v4-weights.d.ts.map +1 -1
  42. package/dist/core/reasoning-router-v4-weights.js +8 -4
  43. package/dist/core/reasoning-router-v4-weights.js.map +1 -1
  44. package/dist/core/reasoning-router-v4.d.ts +3 -3
  45. package/dist/core/reasoning-router-v4.d.ts.map +1 -1
  46. package/dist/core/reasoning-router-v4.js +394 -58
  47. package/dist/core/reasoning-router-v4.js.map +1 -1
  48. package/dist/core/router-feedback-collector.d.ts +1 -1
  49. package/dist/core/router-feedback-collector.d.ts.map +1 -1
  50. package/dist/core/router-feedback-collector.js +9 -1
  51. package/dist/core/router-feedback-collector.js.map +1 -1
  52. package/dist/core/settings-manager.d.ts +13 -3
  53. package/dist/core/settings-manager.d.ts.map +1 -1
  54. package/dist/core/settings-manager.js +15 -0
  55. package/dist/core/settings-manager.js.map +1 -1
  56. package/dist/guardrails/evidence-system.d.ts +8 -1
  57. package/dist/guardrails/evidence-system.d.ts.map +1 -1
  58. package/dist/guardrails/evidence-system.js +154 -16
  59. package/dist/guardrails/evidence-system.js.map +1 -1
  60. package/dist/modes/interactive/components/control-panel-layout.d.ts.map +1 -1
  61. package/dist/modes/interactive/components/control-panel-layout.js +1 -1
  62. package/dist/modes/interactive/components/control-panel-layout.js.map +1 -1
  63. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  64. package/dist/modes/interactive/components/footer.js +1 -1
  65. package/dist/modes/interactive/components/footer.js.map +1 -1
  66. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  67. package/dist/modes/interactive/components/settings-selector.js +1 -0
  68. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  69. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  70. package/dist/modes/interactive/components/thinking-selector.js +1 -0
  71. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  72. package/dist/modes/interactive/theme/theme.d.ts +1 -1
  73. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  74. package/dist/modes/interactive/theme/theme.js +2 -0
  75. package/dist/modes/interactive/theme/theme.js.map +1 -1
  76. package/dist/types/evidence.d.ts +4 -0
  77. package/dist/types/evidence.d.ts.map +1 -1
  78. package/dist/types/evidence.js.map +1 -1
  79. package/docs/adaptorch-preview.md +84 -0
  80. package/docs/compaction.md +6 -0
  81. package/docs/loadout-domains/frontend-ui.md +5 -1
  82. package/docs/providers.md +6 -0
  83. package/docs/settings.md +17 -2
  84. package/examples/extensions/correctness-wall/README.md +6 -6
  85. package/examples/extensions/correctness-wall/index.ts +37 -11
  86. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  87. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  88. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  89. package/examples/extensions/gondolin/package-lock.json +2 -2
  90. package/examples/extensions/gondolin/package.json +1 -1
  91. package/examples/extensions/preset.ts +2 -2
  92. package/examples/extensions/sandbox/package-lock.json +2 -2
  93. package/examples/extensions/sandbox/package.json +1 -1
  94. package/examples/extensions/with-deps/package-lock.json +2 -2
  95. package/examples/extensions/with-deps/package.json +1 -1
  96. package/npm-shrinkwrap.json +12 -12
  97. package/package.json +4 -4
@@ -39,7 +39,7 @@ SEQUENCE:
39
39
  HARD RULES: no inline styles when a token/utility exists; oklch tokens for color; mobile-first responsive; real content over placeholders; pixel-match the target first, customize later; no visual claim without bounded screenshot/diff evidence.
40
40
  ```
41
41
 
42
- ## Curated skills (54)
42
+ ## Curated skills (58)
43
43
 
44
44
  - `frontend-design`
45
45
  - `frontend-ui-engineering`
@@ -58,7 +58,11 @@ HARD RULES: no inline styles when a token/utility exists; oklch tokens for color
58
58
  - `high-end-visual-design`
59
59
  - `minimalist-ui`
60
60
  - `design-taste-frontend`
61
+ - `design-taste-frontend-v1`
61
62
  - `redesign-existing-projects`
63
+ - `brandkit`
64
+ - `imagegen-frontend-web`
65
+ - `imagegen-frontend-mobile`
62
66
  - `web-design-guidelines`
63
67
  - `fixing-accessibility`
64
68
  - `contrast-checker`
package/docs/providers.md CHANGED
@@ -25,6 +25,12 @@ Use `/logout` to clear credentials. Tokens are stored in `~/.omk/agent/auth.json
25
25
 
26
26
  - Requires ChatGPT Plus or Pro subscription
27
27
  - Officially endorsed by OpenAI: [Codex for OSS](https://developers.openai.com/community/codex-for-oss)
28
+ - `gpt-5.6-moa` is a tool-free virtual model that runs bounded GPT-5.6 Sol and Terra advisers concurrently, then streams a Sol synthesis. It performs three inference calls per turn, caps adviser/synthesis output independently, and is intended for analysis, review, and answer synthesis; use Sol or Terra directly when tools are required.
29
+ - The Codex backend accepts `xhigh` as its highest literal reasoning effort. OMK's `max` and `ultra` tiers map to `xhigh`; `ultra` on the MoA model additionally represents the Sol/Terra delegation workflow.
30
+
31
+ ```bash
32
+ omk --provider openai-codex --model gpt-5.6-moa --thinking ultra
33
+ ```
28
34
 
29
35
  ### Claude Pro/Max
30
36
 
package/docs/settings.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Settings
2
2
 
3
- OMK uses JSON settings files with project settings overriding global settings.
3
+ OMK uses JSON settings files with project settings overriding global settings, except settings explicitly marked global-only.
4
4
 
5
5
  | Location | Scope |
6
6
  |----------|-------|
@@ -86,6 +86,20 @@ Set `OMK_SKIP_VERSION_CHECK=1` to disable the OMK version update check. Use `--o
86
86
  }
87
87
  ```
88
88
 
89
+ ### Context Budget
90
+
91
+ | Setting | Type | Default | Description |
92
+ |---------|------|---------|-------------|
93
+ | `contextBudget.enabled` | boolean | `false` | Globally enable prompt resource budgeting and its in-memory, session-scoped plan/representation cache |
94
+
95
+ ```json
96
+ {
97
+ "contextBudget": { "enabled": true }
98
+ }
99
+ ```
100
+
101
+ This setting is global-only: `.omk/settings.json` cannot enable or disable it. Use `OMK_CONTEXT_GOVERNOR=1` to force it on for one process or `OMK_CONTEXT_GOVERNOR=0` to force it off for a baseline run. The cache is never persisted or shared between sessions.
102
+
89
103
  ### Branch Summary
90
104
 
91
105
  | Setting | Type | Default | Description |
@@ -245,6 +259,7 @@ See [packages.md](packages.md) for package management details.
245
259
  "reserveTokens": 16384,
246
260
  "keepRecentTokens": 20000
247
261
  },
262
+ "contextBudget": { "enabled": true },
248
263
  "retry": {
249
264
  "enabled": true,
250
265
  "maxRetries": 3
@@ -259,7 +274,7 @@ See [packages.md](packages.md) for package management details.
259
274
 
260
275
  ## Project Overrides
261
276
 
262
- Project settings (`.omk/settings.json`) override global settings. Nested objects are merged:
277
+ Project settings (`.omk/settings.json`) override global settings. Nested objects are merged. `contextBudget` is the exception: it is read from global settings only.
263
278
 
264
279
  ```json
265
280
  // ~/.omk/agent/settings.json (global)
@@ -18,7 +18,7 @@ cp -r examples/extensions/correctness-wall ~/.omk/agent/extensions/correctness-w
18
18
 
19
19
  ## Claim boundaries
20
20
 
21
- - **In scope**: unified-diff preview for pending `edit`/`write`, fast policy wall (write scope, flags), optional OA adjudication when `correctness_wall_evaluate` is called with `runIds`, `previewOnly: false`, and an OA fixture file (env or tool param).
21
+ - **In scope**: unified-diff preview for pending `edit`/`write`, fast policy wall (write scope, flags), optional OA adjudication when `correctness_wall_evaluate` is called with `runIds`, `previewOnly: false`, and either an OA fixture file or an explicitly enabled host-injected MCP transport.
22
22
  - **Out of scope**: Replacing core hooks, modifying `packages/adaptorch-wpl` from this lane, or adding npm workspace dependencies. The extension only **imports** `evaluateCorrectnessWall` and `AdaptOrchClient` from `../../../../adaptorch-wpl/src/index.ts`.
23
23
 
24
24
  ## Environment variables
@@ -29,12 +29,12 @@ cp -r examples/extensions/correctness-wall ~/.omk/agent/extensions/correctness-w
29
29
  | `OMK_WALL_SCOPE` | *(empty)* | Comma-separated glob/path prefixes allowed in the diff. Empty means scope checks do not approve any path (out-of-scope diffs can trigger blocking flags when paths are present). |
30
30
  | `OMK_WALL_OVERRIDE` | unset | When `1` / `true` / `yes`, `soft` mode does not block `BLOCKED` verdicts (human override). |
31
31
  | `OMK_WALL_REPAIR_BUDGET` | `1` | Capped regenerate budget: max **blocked attempts** per packet (keyed by `packetId` or SHA-256 of `kind` + sorted `OMK_WALL_SCOPE`) before repair hints are treated as exhausted. Also caps hint string count in UI/JSON. Persisted in `.omk/wall-cache/repair-budget.json`. Hints only — no auto-regenerate. |
32
- | `OMK_WALL_RUN_IDS` | *(empty)* | Comma-separated AdaptOrch run ids. On `edit`/`write` hooks, when non-empty **and** `OMK_WALL_OA_FIXTURE_PATH` (or per-tool `adjudicationFixturePath`) is set, evaluation uses `previewOnly: false` and OA adjudication via `resolveOaClientForEvaluation`. Otherwise hooks stay preview-only. |
33
- | `OMK_WALL_OA_FIXTURE_PATH` | unset | Path to OA adjudication fixture JSON. Used when `correctness_wall_evaluate` runs with `previewOnly: false` and non-empty `runIds`, and on edit/write hooks when combined with `OMK_WALL_RUN_IDS`. Overridden per call by `adjudicationFixturePath`. |
32
+ | `OMK_WALL_RUN_IDS` | *(empty)* | Comma-separated AdaptOrch run ids. On `edit`/`write` hooks, non-empty IDs enable OA only with either `OMK_WALL_OA_FIXTURE_PATH` or explicit `OMK_WALL_OA_TRANSPORT=mcp`/`live` plus a bound host `callMcpTool`; otherwise hooks stay preview-only. An unbound MCP facade falls back to preview-only. |
33
+ | `OMK_WALL_OA_FIXTURE_PATH` | unset | Path to OA adjudication fixture JSON. Used when `correctness_wall_evaluate` runs with `previewOnly: false` and non-empty `runIds`, or as the fixture alternative for edit/write hooks. Overridden per call by `adjudicationFixturePath`. |
34
34
  | `OMK_WALL_AUTO_REGENERATE` | unset | When `1` / `true` / `yes`, `correctness_wall_evaluate` JSON may include a `regeneratePacket` (capped hints only; no automatic patch apply). |
35
35
  | `OMK_WALL_RECEIPT_SIGNING_SECRET` | unset | When set, verification receipts include `signedReceipt` (HMAC-SHA256 over digest composite). Never log or commit this value. |
36
36
  | `OMK_WALL_DEEP_PHASE` | `stub` | `docker` records deep-wall intent; hermetic runner still unavailable (batch-2). |
37
- | `OMK_WALL_OA_TRANSPORT` | `fixture` | `mcp` or `live` uses session-injected MCP `callTool` via `setWallAdaptOrchCallTool` (see `adjudication-fixture.ts`). Fixture path optional for receipt metadata when using `mcp`. |
37
+ | `OMK_WALL_OA_TRANSPORT` | `fixture` | `mcp` or `live` uses host-injected MCP `callMcpTool` via `setWallAdaptOrchCallTool` (see `adjudication-fixture.ts`). With non-empty `OMK_WALL_RUN_IDS` and a bound handler, this explicitly enables fixtureless read-only OA hook adjudication; it calls only `adaptorch_get_run`, `adaptorch_get_artifacts`, and `adaptorch_get_traces`. An unbound facade falls back to preview-only. |
38
38
 
39
39
  ## OA adjudication fixture format
40
40
 
@@ -98,7 +98,7 @@ Example receipt fragment:
98
98
  On each `edit` or `write` `tool_call` hook:
99
99
 
100
100
  1. Build a unified diff preview from `event.input` (edits or write content).
101
- 2. Call `evaluateCorrectnessWall` with scope from `OMK_WALL_SCOPE`. Default `previewOnly: true`; when `OMK_WALL_RUN_IDS` is non-empty and an OA fixture path is set (`OMK_WALL_OA_FIXTURE_PATH`), hooks use `previewOnly: false`, pass `runIds`, and supply the OA client from `resolveOaClientForEvaluation`.
101
+ 2. Call `evaluateCorrectnessWall` with scope from `OMK_WALL_SCOPE`. Default `previewOnly: true`; with non-empty `OMK_WALL_RUN_IDS`, hooks use `previewOnly: false` when either an OA fixture path is set or `OMK_WALL_OA_TRANSPORT=mcp`/`live` reaches a bound host-injected MCP transport. An unbound facade falls back to preview-only. The live hook path performs read-only OA introspection only.
102
102
  3. Apply `OMK_PATCH_SAFETY_WALL_MODE` blocking rules; blocked calls return `{ block: true, reason: "<short user message>" }`.
103
103
  4. Write a summary snapshot to `.omk/wall-cache/latest.json` (mode, verdict, `wouldBlock`, compact card summary, timestamp — no full diff or secrets).
104
104
  5. In `shadow` mode, append one NDJSON line per gated tool call to **`.omk/wall-cache/shadow-telemetry.ndjson`** (`event`, `wall_version`, `mode`, `verdict`, `wouldBlock`, `kind`, `tool`, `previewOnly`, `usedOaFixture`, `timestamp` — no diff or secrets).
@@ -107,5 +107,5 @@ On each `edit` or `write` `tool_call` hook:
107
107
  ## Limitations
108
108
 
109
109
  - Edit preview reads the target file from disk relative to session `cwd`; if the file is missing or paths are wrong, the hook may return `INCONCLUSIVE` (and block in `hard` mode).
110
- - Hook OA requires both `OMK_WALL_RUN_IDS` and a fixture path; if either is missing, hooks remain preview-only. Explicit `correctness_wall_evaluate` can still pass `runIds`, `previewOnly: false`, and `adjudicationFixturePath` per call.
110
+ - Hook OA requires non-empty `OMK_WALL_RUN_IDS` plus either a fixture path or explicit `OMK_WALL_OA_TRANSPORT=mcp`/`live` with bound host `callMcpTool`; otherwise hooks remain preview-only. An unbound facade also falls back to preview-only. Explicit `correctness_wall_evaluate` can still pass `runIds`, `previewOnly: false`, and `adjudicationFixturePath` per call.
111
111
  - Relative imports require loading this extension from the monorepo layout (or an equivalent path to `adaptorch-wpl` and `coding-agent` sources).
@@ -17,6 +17,7 @@ import {
17
17
  buildRegeneratePacket,
18
18
  capRepairHints,
19
19
  evaluateCorrectnessWall,
20
+ parseOaTransportModeFromEnv,
20
21
  parseRepairBudget,
21
22
  shouldOfferRepair,
22
23
  } from "../../../../adaptorch-wpl/src/index.ts";
@@ -105,6 +106,11 @@ function receiptSigningSecret(): string | undefined {
105
106
  return v && v.length > 0 ? v : undefined;
106
107
  }
107
108
 
109
+ function isUnboundMcpCall(value: unknown): boolean {
110
+ const message = value instanceof Error ? value.message : typeof value === "string" ? value : "";
111
+ return /callMcpTool is not bound/i.test(message);
112
+ }
113
+
108
114
  function shortBlockReason(card: VerdictCard): string {
109
115
  if (card.blocked_reasons.length > 0) return card.blocked_reasons[0];
110
116
  if (card.next_actions.length > 0) return card.next_actions[0];
@@ -379,8 +385,10 @@ export default function (omk: ExtensionAPI) {
379
385
  const approvedWriteScope = parseApprovedScope();
380
386
  const runIds = parseRunIdsFromEnv();
381
387
  const adjudicationFixturePath = resolveAdjudicationFixturePath(undefined);
382
- const hookOaEnabled = runIds.length > 0 && adjudicationFixturePath !== undefined;
383
- const previewOnly = !hookOaEnabled;
388
+ const hookOaEnabled =
389
+ runIds.length > 0 &&
390
+ (adjudicationFixturePath !== undefined || (parseOaTransportModeFromEnv() === "mcp" && omk.isMcpToolBound()));
391
+ let previewOnly = !hookOaEnabled;
384
392
 
385
393
  const input = event.input as EditInput;
386
394
  const preview =
@@ -413,19 +421,37 @@ export default function (omk: ExtensionAPI) {
413
421
  return undefined;
414
422
  }
415
423
 
416
- const { verdictCard, receipt } = await evaluateDiff({
417
- kind,
418
- diffText: preview,
419
- approvedWriteScope,
420
- previewOnly,
421
- runIds: hookOaEnabled ? runIds : undefined,
422
- adjudicationFixturePath: hookOaEnabled ? adjudicationFixturePath : undefined,
423
- });
424
+ const fixturelessLiveCall =
425
+ hookOaEnabled && adjudicationFixturePath === undefined && parseOaTransportModeFromEnv() === "mcp";
426
+ let evaluation: Awaited<ReturnType<typeof evaluateDiff>>;
427
+ try {
428
+ evaluation = await evaluateDiff({
429
+ kind,
430
+ diffText: preview,
431
+ approvedWriteScope,
432
+ previewOnly,
433
+ runIds: hookOaEnabled ? runIds : undefined,
434
+ adjudicationFixturePath: hookOaEnabled ? adjudicationFixturePath : undefined,
435
+ });
436
+ } catch (error) {
437
+ if (!fixturelessLiveCall || !isUnboundMcpCall(error)) throw error;
438
+ previewOnly = true;
439
+ evaluation = await evaluateDiff({ kind, diffText: preview, approvedWriteScope, previewOnly: true });
440
+ }
441
+ if (
442
+ fixturelessLiveCall &&
443
+ evaluation.receipt.adjudicationReasonCode === "RUN_FETCH_FAILED" &&
444
+ evaluation.verdictCard.blocked_reasons.some(isUnboundMcpCall)
445
+ ) {
446
+ previewOnly = true;
447
+ evaluation = await evaluateDiff({ kind, diffText: preview, approvedWriteScope, previewOnly: true });
448
+ }
449
+ const { verdictCard, receipt } = evaluation;
424
450
 
425
451
  await persistToolCallVerdict(ctx, mode, verdictCard, {
426
452
  tool: event.toolName,
427
453
  previewOnly,
428
- usedOaFixture: hookOaEnabled,
454
+ usedOaFixture: adjudicationFixturePath !== undefined,
429
455
  wall_version: receipt.wall_version,
430
456
  });
431
457
 
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "omk-extension-custom-provider",
3
- "version": "0.90.6",
3
+ "version": "0.90.8",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "omk-extension-custom-provider",
9
- "version": "0.90.6",
9
+ "version": "0.90.8",
10
10
  "dependencies": {
11
11
  "@anthropic-ai/sdk": "^0.52.0"
12
12
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "omk-extension-custom-provider-anthropic",
3
3
  "private": true,
4
- "version": "0.90.6",
4
+ "version": "0.90.8",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "clean": "echo 'nothing to clean'",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "omk-extension-custom-provider-gitlab-duo",
3
3
  "private": true,
4
- "version": "0.90.6",
4
+ "version": "0.90.8",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "clean": "echo 'nothing to clean'",
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "omk-extension-gondolin",
3
- "version": "0.90.6",
3
+ "version": "0.90.8",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "omk-extension-gondolin",
9
- "version": "0.90.6",
9
+ "version": "0.90.8",
10
10
  "dependencies": {
11
11
  "@earendil-works/gondolin": "0.12.0"
12
12
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "omk-extension-gondolin",
3
3
  "private": true,
4
- "version": "0.90.6",
4
+ "version": "0.90.8",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "clean": "echo 'nothing to clean'",
@@ -52,7 +52,7 @@ interface Preset {
52
52
  /** Model ID (e.g., "claude-sonnet-4-5") */
53
53
  model?: string;
54
54
  /** Thinking level */
55
- thinkingLevel?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max";
55
+ thinkingLevel?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | "ultra";
56
56
  /** Tools to enable (replaces default set) */
57
57
  tools?: string[];
58
58
  /** Instructions to append to system prompt */
@@ -100,7 +100,7 @@ function loadPresets(cwd: string): PresetsConfig {
100
100
 
101
101
  interface OriginalState {
102
102
  model: Model<Api> | undefined;
103
- thinkingLevel: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max";
103
+ thinkingLevel: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | "ultra";
104
104
  tools: string[];
105
105
  }
106
106
 
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "omk-extension-sandbox",
3
- "version": "0.90.6",
3
+ "version": "0.90.8",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "omk-extension-sandbox",
9
- "version": "0.90.6",
9
+ "version": "0.90.8",
10
10
  "dependencies": {
11
11
  "@anthropic-ai/sandbox-runtime": "0.0.26"
12
12
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "omk-extension-sandbox",
3
3
  "private": true,
4
- "version": "0.90.6",
4
+ "version": "0.90.8",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "clean": "echo 'nothing to clean'",
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "omk-extension-with-deps",
3
- "version": "0.90.6",
3
+ "version": "0.90.8",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "omk-extension-with-deps",
9
- "version": "0.90.6",
9
+ "version": "0.90.8",
10
10
  "dependencies": {
11
11
  "ms": "^2.1.3"
12
12
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "omk-extension-with-deps",
3
3
  "private": true,
4
- "version": "0.90.6",
4
+ "version": "0.90.8",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "clean": "echo 'nothing to clean'",
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "open-multi-agent-kit",
3
- "version": "0.90.6",
3
+ "version": "0.90.8",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "open-multi-agent-kit",
9
- "version": "0.90.6",
9
+ "version": "0.90.8",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
- "omk-agent-core": "^0.90.6",
13
- "omk-ai": "^0.90.6",
14
- "omk-tui": "^0.90.6",
12
+ "omk-agent-core": "^0.90.8",
13
+ "omk-ai": "^0.90.8",
14
+ "omk-tui": "^0.90.8",
15
15
  "@silvia-odwyer/photon-node": "0.3.4",
16
16
  "chalk": "5.6.2",
17
17
  "cross-spawn": "7.0.6",
@@ -1423,11 +1423,11 @@
1423
1423
  }
1424
1424
  },
1425
1425
  "node_modules/omk-agent-core": {
1426
- "version": "0.90.6",
1427
- "resolved": "https://registry.npmjs.org/omk-agent-core/-/omk-agent-core-0.90.6.tgz",
1426
+ "version": "0.90.8",
1427
+ "resolved": "https://registry.npmjs.org/omk-agent-core/-/omk-agent-core-0.90.8.tgz",
1428
1428
  "license": "MIT",
1429
1429
  "dependencies": {
1430
- "omk-ai": "^0.90.6",
1430
+ "omk-ai": "^0.90.8",
1431
1431
  "ignore": "7.0.5",
1432
1432
  "typebox": "1.1.38",
1433
1433
  "yaml": "2.9.0"
@@ -1437,8 +1437,8 @@
1437
1437
  }
1438
1438
  },
1439
1439
  "node_modules/omk-ai": {
1440
- "version": "0.90.6",
1441
- "resolved": "https://registry.npmjs.org/omk-ai/-/omk-ai-0.90.6.tgz",
1440
+ "version": "0.90.8",
1441
+ "resolved": "https://registry.npmjs.org/omk-ai/-/omk-ai-0.90.8.tgz",
1442
1442
  "license": "MIT",
1443
1443
  "dependencies": {
1444
1444
  "@anthropic-ai/sdk": "0.91.1",
@@ -1460,8 +1460,8 @@
1460
1460
  }
1461
1461
  },
1462
1462
  "node_modules/omk-tui": {
1463
- "version": "0.90.6",
1464
- "resolved": "https://registry.npmjs.org/omk-tui/-/omk-tui-0.90.6.tgz",
1463
+ "version": "0.90.8",
1464
+ "resolved": "https://registry.npmjs.org/omk-tui/-/omk-tui-0.90.8.tgz",
1465
1465
  "license": "MIT",
1466
1466
  "dependencies": {
1467
1467
  "get-east-asian-width": "1.6.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "open-multi-agent-kit",
3
- "version": "0.90.6",
3
+ "version": "0.90.8",
4
4
  "description": "OMK (Open Multi-Agent Kit) coding agent CLI with read, bash, edit, write tools and session management",
5
5
  "type": "module",
6
6
  "omkConfig": {
@@ -41,9 +41,9 @@
41
41
  "prepublishOnly": "npm run clean && npm run build && npm run shrinkwrap"
42
42
  },
43
43
  "dependencies": {
44
- "omk-agent-core": "^0.90.6",
45
- "omk-ai": "^0.90.6",
46
- "omk-tui": "^0.90.6",
44
+ "omk-agent-core": "^0.90.8",
45
+ "omk-ai": "^0.90.8",
46
+ "omk-tui": "^0.90.8",
47
47
  "@silvia-odwyer/photon-node": "0.3.4",
48
48
  "chalk": "5.6.2",
49
49
  "cross-spawn": "7.0.6",