agent-swarm-kit 1.0.23 → 1.0.25

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/build/index.cjs CHANGED
@@ -258,6 +258,103 @@ var AgentSchemaService = /** @class */ (function () {
258
258
  return AgentSchemaService;
259
259
  }());
260
260
 
261
+ /**
262
+ * Validates that the given output string is not empty.
263
+ *
264
+ * @param {string} output - The output string to validate.
265
+ * @returns {Promise<string | null>} - Returns a promise that resolves to "Empty output" if the string is empty, otherwise null.
266
+ */
267
+ var validateNoEmptyResult = function (output) { return __awaiter(void 0, void 0, void 0, function () {
268
+ return __generator(this, function (_a) {
269
+ if (!output.trim()) {
270
+ return [2 /*return*/, "Empty output"];
271
+ }
272
+ return [2 /*return*/, null];
273
+ });
274
+ }); };
275
+
276
+ var toolParser = new xml2js.Parser();
277
+ /**
278
+ * Validates that the given output string does not contain any tool call entries or disallowed symbols.
279
+ * @see https://github.com/ollama/ollama/issues/8287
280
+ *
281
+ * @param {string} output - The output string to validate.
282
+ * @returns {Promise<string | null>} - A promise that resolves to a string indicating a tool call in the text output, or null if no tool call is found.
283
+ * @throws {Error} - If an error occurs during XML parsing.
284
+ */
285
+ var validateNoToolCall = functoolsKit.trycatch(function (output) { return __awaiter(void 0, void 0, void 0, function () {
286
+ var _a, _b, symbol, result, _c, _d, tag;
287
+ var e_1, _e, e_2, _f;
288
+ return __generator(this, function (_g) {
289
+ switch (_g.label) {
290
+ case 0:
291
+ try {
292
+ for (_a = __values(GLOBAL_CONFIG.CC_AGENT_DISALLOWED_SYMBOLS), _b = _a.next(); !_b.done; _b = _a.next()) {
293
+ symbol = _b.value;
294
+ if (output.includes(symbol)) {
295
+ return [2 /*return*/, "Tool call in text output"];
296
+ }
297
+ }
298
+ }
299
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
300
+ finally {
301
+ try {
302
+ if (_b && !_b.done && (_e = _a.return)) _e.call(_a);
303
+ }
304
+ finally { if (e_1) throw e_1.error; }
305
+ }
306
+ return [4 /*yield*/, toolParser.parseStringPromise(output)];
307
+ case 1:
308
+ result = _g.sent();
309
+ try {
310
+ for (_c = __values(GLOBAL_CONFIG.CC_AGENT_DISALLOWED_TAGS), _d = _c.next(); !_d.done; _d = _c.next()) {
311
+ tag = _d.value;
312
+ if (result[tag]) {
313
+ return [2 /*return*/, "Tool call in text output"];
314
+ }
315
+ }
316
+ }
317
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
318
+ finally {
319
+ try {
320
+ if (_d && !_d.done && (_f = _c.return)) _f.call(_c);
321
+ }
322
+ finally { if (e_2) throw e_2.error; }
323
+ }
324
+ return [2 /*return*/, null];
325
+ }
326
+ });
327
+ }); }, {
328
+ defaultValue: null,
329
+ });
330
+
331
+ /**
332
+ * Validates the given output string using a series of validation functions.
333
+ *
334
+ * @param {string} output - The output string to validate.
335
+ * @returns {Promise<string | null>} - A promise that resolves to a validation error message if any validation fails, or null if all validations pass.
336
+ */
337
+ var validateDefault = function (output) { return __awaiter(void 0, void 0, void 0, function () {
338
+ var validation;
339
+ return __generator(this, function (_a) {
340
+ switch (_a.label) {
341
+ case 0:
342
+ validation = null;
343
+ return [4 /*yield*/, validateNoEmptyResult(output)];
344
+ case 1:
345
+ if (validation = _a.sent()) {
346
+ return [2 /*return*/, validation];
347
+ }
348
+ return [4 /*yield*/, validateNoToolCall(output)];
349
+ case 2:
350
+ if (validation = _a.sent()) {
351
+ return [2 /*return*/, validation];
352
+ }
353
+ return [2 /*return*/, null];
354
+ }
355
+ });
356
+ }); };
357
+
261
358
  /**
262
359
  * @description `ask for agent function` in `llama3.1:8b` to troubleshoot (need CC_OLLAMA_EMIT_TOOL_PROTOCOL to be turned off)
263
360
  */
