@polderlabs/bizar-omp 0.7.0 → 0.7.1
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/README.md +6 -4
- package/dist/cli/agents-ink.d.ts.map +1 -1
- package/dist/cli/agents-ink.js +5 -3
- package/dist/cli/agents-ink.js.map +1 -1
- package/dist/cli/agents.d.ts.map +1 -1
- package/dist/cli/agents.js +26 -8
- package/dist/cli/agents.js.map +1 -1
- package/dist/cli/doctor.d.ts +4 -4
- package/dist/cli/main.js +0 -0
- package/dist/cli/omb.js +0 -0
- package/dist/core/recovery.d.ts.map +1 -1
- package/dist/core/recovery.js +10 -5
- package/dist/core/recovery.js.map +1 -1
- package/dist/core/transitions.d.ts +4 -0
- package/dist/core/transitions.d.ts.map +1 -1
- package/dist/core/transitions.js +12 -2
- package/dist/core/transitions.js.map +1 -1
- package/dist/core/types.d.ts +46 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/extension.d.ts +2 -0
- package/dist/extension.d.ts.map +1 -1
- package/dist/extension.js +174 -16
- package/dist/extension.js.map +1 -1
- package/dist/omp/compatibility.d.ts +5 -5
- package/dist/omp/compatibility.d.ts.map +1 -1
- package/dist/omp/compatibility.js +2 -2
- package/dist/omp/compatibility.js.map +1 -1
- package/dist/omp/daemon-service.d.ts.map +1 -1
- package/dist/omp/daemon-service.js +53 -20
- package/dist/omp/daemon-service.js.map +1 -1
- package/dist/omp/daemon.d.ts.map +1 -1
- package/dist/omp/daemon.js +57 -17
- package/dist/omp/daemon.js.map +1 -1
- package/dist/omp/dashboard-html.js +5 -5
- package/dist/omp/dispatch-admission.js +1 -1
- package/dist/omp/dispatch-admission.js.map +1 -1
- package/dist/omp/model-role-assignment.d.ts +4 -0
- package/dist/omp/model-role-assignment.d.ts.map +1 -1
- package/dist/omp/model-role-assignment.js +84 -8
- package/dist/omp/model-role-assignment.js.map +1 -1
- package/dist/omp/omb-sessions.d.ts +22 -7
- package/dist/omp/omb-sessions.d.ts.map +1 -1
- package/dist/omp/omb-sessions.js +83 -11
- package/dist/omp/omb-sessions.js.map +1 -1
- package/dist/omp/omb-settings.d.ts +15 -1
- package/dist/omp/omb-settings.d.ts.map +1 -1
- package/dist/omp/omb-settings.js +107 -31
- package/dist/omp/omb-settings.js.map +1 -1
- package/dist/omp/rpc.d.ts +8 -0
- package/dist/omp/rpc.d.ts.map +1 -1
- package/dist/omp/session-activity.d.ts +5 -0
- package/dist/omp/session-activity.d.ts.map +1 -1
- package/dist/omp/session-activity.js +17 -0
- package/dist/omp/session-activity.js.map +1 -1
- package/dist/omp/tmux.d.ts.map +1 -1
- package/dist/omp/tmux.js +110 -14
- package/dist/omp/tmux.js.map +1 -1
- package/dist/services/candidate-verify.d.ts.map +1 -1
- package/dist/services/candidate-verify.js +44 -1
- package/dist/services/candidate-verify.js.map +1 -1
- package/dist/services/inspector.d.ts +5 -1
- package/dist/services/inspector.d.ts.map +1 -1
- package/dist/services/inspector.js +11 -2
- package/dist/services/inspector.js.map +1 -1
- package/dist/services/native-review-ingest.d.ts +35 -0
- package/dist/services/native-review-ingest.d.ts.map +1 -0
- package/dist/services/native-review-ingest.js +14 -0
- package/dist/services/native-review-ingest.js.map +1 -0
- package/dist/tools/integrate.d.ts.map +1 -1
- package/dist/tools/integrate.js +13 -0
- package/dist/tools/integrate.js.map +1 -1
- package/dist/tools/workflow.d.ts +9 -0
- package/dist/tools/workflow.d.ts.map +1 -1
- package/dist/tools/workflow.js +25 -2
- package/dist/tools/workflow.js.map +1 -1
- package/docs/compatibility/baseline.json +8 -7
- package/docs/compatibility/supported-surfaces.json +2 -1
- package/docs/development/ci-release-implementation-guide.md +1259 -0
- package/docs/development/contributing-and-releasing.md +117 -0
- package/docs/development/omp-compatibility-update-guide.md +117 -0
- package/docs/releases/0.7.1.md +15 -0
- package/docs/releases/native-stable.md +11 -1
- package/docs/releases/npm-publishing.md +23 -4
- package/docs/releases/support-matrix.md +1 -1
- package/package.json +2 -1
- package/rules/oflow-gitlab.md +6 -0
- package/skills/oflow-gitlab-context/SKILL.md +49 -0
- package/skills/omp-native-development/SKILL.md +1 -1
- package/skills/omp-native-development/references/accuracy-and-versioning.md +1 -1
- package/skills/omp-native-development/references/source-manifest.json +3 -3
- package/dist/src/cli/agents-ink.d.ts +0 -25
- package/dist/src/cli/agents-ink.js +0 -517
- package/dist/src/cli/agents-ink.js.map +0 -1
- package/dist/src/cli/agents.d.ts +0 -14
- package/dist/src/cli/agents.js +0 -197
- package/dist/src/cli/agents.js.map +0 -1
- package/dist/src/cli/directory-selector.d.ts +0 -60
- package/dist/src/cli/directory-selector.js +0 -208
- package/dist/src/cli/directory-selector.js.map +0 -1
- package/dist/src/cli/doctor.d.ts +0 -41
- package/dist/src/cli/doctor.js +0 -31
- package/dist/src/cli/doctor.js.map +0 -1
- package/dist/src/cli/install.d.ts +0 -129
- package/dist/src/cli/install.js +0 -164
- package/dist/src/cli/install.js.map +0 -1
- package/dist/src/cli/main.d.ts +0 -2
- package/dist/src/cli/main.js +0 -117
- package/dist/src/cli/main.js.map +0 -1
- package/dist/src/cli/migrate.d.ts +0 -18
- package/dist/src/cli/migrate.js +0 -14
- package/dist/src/cli/migrate.js.map +0 -1
- package/dist/src/cli/omb-commands.d.ts +0 -29
- package/dist/src/cli/omb-commands.js +0 -107
- package/dist/src/cli/omb-commands.js.map +0 -1
- package/dist/src/cli/omb-daemon.d.ts +0 -2
- package/dist/src/cli/omb-daemon.js +0 -135
- package/dist/src/cli/omb-daemon.js.map +0 -1
- package/dist/src/cli/omb-dashboard.d.ts +0 -12
- package/dist/src/cli/omb-dashboard.js +0 -113
- package/dist/src/cli/omb-dashboard.js.map +0 -1
- package/dist/src/cli/omb-invocation.d.ts +0 -8
- package/dist/src/cli/omb-invocation.js +0 -41
- package/dist/src/cli/omb-invocation.js.map +0 -1
- package/dist/src/cli/omb-runtime.d.ts +0 -41
- package/dist/src/cli/omb-runtime.js +0 -371
- package/dist/src/cli/omb-runtime.js.map +0 -1
- package/dist/src/cli/omb-tray.d.ts +0 -2
- package/dist/src/cli/omb-tray.js +0 -38
- package/dist/src/cli/omb-tray.js.map +0 -1
- package/dist/src/cli/omb.d.ts +0 -2
- package/dist/src/cli/omb.js +0 -31
- package/dist/src/cli/omb.js.map +0 -1
- package/dist/src/cli/omp-theme.d.ts +0 -17
- package/dist/src/cli/omp-theme.js +0 -22
- package/dist/src/cli/omp-theme.js.map +0 -1
- package/dist/src/cli/process.d.ts +0 -6
- package/dist/src/cli/process.js +0 -54
- package/dist/src/cli/process.js.map +0 -1
- package/dist/src/cli/run.d.ts +0 -2
- package/dist/src/cli/run.js +0 -5
- package/dist/src/cli/run.js.map +0 -1
- package/dist/src/cli/setup-ui.d.ts +0 -37
- package/dist/src/cli/setup-ui.js +0 -90
- package/dist/src/cli/setup-ui.js.map +0 -1
- package/dist/src/core/acceptance.d.ts +0 -32
- package/dist/src/core/acceptance.js +0 -87
- package/dist/src/core/acceptance.js.map +0 -1
- package/dist/src/core/errors.d.ts +0 -20
- package/dist/src/core/errors.js +0 -30
- package/dist/src/core/errors.js.map +0 -1
- package/dist/src/core/evidence.d.ts +0 -10
- package/dist/src/core/evidence.js +0 -35
- package/dist/src/core/evidence.js.map +0 -1
- package/dist/src/core/policies.d.ts +0 -10
- package/dist/src/core/policies.js +0 -60
- package/dist/src/core/policies.js.map +0 -1
- package/dist/src/core/recovery.d.ts +0 -6
- package/dist/src/core/recovery.js +0 -56
- package/dist/src/core/recovery.js.map +0 -1
- package/dist/src/core/transitions.d.ts +0 -13
- package/dist/src/core/transitions.js +0 -59
- package/dist/src/core/transitions.js.map +0 -1
- package/dist/src/core/types.d.ts +0 -256
- package/dist/src/core/types.js +0 -2
- package/dist/src/core/types.js.map +0 -1
- package/dist/src/extension.d.ts +0 -60
- package/dist/src/extension.js +0 -538
- package/dist/src/extension.js.map +0 -1
- package/dist/src/index.d.ts +0 -29
- package/dist/src/index.js +0 -30
- package/dist/src/index.js.map +0 -1
- package/dist/src/omp/autonomous-settings.d.ts +0 -14
- package/dist/src/omp/autonomous-settings.js +0 -65
- package/dist/src/omp/autonomous-settings.js.map +0 -1
- package/dist/src/omp/capabilities.d.ts +0 -23
- package/dist/src/omp/capabilities.js +0 -6
- package/dist/src/omp/capabilities.js.map +0 -1
- package/dist/src/omp/compatibility.d.ts +0 -30
- package/dist/src/omp/compatibility.js +0 -34
- package/dist/src/omp/compatibility.js.map +0 -1
- package/dist/src/omp/completion.d.ts +0 -7
- package/dist/src/omp/completion.js +0 -10
- package/dist/src/omp/completion.js.map +0 -1
- package/dist/src/omp/config.d.ts +0 -10
- package/dist/src/omp/config.js +0 -14
- package/dist/src/omp/config.js.map +0 -1
- package/dist/src/omp/context.d.ts +0 -15
- package/dist/src/omp/context.js +0 -3
- package/dist/src/omp/context.js.map +0 -1
- package/dist/src/omp/daemon-service.d.ts +0 -25
- package/dist/src/omp/daemon-service.js +0 -483
- package/dist/src/omp/daemon-service.js.map +0 -1
- package/dist/src/omp/daemon.d.ts +0 -48
- package/dist/src/omp/daemon.js +0 -194
- package/dist/src/omp/daemon.js.map +0 -1
- package/dist/src/omp/dashboard-html.d.ts +0 -3
- package/dist/src/omp/dashboard-html.js +0 -419
- package/dist/src/omp/dashboard-html.js.map +0 -1
- package/dist/src/omp/dispatch-admission.d.ts +0 -2
- package/dist/src/omp/dispatch-admission.js +0 -12
- package/dist/src/omp/dispatch-admission.js.map +0 -1
- package/dist/src/omp/integration-recovery.d.ts +0 -10
- package/dist/src/omp/integration-recovery.js +0 -18
- package/dist/src/omp/integration-recovery.js.map +0 -1
- package/dist/src/omp/isolation-policy.d.ts +0 -14
- package/dist/src/omp/isolation-policy.js +0 -9
- package/dist/src/omp/isolation-policy.js.map +0 -1
- package/dist/src/omp/lifecycle.d.ts +0 -14
- package/dist/src/omp/lifecycle.js +0 -14
- package/dist/src/omp/lifecycle.js.map +0 -1
- package/dist/src/omp/memory.d.ts +0 -16
- package/dist/src/omp/memory.js +0 -4
- package/dist/src/omp/memory.js.map +0 -1
- package/dist/src/omp/model-role-assignment.d.ts +0 -296
- package/dist/src/omp/model-role-assignment.js +0 -559
- package/dist/src/omp/model-role-assignment.js.map +0 -1
- package/dist/src/omp/model-roles.d.ts +0 -19
- package/dist/src/omp/model-roles.js +0 -6
- package/dist/src/omp/model-roles.js.map +0 -1
- package/dist/src/omp/omb-sessions.d.ts +0 -122
- package/dist/src/omp/omb-sessions.js +0 -512
- package/dist/src/omp/omb-sessions.js.map +0 -1
- package/dist/src/omp/omb-settings.d.ts +0 -35
- package/dist/src/omp/omb-settings.js +0 -104
- package/dist/src/omp/omb-settings.js.map +0 -1
- package/dist/src/omp/result-reconciliation.d.ts +0 -2
- package/dist/src/omp/result-reconciliation.js +0 -9
- package/dist/src/omp/result-reconciliation.js.map +0 -1
- package/dist/src/omp/rpc.d.ts +0 -67
- package/dist/src/omp/rpc.js +0 -4
- package/dist/src/omp/rpc.js.map +0 -1
- package/dist/src/omp/run-log.d.ts +0 -25
- package/dist/src/omp/run-log.js +0 -24
- package/dist/src/omp/run-log.js.map +0 -1
- package/dist/src/omp/session-activity.d.ts +0 -70
- package/dist/src/omp/session-activity.js +0 -361
- package/dist/src/omp/session-activity.js.map +0 -1
- package/dist/src/omp/session-controls.d.ts +0 -17
- package/dist/src/omp/session-controls.js +0 -14
- package/dist/src/omp/session-controls.js.map +0 -1
- package/dist/src/omp/tmux.d.ts +0 -89
- package/dist/src/omp/tmux.js +0 -445
- package/dist/src/omp/tmux.js.map +0 -1
- package/dist/src/omp/tray-icons.d.ts +0 -5
- package/dist/src/omp/tray-icons.js +0 -78
- package/dist/src/omp/tray-icons.js.map +0 -1
- package/dist/src/omp/tray.d.ts +0 -23
- package/dist/src/omp/tray.js +0 -167
- package/dist/src/omp/tray.js.map +0 -1
- package/dist/src/services/budget.d.ts +0 -19
- package/dist/src/services/budget.js +0 -10
- package/dist/src/services/budget.js.map +0 -1
- package/dist/src/services/candidate-local.d.ts +0 -13
- package/dist/src/services/candidate-local.js +0 -15
- package/dist/src/services/candidate-local.js.map +0 -1
- package/dist/src/services/candidates.d.ts +0 -20
- package/dist/src/services/candidates.js +0 -100
- package/dist/src/services/candidates.js.map +0 -1
- package/dist/src/services/evidence-bundle.d.ts +0 -17
- package/dist/src/services/evidence-bundle.js +0 -21
- package/dist/src/services/evidence-bundle.js.map +0 -1
- package/dist/src/services/inspector.d.ts +0 -11
- package/dist/src/services/inspector.js +0 -6
- package/dist/src/services/inspector.js.map +0 -1
- package/dist/src/services/lessons.d.ts +0 -13
- package/dist/src/services/lessons.js +0 -11
- package/dist/src/services/lessons.js.map +0 -1
- package/dist/src/services/projection.d.ts +0 -21
- package/dist/src/services/projection.js +0 -10
- package/dist/src/services/projection.js.map +0 -1
- package/dist/src/services/readiness.d.ts +0 -4
- package/dist/src/services/readiness.js +0 -35
- package/dist/src/services/readiness.js.map +0 -1
- package/dist/src/services/recipes.d.ts +0 -15
- package/dist/src/services/recipes.js +0 -42
- package/dist/src/services/recipes.js.map +0 -1
- package/dist/src/services/recovery.d.ts +0 -19
- package/dist/src/services/recovery.js +0 -9
- package/dist/src/services/recovery.js.map +0 -1
- package/dist/src/services/review.d.ts +0 -15
- package/dist/src/services/review.js +0 -9
- package/dist/src/services/review.js.map +0 -1
- package/dist/src/storage/journal-recovery.d.ts +0 -10
- package/dist/src/storage/journal-recovery.js +0 -33
- package/dist/src/storage/journal-recovery.js.map +0 -1
- package/dist/src/storage/journal.d.ts +0 -12
- package/dist/src/storage/journal.js +0 -82
- package/dist/src/storage/journal.js.map +0 -1
- package/dist/src/storage/migrations.d.ts +0 -22
- package/dist/src/storage/migrations.js +0 -107
- package/dist/src/storage/migrations.js.map +0 -1
- package/dist/src/storage/repository-identity.d.ts +0 -11
- package/dist/src/storage/repository-identity.js +0 -67
- package/dist/src/storage/repository-identity.js.map +0 -1
- package/dist/src/storage/resources.d.ts +0 -66
- package/dist/src/storage/resources.js +0 -148
- package/dist/src/storage/resources.js.map +0 -1
- package/dist/src/tools/evidence.d.ts +0 -8
- package/dist/src/tools/evidence.js +0 -9
- package/dist/src/tools/evidence.js.map +0 -1
- package/dist/src/tools/integrate.d.ts +0 -13
- package/dist/src/tools/integrate.js +0 -90
- package/dist/src/tools/integrate.js.map +0 -1
- package/dist/src/tools/result.d.ts +0 -9
- package/dist/src/tools/result.js +0 -2
- package/dist/src/tools/result.js.map +0 -1
- package/dist/src/tools/verify.d.ts +0 -13
- package/dist/src/tools/verify.js +0 -61
- package/dist/src/tools/verify.js.map +0 -1
- package/dist/src/tools/workflow.d.ts +0 -8
- package/dist/src/tools/workflow.js +0 -65
- package/dist/src/tools/workflow.js.map +0 -1
- package/dist/src/workflows/direct.d.ts +0 -9
- package/dist/src/workflows/direct.js +0 -2
- package/dist/src/workflows/direct.js.map +0 -1
- package/dist/src/workflows/implement.d.ts +0 -2
- package/dist/src/workflows/implement.js +0 -4
- package/dist/src/workflows/implement.js.map +0 -1
- package/dist/src/workflows/plan.d.ts +0 -17
- package/dist/src/workflows/plan.js +0 -6
- package/dist/src/workflows/plan.js.map +0 -1
- package/dist/src/workflows/research.d.ts +0 -15
- package/dist/src/workflows/research.js +0 -2
- package/dist/src/workflows/research.js.map +0 -1
- package/dist/src/workflows/review.d.ts +0 -15
- package/dist/src/workflows/review.js +0 -2
- package/dist/src/workflows/review.js.map +0 -1
- package/dist/src/workflows/verify.d.ts +0 -9
- package/dist/src/workflows/verify.js +0 -2
- package/dist/src/workflows/verify.js.map +0 -1
- package/dist/tests/acceptance.test.d.ts +0 -1
- package/dist/tests/acceptance.test.js +0 -27
- package/dist/tests/acceptance.test.js.map +0 -1
- package/dist/tests/agents.test.d.ts +0 -1
- package/dist/tests/agents.test.js +0 -369
- package/dist/tests/agents.test.js.map +0 -1
- package/dist/tests/candidates.test.d.ts +0 -1
- package/dist/tests/candidates.test.js +0 -60
- package/dist/tests/candidates.test.js.map +0 -1
- package/dist/tests/core.test.d.ts +0 -1
- package/dist/tests/core.test.js +0 -39
- package/dist/tests/core.test.js.map +0 -1
- package/dist/tests/daemon.test.d.ts +0 -1
- package/dist/tests/daemon.test.js +0 -157
- package/dist/tests/daemon.test.js.map +0 -1
- package/dist/tests/dashboard.test.d.ts +0 -1
- package/dist/tests/dashboard.test.js +0 -414
- package/dist/tests/dashboard.test.js.map +0 -1
- package/dist/tests/directory-selector.test.d.ts +0 -1
- package/dist/tests/directory-selector.test.js +0 -93
- package/dist/tests/directory-selector.test.js.map +0 -1
- package/dist/tests/doctor.test.d.ts +0 -1
- package/dist/tests/doctor.test.js +0 -32
- package/dist/tests/doctor.test.js.map +0 -1
- package/dist/tests/install.test.d.ts +0 -1
- package/dist/tests/install.test.js +0 -101
- package/dist/tests/install.test.js.map +0 -1
- package/dist/tests/integration.test.d.ts +0 -1
- package/dist/tests/integration.test.js +0 -49
- package/dist/tests/integration.test.js.map +0 -1
- package/dist/tests/journal.test.d.ts +0 -1
- package/dist/tests/journal.test.js +0 -50
- package/dist/tests/journal.test.js.map +0 -1
- package/dist/tests/model-role-assignment.test.d.ts +0 -1
- package/dist/tests/model-role-assignment.test.js +0 -294
- package/dist/tests/model-role-assignment.test.js.map +0 -1
- package/dist/tests/omb-runtime.test.d.ts +0 -1
- package/dist/tests/omb-runtime.test.js +0 -554
- package/dist/tests/omb-runtime.test.js.map +0 -1
- package/dist/tests/omb-session-actions.test.d.ts +0 -1
- package/dist/tests/omb-session-actions.test.js +0 -191
- package/dist/tests/omb-session-actions.test.js.map +0 -1
- package/dist/tests/omb-settings.test.d.ts +0 -1
- package/dist/tests/omb-settings.test.js +0 -82
- package/dist/tests/omb-settings.test.js.map +0 -1
- package/dist/tests/omp-contract.test.d.ts +0 -1
- package/dist/tests/omp-contract.test.js +0 -362
- package/dist/tests/omp-contract.test.js.map +0 -1
- package/dist/tests/process.test.d.ts +0 -1
- package/dist/tests/process.test.js +0 -12
- package/dist/tests/process.test.js.map +0 -1
- package/dist/tests/psmux-windows.test.d.ts +0 -1
- package/dist/tests/psmux-windows.test.js +0 -105
- package/dist/tests/psmux-windows.test.js.map +0 -1
- package/dist/tests/recovery.test.d.ts +0 -1
- package/dist/tests/recovery.test.js +0 -9
- package/dist/tests/recovery.test.js.map +0 -1
- package/dist/tests/resources.test.d.ts +0 -1
- package/dist/tests/resources.test.js +0 -55
- package/dist/tests/resources.test.js.map +0 -1
- package/dist/tests/session-activity.test.d.ts +0 -1
- package/dist/tests/session-activity.test.js +0 -159
- package/dist/tests/session-activity.test.js.map +0 -1
- package/dist/tests/setup-ui.test.d.ts +0 -1
- package/dist/tests/setup-ui.test.js +0 -37
- package/dist/tests/setup-ui.test.js.map +0 -1
- package/dist/tests/storage-integrity.test.d.ts +0 -1
- package/dist/tests/storage-integrity.test.js +0 -88
- package/dist/tests/storage-integrity.test.js.map +0 -1
- package/dist/tests/tmux.test.d.ts +0 -1
- package/dist/tests/tmux.test.js +0 -239
- package/dist/tests/tmux.test.js.map +0 -1
- package/dist/tests/tray.test.d.ts +0 -1
- package/dist/tests/tray.test.js +0 -37
- package/dist/tests/tray.test.js.map +0 -1
- package/dist/tests/verification.test.d.ts +0 -1
- package/dist/tests/verification.test.js +0 -61
- package/dist/tests/verification.test.js.map +0 -1
- package/dist/tests/workflow-features.test.d.ts +0 -1
- package/dist/tests/workflow-features.test.js +0 -82
- package/dist/tests/workflow-features.test.js.map +0 -1
- package/dist/tests/workflow-safety.test.d.ts +0 -1
- package/dist/tests/workflow-safety.test.js +0 -57
- package/dist/tests/workflow-safety.test.js.map +0 -1
|
@@ -1,559 +0,0 @@
|
|
|
1
|
-
import { createHash } from "node:crypto";
|
|
2
|
-
import { ContractError } from "../core/errors.js";
|
|
3
|
-
/** Native-compatible defaults used until an operator runs model-role assignment. */
|
|
4
|
-
export const BIZAR_MODEL_ROLES = {
|
|
5
|
-
bizar_orchestrator: "@default",
|
|
6
|
-
bizar_advisor: "@advisor",
|
|
7
|
-
bizar_default: "@default",
|
|
8
|
-
bizar_common: "@smol",
|
|
9
|
-
bizar_hard: "@slow",
|
|
10
|
-
bizar_research: "@plan",
|
|
11
|
-
bizar_plan: "@plan",
|
|
12
|
-
bizar_architect: "@plan",
|
|
13
|
-
bizar_build: "@task",
|
|
14
|
-
bizar_review: "@slow",
|
|
15
|
-
bizar_security: "@slow",
|
|
16
|
-
bizar_verify: "@task",
|
|
17
|
-
bizar_docs: "@smol",
|
|
18
|
-
};
|
|
19
|
-
export const BIZAR_MODEL_TAGS = {
|
|
20
|
-
bizar_orchestrator: { name: "Bizar Orchestrator", color: "success" },
|
|
21
|
-
bizar_advisor: { name: "Bizar Advisor", color: "accent" },
|
|
22
|
-
bizar_default: { name: "Bizar Default", color: "success" },
|
|
23
|
-
bizar_common: { name: "Bizar Fast", color: "warning" },
|
|
24
|
-
bizar_hard: { name: "Bizar Thinking", color: "accent" },
|
|
25
|
-
bizar_research: { name: "Bizar Research", color: "muted" },
|
|
26
|
-
bizar_plan: { name: "Bizar Plan", color: "muted" },
|
|
27
|
-
bizar_architect: { name: "Bizar Architect", color: "muted" },
|
|
28
|
-
bizar_build: { name: "Bizar Build", color: "success" },
|
|
29
|
-
bizar_review: { name: "Bizar Review", color: "accent" },
|
|
30
|
-
bizar_security: { name: "Bizar Security", color: "error" },
|
|
31
|
-
bizar_verify: { name: "Bizar Verify", color: "warning" },
|
|
32
|
-
bizar_docs: { name: "Bizar Docs", color: "dim" },
|
|
33
|
-
};
|
|
34
|
-
export const BIZAR_ROLE_PROFILES = [
|
|
35
|
-
{ role: "bizar_orchestrator", purpose: "main interactive orchestration and user coordination", preference: "balanced", minContextWindow: 64_000, requiresReasoning: true },
|
|
36
|
-
{ role: "bizar_advisor", purpose: "independent passive review of the orchestrator's decisions", preference: "strong", minContextWindow: 64_000, requiresReasoning: true, preferDistinctFrom: "bizar_orchestrator" },
|
|
37
|
-
{ role: "bizar_default", purpose: "main workflow coordination", preference: "balanced", minContextWindow: 64_000, requiresReasoning: true },
|
|
38
|
-
{ role: "bizar_common", purpose: "bounded everyday work", preference: "fast", minContextWindow: 32_000, requiresReasoning: true },
|
|
39
|
-
{ role: "bizar_hard", purpose: "high-risk or ambiguous work", preference: "strong", minContextWindow: 128_000, requiresReasoning: true },
|
|
40
|
-
{ role: "bizar_research", purpose: "evidence-grounded investigation", preference: "balanced", minContextWindow: 128_000, requiresReasoning: true },
|
|
41
|
-
{ role: "bizar_plan", purpose: "dependencies and acceptance planning", preference: "strong", minContextWindow: 128_000, requiresReasoning: true },
|
|
42
|
-
{ role: "bizar_architect", purpose: "cross-component design and tradeoffs", preference: "strong", minContextWindow: 128_000, requiresReasoning: true },
|
|
43
|
-
{ role: "bizar_build", purpose: "focused implementation", preference: "balanced", minContextWindow: 64_000, requiresReasoning: true, providerPreference: "local" },
|
|
44
|
-
{ role: "bizar_review", purpose: "independent correctness review", preference: "strong", minContextWindow: 128_000, requiresReasoning: true, preferDistinctFrom: "bizar_build" },
|
|
45
|
-
{ role: "bizar_security", purpose: "security and trust-boundary review", preference: "strong", minContextWindow: 128_000, requiresReasoning: true, preferDistinctFrom: "bizar_build" },
|
|
46
|
-
{ role: "bizar_verify", purpose: "reproducible checks and evidence", preference: "fast", minContextWindow: 32_000, requiresReasoning: true, providerPreference: "local" },
|
|
47
|
-
{ role: "bizar_docs", purpose: "documentation and release alignment", preference: "fast", minContextWindow: 32_000, requiresReasoning: false, providerPreference: "local" },
|
|
48
|
-
];
|
|
49
|
-
/**
|
|
50
|
-
* Kept as a small compatibility fallback for older OMP hosts that do not expose
|
|
51
|
-
* the native model catalog to extensions. Current OMP versions use the local
|
|
52
|
-
* planner instead, so `/bizar-models` does not spend a model turn on research.
|
|
53
|
-
*/
|
|
54
|
-
export const BIZAR_MODEL_ROLE_AGENT_PROMPT = [
|
|
55
|
-
"Use OMP's current available model catalog now and assign the best resolvable model to each existing bizar_* role.",
|
|
56
|
-
"Preserve non-Bizar roles and unrelated settings, make no project or credential changes, and report only a compact role-to-selector table plus unresolved roles.",
|
|
57
|
-
].join(" ");
|
|
58
|
-
const selectorFor = (model) => `${model.provider}/${model.id}`;
|
|
59
|
-
/**
|
|
60
|
-
* Catalog text comes from providers, so it is data, not instruction. Collapse
|
|
61
|
-
* every control character (including newlines, which would otherwise fabricate
|
|
62
|
-
* request lines) and cap the length of each provider-controlled value before it
|
|
63
|
-
* reaches the agent prompt.
|
|
64
|
-
*/
|
|
65
|
-
const sanitizeCatalogText = (value, limit = 96) => {
|
|
66
|
-
const collapsed = value.replace(/[\u0000-\u001f\u007f]+/g, " ").replace(/\s+/g, " ").trim();
|
|
67
|
-
return collapsed.length > limit ? `${collapsed.slice(0, limit)}…` : collapsed;
|
|
68
|
-
};
|
|
69
|
-
/** Provider part of a `provider/model` selector, or `alias` for a bare native alias. */
|
|
70
|
-
const selectorProvider = (selector) => {
|
|
71
|
-
const separator = selector.indexOf("/");
|
|
72
|
-
return separator > 0 ? selector.slice(0, separator) : "alias";
|
|
73
|
-
};
|
|
74
|
-
const hasTextInput = (model) => !model.input || model.input.length === 0 || model.input.includes("text");
|
|
75
|
-
const THINKING_LEVELS = ["minimal", "low", "medium", "high", "xhigh", "max"];
|
|
76
|
-
function thinkingLevels(value) {
|
|
77
|
-
if (Array.isArray(value))
|
|
78
|
-
return value.filter((level) => typeof level === "string");
|
|
79
|
-
if (typeof value === "string")
|
|
80
|
-
return [value];
|
|
81
|
-
if (value && typeof value === "object") {
|
|
82
|
-
const record = value;
|
|
83
|
-
for (const key of ["efforts", "levels"]) {
|
|
84
|
-
const levels = record[key];
|
|
85
|
-
if (Array.isArray(levels))
|
|
86
|
-
return levels.filter((level) => typeof level === "string");
|
|
87
|
-
}
|
|
88
|
-
if (record.effortMap && typeof record.effortMap === "object")
|
|
89
|
-
return Object.keys(record.effortMap);
|
|
90
|
-
return [record.minLevel, record.maxLevel].filter((level) => typeof level === "string");
|
|
91
|
-
}
|
|
92
|
-
return [];
|
|
93
|
-
}
|
|
94
|
-
const maxThinkingRank = (model) => {
|
|
95
|
-
return Math.max(0, ...thinkingLevels(model.thinking).map(level => THINKING_LEVELS.indexOf(level)));
|
|
96
|
-
};
|
|
97
|
-
const hourlyCost = (model) => (model.cost?.input ?? 0) + (model.cost?.output ?? 0);
|
|
98
|
-
/**
|
|
99
|
-
* Providers that serve models from the local machine. Used to bias role
|
|
100
|
-
* assignment: locally hosted models cost nothing per token and keep work
|
|
101
|
-
* on-device, but they must never disqualify a capable cloud fallback.
|
|
102
|
-
*/
|
|
103
|
-
const LOCAL_PROVIDERS = {
|
|
104
|
-
"llama.cpp": true,
|
|
105
|
-
llamacpp: true,
|
|
106
|
-
ollama: true,
|
|
107
|
-
lmstudio: true,
|
|
108
|
-
"lm-studio": true,
|
|
109
|
-
vllm: true,
|
|
110
|
-
jan: true,
|
|
111
|
-
gpt4all: true,
|
|
112
|
-
};
|
|
113
|
-
export function isLocalModel(model) {
|
|
114
|
-
return LOCAL_PROVIDERS[model.provider.toLowerCase()] === true;
|
|
115
|
-
}
|
|
116
|
-
function qualityScore(model, profile) {
|
|
117
|
-
const context = Math.min(2, Math.log10(Math.max(1, model.contextWindow ?? 0)) / 6);
|
|
118
|
-
const output = Math.min(1, Math.log10(Math.max(1, model.maxTokens ?? 0)) / 6);
|
|
119
|
-
const reasoning = model.reasoning ? 1 : 0;
|
|
120
|
-
const thinking = maxThinkingRank(model) / 5;
|
|
121
|
-
// Unknown pricing is scored at the middle of the penalty range, never at the
|
|
122
|
-
// cheap end: a model whose cost metadata is missing must not win a
|
|
123
|
-
// cost-sensitive role by omission, and it is reported as `cost: unknown`.
|
|
124
|
-
const costPenalty = modelCostKnown(model) ? Math.min(1, Math.log10(1 + hourlyCost(model)) / 3) : 0.5;
|
|
125
|
-
// A role may prefer locally hosted models (free per token, on-device).
|
|
126
|
-
// The bonus is additive and opt-in per profile: a local model that fits
|
|
127
|
-
// overtakes comparable cloud models, while a mismatch still falls back.
|
|
128
|
-
const providerBias = profile.providerPreference === "local" && isLocalModel(model) ? 0.15 : 0;
|
|
129
|
-
if (profile.preference === "fast")
|
|
130
|
-
return providerBias + context * 0.2 + output * 0.1 + reasoning * 0.2 + thinking * 0.1 - costPenalty * 0.4;
|
|
131
|
-
if (profile.preference === "strong")
|
|
132
|
-
return providerBias + context * 0.25 + output * 0.15 + reasoning * 0.3 + thinking * 0.3 - costPenalty * 0.05;
|
|
133
|
-
return providerBias + context * 0.25 + output * 0.15 + reasoning * 0.25 + thinking * 0.2 - costPenalty * 0.2;
|
|
134
|
-
}
|
|
135
|
-
function familyOf(query, model) {
|
|
136
|
-
return query.family?.(model) ?? model.provider.toLowerCase();
|
|
137
|
-
}
|
|
138
|
-
function eligibleModels(models, profile) {
|
|
139
|
-
return models.filter(model => hasTextInput(model) && (!profile.requiresReasoning || model.reasoning === true) && (model.contextWindow ?? 0) >= profile.minContextWindow);
|
|
140
|
-
}
|
|
141
|
-
export function planBizarModelRoles(query) {
|
|
142
|
-
const models = query.list();
|
|
143
|
-
const assignments = [];
|
|
144
|
-
const unavailable = [];
|
|
145
|
-
const selectedByRole = new Map();
|
|
146
|
-
for (const profile of BIZAR_ROLE_PROFILES) {
|
|
147
|
-
const eligible = eligibleModels(models, profile);
|
|
148
|
-
if (eligible.length === 0) {
|
|
149
|
-
unavailable.push({ role: profile.role, reason: `no available text${profile.requiresReasoning ? ", reasoning-capable" : ""} model with at least ${profile.minContextWindow.toLocaleString()} context tokens` });
|
|
150
|
-
continue;
|
|
151
|
-
}
|
|
152
|
-
const distinct = profile.preferDistinctFrom ? eligible.filter(model => {
|
|
153
|
-
const prior = selectedByRole.get(profile.preferDistinctFrom);
|
|
154
|
-
return !prior || familyOf(query, model) !== familyOf(query, prior);
|
|
155
|
-
}) : eligible;
|
|
156
|
-
const pool = distinct.length > 0 ? distinct : eligible;
|
|
157
|
-
const ranked = [...pool].sort((left, right) => qualityScore(right, profile) - qualityScore(left, profile) || selectorFor(left).localeCompare(selectorFor(right)));
|
|
158
|
-
const chosen = ranked[0];
|
|
159
|
-
selectedByRole.set(profile.role, chosen);
|
|
160
|
-
assignments.push({
|
|
161
|
-
role: profile.role,
|
|
162
|
-
selector: selectorFor(chosen),
|
|
163
|
-
model: chosen,
|
|
164
|
-
rationale: `${profile.purpose}; ${profile.preference} preference; native availability and capability metadata matched; cost ${modelCostKnown(chosen) ? "known" : "unknown"}; locality is a provider metadata hint only`,
|
|
165
|
-
alternatives: ranked.slice(1, 4).map(selectorFor),
|
|
166
|
-
metadata: { cost: modelCostKnown(chosen) ? "known" : "unknown", locality: isLocalModel(chosen) ? "provider-hint" : "unknown" },
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
return { assignments, unavailable, modelCount: models.length };
|
|
170
|
-
}
|
|
171
|
-
function modelCostKnown(model) { return typeof model.cost?.input === "number" && typeof model.cost?.output === "number"; }
|
|
172
|
-
/**
|
|
173
|
-
* Pure mapping copy: applies a plan onto a settings map without mutating or
|
|
174
|
-
* validating it. Staleness is checked by the caller that owns the write, so no
|
|
175
|
-
* caller can pass a hash of the same object it is about to overwrite.
|
|
176
|
-
*/
|
|
177
|
-
export function applyRoleAssignmentPlan(current, plan) {
|
|
178
|
-
const next = { ...current };
|
|
179
|
-
for (const assignment of plan.assignments)
|
|
180
|
-
next[assignment.role] = assignment.selector;
|
|
181
|
-
return next;
|
|
182
|
-
}
|
|
183
|
-
export function formatRoleAssignmentPlan(plan) {
|
|
184
|
-
const lines = [`Available models: ${plan.modelCount}`, "Bizar model-role plan:"];
|
|
185
|
-
for (const assignment of plan.assignments)
|
|
186
|
-
lines.push(`- ${assignment.role} -> ${assignment.selector} (${assignment.rationale})`);
|
|
187
|
-
for (const missing of plan.unavailable)
|
|
188
|
-
lines.push(`- ${missing.role} -> UNAVAILABLE: ${missing.reason}`);
|
|
189
|
-
if (plan.unavailable.length > 0)
|
|
190
|
-
lines.push("No settings were changed because the plan is incomplete.");
|
|
191
|
-
return lines.join("\n");
|
|
192
|
-
}
|
|
193
|
-
/**
|
|
194
|
-
* Native tool the agent calls to persist a reviewed distribution. The command
|
|
195
|
-
* handler cannot make a model call itself, so `/bizar-models` gathers the
|
|
196
|
-
* catalog, then hands the bounded evaluation to the active agent, which must
|
|
197
|
-
* call this tool for anything to be written.
|
|
198
|
-
*/
|
|
199
|
-
export const BIZAR_MODEL_ROLE_TOOL = "bizar_apply_model_roles";
|
|
200
|
-
/**
|
|
201
|
-
* Longest operator notice OMP's status line can carry without clipping.
|
|
202
|
-
*
|
|
203
|
-
* `ctx.ui.notify(message, "info")` renders through the host status line, which
|
|
204
|
-
* builds exactly one text component and folds it onto two screen lines at the
|
|
205
|
-
* default 80-column terminal width — roughly 300 characters. The model-role
|
|
206
|
-
* command's own report (catalog movement, headline, and a line per role) runs
|
|
207
|
-
* far past that, so the tail silently never appears. A `warning`/`error` notice
|
|
208
|
-
* is not an alternative: those draw the full error banner.
|
|
209
|
-
*/
|
|
210
|
-
export const OPERATOR_NOTICE_LIMIT = 300;
|
|
211
|
-
/**
|
|
212
|
-
* Fit a report into the status line, clipping from the front. Catalog movement
|
|
213
|
-
* and the applied-map verdict sit before the per-role lines, so a truncated
|
|
214
|
-
* notice always keeps the lines that say what happened and loses the tail.
|
|
215
|
-
*/
|
|
216
|
-
export function clipOperatorNotice(report, limit = OPERATOR_NOTICE_LIMIT) {
|
|
217
|
-
const text = report.trim();
|
|
218
|
-
if (text.length <= limit)
|
|
219
|
-
return text;
|
|
220
|
-
const dropped = text.length - limit;
|
|
221
|
-
const note = `…clipped; ${dropped} more characters in the session log`;
|
|
222
|
-
if (note.length >= limit)
|
|
223
|
-
return note.slice(-limit);
|
|
224
|
-
const head = text.slice(0, limit - note.length - 1).trimEnd();
|
|
225
|
-
return `${head} ${note}`;
|
|
226
|
-
}
|
|
227
|
-
/**
|
|
228
|
-
* Decide how this host can distribute roles. An agent evaluation needs both the
|
|
229
|
-
* live catalog and a way to reach the agent; a host without agent messaging
|
|
230
|
-
* falls back to deterministic scoring; a host without any of it cannot assign
|
|
231
|
-
* roles and says so instead of writing a partial mapping.
|
|
232
|
-
*/
|
|
233
|
-
export function roleAssignmentRoute(host) {
|
|
234
|
-
const settingsHost = host.settings;
|
|
235
|
-
const get = settingsHost?.get?.bind(settingsHost);
|
|
236
|
-
const set = settingsHost?.set?.bind(settingsHost);
|
|
237
|
-
const sendMessage = host.sendUserMessage;
|
|
238
|
-
// OMP queues an explicit `followUp` without starting a turn, and only
|
|
239
|
-
// auto-continues it when the transcript tail is already assistant/toolResult:
|
|
240
|
-
// in a session that has not run a turn yet the evaluation stays queued behind
|
|
241
|
-
// the user's next prompt instead of running. `aside` starts a turn at an idle
|
|
242
|
-
// session, and while streaming it is injected at the next step boundary
|
|
243
|
-
// instead of aborting the in-flight tool batch.
|
|
244
|
-
const send = sendMessage ? (content) => { sendMessage(content, { deliverAs: "aside" }); } : undefined;
|
|
245
|
-
const models = host.models ? [...host.models] : [];
|
|
246
|
-
if (get && set && models.length > 0) {
|
|
247
|
-
const settings = { get, set };
|
|
248
|
-
return send ? { kind: "agent", settings, models, send } : { kind: "local-plan", settings, models };
|
|
249
|
-
}
|
|
250
|
-
return send ? { kind: "agent-prompt-only", send } : { kind: "unsupported" };
|
|
251
|
-
}
|
|
252
|
-
function catalogFields(model) {
|
|
253
|
-
const levels = thinkingLevels(model.thinking);
|
|
254
|
-
return {
|
|
255
|
-
provider: model.provider,
|
|
256
|
-
contextWindow: typeof model.contextWindow === "number" ? String(model.contextWindow) : "unknown",
|
|
257
|
-
maxTokens: typeof model.maxTokens === "number" ? String(model.maxTokens) : "unknown",
|
|
258
|
-
reasoning: model.reasoning === true ? "yes" : model.reasoning === false ? "no" : "unknown",
|
|
259
|
-
thinking: levels.length > 0 ? levels.join(",") : "unknown",
|
|
260
|
-
cost: modelCostKnown(model) ? `${model.cost?.input}/${model.cost?.output}` : "unknown",
|
|
261
|
-
input: model.input && model.input.length > 0 ? [...model.input].sort().join(",") : "unknown",
|
|
262
|
-
locality: isLocalModel(model) ? "local" : "remote",
|
|
263
|
-
};
|
|
264
|
-
}
|
|
265
|
-
const describeFields = (fields) => Object.keys(fields).sort().map(key => `${key}=${sanitizeCatalogText(fields[key], 64)}`).join(" ");
|
|
266
|
-
function describeFieldChanges(prior, next) {
|
|
267
|
-
return Object.keys(next).sort().flatMap(key => {
|
|
268
|
-
const before = prior[key] ?? "unknown";
|
|
269
|
-
return before === next[key] ? [] : [`${key} ${before} -> ${next[key]}`];
|
|
270
|
-
});
|
|
271
|
-
}
|
|
272
|
-
/** Normalize a catalog into a comparable, digestible observation. */
|
|
273
|
-
export function snapshotCatalog(models, capturedAt = Date.now()) {
|
|
274
|
-
const records = models
|
|
275
|
-
.map(model => ({ selector: selectorFor(model), fields: catalogFields(model) }))
|
|
276
|
-
.sort((left, right) => left.selector.localeCompare(right.selector));
|
|
277
|
-
const lines = records.map(({ selector, fields }) => `${selector}|${describeFields(fields)}`);
|
|
278
|
-
return { digest: createHash("sha256").update(lines.join("\n")).digest("hex"), capturedAt, models: records };
|
|
279
|
-
}
|
|
280
|
-
/** Accept only a well-formed stored snapshot; anything else counts as no prior observation. */
|
|
281
|
-
export function parseCatalogSnapshot(value) {
|
|
282
|
-
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
283
|
-
return undefined;
|
|
284
|
-
const record = value;
|
|
285
|
-
if (typeof record.digest !== "string" || !Array.isArray(record.models))
|
|
286
|
-
return undefined;
|
|
287
|
-
const models = [];
|
|
288
|
-
for (const entry of record.models) {
|
|
289
|
-
if (!entry || typeof entry !== "object" || Array.isArray(entry))
|
|
290
|
-
return undefined;
|
|
291
|
-
const model = entry;
|
|
292
|
-
if (typeof model.selector !== "string" || !model.fields || typeof model.fields !== "object" || Array.isArray(model.fields))
|
|
293
|
-
return undefined;
|
|
294
|
-
const fields = {};
|
|
295
|
-
for (const [key, field] of Object.entries(model.fields)) {
|
|
296
|
-
if (typeof field !== "string")
|
|
297
|
-
return undefined;
|
|
298
|
-
fields[key] = field;
|
|
299
|
-
}
|
|
300
|
-
models.push({ selector: model.selector, fields });
|
|
301
|
-
}
|
|
302
|
-
return { digest: record.digest, capturedAt: typeof record.capturedAt === "number" ? record.capturedAt : 0, models };
|
|
303
|
-
}
|
|
304
|
-
/** Compare the freshly read catalog against the previously observed one. */
|
|
305
|
-
export function diffCatalog(previous, next) {
|
|
306
|
-
const before = new Map((previous?.models ?? []).map(model => [model.selector, model.fields]));
|
|
307
|
-
const after = new Map(next.models.map(model => [model.selector, model.fields]));
|
|
308
|
-
const added = [];
|
|
309
|
-
const removed = [];
|
|
310
|
-
const changed = [];
|
|
311
|
-
let unchanged = 0;
|
|
312
|
-
for (const [selector, fields] of after) {
|
|
313
|
-
const prior = before.get(selector);
|
|
314
|
-
if (!prior) {
|
|
315
|
-
added.push({ kind: "added", selector, detail: describeFields(fields) });
|
|
316
|
-
continue;
|
|
317
|
-
}
|
|
318
|
-
const differences = describeFieldChanges(prior, fields);
|
|
319
|
-
if (differences.length > 0)
|
|
320
|
-
changed.push({ kind: "changed", selector, detail: differences.join("; ") });
|
|
321
|
-
else
|
|
322
|
-
unchanged += 1;
|
|
323
|
-
}
|
|
324
|
-
for (const selector of before.keys()) {
|
|
325
|
-
if (!after.has(selector))
|
|
326
|
-
removed.push({ kind: "removed", selector, detail: "no longer returned by the authenticated catalog" });
|
|
327
|
-
}
|
|
328
|
-
return { firstObservation: previous === undefined, added, removed, changed, unchanged, modelCount: next.models.length };
|
|
329
|
-
}
|
|
330
|
-
/** Compact, bounded catalog report. Detail lines are capped so the summary stays readable. */
|
|
331
|
-
export function formatCatalogDelta(delta) {
|
|
332
|
-
if (delta.firstObservation)
|
|
333
|
-
return `Catalog: first observation, ${delta.modelCount} available models recorded.`;
|
|
334
|
-
const headline = `Catalog: ${delta.added.length} added, ${delta.removed.length} removed, ${delta.changed.length} changed, ${delta.unchanged} unchanged (${delta.modelCount} available).`;
|
|
335
|
-
const all = [...delta.added, ...delta.removed, ...delta.changed];
|
|
336
|
-
const details = all
|
|
337
|
-
.slice(0, 8)
|
|
338
|
-
.map(change => ` ${change.kind === "added" ? "+" : change.kind === "removed" ? "-" : "~"} ${change.selector}: ${change.detail}`);
|
|
339
|
-
if (all.length > details.length)
|
|
340
|
-
details.push(` … ${all.length - details.length} more changes not shown`);
|
|
341
|
-
return [headline, ...details].join("\n");
|
|
342
|
-
}
|
|
343
|
-
const RECOMMENDATION_REJECTED = "expected {\"assignment\":[{\"role\":..,\"selector\":..}]} or a role-to-selector object";
|
|
344
|
-
function recommendationCandidates(value) {
|
|
345
|
-
if (Array.isArray(value))
|
|
346
|
-
return value;
|
|
347
|
-
if (!value || typeof value !== "object")
|
|
348
|
-
return undefined;
|
|
349
|
-
const record = value;
|
|
350
|
-
if (Array.isArray(record.assignment))
|
|
351
|
-
return record.assignment;
|
|
352
|
-
if (Array.isArray(record.assignments))
|
|
353
|
-
return record.assignments;
|
|
354
|
-
if (record.roles && typeof record.roles === "object" && !Array.isArray(record.roles)) {
|
|
355
|
-
return Object.entries(record.roles).map(([role, selector]) => ({ role, selector }));
|
|
356
|
-
}
|
|
357
|
-
return undefined;
|
|
358
|
-
}
|
|
359
|
-
/**
|
|
360
|
-
* Catalog selectors keyed by case-folded spelling. A fold shared by two catalog
|
|
361
|
-
* entries is dropped, so a repair never picks one of two live models.
|
|
362
|
-
*/
|
|
363
|
-
function caseFoldedSelectors(selectors) {
|
|
364
|
-
const folded = new Map();
|
|
365
|
-
const ambiguous = new Set();
|
|
366
|
-
for (const selector of selectors) {
|
|
367
|
-
const key = selector.toLowerCase();
|
|
368
|
-
if (ambiguous.has(key))
|
|
369
|
-
continue;
|
|
370
|
-
if (folded.has(key)) {
|
|
371
|
-
folded.delete(key);
|
|
372
|
-
ambiguous.add(key);
|
|
373
|
-
continue;
|
|
374
|
-
}
|
|
375
|
-
folded.set(key, selector);
|
|
376
|
-
}
|
|
377
|
-
return folded;
|
|
378
|
-
}
|
|
379
|
-
/**
|
|
380
|
-
* Validate an agent-proposed distribution against the live catalog. A selector
|
|
381
|
-
* must name a catalog entry: only its casing is repaired (to the spelling the
|
|
382
|
-
* catalog reports, when that fold is unambiguous), and nothing is inferred from
|
|
383
|
-
* a model name. Unknown roles and unresolvable selectors are rejected rather
|
|
384
|
-
* than guessed.
|
|
385
|
-
*/
|
|
386
|
-
export function reviewRoleRecommendations(value, options) {
|
|
387
|
-
const candidates = recommendationCandidates(value);
|
|
388
|
-
if (!candidates)
|
|
389
|
-
return { accepted: [], normalized: [], rejected: [{ role: "*", reason: RECOMMENDATION_REJECTED }] };
|
|
390
|
-
const known = new Set(options.roles);
|
|
391
|
-
const selectors = new Set(options.models.map(model => selectorFor(model)));
|
|
392
|
-
const folded = caseFoldedSelectors(selectors);
|
|
393
|
-
const accepted = [];
|
|
394
|
-
const normalized = [];
|
|
395
|
-
const rejected = [];
|
|
396
|
-
const seen = new Set();
|
|
397
|
-
for (const candidate of candidates) {
|
|
398
|
-
if (!candidate || typeof candidate !== "object" || Array.isArray(candidate)) {
|
|
399
|
-
rejected.push({ role: "*", reason: "each recommendation must be an object with role and selector" });
|
|
400
|
-
continue;
|
|
401
|
-
}
|
|
402
|
-
const entry = candidate;
|
|
403
|
-
const role = typeof entry.role === "string" ? entry.role.trim() : "";
|
|
404
|
-
const selector = typeof entry.selector === "string" ? entry.selector.trim() : "";
|
|
405
|
-
if (!role || !selector) {
|
|
406
|
-
rejected.push({ role: role || "*", selector: selector || undefined, reason: "each recommendation needs both a role and a selector" });
|
|
407
|
-
continue;
|
|
408
|
-
}
|
|
409
|
-
if (!known.has(role)) {
|
|
410
|
-
rejected.push({ role: role || "*", selector: selector || undefined, reason: "not a Bizar model role" });
|
|
411
|
-
continue;
|
|
412
|
-
}
|
|
413
|
-
if (seen.has(role)) {
|
|
414
|
-
rejected.push({ role, selector, reason: "duplicate recommendation for this role" });
|
|
415
|
-
continue;
|
|
416
|
-
}
|
|
417
|
-
if (selectors.size === 0 && !options.resolve) {
|
|
418
|
-
rejected.push({ role, selector: selector || undefined, reason: "the host exposed no model catalog to validate against" });
|
|
419
|
-
continue;
|
|
420
|
-
}
|
|
421
|
-
const catalogSelector = selectors.has(selector) ? selector : folded.get(selector.toLowerCase());
|
|
422
|
-
if (catalogSelector === undefined && !options.resolve?.(selector)) {
|
|
423
|
-
rejected.push({
|
|
424
|
-
role,
|
|
425
|
-
selector,
|
|
426
|
-
reason: options.resolve ? "selector is not resolvable in the live catalog or by an OMP model alias" : "selector is not in the live catalog",
|
|
427
|
-
});
|
|
428
|
-
continue;
|
|
429
|
-
}
|
|
430
|
-
seen.add(role);
|
|
431
|
-
const rationale = typeof entry.rationale === "string" && entry.rationale.trim() ? entry.rationale.trim() : undefined;
|
|
432
|
-
if (catalogSelector !== undefined && catalogSelector !== selector)
|
|
433
|
-
normalized.push({ role, from: selector, to: catalogSelector });
|
|
434
|
-
accepted.push({ role, selector: catalogSelector ?? selector, rationale });
|
|
435
|
-
}
|
|
436
|
-
return { accepted, normalized, rejected };
|
|
437
|
-
}
|
|
438
|
-
/** Turn accepted recommendations into the same plan shape the local planner produces. */
|
|
439
|
-
export function planFromRecommendations(review, models) {
|
|
440
|
-
const bySelector = new Map(models.map(model => [selectorFor(model), model]));
|
|
441
|
-
const assignments = [];
|
|
442
|
-
for (const recommendation of review.accepted) {
|
|
443
|
-
// A selector the review accepted through the host resolver (a native alias
|
|
444
|
-
// such as `@smol`, or an effort suffix) has no catalog record; it is carried
|
|
445
|
-
// through with unknown metadata instead of being dropped here, so the write
|
|
446
|
-
// gate stays the single place that decides resolvability.
|
|
447
|
-
const model = bySelector.get(recommendation.selector) ?? { provider: selectorProvider(recommendation.selector), id: recommendation.selector };
|
|
448
|
-
assignments.push({
|
|
449
|
-
role: recommendation.role,
|
|
450
|
-
selector: recommendation.selector,
|
|
451
|
-
model,
|
|
452
|
-
rationale: recommendation.rationale ?? "agent-selected distribution",
|
|
453
|
-
alternatives: [],
|
|
454
|
-
metadata: { cost: modelCostKnown(model) ? "known" : "unknown", locality: isLocalModel(model) ? "provider-hint" : "unknown" },
|
|
455
|
-
});
|
|
456
|
-
}
|
|
457
|
-
return {
|
|
458
|
-
assignments,
|
|
459
|
-
unavailable: review.rejected.map(item => ({ role: item.role, reason: item.reason })),
|
|
460
|
-
modelCount: models.length,
|
|
461
|
-
};
|
|
462
|
-
}
|
|
463
|
-
/** Before/after mapping limited to the Bizar roles, including explicit unchanged entries. */
|
|
464
|
-
export function formatRoleMapping(before, after, roles = Object.keys(BIZAR_MODEL_ROLES)) {
|
|
465
|
-
return roles.map(role => {
|
|
466
|
-
const prior = typeof before[role] === "string" ? before[role] : "(unset)";
|
|
467
|
-
const next = typeof after[role] === "string" ? after[role] : "(unset)";
|
|
468
|
-
if (prior === next)
|
|
469
|
-
return `- ${role}: ${next} (unchanged)`;
|
|
470
|
-
return `- ${role}: ${prior} -> ${next}`;
|
|
471
|
-
}).join("\n");
|
|
472
|
-
}
|
|
473
|
-
/** Present value as an object map; anything else is treated as empty. */
|
|
474
|
-
export function recordOf(value) {
|
|
475
|
-
return value && typeof value === "object" && !Array.isArray(value) ? value : {};
|
|
476
|
-
}
|
|
477
|
-
/**
|
|
478
|
-
* Resolve every proposed selector before writing anything, then persist the
|
|
479
|
-
* whole mapping in one `modelRoles` update. An unresolvable selector or an
|
|
480
|
-
* empty plan writes nothing at all, unrelated settings and non-Bizar roles are
|
|
481
|
-
* copied through untouched, and re-running against the current mapping is a
|
|
482
|
-
* no-op. The caller records the observed catalog only after this returns.
|
|
483
|
-
*/
|
|
484
|
-
export function commitRolePlan(input) {
|
|
485
|
-
const roles = Object.keys(BIZAR_MODEL_ROLES);
|
|
486
|
-
const before = recordOf(input.settings.get("modelRoles"));
|
|
487
|
-
if (input.plan.assignments.length === 0) {
|
|
488
|
-
const reasons = input.plan.unavailable.map(({ role, reason }) => `${role}: ${reason}`).join("; ");
|
|
489
|
-
throw new ContractError(`Bizar model mapping skipped: no Bizar role had an eligible catalog candidate.${reasons ? ` ${reasons}` : ""}`);
|
|
490
|
-
}
|
|
491
|
-
const unresolved = input.plan.assignments.filter(({ selector }) => !input.resolve(selector));
|
|
492
|
-
if (unresolved.length > 0) {
|
|
493
|
-
throw new ContractError(`Bizar model mapping refused; OMP could not resolve ${unresolved.map(({ role, selector }) => `${role}=${selector}`).join(", ")}. No settings were written.`);
|
|
494
|
-
}
|
|
495
|
-
// Re-read immediately before writing: selector resolution and the plan were
|
|
496
|
-
// computed against the mapping read above, so a concurrent edit in that window
|
|
497
|
-
// must refuse the commit instead of being overwritten.
|
|
498
|
-
const current = recordOf(input.settings.get("modelRoles"));
|
|
499
|
-
if (JSON.stringify(current) !== JSON.stringify(before)) {
|
|
500
|
-
throw new ContractError("Bizar model-role settings changed while the distribution was being resolved; nothing was written. Re-run /bizar-models.");
|
|
501
|
-
}
|
|
502
|
-
const after = applyRoleAssignmentPlan(before, input.plan);
|
|
503
|
-
const changed = JSON.stringify(after) !== JSON.stringify(before);
|
|
504
|
-
if (changed)
|
|
505
|
-
input.settings.set("modelRoles", after);
|
|
506
|
-
const covered = new Set(input.plan.assignments.map(({ role }) => role));
|
|
507
|
-
const uncovered = roles.filter(role => !covered.has(role));
|
|
508
|
-
const lines = [
|
|
509
|
-
formatCatalogDelta(input.delta),
|
|
510
|
-
`Assigned ${input.plan.assignments.length}/${roles.length} Bizar roles from ${input.plan.modelCount} available OMP models (${input.source}); modelRoles ${changed ? "updated" : "already current, left as is"}.`,
|
|
511
|
-
formatRoleMapping(before, after, roles),
|
|
512
|
-
];
|
|
513
|
-
if (uncovered.length > 0)
|
|
514
|
-
lines.push(`Left unchanged (not assigned by this evaluation): ${uncovered.join(", ")}.`);
|
|
515
|
-
if (input.plan.unavailable.length > 0)
|
|
516
|
-
lines.push(`Not applied: ${input.plan.unavailable.map(({ role, reason }) => `${role} (${reason})`).join("; ")}.`);
|
|
517
|
-
return lines.join("\n");
|
|
518
|
-
}
|
|
519
|
-
/**
|
|
520
|
-
* Bounded evaluation request handed to the active agent. It carries only the
|
|
521
|
-
* live catalog, the current mapping and the deterministic baseline, so the
|
|
522
|
-
* agent can decide quickly without further research.
|
|
523
|
-
*/
|
|
524
|
-
export function buildAgentEvaluationRequest(input) {
|
|
525
|
-
const catalogLines = input.models
|
|
526
|
-
.map(model => `${sanitizeCatalogText(selectorFor(model))} ${describeFields(catalogFields(model))}`)
|
|
527
|
-
.sort();
|
|
528
|
-
const currentLines = BIZAR_ROLE_PROFILES.map(profile => {
|
|
529
|
-
const selector = typeof input.currentRoles[profile.role] === "string" ? sanitizeCatalogText(input.currentRoles[profile.role]) : "(unset)";
|
|
530
|
-
return `${profile.role} = ${selector} :: ${profile.purpose}; ${profile.preference} preference; ${profile.requiresReasoning ? "reasoning required" : "reasoning optional"}; context >= ${profile.minContextWindow}${profile.preferDistinctFrom ? `; prefer distinct from ${profile.preferDistinctFrom}` : ""}`;
|
|
531
|
-
});
|
|
532
|
-
const baselineLines = input.baseline.assignments.map(assignment => `${assignment.role} = ${assignment.selector}`);
|
|
533
|
-
const missing = input.baseline.unavailable.map(item => `${item.role} (${item.reason})`);
|
|
534
|
-
return [
|
|
535
|
-
"Evaluate the Bizar model-role distribution for the current OMP catalog and apply it with the native tool `" + BIZAR_MODEL_ROLE_TOOL + "`.",
|
|
536
|
-
"This is a bounded evaluation: use only the catalog below, make no other settings or credential changes, and do not run further research.",
|
|
537
|
-
"",
|
|
538
|
-
"Rules",
|
|
539
|
-
`- Call \`${BIZAR_MODEL_ROLE_TOOL}\` exactly once with {"assignment":[{"role":"...","selector":"...","rationale":"..."}]} covering every Bizar role you consider resolved.`,
|
|
540
|
-
"- Use selectors exactly as listed in AVAILABLE MODELS; never invent or guess a selector.",
|
|
541
|
-
"- Treat metadata reported as unknown as unknown: never infer capability, cost or locality from a model name.",
|
|
542
|
-
"- Judge each role by purpose, reasoning need, context window, speed, cost and locality; keep provider diversity, and prefer a model distinct from the orchestrator for bizar_advisor.",
|
|
543
|
-
"- One short clause per rationale, no prose report.",
|
|
544
|
-
"",
|
|
545
|
-
"CATALOG CHANGES SINCE LAST OBSERVATION",
|
|
546
|
-
formatCatalogDelta(input.delta),
|
|
547
|
-
"",
|
|
548
|
-
`AVAILABLE MODELS (${input.models.length})`,
|
|
549
|
-
...catalogLines,
|
|
550
|
-
"",
|
|
551
|
-
"CURRENT ROLE MAPPING (existing assignments are re-evaluated, not trusted)",
|
|
552
|
-
...currentLines,
|
|
553
|
-
"",
|
|
554
|
-
"DETERMINISTIC BASELINE (override only with a concrete catalog reason)",
|
|
555
|
-
...baselineLines,
|
|
556
|
-
...(missing.length > 0 ? [`Unresolved by the baseline: ${missing.join(", ")}`] : []),
|
|
557
|
-
].join("\n");
|
|
558
|
-
}
|
|
559
|
-
//# sourceMappingURL=model-role-assignment.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model-role-assignment.js","sourceRoot":"","sources":["../../../src/omp/model-role-assignment.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { RouteClass, RouteDecision } from "../core/types.js";
|
|
2
|
-
export declare const MODEL_ROLES: {
|
|
3
|
-
readonly bizar_orchestrator: "@default";
|
|
4
|
-
readonly bizar_advisor: "@advisor";
|
|
5
|
-
readonly bizar_default: "@default";
|
|
6
|
-
readonly bizar_common: "@smol";
|
|
7
|
-
readonly bizar_hard: "@slow";
|
|
8
|
-
readonly bizar_research: "@plan";
|
|
9
|
-
readonly bizar_plan: "@plan";
|
|
10
|
-
readonly bizar_architect: "@plan";
|
|
11
|
-
readonly bizar_build: "@task";
|
|
12
|
-
readonly bizar_review: "@slow";
|
|
13
|
-
readonly bizar_security: "@slow";
|
|
14
|
-
readonly bizar_verify: "@task";
|
|
15
|
-
readonly bizar_docs: "@smol";
|
|
16
|
-
};
|
|
17
|
-
export declare const AGENT_ROLES: readonly ["bizar-researcher", "bizar-planner", "bizar-architect", "bizar-implementer", "bizar-reviewer", "bizar-security-reviewer", "bizar-verifier", "bizar-docs"];
|
|
18
|
-
export declare function modelRoleFor(routeClass: RouteClass): keyof typeof MODEL_ROLES;
|
|
19
|
-
export declare function explainRole(decision: RouteDecision): string;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { BIZAR_MODEL_ROLES } from "./model-role-assignment.js";
|
|
2
|
-
export const MODEL_ROLES = BIZAR_MODEL_ROLES;
|
|
3
|
-
export const AGENT_ROLES = ["bizar-researcher", "bizar-planner", "bizar-architect", "bizar-implementer", "bizar-reviewer", "bizar-security-reviewer", "bizar-verifier", "bizar-docs"];
|
|
4
|
-
export function modelRoleFor(routeClass) { return routeClass === "hard" ? "bizar_hard" : routeClass === "common" ? "bizar_common" : "bizar_default"; }
|
|
5
|
-
export function explainRole(decision) { return `${decision.modelRole} (${MODEL_ROLES[decision.modelRole]}) via ${decision.reason}; fallback is explicit and bounded`; }
|
|
6
|
-
//# sourceMappingURL=model-roles.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model-roles.js","sourceRoot":"","sources":["../../../src/omp/model-roles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,CAAC,MAAM,WAAW,GAAG,iBAAiB,CAAC;AAC7C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,kBAAkB,EAAE,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,YAAY,CAAU,CAAC;AAE/L,MAAM,UAAU,YAAY,CAAC,UAAsB,IAA8B,OAAO,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;AAC5L,MAAM,UAAU,WAAW,CAAC,QAAuB,IAAY,OAAO,GAAG,QAAQ,CAAC,SAAS,KAAK,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,QAAQ,CAAC,MAAM,oCAAoC,CAAC,CAAC,CAAC"}
|