@agentuity/runtime 1.0.47 → 2.0.0-beta.0
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/_globals.d.ts +58 -0
- package/dist/_globals.d.ts.map +1 -0
- package/dist/_globals.js +71 -0
- package/dist/_globals.js.map +1 -0
- package/dist/_metadata.d.ts.map +1 -1
- package/dist/_metadata.js +14 -0
- package/dist/_metadata.js.map +1 -1
- package/dist/_process-protection.d.ts +2 -0
- package/dist/_process-protection.d.ts.map +1 -1
- package/dist/_process-protection.js +14 -23
- package/dist/_process-protection.js.map +1 -1
- package/dist/_server.d.ts +4 -0
- package/dist/_server.d.ts.map +1 -1
- package/dist/_server.js +4 -0
- package/dist/_server.js.map +1 -1
- package/dist/_services.d.ts +1 -1
- package/dist/_services.d.ts.map +1 -1
- package/dist/_services.js +5 -1
- package/dist/_services.js.map +1 -1
- package/dist/_standalone.d.ts.map +1 -1
- package/dist/_standalone.js +3 -9
- package/dist/_standalone.js.map +1 -1
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +1 -0
- package/dist/agent.js.map +1 -1
- package/dist/app.d.ts +149 -71
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +121 -156
- package/dist/app.js.map +1 -1
- package/dist/bootstrap.d.ts +44 -0
- package/dist/bootstrap.d.ts.map +1 -0
- package/dist/bootstrap.js +256 -0
- package/dist/bootstrap.js.map +1 -0
- package/dist/dev-patches/aisdk.d.ts.map +1 -1
- package/dist/dev-patches/aisdk.js +6 -8
- package/dist/dev-patches/aisdk.js.map +1 -1
- package/dist/dev-patches/gateway.d.ts.map +1 -1
- package/dist/dev-patches/gateway.js +7 -8
- package/dist/dev-patches/gateway.js.map +1 -1
- package/dist/handlers/_route-meta.d.ts +20 -0
- package/dist/handlers/_route-meta.d.ts.map +1 -0
- package/dist/handlers/_route-meta.js +25 -0
- package/dist/handlers/_route-meta.js.map +1 -0
- package/dist/handlers/cron.d.ts.map +1 -1
- package/dist/handlers/cron.js +3 -1
- package/dist/handlers/cron.js.map +1 -1
- package/dist/handlers/sse.d.ts +3 -3
- package/dist/handlers/sse.d.ts.map +1 -1
- package/dist/handlers/sse.js +4 -16
- package/dist/handlers/sse.js.map +1 -1
- package/dist/handlers/stream.d.ts.map +1 -1
- package/dist/handlers/stream.js +4 -12
- package/dist/handlers/stream.js.map +1 -1
- package/dist/handlers/websocket.d.ts +3 -1
- package/dist/handlers/websocket.d.ts.map +1 -1
- package/dist/handlers/websocket.js +6 -37
- package/dist/handlers/websocket.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/middleware.d.ts +1 -8
- package/dist/middleware.d.ts.map +1 -1
- package/dist/middleware.js +29 -71
- package/dist/middleware.js.map +1 -1
- package/dist/otel/logger.d.ts.map +1 -1
- package/dist/otel/logger.js +4 -7
- package/dist/otel/logger.js.map +1 -1
- package/dist/otel/otel.d.ts +4 -1
- package/dist/otel/otel.d.ts.map +1 -1
- package/dist/otel/otel.js +13 -2
- package/dist/otel/otel.js.map +1 -1
- package/dist/router.d.ts +10 -62
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +9 -146
- package/dist/router.js.map +1 -1
- package/dist/workbench.d.ts +1 -1
- package/dist/workbench.d.ts.map +1 -1
- package/dist/workbench.js +120 -12
- package/dist/workbench.js.map +1 -1
- package/package.json +7 -7
- package/src/_globals.ts +92 -0
- package/src/_metadata.ts +14 -0
- package/src/_process-protection.ts +17 -28
- package/src/_server.ts +4 -0
- package/src/_services.ts +6 -2
- package/src/_standalone.ts +4 -9
- package/src/agent.ts +1 -0
- package/src/app.ts +294 -195
- package/src/bootstrap.ts +316 -0
- package/src/dev-patches/aisdk.ts +8 -11
- package/src/dev-patches/gateway.ts +9 -11
- package/src/globals.d.ts +28 -0
- package/src/handlers/_route-meta.ts +31 -0
- package/src/handlers/cron.ts +4 -1
- package/src/handlers/sse.ts +8 -19
- package/src/handlers/stream.ts +5 -12
- package/src/handlers/websocket.ts +11 -37
- package/src/index.ts +2 -3
- package/src/middleware.ts +40 -99
- package/src/otel/logger.ts +5 -8
- package/src/otel/otel.ts +14 -2
- package/src/router.ts +12 -216
- package/src/workbench.ts +135 -12
package/dist/app.js
CHANGED
|
@@ -7,137 +7,134 @@ export function getApp() {
|
|
|
7
7
|
}
|
|
8
8
|
// Re-export event functions from _events
|
|
9
9
|
export { fireEvent } from './_events';
|
|
10
|
-
import { addEventListener as globalAddEventListener, removeEventListener as globalRemoveEventListener, } from './_events';
|
|
11
|
-
import { getLogger, getRouter } from './_server';
|
|
12
10
|
/**
|
|
13
|
-
* Create an Agentuity application
|
|
11
|
+
* Create and start an Agentuity application.
|
|
14
12
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* - Router creation and middleware are handled by the generated entry file
|
|
18
|
-
* - Server is managed by Vite (dev) or Bun.serve (prod)
|
|
19
|
-
*
|
|
20
|
-
* @template TAppState - Type of application state from setup()
|
|
13
|
+
* This is the single entry point for the entire server lifecycle:
|
|
14
|
+
* OTel, middleware, route mounting, services, and Bun.serve().
|
|
21
15
|
*
|
|
22
16
|
* @example
|
|
23
17
|
* ```typescript
|
|
24
|
-
* // app.ts
|
|
25
18
|
* import { createApp } from '@agentuity/runtime';
|
|
19
|
+
* import router from './src/api/router';
|
|
20
|
+
* import agents from './src/agent';
|
|
26
21
|
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* return { db };
|
|
31
|
-
* },
|
|
32
|
-
* shutdown: async (state) => {
|
|
33
|
-
* await state.db.close();
|
|
34
|
-
* }
|
|
22
|
+
* export default await createApp({
|
|
23
|
+
* router: { path: '/api', router },
|
|
24
|
+
* agents,
|
|
35
25
|
* });
|
|
36
|
-
*
|
|
37
|
-
* // Access state in agents via ctx.app.db
|
|
38
26
|
* ```
|
|
39
27
|
*/
|
|
40
28
|
export async function createApp(config) {
|
|
41
|
-
//
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
29
|
+
// --- Imports (lazy to avoid circular deps) ---
|
|
30
|
+
const { bootstrapRuntimeEnv } = await import('@agentuity/server');
|
|
31
|
+
const { register } = await import('./otel/config');
|
|
32
|
+
const { setGlobalLogger, setGlobalTracer, setGlobalRouter, getSpanProcessors } = await import('./_server');
|
|
33
|
+
const { createServices, getThreadProvider, getSessionProvider } = await import('./_services');
|
|
34
|
+
const { createBaseMiddleware, createCorsMiddleware, createOtelMiddleware, createCompressionMiddleware, } = await import('./middleware');
|
|
35
|
+
const { runAgentSetups, createAgentMiddleware } = await import('./agent');
|
|
36
|
+
const { loadBuildMetadata } = await import('./_metadata');
|
|
37
|
+
const { patchBunS3ForStorageDev } = await import('./bun-s3-patch');
|
|
38
|
+
const { createWorkbenchRouter } = await import('./workbench');
|
|
39
|
+
const { isDevelopment, resolveAnalyticsConfig, resolveWorkbenchConfig, registerHealthRoutes, registerAnalyticsRoutes, registerWebRoutes, registerWorkbenchUI, startServer, } = await import('./bootstrap');
|
|
40
|
+
const { websocket } = await import('hono/bun');
|
|
41
|
+
// --- Step 0: Environment ---
|
|
42
|
+
if (isDevelopment()) {
|
|
43
|
+
bootstrapRuntimeEnv();
|
|
50
44
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
globalThis.__AGENTUITY_SHUTDOWN__ = shutdown;
|
|
45
|
+
if (isDevelopment() && process.env.AGENTUITY_NO_BUNDLE === 'true') {
|
|
46
|
+
const { applyDevPatches } = await import('./dev-patches');
|
|
47
|
+
await applyDevPatches();
|
|
55
48
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
//
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
},
|
|
78
|
-
warn: (...args) => {
|
|
79
|
-
const gl = getLogger();
|
|
80
|
-
if (gl)
|
|
81
|
-
gl.warn(...args);
|
|
82
|
-
else
|
|
83
|
-
console.warn('[WARN]', ...args);
|
|
84
|
-
},
|
|
85
|
-
error: (...args) => {
|
|
86
|
-
const gl = getLogger();
|
|
87
|
-
if (gl)
|
|
88
|
-
gl.error(...args);
|
|
89
|
-
else
|
|
90
|
-
console.error('[ERROR]', ...args);
|
|
91
|
-
},
|
|
92
|
-
fatal: (...args) => {
|
|
93
|
-
const gl = getLogger();
|
|
94
|
-
if (gl)
|
|
95
|
-
return gl.fatal(...args);
|
|
96
|
-
// Fallback: log to console but let the real logger handle exit
|
|
97
|
-
console.error('[FATAL]', ...args);
|
|
98
|
-
throw new Error('Fatal error');
|
|
99
|
-
},
|
|
100
|
-
child: (bindings) => {
|
|
101
|
-
const gl = getLogger();
|
|
102
|
-
return gl ? gl.child(bindings) : logger;
|
|
103
|
-
},
|
|
104
|
-
};
|
|
105
|
-
// Create server info from environment
|
|
49
|
+
loadBuildMetadata();
|
|
50
|
+
patchBunS3ForStorageDev();
|
|
51
|
+
// --- Step 1: Telemetry ---
|
|
52
|
+
const otel = register({
|
|
53
|
+
processors: getSpanProcessors(),
|
|
54
|
+
logLevel: (process.env.AGENTUITY_LOG_LEVEL || 'info'),
|
|
55
|
+
});
|
|
56
|
+
setGlobalLogger(otel.logger);
|
|
57
|
+
setGlobalTracer(otel.tracer);
|
|
58
|
+
// --- Step 2: Router + middleware ---
|
|
59
|
+
const { createRouter } = await import('./router');
|
|
60
|
+
const app = createRouter();
|
|
61
|
+
setGlobalRouter(app);
|
|
62
|
+
app.use('*', createCompressionMiddleware(config?.compression));
|
|
63
|
+
app.use('*', createBaseMiddleware({
|
|
64
|
+
logger: otel.logger,
|
|
65
|
+
tracer: otel.tracer,
|
|
66
|
+
meter: otel.meter,
|
|
67
|
+
}));
|
|
68
|
+
app.use('/_agentuity/workbench/*', createOtelMiddleware());
|
|
69
|
+
// --- Step 3: Services ---
|
|
106
70
|
const port = process.env.PORT || '3500';
|
|
107
|
-
const
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
71
|
+
const serverUrl = `http://127.0.0.1:${port}`;
|
|
72
|
+
createServices(otel.logger, config, serverUrl);
|
|
73
|
+
const threadProvider = getThreadProvider();
|
|
74
|
+
const sessionProvider = getSessionProvider();
|
|
75
|
+
await threadProvider.initialize({});
|
|
76
|
+
await sessionProvider.initialize({});
|
|
77
|
+
// --- Step 4: Routes ---
|
|
78
|
+
const analyticsConfig = resolveAnalyticsConfig(config?.analytics);
|
|
79
|
+
const workbenchConfig = resolveWorkbenchConfig(config?.workbench);
|
|
80
|
+
registerHealthRoutes(app);
|
|
81
|
+
if (analyticsConfig.enabled) {
|
|
82
|
+
registerAnalyticsRoutes(app, analyticsConfig);
|
|
83
|
+
}
|
|
84
|
+
// Mount user routers
|
|
85
|
+
if (config?.router) {
|
|
86
|
+
const mounts = normalizeRouterConfig(config.router);
|
|
87
|
+
for (const mount of mounts) {
|
|
88
|
+
const prefix = mount.path.endsWith('/') ? mount.path + '*' : mount.path + '/*';
|
|
89
|
+
app.use(prefix, createCorsMiddleware(config?.cors));
|
|
90
|
+
app.use(prefix, createOtelMiddleware());
|
|
91
|
+
app.use(prefix, createAgentMiddleware(''));
|
|
92
|
+
app.route(mount.path, mount.router);
|
|
93
|
+
}
|
|
115
94
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
95
|
+
// Workbench
|
|
96
|
+
const workbenchRouter = createWorkbenchRouter();
|
|
97
|
+
app.route('/', workbenchRouter);
|
|
98
|
+
registerWorkbenchUI(app, workbenchConfig);
|
|
99
|
+
// Web (production static serving)
|
|
100
|
+
registerWebRoutes(app, analyticsConfig);
|
|
101
|
+
// --- Step 5: Agent lifecycle + server ---
|
|
102
|
+
await runAgentSetups({});
|
|
103
|
+
// In dev mode with --hot, Bun manages the server via the default export's
|
|
104
|
+
// `fetch` property. In production, we start Bun.serve() explicitly.
|
|
105
|
+
if (!isDevelopment()) {
|
|
106
|
+
startServer(app, { requestTimeout: config?.requestTimeout });
|
|
107
|
+
}
|
|
108
|
+
// Only log on first startup, not on --hot reloads
|
|
109
|
+
const { serverStarted } = await import('./_globals');
|
|
110
|
+
if (!serverStarted.get()) {
|
|
111
|
+
serverStarted.set(true);
|
|
112
|
+
otel.logger.debug('Server listening on %s', serverUrl);
|
|
113
|
+
}
|
|
114
|
+
const portNumber = parseInt(port, 10);
|
|
115
|
+
const result = {
|
|
120
116
|
config,
|
|
121
|
-
router,
|
|
122
|
-
server,
|
|
123
|
-
logger,
|
|
124
|
-
|
|
125
|
-
|
|
117
|
+
router: app,
|
|
118
|
+
server: { url: serverUrl },
|
|
119
|
+
logger: otel.logger,
|
|
120
|
+
// Bun --hot picks up `fetch` and `port` on the default export to
|
|
121
|
+
// hot-swap the running server's request handler without restarting.
|
|
122
|
+
fetch: app.fetch,
|
|
123
|
+
port: portNumber,
|
|
124
|
+
hostname: '127.0.0.1',
|
|
125
|
+
websocket,
|
|
126
126
|
};
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
*/
|
|
139
|
-
export function getAppConfig() {
|
|
140
|
-
return globalThis.__AGENTUITY_APP_CONFIG__;
|
|
127
|
+
// In production, startServer() already called Bun.serve(). If we leave
|
|
128
|
+
// `fetch` + `port` on the default export, Bun v1.2+ auto-serves from it
|
|
129
|
+
// too — causing EADDRINUSE. Strip those properties so only the explicit
|
|
130
|
+
// Bun.serve() is active.
|
|
131
|
+
if (!isDevelopment()) {
|
|
132
|
+
delete result.fetch;
|
|
133
|
+
delete result.port;
|
|
134
|
+
delete result.hostname;
|
|
135
|
+
delete result.websocket;
|
|
136
|
+
}
|
|
137
|
+
return result;
|
|
141
138
|
}
|
|
142
139
|
/**
|
|
143
140
|
* Normalize the router config into a consistent RouteMount[] form.
|
|
@@ -146,7 +143,7 @@ export function getAppConfig() {
|
|
|
146
143
|
* - [{ path, router }, ...] → as-is
|
|
147
144
|
* @internal
|
|
148
145
|
*/
|
|
149
|
-
function normalizeRouterConfig(
|
|
146
|
+
export function normalizeRouterConfig(
|
|
150
147
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
151
148
|
router) {
|
|
152
149
|
if (Array.isArray(router)) {
|
|
@@ -158,40 +155,17 @@ router) {
|
|
|
158
155
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
159
156
|
return [{ path: '/api', router: router }];
|
|
160
157
|
}
|
|
161
|
-
/**
|
|
162
|
-
* Get the user-provided router mounts from createApp({ router }).
|
|
163
|
-
* Returns undefined if no user router was provided (file-based routing).
|
|
164
|
-
* Used by generated entry file to skip file-based route discovery.
|
|
165
|
-
* @internal
|
|
166
|
-
*/
|
|
167
|
-
export function getUserRouter() {
|
|
168
|
-
return globalThis.__AGENTUITY_USER_ROUTER__;
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Set the global app config (for testing purposes)
|
|
172
|
-
* @internal
|
|
173
|
-
*/
|
|
174
|
-
export function setAppConfig(config) {
|
|
175
|
-
if (config === undefined) {
|
|
176
|
-
delete globalThis.__AGENTUITY_APP_CONFIG__;
|
|
177
|
-
}
|
|
178
|
-
else {
|
|
179
|
-
globalThis.__AGENTUITY_APP_CONFIG__ = config;
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
/**
|
|
183
|
-
* Symbol used to store shutdown hooks in globalThis.
|
|
184
|
-
*/
|
|
185
|
-
const SHUTDOWN_HOOKS_KEY = Symbol.for('@agentuity/runtime:shutdown-hooks');
|
|
186
158
|
/**
|
|
187
159
|
* Gets the global shutdown hooks registry.
|
|
188
160
|
*/
|
|
189
161
|
function getShutdownHooks() {
|
|
190
|
-
const
|
|
191
|
-
|
|
192
|
-
|
|
162
|
+
const key = Symbol.for('@agentuity/runtime:shutdown-hooks');
|
|
163
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
164
|
+
const g = globalThis;
|
|
165
|
+
if (!g[key]) {
|
|
166
|
+
g[key] = [];
|
|
193
167
|
}
|
|
194
|
-
return
|
|
168
|
+
return g[key];
|
|
195
169
|
}
|
|
196
170
|
/**
|
|
197
171
|
* Registers a shutdown hook to be called during graceful shutdown.
|
|
@@ -229,21 +203,12 @@ export function registerShutdownHook(hook) {
|
|
|
229
203
|
};
|
|
230
204
|
}
|
|
231
205
|
/**
|
|
232
|
-
* Run
|
|
233
|
-
* Called
|
|
206
|
+
* Run all registered shutdown hooks.
|
|
207
|
+
* Called during graceful shutdown (SIGTERM/SIGINT).
|
|
234
208
|
*
|
|
235
|
-
*
|
|
236
|
-
* 1. App's shutdown callback (if defined)
|
|
237
|
-
* 2. Registered shutdown hooks (in reverse order - LIFO)
|
|
209
|
+
* Hooks are called in reverse order of registration (LIFO).
|
|
238
210
|
*/
|
|
239
211
|
export async function runShutdown() {
|
|
240
|
-
// Run app's shutdown callback first
|
|
241
|
-
const shutdown = globalThis.__AGENTUITY_SHUTDOWN__;
|
|
242
|
-
if (shutdown) {
|
|
243
|
-
const state = getAppState();
|
|
244
|
-
await shutdown(state);
|
|
245
|
-
}
|
|
246
|
-
// Run registered shutdown hooks in reverse order (LIFO)
|
|
247
212
|
const hooks = getShutdownHooks();
|
|
248
213
|
for (let i = hooks.length - 1; i >= 0; i--) {
|
|
249
214
|
const hook = hooks[i];
|
package/dist/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server lifecycle helpers.
|
|
3
|
+
*
|
|
4
|
+
* These functions are called by createApp() to set up routes, middleware,
|
|
5
|
+
* and the Bun HTTP server. They're kept separate to keep createApp() focused
|
|
6
|
+
* on orchestration while these handle the details.
|
|
7
|
+
*/
|
|
8
|
+
import type { AnalyticsOptions, WorkbenchOptions } from './app';
|
|
9
|
+
import { createRouter } from './router';
|
|
10
|
+
/**
|
|
11
|
+
* Check if running in development mode.
|
|
12
|
+
*
|
|
13
|
+
* The CLI dev server explicitly sets NODE_ENV='development'. In production
|
|
14
|
+
* (cloud deployment, CI integration test running a built app.js), NODE_ENV
|
|
15
|
+
* may be 'production' or unset entirely. When unset, we assume production
|
|
16
|
+
* — the dev server always sets it, so absence means production.
|
|
17
|
+
*/
|
|
18
|
+
export declare const isDevelopment: () => boolean;
|
|
19
|
+
/** Resolve analytics config with defaults */
|
|
20
|
+
export declare function resolveAnalyticsConfig(analytics: boolean | AnalyticsOptions | undefined): AnalyticsOptions & {
|
|
21
|
+
enabled: boolean;
|
|
22
|
+
};
|
|
23
|
+
/** Resolve workbench config */
|
|
24
|
+
export declare function resolveWorkbenchConfig(workbench: boolean | string | WorkbenchOptions | undefined): {
|
|
25
|
+
enabled: boolean;
|
|
26
|
+
route: string;
|
|
27
|
+
headers: Record<string, string>;
|
|
28
|
+
};
|
|
29
|
+
/** Register analytics routes on the app */
|
|
30
|
+
export declare function registerAnalyticsRoutes(app: ReturnType<typeof createRouter>, _analyticsConfig: AnalyticsOptions & {
|
|
31
|
+
enabled: boolean;
|
|
32
|
+
}): void;
|
|
33
|
+
export declare function registerHealthRoutes(app: ReturnType<typeof createRouter>): void;
|
|
34
|
+
export declare function registerWebRoutes(app: ReturnType<typeof createRouter>, analyticsConfig: AnalyticsOptions & {
|
|
35
|
+
enabled: boolean;
|
|
36
|
+
}): void;
|
|
37
|
+
export declare function registerWorkbenchUI(app: ReturnType<typeof createRouter>, workbenchConfig: {
|
|
38
|
+
enabled: boolean;
|
|
39
|
+
route: string;
|
|
40
|
+
}): void;
|
|
41
|
+
export declare function startServer(app: ReturnType<typeof createRouter>, options?: {
|
|
42
|
+
requestTimeout?: number;
|
|
43
|
+
}): void;
|
|
44
|
+
//# sourceMappingURL=bootstrap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAiBxC;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,eAAuD,CAAC;AAMlF,6CAA6C;AAC7C,wBAAgB,sBAAsB,CACrC,SAAS,EAAE,OAAO,GAAG,gBAAgB,GAAG,SAAS,GAC/C,gBAAgB,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAmBzC;AAED,+BAA+B;AAC/B,wBAAgB,sBAAsB,CACrC,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,gBAAgB,GAAG,SAAS,GACxD;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAetE;AA2CD,2CAA2C;AAC3C,wBAAgB,uBAAuB,CACtC,GAAG,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,EACpC,gBAAgB,EAAE,gBAAgB,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GACvD,IAAI,CA2BN;AAMD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,GAAG,IAAI,CA2B/E;AAMD,wBAAgB,iBAAiB,CAChC,GAAG,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,EACpC,eAAe,EAAE,gBAAgB,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GACtD,IAAI,CA6CN;AAMD,wBAAgB,mBAAmB,CAClC,GAAG,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,EACpC,eAAe,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAClD,IAAI,CAaN;AAMD,wBAAgB,WAAW,CAC1B,GAAG,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,EACpC,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GACnC,IAAI,CAkCN"}
|