codex-workflow-v2 2.0.0-beta.1 → 2.0.0-beta.10
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 +52 -4
- package/dist/src/alpha6/adoption.js +13 -3
- package/dist/src/alpha6/adoption.js.map +1 -1
- package/dist/src/alpha6/handoff.d.ts +23 -0
- package/dist/src/alpha6/handoff.js +221 -28
- package/dist/src/alpha6/handoff.js.map +1 -1
- package/dist/src/alpha6/milestone.d.ts +12 -0
- package/dist/src/alpha6/milestone.js +113 -1
- package/dist/src/alpha6/milestone.js.map +1 -1
- package/dist/src/alpha6/plan-risk.d.ts +1 -0
- package/dist/src/alpha6/plan-risk.js +15 -7
- package/dist/src/alpha6/plan-risk.js.map +1 -1
- package/dist/src/alpha6/remediation.js +18 -6
- package/dist/src/alpha6/remediation.js.map +1 -1
- package/dist/src/alpha6/review.d.ts +3 -0
- package/dist/src/alpha6/review.js +24 -0
- package/dist/src/alpha6/review.js.map +1 -1
- package/dist/src/cli.js +473 -45
- package/dist/src/cli.js.map +1 -1
- package/dist/src/contracts.d.ts +169 -5
- package/dist/src/contracts.js +1 -1
- package/dist/src/credential-output.d.ts +10 -0
- package/dist/src/credential-output.js +73 -0
- package/dist/src/credential-output.js.map +1 -0
- package/dist/src/dependency-provenance.d.ts +19 -0
- package/dist/src/dependency-provenance.js +185 -0
- package/dist/src/dependency-provenance.js.map +1 -0
- package/dist/src/errors.d.ts +1 -1
- package/dist/src/errors.js.map +1 -1
- package/dist/src/git.js +5 -4
- package/dist/src/git.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/lifecycle/canonical-hash.d.ts +6 -0
- package/dist/src/lifecycle/canonical-hash.js +24 -0
- package/dist/src/lifecycle/canonical-hash.js.map +1 -0
- package/dist/src/lifecycle/catalog.d.ts +26 -0
- package/dist/src/lifecycle/catalog.js +208 -0
- package/dist/src/lifecycle/catalog.js.map +1 -0
- package/dist/src/lifecycle/compiler-inspection.d.ts +48 -0
- package/dist/src/lifecycle/compiler-inspection.js +29 -0
- package/dist/src/lifecycle/compiler-inspection.js.map +1 -0
- package/dist/src/lifecycle/core-static-readiness.d.ts +6 -0
- package/dist/src/lifecycle/core-static-readiness.js +130 -0
- package/dist/src/lifecycle/core-static-readiness.js.map +1 -0
- package/dist/src/lifecycle/corrective-replan-authority.d.ts +53 -0
- package/dist/src/lifecycle/corrective-replan-authority.js +139 -0
- package/dist/src/lifecycle/corrective-replan-authority.js.map +1 -0
- package/dist/src/lifecycle/corrective-replan-binding-manifest.d.ts +21 -0
- package/dist/src/lifecycle/corrective-replan-binding-manifest.js +35 -0
- package/dist/src/lifecycle/corrective-replan-binding-manifest.js.map +1 -0
- package/dist/src/lifecycle/corrective-replan-credential-core.d.ts +86 -0
- package/dist/src/lifecycle/corrective-replan-credential-core.js +563 -0
- package/dist/src/lifecycle/corrective-replan-credential-core.js.map +1 -0
- package/dist/src/lifecycle/corrective-replan-credential-schema.d.ts +17 -0
- package/dist/src/lifecycle/corrective-replan-credential-schema.js +44 -0
- package/dist/src/lifecycle/corrective-replan-credential-schema.js.map +1 -0
- package/dist/src/lifecycle/corrective-replan-credentials.d.ts +47 -0
- package/dist/src/lifecycle/corrective-replan-credentials.js +103 -0
- package/dist/src/lifecycle/corrective-replan-credentials.js.map +1 -0
- package/dist/src/lifecycle/corrective-replan.d.ts +64 -0
- package/dist/src/lifecycle/corrective-replan.js +548 -0
- package/dist/src/lifecycle/corrective-replan.js.map +1 -0
- package/dist/src/lifecycle/evaluator.d.ts +2 -0
- package/dist/src/lifecycle/evaluator.js +35 -0
- package/dist/src/lifecycle/evaluator.js.map +1 -0
- package/dist/src/lifecycle/fingerprint.d.ts +31 -0
- package/dist/src/lifecycle/fingerprint.js +388 -0
- package/dist/src/lifecycle/fingerprint.js.map +1 -0
- package/dist/src/lifecycle/immutable.d.ts +1 -0
- package/dist/src/lifecycle/immutable.js +10 -0
- package/dist/src/lifecycle/immutable.js.map +1 -0
- package/dist/src/lifecycle/implementation-table.d.ts +29 -0
- package/dist/src/lifecycle/implementation-table.js +87 -0
- package/dist/src/lifecycle/implementation-table.js.map +1 -0
- package/dist/src/lifecycle/index.d.ts +4 -0
- package/dist/src/lifecycle/index.js +5 -0
- package/dist/src/lifecycle/index.js.map +1 -0
- package/dist/src/lifecycle/schema-artifact.d.ts +12 -0
- package/dist/src/lifecycle/schema-artifact.js +214 -0
- package/dist/src/lifecycle/schema-artifact.js.map +1 -0
- package/dist/src/lifecycle/semantic-registry.d.ts +6 -0
- package/dist/src/lifecycle/semantic-registry.js +489 -0
- package/dist/src/lifecycle/semantic-registry.js.map +1 -0
- package/dist/src/lifecycle/types.d.ts +718 -0
- package/dist/src/lifecycle/types.js +4 -0
- package/dist/src/lifecycle/types.js.map +1 -0
- package/dist/src/observation.d.ts +20 -0
- package/dist/src/observation.js +171 -0
- package/dist/src/observation.js.map +1 -0
- package/dist/src/reviewer.d.ts +43 -1
- package/dist/src/reviewer.js +203 -50
- package/dist/src/reviewer.js.map +1 -1
- package/dist/src/state/corrective-replan-executor.d.ts +64 -0
- package/dist/src/state/corrective-replan-executor.js +608 -0
- package/dist/src/state/corrective-replan-executor.js.map +1 -0
- package/dist/src/state/corrective-replan-public-schema.d.ts +3 -0
- package/dist/src/state/corrective-replan-public-schema.js +43 -0
- package/dist/src/state/corrective-replan-public-schema.js.map +1 -0
- package/dist/src/state/corrective-replan-public.d.ts +95 -0
- package/dist/src/state/corrective-replan-public.js +665 -0
- package/dist/src/state/corrective-replan-public.js.map +1 -0
- package/dist/src/state/corrective-replan-transaction.d.ts +160 -0
- package/dist/src/state/corrective-replan-transaction.js +730 -0
- package/dist/src/state/corrective-replan-transaction.js.map +1 -0
- package/dist/src/state/corrective-yield-executor.d.ts +31 -0
- package/dist/src/state/corrective-yield-executor.js +236 -0
- package/dist/src/state/corrective-yield-executor.js.map +1 -0
- package/dist/src/state/corrective-yield-transaction.d.ts +97 -0
- package/dist/src/state/corrective-yield-transaction.js +591 -0
- package/dist/src/state/corrective-yield-transaction.js.map +1 -0
- package/dist/src/state/lock.d.ts +76 -3
- package/dist/src/state/lock.js +611 -30
- package/dist/src/state/lock.js.map +1 -1
- package/dist/src/state/store.d.ts +3 -0
- package/dist/src/state/store.js +65 -12
- package/dist/src/state/store.js.map +1 -1
- package/dist/src/transition-core.d.ts +67 -0
- package/dist/src/transition-core.js +318 -0
- package/dist/src/transition-core.js.map +1 -0
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/dist/src/workflow.d.ts +83 -24
- package/dist/src/workflow.js +1255 -187
- package/dist/src/workflow.js.map +1 -1
- package/docs/autonomy-guardrails.md +40 -1
- package/docs/beta2-initial-assembly-navigation-brief.md +616 -0
- package/docs/delegated-approval.md +26 -1
- package/docs/development-flow.md +32 -2
- package/docs/lifecycle/state-machine-stabilization.md +641 -0
- package/docs/release.md +17 -2
- package/docs/split-required-recovery.md +5 -4
- package/docs/stable-release-defect-register.md +465 -3
- package/docs/updating-existing-project.md +59 -4
- package/docs/validation-report.md +85 -56
- package/package.json +5 -1
- package/plugins/codex-workflow-gateway/.codex-plugin/plugin.json +10 -3
- package/plugins/codex-workflow-gateway/references/protocol.md +74 -3
- package/plugins/codex-workflow-gateway/scripts/chat-registry.mjs +376 -0
- package/plugins/codex-workflow-gateway/skills/codex-workflow-gateway/SKILL.md +246 -1
- package/references/state-machine.md +4 -1
- package/roles/delivery-coordinator.md +39 -0
- package/schemas/adoption-posture-event.schema.json +1 -1
- package/schemas/context-envelope.schema.json +1 -1
- package/schemas/corrective-replan-credentials.private.schema.json +98 -0
- package/schemas/corrective-replan-execution-event.private.schema.json +53 -0
- package/schemas/corrective-replan-public.schema.json +142 -0
- package/schemas/corrective-replan-task-transaction.private.schema.json +151 -0
- package/schemas/corrective-yield-task-transaction.private.schema.json +98 -0
- package/schemas/remediation-event.schema.json +11 -1
- package/schemas/task-handoff-event.schema.json +1 -1
- package/schemas/task.schema.json +24 -1
- package/schemas/transition-definition.schema.json +2609 -0
- package/schemas/transition-payloads.schema.json +140 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { diagnoseCoreIssuanceClosure, inspectCorePrivateIr } from '../transition-core.js';
|
|
2
|
+
import { assessCorrectiveReplanAuthorityTuple, projectAuthoritySemanticBundle } from './corrective-replan-authority.js';
|
|
3
|
+
export declare const installedCoreRuleBindingsForTests: readonly import("./types.js").CoreReleaseRuleBinding[];
|
|
4
|
+
export declare const installedAuthoritySemanticBindingsForTests: readonly import("./corrective-replan-authority.js").AuthoritySemanticBinding[];
|
|
5
|
+
export declare const installedTransitionExecutableBindingsForTests: import("../transition-core.js").TransitionExecutableBinding[];
|
|
6
|
+
export declare const installedPayloadSchemaArtifactsForTests: readonly import("./types.js").PayloadSchemaArtifactBinding[];
|
|
7
|
+
export declare const installedPayloadSchemaValidatorsForTests: readonly import("./types.js").PayloadSchemaValidatorBinding[];
|
|
8
|
+
export declare const installedSemanticRegistryForTests: import("./types.js").SemanticRegistry;
|
|
9
|
+
export declare const inspectCorePrivateIrForTests: typeof inspectCorePrivateIr;
|
|
10
|
+
export declare const diagnoseCoreIssuanceClosureForTests: typeof diagnoseCoreIssuanceClosure;
|
|
11
|
+
export declare const assessCorrectiveReplanAuthorityTupleForTests: typeof assessCorrectiveReplanAuthorityTuple;
|
|
12
|
+
export declare const projectAuthoritySemanticBundleForTests: typeof projectAuthoritySemanticBundle;
|
|
13
|
+
export declare const correctiveReplanCredentialInspectionForTests: {
|
|
14
|
+
authorityBindingManifest: {
|
|
15
|
+
manifestSha256: string;
|
|
16
|
+
id: "binding-manifest.corrective-replan.exact-v1";
|
|
17
|
+
version: 1;
|
|
18
|
+
rows: {
|
|
19
|
+
ordinal: number;
|
|
20
|
+
bindingId: string;
|
|
21
|
+
projection: {
|
|
22
|
+
id: `projection.${string}`;
|
|
23
|
+
version: 1;
|
|
24
|
+
};
|
|
25
|
+
fieldId: `field.${string}`;
|
|
26
|
+
valueKind: "sha256" | "literal" | "safe-integer" | "entity-id" | "git-oid" | "actor-role";
|
|
27
|
+
canonicalization: "exact" | "lowercase-hex" | "safe-nonnegative-integer" | "nfc-trim" | "lowercase-git-oid" | "registered-enum";
|
|
28
|
+
receiptPath: `/binding/values/${string}`;
|
|
29
|
+
}[];
|
|
30
|
+
};
|
|
31
|
+
executionLinkage: {
|
|
32
|
+
status: "active";
|
|
33
|
+
transitionId: "task.plan.corrective-replan";
|
|
34
|
+
};
|
|
35
|
+
kernelDescriptor: {
|
|
36
|
+
id: string;
|
|
37
|
+
version: 1;
|
|
38
|
+
wiring: "invoked";
|
|
39
|
+
buildSha256: string;
|
|
40
|
+
};
|
|
41
|
+
schemaArtifacts: readonly import("./corrective-replan-credential-schema.js").CredentialSchemaArtifact[];
|
|
42
|
+
schemaValidators: readonly import("./corrective-replan-credential-schema.js").CredentialSchemaValidator[];
|
|
43
|
+
functionBindings: readonly import("./corrective-replan-credential-core.js").CredentialFunctionBinding[];
|
|
44
|
+
diagnoseClosure: typeof import("./corrective-replan-credentials.js").diagnoseCorrectiveReplanCredentialClosure;
|
|
45
|
+
};
|
|
46
|
+
export declare function runtimeSemanticFingerprintForInspection(metadata: unknown): string;
|
|
47
|
+
export declare function definitionManifestHashForInspection(metadata: unknown, runtime?: string): string;
|
|
48
|
+
export declare function validateTransitionDefinitionForInspection(raw: unknown): import("./catalog.js").TransitionSemanticValidationReport;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { diagnoseCoreIssuanceClosure, inspectCorePrivateIr, installedTransitionExecutableBindings } from '../transition-core.js';
|
|
2
|
+
import { validateTransitionDefinitionSemantics } from './catalog.js';
|
|
3
|
+
import { assessCorrectiveReplanAuthorityTuple, installedAuthoritySemanticBindings, projectAuthoritySemanticBundle } from './corrective-replan-authority.js';
|
|
4
|
+
import { correctiveReplanCredentialInspection } from './corrective-replan-credentials.js';
|
|
5
|
+
import { installedCoreRuleBindings } from './core-static-readiness.js';
|
|
6
|
+
import { runtimeSemanticFingerprint, transitionDefinitionManifestHash } from './fingerprint.js';
|
|
7
|
+
import { installedPayloadSchemaArtifacts, installedPayloadSchemaValidators } from './schema-artifact.js';
|
|
8
|
+
import { transitionSemanticRegistry } from './semantic-registry.js';
|
|
9
|
+
export const installedCoreRuleBindingsForTests = installedCoreRuleBindings;
|
|
10
|
+
export const installedAuthoritySemanticBindingsForTests = installedAuthoritySemanticBindings;
|
|
11
|
+
export const installedTransitionExecutableBindingsForTests = installedTransitionExecutableBindings;
|
|
12
|
+
export const installedPayloadSchemaArtifactsForTests = installedPayloadSchemaArtifacts;
|
|
13
|
+
export const installedPayloadSchemaValidatorsForTests = installedPayloadSchemaValidators;
|
|
14
|
+
export const installedSemanticRegistryForTests = transitionSemanticRegistry;
|
|
15
|
+
export const inspectCorePrivateIrForTests = inspectCorePrivateIr;
|
|
16
|
+
export const diagnoseCoreIssuanceClosureForTests = diagnoseCoreIssuanceClosure;
|
|
17
|
+
export const assessCorrectiveReplanAuthorityTupleForTests = assessCorrectiveReplanAuthorityTuple;
|
|
18
|
+
export const projectAuthoritySemanticBundleForTests = projectAuthoritySemanticBundle;
|
|
19
|
+
export const correctiveReplanCredentialInspectionForTests = correctiveReplanCredentialInspection;
|
|
20
|
+
export function runtimeSemanticFingerprintForInspection(metadata) {
|
|
21
|
+
return runtimeSemanticFingerprint(metadata);
|
|
22
|
+
}
|
|
23
|
+
export function definitionManifestHashForInspection(metadata, runtime) {
|
|
24
|
+
return transitionDefinitionManifestHash(metadata, runtime);
|
|
25
|
+
}
|
|
26
|
+
export function validateTransitionDefinitionForInspection(raw) {
|
|
27
|
+
return validateTransitionDefinitionSemantics(raw);
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=compiler-inspection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compiler-inspection.js","sourceRoot":"","sources":["../../../src/lifecycle/compiler-inspection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,qCAAqC,EAAE,MAAM,uBAAuB,CAAC;AACjI,OAAO,EAAE,qCAAqC,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,oCAAoC,EAAE,kCAAkC,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAC5J,OAAO,EAAE,oCAAoC,EAAE,MAAM,oCAAoC,CAAC;AAC1F,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,gCAAgC,EAAE,MAAM,kBAAkB,CAAC;AAChG,OAAO,EAAE,+BAA+B,EAAE,gCAAgC,EAAE,MAAM,sBAAsB,CAAC;AACzG,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAEpE,MAAM,CAAC,MAAM,iCAAiC,GAAG,yBAAyB,CAAC;AAC3E,MAAM,CAAC,MAAM,0CAA0C,GAAG,kCAAkC,CAAC;AAC7F,MAAM,CAAC,MAAM,6CAA6C,GAAG,qCAAqC,CAAC;AACnG,MAAM,CAAC,MAAM,uCAAuC,GAAG,+BAA+B,CAAC;AACvF,MAAM,CAAC,MAAM,wCAAwC,GAAG,gCAAgC,CAAC;AACzF,MAAM,CAAC,MAAM,iCAAiC,GAAG,0BAA0B,CAAC;AAC5E,MAAM,CAAC,MAAM,4BAA4B,GAAG,oBAAoB,CAAC;AACjE,MAAM,CAAC,MAAM,mCAAmC,GAAG,2BAA2B,CAAC;AAC/E,MAAM,CAAC,MAAM,4CAA4C,GAAG,oCAAoC,CAAC;AACjG,MAAM,CAAC,MAAM,sCAAsC,GAAG,8BAA8B,CAAC;AACrF,MAAM,CAAC,MAAM,4CAA4C,GAAG,oCAAoC,CAAC;AACjG,MAAM,UAAU,uCAAuC,CAAC,QAAiB;IACvE,OAAO,0BAA0B,CAAC,QAA4D,CAAC,CAAC;AAClG,CAAC;AACD,MAAM,UAAU,mCAAmC,CAAC,QAAiB,EAAE,OAAgB;IACrF,OAAO,gCAAgC,CAAC,QAAkE,EAAE,OAAO,CAAC,CAAC;AACvH,CAAC;AACD,MAAM,UAAU,yCAAyC,CAAC,GAAY;IACpE,OAAO,qCAAqC,CAAC,GAAY,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CoreReleaseRuleBinding, CoreReleaseRuleContext } from './types.js';
|
|
2
|
+
export declare const installedCoreRuleBindings: readonly CoreReleaseRuleBinding[];
|
|
3
|
+
export declare function projectReleaseRuleContextForCore(raw: unknown, ruleId: string): CoreReleaseRuleContext;
|
|
4
|
+
export declare function evaluateInstalledReleaseRulesForCore(bindings: readonly (CoreReleaseRuleBinding & {
|
|
5
|
+
readonly context: CoreReleaseRuleContext;
|
|
6
|
+
})[]): readonly string[];
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { runtimeSemanticProjection } from './fingerprint.js';
|
|
2
|
+
import { deepFreeze } from './immutable.js';
|
|
3
|
+
import { coreReleaseRuleDescriptors } from './implementation-table.js';
|
|
4
|
+
const ruleFunctions = [definitionIntegrity, exactAuthority, requiredInputs, admissionBoundary, reliableEffects];
|
|
5
|
+
export const installedCoreRuleBindings = deepFreeze(coreReleaseRuleDescriptors.map(([id, suffix], index) => ({
|
|
6
|
+
id, version: 1,
|
|
7
|
+
implementationId: `implementation.release-rule.${suffix}`,
|
|
8
|
+
implementationVersion: 1,
|
|
9
|
+
callable: ruleFunctions[index],
|
|
10
|
+
})));
|
|
11
|
+
export function projectReleaseRuleContextForCore(raw, ruleId) {
|
|
12
|
+
const source = raw;
|
|
13
|
+
const metadata = Object.fromEntries(Object.entries(source)
|
|
14
|
+
.filter(([key]) => !['runtimeSemanticFingerprint', 'semanticFingerprint', 'definitionManifestHash'].includes(key)));
|
|
15
|
+
const closure = runtimeSemanticProjection(metadata).resolvedRegistryEntries;
|
|
16
|
+
const entries = (category) => closure.filter((entry) => entry.category === category).map(({ entry }) => entry);
|
|
17
|
+
const guards = () => rows(metadata.guards).map((guard) => ({ guardId: guard.guardId }));
|
|
18
|
+
if (ruleId === 'semantic-rule.definition-integrity')
|
|
19
|
+
return context({ guards: guards() });
|
|
20
|
+
if (ruleId === 'semantic-rule.exact-authority') {
|
|
21
|
+
const authority = record(metadata.authority);
|
|
22
|
+
const actor = record(authority.actor);
|
|
23
|
+
const principal = record(authority.principal);
|
|
24
|
+
return context({ authority: { actor: { required: actor.required, identity: ref(actor.identity) }, principal: { identity: ref(principal.identity) },
|
|
25
|
+
capabilities: presence(authority.capabilities), credentials: presence(authority.credentials), separationOfDuty: presence(authority.separationOfDuty),
|
|
26
|
+
forbiddenCombinations: presence(authority.forbiddenCombinations),
|
|
27
|
+
ownership: ref(authority.ownership), eligibleRoles: presence(authority.eligibleRoles) }, guards: guards() }, {
|
|
28
|
+
capabilities: presence(entries('capabilities')), credentialPolicies: presence(entries('credentialPolicies')),
|
|
29
|
+
identityComparators: presence(entries('identityComparators')), ownershipPolicies: entries('ownershipPolicies').map((entry) => ({ id: entry.id, version: entry.version, c1Ownership: entry.c1Ownership, writerLease: entry.writerLease })),
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
if (ruleId === 'semantic-rule.required-inputs')
|
|
33
|
+
return context({ inputContract: rows(metadata.inputContract).map((entry) => ({ required: entry.required, input: ref(entry.input) })), guards: rows(metadata.guards).map((guard) => ({ requiredInputs: rows(guard.requiredInputs).map(ref) })) });
|
|
34
|
+
if (ruleId === 'semantic-rule.admission-boundary') {
|
|
35
|
+
const boundary = record(metadata.admissionBoundary);
|
|
36
|
+
return context({ admissionBoundary: {
|
|
37
|
+
lock: { policy: ref(record(boundary.lock).policy) },
|
|
38
|
+
orderedRevalidations: rows(boundary.orderedRevalidations).map((entry) => ({ underLock: entry.underLock })),
|
|
39
|
+
firstEffectAfterRevalidation: boundary.firstEffectAfterRevalidation, release: boundary.release,
|
|
40
|
+
} }, { lockPolicies: entries('lockPolicies').map((entry) => ({ id: entry.id, version: entry.version, lockKind: entry.lockKind })) });
|
|
41
|
+
}
|
|
42
|
+
if (ruleId === 'semantic-rule.reliable-effects') {
|
|
43
|
+
const atomicity = record(metadata.atomicity);
|
|
44
|
+
const readback = record(atomicity.readback);
|
|
45
|
+
return context({ atomicity: {
|
|
46
|
+
classification: atomicity.classification, nonMutatingFailureGuarantee: atomicity.nonMutatingFailureGuarantee,
|
|
47
|
+
readback: { adapter: ref(readback.adapter), wiring: readback.wiring, checkpoints: record(readback.checkpoints) },
|
|
48
|
+
journal: { mode: record(atomicity.journal).mode }, recovery: { mode: record(atomicity.recovery).mode, trigger: record(atomicity.recovery).trigger },
|
|
49
|
+
} }, { readbackAdapters: entries('readbackAdapters').map((entry) => ({ id: entry.id, version: entry.version, wiring: entry.wiring })) });
|
|
50
|
+
}
|
|
51
|
+
throw new TypeError(`No installed Core context projection for ${ruleId}.`);
|
|
52
|
+
}
|
|
53
|
+
export function evaluateInstalledReleaseRulesForCore(bindings) {
|
|
54
|
+
return [...new Set(bindings.flatMap((binding) => binding.callable(binding.context)))].sort();
|
|
55
|
+
}
|
|
56
|
+
function definitionIntegrity({ transition }) {
|
|
57
|
+
const guards = new Set(array(transition.guards).map((guard) => String(guard.guardId)));
|
|
58
|
+
const required = ['actor-role-eligible', 'no-c1-claim', 'no-writer-lease', 'plan-validation-passed', 'receipt-valid', 'risk-audit-passed']
|
|
59
|
+
.map((suffix) => `task.corrective-replan.${suffix}`);
|
|
60
|
+
return required.every((guard) => guards.has(guard)) ? [] : ['static.definition.mandatory-guard-incomplete'];
|
|
61
|
+
}
|
|
62
|
+
function exactAuthority({ transition, registry }) {
|
|
63
|
+
const authority = transition.authority;
|
|
64
|
+
const actor = authority.actor;
|
|
65
|
+
const principal = authority.principal;
|
|
66
|
+
const blockers = [];
|
|
67
|
+
if (actor.required !== true || refText(actor.identity) !== 'identity.actor@1'
|
|
68
|
+
|| refText(principal.identity) !== 'identity.human-principal@1')
|
|
69
|
+
blockers.push('static.authority.actor-unbound');
|
|
70
|
+
if (array(authority.capabilities).length === 0 || array(registry.capabilities).length === 0)
|
|
71
|
+
blockers.push('static.authority.exact-capability-missing');
|
|
72
|
+
if (array(authority.credentials).length === 0 || array(registry.credentialPolicies).length === 0)
|
|
73
|
+
blockers.push('static.authority.exact-credential-missing');
|
|
74
|
+
if (array(authority.separationOfDuty).length !== 2 || array(authority.forbiddenCombinations).length !== 1
|
|
75
|
+
|| array(registry.identityComparators).length !== 3)
|
|
76
|
+
blockers.push('static.authority.sod-unenforced');
|
|
77
|
+
const ownership = array(registry.ownershipPolicies).find((entry) => refText(entry) === refText(authority.ownership));
|
|
78
|
+
if (!ownership || ownership.c1Ownership === 'unchecked' || ownership.writerLease === 'unchecked')
|
|
79
|
+
blockers.push('static.authority.ownership-unchecked');
|
|
80
|
+
if (array(authority.eligibleRoles).length === 0 || !array(transition.guards)
|
|
81
|
+
.some((guard) => guard.guardId === 'task.corrective-replan.actor-role-eligible'))
|
|
82
|
+
blockers.push('static.authority.role-eligibility-unenforced');
|
|
83
|
+
return blockers;
|
|
84
|
+
}
|
|
85
|
+
function requiredInputs({ transition }) {
|
|
86
|
+
const inputs = new Set(array(transition.inputContract).filter((entry) => entry.required === true).map((entry) => refText(entry.input)));
|
|
87
|
+
const guarded = new Set(array(transition.guards).flatMap((guard) => array(guard.requiredInputs).map(refText)));
|
|
88
|
+
const exact = ['corrective-execution-receipt', 'corrective-plan-risk-audit', 'corrective-plan-validation', 'corrective-replacement-plan', 'expected-revision', 'task-id']
|
|
89
|
+
.map((id) => `input.${id}@1`);
|
|
90
|
+
return exact.every((id) => inputs.has(id) && guarded.has(id)) ? [] : ['static.input.exact-contract-incomplete'];
|
|
91
|
+
}
|
|
92
|
+
function admissionBoundary({ transition, registry }) {
|
|
93
|
+
const boundary = transition.admissionBoundary;
|
|
94
|
+
const lock = boundary.lock.policy;
|
|
95
|
+
const installed = array(registry.lockPolicies).find((entry) => refText(entry) === refText(lock));
|
|
96
|
+
const revalidations = array(boundary.orderedRevalidations);
|
|
97
|
+
return installed?.lockKind === 'exclusive-task'
|
|
98
|
+
&& revalidations.length === 3 && revalidations.every((entry) => entry.underLock === true)
|
|
99
|
+
&& boundary.firstEffectAfterRevalidation === true && boundary.release === 'finally-after-readback'
|
|
100
|
+
? [] : ['static.admission.exclusive-lock-incomplete'];
|
|
101
|
+
}
|
|
102
|
+
function reliableEffects({ transition, registry }) {
|
|
103
|
+
const atomicity = transition.atomicity;
|
|
104
|
+
const readback = atomicity.readback;
|
|
105
|
+
const installed = array(registry.readbackAdapters).find((entry) => refText(entry) === refText(readback.adapter));
|
|
106
|
+
const blockers = [];
|
|
107
|
+
const checkpoints = readback.checkpoints;
|
|
108
|
+
if (readback.wiring !== 'invoked-post-effect' || installed?.wiring !== 'invoked-post-effect'
|
|
109
|
+
|| checkpoints.preCompletion !== 'domain-readback' || checkpoints.postTerminal !== 'terminal-readback')
|
|
110
|
+
blockers.push('static.reliability.readback-unwired');
|
|
111
|
+
if (atomicity.classification !== 'journaled-multi-write' || atomicity.nonMutatingFailureGuarantee !== 'all-guards-before-effects'
|
|
112
|
+
|| atomicity.journal.mode !== 'required' || atomicity.recovery.mode !== 'automatic-roll-forward'
|
|
113
|
+
|| atomicity.recovery.trigger !== 'explicit-repair') {
|
|
114
|
+
blockers.push('static.reliability.contract-incomplete');
|
|
115
|
+
}
|
|
116
|
+
return blockers;
|
|
117
|
+
}
|
|
118
|
+
function context(transition, registry = {}) { return deepFreeze({ transition, registry, policy: {} }); }
|
|
119
|
+
function record(value) { return value !== null && typeof value === 'object' && !Array.isArray(value) ? value : {}; }
|
|
120
|
+
function rows(value) { return Array.isArray(value) ? value.map(record) : []; }
|
|
121
|
+
function presence(value) { return Array.isArray(value) ? value.map(() => ({})) : []; }
|
|
122
|
+
function ref(value) { const entry = record(value); return { id: entry.id, version: entry.version }; }
|
|
123
|
+
function array(value) {
|
|
124
|
+
return Array.isArray(value) ? value : [];
|
|
125
|
+
}
|
|
126
|
+
function refText(value) {
|
|
127
|
+
const ref = value;
|
|
128
|
+
return ref && typeof ref.id === 'string' && Number.isInteger(ref.version) ? `${ref.id}@${ref.version}` : '';
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=core-static-readiness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-static-readiness.js","sourceRoot":"","sources":["../../../src/lifecycle/core-static-readiness.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
type AuthorityCallable = (...arguments_: readonly unknown[]) => unknown;
|
|
2
|
+
export interface AuthoritySemanticBinding {
|
|
3
|
+
readonly id: string;
|
|
4
|
+
readonly version: 1;
|
|
5
|
+
readonly kind: 'role-evaluator' | 'identity-comparator';
|
|
6
|
+
readonly implementationId: `implementation.${string}`;
|
|
7
|
+
readonly implementationVersion: number;
|
|
8
|
+
readonly wiring: 'invoked';
|
|
9
|
+
readonly callable: AuthorityCallable;
|
|
10
|
+
}
|
|
11
|
+
interface AuthorityIssue {
|
|
12
|
+
readonly issueId: string;
|
|
13
|
+
readonly path: string;
|
|
14
|
+
readonly message: string;
|
|
15
|
+
}
|
|
16
|
+
export declare const installedAuthoritySemanticBindings: readonly AuthoritySemanticBinding[];
|
|
17
|
+
/** Diagnostic-only assessment of the installed static tuple. It cannot issue a Core handle. */
|
|
18
|
+
export declare function assessCorrectiveReplanAuthorityTuple(tuple: unknown): {
|
|
19
|
+
reportHash: string;
|
|
20
|
+
staticTupleValid: boolean;
|
|
21
|
+
blockers: string[];
|
|
22
|
+
issues: AuthorityIssue[];
|
|
23
|
+
bindings: readonly AuthoritySemanticBinding[];
|
|
24
|
+
};
|
|
25
|
+
export declare function projectAuthoritySemanticBundle(bindings: readonly AuthoritySemanticBinding[]): {
|
|
26
|
+
bundleSha256: string;
|
|
27
|
+
bundleVersion: number;
|
|
28
|
+
bindingManifest: {
|
|
29
|
+
manifestSha256: string;
|
|
30
|
+
id: "binding-manifest.corrective-replan.exact-v1";
|
|
31
|
+
version: 1;
|
|
32
|
+
rows: {
|
|
33
|
+
ordinal: number;
|
|
34
|
+
bindingId: string;
|
|
35
|
+
projection: {
|
|
36
|
+
id: `projection.${string}`;
|
|
37
|
+
version: 1;
|
|
38
|
+
};
|
|
39
|
+
fieldId: `field.${string}`;
|
|
40
|
+
valueKind: "sha256" | "literal" | "safe-integer" | "entity-id" | "git-oid" | "actor-role";
|
|
41
|
+
canonicalization: "exact" | "lowercase-hex" | "safe-nonnegative-integer" | "nfc-trim" | "lowercase-git-oid" | "registered-enum";
|
|
42
|
+
receiptPath: `/binding/values/${string}`;
|
|
43
|
+
}[];
|
|
44
|
+
};
|
|
45
|
+
bindings: {
|
|
46
|
+
id: string;
|
|
47
|
+
version: 1;
|
|
48
|
+
kind: "role-evaluator" | "identity-comparator";
|
|
49
|
+
implementationId: `implementation.${string}`;
|
|
50
|
+
implementationVersion: number;
|
|
51
|
+
}[];
|
|
52
|
+
};
|
|
53
|
+
export {};
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { correctiveReplanBindingManifest } from './corrective-replan-binding-manifest.js';
|
|
3
|
+
import { hashCanonical } from './fingerprint.js';
|
|
4
|
+
import { deepFreeze } from './immutable.js';
|
|
5
|
+
const eligibleRole = (input) => roleVerdict(input);
|
|
6
|
+
const authorValidator = (input) => identityVerdict(input);
|
|
7
|
+
const authorRiskAuditor = (input) => identityVerdict(input);
|
|
8
|
+
const authorHumanPrincipal = (input) => identityVerdict(input);
|
|
9
|
+
export const installedAuthoritySemanticBindings = deepFreeze([
|
|
10
|
+
binding('authority-role-evaluator.corrective-replan.eligible-role', 'authority-role-evaluator.corrective-replan.eligible-role', 'role-evaluator', eligibleRole),
|
|
11
|
+
binding('identity-comparator.corrective-replan.author-validator', 'identity-comparator.corrective-replan.author-validator', 'identity-comparator', authorValidator),
|
|
12
|
+
binding('identity-comparator.corrective-replan.author-risk-auditor', 'identity-comparator.corrective-replan.author-risk-auditor', 'identity-comparator', authorRiskAuditor),
|
|
13
|
+
binding('identity-comparator.corrective-replan.author-human-principal', 'identity-comparator.corrective-replan.author-human-principal', 'identity-comparator', authorHumanPrincipal),
|
|
14
|
+
]);
|
|
15
|
+
const ref = (id) => ({ id, version: 1 });
|
|
16
|
+
const constraints = [
|
|
17
|
+
constraint('constraint.corrective-replan.author-not-validator', 'author-validator', 'actor.validator'),
|
|
18
|
+
constraint('constraint.corrective-replan.author-not-risk-auditor', 'author-risk-auditor', 'actor.risk-auditor'),
|
|
19
|
+
constraint('constraint.corrective-replan.author-not-human-principal', 'author-human-principal', 'principal.human'),
|
|
20
|
+
];
|
|
21
|
+
/** Diagnostic-only assessment of the installed static tuple. It cannot issue a Core handle. */
|
|
22
|
+
export function assessCorrectiveReplanAuthorityTuple(tuple) {
|
|
23
|
+
const value = record(tuple);
|
|
24
|
+
const issues = [];
|
|
25
|
+
extraFields(value, ['transitionId', 'actor', 'eligibleRoles', 'roleEvaluator', 'humanPrincipal', 'capability', 'delegation', 'ownership', 'constraints', 'priorPlanAuthorization'], '/', 'authority.tuple.extra-field', issues);
|
|
26
|
+
extraFields(record(value.actor), ['identity', 'basis'], '/actor/', 'authority.tuple.extra-field', issues);
|
|
27
|
+
extraFields(record(value.humanPrincipal), ['identity', 'basis', 'kind'], '/humanPrincipal/', 'authority.tuple.extra-field', issues);
|
|
28
|
+
extraFields(record(value.capability), ['id', 'version', 'source', 'issuer', 'transitionId', 'scope', 'bindingManifest'], '/capability/', 'authority.tuple.extra-field', issues);
|
|
29
|
+
extraFields(record(value.priorPlanAuthorization), ['disposition', 'authority'], '/priorPlanAuthorization/', 'authority.tuple.extra-field', issues);
|
|
30
|
+
check(value, '/transitionId', 'authority.transition.mismatch', 'task.plan.corrective-replan', issues);
|
|
31
|
+
check(value, '/actor/identity', 'authority.actor.identity-mismatch', ref('identity.actor'), issues);
|
|
32
|
+
check(value, '/actor/basis', 'authority.actor.basis-mismatch', ref('principal-basis.human-confirmation'), issues);
|
|
33
|
+
check(value, '/eligibleRoles', 'authority.role-evaluator.mismatch', ['delivery-coordinator', 'technical-planner'], issues);
|
|
34
|
+
check(value, '/roleEvaluator', 'authority.role-evaluator.mismatch', ref('authority-role-evaluator.corrective-replan.eligible-role'), issues);
|
|
35
|
+
check(value, '/humanPrincipal/identity', 'authority.principal.identity-mismatch', ref('identity.human-principal'), issues);
|
|
36
|
+
check(value, '/humanPrincipal/basis', 'authority.principal.basis-mismatch', ref('principal-basis.human-confirmation'), issues);
|
|
37
|
+
check(value, '/humanPrincipal/kind', 'authority.principal.kind-mismatch', 'human', issues);
|
|
38
|
+
const capability = get(value, '/capability');
|
|
39
|
+
if (!isRecord(capability))
|
|
40
|
+
issue(issues, 'authority.capability.missing', '/capability');
|
|
41
|
+
else {
|
|
42
|
+
check(value, '/capability/id', 'authority.capability.id-mismatch', 'capability.task.corrective-replan', issues);
|
|
43
|
+
check(value, '/capability/version', 'authority.capability.version-mismatch', 1, issues);
|
|
44
|
+
check(value, '/capability/source', 'authority.capability.source-mismatch', ref('authority-source.human-confirmation'), issues);
|
|
45
|
+
check(value, '/capability/issuer', 'authority.capability.issuer-mismatch', ref('identity.human-principal'), issues);
|
|
46
|
+
check(value, '/capability/transitionId', 'authority.capability.transition-mismatch', 'task.plan.corrective-replan', issues);
|
|
47
|
+
check(value, '/capability/scope', 'authority.capability.scope-mismatch', { entity: 'task', task: 'taskId', guardedStep: 'guardedStepId' }, issues);
|
|
48
|
+
if (capability.bindingManifest !== correctiveReplanBindingManifest)
|
|
49
|
+
issue(issues, 'authority.capability.binding-manifest-mismatch', '/capability/bindingManifest');
|
|
50
|
+
}
|
|
51
|
+
check(value, '/delegation', 'authority.delegation.not-forbidden', ref('delegation.forbidden'), issues);
|
|
52
|
+
check(value, '/ownership', 'authority.ownership.not-clear', { c1Claim: 'none', writerLease: 'none' }, issues);
|
|
53
|
+
const rows = Array.isArray(value.constraints) ? value.constraints : [];
|
|
54
|
+
const seen = new Set();
|
|
55
|
+
rows.forEach((entry, index) => {
|
|
56
|
+
const id = isRecord(entry) && typeof entry.constraintId === 'string' ? entry.constraintId : '';
|
|
57
|
+
if (seen.has(id))
|
|
58
|
+
issue(issues, 'authority.constraint.duplicate', `/constraints/${index}/constraintId`);
|
|
59
|
+
else if (id === 'constraint.corrective-replan.validator-not-risk-auditor')
|
|
60
|
+
issue(issues, 'authority.constraint.forbidden-validator-risk', `/constraints/${index}`);
|
|
61
|
+
else if (!constraints.some((expected) => expected.constraintId === id))
|
|
62
|
+
issue(issues, 'authority.constraint.unknown', `/constraints/${index}/constraintId`);
|
|
63
|
+
seen.add(id);
|
|
64
|
+
if (isRecord(entry))
|
|
65
|
+
extraFields(entry, ['constraintId', 'comparator', 'operands', 'relation', 'missing', 'enforcement'], `/constraints/${index}/`, 'authority.constraint.extra-field', issues);
|
|
66
|
+
});
|
|
67
|
+
constraints.forEach((expected, index) => {
|
|
68
|
+
const actualIndex = rows.findIndex((entry) => isRecord(entry) && entry.constraintId === expected.constraintId);
|
|
69
|
+
if (actualIndex < 0)
|
|
70
|
+
return issue(issues, 'authority.constraint.missing', `/constraints/${index}`);
|
|
71
|
+
for (const field of ['comparator', 'operands', 'relation', 'missing', 'enforcement']) {
|
|
72
|
+
check(value, `/constraints/${actualIndex}/${field}`, `authority.constraint.${field === 'comparator' ? 'comparator-id' : field}-mismatch`, expected[field], issues, field === 'comparator' ? `/constraints/${index}/${field}/id` : `/constraints/${index}/${field}`);
|
|
73
|
+
if (field === 'comparator')
|
|
74
|
+
check(value, `/constraints/${actualIndex}/comparator/version`, 'authority.constraint.comparator-version-mismatch', 1, issues, `/constraints/${index}/comparator/version`);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
check(value, '/priorPlanAuthorization/disposition', 'authority.plan-bound-grant-active', 'superseded', issues);
|
|
78
|
+
check(value, '/priorPlanAuthorization/authority', 'authority.plan-bound-grant-active', 'none', issues);
|
|
79
|
+
const ordered = [...issues].sort((a, b) => `${a.path}\0${a.issueId}`.localeCompare(`${b.path}\0${b.issueId}`));
|
|
80
|
+
const blockers = [];
|
|
81
|
+
if (ordered.some((entry) => entry.issueId === 'authority.capability.missing'))
|
|
82
|
+
blockers.push('static.authority.exact-capability-missing');
|
|
83
|
+
if (ordered.some((entry) => entry.issueId === 'authority.plan-bound-grant-active'))
|
|
84
|
+
blockers.push('static.authority.plan-bound-grant-not-superseded');
|
|
85
|
+
if (ordered.length > 0)
|
|
86
|
+
blockers.push('static.authority.exact-tuple-invalid');
|
|
87
|
+
const content = { staticTupleValid: ordered.length === 0, blockers: [...new Set(blockers)], issues: ordered,
|
|
88
|
+
bindings: installedAuthoritySemanticBindings };
|
|
89
|
+
return deepFreeze({ ...content, reportHash: hashCanonical({ ...content, bindings: content.bindings.map(projectBinding) }) });
|
|
90
|
+
}
|
|
91
|
+
function binding(id, suffix, kind, callable) {
|
|
92
|
+
return { id, version: 1, kind, implementationId: `implementation.${suffix}`, implementationVersion: 1, wiring: 'invoked', callable };
|
|
93
|
+
}
|
|
94
|
+
export function projectAuthoritySemanticBundle(bindings) {
|
|
95
|
+
const projection = { bundleVersion: 2, bindingManifest: correctiveReplanBindingManifest, bindings: bindings.map(projectBinding) };
|
|
96
|
+
return deepFreeze({ ...projection, bundleSha256: createHash('sha256').update(JSON.stringify(projection)).digest('hex') });
|
|
97
|
+
}
|
|
98
|
+
function constraint(constraintId, suffix, right) {
|
|
99
|
+
return { constraintId,
|
|
100
|
+
comparator: ref(`identity-comparator.corrective-replan.${suffix}`), operands: ['actor.author', right],
|
|
101
|
+
relation: 'not-equal', missing: 'block', enforcement: 'static-and-runtime' };
|
|
102
|
+
}
|
|
103
|
+
function roleVerdict(input) {
|
|
104
|
+
const value = record(input);
|
|
105
|
+
const roles = ['delivery-coordinator', 'technical-planner'];
|
|
106
|
+
if (!/^[a-f0-9]{64}$/.test(String(value.actorIdentityHash ?? '')) || !sameSet(value.eligibleRoles, roles)
|
|
107
|
+
|| typeof value.actorRole !== 'string' || value.actorRole.length === 0)
|
|
108
|
+
return verdict(false, 'ROLE_INPUT_INVALID');
|
|
109
|
+
return roles.includes(value.actorRole) ? verdict(true, null) : verdict(false, 'ROLE_NOT_ELIGIBLE');
|
|
110
|
+
}
|
|
111
|
+
function identityVerdict(input) {
|
|
112
|
+
const value = record(input);
|
|
113
|
+
const valid = /^[a-f0-9]{64}$/;
|
|
114
|
+
if (typeof value.leftIdentityHash !== 'string' || typeof value.rightIdentityHash !== 'string'
|
|
115
|
+
|| !valid.test(value.leftIdentityHash) || !valid.test(value.rightIdentityHash))
|
|
116
|
+
return verdict(false, 'IDENTITY_INPUT_INVALID');
|
|
117
|
+
return value.leftIdentityHash !== value.rightIdentityHash ? verdict(true, null) : verdict(false, 'IDENTITY_CONSTRAINT_VIOLATED');
|
|
118
|
+
}
|
|
119
|
+
function verdict(passed, reasonCode) { return deepFreeze({ passed, blocked: !passed, reasonCode }); }
|
|
120
|
+
function projectBinding({ callable: _callable, wiring: _wiring, ...binding }) { return binding; }
|
|
121
|
+
function record(value) { return isRecord(value) ? value : {}; }
|
|
122
|
+
function isRecord(value) { return value !== null && typeof value === 'object' && !Array.isArray(value); }
|
|
123
|
+
function get(value, path) {
|
|
124
|
+
return path.split('/').filter(Boolean).reduce((cursor, key) => Array.isArray(cursor) && /^\d+$/.test(key) ? cursor[Number(key)] : isRecord(cursor) ? cursor[key] : undefined, value);
|
|
125
|
+
}
|
|
126
|
+
function check(value, path, issueId, expected, issues, reportedPath = path) {
|
|
127
|
+
const actual = get(value, path);
|
|
128
|
+
if (actual === undefined || hashCanonical(actual) !== hashCanonical(expected))
|
|
129
|
+
issue(issues, issueId, reportedPath);
|
|
130
|
+
}
|
|
131
|
+
function sameSet(value, expected) {
|
|
132
|
+
return Array.isArray(value) && value.length === expected.length
|
|
133
|
+
&& new Set(value).size === expected.length && value.every((entry) => typeof entry === 'string' && expected.includes(entry));
|
|
134
|
+
}
|
|
135
|
+
function extraFields(value, allowed, prefix, issueId, issues) {
|
|
136
|
+
Object.keys(value).filter((key) => !allowed.includes(key)).forEach((key) => issue(issues, issueId, `${prefix}${key}`));
|
|
137
|
+
}
|
|
138
|
+
function issue(issues, issueId, path) { issues.push({ issueId, path, message: `${issueId} at ${path}.` }); }
|
|
139
|
+
//# sourceMappingURL=corrective-replan-authority.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"corrective-replan-authority.js","sourceRoot":"","sources":["../../../src/lifecycle/corrective-replan-authority.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
type ValueKind = 'literal' | 'sha256' | 'safe-integer' | 'entity-id' | 'git-oid' | 'actor-role';
|
|
2
|
+
type Canonicalization = 'exact' | 'lowercase-hex' | 'safe-nonnegative-integer' | 'nfc-trim' | 'lowercase-git-oid' | 'registered-enum';
|
|
3
|
+
export declare const correctiveReplanBindingManifest: {
|
|
4
|
+
manifestSha256: string;
|
|
5
|
+
id: "binding-manifest.corrective-replan.exact-v1";
|
|
6
|
+
version: 1;
|
|
7
|
+
rows: {
|
|
8
|
+
ordinal: number;
|
|
9
|
+
bindingId: string;
|
|
10
|
+
projection: {
|
|
11
|
+
id: `projection.${string}`;
|
|
12
|
+
version: 1;
|
|
13
|
+
};
|
|
14
|
+
fieldId: `field.${string}`;
|
|
15
|
+
valueKind: ValueKind;
|
|
16
|
+
canonicalization: Canonicalization;
|
|
17
|
+
receiptPath: `/binding/values/${string}`;
|
|
18
|
+
}[];
|
|
19
|
+
};
|
|
20
|
+
export declare const correctiveReplanBindingIds: string[];
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { hashCanonical } from './canonical-hash.js';
|
|
2
|
+
import { deepFreeze } from './immutable.js';
|
|
3
|
+
const ref = (id) => ({ id, version: 1 });
|
|
4
|
+
const row = (bindingId, projection, fieldId, valueKind, canonicalization) => ({
|
|
5
|
+
ordinal: rowsOrdinal++, bindingId, projection: ref(projection), fieldId, valueKind, canonicalization,
|
|
6
|
+
receiptPath: `/binding/values/${bindingId}`,
|
|
7
|
+
});
|
|
8
|
+
let rowsOrdinal = 0;
|
|
9
|
+
const protocol = (id, field, kind, canonical) => row(id, 'projection.corrective-replan.protocol', field, kind, canonical);
|
|
10
|
+
const state = (id, field, kind, canonical) => row(id, 'projection.corrective-replan.state', field, kind, canonical);
|
|
11
|
+
const candidate = (id, field) => row(id, 'projection.corrective-replan.candidate', field, 'sha256', 'lowercase-hex');
|
|
12
|
+
const authority = (id, field, kind, canonical) => row(id, 'projection.corrective-replan.authority', field, kind, canonical);
|
|
13
|
+
const rows = [
|
|
14
|
+
protocol('transitionId', 'field.transition-id', 'literal', 'exact'), protocol('runtimeFingerprint', 'field.runtime-fingerprint', 'sha256', 'lowercase-hex'),
|
|
15
|
+
protocol('catalogHash', 'field.catalog-hash', 'sha256', 'lowercase-hex'), protocol('lifecycleEpoch', 'field.lifecycle-epoch', 'safe-integer', 'safe-nonnegative-integer'),
|
|
16
|
+
state('taskId', 'field.task-id', 'entity-id', 'nfc-trim'), state('revision', 'field.task-revision', 'safe-integer', 'safe-nonnegative-integer'),
|
|
17
|
+
state('currentPlanHash', 'field.current-plan-hash', 'sha256', 'lowercase-hex'), state('briefHash', 'field.brief-hash', 'sha256', 'lowercase-hex'),
|
|
18
|
+
state('knowledgeRevision', 'field.knowledge-revision', 'safe-integer', 'safe-nonnegative-integer'), state('knowledgeHash', 'field.knowledge-hash', 'sha256', 'lowercase-hex'),
|
|
19
|
+
state('gitHead', 'field.git-head', 'git-oid', 'lowercase-git-oid'), state('guardedStepId', 'field.guarded-step-id', 'entity-id', 'nfc-trim'),
|
|
20
|
+
state('correctiveDecisionEventId', 'field.corrective-decision-event-id', 'entity-id', 'nfc-trim'), state('correctiveDecisionHash', 'field.corrective-decision-hash', 'sha256', 'lowercase-hex'),
|
|
21
|
+
state('attemptCount', 'field.attempt-count', 'safe-integer', 'safe-nonnegative-integer'), state('remediationTailHash', 'field.remediation-tail-hash', 'sha256', 'lowercase-hex'),
|
|
22
|
+
candidate('candidatePlanHash', 'field.candidate-plan-hash'), candidate('candidateStepSetHash', 'field.candidate-step-set-hash'),
|
|
23
|
+
candidate('planAuthorIdentityHash', 'field.plan-author-identity-hash'), candidate('planValidationHash', 'field.plan-validation-hash'),
|
|
24
|
+
candidate('planValidatorIdentityHash', 'field.plan-validator-identity-hash'), candidate('riskAuditHash', 'field.risk-audit-hash'), candidate('riskAuditorIdentityHash', 'field.risk-auditor-identity-hash'),
|
|
25
|
+
authority('actorIdentityHash', 'field.actor-identity-hash', 'sha256', 'lowercase-hex'), authority('actorRole', 'field.actor-role', 'actor-role', 'registered-enum'),
|
|
26
|
+
authority('humanPrincipalIdentityHash', 'field.human-principal-identity-hash', 'sha256', 'lowercase-hex'), authority('capabilityId', 'field.capability-id', 'literal', 'exact'),
|
|
27
|
+
authority('capabilityVersion', 'field.capability-version', 'safe-integer', 'safe-nonnegative-integer'),
|
|
28
|
+
];
|
|
29
|
+
const identity = { id: 'binding-manifest.corrective-replan.exact-v1', version: 1, rows };
|
|
30
|
+
export const correctiveReplanBindingManifest = deepFreeze({
|
|
31
|
+
...identity,
|
|
32
|
+
manifestSha256: hashCanonical({ ...identity, rows: [...rows].sort((a, b) => a.bindingId.localeCompare(b.bindingId)) }),
|
|
33
|
+
});
|
|
34
|
+
export const correctiveReplanBindingIds = deepFreeze(rows.map(({ bindingId }) => bindingId));
|
|
35
|
+
//# sourceMappingURL=corrective-replan-binding-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"corrective-replan-binding-manifest.js","sourceRoot":"","sources":["../../../src/lifecycle/corrective-replan-binding-manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
type JsonRecord = Record<string, unknown>;
|
|
2
|
+
type Reason = 'schema' | 'binding' | 'authority' | 'sod' | 'time' | 'integrity' | 'provenance';
|
|
3
|
+
type Issue = Readonly<{
|
|
4
|
+
issueId: string;
|
|
5
|
+
path: string;
|
|
6
|
+
reasonClass: Reason;
|
|
7
|
+
}>;
|
|
8
|
+
type Result<T> = Readonly<{
|
|
9
|
+
ok: true;
|
|
10
|
+
value: Readonly<T>;
|
|
11
|
+
issues: readonly [];
|
|
12
|
+
}> | Readonly<{
|
|
13
|
+
ok: false;
|
|
14
|
+
value: null;
|
|
15
|
+
issues: readonly Issue[];
|
|
16
|
+
reportHash: string;
|
|
17
|
+
}>;
|
|
18
|
+
type Verification<T> = Readonly<{
|
|
19
|
+
valid: true;
|
|
20
|
+
projection: Readonly<T>;
|
|
21
|
+
issues: readonly [];
|
|
22
|
+
reportHash: string;
|
|
23
|
+
}> | Readonly<{
|
|
24
|
+
valid: false;
|
|
25
|
+
projection: null;
|
|
26
|
+
issues: readonly Issue[];
|
|
27
|
+
reportHash: string;
|
|
28
|
+
}>;
|
|
29
|
+
declare const planBrand: unique symbol;
|
|
30
|
+
declare const challengeBrand: unique symbol;
|
|
31
|
+
declare const confirmationBrand: unique symbol;
|
|
32
|
+
declare const receiptBrand: unique symbol;
|
|
33
|
+
declare const eventBrand: unique symbol;
|
|
34
|
+
export type PlanValidationHandle = Readonly<{
|
|
35
|
+
[planBrand]: never;
|
|
36
|
+
}>;
|
|
37
|
+
export type HumanChallengeHandle = Readonly<{
|
|
38
|
+
[challengeBrand]: never;
|
|
39
|
+
}>;
|
|
40
|
+
export type VerifiedConfirmationHandle = Readonly<{
|
|
41
|
+
[confirmationBrand]: never;
|
|
42
|
+
}>;
|
|
43
|
+
export type ReceiptHandle = Readonly<{
|
|
44
|
+
[receiptBrand]: never;
|
|
45
|
+
}>;
|
|
46
|
+
export type StoredPlanValidationEventHandle = Readonly<{
|
|
47
|
+
[eventBrand]: never;
|
|
48
|
+
}>;
|
|
49
|
+
export interface CorrectiveReplanCredentialCorePorts {
|
|
50
|
+
readonly snapshotSource: {
|
|
51
|
+
readCorrectiveReplanSnapshot(taskId: string): unknown;
|
|
52
|
+
};
|
|
53
|
+
readonly coreClock: {
|
|
54
|
+
nowMs(): number;
|
|
55
|
+
};
|
|
56
|
+
readonly idSource: {
|
|
57
|
+
nextId(kind: 'plan-validation-attestation' | 'human-challenge' | 'receipt' | 'plan-validation-event'): string;
|
|
58
|
+
};
|
|
59
|
+
readonly challengeCodeSource: {
|
|
60
|
+
issueConfirmationCode(): string;
|
|
61
|
+
};
|
|
62
|
+
readonly validationEventTailSource: {
|
|
63
|
+
readPlanValidationTail(taskId: string): unknown;
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
export interface CorrectiveReplanCredentialKernel {
|
|
67
|
+
issuePlanValidation(input: unknown): Result<JsonRecord>;
|
|
68
|
+
issueHumanChallenge(input: unknown): Result<JsonRecord>;
|
|
69
|
+
confirmHuman(input: unknown): Result<JsonRecord>;
|
|
70
|
+
issueReceipt(input: unknown): Result<JsonRecord>;
|
|
71
|
+
verifyReceipt(input: unknown): Verification<JsonRecord>;
|
|
72
|
+
materializeStoredEvent(input: unknown): Result<JsonRecord>;
|
|
73
|
+
verifyStoredEvent(input: unknown): Verification<JsonRecord>;
|
|
74
|
+
}
|
|
75
|
+
export interface CredentialFunctionBinding {
|
|
76
|
+
readonly id: string;
|
|
77
|
+
readonly version: 1;
|
|
78
|
+
readonly kind: 'materializer' | 'verifier';
|
|
79
|
+
readonly implementationId: `implementation.${string}`;
|
|
80
|
+
readonly implementationVersion: 1;
|
|
81
|
+
readonly wiring: 'invoked';
|
|
82
|
+
readonly callable: (issuer: unknown, input: unknown) => unknown;
|
|
83
|
+
}
|
|
84
|
+
export declare function createCorrectiveReplanCredentialKernel(ports: CorrectiveReplanCredentialCorePorts): CorrectiveReplanCredentialKernel;
|
|
85
|
+
export declare const correctiveReplanCredentialFunctionBindings: readonly CredentialFunctionBinding[];
|
|
86
|
+
export {};
|