@polderlabs/bizar-omp 0.10.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -7
- package/agents/bizar-implementer.md +1 -1
- package/agents/bizar-researcher.md +1 -1
- package/agents/bizar-security-reviewer.md +1 -1
- package/dist/cli/install.d.ts +23 -0
- package/dist/cli/install.d.ts.map +1 -1
- package/dist/cli/install.js +108 -2
- package/dist/cli/install.js.map +1 -1
- package/dist/cli/omb-mobile.d.ts +1 -1
- package/dist/cli/omb-mobile.d.ts.map +1 -1
- package/dist/cli/omb-mobile.js +15 -3
- package/dist/cli/omb-mobile.js.map +1 -1
- package/dist/core/acceptance.d.ts +1 -1
- package/dist/core/acceptance.d.ts.map +1 -1
- package/dist/core/acceptance.js +16 -1
- package/dist/core/acceptance.js.map +1 -1
- package/dist/core/evidence.d.ts +1 -0
- package/dist/core/evidence.d.ts.map +1 -1
- package/dist/core/evidence.js +26 -0
- package/dist/core/evidence.js.map +1 -1
- package/dist/core/policies.d.ts +35 -0
- package/dist/core/policies.d.ts.map +1 -1
- package/dist/core/policies.js +18 -1
- package/dist/core/policies.js.map +1 -1
- package/dist/extension.d.ts.map +1 -1
- package/dist/extension.js +55 -8
- package/dist/extension.js.map +1 -1
- package/dist/mobile-host.mjs +18538 -0
- package/dist/omp/agent-capabilities.d.ts +69 -0
- package/dist/omp/agent-capabilities.d.ts.map +1 -0
- package/dist/omp/agent-capabilities.js +58 -0
- package/dist/omp/agent-capabilities.js.map +1 -0
- package/dist/omp/agent-capabilities.json +46 -0
- package/dist/omp/agent-capability-baseline.json +37 -0
- package/dist/omp/autonomous-settings.d.ts +21 -0
- package/dist/omp/autonomous-settings.d.ts.map +1 -1
- package/dist/omp/autonomous-settings.js +31 -2
- package/dist/omp/autonomous-settings.js.map +1 -1
- package/dist/omp/capabilities.d.ts +15 -0
- package/dist/omp/capabilities.d.ts.map +1 -1
- package/dist/omp/capabilities.js +13 -1
- package/dist/omp/capabilities.js.map +1 -1
- package/dist/omp/compatibility-manifest.json +8 -5
- package/dist/omp/daemon-service.d.ts.map +1 -1
- package/dist/omp/daemon-service.js +2 -1
- package/dist/omp/daemon-service.js.map +1 -1
- package/dist/omp/model-role-assignment.d.ts +80 -0
- package/dist/omp/model-role-assignment.d.ts.map +1 -1
- package/dist/omp/model-role-assignment.js +153 -2
- package/dist/omp/model-role-assignment.js.map +1 -1
- package/dist/omp/rpc-wire-contract.d.ts +100 -0
- package/dist/omp/rpc-wire-contract.d.ts.map +1 -0
- package/dist/omp/rpc-wire-contract.js +135 -0
- package/dist/omp/rpc-wire-contract.js.map +1 -0
- package/dist/omp/task-model-selector.d.ts +16 -10
- package/dist/omp/task-model-selector.d.ts.map +1 -1
- package/dist/omp/task-model-selector.js +34 -14
- package/dist/omp/task-model-selector.js.map +1 -1
- package/dist/omp/tmux.d.ts +24 -0
- package/dist/omp/tmux.d.ts.map +1 -1
- package/dist/omp/tmux.js +88 -4
- package/dist/omp/tmux.js.map +1 -1
- package/dist/services/native-tool-selection.d.ts +44 -0
- package/dist/services/native-tool-selection.d.ts.map +1 -0
- package/dist/services/native-tool-selection.js +91 -0
- package/dist/services/native-tool-selection.js.map +1 -0
- package/docs/compatibility/baseline.json +11 -8
- package/docs/compatibility/supported-surfaces.json +4 -1
- package/docs/releases/0.11.0.md +58 -0
- package/docs/releases/0.12.0.md +16 -0
- package/docs/releases/support-matrix.md +1 -1
- package/package.json +10 -4
- package/rules/bizar-native-omp.md +4 -0
- package/skills/bizar-omp/SKILL.md +44 -7
- 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 +4 -4
package/dist/core/evidence.js
CHANGED
|
@@ -1,9 +1,34 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import { ContractError, StaleEvidenceError } from "./errors.js";
|
|
3
3
|
export const digest = (value) => createHash("sha256").update(value).digest("hex");
|
|
4
|
+
/**
|
|
5
|
+
* Provenance sources that describe material from a previous session rather than
|
|
6
|
+
* an observation of the current target tree.
|
|
7
|
+
*
|
|
8
|
+
* OMP ships a read-only `archive` eval prelude (`archive.enabled`, on by
|
|
9
|
+
* default) exposing prompt history, recent projects, past sessions and recaps.
|
|
10
|
+
* It is genuinely useful context and genuinely useless as proof: a passing
|
|
11
|
+
* result quoted from last week's session describes a tree that no longer
|
|
12
|
+
* exists. Snapshots already draw this line ("a snapshot is a recovery hint,
|
|
13
|
+
* not an archive"); the archive needs the same line at the evidence boundary,
|
|
14
|
+
* because unlike a snapshot it is *readable as text* and so can be mistaken
|
|
15
|
+
* for a result.
|
|
16
|
+
*
|
|
17
|
+
* Refused rather than flagged: there is no configuration in which a record
|
|
18
|
+
* with a historical source satisfies acceptance, so a caller cannot opt into
|
|
19
|
+
* the weaker behaviour by accident.
|
|
20
|
+
*/
|
|
21
|
+
const HISTORICAL_SOURCES = new Set(["archive", "session-history", "prompt-history", "recap", "snapshot"]);
|
|
22
|
+
export function isCurrentTargetObservation(record) {
|
|
23
|
+
const source = record.provenance.source?.trim().toLowerCase();
|
|
24
|
+
return source === undefined || !HISTORICAL_SOURCES.has(source);
|
|
25
|
+
}
|
|
4
26
|
export function createEvidence(input) {
|
|
5
27
|
if (!input.id.trim())
|
|
6
28
|
throw new ContractError("Evidence ID is required");
|
|
29
|
+
if (!isCurrentTargetObservation(input)) {
|
|
30
|
+
throw new ContractError(`Evidence ${input.id} is sourced from archived or session history (${input.provenance.source}); history describes a past target tree and cannot be recorded as current-target evidence`);
|
|
31
|
+
}
|
|
7
32
|
return { ...input, recordedAt: new Date().toISOString(), stale: false };
|
|
8
33
|
}
|
|
9
34
|
export function invalidateEvidence(records, targetDigest, changedInputs = []) {
|
|
@@ -24,6 +49,7 @@ export function requireFreshEvidence(records, ids, targetDigest, identity = {})
|
|
|
24
49
|
if (missingIndex !== -1)
|
|
25
50
|
throw new StaleEvidenceError(ids[missingIndex] || "unknown", "required evidence is missing");
|
|
26
51
|
const stale = found.find(record => record.stale || record.targetDigest !== targetDigest || record.result !== "passed"
|
|
52
|
+
|| !isCurrentTargetObservation(record)
|
|
27
53
|
|| (identity.candidateId !== undefined && record.candidateId !== identity.candidateId)
|
|
28
54
|
|| (identity.candidateTree !== undefined && record.candidateTree !== identity.candidateTree)
|
|
29
55
|
|| (identity.checkSpecHash !== undefined && record.checkSpecHash !== identity.checkSpecHash)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../src/core/evidence.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../src/core/evidence.ts"],"names":[],"mappings":"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"}
|
package/dist/core/policies.d.ts
CHANGED
|
@@ -13,10 +13,45 @@ import type { ObjectiveContract, RouteDecision, RouteTask, TrustPreset, Workflow
|
|
|
13
13
|
export declare function workflowTierFor(task: RouteTask, route?: Pick<RouteDecision, "routeClass" | "intent" | "reasons">): WorkflowTier;
|
|
14
14
|
export declare function classifyRoute(task: RouteTask): RouteDecision;
|
|
15
15
|
export declare function objectiveHash(objective: ObjectiveContract): string;
|
|
16
|
+
/**
|
|
17
|
+
* How a profile may use OMP's read-only `archive` eval prelude.
|
|
18
|
+
*
|
|
19
|
+
* `archive.enabled` is OMP's own setting, default on, and Bizar never writes
|
|
20
|
+
* it: stripping it would be a silent behaviour change to an operator's host.
|
|
21
|
+
* What Bizar owns is whether a managed dispatch may *rely* on it, and that
|
|
22
|
+
* answer is per profile rather than global.
|
|
23
|
+
*
|
|
24
|
+
* - `interactive` is pass-through: the operator's own session keeps full
|
|
25
|
+
* archive context, because removing it would change a capability the
|
|
26
|
+
* operator can already turn off themselves.
|
|
27
|
+
* - `trusted-development` is supported: the same operator, same machine, same
|
|
28
|
+
* history the dispatch could read directly.
|
|
29
|
+
* - The managed and untrusted presets are `context-only`: a managed specialist
|
|
30
|
+
* may read archived material as background, but nothing it reads may satisfy
|
|
31
|
+
* an acceptance criterion. That separation is enforced where it matters —
|
|
32
|
+
* `isCurrentTargetObservation` in `core/evidence.ts` refuses any evidence
|
|
33
|
+
* record sourced from an archive — rather than by hiding the tool.
|
|
34
|
+
*/
|
|
35
|
+
export type ArchiveAccess = "pass-through" | "supported" | "context-only";
|
|
36
|
+
export type ArchiveProfile = TrustPreset | "interactive";
|
|
37
|
+
/** Whether archived content may satisfy acceptance for this profile. Never true. */
|
|
38
|
+
export declare const ARCHIVE_IS_NEVER_ACCEPTANCE_EVIDENCE = true;
|
|
39
|
+
export declare function archivePolicy(profile: ArchiveProfile): {
|
|
40
|
+
profile: ArchiveProfile;
|
|
41
|
+
access: ArchiveAccess;
|
|
42
|
+
acceptanceEvidence: "refused";
|
|
43
|
+
reason: string;
|
|
44
|
+
};
|
|
16
45
|
export declare function trustPolicy(preset: TrustPreset): {
|
|
17
46
|
allowShell: boolean;
|
|
18
47
|
managedIsolation: boolean;
|
|
19
48
|
allowEval: boolean;
|
|
20
49
|
preset: TrustPreset;
|
|
50
|
+
archive: {
|
|
51
|
+
profile: ArchiveProfile;
|
|
52
|
+
access: ArchiveAccess;
|
|
53
|
+
acceptanceEvidence: "refused";
|
|
54
|
+
reason: string;
|
|
55
|
+
};
|
|
21
56
|
};
|
|
22
57
|
//# sourceMappingURL=policies.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policies.d.ts","sourceRoot":"","sources":["../../src/core/policies.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAe,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AA4BtH;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,GAAG,QAAQ,GAAG,SAAS,CAAC,GAAG,YAAY,CAkB/H;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,aAAa,CAqB5D;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,iBAAiB,GAAG,MAAM,CAElE;AAQD,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW;gBANE,OAAO;sBAAoB,OAAO;eAAa,OAAO;;
|
|
1
|
+
{"version":3,"file":"policies.d.ts","sourceRoot":"","sources":["../../src/core/policies.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAe,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AA4BtH;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,GAAG,QAAQ,GAAG,SAAS,CAAC,GAAG,YAAY,CAkB/H;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,aAAa,CAqB5D;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,iBAAiB,GAAG,MAAM,CAElE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,WAAW,GAAG,cAAc,CAAC;AAC1E,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,aAAa,CAAC;AASzD,oFAAoF;AACpF,eAAO,MAAM,oCAAoC,OAAO,CAAC;AAEzD,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG;IACtD,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,aAAa,CAAC;IACtB,kBAAkB,EAAE,SAAS,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;CAChB,CAQA;AAQD,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW;gBANE,OAAO;sBAAoB,OAAO;eAAa,OAAO;;;iBAd5F,cAAc;gBACf,aAAa;4BACD,SAAS;gBACrB,MAAM;;EAiB2G"}
|
package/dist/core/policies.js
CHANGED
|
@@ -82,10 +82,27 @@ export function classifyRoute(task) {
|
|
|
82
82
|
export function objectiveHash(objective) {
|
|
83
83
|
return hash(JSON.stringify(objective));
|
|
84
84
|
}
|
|
85
|
+
const archiveAccess = {
|
|
86
|
+
interactive: "pass-through",
|
|
87
|
+
"trusted-development": "supported",
|
|
88
|
+
"restricted-managed": "context-only",
|
|
89
|
+
"untrusted-repository": "context-only",
|
|
90
|
+
};
|
|
91
|
+
/** Whether archived content may satisfy acceptance for this profile. Never true. */
|
|
92
|
+
export const ARCHIVE_IS_NEVER_ACCEPTANCE_EVIDENCE = true;
|
|
93
|
+
export function archivePolicy(profile) {
|
|
94
|
+
const access = archiveAccess[profile];
|
|
95
|
+
return {
|
|
96
|
+
profile,
|
|
97
|
+
access,
|
|
98
|
+
acceptanceEvidence: "refused",
|
|
99
|
+
reason: `OMP's archive prelude is read-only ${access} history. It describes past sessions and prompt history, never the current target tree, so evidence recorded from it is refused (see core/evidence.ts isCurrentTargetObservation).`,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
85
102
|
const presets = {
|
|
86
103
|
"trusted-development": { allowShell: true, managedIsolation: false, allowEval: true },
|
|
87
104
|
"restricted-managed": { allowShell: true, managedIsolation: true, allowEval: false },
|
|
88
105
|
"untrusted-repository": { allowShell: false, managedIsolation: true, allowEval: false },
|
|
89
106
|
};
|
|
90
|
-
export function trustPolicy(preset) { return { preset, ...presets[preset] }; }
|
|
107
|
+
export function trustPolicy(preset) { return { preset, ...presets[preset], archive: archivePolicy(preset) }; }
|
|
91
108
|
//# sourceMappingURL=policies.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policies.js","sourceRoot":"","sources":["../../src/core/policies.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"policies.js","sourceRoot":"","sources":["../../src/core/policies.ts"],"names":[],"mappings":"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"}
|
package/dist/extension.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"}
|
package/dist/extension.js
CHANGED
|
@@ -37,7 +37,7 @@ import { readJournalSessionId } from "./omp/session-ownership.js";
|
|
|
37
37
|
import { clearOmbHostGeneration, rebindOmbHostGeneration } from "./omp/tmux.js";
|
|
38
38
|
import { createSessionTitleController, resolveSessionTitleLabel } from "./omp/terminal-title.js";
|
|
39
39
|
import { bindSession } from "./omp/lifecycle.js";
|
|
40
|
-
import { BIZAR_MODEL_ROLE_AGENT_PROMPT, BIZAR_MODEL_ROLE_TOOL, BIZAR_MODEL_ROLES, buildAgentEvaluationRequest, clipOperatorNotice, commitRolePlan, diffCatalog, formatCatalogDelta, formatRoleAssignmentPlan, planBizarModelRoles, planFromRecommendations, recordOf, reviewRoleRecommendations, roleAssignmentRoute, snapshotCatalog, isOpaqueOmniRouteCombo, omniRouteFailureGuidance, } from "./omp/model-role-assignment.js";
|
|
40
|
+
import { BIZAR_MODEL_ROLE_AGENT_PROMPT, BIZAR_MODEL_ROLE_TOOL, BIZAR_MODEL_ROLES, buildAgentEvaluationRequest, catalogDigestOf, clipOperatorNotice, commitRolePlan, diffCatalog, formatCatalogDelta, formatRoleAssignmentPlan, mappingDigest, mintRoleAssignmentGrant, planBizarModelRoles, planFromRecommendations, recordOf, reviewRoleRecommendations, roleAssignmentRoute, ROLE_GRANT_TTL_MS, snapshotCatalog, isOpaqueOmniRouteCombo, omniRouteFailureGuidance, } from "./omp/model-role-assignment.js";
|
|
41
41
|
import { AGENT_ROLES } from "./omp/model-roles.js";
|
|
42
42
|
import { loadOmbSettings, recordCatalogObservation } from "./omp/omb-settings.js";
|
|
43
43
|
import { isRunPhaseActive } from "./core/types.js";
|
|
@@ -285,6 +285,8 @@ async function runModelRoleCommand(pi, args, ctx, routeResponses = new Map()) {
|
|
|
285
285
|
if (words.includes("health"))
|
|
286
286
|
return modelRoleHealth(pi, ctx, routeResponses);
|
|
287
287
|
const previewRequested = words.includes("preview") || words.includes("dry-run") || words.includes("--dry-run");
|
|
288
|
+
// Preview is checked before anything else, so it stays read-only and mints no
|
|
289
|
+
// write authority regardless of what else was asked for.
|
|
288
290
|
if (previewRequested)
|
|
289
291
|
return previewModelRoles(ctx);
|
|
290
292
|
// OMP 18.2.6 exposes the authenticated catalog directly, but an extension
|
|
@@ -317,19 +319,38 @@ async function runModelRoleCommand(pi, args, ctx, routeResponses = new Map()) {
|
|
|
317
319
|
const recorded = recordCatalogObservation(snapshot);
|
|
318
320
|
const observationNote = recorded.ok ? "" : `\nCatalog observation not recorded: ${recorded.reason}`;
|
|
319
321
|
if (route.kind === "local-plan") {
|
|
322
|
+
// The operator's own command is the authority on this route; no model is in
|
|
323
|
+
// the loop, so there is no authorization to mint.
|
|
320
324
|
return `${commitRolePlan({
|
|
321
325
|
settings: route.settings,
|
|
322
326
|
resolve: selector => ctx.models?.resolve?.(selector),
|
|
323
327
|
plan: baseline,
|
|
324
328
|
delta,
|
|
325
329
|
source: "deterministic scoring; native request handoff unavailable",
|
|
330
|
+
models: route.models,
|
|
331
|
+
authorization: { operatorCommand: true },
|
|
326
332
|
})}${observationNote}`;
|
|
327
333
|
}
|
|
334
|
+
// A013: the agent route is the only one a model can complete, so this is the
|
|
335
|
+
// only route that needs an explicit operator authorization. It is minted
|
|
336
|
+
// here, bound to this session and to the catalog and mapping the operator just
|
|
337
|
+
// reviewed, and echoed to the agent so it is the only thing that can write.
|
|
338
|
+
const sessionId = mainSessionId(ctx);
|
|
339
|
+
if (!sessionId) {
|
|
340
|
+
throw new ContractError("Model-role authorization requires an identified OMP main session; the agent route is refused rather than handed a distribution with no operator authority.");
|
|
341
|
+
}
|
|
342
|
+
const currentRoles = recordOf(route.settings.get("modelRoles"));
|
|
343
|
+
const token = mintRoleAssignmentGrant({
|
|
344
|
+
sessionId,
|
|
345
|
+
catalogDigest: catalogDigestOf(route.models),
|
|
346
|
+
mappingDigest: mappingDigest(currentRoles),
|
|
347
|
+
});
|
|
328
348
|
route.send(buildAgentEvaluationRequest({
|
|
329
349
|
models: route.models,
|
|
330
|
-
currentRoles
|
|
350
|
+
currentRoles,
|
|
331
351
|
baseline,
|
|
332
352
|
delta,
|
|
353
|
+
authorization: token,
|
|
333
354
|
}));
|
|
334
355
|
const assigned = baseline.assignments.map(({ role, selector }) => `${role}=${selector}`).join(", ");
|
|
335
356
|
const unresolved = baseline.unavailable.length > 0
|
|
@@ -341,8 +362,8 @@ async function runModelRoleCommand(pi, args, ctx, routeResponses = new Map()) {
|
|
|
341
362
|
const leftUnchanged = unchanged.length > 0 ? ` Left unchanged until the decision lands: ${unchanged.join(", ")}.` : "";
|
|
342
363
|
return [
|
|
343
364
|
formatCatalogDelta(delta),
|
|
344
|
-
`
|
|
345
|
-
`
|
|
365
|
+
`Authorized one ${BIZAR_MODEL_ROLE_TOOL} call for this session, covering ${Object.keys(BIZAR_MODEL_ROLES).length} Bizar roles, for ${ROLE_GRANT_TTL_MS / 60000} minutes. The agent holds the single-use token and may not apply anything else, in another session, or after it expires.`,
|
|
366
|
+
`Re-evaluated ${Object.keys(BIZAR_MODEL_ROLES).length} Bizar roles against ${route.models.length} live models, including roles that already hold a value. Deterministic baseline: ${assigned}.${unresolved}${leftUnchanged}`,
|
|
346
367
|
].join("\n") + observationNote;
|
|
347
368
|
}
|
|
348
369
|
const runVerificationWithSignal = runVerification;
|
|
@@ -376,6 +397,29 @@ function appendUserIdentityInvariant(systemPrompt) {
|
|
|
376
397
|
* Universal Bizar OMP invariants injected into every session (main and task children).
|
|
377
398
|
*/
|
|
378
399
|
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 off by default for OMB performance and may provide passive independent review when the operator enables it; incorporate useful concerns without creating a second orchestration runtime. Before acting on a todo that asks to commit or push, check the working tree and upstream Git state. When `git status --short` is empty and `git rev-parse HEAD` matches the relevant upstream branch, complete the satisfied commit/push todo items with the native todo tool and continue; do not create a duplicate commit, push, or prompt for either action. If a task or spawn fails immediately with `No model selected`, OMP could not resolve a model for the session; the brief is never the cause and retrying cannot help. You have no tool that selects a model, so do not retry, do not try another route, and do not ask the user to restate the task. Report it once, name `No model selected`, and stop; the operator resolves it with `/model` or by restoring the provider key. Bizar defines semantic roles only and never overrides the operator model choice.";
|
|
400
|
+
/**
|
|
401
|
+
* Archive scoping, stated to the model rather than enforced by hiding a tool.
|
|
402
|
+
*
|
|
403
|
+
* OMP's read-only `archive` prelude (prompt history, recent projects, past
|
|
404
|
+
* sessions, recaps) stays available in every profile — it is the operator's
|
|
405
|
+
* setting and this extension does not rewrite it. What the model must know is
|
|
406
|
+
* that reading it produces context, never proof: Bizar refuses any evidence
|
|
407
|
+
* record sourced from an archive, so a result quoted out of last week's
|
|
408
|
+
* transcript cannot satisfy a criterion however confident it reads.
|
|
409
|
+
*/
|
|
410
|
+
const ARCHIVE_SCOPING_INVARIANT = "OMP's read-only `archive` prelude (prompt history, recent projects, past sessions, recaps) is available but is context, never evidence: it describes past sessions, not the current target tree. Use it to recover earlier work when asked. Never cite archived output as proof that a check passed, and never record it through `bizar_verify` or `bizar_candidate_verify` — evidence sourced from an archive is refused at acceptance.";
|
|
411
|
+
function appendArchiveScoping(systemPrompt) {
|
|
412
|
+
if (typeof systemPrompt === "string") {
|
|
413
|
+
return systemPrompt.includes(ARCHIVE_SCOPING_INVARIANT) ? systemPrompt : `${systemPrompt}\n\n${ARCHIVE_SCOPING_INVARIANT}`;
|
|
414
|
+
}
|
|
415
|
+
if (Array.isArray(systemPrompt)) {
|
|
416
|
+
const prompts = systemPrompt.map(String);
|
|
417
|
+
return prompts.some(prompt => prompt.includes(ARCHIVE_SCOPING_INVARIANT))
|
|
418
|
+
? prompts
|
|
419
|
+
: [...prompts, ARCHIVE_SCOPING_INVARIANT];
|
|
420
|
+
}
|
|
421
|
+
return [ARCHIVE_SCOPING_INVARIANT];
|
|
422
|
+
}
|
|
379
423
|
/**
|
|
380
424
|
* Orchestrator-only role assertion and delegation guidance. Applied only after an
|
|
381
425
|
* operator explicitly activates the main orchestrator role via `bizar_apply_main_orchestrator_role`.
|
|
@@ -637,9 +681,9 @@ export default function bizarExtension(pi) {
|
|
|
637
681
|
const systemPrompt = paramsOf(event).systemPrompt;
|
|
638
682
|
const active = orchestratorSessionId !== undefined && orchestratorSessionId === sessionId;
|
|
639
683
|
return {
|
|
640
|
-
systemPrompt: appendUserIdentityInvariant(active
|
|
684
|
+
systemPrompt: appendUserIdentityInvariant(appendArchiveScoping(active
|
|
641
685
|
? applyOrchestratorPolicy(appendBizarInvariant(systemPrompt))
|
|
642
|
-
: appendBizarInvariant(removeOrchestratorPolicy(systemPrompt))),
|
|
686
|
+
: appendBizarInvariant(removeOrchestratorPolicy(systemPrompt)))),
|
|
643
687
|
};
|
|
644
688
|
});
|
|
645
689
|
pi.on("agent_end", (event, ctx) => {
|
|
@@ -1283,14 +1327,15 @@ export default function bizarExtension(pi) {
|
|
|
1283
1327
|
},
|
|
1284
1328
|
});
|
|
1285
1329
|
pi.registerTool({
|
|
1286
|
-
name: "bizar_capabilities", label: "Bizar Native Capabilities", description: "Report native qualification honestly; registration is not end-to-end managed qualification.",
|
|
1330
|
+
name: "bizar_capabilities", label: "Bizar Native Capabilities", description: "Report native qualification honestly; registration is not end-to-end managed qualification. Also reports each packaged specialist's requested/active/unavailable tool roster against the qualified OMP, plus any drift between OMP's built-in registry and Bizar's reviewed profiles.",
|
|
1287
1331
|
parameters: pi.zod.object({}),
|
|
1288
1332
|
async execute() { return result(capabilityReport({ extensionLoaded: true })); },
|
|
1289
1333
|
});
|
|
1290
1334
|
pi.registerTool({
|
|
1291
1335
|
name: BIZAR_MODEL_ROLE_TOOL, label: "Bizar Apply Model Roles",
|
|
1292
|
-
description: "Validate a proposed Bizar model-role distribution against the live OMP catalog and persist it atomically
|
|
1336
|
+
description: "Validate a proposed Bizar model-role distribution against the live OMP catalog and persist it atomically. Requires the single-use authorization token /bizar-models issues for this session: a missing, forged, expired, replayed, cross-session, or stale token writes nothing. The whole mapping is refused when any selector is not a resolvable catalog entry, and a selector that only differs in casing is stored under the catalog's spelling.",
|
|
1293
1337
|
parameters: pi.zod.object({
|
|
1338
|
+
authorization: pi.zod.string().optional(),
|
|
1294
1339
|
assignment: pi.zod.array(pi.zod.object({
|
|
1295
1340
|
role: pi.zod.string(),
|
|
1296
1341
|
selector: pi.zod.string(),
|
|
@@ -1321,6 +1366,8 @@ export default function bizarExtension(pi) {
|
|
|
1321
1366
|
plan: planFromRecommendations(review, host.models),
|
|
1322
1367
|
delta: diffCatalog(loadOmbSettings().modelCatalog, snapshot),
|
|
1323
1368
|
source: "catalog-evaluated distribution",
|
|
1369
|
+
models: host.models,
|
|
1370
|
+
authorization: { token: paramsOf(raw).authorization, sessionId: mainSessionId(ctx) },
|
|
1324
1371
|
});
|
|
1325
1372
|
// A recommendation that only differed in casing is stored under the
|
|
1326
1373
|
// catalog's own spelling; the repair is reported so the persisted mapping
|