@@ -293,6 +390,12 @@ var CC_SWARM_DEFAULT_AGENT = function (_a, _b, defaultAgent_1) { return __awaite
293
390
  }
294
391
  });
295
392
  }); };
393
+ var CC_AGENT_DEFAULT_VALIDATION = validateDefault;
394
+ var CC_AGENT_DISALLOWED_TAGS = ["tool_call", "toolcall", "tool"];
395
+ var CC_AGENT_DISALLOWED_SYMBOLS = [
396
+ "{",
397
+ "}",
398
+ ];
296
399
  var CC_KEEP_MESSAGES = 5;
297
400
  var CC_ANSWER_TIMEOUT = 120000;
298
401
  var CC_GET_AGENT_HISTORY = function () { return new functoolsKit.PubsubArrayAdapter(); };
@@ -304,6 +407,9 @@ var GLOBAL_CONFIG = {
304
407
  CC_GET_AGENT_HISTORY: CC_GET_AGENT_HISTORY,
305
408
  CC_SWARM_AGENT_CHANGED: CC_SWARM_AGENT_CHANGED,
306
409
  CC_SWARM_DEFAULT_AGENT: CC_SWARM_DEFAULT_AGENT,
410
+ CC_AGENT_DEFAULT_VALIDATION: CC_AGENT_DEFAULT_VALIDATION,
411
+ CC_AGENT_DISALLOWED_TAGS: CC_AGENT_DISALLOWED_TAGS,
412
+ CC_AGENT_DISALLOWED_SYMBOLS: CC_AGENT_DISALLOWED_SYMBOLS,
307
413
  };
