@stratusagent/tool-web 0.11.7 → 0.11.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.
- package/README.md +1 -1
- package/dist/index.d.ts +10 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +58 -2
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -32,7 +32,7 @@ tools: [web.fetch]
|
|
|
32
32
|
|
|
33
33
|
| Tool | Risk | What approval mode does |
|
|
34
34
|
| --- | --- | --- |
|
|
35
|
-
| `web.fetch` | `gated` | `interactive` asks at the terminal, `remote` asks in Slack, `headless` refuses. It reaches a service outside Stratus at an address the agent chose, which is the line 03 draws. |
|
|
35
|
+
| `web.fetch` | `gated` | `interactive` asks at the terminal, `remote` asks in Slack, `headless` refuses. It reaches a service outside Stratus at an address the agent chose, which is the line 03 draws. Judged per site: **Always allow** grants the URL's origin, not every URL, and a redirect to another site is returned as `redirectedTo` instead of followed. |
|
|
36
36
|
|
|
37
37
|
Every result is labelled `external`: the body and the page-supplied title
|
|
38
38
|
are a document somebody else wrote, and the session that read it — and
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type JsonObject, type Plugin } from '@stratusagent/core';
|
|
2
2
|
import { type EgressPolicy } from '@stratusagent/egress';
|
|
3
3
|
export { decodeEntities, extractTitle, htmlToText } from './readability.ts';
|
|
4
4
|
export interface WebPluginConfig extends JsonObject {
|
|
@@ -30,6 +30,14 @@ export declare const fetchThroughPolicy: (rawUrl: string, options?: {
|
|
|
30
30
|
maxRedirects?: number;
|
|
31
31
|
userAgent?: string;
|
|
32
32
|
signal?: AbortSignal;
|
|
33
|
+
/**
|
|
34
|
+
* Stop at a redirect to another site instead of following it, and
|
|
35
|
+
* report where it pointed as `leftSite`. `web.fetch` sets this: it is
|
|
36
|
+
* judged by the origin of the URL it was given, so following a
|
|
37
|
+
* redirect elsewhere would carry a call approved for one site to
|
|
38
|
+
* another (an open redirect on a granted site would reach anywhere).
|
|
39
|
+
*/
|
|
40
|
+
stayOnSite?: boolean;
|
|
33
41
|
}) => Promise<{
|
|
34
42
|
url: string;
|
|
35
43
|
status: number;
|
|
@@ -37,6 +45,7 @@ export declare const fetchThroughPolicy: (rawUrl: string, options?: {
|
|
|
37
45
|
body: string;
|
|
38
46
|
truncated: boolean;
|
|
39
47
|
hops: string[];
|
|
48
|
+
leftSite?: string;
|
|
40
49
|
}>;
|
|
41
50
|
/**
|
|
42
51
|
* The `web` toolset: one tool, deliberately.
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,UAAU,EAAE,KAAK,MAAM,EAA2B,MAAM,oBAAoB,CAAC;AACrG,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAO5E,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,sEAAsE;IACtE,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAmDD;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,MAAM,EACd,UAAS;IACP,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACjB,KACL,OAAO,CAAC;IACT,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAuEA,CAAC;AAgFF;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,GAAI,SAAQ,UAAe,KAAG,MAKxD,CAAC;AAEH,4DAA4D;AAC5D,eAAO,MAAM,YAAY,YARe,UAAU,KAAQ,MAQf,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { originOf } from '@stratusagent/core';
|
|
1
2
|
import { assertRequestAllowed, egressPolicyFrom, requestThroughPolicy, } from '@stratusagent/egress';
|
|
2
3
|
import { resolvePluginAgentConfig } from '@stratusagent/plugins';
|
|
3
4
|
import { extractTitle, htmlToText } from "./readability.js";
|
|
@@ -29,6 +30,23 @@ const settingsFor = (config, session) => {
|
|
|
29
30
|
};
|
|
30
31
|
};
|
|
31
32
|
const isRedirect = (status) => status >= 300 && status < 400;
|
|
33
|
+
/**
|
|
34
|
+
* Whether a hop stays on the site a call was judged on: the same origin, or
|
|
35
|
+
* the same host moved from `http:` to `https:` on default ports. The upgrade
|
|
36
|
+
* is allowed because it is what nearly every `http://` URL answers with, and
|
|
37
|
+
* it reaches the same host over a strictly safer channel. Nothing else is:
|
|
38
|
+
* `example.com` to `www.example.com` is another origin, and so is a
|
|
39
|
+
* downgrade, because a grant names an origin and means exactly that one.
|
|
40
|
+
*/
|
|
41
|
+
const staysOnSite = (judged, next) => {
|
|
42
|
+
if (originOf(judged) === originOf(next)) {
|
|
43
|
+
return true;
|
|
44
|
+
}
|
|
45
|
+
const from = new URL(judged);
|
|
46
|
+
const to = new URL(next);
|
|
47
|
+
return from.protocol === 'http:' && to.protocol === 'https:'
|
|
48
|
+
&& from.hostname === to.hostname && from.port === '' && to.port === '';
|
|
49
|
+
};
|
|
32
50
|
const contentTypeOf = (headers) => String(headers['content-type'] ?? '').toLowerCase();
|
|
33
51
|
/**
|
|
34
52
|
* Fetch a URL, following redirects **one validated hop at a time**.
|
|
@@ -80,8 +98,21 @@ export const fetchThroughPolicy = async (rawUrl, options = {}) => {
|
|
|
80
98
|
if (isRedirect(response.status) && typeof location === 'string' && location.length > 0) {
|
|
81
99
|
// Resolved against the current URL, then checked from scratch — a
|
|
82
100
|
// relative redirect is still a new destination.
|
|
83
|
-
|
|
84
|
-
|
|
101
|
+
// The address policy first: a hop it refuses is refused with its own
|
|
102
|
+
// reason, whether or not the hop also leaves the site.
|
|
103
|
+
const next = assertRequestAllowed(new URL(location, current).href, options.policy ?? {}).href;
|
|
104
|
+
if (options.stayOnSite === true && !staysOnSite(hops[0] ?? current, next)) {
|
|
105
|
+
return {
|
|
106
|
+
url: current,
|
|
107
|
+
status: response.status,
|
|
108
|
+
contentType: contentTypeOf(response.headers),
|
|
109
|
+
body: '',
|
|
110
|
+
truncated: false,
|
|
111
|
+
hops,
|
|
112
|
+
leftSite: next,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
current = next;
|
|
85
116
|
continue;
|
|
86
117
|
}
|
|
87
118
|
return {
|
|
@@ -114,6 +145,16 @@ const createFetchTool = (config) => ({
|
|
|
114
145
|
},
|
|
115
146
|
required: ['url'],
|
|
116
147
|
},
|
|
148
|
+
/**
|
|
149
|
+
* Judged by the site it is pointed at, so "always allow" can mean one
|
|
150
|
+
* site rather than every URL. Read from the input, which for this tool is
|
|
151
|
+
* the action itself rather than a claim about it: `execute` requests
|
|
152
|
+
* exactly this origin and stops at any redirect that leaves it
|
|
153
|
+
* (`stayOnSite`). See `Tool.originFor`.
|
|
154
|
+
*/
|
|
155
|
+
originFor(_session, input) {
|
|
156
|
+
return typeof input.url === 'string' ? originOf(input.url) : undefined;
|
|
157
|
+
},
|
|
117
158
|
async execute(input, session, context) {
|
|
118
159
|
const url = typeof input.url === 'string' ? input.url : '';
|
|
119
160
|
if (!url) {
|
|
@@ -126,8 +167,23 @@ const createFetchTool = (config) => ({
|
|
|
126
167
|
timeoutMs: settings.timeoutMs,
|
|
127
168
|
maxRedirects: settings.maxRedirects,
|
|
128
169
|
userAgent: settings.userAgent,
|
|
170
|
+
stayOnSite: true,
|
|
129
171
|
...(context?.signal ? { signal: context.signal } : {}),
|
|
130
172
|
});
|
|
173
|
+
if (response.leftSite !== undefined) {
|
|
174
|
+
// Not an error: the request worked, and the agent decides whether
|
|
175
|
+
// the other site is worth a call of its own, which is judged (and
|
|
176
|
+
// asked about, when it needs to be) like any other.
|
|
177
|
+
return {
|
|
178
|
+
url: response.url,
|
|
179
|
+
status: response.status,
|
|
180
|
+
redirectedTo: response.leftSite,
|
|
181
|
+
...(response.hops.length > 1 ? { redirects: response.hops } : {}),
|
|
182
|
+
text: `Redirected to ${response.leftSite}, a different site from the one this call was approved for, `
|
|
183
|
+
+ 'so it was not followed. Call web.fetch on that URL to fetch it.',
|
|
184
|
+
truncated: false,
|
|
185
|
+
};
|
|
186
|
+
}
|
|
131
187
|
const html = response.contentType.includes('html');
|
|
132
188
|
const text = input.raw === true || !html ? response.body : htmlToText(response.body);
|
|
133
189
|
const title = html ? extractTitle(response.body) : undefined;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAyD,MAAM,oBAAoB,CAAC;AACrG,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,GAErB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE5E,MAAM,iBAAiB,GAAG,OAAO,CAAC;AAClC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAClC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAChC,MAAM,kBAAkB,GAAG,0DAA0D,CAAC;AAetF,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAE,QAAgB,EAAU,EAAE,CAC5D,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AAEtF;;;;;GAKG;AACH,MAAM,QAAQ,GAAG,CAAC,SAAkB,EAAE,GAAW,EAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AAEtG,MAAM,WAAW,GAAG,CAAC,MAAkB,EAAE,OAAgB,EAAE,EAAE;IAC3D,yEAAyE;IACzE,qEAAqE;IACrE,kCAAkC;IAClC,MAAM,QAAQ,GAAG,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpE,MAAM,MAAM,GAAiB,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACxD,OAAO;QACL,MAAM;QACN,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;QACxD,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;QAC3D,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,qBAAqB,CAAC;QACpE,SAAS,EAAE,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB;KAC5F,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,MAAc,EAAW,EAAE,CAAC,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,CAAC;AAE9E;;;;;;;GAOG;AACH,MAAM,WAAW,GAAG,CAAC,MAAc,EAAE,IAAY,EAAW,EAAE;IAC5D,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,EAAE,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IACzB,OAAO,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,EAAE,CAAC,QAAQ,KAAK,QAAQ;WACvD,IAAI,CAAC,QAAQ,KAAK,EAAE,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;AAC3E,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,OAAgC,EAAU,EAAE,CACjE,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AAEtD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,MAAc,EACd,UAeI,EAAE,EASL,EAAE;IACH,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,qBAAqB,CAAC;IACnE,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,OAAO,GAAG,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;IACtE,0EAA0E;IAC1E,uEAAuE;IACvE,wEAAwE;IACxE,wEAAwE;IACxE,yEAAyE;IACzE,YAAY;IACZ,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IAC9F,MAAM,QAAQ,GAAG,GAAU,EAAE,CAC3B,IAAI,KAAK,CAAC,mBAAmB,OAAO,CAAC,SAAS,aAAa,IAAI,CAAC,MAAM,GAAG,CAAC,4BAA4B,MAAM,EAAE,CAAC,CAAC;IAElH,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,YAAY,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,MAAM,WAAW,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/E,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;YAClD,MAAM,QAAQ,EAAE,CAAC;QACnB,CAAC;QACD,IAAI,QAAQ,CAAC;QACb,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE;gBAC7C,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrD,OAAO,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,SAAS,IAAI,kBAAkB,EAAE,MAAM,EAAE,sCAAsC,EAAE;gBAClH,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACzE,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;gBAChE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACtD,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,mEAAmE;YACnE,uCAAuC;YACvC,IAAI,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;gBACxE,MAAM,QAAQ,EAAE,CAAC;YACnB,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC3C,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvF,kEAAkE;YAClE,gDAAgD;YAChD,qEAAqE;YACrE,uDAAuD;YACvD,MAAM,IAAI,GAAG,oBAAoB,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;YAC9F,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC1E,OAAO;oBACL,GAAG,EAAE,OAAO;oBACZ,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,WAAW,EAAE,aAAa,CAAC,QAAQ,CAAC,OAAkC,CAAC;oBACvE,IAAI,EAAE,EAAE;oBACR,SAAS,EAAE,KAAK;oBAChB,IAAI;oBACJ,QAAQ,EAAE,IAAI;iBACf,CAAC;YACJ,CAAC;YACD,OAAO,GAAG,IAAI,CAAC;YACf,SAAS;QACX,CAAC;QAED,OAAO;YACL,GAAG,EAAE,OAAO;YACZ,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,WAAW,EAAE,aAAa,CAAC,QAAQ,CAAC,OAAkC,CAAC;YACvE,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,IAAI;SACL,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,uBAAuB,YAAY,iBAAiB,MAAM,EAAE,CAAC,CAAC;AAChF,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,MAAkB,EAAQ,EAAE,CAAC,CAAC;IACrD,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,yEAAyE;IACtF,sEAAsE;IACtE,yEAAyE;IACzE,IAAI,EAAE,OAAO;IACb,qEAAqE;IACrE,yEAAyE;IACzE,qDAAqD;IACrD,WAAW,EAAE,UAAU;IACvB,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC5B,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,uDAAuD,EAAE;SAC/F;QACD,QAAQ,EAAE,CAAC,KAAK,CAAC;KAClB;IACD;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,EAAE,KAAK;QACvB,OAAO,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO;QACnC,MAAM,GAAG,GAAG,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE;YAC7C,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC;YACrD,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,UAAU,EAAE,IAAI;YAChB,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvD,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACpC,kEAAkE;YAClE,kEAAkE;YAClE,oDAAoD;YACpD,OAAO;gBACL,GAAG,EAAE,QAAQ,CAAC,GAAG;gBACjB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,YAAY,EAAE,QAAQ,CAAC,QAAQ;gBAC/B,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjE,IAAI,EAAE,iBAAiB,QAAQ,CAAC,QAAQ,8DAA8D;sBAClG,iEAAiE;gBACrE,SAAS,EAAE,KAAK;aACjB,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrF,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE7D,OAAO;YACL,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,sEAAsE;YACtE,iEAAiE;YACjE,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,IAAI;YACJ,SAAS,EAAE,QAAQ,CAAC,SAAS;SAC9B,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,SAAqB,EAAE,EAAU,EAAE,CAAC,CAAC;IACnE,IAAI,EAAE,wBAAwB;IAC9B,KAAK,CAAC,OAAO;QACX,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,CAAC;CACF,CAAC,CAAC;AAEH,4DAA4D;AAC5D,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stratusagent/tool-web",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.9",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
"node": ">=22.13 <23 || >=23.4"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@stratusagent/core": "0.11.
|
|
22
|
-
"@stratusagent/egress": "0.11.
|
|
23
|
-
"@stratusagent/plugins": "0.11.
|
|
21
|
+
"@stratusagent/core": "0.11.9",
|
|
22
|
+
"@stratusagent/egress": "0.11.9",
|
|
23
|
+
"@stratusagent/plugins": "0.11.9"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@types/node": "^24.6.0",
|