@armoriq/sdk-dev 0.8.8 → 0.8.9

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 (66) hide show
  1. package/dist/_version.d.ts +1 -1
  2. package/dist/_version.js +1 -1
  3. package/dist/client.d.ts +0 -4
  4. package/dist/client.d.ts.map +1 -1
  5. package/dist/client.js +27 -63
  6. package/dist/client.js.map +1 -1
  7. package/dist/debug.d.ts +2 -0
  8. package/dist/debug.d.ts.map +1 -1
  9. package/dist/debug.js +8 -4
  10. package/dist/debug.js.map +1 -1
  11. package/dist/index.d.ts +2 -2
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/integrations/google_adk.d.ts.map +1 -1
  15. package/dist/integrations/google_adk.js +11 -20
  16. package/dist/integrations/google_adk.js.map +1 -1
  17. package/dist/integrations/langchain.d.ts +1 -3
  18. package/dist/integrations/langchain.d.ts.map +1 -1
  19. package/dist/integrations/langchain.js +32 -32
  20. package/dist/integrations/langchain.js.map +1 -1
  21. package/dist/integrations/strands.d.ts.map +1 -1
  22. package/dist/integrations/strands.js +3 -12
  23. package/dist/integrations/strands.js.map +1 -1
  24. package/dist/observability/content-capture.d.ts +1 -1
  25. package/dist/observability/content-capture.d.ts.map +1 -1
  26. package/dist/observability/content-capture.js +74 -20
  27. package/dist/observability/content-capture.js.map +1 -1
  28. package/dist/observability/index.d.ts +1 -1
  29. package/dist/observability/index.d.ts.map +1 -1
  30. package/dist/observability/index.js.map +1 -1
  31. package/dist/observability/otel-config.d.ts.map +1 -1
  32. package/dist/observability/otel-config.js +2 -3
  33. package/dist/observability/otel-config.js.map +1 -1
  34. package/dist/observability/otel-runtime.d.ts +18 -5
  35. package/dist/observability/otel-runtime.d.ts.map +1 -1
  36. package/dist/observability/otel-runtime.js +93 -29
  37. package/dist/observability/otel-runtime.js.map +1 -1
  38. package/dist/observability/otel-session.d.ts +16 -3
  39. package/dist/observability/otel-session.d.ts.map +1 -1
  40. package/dist/observability/otel-session.js +74 -22
  41. package/dist/observability/otel-session.js.map +1 -1
  42. package/dist/observability/otel-shutdown.d.ts +2 -0
  43. package/dist/observability/otel-shutdown.d.ts.map +1 -1
  44. package/dist/observability/otel-shutdown.js +73 -9
  45. package/dist/observability/otel-shutdown.js.map +1 -1
  46. package/dist/observability/otel-spool-export.d.ts +3 -2
  47. package/dist/observability/otel-spool-export.d.ts.map +1 -1
  48. package/dist/observability/otel-spool-export.js +6 -1
  49. package/dist/observability/otel-spool-export.js.map +1 -1
  50. package/dist/observability/policy-lease.d.ts +1 -1
  51. package/dist/observability/policy-lease.d.ts.map +1 -1
  52. package/dist/observability/policy-lease.js +1 -1
  53. package/dist/observability/policy-lease.js.map +1 -1
  54. package/dist/observability/sensitive-text.d.ts +8 -0
  55. package/dist/observability/sensitive-text.d.ts.map +1 -0
  56. package/dist/observability/sensitive-text.js +96 -0
  57. package/dist/observability/sensitive-text.js.map +1 -0
  58. package/dist/proxy_error.d.ts +3 -0
  59. package/dist/proxy_error.d.ts.map +1 -0
  60. package/dist/proxy_error.js +20 -0
  61. package/dist/proxy_error.js.map +1 -0
  62. package/dist/session.d.ts +18 -9
  63. package/dist/session.d.ts.map +1 -1
  64. package/dist/session.js +81 -43
  65. package/dist/session.js.map +1 -1
  66. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"policy-lease.d.ts","sourceRoot":"","sources":["../../src/observability/policy-lease.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,2DAA2D;IAC3D,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,2EAA2E;IAC3E,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC;IACxC,uEAAuE;IACvE,QAAQ,CAAC,6BAA6B,EAAE,OAAO,CAAC;IAChD,6EAA6E;IAC7E,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAC;IACzC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,yEAAyE;IACzE,QAAQ,CAAC,cAAc,EAAE,IAAI,GAAG,IAAI,CAAC;CACtC;AAED,oFAAoF;AACpF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC;IACxC,QAAQ,CAAC,6BAA6B,EAAE,OAAO,CAAC;IAChD,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACzB,KAAK,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD;AAcD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,CA+C9D;AAwBD,wBAAgB,kBAAkB,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAElF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAU3F;AAoBD,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAQ7B;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,gBAAgB,EACvB,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,GAClB,IAAI,CAEN;AAED,wBAAgB,mBAAmB,IAAI,WAAW,CAYjD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAE1D"}
