@indigoai-us/hq-cloud 5.19.0 → 5.20.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.
Files changed (145) hide show
  1. package/.github/workflows/ci.yml +8 -4
  2. package/.github/workflows/publish.yml +9 -3
  3. package/dist/bin/sync-runner.d.ts +9 -0
  4. package/dist/bin/sync-runner.d.ts.map +1 -1
  5. package/dist/bin/sync-runner.js +58 -0
  6. package/dist/bin/sync-runner.js.map +1 -1
  7. package/dist/client-info.d.ts +44 -0
  8. package/dist/client-info.d.ts.map +1 -0
  9. package/dist/client-info.js +112 -0
  10. package/dist/client-info.js.map +1 -0
  11. package/dist/client-info.test.d.ts +11 -0
  12. package/dist/client-info.test.d.ts.map +1 -0
  13. package/dist/client-info.test.js +168 -0
  14. package/dist/client-info.test.js.map +1 -0
  15. package/dist/context.d.ts.map +1 -1
  16. package/dist/context.js +10 -2
  17. package/dist/context.js.map +1 -1
  18. package/dist/entity-resolver.d.ts +48 -0
  19. package/dist/entity-resolver.d.ts.map +1 -0
  20. package/dist/entity-resolver.js +122 -0
  21. package/dist/entity-resolver.js.map +1 -0
  22. package/dist/entity-resolver.test.d.ts +10 -0
  23. package/dist/entity-resolver.test.d.ts.map +1 -0
  24. package/dist/entity-resolver.test.js +236 -0
  25. package/dist/entity-resolver.test.js.map +1 -0
  26. package/dist/index.d.ts +20 -2
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +24 -0
  29. package/dist/index.js.map +1 -1
  30. package/dist/schemas/signal-types.d.ts +16 -0
  31. package/dist/schemas/signal-types.d.ts.map +1 -0
  32. package/dist/schemas/signal-types.js +30 -0
  33. package/dist/schemas/signal-types.js.map +1 -0
  34. package/dist/schemas/signal-types.test.d.ts +2 -0
  35. package/dist/schemas/signal-types.test.d.ts.map +1 -0
  36. package/dist/schemas/signal-types.test.js +65 -0
  37. package/dist/schemas/signal-types.test.js.map +1 -0
  38. package/dist/schemas/source-channels.d.ts +15 -0
  39. package/dist/schemas/source-channels.d.ts.map +1 -0
  40. package/dist/schemas/source-channels.js +28 -0
  41. package/dist/schemas/source-channels.js.map +1 -0
  42. package/dist/schemas/source-channels.test.d.ts +2 -0
  43. package/dist/schemas/source-channels.test.d.ts.map +1 -0
  44. package/dist/schemas/source-channels.test.js +65 -0
  45. package/dist/schemas/source-channels.test.js.map +1 -0
  46. package/dist/signals/get.d.ts +13 -0
  47. package/dist/signals/get.d.ts.map +1 -0
  48. package/dist/signals/get.js +74 -0
  49. package/dist/signals/get.js.map +1 -0
  50. package/dist/signals/get.test.d.ts +5 -0
  51. package/dist/signals/get.test.d.ts.map +1 -0
  52. package/dist/signals/get.test.js +170 -0
  53. package/dist/signals/get.test.js.map +1 -0
  54. package/dist/signals/internals.d.ts +16 -0
  55. package/dist/signals/internals.d.ts.map +1 -0
  56. package/dist/signals/internals.js +39 -0
  57. package/dist/signals/internals.js.map +1 -0
  58. package/dist/signals/list.d.ts +10 -0
  59. package/dist/signals/list.d.ts.map +1 -0
  60. package/dist/signals/list.js +76 -0
  61. package/dist/signals/list.js.map +1 -0
  62. package/dist/signals/list.test.d.ts +9 -0
  63. package/dist/signals/list.test.d.ts.map +1 -0
  64. package/dist/signals/list.test.js +227 -0
  65. package/dist/signals/list.test.js.map +1 -0
  66. package/dist/signals/parse.d.ts +8 -0
  67. package/dist/signals/parse.d.ts.map +1 -0
  68. package/dist/signals/parse.js +8 -0
  69. package/dist/signals/parse.js.map +1 -0
  70. package/dist/signals/types.d.ts +69 -0
  71. package/dist/signals/types.d.ts.map +1 -0
  72. package/dist/signals/types.js +10 -0
  73. package/dist/signals/types.js.map +1 -0
  74. package/dist/sources/get.d.ts +11 -0
  75. package/dist/sources/get.d.ts.map +1 -0
  76. package/dist/sources/get.js +67 -0
  77. package/dist/sources/get.js.map +1 -0
  78. package/dist/sources/get.test.d.ts +5 -0
  79. package/dist/sources/get.test.d.ts.map +1 -0
  80. package/dist/sources/get.test.js +132 -0
  81. package/dist/sources/get.test.js.map +1 -0
  82. package/dist/sources/internals.d.ts +16 -0
  83. package/dist/sources/internals.d.ts.map +1 -0
  84. package/dist/sources/internals.js +39 -0
  85. package/dist/sources/internals.js.map +1 -0
  86. package/dist/sources/list.d.ts +10 -0
  87. package/dist/sources/list.d.ts.map +1 -0
  88. package/dist/sources/list.js +76 -0
  89. package/dist/sources/list.js.map +1 -0
  90. package/dist/sources/list.test.d.ts +8 -0
  91. package/dist/sources/list.test.d.ts.map +1 -0
  92. package/dist/sources/list.test.js +198 -0
  93. package/dist/sources/list.test.js.map +1 -0
  94. package/dist/sources/parse.d.ts +18 -0
  95. package/dist/sources/parse.d.ts.map +1 -0
  96. package/dist/sources/parse.js +35 -0
  97. package/dist/sources/parse.js.map +1 -0
  98. package/dist/sources/types.d.ts +62 -0
  99. package/dist/sources/types.d.ts.map +1 -0
  100. package/dist/sources/types.js +8 -0
  101. package/dist/sources/types.js.map +1 -0
  102. package/dist/telemetry.d.ts +87 -0
  103. package/dist/telemetry.d.ts.map +1 -0
  104. package/dist/telemetry.js +349 -0
  105. package/dist/telemetry.js.map +1 -0
  106. package/dist/telemetry.test.d.ts +11 -0
  107. package/dist/telemetry.test.d.ts.map +1 -0
  108. package/dist/telemetry.test.js +309 -0
  109. package/dist/telemetry.test.js.map +1 -0
  110. package/dist/types.d.ts +22 -0
  111. package/dist/types.d.ts.map +1 -1
  112. package/dist/vault-client.d.ts +60 -0
  113. package/dist/vault-client.d.ts.map +1 -1
  114. package/dist/vault-client.js +41 -0
  115. package/dist/vault-client.js.map +1 -1
  116. package/package.json +5 -3
  117. package/src/bin/sync-runner.ts +73 -0
  118. package/src/client-info.test.ts +214 -0
  119. package/src/client-info.ts +121 -0
  120. package/src/context.ts +10 -2
  121. package/src/entity-resolver.test.ts +307 -0
  122. package/src/entity-resolver.ts +173 -0
  123. package/src/index.ts +91 -0
  124. package/src/schemas/signal-types.test.ts +82 -0
  125. package/src/schemas/signal-types.ts +38 -0
  126. package/src/schemas/source-channels.test.ts +82 -0
  127. package/src/schemas/source-channels.ts +36 -0
  128. package/src/signals/get.test.ts +204 -0
  129. package/src/signals/get.ts +79 -0
  130. package/src/signals/internals.ts +46 -0
  131. package/src/signals/list.test.ts +283 -0
  132. package/src/signals/list.ts +92 -0
  133. package/src/signals/parse.ts +8 -0
  134. package/src/signals/types.ts +74 -0
  135. package/src/sources/get.test.ts +166 -0
  136. package/src/sources/get.ts +75 -0
  137. package/src/sources/internals.ts +46 -0
  138. package/src/sources/list.test.ts +247 -0
  139. package/src/sources/list.ts +95 -0
  140. package/src/sources/parse.ts +43 -0
  141. package/src/sources/types.ts +67 -0
  142. package/src/telemetry.test.ts +394 -0
  143. package/src/telemetry.ts +436 -0
  144. package/src/types.ts +23 -0
  145. package/src/vault-client.ts +91 -1
