openmates 0.27.0-alpha.63 → 0.27.0-alpha.64

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.
@@ -17710,10 +17710,47 @@ var OpenMatesClient = class _OpenMatesClient {
17710
17710
  if (Array.isArray(embed.version_history_rows)) {
17711
17711
  for (const row3 of embed.version_history_rows) {
17712
17712
  if (!row3.embed_id || typeof row3.version_number !== "number") continue;
17713
+ if (row3.embed_id !== embed.embed_id) {
17714
+ throw new Error(`Embed ${embed.embed_id} history row has a different embed identity.`);
17715
+ }
17716
+ if (row3.version_number === 1) {
17717
+ const query = new URLSearchParams({ capability: "bounded-v1", chat_id: params.chatId });
17718
+ if (params.teamId) query.set("team_id", params.teamId);
17719
+ const existing = await this.http.get(
17720
+ `/v1/embeds/${encodeURIComponent(embed.embed_id)}/versions/1?${query}`,
17721
+ this.getCliRequestHeaders()
17722
+ );
17723
+ if (existing.ok) {
17724
+ const rows2 = existing.data?.rows;
17725
+ if (existing.data?.embed_id !== embed.embed_id || existing.data.version_number !== 1 || !Array.isArray(rows2) || rows2.length !== 1 || rows2[0].version_number !== 1 || typeof rows2[0].encrypted_snapshot !== "string" || rows2[0].encrypted_patch != null || typeof row3.snapshot !== "string" || typeof row3.patch === "string") {
17726
+ throw new Error(`Canonical embed ${embed.embed_id} v1 history is invalid.`);
17727
+ }
17728
+ const canonicalSnapshot = await decryptWithAesGcmCombined(rows2[0].encrypted_snapshot, embedKey);
17729
+ if (canonicalSnapshot !== row3.snapshot) {
17730
+ throw new Error(`Existing canonical embed ${embed.embed_id} v1 does not match streamed source.`);
17731
+ }
17732
+ continue;
17733
+ }
17734
+ if (existing.status !== 404) {
17735
+ throw new Error(`Canonical embed ${embed.embed_id} v1 read failed (HTTP ${existing.status}).`);
17736
+ }
17737
+ }
17713
17738
  const encryptedSnapshot = typeof row3.snapshot === "string" ? await encryptWithAesGcmCombined(row3.snapshot, embedKey) : void 0;
17714
17739
  const encryptedPatch = typeof row3.patch === "string" ? await encryptWithAesGcmCombined(row3.patch, embedKey) : void 0;
17715
17740
  if (!encryptedSnapshot && !encryptedPatch) continue;
17741
+ const diffRequestId = randomUUID9();
17742
+ const diffConfirmed = params.ws.waitForMessage(
17743
+ "store_embed_diff_confirmed",
17744
+ (payload) => {
17745
+ const p = payload;
17746
+ return p.request_id === diffRequestId && p.embed_id === row3.embed_id && p.version_number === row3.version_number;
17747
+ },
17748
+ 3e4
17749
+ );
17750
+ void diffConfirmed.catch(() => {
17751
+ });
17716
17752
  await params.ws.sendAsync("store_embed_diff", {
17753
+ request_id: diffRequestId,
17717
17754
  embed_id: row3.embed_id,
17718
17755
  version_number: row3.version_number,
17719
17756
  encrypted_snapshot: encryptedSnapshot ?? null,
@@ -17721,6 +17758,11 @@ var OpenMatesClient = class _OpenMatesClient {
17721
17758
  hashed_user_id: hashedUserId,
17722
17759
  created_at: normalizeUnixSeconds(row3.created_at, now)
17723
17760
  });
17761
+ const diffReceipt = (await diffConfirmed).payload;
17762
+ const expectedDigest = computeSHA256(JSON.stringify([encryptedSnapshot ?? null, encryptedPatch ?? null]));
17763
+ if (diffReceipt.canonical_source !== "version_row" || diffReceipt.canonical_digest !== expectedDigest) {
17764
+ throw new Error(`Embed ${embed.embed_id} v${row3.version_number} durable receipt did not match the stored source.`);
17765
+ }
17724
17766
  }
17725
17767
  }
17726
17768
  };
package/dist/cli.js CHANGED
@@ -21,7 +21,7 @@ import {
21
21
  shouldRequireTrustedAccountGuard,
22
22
  waitForSafeE2ETotpWindow,
23
23
  waitForWorkflowRun
24
- } from "./chunk-D6TL3ILK.js";
24
+ } from "./chunk-RNMPBFM6.js";
25
25
  import "./chunk-Q6PGA2B3.js";
