@canonmsg/agent-sdk 12.5.1 → 13.0.2

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.
Files changed (46) hide show
  1. package/README.md +57 -24
  2. package/dist/chunks/{chunk-C2WJT3VX.js → chunk-5WPAB5MB.js} +1047 -856
  3. package/dist/chunks/{chunk-3KFVBOVI.js → chunk-DNHJGAEL.js} +1115 -1020
  4. package/dist/chunks/chunk-DTAWEQCM.js +406 -0
  5. package/dist/chunks/{chunk-TFSURFF6.js → chunk-TYZT346O.js} +1720 -4006
  6. package/dist/chunks/chunk-YHDDOADK.js +118 -0
  7. package/dist/chunks/chunk-YJUPKU47.js +1490 -0
  8. package/dist/chunks/{mls-crypto-Y44BOSEM.js → mls-crypto-NZVMSUFU.js} +2 -1
  9. package/dist/cli.js +86 -48
  10. package/dist/drivers/acp.d.ts +56 -0
  11. package/dist/drivers/codex.d.ts +1 -2
  12. package/dist/drivers/subprocess.d.ts +38 -0
  13. package/dist/index.d.ts +4 -2
  14. package/dist/index.js +12 -3
  15. package/dist/internal/backend-contracts/endpointContentPolicy.d.ts +2 -2
  16. package/dist/internal/backend-contracts/index.d.ts +1 -0
  17. package/dist/internal/backend-contracts/loggedOutSessions.d.ts +7 -0
  18. package/dist/internal/backend-contracts/mlsDevCredential.d.ts +3 -0
  19. package/dist/internal/backend-contracts/mlsDevGroup.d.ts +17 -0
  20. package/dist/internal/core/completed-output-journal.d.ts +0 -5
  21. package/dist/internal/core/index.d.ts +3 -9
  22. package/dist/internal/core/retry.d.ts +2 -89
  23. package/dist/internal/core/silent-turn.d.ts +4 -33
  24. package/dist/internal/endpoint/engine.d.ts +6 -0
  25. package/dist/internal/endpoint/mls-dev-client.d.ts +2 -0
  26. package/dist/internal/endpoint/mls-dev-groups.d.ts +12 -0
  27. package/dist/internal/endpoint/mls-dev-text.d.ts +32 -0
  28. package/dist/internal/endpoint/node-mls-custody-protocol.d.ts +5 -0
  29. package/dist/internal/endpoint/node.d.ts +1 -0
  30. package/dist/internal/endpoint/transport.d.ts +1 -1
  31. package/dist/media.js +4 -2
  32. package/dist/mls/darwin-arm64/canon-mls-custody +0 -0
  33. package/dist/mls/linux-arm64/canon-mls-custody +0 -0
  34. package/dist/mls/linux-x64/canon-mls-custody +0 -0
  35. package/dist/mls/wasm/canon_mls_wasm.js +363 -0
  36. package/dist/mls/wasm/canon_mls_wasm_bg.wasm +0 -0
  37. package/dist/mls-wasm-host.js +258 -0
  38. package/dist/runner/mls-bundled.d.ts +15 -2
  39. package/dist/runner/mls-managed.d.ts +6 -3
  40. package/dist/runner/mls.d.ts +4 -7
  41. package/dist/runner/runner.d.ts +9 -12
  42. package/dist/runner/types.d.ts +37 -1
  43. package/package.json +1 -1
  44. package/dist/internal/core/approval-manager.d.ts +0 -43
  45. package/dist/internal/core/runtime-request-manager.d.ts +0 -283
  46. package/dist/internal/core/turn-verbosity.d.ts +0 -79