@@ -0,0 +1,309 @@
1
+ /**
2
+ * Tests for the usage telemetry collector. Mirrors the Rust test matrix at
3
+ * `hq-workspace/apps/hq-sync/src-tauri/src/commands/telemetry.rs::tests` so a
4
+ * behavioral regression in either implementation surfaces in both suites.
5
+ *
6
+ * The vault client is stubbed structurally rather than via fetch-mock so the
7
+ * tests stay deterministic without spinning up wiremock — the production
8
+ * boundary is `TelemetryClientSurface`, not the HTTP layer.
9
+ */
10
+ import { describe, it, expect, beforeEach, afterEach } from "vitest";
11
+ import * as fs from "fs";
12
+ import * as os from "os";
13
+ import * as path from "path";
14
+ import { collectAndSendTelemetry, sanitizeRow, } from "./telemetry.js";
15
+ function makeClient(opts = {}) {
16
+ const optInResponse = opts.optInResponse ?? { enabled: true, updatedAt: null };
17
+ const postResponse = opts.postResponse ?? { ok: true, written: 0, skipped: [] };
18
+ const posts = [];
19
+ const stub = {
20
+ posts,
21
+ optInCalls: 0,
22
+ async getTelemetryOptIn() {
23
+ this.optInCalls++;
24
+ if (optInResponse instanceof Error)
25
+ throw optInResponse;
26
+ return optInResponse;
27
+ },
28
+ async postUsage(batch) {
29
+ posts.push(batch);
30
+ if (postResponse instanceof Error)
31
+ throw postResponse;
32
+ return postResponse;
33
+ },
34
+ };
35
+ return stub;
36
+ }
37
+ function setupEnv() {
38
+ const root = fs.mkdtempSync(path.join(os.tmpdir(), "hq-telemetry-test-"));
39
+ const claudeProjects = path.join(root, ".claude", "projects");
40
+ fs.mkdirSync(claudeProjects, { recursive: true });
41
+ fs.mkdirSync(path.join(root, ".hq"), { recursive: true });
42
+ return {
43
+ root,
44
+ claudeProjects,
45
+ cursorPath: path.join(root, ".hq", "telemetry-cursor.json"),
46
+ menubarPath: path.join(root, ".hq", "menubar.json"),
47
+ };
48
+ }
49
+ function teardownEnv(env) {
50
+ fs.rmSync(env.root, { recursive: true, force: true });
51
+ }
52
+ function writeJsonl(env, sub, name, lines) {
53
+ const dir = path.join(env.claudeProjects, sub);
54
+ fs.mkdirSync(dir, { recursive: true });
55
+ const p = path.join(dir, name);
56
+ fs.writeFileSync(p, lines.map((l) => `${l}\n`).join(""));
57
+ return p;
58
+ }
59
+ function readCursor(env) {
60
+ return JSON.parse(fs.readFileSync(env.cursorPath, "utf-8"));
61
+ }
62
+ function makeOpts(env, client) {
63
+ return {
64
+ client,
65
+ machineId: "test-machine",
66
+ installerVersion: "test-version",
67
+ claudeProjectsRoot: env.claudeProjects,
68
+ cursorPath: env.cursorPath,
69
+ menubarPath: env.menubarPath,
70
+ };
71
+ }
72
+ // Representative Claude Code session rows. Mirror the Rust fixtures exactly so
73
+ // drift between implementations is detectable.
74
+ const USER_ROW = JSON.stringify({
75
+ type: "user",
76
+ timestamp: "2026-04-25T10:00:00Z",
77
+ sessionId: "s1",
78
+ uuid: "u1",
79
+ parentUuid: null,
80
+ userType: "human",
81
+ entrypoint: "cli",
82
+ cwd: "/Users/x/proj",
83
+ gitBranch: "main",
84
+ version: "1.0",
85
+ message: { role: "user", content: [{ type: "text", text: "hello world" }], id: "msg_1" },
86
+ });
87
+ const ASST_ROW = JSON.stringify({
88
+ type: "assistant",
89
+ timestamp: "2026-04-25T10:00:01Z",
90
+ sessionId: "s1",
91
+ uuid: "u2",
92
+ parentUuid: "u1",
93
+ message: {
94
+ role: "assistant",
95
+ model: "claude-opus",
96
+ content: [{ type: "text", text: "hi" }, { type: "thinking", thinking: "hmm" }],
97
+ stop_sequence: "</end>",
98
+ usage: { input_tokens: 42, output_tokens: 7, cache_read_input_tokens: 100 },
99
+ id: "msg_2",
100
+ },
101
+ toolUseIds: ["t1"],
102
+ toolResults: [{ id: "t1", output: "x" }],
103
+ requestId: "req_1",
104
+ });
105
+ // ── sanitizeRow ───────────────────────────────────────────────────────────────
106
+ describe("sanitizeRow", () => {
107
+ it("returns null for non-objects", () => {
108
+ expect(sanitizeRow(null)).toBeNull();
109
+ expect(sanitizeRow("string")).toBeNull();
110
+ expect(sanitizeRow(42)).toBeNull();
111
+ expect(sanitizeRow([])).toBeNull();
112
+ });
113
+ it("keeps only top-level allowlist fields", () => {
114
+ const row = JSON.parse(USER_ROW);
115
+ const out = sanitizeRow(row);
116
+ expect(out).not.toBeNull();
117
+ const keys = new Set(Object.keys(out));
118
+ // KEEP: sessionId, timestamp, uuid, cwd, gitBranch, userType
119
+ for (const expected of ["sessionId", "timestamp", "uuid", "cwd", "gitBranch", "userType"]) {
120
+ expect(keys.has(expected)).toBe(true);
121
+ }
122
+ // Sensitive / unknown fields must be absent:
123
+ for (const removed of ["type", "parentUuid", "entrypoint", "version", "message", "content", "thinking", "text", "toolUseIds", "toolResults"]) {
124
+ expect(keys.has(removed)).toBe(false);
125
+ }
126
+ });
127
+ it("promotes message.model and flattens message.usage to camelCase", () => {
128
+ const row = JSON.parse(ASST_ROW);
129
+ const out = sanitizeRow(row);
130
+ expect(out).not.toBeNull();
131
+ expect(out.model).toBe("claude-opus");
132
+ expect(out.inputTokens).toBe(42);
133
+ expect(out.outputTokens).toBe(7);
134
+ expect(out.cacheReadInputTokens).toBe(100);
135
+ // cacheCreationInputTokens not present in fixture; must be absent (not 0/null).
136
+ expect("cacheCreationInputTokens" in out).toBe(false);
137
+ // `message` must not survive — its prompt/thinking/tools are exactly what
138
+ // we're trying to keep off the wire.
139
+ expect("message" in out).toBe(false);
140
+ });
141
+ it("rejects every field outside the server KEEP allowlist", () => {
142
+ const out = sanitizeRow(JSON.parse(ASST_ROW));
143
+ const allowed = new Set([
144
+ "sessionId", "timestamp", "uuid", "cwd", "gitBranch", "userType",
145
+ "model", "inputTokens", "outputTokens",
146
+ "cacheCreationInputTokens", "cacheReadInputTokens",
147
+ ]);
148
+ for (const key of Object.keys(out)) {
149
+ expect(allowed.has(key), `field "${key}" must be in server allowlist`).toBe(true);
150
+ }
151
+ });
152
+ });
153
+ // ── collectAndSendTelemetry ───────────────────────────────────────────────────
154
+ describe("collectAndSendTelemetry", () => {
155
+ let env;
156
+ beforeEach(() => { env = setupEnv(); });
157
+ afterEach(() => { teardownEnv(env); });
158
+ it("(a) opt-in=false → sends nothing and does not write cursor", async () => {
159
+ const client = makeClient({ optInResponse: { enabled: false, updatedAt: null } });
160
+ writeJsonl(env, "proj", "s.jsonl", [USER_ROW, ASST_ROW]);
161
+ const result = await collectAndSendTelemetry(makeOpts(env, client));
162
+ expect(result.enabled).toBe(false);
163
+ expect(result.optInSource).toBe("server");
164
+ expect(client.posts).toHaveLength(0);
165
+ expect(fs.existsSync(env.cursorPath)).toBe(false);
166
+ });
167
+ it("(b) missing cursor → reads all rows from offset 0, advances to EOF", async () => {
168
+ const client = makeClient();
169
+ const jsonlPath = writeJsonl(env, "proj", "s.jsonl", [USER_ROW, ASST_ROW]);
170
+ const fileSize = fs.statSync(jsonlPath).size;
171
+ const result = await collectAndSendTelemetry(makeOpts(env, client));
172
+ expect(result.enabled).toBe(true);
173
+ expect(result.eventsSent).toBe(2);
174
+ expect(client.posts).toHaveLength(1);
175
+ expect(client.posts[0].events).toHaveLength(2);
176
+ expect(client.posts[0].machineId).toBe("test-machine");
177
+ expect(client.posts[0].installerVersion).toBe("test-version");
178
+ const cursor = readCursor(env);
179
+ expect(cursor.files[jsonlPath].offset).toBe(fileSize);
180
+ });
181
+ it("(c) sanitizer strips REMOVE fields — only allowlisted fields reach wire", async () => {
182
+ const client = makeClient();
183
+ writeJsonl(env, "proj", "full.jsonl", [USER_ROW, ASST_ROW]);
184
+ await collectAndSendTelemetry(makeOpts(env, client));
185
+ expect(client.posts).toHaveLength(1);
186
+ const allowed = new Set([
187
+ "sessionId", "timestamp", "uuid", "cwd", "gitBranch", "userType",
188
+ "model", "inputTokens", "outputTokens",
189
+ "cacheCreationInputTokens", "cacheReadInputTokens",
190
+ ]);
191
+ for (const ev of client.posts[0].events) {
192
+ for (const key of Object.keys(ev)) {
193
+ expect(allowed.has(key), `field "${key}" must be in allowlist`).toBe(true);
194
+ }
195
+ expect("message" in ev).toBe(false);
196
+ for (const banned of ["content", "thinking", "text", "toolUseIds", "toolResults"]) {
197
+ expect(banned in ev).toBe(false);
198
+ }
199
+ }
200
+ });
201
+ it("(d) 1 MiB cap forces ≥2 batches when rows are large", async () => {
202
+ const client = makeClient();
203
+ // ~25 KiB per row × 50 rows ≈ 1.25 MiB → ≥2 batches.
204
+ const longBranch = "x".repeat(25_000);
205
+ const lines = [];
206
+ for (let i = 0; i < 50; i++) {
207
+ lines.push(JSON.stringify({
208
+ type: "user",
209
+ timestamp: `2026-04-25T10:00:${String(i % 60).padStart(2, "0")}Z`,
210
+ sessionId: "s1",
211
+ uuid: `u${i}`,
212
+ cwd: "/Users/x",
213
+ gitBranch: longBranch,
214
+ userType: "human",
215
+ message: { role: "user", content: [{ type: "text", text: "hi" }], id: "m" },
216
+ }));
217
+ }
218
+ writeJsonl(env, "proj", "large.jsonl", lines);
219
+ const result = await collectAndSendTelemetry(makeOpts(env, client));
220
+ expect(result.batchesSent).toBeGreaterThanOrEqual(2);
221
+ expect(result.eventsSent).toBe(50);
222
+ // Final batch must be < 1 MiB on the wire.
223
+ const lastWire = Buffer.byteLength(JSON.stringify(client.posts.at(-1)), "utf-8");
224
+ expect(lastWire).toBeLessThan(1_000_000);
225
+ });
226
+ it("(e) POST 500 → cursor NOT advanced", async () => {
227
+ const client = makeClient({ postResponse: new Error("server 500") });
228
+ writeJsonl(env, "proj", "s.jsonl", [USER_ROW, ASST_ROW, USER_ROW]);
229
+ const result = await collectAndSendTelemetry(makeOpts(env, client));
230
+ expect(result.eventsSent).toBe(0);
231
+ expect(result.batchesSent).toBe(0);
232
+ expect(client.posts).toHaveLength(1); // we still tried
233
+ // Cursor file is written (with rotation/empty resets), but the file's
234
+ // entry must NOT carry a non-zero offset.
235
+ if (fs.existsSync(env.cursorPath)) {
236
+ const cursor = readCursor(env);
237
+ const allOffsets = Object.values(cursor.files).map((e) => e.offset);
238
+ expect(allOffsets.every((off) => off === 0)).toBe(true);
239
+ }
240
+ });
241
+ it("(f) atomic cursor write — no .tmp leftover", async () => {
242
+ const client = makeClient();
243
+ writeJsonl(env, "proj", "s.jsonl", [USER_ROW]);
244
+ await collectAndSendTelemetry(makeOpts(env, client));
245
+ expect(fs.existsSync(env.cursorPath)).toBe(true);
246
+ expect(fs.existsSync(`${env.cursorPath}.tmp`)).toBe(false);
247
+ });
248
+ it("(g) new file between runs starts at offset 0", async () => {
249
+ const client = makeClient();
250
+ writeJsonl(env, "proj-a", "a.jsonl", [USER_ROW]);
251
+ await collectAndSendTelemetry(makeOpts(env, client));
252
+ const postsAfterRun1 = client.posts.length;
253
+ expect(postsAfterRun1).toBeGreaterThanOrEqual(1);
254
+ // Add a new fixture between runs.
255
+ const pathB = writeJsonl(env, "proj-b", "b.jsonl", [ASST_ROW]);
256
+ await collectAndSendTelemetry(makeOpts(env, client));
257
+ const cursor = readCursor(env);
258
+ const sizeB = fs.statSync(pathB).size;
259
+ expect(cursor.files[pathB].offset).toBe(sizeB);
260
+ });
261
+ it("(h) truncated/rotated file resets cursor to 0", async () => {
262
+ const client = makeClient();
263
+ const pathA = writeJsonl(env, "proj", "a.jsonl", [USER_ROW, ASST_ROW, USER_ROW]);
264
+ const originalSize = fs.statSync(pathA).size;
265
+ await collectAndSendTelemetry(makeOpts(env, client));
266
+ let cursor = readCursor(env);
267
+ expect(cursor.files[pathA].offset).toBe(originalSize);
268
+ // Truncate to 0 → next run must detect rotation and reset.
269
+ fs.truncateSync(pathA, 0);
270
+ await collectAndSendTelemetry(makeOpts(env, client));
271
+ cursor = readCursor(env);
272
+ expect(cursor.files[pathA].offset).toBe(0);
273
+ });
274
+ it("(i) opt-in GET fails → falls back to menubar.json (telemetryEnabled=true → runs)", async () => {
275
+ const client = makeClient({ optInResponse: new Error("server 500") });
276
+ fs.writeFileSync(env.menubarPath, JSON.stringify({ telemetryEnabled: true }));
277
+ writeJsonl(env, "proj", "s.jsonl", [USER_ROW]);
278
+ const result = await collectAndSendTelemetry(makeOpts(env, client));
279
+ expect(result.enabled).toBe(true);
280
+ expect(result.optInSource).toBe("menubar-fallback");
281
+ expect(client.posts).toHaveLength(1);
282
+ });
283
+ it("(i') opt-in GET fails AND menubar.json says false → skips", async () => {
284
+ const client = makeClient({ optInResponse: new Error("server 500") });
285
+ fs.writeFileSync(env.menubarPath, JSON.stringify({ telemetryEnabled: false }));
286
+ writeJsonl(env, "proj", "s.jsonl", [USER_ROW]);
287
+ const result = await collectAndSendTelemetry(makeOpts(env, client));
288
+ expect(result.enabled).toBe(false);
289
+ expect(result.optInSource).toBe("menubar-fallback");
290
+ expect(client.posts).toHaveLength(0);
291
+ });
292
+ it("(j) missing claude/projects directory → no crash, no posts", async () => {
293
+ fs.rmSync(env.claudeProjects, { recursive: true });
294
+ const client = makeClient();
295
+ const result = await collectAndSendTelemetry(makeOpts(env, client));
296
+ expect(result.enabled).toBe(true);
297
+ expect(result.filesScanned).toBe(0);
298
+ expect(client.posts).toHaveLength(0);
299
+ });
300
+ it("(k) second run with no new content sends nothing", async () => {
301
+ const client = makeClient();
302
+ writeJsonl(env, "proj", "s.jsonl", [USER_ROW, ASST_ROW]);
303
+ await collectAndSendTelemetry(makeOpts(env, client));
304
+ expect(client.posts).toHaveLength(1);
305
+ await collectAndSendTelemetry(makeOpts(env, client));
306
+ expect(client.posts).toHaveLength(1); // no second POST
307
+ });
308
+ });
309
+ //# sourceMappingURL=telemetry.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.test.js","sourceRoot":"","sources":["../src/telemetry.test.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -80,6 +80,23 @@ export interface VaultCredentials {
80
80
  secretAccessKey: string;
