@armoriq/sdk-dev 0.8.7 → 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 +28 -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 +23 -22
  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 +84 -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,
@@ -602,12 +653,19 @@ class ArmorIQSession {
602
653
  intent_token: this.currentToken.rawToken,
603
654
  plan: (this.currentToken.rawToken ?? {}).plan,
604
655
  };
656
+ const agentId = realIdentity(internals.agentId);
657
+ if (agentId)
658
+ payload.agent_id = agentId;
605
659
  if (this.currentToken.policySnapshot) {
606
660
  payload.policy_snapshot = this.currentToken.policySnapshot;
607
661
  }
608
- const response = await internals.httpClient.post(`${internals.defaultProxyEndpoint}/invoke`, payload, {
662
+ const response = await internals.httpClient
663
+ .post(invokeUrl, payload, {
609
664
  headers: { 'X-API-Key': internals.apiKey, 'Content-Type': 'application/json' },
610
665
  timeout: 10000,
666
+ })
667
+ .catch((error) => {
668
+ throw new Error((0, proxy_error_1.proxyUnreachable)(invokeUrl, error));
611
669
  });
612
670
  const data = response.data ?? {};
613
671
  const rawPolicy = data.matched_policy ?? data.matchedPolicy;
@@ -615,10 +673,14 @@ class ArmorIQSession {
615
673
  // Fail closed: only an explicit allow from a 2xx response permits the call.
616
674
  // Any error status (403 or otherwise) or an ambiguous body blocks.
617
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
+ }
618
680
  return {
619
681
  allowed: false,
620
682
  action: data.action ?? 'block',
621
- reason: data.reason ?? data.message ?? `enforce-rejected: HTTP ${response.status}`,
683
+ reason: data.reason ?? data.message ?? rejected,
622
684
  matchedPolicy: policyName,
623
685
  };
624
686
  }
@@ -639,6 +701,7 @@ class ArmorIQSession {
639
701
  allowed: false,
640
702
  action: 'block',
641
703
  reason: `enforce-unavailable: ${e.message}`,
704
+ enforcementFailed: true,
642
705
  };
643
706
  }
644
707
  }
@@ -654,6 +717,7 @@ class ArmorIQSession {
654
717
  decision = {
655
718
  ...decision,
656
719
  action: 'block',
720
+ reasonCode: decision.reason,
657
721
  reason: (decision.reason ?? 'requires approval') +
658
722
  ' — switch ARMORIQ_MODE=proxy to enable approval workflows for this action.',
659
723
  };
@@ -665,40 +729,14 @@ class ArmorIQSession {
665
729
  decision = await this.handleHold(toolName, toolArgs, decision, userEmail);
666
730
  }
667
731
  }
668
- if (telemetry.emitOtel !== false) {
669
- await this.recordPolicyDecision(toolName, toolArgs, decision);
670
- }
732
+ if (telemetry.emitOtel === false)
733
+ return { ...decision, toolCallId: telemetry.toolCallId };
734
+ decision = withToolCallId(decision, telemetry);
735
+ await this.recordPolicyDecision(toolName, toolArgs, decision);
671
736
  return decision;
672
737
  }
673
738
  async recordPolicyDecision(toolName, toolArgs, decision) {
674
- if (!this.otel)
675
- return;
676
- const policy = decision;
677
- const failed = typeof decision.reason === 'string' && decision.reason.startsWith('enforce-unavailable:');
678
- const policyDecision = decision.allowed
679
- ? 'allow'
680
- : decision.action === 'hold'
681
- ? 'hold'
682
- : decision.action === 'block'
683
- ? 'block'
684
- : undefined;
685
- await this.otel.recordPolicy({ toolName, arguments: toolArgs }, {
686
- ...(!failed && policyDecision ? { decision: policyDecision } : {}),
687
- policyName: decision.matchedPolicy,
688
- ...(typeof policy.policyId === 'string' ? { policyId: policy.policyId } : {}),
689
- ...(typeof policy.policyVersion === 'string'
690
- ? { policyVersion: policy.policyVersion }
691
- : {}),
692
- ...(typeof policy.policySource === 'string' ? { policySource: policy.policySource } : {}),
693
- ...(typeof policy.matchedRuleId === 'string'
694
- ? { matchedRuleId: policy.matchedRuleId }
695
- : {}),
696
- policyReasonCode: decision.reason,
697
- ...(failed ? { error: new Error('policy evaluation failed') } : {}),
698
- ...(typeof policy.defaultAction === 'string'
699
- ? { defaultAction: policy.defaultAction }
700
- : {}),
701
- });
739
+ await this.otel?.recordPolicy({ toolName, toolCallId: decision.toolCallId, arguments: toolArgs }, policyResultFor(decision));
702
740
  }
703
741
  trackPolicyTelemetry(operation) {
704
742
  const tracked = operation
@@ -732,6 +770,7 @@ class ArmorIQSession {
732
770
  const token = this.currentToken;
733
771
  await internals.httpClient.post(`${internals.backendEndpoint}/iap/audit`, auditPersistencePayload({
734
772
  token,
773
+ agentId: realIdentity(internals.agentId),
735
774
  stepIndex: this.stepIndex,
736
775
  action,
737
776
  mcp: resolvedMcp,
@@ -757,6 +796,7 @@ class ArmorIQSession {
757
796
  if (o.emitOtel !== false) {
758
797
  await this.otel?.recordTool({
759
798
  toolName,
799
+ toolCallId: o.toolCallId,
760
800
  itemOrdinal: reportItemOrdinal,
761
801
  arguments: toolArgs,
762
802
  operation: reportOperation,
@@ -769,7 +809,7 @@ class ArmorIQSession {
769
809
  }
770
810
  }
771
811
  }
772
- async dispatch(toolName, toolArgs) {
812
+ async dispatch(toolName, toolArgs, options = {}) {
773
813
  let dispatchResult;
774
814
  let dispatchStatus = 'ok';
775
815
  let dispatchError;
@@ -782,6 +822,7 @@ class ArmorIQSession {
782
822
  const resolvedMcp = this.resolveMcp(toolName, mcp, action);
783
823
  nativeTool = await this.otel?.beginTool({
784
824
  toolName: action,
825
+ toolCallId: options.toolCallId,
785
826
  itemOrdinal: this.stepIndex,
786
827
  arguments: toolArgs,
787
828
  operation: {