308
414
  var setConfig = function (config) {
309
415
  Object.assign(GLOBAL_CONFIG, config);
@@ -657,108 +763,6 @@ var ClientAgent = /** @class */ (function () {
657
763
  return ClientAgent;
658
764
  }());
659
765
 
660
- /**
661
- * Validates that the given output string is not empty.
662
- *
663
- * @param {string} output - The output string to validate.
664
- * @returns {Promise<string | null>} - Returns a promise that resolves to "Empty output" if the string is empty, otherwise null.
665
- */
666
- var validateNoEmptyResult = function (output) { return __awaiter(void 0, void 0, void 0, function () {
667
- return __generator(this, function (_a) {
668
- if (!output.trim()) {
669
- return [2 /*return*/, "Empty output"];
670
- }
671
- return [2 /*return*/, null];
672
- });
673
- }); };
674
-
675
- var toolParser = new xml2js.Parser();
676
- var TOOL_CALL_ENTRIES = ["tool_call", "toolcall", "tool"];
677
- var DISALLOWED_SYMBOLS = [
678
- "{",
679
- "}",
680
- ];
681
- /**
682
- * Validates that the given output string does not contain any tool call entries or disallowed symbols.
683
- * @see https://github.com/ollama/ollama/issues/8287
684
- *
685
- * @param {string} output - The output string to validate.
686
- * @returns {Promise<string | null>} - A promise that resolves to a string indicating a tool call in the text output, or null if no tool call is found.
687
- * @throws {Error} - If an error occurs during XML parsing.
688
- */
689
- var validateNoToolCall = functoolsKit.trycatch(function (output) { return __awaiter(void 0, void 0, void 0, function () {
690
- var DISALLOWED_SYMBOLS_1, DISALLOWED_SYMBOLS_1_1, symbol, result, TOOL_CALL_ENTRIES_1, TOOL_CALL_ENTRIES_1_1, tag;
691
- var e_1, _a, e_2, _b;
692
- return __generator(this, function (_c) {
693
- switch (_c.label) {
694
- case 0:
695
- try {
696
- for (DISALLOWED_SYMBOLS_1 = __values(DISALLOWED_SYMBOLS), DISALLOWED_SYMBOLS_1_1 = DISALLOWED_SYMBOLS_1.next(); !DISALLOWED_SYMBOLS_1_1.done; DISALLOWED_SYMBOLS_1_1 = DISALLOWED_SYMBOLS_1.next()) {
697
- symbol = DISALLOWED_SYMBOLS_1_1.value;
698
- if (output.includes(symbol)) {
699
- return [2 /*return*/, "Tool call in text output"];
700
- }
701
- }
702
- }
703
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
704
- finally {
705
- try {
706
- if (DISALLOWED_SYMBOLS_1_1 && !DISALLOWED_SYMBOLS_1_1.done && (_a = DISALLOWED_SYMBOLS_1.return)) _a.call(DISALLOWED_SYMBOLS_1);
707
- }
708
- finally { if (e_1) throw e_1.error; }
709
- }
710
- return [4 /*yield*/, toolParser.parseStringPromise(output)];
711
- case 1:
712
- result = _c.sent();
713
- try {
714
- for (TOOL_CALL_ENTRIES_1 = __values(TOOL_CALL_ENTRIES), TOOL_CALL_ENTRIES_1_1 = TOOL_CALL_ENTRIES_1.next(); !TOOL_CALL_ENTRIES_1_1.done; TOOL_CALL_ENTRIES_1_1 = TOOL_CALL_ENTRIES_1.next()) {
715
- tag = TOOL_CALL_ENTRIES_1_1.value;
716
- if (result[tag]) {
717
- return [2 /*return*/, "Tool call in text output"];
718
- }
719
- }
720
- }
721
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
722
- finally {
723
- try {
724
- if (TOOL_CALL_ENTRIES_1_1 && !TOOL_CALL_ENTRIES_1_1.done && (_b = TOOL_CALL_ENTRIES_1.return)) _b.call(TOOL_CALL_ENTRIES_1);
725
- }
726
- finally { if (e_2) throw e_2.error; }
727
- }
728
- return [2 /*return*/, null];
729
- }
730
- });
731
- }); }, {
732
- defaultValue: null,
733
- });
734
-
735
- /**
736
- * Validates the given output string using a series of validation functions.
737
- *
738
- * @param {string} output - The output string to validate.
739
- * @returns {Promise<string | null>} - A promise that resolves to a validation error message if any validation fails, or null if all validations pass.
740
- */
741
- var validateDefault = function (output) { return __awaiter(void 0, void 0, void 0, function () {
742
- var validation;
743
- return __generator(this, function (_a) {
744
- switch (_a.label) {
745
- case 0:
746
- validation = null;
747
- return [4 /*yield*/, validateNoEmptyResult(output)];
748
- case 1:
749
- if (validation = _a.sent()) {
750
- return [2 /*return*/, validation];
751
- }
752
- return [4 /*yield*/, validateNoToolCall(output)];
753
- case 2:
754
- if (validation = _a.sent()) {
755
- return [2 /*return*/, validation];
756
- }
757
- return [2 /*return*/, null];
758
- }
759
- });
760
- }); };
761
-
762
766
  /**
763
767
  * Service for managing agent connections.
764
768
  * @implements {IAgent}
@@ -4199,7 +4203,7 @@ var DEFAULT_TIMEOUT = 15 * 60;
4199
4203
  * @returns {Object} An object with tick and stop methods to control the auto-dispose.
4200
4204
  */
4201
4205
  var makeAutoDispose = function (clientId, swarmName, _a) {
4202
- var _b = _a === void 0 ? {} : _a, _c = _b.timeoutSeconds, timeoutSeconds = _c === void 0 ? DEFAULT_TIMEOUT : _c;
4206
+ var _b = _a === void 0 ? {} : _a, _c = _b.timeoutSeconds, timeoutSeconds = _c === void 0 ? DEFAULT_TIMEOUT : _c, onDestroy = _b.onDestroy;
4203
4207
  var isOk = true;
4204
4208
  var unSource = functoolsKit.Source.fromInterval(1000)
4205
4209
  .reduce(function (acm) {
@@ -4220,7 +4224,9 @@ var makeAutoDispose = function (clientId, swarmName, _a) {
4220
4224
  case 1:
4221
4225
  _a.sent();
4222
4226
  _a.label = 2;
4223
- case 2: return [2 /*return*/];
4227
+ case 2:
4228
+ onDestroy && onDestroy(clientId, swarmName);
4229
+ return [2 /*return*/];
4224
4230
  }
4225
4231
  });
4226
4232
  }); });
