@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.
- package/.github/workflows/ci.yml +8 -4
- package/.github/workflows/publish.yml +9 -3
- package/dist/bin/sync-runner.d.ts +9 -0
- package/dist/bin/sync-runner.d.ts.map +1 -1
- package/dist/bin/sync-runner.js +58 -0
- package/dist/bin/sync-runner.js.map +1 -1
- package/dist/client-info.d.ts +44 -0
- package/dist/client-info.d.ts.map +1 -0
- package/dist/client-info.js +112 -0
- package/dist/client-info.js.map +1 -0
- package/dist/client-info.test.d.ts +11 -0
- package/dist/client-info.test.d.ts.map +1 -0
- package/dist/client-info.test.js +168 -0
- package/dist/client-info.test.js.map +1 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +10 -2
- package/dist/context.js.map +1 -1
- package/dist/entity-resolver.d.ts +48 -0
- package/dist/entity-resolver.d.ts.map +1 -0
- package/dist/entity-resolver.js +122 -0
- package/dist/entity-resolver.js.map +1 -0
- package/dist/entity-resolver.test.d.ts +10 -0
- package/dist/entity-resolver.test.d.ts.map +1 -0
- package/dist/entity-resolver.test.js +236 -0
- package/dist/entity-resolver.test.js.map +1 -0
- package/dist/index.d.ts +20 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -1
- package/dist/schemas/signal-types.d.ts +16 -0
- package/dist/schemas/signal-types.d.ts.map +1 -0
- package/dist/schemas/signal-types.js +30 -0
- package/dist/schemas/signal-types.js.map +1 -0
- package/dist/schemas/signal-types.test.d.ts +2 -0
- package/dist/schemas/signal-types.test.d.ts.map +1 -0
- package/dist/schemas/signal-types.test.js +65 -0
- package/dist/schemas/signal-types.test.js.map +1 -0
- package/dist/schemas/source-channels.d.ts +15 -0
- package/dist/schemas/source-channels.d.ts.map +1 -0
- package/dist/schemas/source-channels.js +28 -0
- package/dist/schemas/source-channels.js.map +1 -0
- package/dist/schemas/source-channels.test.d.ts +2 -0
- package/dist/schemas/source-channels.test.d.ts.map +1 -0
- package/dist/schemas/source-channels.test.js +65 -0
- package/dist/schemas/source-channels.test.js.map +1 -0
- package/dist/signals/get.d.ts +13 -0
- package/dist/signals/get.d.ts.map +1 -0
- package/dist/signals/get.js +74 -0
- package/dist/signals/get.js.map +1 -0
- package/dist/signals/get.test.d.ts +5 -0
- package/dist/signals/get.test.d.ts.map +1 -0
- package/dist/signals/get.test.js +170 -0
- package/dist/signals/get.test.js.map +1 -0
- package/dist/signals/internals.d.ts +16 -0
- package/dist/signals/internals.d.ts.map +1 -0
- package/dist/signals/internals.js +39 -0
- package/dist/signals/internals.js.map +1 -0
- package/dist/signals/list.d.ts +10 -0
- package/dist/signals/list.d.ts.map +1 -0
- package/dist/signals/list.js +76 -0
- package/dist/signals/list.js.map +1 -0
- package/dist/signals/list.test.d.ts +9 -0
- package/dist/signals/list.test.d.ts.map +1 -0
- package/dist/signals/list.test.js +227 -0
- package/dist/signals/list.test.js.map +1 -0
- package/dist/signals/parse.d.ts +8 -0
- package/dist/signals/parse.d.ts.map +1 -0
- package/dist/signals/parse.js +8 -0
- package/dist/signals/parse.js.map +1 -0
- package/dist/signals/types.d.ts +69 -0
- package/dist/signals/types.d.ts.map +1 -0
- package/dist/signals/types.js +10 -0
- package/dist/signals/types.js.map +1 -0
- package/dist/sources/get.d.ts +11 -0
- package/dist/sources/get.d.ts.map +1 -0
- package/dist/sources/get.js +67 -0
- package/dist/sources/get.js.map +1 -0
- package/dist/sources/get.test.d.ts +5 -0
- package/dist/sources/get.test.d.ts.map +1 -0
- package/dist/sources/get.test.js +132 -0
- package/dist/sources/get.test.js.map +1 -0
- package/dist/sources/internals.d.ts +16 -0
- package/dist/sources/internals.d.ts.map +1 -0
- package/dist/sources/internals.js +39 -0
- package/dist/sources/internals.js.map +1 -0
- package/dist/sources/list.d.ts +10 -0
- package/dist/sources/list.d.ts.map +1 -0
- package/dist/sources/list.js +76 -0
- package/dist/sources/list.js.map +1 -0
- package/dist/sources/list.test.d.ts +8 -0
- package/dist/sources/list.test.d.ts.map +1 -0
- package/dist/sources/list.test.js +198 -0
- package/dist/sources/list.test.js.map +1 -0
- package/dist/sources/parse.d.ts +18 -0
- package/dist/sources/parse.d.ts.map +1 -0
- package/dist/sources/parse.js +35 -0
- package/dist/sources/parse.js.map +1 -0
- package/dist/sources/types.d.ts +62 -0
- package/dist/sources/types.d.ts.map +1 -0
- package/dist/sources/types.js +8 -0
- package/dist/sources/types.js.map +1 -0
- package/dist/telemetry.d.ts +87 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +349 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/telemetry.test.d.ts +11 -0
- package/dist/telemetry.test.d.ts.map +1 -0
- package/dist/telemetry.test.js +309 -0
- package/dist/telemetry.test.js.map +1 -0
- package/dist/types.d.ts +22 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/vault-client.d.ts +60 -0
- package/dist/vault-client.d.ts.map +1 -1
- package/dist/vault-client.js +41 -0
- package/dist/vault-client.js.map +1 -1
- package/package.json +5 -3
- package/src/bin/sync-runner.ts +73 -0
- package/src/client-info.test.ts +214 -0
- package/src/client-info.ts +121 -0
- package/src/context.ts +10 -2
- package/src/entity-resolver.test.ts +307 -0
- package/src/entity-resolver.ts +173 -0
- package/src/index.ts +91 -0
- package/src/schemas/signal-types.test.ts +82 -0
- package/src/schemas/signal-types.ts +38 -0
- package/src/schemas/source-channels.test.ts +82 -0
- package/src/schemas/source-channels.ts +36 -0
- package/src/signals/get.test.ts +204 -0
- package/src/signals/get.ts +79 -0
- package/src/signals/internals.ts +46 -0
- package/src/signals/list.test.ts +283 -0
- package/src/signals/list.ts +92 -0
- package/src/signals/parse.ts +8 -0
- package/src/signals/types.ts +74 -0
- package/src/sources/get.test.ts +166 -0
- package/src/sources/get.ts +75 -0
- package/src/sources/internals.ts +46 -0
- package/src/sources/list.test.ts +247 -0
- package/src/sources/list.ts +95 -0
- package/src/sources/parse.ts +43 -0
- package/src/sources/types.ts +67 -0
- package/src/telemetry.test.ts +394 -0
- package/src/telemetry.ts +436 -0
- package/src/types.ts +23 -0
- 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":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EACL,uBAAuB,EACvB,WAAW,GAGZ,MAAM,gBAAgB,CAAC;AAgBxB,SAAS,UAAU,CAAC,OAGhB,EAAE;IACJ,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC/E,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAEhF,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAe;QACvB,KAAK;QACL,UAAU,EAAE,CAAC;QACb,KAAK,CAAC,iBAAiB;YACrB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,aAAa,YAAY,KAAK;gBAAE,MAAM,aAAa,CAAC;YACxD,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,KAAiB;YAC/B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClB,IAAI,YAAY,YAAY,KAAK;gBAAE,MAAM,YAAY,CAAC;YACtD,OAAO,YAAY,CAAC;QACtB,CAAC;KACF,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC;AASD,SAAS,QAAQ;IACf,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAC1E,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IAC9D,EAAE,CAAC,SAAS,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,OAAO;QACL,IAAI;QACJ,cAAc;QACd,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,uBAAuB,CAAC;QAC3D,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,GAAY;IAC/B,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,UAAU,CAAC,GAAY,EAAE,GAAW,EAAE,IAAY,EAAE,KAAe;IAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IAC/C,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC/B,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,UAAU,CAAC,GAAY;IAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,QAAQ,CAAC,GAAY,EAAE,MAA8B;IAC5D,OAAO;QACL,MAAM;QACN,SAAS,EAAE,cAAc;QACzB,gBAAgB,EAAE,cAAc;QAChC,kBAAkB,EAAE,GAAG,CAAC,cAAc;QACtC,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,WAAW,EAAE,GAAG,CAAC,WAAW;KAC7B,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,+CAA+C;AAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;IAC9B,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,sBAAsB;IACjC,SAAS,EAAE,IAAI;IACf,IAAI,EAAE,IAAI;IACV,UAAU,EAAE,IAAI;IAChB,QAAQ,EAAE,OAAO;IACjB,UAAU,EAAE,KAAK;IACjB,GAAG,EAAE,eAAe;IACpB,SAAS,EAAE,MAAM;IACjB,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE;CACzF,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;IAC9B,IAAI,EAAE,WAAW;IACjB,SAAS,EAAE,sBAAsB;IACjC,SAAS,EAAE,IAAI;IACf,IAAI,EAAE,IAAI;IACV,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE;QACP,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC9E,aAAa,EAAE,QAAQ;QACvB,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,uBAAuB,EAAE,GAAG,EAAE;QAC3E,EAAE,EAAE,OAAO;KACZ;IACD,UAAU,EAAE,CAAC,IAAI,CAAC;IAClB,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACxC,SAAS,EAAE,OAAO;CACnB,CAAC,CAAC;AAEH,iFAAiF;AAEjF,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACzC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACnC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAI,CAAC,CAAC,CAAC;QACxC,6DAA6D;QAC7D,KAAK,MAAM,QAAQ,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC;YAC1F,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QACD,6CAA6C;QAC7C,KAAK,MAAM,OAAO,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,CAAC;YAC7I,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACvC,MAAM,CAAC,GAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClC,MAAM,CAAC,GAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,GAAI,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,gFAAgF;QAChF,MAAM,CAAC,0BAA0B,IAAI,GAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD,0EAA0E;QAC1E,qCAAqC;QACrC,MAAM,CAAC,SAAS,IAAI,GAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC;YACtB,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU;YAChE,OAAO,EAAE,aAAa,EAAE,cAAc;YACtC,0BAA0B,EAAE,sBAAsB;SACnD,CAAC,CAAC;QACH,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,UAAU,GAAG,+BAA+B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpF,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,iFAAiF;AAEjF,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,IAAI,GAAY,CAAC;IACjB,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,SAAS,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvC,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAClF,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAEzD,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QAEpE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;QAClF,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC3E,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;QAE7C,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QAEpE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE9D,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;QACvF,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAE5D,MAAM,uBAAuB,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAErC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC;YACtB,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU;YAChE,OAAO,EAAE,aAAa,EAAE,cAAc;YACtC,0BAA0B,EAAE,sBAAsB;SACnD,CAAC,CAAC;QACH,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YACxC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAClC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,UAAU,GAAG,wBAAwB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7E,CAAC;YACD,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpC,KAAK,MAAM,MAAM,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,CAAC;gBAClF,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,qDAAqD;QACrD,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;gBACxB,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE,oBAAoB,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG;gBACjE,SAAS,EAAE,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,EAAE;gBACb,GAAG,EAAE,UAAU;gBACf,SAAS,EAAE,UAAU;gBACrB,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE;aAC5E,CAAC,CAAC,CAAC;QACN,CAAC;QACD,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;QAE9C,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QAEpE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEnC,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACjF,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,YAAY,EAAE,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACrE,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAEnE,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QAEpE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB;QAEvD,sEAAsE;QACtE,0CAA0C;QAC1C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACpE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE/C,MAAM,uBAAuB,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QAErD,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,UAAU,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEjD,MAAM,uBAAuB,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QACrD,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QAC3C,MAAM,CAAC,cAAc,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QAEjD,kCAAkC;QAClC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/D,MAAM,uBAAuB,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QAErD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QACjF,MAAM,YAAY,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;QAE7C,MAAM,uBAAuB,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QACrD,IAAI,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEtD,2DAA2D;QAC3D,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAE1B,MAAM,uBAAuB,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QAErD,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QACzB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kFAAkF,EAAE,KAAK,IAAI,EAAE;QAChG,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,aAAa,EAAE,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACtE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9E,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE/C,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QAEpE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,aAAa,EAAE,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACtE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC/E,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE/C,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QAEpE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAE5B,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QAEpE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAEzD,MAAM,uBAAuB,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAErC,MAAM,uBAAuB,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB;IACzD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
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;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC;IACzB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,GAAG,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,WAAW,EAAE,gBAAgB,CAAC;IAC9B,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;;;OASG;IACH,SAAS,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACrD,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/vault-client.d.ts
CHANGED
|
@@ -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":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"vault-client.d.ts","sourceRoot":"","sources":["../src/vault-client.ts"],"names":[],"mappings":"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"}
|
package/dist/vault-client.js
CHANGED
|
@@ -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) {
|
package/dist/vault-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vault-client.js","sourceRoot":"","sources":["../src/vault-client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
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.
|
|
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",
|