@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
package/dist/core/transitions.js
CHANGED
|
@@ -30,9 +30,19 @@ export function freezeObjective(objective) {
|
|
|
30
30
|
checkSpecs: objective.checkSpecs?.map(spec => freezeCheckSpec({ ...spec, argumentTemplate: [...spec.argumentTemplate], inputDigests: { ...spec.inputDigests }, limits: { ...spec.limits } })),
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
|
+
/** A006: seal the admitted contract (objective + checkSpecs + reviewSpec + integrationScope) into a single content hash. */
|
|
34
|
+
export function contractHash(run) {
|
|
35
|
+
return createHash("sha256").update(JSON.stringify({ objective: run.objective, reviewSpec: run.objective.reviewSpec ?? null, integrationScope: run.objective.integrationScope ?? null })).digest("hex");
|
|
36
|
+
}
|
|
37
|
+
/** A006: refute mutations that would change the admitted contract. The seal is recomputed from the proposed objective; if it diverges from the admitted contractHash, the amendment is refused. */
|
|
38
|
+
export function assertContractSealed(run, payload) {
|
|
39
|
+
const recomputed = contractHash({ objective: payload });
|
|
40
|
+
if (run.contractHash !== recomputed)
|
|
41
|
+
throw new ContractError("Contract hash mismatch: the proposed objective diverges from the admitted contract seal", { admitted: run.contractHash, proposed: recomputed });
|
|
42
|
+
}
|
|
33
43
|
export function createRun(projectId, objective, mode, nativeSessionId) {
|
|
34
44
|
const frozen = freezeObjective(objective);
|
|
35
|
-
return { schemaVersion: 1, runId: `run_${randomUUID()}`, projectId, nativeSessionId, objective: frozen, objectiveHash: objectiveHash(frozen), revision: 0, mode: mode ?? classifyRoute({ text: frozen.objective }).routeClass, phase: "created", workItems: [], cancellation: { requested: false }, createdAt: now(), updatedAt: now() };
|
|
45
|
+
return { schemaVersion: 1, runId: `run_${randomUUID()}`, projectId, nativeSessionId, objective: frozen, objectiveHash: objectiveHash(frozen), contractHash: contractHash({ objective: frozen }), revision: 0, mode: mode ?? classifyRoute({ text: frozen.objective }).routeClass, phase: "created", workItems: [], cancellation: { requested: false }, createdAt: now(), updatedAt: now() };
|
|
36
46
|
}
|
|
37
47
|
export function addWorkItem(run, input) {
|
|
38
48
|
if (run.workItems.some(item => item.title === input.title))
|
|
@@ -80,6 +90,6 @@ export function completeRun(run, requiredChecks, evidence, targetDigest) {
|
|
|
80
90
|
}
|
|
81
91
|
export function canComplete(run, requiredChecks, evidence, ownedWork, targetDigest) {
|
|
82
92
|
const normalized = evidence.map((item, index) => ({ ...item, id: `legacy-evidence-${index}`, runId: run.runId, type: "test", inputDigests: {}, artifactHashes: [], provenance: { producer: "legacy", observedAt: "unknown" }, recordedAt: String(index) }));
|
|
83
|
-
return evaluateAcceptance({ revision: run.revision, run, dispatches: [], observations: [], evidence: normalized, integrations: [], acceptances: [], decisions: [], lastSequence: 0 }, { requiredChecks, targetDigest, ownedWork, criteria: run.objective.criteria, review: run.objective.reviewSpec }).eligible && run.phase !== "failed";
|
|
93
|
+
return evaluateAcceptance({ revision: run.revision, run, dispatches: [], observations: [], evidence: normalized, integrations: [], acceptances: [], decisions: [], operatorReceipts: [], lastSequence: 0 }, { requiredChecks, targetDigest, ownedWork, criteria: run.objective.criteria, review: run.objective.reviewSpec }).eligible && run.phase !== "failed";
|
|
84
94
|
}
|
|
85
95
|
//# sourceMappingURL=transitions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transitions.js","sourceRoot":"","sources":["../../src/core/transitions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"transitions.js","sourceRoot":"","sources":["../../src/core/transitions.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -22,6 +22,14 @@ export interface ObjectiveContract {
|
|
|
22
22
|
reviewSpec?: ReviewSpec;
|
|
23
23
|
policyRevision?: string;
|
|
24
24
|
authorizationRef?: string;
|
|
25
|
+
/** Operator-supplied integration scope, admitted alongside the objective. Enforced by integrate(): changes outside allowPaths are refused; denyPaths take precedence; maxAffectedFiles caps total touched files. Without an admitted scope, integrate() rejects any non-empty patch path list. */
|
|
26
|
+
integrationScope?: {
|
|
27
|
+
allowPaths: string[];
|
|
28
|
+
denyPaths: string[];
|
|
29
|
+
maxAffectedFiles: number;
|
|
30
|
+
operatorId: string;
|
|
31
|
+
at: string;
|
|
32
|
+
};
|
|
25
33
|
}
|
|
26
34
|
export type CriterionKind = "deterministic" | "review" | "operator-judgment";
|
|
27
35
|
export interface CriterionSpec {
|
|
@@ -66,6 +74,8 @@ export interface WorkItem {
|
|
|
66
74
|
acceptanceCriteria: string[];
|
|
67
75
|
verificationPlan: string[];
|
|
68
76
|
lifecycle: WorkItemLifecycle;
|
|
77
|
+
/** Allowed tool names for this dispatch. If set, any tool call not in this list is refused at the OMP boundary. */
|
|
78
|
+
tools?: string[];
|
|
69
79
|
attempt: number;
|
|
70
80
|
targetRevision?: string;
|
|
71
81
|
}
|
|
@@ -76,6 +86,8 @@ export interface WorkflowRun {
|
|
|
76
86
|
nativeSessionId?: string;
|
|
77
87
|
objective: ObjectiveContract;
|
|
78
88
|
objectiveHash: string;
|
|
89
|
+
/** A006: SHA-256 over the full admitted contract (objective + checkSpecs + reviewSpec + integrationScope). Checked before every workflow action; a mutation attempt is refused. */
|
|
90
|
+
contractHash: string;
|
|
79
91
|
revision: number;
|
|
80
92
|
mode: RouteClass;
|
|
81
93
|
phase: WorkflowPhase;
|
|
@@ -106,6 +118,8 @@ export interface DispatchIntent {
|
|
|
106
118
|
status: "admitted" | "acknowledged" | "settled" | "failed" | "cancelled" | "unknown-outcome" | "rejected";
|
|
107
119
|
nativeCallId?: string;
|
|
108
120
|
nativeChildId?: string;
|
|
121
|
+
/** Mirror of the WorkItem's tools allowlist; enforced at OMP boundary via tool_call admission. */
|
|
122
|
+
tools?: string[];
|
|
109
123
|
candidateId?: string;
|
|
110
124
|
candidateTree?: string;
|
|
111
125
|
}
|
|
@@ -149,6 +163,16 @@ export interface EvidenceRecord {
|
|
|
149
163
|
executionFingerprint?: string;
|
|
150
164
|
attemptGeneration?: number;
|
|
151
165
|
reviewRevision?: number;
|
|
166
|
+
/** Spec for structured-pass verification; if set, evidence must produce matching structuredResult to be "passed". */
|
|
167
|
+
structuredPass?: {
|
|
168
|
+
matchSchema: JsonValue;
|
|
169
|
+
algorithm: "exact" | "subset";
|
|
170
|
+
requiredFields: string[];
|
|
171
|
+
};
|
|
172
|
+
/** Operator receipt id (A008) that authorized an operator-review verdict. Required when checkSpec.expected === "operator-review". */
|
|
173
|
+
operatorReceiptId?: string;
|
|
174
|
+
/** HMAC-style content hash of the operator receipt payload. */
|
|
175
|
+
operatorReceiptHash?: string;
|
|
152
176
|
}
|
|
153
177
|
export interface IntegrationAttempt {
|
|
154
178
|
id: string;
|
|
@@ -178,6 +202,17 @@ export interface AcceptanceReceipt {
|
|
|
178
202
|
policyRevision: string;
|
|
179
203
|
targetDigest: string;
|
|
180
204
|
}
|
|
205
|
+
export interface OperatorReceipt {
|
|
206
|
+
id: string;
|
|
207
|
+
runId: string;
|
|
208
|
+
workItemId: string;
|
|
209
|
+
evidenceId: string;
|
|
210
|
+
verdict: "passed" | "failed" | "blocked";
|
|
211
|
+
rationale: string;
|
|
212
|
+
operatorId: string;
|
|
213
|
+
signedContentHash: string;
|
|
214
|
+
issuedAt: string;
|
|
215
|
+
}
|
|
181
216
|
export interface DecisionRecord {
|
|
182
217
|
id: string;
|
|
183
218
|
runId: string;
|
|
@@ -225,6 +260,12 @@ export type JournalEvent = {
|
|
|
225
260
|
type: "run.cancelled";
|
|
226
261
|
runId: string;
|
|
227
262
|
reason: string;
|
|
263
|
+
} | {
|
|
264
|
+
type: "run.cancellation_requested";
|
|
265
|
+
runId: string;
|
|
266
|
+
reason: string;
|
|
267
|
+
dispatchIds: string[];
|
|
268
|
+
at: string;
|
|
228
269
|
} | {
|
|
229
270
|
type: "run.reconciled";
|
|
230
271
|
runId: string;
|
|
@@ -248,6 +289,10 @@ export type JournalEvent = {
|
|
|
248
289
|
type: "acceptance.recorded";
|
|
249
290
|
runId: string;
|
|
250
291
|
receipt: AcceptanceReceipt;
|
|
292
|
+
} | {
|
|
293
|
+
type: "operator.receipt.recorded";
|
|
294
|
+
runId: string;
|
|
295
|
+
receipt: OperatorReceipt;
|
|
251
296
|
};
|
|
252
297
|
export interface JournalEntry {
|
|
253
298
|
sequence: number;
|
|
@@ -267,6 +312,7 @@ export interface StateSnapshot {
|
|
|
267
312
|
integrations: IntegrationAttempt[];
|
|
268
313
|
acceptances: AcceptanceReceipt[];
|
|
269
314
|
decisions: DecisionRecord[];
|
|
315
|
+
operatorReceipts: OperatorReceipt[];
|
|
270
316
|
lastSequence: number;
|
|
271
317
|
}
|
|
272
318
|
export interface RouteTask {
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC7D,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,SAAS,EAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEnF,MAAM,MAAM,aAAa,GACrB,SAAS,GAAG,WAAW,GAAG,aAAa,GAAG,UAAU,GAAG,OAAO,GAC9D,WAAW,GAAG,aAAa,GAAG,WAAW,GAAG,WAAW,GACvD,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;AACpD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AACvD,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAC1D,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,cAAc,CAAC;AACpH,MAAM,MAAM,WAAW,GAAG,qBAAqB,GAAG,oBAAoB,GAAG,sBAAsB,CAAC;AAChG,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;AAEnI,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
package/dist/extension.d.ts
CHANGED
|
@@ -2,6 +2,8 @@ import type { AvailableModel } from "./omp/model-role-assignment.js";
|
|
|
2
2
|
interface NativeSettings {
|
|
3
3
|
get(path: string): unknown;
|
|
4
4
|
set?(path: string, value: unknown): void;
|
|
5
|
+
setModelRole?(role: string, selector: string): void;
|
|
6
|
+
setProjectModelRole?(role: string, selector: string): void;
|
|
5
7
|
}
|
|
6
8
|
interface OmpModelQuery {
|
|
7
9
|
list?(): AvailableModel[];
|
package/dist/extension.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"AAyCA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAKrE,UAAU,cAAc;IACtB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"}
|
package/dist/extension.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { randomUUID } from "node:crypto";
|
|
1
|
+
import { randomUUID, createHash } from "node:crypto";
|
|
2
2
|
import { unlinkSync, writeFileSync } from "node:fs";
|
|
3
3
|
import { join } from "node:path";
|
|
4
4
|
import { tmpdir } from "node:os";
|
|
@@ -54,6 +54,13 @@ const objectiveSchema = (z) => z.object({
|
|
|
54
54
|
}).optional(),
|
|
55
55
|
policyRevision: z.string().optional(),
|
|
56
56
|
authorizationRef: z.string().optional(),
|
|
57
|
+
integrationScope: z.object({
|
|
58
|
+
allowPaths: z.array(z.string()),
|
|
59
|
+
denyPaths: z.array(z.string()),
|
|
60
|
+
maxAffectedFiles: z.number(),
|
|
61
|
+
operatorId: z.string(),
|
|
62
|
+
at: z.string(),
|
|
63
|
+
}).optional(),
|
|
57
64
|
});
|
|
58
65
|
const failure = (error) => result({ error: error instanceof Error ? error.message : String(error) }, true);
|
|
59
66
|
const paramsOf = (value) => value && typeof value === "object" ? value : {};
|
|
@@ -161,30 +168,48 @@ async function runDashboardCommand(pi, args, ctx) {
|
|
|
161
168
|
"The link is single-use and expires in five minutes; run the command again for a new one.",
|
|
162
169
|
].join("\n");
|
|
163
170
|
}
|
|
171
|
+
function applyBizarModelRoles(pi, assignments) {
|
|
172
|
+
const settings = pi.pi?.settings;
|
|
173
|
+
if (!settings?.get)
|
|
174
|
+
throw new ContractError("OMP settings API is unavailable; model roles were not changed");
|
|
175
|
+
if (settings.get("modelRoleStorage") === "project") {
|
|
176
|
+
if (!settings.setProjectModelRole)
|
|
177
|
+
throw new ContractError("OMP project model-role storage is unavailable; model roles were not changed");
|
|
178
|
+
for (const assignment of assignments)
|
|
179
|
+
settings.setProjectModelRole(assignment.role, assignment.selector);
|
|
180
|
+
return "project";
|
|
181
|
+
}
|
|
182
|
+
if (!settings.setModelRole)
|
|
183
|
+
throw new ContractError("OMP global model-role writer is unavailable; model roles were not changed");
|
|
184
|
+
for (const assignment of assignments)
|
|
185
|
+
settings.setModelRole(assignment.role, assignment.selector);
|
|
186
|
+
return "global";
|
|
187
|
+
}
|
|
164
188
|
function ensureBizarModelRoles(pi) {
|
|
165
189
|
const settings = pi.pi?.settings;
|
|
166
|
-
if (!settings?.get
|
|
190
|
+
if (!settings?.get)
|
|
167
191
|
return;
|
|
168
192
|
const currentRoles = recordOf(settings.get("modelRoles"));
|
|
169
|
-
const
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
193
|
+
const missingRoles = Object.entries(BIZAR_MODEL_ROLES).filter(([role]) => typeof currentRoles[role] !== "string");
|
|
194
|
+
const projectStorage = settings.get("modelRoleStorage") === "project";
|
|
195
|
+
const roleSetter = projectStorage ? settings.setProjectModelRole : settings.setModelRole;
|
|
196
|
+
if (roleSetter) {
|
|
197
|
+
for (const [role, selector] of missingRoles)
|
|
198
|
+
roleSetter.call(settings, role, selector);
|
|
199
|
+
}
|
|
175
200
|
const currentTags = recordOf(settings.get("modelTags"));
|
|
176
201
|
const nextTags = { ...currentTags };
|
|
177
202
|
for (const [role, tag] of Object.entries(BIZAR_MODEL_TAGS))
|
|
178
203
|
if (!Object.hasOwn(nextTags, role))
|
|
179
204
|
nextTags[role] = tag;
|
|
180
|
-
if (JSON.stringify(nextTags) !== JSON.stringify(currentTags))
|
|
205
|
+
if (settings.set && JSON.stringify(nextTags) !== JSON.stringify(currentTags))
|
|
181
206
|
settings.set("modelTags", nextTags);
|
|
182
207
|
const currentCycle = settings.get("cycleOrder");
|
|
183
208
|
const nextCycle = Array.isArray(currentCycle) ? currentCycle.filter((role) => typeof role === "string") : [];
|
|
184
209
|
for (const role of Object.keys(BIZAR_MODEL_ROLES))
|
|
185
210
|
if (!nextCycle.includes(role))
|
|
186
211
|
nextCycle.push(role);
|
|
187
|
-
if (JSON.stringify(nextCycle) !== JSON.stringify(currentCycle))
|
|
212
|
+
if (settings.set && JSON.stringify(nextCycle) !== JSON.stringify(currentCycle))
|
|
188
213
|
settings.set("cycleOrder", nextCycle);
|
|
189
214
|
}
|
|
190
215
|
function modelRoleHealth(pi, ctx) {
|
|
@@ -216,7 +241,7 @@ function previewModelRoles(ctx) {
|
|
|
216
241
|
const models = ctx.models?.list?.();
|
|
217
242
|
if (!models || models.length === 0)
|
|
218
243
|
throw new ContractError("OMP model catalog is unavailable or empty; nothing to preview");
|
|
219
|
-
const plan = planBizarModelRoles({ list: () => models, family: ctx.models?.family });
|
|
244
|
+
const plan = planBizarModelRoles({ list: () => models, family: ctx.models?.family, allowOpaqueRouteCombos: true });
|
|
220
245
|
// The verdict follows the catalog movement but still leads the per-role
|
|
221
246
|
// lines: the operator notice is fitted to two status lines, so a trailing
|
|
222
247
|
// sentence would be clipped away exactly when it matters most.
|
|
@@ -230,7 +255,8 @@ async function runModelRoleCommand(pi, args, ctx) {
|
|
|
230
255
|
const words = args.trim().split(/\s+/).filter(Boolean);
|
|
231
256
|
if (words.includes("health"))
|
|
232
257
|
return modelRoleHealth(pi, ctx);
|
|
233
|
-
|
|
258
|
+
const previewRequested = words.includes("preview") || words.includes("dry-run") || words.includes("--dry-run");
|
|
259
|
+
if (previewRequested)
|
|
234
260
|
return previewModelRoles(ctx);
|
|
235
261
|
// OMP 18.2.6 exposes the authenticated catalog directly, but an extension
|
|
236
262
|
// command cannot make a model call itself. The live catalog plus the
|
|
@@ -254,7 +280,7 @@ async function runModelRoleCommand(pi, args, ctx) {
|
|
|
254
280
|
}
|
|
255
281
|
const snapshot = snapshotCatalog(route.models);
|
|
256
282
|
const delta = diffCatalog(loadOmbSettings().modelCatalog, snapshot);
|
|
257
|
-
const baseline = planBizarModelRoles({ list: () => route.models, family: ctx.models?.family });
|
|
283
|
+
const baseline = planBizarModelRoles({ list: () => route.models, family: ctx.models?.family, allowOpaqueRouteCombos: true });
|
|
258
284
|
// The observation is recorded as soon as it is made: the next run then reports
|
|
259
285
|
// real catalog movement even when this run's decision was never applied. This
|
|
260
286
|
// is bookkeeping, so a settings file that cannot be written is reported
|
|
@@ -306,9 +332,40 @@ function appendMainContextGuidance(systemPrompt) {
|
|
|
306
332
|
}
|
|
307
333
|
return [MAIN_CONTEXT_GUIDANCE];
|
|
308
334
|
}
|
|
335
|
+
/**
|
|
336
|
+
* Universal Bizar OMP invariants injected into every session (main and task children).
|
|
337
|
+
*/
|
|
338
|
+
const BIZAR_INVARIANTS = "BizarHarness OMP is installed. Use the native bizar-omp skill for Bizar's ownership boundaries, adaptive workflow tiers, workflow/evidence tools, model-role command, and omp-versus-omb launcher contract. Focused work is direct with targeted proof; bounded work uses a lightweight Bizar workflow with acceptance and targeted checks; full work uses planning, isolation, evidence, review, and serialized integration. The native OMP Advisor is enabled by default and may provide passive independent review; incorporate useful concerns without creating a second orchestration runtime.";
|
|
339
|
+
/**
|
|
340
|
+
* Orchestrator-only role assertion and delegation guidance. Applied only after an
|
|
341
|
+
* operator explicitly activates the main orchestrator role via `bizar_apply_main_orchestrator_role`.
|
|
342
|
+
*/
|
|
343
|
+
const MAIN_ORCHESTRATOR_POLICY = "This main session is the Bizar Orchestrator. Talk to the user as the orchestrator by default: understand the request, choose the focused, bounded, or full Bizar method tier from scope, ambiguity, risk, file count, and change type, and delegate to specialist agents only when that improves the result.";
|
|
344
|
+
function appendBizarInvariant(systemPrompt) {
|
|
345
|
+
if (typeof systemPrompt === "string") {
|
|
346
|
+
return systemPrompt.includes(BIZAR_INVARIANTS) ? systemPrompt : `${systemPrompt}\n\n${BIZAR_INVARIANTS}`;
|
|
347
|
+
}
|
|
348
|
+
if (Array.isArray(systemPrompt)) {
|
|
349
|
+
const prompts = systemPrompt.map(String);
|
|
350
|
+
return prompts.some(prompt => prompt.includes(BIZAR_INVARIANTS)) ? prompts : [...prompts, BIZAR_INVARIANTS];
|
|
351
|
+
}
|
|
352
|
+
return [BIZAR_INVARIANTS];
|
|
353
|
+
}
|
|
354
|
+
function applyOrchestratorPolicy(systemPrompt) {
|
|
355
|
+
if (typeof systemPrompt === "string") {
|
|
356
|
+
return systemPrompt.includes(MAIN_ORCHESTRATOR_POLICY) ? systemPrompt : `${systemPrompt}\n\n${MAIN_ORCHESTRATOR_POLICY}`;
|
|
357
|
+
}
|
|
358
|
+
if (Array.isArray(systemPrompt)) {
|
|
359
|
+
const prompts = systemPrompt.map(String);
|
|
360
|
+
return prompts.some(prompt => prompt.includes(MAIN_ORCHESTRATOR_POLICY)) ? prompts : [...prompts, MAIN_ORCHESTRATOR_POLICY];
|
|
361
|
+
}
|
|
362
|
+
return [MAIN_ORCHESTRATOR_POLICY];
|
|
363
|
+
}
|
|
309
364
|
export default function bizarExtension(pi) {
|
|
310
365
|
pi.setLabel?.("Bizar Orchestrator");
|
|
311
366
|
let binding;
|
|
367
|
+
// Main orchestrator role is opt-in: task children must NEVER see it.
|
|
368
|
+
let orchestratorActive = false;
|
|
312
369
|
const currentBinding = (ctx) => {
|
|
313
370
|
if (!binding || !bindingMatches(binding, ctx))
|
|
314
371
|
binding = bindingFor(ctx);
|
|
@@ -316,6 +373,7 @@ export default function bizarExtension(pi) {
|
|
|
316
373
|
};
|
|
317
374
|
pi.on("session_start", async (_event, ctx) => {
|
|
318
375
|
binding = undefined;
|
|
376
|
+
orchestratorActive = false;
|
|
319
377
|
try {
|
|
320
378
|
ensureBizarModelRoles(pi);
|
|
321
379
|
}
|
|
@@ -324,10 +382,110 @@ export default function bizarExtension(pi) {
|
|
|
324
382
|
}
|
|
325
383
|
});
|
|
326
384
|
pi.on("session_before_switch", async () => { binding = undefined; });
|
|
327
|
-
pi.on("session_shutdown", async () => { binding = undefined; });
|
|
385
|
+
pi.on("session_shutdown", async () => { binding = undefined; orchestratorActive = false; });
|
|
328
386
|
pi.on("before_agent_start", event => ({
|
|
329
|
-
systemPrompt:
|
|
387
|
+
systemPrompt: orchestratorActive
|
|
388
|
+
? applyOrchestratorPolicy(appendBizarInvariant(paramsOf(event).systemPrompt))
|
|
389
|
+
: appendBizarInvariant(paramsOf(event).systemPrompt),
|
|
330
390
|
}));
|
|
391
|
+
// A002: managed task isolation/admission pre-execution gate.
|
|
392
|
+
const BIZAR_PACKAGED_AGENTS = new Set([
|
|
393
|
+
"bizar_planner", "bizar_researcher", "bizar_implementer", "bizar_reviewer",
|
|
394
|
+
"bizar_verifier", "bizar_architect", "bizar_docs", "bizar_security_reviewer",
|
|
395
|
+
]);
|
|
396
|
+
pi.on("tool_call", (event, ctx) => {
|
|
397
|
+
try {
|
|
398
|
+
const params = paramsOf(event);
|
|
399
|
+
const toolName = String(params.toolName ?? "");
|
|
400
|
+
if (toolName !== "task")
|
|
401
|
+
return;
|
|
402
|
+
const active = currentBinding(ctx);
|
|
403
|
+
const run = active.journal.snapshot().run;
|
|
404
|
+
const managedActive = !!(run && !["complete", "failed", "cancelled"].includes(run.phase));
|
|
405
|
+
if (!managedActive)
|
|
406
|
+
return;
|
|
407
|
+
const input = paramsOf(params.input);
|
|
408
|
+
const isolated = input.isolated === true;
|
|
409
|
+
const agent = typeof input.agent === "string" ? input.agent : "";
|
|
410
|
+
if (!isolated)
|
|
411
|
+
return { block: true, reason: "A002: managed workflow is active; native `task` calls must declare `isolated: true`." };
|
|
412
|
+
if (!BIZAR_PACKAGED_AGENTS.has(agent))
|
|
413
|
+
return { block: true, reason: `A002: managed workflow refused native \`task\` to non-packaged agent ${agent || "(unspecified)"}; only packaged Bizar specialists are admitted.` };
|
|
414
|
+
}
|
|
415
|
+
catch {
|
|
416
|
+
return;
|
|
417
|
+
}
|
|
418
|
+
});
|
|
419
|
+
// A004: when a managed dispatch is active with a declared tools allowlist, refuse
|
|
420
|
+
// any tool call not in the allowlist.
|
|
421
|
+
pi.on("tool_call", (event, ctx) => {
|
|
422
|
+
try {
|
|
423
|
+
const params = paramsOf(event);
|
|
424
|
+
const toolName = String(params.toolName ?? "");
|
|
425
|
+
if (!toolName)
|
|
426
|
+
return;
|
|
427
|
+
const active = currentBinding(ctx);
|
|
428
|
+
const run = active.journal.snapshot().run;
|
|
429
|
+
const managedActive = !!(run && !["complete", "failed", "cancelled"].includes(run.phase));
|
|
430
|
+
if (!managedActive)
|
|
431
|
+
return;
|
|
432
|
+
const activeDispatch = active.journal.snapshot().dispatches.find(intent => intent.runId === run.runId && !["settled", "failed", "cancelled", "unknown-outcome", "rejected"].includes(intent.status));
|
|
433
|
+
if (!activeDispatch?.tools || activeDispatch.tools.length === 0)
|
|
434
|
+
return;
|
|
435
|
+
if (!activeDispatch.tools.includes(toolName))
|
|
436
|
+
return { block: true, reason: `A004: managed dispatch ${activeDispatch.id} declared tools allowlist; tool "${toolName}" is not permitted (allowed: ${activeDispatch.tools.join(", ")}).` };
|
|
437
|
+
}
|
|
438
|
+
catch {
|
|
439
|
+
return;
|
|
440
|
+
}
|
|
441
|
+
});
|
|
442
|
+
pi.registerTool({
|
|
443
|
+
name: "bizar_apply_main_orchestrator_role", label: "Bizar Apply Main Orchestrator Role",
|
|
444
|
+
description: "Activate the main orchestrator role in this session; required so that before_agent_start injects the orchestrator policy. Task children must never invoke this.",
|
|
445
|
+
parameters: pi.zod.object({}),
|
|
446
|
+
async execute(_id, _raw, _signal, _onUpdate, _ctx) {
|
|
447
|
+
orchestratorActive = true;
|
|
448
|
+
return result({ orchestratorActive: true, scope: "main-session-only", note: "Main orchestrator policy will be appended to subsequent agent system prompts in this session. Task children must not invoke this tool." });
|
|
449
|
+
},
|
|
450
|
+
});
|
|
451
|
+
// A008: operator receipt tool — required before accepting operator-review evidence as "passed".
|
|
452
|
+
pi.registerTool({
|
|
453
|
+
name: "bizar_operator_receipt", label: "Bizar Operator Receipt",
|
|
454
|
+
description: "Record an explicit operator verdict for operator-review criteria. Must be called before accepting an operator-review evidence record.",
|
|
455
|
+
parameters: pi.zod.object({
|
|
456
|
+
workItemId: pi.zod.string(),
|
|
457
|
+
evidenceId: pi.zod.string(),
|
|
458
|
+
verdict: pi.zod.enum(["passed", "failed", "blocked"]),
|
|
459
|
+
rationale: pi.zod.string(),
|
|
460
|
+
operatorId: pi.zod.string(),
|
|
461
|
+
}),
|
|
462
|
+
async execute(_id, raw, _signal, _onUpdate, ctx) {
|
|
463
|
+
try {
|
|
464
|
+
const p = paramsOf(raw);
|
|
465
|
+
const active = currentBinding(ctx);
|
|
466
|
+
const state = active.journal.snapshot();
|
|
467
|
+
if (!state.run)
|
|
468
|
+
throw new Error("No active workflow run");
|
|
469
|
+
const evidence = state.evidence.find(e => e.id === p.evidenceId);
|
|
470
|
+
if (!evidence)
|
|
471
|
+
throw new Error(`Evidence ${p.evidenceId} not found`);
|
|
472
|
+
const receiptId = `receipt_${randomUUID()}`;
|
|
473
|
+
const signedContent = JSON.stringify({ workItemId: p.workItemId, evidenceId: p.evidenceId, verdict: p.verdict, operatorId: p.operatorId, issuedAt: new Date().toISOString() });
|
|
474
|
+
const signedContentHash = createHash("sha256").update(signedContent).digest("hex");
|
|
475
|
+
const verdict = String(p.verdict);
|
|
476
|
+
const receipt = {
|
|
477
|
+
id: receiptId, runId: state.run.runId, workItemId: String(p.workItemId),
|
|
478
|
+
evidenceId: String(p.evidenceId), verdict, rationale: String(p.rationale),
|
|
479
|
+
operatorId: String(p.operatorId), signedContentHash, issuedAt: new Date().toISOString(),
|
|
480
|
+
};
|
|
481
|
+
active.journal.append({ type: "operator.receipt.recorded", runId: state.run.runId, receipt }, `receipt:${receiptId}`, state.revision);
|
|
482
|
+
return result({ receiptId, verdict: p.verdict, signedContentHash });
|
|
483
|
+
}
|
|
484
|
+
catch (error) {
|
|
485
|
+
return failure(error);
|
|
486
|
+
}
|
|
487
|
+
},
|
|
488
|
+
});
|
|
331
489
|
pi.registerTool({
|
|
332
490
|
name: "bizar_workflow", label: "Bizar Workflow", description: "Create, inspect, and advance a typed Bizar workflow; transitions are journaled and revision checked.",
|
|
333
491
|
parameters: pi.zod.object({
|
|
@@ -580,7 +738,7 @@ export default function bizarExtension(pi) {
|
|
|
580
738
|
},
|
|
581
739
|
});
|
|
582
740
|
pi.registerCommand("bizar-models", {
|
|
583
|
-
description: "Assign Bizar roles from OMP's
|
|
741
|
+
description: "Assign Bizar roles from OMP's live model catalog",
|
|
584
742
|
handler: async (args, ctx) => {
|
|
585
743
|
try {
|
|
586
744
|
reportToOperator(ctx, await runModelRoleCommand(pi, args, ctx), "bizar-models");
|