@@ -4234,8 +4240,9 @@ var makeAutoDispose = function (clientId, swarmName, _a) {
4234
4240
  /**
4235
4241
  * Stops the auto-dispose mechanism.
4236
4242
  */
4237
- stop: function () {
4243
+ destroy: function () {
4238
4244
  unSource();
4245
+ onDestroy && onDestroy(clientId, swarmName);
4239
4246
  },
4240
4247
  };
4241
4248
  };
package/build/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { scoped } from 'di-scoped';
2
- import { ToolRegistry, sleep, PubsubArrayAdapter, Subject, queued, not, trycatch, memoize, schedule, ttl, singleshot, Source } from 'functools-kit';
2
+ import { ToolRegistry, trycatch, sleep, PubsubArrayAdapter, Subject, queued, not, memoize, schedule, ttl, singleshot, Source } from 'functools-kit';
3
3
  import { createActivator } from 'di-kit';
4
4
  import { omit } from 'lodash-es';
5
5
  import xml2js from 'xml2js';
@@ -256,6 +256,103 @@ var AgentSchemaService = /** @class */ (function () {
256
256
  return AgentSchemaService;
257
257
  }());
258
258
 
259
+ /**
260
+ * Validates that the given output string is not empty.
261
+ *
262
+ * @param {string} output - The output string to validate.
263
+ * @returns {Promise<string | null>} - Returns a promise that resolves to "Empty output" if the string is empty, otherwise null.
264
+ */
265
+ var validateNoEmptyResult = function (output) { return __awaiter(void 0, void 0, void 0, function () {
266
+ return __generator(this, function (_a) {
267
+ if (!output.trim()) {
268
+ return [2 /*return*/, "Empty output"];
269
+ }
270
+ return [2 /*return*/, null];
271
+ });
272
+ }); };
273
+
274
+ var toolParser = new xml2js.Parser();
275
+ /**
276
+ * Validates that the given output string does not contain any tool call entries or disallowed symbols.
277
+ * @see https://github.com/ollama/ollama/issues/8287
278
+ *
279
+ * @param {string} output - The output string to validate.
280
+ * @returns {Promise<string | null>} - A promise that resolves to a string indicating a tool call in the text output, or null if no tool call is found.
281
+ * @throws {Error} - If an error occurs during XML parsing.
282
+ */
283
+ var validateNoToolCall = trycatch(function (output) { return __awaiter(void 0, void 0, void 0, function () {
284
+ var _a, _b, symbol, result, _c, _d, tag;
285
+ var e_1, _e, e_2, _f;
286
+ return __generator(this, function (_g) {
287
+ switch (_g.label) {
288
+ case 0:
289
+ try {
290
+ for (_a = __values(GLOBAL_CONFIG.CC_AGENT_DISALLOWED_SYMBOLS), _b = _a.next(); !_b.done; _b = _a.next()) {
291
+ symbol = _b.value;
292
+ if (output.includes(symbol)) {
293
+ return [2 /*return*/, "Tool call in text output"];
294
+ }
295
+ }
296
+ }
297
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
298
+ finally {
299
+ try {
300
+ if (_b && !_b.done && (_e = _a.return)) _e.call(_a);
301
+ }
302
+ finally { if (e_1) throw e_1.error; }
303
+ }
304
+ return [4 /*yield*/, toolParser.parseStringPromise(output)];
305
+ case 1:
306
+ result = _g.sent();
307
+ try {
308
+ for (_c = __values(GLOBAL_CONFIG.CC_AGENT_DISALLOWED_TAGS), _d = _c.next(); !_d.done; _d = _c.next()) {
309
+ tag = _d.value;
310
+ if (result[tag]) {
311
+ return [2 /*return*/, "Tool call in text output"];
312
+ }
313
+ }
314
+ }
315
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
316
+ finally {
317
+ try {
318
+ if (_d && !_d.done && (_f = _c.return)) _f.call(_c);
319
+ }
320
+ finally { if (e_2) throw e_2.error; }
321
+ }
322
+ return [2 /*return*/, null];
323
+ }
324
+ });
325
+ }); }, {
326
+ defaultValue: null,
327
+ });
328
+
329
+ /**
330
+ * Validates the given output string using a series of validation functions.
331
+ *
332
+ * @param {string} output - The output string to validate.
333
+ * @returns {Promise<string | null>} - A promise that resolves to a validation error message if any validation fails, or null if all validations pass.
334
+ */
335
+ var validateDefault = function (output) { return __awaiter(void 0, void 0, void 0, function () {
336
+ var validation;
337
+ return __generator(this, function (_a) {
338
+ switch (_a.label) {
339
+ case 0:
340
+ validation = null;
341
+ return [4 /*yield*/, validateNoEmptyResult(output)];
342
+ case 1:
343
+ if (validation = _a.sent()) {
344
+ return [2 /*return*/, validation];
345
+ }
346
+ return [4 /*yield*/, validateNoToolCall(output)];
347
+ case 2:
348
+ if (validation = _a.sent()) {
349
+ return [2 /*return*/, validation];
350
+ }
351
+ return [2 /*return*/, null];
352
+ }
353
+ });
354
+ }); };
355
+
259
356
  /**
260
357
  * @description `ask for agent function` in `llama3.1:8b` to troubleshoot (need CC_OLLAMA_EMIT_TOOL_PROTOCOL to be turned off)
261
358
  */
