@armoriq/sdk-dev 0.6.6 → 0.6.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_version.d.ts +12 -0
- package/dist/_version.d.ts.map +1 -0
- package/dist/_version.js +15 -0
- package/dist/_version.js.map +1 -0
- package/dist/cli/commands/auth.d.ts.map +1 -1
- package/dist/cli/commands/auth.js +1 -0
- package/dist/cli/commands/auth.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +7 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/client.d.ts +7 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +11 -1
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/integrations/google_adk.d.ts +12 -4
- package/dist/integrations/google_adk.d.ts.map +1 -1
- package/dist/integrations/google_adk.js +17 -1
- package/dist/integrations/google_adk.js.map +1 -1
- package/dist/integrations/langchain.d.ts +22 -6
- package/dist/integrations/langchain.d.ts.map +1 -1
- package/dist/integrations/langchain.js +47 -7
- package/dist/integrations/langchain.js.map +1 -1
- package/dist/integrations/microsoft_copilot.d.ts +84 -0
- package/dist/integrations/microsoft_copilot.d.ts.map +1 -0
- package/dist/integrations/microsoft_copilot.js +126 -0
- package/dist/integrations/microsoft_copilot.js.map +1 -0
- package/dist/integrations/strands.d.ts +36 -4
- package/dist/integrations/strands.d.ts.map +1 -1
- package/dist/integrations/strands.js +108 -28
- package/dist/integrations/strands.js.map +1 -1
- package/dist/observability/recorder.d.ts +1 -1
- package/dist/observability/recorder.d.ts.map +1 -1
- package/dist/session.d.ts +24 -0
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +87 -11
- package/dist/session.js.map +1 -1
- package/dist/token_usage.d.ts +1 -1
- package/dist/token_usage.d.ts.map +1 -1
- package/package.json +21 -2
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* run — not the agent's whole tool set — so a read-only
|
|
11
11
|
* turn is not flagged 'held' at issuance).
|
|
12
12
|
* BeforeToolCallEvent → enforce per-user policy before each tool runs;
|
|
13
|
-
* block/hold by setting event.
|
|
13
|
+
* block/hold by setting event.cancel.
|
|
14
14
|
* AfterToolCallEvent → report each executed tool to ArmorIQ so the plan
|
|
15
15
|
* lifecycle closes (advances to 'completed' once all
|
|
16
16
|
* declared steps have run) instead of sitting 'active'
|
|
@@ -32,6 +32,19 @@ import { ArmorIQClient, ArmorIQUserScope } from '../client';
|
|
|
32
32
|
import { SessionOptions } from '../session';
|
|
33
33
|
import { ToolNameParser } from '../plan_builder';
|
|
34
34
|
export type OnEvent = (kind: string, payload: Record<string, any>) => void;
|
|
35
|
+
/**
|
|
36
|
+
* The strands hook registry dispatches on the event CONSTRUCTOR
|
|
37
|
+
* (`callbacks.get(event.constructor)`), so we must register with the very same
|
|
38
|
+
* classes the running agent constructs — a string name never fires. Strands
|
|
39
|
+
* stays an optional peer here: the classes are resolved lazily at wire-up time,
|
|
40
|
+
* or injected by the host via `eventClasses` (useful when the host pins its own
|
|
41
|
+
* copy of the package, or bundles one).
|
|
42
|
+
*/
|
|
43
|
+
export interface StrandsEventClasses {
|
|
44
|
+
AfterModelCallEvent: new (...args: any[]) => any;
|
|
45
|
+
BeforeToolCallEvent: new (...args: any[]) => any;
|
|
46
|
+
AfterToolCallEvent: new (...args: any[]) => any;
|
|
47
|
+
}
|
|
35
48
|
export interface ArmorIQStrandsOptions {
|
|
36
49
|
client: ArmorIQClient;
|
|
37
50
|
mode?: SessionOptions['mode'];
|
|
@@ -40,6 +53,8 @@ export interface ArmorIQStrandsOptions {
|
|
|
40
53
|
toolNameParser?: ToolNameParser;
|
|
41
54
|
approvalWaitSeconds?: number;
|
|
42
55
|
approvalPollInterval?: number;
|
|
56
|
+
/** Strands event classes, when the host would rather hand us its own copy. */
|
|
57
|
+
eventClasses?: StrandsEventClasses;
|
|
43
58
|
}
|
|
44
59
|
export declare class ArmorIQStrands {
|
|
45
60
|
readonly client: ArmorIQClient;
|
|
@@ -48,6 +63,7 @@ export declare class ArmorIQStrands {
|
|
|
48
63
|
readonly defaultMcpName?: string;
|
|
49
64
|
readonly approvalWaitSeconds: number;
|
|
50
65
|
readonly approvalPollInterval: number;
|
|
66
|
+
readonly eventClasses?: StrandsEventClasses;
|
|
51
67
|
private customParser?;
|
|
52
68
|
private _bootstrap?;
|
|
53
69
|
constructor(opts: ArmorIQStrandsOptions);
|
|
@@ -60,6 +76,8 @@ export declare class ArmorIQStrands {
|
|
|
60
76
|
}): Promise<ArmorIQStrandsPlugin>;
|
|
61
77
|
}
|
|
62
78
|
export declare class ArmorIQStrandsPlugin {
|
|
79
|
+
/** Stable Plugin id — the strands PluginRegistry keys on it. */
|
|
80
|
+
readonly name = "armoriq-enforcement";
|
|
63
81
|
private factory;
|
|
64
82
|
private scope;
|
|
65
83
|
private userEmail;
|
|
@@ -68,6 +86,8 @@ export declare class ArmorIQStrandsPlugin {
|
|
|
68
86
|
private parser;
|
|
69
87
|
private session?;
|
|
70
88
|
private planStarted;
|
|
89
|
+
private eventClasses?;
|
|
90
|
+
private cancelledToolUseIds;
|
|
71
91
|
constructor(args: {
|
|
72
92
|
factory: ArmorIQStrands;
|
|
73
93
|
scope: ArmorIQUserScope;
|
|
@@ -75,9 +95,10 @@ export declare class ArmorIQStrandsPlugin {
|
|
|
75
95
|
goal?: string;
|
|
76
96
|
onEvent?: OnEvent;
|
|
77
97
|
parser: ToolNameParser;
|
|
98
|
+
eventClasses?: StrandsEventClasses;
|
|
78
99
|
});
|
|
79
100
|
/** Strands Plugin entrypoint: register our hooks on the agent. */
|
|
80
|
-
initAgent(agent: any): void
|
|
101
|
+
initAgent(agent: any): Promise<void>;
|
|
81
102
|
/** Wire the AfterModelCall + BeforeToolCall hooks onto a Strands agent. */
|
|
82
103
|
register(agent: any): void;
|
|
83
104
|
private emit;
|
|
@@ -89,6 +110,14 @@ export declare class ArmorIQStrandsPlugin {
|
|
|
89
110
|
args: any;
|
|
90
111
|
}>;
|
|
91
112
|
private onAfterModelCall;
|
|
113
|
+
/**
|
|
114
|
+
* Key a tool call so beforeToolCall can tell onAfterToolCall "this one never
|
|
115
|
+
* ran". Strands always supplies the model-issued toolUseId; the tool name is
|
|
116
|
+
* a fallback for duck-typed hosts that don't.
|
|
117
|
+
*/
|
|
118
|
+
private static cancelKey;
|
|
119
|
+
/** Cancel the tool and remember that we did, so we never audit it as run. */
|
|
120
|
+
private cancelTool;
|
|
92
121
|
private beforeToolCall;
|
|
93
122
|
/**
|
|
94
123
|
* Report a tool execution to ArmorIQ once it has actually run, so the plan
|
|
@@ -96,8 +125,11 @@ export declare class ArmorIQStrandsPlugin {
|
|
|
96
125
|
* plan to 'completed' when all declared steps have run, instead of leaving it
|
|
97
126
|
* stuck 'active' (shown as a perpetual "Running"). Tools we cancelled for
|
|
98
127
|
* enforcement (block / rejected / timeout / error) never ran, so they are
|
|
99
|
-
* skipped — a blocked tool must not be logged as executed.
|
|
100
|
-
*
|
|
128
|
+
* skipped — a blocked tool must not be logged as executed. The cancelled
|
|
129
|
+
* tool's after-event looks like any failed execution (strands hands us an
|
|
130
|
+
* error-status result and no cancel marker), so the skip is driven by what
|
|
131
|
+
* beforeToolCall recorded. Best-effort: audit failures are logged, never
|
|
132
|
+
* allowed to break the run.
|
|
101
133
|
*/
|
|
102
134
|
private onAfterToolCall;
|
|
103
135
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strands.d.ts","sourceRoot":"","sources":["../../src/integrations/strands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAkB,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAIjD,MAAM,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;AAE3E,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"strands.d.ts","sourceRoot":"","sources":["../../src/integrations/strands.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* run — not the agent's whole tool set — so a read-only
|
|
12
12
|
* turn is not flagged 'held' at issuance).
|
|
13
13
|
* BeforeToolCallEvent → enforce per-user policy before each tool runs;
|
|
14
|
-
* block/hold by setting event.
|
|
14
|
+
* block/hold by setting event.cancel.
|
|
15
15
|
* AfterToolCallEvent → report each executed tool to ArmorIQ so the plan
|
|
16
16
|
* lifecycle closes (advances to 'completed' once all
|
|
17
17
|
* declared steps have run) instead of sitting 'active'
|
|
@@ -31,6 +31,55 @@
|
|
|
31
31
|
*/
|
|
32
32
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33
33
|
exports.ArmorIQStrandsPlugin = exports.ArmorIQStrands = void 0;
|
|
34
|
+
const STRANDS_PACKAGE = '@strands-agents/sdk';
|
|
35
|
+
const EVENT_NAMES = [
|
|
36
|
+
'AfterModelCallEvent',
|
|
37
|
+
'BeforeToolCallEvent',
|
|
38
|
+
'AfterToolCallEvent',
|
|
39
|
+
];
|
|
40
|
+
function pickEventClasses(mod) {
|
|
41
|
+
// Reach through an interop default when the namespace itself has no classes.
|
|
42
|
+
const src = mod && typeof mod.BeforeToolCallEvent !== 'function' && mod.default ? mod.default : mod;
|
|
43
|
+
if (!src)
|
|
44
|
+
return undefined;
|
|
45
|
+
for (const name of EVENT_NAMES) {
|
|
46
|
+
if (typeof src[name] !== 'function')
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
AfterModelCallEvent: src.AfterModelCallEvent,
|
|
51
|
+
BeforeToolCallEvent: src.BeforeToolCallEvent,
|
|
52
|
+
AfterToolCallEvent: src.AfterToolCallEvent,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/** Load the event classes without a static import, so strands stays optional. */
|
|
56
|
+
function requireStrandsEventClasses() {
|
|
57
|
+
try {
|
|
58
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
59
|
+
return pickEventClasses(require(STRANDS_PACKAGE));
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
return undefined; // not installed, or an ESM-only package on an older Node
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
async function loadStrandsEventClasses() {
|
|
66
|
+
const required = requireStrandsEventClasses();
|
|
67
|
+
if (required)
|
|
68
|
+
return required;
|
|
69
|
+
try {
|
|
70
|
+
// Indirect so the emitted CJS keeps a real dynamic import (Node <22.12
|
|
71
|
+
// cannot require() this ESM-only package).
|
|
72
|
+
const dynamicImport = new Function('m', 'return import(m)');
|
|
73
|
+
return pickEventClasses(await dynamicImport(STRANDS_PACKAGE));
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
const MISSING_STRANDS = `ArmorIQStrands: could not load the strands hook events from '${STRANDS_PACKAGE}'. ` +
|
|
80
|
+
`Install it (npm i ${STRANDS_PACKAGE}), attach the plugin via ` +
|
|
81
|
+
'Agent({ plugins: [p] }) so it can load them asynchronously, or pass ' +
|
|
82
|
+
'eventClasses: { AfterModelCallEvent, BeforeToolCallEvent, AfterToolCallEvent }.';
|
|
34
83
|
class ArmorIQStrands {
|
|
35
84
|
client;
|
|
36
85
|
mode;
|
|
@@ -38,6 +87,7 @@ class ArmorIQStrands {
|
|
|
38
87
|
defaultMcpName;
|
|
39
88
|
approvalWaitSeconds;
|
|
40
89
|
approvalPollInterval;
|
|
90
|
+
eventClasses;
|
|
41
91
|
customParser;
|
|
42
92
|
_bootstrap;
|
|
43
93
|
constructor(opts) {
|
|
@@ -46,6 +96,7 @@ class ArmorIQStrands {
|
|
|
46
96
|
this.validitySeconds = opts.validitySeconds ?? 3600;
|
|
47
97
|
this.defaultMcpName = opts.defaultMcpName;
|
|
48
98
|
this.customParser = opts.toolNameParser;
|
|
99
|
+
this.eventClasses = opts.eventClasses;
|
|
49
100
|
this.approvalWaitSeconds =
|
|
50
101
|
opts.approvalWaitSeconds ??
|
|
51
102
|
Number(process.env.ARMORIQ_APPROVAL_WAIT_SECONDS ?? '300');
|
|
@@ -84,11 +135,14 @@ class ArmorIQStrands {
|
|
|
84
135
|
goal: opts?.goal,
|
|
85
136
|
onEvent: opts?.onEvent,
|
|
86
137
|
parser: await this.toolNameParser(),
|
|
138
|
+
eventClasses: this.eventClasses,
|
|
87
139
|
});
|
|
88
140
|
}
|
|
89
141
|
}
|
|
90
142
|
exports.ArmorIQStrands = ArmorIQStrands;
|
|
91
143
|
class ArmorIQStrandsPlugin {
|
|
144
|
+
/** Stable Plugin id — the strands PluginRegistry keys on it. */
|
|
145
|
+
name = 'armoriq-enforcement';
|
|
92
146
|
factory;
|
|
93
147
|
scope;
|
|
94
148
|
userEmail;
|
|
@@ -97,6 +151,11 @@ class ArmorIQStrandsPlugin {
|
|
|
97
151
|
parser;
|
|
98
152
|
session;
|
|
99
153
|
planStarted = false;
|
|
154
|
+
eventClasses;
|
|
155
|
+
// toolUseIds we cancelled in beforeToolCall. AfterToolCallEvent still fires
|
|
156
|
+
// for a cancelled tool and carries nothing that distinguishes it, so this is
|
|
157
|
+
// the only way to know the tool never actually ran.
|
|
158
|
+
cancelledToolUseIds = new Set();
|
|
100
159
|
constructor(args) {
|
|
101
160
|
this.factory = args.factory;
|
|
102
161
|
this.scope = args.scope;
|
|
@@ -104,9 +163,12 @@ class ArmorIQStrandsPlugin {
|
|
|
104
163
|
this.goal = args.goal;
|
|
105
164
|
this.onEvent = args.onEvent;
|
|
106
165
|
this.parser = args.parser;
|
|
166
|
+
this.eventClasses = args.eventClasses ?? args.factory?.eventClasses;
|
|
107
167
|
}
|
|
108
168
|
/** Strands Plugin entrypoint: register our hooks on the agent. */
|
|
109
|
-
initAgent(agent) {
|
|
169
|
+
async initAgent(agent) {
|
|
170
|
+
if (!this.eventClasses)
|
|
171
|
+
this.eventClasses = await loadStrandsEventClasses();
|
|
110
172
|
this.register(agent);
|
|
111
173
|
}
|
|
112
174
|
/** Wire the AfterModelCall + BeforeToolCall hooks onto a Strands agent. */
|
|
@@ -115,9 +177,13 @@ class ArmorIQStrandsPlugin {
|
|
|
115
177
|
if (!add) {
|
|
116
178
|
throw new Error('ArmorIQStrands: agent has no addHook/hooks.addCallback');
|
|
117
179
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
180
|
+
const events = this.eventClasses ?? requireStrandsEventClasses();
|
|
181
|
+
if (!events)
|
|
182
|
+
throw new Error(MISSING_STRANDS);
|
|
183
|
+
this.eventClasses = events;
|
|
184
|
+
add(events.AfterModelCallEvent, (e) => this.onAfterModelCall(e));
|
|
185
|
+
add(events.BeforeToolCallEvent, (e) => this.beforeToolCall(e));
|
|
186
|
+
add(events.AfterToolCallEvent, (e) => this.onAfterToolCall(e));
|
|
121
187
|
}
|
|
122
188
|
emit(kind, payload) {
|
|
123
189
|
if (!this.onEvent)
|
|
@@ -151,9 +217,10 @@ class ArmorIQStrandsPlugin {
|
|
|
151
217
|
const content = message?.content ?? [];
|
|
152
218
|
const calls = [];
|
|
153
219
|
for (const item of content) {
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
220
|
+
// A live ToolUseBlock carries name/input directly; the serialized (wire)
|
|
221
|
+
// form nests them under `toolUse`.
|
|
222
|
+
const tu = item?.toolUse ??
|
|
223
|
+
(item?.type === 'toolUseBlock' || item?.toolUseId ? item : undefined);
|
|
157
224
|
const name = tu?.name;
|
|
158
225
|
const args = tu?.input ?? {};
|
|
159
226
|
if (name)
|
|
@@ -163,16 +230,31 @@ class ArmorIQStrandsPlugin {
|
|
|
163
230
|
}
|
|
164
231
|
async onAfterModelCall(event) {
|
|
165
232
|
try {
|
|
166
|
-
const
|
|
167
|
-
if (!
|
|
233
|
+
const stopData = event?.stopData;
|
|
234
|
+
if (!stopData)
|
|
168
235
|
return; // model errored; nothing to capture this turn
|
|
169
|
-
const toolCalls = ArmorIQStrandsPlugin.toolCallsFromMessage(
|
|
236
|
+
const toolCalls = ArmorIQStrandsPlugin.toolCallsFromMessage(stopData?.message);
|
|
170
237
|
await this.capturePlan(toolCalls);
|
|
171
238
|
}
|
|
172
239
|
catch (exc) {
|
|
173
240
|
console.warn(`[armoriq] strands plan capture (after model) failed: ${exc.message}`);
|
|
174
241
|
}
|
|
175
242
|
}
|
|
243
|
+
/**
|
|
244
|
+
* Key a tool call so beforeToolCall can tell onAfterToolCall "this one never
|
|
245
|
+
* ran". Strands always supplies the model-issued toolUseId; the tool name is
|
|
246
|
+
* a fallback for duck-typed hosts that don't.
|
|
247
|
+
*/
|
|
248
|
+
static cancelKey(toolUse) {
|
|
249
|
+
return toolUse?.toolUseId ?? toolUse?.name ?? '';
|
|
250
|
+
}
|
|
251
|
+
/** Cancel the tool and remember that we did, so we never audit it as run. */
|
|
252
|
+
cancelTool(event, toolUse, message) {
|
|
253
|
+
event.cancel = message;
|
|
254
|
+
const key = ArmorIQStrandsPlugin.cancelKey(toolUse);
|
|
255
|
+
if (key)
|
|
256
|
+
this.cancelledToolUseIds.add(key);
|
|
257
|
+
}
|
|
176
258
|
async beforeToolCall(event) {
|
|
177
259
|
const toolUse = event?.toolUse ?? event?.tool_use ?? {};
|
|
178
260
|
const toolName = toolUse.name ?? '';
|
|
@@ -207,25 +289,19 @@ class ArmorIQStrandsPlugin {
|
|
|
207
289
|
delegationId: decision.delegationId,
|
|
208
290
|
reason: decision.reason,
|
|
209
291
|
});
|
|
210
|
-
|
|
211
|
-
event.cancel = cancel;
|
|
212
|
-
event.cancel_tool = cancel;
|
|
292
|
+
this.cancelTool(event, toolUse, `ArmorIQ hold ${outcome}: ${decision.reason ?? 'approval required'}`);
|
|
213
293
|
return;
|
|
214
294
|
}
|
|
215
295
|
// block (or any other non-allow decision)
|
|
216
296
|
const reason = decision.reason ?? 'blocked by policy';
|
|
217
297
|
this.emit('block', { tool: toolName, reason });
|
|
218
|
-
|
|
219
|
-
event.cancel = cancel;
|
|
220
|
-
event.cancel_tool = cancel;
|
|
298
|
+
this.cancelTool(event, toolUse, `ArmorIQ ${decision.action}: ${reason}`);
|
|
221
299
|
}
|
|
222
300
|
catch (exc) {
|
|
223
301
|
// Fail closed: never let a tool run if enforcement errored — and surface it.
|
|
224
302
|
const msg = exc.message ?? String(exc);
|
|
225
303
|
this.emit('error', { tool: toolName, error: msg });
|
|
226
|
-
|
|
227
|
-
event.cancel = cancel;
|
|
228
|
-
event.cancel_tool = cancel;
|
|
304
|
+
this.cancelTool(event, toolUse, `ArmorIQ enforcement error (fail-closed): ${msg}`);
|
|
229
305
|
}
|
|
230
306
|
}
|
|
231
307
|
/**
|
|
@@ -234,23 +310,27 @@ class ArmorIQStrandsPlugin {
|
|
|
234
310
|
* plan to 'completed' when all declared steps have run, instead of leaving it
|
|
235
311
|
* stuck 'active' (shown as a perpetual "Running"). Tools we cancelled for
|
|
236
312
|
* enforcement (block / rejected / timeout / error) never ran, so they are
|
|
237
|
-
* skipped — a blocked tool must not be logged as executed.
|
|
238
|
-
*
|
|
313
|
+
* skipped — a blocked tool must not be logged as executed. The cancelled
|
|
314
|
+
* tool's after-event looks like any failed execution (strands hands us an
|
|
315
|
+
* error-status result and no cancel marker), so the skip is driven by what
|
|
316
|
+
* beforeToolCall recorded. Best-effort: audit failures are logged, never
|
|
317
|
+
* allowed to break the run.
|
|
239
318
|
*/
|
|
240
319
|
async onAfterToolCall(event) {
|
|
241
|
-
const
|
|
242
|
-
|
|
243
|
-
|
|
320
|
+
const toolUse = event?.toolUse ?? event?.tool_use ?? {};
|
|
321
|
+
// Consume the mark so a later legitimate call to the same tool is reported.
|
|
322
|
+
const key = ArmorIQStrandsPlugin.cancelKey(toolUse);
|
|
323
|
+
if (key && this.cancelledToolUseIds.delete(key))
|
|
324
|
+
return; // we cancelled it; it never ran
|
|
244
325
|
if (!this.session || !this.planStarted)
|
|
245
326
|
return;
|
|
246
|
-
const toolUse = event?.toolUse ?? event?.tool_use ?? {};
|
|
247
327
|
const toolName = toolUse.name ?? '';
|
|
248
328
|
if (!toolName)
|
|
249
329
|
return;
|
|
250
330
|
const args = toolUse.input ?? {};
|
|
251
|
-
const exc = event?.
|
|
331
|
+
const exc = event?.error;
|
|
252
332
|
const status = exc ? 'error' : 'success';
|
|
253
|
-
const errMsg = exc ? (exc
|
|
333
|
+
const errMsg = exc ? (exc.message ?? String(exc)) : undefined;
|
|
254
334
|
const result = exc ? errMsg : event?.result;
|
|
255
335
|
try {
|
|
256
336
|
await this.session.report(toolName, args, result, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strands.js","sourceRoot":"","sources":["../../src/integrations/strands.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;;;
|
|
1
|
+
{"version":3,"file":"strands.js","sourceRoot":"","sources":["../../src/integrations/strands.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,7 +28,7 @@ export interface ObservabilityConfig {
|
|
|
28
28
|
endpoint: string;
|
|
29
29
|
/** API key used in the X-API-Key header. */
|
|
30
30
|
apiKey: string;
|
|
31
|
-
/** Product tag sent with every ingest payload (e.g. 'armorclaude'). */
|
|
31
|
+
/** Product tag sent with every ingest payload (e.g. 'armorclaude' | 'armorcodex' | 'armorcopilot' | 'armorgemini'). */
|
|
32
32
|
product: string;
|
|
33
33
|
/**
|
|
34
34
|
* Default session id applied to every trace started on this recorder when
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recorder.d.ts","sourceRoot":"","sources":["../../src/observability/recorder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAML,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,UAAU,CAAC;AAMlB,MAAM,WAAW,mBAAmB;IAClC,yCAAyC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,wFAAwF;IACxF,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,
|
|
1
|
+
{"version":3,"file":"recorder.d.ts","sourceRoot":"","sources":["../../src/observability/recorder.ts"],"names":[],"mappings":"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"}
|
package/dist/session.d.ts
CHANGED
|
@@ -145,6 +145,7 @@ export declare class ArmorIQSession {
|
|
|
145
145
|
private currentToken?;
|
|
146
146
|
private mcpByAction;
|
|
147
147
|
private declaredTools;
|
|
148
|
+
private metadataWarmed;
|
|
148
149
|
private obs;
|
|
149
150
|
/**
|
|
150
151
|
* This session's one stable observability session id — stamped onto every
|
|
@@ -253,6 +254,29 @@ export declare class ArmorIQSession {
|
|
|
253
254
|
userEmail?: string;
|
|
254
255
|
}): Promise<'approved' | 'rejected' | 'timeout'>;
|
|
255
256
|
private static extractAmount;
|
|
257
|
+
/**
|
|
258
|
+
* The amount a financial policy should be compared against. The tool's
|
|
259
|
+
* semantic metadata names the canonical field(s) — a payment tool may carry
|
|
260
|
+
* its amount as `total_cents` or `invoice_amount`, which the literal
|
|
261
|
+
* amount/value/total/price/cost scan below never sees. Metadata also declares
|
|
262
|
+
* the unit, so a cents-denominated value is converted to whole units before
|
|
263
|
+
* it meets a dollar threshold. Mirrors PY `_resolve_canonical_amount`.
|
|
264
|
+
*
|
|
265
|
+
* Reads the metadata the client has already cached (`check()` warms it) so
|
|
266
|
+
* the synchronous `enforceLocal` can use it; falls back to the naive scan
|
|
267
|
+
* whenever metadata is absent or names no usable field.
|
|
268
|
+
*/
|
|
269
|
+
private resolveCanonicalAmount;
|
|
270
|
+
/**
|
|
271
|
+
* Best-effort warm of the tool metadata `enforceLocal` needs to resolve the
|
|
272
|
+
* canonical amount. Skipped unless a local decision could actually need it —
|
|
273
|
+
* local mode, and some policy in scope declares an amount threshold — so a
|
|
274
|
+
* session with no financial policy keeps its network-free hot path. One
|
|
275
|
+
* attempt per MCP per session, so a metadata outage costs one round trip.
|
|
276
|
+
*/
|
|
277
|
+
private warmToolMetadata;
|
|
278
|
+
/** True when a policy in scope carries a financial amount threshold. */
|
|
279
|
+
private hasAmountThresholdRule;
|
|
256
280
|
private evaluateAmountThreshold;
|
|
257
281
|
reset(): void;
|
|
258
282
|
/**
|
package/dist/session.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACL,mBAAmB,EAGpB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EACL,cAAc,EAIf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,qBAAqB,EASrB,KAAK,YAAY,EAIlB,MAAM,iBAAiB,CAAC;AACzB,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;AAEpD,MAAM,WAAW,cAAc;IAC7B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;;;;;;;;;;OAeG;IACH,mBAAmB,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAC3C;;;;OAIG;IACH,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEvD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAClC;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAajF;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,KAAK,aAAa,GAAG,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|