@stratusagent/agents 0.13.7 → 0.14.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.
@@ -1,4 +1,4 @@
1
- import { sessionWriteTrust } from '@stratusagent/core';
1
+ import { createImageCollector, sessionWriteTrust } from '@stratusagent/core';
2
2
  import { canonicalDestination, parseDestinationInput, DESTINATION_PARAMETER, } from "../schedules.js";
3
3
  export const MESSAGE_SEND_TOOL_NAME = 'message.send';
4
4
  /**
@@ -102,6 +102,15 @@ export const MESSAGE_READ_TEXT_BUDGET = 40_000;
102
102
  */
103
103
  export const MESSAGE_READ_BOOKMARK_BUDGET = 16_000;
104
104
  const TRUNCATED_MARK = ' [... the rest of this message is not shown]';
105
+ /**
106
+ * The most images one read shows the model. They are kept in the session
107
+ * and replayed on later turns inside the replay window, so a read of a
108
+ * busy channel must not fill that window with screenshots it was not
109
+ * asked about; the agent reads a narrower window to see more.
110
+ */
111
+ export const MESSAGE_READ_MAX_IMAGES = 5;
112
+ /** The most decoded image bytes one read shows the model, together. */
113
+ export const MESSAGE_READ_IMAGE_BYTES = 10 * 1024 * 1024;
105
114
  const optionalId = (input, key, tool = MESSAGE_READ_TOOL_NAME) => {
106
115
  const value = input[key];
107
116
  if (value === undefined || value === null) {
@@ -116,6 +125,82 @@ const optionalId = (input, key, tool = MESSAGE_READ_TOOL_NAME) => {
116
125
  export const directMessageReadRefusal = (destination) => `message.read cannot read ${destination}: it is a direct message this conversation is not in, and a direct message is read only from inside it. `
117
126
  + 'This is not a permission, so approval cannot unlock it; do not ask for one or try again. '
118
127
  + 'Read a channel instead, or ask the person to paste what you need.';
128
+ const errorText = (error) => (error instanceof Error ? error.message : String(error));
129
+ /**
130
+ * The longest image name a read repeats. A name is whatever the channel
131
+ * says, and it is said again in `shownImages` and in every note, so it is
132
+ * bounded like any other text the read carries.
133
+ */
134
+ const IMAGE_NAME_MAX = 200;
135
+ const imageNameOf = (image, index) => {
136
+ const name = image.name ?? `image ${index + 1}`;
137
+ return name.length <= IMAGE_NAME_MAX ? name : `${name.slice(0, IMAGE_NAME_MAX)}…`;
138
+ };
139
+ /**
140
+ * Decides, message by message in the order they are listed, which of their
141
+ * images a read shows, before any message is measured, so the text sent is
142
+ * the text measured: the names shown and every note about the rest are in
143
+ * it. Held to the read's own cap whatever the channel returned, since the
144
+ * images stay in the session and replay on later turns. Once one does not
145
+ * fit, none after it is shown either, so what the agent sees is one
146
+ * unbroken stretch of the read. Each image is put through core's own image
147
+ * check, the one the runner's `attachImage` applies, so an image that
148
+ * would be refused is said here rather than after the budget is spent.
149
+ */
150
+ const createImagePlan = () => {
151
+ const check = createImageCollector();
152
+ let count = 0;
153
+ let bytes = 0;
154
+ let full;
155
+ return (images) => {
156
+ const shown = [];
157
+ const notes = [];
158
+ images.forEach((image, index) => {
159
+ const name = imageNameOf(image, index);
160
+ const size = Buffer.byteLength(image.data, 'base64');
161
+ if (full === undefined && count >= MESSAGE_READ_MAX_IMAGES) {
162
+ full = `past this read's cap of ${MESSAGE_READ_MAX_IMAGES} images`;
163
+ }
164
+ else if (full === undefined && bytes + size > MESSAGE_READ_IMAGE_BYTES) {
165
+ full = `past this read's cap of ${MESSAGE_READ_IMAGE_BYTES / (1024 * 1024)} MB of images`;
166
+ }
167
+ if (full !== undefined) {
168
+ notes.push(`${name} is not shown: ${full}.`);
169
+ return;
170
+ }
171
+ try {
172
+ check.attach(image);
173
+ }
174
+ catch (error) {
175
+ notes.push(`${name} is not shown: ${errorText(error)}`);
176
+ return;
177
+ }
178
+ count += 1;
179
+ bytes += size;
180
+ shown.push({ image, name });
181
+ });
182
+ return { shown, notes };
183
+ };
184
+ };
185
+ /**
186
+ * The most a cut message's image notes may take: a message too big for
187
+ * the whole budget keeps its notes only up to this, and counts the rest,
188
+ * as it does its file list.
189
+ */
190
+ const CUT_IMAGE_NOTES_BUDGET = 4_000;
191
+ const boundedNotes = (notes) => {
192
+ const kept = [];
193
+ let size = 2;
194
+ for (const note of notes) {
195
+ const length = JSON.stringify(note).length + 1;
196
+ if (size + length > CUT_IMAGE_NOTES_BUDGET) {
197
+ break;
198
+ }
199
+ kept.push(note);
200
+ size += length;
201
+ }
202
+ return kept.length === notes.length ? [...notes] : [...kept, `${notes.length - kept.length} more notes about images, not listed`];
203
+ };
119
204
  export const createMessageReadTool = (read, options = {}) => ({
120
205
  name: MESSAGE_READ_TOOL_NAME,
121
206
  description: 'Read recent messages in a channel your app is a member of, or one thread in it. '
@@ -126,7 +211,10 @@ export const createMessageReadTool = (read, options = {}) => ({
126
211
  + 'and a thread_ts in the link is the thread to read. '
127
212
  + 'When more is true, page on with before (top level) or after (thread) set to the last id returned. '
128
213
  + 'A top-level read without before or after also returns the channel\'s bookmarks, when it has any; '
129
- + 'if bookmarksOmitted is set, say that many were left out rather than guess them.',
214
+ + 'if bookmarksOmitted is set, say that many were left out rather than guess them. '
215
+ + `Images on the messages read are shown to you after this result, at most ${MESSAGE_READ_MAX_IMAGES} per read, `
216
+ + 'in the order the messages list them in shownImages; imageNotes says why any other image on a message was not shown, '
217
+ + 'so never describe an image you were not shown. To see images past the cap, read fewer messages.',
130
218
  risk: 'gated',
131
219
  outputTrust: 'external',
132
220
  parameters: {
@@ -155,11 +243,14 @@ export const createMessageReadTool = (read, options = {}) => ({
155
243
  },
156
244
  }
157
245
  : {}),
158
- async execute(input, session) {
246
+ async execute(input, session, context) {
159
247
  const source = parseDestinationInput(input.source);
160
248
  if (!source) {
161
249
  throw new Error('message.read requires "source" as { channel, to } with non-empty strings.');
162
250
  }
251
+ // Images are asked for only when this host can show the model one; a
252
+ // host that cannot gets names, as every read did before images.
253
+ const attachImage = context?.attachImage;
163
254
  const thread = optionalId(input, 'thread');
164
255
  const after = optionalId(input, 'after');
165
256
  const before = optionalId(input, 'before');
@@ -174,6 +265,7 @@ export const createMessageReadTool = (read, options = {}) => ({
174
265
  ...(thread !== undefined ? { thread } : {}),
175
266
  ...(after !== undefined ? { after } : {}),
176
267
  ...(before !== undefined ? { before } : {}),
268
+ ...(attachImage !== undefined ? { images: { count: MESSAGE_READ_MAX_IMAGES, bytes: MESSAGE_READ_IMAGE_BYTES } } : {}),
177
269
  });
178
270
  // Bookmarks first, from their own share, in the channel's order.
179
271
  const bookmarks = [];
@@ -197,52 +289,122 @@ export const createMessageReadTool = (read, options = {}) => ({
197
289
  : 0;
198
290
  const bookmarksOmitted = upstreamOmitted + (result.bookmarks?.length ?? 0) - bookmarks.length;
199
291
  const messages = [];
292
+ // Each kept message's images, held beside it rather than in it: the
293
+ // budget is text, and the pixels never join the result's text.
294
+ const pending = [];
295
+ const plan = attachImage !== undefined ? createImagePlan() : undefined;
200
296
  let more = result.more;
201
- for (const message of result.messages) {
297
+ for (const read of result.messages) {
298
+ const { images, imageNotes, ...rest } = read;
299
+ const decided = plan !== undefined && images !== undefined && images.length > 0 ? plan(images) : undefined;
300
+ const notes = [...(imageNotes ?? []), ...(decided?.notes ?? [])];
301
+ // Measured as it is sent: the names of the images it shows, and the
302
+ // notes on the rest, are text; their bytes are not.
303
+ const message = {
304
+ ...rest,
305
+ ...(decided !== undefined && decided.shown.length > 0 ? { shownImages: decided.shown.map(({ name }) => name) } : {}),
306
+ ...(notes.length > 0 ? { imageNotes: notes } : {}),
307
+ };
202
308
  const size = JSON.stringify(message).length;
203
309
  if (used + size <= MESSAGE_READ_TEXT_BUDGET) {
204
- messages.push({ ...message });
310
+ messages.push(message);
311
+ if (decided !== undefined && decided.shown.length > 0) {
312
+ pending.push({ message, shown: decided.shown });
313
+ }
205
314
  used += size;
206
315
  continue;
207
316
  }
208
317
  // One message bigger than the whole budget is cut rather than
209
318
  // dropped, or the read could never get past it. Its file list goes
210
- // too, said by count, since a list can be as long as any text.
211
- // One that would fit on its own, crowded out only by the bookmarks
212
- // ahead of it, loses about what they took rather than half.
319
+ // too, said by count, and its image notes are kept only up to their
320
+ // own share, since either can be as long as any text. One that
321
+ // would fit on its own, crowded out only by the bookmarks ahead of
322
+ // it, loses about what they took rather than half.
213
323
  if (messages.length === 0) {
214
- const { files, ...rest } = message;
324
+ const { files, imageNotes: allNotes, ...unlisted } = message;
325
+ const kept = allNotes !== undefined ? boundedNotes(allNotes) : undefined;
215
326
  const cutTo = (keep) => ({
216
- ...rest,
327
+ ...unlisted,
217
328
  text: message.text.slice(0, Math.max(0, keep)) + TRUNCATED_MARK,
218
329
  ...(files && files.length > 0 ? { files: [`${files.length} files, not listed`] } : {}),
330
+ ...(kept !== undefined ? { imageNotes: kept } : {}),
219
331
  });
220
- let cut = cutTo(MESSAGE_READ_TEXT_BUDGET / 2);
221
- if (used > 0 && size <= MESSAGE_READ_TEXT_BUDGET) {
222
- // The longest cut that fits, measured as serialized, since
223
- // escapes make the text longer and may sit anywhere in it.
224
- const room = MESSAGE_READ_TEXT_BUDGET - used;
225
- const fits = (keep) => JSON.stringify(cutTo(keep)).length <= room;
226
- if (fits(0)) {
227
- let low = 0;
228
- let high = message.text.length;
229
- while (low < high) {
230
- const middle = Math.ceil((low + high) / 2);
231
- if (fits(middle)) {
232
- low = middle;
233
- }
234
- else {
235
- high = middle - 1;
236
- }
332
+ // The longest cut that fits, measured as serialized, since escapes
333
+ // make the text longer and may sit anywhere in it: up to the whole
334
+ // text for one only the bookmarks crowded out, otherwise half.
335
+ const room = MESSAGE_READ_TEXT_BUDGET - used;
336
+ const fits = (keep) => JSON.stringify(cutTo(keep)).length <= room;
337
+ const ceiling = used > 0 && size <= MESSAGE_READ_TEXT_BUDGET ? message.text.length : MESSAGE_READ_TEXT_BUDGET / 2;
338
+ let low = 0;
339
+ if (fits(ceiling)) {
340
+ low = ceiling;
341
+ }
342
+ else if (fits(0)) {
343
+ let high = ceiling;
344
+ while (low < high) {
345
+ const middle = Math.ceil((low + high) / 2);
346
+ if (fits(middle)) {
347
+ low = middle;
348
+ }
349
+ else {
350
+ high = middle - 1;
237
351
  }
238
- cut = cutTo(low);
239
352
  }
240
353
  }
354
+ const cut = cutTo(low);
241
355
  messages.push(cut);
356
+ if (decided !== undefined && decided.shown.length > 0) {
357
+ pending.push({ message: cut, shown: decided.shown });
358
+ }
359
+ used += JSON.stringify(cut).length;
242
360
  }
243
361
  more = true;
244
362
  break;
245
363
  }
364
+ // Shown only now, once every message that carries one is kept. Core's
365
+ // own check already passed each of them; a host whose attachImage has
366
+ // rules of its own can still refuse one, and then the image leaves
367
+ // shownImages, and why is said only where it fits what is left of the
368
+ // budget.
369
+ if (attachImage !== undefined) {
370
+ for (const { message, shown } of pending) {
371
+ const names = [];
372
+ const refusals = [];
373
+ for (const { image, name } of shown) {
374
+ try {
375
+ attachImage(image);
376
+ names.push(name);
377
+ }
378
+ catch (error) {
379
+ refusals.push(`${name} is not shown: ${errorText(error)}`);
380
+ }
381
+ }
382
+ if (refusals.length === 0) {
383
+ continue;
384
+ }
385
+ let before = JSON.stringify(message).length;
386
+ if (names.length > 0) {
387
+ message.shownImages = names;
388
+ }
389
+ else {
390
+ delete message.shownImages;
391
+ }
392
+ used += JSON.stringify(message).length - before;
393
+ for (const refusal of refusals) {
394
+ before = JSON.stringify(message).length;
395
+ message.imageNotes = [...(message.imageNotes ?? []), refusal];
396
+ const grown = JSON.stringify(message).length - before;
397
+ if (used + grown > MESSAGE_READ_TEXT_BUDGET) {
398
+ message.imageNotes = message.imageNotes.slice(0, -1);
399
+ if (message.imageNotes.length === 0) {
400
+ delete message.imageNotes;
401
+ }
402
+ break;
403
+ }
404
+ used += grown;
405
+ }
406
+ }
407
+ }
246
408
  return {
247
409
  source: canonicalDestination(source),
248
410
  ...(thread !== undefined ? { thread } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/tools/message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/tools/message.ts"],"names":[],"mappings":"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"}
@@ -2,14 +2,16 @@ import { type Tool } from '@stratusagent/core';
2
2
  import { type SchedulerHandle } from '../schedules.ts';
3
3
  export declare const SCHEDULE_EVERY_TOOL_NAME = "schedule.every";
4
4
  export declare const SCHEDULE_AT_TOOL_NAME = "schedule.at";
5
+ export declare const SCHEDULE_ON_TOOL_NAME = "schedule.on";
5
6
  export declare const SCHEDULE_LIST_TOOL_NAME = "schedule.list";
6
7
  export declare const SCHEDULE_CANCEL_TOOL_NAME = "schedule.cancel";
7
8
  /**
8
- * The four `schedule.*` tools over one handle.
9
+ * The five `schedule.*` tools over one handle.
9
10
  *
10
11
  * Risk is split per tool, not per toolset: creating a schedule spends
11
12
  * future money unattended and (with a destination) mints a standing
12
- * permission to speak, so `schedule.every` and `schedule.at` are `gated` —
13
+ * permission to speak, so `schedule.every`, `schedule.at` and `schedule.on`
14
+ * are `gated` —
13
15
  * the approval of THAT call is the human decision the whole step leans on.
14
16
  * `schedule.list` is a read, and `schedule.cancel` only ever narrows
15
17
  * authority — it is the reversal the risk note in the spec names — so both
@@ -1 +1 @@
1
- {"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../../src/tools/schedule.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,IAAI,EACV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAIL,KAAK,eAAe,EAMrB,MAAM,iBAAiB,CAAC;AAsBzB,eAAO,MAAM,wBAAwB,mBAAmB,CAAC;AAEzD,eAAO,MAAM,qBAAqB,gBAAgB,CAAC;AAEnD,eAAO,MAAM,uBAAuB,kBAAkB,CAAC;AAEvD,eAAO,MAAM,yBAAyB,oBAAoB,CAAC;AAE3D;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,GAAI,WAAW,eAAe,KAAG,IAAI,EAgJpE,CAAC"}
1
+ {"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../../src/tools/schedule.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,IAAI,EACV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAIL,KAAK,eAAe,EAMrB,MAAM,iBAAiB,CAAC;AAuBzB,eAAO,MAAM,wBAAwB,mBAAmB,CAAC;AAEzD,eAAO,MAAM,qBAAqB,gBAAgB,CAAC;AAEnD,eAAO,MAAM,qBAAqB,gBAAgB,CAAC;AAKnD,eAAO,MAAM,uBAAuB,kBAAkB,CAAC;AAEvD,eAAO,MAAM,yBAAyB,oBAAoB,CAAC;AAE3D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,mBAAmB,GAAI,WAAW,eAAe,KAAG,IAAI,EAuMpE,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { conversationContextFrom, isTaintedTrust, leastTrusted, sessionWriteTrust, } from '@stratusagent/core';
2
2
  import { parseInterval, parseCronExpression, parseScheduleDestinationInput, SCHEDULE_DESTINATION_PARAMETER, describeSchedule, sameConversation, } from "../schedules.js";
3
+ import { DEFAULT_EVENT_MAX_PER_HOUR, parseEventFilter, parseQuietHours } from "../events.js";
3
4
  const TOP_LEVEL_PARAMETER = {
4
5
  type: 'boolean',
5
6
  description: 'Report at the top of the destination channel even when you set this from a thread in it. Default false: a schedule set from a thread reports into that thread.',
@@ -20,14 +21,18 @@ const originThreadFor = (session, destination) => {
20
21
  };
21
22
  export const SCHEDULE_EVERY_TOOL_NAME = 'schedule.every';
22
23
  export const SCHEDULE_AT_TOOL_NAME = 'schedule.at';
24
+ export const SCHEDULE_ON_TOOL_NAME = 'schedule.on';
25
+ /** The most turns an hour an event trigger may ask for: one every 30 seconds. */
26
+ const MAX_EVENT_TRIGGER_PER_HOUR = 120;
23
27
  export const SCHEDULE_LIST_TOOL_NAME = 'schedule.list';
24
28
  export const SCHEDULE_CANCEL_TOOL_NAME = 'schedule.cancel';
25
29
  /**
26
- * The four `schedule.*` tools over one handle.
30
+ * The five `schedule.*` tools over one handle.
27
31
  *
28
32
  * Risk is split per tool, not per toolset: creating a schedule spends
29
33
  * future money unattended and (with a destination) mints a standing
30
- * permission to speak, so `schedule.every` and `schedule.at` are `gated` —
34
+ * permission to speak, so `schedule.every`, `schedule.at` and `schedule.on`
35
+ * are `gated` —
31
36
  * the approval of THAT call is the human decision the whole step leans on.
32
37
  * `schedule.list` is a read, and `schedule.cancel` only ever narrows
33
38
  * authority — it is the reversal the risk note in the spec names — so both
@@ -124,6 +129,61 @@ export const createScheduleTools = (scheduler) => {
124
129
  return create(session, { kind: 'at', at: parsed.toISOString() }, input);
125
130
  },
126
131
  },
132
+ {
133
+ name: SCHEDULE_ON_TOOL_NAME,
134
+ description: 'Set an event trigger for yourself: when a delivery from an operator-configured event source (like "github") passes your filter, run your prompt with the event appended. '
135
+ + 'The filter uses the CloudEvents dialects exact, prefix, suffix, all, any and not over attributes such as type, subject, actor and author; a key like "data.review.body" matches a string inside the event\'s data. '
136
+ + 'The event text is from outside, so the turn runs labeled external. Needs human approval once; firings then run unattended.',
137
+ risk: 'gated',
138
+ parameters: {
139
+ type: 'object',
140
+ properties: {
141
+ source: { type: 'string', description: 'The event source id the operator configured, e.g. "github".' },
142
+ filter: {
143
+ type: 'object',
144
+ description: 'One filter expression with exactly one dialect key, e.g. { "all": [ { "exact": { "actor": "chatgpt-codex-connector[bot]" } }, { "prefix": { "type": "com.github.pull_request_review" } } ] }.',
145
+ },
146
+ prompt: { type: 'string', description: 'The instruction each firing runs, phrased to stand alone. The event follows it.' },
147
+ quietHours: {
148
+ type: 'object',
149
+ description: 'Optional daily window in which firings are held and then sent together, e.g. { "from": "22:00", "to": "07:00", "timeZone": "America/New_York" }.',
150
+ properties: {
151
+ from: { type: 'string', description: 'Start, HH:MM on a 24-hour clock.' },
152
+ to: { type: 'string', description: 'End, HH:MM on a 24-hour clock.' },
153
+ timeZone: { type: 'string', description: 'IANA time zone, e.g. "America/New_York".' },
154
+ },
155
+ required: ['from', 'to', 'timeZone'],
156
+ },
157
+ maxPerHour: { type: 'number', description: `Most turns an hour this trigger may start (default ${DEFAULT_EVENT_MAX_PER_HOUR}, at most ${MAX_EVENT_TRIGGER_PER_HOUR}).` },
158
+ destination: SCHEDULE_DESTINATION_PARAMETER,
159
+ topLevel: TOP_LEVEL_PARAMETER,
160
+ },
161
+ required: ['source', 'filter', 'prompt'],
162
+ },
163
+ async execute(input, session) {
164
+ const source = typeof input.source === 'string' ? input.source.trim() : '';
165
+ if (!source) {
166
+ throw new Error('schedule.on needs a "source": the id of an event source the operator configured, like "github".');
167
+ }
168
+ if (input.filter === undefined) {
169
+ throw new Error('schedule.on needs a "filter": one expression such as { "exact": { "type": "com.github.pull_request_review.submitted" } }.');
170
+ }
171
+ const filter = parseEventFilter(input.filter);
172
+ const quietHours = input.quietHours !== undefined ? parseQuietHours(input.quietHours) : undefined;
173
+ const maxPerHour = input.maxPerHour;
174
+ if (maxPerHour !== undefined
175
+ && (typeof maxPerHour !== 'number' || !Number.isInteger(maxPerHour) || maxPerHour < 1 || maxPerHour > MAX_EVENT_TRIGGER_PER_HOUR)) {
176
+ throw new Error(`"maxPerHour" must be a whole number from 1 to ${MAX_EVENT_TRIGGER_PER_HOUR}.`);
177
+ }
178
+ return create(session, {
179
+ kind: 'event',
180
+ source,
181
+ filter,
182
+ ...(quietHours !== undefined ? { quietHours } : {}),
183
+ ...(maxPerHour !== undefined ? { maxPerHour: maxPerHour } : {}),
184
+ }, input);
185
+ },
186
+ },
127
187
  {
128
188
  name: SCHEDULE_LIST_TOOL_NAME,
129
189
  description: 'List your own schedules: cadence, prompt, destination, and when each fires next.',
@@ -1 +1 @@
1
- {"version":3,"file":"schedule.js","sourceRoot":"","sources":["../../src/tools/schedule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schedule.js","sourceRoot":"","sources":["../../src/tools/schedule.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stratusagent/agents",
3
- "version": "0.13.7",
3
+ "version": "0.14.1",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -18,7 +18,7 @@
18
18
  "node": ">=22.13 <23 || >=23.4"
19
19
  },
20
20
  "dependencies": {
21
- "@stratusagent/core": "0.13.7"
21
+ "@stratusagent/core": "0.14.1"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@types/node": "^24.6.0",