open-multi-agent-kit 0.78.8 → 0.79.3
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/AGENTS.md +131 -2
- package/CHANGELOG.md +32 -0
- package/CLAUDE.md +105 -3
- package/DESIGN.md +141 -117
- package/MATURITY.md +7 -12
- package/README.md +66 -347
- package/ROADMAP.md +33 -47
- package/dist/adapters/kimi/runner.js +2 -2
- package/dist/brand/theme.js +2 -2
- package/dist/cli/register-basic-commands.js +3 -2
- package/dist/cli/register-mcp-dag-cron-screenshot-commands.js +1 -1
- package/dist/cli/root.d.ts +1 -0
- package/dist/cli/root.js +2 -0
- package/dist/cli/runtime/command-bus.js +14 -1
- package/dist/cli/theme/terminal-capability.js +1 -1
- package/dist/cli/theme/theme-registry.js +90 -2
- package/dist/cli/ui/event.d.ts +1 -0
- package/dist/cli/ui/neon-grid-renderer.d.ts +8 -0
- package/dist/cli/ui/neon-grid-renderer.js +84 -14
- package/dist/cli/ui/plain-renderer.js +3 -1
- package/dist/cli/ui/system24-renderer.js +3 -1
- package/dist/cli/v2/chat-repl.d.ts +2 -1
- package/dist/cli/v2/chat-repl.js +58 -2
- package/dist/cli/v2/cli-v2-skeleton.js +7 -4
- package/dist/cli/v2/interactive-prompt.js +4 -3
- package/dist/commands/auth.js +2 -0
- package/dist/commands/chat/native-root-loop.d.ts +1 -0
- package/dist/commands/chat/native-root-loop.js +162 -13
- package/dist/commands/chat/runtime.js +9 -0
- package/dist/commands/chat/slash/commands/routing.js +31 -1
- package/dist/commands/chat/utils.js +3 -1
- package/dist/commands/cockpit/render.js +2 -1
- package/dist/commands/doctor/checks.js +2 -2
- package/dist/commands/init/core.js +2 -2
- package/dist/commands/init.js +2 -2
- package/dist/commands/mcp/config.js +38 -16
- package/dist/commands/mcp/doctor.js +7 -8
- package/dist/commands/mcp/list.js +4 -3
- package/dist/commands/mcp/shared.d.ts +4 -1
- package/dist/commands/mcp/shared.js +21 -3
- package/dist/commands/mcp/test.js +13 -12
- package/dist/commands/model.js +4 -0
- package/dist/commands/provider.js +5 -1
- package/dist/commands/version.d.ts +1 -0
- package/dist/commands/version.js +18 -0
- package/dist/contracts/command.d.ts +25 -0
- package/dist/contracts/command.js +1 -0
- package/dist/contracts/evidence-bundle.d.ts +52 -0
- package/dist/contracts/evidence-bundle.js +1 -0
- package/dist/contracts/index.d.ts +2 -0
- package/dist/contracts/index.js +2 -0
- package/dist/contracts/web-bridge.d.ts +1 -1
- package/dist/contracts/web-bridge.js +1 -1
- package/dist/evidence/bundle-validator.d.ts +7 -0
- package/dist/evidence/bundle-validator.js +103 -0
- package/dist/evidence/index.d.ts +5 -0
- package/dist/evidence/index.js +2 -0
- package/dist/evidence/proof-trust.js +2 -10
- package/dist/evidence/trust-calibration.d.ts +25 -0
- package/dist/evidence/trust-calibration.js +151 -0
- package/dist/mcp/omk-project-server.js +1 -1
- package/dist/metrics/provenance-ratio.d.ts +16 -0
- package/dist/metrics/provenance-ratio.js +33 -0
- package/dist/orchestration/dag.d.ts +17 -0
- package/dist/orchestration/ensemble-decision.d.ts +2 -0
- package/dist/orchestration/ensemble-decision.js +4 -0
- package/dist/orchestration/hedge-persona-weights.d.ts +25 -0
- package/dist/orchestration/hedge-persona-weights.js +43 -0
- package/dist/orchestration/parallel-ui.d.ts +1 -0
- package/dist/orchestration/parallel-ui.js +12 -3
- package/dist/orchestration/route-calibration.d.ts +27 -0
- package/dist/orchestration/route-calibration.js +123 -0
- package/dist/orchestration/routing/mcp-config.js +5 -1
- package/dist/orchestration/routing/types.d.ts +21 -0
- package/dist/orchestration/routing.d.ts +10 -0
- package/dist/orchestration/routing.js +89 -3
- package/dist/providers/model-registry.d.ts +2 -1
- package/dist/providers/model-registry.js +76 -4
- package/dist/providers/provider-runtime.js +9 -1
- package/dist/providers/thinking-levels.js +2 -0
- package/dist/providers/types.d.ts +1 -1
- package/dist/runtime/glm-api-runtime.d.ts +4 -0
- package/dist/runtime/glm-api-runtime.js +15 -0
- package/dist/runtime/index.d.ts +1 -0
- package/dist/runtime/index.js +1 -0
- package/dist/runtime/kimi-api-runtime.d.ts +6 -1
- package/dist/runtime/kimi-api-runtime.js +10 -4
- package/dist/runtime/recovery-artifact-store.d.ts +39 -0
- package/dist/runtime/recovery-artifact-store.js +111 -0
- package/dist/runtime/runtime-backed-task-runner.js +10 -0
- package/dist/runtime/runtime-bootstrap.js +17 -1
- package/dist/runtime/slash-commands.js +38 -5
- package/dist/schema/command.schema.d.ts +121 -0
- package/dist/schema/command.schema.js +25 -0
- package/dist/schema/envelope.schema.d.ts +2 -2
- package/dist/schema/evidence-bundle.schema.d.ts +196 -0
- package/dist/schema/evidence-bundle.schema.js +38 -0
- package/dist/schema/index.d.ts +2 -0
- package/dist/schema/index.js +2 -0
- package/dist/schema/proof-bundle.schema.d.ts +2 -2
- package/dist/theme/external-theme-adapters.d.ts +27 -0
- package/dist/theme/external-theme-adapters.js +52 -0
- package/dist/theme/library-effects.d.ts +12 -0
- package/dist/theme/library-effects.js +47 -0
- package/dist/theme/parallel.js +3 -2
- package/dist/tui/terminal-frame-renderer.d.ts +9 -1
- package/dist/tui/terminal-frame-renderer.js +77 -7
- package/dist/util/chat-cockpit.d.ts +3 -1
- package/dist/util/chat-cockpit.js +44 -5
- package/dist/util/command-envelope.d.ts +19 -0
- package/dist/util/command-envelope.js +31 -0
- package/dist/util/events-logger.d.ts +1 -1
- package/dist/util/events-logger.js +23 -16
- package/dist/util/fs/mcp-diagnose.js +2 -1
- package/dist/util/fs/mcp-runtime-config.js +14 -2
- package/dist/util/i18n.js +2 -2
- package/dist/util/screenshot-store.d.ts +7 -0
- package/dist/util/screenshot-store.js +30 -0
- package/dist/util/terminal-kit-bridge.d.ts +24 -0
- package/dist/util/terminal-kit-bridge.js +60 -0
- package/dist/util/terminal-owner.d.ts +1 -0
- package/dist/util/terminal-owner.js +31 -0
- package/dist/version.d.ts +3 -1
- package/dist/version.js +4 -0
- package/docs/2026-05-18-project-direction.md +1 -1
- package/docs/2026-06-14/critical-issues.md +19 -0
- package/docs/2026-06-14/improvements.md +15 -0
- package/docs/2026-06-14/init-checklist.md +25 -0
- package/docs/2026-06-14/plan.md +20 -0
- package/docs/2026-06-15/critical-issues.md +19 -0
- package/docs/2026-06-15/improvements.md +15 -0
- package/docs/2026-06-15/init-checklist.md +25 -0
- package/docs/2026-06-15/plan.md +20 -0
- package/docs/claims.md +85 -0
- package/docs/comparisons/omk-vs-claude-code.md +31 -0
- package/docs/comparisons/omk-vs-codex.md +33 -0
- package/docs/comparisons/omk-vs-mcp-agent.md +33 -0
- package/docs/comparisons/omk-vs-opencode.md +32 -0
- package/docs/decision-layer-calibration.md +20 -0
- package/docs/geo-eval-prompts.md +53 -0
- package/docs/getting-started.md +3 -31
- package/docs/headroom-omk-setup-guide.md +2 -2
- package/docs/integrations/adaptorch.md +46 -0
- package/docs/native-root-runtime-algorithms.md +2 -303
- package/docs/native-root-runtime-hardening.md +1 -1
- package/docs/provider-maturity.md +1 -1
- package/docs/use-cases/evidence-gated-coding-agents.md +52 -0
- package/docs/use-cases/no-kimi-mode.md +38 -0
- package/docs/use-cases/provider-routing-for-ai-coding.md +36 -0
- package/docs/use-cases/replayable-agent-runs.md +40 -0
- package/docs/use-cases/scoped-mcp-for-coding-agents.md +34 -0
- package/docs/versioning.md +9 -3
- package/docs/what-is-omk.md +64 -0
- package/llms.txt +28 -18
- package/package.json +7 -2
- package/readmeasset/.npmignore +3 -0
- package/readmeasset/ASSET_INDEX.md +3 -0
- package/readmeasset/ASSET_PROVENANCE.md +6 -0
- package/readmeasset/omk-adaptorch-ouroboros-supermemory.svg +95 -0
- package/readmeasset/omk-init-control-loop.svg +118 -0
- package/readmeasset/omk-parallel-subagents.svg +97 -0
- package/templates/web-bridge/chrome-extension/background.js +1 -1
|
@@ -375,8 +375,8 @@ $\texttt{OMK\_NODE\_ROLE}: \omega$
|
|
|
375
375
|
## Paper-ready summary paragraphs
|
|
376
376
|
|
|
377
377
|
```latex
|
|
378
|
-
\paragraph{
|
|
379
|
-
OMK implements a provider-neutral runtime architecture under active hardening. For each interactive root turn, OMK constructs a prompt envelope, injects scoped capabilities such as MCP servers, skills, and hooks, and materializes the turn as a DAG coordinator node. The node is converted into a context capsule and then into a provider-neutral AgentTask. A runtime router classifies the task intent, filters runtimes by capability compatibility, scores them using evidence history and preference priors, and executes the selected runtime with an explicit fallback chain. This design
|
|
378
|
+
\paragraph{Kimi-first native orchestration.}
|
|
379
|
+
OMK implements a Kimi-first but provider-neutral runtime architecture under active hardening. For each interactive root turn, OMK constructs a prompt envelope, injects scoped capabilities such as MCP servers, skills, and hooks, and materializes the turn as a DAG coordinator node. The node is converted into a context capsule and then into a provider-neutral AgentTask. A runtime router classifies the task intent, filters runtimes by capability compatibility, scores them using evidence history and preference priors, and executes the selected runtime with an explicit fallback chain. This design preserves Kimi as the mature authority runtime while allowing Codex, DeepSeek, OpenCode, and CommandCode to participate as typed worker runtimes when adapter health, approval policy, sandbox behavior, and capability contracts match the task.
|
|
380
380
|
|
|
381
381
|
\paragraph{Secure prompt and environment transport.}
|
|
382
382
|
Recent OMK revisions harden worker execution by removing prompt payloads from process arguments. Kimi DAG prompts are transmitted through standard input with \texttt{--input-format text}, reducing process-list leakage risk. Kimi child execution and default native worker spawn paths receive scoped metadata through sanitized child environments. External CLI adapters and explicit override environments remain trusted local inputs and must be reviewed per adapter.
|
|
@@ -400,304 +400,3 @@ Recent OMK revisions harden worker execution by removing prompt payloads from pr
|
|
|
400
400
|
- Provider stderr diagnostics still require continued redaction/debug-gating work; safety claims depend on the exact adapter path and tests.
|
|
401
401
|
- Provider health probes are improving, but binary/API presence, auth state, model support, and quota state are not yet uniformly separated across every adapter; Algorithm 5 routes by available registry/capability/evidence metadata, not by universal quota-aware health.
|
|
402
402
|
- ActionAtom, Novelty Guard, and provider-lane fanout language in prompt/harness surfaces remains contract-level unless backed by a concrete runtime implementation and tests.
|
|
403
|
-
|
|
404
|
-
# Appendix: OMK Next-Step Runtime Hardening Algorithms
|
|
405
|
-
|
|
406
|
-
This appendix defines the hardening gate algorithms used to advance the OMK native root runtime from internal → pre-release → stable. Each algorithm returns a score or verdict; the thresholds and weights below must be preserved exactly.
|
|
407
|
-
|
|
408
|
-
## Algorithm 1: Next Implementation Stage Controller
|
|
409
|
-
|
|
410
|
-
**Inputs**
|
|
411
|
-
|
|
412
|
-
- Current stage $s \in \{\text{internal}, \text{pre-release}, \text{stable}\}$
|
|
413
|
-
- Proof trust score $T_b$
|
|
414
|
-
- Evidence item trust $T_e$
|
|
415
|
-
- Public surface count $P$
|
|
416
|
-
- Router v2 cutover status $C_r \in \{\text{shadow}, \text{cutover}\}$
|
|
417
|
-
|
|
418
|
-
**Output**
|
|
419
|
-
|
|
420
|
-
- Next stage $s'$
|
|
421
|
-
|
|
422
|
-
**Pseudocode**
|
|
423
|
-
|
|
424
|
-
```text
|
|
425
|
-
function NextStage(s, T_b, T_e, P, C_r):
|
|
426
|
-
if P > 7:
|
|
427
|
-
return s
|
|
428
|
-
if s = internal:
|
|
429
|
-
if T_b ≥ 0.60 and T_e ≥ 0.75:
|
|
430
|
-
return pre-release
|
|
431
|
-
if s = pre-release:
|
|
432
|
-
if T_b ≥ 0.75 and T_e ≥ 0.75 and C_r = cutover:
|
|
433
|
-
return stable
|
|
434
|
-
return s
|
|
435
|
-
```
|
|
436
|
-
|
|
437
|
-
## Algorithm 2: Public Surface Freeze
|
|
438
|
-
|
|
439
|
-
**Inputs**
|
|
440
|
-
|
|
441
|
-
- Public surface set $S_{\text{pub}}$ (documented API, CLI commands, environment variables)
|
|
442
|
-
- Freeze baseline $B_{\text{pub}}$
|
|
443
|
-
|
|
444
|
-
**Output**
|
|
445
|
-
|
|
446
|
-
- Freeze verdict $\in \{\text{pass}, \text{fail}\}$
|
|
447
|
-
|
|
448
|
-
**Pseudocode**
|
|
449
|
-
|
|
450
|
-
```text
|
|
451
|
-
function PublicSurfaceFreeze(S_pub, B_pub):
|
|
452
|
-
P ← |S_pub|
|
|
453
|
-
Δ ← S_pub \ B_pub
|
|
454
|
-
if P > 7:
|
|
455
|
-
return fail
|
|
456
|
-
if |Δ| > 0:
|
|
457
|
-
return fail
|
|
458
|
-
return pass
|
|
459
|
-
```
|
|
460
|
-
|
|
461
|
-
**Invariant**
|
|
462
|
-
|
|
463
|
-
- Surface public count $P \le 7$.
|
|
464
|
-
- No new public members may be added after the freeze baseline.
|
|
465
|
-
|
|
466
|
-
## Algorithm 3: Proof Trust MVP
|
|
467
|
-
|
|
468
|
-
**Inputs**
|
|
469
|
-
|
|
470
|
-
- Eight normalized proof dimensions $b_1 \dots b_8$:
|
|
471
|
-
1. Unit test pass rate
|
|
472
|
-
2. Lint / format gate
|
|
473
|
-
3. Type-check gate
|
|
474
|
-
4. Secret-scan gate
|
|
475
|
-
5. Smoke test gate
|
|
476
|
-
6. Code-review sign-off
|
|
477
|
-
7. Documentation sync
|
|
478
|
-
8. Build / provenance gate
|
|
479
|
-
|
|
480
|
-
**Formula**
|
|
481
|
-
|
|
482
|
-
$$
|
|
483
|
-
T_b = 0.15 b_1 + 0.15 b_2 + 0.10 b_3 + 0.15 b_4 + 0.15 b_5 + 0.15 b_6 + 0.05 b_7 + 0.10 b_8
|
|
484
|
-
$$
|
|
485
|
-
|
|
486
|
-
**Thresholds**
|
|
487
|
-
|
|
488
|
-
- Stable: $T_b \ge \tau_{\text{proof}} = 0.85$
|
|
489
|
-
- Pre-release: $T_b \ge 0.75$
|
|
490
|
-
- Internal: $T_b \ge 0.60$
|
|
491
|
-
|
|
492
|
-
## Algorithm 4: Evidence Item Trust
|
|
493
|
-
|
|
494
|
-
**Inputs**
|
|
495
|
-
|
|
496
|
-
- Six normalized evidence dimensions $e_1 \dots e_6$:
|
|
497
|
-
1. Changed-file inventory
|
|
498
|
-
2. Commands-run log
|
|
499
|
-
3. Passed quality gates
|
|
500
|
-
4. Failure disclosure completeness
|
|
501
|
-
5. Risk note presence
|
|
502
|
-
6. Harness artifact presence
|
|
503
|
-
|
|
504
|
-
**Formula**
|
|
505
|
-
|
|
506
|
-
$$
|
|
507
|
-
T_e = 0.25 e_1 + 0.20 e_2 + 0.15 e_3 + 0.20 e_4 + 0.10 e_5 + 0.10 e_6
|
|
508
|
-
$$
|
|
509
|
-
|
|
510
|
-
**Threshold**
|
|
511
|
-
|
|
512
|
-
- $\tau_{\text{evidence}} = 0.75$
|
|
513
|
-
|
|
514
|
-
## Algorithm 5: Provider Maturity MVP
|
|
515
|
-
|
|
516
|
-
**Inputs**
|
|
517
|
-
|
|
518
|
-
- Eight normalized provider dimensions $p_1 \dots p_8$:
|
|
519
|
-
1. Binary / package presence
|
|
520
|
-
2. Authentication health
|
|
521
|
-
3. Model list currency
|
|
522
|
-
4. Quota-separation probe
|
|
523
|
-
5. Recent error rate
|
|
524
|
-
6. Fallback success rate
|
|
525
|
-
7. Stderr redaction coverage
|
|
526
|
-
8. Sandbox hint enforcement
|
|
527
|
-
|
|
528
|
-
**Formula**
|
|
529
|
-
|
|
530
|
-
$$
|
|
531
|
-
M_p = 0.10 p_1 + 0.10 p_2 + 0.15 p_3 + 0.10 p_4 + 0.15 p_5 + 0.15 p_6 + 0.15 p_7 + 0.10 p_8
|
|
532
|
-
$$
|
|
533
|
-
|
|
534
|
-
**Cutoffs**
|
|
535
|
-
|
|
536
|
-
- $M_p \ge 0.75$ required for pre-release worker eligibility.
|
|
537
|
-
- $M_p \ge 0.85$ recommended for stable default authority.
|
|
538
|
-
|
|
539
|
-
## Algorithm 6: Router v2 Cutover
|
|
540
|
-
|
|
541
|
-
**Inputs**
|
|
542
|
-
|
|
543
|
-
- Six positive router quality dimensions $r_1 \dots r_6$:
|
|
544
|
-
1. Intent classification accuracy
|
|
545
|
-
2. Median routing latency
|
|
546
|
-
3. Fallback utilization
|
|
547
|
-
4. Evidence-pass rate
|
|
548
|
-
5. Decision-trace completeness
|
|
549
|
-
6. Health-separation coverage
|
|
550
|
-
- Two penalty terms $r_7, r_8$
|
|
551
|
-
|
|
552
|
-
**Formula**
|
|
553
|
-
|
|
554
|
-
$$
|
|
555
|
-
Q_r = 0.25 r_1 + 0.15 r_2 + 0.20 r_3 + 0.15 r_4 + 0.10 r_5 + 0.10 r_6 - 0.15 r_7 - 0.10 r_8
|
|
556
|
-
$$
|
|
557
|
-
|
|
558
|
-
**Shadow rule**
|
|
559
|
-
|
|
560
|
-
- If $\texttt{OMK\_ROUTER\_V2} = \text{shadow}$:
|
|
561
|
-
- Execute Router v2 alongside Router v1.
|
|
562
|
-
- Record both decisions and discrepancies.
|
|
563
|
-
- Cutover is allowed only when $Q_r \ge 0.85$ and the discrepancy rate is zero across the minimal verified demo run.
|
|
564
|
-
|
|
565
|
-
## Algorithm 7: Minimal Verified Demo Run
|
|
566
|
-
|
|
567
|
-
**Inputs**
|
|
568
|
-
|
|
569
|
-
- Runtime $\mathcal{R}$
|
|
570
|
-
- Demo scenario set $D = \{d_{\text{read}}, d_{\text{write}}, d_{\text{shell}}, d_{\text{fallback}}\}$
|
|
571
|
-
|
|
572
|
-
**Output**
|
|
573
|
-
|
|
574
|
-
- Demo verdict and evidence bundle $\mathcal{E}_D$
|
|
575
|
-
|
|
576
|
-
**Pseudocode**
|
|
577
|
-
|
|
578
|
-
```text
|
|
579
|
-
function MinimalVerifiedDemoRun(R, D):
|
|
580
|
-
E_D ← ∅
|
|
581
|
-
for d in D:
|
|
582
|
-
r ← R.Execute(d, abortSignal=NewAbortController())
|
|
583
|
-
if r.exitCode ≠ 0:
|
|
584
|
-
return (fail, E_D)
|
|
585
|
-
if SecretScan(r.stdout, r.stderr) ≠ clean:
|
|
586
|
-
return (fail, E_D)
|
|
587
|
-
E_D ← E_D ∪ {d, r.metadata, r.evidence}
|
|
588
|
-
T_e ← ComputeEvidenceTrust(E_D)
|
|
589
|
-
if T_e < 0.75:
|
|
590
|
-
return (fail, E_D)
|
|
591
|
-
return (pass, E_D)
|
|
592
|
-
```
|
|
593
|
-
|
|
594
|
-
## Algorithm 8: Release Promotion Gate
|
|
595
|
-
|
|
596
|
-
**Inputs**
|
|
597
|
-
|
|
598
|
-
- Nine positive release dimensions $v_1 \dots v_9$:
|
|
599
|
-
1. Proof trust $T_b$
|
|
600
|
-
2. Evidence trust $T_e$
|
|
601
|
-
3. Public surface freeze pass
|
|
602
|
-
4. Provider maturity $M_p$
|
|
603
|
-
5. Router v2 quality $Q_r$
|
|
604
|
-
6. Minimal demo run pass
|
|
605
|
-
7. Security review closure
|
|
606
|
-
8. Docs / changelog sync
|
|
607
|
-
9. Issue closure rate
|
|
608
|
-
- One penalty term $v_{10}$ for unresolved high-severity risk
|
|
609
|
-
|
|
610
|
-
**Formula**
|
|
611
|
-
|
|
612
|
-
$$
|
|
613
|
-
R_v = 0.15 v_1 + 0.10 v_2 + 0.10 v_3 + 0.10 v_4 + 0.10 v_5 + 0.15 v_6 + 0.15 v_7 + 0.10 v_8 + 0.10 v_9 - 0.15 v_{10}
|
|
614
|
-
$$
|
|
615
|
-
|
|
616
|
-
**Promotion logic**
|
|
617
|
-
|
|
618
|
-
```text
|
|
619
|
-
function ReleasePromotion(R_v, T_b, T_e, P, Δ):
|
|
620
|
-
if P > 7 or |Δ| > 0:
|
|
621
|
-
return internal
|
|
622
|
-
if R_v ≥ 0.85 and T_b ≥ 0.85 and T_e ≥ 0.75:
|
|
623
|
-
return stable
|
|
624
|
-
if R_v ≥ 0.75 and T_b ≥ 0.75 and T_e ≥ 0.75:
|
|
625
|
-
return pre-release
|
|
626
|
-
return internal
|
|
627
|
-
```
|
|
628
|
-
|
|
629
|
-
> **Final Rule 1:** No stage promotion may occur while the public surface count exceeds 7 or any new public surface has been added since the freeze baseline.
|
|
630
|
-
|
|
631
|
-
> **Final Rule 2:** Router v2 cutover remains in `OMK_ROUTER_V2=shadow` mode until $Q_r$ exceeds the stable threshold and zero decision regressions are observed across the minimal verified demo run.
|
|
632
|
-
|
|
633
|
-
> **Final Rule 3:** Release promotion to stable requires $\tau_{\text{proof}} \ge 0.85$, $\tau_{\text{evidence}} \ge 0.75$, and all eight algorithms to report pass with recorded harness artifacts.
|
|
634
|
-
|
|
635
|
-
## Algorithm 9: Regression Proof Matrix
|
|
636
|
-
|
|
637
|
-
Algorithm 9 is the release-defense proof that Algorithms 1--8 are not only documented or implemented, but repeatedly verifiable through tests, proof bundles, decision traces, and reachable CLI surfaces.
|
|
638
|
-
|
|
639
|
-
**Inputs**
|
|
640
|
-
|
|
641
|
-
- Algorithm set $A = \{a_1, \dots, a_8\}$
|
|
642
|
-
- Test suite $T$
|
|
643
|
-
- Proof bundles $B$
|
|
644
|
-
- Release candidate $v$
|
|
645
|
-
|
|
646
|
-
**Per-algorithm coverage**
|
|
647
|
-
|
|
648
|
-
For each algorithm $a_i$:
|
|
649
|
-
|
|
650
|
-
$$
|
|
651
|
-
coverage_i =
|
|
652
|
-
0.35\mathbf{1}[|t_i|>0]
|
|
653
|
-
+0.30\mathbf{1}[|b_i|>0]
|
|
654
|
-
+0.20\mathbf{1}[|d_i|>0]
|
|
655
|
-
+0.15\mathbf{1}[c_i=\texttt{reachable}]
|
|
656
|
-
$$
|
|
657
|
-
|
|
658
|
-
Where:
|
|
659
|
-
|
|
660
|
-
- $t_i$ is the set of tests linked to algorithm $a_i$
|
|
661
|
-
- $b_i$ is the set of proof bundles linked to algorithm $a_i$
|
|
662
|
-
- $d_i$ is the set of decision traces linked to algorithm $a_i$
|
|
663
|
-
- $c_i$ is whether the algorithm has a reachable CLI or runtime surface
|
|
664
|
-
|
|
665
|
-
**Pseudocode**
|
|
666
|
-
|
|
667
|
-
```text
|
|
668
|
-
function RegressionProofMatrix(A, T, B, v):
|
|
669
|
-
for a_i in A:
|
|
670
|
-
t_i ← FindTestsForAlgorithm(a_i, T)
|
|
671
|
-
b_i ← FindProofBundlesForAlgorithm(a_i, B)
|
|
672
|
-
d_i ← FindDecisionTraceForAlgorithm(a_i, B)
|
|
673
|
-
c_i ← FindCliSurfaceForAlgorithm(a_i, v)
|
|
674
|
-
|
|
675
|
-
coverage_i ←
|
|
676
|
-
0.35 * 1[|t_i| > 0]
|
|
677
|
-
+ 0.30 * 1[|b_i| > 0]
|
|
678
|
-
+ 0.20 * 1[|d_i| > 0]
|
|
679
|
-
+ 0.15 * 1[c_i = reachable]
|
|
680
|
-
|
|
681
|
-
if coverage_i < 0.75:
|
|
682
|
-
return fail
|
|
683
|
-
|
|
684
|
-
trust ← MedianProofTrust(B)
|
|
685
|
-
router ← RouterShadowSafetyPass(B)
|
|
686
|
-
maturity ← ProviderAuthorityInvariantPass(B)
|
|
687
|
-
demo ← MinimalVerifiedDemoPass(v)
|
|
688
|
-
|
|
689
|
-
if trust ≥ 0.75 and router = 1 and maturity = 1 and demo = 1:
|
|
690
|
-
return pass
|
|
691
|
-
return fail
|
|
692
|
-
```
|
|
693
|
-
|
|
694
|
-
**Implementation targets**
|
|
695
|
-
|
|
696
|
-
- `src/evidence/regression-proof-matrix.ts`
|
|
697
|
-
- `scripts/regression-proof-matrix.mjs`
|
|
698
|
-
- `test/regression-proof-matrix.test.mjs`
|
|
699
|
-
- `proof/verified-runs/011-regression-proof-matrix/`
|
|
700
|
-
|
|
701
|
-
**Release rule**
|
|
702
|
-
|
|
703
|
-
> Algorithms 1--8 are release-defensible only when Algorithm 9 returns `pass` and `scripts/proof-check.mjs --trust --json` validates the corresponding proof bundles.
|
|
@@ -46,7 +46,7 @@ Native chat turns must be default-safe. A turn should request only the minimum c
|
|
|
46
46
|
| `shell` | run tests, build, execute commands | `read`, `write`, `shell` with approval policy |
|
|
47
47
|
| `merge` | publish, release, push, merge, destructive changes | authority provider plus release/security gates |
|
|
48
48
|
|
|
49
|
-
DeepSeek remains an advisory/read/review lane unless an explicit future contract grants safe write/shell execution. Write/shell tasks should route
|
|
49
|
+
DeepSeek remains an advisory/read/review lane unless an explicit future contract grants safe write/shell execution. Write/shell tasks should route to Kimi, Codex, or a configured authority provider with the matching approval and sandbox policy.
|
|
50
50
|
|
|
51
51
|
### Approval and sandbox propagation
|
|
52
52
|
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Evidence-gated coding agents
|
|
2
|
+
|
|
3
|
+
## Short answer
|
|
4
|
+
|
|
5
|
+
Evidence-gated coding means an agent cannot simply say "done." It must produce verifiable artifacts such as diffs, command output, test results, review logs, or DAG run records before a task is treated as complete.
|
|
6
|
+
|
|
7
|
+
## What does evidence-gated mean in OMK?
|
|
8
|
+
|
|
9
|
+
OMK compiles a task into a DAG, assigns scoped lanes, runs provider-specific agents, collects evidence, and writes replayable artifacts under `.omk/runs/<run-id>/`. If a required evidence gate is missing, completion is blocked instead of assumed.
|
|
10
|
+
|
|
11
|
+
## How OMK implements it
|
|
12
|
+
|
|
13
|
+
1. The user goal becomes an input envelope.
|
|
14
|
+
2. The envelope compiles into a DAG with lane-level acceptance and evidence expectations.
|
|
15
|
+
3. Lanes execute with explicit read/write/shell/merge authority.
|
|
16
|
+
4. Evidence is collected: command output, diff, artifact, metric, or review.
|
|
17
|
+
5. A verify gate checks the evidence before completion is claimed.
|
|
18
|
+
|
|
19
|
+
## Example
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
omk do "review this repo for release risk" --dry-run --json
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Dry-run artifacts:
|
|
26
|
+
|
|
27
|
+
```txt
|
|
28
|
+
.omk/runs/<run-id>/input-envelope.json
|
|
29
|
+
.omk/runs/<run-id>/dag.json
|
|
30
|
+
.omk/runs/<run-id>/dag-compile-report.json
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Executing the compiled DAG adds loop artifacts such as `loop-state.json` and `loop-decisions.jsonl`.
|
|
34
|
+
|
|
35
|
+
## How do I verify it locally?
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npm run verify:no-kimi
|
|
39
|
+
npm run proof:check
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Source-controlled proof bundles are listed in the [proof index](https://github.com/dmae97/open-multi-agent-kit/blob/main/proof/PROOF_INDEX.md).
|
|
43
|
+
|
|
44
|
+
## What this does not claim
|
|
45
|
+
|
|
46
|
+
Evidence gates do not prove a provider has write authority, do not prove a release is safe, and do not replace full CI. Safety claims are scoped to the exact adapter, command, and gate that produced them.
|
|
47
|
+
|
|
48
|
+
## Related
|
|
49
|
+
|
|
50
|
+
- [What is OMK?](../what-is-omk.md)
|
|
51
|
+
- [Replayable agent runs](replayable-agent-runs.md)
|
|
52
|
+
- [Provider routing for AI coding](provider-routing-for-ai-coding.md)
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# No-Kimi mode
|
|
2
|
+
|
|
3
|
+
## Short answer
|
|
4
|
+
|
|
5
|
+
OMK is not a Kimi wrapper. It runs as the `open-multi-agent-kit` package with the `omk` binary, and Kimi-compatible lanes are optional adapters.
|
|
6
|
+
|
|
7
|
+
## Can OMK run without Kimi?
|
|
8
|
+
|
|
9
|
+
Yes. OMK is provider-neutral. You can run it with Codex, OpenCode, DeepSeek, Qwen, OpenRouter, MiMo, or local models and never select a Kimi-compatible adapter.
|
|
10
|
+
|
|
11
|
+
## How is no-Kimi verified?
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm ci
|
|
15
|
+
npm run build
|
|
16
|
+
npm run verify:no-kimi
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
`verify:no-kimi` exercises doctor, chat, codex, default-surface, and runtime-routing paths with provider pinning, smoke mode, and `--mcp-scope none` so the legacy Kimi fallback is not used. The source-controlled `009-no-kimi-smoke` proof bundle additionally pins `KIMI_BIN=/nonexistent/kimi`.
|
|
20
|
+
|
|
21
|
+
## Quick start without Kimi
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npm install -g open-multi-agent-kit
|
|
25
|
+
omk init
|
|
26
|
+
omk doctor
|
|
27
|
+
omk do "explain this repo" --dry-run --json
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## What this does not claim
|
|
31
|
+
|
|
32
|
+
A no-Kimi run still depends on at least one configured provider; OMK does not ship a bundled model.
|
|
33
|
+
|
|
34
|
+
## Related
|
|
35
|
+
|
|
36
|
+
- [What is OMK?](../what-is-omk.md)
|
|
37
|
+
- [Provider routing for AI coding](provider-routing-for-ai-coding.md)
|
|
38
|
+
- [Provider maturity](../provider-maturity.md)
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Provider routing for AI coding
|
|
2
|
+
|
|
3
|
+
## Short answer
|
|
4
|
+
|
|
5
|
+
Provider routing means OMK selects a compatible coding runtime for each task and falls back in a ranked order when one fails, instead of hardcoding a single model.
|
|
6
|
+
|
|
7
|
+
## How does OMK route coding agents?
|
|
8
|
+
|
|
9
|
+
OMK classifies task intent, filters compatible runtimes, scores them by quality, evidence pass rate, and recent failures, runs the best runtime, and records the selected runtime plus a fallback chain. Routing is evidence-aware, not just provider-name matching.
|
|
10
|
+
|
|
11
|
+
## Which providers can participate?
|
|
12
|
+
|
|
13
|
+
- **Codex (app/CLI OAuth)**: compatibility path through the official Codex login.
|
|
14
|
+
- **OpenCode / CommandCode (CLI)**: compatibility paths when the local CLI and auth are present.
|
|
15
|
+
- **Claude Code**: a coding agent surface routed through OMK lanes.
|
|
16
|
+
- **DeepSeek, Qwen, OpenRouter, MiMo, local LLM**: advisory/read/review lanes unless a tested contract grants more authority.
|
|
17
|
+
- **Kimi-compatible API/print lanes**: optional adapters, not the package identity.
|
|
18
|
+
|
|
19
|
+
Provider authority is not equal. See [provider maturity](../provider-maturity.md) before treating any lane as a write or merge authority.
|
|
20
|
+
|
|
21
|
+
## Example
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
omk provider list
|
|
25
|
+
omk do "add tests for the router" --provider auto --dry-run --json
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## What this does not claim
|
|
29
|
+
|
|
30
|
+
Routing does not grant every adapter equal write/merge authority, and adapter health depends on local CLI and auth setup.
|
|
31
|
+
|
|
32
|
+
## Related
|
|
33
|
+
|
|
34
|
+
- [What is OMK?](../what-is-omk.md)
|
|
35
|
+
- [No-Kimi mode](no-kimi-mode.md)
|
|
36
|
+
- [Scoped MCP for coding agents](scoped-mcp-for-coding-agents.md)
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Replayable agent runs
|
|
2
|
+
|
|
3
|
+
## Short answer
|
|
4
|
+
|
|
5
|
+
A replayable agent run means OMK records what a coding agent planned and did as artifacts under `.omk/runs/<run-id>/`, so the run can be inspected, audited, and replayed later.
|
|
6
|
+
|
|
7
|
+
## What artifacts does OMK save?
|
|
8
|
+
|
|
9
|
+
A dry run writes:
|
|
10
|
+
|
|
11
|
+
```txt
|
|
12
|
+
.omk/runs/<run-id>/input-envelope.json
|
|
13
|
+
.omk/runs/<run-id>/dag.json
|
|
14
|
+
.omk/runs/<run-id>/dag-compile-report.json
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Executing the compiled DAG adds loop artifacts such as `loop-state.json` and `loop-decisions.jsonl`. Run event logs are written to `.omk/runs/<run-id>/events.ndjson`.
|
|
18
|
+
|
|
19
|
+
## How do I inspect or replay a run?
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
omk runs
|
|
23
|
+
omk inspect <run-id>
|
|
24
|
+
omk replay <run-id>
|
|
25
|
+
omk why
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Why does replay matter?
|
|
29
|
+
|
|
30
|
+
Replayable artifacts let a reviewer see the goal, the compiled DAG, the routing decisions, and the evidence trail instead of trusting a narrative "done" message.
|
|
31
|
+
|
|
32
|
+
## What this does not claim
|
|
33
|
+
|
|
34
|
+
Run artifacts are reviewable local state, not a guarantee of correctness. Treat them as evidence to inspect, not as proof that a change is safe.
|
|
35
|
+
|
|
36
|
+
## Related
|
|
37
|
+
|
|
38
|
+
- [What is OMK?](../what-is-omk.md)
|
|
39
|
+
- [Evidence-gated coding agents](evidence-gated-coding-agents.md)
|
|
40
|
+
- [OMK claims and evidence](../claims.md)
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Scoped MCP for coding agents
|
|
2
|
+
|
|
3
|
+
## Short answer
|
|
4
|
+
|
|
5
|
+
Scoped MCP means each agent lane only sees the Model Context Protocol servers, skills, and hooks it needs, instead of inheriting every global tool and secret.
|
|
6
|
+
|
|
7
|
+
## Why does tool scope matter for coding agents?
|
|
8
|
+
|
|
9
|
+
An agent with unrestricted tool access can read secrets, write outside its task, or run shell commands it was never meant to. OMK keeps MCP servers, skills, hooks, and memory bounded per lane so authority matches the task.
|
|
10
|
+
|
|
11
|
+
## How OMK implements it
|
|
12
|
+
|
|
13
|
+
- Default project scope reads project `.kimi/mcp.json` and `.omk/mcp.json`; the generated safe default is `omk-project` only.
|
|
14
|
+
- All-scope can read user `~/.kimi/mcp.json` at runtime without copying or printing global MCP secrets.
|
|
15
|
+
- Each lane receives only the capabilities its role requires.
|
|
16
|
+
- Tool authority is separated into read, write, shell, and merge.
|
|
17
|
+
|
|
18
|
+
## Example
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
omk do "summarize open issues" --mcp-scope project --dry-run --json
|
|
22
|
+
omk mcp doctor
|
|
23
|
+
omk mcp list
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## What this does not claim
|
|
27
|
+
|
|
28
|
+
Scoped MCP is an authority and configuration boundary, not an OS-level sandbox. OS-level sandboxing is planned, not claimed. See [SECURITY.md](../../SECURITY.md).
|
|
29
|
+
|
|
30
|
+
## Related
|
|
31
|
+
|
|
32
|
+
- [What is OMK?](../what-is-omk.md)
|
|
33
|
+
- [Provider routing for AI coding](provider-routing-for-ai-coding.md)
|
|
34
|
+
- [Evidence-gated coding agents](evidence-gated-coding-agents.md)
|
package/docs/versioning.md
CHANGED
|
@@ -4,11 +4,11 @@ OMK uses two version fields in release artifacts:
|
|
|
4
4
|
|
|
5
5
|
| Field | Current value | Source | Meaning |
|
|
6
6
|
| --- | --- | --- | --- |
|
|
7
|
-
| Package version | `0.
|
|
7
|
+
| Package version | `0.79.3` | `package.json`, `package-lock.json` | npm/package source version. |
|
|
8
8
|
| Runtime version | `v1.2` | `src/version.ts`, JSON schemas | Contract/runtime family used by OMK envelopes. |
|
|
9
9
|
| Release channel | `pre-1.0` | `src/version.ts` | Pre-1.0 package channel. |
|
|
10
10
|
|
|
11
|
-
`0.
|
|
11
|
+
`0.79.3` is the package source version for the `v1.2` runtime contract family.
|
|
12
12
|
Use `v1.2` only for runtime contracts; do not substitute it for the package version.
|
|
13
13
|
|
|
14
14
|
## Contract versions
|
|
@@ -16,7 +16,9 @@ Use `v1.2` only for runtime contracts; do not substitute it for the package vers
|
|
|
16
16
|
Current source declares these machine-readable contracts:
|
|
17
17
|
|
|
18
18
|
- `omk.contract.v1`
|
|
19
|
+
- `omk.command.v1`
|
|
19
20
|
- `omk.evidence.v1`
|
|
21
|
+
- `omk.evidence-bundle.v1`
|
|
20
22
|
- `omk.decision.v1`
|
|
21
23
|
- `omk.run-manifest.v1`
|
|
22
24
|
- `omk.provider.v1`
|
|
@@ -25,6 +27,10 @@ Current source declares these machine-readable contracts:
|
|
|
25
27
|
|
|
26
28
|
The JSON schemas live in `schemas/` and are checked by `npm run schema:check`.
|
|
27
29
|
|
|
30
|
+
`omk.command.v1` is the automation-facing command envelope for new CI/agent integrations. `omk.contract.v1` remains the established CLI JSON envelope for existing commands while command outputs migrate incrementally. To inspect the new envelope without breaking existing automation, run `node dist/cli.js version --json --command-envelope` after `npm run build:clean`.
|
|
31
|
+
|
|
32
|
+
Runtime event logs are standardized as `.omk/runs/<runId>/events.ndjson`. OMK also mirrors `.omk/runs/<runId>/events.jsonl` for compatibility with existing replay/read tooling during the migration window.
|
|
33
|
+
|
|
28
34
|
## Commands
|
|
29
35
|
|
|
30
36
|
Check package, lockfile, source constants, and schema version constants:
|
|
@@ -44,6 +50,6 @@ The `version --json` command emits one `omk.contract.v1` envelope whose data pay
|
|
|
44
50
|
|
|
45
51
|
## Documentation rules
|
|
46
52
|
|
|
47
|
-
- Use `0.
|
|
53
|
+
- Use `0.79.3` when referring to the current package source version.
|
|
48
54
|
- Use `v1.2` only for the runtime contract family.
|
|
49
55
|
- Keep historical changelog entries unchanged unless the text is not clearly historical.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# What is OMK?
|
|
2
|
+
|
|
3
|
+
OMK is an evidence-gated control plane for AI coding agents.
|
|
4
|
+
|
|
5
|
+
It turns a coding task into a scoped DAG run, routes the right provider, limits tool authority, requires evidence before completion, and saves replayable artifacts under `.omk/runs/`.
|
|
6
|
+
|
|
7
|
+
OMK is useful when developers want to run Codex, Claude Code, OpenCode, DeepSeek, Qwen, OpenRouter, MiMo, optional Kimi-compatible adapters, or local models in the same repository without giving every agent the same write or shell access.
|
|
8
|
+
|
|
9
|
+
## Short answer
|
|
10
|
+
|
|
11
|
+
OMK is a local-first control plane for coding agents. It coordinates multiple AI coding providers through scoped DAG lanes, evidence gates, provider authority rules, and replayable run artifacts.
|
|
12
|
+
|
|
13
|
+
## What problem does OMK solve?
|
|
14
|
+
|
|
15
|
+
Most coding agents can edit code, but they often claim "done" without auditable evidence. OMK adds a control layer that requires artifacts, command output, tests, diffs, or reviewer output before a run is treated as complete.
|
|
16
|
+
|
|
17
|
+
## Who is OMK for?
|
|
18
|
+
|
|
19
|
+
OMK is for developers and teams using multiple coding agents, MCP servers, or local LLMs who need safer execution, provider routing, and verifiable completion.
|
|
20
|
+
|
|
21
|
+
## How does OMK route coding agents?
|
|
22
|
+
|
|
23
|
+
OMK classifies task intent, filters compatible runtimes, scores them by quality, evidence pass rate, and recent failures, executes the best runtime, and records the selected runtime plus a ranked fallback chain. Provider authority is explicit: read, write, shell, and merge powers are scoped per lane.
|
|
24
|
+
|
|
25
|
+
## How does OMK prevent agents from claiming done without evidence?
|
|
26
|
+
|
|
27
|
+
OMK compiles a task into a DAG, assigns scoped lanes, runs provider-specific agents, and collects evidence. Missing required evidence blocks completion. A dry run already persists reviewable run state before any source file is changed.
|
|
28
|
+
|
|
29
|
+
## Which providers does OMK support?
|
|
30
|
+
|
|
31
|
+
OMK is provider-neutral. Codex (app/CLI OAuth), OpenCode/CommandCode (CLI), and Claude Code are compatibility surfaces that depend on local CLIs and auth. DeepSeek, Qwen, OpenRouter, MiMo, and local LLM lanes are advisory/read/review unless a tested contract grants more authority. Kimi-compatible API/print lanes are optional adapters, not the package identity. See [provider maturity](provider-maturity.md).
|
|
32
|
+
|
|
33
|
+
## Can OMK run without Kimi?
|
|
34
|
+
|
|
35
|
+
Yes. OMK is not a Kimi wrapper. The package is `open-multi-agent-kit` with the `omk` binary, and a no-Kimi verification path is exercised by `npm run verify:no-kimi`. See [no-Kimi mode](use-cases/no-kimi-mode.md).
|
|
36
|
+
|
|
37
|
+
## What artifacts does OMK save?
|
|
38
|
+
|
|
39
|
+
A dry run writes `.omk/runs/<run-id>/input-envelope.json`, `.omk/runs/<run-id>/dag.json`, and `.omk/runs/<run-id>/dag-compile-report.json`. Executing the compiled DAG adds loop artifacts such as `loop-state.json` and `loop-decisions.jsonl`. See [replayable agent runs](use-cases/replayable-agent-runs.md).
|
|
40
|
+
|
|
41
|
+
## How is OMK different from a normal coding agent?
|
|
42
|
+
|
|
43
|
+
A coding agent edits code. OMK is the control layer around execution: it routes providers, scopes authority, requires evidence, and records replayable run artifacts. See the [comparisons](comparisons/omk-vs-opencode.md).
|
|
44
|
+
|
|
45
|
+
## Try it
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
npm install -g open-multi-agent-kit
|
|
49
|
+
omk init
|
|
50
|
+
omk doctor
|
|
51
|
+
omk do "review this repo for release risk" --dry-run --json
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Maturity
|
|
55
|
+
|
|
56
|
+
Current source version: `open-multi-agent-kit@0.78.9` (`pre-1.0`). The `v1.2` label is a runtime contract family, not a stable npm `1.x` release. OS-level sandboxing is planned, not claimed. See [versioning](versioning.md), [claims](claims.md), and [SECURITY.md](../SECURITY.md).
|
|
57
|
+
|
|
58
|
+
## Related
|
|
59
|
+
|
|
60
|
+
- [Evidence-gated coding agents](use-cases/evidence-gated-coding-agents.md)
|
|
61
|
+
- [Scoped MCP for coding agents](use-cases/scoped-mcp-for-coding-agents.md)
|
|
62
|
+
- [Provider routing for AI coding](use-cases/provider-routing-for-ai-coding.md)
|
|
63
|
+
- [Replayable agent runs](use-cases/replayable-agent-runs.md)
|
|
64
|
+
- [OMK claims and evidence](claims.md)
|