@amodalai/runtime 0.1.21 → 0.1.23
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/src/agent/agent-runner.js +15 -5
- package/dist/src/agent/agent-runner.js.map +1 -1
- package/dist/src/agent/config-watcher.js +3 -2
- package/dist/src/agent/config-watcher.js.map +1 -1
- package/dist/src/agent/local-server.js +96 -42
- package/dist/src/agent/local-server.js.map +1 -1
- package/dist/src/agent/local-server.test.js +5 -0
- package/dist/src/agent/local-server.test.js.map +1 -1
- package/dist/src/agent/page-builder.d.ts +6 -0
- package/dist/src/agent/page-builder.js +37 -2
- package/dist/src/agent/page-builder.js.map +1 -1
- package/dist/src/agent/proactive/proactive-runner.js +8 -7
- package/dist/src/agent/proactive/proactive-runner.js.map +1 -1
- package/dist/src/agent/routes/evals.js +5 -0
- package/dist/src/agent/routes/evals.js.map +1 -1
- package/dist/src/agent/routes/files.js +7 -11
- package/dist/src/agent/routes/files.js.map +1 -1
- package/dist/src/agent/routes/inspect.js +95 -21
- package/dist/src/agent/routes/inspect.js.map +1 -1
- package/dist/src/agent/snapshot-server.js +6 -5
- package/dist/src/agent/snapshot-server.js.map +1 -1
- package/dist/src/agent/tool-context-builder.d.ts +1 -1
- package/dist/src/agent/tool-context-builder.js +20 -2
- package/dist/src/agent/tool-context-builder.js.map +1 -1
- package/dist/src/agent/tool-executor-local.js +20 -1
- package/dist/src/agent/tool-executor-local.js.map +1 -1
- package/dist/src/agent/tool-executor-local.test.js +1 -0
- package/dist/src/agent/tool-executor-local.test.js.map +1 -1
- package/dist/src/constants.d.ts +10 -0
- package/dist/src/constants.js +11 -0
- package/dist/src/constants.js.map +1 -0
- package/dist/src/cron/heartbeat-runner.js +3 -2
- package/dist/src/cron/heartbeat-runner.js.map +1 -1
- package/dist/src/cron/heartbeat-scheduler.js +4 -3
- package/dist/src/cron/heartbeat-scheduler.js.map +1 -1
- package/dist/src/index.d.ts +3 -2
- package/dist/src/index.js +8 -8
- package/dist/src/index.js.map +1 -1
- package/dist/src/logger.d.ts +37 -0
- package/dist/src/logger.js +77 -0
- package/dist/src/logger.js.map +1 -0
- package/dist/src/output/email-output.js +2 -1
- package/dist/src/output/email-output.js.map +1 -1
- package/dist/src/output/output-router.js +3 -2
- package/dist/src/output/output-router.js.map +1 -1
- package/dist/src/server.d.ts +0 -2
- package/dist/src/server.js +3 -3
- package/dist/src/server.js.map +1 -1
- package/dist/src/session/custom-tool-adapter.js +37 -6
- package/dist/src/session/custom-tool-adapter.js.map +1 -1
- package/dist/src/session/session-manager.d.ts +6 -5
- package/dist/src/session/session-manager.js +112 -137
- package/dist/src/session/session-manager.js.map +1 -1
- package/dist/src/session/session-manager.test.js +10 -169
- package/dist/src/session/session-manager.test.js.map +1 -1
- package/dist/src/stores/pglite-store-backend.d.ts +10 -4
- package/dist/src/stores/pglite-store-backend.js +160 -111
- package/dist/src/stores/pglite-store-backend.js.map +1 -1
- package/dist/src/types.d.ts +8 -1
- package/dist/src/types.js +1 -0
- package/dist/src/types.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/dist/src/agent/routes/chat.d.ts +0 -35
- package/dist/src/agent/routes/chat.js +0 -88
- package/dist/src/agent/routes/chat.js.map +0 -1
- package/dist/src/agent/routes/chat.test.d.ts +0 -6
- package/dist/src/agent/routes/chat.test.js +0 -110
- package/dist/src/agent/routes/chat.test.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;;GAYG;AAEH,MAAM,CAAN,IAAY,QAOX;AAPD,WAAY,QAAQ;IAClB,yCAAS,CAAA;IACT,uCAAQ,CAAA;IACR,uCAAQ,CAAA;IACR,yCAAS,CAAA;IACT,yCAAS,CAAA;IACT,uCAAQ,CAAA;AACV,CAAC,EAPW,QAAQ,KAAR,QAAQ,QAOnB;AAED,MAAM,YAAY,GAA6B;IAC7C,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO;IACzB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM;IACvB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM;IACvB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO;IACzB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO;IACzB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE;CACpB,CAAC;AAEF,SAAS,aAAa,CAAC,KAAyB;IAC9C,QAAQ,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC;QAC7B,KAAK,OAAO;YACV,OAAO,QAAQ,CAAC,KAAK,CAAC;QACxB,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,KAAK,OAAO;YACV,OAAO,QAAQ,CAAC,KAAK,CAAC;QACxB,KAAK,OAAO;YACV,OAAO,QAAQ,CAAC,KAAK,CAAC;QACxB,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB;YACE,OAAO,QAAQ,CAAC,IAAI,CAAC;IACzB,CAAC;AACH,CAAC;AAED,IAAI,YAAY,GAAa,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;AAErE,qDAAqD;AACrD,MAAM,UAAU,WAAW,CAAC,KAAe;IACzC,YAAY,GAAG,KAAK,CAAC;AACvB,CAAC;AAED,iCAAiC;AACjC,MAAM,UAAU,WAAW;IACzB,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,KAAK,CAAC,KAAe,EAAE,OAAe,EAAE,GAAY;IAC3D,IAAI,KAAK,GAAG,YAAY;QAAE,OAAO;IACjC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;IAC5D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,GAAG,OAAO,IAAI,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,KAAK,EAAE,CAAC,OAAe,EAAE,GAAY,EAAQ,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC;IACnF,IAAI,EAAE,CAAC,OAAe,EAAE,GAAY,EAAQ,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC;IACjF,IAAI,EAAE,CAAC,OAAe,EAAE,GAAY,EAAQ,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC;IACjF,KAAK,EAAE,CAAC,OAAe,EAAE,GAAY,EAAQ,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC;IACnF,KAAK,EAAE,CAAC,OAAe,EAAE,GAAY,EAAQ,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC;CACpF,CAAC"}
|
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
* Copyright 2025 Amodal Labs, Inc.
|
|
4
4
|
* SPDX-License-Identifier: MIT
|
|
5
5
|
*/
|
|
6
|
+
import { log } from '../logger.js';
|
|
6
7
|
/**
|
|
7
8
|
* Stub email output — logs a warning that email is not yet implemented.
|
|
8
9
|
*/
|
|
9
10
|
export async function sendEmailOutput(target, result) {
|
|
10
|
-
|
|
11
|
+
log.warn(`Email output not implemented. Would send automation "${result.automation}" result to ${target}`, 'output');
|
|
11
12
|
}
|
|
12
13
|
//# sourceMappingURL=email-output.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-output.js","sourceRoot":"","sources":["../../../src/output/email-output.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"email-output.js","sourceRoot":"","sources":["../../../src/output/email-output.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,MAAwB;IAExB,GAAG,CAAC,IAAI,CAAC,wDAAwD,MAAM,CAAC,UAAU,eAAe,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAC;AACvH,CAAC"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import { sendSlackOutput } from './slack-output.js';
|
|
7
7
|
import { sendWebhookOutput } from './webhook-output.js';
|
|
8
8
|
import { sendEmailOutput } from './email-output.js';
|
|
9
|
+
import { log } from '../logger.js';
|
|
9
10
|
/**
|
|
10
11
|
* Route automation output to the configured channel.
|
|
11
12
|
* Errors are caught and logged — output failures must never crash the server.
|
|
@@ -23,13 +24,13 @@ export async function routeOutput(output, result) {
|
|
|
23
24
|
await sendEmailOutput(output.target, result);
|
|
24
25
|
return true;
|
|
25
26
|
default:
|
|
26
|
-
|
|
27
|
+
log.warn(`Unknown output channel: ${output.channel}`, 'output');
|
|
27
28
|
return false;
|
|
28
29
|
}
|
|
29
30
|
}
|
|
30
31
|
catch (err) {
|
|
31
32
|
const message = err instanceof Error ? err.message : String(err);
|
|
32
|
-
|
|
33
|
+
log.error(`Output routing failed for ${output.channel}:${output.target}: ${message}`, 'output');
|
|
33
34
|
return false;
|
|
34
35
|
}
|
|
35
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output-router.js","sourceRoot":"","sources":["../../../src/output/output-router.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"output-router.js","sourceRoot":"","sources":["../../../src/output/output-router.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAwB,EACxB,MAAwB;IAExB,IAAI,CAAC;QACH,QAAQ,MAAM,CAAC,OAAO,EAAE,CAAC;YACvB,KAAK,OAAO;gBACV,MAAM,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC7C,OAAO,IAAI,CAAC;YACd,KAAK,SAAS;gBACZ,MAAM,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC/C,OAAO,IAAI,CAAC;YACd,KAAK,OAAO;gBACV,MAAM,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC7C,OAAO,IAAI,CAAC;YACd;gBACE,GAAG,CAAC,IAAI,CAAC,2BAA2B,MAAM,CAAC,OAAiB,EAAE,EAAE,QAAQ,CAAC,CAAC;gBAC1E,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,GAAG,CAAC,KAAK,CAAC,6BAA6B,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;QAChG,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
package/dist/src/server.d.ts
CHANGED
|
@@ -23,8 +23,6 @@ export interface CreateServerOptions {
|
|
|
23
23
|
config: ServerConfig;
|
|
24
24
|
/** Version string for /version endpoint */
|
|
25
25
|
version?: string;
|
|
26
|
-
/** Platform API URL (used by SessionManager for AgentSDK config loading) */
|
|
27
|
-
platformApiUrl?: string;
|
|
28
26
|
/** Middleware to mount before all routes (e.g., request enrichment) */
|
|
29
27
|
preMiddleware?: express.RequestHandler;
|
|
30
28
|
/** Middleware to mount before the error handler (e.g., static file serving) */
|
package/dist/src/server.js
CHANGED
|
@@ -14,6 +14,7 @@ import { createAIStreamRouter } from './routes/ai-stream.js';
|
|
|
14
14
|
import { SessionManager } from './session/session-manager.js';
|
|
15
15
|
import { createAutomationRunner } from './cron/heartbeat-runner.js';
|
|
16
16
|
import { AutomationScheduler } from './cron/heartbeat-scheduler.js';
|
|
17
|
+
import { log } from './logger.js';
|
|
17
18
|
/**
|
|
18
19
|
* Create the Express server with all routes, session management,
|
|
19
20
|
* automation scheduling, and graceful shutdown.
|
|
@@ -25,7 +26,6 @@ export function createServer(options) {
|
|
|
25
26
|
const sessionManager = new SessionManager({
|
|
26
27
|
baseParams,
|
|
27
28
|
ttlMs: config.sessionTtlMs,
|
|
28
|
-
platformApiUrl: options.platformApiUrl,
|
|
29
29
|
sessionStore: options.sessionStore,
|
|
30
30
|
bundleProvider: options.bundleProvider,
|
|
31
31
|
});
|
|
@@ -96,7 +96,7 @@ export function createServer(options) {
|
|
|
96
96
|
automationScheduler.start(config.automations, runAutomation);
|
|
97
97
|
return new Promise((resolve) => {
|
|
98
98
|
const httpServer = app.listen(config.port, config.host, () => {
|
|
99
|
-
|
|
99
|
+
log.info(`Server listening on ${config.host}:${config.port}`);
|
|
100
100
|
resolve(httpServer);
|
|
101
101
|
});
|
|
102
102
|
server = httpServer;
|
|
@@ -124,7 +124,7 @@ export function createServer(options) {
|
|
|
124
124
|
}
|
|
125
125
|
// Drain sessions
|
|
126
126
|
await sessionManager.shutdown();
|
|
127
|
-
|
|
127
|
+
log.info('Server stopped');
|
|
128
128
|
},
|
|
129
129
|
};
|
|
130
130
|
}
|
package/dist/src/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,OAAO,MAAM,SAAS,CAAC;AAI9B,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,9 @@
|
|
|
3
3
|
* Copyright 2026 Amodal Labs, Inc.
|
|
4
4
|
* SPDX-License-Identifier: MIT
|
|
5
5
|
*/
|
|
6
|
+
import { resolveKey } from '../stores/key-resolver.js';
|
|
7
|
+
import { LOCAL_APP_ID } from '../constants.js';
|
|
8
|
+
import { log } from '../logger.js';
|
|
6
9
|
/**
|
|
7
10
|
* Adapts a repo LoadedTool to the upstream tool registry interface.
|
|
8
11
|
* Wraps the tool definition and delegates execution to the CustomToolExecutor.
|
|
@@ -91,17 +94,29 @@ export class CustomToolAdapter {
|
|
|
91
94
|
if (tool.confirm === false && method !== 'GET') {
|
|
92
95
|
throw new Error(`Tool "${tool.name}" has confirm: false — only GET requests are allowed.`);
|
|
93
96
|
}
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
: '';
|
|
97
|
+
const conn = connConfig;
|
|
98
|
+
const baseUrl = String(conn['base_url'] ?? '');
|
|
97
99
|
if (!baseUrl) {
|
|
98
|
-
throw new Error(`Connection "${connection}" has no
|
|
100
|
+
throw new Error(`Connection "${connection}" has no base_url`);
|
|
101
|
+
}
|
|
102
|
+
// Build headers — start with defaults, apply auth from _request_config
|
|
103
|
+
const headers = { 'Content-Type': 'application/json' };
|
|
104
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- internal config shape
|
|
105
|
+
const reqConfig = conn['_request_config'];
|
|
106
|
+
if (reqConfig?.default_headers) {
|
|
107
|
+
Object.assign(headers, reqConfig.default_headers);
|
|
108
|
+
}
|
|
109
|
+
if (reqConfig?.auth) {
|
|
110
|
+
for (const authEntry of reqConfig.auth) {
|
|
111
|
+
// value_template is pre-resolved by buildConnectionsMap
|
|
112
|
+
headers[authEntry.header] = authEntry.value_template;
|
|
113
|
+
}
|
|
99
114
|
}
|
|
100
115
|
const url = `${baseUrl}${endpoint}`;
|
|
101
116
|
const fetchOpts = {
|
|
102
117
|
method,
|
|
103
118
|
signal: combinedSignal,
|
|
104
|
-
headers
|
|
119
|
+
headers,
|
|
105
120
|
};
|
|
106
121
|
if (params?.data) {
|
|
107
122
|
fetchOpts.body = JSON.stringify(params.data);
|
|
@@ -115,6 +130,22 @@ export class CustomToolAdapter {
|
|
|
115
130
|
return { text: body, status: res.status };
|
|
116
131
|
}
|
|
117
132
|
},
|
|
133
|
+
async store(storeName, payload) {
|
|
134
|
+
if (!session.storeBackend) {
|
|
135
|
+
throw new Error('Store backend not available');
|
|
136
|
+
}
|
|
137
|
+
const stores = session.config.getStores();
|
|
138
|
+
const storeDef = stores.find((s) => s.name === storeName);
|
|
139
|
+
if (!storeDef) {
|
|
140
|
+
throw new Error(`Store "${storeName}" not found`);
|
|
141
|
+
}
|
|
142
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- store entity shape
|
|
143
|
+
const entityKey = storeDef.entity.key;
|
|
144
|
+
const key = resolveKey(entityKey, payload);
|
|
145
|
+
const appId = session.appId ?? LOCAL_APP_ID;
|
|
146
|
+
await session.storeBackend.put(appId, storeName, key, payload, {});
|
|
147
|
+
return { key };
|
|
148
|
+
},
|
|
118
149
|
async exec(command, options) {
|
|
119
150
|
const { exec: execCb } = await import('node:child_process');
|
|
120
151
|
const { promisify } = await import('node:util');
|
|
@@ -139,7 +170,7 @@ export class CustomToolAdapter {
|
|
|
139
170
|
return process.env[name];
|
|
140
171
|
},
|
|
141
172
|
log(message) {
|
|
142
|
-
|
|
173
|
+
log.info(message, `tool:${tool.name}`);
|
|
143
174
|
},
|
|
144
175
|
user: { roles: [] },
|
|
145
176
|
signal: combinedSignal,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-tool-adapter.js","sourceRoot":"","sources":["../../../src/session/custom-tool-adapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"custom-tool-adapter.js","sourceRoot":"","sources":["../../../src/session/custom-tool-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -68,8 +68,12 @@ export interface StoredSessionRecord {
|
|
|
68
68
|
* Implementations are provided by the hosting layer.
|
|
69
69
|
*/
|
|
70
70
|
export interface SessionStore {
|
|
71
|
-
/** Fetch a stored session record by ID. Returns null if not found.
|
|
72
|
-
|
|
71
|
+
/** Fetch a stored session record by ID. Returns null if not found.
|
|
72
|
+
* Optional context provides auth info for implementations that need it. */
|
|
73
|
+
getSession(sessionId: string, context?: {
|
|
74
|
+
appId?: string;
|
|
75
|
+
token?: string;
|
|
76
|
+
}): Promise<StoredSessionRecord | null>;
|
|
73
77
|
}
|
|
74
78
|
export interface SessionManagerOptions {
|
|
75
79
|
/** Base config parameters to clone for each session */
|
|
@@ -78,8 +82,6 @@ export interface SessionManagerOptions {
|
|
|
78
82
|
ttlMs?: number;
|
|
79
83
|
/** Cleanup interval in milliseconds (default 5 minutes) */
|
|
80
84
|
cleanupIntervalMs?: number;
|
|
81
|
-
/** Platform API URL (for loading org-specific config per session) */
|
|
82
|
-
platformApiUrl?: string;
|
|
83
85
|
/** AgentBundle for local dev mode — sessions initialized from bundle config instead of platform API */
|
|
84
86
|
bundle?: AgentBundle;
|
|
85
87
|
/** Custom tool executor (local dev) */
|
|
@@ -101,7 +103,6 @@ export declare class SessionManager {
|
|
|
101
103
|
private readonly sessions;
|
|
102
104
|
private baseParams;
|
|
103
105
|
private readonly ttlMs;
|
|
104
|
-
private readonly platformApiUrl?;
|
|
105
106
|
private bundle?;
|
|
106
107
|
private readonly toolExecutor?;
|
|
107
108
|
private readonly shellExecutor?;
|