26
26
  import "./chunk-IWKP55ZB.js";
27
27
  import "./chunk-F2U6KIMR.js";
package/dist/index.js CHANGED
@@ -44,7 +44,7 @@ import {
44
44
  selectAssistantMessagesForSpeech,
45
45
  serializeToYaml,
46
46
  summarizeAssistantSpeech
47
- } from "./chunk-D6TL3ILK.js";
47
+ } from "./chunk-RNMPBFM6.js";
48
48
  import "./chunk-Q6PGA2B3.js";
49
49
  import "./chunk-IWKP55ZB.js";
50
50
  import "./chunk-F2U6KIMR.js";
@@ -17,47 +17,47 @@
17
17
  {
18
18
  "name": "libggml-base.so",
19
19
  "bytes": 1110088,
20
- "sha256": "bdb1a65cc110d622ca0ca0a9274b9a9f0949d86e0f6136b8b5d159a685096c44"
20
+ "sha256": "a53ddafb5d89e67fdf7ac8b9ca01ba918b8499abf01457e9dd0671d13d2c3488"
21
21
  },
22
22
  {
23
23
  "name": "libggml-base.so.0",
24
24
  "bytes": 1110088,
25
- "sha256": "bdb1a65cc110d622ca0ca0a9274b9a9f0949d86e0f6136b8b5d159a685096c44"
25
+ "sha256": "a53ddafb5d89e67fdf7ac8b9ca01ba918b8499abf01457e9dd0671d13d2c3488"
26
26
  },
27
27
  {
28
28
  "name": "libggml-base.so.0.15.1",
29
29
  "bytes": 1110088,
30
- "sha256": "bdb1a65cc110d622ca0ca0a9274b9a9f0949d86e0f6136b8b5d159a685096c44"
30
+ "sha256": "a53ddafb5d89e67fdf7ac8b9ca01ba918b8499abf01457e9dd0671d13d2c3488"
31
31
  },
32
32
  {
33
33
  "name": "libggml-cpu.so",
34
34
  "bytes": 869800,
35
- "sha256": "fc1ed2b090628912eee7d6618014efe0be9bec527adf108677873c796a22eb7d"
35
+ "sha256": "3f553ec40e5344225e445b20c8de96708ae4204dfe08e24a202d5af36cdd4d23"
36
36
  },
37
37
  {
38
38
  "name": "libggml-cpu.so.0",
39
39
  "bytes": 869800,
40
- "sha256": "fc1ed2b090628912eee7d6618014efe0be9bec527adf108677873c796a22eb7d"
40
+ "sha256": "3f553ec40e5344225e445b20c8de96708ae4204dfe08e24a202d5af36cdd4d23"
41
41
  },
42
42
  {
43
43
  "name": "libggml-cpu.so.0.15.1",
44
44
  "bytes": 869800,
45
- "sha256": "fc1ed2b090628912eee7d6618014efe0be9bec527adf108677873c796a22eb7d"
45
+ "sha256": "3f553ec40e5344225e445b20c8de96708ae4204dfe08e24a202d5af36cdd4d23"
46
46
  },
47
47
  {
48
48
  "name": "libggml.so",
49
49
  "bytes": 1899104,
50
- "sha256": "53aac984ca4703e965c1cbc9cbb49aa21126558f566695c441d932c18a03a3fd"
50
+ "sha256": "b5e07a905cfe06748287b8ab7116f120bcc7ff1a1f3357c49d9b1c590241e5a0"
51
51
  },
52
52
  {
53
53
  "name": "libggml.so.0",
54
54
  "bytes": 1899104,
55
- "sha256": "53aac984ca4703e965c1cbc9cbb49aa21126558f566695c441d932c18a03a3fd"
55
+ "sha256": "b5e07a905cfe06748287b8ab7116f120bcc7ff1a1f3357c49d9b1c590241e5a0"
56
56
  },
57
57
  {
58
58
  "name": "libggml.so.0.15.1",
59
59
  "bytes": 1899104,
60
- "sha256": "53aac984ca4703e965c1cbc9cbb49aa21126558f566695c441d932c18a03a3fd"
60
+ "sha256": "b5e07a905cfe06748287b8ab7116f120bcc7ff1a1f3357c49d9b1c590241e5a0"
61
61
  },
62
62
  {
63
63
  "name": "openmates-pii-worker",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openmates",
3
- "version": "0.27.0-alpha.63",
3
+ "version": "0.27.0-alpha.64",
4
4
  "description": "OpenMates CLI and SDK",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",