@@ -0,0 +1,118 @@
1
+ import {
2
+ __name,
3
+ decodeCanonicalMlsBase64Url,
4
+ isMlsEnvironmentId,
5
+ mlsEnvironmentOfIssuerKeyVersion,
6
+ mlsEnvironmentOfReceiptKeyVersion,
7
+ parseMlsDevCredentialReceipt,
8
+ parseMlsDevCredentialToken,
9
+ parseMlsDevEnrollmentPrincipal,
10
+ parseMlsDevIssuerKeyVersion,
11
+ parseMlsDevReceiptKeyVersion
12
+ } from "./chunk-5WPAB5MB.js";
13
+
14
+ // ../endpoint/src/mls-crypto.ts
15
+ import { ed25519 } from "@noble/curves/ed25519.js";
16
+
17
+ // ../endpoint/src/runtime-api-origins.generated.ts
18
+ var RUNTIME_API_ORIGINS = {
19
+ "canon-dev-v1": "https://dev.api.canonmail.com",
20
+ "canon-prod-v1": "https://api.canonmail.com"
21
+ };
22
+
23
+ // ../endpoint/src/mls-crypto.ts
24
+ function mlsDevDeviceHttpConfiguration(environmentId) {
25
+ if (!isMlsEnvironmentId(environmentId)) invalid();
26
+ const origin = RUNTIME_API_ORIGINS[environmentId];
27
+ return Object.freeze({
28
+ enrollmentUrl: `${origin}/mls/enrollment`,
29
+ credentialUrl: `${origin}/mls/credential`,
30
+ reconciliationUrl: `${origin}/mls/reconciliation`,
31
+ keyPackagesUrl: `${origin}/mls/key-packages`,
32
+ trustedOrigins: Object.freeze([origin])
33
+ });
34
+ }
35
+ __name(mlsDevDeviceHttpConfiguration, "mlsDevDeviceHttpConfiguration");
36
+ function invalid() {
37
+ throw new Error("MLS_DEV_CLIENT_CONFIGURATION_INVALID");
38
+ }
39
+ __name(invalid, "invalid");
40
+ function record(value, keys) {
41
+ if (!value || typeof value !== "object" || Array.isArray(value) || ![Object.prototype, null].includes(Object.getPrototypeOf(value))) invalid();
42
+ const fields = Object.getOwnPropertyDescriptors(value);
43
+ if (Reflect.ownKeys(fields).length !== keys.length || keys.some((key) => !Object.hasOwn(fields, key) || !Object.hasOwn(fields[key], "value"))) invalid();
44
+ return value;
45
+ }
46
+ __name(record, "record");
47
+ function primeOrderPoint(value) {
48
+ const point = ed25519.Point.fromBytes(value, false);
49
+ return !point.isSmallOrder() && point.isTorsionFree();
50
+ }
51
+ __name(primeOrderPoint, "primeOrderPoint");
52
+ function issuerKeys(value, environmentId, receipt = false) {
53
+ if (!Array.isArray(value) || value.length < 1 || value.length > 8) invalid();
54
+ const seen = /* @__PURE__ */ new Set();
55
+ let environment = environmentId;
56
+ return Object.freeze(Array.from(value, (item) => {
57
+ const key = record(item, ["keyVersion", "signaturePublicKey"]);
58
+ const keyVersion = receipt ? parseMlsDevReceiptKeyVersion(key.keyVersion, environment) : parseMlsDevIssuerKeyVersion(key.keyVersion, environment);
59
+ environment ??= receipt ? mlsEnvironmentOfReceiptKeyVersion(keyVersion) : mlsEnvironmentOfIssuerKeyVersion(keyVersion);
60
+ if (seen.has(keyVersion) || typeof key.signaturePublicKey !== "string" || !primeOrderPoint(decodeCanonicalMlsBase64Url(key.signaturePublicKey, 32))) invalid();
61
+ seen.add(keyVersion);
62
+ return Object.freeze({ keyVersion, signaturePublicKey: key.signaturePublicKey });
63
+ }));
64
+ }
65
+ __name(issuerKeys, "issuerKeys");
66
+ function parseMlsDevClientConfiguration(value) {
67
+ try {
68
+ const listed = !!value && typeof value === "object" && Object.hasOwn(value, "principalIds");
69
+ const input = record(value, ["version", "environmentId", "enabled", ...listed ? ["principalIds"] : [], "issuerKeys", "receiptKeys"]);
70
+ if (input.version !== 1 || !isMlsEnvironmentId(input.environmentId) || input.enabled !== true || listed && (!Array.isArray(input.principalIds) || input.principalIds.length < 1 || input.principalIds.length > 100)) invalid();
71
+ const environmentId = input.environmentId;
72
+ const principalIds = listed ? Array.from(input.principalIds, (id) => parseMlsDevEnrollmentPrincipal({ type: "human", id }).id) : void 0;
73
+ if (principalIds && new Set(principalIds).size !== principalIds.length) invalid();
74
+ return Object.freeze({
75
+ version: 1,
76
+ environmentId,
77
+ enabled: true,
78
+ ...principalIds ? { principalIds: Object.freeze(principalIds) } : {},
79
+ issuerKeys: issuerKeys(input.issuerKeys, environmentId),
80
+ receiptKeys: issuerKeys(input.receiptKeys, environmentId, true)
81
+ });
82
+ } catch {
83
+ return invalid();
84
+ }
85
+ }
86
+ __name(parseMlsDevClientConfiguration, "parseMlsDevClientConfiguration");
87
+ function createMlsDevCredentialVerifier(options) {
88
+ let trusted;
89
+ try {
90
+ trusted = new Map(issuerKeys(options.issuerKeys).map((key) => [key.keyVersion, key.signaturePublicKey]));
91
+ } catch {
92
+ return invalid();
93
+ }
94
+ const clock = options.clock ?? Date.now;
95
+ return async (value) => {
96
+ try {
97
+ const receipt = parseMlsDevCredentialReceipt(value);
98
+ const parsed = parseMlsDevCredentialToken(receipt.credential);
99
+ const key = trusted.get(parsed.unsigned.keyVersion);
100
+ const now = clock();
101
+ const { issuedAtMs, expiresAtMs } = parsed.unsigned.claims;
102
+ if (!key || !Number.isSafeInteger(now) || now < issuedAtMs || now >= expiresAtMs) return false;
103
+ const publicKey = decodeCanonicalMlsBase64Url(key, 32);
104
+ const signature = decodeCanonicalMlsBase64Url(parsed.signature, 64);
105
+ if (!primeOrderPoint(publicKey) || !primeOrderPoint(signature.subarray(0, 32))) return false;
106
+ return ed25519.verify(signature, new TextEncoder().encode(parsed.signingInput), publicKey, { zip215: false });
107
+ } catch {
108
+ return false;
109
+ }
110
+ };
111
+ }
112
+ __name(createMlsDevCredentialVerifier, "createMlsDevCredentialVerifier");
113
+
114
+ export {
115
+ mlsDevDeviceHttpConfiguration,
116
+ parseMlsDevClientConfiguration,
117
+ createMlsDevCredentialVerifier
118
+ };