@xemahq/agent-session-runtime 0.6.7 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/agent-resolution.d.ts.map +1 -1
- package/dist/lib/agent-resolution.js.map +1 -1
- package/dist/lib/dispatch-contract.d.ts +2 -1
- package/dist/lib/dispatch-contract.d.ts.map +1 -1
- package/dist/lib/launch-identity/canonical-contract.d.ts +22 -0
- package/dist/lib/launch-identity/canonical-contract.d.ts.map +1 -0
- package/dist/lib/launch-identity/canonical-contract.js +229 -0
- package/dist/lib/launch-identity/canonical-contract.js.map +1 -0
- package/dist/lib/launch-identity/compiled-session-launch-plan-store.d.ts +44 -0
- package/dist/lib/launch-identity/compiled-session-launch-plan-store.d.ts.map +1 -0
- package/dist/lib/launch-identity/compiled-session-launch-plan-store.js +116 -0
- package/dist/lib/launch-identity/compiled-session-launch-plan-store.js.map +1 -0
- package/dist/lib/launch-identity/compiled-session-launch-plan.d.ts +84 -0
- package/dist/lib/launch-identity/compiled-session-launch-plan.d.ts.map +1 -0
- package/dist/lib/launch-identity/compiled-session-launch-plan.js +382 -0
- package/dist/lib/launch-identity/compiled-session-launch-plan.js.map +1 -0
- package/dist/lib/launch-identity/index.d.ts +7 -0
- package/dist/lib/launch-identity/index.d.ts.map +1 -0
- package/dist/lib/launch-identity/index.js +23 -0
- package/dist/lib/launch-identity/index.js.map +1 -0
- package/dist/lib/launch-identity/runtime-template-key.d.ts +30 -0
- package/dist/lib/launch-identity/runtime-template-key.d.ts.map +1 -0
- package/dist/lib/launch-identity/runtime-template-key.js +69 -0
- package/dist/lib/launch-identity/runtime-template-key.js.map +1 -0
- package/dist/lib/launch-identity/session-binding.d.ts +24 -0
- package/dist/lib/launch-identity/session-binding.d.ts.map +1 -0
- package/dist/lib/launch-identity/session-binding.js +62 -0
- package/dist/lib/launch-identity/session-binding.js.map +1 -0
- package/dist/lib/launch-identity/thread-reuse-key.d.ts +19 -0
- package/dist/lib/launch-identity/thread-reuse-key.d.ts.map +1 -0
- package/dist/lib/launch-identity/thread-reuse-key.js +46 -0
- package/dist/lib/launch-identity/thread-reuse-key.js.map +1 -0
- package/package.json +7 -5
- package/src/index.ts +1 -0
- package/src/lib/agent-resolution.ts +15 -4
- package/src/lib/dispatch-contract.ts +4 -9
- package/src/lib/launch-identity/canonical-contract.ts +352 -0
- package/src/lib/launch-identity/compiled-session-launch-plan-store.ts +178 -0
- package/src/lib/launch-identity/compiled-session-launch-plan.ts +681 -0
- package/src/lib/launch-identity/index.ts +6 -0
- package/src/lib/launch-identity/runtime-template-key.ts +143 -0
- package/src/lib/launch-identity/session-binding.ts +152 -0
- package/src/lib/launch-identity/thread-reuse-key.ts +93 -0
package/README.md
CHANGED
|
@@ -33,13 +33,18 @@ compiled workspace manifest plus bind context into a typed mount plan. It does
|
|
|
33
33
|
not know which agent runtime executes the session — that is a concrete driver
|
|
34
34
|
package. Provided here: the session-driver and image-applier/composer
|
|
35
35
|
interfaces, a default mount-plan composer, the session-frame discriminator,
|
|
36
|
-
environment resolution, drift detection,
|
|
36
|
+
environment resolution, drift detection, lifecycle state, and canonical launch
|
|
37
|
+
identity contracts. `RuntimeTemplateKey` identifies only reusable immutable
|
|
38
|
+
compute; `SessionBinding` contains tenant/session refs; `ThreadReuseKey` is the
|
|
39
|
+
strict same-user conversation and filesystem reuse identity. Adding a new
|
|
37
40
|
runtime adapter means one new package implementing these interfaces.
|
|
38
41
|
|
|
39
42
|
## When to use it
|
|
40
43
|
|
|
41
44
|
- Use it to compose a mount plan from a workspace manifest, or to implement a
|
|
42
45
|
concrete agent-session driver against the shared interfaces.
|
|
46
|
+
- Use the launch identity constructors and hashes to keep warm-compute
|
|
47
|
+
compatibility separate from tenant binding and Thread reuse decisions.
|
|
43
48
|
|
|
44
49
|
## Installation
|
|
45
50
|
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAyBA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sCAAsC,CAAC;AACrD,cAAc,cAAc,CAAC;AAC7B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAyBA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sCAAsC,CAAC;AACrD,cAAc,cAAc,CAAC;AAC7B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -24,4 +24,5 @@ __exportStar(require("./lib/environment-resolver"), exports);
|
|
|
24
24
|
__exportStar(require("./lib/drift-detector"), exports);
|
|
25
25
|
__exportStar(require("./lib/lifecycle-state"), exports);
|
|
26
26
|
__exportStar(require("./lib/dispatch-contract"), exports);
|
|
27
|
+
__exportStar(require("./lib/launch-identity"), exports);
|
|
27
28
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAyBA,8CAA4B;AAC5B,iDAA+B;AAC/B,iEAA+C;AAC/C,yDAAuC;AACvC,uEAAqD;AACrD,+CAA6B;AAC7B,6DAA2C;AAC3C,uDAAqC;AACrC,wDAAsC;AACtC,0DAAwC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAyBA,8CAA4B;AAC5B,iDAA+B;AAC/B,iEAA+C;AAC/C,yDAAuC;AACvC,uEAAqD;AACrD,+CAA6B;AAC7B,6DAA2C;AAC3C,uDAAqC;AACrC,wDAAsC;AACtC,0DAAwC;AACxC,wDAAsC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-resolution.d.ts","sourceRoot":"","sources":["../../src/lib/agent-resolution.ts"],"names":[],"mappings":"AA4BA,OAAO,EAIL,KAAK,QAAQ,EACb,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,eAAe,EACrB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EAClB,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,mCAAmC,CAAC;AAU3C,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAI5C;AAWD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC;IAClC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;CACrC;AAGD,MAAM,WAAW,mBAAmB;IAKlC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAClC;AAOD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAElC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-resolution.d.ts","sourceRoot":"","sources":["../../src/lib/agent-resolution.ts"],"names":[],"mappings":"AA4BA,OAAO,EAIL,KAAK,QAAQ,EACb,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,eAAe,EACrB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EAClB,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,mCAAmC,CAAC;AAU3C,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAI5C;AAWD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC;IAClC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;CACrC;AAGD,MAAM,WAAW,mBAAmB;IAKlC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAClC;AAOD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAElC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IAkB5C,QAAQ,CAAC,iBAAiB,EAAE,eAAe,GAAG,IAAI,CAAC;IAEnD,QAAQ,CAAC,iBAAiB,EAAE,aAAa,GAAG,IAAI,CAAC;IAEjD,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,GAAG,IAAI,CAAC;IAE/C,QAAQ,CAAC,gBAAgB,EAAE,SAAS,eAAe,EAAE,CAAC;IACtD,QAAQ,CAAC,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACtE,QAAQ,CAAC,wBAAwB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;IAC7E,QAAQ,CAAC,wBAAwB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IAC3E,QAAQ,CAAC,4BAA4B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE1E,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IAE9C,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAE1C,QAAQ,CAAC,oBAAoB,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAC9D;AAaD,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,iBAAiB,GACtB,SAAS,kBAAkB,EAAE,CA0B/B;AAQD,wBAAgB,aAAa,CAC3B,IAAI,EAAE,iBAAiB,EACvB,IAAI,CAAC,EAAE,mBAAmB,GACzB,SAAS,MAAM,EAAE,CAuBnB;AAQD,wBAAgB,YAAY,CAC1B,IAAI,EAAE,iBAAiB,EACvB,IAAI,CAAC,EAAE,mBAAmB,GACzB,SAAS,kBAAkB,EAAE,CAe/B;AAOD,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,iBAAiB,GACtB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAIlC;AAOD,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,iBAAiB,GACtB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAE3C;AAMD,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,iBAAiB,GACtB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAIzC;AAOD,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,iBAAiB,GACtB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAIpC;AA2CD,wBAAgB,kBAAkB,CAChC,gBAAgB,EAAE,MAAM,EACxB,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAC9B,MAAM,CAWR;AAWD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAM5E;AAQD,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,aAAa,GAAG,SAAS,GAC7B,aAAa,GAAG,IAAI,CAKtB;AAOD,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,QAAQ,GAAG,SAAS,EACzB,OAAO,EAAE,MAAM,GACd,QAAQ,GAAG,IAAI,CA4BjB;AAqGD,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,kBAAkB,CA2CpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-resolution.js","sourceRoot":"","sources":["../../src/lib/agent-resolution.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"agent-resolution.js","sourceRoot":"","sources":["../../src/lib/agent-resolution.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,8 @@ export interface CreateAndRunDispatch {
|
|
|
18
18
|
readonly pipelineRunId: string;
|
|
19
19
|
readonly jobRunId: string;
|
|
20
20
|
readonly jobKey: string;
|
|
21
|
-
readonly
|
|
21
|
+
readonly agentRevisionId: string;
|
|
22
|
+
readonly agentContentHash: string;
|
|
22
23
|
readonly agentSlug: string;
|
|
23
24
|
readonly promptContext: DispatchPromptContext;
|
|
24
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch-contract.d.ts","sourceRoot":"","sources":["../../src/lib/dispatch-contract.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAMrE,eAAO,MAAM,wBAAwB;;;CAK3B,CAAC;AAEX,MAAM,MAAM,6BAA6B,GACvC,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,OAAO,wBAAwB,CAAC,CAAC;AAa3E,MAAM,WAAW,aAAa;IAM5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAQD,MAAM,WAAW,qBAAqB;IAEpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAMxB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAKnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAMD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,OAAO,wBAAwB,CAAC,cAAc,CAAC;IAE9D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"dispatch-contract.d.ts","sourceRoot":"","sources":["../../src/lib/dispatch-contract.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAMrE,eAAO,MAAM,wBAAwB;;;CAK3B,CAAC;AAEX,MAAM,MAAM,6BAA6B,GACvC,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,OAAO,wBAAwB,CAAC,CAAC;AAa3E,MAAM,WAAW,aAAa;IAM5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAQD,MAAM,WAAW,qBAAqB;IAEpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAMxB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAKnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAMD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,OAAO,wBAAwB,CAAC,cAAc,CAAC;IAE9D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAEjC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAC;CAC/C;AAOD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,OAAO,wBAAwB,CAAC,cAAc,CAAC;IAC9D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,SAAS,aAAa,EAAE,CAAC;IAClD,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAC;CAC/C;AAED,MAAM,MAAM,2BAA2B,GACnC,oBAAoB,GACpB,oBAAoB,CAAC;AAUzB,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,QAAQ,CAAC,YAAY,EAAE,SAAS,WAAW,EAAE,CAAC;IAK9C,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IAKnC,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;CACvC;AAQD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export type CanonicalJsonValue = boolean | number | string | null | readonly CanonicalJsonValue[] | {
|
|
2
|
+
readonly [key: string]: CanonicalJsonValue;
|
|
3
|
+
};
|
|
4
|
+
export interface ResourceBindingRef {
|
|
5
|
+
readonly kind: string;
|
|
6
|
+
readonly ref: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function canonicalContractJson(value: unknown): string;
|
|
9
|
+
export declare function hashCanonicalContract(value: unknown): string;
|
|
10
|
+
export declare function requireExactObject(value: unknown, path: string, requiredKeys: readonly string[], optionalKeys?: readonly string[]): Readonly<Record<string, unknown>>;
|
|
11
|
+
export declare function requireNonEmptyString(value: unknown, path: string): string;
|
|
12
|
+
export declare function requireBoolean(value: unknown, path: string): boolean;
|
|
13
|
+
export declare function requireSha256(value: unknown, path: string): string;
|
|
14
|
+
export declare function requireImageDigest(value: unknown, path: string): string;
|
|
15
|
+
export declare function requireNonNegativeSafeInteger(value: unknown, path: string): number;
|
|
16
|
+
export declare function requireEnumValue<T extends string>(value: unknown, path: string, values: readonly T[]): T;
|
|
17
|
+
export declare function requireStringRefs(value: unknown, path: string): readonly string[];
|
|
18
|
+
export declare function requireResourceBindingRefs(value: unknown, path: string): readonly ResourceBindingRef[];
|
|
19
|
+
export declare function requireSecretFreeJsonObject(value: unknown, path: string): Readonly<Record<string, CanonicalJsonValue>>;
|
|
20
|
+
export declare function requireCanonicalJsonObject(value: unknown, path: string): Readonly<Record<string, CanonicalJsonValue>>;
|
|
21
|
+
export declare function assertNoTenantOrSecretTemplateFields(value: unknown, path: string): void;
|
|
22
|
+
//# sourceMappingURL=canonical-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonical-contract.d.ts","sourceRoot":"","sources":["../../../src/lib/launch-identity/canonical-contract.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,kBAAkB,GAC1B,OAAO,GACP,MAAM,GACN,MAAM,GACN,IAAI,GACJ,SAAS,kBAAkB,EAAE,GAC7B;IAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAAA;CAAE,CAAC;AAEnD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAeD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE5D;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE5D;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,YAAY,GAAE,SAAS,MAAM,EAAO,GACnC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAmBnC;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAK1E;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAKpE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMlE;AAYD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAevE;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,GACX,MAAM,CAKR;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAC/C,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,SAAS,CAAC,EAAE,GACnB,CAAC,CAOH;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,GACX,SAAS,MAAM,EAAE,CAcnB;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,GACX,SAAS,kBAAkB,EAAE,CAsB/B;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,GACX,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAU9C;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,GACX,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAU9C;AAED,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,GACX,IAAI,CAiCN"}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.canonicalContractJson = canonicalContractJson;
|
|
4
|
+
exports.hashCanonicalContract = hashCanonicalContract;
|
|
5
|
+
exports.requireExactObject = requireExactObject;
|
|
6
|
+
exports.requireNonEmptyString = requireNonEmptyString;
|
|
7
|
+
exports.requireBoolean = requireBoolean;
|
|
8
|
+
exports.requireSha256 = requireSha256;
|
|
9
|
+
exports.requireImageDigest = requireImageDigest;
|
|
10
|
+
exports.requireNonNegativeSafeInteger = requireNonNegativeSafeInteger;
|
|
11
|
+
exports.requireEnumValue = requireEnumValue;
|
|
12
|
+
exports.requireStringRefs = requireStringRefs;
|
|
13
|
+
exports.requireResourceBindingRefs = requireResourceBindingRefs;
|
|
14
|
+
exports.requireSecretFreeJsonObject = requireSecretFreeJsonObject;
|
|
15
|
+
exports.requireCanonicalJsonObject = requireCanonicalJsonObject;
|
|
16
|
+
exports.assertNoTenantOrSecretTemplateFields = assertNoTenantOrSecretTemplateFields;
|
|
17
|
+
const declarative_reconciler_1 = require("@xemahq/declarative-reconciler");
|
|
18
|
+
const content_address_1 = require("@xemahq/kernel-contracts/content-address");
|
|
19
|
+
const IMAGE_DIGEST_PREFIX = 'sha256:';
|
|
20
|
+
const SECRET_FIELD_PATTERN = /(?:^|[_-])(api[_-]?key|authorization|cookie|credential|password|private[_-]?key|secret|token)(?:$|[_-])/iu;
|
|
21
|
+
const SECRET_CAMEL_CASE_PATTERN = /(?:apiKey|authorization|cookie|credential|password|privateKey|secret|token)/u;
|
|
22
|
+
const SECRET_REFERENCE_SUFFIX_PATTERN = /Refs?$/u;
|
|
23
|
+
function canonicalContractJson(value) {
|
|
24
|
+
return (0, declarative_reconciler_1.canonicalJson)(value);
|
|
25
|
+
}
|
|
26
|
+
function hashCanonicalContract(value) {
|
|
27
|
+
return (0, declarative_reconciler_1.stableHash)(value);
|
|
28
|
+
}
|
|
29
|
+
function requireExactObject(value, path, requiredKeys, optionalKeys = []) {
|
|
30
|
+
if (!isPlainObject(value)) {
|
|
31
|
+
throw new TypeError(`${path} must be a plain object.`);
|
|
32
|
+
}
|
|
33
|
+
const allowedKeys = new Set([...requiredKeys, ...optionalKeys]);
|
|
34
|
+
for (const key of Object.keys(value)) {
|
|
35
|
+
if (!allowedKeys.has(key)) {
|
|
36
|
+
throw new TypeError(`${path}.${key} is not a supported field.`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
for (const key of requiredKeys) {
|
|
40
|
+
if (!Object.hasOwn(value, key)) {
|
|
41
|
+
throw new TypeError(`${path}.${key} is required.`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return value;
|
|
45
|
+
}
|
|
46
|
+
function requireNonEmptyString(value, path) {
|
|
47
|
+
if (typeof value !== 'string' || value.trim().length === 0) {
|
|
48
|
+
throw new TypeError(`${path} must be a non-empty string.`);
|
|
49
|
+
}
|
|
50
|
+
return value;
|
|
51
|
+
}
|
|
52
|
+
function requireBoolean(value, path) {
|
|
53
|
+
if (typeof value !== 'boolean') {
|
|
54
|
+
throw new TypeError(`${path} must be a boolean.`);
|
|
55
|
+
}
|
|
56
|
+
return value;
|
|
57
|
+
}
|
|
58
|
+
function requireSha256(value, path) {
|
|
59
|
+
const hash = requireNonEmptyString(value, path);
|
|
60
|
+
if (!content_address_1.Sha256HexSchema.safeParse(hash).success) {
|
|
61
|
+
throw new TypeError(`${path} must be a lowercase SHA-256 hex digest.`);
|
|
62
|
+
}
|
|
63
|
+
return hash;
|
|
64
|
+
}
|
|
65
|
+
function requireImageDigest(value, path) {
|
|
66
|
+
const digest = requireNonEmptyString(value, path);
|
|
67
|
+
if (!digest.startsWith(IMAGE_DIGEST_PREFIX)) {
|
|
68
|
+
throw new TypeError(`${path} must be an immutable sha256 image digest.`);
|
|
69
|
+
}
|
|
70
|
+
if (!content_address_1.Sha256HexSchema.safeParse(digest.slice(IMAGE_DIGEST_PREFIX.length)).success) {
|
|
71
|
+
throw new TypeError(`${path} must be an immutable sha256 image digest.`);
|
|
72
|
+
}
|
|
73
|
+
return digest;
|
|
74
|
+
}
|
|
75
|
+
function requireNonNegativeSafeInteger(value, path) {
|
|
76
|
+
if (!Number.isSafeInteger(value) || value < 0) {
|
|
77
|
+
throw new TypeError(`${path} must be a non-negative safe integer.`);
|
|
78
|
+
}
|
|
79
|
+
return value;
|
|
80
|
+
}
|
|
81
|
+
function requireEnumValue(value, path, values) {
|
|
82
|
+
if (typeof value !== 'string' || !values.includes(value)) {
|
|
83
|
+
throw new TypeError(`${path} must be one of: ${values.map((entry) => `'${entry}'`).join(', ')}.`);
|
|
84
|
+
}
|
|
85
|
+
return value;
|
|
86
|
+
}
|
|
87
|
+
function requireStringRefs(value, path) {
|
|
88
|
+
if (!Array.isArray(value)) {
|
|
89
|
+
throw new TypeError(`${path} must be an array.`);
|
|
90
|
+
}
|
|
91
|
+
return Object.freeze([
|
|
92
|
+
...new Set(value.map((entry, index) => requireNonEmptyString(entry, `${path}[${index}]`))),
|
|
93
|
+
].sort());
|
|
94
|
+
}
|
|
95
|
+
function requireResourceBindingRefs(value, path) {
|
|
96
|
+
if (!Array.isArray(value)) {
|
|
97
|
+
throw new TypeError(`${path} must be an array.`);
|
|
98
|
+
}
|
|
99
|
+
const refs = value.map((entry, index) => {
|
|
100
|
+
const entryPath = `${path}[${index}]`;
|
|
101
|
+
const object = requireExactObject(entry, entryPath, ['kind', 'ref']);
|
|
102
|
+
return Object.freeze({
|
|
103
|
+
kind: requireNonEmptyString(object.kind, `${entryPath}.kind`),
|
|
104
|
+
ref: requireNonEmptyString(object.ref, `${entryPath}.ref`),
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
const byCanonicalRef = new Map(refs.map((entry) => [(0, declarative_reconciler_1.canonicalJson)(entry), entry]));
|
|
108
|
+
return Object.freeze([...byCanonicalRef.entries()]
|
|
109
|
+
.sort(([left], [right]) => left.localeCompare(right))
|
|
110
|
+
.map(([, entry]) => entry));
|
|
111
|
+
}
|
|
112
|
+
function requireSecretFreeJsonObject(value, path) {
|
|
113
|
+
const normalized = normalizeCanonicalJson(value, path, true);
|
|
114
|
+
if (normalized === null ||
|
|
115
|
+
Array.isArray(normalized) ||
|
|
116
|
+
typeof normalized !== 'object') {
|
|
117
|
+
throw new TypeError(`${path} must be a plain JSON object.`);
|
|
118
|
+
}
|
|
119
|
+
return normalized;
|
|
120
|
+
}
|
|
121
|
+
function requireCanonicalJsonObject(value, path) {
|
|
122
|
+
const normalized = normalizeCanonicalJson(value, path, false);
|
|
123
|
+
if (normalized === null ||
|
|
124
|
+
Array.isArray(normalized) ||
|
|
125
|
+
typeof normalized !== 'object') {
|
|
126
|
+
throw new TypeError(`${path} must be a plain JSON object.`);
|
|
127
|
+
}
|
|
128
|
+
return normalized;
|
|
129
|
+
}
|
|
130
|
+
function assertNoTenantOrSecretTemplateFields(value, path) {
|
|
131
|
+
const visited = new Set();
|
|
132
|
+
function inspect(current, currentPath) {
|
|
133
|
+
if (current === null || typeof current !== 'object') {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
if (visited.has(current)) {
|
|
137
|
+
throw new TypeError(`${currentPath} must not contain cycles.`);
|
|
138
|
+
}
|
|
139
|
+
visited.add(current);
|
|
140
|
+
if (Array.isArray(current)) {
|
|
141
|
+
current.forEach((entry, index) => inspect(entry, `${currentPath}[${index}]`));
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
if (!isPlainObject(current)) {
|
|
145
|
+
throw new TypeError(`${currentPath} must contain only plain objects.`);
|
|
146
|
+
}
|
|
147
|
+
for (const [key, entry] of Object.entries(current)) {
|
|
148
|
+
if (isTenantField(key) || isSecretField(key)) {
|
|
149
|
+
throw new TypeError(`${currentPath}.${key} is tenant/session/secret state and cannot enter a RuntimeTemplateKey.`);
|
|
150
|
+
}
|
|
151
|
+
inspect(entry, `${currentPath}.${key}`);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
inspect(value, path);
|
|
155
|
+
}
|
|
156
|
+
function normalizeCanonicalJson(value, path, rejectSecretFields, visited = new Set()) {
|
|
157
|
+
if (value === null ||
|
|
158
|
+
typeof value === 'string' ||
|
|
159
|
+
typeof value === 'boolean') {
|
|
160
|
+
return value;
|
|
161
|
+
}
|
|
162
|
+
if (typeof value === 'number') {
|
|
163
|
+
if (!Number.isFinite(value)) {
|
|
164
|
+
throw new TypeError(`${path} must contain only finite numbers.`);
|
|
165
|
+
}
|
|
166
|
+
return value;
|
|
167
|
+
}
|
|
168
|
+
if (typeof value !== 'object') {
|
|
169
|
+
throw new TypeError(`${path} must contain only JSON values.`);
|
|
170
|
+
}
|
|
171
|
+
if (visited.has(value)) {
|
|
172
|
+
throw new TypeError(`${path} must not contain cycles.`);
|
|
173
|
+
}
|
|
174
|
+
visited.add(value);
|
|
175
|
+
if (Array.isArray(value)) {
|
|
176
|
+
const normalized = value.map((entry, index) => normalizeCanonicalJson(entry, `${path}[${index}]`, rejectSecretFields, visited));
|
|
177
|
+
visited.delete(value);
|
|
178
|
+
return Object.freeze(normalized);
|
|
179
|
+
}
|
|
180
|
+
if (!isPlainObject(value)) {
|
|
181
|
+
throw new TypeError(`${path} must contain only plain JSON objects.`);
|
|
182
|
+
}
|
|
183
|
+
const normalized = {};
|
|
184
|
+
for (const [key, entry] of Object.entries(value)) {
|
|
185
|
+
if (rejectSecretFields &&
|
|
186
|
+
isSecretField(key) &&
|
|
187
|
+
!SECRET_REFERENCE_SUFFIX_PATTERN.test(key)) {
|
|
188
|
+
throw new TypeError(`${path}.${key} appears to contain secret material; pass an opaque reference ending in Ref or Refs instead.`);
|
|
189
|
+
}
|
|
190
|
+
normalized[key] = normalizeCanonicalJson(entry, `${path}.${key}`, rejectSecretFields, visited);
|
|
191
|
+
}
|
|
192
|
+
visited.delete(value);
|
|
193
|
+
return Object.freeze(normalized);
|
|
194
|
+
}
|
|
195
|
+
function isTenantField(key) {
|
|
196
|
+
const normalized = key.replaceAll(/[_-]/gu, '').toLowerCase();
|
|
197
|
+
return [
|
|
198
|
+
'binding',
|
|
199
|
+
'context',
|
|
200
|
+
'domain',
|
|
201
|
+
'domainid',
|
|
202
|
+
'input',
|
|
203
|
+
'organization',
|
|
204
|
+
'organizationid',
|
|
205
|
+
'org',
|
|
206
|
+
'orgid',
|
|
207
|
+
'project',
|
|
208
|
+
'projectid',
|
|
209
|
+
'session',
|
|
210
|
+
'sessionid',
|
|
211
|
+
'tenant',
|
|
212
|
+
'tenantid',
|
|
213
|
+
'thread',
|
|
214
|
+
'threadid',
|
|
215
|
+
'user',
|
|
216
|
+
'userid',
|
|
217
|
+
].includes(normalized);
|
|
218
|
+
}
|
|
219
|
+
function isSecretField(key) {
|
|
220
|
+
return SECRET_FIELD_PATTERN.test(key) || SECRET_CAMEL_CASE_PATTERN.test(key);
|
|
221
|
+
}
|
|
222
|
+
function isPlainObject(value) {
|
|
223
|
+
if (value === null || typeof value !== 'object' || Array.isArray(value)) {
|
|
224
|
+
return false;
|
|
225
|
+
}
|
|
226
|
+
const prototype = Object.getPrototypeOf(value);
|
|
227
|
+
return prototype === Object.prototype || prototype === null;
|
|
228
|
+
}
|
|
229
|
+
//# sourceMappingURL=canonical-contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonical-contract.js","sourceRoot":"","sources":["../../../src/lib/launch-identity/canonical-contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type CompiledSessionLaunchPlan } from './compiled-session-launch-plan';
|
|
2
|
+
export interface CompiledSessionLaunchPlanStore {
|
|
3
|
+
getByHash(contentHash: string): Promise<CompiledSessionLaunchPlan>;
|
|
4
|
+
putByHash(contentHash: string, plan: CompiledSessionLaunchPlan): Promise<void>;
|
|
5
|
+
}
|
|
6
|
+
export interface ImmutableCompiledSessionLaunchPlanContentStore {
|
|
7
|
+
read(contentHash: string): Promise<string | undefined>;
|
|
8
|
+
create(contentHash: string, encodedPlan: string): Promise<boolean>;
|
|
9
|
+
}
|
|
10
|
+
export declare class CompiledSessionLaunchPlanMissingError extends Error {
|
|
11
|
+
readonly contentHash: string;
|
|
12
|
+
readonly name = "CompiledSessionLaunchPlanMissingError";
|
|
13
|
+
constructor(contentHash: string);
|
|
14
|
+
}
|
|
15
|
+
export declare class CompiledSessionLaunchPlanAddressMismatchError extends Error {
|
|
16
|
+
readonly expectedHash: string;
|
|
17
|
+
readonly actualHash: string;
|
|
18
|
+
readonly name = "CompiledSessionLaunchPlanAddressMismatchError";
|
|
19
|
+
constructor(expectedHash: string, actualHash: string);
|
|
20
|
+
}
|
|
21
|
+
export declare class CompiledSessionLaunchPlanCollisionError extends Error {
|
|
22
|
+
readonly contentHash: string;
|
|
23
|
+
readonly name = "CompiledSessionLaunchPlanCollisionError";
|
|
24
|
+
constructor(contentHash: string);
|
|
25
|
+
}
|
|
26
|
+
export declare class CompiledSessionLaunchPlanIntegrityError extends Error {
|
|
27
|
+
readonly contentHash: string;
|
|
28
|
+
readonly cause: unknown;
|
|
29
|
+
readonly name = "CompiledSessionLaunchPlanIntegrityError";
|
|
30
|
+
constructor(contentHash: string, cause: unknown);
|
|
31
|
+
}
|
|
32
|
+
export declare class VerifyingCompiledSessionLaunchPlanStore implements CompiledSessionLaunchPlanStore {
|
|
33
|
+
private readonly contentStore;
|
|
34
|
+
constructor(contentStore: ImmutableCompiledSessionLaunchPlanContentStore);
|
|
35
|
+
getByHash(contentHash: string): Promise<CompiledSessionLaunchPlan>;
|
|
36
|
+
putByHash(contentHash: string, plan: CompiledSessionLaunchPlan): Promise<void>;
|
|
37
|
+
private assertSameContent;
|
|
38
|
+
}
|
|
39
|
+
export declare class InMemoryCompiledSessionLaunchPlanContentStore implements ImmutableCompiledSessionLaunchPlanContentStore {
|
|
40
|
+
private readonly values;
|
|
41
|
+
read(contentHash: string): Promise<string | undefined>;
|
|
42
|
+
create(contentHash: string, encodedPlan: string): Promise<boolean>;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=compiled-session-launch-plan-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compiled-session-launch-plan-store.d.ts","sourceRoot":"","sources":["../../../src/lib/launch-identity/compiled-session-launch-plan-store.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,yBAAyB,EAC/B,MAAM,gCAAgC,CAAC;AAMxC,MAAM,WAAW,8BAA8B;IAC7C,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACnE,SAAS,CACP,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,yBAAyB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAMD,MAAM,WAAW,8CAA8C;IAC7D,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACvD,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACpE;AAED,qBAAa,qCAAsC,SAAQ,KAAK;IAGlD,QAAQ,CAAC,WAAW,EAAE,MAAM;IAFxC,SAAkB,IAAI,2CAA2C;gBAE5C,WAAW,EAAE,MAAM;CAGzC;AAED,qBAAa,6CAA8C,SAAQ,KAAK;IAIpE,QAAQ,CAAC,YAAY,EAAE,MAAM;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM;IAJ7B,SAAkB,IAAI,mDAAmD;gBAG9D,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM;CAM9B;AAED,qBAAa,uCAAwC,SAAQ,KAAK;IAGpD,QAAQ,CAAC,WAAW,EAAE,MAAM;IAFxC,SAAkB,IAAI,6CAA6C;gBAE9C,WAAW,EAAE,MAAM;CAKzC;AAED,qBAAa,uCAAwC,SAAQ,KAAK;IAI9D,QAAQ,CAAC,WAAW,EAAE,MAAM;aACV,KAAK,EAAE,OAAO;IAJlC,SAAkB,IAAI,6CAA6C;gBAGxD,WAAW,EAAE,MAAM,EACV,KAAK,EAAE,OAAO;CAOnC;AAOD,qBAAa,uCACX,YAAW,8BAA8B;IAGvC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,EAAE,8CAA8C;IAGzE,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;IA2BlE,SAAS,CACb,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,yBAAyB,GAC9B,OAAO,CAAC,IAAI,CAAC;IAgChB,OAAO,CAAC,iBAAiB;CAS1B;AAGD,qBAAa,6CACX,YAAW,8CAA8C;IAEzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IAE9C,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAItD,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAOzE"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InMemoryCompiledSessionLaunchPlanContentStore = exports.VerifyingCompiledSessionLaunchPlanStore = exports.CompiledSessionLaunchPlanIntegrityError = exports.CompiledSessionLaunchPlanCollisionError = exports.CompiledSessionLaunchPlanAddressMismatchError = exports.CompiledSessionLaunchPlanMissingError = void 0;
|
|
4
|
+
const canonical_contract_1 = require("./canonical-contract");
|
|
5
|
+
const compiled_session_launch_plan_1 = require("./compiled-session-launch-plan");
|
|
6
|
+
class CompiledSessionLaunchPlanMissingError extends Error {
|
|
7
|
+
contentHash;
|
|
8
|
+
name = 'CompiledSessionLaunchPlanMissingError';
|
|
9
|
+
constructor(contentHash) {
|
|
10
|
+
super(`Compiled session launch plan '${contentHash}' does not exist.`);
|
|
11
|
+
this.contentHash = contentHash;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.CompiledSessionLaunchPlanMissingError = CompiledSessionLaunchPlanMissingError;
|
|
15
|
+
class CompiledSessionLaunchPlanAddressMismatchError extends Error {
|
|
16
|
+
expectedHash;
|
|
17
|
+
actualHash;
|
|
18
|
+
name = 'CompiledSessionLaunchPlanAddressMismatchError';
|
|
19
|
+
constructor(expectedHash, actualHash) {
|
|
20
|
+
super(`Compiled session launch plan address '${expectedHash}' does not match its content hash '${actualHash}'.`);
|
|
21
|
+
this.expectedHash = expectedHash;
|
|
22
|
+
this.actualHash = actualHash;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.CompiledSessionLaunchPlanAddressMismatchError = CompiledSessionLaunchPlanAddressMismatchError;
|
|
26
|
+
class CompiledSessionLaunchPlanCollisionError extends Error {
|
|
27
|
+
contentHash;
|
|
28
|
+
name = 'CompiledSessionLaunchPlanCollisionError';
|
|
29
|
+
constructor(contentHash) {
|
|
30
|
+
super(`Immutable content collision at compiled session launch plan '${contentHash}'.`);
|
|
31
|
+
this.contentHash = contentHash;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.CompiledSessionLaunchPlanCollisionError = CompiledSessionLaunchPlanCollisionError;
|
|
35
|
+
class CompiledSessionLaunchPlanIntegrityError extends Error {
|
|
36
|
+
contentHash;
|
|
37
|
+
cause;
|
|
38
|
+
name = 'CompiledSessionLaunchPlanIntegrityError';
|
|
39
|
+
constructor(contentHash, cause) {
|
|
40
|
+
super(`Compiled session launch plan '${contentHash}' failed content verification.`, { cause });
|
|
41
|
+
this.contentHash = contentHash;
|
|
42
|
+
this.cause = cause;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.CompiledSessionLaunchPlanIntegrityError = CompiledSessionLaunchPlanIntegrityError;
|
|
46
|
+
class VerifyingCompiledSessionLaunchPlanStore {
|
|
47
|
+
contentStore;
|
|
48
|
+
constructor(contentStore) {
|
|
49
|
+
this.contentStore = contentStore;
|
|
50
|
+
}
|
|
51
|
+
async getByHash(contentHash) {
|
|
52
|
+
const hash = (0, canonical_contract_1.requireSha256)(contentHash, 'contentHash');
|
|
53
|
+
const encoded = await this.contentStore.read(hash);
|
|
54
|
+
if (encoded === undefined) {
|
|
55
|
+
throw new CompiledSessionLaunchPlanMissingError(hash);
|
|
56
|
+
}
|
|
57
|
+
try {
|
|
58
|
+
const plan = (0, compiled_session_launch_plan_1.decodeCompiledSessionLaunchPlan)(encoded);
|
|
59
|
+
const actualHash = (0, compiled_session_launch_plan_1.hashCompiledSessionLaunchPlan)(plan);
|
|
60
|
+
if (actualHash !== hash) {
|
|
61
|
+
throw new CompiledSessionLaunchPlanAddressMismatchError(hash, actualHash);
|
|
62
|
+
}
|
|
63
|
+
if ((0, compiled_session_launch_plan_1.encodeCompiledSessionLaunchPlan)(plan) !== encoded) {
|
|
64
|
+
throw new TypeError('Stored launch plan bytes are not in canonical encoding.');
|
|
65
|
+
}
|
|
66
|
+
return plan;
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
throw new CompiledSessionLaunchPlanIntegrityError(hash, error);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
async putByHash(contentHash, plan) {
|
|
73
|
+
const hash = (0, canonical_contract_1.requireSha256)(contentHash, 'contentHash');
|
|
74
|
+
const canonicalPlan = (0, compiled_session_launch_plan_1.createCompiledSessionLaunchPlan)(plan);
|
|
75
|
+
const actualHash = (0, compiled_session_launch_plan_1.hashCompiledSessionLaunchPlan)(canonicalPlan);
|
|
76
|
+
if (actualHash !== hash) {
|
|
77
|
+
throw new CompiledSessionLaunchPlanAddressMismatchError(hash, actualHash);
|
|
78
|
+
}
|
|
79
|
+
const encoded = (0, compiled_session_launch_plan_1.encodeCompiledSessionLaunchPlan)(canonicalPlan);
|
|
80
|
+
const existing = await this.contentStore.read(hash);
|
|
81
|
+
if (existing !== undefined) {
|
|
82
|
+
this.assertSameContent(hash, existing, encoded);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
const created = await this.contentStore.create(hash, encoded);
|
|
86
|
+
if (created) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
const racedExisting = await this.contentStore.read(hash);
|
|
90
|
+
if (racedExisting === undefined) {
|
|
91
|
+
throw new CompiledSessionLaunchPlanIntegrityError(hash, new Error('Immutable content store reported an existing value but returned no content.'));
|
|
92
|
+
}
|
|
93
|
+
this.assertSameContent(hash, racedExisting, encoded);
|
|
94
|
+
}
|
|
95
|
+
assertSameContent(contentHash, existing, expected) {
|
|
96
|
+
if (existing !== expected) {
|
|
97
|
+
throw new CompiledSessionLaunchPlanCollisionError(contentHash);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
exports.VerifyingCompiledSessionLaunchPlanStore = VerifyingCompiledSessionLaunchPlanStore;
|
|
102
|
+
class InMemoryCompiledSessionLaunchPlanContentStore {
|
|
103
|
+
values = new Map();
|
|
104
|
+
async read(contentHash) {
|
|
105
|
+
return this.values.get(contentHash);
|
|
106
|
+
}
|
|
107
|
+
async create(contentHash, encodedPlan) {
|
|
108
|
+
if (this.values.has(contentHash)) {
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
this.values.set(contentHash, encodedPlan);
|
|
112
|
+
return true;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
exports.InMemoryCompiledSessionLaunchPlanContentStore = InMemoryCompiledSessionLaunchPlanContentStore;
|
|
116
|
+
//# sourceMappingURL=compiled-session-launch-plan-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compiled-session-launch-plan-store.js","sourceRoot":"","sources":["../../../src/lib/launch-identity/compiled-session-launch-plan-store.ts"],"names":[],"mappings":";;;AAAA,6DAAqD;AACrD,iFAMwC;AAuBxC,MAAa,qCAAsC,SAAQ,KAAK;IAGzC;IAFH,IAAI,GAAG,uCAAuC,CAAC;IAEjE,YAAqB,WAAmB;QACtC,KAAK,CAAC,iCAAiC,WAAW,mBAAmB,CAAC,CAAC;QADpD,gBAAW,GAAX,WAAW,CAAQ;IAExC,CAAC;CACF;AAND,sFAMC;AAED,MAAa,6CAA8C,SAAQ,KAAK;IAI3D;IACA;IAJO,IAAI,GAAG,+CAA+C,CAAC;IAEzE,YACW,YAAoB,EACpB,UAAkB;QAE3B,KAAK,CACH,yCAAyC,YAAY,sCAAsC,UAAU,IAAI,CAC1G,CAAC;QALO,iBAAY,GAAZ,YAAY,CAAQ;QACpB,eAAU,GAAV,UAAU,CAAQ;IAK7B,CAAC;CACF;AAXD,sGAWC;AAED,MAAa,uCAAwC,SAAQ,KAAK;IAG3C;IAFH,IAAI,GAAG,yCAAyC,CAAC;IAEnE,YAAqB,WAAmB;QACtC,KAAK,CACH,gEAAgE,WAAW,IAAI,CAChF,CAAC;QAHiB,gBAAW,GAAX,WAAW,CAAQ;IAIxC,CAAC;CACF;AARD,0FAQC;AAED,MAAa,uCAAwC,SAAQ,KAAK;IAIrD;IACS;IAJF,IAAI,GAAG,yCAAyC,CAAC;IAEnE,YACW,WAAmB,EACV,KAAc;QAEhC,KAAK,CACH,iCAAiC,WAAW,gCAAgC,EAC5E,EAAE,KAAK,EAAE,CACV,CAAC;QANO,gBAAW,GAAX,WAAW,CAAQ;QACV,UAAK,GAAL,KAAK,CAAS;IAMlC,CAAC;CACF;AAZD,0FAYC;AAOD,MAAa,uCAAuC;IAI/B;IADnB,YACmB,YAA4D;QAA5D,iBAAY,GAAZ,YAAY,CAAgD;IAC5E,CAAC;IAEJ,KAAK,CAAC,SAAS,CAAC,WAAmB;QACjC,MAAM,IAAI,GAAG,IAAA,kCAAa,EAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,qCAAqC,CAAC,IAAI,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAA,8DAA+B,EAAC,OAAO,CAAC,CAAC;YACtD,MAAM,UAAU,GAAG,IAAA,4DAA6B,EAAC,IAAI,CAAC,CAAC;YACvD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,MAAM,IAAI,6CAA6C,CACrD,IAAI,EACJ,UAAU,CACX,CAAC;YACJ,CAAC;YACD,IAAI,IAAA,8DAA+B,EAAC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;gBACtD,MAAM,IAAI,SAAS,CACjB,yDAAyD,CAC1D,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,uCAAuC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CACb,WAAmB,EACnB,IAA+B;QAE/B,MAAM,IAAI,GAAG,IAAA,kCAAa,EAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QACvD,MAAM,aAAa,GAAG,IAAA,8DAA+B,EAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,IAAA,4DAA6B,EAAC,aAAa,CAAC,CAAC;QAChE,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM,IAAI,6CAA6C,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,OAAO,GAAG,IAAA,8DAA+B,EAAC,aAAa,CAAC,CAAC;QAE/D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9D,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,IAAI,uCAAuC,CAC/C,IAAI,EACJ,IAAI,KAAK,CACP,6EAA6E,CAC9E,CACF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAEO,iBAAiB,CACvB,WAAmB,EACnB,QAAgB,EAChB,QAAgB;QAEhB,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,MAAM,IAAI,uCAAuC,CAAC,WAAW,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;CACF;AA9ED,0FA8EC;AAGD,MAAa,6CAA6C;IAGvC,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEpD,KAAK,CAAC,IAAI,CAAC,WAAmB;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,WAAmB,EAAE,WAAmB;QACnD,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAhBD,sGAgBC"}
|