1
+ {"version":3,"file":"policy-lease.d.ts","sourceRoot":"","sources":["../../src/observability/policy-lease.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,2DAA2D;IAC3D,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,2EAA2E;IAC3E,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC;IACxC,uEAAuE;IACvE,QAAQ,CAAC,6BAA6B,EAAE,OAAO,CAAC;IAChD,6EAA6E;IAC7E,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAC;IACzC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,yEAAyE;IACzE,QAAQ,CAAC,cAAc,EAAE,IAAI,GAAG,IAAI,CAAC;CACtC;AAED,oFAAoF;AACpF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC;IACxC,QAAQ,CAAC,6BAA6B,EAAE,OAAO,CAAC;IAChD,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACzB,KAAK,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD;AAcD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,CA+C9D;AAwBD,wBAAgB,kBAAkB,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAElF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAU3F;AAoBD,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAQ7B;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,gBAAgB,EACvB,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAgB,mBAAmB,IAAI,WAAW,CAYjD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAE1D"}
@@ -130,7 +130,7 @@ async function readStoredPolicyLease(store, binding, signal) {
130
130
  }
131
131
  }
132
132
  function writeStoredPolicyLease(store, lease, binding, signal) {
133
- void withinStoreDeadline(() => store.write(serializePolicyLease(lease, binding)), signal);
133
+ return withinStoreDeadline(() => store.write(serializePolicyLease(lease, binding)), signal);
134
134
  }