@@ -291,6 +388,12 @@ var CC_SWARM_DEFAULT_AGENT = function (_a, _b, defaultAgent_1) { return __awaite
291
388
  }
292
389
  });
293
390
  }); };
391
+ var CC_AGENT_DEFAULT_VALIDATION = validateDefault;
392
+ var CC_AGENT_DISALLOWED_TAGS = ["tool_call", "toolcall", "tool"];
393
+ var CC_AGENT_DISALLOWED_SYMBOLS = [
394
+ "{",
395
+ "}",
396
+ ];
294
397
  var CC_KEEP_MESSAGES = 5;
295
398
  var CC_ANSWER_TIMEOUT = 120000;
296
399
  var CC_GET_AGENT_HISTORY = function () { return new PubsubArrayAdapter(); };
@@ -302,6 +405,9 @@ var GLOBAL_CONFIG = {
302
405
  CC_GET_AGENT_HISTORY: CC_GET_AGENT_HISTORY,
303
406
  CC_SWARM_AGENT_CHANGED: CC_SWARM_AGENT_CHANGED,
304
407
  CC_SWARM_DEFAULT_AGENT: CC_SWARM_DEFAULT_AGENT,
408
+ CC_AGENT_DEFAULT_VALIDATION: CC_AGENT_DEFAULT_VALIDATION,
409
+ CC_AGENT_DISALLOWED_TAGS: CC_AGENT_DISALLOWED_TAGS,
410
+ CC_AGENT_DISALLOWED_SYMBOLS: CC_AGENT_DISALLOWED_SYMBOLS,
305
411
  };
