@optimuslabs/runtime-staging 0.3.9 → 0.3.11

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 (68) hide show
  1. package/dist/index.js +36 -27
  2. package/dist/index.js.map +1 -1
  3. package/dist/lib/client-event.d.ts.map +1 -1
  4. package/dist/lib/client-event.js +35 -25
  5. package/dist/lib/client-event.js.map +1 -1
  6. package/dist/lib/pii-scrub.d.ts +9 -0
  7. package/dist/lib/pii-scrub.d.ts.map +1 -0
  8. package/dist/lib/pii-scrub.js +17 -0
  9. package/dist/lib/pii-scrub.js.map +1 -0
  10. package/dist/lib/prompt-collection-policy.d.ts +10 -0
  11. package/dist/lib/prompt-collection-policy.d.ts.map +1 -1
  12. package/dist/lib/prompt-collection-policy.js +42 -6
  13. package/dist/lib/prompt-collection-policy.js.map +1 -1
  14. package/dist/lib/startup-sync.d.ts.map +1 -1
  15. package/dist/lib/startup-sync.js +78 -56
  16. package/dist/lib/startup-sync.js.map +1 -1
  17. package/dist/lib/telemetry/build-event.d.ts.map +1 -1
  18. package/dist/lib/telemetry/build-event.js +19 -2
  19. package/dist/lib/telemetry/build-event.js.map +1 -1
  20. package/dist/lib/telemetry/index.d.ts +1 -1
  21. package/dist/lib/telemetry/index.d.ts.map +1 -1
  22. package/dist/lib/telemetry/index.js +1 -1
  23. package/dist/lib/telemetry/index.js.map +1 -1
  24. package/dist/lib/telemetry/prompt-privacy.d.ts +7 -1
  25. package/dist/lib/telemetry/prompt-privacy.d.ts.map +1 -1
  26. package/dist/lib/telemetry/prompt-privacy.js +13 -3
  27. package/dist/lib/telemetry/prompt-privacy.js.map +1 -1
  28. package/dist/lib/telemetry/types.d.ts +11 -0
  29. package/dist/lib/telemetry/types.d.ts.map +1 -1
  30. package/dist/lib/telemetry/wire-metadata.d.ts +21 -6
  31. package/dist/lib/telemetry/wire-metadata.d.ts.map +1 -1
  32. package/dist/lib/telemetry/wire-metadata.js +50 -19
  33. package/dist/lib/telemetry/wire-metadata.js.map +1 -1
  34. package/dist/lib/tofu.d.ts +1 -0
  35. package/dist/lib/tofu.d.ts.map +1 -1
  36. package/dist/lib/tofu.js +1 -1
  37. package/dist/lib/tofu.js.map +1 -1
  38. package/dist/lib/transcript.d.ts +5 -0
  39. package/dist/lib/transcript.d.ts.map +1 -1
  40. package/dist/lib/transcript.js +21 -2
  41. package/dist/lib/transcript.js.map +1 -1
  42. package/dist/test/client-event-scrub.test.d.ts +2 -0
  43. package/dist/test/client-event-scrub.test.d.ts.map +1 -0
  44. package/dist/test/client-event-scrub.test.js +36 -0
  45. package/dist/test/client-event-scrub.test.js.map +1 -0
  46. package/dist/test/org-fingerprint-key.test.d.ts +2 -0
  47. package/dist/test/org-fingerprint-key.test.d.ts.map +1 -0
  48. package/dist/test/org-fingerprint-key.test.js +39 -0
  49. package/dist/test/org-fingerprint-key.test.js.map +1 -0
  50. package/dist/test/org-scrub-setting.test.d.ts +2 -0
  51. package/dist/test/org-scrub-setting.test.d.ts.map +1 -0
  52. package/dist/test/org-scrub-setting.test.js +42 -0
  53. package/dist/test/org-scrub-setting.test.js.map +1 -0
  54. package/dist/test/prompt-privacy.test.js +19 -2
  55. package/dist/test/prompt-privacy.test.js.map +1 -1
  56. package/dist/test/startup-sync-scrub.test.d.ts +2 -0
  57. package/dist/test/startup-sync-scrub.test.d.ts.map +1 -0
  58. package/dist/test/startup-sync-scrub.test.js +36 -0
  59. package/dist/test/startup-sync-scrub.test.js.map +1 -0
  60. package/dist/test/telemetry.test.js +6 -1
  61. package/dist/test/telemetry.test.js.map +1 -1
  62. package/dist/test/transcript.test.js +22 -1
  63. package/dist/test/transcript.test.js.map +1 -1
  64. package/dist/test/wire-metadata.test.d.ts +2 -0
  65. package/dist/test/wire-metadata.test.d.ts.map +1 -0
  66. package/dist/test/wire-metadata.test.js +105 -0
  67. package/dist/test/wire-metadata.test.js.map +1 -0
  68. package/package.json +3 -2