81
81
  sessionToken: string;
82
82
  }
83
+ /**
84
+ * Caller identification stamped on every request to hq-cloud-api so the server
85
+ * can attribute traffic and gate on minimum versions.
86
+ */
87
+ export interface ClientInfo {
88
+ /** Package name, e.g. "@indigoai-us/hq-cli" */
89
+ name: string;
90
+ /** Package version, e.g. "5.15.0" */
91
+ version: string;
92
+ /**
93
+ * `hqVersion` from `core/core.yaml` — set when the caller is running inside
94
+ * an hq-core checkout. Lets the server see scaffold-generation skew.
95
+ */
96
+ hqCoreVersion?: string;
97
+ /** Arbitrary extra key/value pairs forwarded as `x-hq-client-<key>` headers. */
98
+ extra?: Record<string, string>;
99
+ }
83
100
  /**
84
101
  * Configuration for connecting to the vault-service API.
85
102
  */
@@ -99,6 +116,11 @@ export interface VaultServiceConfig {
99
116
  authToken: string | (() => string | Promise<string>);
100
117
  /** AWS region for S3 client (defaults to entity region or us-east-1) */
101
118
  region?: string;
119
+ /**
120
+ * Identifies the calling package + version on every outbound request.
121
+ * Optional for back-compat, but all first-party clients should pass it.
122
+ */
123
+ clientInfo?: ClientInfo;
102
124
  }
