@skilder-ai/runtime 0.7.10 → 0.7.12
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/index.js +32 -27
- package/dist/index.js.map +3 -3
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -143971,6 +143971,21 @@ function loadPrompt(name21) {
|
|
|
143971
143971
|
return body;
|
|
143972
143972
|
}
|
|
143973
143973
|
|
|
143974
|
+
// src/constants.ts
|
|
143975
|
+
var MAX_ACTIVATION_RETRIES = 3;
|
|
143976
|
+
var ACTIVATION_COOLDOWN_MS = 6e4;
|
|
143977
|
+
var DEFAULT_IDLE_TIMEOUT_MS = 3e5;
|
|
143978
|
+
var DEFAULT_SCRIPT_TIMEOUT_MS = 3e4;
|
|
143979
|
+
var MAX_INTERACTIVE_SCRIPT_TIMEOUT_MS = 3e5;
|
|
143980
|
+
var MAX_SCRIPT_OUTPUT_SIZE = 10485760;
|
|
143981
|
+
var MAX_DELEGATE_DEPTH = 3;
|
|
143982
|
+
var DELEGATE_MCP_CLIENT_TIMEOUT_MS = 3e4;
|
|
143983
|
+
var DELEGATE_GENERATE_TEXT_TIMEOUT_MS = 12e4;
|
|
143984
|
+
var RECONNECT_INITIAL_WAIT_MS = 5e3;
|
|
143985
|
+
var RECONNECT_MAX_WAIT_MS = 10 * 60 * 1e3;
|
|
143986
|
+
var RECONNECT_BACKOFF_MULTIPLIER = 2;
|
|
143987
|
+
var RECONNECT_JITTER_FACTOR = 0.1;
|
|
143988
|
+
|
|
143974
143989
|
// src/services/delegate.service.ts
|
|
143975
143990
|
var __decorate9 = function(decorators, target, key, desc) {
|
|
143976
143991
|
var c3 = arguments.length, r2 = c3 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d2;
|
|
@@ -143989,9 +144004,6 @@ var __param8 = function(paramIndex, decorator) {
|
|
|
143989
144004
|
var _a30;
|
|
143990
144005
|
var _b24;
|
|
143991
144006
|
var _c2;
|
|
143992
|
-
var MAX_DELEGATE_DEPTH = 3;
|
|
143993
|
-
var DELEGATE_MCP_CLIENT_TIMEOUT_MS = 3e4;
|
|
143994
|
-
var DELEGATE_GENERATE_TEXT_TIMEOUT_MS = 12e4;
|
|
143995
144007
|
var DelegateService = class DelegateService2 {
|
|
143996
144008
|
constructor(loggerService, natsService, aiProviderService) {
|
|
143997
144009
|
this.natsService = natsService;
|
|
@@ -144495,7 +144507,7 @@ var SkillService = class SkillService2 extends Service {
|
|
|
144495
144507
|
if (this.fileService) {
|
|
144496
144508
|
tools.push(this.prepareDownloadAssetTool());
|
|
144497
144509
|
}
|
|
144498
|
-
if ((this.identity.delegateDepth ?? 0) < MAX_DELEGATE_DEPTH) {
|
|
144510
|
+
if (process.env.SKILDER_ENABLE_AGENT_DELEGATE === "true" && (this.identity.delegateDepth ?? 0) < MAX_DELEGATE_DEPTH) {
|
|
144499
144511
|
tools.push(this.prepareDelegateTool());
|
|
144500
144512
|
}
|
|
144501
144513
|
return tools;
|
|
@@ -149494,15 +149506,12 @@ var __param14 = function(paramIndex, decorator) {
|
|
|
149494
149506
|
};
|
|
149495
149507
|
var _a39;
|
|
149496
149508
|
var ScriptType2 = dgraph_resolvers_types_exports.ScriptType;
|
|
149497
|
-
var DEFAULT_TIMEOUT_MS = 3e4;
|
|
149498
|
-
var MAX_INTERACTIVE_TIMEOUT_MS = 3e5;
|
|
149499
|
-
var MAX_OUTPUT_SIZE = 10485760;
|
|
149500
149509
|
var ScriptExecutorService = class ScriptExecutorService2 {
|
|
149501
149510
|
constructor(loggerService) {
|
|
149502
149511
|
this.logger = loggerService.getLogger("script-executor");
|
|
149503
149512
|
}
|
|
149504
149513
|
async execute(options) {
|
|
149505
|
-
const { code, scriptType, args = [], timeout =
|
|
149514
|
+
const { code, scriptType, args = [], timeout = DEFAULT_SCRIPT_TIMEOUT_MS } = options;
|
|
149506
149515
|
this.logger.debug({ scriptType, argsCount: args.length, timeout }, "Executing script");
|
|
149507
149516
|
let tempDir;
|
|
149508
149517
|
let tempFile;
|
|
@@ -149575,10 +149584,10 @@ var ScriptExecutorService = class ScriptExecutorService2 {
|
|
|
149575
149584
|
if (outputTruncated)
|
|
149576
149585
|
return;
|
|
149577
149586
|
const dataSize = Buffer.byteLength(data);
|
|
149578
|
-
if (totalOutputSize + dataSize >
|
|
149587
|
+
if (totalOutputSize + dataSize > MAX_SCRIPT_OUTPUT_SIZE) {
|
|
149579
149588
|
outputTruncated = true;
|
|
149580
149589
|
child.kill("SIGKILL");
|
|
149581
|
-
this.logger.warn({ totalOutputSize,
|
|
149590
|
+
this.logger.warn({ totalOutputSize, MAX_SCRIPT_OUTPUT_SIZE }, "Script output exceeded maximum size");
|
|
149582
149591
|
return;
|
|
149583
149592
|
}
|
|
149584
149593
|
totalOutputSize += dataSize;
|
|
@@ -149588,10 +149597,10 @@ var ScriptExecutorService = class ScriptExecutorService2 {
|
|
|
149588
149597
|
if (outputTruncated)
|
|
149589
149598
|
return;
|
|
149590
149599
|
const dataSize = Buffer.byteLength(data);
|
|
149591
|
-
if (totalOutputSize + dataSize >
|
|
149600
|
+
if (totalOutputSize + dataSize > MAX_SCRIPT_OUTPUT_SIZE) {
|
|
149592
149601
|
outputTruncated = true;
|
|
149593
149602
|
child.kill("SIGKILL");
|
|
149594
|
-
this.logger.warn({ totalOutputSize,
|
|
149603
|
+
this.logger.warn({ totalOutputSize, MAX_SCRIPT_OUTPUT_SIZE }, "Script output exceeded maximum size");
|
|
149595
149604
|
return;
|
|
149596
149605
|
}
|
|
149597
149606
|
totalOutputSize += dataSize;
|
|
@@ -149650,7 +149659,7 @@ var ScriptExecutorService = class ScriptExecutorService2 {
|
|
|
149650
149659
|
* The script can call MCP tools via the injected SDK.
|
|
149651
149660
|
*/
|
|
149652
149661
|
async executeInteractive(options) {
|
|
149653
|
-
const { code, scriptType, args = [], timeout =
|
|
149662
|
+
const { code, scriptType, args = [], timeout = DEFAULT_SCRIPT_TIMEOUT_MS, onRequest, sdkBundleContent, toolCallTimeout = 1e4 } = options;
|
|
149654
149663
|
this.logger.debug({ scriptType, argsCount: args.length }, "Executing interactive script");
|
|
149655
149664
|
let tempDir;
|
|
149656
149665
|
try {
|
|
@@ -149707,7 +149716,7 @@ var ScriptExecutorService = class ScriptExecutorService2 {
|
|
|
149707
149716
|
const resetTimeout = (extraMs) => {
|
|
149708
149717
|
clearTimeout(timeoutId);
|
|
149709
149718
|
const elapsed = Date.now() - totalStartTime;
|
|
149710
|
-
const remaining = Math.min(extraMs,
|
|
149719
|
+
const remaining = Math.min(extraMs, MAX_INTERACTIVE_SCRIPT_TIMEOUT_MS - elapsed);
|
|
149711
149720
|
if (remaining <= 0) {
|
|
149712
149721
|
killed = true;
|
|
149713
149722
|
child.kill("SIGKILL");
|
|
@@ -149741,7 +149750,7 @@ var ScriptExecutorService = class ScriptExecutorService2 {
|
|
|
149741
149750
|
if (outputTruncated)
|
|
149742
149751
|
return;
|
|
149743
149752
|
const dataSize = Buffer.byteLength(line);
|
|
149744
|
-
if (totalOutputSize + dataSize >
|
|
149753
|
+
if (totalOutputSize + dataSize > MAX_SCRIPT_OUTPUT_SIZE) {
|
|
149745
149754
|
outputTruncated = true;
|
|
149746
149755
|
child.kill("SIGKILL");
|
|
149747
149756
|
return;
|
|
@@ -149786,7 +149795,7 @@ var ScriptExecutorService = class ScriptExecutorService2 {
|
|
|
149786
149795
|
if (outputTruncated)
|
|
149787
149796
|
return;
|
|
149788
149797
|
const dataSize = Buffer.byteLength(data);
|
|
149789
|
-
if (totalOutputSize + dataSize >
|
|
149798
|
+
if (totalOutputSize + dataSize > MAX_SCRIPT_OUTPUT_SIZE) {
|
|
149790
149799
|
outputTruncated = true;
|
|
149791
149800
|
child.kill("SIGKILL");
|
|
149792
149801
|
return;
|
|
@@ -152920,10 +152929,10 @@ var ToolService = class ToolService2 extends Service {
|
|
|
152920
152929
|
this.startingServers = /* @__PURE__ */ new Map();
|
|
152921
152930
|
this.stoppingServers = /* @__PURE__ */ new Map();
|
|
152922
152931
|
this.activationFailures = /* @__PURE__ */ new Map();
|
|
152923
|
-
this.maxActivationRetries =
|
|
152924
|
-
this.activationCooldownMs =
|
|
152932
|
+
this.maxActivationRetries = MAX_ACTIVATION_RETRIES;
|
|
152933
|
+
this.activationCooldownMs = ACTIVATION_COOLDOWN_MS;
|
|
152925
152934
|
this.lazyStartEnabled = true;
|
|
152926
|
-
this.idleTimeoutMs =
|
|
152935
|
+
this.idleTimeoutMs = DEFAULT_IDLE_TIMEOUT_MS;
|
|
152927
152936
|
this.logger = this.loggerService.getLogger(this.name);
|
|
152928
152937
|
}
|
|
152929
152938
|
async initialize() {
|
|
@@ -152933,7 +152942,7 @@ var ToolService = class ToolService2 extends Service {
|
|
|
152933
152942
|
const parsedTimeout = parseInt(process.env.MCP_IDLE_TIMEOUT_MS ?? "300000", 10);
|
|
152934
152943
|
if (Number.isNaN(parsedTimeout) || parsedTimeout <= 0) {
|
|
152935
152944
|
this.logger.warn({ rawValue: process.env.MCP_IDLE_TIMEOUT_MS }, "Invalid MCP_IDLE_TIMEOUT_MS value, falling back to default 300000ms");
|
|
152936
|
-
this.idleTimeoutMs =
|
|
152945
|
+
this.idleTimeoutMs = DEFAULT_IDLE_TIMEOUT_MS;
|
|
152937
152946
|
} else {
|
|
152938
152947
|
this.idleTimeoutMs = parsedTimeout;
|
|
152939
152948
|
}
|
|
@@ -154362,13 +154371,9 @@ var MainService = class MainService2 extends Service {
|
|
|
154362
154371
|
await this.up();
|
|
154363
154372
|
}
|
|
154364
154373
|
calculateReconnectWaitTime() {
|
|
154365
|
-
const
|
|
154366
|
-
const
|
|
154367
|
-
const
|
|
154368
|
-
const JITTER_FACTOR = 0.1;
|
|
154369
|
-
const baseWaitTime = INITIAL_WAIT_TIME * Math.pow(BACKOFF_MULTIPLIER, this.failedConnectionCounter - 1);
|
|
154370
|
-
const cappedWaitTime = Math.min(baseWaitTime, MAX_WAIT_TIME);
|
|
154371
|
-
const jitter = cappedWaitTime * JITTER_FACTOR * Math.random();
|
|
154374
|
+
const baseWaitTime = RECONNECT_INITIAL_WAIT_MS * Math.pow(RECONNECT_BACKOFF_MULTIPLIER, this.failedConnectionCounter - 1);
|
|
154375
|
+
const cappedWaitTime = Math.min(baseWaitTime, RECONNECT_MAX_WAIT_MS);
|
|
154376
|
+
const jitter = cappedWaitTime * RECONNECT_JITTER_FACTOR * Math.random();
|
|
154372
154377
|
const finalWaitTime = cappedWaitTime + jitter;
|
|
154373
154378
|
return Math.floor(finalWaitTime);
|
|
154374
154379
|
}
|