306
412
  var setConfig = function (config) {
307
413
  Object.assign(GLOBAL_CONFIG, config);
@@ -655,108 +761,6 @@ var ClientAgent = /** @class */ (function () {
655
761
  return ClientAgent;
656
762
  }());
657
763
 
658
- /**
659
- * Validates that the given output string is not empty.
660
- *
661
- * @param {string} output - The output string to validate.
662
- * @returns {Promise<string | null>} - Returns a promise that resolves to "Empty output" if the string is empty, otherwise null.
663
- */
664
- var validateNoEmptyResult = function (output) { return __awaiter(void 0, void 0, void 0, function () {
665
- return __generator(this, function (_a) {
666
- if (!output.trim()) {
667
- return [2 /*return*/, "Empty output"];
668
- }
669
- return [2 /*return*/, null];
670
- });
671
- }); };
672
-
673
- var toolParser = new xml2js.Parser();
674
- var TOOL_CALL_ENTRIES = ["tool_call", "toolcall", "tool"];
675
- var DISALLOWED_SYMBOLS = [
676
- "{",
677
- "}",
678
- ];
679
- /**
680
- * Validates that the given output string does not contain any tool call entries or disallowed symbols.
681
- * @see https://github.com/ollama/ollama/issues/8287
682
- *
683
- * @param {string} output - The output string to validate.
684
- * @returns {Promise<string | null>} - A promise that resolves to a string indicating a tool call in the text output, or null if no tool call is found.
685
- * @throws {Error} - If an error occurs during XML parsing.
686
- */
687
- var validateNoToolCall = trycatch(function (output) { return __awaiter(void 0, void 0, void 0, function () {
688
- var DISALLOWED_SYMBOLS_1, DISALLOWED_SYMBOLS_1_1, symbol, result, TOOL_CALL_ENTRIES_1, TOOL_CALL_ENTRIES_1_1, tag;
689
- var e_1, _a, e_2, _b;
690
- return __generator(this, function (_c) {
691
- switch (_c.label) {
692
- case 0:
693
- try {
694
- for (DISALLOWED_SYMBOLS_1 = __values(DISALLOWED_SYMBOLS), DISALLOWED_SYMBOLS_1_1 = DISALLOWED_SYMBOLS_1.next(); !DISALLOWED_SYMBOLS_1_1.done; DISALLOWED_SYMBOLS_1_1 = DISALLOWED_SYMBOLS_1.next()) {
695
- symbol = DISALLOWED_SYMBOLS_1_1.value;
696
- if (output.includes(symbol)) {
697
- return [2 /*return*/, "Tool call in text output"];
698
- }
699
- }
700
- }
701
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
702
- finally {
703
- try {
704
- if (DISALLOWED_SYMBOLS_1_1 && !DISALLOWED_SYMBOLS_1_1.done && (_a = DISALLOWED_SYMBOLS_1.return)) _a.call(DISALLOWED_SYMBOLS_1);
705
- }
706
- finally { if (e_1) throw e_1.error; }
707
- }
708
- return [4 /*yield*/, toolParser.parseStringPromise(output)];
709
- case 1:
710
- result = _c.sent();
711
- try {
712
- for (TOOL_CALL_ENTRIES_1 = __values(TOOL_CALL_ENTRIES), TOOL_CALL_ENTRIES_1_1 = TOOL_CALL_ENTRIES_1.next(); !TOOL_CALL_ENTRIES_1_1.done; TOOL_CALL_ENTRIES_1_1 = TOOL_CALL_ENTRIES_1.next()) {
713
- tag = TOOL_CALL_ENTRIES_1_1.value;
714
- if (result[tag]) {
715
- return [2 /*return*/, "Tool call in text output"];
716
- }
717
- }
718
- }
719
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
720
- finally {
721
- try {
722
- if (TOOL_CALL_ENTRIES_1_1 && !TOOL_CALL_ENTRIES_1_1.done && (_b = TOOL_CALL_ENTRIES_1.return)) _b.call(TOOL_CALL_ENTRIES_1);
723
- }
724
- finally { if (e_2) throw e_2.error; }
725
- }
726
- return [2 /*return*/, null];
727
- }
728
- });
729
- }); }, {
730
- defaultValue: null,
731
- });
732
-
733
- /**
734
- * Validates the given output string using a series of validation functions.
735
- *
736
- * @param {string} output - The output string to validate.
737
- * @returns {Promise<string | null>} - A promise that resolves to a validation error message if any validation fails, or null if all validations pass.
738
- */
739
- var validateDefault = function (output) { return __awaiter(void 0, void 0, void 0, function () {
740
- var validation;
741
- return __generator(this, function (_a) {
742
- switch (_a.label) {
743
- case 0:
744
- validation = null;
745
- return [4 /*yield*/, validateNoEmptyResult(output)];
746
- case 1:
747
- if (validation = _a.sent()) {
748
- return [2 /*return*/, validation];
749
- }
750
- return [4 /*yield*/, validateNoToolCall(output)];
751
- case 2:
752
- if (validation = _a.sent()) {
753
- return [2 /*return*/, validation];
754
- }
755
- return [2 /*return*/, null];
756
- }
757
- });
758
- }); };
759
-
760
764
  /**
761
765
  * Service for managing agent connections.
762
766
  * @implements {IAgent}
@@ -4197,7 +4201,7 @@ var DEFAULT_TIMEOUT = 15 * 60;
4197
4201
  * @returns {Object} An object with tick and stop methods to control the auto-dispose.
4198
4202
  */
4199
4203
  var makeAutoDispose = function (clientId, swarmName, _a) {
4200
- var _b = _a === void 0 ? {} : _a, _c = _b.timeoutSeconds, timeoutSeconds = _c === void 0 ? DEFAULT_TIMEOUT : _c;
4204
+ var _b = _a === void 0 ? {} : _a, _c = _b.timeoutSeconds, timeoutSeconds = _c === void 0 ? DEFAULT_TIMEOUT : _c, onDestroy = _b.onDestroy;
4201
4205
  var isOk = true;
4202
4206
  var unSource = Source.fromInterval(1000)
4203
4207
  .reduce(function (acm) {
@@ -4218,7 +4222,9 @@ var makeAutoDispose = function (clientId, swarmName, _a) {
4218
4222
  case 1:
4219
4223
  _a.sent();
4220
4224
  _a.label = 2;
4221
- case 2: return [2 /*return*/];
4225
+ case 2:
4226
+ onDestroy && onDestroy(clientId, swarmName);
4227
+ return [2 /*return*/];
4222
4228
  }
4223
4229
  });
4224
4230
  }); });
