open-multi-agent-kit 0.97.0 → 0.98.0
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 +35 -0
- package/README.md +41 -9
- package/dist/cli/args.d.ts +2 -3
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +13 -189
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/help.d.ts +3 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/help.js +194 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/initial-message.d.ts.map +1 -1
- package/dist/cli/initial-message.js +2 -1
- package/dist/cli/initial-message.js.map +1 -1
- package/dist/cli/resource-paths.d.ts +4 -0
- package/dist/cli/resource-paths.d.ts.map +1 -0
- package/dist/cli/resource-paths.js +59 -0
- package/dist/cli/resource-paths.js.map +1 -0
- package/dist/commands/adaptorch-doctor-cli.d.ts +13 -0
- package/dist/commands/adaptorch-doctor-cli.d.ts.map +1 -0
- package/dist/commands/adaptorch-doctor-cli.js +115 -0
- package/dist/commands/adaptorch-doctor-cli.js.map +1 -0
- package/dist/commands/resource-doctor-cli.d.ts +4 -0
- package/dist/commands/resource-doctor-cli.d.ts.map +1 -1
- package/dist/commands/resource-doctor-cli.js +35 -5
- package/dist/commands/resource-doctor-cli.js.map +1 -1
- package/dist/core/adaptorch-bridge.d.ts +11 -13
- package/dist/core/adaptorch-bridge.d.ts.map +1 -1
- package/dist/core/adaptorch-bridge.js +11 -13
- package/dist/core/adaptorch-bridge.js.map +1 -1
- package/dist/core/agent-session-snapshot.d.ts +16 -0
- package/dist/core/agent-session-snapshot.d.ts.map +1 -0
- package/dist/core/agent-session-snapshot.js +111 -0
- package/dist/core/agent-session-snapshot.js.map +1 -0
- package/dist/core/agent-session.d.ts +5 -9
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +27 -219
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/agent-tool-settings.d.ts +10 -0
- package/dist/core/agent-tool-settings.d.ts.map +1 -1
- package/dist/core/agent-tool-settings.js +10 -1
- package/dist/core/agent-tool-settings.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +7 -0
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +25 -61
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/compaction/index.d.ts +1 -0
- package/dist/core/compaction/index.d.ts.map +1 -1
- package/dist/core/compaction/index.js +1 -0
- package/dist/core/compaction/index.js.map +1 -1
- package/dist/core/compaction/knowledge-triage-format.d.ts +9 -0
- package/dist/core/compaction/knowledge-triage-format.d.ts.map +1 -0
- package/dist/core/compaction/knowledge-triage-format.js +71 -0
- package/dist/core/compaction/knowledge-triage-format.js.map +1 -0
- package/dist/core/compaction/knowledge-triage-types.d.ts +7 -0
- package/dist/core/compaction/knowledge-triage-types.d.ts.map +1 -0
- package/dist/core/compaction/knowledge-triage-types.js +2 -0
- package/dist/core/compaction/knowledge-triage-types.js.map +1 -0
- package/dist/core/compaction/knowledge-triage.d.ts +29 -0
- package/dist/core/compaction/knowledge-triage.d.ts.map +1 -0
- package/dist/core/compaction/knowledge-triage.js +189 -0
- package/dist/core/compaction/knowledge-triage.js.map +1 -0
- package/dist/core/compaction/transaction.d.ts.map +1 -1
- package/dist/core/compaction/transaction.js +1 -1
- package/dist/core/compaction/transaction.js.map +1 -1
- package/dist/core/compaction/utils.d.ts +4 -0
- package/dist/core/compaction/utils.d.ts.map +1 -1
- package/dist/core/compaction/utils.js +37 -0
- package/dist/core/compaction/utils.js.map +1 -1
- package/dist/core/completion-sound-io.d.ts +14 -0
- package/dist/core/completion-sound-io.d.ts.map +1 -0
- package/dist/core/completion-sound-io.js +64 -0
- package/dist/core/completion-sound-io.js.map +1 -0
- package/dist/core/completion-sound.d.ts +4 -10
- package/dist/core/completion-sound.d.ts.map +1 -1
- package/dist/core/completion-sound.js +28 -58
- package/dist/core/completion-sound.js.map +1 -1
- package/dist/core/context-budget-relevance.d.ts +15 -2
- package/dist/core/context-budget-relevance.d.ts.map +1 -1
- package/dist/core/context-budget-relevance.js +21 -9
- package/dist/core/context-budget-relevance.js.map +1 -1
- package/dist/core/context-budget-system-prompt-items.d.ts +1 -1
- package/dist/core/context-budget-system-prompt-items.d.ts.map +1 -1
- package/dist/core/context-budget-system-prompt-items.js.map +1 -1
- package/dist/core/context-budget-system-prompt.d.ts +1 -1
- package/dist/core/context-budget-system-prompt.d.ts.map +1 -1
- package/dist/core/context-budget-system-prompt.js.map +1 -1
- package/dist/core/context-file.d.ts +23 -0
- package/dist/core/context-file.d.ts.map +1 -0
- package/dist/core/context-file.js +17 -0
- package/dist/core/context-file.js.map +1 -0
- package/dist/core/keybindings.d.ts +1 -1
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +6 -1
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/model-prompt-policy.d.ts +1 -1
- package/dist/core/model-prompt-policy.d.ts.map +1 -1
- package/dist/core/model-prompt-policy.js.map +1 -1
- package/dist/core/prompt-settlement.d.ts +6 -3
- package/dist/core/prompt-settlement.d.ts.map +1 -1
- package/dist/core/prompt-settlement.js +10 -14
- package/dist/core/prompt-settlement.js.map +1 -1
- package/dist/core/reasoning-router-promotion.d.ts +41 -1
- package/dist/core/reasoning-router-promotion.d.ts.map +1 -1
- package/dist/core/reasoning-router-promotion.js +31 -2
- package/dist/core/reasoning-router-promotion.js.map +1 -1
- package/dist/core/reasoning-router-replay-stability.d.ts +65 -0
- package/dist/core/reasoning-router-replay-stability.d.ts.map +1 -0
- package/dist/core/reasoning-router-replay-stability.js +67 -0
- package/dist/core/reasoning-router-replay-stability.js.map +1 -0
- package/dist/core/reasoning-router-v4-weights.d.ts +6 -6
- package/dist/core/reasoning-router-v4-weights.d.ts.map +1 -1
- package/dist/core/reasoning-router-v4-weights.js +3 -3
- package/dist/core/reasoning-router-v4-weights.js.map +1 -1
- package/dist/core/reasoning-router-v4.d.ts.map +1 -1
- package/dist/core/reasoning-router-v4.js +6 -6
- package/dist/core/reasoning-router-v4.js.map +1 -1
- package/dist/core/redaction.d.ts.map +1 -1
- package/dist/core/redaction.js +1 -1
- package/dist/core/redaction.js.map +1 -1
- package/dist/core/resource-admission.d.ts +2 -1
- package/dist/core/resource-admission.d.ts.map +1 -1
- package/dist/core/resource-admission.js +11 -0
- package/dist/core/resource-admission.js.map +1 -1
- package/dist/core/resource-governor-format.d.ts +1 -1
- package/dist/core/resource-governor-format.d.ts.map +1 -1
- package/dist/core/resource-governor-format.js.map +1 -1
- package/dist/core/resource-governor-settings.d.ts +6 -12
- package/dist/core/resource-governor-settings.d.ts.map +1 -1
- package/dist/core/resource-governor-settings.js.map +1 -1
- package/dist/core/resource-governor-types.d.ts +24 -0
- package/dist/core/resource-governor-types.d.ts.map +1 -0
- package/dist/core/resource-governor-types.js +15 -0
- package/dist/core/resource-governor-types.js.map +1 -0
- package/dist/core/resource-loader.d.ts +1 -7
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/resource-observation-journal.d.ts +2 -1
- package/dist/core/resource-observation-journal.d.ts.map +1 -1
- package/dist/core/resource-observation-journal.js +4 -3
- package/dist/core/resource-observation-journal.js.map +1 -1
- package/dist/core/resource-observation-report-reader.d.ts +7 -0
- package/dist/core/resource-observation-report-reader.d.ts.map +1 -0
- package/dist/core/resource-observation-report-reader.js +157 -0
- package/dist/core/resource-observation-report-reader.js.map +1 -0
- package/dist/core/resource-observation-report.d.ts +24 -0
- package/dist/core/resource-observation-report.d.ts.map +1 -0
- package/dist/core/resource-observation-report.js +101 -0
- package/dist/core/resource-observation-report.js.map +1 -0
- package/dist/core/router-feedback-collector.d.ts +1 -1
- package/dist/core/router-feedback-collector.d.ts.map +1 -1
- package/dist/core/router-feedback-collector.js.map +1 -1
- package/dist/core/session-failure-cause.d.ts +33 -0
- package/dist/core/session-failure-cause.d.ts.map +1 -0
- package/dist/core/session-failure-cause.js +141 -0
- package/dist/core/session-failure-cause.js.map +1 -0
- package/dist/core/session-system-prompt.d.ts +1 -1
- package/dist/core/session-system-prompt.d.ts.map +1 -1
- package/dist/core/session-system-prompt.js.map +1 -1
- package/dist/core/settings-manager.d.ts +1 -1
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/system-prompt.d.ts +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +7 -7
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/workload-classifier.d.ts +2 -10
- package/dist/core/workload-classifier.d.ts.map +1 -1
- package/dist/core/workload-classifier.js +17 -0
- package/dist/core/workload-classifier.js.map +1 -1
- package/dist/core/workload-family-matcher.d.ts +1 -1
- package/dist/core/workload-family-matcher.d.ts.map +1 -1
- package/dist/core/workload-family-matcher.js.map +1 -1
- package/dist/core/workload-shard-execution-types.d.ts +40 -0
- package/dist/core/workload-shard-execution-types.d.ts.map +1 -0
- package/dist/core/workload-shard-execution-types.js +14 -0
- package/dist/core/workload-shard-execution-types.js.map +1 -0
- package/dist/core/workload-shard-executor.d.ts +3 -27
- package/dist/core/workload-shard-executor.d.ts.map +1 -1
- package/dist/core/workload-shard-executor.js.map +1 -1
- package/dist/core/workload-shard-runner.d.ts +1 -1
- package/dist/core/workload-shard-runner.d.ts.map +1 -1
- package/dist/core/workload-shard-runner.js.map +1 -1
- package/dist/core/workload-types.d.ts +24 -0
- package/dist/core/workload-types.d.ts.map +1 -0
- package/dist/core/workload-types.js +15 -0
- package/dist/core/workload-types.js.map +1 -0
- package/dist/main.d.ts +2 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +27 -47
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/theme/omk-control-panel.json +1 -1
- package/dist/utils/clipboard-image.d.ts.map +1 -1
- package/dist/utils/clipboard-image.js +42 -33
- package/dist/utils/clipboard-image.js.map +1 -1
- package/dist/utils/clipboard.d.ts.map +1 -1
- package/dist/utils/clipboard.js +14 -2
- package/dist/utils/clipboard.js.map +1 -1
- package/docs/adaptorch-preview-spec.md +20 -18
- package/docs/adaptorch-preview.md +9 -9
- package/docs/compaction.md +24 -3
- package/docs/correctness-wall.md +10 -10
- package/docs/docs.json +12 -0
- package/docs/environment-variables.md +9 -2
- package/docs/index.md +3 -0
- package/docs/runtime-algorithms.md +359 -0
- package/docs/sdk.md +2 -2
- package/docs/settings.md +11 -10
- package/docs/usage.md +18 -2
- 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/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 +6 -6
- package/dist/core/context-budget-governor.d.ts +0 -67
- package/dist/core/context-budget-governor.d.ts.map +0 -1
- package/dist/core/context-budget-governor.js +0 -224
- package/dist/core/context-budget-governor.js.map +0 -1
- package/dist/core/lean-ctx.d.ts +0 -99
- package/dist/core/lean-ctx.d.ts.map +0 -1
- package/dist/core/lean-ctx.js +0 -225
- package/dist/core/lean-ctx.js.map +0 -1
- package/dist/core/read-anchors.d.ts +0 -110
- package/dist/core/read-anchors.d.ts.map +0 -1
- package/dist/core/read-anchors.js +0 -193
- package/dist/core/read-anchors.js.map +0 -1
- package/dist/core/recovery-checkpoint.d.ts +0 -196
- package/dist/core/recovery-checkpoint.d.ts.map +0 -1
- package/dist/core/recovery-checkpoint.js +0 -382
- package/dist/core/recovery-checkpoint.js.map +0 -1
- package/dist/core/sandbox-policy-v2.d.ts +0 -49
- package/dist/core/sandbox-policy-v2.d.ts.map +0 -1
- package/dist/core/sandbox-policy-v2.js +0 -368
- package/dist/core/sandbox-policy-v2.js.map +0 -1
- package/dist/guardrails/audit-logger.d.ts +0 -4
- package/dist/guardrails/audit-logger.d.ts.map +0 -1
- package/dist/guardrails/audit-logger.js +0 -28
- package/dist/guardrails/audit-logger.js.map +0 -1
- package/dist/guardrails/freedomd-adapter.d.ts +0 -16
- package/dist/guardrails/freedomd-adapter.d.ts.map +0 -1
- package/dist/guardrails/freedomd-adapter.js +0 -87
- package/dist/guardrails/freedomd-adapter.js.map +0 -1
- package/dist/orchestration/lane-grant-auditor.d.ts +0 -4
- package/dist/orchestration/lane-grant-auditor.d.ts.map +0 -1
- package/dist/orchestration/lane-grant-auditor.js +0 -87
- package/dist/orchestration/lane-grant-auditor.js.map +0 -1
- package/dist/types/guardrails.d.ts +0 -61
- package/dist/types/guardrails.d.ts.map +0 -1
- package/dist/types/guardrails.js +0 -9
- package/dist/types/guardrails.js.map +0 -1
- package/dist/types/lane-grant.d.ts +0 -58
- package/dist/types/lane-grant.d.ts.map +0 -1
- package/dist/types/lane-grant.js +0 -9
- package/dist/types/lane-grant.js.map +0 -1
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
# Runtime Algorithms and Direction
|
|
2
|
+
|
|
3
|
+
This page separates OMK's released behavior from internal mechanisms, current
|
|
4
|
+
working-tree candidates, and proposals. Source and tests remain authoritative.
|
|
5
|
+
|
|
6
|
+
- **Snapshot date:** 2026-08-27
|
|
7
|
+
- **Released baseline:** OMK `v0.97.0` (`b38a2c8c84`)
|
|
8
|
+
- **Repository baseline:** `4b79c65eaf` plus the local working tree
|
|
9
|
+
|
|
10
|
+
## Status vocabulary
|
|
11
|
+
|
|
12
|
+
| Status | Meaning |
|
|
13
|
+
| --- | --- |
|
|
14
|
+
| **Released / default** | Present in `v0.97.0` and selected when relevant settings do not override it |
|
|
15
|
+
| **Released / opt-in** | Present in `v0.97.0`, but requires a command, setting, or explicit API call |
|
|
16
|
+
| **Released / internal** | Implemented and tested, but not connected to a live user path |
|
|
17
|
+
| **Working tree** | Present in the current checkout only; not shipped and not a release promise |
|
|
18
|
+
| **Proposed** | Design direction without a complete implementation and verification path |
|
|
19
|
+
|
|
20
|
+
A mechanism's existence does not make it authoritative. OMK promotes a mechanism
|
|
21
|
+
only after its live call path, default, evidence, and rollback are all explicit.
|
|
22
|
+
|
|
23
|
+
## Runtime control path
|
|
24
|
+
|
|
25
|
+
```text
|
|
26
|
+
Prompt or durable-goal round
|
|
27
|
+
-> system-prompt assembly
|
|
28
|
+
-> Context Budget V2 when globally enabled
|
|
29
|
+
-> local v4 reasoning routing when /think auto is active
|
|
30
|
+
-> provider attempt
|
|
31
|
+
-> same-family route rotation, retry, or configured failover when eligible
|
|
32
|
+
-> tool scheduling
|
|
33
|
+
-> v0.97.0 CLI default: dag-v2; direct core fallback is revision-specific
|
|
34
|
+
-> pre-hook claims -> deferred authorization -> post-hook claim re-plan
|
|
35
|
+
-> deterministic level execution and source-order results
|
|
36
|
+
-> journals, receipts, and session termination records
|
|
37
|
+
-> optional omk-protocol evaluation
|
|
38
|
+
TaskSpec -> ExecutionAttempt -> Observation -> EvaluationResult -> RuntimeDecision
|
|
39
|
+
-> retry, continuation, or final prompt settlement
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
The protocol line is a released library and adapter surface. An ordinary chat
|
|
43
|
+
turn does not automatically become a `TaskSpec`; callers opt into that semantic
|
|
44
|
+
evaluation contract.
|
|
45
|
+
|
|
46
|
+
## Current algorithm surface
|
|
47
|
+
|
|
48
|
+
### Tool scheduling and settlement
|
|
49
|
+
|
|
50
|
+
**Status: Released / default.** The `v0.97.0` CLI sets `dag-v2`; direct
|
|
51
|
+
`omk-agent-core` calls fall back to `waves-v1`. The working tree changes that
|
|
52
|
+
core fallback to `dag-v2`, but that promotion is unreleased. The scheduler canonicalizes resource claims, preserves source order,
|
|
53
|
+
and places conflicting calls in later levels. Before a level executes, OMK authorizes its calls and
|
|
54
|
+
re-plans with post-hook arguments so a hook cannot silently invalidate the
|
|
55
|
+
original claim plan.
|
|
56
|
+
|
|
57
|
+
The live executor uses level barriers. `assignDagDependencies()` computes a
|
|
58
|
+
finer predecessor graph, but no live executor consumes it. Each candidate level
|
|
59
|
+
is authorized and then re-planned from post-hook arguments.
|
|
60
|
+
|
|
61
|
+
Evidence:
|
|
62
|
+
|
|
63
|
+
- `packages/agent/src/tool-dag-scheduler.ts`: `assignDagLevels`,
|
|
64
|
+
`assignDagDependencies`, `scheduleDagLevels`
|
|
65
|
+
- `packages/agent/src/agent-loop.ts`: `executeToolCallsDagLevels`,
|
|
66
|
+
`runDagLevelCalls`
|
|
67
|
+
- `packages/agent/test/tool-dag-scheduler*.test.ts`
|
|
68
|
+
- `packages/agent/test/tool-dag-dependencies.test.ts`
|
|
69
|
+
|
|
70
|
+
**Working tree:** timed-out tools receive a bounded 250 ms teardown window. A
|
|
71
|
+
cooperative process may settle and let the model react to the timeout; a tool
|
|
72
|
+
still running after the window stops the run because it may still mutate the
|
|
73
|
+
workspace. This candidate lives in
|
|
74
|
+
`packages/agent/src/tool-timeout-settlement.ts` and is covered by
|
|
75
|
+
`packages/agent/test/tool-timeout-loop-continuation.test.ts`.
|
|
76
|
+
|
|
77
|
+
### Context selection
|
|
78
|
+
|
|
79
|
+
**Status: Released / opt-in.** Context Budget V2 is enabled globally through
|
|
80
|
+
`contextBudget.enabled` or per process with `OMK_CONTEXT_GOVERNOR=1`.
|
|
81
|
+
|
|
82
|
+
The planner:
|
|
83
|
+
|
|
84
|
+
1. reserves response and safety tokens;
|
|
85
|
+
2. pins hard or required items first;
|
|
86
|
+
3. computes tier floors and ceilings;
|
|
87
|
+
4. scores optional items for relevance, recency, evidence, redundancy,
|
|
88
|
+
priority, and full-text token cost;
|
|
89
|
+
5. sorts optional items by
|
|
90
|
+
`density -> effectiveScore -> priorityRank -> fullTokens -> id`; and
|
|
91
|
+
6. selects a full, summary, headroom-compressed, pointer, or omitted
|
|
92
|
+
representation that fits.
|
|
93
|
+
|
|
94
|
+
Density divides effective score by the cheapest non-omit representation
|
|
95
|
+
(`admissibleTokens`), not by full-text size. This avoids penalizing an item that
|
|
96
|
+
can be represented by a small evidence pointer. Stable item IDs and explicit
|
|
97
|
+
selection policy `sel-2` make tie-breaking and plan-cache invalidation
|
|
98
|
+
deterministic.
|
|
99
|
+
|
|
100
|
+
When enabled, representation and negative-result entries persist under
|
|
101
|
+
`.omk/cache/context-budget-v2`; plan entries remain session-memory-only.
|
|
102
|
+
`OMK_CONTEXT_GOVERNOR_CACHE=memory` keeps every cache entry in session memory,
|
|
103
|
+
and `OMK_CONTEXT_GOVERNOR_CACHE_DIR` relocates the representation snapshot.
|
|
104
|
+
|
|
105
|
+
Evidence:
|
|
106
|
+
|
|
107
|
+
- `packages/coding-agent/src/core/context-budget-v2-planner.ts`
|
|
108
|
+
- `packages/coding-agent/src/core/context-budget-v2-scoring.ts`
|
|
109
|
+
- `packages/coding-agent/src/core/context-budget-v2-selection.ts`
|
|
110
|
+
- `packages/coding-agent/test/context-budget-v2-knapsack-order.test.ts`
|
|
111
|
+
- `packages/coding-agent/test/context-budget-selection-policy-version.test.ts`
|
|
112
|
+
- `packages/coding-agent/test/context-budget-cache-disk.test.ts`
|
|
113
|
+
|
|
114
|
+
**Working tree:** context files now treat their global/local relevance baseline
|
|
115
|
+
as a floor. Lexical overlap can raise that score but cannot demote standing
|
|
116
|
+
instructions below the no-query baseline. Skills remain topic-scored because
|
|
117
|
+
they are optional capabilities, not standing authority. The change is in
|
|
118
|
+
`scoreContextFileRelevance()` with regression coverage in
|
|
119
|
+
`packages/coding-agent/test/context-budget-relevance.test.ts`.
|
|
120
|
+
|
|
121
|
+
**Working tree:** the default compactor now strips model-generated managed-rule
|
|
122
|
+
sections and deterministically carries explicit user-authored `RULE`/
|
|
123
|
+
`INVARIANT`/`CONSTRAINT`/`MUST`/`NEVER`/`ALWAYS` markers (plus explicit Korean
|
|
124
|
+
markers) outside LLM rewriting. Rules are bounded to 64 × 1,000 characters,
|
|
125
|
+
stored in additive non-hook compaction details, and covered by a five-round
|
|
126
|
+
byte-preservation test. Natural-language classification, hook summaries, branch
|
|
127
|
+
summaries, and cross-session memory remain outside this slice. Persisted rules
|
|
128
|
+
are credential-redacted and source-bound to a user entry/line/digest; previous
|
|
129
|
+
details are reused only when their canonical block matches the prior summary.
|
|
130
|
+
|
|
131
|
+
Evidence:
|
|
132
|
+
|
|
133
|
+
- `packages/coding-agent/src/core/compaction/knowledge-triage.ts`
|
|
134
|
+
- `packages/coding-agent/test/compaction-knowledge-triage.test.ts`
|
|
135
|
+
- `packages/coding-agent/test/compaction-summary-reasoning.test.ts`
|
|
136
|
+
|
|
137
|
+
### Reasoning routing
|
|
138
|
+
|
|
139
|
+
**Status: Released / opt-in.** `/think auto` uses the local, deterministic v4
|
|
140
|
+
router. It extracts bounded prompt features, classifies one of seven task
|
|
141
|
+
classes, maps the class through `TASK_CLASS_THINKING_LEVELS`, applies lane
|
|
142
|
+
steps, bounded bias/hint adjustments, and non-negative uncertainty escalation,
|
|
143
|
+
then clamps the result to the selected model's supported levels.
|
|
144
|
+
|
|
145
|
+
The released extension-signal coefficients are active and bounded:
|
|
146
|
+
`multiTurnPrior=2`, `pressureBucket=1`, and `judgeVote=2`. History and pressure
|
|
147
|
+
are supplied by the main session; a judge vote affects only callers that provide
|
|
148
|
+
one. A zero-score fallback cannot be hijacked by these signals.
|
|
149
|
+
|
|
150
|
+
The optional learning path is global-only and off by default. When enabled, a
|
|
151
|
+
session loads one strictly validated `RouterBiasSnapshot` from the configured
|
|
152
|
+
path or repository-scoped default, pins that snapshot or miss for the session,
|
|
153
|
+
applies a `-2..2` step bias, and writes only bounded feedback buckets. It never stores prompts, diffs, tool
|
|
154
|
+
output, provider payloads, or repository paths.
|
|
155
|
+
|
|
156
|
+
Evidence:
|
|
157
|
+
|
|
158
|
+
- `packages/coding-agent/src/core/reasoning-router-v4.ts`
|
|
159
|
+
- `packages/coding-agent/src/core/reasoning-router-resolver.ts`
|
|
160
|
+
- `packages/coding-agent/src/core/reasoning-router-bias.ts`
|
|
161
|
+
- `packages/coding-agent/test/suite/regressions/013-reasoning-router-v4-accuracy.test.ts`
|
|
162
|
+
- `packages/coding-agent/test/suite/regressions/014-reasoning-router-v4-learning-wiring.test.ts`
|
|
163
|
+
- `packages/coding-agent/test/suite/regressions/018-reasoning-router-v4-inert-weights.test.ts`
|
|
164
|
+
|
|
165
|
+
**Working tree:** promotion evidence now credits a row only when repeated
|
|
166
|
+
baseline and candidate classifier replays each agree. It also requires a frozen
|
|
167
|
+
baseline and fails closed on insufficient or unstable replays. See
|
|
168
|
+
`reasoning-router-replay-stability.ts`, `reasoning-router-policy-ceiling.test.ts`,
|
|
169
|
+
and `reasoning-router-replay-stability.test.ts`.
|
|
170
|
+
|
|
171
|
+
### Resource governance, lanes, and shards
|
|
172
|
+
|
|
173
|
+
The resource plane probes memory, workspace disk, V8 heap, and system CPU, then
|
|
174
|
+
produces bounded admission caps.
|
|
175
|
+
|
|
176
|
+
| Mechanism | Status | Authority |
|
|
177
|
+
| --- | --- | --- |
|
|
178
|
+
| Prompt-time probe, admission decision, and journal | Released / default | Observe and record |
|
|
179
|
+
| `/resource` and `omk doctor resources` | Released / opt-in | Inspect current policy and probe state |
|
|
180
|
+
| `omk doctor resources --report` | Working tree | Aggregate bounded local admission evidence; never promotes mode |
|
|
181
|
+
| Per-run tool cap and governed heavy-process permits | Released / opt-in | Enforced in `adaptive` or `strict` mode |
|
|
182
|
+
| `launchSubagentLanes()` | Released / internal | No live child-dispatch consumer |
|
|
183
|
+
| Journaled Vitest/Jest/workspace/Go shard executor | Released / internal | No `autoShard` setting or session-command consumer |
|
|
184
|
+
|
|
185
|
+
`observe` remains the default. Admission caps never raise configured caps.
|
|
186
|
+
Corrupt shard journals are quarantined and block resume; completed shards may be
|
|
187
|
+
skipped, but shard completion is only evidence and never a task verdict.
|
|
188
|
+
|
|
189
|
+
Evidence:
|
|
190
|
+
|
|
191
|
+
- `packages/coding-agent/src/core/resource-admission.ts`
|
|
192
|
+
- `packages/coding-agent/src/core/resource-governor-settings.ts`
|
|
193
|
+
- `packages/coding-agent/src/core/run-resource-lease.ts`
|
|
194
|
+
- `packages/coding-agent/src/commands/resource-doctor-cli.ts`
|
|
195
|
+
- `packages/coding-agent/src/core/resource-observation-report.ts`
|
|
196
|
+
- `packages/coding-agent/test/resource-observation-report.test.ts`
|
|
197
|
+
- `packages/coding-agent/src/core/subagent-lane-launcher.ts
|
|
198
|
+
- `packages/coding-agent/src/core/workload-shard-executor.ts`
|
|
199
|
+
- `packages/coding-agent/test/resource-admission.test.ts`
|
|
200
|
+
- `packages/coding-agent/test/resource-doctor-cli.test.ts`
|
|
201
|
+
- `packages/coding-agent/test/agent-session-resource-lease.test.ts`
|
|
202
|
+
- `packages/coding-agent/test/agent-session-resource-permits.test.ts`
|
|
203
|
+
- `packages/coding-agent/test/subagent-lane-launcher.test.ts`
|
|
204
|
+
- `packages/coding-agent/test/workload-shard-executor.test.ts`
|
|
205
|
+
|
|
206
|
+
### Terminal settlement notifications
|
|
207
|
+
|
|
208
|
+
**Status: Working tree.** `v0.97.0` released completion sound as opt-in and
|
|
209
|
+
suppressed user aborts. The current working tree enables it by default on an
|
|
210
|
+
interactive TTY and adds an `onAbort` outcome switch. Successful prompts retain
|
|
211
|
+
the 5-second duration floor; failed and aborted/stopped outcomes notify
|
|
212
|
+
immediately.
|
|
213
|
+
|
|
214
|
+
The sound consumes only `prompt_settled`, never intermediate `agent_end`. The
|
|
215
|
+
current live path drains provider attempts, tools, and queued continuations;
|
|
216
|
+
subagent work is awaited inside its tool call. The settlement reducer reserves
|
|
217
|
+
direct child/shard counters, but no production signal call wires them yet, so
|
|
218
|
+
future live lanes/shards must close that gap before activation.
|
|
219
|
+
RPC, JSON, print mode, and CI remain silent. Playback uses fixed absolute
|
|
220
|
+
executable/argv pairs, a minimal environment without inherited `PATH` or
|
|
221
|
+
credentials, and a neutral temporary cwd. WSL uses BEL rather than resolving
|
|
222
|
+
PowerShell through `PATH`. Playback is fire-and-forget and cannot change the
|
|
223
|
+
prompt outcome.
|
|
224
|
+
|
|
225
|
+
Evidence:
|
|
226
|
+
|
|
227
|
+
- `packages/coding-agent/src/core/prompt-settlement.ts`
|
|
228
|
+
- `packages/coding-agent/src/core/completion-sound.ts`
|
|
229
|
+
- `packages/coding-agent/src/core/completion-sound-io.ts`
|
|
230
|
+
- `packages/coding-agent/test/prompt-settlement.test.ts`
|
|
231
|
+
- `packages/coding-agent/test/completion-sound.test.ts`
|
|
232
|
+
- `packages/coding-agent/test/suite/agent-session-retry-events.test.ts`
|
|
233
|
+
|
|
234
|
+
### Evidence, decisions, and recovery
|
|
235
|
+
|
|
236
|
+
**Status: Released / opt-in.** The explicit `omk-protocol` API provides versioned,
|
|
237
|
+
readonly record contracts and runtime parsers for tasks, attempts, observations,
|
|
238
|
+
evaluations, waivers, and runtime decisions. `evaluateTask()` is pure. Among
|
|
239
|
+
unwaived required claims, any violation yields `fail`; otherwise missing
|
|
240
|
+
evidence yields `inconclusive`; otherwise the verdict is `pass`. A task with no
|
|
241
|
+
required claims is `inconclusive`; explicit waivers remove their claims from
|
|
242
|
+
verdict reduction. Advisory judging can choose among candidates that already
|
|
243
|
+
passed; it cannot create evidence or change a semantic verdict.
|
|
244
|
+
|
|
245
|
+
The coding-agent adds evidence receipts, a replay ledger, workspace
|
|
246
|
+
fingerprints, attempt journals, durable goals, seam checkpoints, session doctor,
|
|
247
|
+
and bounded provider retry/failover. Digests detect mismatch; they do not prove
|
|
248
|
+
runner honesty, OS isolation, freshness, or trusted authorship by themselves.
|
|
249
|
+
|
|
250
|
+
Evidence:
|
|
251
|
+
|
|
252
|
+
- `packages/protocol/src/evaluation.ts`: `evaluateTask`
|
|
253
|
+
- `packages/protocol/src/decision.ts`: `reduceRuntimeDecision`
|
|
254
|
+
- `packages/protocol/test/protocol.test.ts`
|
|
255
|
+
- `packages/coding-agent/src/core/advisory-judge.ts`
|
|
256
|
+
- `packages/coding-agent/test/advisory-judge.test.ts`
|
|
257
|
+
|
|
258
|
+
See [Run Protocol and Durable Goals](run-protocol.md),
|
|
259
|
+
[Sessions](sessions.md), [Provider Resilience](provider-resilience.md), and
|
|
260
|
+
[Turn Metrics](metrics.md).
|
|
261
|
+
|
|
262
|
+
### AdaptOrch and WPL boundary
|
|
263
|
+
|
|
264
|
+
**Status: Released / opt-in.** Published `omk-adaptorch-wpl` supplies typed packet state, client, adjudication, and
|
|
265
|
+
verdict-projection primitives. Its `loop.ts` explicitly excludes end-to-end
|
|
266
|
+
`adaptorch_run` dispatch, polling, request assembly, and persistence. The
|
|
267
|
+
coding-agent has no production importer that turns those primitives into a
|
|
268
|
+
default execution loop; the Correctness Wall remains an explicitly loaded
|
|
269
|
+
example extension. The default-off AdaptOrch reasoning bridge currently returns
|
|
270
|
+
no advisory hint.
|
|
271
|
+
|
|
272
|
+
Evidence:
|
|
273
|
+
|
|
274
|
+
- `packages/adaptorch-wpl/src/loop.ts`
|
|
275
|
+
- `packages/adaptorch-wpl/test/loop.test.ts`
|
|
276
|
+
- `packages/coding-agent/src/core/adaptorch-bridge.ts`
|
|
277
|
+
- `packages/coding-agent/test/suite/regressions/011-reasoning-router-adaptorch-bridge.test.ts`
|
|
278
|
+
- `packages/coding-agent/test/suite/regressions/012-reasoning-router-learning-adaptorch-activation.test.ts`
|
|
279
|
+
|
|
280
|
+
See [AdaptOrch Preview](adaptorch-preview.md) and
|
|
281
|
+
[Correctness Wall](correctness-wall.md).
|
|
282
|
+
|
|
283
|
+
### Repository understanding
|
|
284
|
+
|
|
285
|
+
**Status: Working tree.** The `v0.97.0` release shipped policy/workflow only and
|
|
286
|
+
still ignored `/openwiki/` and contained neither the corpus nor its checker.
|
|
287
|
+
Neither the release tag nor the current Git index tracks `openwiki/` or
|
|
288
|
+
`.understand-anything/`; both datasets are untracked or ignored advisory state.
|
|
289
|
+
The current `.last-update.json` says `interrupted` at current HEAD.
|
|
290
|
+
|
|
291
|
+
`scripts/check-openwiki.mjs` validates entry pages, internal links, update-state
|
|
292
|
+
shape, and global symbol-name presence in a source/test/script haystack. It does
|
|
293
|
+
not validate prose or bind each symbol to a declared source path. A current-HEAD
|
|
294
|
+
`interrupted` generation warns; a stale interrupted generation blocks. Source
|
|
295
|
+
and tests outrank every generated page. There is no dedicated checker test in
|
|
296
|
+
the current working tree; the executable checker is the available evidence.
|
|
297
|
+
|
|
298
|
+
This is not a release-grade trust gate: the current corpus is `interrupted`,
|
|
299
|
+
symbol checks are global substrings rather than declared source bindings, and
|
|
300
|
+
the generation workflow still needs an output allowlist plus pre-upload secret
|
|
301
|
+
and private-path scans. Do not load the corpus as trusted context until those
|
|
302
|
+
blockers close.
|
|
303
|
+
|
|
304
|
+
## Direction
|
|
305
|
+
|
|
306
|
+
**Status: Proposed.** Owning specification:
|
|
307
|
+
`specs/015-runtime-algorithm-direction/spec.md`. This section creates no runtime
|
|
308
|
+
or test evidence; the internal mechanisms above do not satisfy these promotion
|
|
309
|
+
gates. Apply them in order:
|
|
310
|
+
|
|
311
|
+
1. **Measure before promoting authority.** Run dated, same-model, same-provider,
|
|
312
|
+
same-task comparisons before changing defaults or making leadership claims.
|
|
313
|
+
The protocol in [Turn Metrics](metrics.md) is mandatory.
|
|
314
|
+
2. **Reduce structure before adding mechanisms.** Do not raise module-size,
|
|
315
|
+
dependency-tree, or import-cycle baselines. The dependency-tree and import-
|
|
316
|
+
cycle gates are working-tree changes. Split large session and interactive
|
|
317
|
+
modules by ownership; do not mix movement-only refactors with behavior.
|
|
318
|
+
3. **Promote live authority in stages.** Collect resource observations before
|
|
319
|
+
making `adaptive` the default. Wire subagent lanes before exposing automatic
|
|
320
|
+
sharding. Keep automatic sharding opt-in and limited to known, semantically
|
|
321
|
+
equivalent command families.
|
|
322
|
+
4. **Protect standing context.** The relevance floor and explicit-rule
|
|
323
|
+
compaction slice are Worktree-only. Broader natural-language, hook, and branch
|
|
324
|
+
triage still require evidence before expansion.
|
|
325
|
+
5. **Design verified memory before implementing it.** Spec 019 requires
|
|
326
|
+
evidence-linked admission, Context Budget V2 data-only injection, source-span
|
|
327
|
+
provenance, staleness, and memory-injection probes. Implementation remains
|
|
328
|
+
blocked until fixtures and evaluation thresholds are preregistered.
|
|
329
|
+
6. **Keep adaptation evidence-gated.** Do not add online router learning while
|
|
330
|
+
the current instrument cannot show gain after `BIAS_STRONG_THRESHOLD=5`.
|
|
331
|
+
Reopen only through an `advance` spec that preregisters the real outcome-
|
|
332
|
+
linked sample, sample size, minimum effect, confidence rule, and statistical
|
|
333
|
+
test before collecting the promotion result.
|
|
334
|
+
7. **Keep hosted advice separate from local authority.** AdaptOrch remains a
|
|
335
|
+
separate service and any bridge remains advisory; local deterministic gates
|
|
336
|
+
own execution and completion.
|
|
337
|
+
|
|
338
|
+
## Deliberate non-goals
|
|
339
|
+
|
|
340
|
+
- Calling a level-barrier schedule an eager critical-path executor
|
|
341
|
+
- Treating internal lane or shard code as a live feature
|
|
342
|
+
- Auto-sharding arbitrary shell, deploy, publish, release, or migration commands
|
|
343
|
+
- Treating model narration, reviewer opinion, or a digest alone as completion
|
|
344
|
+
- Persisting unrestricted prompts or trajectories as learning memory
|
|
345
|
+
- Claiming SOTA from tests, feature counts, self-scores, or roadmap projections
|
|
346
|
+
|
|
347
|
+
## Verification map
|
|
348
|
+
|
|
349
|
+
| Claim | Fast verification |
|
|
350
|
+
| --- | --- |
|
|
351
|
+
| Documentation links resolve | `npm run check:doc-links` |
|
|
352
|
+
| Specification governance holds | `npm run check:constitution` |
|
|
353
|
+
| Context selection behavior | focused context-budget tests named above |
|
|
354
|
+
| Router behavior and promotion ceiling | focused reasoning-router tests named above |
|
|
355
|
+
| Tool scheduling and timeout candidate | focused `packages/agent` scheduler/timeout tests |
|
|
356
|
+
| Resource and internal execution mechanisms | focused resource, lane, and shard tests named above |
|
|
357
|
+
|
|
358
|
+
A green focused test proves only its declared behavior. Release readiness still
|
|
359
|
+
requires the repository's full release gates.
|
package/docs/sdk.md
CHANGED
|
@@ -565,12 +565,12 @@ The `edit` tool returns `details.diff` for OMK's TUI display and `details.patch`
|
|
|
565
565
|
|
|
566
566
|
The `diagnostics` tool runs the project's own checkers and normalizes the result — `tsc --noEmit` for TypeScript, `pyright`/`ruff` for Python, `go vet` for Go, `cargo check` for Rust. Missing checkers or project markers are reported as `skipped` in the tool result instead of failing. Output is capped at 50 diagnostics and cached for 5 s.
|
|
567
567
|
|
|
568
|
-
|
|
568
|
+
Truncated `read` output may spill the selected window to a randomly named `omk-spill-*` directory under the OS temporary directory; `ReadToolDetails.fullOutputPath` reports the path when present. The directory is owner-only (`0700`) and the spill file is exclusive and owner-readable (`0600`) on POSIX. A first line that alone exceeds the byte cap is clipped without a spill. The exported `spillTruncatedOutput()` helper provides the same preview-plus-path contract for custom tools.
|
|
569
569
|
|
|
570
570
|
```typescript
|
|
571
571
|
import { createAgentSession } from "open-multi-agent-kit";
|
|
572
572
|
|
|
573
|
-
// Enable inspection tools;
|
|
573
|
+
// Enable inspection tools; a long read may create a private temp spill
|
|
574
574
|
const { session } = await createAgentSession({
|
|
575
575
|
tools: ["read", "grep", "find", "ls"],
|
|
576
576
|
});
|
package/docs/settings.md
CHANGED
|
@@ -138,7 +138,7 @@ All numeric token reserves must be non-negative safe integers. Ratios must be fi
|
|
|
138
138
|
|
|
139
139
|
| Setting | Type | Default | Description |
|
|
140
140
|
|---------|------|---------|-------------|
|
|
141
|
-
| `contextBudget.enabled` | boolean | `false` | Globally enable prompt resource budgeting
|
|
141
|
+
| `contextBudget.enabled` | boolean | `false` | Globally enable prompt resource budgeting; representation entries persist per workspace by default while plan entries stay in session memory |
|
|
142
142
|
|
|
143
143
|
```json
|
|
144
144
|
{
|
|
@@ -146,7 +146,7 @@ All numeric token reserves must be non-negative safe integers. Ratios must be fi
|
|
|
146
146
|
}
|
|
147
147
|
```
|
|
148
148
|
|
|
149
|
-
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.
|
|
149
|
+
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. When enabled, content-addressed representation and negative-result entries persist under `.omk/cache/context-budget-v2`; plan entries stay in session memory. Set `OMK_CONTEXT_GOVERNOR_CACHE=memory` to keep every entry in session memory or `OMK_CONTEXT_GOVERNOR_CACHE_DIR` to relocate the representation snapshot.
|
|
150
150
|
|
|
151
151
|
### Agent Tool Execution
|
|
152
152
|
|
|
@@ -182,7 +182,7 @@ The DAG preserves source-order result artifacts. `bash`, unknown tools, and exte
|
|
|
182
182
|
|
|
183
183
|
### Resource Governor
|
|
184
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.
|
|
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. `omk doctor resources --report [--json]` aggregates bounded, identifier-free admission counts from local run journals without probing the current host. Only reason-qualified records count toward the 30-record floor; legacy/malformed reason coverage remains diagnostic. The floor is only a sample signal, always requires human review, and never promotes the mode. 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
186
|
|
|
187
187
|
| Setting | Type | Default | Description |
|
|
188
188
|
| --------- | ------ | --------- | ------------- |
|
|
@@ -213,20 +213,21 @@ Validation is explicit and fail-closed: invalid values are reported (in `/resour
|
|
|
213
213
|
|
|
214
214
|
### Completion Sound
|
|
215
215
|
|
|
216
|
-
Plays a short system sound
|
|
216
|
+
Plays a short system sound only after the top-level prompt settles: retries, continuations, and tools must be drained first. Current subagent work is awaited inside its tool call, so that tool boundary also covers those children. The settlement contract reserves direct child/shard counters for future live wiring; those paths must connect the counters before activation. Sound is enabled by default only in the interactive TUI on a real TTY—never in RPC, JSON, print mode, or CI. Successful prompts honor `minDurationMs`; failed and aborted prompts notify immediately. Backends use fixed absolute executables and arguments (macOS `afplay`, Windows system PowerShell, Linux `canberra-gtk-play`/`paplay`/`aplay`), an allowlisted environment with no inherited `PATH` or credentials, and the OS temporary directory as cwd. WSL uses terminal BEL because Windows executable mounts have no fixed trusted path. Sound failures are diagnostics only and never affect the prompt outcome.
|
|
217
217
|
|
|
218
218
|
| Setting | Type | Default | Description |
|
|
219
219
|
| --------- | ------ | --------- | ------------- |
|
|
220
|
-
| `notifications.completionSound.enabled` | boolean | `
|
|
221
|
-
| `notifications.completionSound.minDurationMs` | number | `5000` |
|
|
222
|
-
| `notifications.completionSound.onSuccess` | boolean | `true` |
|
|
223
|
-
| `notifications.completionSound.onFailure` | boolean | `true` |
|
|
224
|
-
| `notifications.completionSound.
|
|
220
|
+
| `notifications.completionSound.enabled` | boolean | `true` | Master switch; `OMK_COMPLETION_SOUND=0` disables and `=1` enables it for one process |
|
|
221
|
+
| `notifications.completionSound.minDurationMs` | number | `5000` | Minimum duration for successful-completion sounds; failed/aborted outcomes bypass it |
|
|
222
|
+
| `notifications.completionSound.onSuccess` | boolean | `true` | Notify after a completed prompt that meets the duration floor |
|
|
223
|
+
| `notifications.completionSound.onFailure` | boolean | `true` | Notify immediately after a failed terminal outcome |
|
|
224
|
+
| `notifications.completionSound.onAbort` | boolean | `true` | Notify immediately after an aborted/stopped terminal outcome |
|
|
225
|
+
| `notifications.completionSound.terminalBellFallback` | boolean | `true` | Fall back to terminal BEL when no sound backend works |
|
|
225
226
|
|
|
226
227
|
```json
|
|
227
228
|
{
|
|
228
229
|
"notifications": {
|
|
229
|
-
"completionSound": { "
|
|
230
|
+
"completionSound": { "minDurationMs": 10000, "onAbort": false }
|
|
230
231
|
}
|
|
231
232
|
}
|
|
232
233
|
```
|
package/docs/usage.md
CHANGED
|
@@ -45,6 +45,7 @@ Type `/` in the editor to open command completion. Extensions can register custo
|
|
|
45
45
|
| `/new` | Start a new session |
|
|
46
46
|
| `/name <name>` | Set session display name |
|
|
47
47
|
| `/session` | Show session file, ID, messages, tokens, and cost |
|
|
48
|
+
| `/resource [probe\|policy]` | Show resource pressure and effective concurrency for this run |
|
|
48
49
|
| `/goal [objective]` | Show or set the durable goal for the current working directory |
|
|
49
50
|
| `/tree` | Jump to any point in the session and continue from there |
|
|
50
51
|
| `/fork` | Create a new session from a previous user message |
|
|
@@ -261,6 +262,21 @@ Diagnoses one provider and prints a single sanitized JSON document. Exit codes a
|
|
|
261
262
|
|
|
262
263
|
Config sources, highest precedence first: `models.json`, `KIMI_BASE_URL`/`KIMI_MODEL_NAME` env, `~/.kimi/config.toml` root keys, then `[providers.<name>]` TOML tables with `type = "openai_legacy"` — the last are classified `custom-openai-compatible`, so native-only checks (login, native config) are skipped and endpoint reachability is checked instead. Credentials, URL userinfo/query/fragment, request bodies, and response bodies never appear in the output; malformed TOML is reported by line number only.
|
|
263
264
|
|
|
265
|
+
### Resource Doctor
|
|
266
|
+
|
|
267
|
+
```bash
|
|
268
|
+
omk doctor resources [--json]
|
|
269
|
+
omk doctor resources --report [--json]
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
The first form probes current host pressure. `--report` does not probe the host;
|
|
273
|
+
it scans at most 500 bounded local resource-observation journals and emits only
|
|
274
|
+
aggregate pressure/action/probe-health counts. It opens bounded regular files
|
|
275
|
+
without following symlinks and never includes paths, prompt or decision IDs,
|
|
276
|
+
digests, a command field, or raw capacity. Only reason-qualified records count
|
|
277
|
+
toward the 30-record floor; the report always requires human false-positive
|
|
278
|
+
review and never promotes `adaptive`.
|
|
279
|
+
|
|
264
280
|
### Modes
|
|
265
281
|
|
|
266
282
|
| Flag | Description |
|
|
@@ -311,7 +327,7 @@ cat README.md | omk -p "Summarize this text"
|
|
|
311
327
|
|
|
312
328
|
Built-in tools: `read`, `bash`, `edit`, `write`, `grep`, `find`, `ls`.
|
|
313
329
|
|
|
314
|
-
|
|
330
|
+
A long text `read` returns a bounded window and continuation marker. Truncation may spill the selected window to a randomly named owner-only directory under the OS temporary directory and report that path; the directory uses mode `0700` and the file `0600` on POSIX. A first line that alone exceeds the byte cap is clipped without a spill. An inspection-only tool allowlist is therefore not a strict no-write filesystem boundary.
|
|
315
331
|
|
|
316
332
|
### Resource Options
|
|
317
333
|
|
|
@@ -380,7 +396,7 @@ omk --model sonnet:high "Solve this complex problem"
|
|
|
380
396
|
# Limit model cycling
|
|
381
397
|
omk --models "claude-*,gpt-4o"
|
|
382
398
|
|
|
383
|
-
# Inspection-only tool allowlist;
|
|
399
|
+
# Inspection-only tool allowlist; a long read may create a private temp spill
|
|
384
400
|
omk --tools read,grep,find,ls -p "Review the code"
|
|
385
401
|
|
|
386
402
|
# Disable one extension or built-in tool while keeping the rest available
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omk-extension-custom-provider-anthropic",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.98.0",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "omk-extension-custom-provider-anthropic",
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "0.98.0",
|
|
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.
|
|
3
|
+
"version": "0.98.0",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "omk-extension-gondolin",
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "0.98.0",
|
|
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.
|
|
3
|
+
"version": "0.98.0",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "omk-extension-sandbox",
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "0.98.0",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@anthropic-ai/sandbox-runtime": "0.0.26"
|
|
12
12
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omk-extension-with-deps",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.98.0",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "omk-extension-with-deps",
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "0.98.0",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"ms": "2.1.3"
|
|
12
12
|
},
|