@polderlabs/bizar-omp 0.2.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/LICENSE +21 -0
- package/README.md +45 -0
- package/agents/bizar-architect.md +10 -0
- package/agents/bizar-docs.md +10 -0
- package/agents/bizar-implementer.md +10 -0
- package/agents/bizar-planner.md +10 -0
- package/agents/bizar-researcher.md +10 -0
- package/agents/bizar-reviewer.md +10 -0
- package/agents/bizar-security-reviewer.md +10 -0
- package/agents/bizar-verifier.md +10 -0
- package/dist/cli/doctor.d.ts +36 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +15 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/install.d.ts +126 -0
- package/dist/cli/install.d.ts.map +1 -0
- package/dist/cli/install.js +148 -0
- package/dist/cli/install.js.map +1 -0
- package/dist/cli/main.d.ts +3 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/main.js +76 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/migrate.d.ts +19 -0
- package/dist/cli/migrate.d.ts.map +1 -0
- package/dist/cli/migrate.js +14 -0
- package/dist/cli/migrate.js.map +1 -0
- package/dist/cli/run.d.ts +3 -0
- package/dist/cli/run.d.ts.map +1 -0
- package/dist/cli/run.js +5 -0
- package/dist/cli/run.js.map +1 -0
- package/dist/core/errors.d.ts +21 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +30 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/evidence.d.ts +6 -0
- package/dist/core/evidence.d.ts.map +1 -0
- package/dist/core/evidence.js +31 -0
- package/dist/core/evidence.js.map +1 -0
- package/dist/core/policies.d.ts +10 -0
- package/dist/core/policies.d.ts.map +1 -0
- package/dist/core/policies.js +41 -0
- package/dist/core/policies.js.map +1 -0
- package/dist/core/recovery.d.ts +7 -0
- package/dist/core/recovery.d.ts.map +1 -0
- package/dist/core/recovery.js +56 -0
- package/dist/core/recovery.js.map +1 -0
- package/dist/core/transitions.d.ts +14 -0
- package/dist/core/transitions.d.ts.map +1 -0
- package/dist/core/transitions.js +59 -0
- package/dist/core/transitions.js.map +1 -0
- package/dist/core/types.d.ts +204 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +2 -0
- package/dist/core/types.js.map +1 -0
- package/dist/extension.d.ts +43 -0
- package/dist/extension.d.ts.map +1 -0
- package/dist/extension.js +199 -0
- package/dist/extension.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/omp/autonomous-settings.d.ts +9 -0
- package/dist/omp/autonomous-settings.d.ts.map +1 -0
- package/dist/omp/autonomous-settings.js +47 -0
- package/dist/omp/autonomous-settings.js.map +1 -0
- package/dist/omp/compatibility.d.ts +22 -0
- package/dist/omp/compatibility.d.ts.map +1 -0
- package/dist/omp/compatibility.js +4 -0
- package/dist/omp/compatibility.js.map +1 -0
- package/dist/omp/completion.d.ts +8 -0
- package/dist/omp/completion.d.ts.map +1 -0
- package/dist/omp/completion.js +14 -0
- package/dist/omp/completion.js.map +1 -0
- package/dist/omp/config.d.ts +11 -0
- package/dist/omp/config.d.ts.map +1 -0
- package/dist/omp/config.js +13 -0
- package/dist/omp/config.js.map +1 -0
- package/dist/omp/context.d.ts +16 -0
- package/dist/omp/context.d.ts.map +1 -0
- package/dist/omp/context.js +3 -0
- package/dist/omp/context.js.map +1 -0
- package/dist/omp/dispatch-admission.d.ts +3 -0
- package/dist/omp/dispatch-admission.d.ts.map +1 -0
- package/dist/omp/dispatch-admission.js +12 -0
- package/dist/omp/dispatch-admission.js.map +1 -0
- package/dist/omp/integration-recovery.d.ts +11 -0
- package/dist/omp/integration-recovery.d.ts.map +1 -0
- package/dist/omp/integration-recovery.js +18 -0
- package/dist/omp/integration-recovery.js.map +1 -0
- package/dist/omp/isolation-policy.d.ts +15 -0
- package/dist/omp/isolation-policy.d.ts.map +1 -0
- package/dist/omp/isolation-policy.js +9 -0
- package/dist/omp/isolation-policy.js.map +1 -0
- package/dist/omp/lifecycle.d.ts +15 -0
- package/dist/omp/lifecycle.d.ts.map +1 -0
- package/dist/omp/lifecycle.js +14 -0
- package/dist/omp/lifecycle.js.map +1 -0
- package/dist/omp/memory.d.ts +17 -0
- package/dist/omp/memory.d.ts.map +1 -0
- package/dist/omp/memory.js +4 -0
- package/dist/omp/memory.js.map +1 -0
- package/dist/omp/model-roles.d.ts +10 -0
- package/dist/omp/model-roles.d.ts.map +1 -0
- package/dist/omp/model-roles.js +5 -0
- package/dist/omp/model-roles.js.map +1 -0
- package/dist/omp/result-reconciliation.d.ts +3 -0
- package/dist/omp/result-reconciliation.d.ts.map +1 -0
- package/dist/omp/result-reconciliation.js +9 -0
- package/dist/omp/result-reconciliation.js.map +1 -0
- package/dist/omp/rpc.d.ts +62 -0
- package/dist/omp/rpc.d.ts.map +1 -0
- package/dist/omp/rpc.js +4 -0
- package/dist/omp/rpc.js.map +1 -0
- package/dist/storage/journal.d.ts +13 -0
- package/dist/storage/journal.d.ts.map +1 -0
- package/dist/storage/journal.js +72 -0
- package/dist/storage/journal.js.map +1 -0
- package/dist/storage/migrations.d.ts +9 -0
- package/dist/storage/migrations.d.ts.map +1 -0
- package/dist/storage/migrations.js +38 -0
- package/dist/storage/migrations.js.map +1 -0
- package/dist/storage/repository-identity.d.ts +12 -0
- package/dist/storage/repository-identity.d.ts.map +1 -0
- package/dist/storage/repository-identity.js +67 -0
- package/dist/storage/repository-identity.js.map +1 -0
- package/dist/tools/evidence.d.ts +9 -0
- package/dist/tools/evidence.d.ts.map +1 -0
- package/dist/tools/evidence.js +9 -0
- package/dist/tools/evidence.js.map +1 -0
- package/dist/tools/integrate.d.ts +13 -0
- package/dist/tools/integrate.d.ts.map +1 -0
- package/dist/tools/integrate.js +106 -0
- package/dist/tools/integrate.js.map +1 -0
- package/dist/tools/result.d.ts +10 -0
- package/dist/tools/result.d.ts.map +1 -0
- package/dist/tools/result.js +2 -0
- package/dist/tools/result.js.map +1 -0
- package/dist/tools/verify.d.ts +14 -0
- package/dist/tools/verify.d.ts.map +1 -0
- package/dist/tools/verify.js +37 -0
- package/dist/tools/verify.js.map +1 -0
- package/dist/tools/workflow.d.ts +9 -0
- package/dist/tools/workflow.d.ts.map +1 -0
- package/dist/tools/workflow.js +65 -0
- package/dist/tools/workflow.js.map +1 -0
- package/dist/workflows/direct.d.ts +10 -0
- package/dist/workflows/direct.d.ts.map +1 -0
- package/dist/workflows/direct.js +2 -0
- package/dist/workflows/direct.js.map +1 -0
- package/dist/workflows/implement.d.ts +3 -0
- package/dist/workflows/implement.d.ts.map +1 -0
- package/dist/workflows/implement.js +4 -0
- package/dist/workflows/implement.js.map +1 -0
- package/dist/workflows/plan.d.ts +18 -0
- package/dist/workflows/plan.d.ts.map +1 -0
- package/dist/workflows/plan.js +6 -0
- package/dist/workflows/plan.js.map +1 -0
- package/dist/workflows/research.d.ts +16 -0
- package/dist/workflows/research.d.ts.map +1 -0
- package/dist/workflows/research.js +2 -0
- package/dist/workflows/research.js.map +1 -0
- package/dist/workflows/review.d.ts +16 -0
- package/dist/workflows/review.d.ts.map +1 -0
- package/dist/workflows/review.js +2 -0
- package/dist/workflows/review.js.map +1 -0
- package/dist/workflows/verify.d.ts +10 -0
- package/dist/workflows/verify.d.ts.map +1 -0
- package/dist/workflows/verify.js +2 -0
- package/dist/workflows/verify.js.map +1 -0
- package/docs/compatibility/baseline.json +8 -0
- package/docs/compatibility/lifecycle-observation.md +5 -0
- package/docs/compatibility/phase-0-report.md +5 -0
- package/docs/compatibility/recovery-report.md +3 -0
- package/docs/compatibility/supported-surfaces.json +7 -0
- package/docs/decisions/native-api-boundary.md +5 -0
- package/docs/evaluations/baseline.md +3 -0
- package/docs/migration/agent-disposition.json +6 -0
- package/docs/migration/final-disposition.json +9 -0
- package/docs/migration/legacy-inventory.json +16 -0
- package/docs/releases/0.2.0.md +9 -0
- package/docs/releases/beta-acceptance.md +3 -0
- package/docs/releases/native-stable.md +3 -0
- package/docs/releases/npm-publishing.md +22 -0
- package/docs/releases/rollback.md +3 -0
- package/docs/releases/support-matrix.md +11 -0
- package/docs/security/qualification.md +3 -0
- package/docs/security/threat-model.md +5 -0
- package/optional/openkan/index.ts +3 -0
- package/package.json +59 -0
- package/prompts/bizar-system.md +3 -0
- package/rules/bizar-core.md +7 -0
- package/rules/bizar-native-omp.md +6 -0
- package/schemas/evidence-record.schema.json +16 -0
- package/schemas/workflow-run.schema.json +16 -0
- package/skills/bizar-architecture/SKILL.md +6 -0
- package/skills/bizar-planning/SKILL.md +6 -0
- package/skills/bizar-research/SKILL.md +6 -0
- package/skills/bizar-review/SKILL.md +6 -0
- package/skills/bizar-security/SKILL.md +6 -0
- package/skills/bizar-testing/SKILL.md +6 -0
- package/skills/bizar-workflow/SKILL.md +6 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
export function migrationReport(source, apply = false) {
|
|
4
|
+
const items = [];
|
|
5
|
+
const add = (relative, disposition, reason) => { if (existsSync(join(source, relative)))
|
|
6
|
+
items.push({ path: relative, disposition, reason }); };
|
|
7
|
+
add("config/claude/agents", "port", "Roles are re-authored as native OMP agent definitions");
|
|
8
|
+
add("config/skills", "port", "Markdown skill content is selectively re-authored, never mirrored as executable host plumbing");
|
|
9
|
+
add("config/claude/hooks", "retire", "OMP lifecycle events replace Claude hook dispatch");
|
|
10
|
+
add("config/workflows", "native-replacement", "Typed reducers and native task admission replace host-specific workflow scripts");
|
|
11
|
+
add("packages/sdk/src", "retire", "The new package has no second SDK/MCP runtime");
|
|
12
|
+
return { schemaVersion: 1, source, apply, destructive: false, items, summary: { discovered: items.length, applied: 0, preserved: true }, note: apply ? "Apply is intentionally a no-op until each item has an explicit non-destructive migration handler." : "Dry-run only; no source or user state was changed." };
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=migrate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/cli/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAe,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,KAAK,GAAG,KAAK;IAC3D,MAAM,KAAK,GAAoB,EAAE,CAAC;IAClC,MAAM,GAAG,GAAG,CAAC,QAAgB,EAAE,WAAyC,EAAE,MAAc,EAAE,EAAE,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9L,GAAG,CAAC,sBAAsB,EAAE,MAAM,EAAE,uDAAuD,CAAC,CAAC;IAAC,GAAG,CAAC,eAAe,EAAE,MAAM,EAAE,+FAA+F,CAAC,CAAC;IAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,EAAE,mDAAmD,CAAC,CAAC;IAAC,GAAG,CAAC,kBAAkB,EAAE,oBAAoB,EAAE,iFAAiF,CAAC,CAAC;IAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,EAAE,+CAA+C,CAAC,CAAC;IAC7gB,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,mGAAmG,CAAC,CAAC,CAAC,oDAAoD,EAAE,CAAC;AACtT,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,wBAAgB,QAAQ,CAAC,SAAS,EAAE,iBAAiB,EAAE,GAAG,SAAgB,0CAAkK"}
|
package/dist/cli/run.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { repositoryIdentity, statePath } from "../storage/repository-identity.js";
|
|
2
|
+
import { Journal } from "../storage/journal.js";
|
|
3
|
+
import { startObjective, bindSession } from "../omp/lifecycle.js";
|
|
4
|
+
export function startRun(objective, cwd = process.cwd()) { const identity = repositoryIdentity(cwd); const binding = bindSession(new Journal(statePath(identity)), { cwd }); return startObjective(binding, objective); }
|
|
5
|
+
//# sourceMappingURL=run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElE,MAAM,UAAU,QAAQ,CAAC,SAA4B,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare class BizarError extends Error {
|
|
2
|
+
readonly code: string;
|
|
3
|
+
readonly details: Record<string, unknown>;
|
|
4
|
+
constructor(code: string, message: string, details?: Record<string, unknown>);
|
|
5
|
+
}
|
|
6
|
+
export declare class InvalidTransitionError extends BizarError {
|
|
7
|
+
constructor(from: string, event: string);
|
|
8
|
+
}
|
|
9
|
+
export declare class StaleEvidenceError extends BizarError {
|
|
10
|
+
constructor(evidenceId: string, reason: string);
|
|
11
|
+
}
|
|
12
|
+
export declare class OwnershipError extends BizarError {
|
|
13
|
+
constructor(message: string, details?: Record<string, unknown>);
|
|
14
|
+
}
|
|
15
|
+
export declare class ContractError extends BizarError {
|
|
16
|
+
constructor(message: string, details?: Record<string, unknown>);
|
|
17
|
+
}
|
|
18
|
+
export declare class UnknownOutcomeError extends BizarError {
|
|
19
|
+
constructor(id: string);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAW,SAAQ,KAAK;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC9B,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAMjF;AAED,qBAAa,sBAAuB,SAAQ,UAAU;gBACxC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;CAGxC;AAED,qBAAa,kBAAmB,SAAQ,UAAU;gBACpC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAG/C;AAED,qBAAa,cAAe,SAAQ,UAAU;gBAChC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CACnE;AAED,qBAAa,aAAc,SAAQ,UAAU;gBAC/B,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CACnE;AAED,qBAAa,mBAAoB,SAAQ,UAAU;gBACrC,EAAE,EAAE,MAAM;CACvB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export class BizarError extends Error {
|
|
2
|
+
code;
|
|
3
|
+
details;
|
|
4
|
+
constructor(code, message, details = {}) {
|
|
5
|
+
super(message);
|
|
6
|
+
this.name = "BizarError";
|
|
7
|
+
this.code = code;
|
|
8
|
+
this.details = details;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export class InvalidTransitionError extends BizarError {
|
|
12
|
+
constructor(from, event) {
|
|
13
|
+
super("INVALID_TRANSITION", `Cannot apply ${event} while run is ${from}`, { from, event });
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export class StaleEvidenceError extends BizarError {
|
|
17
|
+
constructor(evidenceId, reason) {
|
|
18
|
+
super("STALE_EVIDENCE", `Evidence ${evidenceId} is stale: ${reason}`, { evidenceId, reason });
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export class OwnershipError extends BizarError {
|
|
22
|
+
constructor(message, details = {}) { super("OWNERSHIP", message, details); }
|
|
23
|
+
}
|
|
24
|
+
export class ContractError extends BizarError {
|
|
25
|
+
constructor(message, details = {}) { super("CONTRACT", message, details); }
|
|
26
|
+
}
|
|
27
|
+
export class UnknownOutcomeError extends BizarError {
|
|
28
|
+
constructor(id) { super("UNKNOWN_OUTCOME", `Effect ${id} has an unknown outcome`, { id }); }
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,UAAW,SAAQ,KAAK;IAC1B,IAAI,CAAS;IACb,OAAO,CAA0B;IAC1C,YAAY,IAAY,EAAE,OAAe,EAAE,UAAmC,EAAE;QAC9E,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,UAAU;IACpD,YAAY,IAAY,EAAE,KAAa;QACrC,KAAK,CAAC,oBAAoB,EAAE,gBAAgB,KAAK,iBAAiB,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7F,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,UAAU;IAChD,YAAY,UAAkB,EAAE,MAAc;QAC5C,KAAK,CAAC,gBAAgB,EAAE,YAAY,UAAU,cAAc,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IAChG,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,UAAU;IAC5C,YAAY,OAAe,EAAE,UAAmC,EAAE,IAAI,KAAK,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;CAC9G;AAED,MAAM,OAAO,aAAc,SAAQ,UAAU;IAC3C,YAAY,OAAe,EAAE,UAAmC,EAAE,IAAI,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;CAC7G;AAED,MAAM,OAAO,mBAAoB,SAAQ,UAAU;IACjD,YAAY,EAAU,IAAI,KAAK,CAAC,iBAAiB,EAAE,UAAU,EAAE,yBAAyB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;CACrG"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { EvidenceRecord } from "./types.js";
|
|
2
|
+
export declare const digest: (value: string | Uint8Array) => string;
|
|
3
|
+
export declare function createEvidence(input: Omit<EvidenceRecord, "recordedAt" | "stale">): EvidenceRecord;
|
|
4
|
+
export declare function invalidateEvidence(records: EvidenceRecord[], targetDigest: string, changedInputs?: string[]): EvidenceRecord[];
|
|
5
|
+
export declare function requireFreshEvidence(records: EvidenceRecord[], ids: string[], targetDigest: string): EvidenceRecord[];
|
|
6
|
+
//# sourceMappingURL=evidence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../src/core/evidence.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,eAAO,MAAM,MAAM,GAAI,OAAO,MAAM,GAAG,UAAU,WAAqD,CAAC;AAEvG,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,cAAc,CAGlG;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,GAAE,MAAM,EAAO,GAAG,cAAc,EAAE,CAOlI;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,cAAc,EAAE,CAQrH"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { ContractError, StaleEvidenceError } from "./errors.js";
|
|
3
|
+
export const digest = (value) => createHash("sha256").update(value).digest("hex");
|
|
4
|
+
export function createEvidence(input) {
|
|
5
|
+
if (!input.id.trim())
|
|
6
|
+
throw new ContractError("Evidence ID is required");
|
|
7
|
+
return { ...input, recordedAt: new Date().toISOString(), stale: false };
|
|
8
|
+
}
|
|
9
|
+
export function invalidateEvidence(records, targetDigest, changedInputs = []) {
|
|
10
|
+
return records.map(record => {
|
|
11
|
+
if (record.targetDigest !== targetDigest)
|
|
12
|
+
return { ...record, stale: true, staleReason: `target changed from ${record.targetDigest} to ${targetDigest}` };
|
|
13
|
+
const changed = changedInputs.filter(key => Object.hasOwn(record.inputDigests, key));
|
|
14
|
+
if (changed.length > 0)
|
|
15
|
+
return { ...record, stale: true, staleReason: `input changed: ${changed.join(", ")}` };
|
|
16
|
+
return record;
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
export function requireFreshEvidence(records, ids, targetDigest) {
|
|
20
|
+
if (ids.length === 0)
|
|
21
|
+
throw new StaleEvidenceError("unknown", "required evidence is missing");
|
|
22
|
+
const found = ids.map(id => (id.trim() ? records.find(record => record.id === id) : undefined));
|
|
23
|
+
const missingIndex = found.findIndex(record => !record);
|
|
24
|
+
if (missingIndex !== -1)
|
|
25
|
+
throw new StaleEvidenceError(ids[missingIndex] || "unknown", "required evidence is missing");
|
|
26
|
+
const stale = found.find(record => record.stale || record.targetDigest !== targetDigest || record.result !== "passed");
|
|
27
|
+
if (stale)
|
|
28
|
+
throw new StaleEvidenceError(stale.id, "not a fresh passing record for the target tree");
|
|
29
|
+
return found;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=evidence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../src/core/evidence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGhE,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAA0B,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAEvG,MAAM,UAAU,cAAc,CAAC,KAAmD;IAChF,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,IAAI,aAAa,CAAC,yBAAyB,CAAC,CAAC;IACzE,OAAO,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAyB,EAAE,YAAoB,EAAE,gBAA0B,EAAE;IAC9G,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QAC1B,IAAI,MAAM,CAAC,YAAY,KAAK,YAAY;YAAE,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,uBAAuB,MAAM,CAAC,YAAY,OAAO,YAAY,EAAE,EAAE,CAAC;QAC1J,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC;QACrF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QAC/G,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAyB,EAAE,GAAa,EAAE,YAAoB;IACjG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,kBAAkB,CAAC,SAAS,EAAE,8BAA8B,CAAC,CAAC;IAC9F,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAChG,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IACxD,IAAI,YAAY,KAAK,CAAC,CAAC;QAAE,MAAM,IAAI,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,SAAS,EAAE,8BAA8B,CAAC,CAAC;IACtH,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAO,CAAC,KAAK,IAAI,MAAO,CAAC,YAAY,KAAK,YAAY,IAAI,MAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;IAC1H,IAAI,KAAK;QAAE,MAAM,IAAI,kBAAkB,CAAC,KAAM,CAAC,EAAE,EAAE,gDAAgD,CAAC,CAAC;IACrG,OAAO,KAAyB,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ObjectiveContract, RouteDecision, RouteTask, TrustPreset } from "./types.js";
|
|
2
|
+
export declare function classifyRoute(task: RouteTask): RouteDecision;
|
|
3
|
+
export declare function objectiveHash(objective: ObjectiveContract): string;
|
|
4
|
+
export declare function trustPolicy(preset: TrustPreset): {
|
|
5
|
+
allowShell: boolean;
|
|
6
|
+
managedIsolation: boolean;
|
|
7
|
+
allowEval: boolean;
|
|
8
|
+
preset: TrustPreset;
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=policies.d.ts.map
|
|
@@ -0,0 +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,MAAM,YAAY,CAAC;AAWxG,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,aAAa,CAmB5D;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,iBAAiB,GAAG,MAAM,CAElE;AAQD,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW;gBANE,OAAO;sBAAoB,OAAO;eAAa,OAAO;;EAMZ"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
const hash = (value) => createHash("sha256").update(value).digest("hex");
|
|
3
|
+
const hardSignals = [
|
|
4
|
+
[/\b(debug|diagnos|root cause|incident|regression)\b/i, "root-cause analysis", "debugging"],
|
|
5
|
+
[/\b(security|credential|secret|authorization|threat|trust boundary)\b/i, "security boundary", "security"],
|
|
6
|
+
[/\b(architect|migration|schema|distributed|concurrency|recovery)\b/i, "architecture or recovery", "architecture"],
|
|
7
|
+
[/\b(ui|ux|visual|accessibility|layout)\b/i, "interface design", "ui-design"],
|
|
8
|
+
];
|
|
9
|
+
export function classifyRoute(task) {
|
|
10
|
+
const roleWord = task.role?.match(/security|review|architect|debug|ui/i)?.[0]?.toLowerCase();
|
|
11
|
+
const roleIntent = roleWord === "debug" ? "debugging" : roleWord === "ui" ? "ui-design" : roleWord;
|
|
12
|
+
const explicit = task.intent ?? roleIntent;
|
|
13
|
+
const reasons = [];
|
|
14
|
+
let intent = explicit ?? "general";
|
|
15
|
+
if (explicit)
|
|
16
|
+
reasons.push(`explicit ${explicit} role/intent`);
|
|
17
|
+
for (const [pattern, reason, inferredIntent] of hardSignals) {
|
|
18
|
+
if (pattern.test(task.text) || pattern.test(task.role ?? "")) {
|
|
19
|
+
if (!explicit || ["general", "coding"].includes(explicit))
|
|
20
|
+
intent = inferredIntent;
|
|
21
|
+
reasons.push(reason);
|
|
22
|
+
break;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
const bounded = (task.files?.length ?? 1) <= 4 && task.text.length < 800 && !task.ambiguity;
|
|
26
|
+
const routeClass = reasons.length || intent !== "general" ? "hard" : bounded ? "common" : "default";
|
|
27
|
+
if (!reasons.length)
|
|
28
|
+
reasons.push(bounded ? "bounded task" : "coordination or lookup task");
|
|
29
|
+
const modelRole = routeClass === "hard" ? "bizar_hard" : routeClass === "common" ? "bizar_common" : "bizar_default";
|
|
30
|
+
return { routeClass, intent, modelRole, reason: `${routeClass}-${intent}-policy`, reasons, routingId: hash(JSON.stringify({ task, routeClass, intent })).slice(0, 20), fallbackChain: [] };
|
|
31
|
+
}
|
|
32
|
+
export function objectiveHash(objective) {
|
|
33
|
+
return hash(JSON.stringify(objective));
|
|
34
|
+
}
|
|
35
|
+
const presets = {
|
|
36
|
+
"trusted-development": { allowShell: true, managedIsolation: false, allowEval: true },
|
|
37
|
+
"restricted-managed": { allowShell: true, managedIsolation: true, allowEval: false },
|
|
38
|
+
"untrusted-repository": { allowShell: false, managedIsolation: true, allowEval: false },
|
|
39
|
+
};
|
|
40
|
+
export function trustPolicy(preset) { return { preset, ...presets[preset] }; }
|
|
41
|
+
//# sourceMappingURL=policies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policies.js","sourceRoot":"","sources":["../../src/core/policies.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { JournalEntry, StateSnapshot, WorkflowPhase } from "./types.js";
|
|
2
|
+
export declare function emptySnapshot(): StateSnapshot;
|
|
3
|
+
export declare function replay(entries: JournalEntry[]): StateSnapshot;
|
|
4
|
+
export declare function assertOwner(actual: string | undefined, expected: string): void;
|
|
5
|
+
export declare function assertIdempotent(existingKeys: Set<string>, key: string): void;
|
|
6
|
+
export declare function reconcilePhase(phase: WorkflowPhase, status: "settled" | "failed" | "unknown-outcome", hasFreshEvidence: boolean): WorkflowPhase;
|
|
7
|
+
//# sourceMappingURL=recovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recovery.d.ts","sourceRoot":"","sources":["../../src/core/recovery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE7E,wBAAgB,aAAa,IAAI,aAAa,CAA8H;AAE5K,wBAAgB,MAAM,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,aAAa,CAsB7D;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAE9E;AAED,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAE7E;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,iBAAiB,EAAE,gBAAgB,EAAE,OAAO,GAAG,aAAa,CAI/I"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { ContractError, OwnershipError } from "./errors.js";
|
|
2
|
+
export function emptySnapshot() { return { revision: 0, dispatches: [], observations: [], evidence: [], integrations: [], decisions: [], lastSequence: 0 }; }
|
|
3
|
+
export function replay(entries) {
|
|
4
|
+
const state = emptySnapshot();
|
|
5
|
+
for (const entry of entries.sort((a, b) => a.sequence - b.sequence)) {
|
|
6
|
+
if (entry.sequence <= state.lastSequence)
|
|
7
|
+
continue;
|
|
8
|
+
const event = entry.event;
|
|
9
|
+
if (event.type === "run.created") {
|
|
10
|
+
state.run = event.run;
|
|
11
|
+
state.dispatches = [];
|
|
12
|
+
state.observations = [];
|
|
13
|
+
state.evidence = [];
|
|
14
|
+
state.integrations = [];
|
|
15
|
+
state.decisions = [];
|
|
16
|
+
}
|
|
17
|
+
else if (event.type === "run.transitioned" && state.run?.runId === event.runId) {
|
|
18
|
+
state.run = { ...state.run, phase: event.to, revision: state.run.revision + 1, updatedAt: entry.at };
|
|
19
|
+
}
|
|
20
|
+
else if (event.type === "work-item.upserted" && state.run?.runId === event.runId)
|
|
21
|
+
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
|
+
else if (event.type === "dispatch.recorded" && state.run?.runId === event.runId)
|
|
23
|
+
state.dispatches.push(event.intent);
|
|
24
|
+
else if (event.type === "worker.observed" && state.dispatches.some(intent => intent.id === event.observation.dispatchId))
|
|
25
|
+
state.observations.push(event.observation);
|
|
26
|
+
else if (event.type === "evidence.recorded" && state.run?.runId === event.runId)
|
|
27
|
+
state.evidence.push(event.evidence);
|
|
28
|
+
else if (event.type === "integration.recorded" && state.run?.runId === event.runId)
|
|
29
|
+
state.integrations = [...state.integrations.filter(attempt => attempt.id !== event.attempt.id), event.attempt];
|
|
30
|
+
else if (event.type === "decision.recorded" && state.run?.runId === event.runId)
|
|
31
|
+
state.decisions.push(event.decision);
|
|
32
|
+
else if (event.type === "run.cancelled" && state.run?.runId === event.runId)
|
|
33
|
+
state.run = { ...state.run, phase: "cancelled", cancellation: { requested: true, reason: event.reason }, revision: state.run.revision + 1, updatedAt: entry.at };
|
|
34
|
+
else if (event.type === "run.reconciled" && state.run?.runId === event.runId)
|
|
35
|
+
state.run = { ...state.run, phase: event.phase, revision: event.revision, updatedAt: entry.at };
|
|
36
|
+
state.lastSequence = entry.sequence;
|
|
37
|
+
}
|
|
38
|
+
state.revision = state.run?.revision ?? state.lastSequence;
|
|
39
|
+
return state;
|
|
40
|
+
}
|
|
41
|
+
export function assertOwner(actual, expected) {
|
|
42
|
+
if (!actual || actual !== expected)
|
|
43
|
+
throw new OwnershipError("Only the run owner may advance workflow state", { actual, expected });
|
|
44
|
+
}
|
|
45
|
+
export function assertIdempotent(existingKeys, key) {
|
|
46
|
+
if (existingKeys.has(key))
|
|
47
|
+
throw new ContractError(`Duplicate idempotency key: ${key}`, { key });
|
|
48
|
+
}
|
|
49
|
+
export function reconcilePhase(phase, status, hasFreshEvidence) {
|
|
50
|
+
if (status === "unknown-outcome")
|
|
51
|
+
return "blocked";
|
|
52
|
+
if (status === "failed")
|
|
53
|
+
return "failed";
|
|
54
|
+
return hasFreshEvidence ? phase : "verifying";
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=recovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recovery.js","sourceRoot":"","sources":["../../src/core/recovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { EvidenceRecord, JournalEvent, ObjectiveContract, RouteClass, WorkflowPhase, WorkflowRun, WorkItem } from "./types.js";
|
|
2
|
+
export declare function createRun(projectId: string, objective: ObjectiveContract, mode?: RouteClass, nativeSessionId?: string): WorkflowRun;
|
|
3
|
+
export declare function addWorkItem(run: WorkflowRun, input: Omit<WorkItem, "id" | "revision" | "lifecycle" | "attempt">): WorkflowRun;
|
|
4
|
+
export declare function transition(run: WorkflowRun, to: WorkflowPhase, reason: string): {
|
|
5
|
+
run: WorkflowRun;
|
|
6
|
+
event: JournalEvent;
|
|
7
|
+
};
|
|
8
|
+
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
|
+
export declare function completeRun(run: WorkflowRun, requiredChecks: string[], evidence: EvidenceRecord[], targetDigest: string): {
|
|
11
|
+
run: WorkflowRun;
|
|
12
|
+
event: JournalEvent;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=transitions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transitions.d.ts","sourceRoot":"","sources":["../../src/core/transitions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAiBpI,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,CAI7H;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;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,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,CAI/M;AAED,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,CAKnK"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { createHash, randomUUID } from "node:crypto";
|
|
2
|
+
import { InvalidTransitionError, ContractError } from "./errors.js";
|
|
3
|
+
import { classifyRoute, objectiveHash } from "./policies.js";
|
|
4
|
+
const now = () => new Date().toISOString();
|
|
5
|
+
const phaseTransitions = {
|
|
6
|
+
created: ["orienting", "planning", "researching", "executing", "blocked", "cancelled"],
|
|
7
|
+
orienting: ["researching", "planning", "ready", "executing", "blocked", "cancelled"],
|
|
8
|
+
researching: ["planning", "ready", "blocked", "cancelled"],
|
|
9
|
+
planning: ["ready", "executing", "blocked", "cancelled"],
|
|
10
|
+
ready: ["executing", "verifying", "cancelled", "blocked"],
|
|
11
|
+
executing: ["integrating", "verifying", "reviewing", "blocked", "failed", "cancelled"],
|
|
12
|
+
integrating: ["verifying", "executing", "blocked", "failed", "cancelled"],
|
|
13
|
+
verifying: ["reviewing", "executing", "blocked", "failed", "cancelled"],
|
|
14
|
+
reviewing: ["executing", "blocked", "failed", "cancelled"],
|
|
15
|
+
complete: [], blocked: ["orienting", "planning", "executing", "verifying", "cancelled"],
|
|
16
|
+
failed: ["orienting", "planning", "executing", "cancelled"], cancelled: [],
|
|
17
|
+
};
|
|
18
|
+
export function createRun(projectId, objective, mode, nativeSessionId) {
|
|
19
|
+
if (!objective.objective.trim() || objective.acceptanceCriteria.length === 0)
|
|
20
|
+
throw new ContractError("Objective and acceptance criteria are required");
|
|
21
|
+
return { schemaVersion: 1, runId: `run_${randomUUID()}`, projectId, nativeSessionId, objective, objectiveHash: objectiveHash(objective), revision: 0, mode: mode ?? classifyRoute({ text: objective.objective }).routeClass, phase: "created", workItems: [], cancellation: { requested: false }, createdAt: now(), updatedAt: now() };
|
|
22
|
+
}
|
|
23
|
+
export function addWorkItem(run, input) {
|
|
24
|
+
if (run.workItems.some(item => item.title === input.title))
|
|
25
|
+
throw new ContractError(`Duplicate work item: ${input.title}`);
|
|
26
|
+
const item = { ...input, id: `work_${createHash("sha256").update(`${run.runId}:${input.title}`).digest("hex").slice(0, 12)}`, revision: 0, lifecycle: "pending", attempt: 0 };
|
|
27
|
+
return { ...run, revision: run.revision + 1, workItems: [...run.workItems, item], updatedAt: now() };
|
|
28
|
+
}
|
|
29
|
+
export function transition(run, to, reason) {
|
|
30
|
+
if (to === "complete")
|
|
31
|
+
throw new ContractError("Use the completion action after evidence and work acceptance checks");
|
|
32
|
+
if (!phaseTransitions[run.phase].includes(to))
|
|
33
|
+
throw new InvalidTransitionError(run.phase, `transition:${to}`);
|
|
34
|
+
const next = { ...run, phase: to, revision: run.revision + 1, updatedAt: now(), cancellation: to === "cancelled" ? { requested: true, reason } : run.cancellation };
|
|
35
|
+
return { run: next, event: { type: "run.transitioned", runId: run.runId, from: run.phase, to, reason } };
|
|
36
|
+
}
|
|
37
|
+
export function acceptWorkItem(run, workItemId) {
|
|
38
|
+
const item = run.workItems.find(candidate => candidate.id === workItemId);
|
|
39
|
+
if (!item)
|
|
40
|
+
throw new ContractError(`Unknown work item: ${workItemId}`);
|
|
41
|
+
if (item.lifecycle === "accepted" || item.lifecycle === "cancelled")
|
|
42
|
+
throw new ContractError(`Work item cannot be accepted from ${item.lifecycle}`);
|
|
43
|
+
const accepted = { ...item, lifecycle: "accepted", revision: item.revision + 1 };
|
|
44
|
+
return { ...run, revision: run.revision + 1, workItems: run.workItems.map(candidate => candidate.id === item.id ? accepted : candidate), updatedAt: now() };
|
|
45
|
+
}
|
|
46
|
+
export function canComplete(run, requiredChecks, evidence, ownedWork, targetDigest) {
|
|
47
|
+
const latest = new Map(evidence.map(item => [item.checkId, item]));
|
|
48
|
+
const checks = new Set([...latest.values()].filter(item => item.result === "passed" && !item.stale && item.targetDigest === targetDigest).map(item => item.checkId));
|
|
49
|
+
return requiredChecks.length > 0 && run.phase !== "cancelled" && run.phase !== "failed" && requiredChecks.every(id => id.trim() && checks.has(id)) && ownedWork.every(item => ["accepted", "cancelled"].includes(item.lifecycle));
|
|
50
|
+
}
|
|
51
|
+
export function completeRun(run, requiredChecks, evidence, targetDigest) {
|
|
52
|
+
if (!canComplete(run, requiredChecks, evidence, run.workItems, targetDigest))
|
|
53
|
+
throw new ContractError("Completion requires fresh checks for the current tree and no outstanding work");
|
|
54
|
+
if (!["executing", "verifying", "reviewing"].includes(run.phase))
|
|
55
|
+
throw new InvalidTransitionError(run.phase, "complete");
|
|
56
|
+
const next = { ...run, phase: "complete", revision: run.revision + 1, updatedAt: now() };
|
|
57
|
+
return { run: next, event: { type: "run.transitioned", runId: run.runId, from: run.phase, to: "complete", reason: "completion checks satisfied" } };
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=transitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transitions.js","sourceRoot":"","sources":["../../src/core/transitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
export type JsonPrimitive = string | number | boolean | null;
|
|
2
|
+
export type JsonValue = JsonPrimitive | JsonValue[] | {
|
|
3
|
+
[key: string]: JsonValue;
|
|
4
|
+
};
|
|
5
|
+
export type WorkflowPhase = "created" | "orienting" | "researching" | "planning" | "ready" | "executing" | "integrating" | "verifying" | "reviewing" | "complete" | "blocked" | "failed" | "cancelled";
|
|
6
|
+
export type RouteClass = "default" | "common" | "hard";
|
|
7
|
+
export type RouteIntent = "general" | "coding" | "debugging" | "ui-design" | "review" | "security" | "architecture";
|
|
8
|
+
export type TrustPreset = "trusted-development" | "restricted-managed" | "untrusted-repository";
|
|
9
|
+
export type WorkItemLifecycle = "pending" | "admitted" | "running" | "settled" | "accepted" | "rejected" | "blocked" | "cancelled";
|
|
10
|
+
export interface ObjectiveContract {
|
|
11
|
+
objective: string;
|
|
12
|
+
nonGoals: string[];
|
|
13
|
+
constraints: string[];
|
|
14
|
+
acceptanceCriteria: string[];
|
|
15
|
+
verificationPlan: string[];
|
|
16
|
+
stopConditions: string[];
|
|
17
|
+
userRestrictions: string[];
|
|
18
|
+
}
|
|
19
|
+
export interface WorkItem {
|
|
20
|
+
id: string;
|
|
21
|
+
revision: number;
|
|
22
|
+
role: string;
|
|
23
|
+
title: string;
|
|
24
|
+
scope: string[];
|
|
25
|
+
dependencies: string[];
|
|
26
|
+
acceptanceCriteria: string[];
|
|
27
|
+
verificationPlan: string[];
|
|
28
|
+
lifecycle: WorkItemLifecycle;
|
|
29
|
+
attempt: number;
|
|
30
|
+
targetRevision?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface WorkflowRun {
|
|
33
|
+
schemaVersion: 1;
|
|
34
|
+
runId: string;
|
|
35
|
+
projectId: string;
|
|
36
|
+
nativeSessionId?: string;
|
|
37
|
+
objective: ObjectiveContract;
|
|
38
|
+
objectiveHash: string;
|
|
39
|
+
revision: number;
|
|
40
|
+
mode: RouteClass;
|
|
41
|
+
phase: WorkflowPhase;
|
|
42
|
+
workItems: WorkItem[];
|
|
43
|
+
cancellation: {
|
|
44
|
+
requested: boolean;
|
|
45
|
+
reason?: string;
|
|
46
|
+
};
|
|
47
|
+
createdAt: string;
|
|
48
|
+
updatedAt: string;
|
|
49
|
+
}
|
|
50
|
+
export interface DispatchIntent {
|
|
51
|
+
id: string;
|
|
52
|
+
runId: string;
|
|
53
|
+
runRevision: number;
|
|
54
|
+
workItemId: string;
|
|
55
|
+
idempotencyKey: string;
|
|
56
|
+
expectedParentSession?: string;
|
|
57
|
+
requestedAgent: string;
|
|
58
|
+
scope: string[];
|
|
59
|
+
acceptanceCriteria: string[];
|
|
60
|
+
isolation: "required" | "none";
|
|
61
|
+
apply: false;
|
|
62
|
+
merge: false;
|
|
63
|
+
routeClass: RouteClass;
|
|
64
|
+
routeIntent: RouteIntent;
|
|
65
|
+
modelRole: string;
|
|
66
|
+
status: "admitted" | "acknowledged" | "settled" | "unknown-outcome" | "rejected";
|
|
67
|
+
nativeCallId?: string;
|
|
68
|
+
nativeChildId?: string;
|
|
69
|
+
}
|
|
70
|
+
export interface WorkerObservation {
|
|
71
|
+
dispatchId: string;
|
|
72
|
+
nativeCallId?: string;
|
|
73
|
+
nativeChildId?: string;
|
|
74
|
+
sourceEvent: string;
|
|
75
|
+
sequence: number;
|
|
76
|
+
status: "started" | "running" | "settled" | "failed" | "cancelled" | "unknown-outcome";
|
|
77
|
+
structuredResult?: JsonValue;
|
|
78
|
+
artifactRefs: string[];
|
|
79
|
+
observedAt: string;
|
|
80
|
+
}
|
|
81
|
+
export interface EvidenceRecord {
|
|
82
|
+
id: string;
|
|
83
|
+
runId: string;
|
|
84
|
+
type: "test" | "lint" | "typecheck" | "review" | "research" | "worker" | "git" | "manual";
|
|
85
|
+
checkId: string;
|
|
86
|
+
command?: string[];
|
|
87
|
+
cwd?: string;
|
|
88
|
+
result: "passed" | "failed" | "blocked" | "cancelled" | "unknown";
|
|
89
|
+
exitCode?: number;
|
|
90
|
+
targetDigest: string;
|
|
91
|
+
inputDigests: Record<string, string>;
|
|
92
|
+
stdout?: string;
|
|
93
|
+
stderr?: string;
|
|
94
|
+
artifactHashes: string[];
|
|
95
|
+
provenance: {
|
|
96
|
+
producer: string;
|
|
97
|
+
source?: string;
|
|
98
|
+
observedAt: string;
|
|
99
|
+
};
|
|
100
|
+
recordedAt: string;
|
|
101
|
+
stale: boolean;
|
|
102
|
+
staleReason?: string;
|
|
103
|
+
}
|
|
104
|
+
export interface IntegrationAttempt {
|
|
105
|
+
id: string;
|
|
106
|
+
runId: string;
|
|
107
|
+
workItemId: string;
|
|
108
|
+
baseDigest: string;
|
|
109
|
+
patchDigest: string;
|
|
110
|
+
changedPaths: string[];
|
|
111
|
+
eligibleEvidenceIds: string[];
|
|
112
|
+
lockOwner: string;
|
|
113
|
+
outcome: "eligible" | "applied" | "conflict" | "dirty-parent" | "rejected" | "unknown-outcome";
|
|
114
|
+
resultingDigest?: string;
|
|
115
|
+
recovery?: string;
|
|
116
|
+
attemptedAt: string;
|
|
117
|
+
}
|
|
118
|
+
export interface DecisionRecord {
|
|
119
|
+
id: string;
|
|
120
|
+
runId: string;
|
|
121
|
+
alternatives: string[];
|
|
122
|
+
selected: string;
|
|
123
|
+
rationale: string;
|
|
124
|
+
evidenceIds: string[];
|
|
125
|
+
objectiveRevision: number;
|
|
126
|
+
recordedAt: string;
|
|
127
|
+
}
|
|
128
|
+
export type JournalEvent = {
|
|
129
|
+
type: "run.created";
|
|
130
|
+
run: WorkflowRun;
|
|
131
|
+
} | {
|
|
132
|
+
type: "run.transitioned";
|
|
133
|
+
runId: string;
|
|
134
|
+
from: WorkflowPhase;
|
|
135
|
+
to: WorkflowPhase;
|
|
136
|
+
reason: string;
|
|
137
|
+
} | {
|
|
138
|
+
type: "work-item.upserted";
|
|
139
|
+
runId: string;
|
|
140
|
+
item: WorkItem;
|
|
141
|
+
} | {
|
|
142
|
+
type: "dispatch.recorded";
|
|
143
|
+
runId: string;
|
|
144
|
+
intent: DispatchIntent;
|
|
145
|
+
} | {
|
|
146
|
+
type: "worker.observed";
|
|
147
|
+
runId: string;
|
|
148
|
+
observation: WorkerObservation;
|
|
149
|
+
} | {
|
|
150
|
+
type: "evidence.recorded";
|
|
151
|
+
runId: string;
|
|
152
|
+
evidence: EvidenceRecord;
|
|
153
|
+
} | {
|
|
154
|
+
type: "integration.recorded";
|
|
155
|
+
runId: string;
|
|
156
|
+
attempt: IntegrationAttempt;
|
|
157
|
+
} | {
|
|
158
|
+
type: "decision.recorded";
|
|
159
|
+
runId: string;
|
|
160
|
+
decision: DecisionRecord;
|
|
161
|
+
} | {
|
|
162
|
+
type: "run.cancelled";
|
|
163
|
+
runId: string;
|
|
164
|
+
reason: string;
|
|
165
|
+
} | {
|
|
166
|
+
type: "run.reconciled";
|
|
167
|
+
runId: string;
|
|
168
|
+
revision: number;
|
|
169
|
+
phase: WorkflowPhase;
|
|
170
|
+
reason: string;
|
|
171
|
+
};
|
|
172
|
+
export interface JournalEntry {
|
|
173
|
+
sequence: number;
|
|
174
|
+
at: string;
|
|
175
|
+
idempotencyKey: string;
|
|
176
|
+
event: JournalEvent;
|
|
177
|
+
}
|
|
178
|
+
export interface StateSnapshot {
|
|
179
|
+
revision: number;
|
|
180
|
+
run?: WorkflowRun;
|
|
181
|
+
dispatches: DispatchIntent[];
|
|
182
|
+
observations: WorkerObservation[];
|
|
183
|
+
evidence: EvidenceRecord[];
|
|
184
|
+
integrations: IntegrationAttempt[];
|
|
185
|
+
decisions: DecisionRecord[];
|
|
186
|
+
lastSequence: number;
|
|
187
|
+
}
|
|
188
|
+
export interface RouteTask {
|
|
189
|
+
text: string;
|
|
190
|
+
role?: string;
|
|
191
|
+
intent?: RouteIntent;
|
|
192
|
+
files?: string[];
|
|
193
|
+
ambiguity?: number;
|
|
194
|
+
}
|
|
195
|
+
export interface RouteDecision {
|
|
196
|
+
routeClass: RouteClass;
|
|
197
|
+
intent: RouteIntent;
|
|
198
|
+
modelRole: "bizar_default" | "bizar_common" | "bizar_hard";
|
|
199
|
+
reason: string;
|
|
200
|
+
reasons: string[];
|
|
201
|
+
routingId: string;
|
|
202
|
+
fallbackChain: string[];
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":""}
|