@polderlabs/bizar-omp 0.6.6 → 0.6.8
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 +8 -8
- package/dist/cli/agents.d.ts +1 -1
- package/dist/cli/agents.d.ts.map +1 -1
- package/dist/cli/agents.js +1 -1
- package/dist/cli/doctor.d.ts +4 -4
- package/dist/cli/omb-commands.js +1 -1
- package/dist/cli/omb-commands.js.map +1 -1
- package/dist/cli/omb-update.d.ts +5 -0
- package/dist/cli/omb-update.d.ts.map +1 -1
- package/dist/cli/omb-update.js +14 -5
- package/dist/cli/omb-update.js.map +1 -1
- package/dist/cli/update-ink.d.ts +51 -0
- package/dist/cli/update-ink.d.ts.map +1 -0
- package/dist/cli/update-ink.js +185 -0
- package/dist/cli/update-ink.js.map +1 -0
- package/dist/core/acceptance.d.ts.map +1 -1
- package/dist/core/acceptance.js +2 -1
- package/dist/core/acceptance.js.map +1 -1
- package/dist/core/recovery.d.ts.map +1 -1
- package/dist/core/recovery.js +47 -3
- package/dist/core/recovery.js.map +1 -1
- package/dist/core/transitions.d.ts +3 -2
- package/dist/core/transitions.d.ts.map +1 -1
- package/dist/core/transitions.js +34 -8
- package/dist/core/transitions.js.map +1 -1
- package/dist/core/types.d.ts +32 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/extension.d.ts +14 -3
- package/dist/extension.d.ts.map +1 -1
- package/dist/extension.js +50 -23
- 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 +116 -2
- package/dist/omp/daemon-service.js.map +1 -1
- package/dist/omp/dashboard-html.d.ts.map +1 -1
- package/dist/omp/dashboard-html.js +70 -3
- package/dist/omp/dashboard-html.js.map +1 -1
- package/dist/omp/dispatch-admission.d.ts +4 -1
- package/dist/omp/dispatch-admission.d.ts.map +1 -1
- package/dist/omp/dispatch-admission.js +2 -2
- package/dist/omp/dispatch-admission.js.map +1 -1
- package/dist/omp/omb-sessions.d.ts +9 -0
- package/dist/omp/omb-sessions.d.ts.map +1 -1
- package/dist/omp/omb-sessions.js +16 -8
- package/dist/omp/omb-sessions.js.map +1 -1
- package/dist/omp/result-reconciliation.js +1 -1
- package/dist/omp/result-reconciliation.js.map +1 -1
- package/dist/omp/rpc.d.ts +3 -1
- package/dist/omp/rpc.d.ts.map +1 -1
- package/dist/services/candidate-verify.d.ts +35 -0
- package/dist/services/candidate-verify.d.ts.map +1 -0
- package/dist/services/candidate-verify.js +138 -0
- package/dist/services/candidate-verify.js.map +1 -0
- package/dist/storage/journal.d.ts.map +1 -1
- package/dist/storage/journal.js +6 -21
- package/dist/storage/journal.js.map +1 -1
- package/dist/storage/lease.d.ts +16 -0
- package/dist/storage/lease.d.ts.map +1 -0
- package/dist/storage/lease.js +153 -0
- package/dist/storage/lease.js.map +1 -0
- package/dist/storage/repository-identity.d.ts.map +1 -1
- package/dist/storage/repository-identity.js +1 -0
- package/dist/storage/repository-identity.js.map +1 -1
- package/dist/tools/integrate.d.ts.map +1 -1
- package/dist/tools/integrate.js +52 -23
- package/dist/tools/integrate.js.map +1 -1
- package/dist/tools/verify.d.ts.map +1 -1
- package/dist/tools/verify.js +57 -14
- package/dist/tools/verify.js.map +1 -1
- package/dist/tools/workflow.d.ts +12 -2
- package/dist/tools/workflow.d.ts.map +1 -1
- package/dist/tools/workflow.js +39 -6
- package/dist/tools/workflow.js.map +1 -1
- package/docs/compatibility/baseline.json +9 -8
- package/docs/compatibility/supported-surfaces.json +2 -1
- package/docs/releases/0.6.6.md +3 -2
- package/docs/releases/0.6.7.md +29 -0
- package/docs/releases/0.6.8.md +11 -0
- package/docs/releases/native-stable.md +1 -1
- package/docs/releases/npm-publishing.md +1 -1
- package/docs/releases/support-matrix.md +1 -1
- package/package.json +2 -2
- 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/core/recovery.js
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
import { ContractError, OwnershipError } from "./errors.js";
|
|
2
|
-
|
|
2
|
+
import { objectiveHash } from "./policies.js";
|
|
3
|
+
const terminalDispatchStatuses = new Set(["settled", "failed", "cancelled", "unknown-outcome", "rejected"]);
|
|
4
|
+
function advanceDispatch(state, event) {
|
|
5
|
+
const current = state.dispatches.find(intent => intent.id === event.dispatch.id);
|
|
6
|
+
if (!current)
|
|
7
|
+
throw new ContractError("Dispatch state change references unknown dispatch", { dispatchId: event.dispatch.id });
|
|
8
|
+
if (event.observed.dispatchId !== event.dispatch.id)
|
|
9
|
+
throw new ContractError("Dispatch observation identity mismatch", { dispatchId: event.dispatch.id, observationDispatchId: event.observed.dispatchId });
|
|
10
|
+
for (const field of ["runId", "workItemId", "idempotencyKey"])
|
|
11
|
+
if (event.dispatch[field] !== current[field])
|
|
12
|
+
throw new ContractError("Dispatch state change mutates immutable identity", { dispatchId: current.id, field });
|
|
13
|
+
const allowed = current.status === "admitted" ? new Set(["acknowledged", "settled", "failed", "cancelled", "unknown-outcome", "rejected"]) : current.status === "acknowledged" ? terminalDispatchStatuses : new Set();
|
|
14
|
+
if (!allowed.has(event.dispatch.status))
|
|
15
|
+
throw new ContractError("Dispatch state transition is not monotonic", { dispatchId: current.id, from: current.status, to: event.dispatch.status });
|
|
16
|
+
state.dispatches = [...state.dispatches.filter(intent => intent.id !== current.id), event.dispatch];
|
|
17
|
+
state.observations.push(event.observed);
|
|
18
|
+
if (state.run) {
|
|
19
|
+
const lifecycle = event.dispatch.status === "settled" ? "settled" : terminalDispatchStatuses.has(event.dispatch.status) ? "rejected" : "running";
|
|
20
|
+
state.run = { ...state.run, workItems: state.run.workItems.map(item => item.id === current.workItemId ? { ...item, lifecycle } : item), updatedAt: event.observed.observedAt };
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export function emptySnapshot() { return { revision: 0, dispatches: [], observations: [], evidence: [], integrations: [], acceptances: [], decisions: [], lastSequence: 0 }; }
|
|
3
24
|
export function replay(entries) {
|
|
4
25
|
const state = emptySnapshot();
|
|
5
26
|
for (const entry of entries) {
|
|
@@ -12,6 +33,7 @@ export function replay(entries) {
|
|
|
12
33
|
state.observations = [];
|
|
13
34
|
state.evidence = [];
|
|
14
35
|
state.integrations = [];
|
|
36
|
+
state.acceptances = [];
|
|
15
37
|
state.decisions = [];
|
|
16
38
|
}
|
|
17
39
|
else if (event.type === "run.transitioned" && state.run?.runId === event.runId) {
|
|
@@ -20,15 +42,37 @@ export function replay(entries) {
|
|
|
20
42
|
else if (event.type === "work-item.upserted" && state.run?.runId === event.runId)
|
|
21
43
|
state.run = { ...state.run, workItems: [...state.run.workItems.filter(i => i.id !== event.item.id), event.item], revision: state.run.revision + 1, updatedAt: entry.at };
|
|
22
44
|
else if (event.type === "dispatch.recorded" && state.run?.runId === event.runId)
|
|
23
|
-
state.dispatches.
|
|
24
|
-
else if (event.type === "
|
|
45
|
+
state.dispatches = [...state.dispatches.filter(intent => intent.id !== event.intent.id), event.intent];
|
|
46
|
+
else if (event.type === "dispatch.state_changed" && state.run?.runId === event.runId)
|
|
47
|
+
advanceDispatch(state, event);
|
|
48
|
+
else if (event.type === "worker.observed" && state.run?.runId === event.runId) {
|
|
49
|
+
if (!state.dispatches.some(intent => intent.id === event.observation.dispatchId))
|
|
50
|
+
throw new ContractError("Worker observation references unknown dispatch", { dispatchId: event.observation.dispatchId });
|
|
25
51
|
state.observations.push(event.observation);
|
|
52
|
+
}
|
|
53
|
+
else if (event.type === "worker.observed") { /* stale-run observation: silently ignored */ }
|
|
26
54
|
else if (event.type === "evidence.recorded" && state.run?.runId === event.runId)
|
|
27
55
|
state.evidence.push(event.evidence);
|
|
56
|
+
else if (event.type === "acceptance.recorded" && state.run?.runId === event.runId)
|
|
57
|
+
state.acceptances = [...state.acceptances.filter(receipt => receipt.workItemId !== event.receipt.workItemId || receipt.workRevision !== event.receipt.workRevision), event.receipt];
|
|
28
58
|
else if (event.type === "integration.recorded" && state.run?.runId === event.runId)
|
|
29
59
|
state.integrations = [...state.integrations.filter(attempt => attempt.id !== event.attempt.id), event.attempt];
|
|
30
60
|
else if (event.type === "decision.recorded" && state.run?.runId === event.runId)
|
|
31
61
|
state.decisions.push(event.decision);
|
|
62
|
+
else if (event.type === "objective.amended" && state.run?.runId === event.runId) {
|
|
63
|
+
const prior = state.run.objective;
|
|
64
|
+
const idsFor = (by) => by === "check-spec" ? prior.checkSpecs?.map(spec => spec.id) ?? prior.verificationPlan : prior.criteria?.map(criterion => criterion.id) ?? [];
|
|
65
|
+
const amendedIdsFor = (by, candidate) => by === "check-spec" ? candidate.checkSpecs?.map(spec => spec.id) ?? candidate.verificationPlan : candidate.criteria?.map(criterion => criterion.id) ?? [];
|
|
66
|
+
const priorIds = new Set(idsFor(event.by));
|
|
67
|
+
const amendedIds = new Set(amendedIdsFor(event.by, event.objective));
|
|
68
|
+
const actualAdded = [...amendedIds].filter(id => !priorIds.has(id)).sort();
|
|
69
|
+
const actualRemoved = [...priorIds].filter(id => !amendedIds.has(id)).sort();
|
|
70
|
+
if (event.added.length !== actualAdded.length || event.added.some((id, index) => id !== actualAdded[index]))
|
|
71
|
+
throw new ContractError("objective.amended added delta does not match the new objective", { claimed: event.added, actual: actualAdded });
|
|
72
|
+
if (event.removed.length !== actualRemoved.length || event.removed.some((id, index) => id !== actualRemoved[index]))
|
|
73
|
+
throw new ContractError("objective.amended removed delta does not match the prior objective", { claimed: event.removed, actual: actualRemoved });
|
|
74
|
+
state.run = { ...state.run, objective: event.objective, objectiveHash: objectiveHash(event.objective), revision: state.run.revision + 1, updatedAt: entry.at };
|
|
75
|
+
}
|
|
32
76
|
else if (event.type === "run.cancelled" && state.run?.runId === event.runId)
|
|
33
77
|
state.run = { ...state.run, phase: "cancelled", cancellation: { requested: true, reason: event.reason }, revision: state.run.revision + 1, updatedAt: entry.at };
|
|
34
78
|
else if (event.type === "run.reconciled" && state.run?.runId === event.runId)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recovery.js","sourceRoot":"","sources":["../../src/core/recovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"recovery.js","sourceRoot":"","sources":["../../src/core/recovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { EvidenceRecord, JournalEvent, ObjectiveContract, RouteClass, WorkflowPhase, WorkflowRun, WorkItem } from "./types.js";
|
|
1
|
+
import type { CheckSpec, EvidenceRecord, JournalEvent, ObjectiveContract, RouteClass, WorkflowPhase, WorkflowRun, WorkItem } from "./types.js";
|
|
2
|
+
export declare function freezeObjective(objective: ObjectiveContract): ObjectiveContract;
|
|
2
3
|
export declare function createRun(projectId: string, objective: ObjectiveContract, mode?: RouteClass, nativeSessionId?: string): WorkflowRun;
|
|
3
4
|
export declare function addWorkItem(run: WorkflowRun, input: Omit<WorkItem, "id" | "revision" | "lifecycle" | "attempt">): WorkflowRun;
|
|
4
5
|
export declare function transition(run: WorkflowRun, to: WorkflowPhase, reason: string): {
|
|
@@ -6,9 +7,9 @@ export declare function transition(run: WorkflowRun, to: WorkflowPhase, reason:
|
|
|
6
7
|
event: JournalEvent;
|
|
7
8
|
};
|
|
8
9
|
export declare function acceptWorkItem(run: WorkflowRun, workItemId: string): WorkflowRun;
|
|
9
|
-
export declare function canComplete(run: WorkflowRun, requiredChecks: string[], evidence: Pick<EvidenceRecord, "checkId" | "result" | "stale" | "targetDigest">[], ownedWork: WorkItem[], targetDigest: string): boolean;
|
|
10
10
|
export declare function completeRun(run: WorkflowRun, requiredChecks: string[], evidence: EvidenceRecord[], targetDigest: string): {
|
|
11
11
|
run: WorkflowRun;
|
|
12
12
|
event: JournalEvent;
|
|
13
13
|
};
|
|
14
|
+
export declare function canComplete(run: WorkflowRun, requiredChecks: Array<string | CheckSpec>, evidence: Pick<EvidenceRecord, "checkId" | "result" | "stale" | "targetDigest">[], ownedWork: WorkItem[], targetDigest: string): boolean;
|
|
14
15
|
//# sourceMappingURL=transitions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transitions.d.ts","sourceRoot":"","sources":["../../src/core/transitions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transitions.d.ts","sourceRoot":"","sources":["../../src/core/transitions.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAiB,cAAc,EAAE,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAiB9J,wBAAgB,eAAe,CAAC,SAAS,EAAE,iBAAiB,GAAG,iBAAiB,CAW/E;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,WAAW,CAGnI;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC,GAAG,WAAW,CAK7H;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,CAKzH;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,CAMhF;AACD,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,CAenK;AACD,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAGhO"}
|
package/dist/core/transitions.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { validateDependencies } from "../services/readiness.js";
|
|
1
2
|
import { createHash, randomUUID } from "node:crypto";
|
|
2
3
|
import { InvalidTransitionError, ContractError } from "./errors.js";
|
|
3
4
|
import { classifyRoute, objectiveHash } from "./policies.js";
|
|
4
|
-
import { evaluateAcceptance } from "./acceptance.js";
|
|
5
|
+
import { evaluateAcceptance, freezeCheckSpec } from "./acceptance.js";
|
|
5
6
|
const now = () => new Date().toISOString();
|
|
6
7
|
const phaseTransitions = {
|
|
7
8
|
created: ["orienting", "planning", "researching", "executing", "blocked", "cancelled"],
|
|
@@ -16,15 +17,28 @@ const phaseTransitions = {
|
|
|
16
17
|
complete: [], blocked: ["orienting", "planning", "executing", "verifying", "cancelled"],
|
|
17
18
|
failed: ["orienting", "planning", "executing", "cancelled"], cancelled: [],
|
|
18
19
|
};
|
|
19
|
-
export function
|
|
20
|
+
export function freezeObjective(objective) {
|
|
20
21
|
if (!objective.objective.trim() || objective.acceptanceCriteria.length === 0)
|
|
21
22
|
throw new ContractError("Objective and acceptance criteria are required");
|
|
22
|
-
|
|
23
|
+
const criteria = objective.criteria
|
|
24
|
+
? objective.criteria.map((criterion, index) => ({ ...criterion, id: criterion.id || `criterion:${index + 1}`, revision: criterion.revision || 1, requiredEvidenceClasses: [...criterion.requiredEvidenceClasses] }))
|
|
25
|
+
: objective.acceptanceCriteria.map((description, index) => ({ id: `criterion:${index + 1}`, revision: 1, description, kind: "operator-judgment", requiredEvidenceClasses: [], applicable: true }));
|
|
26
|
+
return {
|
|
27
|
+
...objective,
|
|
28
|
+
nonGoals: [...objective.nonGoals], constraints: [...objective.constraints], acceptanceCriteria: [...objective.acceptanceCriteria], verificationPlan: [...objective.verificationPlan], stopConditions: [...objective.stopConditions], userRestrictions: [...objective.userRestrictions],
|
|
29
|
+
criteria,
|
|
30
|
+
checkSpecs: objective.checkSpecs?.map(spec => freezeCheckSpec({ ...spec, argumentTemplate: [...spec.argumentTemplate], inputDigests: { ...spec.inputDigests }, limits: { ...spec.limits } })),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export function createRun(projectId, objective, mode, nativeSessionId) {
|
|
34
|
+
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() };
|
|
23
36
|
}
|
|
24
37
|
export function addWorkItem(run, input) {
|
|
25
38
|
if (run.workItems.some(item => item.title === input.title))
|
|
26
39
|
throw new ContractError(`Duplicate work item: ${input.title}`);
|
|
27
40
|
const item = { ...input, id: `work_${createHash("sha256").update(`${run.runId}:${input.title}`).digest("hex").slice(0, 12)}`, revision: 0, lifecycle: "pending", attempt: 0 };
|
|
41
|
+
validateDependencies([...run.workItems, item]);
|
|
28
42
|
return { ...run, revision: run.revision + 1, workItems: [...run.workItems, item], updatedAt: now() };
|
|
29
43
|
}
|
|
30
44
|
export function transition(run, to, reason) {
|
|
@@ -44,16 +58,28 @@ export function acceptWorkItem(run, workItemId) {
|
|
|
44
58
|
const accepted = { ...item, lifecycle: "accepted", revision: item.revision + 1 };
|
|
45
59
|
return { ...run, revision: run.revision + 1, workItems: run.workItems.map(candidate => candidate.id === item.id ? accepted : candidate), updatedAt: now() };
|
|
46
60
|
}
|
|
47
|
-
export function canComplete(run, requiredChecks, evidence, ownedWork, targetDigest) {
|
|
48
|
-
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) }));
|
|
49
|
-
return evaluateAcceptance({ revision: run.revision, run, dispatches: [], observations: [], evidence: normalized, integrations: [], decisions: [], lastSequence: 0 }, { requiredChecks, targetDigest, ownedWork }).eligible && run.phase !== "failed";
|
|
50
|
-
}
|
|
51
61
|
export function completeRun(run, requiredChecks, evidence, targetDigest) {
|
|
52
|
-
|
|
62
|
+
// A002: completion derives mandatory checks from the admitted objective
|
|
63
|
+
// contract. The caller-supplied requiredChecks are advisory only; the
|
|
64
|
+
// admitted contract cannot be bypassed. Weakening requires an explicit
|
|
65
|
+
// objective.amended event.
|
|
66
|
+
const admittedChecks = run.objective.checkSpecs?.length ? run.objective.checkSpecs : run.objective.verificationPlan;
|
|
67
|
+
if (admittedChecks.length === 0)
|
|
68
|
+
throw new ContractError("Completion requires a nonempty admitted verification plan");
|
|
69
|
+
// A002: reject when the caller attempts to weaken the admitted contract by
|
|
70
|
+
// supplying a strict subset that omits any admitted check.
|
|
71
|
+
const admittedIds = new Set(admittedChecks.map(check => typeof check === "string" ? check : check.id));
|
|
72
|
+
if (requiredChecks.some(check => !admittedIds.has(check)))
|
|
73
|
+
throw new ContractError("requiredChecks must be a subset of the admitted verification plan", { requiredChecks, admittedChecks: [...admittedIds] });
|
|
74
|
+
if (!canComplete(run, admittedChecks, evidence, run.workItems, targetDigest))
|
|
53
75
|
throw new ContractError("Completion requires fresh checks for the current tree and no outstanding work");
|
|
54
76
|
if (!["executing", "verifying", "reviewing"].includes(run.phase))
|
|
55
77
|
throw new InvalidTransitionError(run.phase, "complete");
|
|
56
78
|
const next = { ...run, phase: "complete", revision: run.revision + 1, updatedAt: now() };
|
|
57
79
|
return { run: next, event: { type: "run.transitioned", runId: run.runId, from: run.phase, to: "complete", reason: "completion checks satisfied" } };
|
|
58
80
|
}
|
|
81
|
+
export function canComplete(run, requiredChecks, evidence, ownedWork, targetDigest) {
|
|
82
|
+
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 }).eligible && run.phase !== "failed";
|
|
84
|
+
}
|
|
59
85
|
//# sourceMappingURL=transitions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transitions.js","sourceRoot":"","sources":["../../src/core/transitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;
|
|
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
|
@@ -103,9 +103,11 @@ export interface DispatchIntent {
|
|
|
103
103
|
routeClass: RouteClass;
|
|
104
104
|
routeIntent: RouteIntent;
|
|
105
105
|
modelRole: string;
|
|
106
|
-
status: "admitted" | "acknowledged" | "settled" | "unknown-outcome" | "rejected";
|
|
106
|
+
status: "admitted" | "acknowledged" | "settled" | "failed" | "cancelled" | "unknown-outcome" | "rejected";
|
|
107
107
|
nativeCallId?: string;
|
|
108
108
|
nativeChildId?: string;
|
|
109
|
+
candidateId?: string;
|
|
110
|
+
candidateTree?: string;
|
|
109
111
|
}
|
|
110
112
|
export interface WorkerObservation {
|
|
111
113
|
dispatchId: string;
|
|
@@ -164,6 +166,17 @@ export interface IntegrationAttempt {
|
|
|
164
166
|
baseTree?: string;
|
|
165
167
|
candidateTree?: string;
|
|
166
168
|
}
|
|
169
|
+
export interface AcceptanceReceipt {
|
|
170
|
+
workItemId: string;
|
|
171
|
+
workRevision: number;
|
|
172
|
+
dispatchId: string;
|
|
173
|
+
candidateId: string;
|
|
174
|
+
candidateTree: string;
|
|
175
|
+
evidenceIds: string[];
|
|
176
|
+
checkSpecHashes: string[];
|
|
177
|
+
policyRevision: string;
|
|
178
|
+
targetDigest: string;
|
|
179
|
+
}
|
|
167
180
|
export interface DecisionRecord {
|
|
168
181
|
id: string;
|
|
169
182
|
runId: string;
|
|
@@ -217,6 +230,23 @@ export type JournalEvent = {
|
|
|
217
230
|
revision: number;
|
|
218
231
|
phase: WorkflowPhase;
|
|
219
232
|
reason: string;
|
|
233
|
+
} | {
|
|
234
|
+
type: "objective.amended";
|
|
235
|
+
runId: string;
|
|
236
|
+
objective: ObjectiveContract;
|
|
237
|
+
by: "criterion" | "check-spec";
|
|
238
|
+
added: string[];
|
|
239
|
+
removed: string[];
|
|
240
|
+
reason: string;
|
|
241
|
+
} | {
|
|
242
|
+
type: "dispatch.state_changed";
|
|
243
|
+
runId: string;
|
|
244
|
+
dispatch: DispatchIntent;
|
|
245
|
+
observed: WorkerObservation;
|
|
246
|
+
} | {
|
|
247
|
+
type: "acceptance.recorded";
|
|
248
|
+
runId: string;
|
|
249
|
+
receipt: AcceptanceReceipt;
|
|
220
250
|
};
|
|
221
251
|
export interface JournalEntry {
|
|
222
252
|
sequence: number;
|
|
@@ -234,6 +264,7 @@ export interface StateSnapshot {
|
|
|
234
264
|
observations: WorkerObservation[];
|
|
235
265
|
evidence: EvidenceRecord[];
|
|
236
266
|
integrations: IntegrationAttempt[];
|
|
267
|
+
acceptances: AcceptanceReceipt[];
|
|
237
268
|
decisions: DecisionRecord[];
|
|
238
269
|
lastSequence: number;
|
|
239
270
|
}
|
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":"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
|
|
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
|
@@ -26,21 +26,32 @@ interface ZodSchema<T> {
|
|
|
26
26
|
interface OmpZod {
|
|
27
27
|
string(): ZodSchema<string>;
|
|
28
28
|
boolean(): ZodSchema<boolean>;
|
|
29
|
+
number(): ZodSchema<number>;
|
|
29
30
|
array<T>(item: ZodSchema<T>): ZodSchema<T[]>;
|
|
30
31
|
enum<T extends readonly [string, ...string[]]>(values: T): ZodSchema<T[number]>;
|
|
32
|
+
record<T>(key: ZodSchema<string>, value: ZodSchema<T>): ZodSchema<Record<string, T>>;
|
|
31
33
|
union<T extends readonly [ZodSchema<unknown>, ZodSchema<unknown>, ...ZodSchema<unknown>[]]>(schemas: T): ZodSchema<unknown>;
|
|
32
34
|
object<T extends Record<string, ZodSchema<unknown>>>(shape: T): ZodSchema<{
|
|
33
35
|
[Key in keyof T]: T[Key];
|
|
34
36
|
}>;
|
|
35
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Mirrors `SendUserMessageOptions` from the qualified OMP public contract
|
|
40
|
+
* (`@oh-my-pi/pi-coding-agent` 18.2.4–18.2.7): `deliverAs` selects queue
|
|
41
|
+
* behavior, `attribution` (`MessageAttribution` in `@oh-my-pi/pi-ai`) marks
|
|
42
|
+
* who initiated the message. Defaults record `"user"`; `"agent"` marks
|
|
43
|
+
* extension-generated guidance as agent-authored.
|
|
44
|
+
*/
|
|
45
|
+
interface OmpSendUserMessageOptions {
|
|
46
|
+
deliverAs?: "steer" | "followUp" | "aside";
|
|
47
|
+
attribution?: "user" | "agent";
|
|
48
|
+
}
|
|
36
49
|
interface OmpPi {
|
|
37
50
|
zod: OmpZod;
|
|
38
51
|
pi?: {
|
|
39
52
|
settings?: NativeSettings;
|
|
40
53
|
};
|
|
41
|
-
sendUserMessage?(content: string, options?:
|
|
42
|
-
deliverAs?: "steer" | "followUp" | "aside";
|
|
43
|
-
}): void;
|
|
54
|
+
sendUserMessage?(content: string, options?: OmpSendUserMessageOptions): void;
|
|
44
55
|
registerTool(definition: Record<string, unknown>): void;
|
|
45
56
|
registerCommand(name: string, definition: {
|
|
46
57
|
description: string;
|
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
|
@@ -10,6 +10,8 @@ import { result } from "./tools/result.js";
|
|
|
10
10
|
import { runVerification } from "./tools/verify.js";
|
|
11
11
|
import { runWorkflow } from "./tools/workflow.js";
|
|
12
12
|
import { analyzeRecipe } from "./services/recipes.js";
|
|
13
|
+
import { runCandidateCheck } from "./services/candidate-verify.js";
|
|
14
|
+
import { freezeCheckSpec } from "./core/acceptance.js";
|
|
13
15
|
import { inspectEvidence } from "./services/inspector.js";
|
|
14
16
|
import { projectWorkflow } from "./services/projection.js";
|
|
15
17
|
import { capabilityReport } from "./omp/capabilities.js";
|
|
@@ -18,7 +20,6 @@ import { Journal } from "./storage/journal.js";
|
|
|
18
20
|
import { nativeSessionReference } from "./omp/context.js";
|
|
19
21
|
import { findOnPath } from "./omp/tmux.js";
|
|
20
22
|
import { bindSession } from "./omp/lifecycle.js";
|
|
21
|
-
import { AUTONOMOUS_SETTINGS } from "./omp/autonomous-settings.js";
|
|
22
23
|
import { BIZAR_MODEL_ROLE_AGENT_PROMPT, BIZAR_MODEL_ROLE_TOOL, BIZAR_MODEL_ROLES, BIZAR_MODEL_TAGS, buildAgentEvaluationRequest, clipOperatorNotice, commitRolePlan, diffCatalog, formatCatalogDelta, formatRoleAssignmentPlan, planBizarModelRoles, planFromRecommendations, recordOf, reviewRoleRecommendations, roleAssignmentRoute, snapshotCatalog, } from "./omp/model-role-assignment.js";
|
|
23
24
|
import { loadOmbSettings, recordCatalogObservation } from "./omp/omb-settings.js";
|
|
24
25
|
const objectiveSchema = (z) => z.object({
|
|
@@ -157,19 +158,6 @@ function ensureBizarModelRoles(pi) {
|
|
|
157
158
|
if (JSON.stringify(nextCycle) !== JSON.stringify(currentCycle))
|
|
158
159
|
settings.set("cycleOrder", nextCycle);
|
|
159
160
|
}
|
|
160
|
-
function ensureBizarAutonomousSettings(pi) {
|
|
161
|
-
const settings = pi.pi?.settings;
|
|
162
|
-
if (!settings?.get || !settings.set)
|
|
163
|
-
return [];
|
|
164
|
-
const changed = [];
|
|
165
|
-
for (const [key, value] of Object.entries(AUTONOMOUS_SETTINGS)) {
|
|
166
|
-
if (settings.get(key) !== undefined)
|
|
167
|
-
continue;
|
|
168
|
-
settings.set(key, value);
|
|
169
|
-
changed.push(key);
|
|
170
|
-
}
|
|
171
|
-
return changed;
|
|
172
|
-
}
|
|
173
161
|
function modelRoleHealth(pi, ctx) {
|
|
174
162
|
const settings = pi.pi?.settings;
|
|
175
163
|
if (!settings?.get)
|
|
@@ -221,10 +209,13 @@ async function runModelRoleCommand(pi, args, ctx) {
|
|
|
221
209
|
// evaluation task; the agent persists its decision through
|
|
222
210
|
// BIZAR_MODEL_ROLE_TOOL, while a host without agent messaging applies the
|
|
223
211
|
// deterministic plan directly.
|
|
212
|
+
const sendUserMessage = pi.sendUserMessage?.bind(pi);
|
|
224
213
|
const route = roleAssignmentRoute({
|
|
225
214
|
settings: pi.pi?.settings,
|
|
226
215
|
models: ctx.models?.list?.(),
|
|
227
|
-
sendUserMessage:
|
|
216
|
+
sendUserMessage: sendUserMessage
|
|
217
|
+
? (content, options) => sendUserMessage(content, { ...options, attribution: "agent" })
|
|
218
|
+
: undefined,
|
|
228
219
|
});
|
|
229
220
|
if (route.kind === "unsupported")
|
|
230
221
|
throw new ContractError("OMP model catalog and messaging APIs are unavailable; model-role assignment was not requested");
|
|
@@ -271,7 +262,21 @@ async function runModelRoleCommand(pi, args, ctx) {
|
|
|
271
262
|
].join("\n") + observationNote;
|
|
272
263
|
}
|
|
273
264
|
const runVerificationWithSignal = runVerification;
|
|
274
|
-
const MAIN_CONTEXT_GUIDANCE = "BizarHarness OMP is installed and 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. 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. The native OMP Advisor
|
|
265
|
+
const MAIN_CONTEXT_GUIDANCE = "BizarHarness OMP is installed and 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. 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. The native OMP Advisor reviews passively when the install preset enabled it; incorporate useful concerns without creating a second orchestration runtime. 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. Do not add full planning or delegation as ceremony; escalate when scope or risk grows and never downgrade after escalation. Inspect relevant code and tests, make the smallest safe change, run proportional verification, and report concrete evidence. Do not claim completion without fresh verification; surface only material blockers. Create and pursue a native goal only when the user explicitly requests a goal.";
|
|
266
|
+
function appendMainContextGuidance(systemPrompt) {
|
|
267
|
+
if (typeof systemPrompt === "string") {
|
|
268
|
+
return systemPrompt.includes(MAIN_CONTEXT_GUIDANCE)
|
|
269
|
+
? systemPrompt
|
|
270
|
+
: `${systemPrompt}\n\n${MAIN_CONTEXT_GUIDANCE}`;
|
|
271
|
+
}
|
|
272
|
+
if (Array.isArray(systemPrompt)) {
|
|
273
|
+
const prompts = systemPrompt.map(String);
|
|
274
|
+
return prompts.some(prompt => prompt.includes(MAIN_CONTEXT_GUIDANCE))
|
|
275
|
+
? prompts
|
|
276
|
+
: [...prompts, MAIN_CONTEXT_GUIDANCE];
|
|
277
|
+
}
|
|
278
|
+
return [MAIN_CONTEXT_GUIDANCE];
|
|
279
|
+
}
|
|
275
280
|
export default function bizarExtension(pi) {
|
|
276
281
|
pi.setLabel?.("Bizar Orchestrator");
|
|
277
282
|
let binding;
|
|
@@ -284,7 +289,6 @@ export default function bizarExtension(pi) {
|
|
|
284
289
|
binding = undefined;
|
|
285
290
|
try {
|
|
286
291
|
ensureBizarModelRoles(pi);
|
|
287
|
-
ensureBizarAutonomousSettings(pi);
|
|
288
292
|
}
|
|
289
293
|
catch (error) {
|
|
290
294
|
ctx.ui?.notify(`Bizar could not apply its OMP settings; continuing without the failed setting update. ${error instanceof Error ? error.message : String(error)}`, "warning");
|
|
@@ -292,14 +296,13 @@ export default function bizarExtension(pi) {
|
|
|
292
296
|
});
|
|
293
297
|
pi.on("session_before_switch", async () => { binding = undefined; });
|
|
294
298
|
pi.on("session_shutdown", async () => { binding = undefined; });
|
|
295
|
-
pi.on("before_agent_start", event => {
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
});
|
|
299
|
+
pi.on("before_agent_start", event => ({
|
|
300
|
+
systemPrompt: appendMainContextGuidance(paramsOf(event).systemPrompt),
|
|
301
|
+
}));
|
|
299
302
|
pi.registerTool({
|
|
300
303
|
name: "bizar_workflow", label: "Bizar Workflow", description: "Create, inspect, and advance a typed Bizar workflow; transitions are journaled and revision checked.",
|
|
301
304
|
parameters: pi.zod.object({
|
|
302
|
-
action: pi.zod.enum(["start", "status", "transition", "add-work", "accept-work", "complete", "cancel", "next"]),
|
|
305
|
+
action: pi.zod.enum(["start", "status", "transition", "add-work", "accept-work", "complete", "cancel", "next", "amend-objective"]),
|
|
303
306
|
objective: pi.zod.union([pi.zod.string(), objectiveSchema(pi.zod)]).optional(),
|
|
304
307
|
to: pi.zod.string().optional(),
|
|
305
308
|
reason: pi.zod.string().optional(),
|
|
@@ -307,6 +310,7 @@ export default function bizarExtension(pi) {
|
|
|
307
310
|
workItemId: pi.zod.string().optional(),
|
|
308
311
|
evidenceIds: pi.zod.array(pi.zod.string()).optional(),
|
|
309
312
|
requiredChecks: pi.zod.array(pi.zod.string()).optional(),
|
|
313
|
+
by: pi.zod.enum(["criterion", "check-spec"]).optional(),
|
|
310
314
|
}),
|
|
311
315
|
async execute(_id, raw, _signal, _onUpdate, ctx) {
|
|
312
316
|
try {
|
|
@@ -348,6 +352,28 @@ export default function bizarExtension(pi) {
|
|
|
348
352
|
}
|
|
349
353
|
},
|
|
350
354
|
});
|
|
355
|
+
pi.registerTool({
|
|
356
|
+
name: "bizar_candidate_verify", label: "Bizar Candidate Verify", description: "Materialize an exact candidate patch in a disposable workspace, run a frozen CheckSpec there, and record candidate-bound evidence.",
|
|
357
|
+
parameters: pi.zod.object({
|
|
358
|
+
checkId: pi.zod.string(),
|
|
359
|
+
patch: pi.zod.string(),
|
|
360
|
+
spec: pi.zod.object({
|
|
361
|
+
id: pi.zod.string(), revision: pi.zod.number(), runner: pi.zod.enum(["argv", "shell", "native"]), executable: pi.zod.string().optional(), argumentTemplate: pi.zod.array(pi.zod.string()), cwdRule: pi.zod.enum(["repository-root", "candidate-workspace", "explicit-registered"]), inputDigests: pi.zod.record(pi.zod.string(), pi.zod.string()), environmentPolicy: pi.zod.string(), limits: pi.zod.object({ timeoutMs: pi.zod.number(), outputBytes: pi.zod.number() }), expected: pi.zod.enum(["zero-exit", "structured-pass", "operator-review"]), outputPolicy: pi.zod.enum(["sanitized-tail", "artifact-reference", "none"]), evaluatorHash: pi.zod.string().optional(),
|
|
362
|
+
}),
|
|
363
|
+
cwd: pi.zod.string().optional(), attemptGeneration: pi.zod.number().optional(),
|
|
364
|
+
}),
|
|
365
|
+
async execute(_id, raw, signal, _onUpdate, ctx) {
|
|
366
|
+
try {
|
|
367
|
+
const p = paramsOf(raw);
|
|
368
|
+
const rawSpec = paramsOf(p.spec);
|
|
369
|
+
const spec = freezeCheckSpec({ id: String(rawSpec.id), revision: Number(rawSpec.revision), runner: rawSpec.runner, executable: rawSpec.executable ? String(rawSpec.executable) : undefined, argumentTemplate: Array.isArray(rawSpec.argumentTemplate) ? rawSpec.argumentTemplate.map(String) : [], cwdRule: rawSpec.cwdRule, inputDigests: paramsOf(rawSpec.inputDigests), environmentPolicy: String(rawSpec.environmentPolicy), limits: { timeoutMs: Number(paramsOf(rawSpec.limits).timeoutMs), outputBytes: Number(paramsOf(rawSpec.limits).outputBytes) }, expected: rawSpec.expected, outputPolicy: rawSpec.outputPolicy, evaluatorHash: rawSpec.evaluatorHash ? String(rawSpec.evaluatorHash) : undefined });
|
|
370
|
+
return result(await runCandidateCheck(currentBinding(ctx), { checkId: String(p.checkId), patch: String(p.patch), spec, cwd: p.cwd ? String(p.cwd) : undefined, signal, attemptGeneration: p.attemptGeneration === undefined ? undefined : Number(p.attemptGeneration) }));
|
|
371
|
+
}
|
|
372
|
+
catch (error) {
|
|
373
|
+
return failure(error);
|
|
374
|
+
}
|
|
375
|
+
},
|
|
376
|
+
});
|
|
351
377
|
pi.registerTool({
|
|
352
378
|
name: "bizar_integrate", label: "Bizar Integrate", description: "Validate scope and fresh evidence, then record a serialized integration admission. Auto-application is never implicit.",
|
|
353
379
|
parameters: pi.zod.object({
|
|
@@ -357,7 +383,7 @@ export default function bizarExtension(pi) {
|
|
|
357
383
|
evidenceIds: pi.zod.array(pi.zod.string()),
|
|
358
384
|
apply: pi.zod.boolean(),
|
|
359
385
|
}),
|
|
360
|
-
async execute(_id, raw,
|
|
386
|
+
async execute(_id, raw, signal, _onUpdate, ctx) {
|
|
361
387
|
try {
|
|
362
388
|
const active = currentBinding(ctx);
|
|
363
389
|
const p = paramsOf(raw);
|
|
@@ -387,6 +413,7 @@ export default function bizarExtension(pi) {
|
|
|
387
413
|
changedPaths: Array.isArray(p.changedPaths) ? p.changedPaths.map(String) : [],
|
|
388
414
|
evidenceIds: Array.isArray(p.evidenceIds) ? p.evidenceIds.map(String) : [],
|
|
389
415
|
apply,
|
|
416
|
+
signal,
|
|
390
417
|
}));
|
|
391
418
|
}
|
|
392
419
|
catch (error) {
|