open-multi-agent-kit 0.96.1 → 0.96.2
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.
- package/CHANGELOG.md +41 -0
- package/README.md +12 -2
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +1 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/commands/resource-doctor-cli.d.ts +22 -0
- package/dist/commands/resource-doctor-cli.d.ts.map +1 -0
- package/dist/commands/resource-doctor-cli.js +98 -0
- package/dist/commands/resource-doctor-cli.js.map +1 -0
- package/dist/core/agent-session.d.ts +37 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +289 -5
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/completion-sound.d.ts +109 -0
- package/dist/core/completion-sound.d.ts.map +1 -0
- package/dist/core/completion-sound.js +165 -0
- package/dist/core/completion-sound.js.map +1 -0
- package/dist/core/context-budget-system-prompt-items.d.ts.map +1 -1
- package/dist/core/context-budget-system-prompt-items.js +2 -2
- package/dist/core/context-budget-system-prompt-items.js.map +1 -1
- package/dist/core/host-resource-probe.d.ts +63 -0
- package/dist/core/host-resource-probe.d.ts.map +1 -0
- package/dist/core/host-resource-probe.js +126 -0
- package/dist/core/host-resource-probe.js.map +1 -0
- package/dist/core/host-resource-snapshot.d.ts +54 -0
- package/dist/core/host-resource-snapshot.d.ts.map +1 -0
- package/dist/core/host-resource-snapshot.js +139 -0
- package/dist/core/host-resource-snapshot.js.map +1 -0
- package/dist/core/prompt-settlement.d.ts +81 -0
- package/dist/core/prompt-settlement.d.ts.map +1 -0
- package/dist/core/prompt-settlement.js +84 -0
- package/dist/core/prompt-settlement.js.map +1 -0
- package/dist/core/provider-resilience.d.ts.map +1 -1
- package/dist/core/provider-resilience.js +1 -1
- package/dist/core/provider-resilience.js.map +1 -1
- package/dist/core/provider-retry.d.ts +7 -0
- package/dist/core/provider-retry.d.ts.map +1 -1
- package/dist/core/provider-retry.js +24 -0
- package/dist/core/provider-retry.js.map +1 -1
- package/dist/core/provider-usage.d.ts +15 -2
- package/dist/core/provider-usage.d.ts.map +1 -1
- package/dist/core/provider-usage.js +110 -2
- package/dist/core/provider-usage.js.map +1 -1
- package/dist/core/reasoning-router-resolver.d.ts.map +1 -1
- package/dist/core/reasoning-router-resolver.js +1 -1
- package/dist/core/reasoning-router-resolver.js.map +1 -1
- package/dist/core/resource-admission-config.d.ts +55 -0
- package/dist/core/resource-admission-config.d.ts.map +1 -0
- package/dist/core/resource-admission-config.js +97 -0
- package/dist/core/resource-admission-config.js.map +1 -0
- package/dist/core/resource-admission.d.ts +81 -0
- package/dist/core/resource-admission.d.ts.map +1 -0
- package/dist/core/resource-admission.js +128 -0
- package/dist/core/resource-admission.js.map +1 -0
- package/dist/core/resource-governor-format.d.ts +50 -0
- package/dist/core/resource-governor-format.d.ts.map +1 -0
- package/dist/core/resource-governor-format.js +113 -0
- package/dist/core/resource-governor-format.js.map +1 -0
- package/dist/core/resource-governor-settings.d.ts +56 -0
- package/dist/core/resource-governor-settings.d.ts.map +1 -0
- package/dist/core/resource-governor-settings.js +89 -0
- package/dist/core/resource-governor-settings.js.map +1 -0
- package/dist/core/resource-observation-journal.d.ts +74 -0
- package/dist/core/resource-observation-journal.d.ts.map +1 -0
- package/dist/core/resource-observation-journal.js +198 -0
- package/dist/core/resource-observation-journal.js.map +1 -0
- package/dist/core/resource-safety-gate.d.ts +54 -0
- package/dist/core/resource-safety-gate.d.ts.map +1 -0
- package/dist/core/resource-safety-gate.js +51 -0
- package/dist/core/resource-safety-gate.js.map +1 -0
- package/dist/core/run-journal.d.ts.map +1 -1
- package/dist/core/run-journal.js +13 -1
- package/dist/core/run-journal.js.map +1 -1
- package/dist/core/run-resource-lease.d.ts +73 -0
- package/dist/core/run-resource-lease.d.ts.map +1 -0
- package/dist/core/run-resource-lease.js +78 -0
- package/dist/core/run-resource-lease.js.map +1 -0
- package/dist/core/session-bash-service.d.ts +12 -0
- package/dist/core/session-bash-service.d.ts.map +1 -1
- package/dist/core/session-bash-service.js +14 -0
- package/dist/core/session-bash-service.js.map +1 -1
- package/dist/core/session-system-prompt.d.ts +2 -0
- package/dist/core/session-system-prompt.d.ts.map +1 -1
- package/dist/core/session-system-prompt.js +2 -0
- package/dist/core/session-system-prompt.js.map +1 -1
- package/dist/core/session-termination.d.ts +7 -2
- package/dist/core/session-termination.d.ts.map +1 -1
- package/dist/core/session-termination.js +29 -1
- package/dist/core/session-termination.js.map +1 -1
- package/dist/core/settings-manager.d.ts +12 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +36 -0
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +1 -0
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/subagent-lane-launcher.d.ts +64 -0
- package/dist/core/subagent-lane-launcher.d.ts.map +1 -0
- package/dist/core/subagent-lane-launcher.js +107 -0
- package/dist/core/subagent-lane-launcher.js.map +1 -0
- package/dist/core/system-cpu-sampler.d.ts +45 -0
- package/dist/core/system-cpu-sampler.d.ts.map +1 -0
- package/dist/core/system-cpu-sampler.js +95 -0
- package/dist/core/system-cpu-sampler.js.map +1 -0
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +5 -8
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/workload-classifier.d.ts +32 -0
- package/dist/core/workload-classifier.d.ts.map +1 -0
- package/dist/core/workload-classifier.js +66 -0
- package/dist/core/workload-classifier.js.map +1 -0
- package/dist/core/workload-family-matcher.d.ts +3 -0
- package/dist/core/workload-family-matcher.d.ts.map +1 -0
- package/dist/core/workload-family-matcher.js +126 -0
- package/dist/core/workload-family-matcher.js.map +1 -0
- package/dist/core/workload-permit-pool.d.ts +78 -0
- package/dist/core/workload-permit-pool.d.ts.map +1 -0
- package/dist/core/workload-permit-pool.js +138 -0
- package/dist/core/workload-permit-pool.js.map +1 -0
- package/dist/core/workload-shard-executor.d.ts +68 -0
- package/dist/core/workload-shard-executor.d.ts.map +1 -0
- package/dist/core/workload-shard-executor.js +156 -0
- package/dist/core/workload-shard-executor.js.map +1 -0
- package/dist/core/workload-shard-plan.d.ts +81 -0
- package/dist/core/workload-shard-plan.d.ts.map +1 -0
- package/dist/core/workload-shard-plan.js +183 -0
- package/dist/core/workload-shard-plan.js.map +1 -0
- package/dist/core/workload-shard-runner.d.ts +11 -0
- package/dist/core/workload-shard-runner.d.ts.map +1 -0
- package/dist/core/workload-shard-runner.js +98 -0
- package/dist/core/workload-shard-runner.js.map +1 -0
- package/dist/core/workload-shard-store.d.ts +44 -0
- package/dist/core/workload-shard-store.d.ts.map +1 -0
- package/dist/core/workload-shard-store.js +189 -0
- package/dist/core/workload-shard-store.js.map +1 -0
- package/dist/core/workload-sharders.d.ts +47 -0
- package/dist/core/workload-sharders.d.ts.map +1 -0
- package/dist/core/workload-sharders.js +162 -0
- package/dist/core/workload-sharders.js.map +1 -0
- package/dist/core/workload-shell-scan.d.ts +12 -0
- package/dist/core/workload-shell-scan.d.ts.map +1 -0
- package/dist/core/workload-shell-scan.js +79 -0
- package/dist/core/workload-shell-scan.js.map +1 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +6 -0
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +4 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +81 -0
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/docs/providers.md +1 -1
- package/docs/sdk.md +4 -0
- package/docs/settings.md +64 -2
- package/docs/skills.md +16 -0
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/gondolin/package-lock.json +2 -2
- package/examples/extensions/gondolin/package.json +1 -1
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/subagent/agent-capability-router.test.ts +7 -0
- package/examples/extensions/subagent/domain-profiles.ts +0 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/npm-shrinkwrap.json +18 -18
- package/package.json +7 -9
package/docs/providers.md
CHANGED
|
@@ -28,7 +28,7 @@ When the status sidebar is pinned, its **USAGE** section lists every configured
|
|
|
28
28
|
|
|
29
29
|
Codex streaming passively merges `x-codex-primary-*`, `x-codex-secondary-*`, and `codex.rate_limits` signals through the non-blocking `StreamOptions.onRateLimit` observer. These signals supplement missing polling windows only when the Codex service returns them; OMK does not infer a missing 5-hour value from a 7-day value.
|
|
30
30
|
|
|
31
|
-
Alibaba Model Studio Token Plan is recognized as **QWEN TOKEN PLAN**
|
|
31
|
+
Alibaba Model Studio Token Plan is recognized as **QWEN TOKEN PLAN** and reads its 7-day window through the official [QwenCloud management CLI](https://docs.qwencloud.com/api-reference/preparation/cli): when `qwencloud` is installed and logged in (`npm i -g @qwencloud/qwencloud-cli && qwencloud auth login`), OMK runs `qwencloud usage summary --format json` (override the binary with `QWENCLOUD_CLI`) and shows `token_plan.usedPct` plus the reset countdown. The CLI holds its own OAuth management credential; OMK never sends the plan's `sk-*` inference key anywhere for quota. Without the CLI the entry shows a `connect:` hint instead — the [console usage page](https://modelstudio.console.alibabacloud.com/ap-southeast-1?tab=plan#/efm/subscription/token-plan/personal) requires an Alibaba Cloud console session that OMK deliberately does not scrape, and OMK still never copies browser cookies or estimates quota from token counts. Qwen OAuth remains explicit `quota API unavailable`.
|
|
32
32
|
|
|
33
33
|
With a stored native `xai` OAuth credential, OMK reads `GET https://cli-chat-proxy.grok.com/v1/billing?format=credits` and shows the weekly SuperGrok pool from `config.creditUsagePercent` plus its reset from `config.currentPeriod.end`. `XAI_API_KEY` is a separate API-billing credential and does not authorize this subscription endpoint.
|
|
34
34
|
|
package/docs/sdk.md
CHANGED
|
@@ -255,10 +255,14 @@ interface PromptOptions {
|
|
|
255
255
|
images?: ImageContent[];
|
|
256
256
|
streamingBehavior?: "steer" | "followUp";
|
|
257
257
|
source?: InputSource;
|
|
258
|
+
activeSkillNames?: readonly string[];
|
|
259
|
+
activeSkillSource?: string;
|
|
258
260
|
preflightResult?: (success: boolean) => void;
|
|
259
261
|
}
|
|
260
262
|
```
|
|
261
263
|
|
|
264
|
+
`activeSkillNames` marks additional discovered skills active for this turn; `activeSkillSource` labels their provenance. They merge with global `defaultActiveSkills`, prioritize matching inventory entries, and do not expand authorization or inline full skill instructions.
|
|
265
|
+
|
|
262
266
|
`preflightResult` is called once per `prompt()` invocation:
|
|
263
267
|
|
|
264
268
|
- `true` when the prompt was accepted, queued, or handled immediately
|
package/docs/settings.md
CHANGED
|
@@ -180,6 +180,67 @@ Built-in defaults are 30 seconds for `read`, `grep`, `find`, and `ls`; 60 second
|
|
|
180
180
|
|
|
181
181
|
The DAG preserves source-order result artifacts. `bash`, unknown tools, and extension tools without explicit resource claims remain exclusive. Tool timeout is logical cancellation: OMK closes the tool call and signals cancellation, but arbitrary JavaScript or external side effects may continue if the tool ignores that signal.
|
|
182
182
|
|
|
183
|
+
### Resource Governor
|
|
184
|
+
|
|
185
|
+
The governor probes host capacity (memory, workspace disk, V8 heap, system CPU) and evaluates a resource admission decision, surfaced through `/resource [probe|policy]` in the TUI and `omk doctor resources [--json]` headless. In `observe` mode (default) it records decisions without changing behavior; in `adaptive`/`strict` modes each top-level prompt runs a bounded preflight probe and throttles the effective tool concurrency for that run (never above `agent.maxToolConcurrency`), restoring it when the run settles. Heavy-process caps are enforced at the governed bash boundary; the internal subagent-lane launcher is not wired into live child dispatch. Absent settings keep prior behavior unchanged.
|
|
186
|
+
|
|
187
|
+
| Setting | Type | Default | Description |
|
|
188
|
+
| --------- | ------ | --------- | ------------- |
|
|
189
|
+
| `resourceGovernor.enabled` | boolean | `true` | `false` forces mode `off` |
|
|
190
|
+
| `resourceGovernor.mode` | string | `"observe"` | `off` (disabled), `observe` (record only), `adaptive`/`strict` (throttle per-run tool concurrency under pressure) |
|
|
191
|
+
| `resourceGovernor.maxProbeMs` | number | `300` | Async probe deadline in ms; valid `50..5000` |
|
|
192
|
+
| `resourceGovernor.cpuSampleMs` | number | `180` | CPU two-sample interval in ms; valid `150..250` |
|
|
193
|
+
| `resourceGovernor.constrainedAvailableMemoryMiB` | number | `1536` | Below this effective available memory the host is `constrained` |
|
|
194
|
+
| `resourceGovernor.criticalAvailableMemoryMiB` | number | `512` | Below this it is `critical`; must be `<=` the constrained threshold |
|
|
195
|
+
| `resourceGovernor.constrainedDiskFreeMiB` | number | `4096` | Workspace free-disk threshold for `constrained` |
|
|
196
|
+
| `resourceGovernor.criticalDiskFreeMiB` | number | `1024` | Workspace free-disk threshold for `critical` |
|
|
197
|
+
| `resourceGovernor.constrainedHeapRatio` | number | `0.75` | V8 heap used/limit ratio for `constrained` |
|
|
198
|
+
| `resourceGovernor.criticalHeapRatio` | number | `0.85` | V8 heap ratio for `critical` |
|
|
199
|
+
| `resourceGovernor.busyCpuPercent` | number | `85` | System CPU percent that throttles; CPU alone never reports `critical` |
|
|
200
|
+
| `resourceGovernor.normalMaxToolConcurrency` | number | `4` | Admission tool cap at `normal` pressure |
|
|
201
|
+
| `resourceGovernor.constrainedMaxToolConcurrency` | number | `2` | Admission tool cap at `constrained` pressure |
|
|
202
|
+
| `resourceGovernor.criticalMaxToolConcurrency` | number | `1` | Admission tool cap at `critical` pressure |
|
|
203
|
+
| `resourceGovernor.normalMaxParallelLanes` | number | `4` | Subagent lane cap at `normal` |
|
|
204
|
+
| `resourceGovernor.constrainedMaxParallelLanes` | number | `2` | Subagent lane cap at `constrained` |
|
|
205
|
+
| `resourceGovernor.criticalMaxParallelLanes` | number | `1` | Subagent lane cap at `critical` |
|
|
206
|
+
| `resourceGovernor.normalMaxHeavyProcesses` | number | `2` | Heavy process cap at `normal` |
|
|
207
|
+
| `resourceGovernor.constrainedMaxHeavyProcesses` | number | `1` | Heavy process cap at `constrained` |
|
|
208
|
+
| `resourceGovernor.criticalMaxHeavyProcesses` | number | `1` | Heavy process cap at `critical` |
|
|
209
|
+
|
|
210
|
+
Validation is explicit and fail-closed: invalid values are reported (in `/resource policy` and `omk doctor resources --json` under `settingsErrors`) and the defaults apply for the failed area. Caps must satisfy `normal >= constrained >= critical` and stay within `1..64`; critical thresholds must not exceed constrained ones. Admission caps never raise user-configured caps (`agent.maxToolConcurrency` keeps precedence; `0` "unlimited" is limited to the admission cap in `adaptive` and `strict` modes).
|
|
211
|
+
|
|
212
|
+
`OMK_RESOURCE_GOVERNOR=off|observe|adaptive|strict` overrides the mode for one process, e.g. `OMK_RESOURCE_GOVERNOR=off omk` as a rollback switch.
|
|
213
|
+
|
|
214
|
+
### Completion Sound
|
|
215
|
+
|
|
216
|
+
Plays a short system sound when a long prompt finally settles (all retries and continuations drained), only in the interactive TUI on a real TTY — never in RPC, JSON, print mode, or CI. Default off. Backends use fixed executables with fixed arguments (macOS `afplay`, Windows/WSL PowerShell system sound, Linux `canberra-gtk-play`/`paplay`/`aplay`), falling back to the terminal bell. Sound failures are diagnostics only and never affect the prompt outcome.
|
|
217
|
+
|
|
218
|
+
| Setting | Type | Default | Description |
|
|
219
|
+
| --------- | ------ | --------- | ------------- |
|
|
220
|
+
| `notifications.completionSound.enabled` | boolean | `false` | Master switch; env `OMK_COMPLETION_SOUND` set to `0` or `1` overrides per process |
|
|
221
|
+
| `notifications.completionSound.minDurationMs` | number | `5000` | Only chime for prompts that ran at least this long |
|
|
222
|
+
| `notifications.completionSound.onSuccess` | boolean | `true` | Chime on completed prompts |
|
|
223
|
+
| `notifications.completionSound.onFailure` | boolean | `true` | Chime on failed prompts (user aborts never chime) |
|
|
224
|
+
| `notifications.completionSound.terminalBellFallback` | boolean | `true` | Fall back to the terminal BEL when no sound backend works |
|
|
225
|
+
|
|
226
|
+
```json
|
|
227
|
+
{
|
|
228
|
+
"notifications": {
|
|
229
|
+
"completionSound": { "enabled": true, "minDurationMs": 10000 }
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
```json
|
|
235
|
+
{
|
|
236
|
+
"resourceGovernor": {
|
|
237
|
+
"mode": "observe",
|
|
238
|
+
"constrainedAvailableMemoryMiB": 2048,
|
|
239
|
+
"criticalAvailableMemoryMiB": 512
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
```
|
|
243
|
+
|
|
183
244
|
### Branch Summary
|
|
184
245
|
|
|
185
246
|
| Setting | Type | Default | Description |
|
|
@@ -296,11 +357,12 @@ Paths in `~/.omk/agent/settings.json` resolve relative to `~/.omk/agent`. Paths
|
|
|
296
357
|
| `packages` | array | `[]` | npm/git packages to load resources from |
|
|
297
358
|
| `extensions` | string[] | `[]` | Local extension file paths or directories |
|
|
298
359
|
| `skills` | string[] | `[]` | Local skill file paths or directories |
|
|
360
|
+
| `defaultActiveSkills` | string[] | `[]` | Global-only list of up to 64 exact user-scoped skill names marked active in every prompt; full instructions remain on-demand |
|
|
299
361
|
| `prompts` | string[] | `[]` | Local prompt template paths or directories |
|
|
300
362
|
| `themes` | string[] | `[]` | Local theme file paths or directories |
|
|
301
363
|
| `enableSkillCommands` | boolean | `true` | Register skills as `/skill:name` commands |
|
|
302
364
|
|
|
303
|
-
|
|
365
|
+
Resource path arrays (`extensions`, `skills`, `prompts`, and `themes`) support glob patterns and exclusions. Use `!pattern` to exclude, `+path` to force-include an exact path, and `-path` to force-exclude one. `defaultActiveSkills` accepts exact names only.
|
|
304
366
|
|
|
305
367
|
#### packages
|
|
306
368
|
|
|
@@ -356,7 +418,7 @@ See [packages.md](packages.md) for package management details.
|
|
|
356
418
|
|
|
357
419
|
## Project Overrides
|
|
358
420
|
|
|
359
|
-
Project settings (`.omk/settings.json`) override global settings. Nested objects are merged. `contextBudget`
|
|
421
|
+
Project settings (`.omk/settings.json`) override global settings. Nested objects are merged. Settings marked global-only, including `contextBudget` and `defaultActiveSkills`, are read from global settings only.
|
|
360
422
|
|
|
361
423
|
```json
|
|
362
424
|
// ~/.omk/agent/settings.json (global)
|
package/docs/skills.md
CHANGED
|
@@ -77,6 +77,22 @@ For project-level Claude Code skills, add to `.omk/settings.json`:
|
|
|
77
77
|
|
|
78
78
|
This is progressive disclosure: only descriptions are always in context, full instructions load on-demand.
|
|
79
79
|
|
|
80
|
+
### Default active skills
|
|
81
|
+
|
|
82
|
+
Set `defaultActiveSkills` in global settings to mark selected discovered skills active in every prompt without repeating `!skill:` invocations:
|
|
83
|
+
|
|
84
|
+
```json
|
|
85
|
+
{
|
|
86
|
+
"defaultActiveSkills": ["programming", "review-work", "security-review"]
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
The global-only setting accepts up to 64 exact skill names, not paths or patterns. Only user-scoped discovered skills can satisfy it; a project skill with the same name is not promoted. Project settings cannot replace or clear the list.
|
|
91
|
+
|
|
92
|
+
OMK adds a compact active-skills marker containing names and, for explicit-only skills hidden from the normal inventory, the location needed to read them. It does not concatenate every `SKILL.md`; descriptions remain in the normal inventory and full instructions stay on-demand. With context budgeting enabled, active inventory entries receive hard priority. `!skill:` and SDK `activeSkillNames` selections merge for that turn; `/skill:` continues to expand the selected skill directly. Unknown or unavailable names have no prompt effect.
|
|
93
|
+
|
|
94
|
+
This file is an explicit operator choice, so it may activate a skill whose frontmatter otherwise requires direct invocation. Active skills do not expand authorization and apply only when relevant. Keep the list focused because overlapping language or workflow instructions can conflict.
|
|
95
|
+
|
|
80
96
|
## Skill Commands
|
|
81
97
|
|
|
82
98
|
Skills register as `/skill:name` commands and interactive `!` launcher entries:
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omk-extension-custom-provider-anthropic",
|
|
3
|
-
"version": "0.96.
|
|
3
|
+
"version": "0.96.2",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "omk-extension-custom-provider-anthropic",
|
|
9
|
-
"version": "0.96.
|
|
9
|
+
"version": "0.96.2",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@anthropic-ai/sdk": "0.52.0"
|
|
12
12
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omk-extension-gondolin",
|
|
3
|
-
"version": "0.96.
|
|
3
|
+
"version": "0.96.2",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "omk-extension-gondolin",
|
|
9
|
-
"version": "0.96.
|
|
9
|
+
"version": "0.96.2",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@earendil-works/gondolin": "0.12.0"
|
|
12
12
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omk-extension-sandbox",
|
|
3
|
-
"version": "0.96.
|
|
3
|
+
"version": "0.96.2",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "omk-extension-sandbox",
|
|
9
|
-
"version": "0.96.
|
|
9
|
+
"version": "0.96.2",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@anthropic-ai/sandbox-runtime": "0.0.26"
|
|
12
12
|
}
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
import { describe, expect, it } from "vitest";
|
|
10
10
|
import { auditCapabilities, classifyAgent, deriveCapabilities } from "./agent-capability-router.ts";
|
|
11
11
|
import { buildCapabilityCatalog } from "./capabilities.ts";
|
|
12
|
+
import { DOMAIN_PROFILES } from "./domain-profiles.ts";
|
|
12
13
|
|
|
13
14
|
// Built once at module scope from the live skill tree under the agent
|
|
14
15
|
// directory. This is populated during local verification but empty in CI (the
|
|
@@ -18,6 +19,12 @@ import { buildCapabilityCatalog } from "./capabilities.ts";
|
|
|
18
19
|
const catalog = buildCapabilityCatalog({ agentDir: `${process.env.HOME ?? "/home/yu"}/.omk/agent` });
|
|
19
20
|
const hasSkillCatalog = catalog.skills.size > 0;
|
|
20
21
|
|
|
22
|
+
describe("domain profile safety", () => {
|
|
23
|
+
it("does not route agents to offensive jailbreak skills", () => {
|
|
24
|
+
expect(DOMAIN_PROFILES.flatMap((profile) => profile.skillPool)).not.toContain("offensive-jailbreak");
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
|
|
21
28
|
describe("classifyAgent", () => {
|
|
22
29
|
it("classifies by name token: seo-specialist → marketing-content", () => {
|
|
23
30
|
expect(classifyAgent("seo-specialist", "x")?.id).toBe("marketing-content");
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omk-extension-with-deps",
|
|
3
|
-
"version": "0.96.
|
|
3
|
+
"version": "0.96.2",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "omk-extension-with-deps",
|
|
9
|
-
"version": "0.96.
|
|
9
|
+
"version": "0.96.2",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"ms": "2.1.3"
|
|
12
12
|
},
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "open-multi-agent-kit",
|
|
3
|
-
"version": "0.96.
|
|
3
|
+
"version": "0.96.2",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "open-multi-agent-kit",
|
|
9
|
-
"version": "0.96.
|
|
9
|
+
"version": "0.96.2",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"omk-agent-core": "^0.96.
|
|
13
|
-
"omk-ai": "^0.96.
|
|
14
|
-
"omk-tui": "^0.96.
|
|
12
|
+
"omk-agent-core": "^0.96.2",
|
|
13
|
+
"omk-ai": "^0.96.2",
|
|
14
|
+
"omk-tui": "^0.96.2",
|
|
15
15
|
"@silvia-odwyer/photon-node": "0.3.4",
|
|
16
16
|
"canonicalize": "4.0.0",
|
|
17
17
|
"chalk": "5.6.2",
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
"typebox": "1.3.11",
|
|
28
28
|
"undici": "8.10.0",
|
|
29
29
|
"yaml": "2.9.0",
|
|
30
|
-
"omk-adaptorch-wpl": "^0.96.
|
|
31
|
-
"omk-protocol": "^0.96.
|
|
30
|
+
"omk-adaptorch-wpl": "^0.96.2",
|
|
31
|
+
"omk-protocol": "^0.96.2"
|
|
32
32
|
},
|
|
33
33
|
"optionalDependencies": {
|
|
34
34
|
"@mariozechner/clipboard": "0.3.9"
|
|
@@ -1285,19 +1285,19 @@
|
|
|
1285
1285
|
}
|
|
1286
1286
|
},
|
|
1287
1287
|
"node_modules/omk-adaptorch-wpl": {
|
|
1288
|
-
"version": "0.96.
|
|
1289
|
-
"resolved": "https://registry.npmjs.org/omk-adaptorch-wpl/-/omk-adaptorch-wpl-0.96.
|
|
1288
|
+
"version": "0.96.2",
|
|
1289
|
+
"resolved": "https://registry.npmjs.org/omk-adaptorch-wpl/-/omk-adaptorch-wpl-0.96.2.tgz",
|
|
1290
1290
|
"license": "MIT",
|
|
1291
1291
|
"engines": {
|
|
1292
1292
|
"node": ">=22.19.0"
|
|
1293
1293
|
}
|
|
1294
1294
|
},
|
|
1295
1295
|
"node_modules/omk-agent-core": {
|
|
1296
|
-
"version": "0.96.
|
|
1297
|
-
"resolved": "https://registry.npmjs.org/omk-agent-core/-/omk-agent-core-0.96.
|
|
1296
|
+
"version": "0.96.2",
|
|
1297
|
+
"resolved": "https://registry.npmjs.org/omk-agent-core/-/omk-agent-core-0.96.2.tgz",
|
|
1298
1298
|
"license": "MIT",
|
|
1299
1299
|
"dependencies": {
|
|
1300
|
-
"omk-ai": "^0.96.
|
|
1300
|
+
"omk-ai": "^0.96.2",
|
|
1301
1301
|
"ignore": "7.0.6",
|
|
1302
1302
|
"typebox": "1.3.11",
|
|
1303
1303
|
"yaml": "2.9.0"
|
|
@@ -1307,8 +1307,8 @@
|
|
|
1307
1307
|
}
|
|
1308
1308
|
},
|
|
1309
1309
|
"node_modules/omk-ai": {
|
|
1310
|
-
"version": "0.96.
|
|
1311
|
-
"resolved": "https://registry.npmjs.org/omk-ai/-/omk-ai-0.96.
|
|
1310
|
+
"version": "0.96.2",
|
|
1311
|
+
"resolved": "https://registry.npmjs.org/omk-ai/-/omk-ai-0.96.2.tgz",
|
|
1312
1312
|
"license": "MIT",
|
|
1313
1313
|
"dependencies": {
|
|
1314
1314
|
"@anthropic-ai/sdk": "0.91.1",
|
|
@@ -1330,16 +1330,16 @@
|
|
|
1330
1330
|
}
|
|
1331
1331
|
},
|
|
1332
1332
|
"node_modules/omk-protocol": {
|
|
1333
|
-
"version": "0.96.
|
|
1334
|
-
"resolved": "https://registry.npmjs.org/omk-protocol/-/omk-protocol-0.96.
|
|
1333
|
+
"version": "0.96.2",
|
|
1334
|
+
"resolved": "https://registry.npmjs.org/omk-protocol/-/omk-protocol-0.96.2.tgz",
|
|
1335
1335
|
"license": "MIT",
|
|
1336
1336
|
"engines": {
|
|
1337
1337
|
"node": ">=22.19.0"
|
|
1338
1338
|
}
|
|
1339
1339
|
},
|
|
1340
1340
|
"node_modules/omk-tui": {
|
|
1341
|
-
"version": "0.96.
|
|
1342
|
-
"resolved": "https://registry.npmjs.org/omk-tui/-/omk-tui-0.96.
|
|
1341
|
+
"version": "0.96.2",
|
|
1342
|
+
"resolved": "https://registry.npmjs.org/omk-tui/-/omk-tui-0.96.2.tgz",
|
|
1343
1343
|
"license": "MIT",
|
|
1344
1344
|
"dependencies": {
|
|
1345
1345
|
"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.96.
|
|
3
|
+
"version": "0.96.2",
|
|
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": {
|
|
@@ -39,14 +39,12 @@
|
|
|
39
39
|
"test": "vitest --run",
|
|
40
40
|
"shrinkwrap": "node ../../scripts/generate-coding-agent-shrinkwrap.mjs",
|
|
41
41
|
"prepublishOnly": "npm run clean && npm run build && npm run shrinkwrap",
|
|
42
|
-
"link-workspace-deps": "node ./scripts/link-workspace-deps.mjs"
|
|
43
|
-
"prepare": "node ./scripts/link-workspace-deps.mjs",
|
|
44
|
-
"postinstall": "node ./scripts/link-workspace-deps.mjs"
|
|
42
|
+
"link-workspace-deps": "node ./scripts/link-workspace-deps.mjs"
|
|
45
43
|
},
|
|
46
44
|
"dependencies": {
|
|
47
|
-
"omk-agent-core": "^0.96.
|
|
48
|
-
"omk-ai": "^0.96.
|
|
49
|
-
"omk-tui": "^0.96.
|
|
45
|
+
"omk-agent-core": "^0.96.2",
|
|
46
|
+
"omk-ai": "^0.96.2",
|
|
47
|
+
"omk-tui": "^0.96.2",
|
|
50
48
|
"@silvia-odwyer/photon-node": "0.3.4",
|
|
51
49
|
"canonicalize": "4.0.0",
|
|
52
50
|
"chalk": "5.6.2",
|
|
@@ -62,8 +60,8 @@
|
|
|
62
60
|
"typebox": "1.3.11",
|
|
63
61
|
"undici": "8.10.0",
|
|
64
62
|
"yaml": "2.9.0",
|
|
65
|
-
"omk-adaptorch-wpl": "^0.96.
|
|
66
|
-
"omk-protocol": "^0.96.
|
|
63
|
+
"omk-adaptorch-wpl": "^0.96.2",
|
|
64
|
+
"omk-protocol": "^0.96.2"
|
|
67
65
|
},
|
|
68
66
|
"overrides": {
|
|
69
67
|
"rimraf": "6.1.2",
|