@@ -4232,8 +4238,9 @@ var makeAutoDispose = function (clientId, swarmName, _a) {
4232
4238
  /**
4233
4239
  * Stops the auto-dispose mechanism.
4234
4240
  */
4235
- stop: function () {
4241
+ destroy: function () {
4236
4242
  unSource();
4243
+ onDestroy && onDestroy(clientId, swarmName);
4237
4244
  },
4238
4245
  };
4239
4246
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-swarm-kit",
3
- "version": "1.0.23",
3
+ "version": "1.0.25",
4
4
  "description": "A TypeScript library for building orchestrated framework-agnostic multi-agent AI systems",
5
5
  "author": {
6
6
  "name": "Petr Tripolsky",
package/types.d.ts CHANGED
@@ -1774,6 +1774,10 @@ interface IMakeDisposeParams {
1774
1774
  * Timeout in seconds before auto-dispose is triggered.
1775
1775
  */
1776
1776
  timeoutSeconds: number;
1777
+ /**
1778
+ * Callback when session is closed
1779
+ */
1780
+ onDestroy?: (clientId: string, swarmName: SwarmName) => void;
1777
1781
  }
1778
1782
  /**
1779
1783
  * Creates an auto-dispose mechanism for a client in a swarm.
@@ -1783,7 +1787,7 @@ interface IMakeDisposeParams {
1783
1787
  * @param {Partial<IMakeDisposeParams>} [params={}] - Optional parameters for auto-dispose.
1784
1788
  * @returns {Object} An object with tick and stop methods to control the auto-dispose.
1785
1789
  */
1786
- declare const makeAutoDispose: (clientId: string, swarmName: SwarmName, { timeoutSeconds }?: Partial<IMakeDisposeParams>) => {
1790
+ declare const makeAutoDispose: (clientId: string, swarmName: SwarmName, { timeoutSeconds, onDestroy }?: Partial<IMakeDisposeParams>) => {
1787
1791
  /**
1788
1792
  * Signals that the client is active, resetting the auto-dispose timer.
1789
1793
  */
@@ -1791,7 +1795,7 @@ declare const makeAutoDispose: (clientId: string, swarmName: SwarmName, { timeou
1791
1795
  /**
1792
1796
  * Stops the auto-dispose mechanism.
1793
1797
  */
1794
- stop(): void;
1798
+ destroy(): void;
1795
1799
  };
1796
1800
 
1797
1801
  declare const GLOBAL_CONFIG: {
@@ -1802,6 +1806,9 @@ declare const GLOBAL_CONFIG: {
1802
1806
  CC_GET_AGENT_HISTORY: (clientId: string, agentName: AgentName) => IPubsubArray<IModelMessage>;
1803
1807
  CC_SWARM_AGENT_CHANGED: (clientId: string, agentName: AgentName, swarmName: SwarmName) => Promise<void>;
1804
1808
  CC_SWARM_DEFAULT_AGENT: (clientId: string, swarmName: SwarmName, defaultAgent: AgentName) => Promise<AgentName>;
1809
+ CC_AGENT_DEFAULT_VALIDATION: (output: string) => Promise<string | null>;
1810
+ CC_AGENT_DISALLOWED_TAGS: string[];
1811
+ CC_AGENT_DISALLOWED_SYMBOLS: string[];
1805
1812
  };
1806
1813
  declare const setConfig: (config: typeof GLOBAL_CONFIG) => void;
1807
1814