@@ -0,0 +1,42 @@
1
+ import { test } from "node:test";
2
+ import assert from "node:assert";
3
+ import fs from "node:fs";
4
+ import os from "node:os";
5
+ import path from "node:path";
6
+ import { orgConfigPath, persistCollectPromptsFromResponse } from "../lib/prompt-collection-policy.js";
7
+ import { scrubText } from "../lib/pii-scrub.js";
8
+ // OPT-942: the organization's scrubbing setting arrives on the startup and inventory responses
9
+ // and reaches the scrubber through the org config file. HOME is a temporary directory.
10
+ const SECRET = `ghp_${"C".repeat(36)}`;
11
+ function withHome(run) {
12
+ const saved = process.env.HOME;
13
+ const home = fs.mkdtempSync(path.join(os.tmpdir(), "org-scrub-"));
14
+ process.env.HOME = home;
15
+ try {
16
+ run();
17
+ }
18
+ finally {
19
+ process.env.HOME = saved;
20
+ fs.rmSync(home, { recursive: true, force: true });
21
+ }
22
+ }
23
+ test("before any response the runtime scrubs", () => {
24
+ withHome(() => assert.strictEqual(scrubText(SECRET), "ghp_[OL_REDACTED:GITHUB_TOKEN]"));
25
+ });
26
+ test("a response switching scrubbing off stops it, and one switching it on restarts it", () => {
27
+ withHome(() => {
28
+ persistCollectPromptsFromResponse({ collect_prompts: false, scrub_pii: false });
29
+ assert.strictEqual(JSON.parse(fs.readFileSync(orgConfigPath(), "utf8")).scrub_pii, false);
30
+ assert.strictEqual(scrubText(SECRET), SECRET);
31
+ persistCollectPromptsFromResponse({ collect_prompts: false, scrub_pii: true });
32
+ assert.strictEqual(scrubText(SECRET), "ghp_[OL_REDACTED:GITHUB_TOKEN]");
33
+ });
34
+ });
35
+ test("a response without the setting keeps the stored one", () => {
36
+ withHome(() => {
37
+ persistCollectPromptsFromResponse({ scrub_pii: false });
38
+ persistCollectPromptsFromResponse({ collect_prompts: true });
39
+ assert.strictEqual(scrubText(SECRET), SECRET);
40
+ });
41
+ });
42
+ //# sourceMappingURL=org-scrub-setting.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"org-scrub-setting.test.js","sourceRoot":"","sources":["../../src/test/org-scrub-setting.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,iCAAiC,EAAE,MAAM,oCAAoC,CAAC;AACtG,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,+FAA+F;AAC/F,uFAAuF;AACvF,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;AAEvC,SAAS,QAAQ,CAAC,GAAe;IAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IAC/B,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC;QACH,GAAG,EAAE,CAAC;IACR,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC;QACzB,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;IAClD,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,gCAAgC,CAAC,CAAC,CAAC;AAC1F,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kFAAkF,EAAE,GAAG,EAAE;IAC5F,QAAQ,CAAC,GAAG,EAAE;QACZ,iCAAiC,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QAChF,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC1F,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;QAE9C,iCAAiC,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/E,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,gCAAgC,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;IAC/D,QAAQ,CAAC,GAAG,EAAE;QACZ,iCAAiC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACxD,iCAAiC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { test } from "node:test";
2
2
  import assert from "node:assert";
