Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ Commands are shown without repeated `ocx` prefixes for readability. Recommended
| set-C02 — Create/edit/rename/remove combo and target policy | IMPLEMENTATION_GAP | combo set\|create\|update I --targets P/M[:W],... --strategy S --sticky N\|- --effort E\|- --alias A\|- --native-alias --display-name TEXT\|- --decision-provider P\|- --decision-model M\|- --decision-timeout N\|- --rename-from OLD; remove I --yes | Core CRUD/rename/JEV resets exist. Missing imageInput auto/disabled, reasoningEffortMode strict/adaptive, target reasoningEfforts/modelProfile; native-alias cannot explicitly switch off while keeping a native-shaped alias. --effort-mode is defaultEffortMode, NOT reasoningEffortMode. Replacing targets loses metadata without expressive parser. | Extend combo set with --image-input auto\|disabled --reasoning-effort-mode strict\|adaptive --native-alias on\|off (backward-compatible bare flag); --targets-file FILE for typed ordered targets incl optional reasoningEfforts/modelProfile, or repeatable structured --target flags. Preserve omitted fields and explicit clears. | src/cli/combo.ts:32; src/cli/combo.ts:80; src/cli/combo.ts:137; src/cli/combo.ts:163; gui/src/pages/Combos.tsx:301; src/server/management/combo-routes.ts:134 |
| set-C03 — Probe selected JEV decision backend | COMPLETE | combo test [--combo I] [--decision-provider P\|--decision-model M] [--decision-timeout N] --json | Existing probe resolves saved selector client-side when --combo; explicit args probe chosen draft. Discovery command also exists. | No gap; keep potential model-call cost visible and do not treat successful configuration-only response as probe success. | src/cli/combo.ts:186; src/cli/combo.ts:215; gui/src/components/combo-workspace-jev-decision.tsx:107; src/server/management/decision-routes.ts:53 |
| set-C04 — Explain a saved combo's protocol behavior | COMPLETE | api protocols --json; api explain --model combo/I --inbound responses\|chat\|messages --feature F[,F] ... --json | Saved combo plan and features covered by semantic protocol command. | No combo-specific duplicate required; document usage with public alias. | src/cli/api-protocols.ts:121; src/cli/api-protocols.ts:131; gui/src/components/combo-workspace-detail-panel.tsx:416; src/server/management/protocol-routes.ts:45 |
| set-C05 — Inspect JEV combo decision outcomes and savings | IMPLEMENTATION_GAP | usage --range ... --model combo/I exists but returns ordinary usage | No jev=1/comboId report selector in usage parser; ordinary model-filtered usage is not JEV decisions/savings/backends report. | Add combo stats I --range 7d\|30d\|all --json, exact GET usage?jev=1&comboId=I&range=; sibling usage owner can share transport/formatting. Do not claim cost savings from missing/partial data. | src/cli/observe.ts:164; src/cli/combo.ts:251; gui/src/components/jev-stats-panel.tsx:90; gui/src/components/jev-stats-panel.tsx:90; src/server/management/logs-usage-routes.ts:188 |
| set-C05 — Inspect JEV combo decision outcomes, tokens and evidence coverage | IMPLEMENTATION_GAP | usage --range ... --model combo/I exists but returns ordinary usage | No jev=1/comboId report selector in usage parser; ordinary model-filtered usage is not the JEV decisions/token/backends report. | Add combo stats I --range 7d\|30d\|all --json, exact GET usage?jev=1&comboId=I&range=; sibling usage owner can share transport/formatting. The current GUI/API DTO has no monetary cost or savings baseline; report actual token/coverage facts and incomplete evidence. | src/cli/observe.ts:164; src/cli/combo.ts:251; gui/src/components/jev-stats-panel.tsx:90; gui/src/components/jev-stats-panel.tsx:90; src/server/management/logs-usage-routes.ts:188 |
| set-R01 — Inspect routing profiles, candidates, scoring and compatibility suite choices | DISCOVERY_ONLY | route policy list/show I --json; inspect routing-analytics --json; models live; lab catalog --json | Existing commands expose profile/revision, scoring context, inventory and Lab suite choices. | Index leaves; local Lab query is valid transport for local target. | src/cli/route-policy.ts:27; src/cli/route-policy.ts:43; src/cli/inspect.ts:211; src/cli/lab.ts:87; gui/src/pages/RoutingProfiles.tsx:351; src/server/management/routing-profile-routes.ts:226 |
| set-R02 — Create/update/remove routing profile | IMPLEMENTATION_GAP | route policy only list/show/dry-run/evaluate | No create/update/delete. Missing all profile-write fields and expectedRevision conflict workflow. | route policy create I --file PROFILE.json --json; route policy update I --file PROFILE.json --expected-revision REV --json; route policy remove I --yes --json. Domain profile schema is exact GUI profile object, not arbitrary endpoint JSON. Omitted profile branches are removed according to server full-profile semantics. | src/cli/route-policy.ts:85; src/server/management/routing-profile-routes.ts:233; gui/src/routing-profile-editor-data.ts:280; gui/src/pages/RoutingProfiles.tsx:458; src/server/management/routing-profile-routes.ts:233 |
| set-R03 — Dry-run a saved route against requirements | DISCOVERY_ONLY | route policy dry-run\|evaluate I --model-context N --tools --image --structured-output --json | All four GUI evidence inputs supported. Advanced encrypted/reasoning/tier/candidate evidence are server-only and not GUI parity debt. | Index command; optional broader API support should be separate scope. | src/cli/route-policy.ts:55; gui/src/pages/RoutingProfiles.tsx:559; src/server/management/routing-profile-routes.ts:364 |
Expand Down
12 changes: 6 additions & 6 deletions devlog/_plan/261003_cli_gui_parity/008_task_ledger.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,22 +43,22 @@
{"id":"set-M02","domain":"settings","baseline":"DISCOVERY_ONLY","status":"complete","unit":"wp2","evidence":["022_discovery_verification.md","src/cli/capabilities.ts","skills/ocx/references/01_management_surface.md"],"task":"set-M02 — Show/hide selected models or all models of one provider","existingCli":"models enable\\|disable P/M [--native] --json; models provider P on\\|off --json","sourceInventory":"004_settings_coverage.md"},
{"id":"set-M03","domain":"settings","baseline":"DISCOVERY_ONLY","status":"complete","unit":"wp2","evidence":["022_discovery_verification.md","src/cli/capabilities.ts","skills/ocx/references/01_management_surface.md"],"task":"set-M03 — Choose curated/provider model preset and default policy for newly discovered models","existingCli":"models preset show [--provider P]; models preset apply P [--all]; models new-policy on\\|off [--provider P]; models new-arrivals --json","sourceInventory":"004_settings_coverage.md"},
{"id":"set-M04","domain":"settings","baseline":"DISCOVERY_ONLY","status":"complete","unit":"wp2","evidence":["022_discovery_verification.md","src/cli/capabilities.ts","skills/ocx/references/01_management_surface.md"],"task":"set-M04 — Edit provider/model aliases and default alias policy","existingCli":"alias list; alias set P\\|P/M ALIAS; alias rm P\\|P/M; alias defaults on\\|off [--provider P] --json","sourceInventory":"004_settings_coverage.md"},
{"id":"set-M05","domain":"settings","baseline":"IMPLEMENTATION_GAP","status":"pending","unit":"wp4","evidence":[],"task":"set-M05 — Edit/reset model display label and cost override","existingCli":"models price P/M; models set-price P/M --input N --output N [--cache-read N --cache-write N] or --auto; custom models edit --display-name only","sourceInventory":"004_settings_coverage.md"},
{"id":"set-M06","domain":"settings","baseline":"UNKNOWN","status":"pending","unit":"wp4","evidence":[],"task":"set-M06 — Create/edit/delete custom model definitions","existingCli":"models add P M --display-name --context-window --modalities --reasoning-efforts --default-reasoning-effort; models list-custom --json; models edit ID ...; models remove ID\\|P/M --yes","sourceInventory":"004_settings_coverage.md"},
{"id":"set-M05","domain":"settings","baseline":"IMPLEMENTATION_GAP","status":"complete","unit":"wp4","evidence":["042_models_verification.md","src/cli/models-custom-runtime.ts","src/cli/models-order.ts","src/cli/route-policy-write.ts","tests/cli/cli-combo-parity.test.ts"],"task":"set-M05 — Edit/reset model display label and cost override","existingCli":"models price P/M; models set-price P/M --input N --output N [--cache-read N --cache-write N] or --auto; custom models edit --display-name only","sourceInventory":"004_settings_coverage.md"},
{"id":"set-M06","domain":"settings","baseline":"UNKNOWN","status":"complete","unit":"wp4","evidence":["042_models_verification.md","src/cli/models-custom-runtime.ts","src/cli/models-order.ts","src/cli/route-policy-write.ts","tests/cli/cli-combo-parity.test.ts"],"task":"set-M06 — Create/edit/delete custom model definitions","existingCli":"models add P M --display-name --context-window --modalities --reasoning-efforts --default-reasoning-effort; models list-custom --json; models edit ID ...; models remove ID\\|P/M --yes","sourceInventory":"004_settings_coverage.md"},
{"id":"set-M07","domain":"settings","baseline":"COMPLETE","status":"complete","unit":"wp2","evidence":["022_discovery_verification.md","src/cli/capabilities.ts","skills/ocx/references/01_management_surface.md"],"task":"set-M07 — Override/restore discovered-model capability metadata","existingCli":"models set P/M --context-window N\\|0\\|- --modalities CSV\\|- --reasoning-efforts CSV\\|\"\"\\|- --default-reasoning-effort LEVEL\\|-; --reset --json","sourceInventory":"004_settings_coverage.md"},
{"id":"set-M08","domain":"settings","baseline":"IMPLEMENTATION_GAP","status":"complete","unit":"wp3","evidence":["032_provider_verification.md","src/cli/provider-lifecycle-runtime.ts","src/cli/provider-settings.ts","src/cli/provider-batch.ts","tests/cli/cli-provider-sync-result.test.ts"],"task":"set-M08 — Override provider/per-model advertised context window","existingCli":"models set P/M --context-window N\\|0\\|- covers per-model override","sourceInventory":"004_settings_coverage.md"},
{"id":"set-M09","domain":"settings","baseline":"DISCOVERY_ONLY","status":"complete","unit":"wp2","evidence":["022_discovery_verification.md","src/cli/capabilities.ts","skills/ocx/references/01_management_surface.md"],"task":"set-M09 — Configure context caps: per-provider, global default, apply/remove all","existingCli":"models context status; models context value N [--set-all]; models context provider P on\\|off [--value N]; models context all on\\|off --json","sourceInventory":"004_settings_coverage.md"},
{"id":"set-M10","domain":"settings","baseline":"IMPLEMENTATION_GAP","status":"pending","unit":"wp4","evidence":[],"task":"set-M10 — Configure picker order manually or by ranking policy","existingCli":"agent subagents status shows picker fields; agent subagents set writes featured models only","sourceInventory":"004_settings_coverage.md"},
{"id":"set-M10","domain":"settings","baseline":"IMPLEMENTATION_GAP","status":"complete","unit":"wp4","evidence":["042_models_verification.md","src/cli/models-custom-runtime.ts","src/cli/models-order.ts","src/cli/route-policy-write.ts","tests/cli/cli-combo-parity.test.ts"],"task":"set-M10 — Configure picker order manually or by ranking policy","existingCli":"agent subagents status shows picker fields; agent subagents set writes featured models only","sourceInventory":"004_settings_coverage.md"},
{"id":"set-M11","domain":"settings","baseline":"IMPLEMENTATION_GAP","status":"pending","unit":"wp5","evidence":[],"task":"set-M11 — Show generated Fast catalog rows","existingCli":"system settings --json reads fastRows","sourceInventory":"004_settings_coverage.md"},
{"id":"set-M12","domain":"settings","baseline":"DISCOVERY_ONLY","status":"complete","unit":"wp2","evidence":["022_discovery_verification.md","src/cli/capabilities.ts","skills/ocx/references/01_management_surface.md"],"task":"set-M12 — Configure shadow-call interception target","existingCli":"models shadow status; models shadow set M\\|- --enabled on\\|off --json","sourceInventory":"004_settings_coverage.md"},
{"id":"set-M13","domain":"settings","baseline":"UNKNOWN","status":"pending","unit":"wp5","evidence":[],"task":"set-M13 — Configure multi-agent surface and per-session thread limit","existingCli":"v2 status; v2 mode v1\\|default\\|v2; v2 keep-native-v1 on\\|off; v2 threads N (local, prose output)","sourceInventory":"004_settings_coverage.md"},
{"id":"set-C01","domain":"settings","baseline":"DISCOVERY_ONLY","status":"complete","unit":"wp2","evidence":["022_discovery_verification.md","src/cli/capabilities.ts","skills/ocx/references/01_management_surface.md"],"task":"set-C01 — Inspect combos, target inventory, quota and catalog exposure","existingCli":"combo list/show I; models live; inspect config; provider quota --json","sourceInventory":"004_settings_coverage.md"},
{"id":"set-C02","domain":"settings","baseline":"IMPLEMENTATION_GAP","status":"pending","unit":"wp4","evidence":[],"task":"set-C02 — Create/edit/rename/remove combo and target policy","existingCli":"combo set\\|create\\|update I --targets P/M[:W],... --strategy S --sticky N\\|- --effort E\\|- --alias A\\|- --native-alias --display-name TEXT\\|- --decision-provider P\\|- --decision-model M\\|- --decision-timeout N\\|- --rename-from OLD; remove I --yes","sourceInventory":"004_settings_coverage.md"},
{"id":"set-C02","domain":"settings","baseline":"IMPLEMENTATION_GAP","status":"complete","unit":"wp4","evidence":["042_models_verification.md","src/cli/models-custom-runtime.ts","src/cli/models-order.ts","src/cli/route-policy-write.ts","tests/cli/cli-combo-parity.test.ts"],"task":"set-C02 — Create/edit/rename/remove combo and target policy","existingCli":"combo set\\|create\\|update I --targets P/M[:W],... --strategy S --sticky N\\|- --effort E\\|- --alias A\\|- --native-alias --display-name TEXT\\|- --decision-provider P\\|- --decision-model M\\|- --decision-timeout N\\|- --rename-from OLD; remove I --yes","sourceInventory":"004_settings_coverage.md"},
{"id":"set-C03","domain":"settings","baseline":"COMPLETE","status":"complete","unit":"wp2","evidence":["022_discovery_verification.md","src/cli/capabilities.ts","skills/ocx/references/01_management_surface.md"],"task":"set-C03 — Probe selected JEV decision backend","existingCli":"combo test [--combo I] [--decision-provider P\\|--decision-model M] [--decision-timeout N] --json","sourceInventory":"004_settings_coverage.md"},
{"id":"set-C04","domain":"settings","baseline":"COMPLETE","status":"complete","unit":"wp2","evidence":["022_discovery_verification.md","src/cli/capabilities.ts","skills/ocx/references/01_management_surface.md"],"task":"set-C04 — Explain a saved combo's protocol behavior","existingCli":"api protocols --json; api explain --model combo/I --inbound responses\\|chat\\|messages --feature F[,F] ... --json","sourceInventory":"004_settings_coverage.md"},
{"id":"set-C05","domain":"settings","baseline":"IMPLEMENTATION_GAP","status":"pending","unit":"wp4","evidence":[],"task":"set-C05 — Inspect JEV combo decision outcomes and savings","existingCli":"usage --range ... --model combo/I exists but returns ordinary usage","sourceInventory":"004_settings_coverage.md"},
{"id":"set-C05","domain":"settings","baseline":"IMPLEMENTATION_GAP","status":"complete","unit":"wp4","evidence":["042_models_verification.md","src/cli/models-custom-runtime.ts","src/cli/models-order.ts","src/cli/route-policy-write.ts","tests/cli/cli-combo-parity.test.ts"],"task":"set-C05 — Inspect JEV combo decision outcomes, tokens and evidence coverage","existingCli":"usage --range ... --model combo/I exists but returns ordinary usage","sourceInventory":"004_settings_coverage.md","disposition":"Source revalidation found no monetary cost/savings baseline in the GUI DTO. CLI preserves actual decision/token/coverage/nullable/incomplete statistics without inventing savings."},
{"id":"set-R01","domain":"settings","baseline":"DISCOVERY_ONLY","status":"complete","unit":"wp2","evidence":["022_discovery_verification.md","src/cli/capabilities.ts","skills/ocx/references/01_management_surface.md"],"task":"set-R01 — Inspect routing profiles, candidates, scoring and compatibility suite choices","existingCli":"route policy list/show I --json; inspect routing-analytics --json; models live; lab catalog --json","sourceInventory":"004_settings_coverage.md"},
{"id":"set-R02","domain":"settings","baseline":"IMPLEMENTATION_GAP","status":"pending","unit":"wp4","evidence":[],"task":"set-R02 — Create/update/remove routing profile","existingCli":"route policy only list/show/dry-run/evaluate","sourceInventory":"004_settings_coverage.md"},
{"id":"set-R02","domain":"settings","baseline":"IMPLEMENTATION_GAP","status":"complete","unit":"wp4","evidence":["042_models_verification.md","src/cli/models-custom-runtime.ts","src/cli/models-order.ts","src/cli/route-policy-write.ts","tests/cli/cli-combo-parity.test.ts"],"task":"set-R02 — Create/update/remove routing profile","existingCli":"route policy only list/show/dry-run/evaluate","sourceInventory":"004_settings_coverage.md"},
{"id":"set-R03","domain":"settings","baseline":"DISCOVERY_ONLY","status":"complete","unit":"wp2","evidence":["022_discovery_verification.md","src/cli/capabilities.ts","skills/ocx/references/01_management_surface.md"],"task":"set-R03 — Dry-run a saved route against requirements","existingCli":"route policy dry-run\\|evaluate I --model-context N --tools --image --structured-output --json","sourceInventory":"004_settings_coverage.md"},
{"id":"set-S01","domain":"settings","baseline":"DISCOVERY_ONLY","status":"complete","unit":"wp2","evidence":["022_discovery_verification.md","src/cli/capabilities.ts","skills/ocx/references/01_management_surface.md"],"task":"set-S01 — Choose/reorder featured subagent roster","existingCli":"agent subagents\\|roster status\\|set CSV\\|clear --json","sourceInventory":"004_settings_coverage.md"},
{"id":"set-S02","domain":"settings","baseline":"COMPLETE","status":"complete","unit":"wp2","evidence":["022_discovery_verification.md","src/cli/capabilities.ts","skills/ocx/references/01_management_surface.md"],"task":"set-S02 — Force subagent model and configure fallback chain","existingCli":"agent subagents force M\\|-; agent fallback status\\|set [CSV] [--poll-ms 5000..600000]\\|clear --json","sourceInventory":"004_settings_coverage.md"},
Expand Down
Loading
Loading