103
125
  export interface ConflictIndexEntry {
104
126
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -92,6 +92,16 @@ export interface CreateEntityInput {
92
92
  export interface CreateEntityResult {
93
93
  entity: EntityInfo;
94
94
  }
95
+ export interface EntityStsResult {
96
+ credentials: {
97
+ accessKeyId: string;
98
+ secretAccessKey: string;
99
+ sessionToken: string;
100
+ };
101
+ expiresAt: string;
102
+ bucketName: string;
103
+ region: string;
104
+ }
95
105
  export type TaskAction = "read" | "write";
96
106
  export interface TaskScope {
97
107
  /** S3 key prefixes the child may access (e.g. ["drafts/"]). */
@@ -126,9 +136,36 @@ export interface VendChildResult {
126
136
  /** ISO-8601 session expiration. */
127
137
  expiresAt: string;
128
138
  }
139
+ export interface TelemetryOptInResponse {
140
+ enabled: boolean;
141
+ updatedAt: string | null;
142
+ }
143
+ export interface UsageBatch {
144
+ machineId: string;
145
+ installerVersion: string;
146
+ /**
147
+ * Sanitized event rows. Each row is a plain object containing only the
148
+ * fields in the server's KEEP allowlist (sessionId, timestamp, uuid, cwd,
149
+ * gitBranch, userType, model, inputTokens, outputTokens,
150
+ * cacheCreationInputTokens, cacheReadInputTokens). Any extra field is
151
+ * rejected by hq-pro with `unexpected-event-field`, so the sanitizer in
152
+ * `./telemetry.ts` is the only thing allowed to produce these.
153
+ */
154
+ events: Array<Record<string, unknown>>;
155
+ }
156
+ export interface UsageIngestResult {
157
+ ok: boolean;
158
+ written: number;
159
+ skipped: Array<{
160
+ index: number;
161
+ code: string;
162
+ error: string;
163
+ }>;
164
+ }
129
165
  export declare class VaultClient {
130
166
  private readonly apiUrl;
131
167
  private readonly getAuthToken;
168
+ private readonly clientInfo;
132
169
  constructor(config: VaultServiceConfig);
133
170
  createInvite(input: CreateInviteInput): Promise<CreateInviteResult>;
134
171
  acceptInvite(token: string, personUid: string): Promise<AcceptInviteResult>;
@@ -250,7 +287,30 @@ export declare class VaultClient {
250
287
  };
251
288
  expiresAt: string;
252
289
  }>;
290
+ /**
291
+ * Vend STS-scoped credentials for an entity's S3 bucket.
292
+ * Backed by `POST /entities/{uid}/sts` — simpler than vend-child,
293
+ * returns full-bucket read credentials for the entity.
294
+ */
295
+ vendForEntity: (entityUid: string) => Promise<EntityStsResult>;
253
296
  };
297
+ /**
298
+ * `GET /v1/usage/opt-in` — read whether the authenticated caller has opted
299
+ * in to per-event usage telemetry. Defaults to `false` server-side when the
300
+ * person row carries no `telemetryOptIn` field. Callers should treat any
301
+ * thrown error as "unknown — fall back to the local gate" rather than
302
+ * either yes or no; see `./telemetry.ts::collectAndSendTelemetry`.
303
+ */
304
+ getTelemetryOptIn(): Promise<TelemetryOptInResponse>;
305
+ /**
306
+ * `POST /v1/usage` — upload a batch of sanitized telemetry events.
307
+ *
308
+ * `personUid` MUST NOT appear in the batch — server-side resolution from
309
+ * the JWT is the only path. The server caps the body at 256 KiB and the
310
+ * event list at 100 rows; the collector in `./telemetry.ts` enforces a
311
+ * 1 MiB pre-flush cap which is the binding limit in practice.
312
+ */
313
+ postUsage(batch: UsageBatch): Promise<UsageIngestResult>;
254
314
  private get;
255
315
  private post;
256
316
  private request;
@@ -1 +1 @@
1
- {"version":3,"file":"vault-client.d.ts","sourceRoot":"","sources":["../src/vault-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vault-client.d.ts","sourceRoot":"","sources":["../src/vault-client.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@
5
5
  * Colocated with hq-cloud so /invite, /promote, /accept and future commands
6
6
  * share one client instead of each rolling its own HTTP layer.
7
7
  */
8
+ import { buildClientHeaders } from "./client-info.js";
8
9
  // ---------------------------------------------------------------------------
9
10
  // Error classes
10
11
  // ---------------------------------------------------------------------------
@@ -75,6 +76,7 @@ async function sleep(ms) {
75
76
  export class VaultClient {
76
77
  apiUrl;
77
78
  getAuthToken;
79
+ clientInfo;
78
80
  constructor(config) {
79
81
  this.apiUrl = config.apiUrl.replace(/\/+$/, "");
80
82
  // Normalize string|getter into a single async getter so the request path
@@ -88,6 +90,7 @@ export class VaultClient {
88
90
  typeof tok === "function"
89
91
  ? async () => tok()
90
92
  : async () => tok;
93
+ this.clientInfo = config.clientInfo;
91
94
  }
92
95
  // -- Membership operations ------------------------------------------------
93
96
  async createInvite(input) {
@@ -263,7 +266,44 @@ export class VaultClient {
263
266
  vendSelf: async (input) => {
264
267
  return this.post("/sts/vend-self", input);
265
268
  },
269
+ /**
270
+ * Vend STS-scoped credentials for an entity's S3 bucket.
271
+ * Backed by `POST /entities/{uid}/sts` — simpler than vend-child,
272
+ * returns full-bucket read credentials for the entity.
273
+ */
274
+ vendForEntity: async (entityUid) => {
275
+ const data = await this.post(`/entities/${encodeURIComponent(entityUid)}/sts`, {});
276
+ return data;
277
+ },
266
278
  };
279
+ // -- Usage telemetry ------------------------------------------------------
280
+ //
281
+ // The server resolves `personUid` from the JWT (`extractCallerSub` →
282
+ // `resolveCallerPersonUid` in hq-pro `src/vault-service/handlers/_shared.ts`)
283
+ // and explicitly rejects any request body that carries a top-level
284
+ // `personUid`. So clients only send `{ machineId, installerVersion, events }`
285
+ // — tenant isolation is preserved no matter how this client is wrapped.
286
+ /**
287
+ * `GET /v1/usage/opt-in` — read whether the authenticated caller has opted
288
+ * in to per-event usage telemetry. Defaults to `false` server-side when the
289
+ * person row carries no `telemetryOptIn` field. Callers should treat any
290
+ * thrown error as "unknown — fall back to the local gate" rather than
291
+ * either yes or no; see `./telemetry.ts::collectAndSendTelemetry`.
292
+ */
293
+ async getTelemetryOptIn() {
294
+ return this.get("/v1/usage/opt-in");
295
+ }
296
+ /**
297
+ * `POST /v1/usage` — upload a batch of sanitized telemetry events.
298
+ *
299
+ * `personUid` MUST NOT appear in the batch — server-side resolution from
300
+ * the JWT is the only path. The server caps the body at 256 KiB and the
301
+ * event list at 100 rows; the collector in `./telemetry.ts` enforces a
302
+ * 1 MiB pre-flush cap which is the binding limit in practice.
303
+ */
304
+ async postUsage(batch) {
305
+ return this.post("/v1/usage", batch);
306
+ }
267
307
  // -- HTTP primitives with retry -------------------------------------------
268
308
  async get(path) {
269
309
  return this.request("GET", path);
@@ -281,6 +321,7 @@ export class VaultClient {
281
321
  const headers = {
282
322
  Authorization: `Bearer ${await this.getAuthToken()}`,
283
323
  Accept: "application/json",
324
+ ...buildClientHeaders(this.clientInfo),
284
325
  };
285
326
  const init = { method, headers };
286
327
  if (body !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"vault-client.js","sourceRoot":"","sources":["../src/vault-client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAGvB;IACA;IAHlB,YACE,OAAe,EACC,UAAkB,EAClB,IAAa;QAE7B,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,eAAU,GAAV,UAAU,CAAQ;QAClB,SAAI,GAAJ,IAAI,CAAS;QAG7B,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,gBAAgB;IAClD,YAAY,OAAO,GAAG,oDAAoD;QACxE,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED,MAAM,OAAO,0BAA2B,SAAQ,gBAAgB;IAC9D,YAAY,OAAO,GAAG,yCAAyC;QAC7D,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,gBAAgB;IACtD,YAAY,OAAO,GAAG,oBAAoB;QACxC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,gBAAgB;IACtD,YAAY,OAAO,GAAG,4DAA4D;QAChF,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AA+DD,MAAM,UAAU,yBAAyB,CACvC,IAAkB;IAElB,iFAAiF;IACjF,iFAAiF;IACjF,4BAA4B;IAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACxD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACxC,MAAM,EAAE,GAAI,CAAC,CAAC,SAAgC,IAAI,EAAE,CAAC;QACrD,MAAM,EAAE,GAAI,CAAC,CAAC,SAAgC,IAAI,EAAE,CAAC;QACrD,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AAgED,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B,SAAS,WAAW,CAAC,MAAc;IACjC,OAAO,MAAM,KAAK,GAAG,IAAI,MAAM,IAAI,GAAG,CAAC;AACzC,CAAC;AAED,KAAK,UAAU,KAAK,CAAC,EAAU;IAC7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,MAAM,OAAO,WAAW;IACL,MAAM,CAAS;IACf,YAAY,CAAwB;IAErD,YAAY,MAA0B;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChD,yEAAyE;QACzE,0EAA0E;QAC1E,uEAAuE;QACvE,qEAAqE;QACrE,uEAAuE;QACvE,4DAA4D;QAC5D,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;QAC7B,IAAI,CAAC,YAAY;YACf,OAAO,GAAG,KAAK,UAAU;gBACvB,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,EAAE;gBACnB,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,CAAC;IACxB,CAAC;IAED,4EAA4E;IAE5E,KAAK,CAAC,YAAY,CAAC,KAAwB;QACzC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAC1B,oBAAoB,EACpB,KAAK,CACN,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,SAAiB;QACjD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAC1B,oBAAoB,EACpB,EAAE,KAAK,EAAE,SAAS,EAAE,CACrB,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,gBAAgB,CAAC,aAAqB,EAAE,UAAkB;QAC9D,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC;IACvE,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,iBAAiB;QACrB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAgC,gBAAgB,CAAC,CAAC;QAC7E,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,2BAA2B;QAC/B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CACzB,8BAA8B,CAC/B,CAAC;QACF,OAAO,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,0BAA0B,CAAC,SAAiB;QAChD,MAAM,IAAI,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,UAAkB;QAC3C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CACzB,uBAAuB,kBAAkB,CAAC,UAAU,CAAC,EAAE,CACxD,CAAC;QACF,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAsB;QACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAC1B,kBAAkB,EAClB,KAAK,CACN,CAAC;QACF,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,UAAkB;QACzC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CACzB,uBAAuB,kBAAkB,CAAC,UAAU,CAAC,UAAU,CAChE,CAAC;QACF,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,4EAA4E;IAEnE,MAAM,GAAG;QAChB,GAAG,EAAE,KAAK,EAAE,GAAW,EAAuB,EAAE;YAC9C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAyB,WAAW,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1F,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;QAED;;;;;;;;;;WAUG;QACH,UAAU,EAAE,KAAK,EAAE,IAAY,EAAE,IAAY,EAAuB,EAAE;YACpE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CACzB,mBAAmB,kBAAkB,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAC1E,CAAC;YACF,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;QAED;;;;;;;;;;;WAWG;QACH,iBAAiB,EAAE,KAAK,EACtB,IAAY,EACZ,IAAY,EACgB,EAAE;YAC9B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAI1B,8BAA8B,kBAAkB,CAAC,IAAI,CAAC,SAAS,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAC1F,CAAC;YACF,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,qBAAqB;gBAAE,OAAO,IAAI,CAAC;YACjE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,KAAwB,EAAuB,EAAE;YAC9D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAqB,SAAS,EAAE,KAAK,CAAC,CAAC;YACnE,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;QAED,yEAAyE;QACzE,UAAU,EAAE,KAAK,EAAE,IAAY,EAAyB,EAAE;YACxD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CACzB,mBAAmB,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAC9C,CAAC;YACF,OAAO,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;QAC7B,CAAC;KACF,CAAC;IAEF,4EAA4E;IAE5E;;;;;;;;;;OAUG;IACH,KAAK,CAAC,oBAAoB,CAAC,KAG1B;QACC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAE/B,MAAM,IAAI,GACR,KAAK,CAAC,WAAW;aACd,WAAW,EAAE;aACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;aAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;aACvB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,QAAQ,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QAEtE,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACxB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,KAAK,CAAC,WAAW;YACvB,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED,+EAA+E;IAE/E,KAAK,CAAC,eAAe,CAAC,UAAkB;QACtC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAC1B,mBAAmB,EACnB,EAAE,UAAU,EAAE,CACf,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4EAA4E;IAEnE,GAAG,GAAG;QACb;;;;;;;;;;;;WAYG;QACH,SAAS,EAAE,KAAK,EAAE,KAAqB,EAA4B,EAAE;YACnE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAkB,iBAAiB,EAAE,KAAK,CAAC,CAAC;YACxE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,QAAQ,EAAE,KAAK,EAAE,KAAsD,EAGpE,EAAE;YACH,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;QAC5C,CAAC;KACF,CAAC;IAEF,4EAA4E;IAEpE,KAAK,CAAC,GAAG,CAAI,IAAY;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAEO,KAAK,CAAC,IAAI,CAAI,IAAY,EAAE,IAAc;QAChD,OAAO,IAAI,CAAC,OAAO,CAAI,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAEO,KAAK,CAAC,OAAO,CAAI,MAAc,EAAE,IAAY,EAAE,IAAc;QACnE,IAAI,SAA4B,CAAC;QAEjC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;YACxD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,MAAM,KAAK,GAAG,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;gBACvD,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;YAED,MAAM,OAAO,GAA2B;gBACtC,aAAa,EAAE,UAAU,MAAM,IAAI,CAAC,YAAY,EAAE,EAAE;gBACpD,MAAM,EAAE,kBAAkB;aAC3B,CAAC;YAEF,MAAM,IAAI,GAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAE9C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;gBAC7C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;YAED,IAAI,GAAa,CAAC;YAClB,IAAI,CAAC;gBACH,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;YACnD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,SAAS,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChE,IAAI,OAAO,GAAG,WAAW;oBAAE,SAAS;gBACpC,MAAM,SAAS,CAAC;YAClB,CAAC;YAED,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACX,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;oBAAE,OAAO,SAAc,CAAC;gBAC9C,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAM,CAAC;YACjC,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAEtC,2CAA2C;YAC3C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YAChD,CAAC;YAED,6BAA6B;YAC7B,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,SAAS,IAAI,IAAI,gBAAgB,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;IAC/E,CAAC;IAEO,QAAQ,CAAC,MAAc,EAAE,IAAY;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAE1C,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,GAAG;gBACN,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;YACrC,KAAK,GAAG;gBACN,OAAO,IAAI,0BAA0B,CAAC,OAAO,CAAC,CAAC;YACjD,KAAK,GAAG;gBACN,OAAO,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACzC,KAAK,GAAG;gBACN,OAAO,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACzC;gBACE,OAAO,IAAI,gBAAgB,CAAC,OAAO,IAAI,8BAA8B,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACjG,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,IAAY;QACjC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAyC,CAAC;YACxE,OAAO,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"vault-client.js","sourceRoot":"","sources":["../src/vault-client.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@indigoai-us/hq-cloud",
3
- "version": "5.19.0",
3
+ "version": "5.20.0",
4
4
  "description": "HQ by Indigo cloud sync engine — bidirectional S3 sync for mobile access",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -21,12 +21,14 @@
21
21
  "@aws-sdk/credential-providers": "^3.700.0",
22
22
  "chokidar": "^4.0.0",
23
23
  "ignore": "^6.0.0",
24
- "open": "^10.1.0"
24
+ "open": "^10.1.0",
25
+ "js-yaml": "^4.1.0"
25
26
  },
26
27
  "devDependencies": {
27
28
  "@types/node": "^22.0.0",
28
29
  "typescript": "^5.7.0",
29
- "vitest": "^3.0.0"
30
+ "vitest": "^3.0.0",
31
+ "@types/js-yaml": "^4.0.9"
30
32
  },
31
33
  "repository": {
32
34
  "type": "git",