3
- import { createHash } from "node:crypto";
4
- import { applyPromptCollectionToMetadata, stripRawEventPromptFields } from "../lib/telemetry/prompt-privacy.js";
3
+ import { createHash, createHmac } from "node:crypto";
4
+ import { applyPromptCollectionToMetadata, hashUserPrompt, stripRawEventPromptFields } from "../lib/telemetry/prompt-privacy.js";
5
5
  test("stripRawEventPromptFields removes top-level prompt keys only", () => {
6
6
  const stripped = stripRawEventPromptFields({
7
7
  user_prompt: "secret",
@@ -30,4 +30,21 @@ test("applyPromptCollectionToMetadata keeps plaintext when hashing is off", () =
30
30
  assert.strictEqual(out.user_prompt_hash, undefined);
31
31
  assert.strictEqual(out.raw_event.user_prompt, undefined);
32
32
  });
33
+ const ORG_KEY = "ab".repeat(32);
34
+ test("applyPromptCollectionToMetadata keys the prompt hash under the org key once it has arrived", () => {
35
+ const keyed = createHmac("sha256", Buffer.from(ORG_KEY, "hex")).update("do a thing", "utf8").digest("hex");
36
+ const out = applyPromptCollectionToMetadata({ user_prompt: " do a thing " }, true, ORG_KEY);
37
+ assert.strictEqual(out.user_prompt_hash, keyed);
38
+ assert.notStrictEqual(out.user_prompt_hash, createHash("sha256").update("do a thing", "utf8").digest("hex"));
39
+ assert.match(String(out.user_prompt_hash), /^[0-9a-f]{64}$/);
40
+ assert.strictEqual(out.user_prompt, undefined);
41
+ });
42
+ test("hashUserPrompt stays plain SHA-256 until the org key has arrived", () => {
43
+ assert.strictEqual(hashUserPrompt("yes"), createHash("sha256").update("yes", "utf8").digest("hex"));
44
+ assert.strictEqual(hashUserPrompt("yes", undefined), hashUserPrompt("yes"));
45
+ });
46
+ test("a short prompt's keyed hash cannot be matched by hashing guesses without the key", () => {
47
+ const guesses = ["yes", "no", "ok", "continue"].map((g) => createHash("sha256").update(g, "utf8").digest("hex"));
48
+ assert.ok(!guesses.includes(hashUserPrompt("yes", ORG_KEY)));
49
+ });
33
50
  //# sourceMappingURL=prompt-privacy.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-privacy.test.js","sourceRoot":"","sources":["../../src/test/prompt-privacy.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,+BAA+B,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAEhH,IAAI,CAAC,8DAA8D,EAAE,GAAG,EAAE;IACxE,MAAM,QAAQ,GAAG,yBAAyB,CAAC;QACzC,WAAW,EAAE,QAAQ;QACrB,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;KAC/B,CAAC,CAAC;IACH,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjB,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACpD,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/C,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AAClE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yEAAyE,EAAE,GAAG,EAAE;IACnF,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/E,MAAM,GAAG,GAAG,+BAA+B,CACzC;QACE,WAAW,EAAE,YAAY;QACzB,SAAS,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;KACxD,EACD,IAAI,CACL,CAAC;IACF,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC/C,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,CAAC,WAAW,CAAE,GAAG,CAAC,SAAsC,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACvF,MAAM,CAAC,WAAW,CAAE,GAAG,CAAC,SAAkC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC5E,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qEAAqE,EAAE,GAAG,EAAE;IAC/E,MAAM,GAAG,GAAG,+BAA+B,CACzC,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAC7D,KAAK,CACN,CAAC;IACF,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC7C,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;IACpD,MAAM,CAAC,WAAW,CAAE,GAAG,CAAC,SAAsC,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AACzF,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"prompt-privacy.test.js","sourceRoot":"","sources":["../../src/test/prompt-privacy.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=startup-sync-scrub.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startup-sync-scrub.test.d.ts","sourceRoot":"","sources":["../../src/test/startup-sync-scrub.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,36 @@
1
+ import { test } from "node:test";
2
+ import assert from "node:assert";
3
+ import fs from "node:fs";
4
+ import os from "node:os";
5
+ import path from "node:path";
6
+ import { ensureStartupMetadataSynced } from "../lib/startup-sync.js";
7
+ test("ensureStartupMetadataSynced - a token in the git remote is scrubbed, and the scrubber version is sent", async () => {
8
+ const token = `ghp_${"C".repeat(36)}`;
9
+ const saved = {
10
+ home: process.env.HOME,
11
+ repo: process.env.GITHUB_REPOSITORY,
12
+ interval: process.env.OPTIMUS_STARTUP_SYNC_INTERVAL_MS,
13
+ fetch: globalThis.fetch,
14
+ };
15
+ process.env.HOME = fs.mkdtempSync(path.join(os.tmpdir(), "startup-sync-"));
16
+ process.env.GITHUB_REPOSITORY = `origin\thttps://x-access-token:${token}@github.com/acme/app.git (fetch)`;
17
+ process.env.OPTIMUS_STARTUP_SYNC_INTERVAL_MS = "0";
18
+ let sent;
19
+ globalThis.fetch = (async (_url, init) => {
20
+ sent = JSON.parse(String(init?.body));
21
+ return new Response(JSON.stringify({ status: "ok" }));
22
+ });
23
+ try {
24
+ await ensureStartupMetadataSynced("hw-startup-scrub-test");
25
+ }
26
+ finally {
27
+ process.env.HOME = saved.home;
28
+ process.env.GITHUB_REPOSITORY = saved.repo;
29
+ process.env.OPTIMUS_STARTUP_SYNC_INTERVAL_MS = saved.interval;
30
+ globalThis.fetch = saved.fetch;
31
+ }
32
+ assert.strictEqual(sent?.metadata.repo_identifier, "origin\thttps://x-access-token:[OL_REDACTED:URL_CREDENTIALS]@github.com/acme/app.git (fetch)");
33
+ assert.match(String(sent?.metadata.scrubber_version), /^\d+\.\d+\.\d+$/);
34
+ assert.ok(!JSON.stringify(sent).includes(token));
35
+ });
36
+ //# sourceMappingURL=startup-sync-scrub.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startup-sync-scrub.test.js","sourceRoot":"","sources":["../../src/test/startup-sync-scrub.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAErE,IAAI,CAAC,uGAAuG,EAAE,KAAK,IAAI,EAAE;IACvH,MAAM,KAAK,GAAG,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;IACtC,MAAM,KAAK,GAAG;QACZ,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI;QACtB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;QACnC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,gCAAgC;QACtD,KAAK,EAAE,UAAU,CAAC,KAAK;KACxB,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,kCAAkC,KAAK,kCAAkC,CAAC;IAC1G,OAAO,CAAC,GAAG,CAAC,gCAAgC,GAAG,GAAG,CAAC;IACnD,IAAI,IAAuD,CAAC;IAC5D,UAAU,CAAC,KAAK,GAAG,CAAC,KAAK,EAAE,IAAa,EAAE,IAAyB,EAAE,EAAE;QACrE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACtC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC,CAAiB,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,2BAA2B,CAAC,uBAAuB,CAAC,CAAC;IAC7D,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,gCAAgC,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC9D,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IACjC,CAAC;IACD,MAAM,CAAC,WAAW,CAChB,IAAI,EAAE,QAAQ,CAAC,eAAe,EAC9B,8FAA8F,CAC/F,CAAC;IACF,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACzE,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACnD,CAAC,CAAC,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { test } from "node:test";
2
2
  import assert from "node:assert";
3
+ import os from "node:os";
3
4
  import { buildTelemetryEvent, eventToDict } from "../lib/telemetry.js";
4
5
  import fs from "fs";
5
- import os from "os";
6
6
  import path from "path";
7
7
  test("buildTelemetryEvent - null input returns null", () => {
8
8
  assert.strictEqual(buildTelemetryEvent(null), null);
@@ -228,6 +228,11 @@ test("buildTelemetryEvent - carries every hook's hash from OPTIMUS_HOOK_MANIFEST
228
228
  delete process.env.OPTIMUS_HOOK_MANIFEST;
229
229
  }
230
230
  });
231
+ test("buildTelemetryEvent - every event carries the macOS account running it", () => {
232
+ const event = buildTelemetryEvent({ tool_name: "Read", tool_input: { file_path: "/tmp/x" } });
233
+ const { uid, username } = os.userInfo();
234
+ assert.deepStrictEqual(event?.tool_call_metadata.os_user, { uid, username });
235
+ });
231
236
  function codexSession(originator) {
232
237
  const dir = fs.mkdtempSync(path.join(os.tmpdir(), "codex-session-"));
233
238
  const file = path.join(dir, "rollout.jsonl");
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.test.js","sourceRoot":"","sources":["../../src/test/telemetry.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telemetry.test.js","sourceRoot":"","sources":["../../src/test/telemetry.test.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import assert from "node:assert";
3
3
  import fs from "fs";
4
4
  import os from "os";
5
5
  import path from "path";
6
- import { readAgentProduct, readCopilotProduct, readLastUserPrompt } from "../lib/transcript.js";
6
+ import { copilotSessionEventsPath, readAgentProduct, readCopilotProduct, readLastUserPrompt, } from "../lib/transcript.js";
7
7
  function transcript(lines) {
8
8
  const dir = fs.mkdtempSync(path.join(os.tmpdir(), "transcript-"));
9
9
  const file = path.join(dir, "t.jsonl");
@@ -138,4 +138,25 @@ test("readCopilotProduct - null for an unknown session or an id that is not one"
138
138
  assert.strictEqual(readCopilotProduct("unknown-session-1", null, home), null);
139
139
  assert.strictEqual(readCopilotProduct("../../etc/passwd", null, home), null);
140
140
  });
141
+ const copilotUser = (content) => ({ type: "user.message", data: { content, transformedContent: `<x>${content}</x>` } });
142
+ test("readLastUserPrompt - Copilot CLI: the last prompt the person typed, from the session's events", () => {
143
+ const file = transcript([
144
+ { type: "session.start", data: { copilotVersion: "1.0.105" } },
145
+ copilotUser("first question"),
146
+ { type: "assistant.message", data: { content: "answer" } },
147
+ copilotUser('can you echo "copilot probe"'),
148
+ { type: "tool.execution_start", data: { toolName: "bash" } },
149
+ ]);
150
+ assert.strictEqual(readLastUserPrompt(file), 'can you echo "copilot probe"');
151
+ });
152
+ test("readLastUserPrompt - Copilot CLI: an empty user message is not taken for the prompt", () => {
153
+ const file = transcript([copilotUser("real prompt"), copilotUser(" ")]);
154
+ assert.strictEqual(readLastUserPrompt(file), "real prompt");
155
+ });
156
+ test("copilotSessionEventsPath - the session's events file, or null for an id that is not one", () => {
157
+ assert.strictEqual(copilotSessionEventsPath("869f6bad-3d83-436f", "/Users/x"), "/Users/x/.copilot/session-state/869f6bad-3d83-436f/events.jsonl");
158
+ assert.strictEqual(copilotSessionEventsPath("../../etc/passwd", "/Users/x"), null);
159
+ assert.strictEqual(copilotSessionEventsPath(null, "/Users/x"), null);
160
+ assert.strictEqual(copilotSessionEventsPath("869f6bad-3d83-436f", ""), null);
161
+ });
141
162
  //# sourceMappingURL=transcript.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transcript.test.js","sourceRoot":"","sources":["../../src/test/transcript.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transcript.test.js","sourceRoot":"","sources":["../../src/test/transcript.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=wire-metadata.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wire-metadata.test.d.ts","sourceRoot":"","sources":["../../src/test/wire-metadata.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,105 @@
1
+ import { test } from "node:test";
2
+ import assert from "node:assert";
3
+ import fs from "node:fs";
4
+ import os from "node:os";
5
+ import path from "node:path";
6
+ import { persistCollectPromptsFromResponse } from "../lib/prompt-collection-policy.js";
7
+ import { cloneToolCallMetadataForWire } from "../lib/telemetry/wire-metadata.js";
8
+ // Assembled at runtime so no real-looking key sits in the source.
9
+ const ANTHROPIC = `sk-ant-api03-${"A".repeat(40)}`;
10
+ test("cloneToolCallMetadataForWire - secrets in the content never leave the machine; emails and paths go as they are", () => {
11
+ const command = `curl -H "x-api-key: ${ANTHROPIC}" https://api.anthropic.com && mail ada@gmail.com`;
12
+ const wire = cloneToolCallMetadataForWire({
13
+ tool_name: "Bash",
14
+ tool_input: { command },
15
+ raw_event: { hook_event_name: "PreToolUse", command, cwd: "/Users/ada/src" },
16
+ user_prompt: `use OPENAI_API_KEY=sk-${"b".repeat(30)} please`,
17
+ });
18
+ const expected = 'curl -H "x-api-key: sk-ant-api03-[OL_REDACTED:ANTHROPIC_KEY]" https://api.anthropic.com && mail ada@gmail.com';
19
+ assert.deepStrictEqual(wire?.tool_input, { command: expected });
20
+ assert.deepStrictEqual(wire?.raw_event, { hook_event_name: "PreToolUse", command: expected });
21
+ assert.strictEqual(wire?.user_prompt, "use OPENAI_API_KEY=sk-[OL_REDACTED:OPENAI_KEY] please");
22
+ assert.ok(!JSON.stringify(wire).includes(ANTHROPIC));
23
+ assert.match(String(wire?.scrubber_version), /^\d+\.\d+\.\d+$/);
24
+ });
25
+ test("cloneToolCallMetadataForWire - server-owned keys are still dropped", () => {
26
+ const wire = cloneToolCallMetadataForWire({ tool_name: "Read", user_profile: { email: "x@y.z" }, action_type: "read" });
27
+ assert.deepStrictEqual(Object.keys(wire ?? {}).sort(), ["scrubber_version", "tool_name"]);
28
+ });
29
+ test("cloneToolCallMetadataForWire - vendor secrets get the org's fingerprint once its key is stored", () => {
30
+ const saved = process.env.HOME;
31
+ process.env.HOME = fs.mkdtempSync(path.join(os.tmpdir(), "wire-key-"));
32
+ try {
33
+ const command = `export ANTHROPIC_API_KEY=${ANTHROPIC}`;
34
+ assert.deepStrictEqual(cloneToolCallMetadataForWire({ tool_input: { command } })?.tool_input, {
35
+ command: "export ANTHROPIC_API_KEY=sk-ant-api03-[OL_REDACTED:ANTHROPIC_KEY]",
36
+ });
37
+ persistCollectPromptsFromResponse({ fingerprint_key: "ef".repeat(32) });
38
+ const keyed = cloneToolCallMetadataForWire({ tool_input: { command } })?.tool_input;
39
+ assert.match(keyed.command, /^export ANTHROPIC_API_KEY=sk-ant-api03-\[OL_REDACTED:ANTHROPIC_KEY:[0-9a-f]{24}\]$/);
40
+ }
41
+ finally {
42
+ process.env.HOME = saved;
43
+ }
44
+ });
45
+ test("cloneToolCallMetadataForWire - the running identity is sent as it is, never scrubbed", () => {
46
+ const identity = {
47
+ login: { tenant_id: "org-uuid", email: "ada@acme.io" },
48
+ os_user: { uid: 501, username: "ada.lovelace" },
49
+ };
50
+ const wire = cloneToolCallMetadataForWire({ tool_name: "Read", ...identity });
51
+ assert.deepStrictEqual(wire?.login, identity.login);
52
+ assert.deepStrictEqual(wire?.os_user, identity.os_user);
53
+ });
54
+ test("cloneToolCallMetadataForWire - only allowlisted fields are sent; a field added later stays on the Mac", () => {
55
+ const wire = cloneToolCallMetadataForWire({
56
+ tool_name: "Write",
57
+ tool_input: { file_path: "/tmp/a.txt", content: "hello" },
58
+ hook_hash: "a".repeat(64),
59
+ some_future_field: { anything: "x" },
60
+ user_profile: { email: "spoof@x.io" },
61
+ action_type: "spoofed",
62
+ });
63
+ assert.deepStrictEqual(Object.keys(wire ?? {}).sort(), ["hook_hash", "scrubber_version", "tool_input", "tool_name"]);
64
+ });
65
+ test("cloneToolCallMetadataForWire - raw_event keeps only what the backend reads", () => {
66
+ const wire = cloneToolCallMetadataForWire({
67
+ tool_name: "Shell",
68
+ raw_event: {
69
+ hookEventName: "beforeShellExecution",
70
+ tool_name: "Shell",
71
+ command: `curl -H "Authorization: Bearer ${ANTHROPIC}" https://x.io`,
72
+ tool_response: { stdout: "file contents" },
73
+ transcript_path: "/Users/ada/.cursor/transcript.jsonl",
74
+ tool_input: { content: "the agent's own copy" },
75
+ },
76
+ });
77
+ assert.deepStrictEqual(wire?.raw_event, {
78
+ hookEventName: "beforeShellExecution",
79
+ tool_name: "Shell",
80
+ command: 'curl -H "Authorization: Bearer sk-ant-api03-[OL_REDACTED:ANTHROPIC_KEY]" https://x.io',
81
+ });
82
+ });
83
+ test("cloneToolCallMetadataForWire - a Cursor write of a file with a key in it is sent scrubbed", () => {
84
+ const wire = cloneToolCallMetadataForWire({
85
+ tool_name: "write",
86
+ tool_input: { file_path: ".env", content: `OPENAI_API_KEY=sk-proj-${"c".repeat(40)}\nDEBUG=1\n` },
87
+ });
88
+ assert.deepStrictEqual(wire?.tool_input, {
89
+ file_path: ".env",
90
+ content: "OPENAI_API_KEY=sk-proj-[OL_REDACTED:OPENAI_KEY]\nDEBUG=1\n",
91
+ });
92
+ });
93
+ test("cloneToolCallMetadataForWire - home directories, the running account's or another's, are not redacted", () => {
94
+ const wire = cloneToolCallMetadataForWire({
95
+ tool_name: "Read",
96
+ tool_input: { file_path: "/Users/ada/.claude/plugins/cache/tools/deploy/1.0.0/skills/deploy/SKILL.md" },
97
+ user_prompt: "Base directory for this skill: /Users/ada/.claude/skills/deploy and see /Users/bob/notes",
98
+ os_user: { uid: 501, username: "ada" },
99
+ });
100
+ assert.deepStrictEqual(wire?.tool_input, {
101
+ file_path: "/Users/ada/.claude/plugins/cache/tools/deploy/1.0.0/skills/deploy/SKILL.md",
102
+ });
103
+ assert.strictEqual(wire?.user_prompt, "Base directory for this skill: /Users/ada/.claude/skills/deploy and see /Users/bob/notes");
104
+ });
105
+ //# sourceMappingURL=wire-metadata.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wire-metadata.test.js","sourceRoot":"","sources":["../../src/test/wire-metadata.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optimuslabs/runtime-staging",
3
- "version": "0.3.9",
3
+ "version": "0.3.11",
4
4
  "description": "Agentic audit sensor — streams raw tool call metadata; the Optimus backend classifies on ingest",
5
5
  "type": "module",
6
6
  "bin": {
@@ -11,7 +11,7 @@
11
11
  "scripts": {
12
12
  "build": "rm -rf dist && tsc && node ../../../scripts/ensure-bin-executable.mjs",
13
13
  "dev": "tsx src/index.ts",
14
- "pretest": "npm run build --prefix ../tofu && npm run build",
14
+ "pretest": "npm run build --prefix ../tofu && npm run build --prefix ../pii-scrub && npm run build",
15
15
  "test": "node --test dist/test/*.test.js",
16
16
  "prepare": "npm run build"
17
17
  },
@@ -46,6 +46,7 @@
46
46
  "typescript": "^5.0.0"
47
47
  },
48
48
  "dependencies": {
49
+ "@optimuslabs/pii-scrub-staging": "^0.1.0",
49
50
  "@optimuslabs/tofu-staging": "^0.1.18"
50
51
  },
51
52
  "publishConfig": {