135
135
  function fallbackPolicyLease() {
136
136
  return Object.freeze({
@@ -1 +1 @@
1
- {"version":3,"file":"policy-lease.js","sourceRoot":"","sources":["../../src/observability/policy-lease.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy-lease.js","sourceRoot":"","sources":["../../src/observability/policy-lease.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export type Span = readonly [number, number];
2
+ export declare function emailSpans(value: string): Span[];
3
+ export declare function jwtSpans(value: string): Span[];
4
+ export declare function signedUrlSpans(value: string): Span[];
5
+ export declare function replaceSpans(value: string, spans: readonly Span[], replacement: string): string;
6
+ export declare function containsCredential(value: string): boolean;
7
+ export declare function containsEmail(value: string): boolean;
8
+ //# sourceMappingURL=sensitive-text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sensitive-text.d.ts","sourceRoot":"","sources":["../../src/observability/sensitive-text.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAyB7C,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,CAYhD;AAQD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,CAe9C;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,CASpD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,IAAI,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAQ/F;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpD"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.emailSpans = emailSpans;
4
+ exports.jwtSpans = jwtSpans;
5
+ exports.signedUrlSpans = signedUrlSpans;
6
+ exports.replaceSpans = replaceSpans;
7
+ exports.containsCredential = containsCredential;
8
+ exports.containsEmail = containsEmail;
9
+ const CREDENTIAL_TOKEN = /(?:(?<![A-Za-z0-9])(?:ak|sk|pk|rk|ghp|github_pat)_[A-Za-z0-9_-]{12,}\b|-----BEGIN [A-Z0-9 ]+-----)/i;
10
+ const WORD_CHAR = /\w/;
11
+ const EMAIL_LOCAL_CHAR = /[A-Za-z0-9._%+-]/;
12
+ const EMAIL_DOMAIN = /[A-Z0-9.-]+\.[A-Z]{2,}\b/iy;
13
+ const JWT_START = /(?<![A-Za-z0-9])eyJ/gi;
14
+ const JWT_SEGMENT_CHAR = /[A-Za-z0-9_-]/;
15
+ const JWT_TAIL = /\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/y;
16
+ const URL_RUN = /[^\s"'<>]+/g;
17
+ const URL_SCHEME = /https?:\/\//i;
18
+ const URL_SIGNATURE = /[?&](?:x-amz-signature|signature|sig|token|access_token)=/i;
19
+ function wordBoundary(value, index) {
20
+ return WORD_CHAR.test(value[index - 1] ?? '') !== WORD_CHAR.test(value[index] ?? '');
21
+ }
22
+ function emailStart(value, from, at) {
23
+ let start = at;
24
+ while (start > from && EMAIL_LOCAL_CHAR.test(value[start - 1]))
25
+ start -= 1;
26
+ while (start < at && !wordBoundary(value, start))
27
+ start += 1;
28
+ return start;
29
+ }
30
+ function emailSpans(value) {
31
+ const spans = [];
32
+ let searched = 0;
33
+ for (let at = value.indexOf('@'); at >= 0; at = value.indexOf('@', Math.max(at + 1, searched))) {
34
+ const start = emailStart(value, searched, at);
35
+ if (start === at)
36
+ continue;
37
+ EMAIL_DOMAIN.lastIndex = at + 1;
38
+ if (!EMAIL_DOMAIN.test(value))
39
+ continue;
40
+ spans.push([start, EMAIL_DOMAIN.lastIndex]);
41
+ searched = EMAIL_DOMAIN.lastIndex;
42
+ }
43
+ return spans;
44
+ }
45
+ function segmentEnd(value, from) {
46
+ let end = from;
47
+ while (end < value.length && JWT_SEGMENT_CHAR.test(value[end]))
48
+ end += 1;
49
+ return end;
50
+ }
51
+ function jwtSpans(value) {
52
+ const spans = [];
53
+ let examined = 0;
54
+ JWT_START.lastIndex = 0;
55
+ for (let match = JWT_START.exec(value); match; match = JWT_START.exec(value)) {
56
+ if (match.index < examined)
57
+ continue;
58
+ const headerEnd = segmentEnd(value, match.index + 3);
59
+ examined = headerEnd;
60
+ if (headerEnd - match.index < 8)
61
+ continue;
62
+ JWT_TAIL.lastIndex = headerEnd;
63
+ if (!JWT_TAIL.test(value))
64
+ continue;
65
+ spans.push([match.index, JWT_TAIL.lastIndex]);
66
+ JWT_START.lastIndex = JWT_TAIL.lastIndex;
67
+ }
68
+ return spans;
69
+ }
70
+ function signedUrlSpans(value) {
71
+ const spans = [];
72
+ URL_RUN.lastIndex = 0;
73
+ for (let run = URL_RUN.exec(value); run; run = URL_RUN.exec(value)) {
74
+ const scheme = URL_SCHEME.exec(run[0]);
75
+ if (!scheme || !URL_SIGNATURE.test(run[0].slice(scheme.index + scheme[0].length)))
76
+ continue;
77
+ spans.push([run.index + scheme.index, run.index + run[0].length]);
78
+ }
79
+ return spans;
80
+ }
81
+ function replaceSpans(value, spans, replacement) {
82
+ let result = '';
83
+ let copied = 0;
84
+ for (const [start, end] of spans) {
85
+ result += value.slice(copied, start) + replacement;
86
+ copied = end;
87
+ }
88
+ return result + value.slice(copied);
89
+ }
90
+ function containsCredential(value) {
91
+ return CREDENTIAL_TOKEN.test(value) || jwtSpans(value).length > 0;
92
+ }
93
+ function containsEmail(value) {
94
+ return emailSpans(value).length > 0;
95
+ }
96
+ //# sourceMappingURL=sensitive-text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sensitive-text.js","sourceRoot":"","sources":["../../src/observability/sensitive-text.ts"],"names":[],"mappings":";;AAyBA,gCAYC;AAQD,4BAeC;AAED,wCASC;AAED,oCAQC;AAED,gDAEC;AAED,sCAEC;AAvFD,MAAM,gBAAgB,GAAG,qGAAqG,CAAC;AAE/H,MAAM,SAAS,GAAG,IAAI,CAAC;AACvB,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAC5C,MAAM,YAAY,GAAG,4BAA4B,CAAC;AAClD,MAAM,SAAS,GAAG,uBAAuB,CAAC;AAC1C,MAAM,gBAAgB,GAAG,eAAe,CAAC;AACzC,MAAM,QAAQ,GAAG,qCAAqC,CAAC;AACvD,MAAM,OAAO,GAAG,aAAa,CAAC;AAC9B,MAAM,UAAU,GAAG,cAAc,CAAC;AAClC,MAAM,aAAa,GAAG,4DAA4D,CAAC;AAEnF,SAAS,YAAY,CAAC,KAAa,EAAE,KAAa;IAChD,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AACvF,CAAC;AAED,SAAS,UAAU,CAAC,KAAa,EAAE,IAAY,EAAE,EAAU;IACzD,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,OAAO,KAAK,GAAG,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAAE,KAAK,IAAI,CAAC,CAAC;IAC3E,OAAO,KAAK,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC;QAAE,KAAK,IAAI,CAAC,CAAC;IAC7D,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,UAAU,CAAC,KAAa;IACtC,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,IAAI,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC/F,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC9C,IAAI,KAAK,KAAK,EAAE;YAAE,SAAS;QAC3B,YAAY,CAAC,SAAS,GAAG,EAAE,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,SAAS;QACxC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5C,QAAQ,GAAG,YAAY,CAAC,SAAS,CAAC;IACpC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CAAC,KAAa,EAAE,IAAY;IAC7C,IAAI,GAAG,GAAG,IAAI,CAAC;IACf,OAAO,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAAE,GAAG,IAAI,CAAC,CAAC;IACzE,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,QAAQ,CAAC,KAAa;IACpC,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;IACxB,KAAK,IAAI,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7E,IAAI,KAAK,CAAC,KAAK,GAAG,QAAQ;YAAE,SAAS;QACrC,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACrD,QAAQ,GAAG,SAAS,CAAC;QACrB,IAAI,SAAS,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC;YAAE,SAAS;QAC1C,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;QAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,SAAS;QACpC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QAC9C,SAAS,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;IAC3C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,cAAc,CAAC,KAAa;IAC1C,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;IACtB,KAAK,IAAI,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACnE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAAE,SAAS;QAC5F,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,YAAY,CAAC,KAAa,EAAE,KAAsB,EAAE,WAAmB;IACrF,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,WAAW,CAAC;QACnD,MAAM,GAAG,GAAG,CAAC;IACf,CAAC;IACD,OAAO,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC;AAED,SAAgB,kBAAkB,CAAC,KAAa;IAC9C,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AACpE,CAAC;AAED,SAAgB,aAAa,CAAC,KAAa;IACzC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AACtC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function proxyUnreachable(url: string, error: unknown): string;
2
+ export declare function proxyRejected(url: string, status: number, body: unknown): string;
3
+ //# sourceMappingURL=proxy_error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy_error.d.ts","sourceRoot":"","sources":["../src/proxy_error.ts"],"names":[],"mappings":"AAQA,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAGpE;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAGhF"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.proxyUnreachable = proxyUnreachable;
4
+ exports.proxyRejected = proxyRejected;
5
+ const MAX_BODY = 300;
6
+ function bodyText(body) {
7
+ if (body === undefined || body === null || body === '')
8
+ return '';
9
+ const text = typeof body === 'string' ? body.trim() : JSON.stringify(body);
10
+ return text.length > MAX_BODY ? `${text.slice(0, MAX_BODY)}...` : text;
11
+ }
12
+ function proxyUnreachable(url, error) {
13
+ const e = error;
14
+ return `could not reach proxy ${url} (${e?.message || e?.code || String(error)})`;
15
+ }
16
+ function proxyRejected(url, status, body) {
17
+ const detail = bodyText(body);
18
+ return `proxy ${url} returned HTTP ${status}${detail ? `: ${detail}` : ''}`;
19
+ }
20
+ //# sourceMappingURL=proxy_error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy_error.js","sourceRoot":"","sources":["../src/proxy_error.ts"],"names":[],"mappings":";;AAQA,4CAGC;AAED,sCAGC;AAhBD,MAAM,QAAQ,GAAG,GAAG,CAAC;AAErB,SAAS,QAAQ,CAAC,IAAa;IAC7B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAClE,MAAM,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3E,OAAO,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACzE,CAAC;AAED,SAAgB,gBAAgB,CAAC,GAAW,EAAE,KAAc;IAC1D,MAAM,CAAC,GAAG,KAAwD,CAAC;IACnE,OAAO,yBAAyB,GAAG,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AACpF,CAAC;AAED,SAAgB,aAAa,CAAC,GAAW,EAAE,MAAc,EAAE,IAAa;IACtE,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,SAAS,GAAG,kBAAkB,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAC9E,CAAC"}
package/dist/session.d.ts CHANGED
@@ -5,9 +5,9 @@
5
5
  *
6
6
  * 1. Observe mode (default, local) — MCP stays on the agent side:
7
7
  * session.startPlan(toolCalls);
8
- * const decision = session.enforce(toolName, toolArgs);
8
+ * const decision = await session.enforce(toolName, toolArgs);
9
9
  * // ... framework calls MCP directly ...
10
- * await session.report(toolName, toolArgs, result);
10
+ * await session.report(toolName, toolArgs, result, { toolCallId: decision.toolCallId });
11
11
  *
12
12
  * 2. Proxy mode — routes through the Armoriq proxy:
13
13
  * session.startPlan(toolCalls);
@@ -17,7 +17,7 @@ import { ArmorIQClient } from './client';
17
17
  import { IntentToken, ToolCall } from './models';
18
18
  import { ToolNameParser } from './plan_builder';
19
19
  import { OtelSession, type ObservabilityOptions, type OtelTerminalStatus, type TelemetryContent } from './observability';
20
- import type { OperationInput } from './observability/otel-session';
20
+ import type { OperationInput, PolicyResult } from './observability/otel-session';
21
21
  export type SessionMode = 'local' | 'proxy' | 'sdk';
22
22
  export interface SessionOptions {
23
23
  toolNameParser?: ToolNameParser;
@@ -107,7 +107,13 @@ export interface EnforceResult {
107
107
  * Defaults to an empty list when the backend does not supply any.
108
108
  */
109
109
  obligations?: PolicyObligation[];
110
+ toolCallId?: string;
111
+ enforcementFailed?: boolean;
112
+ reasonCode?: string;
110
113
  }
114
+ export declare function isEnforcementFailure(decision: Pick<EnforceResult, 'enforcementFailed'>): boolean;
115
+ export declare function enforcementFailureResult(): PolicyResult;
116
+ export declare function policyResultFor(decision: EnforceResult): PolicyResult;
111
117
  /**
112
118
  * Normalize a policy-authoring default-enforcement-action value into the
113
119
  * SDK-facing terminal enum. Mirrors the backend's enforce-boundary normalization
@@ -116,7 +122,10 @@ export interface EnforceResult {
116
122
  * Anything unknown fails closed to `block`.
117
123
  */
118
124
  export declare function normalizeDefaultAction(value: unknown): 'allow' | 'block' | 'hold';
119
- export interface ReportOptions {
125
+ export interface ToolCallOptions {
126
+ toolCallId?: string;
127
+ }
128
+ export interface ReportOptions extends ToolCallOptions {
120
129
  status?: 'success' | 'failed' | 'error';
121
130
  errorMessage?: string;
122
131
  durationMs?: number;
@@ -128,7 +137,7 @@ export interface ReportOptions {
128
137
  /** A framework lifecycle already owns the native OTel tool span. */
129
138
  emitOtel?: boolean;
130
139
  }
131
- interface PolicyTelemetryOptions {
140
+ interface PolicyTelemetryOptions extends ToolCallOptions {
132
141
  /** Framework adapters own richer policy span context and suppress the core span. */
133
142
  emitOtel?: boolean;
134
143
  }
@@ -188,7 +197,7 @@ export declare class ArmorIQSession {
188
197
  private getIntentTokenCall;
189
198
  startPlan(toolCalls: ToolCallInput[], goal?: string): Promise<IntentToken>;
190
199
  private _startPlanImpl;
191
- enforceLocal(toolName: string, toolArgs: Record<string, unknown>): EnforceResult;
200
+ enforceLocal(toolName: string, toolArgs: Record<string, unknown>, options?: ToolCallOptions): EnforceResult;
192
201
  private _enforceLocalImpl;
193
202
  /**
194
203
  * A server named in the tool itself wins; the plan's action map only answers
@@ -207,18 +216,18 @@ export declare class ArmorIQSession {
207
216
  /** `toolsSnapshotHash` when this client has an inventory; conmap answers `inventoryUnknown` if it holds no snapshot under it. */
208
217
  private snapshotHashField;
209
218
  private inventoryFields;
210
- enforceSdk(toolName: string, toolArgs: Record<string, unknown>, userEmail?: string): Promise<EnforceResult>;
219
+ enforceSdk(toolName: string, toolArgs: Record<string, unknown>, userEmail?: string, options?: ToolCallOptions): Promise<EnforceResult>;
211
220
  private _enforceSdkImpl;
212
221
  /** Declare the tool definitions this session's model calls carry; the OpenAI instrumentation does this automatically. */
213
222
  declareModelTools(tools: unknown[]): void;
214
- enforce(toolName: string, toolArgs: Record<string, unknown>): Promise<EnforceResult>;
223
+ enforce(toolName: string, toolArgs: Record<string, unknown>, options?: ToolCallOptions): Promise<EnforceResult>;
215
224
  private _enforceImpl;
216
225
  check(toolName: string, toolArgs: Record<string, unknown>, userEmail?: string, telemetry?: PolicyTelemetryOptions): Promise<EnforceResult>;
217
226
  private recordPolicyDecision;
218
227
  private trackPolicyTelemetry;
219
228
  private drainPolicyTelemetry;
220
229
  report(toolName: string, toolArgs: Record<string, unknown>, result: unknown, opts?: ReportOptions): Promise<void>;
221
- dispatch(toolName: string, toolArgs: Record<string, unknown>): Promise<unknown>;
230
+ dispatch(toolName: string, toolArgs: Record<string, unknown>, options?: ToolCallOptions): Promise<unknown>;
222
231
  private handleHold;
223
232
  /**
224
233
  * Poll a held delegation until it is decided; non-blocking (async).
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
package/dist/session.js CHANGED
@@ -6,9 +6,9 @@
6
6
  *
7
7
  * 1. Observe mode (default, local) — MCP stays on the agent side:
8
8
  * session.startPlan(toolCalls);
9
- * const decision = session.enforce(toolName, toolArgs);
9
+ * const decision = await session.enforce(toolName, toolArgs);
10
10
  * // ... framework calls MCP directly ...
11
- * await session.report(toolName, toolArgs, result);
11
+ * await session.report(toolName, toolArgs, result, { toolCallId: decision.toolCallId });
12
12
  *
13
13
  * 2. Proxy mode — routes through the Armoriq proxy:
14
14
  * session.startPlan(toolCalls);
@@ -16,6 +16,9 @@
16
16
  */
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.ArmorIQSession = void 0;
19
+ exports.isEnforcementFailure = isEnforcementFailure;
20
+ exports.enforcementFailureResult = enforcementFailureResult;
21
+ exports.policyResultFor = policyResultFor;
19
22
  exports.normalizeDefaultAction = normalizeDefaultAction;
20
23
  const crypto_1 = require("crypto");
21
24
  const tool_push_1 = require("./tool_push");
@@ -24,10 +27,52 @@ const openai_1 = require("./integrations/openai");
24
27
  const tool_registry_1 = require("./tool_registry");
25
28
  const crypto_verify_1 = require("./crypto_verify");
26
29
  const exceptions_1 = require("./exceptions");
30
+ const proxy_error_1 = require("./proxy_error");
27
31
  const models_1 = require("./models");
28
32
  const plan_builder_1 = require("./plan_builder");
29
33
  const observability_1 = require("./observability");
30
34
  const _version_1 = require("./_version");
35
+ function withToolCallId(decision, options) {
36
+ return { ...decision, toolCallId: options.toolCallId || mintToolCallId() };
37
+ }
38
+ function mintToolCallId() {
39
+ return `call-${Array.from({ length: 20 }, () => String.fromCharCode(97 + (0, crypto_1.randomInt)(26))).join('')}`;
40
+ }
41
+ function isEnforcementFailure(decision) {
42
+ return decision.enforcementFailed === true;
43
+ }
44
+ function textField(value) {
45
+ return typeof value === 'string' ? value : undefined;
46
+ }
47
+ function enforceEndpointFailure(response) {
48
+ if (response.status < 400)
49
+ return undefined;
50
+ const data = response.data ?? {};
51
+ return {
52
+ allowed: false,
53
+ action: 'block',
54
+ reason: data.reason ?? data.message ?? `enforce-rejected: HTTP ${response.status}`,
55
+ enforcementFailed: true,
56
+ };
57
+ }
58
+ function enforcementFailureResult() {
59
+ return { error: new Error('policy evaluation failed'), policyReasonCode: 'enforcement_error' };
60
+ }
61
+ function policyResultFor(decision) {
62
+ if (isEnforcementFailure(decision))
63
+ return enforcementFailureResult();
64
+ const policy = decision;
65
+ return {
66
+ decision: decision.allowed ? 'allow' : decision.action === 'hold' ? 'hold' : 'block',
67
+ policyName: decision.matchedPolicy,
68
+ ...(textField(policy.policyId) ? { policyId: textField(policy.policyId) } : {}),
69
+ policyVersion: textField(policy.policyVersion),
70
+ policySource: textField(policy.policySource),
71
+ policyReasonCode: decision.reasonCode ?? decision.reason,
72
+ defaultAction: textField(policy.defaultAction),
73
+ matchedRuleId: textField(policy.matchedRuleId),
74
+ };
75
+ }
31
76
  function isValidUuid(value) {
32
77
  return (typeof value === 'string' &&
33
78
  /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(value));
@@ -63,7 +108,7 @@ function realIdentity(value) {
63
108
  return !value || value === MULTIUSER_PLACEHOLDER ? undefined : value;
64
109
  }
65
110
  const AUDIT_LABEL = /^[A-Za-z0-9][A-Za-z0-9._:/+-]{0,127}$/;
66
- const AUDIT_SECRET = /(?:\beyJ[A-Za-z0-9_-]{5,}\.|\b(?:ak|sk|pk|rk|ghp|github_pat)_[A-Za-z0-9_-]{8,}\b|bearer|secret|password|credential|private[_-]?key)/i;
111
+ const AUDIT_SECRET = /(?:(?<![A-Za-z0-9])eyJ[A-Za-z0-9_-]{5,}\.|(?<![A-Za-z0-9])(?:ak|sk|pk|rk|ghp|github_pat)_[A-Za-z0-9_-]{8,}\b|bearer|secret|password|credential|private[_-]?key)/i;
67
112
  function safeAuditLabel(value) {
68
113
  return typeof value === 'string' && AUDIT_LABEL.test(value) && !AUDIT_SECRET.test(value)
69
114
  ? value
@@ -78,6 +123,7 @@ function auditPersistencePayload(input) {
78
123
  const action = safeAuditLabel(input.action);
79
124
  return {
80
125
  plan_id: safeAuditLabel(input.token?.planId),
126
+ ...(input.agentId ? { agent_id: safeAuditLabel(input.agentId) } : {}),
81
127
  step_index: Number.isFinite(input.stepIndex) && input.stepIndex >= 0 ? Math.floor(input.stepIndex) : 0,
82
128
  action,
83
129
  tool: action,
@@ -313,8 +359,8 @@ class ArmorIQSession {
313
359
  return token;
314
360
  }
315
361
  // ─── Policy enforcement ────────────────────────────────────────
316
- enforceLocal(toolName, toolArgs) {
317
- const decision = this._enforceLocalImpl(toolName, toolArgs);
362
+ enforceLocal(toolName, toolArgs, options = {}) {
363
+ const decision = withToolCallId(this._enforceLocalImpl(toolName, toolArgs), options);
318
364
  this.trackPolicyTelemetry(this.recordPolicyDecision(toolName, toolArgs, decision));
319
365
  return decision;
320
366
  }
@@ -487,8 +533,8 @@ class ArmorIQSession {
487
533
  }
488
534
  return fields;
489
535
  }
490
- async enforceSdk(toolName, toolArgs, userEmail) {
491
- const decision = await this._enforceSdkImpl(toolName, toolArgs, userEmail);
536
+ async enforceSdk(toolName, toolArgs, userEmail, options = {}) {
537
+ const decision = withToolCallId(await this._enforceSdkImpl(toolName, toolArgs, userEmail), options);
492
538
  await this.recordPolicyDecision(toolName, toolArgs, decision);
493
539
  return decision;
494
540
  }
@@ -527,6 +573,9 @@ class ArmorIQSession {
527
573
  headers: { 'X-API-Key': internals.apiKey, 'Content-Type': 'application/json' },
528
574
  timeout: 10000,
529
575
  });
576
+ const failure = enforceEndpointFailure(response);
577
+ if (failure)
578
+ return failure;
530
579
  const data = response.data ?? {};
531
580
  if (data.inventoryUnknown === true)
532
581
  (0, tool_push_1.requestPush)(this.client);
@@ -562,6 +611,7 @@ class ArmorIQSession {
562
611
  allowed: false,
563
612
  action: 'block',
564
613
  reason: `enforce-unavailable: ${e.message}`,
614
+ enforcementFailed: true,
565
615
  };
566
616
  }
567
617
  }
@@ -569,8 +619,8 @@ class ArmorIQSession {
569
619
  declareModelTools(tools) {
570
620
  (0, openai_1.declareModelTools)(this.client, tools);
571
621
  }
572
- async enforce(toolName, toolArgs) {
573
- const decision = await this._enforceImpl(toolName, toolArgs);
622
+ async enforce(toolName, toolArgs, options = {}) {
623
+ const decision = withToolCallId(await this._enforceImpl(toolName, toolArgs), options);
574
624
  await this.recordPolicyDecision(toolName, toolArgs, decision);
575
625
  return decision;
576
626
  }
@@ -591,6 +641,7 @@ class ArmorIQSession {
591
641
  };
592
642
  }
593
643
  const internals = this.client._sessionInternals();
644
+ const invokeUrl = `${internals.defaultProxyEndpoint}/invoke`;
594
645
  try {
595
646
  const payload = {
596
647
  enforce_only: true,
@@ -608,9 +659,13 @@ class ArmorIQSession {
608
659
  if (this.currentToken.policySnapshot) {
609
660
  payload.policy_snapshot = this.currentToken.policySnapshot;
610
661
  }
611
- const response = await internals.httpClient.post(`${internals.defaultProxyEndpoint}/invoke`, payload, {
662
+ const response = await internals.httpClient
663
+ .post(invokeUrl, payload, {
612
664
  headers: { 'X-API-Key': internals.apiKey, 'Content-Type': 'application/json' },
613
665
  timeout: 10000,
666
+ })
667
+ .catch((error) => {
668
+ throw new Error((0, proxy_error_1.proxyUnreachable)(invokeUrl, error));
614
669
  });
615
670
  const data = response.data ?? {};
616
671
  const rawPolicy = data.matched_policy ?? data.matchedPolicy;
@@ -618,10 +673,14 @@ class ArmorIQSession {
618
673
  // Fail closed: only an explicit allow from a 2xx response permits the call.
619
674
  // Any error status (403 or otherwise) or an ambiguous body blocks.
620
675
  if (response.status >= 400) {
676
+ const rejected = `enforce-rejected: ${(0, proxy_error_1.proxyRejected)(invokeUrl, response.status, response.data)}`;
677
+ if (response.status !== 403) {
678
+ return { allowed: false, action: 'block', reason: rejected, enforcementFailed: true };
679
+ }
621
680
  return {
622
681
  allowed: false,
623
682
  action: data.action ?? 'block',
624
- reason: data.reason ?? data.message ?? `enforce-rejected: HTTP ${response.status}`,
683
+ reason: data.reason ?? data.message ?? rejected,
625
684
  matchedPolicy: policyName,
626
685
  };
627
686
  }
@@ -642,6 +701,7 @@ class ArmorIQSession {
642
701
  allowed: false,
643
702
  action: 'block',
644
703
  reason: `enforce-unavailable: ${e.message}`,
704
+ enforcementFailed: true,
645
705
  };
646
706
  }
647
707
  }
@@ -657,6 +717,7 @@ class ArmorIQSession {
657
717
  decision = {
658
718
  ...decision,
659
719
  action: 'block',
720
+ reasonCode: decision.reason,
660
721
  reason: (decision.reason ?? 'requires approval') +
661
722
  ' — switch ARMORIQ_MODE=proxy to enable approval workflows for this action.',
662
723
  };
@@ -668,40 +729,14 @@ class ArmorIQSession {
668
729
  decision = await this.handleHold(toolName, toolArgs, decision, userEmail);
669
730
  }
670
731
  }
671
- if (telemetry.emitOtel !== false) {
672
- await this.recordPolicyDecision(toolName, toolArgs, decision);
673
- }
732
+ if (telemetry.emitOtel === false)
733
+ return { ...decision, toolCallId: telemetry.toolCallId };
734
+ decision = withToolCallId(decision, telemetry);
735
+ await this.recordPolicyDecision(toolName, toolArgs, decision);
674
736
  return decision;
675
737
  }
676
738
  async recordPolicyDecision(toolName, toolArgs, decision) {
677
- if (!this.otel)
678
- return;
679
- const policy = decision;
680
- const failed = typeof decision.reason === 'string' && decision.reason.startsWith('enforce-unavailable:');
681
- const policyDecision = decision.allowed
682
- ? 'allow'
683
- : decision.action === 'hold'
684
- ? 'hold'
685
- : decision.action === 'block'
686
- ? 'block'
687
- : undefined;
688
- await this.otel.recordPolicy({ toolName, arguments: toolArgs }, {
689
- ...(!failed && policyDecision ? { decision: policyDecision } : {}),
690
- policyName: decision.matchedPolicy,
691
- ...(typeof policy.policyId === 'string' ? { policyId: policy.policyId } : {}),
692
- ...(typeof policy.policyVersion === 'string'
693
- ? { policyVersion: policy.policyVersion }
694
- : {}),
695
- ...(typeof policy.policySource === 'string' ? { policySource: policy.policySource } : {}),
696
- ...(typeof policy.matchedRuleId === 'string'
697
- ? { matchedRuleId: policy.matchedRuleId }
698
- : {}),
699
- policyReasonCode: decision.reason,
700
- ...(failed ? { error: new Error('policy evaluation failed') } : {}),
701
- ...(typeof policy.defaultAction === 'string'
702
- ? { defaultAction: policy.defaultAction }
703
- : {}),
704
- });
739
+ await this.otel?.recordPolicy({ toolName, toolCallId: decision.toolCallId, arguments: toolArgs }, policyResultFor(decision));
705
740
  }
706
741
  trackPolicyTelemetry(operation) {
707
742
  const tracked = operation
@@ -735,6 +770,7 @@ class ArmorIQSession {
735
770
  const token = this.currentToken;
736
771
  await internals.httpClient.post(`${internals.backendEndpoint}/iap/audit`, auditPersistencePayload({
737
772
  token,
773
+ agentId: realIdentity(internals.agentId),
738
774
  stepIndex: this.stepIndex,
739
775
  action,
740
776
  mcp: resolvedMcp,
@@ -760,6 +796,7 @@ class ArmorIQSession {
760
796
  if (o.emitOtel !== false) {
761
797
  await this.otel?.recordTool({
762
798
  toolName,
799
+ toolCallId: o.toolCallId,
763
800
  itemOrdinal: reportItemOrdinal,
764
801
  arguments: toolArgs,
765
802
  operation: reportOperation,
@@ -772,7 +809,7 @@ class ArmorIQSession {
772
809
  }
773
810
  }
774
811
  }
775
- async dispatch(toolName, toolArgs) {
812
+ async dispatch(toolName, toolArgs, options = {}) {
776
813
  let dispatchResult;
777
814
  let dispatchStatus = 'ok';
778
815
  let dispatchError;
@@ -785,6 +822,7 @@ class ArmorIQSession {
785
822
  const resolvedMcp = this.resolveMcp(toolName, mcp, action);
786
823
  nativeTool = await this.otel?.beginTool({
787
824
  toolName: action,
825
+ toolCallId: options.toolCallId,
788
826
  itemOrdinal: this.stepIndex,
789
827
  arguments: toolArgs,
790
828
  operation: {