@armoriq/sdk-dev 0.6.0 → 0.6.1
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.
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* ArmorIQ SDK — AWS Strands Agents integration (TypeScript).
|
|
3
3
|
*
|
|
4
4
|
* Mirrors the Python strands bundle. One factory per process, one plugin per
|
|
5
|
-
* (user, agent). It wires
|
|
5
|
+
* (user, agent). It wires three Strands lifecycle hooks:
|
|
6
6
|
*
|
|
7
7
|
* AfterModelCallEvent → capture the tool calls the model actually chose this
|
|
8
8
|
* turn as the intent plan and mint the ArmorIQ intent
|
|
@@ -11,6 +11,11 @@
|
|
|
11
11
|
* turn is not flagged 'held' at issuance).
|
|
12
12
|
* BeforeToolCallEvent → enforce per-user policy before each tool runs;
|
|
13
13
|
* block/hold by setting event.cancel_tool.
|
|
14
|
+
* AfterToolCallEvent → report each executed tool to ArmorIQ so the plan
|
|
15
|
+
* lifecycle closes (advances to 'completed' once all
|
|
16
|
+
* declared steps have run) instead of sitting 'active'
|
|
17
|
+
* forever. Enforcement-cancelled tools never ran, so
|
|
18
|
+
* they are not reported.
|
|
14
19
|
*
|
|
15
20
|
* Fail-closed: a tool runs only on an explicit ArmorIQ allow. A block, a hold
|
|
16
21
|
* that is not approved in time, or any enforcement error cancels the tool. On
|
|
@@ -85,11 +90,15 @@ export declare class ArmorIQStrandsPlugin {
|
|
|
85
90
|
}>;
|
|
86
91
|
private onAfterModelCall;
|
|
87
92
|
private beforeToolCall;
|
|
88
|
-
/**
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
+
/**
|
|
94
|
+
* Report a tool execution to ArmorIQ once it has actually run, so the plan
|
|
95
|
+
* lifecycle closes: reporting each executed step lets the backend advance the
|
|
96
|
+
* plan to 'completed' when all declared steps have run, instead of leaving it
|
|
97
|
+
* stuck 'active' (shown as a perpetual "Running"). Tools we cancelled for
|
|
98
|
+
* enforcement (block / rejected / timeout / error) never ran, so they are
|
|
99
|
+
* skipped — a blocked tool must not be logged as executed. Best-effort: audit
|
|
100
|
+
* failures are logged, never allowed to break the run.
|
|
101
|
+
*/
|
|
93
102
|
private onAfterToolCall;
|
|
94
103
|
}
|
|
95
104
|
//# sourceMappingURL=strands.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strands.d.ts","sourceRoot":"","sources":["../../src/integrations/strands.ts"],"names":[],"mappings":"AAAA
|
|
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;CAC/B;AAED,qBAAa,cAAc;IACzB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,OAAO,CAAC,YAAY,CAAC,CAAiB;IACtC,OAAO,CAAC,UAAU,CAAC,CAAsB;gBAE7B,IAAI,EAAE,qBAAqB;IAYjC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAKzC,cAAc,IAAI,OAAO,CAAC,cAAc,CAAC;IAe/C,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIjC,OAAO,CACX,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAC1C,OAAO,CAAC,oBAAoB,CAAC;CAWjC;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,IAAI,CAAC,CAAS;IACtB,OAAO,CAAC,OAAO,CAAC,CAAU;IAC1B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,OAAO,CAAC,CAAiB;IACjC,OAAO,CAAC,WAAW,CAAS;gBAEhB,IAAI,EAAE;QAChB,OAAO,EAAE,cAAc,CAAC;QACxB,KAAK,EAAE,gBAAgB,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,cAAc,CAAC;KACxB;IASD,kEAAkE;IAClE,SAAS,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAI3B,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAY1B,OAAO,CAAC,IAAI;IASZ,OAAO,CAAC,aAAa;YAYP,WAAW;IAMzB,8EAA8E;IAC9E,MAAM,CAAC,oBAAoB,CAAC,OAAO,EAAE,GAAG,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE,CAAC;YAa/D,gBAAgB;YAWhB,cAAc;IAyD5B;;;;;;;;OAQG;YACW,eAAe;CAuB9B"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* ArmorIQ SDK — AWS Strands Agents integration (TypeScript).
|
|
4
4
|
*
|
|
5
5
|
* Mirrors the Python strands bundle. One factory per process, one plugin per
|
|
6
|
-
* (user, agent). It wires
|
|
6
|
+
* (user, agent). It wires three Strands lifecycle hooks:
|
|
7
7
|
*
|
|
8
8
|
* AfterModelCallEvent → capture the tool calls the model actually chose this
|
|
9
9
|
* turn as the intent plan and mint the ArmorIQ intent
|
|
@@ -12,6 +12,11 @@
|
|
|
12
12
|
* turn is not flagged 'held' at issuance).
|
|
13
13
|
* BeforeToolCallEvent → enforce per-user policy before each tool runs;
|
|
14
14
|
* block/hold by setting event.cancel_tool.
|
|
15
|
+
* AfterToolCallEvent → report each executed tool to ArmorIQ so the plan
|
|
16
|
+
* lifecycle closes (advances to 'completed' once all
|
|
17
|
+
* declared steps have run) instead of sitting 'active'
|
|
18
|
+
* forever. Enforcement-cancelled tools never ran, so
|
|
19
|
+
* they are not reported.
|
|
15
20
|
*
|
|
16
21
|
* Fail-closed: a tool runs only on an explicit ArmorIQ allow. A block, a hold
|
|
17
22
|
* that is not approved in time, or any enforcement error cancels the tool. On
|
|
@@ -223,14 +228,19 @@ class ArmorIQStrandsPlugin {
|
|
|
223
228
|
event.cancel_tool = cancel;
|
|
224
229
|
}
|
|
225
230
|
}
|
|
226
|
-
/**
|
|
227
|
-
*
|
|
228
|
-
*
|
|
229
|
-
*
|
|
230
|
-
*
|
|
231
|
+
/**
|
|
232
|
+
* Report a tool execution to ArmorIQ once it has actually run, so the plan
|
|
233
|
+
* lifecycle closes: reporting each executed step lets the backend advance the
|
|
234
|
+
* plan to 'completed' when all declared steps have run, instead of leaving it
|
|
235
|
+
* stuck 'active' (shown as a perpetual "Running"). Tools we cancelled for
|
|
236
|
+
* enforcement (block / rejected / timeout / error) never ran, so they are
|
|
237
|
+
* skipped — a blocked tool must not be logged as executed. Best-effort: audit
|
|
238
|
+
* failures are logged, never allowed to break the run.
|
|
239
|
+
*/
|
|
231
240
|
async onAfterToolCall(event) {
|
|
232
|
-
|
|
233
|
-
|
|
241
|
+
const cancelled = event?.cancelMessage ?? event?.cancel_message ?? event?.cancel;
|
|
242
|
+
if (cancelled)
|
|
243
|
+
return; // enforcement-cancelled: it never executed
|
|
234
244
|
if (!this.session || !this.planStarted)
|
|
235
245
|
return;
|
|
236
246
|
const toolUse = event?.toolUse ?? event?.tool_use ?? {};
|
|
@@ -239,11 +249,12 @@ class ArmorIQStrandsPlugin {
|
|
|
239
249
|
return;
|
|
240
250
|
const args = toolUse.input ?? {};
|
|
241
251
|
const exc = event?.exception;
|
|
242
|
-
const
|
|
252
|
+
const status = exc ? 'error' : 'success';
|
|
253
|
+
const errMsg = exc ? (exc?.message ?? String(exc)) : undefined;
|
|
243
254
|
const result = exc ? errMsg : event?.result;
|
|
244
255
|
try {
|
|
245
256
|
await this.session.report(toolName, args, result, {
|
|
246
|
-
status
|
|
257
|
+
status,
|
|
247
258
|
errorMessage: errMsg,
|
|
248
259
|
});
|
|
249
260
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strands.js","sourceRoot":"","sources":["../../src/integrations/strands.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"strands.js","sourceRoot":"","sources":["../../src/integrations/strands.ts"],"names":[],"mappings":"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"}
|