@mondaydotcomorg/atp-server 0.17.14
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/README.md +489 -0
- package/dist/aggregator/index.d.ts +59 -0
- package/dist/aggregator/index.d.ts.map +1 -0
- package/dist/aggregator/index.js +171 -0
- package/dist/aggregator/index.js.map +1 -0
- package/dist/callback/index.d.ts +98 -0
- package/dist/callback/index.d.ts.map +1 -0
- package/dist/callback/index.js +136 -0
- package/dist/callback/index.js.map +1 -0
- package/dist/client-sessions.d.ts +82 -0
- package/dist/client-sessions.d.ts.map +1 -0
- package/dist/client-sessions.js +174 -0
- package/dist/client-sessions.js.map +1 -0
- package/dist/controllers/definitions.controller.d.ts +4 -0
- package/dist/controllers/definitions.controller.d.ts.map +1 -0
- package/dist/controllers/definitions.controller.js +11 -0
- package/dist/controllers/definitions.controller.js.map +1 -0
- package/dist/controllers/execute.controller.d.ts +18 -0
- package/dist/controllers/execute.controller.d.ts.map +1 -0
- package/dist/controllers/execute.controller.js +122 -0
- package/dist/controllers/execute.controller.js.map +1 -0
- package/dist/controllers/info.controller.d.ts +3 -0
- package/dist/controllers/info.controller.d.ts.map +1 -0
- package/dist/controllers/info.controller.js +13 -0
- package/dist/controllers/info.controller.js.map +1 -0
- package/dist/controllers/resume.controller.d.ts +11 -0
- package/dist/controllers/resume.controller.d.ts.map +1 -0
- package/dist/controllers/resume.controller.js +61 -0
- package/dist/controllers/resume.controller.js.map +1 -0
- package/dist/controllers/search.controller.d.ts +4 -0
- package/dist/controllers/search.controller.d.ts.map +1 -0
- package/dist/controllers/search.controller.js +7 -0
- package/dist/controllers/search.controller.js.map +1 -0
- package/dist/controllers/stream.controller.d.ts +19 -0
- package/dist/controllers/stream.controller.d.ts.map +1 -0
- package/dist/controllers/stream.controller.js +141 -0
- package/dist/controllers/stream.controller.js.map +1 -0
- package/dist/core/config.d.ts +161 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +7 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/http.d.ts +4 -0
- package/dist/core/http.d.ts.map +1 -0
- package/dist/core/http.js +17 -0
- package/dist/core/http.js.map +1 -0
- package/dist/create-server.d.ts +120 -0
- package/dist/create-server.d.ts.map +1 -0
- package/dist/create-server.js +423 -0
- package/dist/create-server.js.map +1 -0
- package/dist/execution-state/index.d.ts +95 -0
- package/dist/execution-state/index.d.ts.map +1 -0
- package/dist/execution-state/index.js +128 -0
- package/dist/execution-state/index.js.map +1 -0
- package/dist/executor/ast-provenance-bridge.d.ts +12 -0
- package/dist/executor/ast-provenance-bridge.d.ts.map +1 -0
- package/dist/executor/ast-provenance-bridge.js +66 -0
- package/dist/executor/ast-provenance-bridge.js.map +1 -0
- package/dist/executor/ast-tracking-runtime.d.ts +7 -0
- package/dist/executor/ast-tracking-runtime.d.ts.map +1 -0
- package/dist/executor/ast-tracking-runtime.js +559 -0
- package/dist/executor/ast-tracking-runtime.js.map +1 -0
- package/dist/executor/bootstrap-generated.d.ts +32 -0
- package/dist/executor/bootstrap-generated.d.ts.map +1 -0
- package/dist/executor/bootstrap-generated.js +90 -0
- package/dist/executor/bootstrap-generated.js.map +1 -0
- package/dist/executor/compiler-config.d.ts +32 -0
- package/dist/executor/compiler-config.d.ts.map +1 -0
- package/dist/executor/compiler-config.js +99 -0
- package/dist/executor/compiler-config.js.map +1 -0
- package/dist/executor/constants.d.ts +4 -0
- package/dist/executor/constants.d.ts.map +1 -0
- package/dist/executor/constants.js +4 -0
- package/dist/executor/constants.js.map +1 -0
- package/dist/executor/error-handler.d.ts +9 -0
- package/dist/executor/error-handler.d.ts.map +1 -0
- package/dist/executor/error-handler.js +95 -0
- package/dist/executor/error-handler.js.map +1 -0
- package/dist/executor/execution-error-handler.d.ts +7 -0
- package/dist/executor/execution-error-handler.d.ts.map +1 -0
- package/dist/executor/execution-error-handler.js +136 -0
- package/dist/executor/execution-error-handler.js.map +1 -0
- package/dist/executor/executor.d.ts +20 -0
- package/dist/executor/executor.d.ts.map +1 -0
- package/dist/executor/executor.js +452 -0
- package/dist/executor/executor.js.map +1 -0
- package/dist/executor/index.d.ts +4 -0
- package/dist/executor/index.d.ts.map +1 -0
- package/dist/executor/index.js +3 -0
- package/dist/executor/index.js.map +1 -0
- package/dist/executor/resume-handler.d.ts +9 -0
- package/dist/executor/resume-handler.d.ts.map +1 -0
- package/dist/executor/resume-handler.js +22 -0
- package/dist/executor/resume-handler.js.map +1 -0
- package/dist/executor/sandbox-builder.d.ts +29 -0
- package/dist/executor/sandbox-builder.d.ts.map +1 -0
- package/dist/executor/sandbox-builder.js +538 -0
- package/dist/executor/sandbox-builder.js.map +1 -0
- package/dist/executor/sandbox-injector.d.ts +7 -0
- package/dist/executor/sandbox-injector.d.ts.map +1 -0
- package/dist/executor/sandbox-injector.js +293 -0
- package/dist/executor/sandbox-injector.js.map +1 -0
- package/dist/executor/types.d.ts +21 -0
- package/dist/executor/types.d.ts.map +1 -0
- package/dist/executor/types.js +2 -0
- package/dist/executor/types.js.map +1 -0
- package/dist/explorer/index.d.ts +69 -0
- package/dist/explorer/index.d.ts.map +1 -0
- package/dist/explorer/index.js +228 -0
- package/dist/explorer/index.js.map +1 -0
- package/dist/handlers/definitions.handler.d.ts +3 -0
- package/dist/handlers/definitions.handler.d.ts.map +1 -0
- package/dist/handlers/definitions.handler.js +11 -0
- package/dist/handlers/definitions.handler.js.map +1 -0
- package/dist/handlers/execute.handler.d.ts +7 -0
- package/dist/handlers/execute.handler.d.ts.map +1 -0
- package/dist/handlers/execute.handler.js +225 -0
- package/dist/handlers/execute.handler.js.map +1 -0
- package/dist/handlers/explorer.handler.d.ts +4 -0
- package/dist/handlers/explorer.handler.d.ts.map +1 -0
- package/dist/handlers/explorer.handler.js +10 -0
- package/dist/handlers/explorer.handler.js.map +1 -0
- package/dist/handlers/init.handler.d.ts +5 -0
- package/dist/handlers/init.handler.d.ts.map +1 -0
- package/dist/handlers/init.handler.js +41 -0
- package/dist/handlers/init.handler.js.map +1 -0
- package/dist/handlers/resume.handler.d.ts +6 -0
- package/dist/handlers/resume.handler.d.ts.map +1 -0
- package/dist/handlers/resume.handler.js +256 -0
- package/dist/handlers/resume.handler.js.map +1 -0
- package/dist/handlers/search.handler.d.ts +5 -0
- package/dist/handlers/search.handler.d.ts.map +1 -0
- package/dist/handlers/search.handler.js +11 -0
- package/dist/handlers/search.handler.js.map +1 -0
- package/dist/http/request-handler.d.ts +15 -0
- package/dist/http/request-handler.d.ts.map +1 -0
- package/dist/http/request-handler.js +94 -0
- package/dist/http/request-handler.js.map +1 -0
- package/dist/http/router.d.ts +4 -0
- package/dist/http/router.d.ts.map +1 -0
- package/dist/http/router.js +32 -0
- package/dist/http/router.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/instrumentation/index.d.ts +5 -0
- package/dist/instrumentation/index.d.ts.map +1 -0
- package/dist/instrumentation/index.js +5 -0
- package/dist/instrumentation/index.js.map +1 -0
- package/dist/instrumentation/serializer.d.ts +61 -0
- package/dist/instrumentation/serializer.d.ts.map +1 -0
- package/dist/instrumentation/serializer.js +334 -0
- package/dist/instrumentation/serializer.js.map +1 -0
- package/dist/instrumentation/state-manager.d.ts +61 -0
- package/dist/instrumentation/state-manager.d.ts.map +1 -0
- package/dist/instrumentation/state-manager.js +205 -0
- package/dist/instrumentation/state-manager.js.map +1 -0
- package/dist/instrumentation/transformer.d.ts +9 -0
- package/dist/instrumentation/transformer.d.ts.map +1 -0
- package/dist/instrumentation/transformer.js +70 -0
- package/dist/instrumentation/transformer.js.map +1 -0
- package/dist/instrumentation/types.d.ts +59 -0
- package/dist/instrumentation/types.d.ts.map +1 -0
- package/dist/instrumentation/types.js +5 -0
- package/dist/instrumentation/types.js.map +1 -0
- package/dist/middleware/audit.d.ts +18 -0
- package/dist/middleware/audit.d.ts.map +1 -0
- package/dist/middleware/audit.js +76 -0
- package/dist/middleware/audit.js.map +1 -0
- package/dist/openapi/index.d.ts +133 -0
- package/dist/openapi/index.d.ts.map +1 -0
- package/dist/openapi/index.js +235 -0
- package/dist/openapi/index.js.map +1 -0
- package/dist/openapi-loader.d.ts +87 -0
- package/dist/openapi-loader.d.ts.map +1 -0
- package/dist/openapi-loader.js +491 -0
- package/dist/openapi-loader.js.map +1 -0
- package/dist/routes/index.d.ts +21 -0
- package/dist/routes/index.d.ts.map +1 -0
- package/dist/routes/index.js +47 -0
- package/dist/routes/index.js.map +1 -0
- package/dist/search/index.d.ts +48 -0
- package/dist/search/index.d.ts.map +1 -0
- package/dist/search/index.js +156 -0
- package/dist/search/index.js.map +1 -0
- package/dist/security/index.d.ts +2 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +2 -0
- package/dist/security/index.js.map +1 -0
- package/dist/shutdown.d.ts +19 -0
- package/dist/shutdown.d.ts.map +1 -0
- package/dist/shutdown.js +87 -0
- package/dist/shutdown.js.map +1 -0
- package/dist/utils/banner.d.ts +12 -0
- package/dist/utils/banner.d.ts.map +1 -0
- package/dist/utils/banner.js +18 -0
- package/dist/utils/banner.js.map +1 -0
- package/dist/utils/context.d.ts +16 -0
- package/dist/utils/context.d.ts.map +1 -0
- package/dist/utils/context.js +44 -0
- package/dist/utils/context.js.map +1 -0
- package/dist/utils/error.d.ts +8 -0
- package/dist/utils/error.d.ts.map +1 -0
- package/dist/utils/error.js +17 -0
- package/dist/utils/error.js.map +1 -0
- package/dist/utils/hint-based-instrumentation.d.ts +14 -0
- package/dist/utils/hint-based-instrumentation.d.ts.map +1 -0
- package/dist/utils/hint-based-instrumentation.js +84 -0
- package/dist/utils/hint-based-instrumentation.js.map +1 -0
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +8 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/info.d.ts +20 -0
- package/dist/utils/info.d.ts.map +1 -0
- package/dist/utils/info.js +15 -0
- package/dist/utils/info.js.map +1 -0
- package/dist/utils/provenance-reattachment.d.ts +32 -0
- package/dist/utils/provenance-reattachment.d.ts.map +1 -0
- package/dist/utils/provenance-reattachment.js +115 -0
- package/dist/utils/provenance-reattachment.js.map +1 -0
- package/dist/utils/request.d.ts +21 -0
- package/dist/utils/request.d.ts.map +1 -0
- package/dist/utils/request.js +44 -0
- package/dist/utils/request.js.map +1 -0
- package/dist/utils/response.d.ts +30 -0
- package/dist/utils/response.d.ts.map +1 -0
- package/dist/utils/response.js +53 -0
- package/dist/utils/response.js.map +1 -0
- package/dist/utils/runtime-types.d.ts +6 -0
- package/dist/utils/runtime-types.d.ts.map +1 -0
- package/dist/utils/runtime-types.js +14 -0
- package/dist/utils/runtime-types.js.map +1 -0
- package/dist/utils/schema.d.ts +9 -0
- package/dist/utils/schema.d.ts.map +1 -0
- package/dist/utils/schema.js +13 -0
- package/dist/utils/schema.js.map +1 -0
- package/dist/utils/token-emitter.d.ts +21 -0
- package/dist/utils/token-emitter.d.ts.map +1 -0
- package/dist/utils/token-emitter.js +129 -0
- package/dist/utils/token-emitter.js.map +1 -0
- package/dist/validator/index.d.ts +36 -0
- package/dist/validator/index.d.ts.map +1 -0
- package/dist/validator/index.js +224 -0
- package/dist/validator/index.js.map +1 -0
- package/package.json +68 -0
- package/src/aggregator/index.ts +207 -0
- package/src/callback/index.ts +191 -0
- package/src/client-sessions.ts +234 -0
- package/src/controllers/definitions.controller.ts +19 -0
- package/src/controllers/execute.controller.ts +166 -0
- package/src/controllers/info.controller.ts +14 -0
- package/src/controllers/resume.controller.ts +92 -0
- package/src/controllers/search.controller.ts +16 -0
- package/src/controllers/stream.controller.ts +190 -0
- package/src/core/config.ts +180 -0
- package/src/core/http.ts +21 -0
- package/src/create-server.ts +536 -0
- package/src/execution-state/index.ts +204 -0
- package/src/executor/ast-provenance-bridge.ts +80 -0
- package/src/executor/ast-tracking-runtime.ts +558 -0
- package/src/executor/bootstrap-generated.ts +90 -0
- package/src/executor/compiler-config.ts +146 -0
- package/src/executor/constants.ts +5 -0
- package/src/executor/error-handler.ts +118 -0
- package/src/executor/execution-error-handler.ts +178 -0
- package/src/executor/executor.ts +631 -0
- package/src/executor/index.ts +3 -0
- package/src/executor/resume-handler.ts +39 -0
- package/src/executor/sandbox-builder.ts +684 -0
- package/src/executor/sandbox-injector.ts +345 -0
- package/src/executor/types.ts +22 -0
- package/src/explorer/index.ts +297 -0
- package/src/handlers/definitions.handler.ts +13 -0
- package/src/handlers/execute.handler.ts +286 -0
- package/src/handlers/explorer.handler.ts +18 -0
- package/src/handlers/init.handler.ts +53 -0
- package/src/handlers/resume.handler.ts +316 -0
- package/src/handlers/search.handler.ts +32 -0
- package/src/http/request-handler.ts +117 -0
- package/src/http/router.ts +29 -0
- package/src/index.ts +60 -0
- package/src/instrumentation/index.ts +4 -0
- package/src/instrumentation/serializer.ts +421 -0
- package/src/instrumentation/state-manager.ts +237 -0
- package/src/instrumentation/transformer.ts +84 -0
- package/src/instrumentation/types.ts +76 -0
- package/src/middleware/audit.ts +101 -0
- package/src/openapi/index.ts +378 -0
- package/src/openapi-loader.ts +744 -0
- package/src/routes/index.ts +93 -0
- package/src/search/index.ts +216 -0
- package/src/security/index.ts +1 -0
- package/src/shutdown.ts +108 -0
- package/src/utils/banner.ts +25 -0
- package/src/utils/context.ts +58 -0
- package/src/utils/error.ts +25 -0
- package/src/utils/hint-based-instrumentation.ts +99 -0
- package/src/utils/index.ts +15 -0
- package/src/utils/info.ts +31 -0
- package/src/utils/provenance-reattachment.ts +144 -0
- package/src/utils/request.ts +53 -0
- package/src/utils/response.ts +69 -0
- package/src/utils/runtime-types.ts +14 -0
- package/src/utils/schema.ts +18 -0
- package/src/utils/token-emitter.ts +182 -0
- package/src/validator/index.ts +253 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { ExecutionErrorCode, sanitizeInput, MAX_CODE_SIZE } from '@mondaydotcomorg/atp-protocol';
|
|
2
|
+
import { auditExecution } from '../middleware/audit.js';
|
|
3
|
+
import { clientCallbackManager } from '../callback/index.js';
|
|
4
|
+
import { nanoid } from 'nanoid';
|
|
5
|
+
export async function handleExecute(req, res, context, body, clientId, logger) {
|
|
6
|
+
let request;
|
|
7
|
+
try {
|
|
8
|
+
request = JSON.parse(body);
|
|
9
|
+
}
|
|
10
|
+
catch (error) {
|
|
11
|
+
logger.warn('Invalid request body', { error });
|
|
12
|
+
res.writeHead(400, { 'Content-Type': 'application/json' });
|
|
13
|
+
res.end(JSON.stringify({
|
|
14
|
+
error: 'Invalid request body',
|
|
15
|
+
message: error instanceof Error ? error.message : 'Failed to parse request',
|
|
16
|
+
}));
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
request.code = sanitizeInput(request.code, MAX_CODE_SIZE);
|
|
20
|
+
if (clientId && request.config?.clientServices) {
|
|
21
|
+
clientCallbackManager.registerClient(clientId, request.config.clientServices);
|
|
22
|
+
logger.info('Client services registered', {
|
|
23
|
+
clientId,
|
|
24
|
+
services: request.config.clientServices,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
if (clientId) {
|
|
28
|
+
clientCallbackManager.updateClientActivity(clientId);
|
|
29
|
+
}
|
|
30
|
+
const executionConfig = {
|
|
31
|
+
timeout: request.config?.timeout ?? context.defaultTimeout,
|
|
32
|
+
maxMemory: request.config?.maxMemory ?? context.defaultMemoryLimit,
|
|
33
|
+
maxLLMCalls: request.config?.maxLLMCalls ?? context.defaultLLMCallLimit,
|
|
34
|
+
allowedAPIs: request.config?.allowedAPIs ?? [],
|
|
35
|
+
allowLLMCalls: request.config?.allowLLMCalls ?? true,
|
|
36
|
+
clientServices: request.config?.clientServices,
|
|
37
|
+
provenanceMode: request.config?.provenanceMode,
|
|
38
|
+
securityPolicies: request.config?.securityPolicies,
|
|
39
|
+
provenanceHints: request.config?.provenanceHints,
|
|
40
|
+
};
|
|
41
|
+
logger.info('Validating code for execution', {
|
|
42
|
+
codeLength: request.code.length,
|
|
43
|
+
timeout: executionConfig.timeout,
|
|
44
|
+
clientServices: executionConfig.clientServices,
|
|
45
|
+
});
|
|
46
|
+
const validationResult = await context.validator.validate(request.code, executionConfig);
|
|
47
|
+
if (!validationResult.valid) {
|
|
48
|
+
logger.warn('Code validation failed', {
|
|
49
|
+
errors: validationResult.errors?.length,
|
|
50
|
+
securityIssues: validationResult.securityIssues?.length,
|
|
51
|
+
});
|
|
52
|
+
const hasSecurityIssues = validationResult.securityIssues && validationResult.securityIssues.length > 0;
|
|
53
|
+
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
54
|
+
res.end(JSON.stringify({
|
|
55
|
+
executionId: nanoid(),
|
|
56
|
+
status: hasSecurityIssues ? 'security_violation' : 'validation_failed',
|
|
57
|
+
error: {
|
|
58
|
+
message: 'Code validation failed',
|
|
59
|
+
code: hasSecurityIssues
|
|
60
|
+
? ExecutionErrorCode.SECURITY_VIOLATION
|
|
61
|
+
: ExecutionErrorCode.VALIDATION_FAILED,
|
|
62
|
+
context: {
|
|
63
|
+
errors: validationResult.errors,
|
|
64
|
+
securityIssues: validationResult.securityIssues,
|
|
65
|
+
},
|
|
66
|
+
retryable: false,
|
|
67
|
+
suggestion: hasSecurityIssues
|
|
68
|
+
? 'Remove forbidden operations and use only allowed APIs'
|
|
69
|
+
: 'Fix syntax errors and validation issues in your code',
|
|
70
|
+
},
|
|
71
|
+
stats: {
|
|
72
|
+
duration: 0,
|
|
73
|
+
memoryUsed: 0,
|
|
74
|
+
llmCallsCount: 0,
|
|
75
|
+
approvalCallsCount: 0,
|
|
76
|
+
httpCallsCount: 0,
|
|
77
|
+
},
|
|
78
|
+
}));
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
logger.info('Executing code in sandbox');
|
|
82
|
+
const result = await context.executor.execute(request.code, executionConfig, clientId);
|
|
83
|
+
logger.info('Code execution completed', {
|
|
84
|
+
executionId: result.executionId,
|
|
85
|
+
status: result.status,
|
|
86
|
+
duration: result.stats.duration,
|
|
87
|
+
memoryUsed: result.stats.memoryUsed,
|
|
88
|
+
llmCalls: result.stats.llmCallsCount,
|
|
89
|
+
approvalCalls: result.stats.approvalCallsCount,
|
|
90
|
+
});
|
|
91
|
+
if (result.status === 'paused' && result.needsCallback && clientId && result.callbackHistory) {
|
|
92
|
+
await context.stateManager.pause({
|
|
93
|
+
executionId: result.executionId,
|
|
94
|
+
code: request.code,
|
|
95
|
+
config: executionConfig,
|
|
96
|
+
clientId,
|
|
97
|
+
callbackRequest: result.needsCallback,
|
|
98
|
+
pausedAt: Date.now(),
|
|
99
|
+
callbackHistory: result.callbackHistory,
|
|
100
|
+
currentCallbackIndex: result.callbackHistory.length - 1,
|
|
101
|
+
context: {},
|
|
102
|
+
});
|
|
103
|
+
logger.info('Execution state saved', {
|
|
104
|
+
executionId: result.executionId,
|
|
105
|
+
callbackType: result.needsCallback.type,
|
|
106
|
+
storage: context.stateManager.getStorageType(),
|
|
107
|
+
historyLength: result.callbackHistory.length,
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
if (context.auditConfig?.enabled) {
|
|
111
|
+
await auditExecution({
|
|
112
|
+
executionId: result.executionId,
|
|
113
|
+
apiKey: req.apiKey,
|
|
114
|
+
ip: req.socket.remoteAddress,
|
|
115
|
+
code: request.code,
|
|
116
|
+
result,
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
120
|
+
res.end(JSON.stringify(result));
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=execute.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execute.controller.js","sourceRoot":"","sources":["../../src/controllers/execute.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/info.controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGjE,wBAAsB,UAAU,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAUzF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { sendJson } from '../utils/response.js';
|
|
2
|
+
export async function handleInfo(req, res) {
|
|
3
|
+
sendJson(res, {
|
|
4
|
+
version: '1.0.0',
|
|
5
|
+
capabilities: {
|
|
6
|
+
execution: true,
|
|
7
|
+
search: true,
|
|
8
|
+
streaming: true,
|
|
9
|
+
llmCalls: true,
|
|
10
|
+
},
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=info.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.controller.js","sourceRoot":"","sources":["../../src/controllers/info.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAoB,EAAE,GAAmB;IACzE,QAAQ,CAAC,GAAG,EAAE;QACb,OAAO,EAAE,OAAO;QAChB,YAAY,EAAE;YACb,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,IAAI;SACd;KACD,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
2
|
+
import type { SandboxExecutor } from '../executor/index.js';
|
|
3
|
+
import type { ExecutionStateManager } from '../execution-state/index.js';
|
|
4
|
+
import type { log } from '@mondaydotcomorg/atp-runtime';
|
|
5
|
+
interface ResumeContext {
|
|
6
|
+
executor: SandboxExecutor;
|
|
7
|
+
stateManager: ExecutionStateManager;
|
|
8
|
+
}
|
|
9
|
+
export declare function handleResume(req: IncomingMessage, res: ServerResponse, context: ResumeContext, executionId: string, body: string, logger: ReturnType<typeof log.child>): Promise<void>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=resume.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resume.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/resume.controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AAExD,UAAU,aAAa;IACtB,QAAQ,EAAE,eAAe,CAAC;IAC1B,YAAY,EAAE,qBAAqB,CAAC;CACpC;AAED,wBAAsB,YAAY,CACjC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,UAAU,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,GAClC,OAAO,CAAC,IAAI,CAAC,CA0Ef"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export async function handleResume(req, res, context, executionId, body, logger) {
|
|
2
|
+
logger.info('Resuming paused execution', { executionId });
|
|
3
|
+
const pausedState = await context.stateManager.get(executionId);
|
|
4
|
+
if (!pausedState) {
|
|
5
|
+
logger.warn('Execution not found or expired', { executionId });
|
|
6
|
+
res.writeHead(404, { 'Content-Type': 'application/json' });
|
|
7
|
+
res.end(JSON.stringify({ error: 'Execution not found or expired' }));
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
const { result: callbackResult } = JSON.parse(body);
|
|
11
|
+
logger.info('Client callback result received', {
|
|
12
|
+
executionId,
|
|
13
|
+
callbackType: pausedState.callbackRequest.type,
|
|
14
|
+
operation: pausedState.callbackRequest.operation,
|
|
15
|
+
});
|
|
16
|
+
const updatedHistory = pausedState.callbackHistory.map((record, index) => {
|
|
17
|
+
if (index === pausedState.currentCallbackIndex) {
|
|
18
|
+
return { ...record, result: callbackResult };
|
|
19
|
+
}
|
|
20
|
+
return record;
|
|
21
|
+
});
|
|
22
|
+
logger.info('Re-executing with replay', {
|
|
23
|
+
executionId,
|
|
24
|
+
historyLength: updatedHistory.length,
|
|
25
|
+
});
|
|
26
|
+
const result = await context.executor.execute(pausedState.code, pausedState.config, pausedState.clientId, {
|
|
27
|
+
callbackHistory: updatedHistory,
|
|
28
|
+
newCallbackResult: callbackResult,
|
|
29
|
+
executionId,
|
|
30
|
+
});
|
|
31
|
+
logger.info('Resumed execution completed', {
|
|
32
|
+
executionId: result.executionId,
|
|
33
|
+
status: result.status,
|
|
34
|
+
duration: result.stats.duration,
|
|
35
|
+
});
|
|
36
|
+
if (result.status === 'paused' && result.needsCallback && result.callbackHistory) {
|
|
37
|
+
await context.stateManager.pause({
|
|
38
|
+
executionId: result.executionId,
|
|
39
|
+
code: pausedState.code,
|
|
40
|
+
config: pausedState.config,
|
|
41
|
+
clientId: pausedState.clientId,
|
|
42
|
+
callbackRequest: result.needsCallback,
|
|
43
|
+
pausedAt: Date.now(),
|
|
44
|
+
callbackHistory: result.callbackHistory,
|
|
45
|
+
currentCallbackIndex: result.callbackHistory.length - 1,
|
|
46
|
+
context: {},
|
|
47
|
+
});
|
|
48
|
+
logger.info('Execution paused again (multi-callback)', {
|
|
49
|
+
executionId: result.executionId,
|
|
50
|
+
callbackType: result.needsCallback.type,
|
|
51
|
+
totalCallbacks: result.callbackHistory.length,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
await context.stateManager.delete(executionId);
|
|
56
|
+
logger.debug('Execution state cleaned up', { executionId });
|
|
57
|
+
}
|
|
58
|
+
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
59
|
+
res.end(JSON.stringify(result));
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=resume.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resume.controller.js","sourceRoot":"","sources":["../../src/controllers/resume.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
2
|
+
import type { SearchEngine } from '../search/index.js';
|
|
3
|
+
export declare function handleSearch(req: IncomingMessage, res: ServerResponse, searchEngine: SearchEngine, body: string): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=search.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/search.controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,wBAAsB,YAAY,CACjC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAKf"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { sendJson } from '../utils/response.js';
|
|
2
|
+
export async function handleSearch(req, res, searchEngine, body) {
|
|
3
|
+
const searchOptions = JSON.parse(body);
|
|
4
|
+
const results = await searchEngine.search(searchOptions);
|
|
5
|
+
sendJson(res, { results });
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=search.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.controller.js","sourceRoot":"","sources":["../../src/controllers/search.controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,YAAY,CACjC,GAAoB,EACpB,GAAmB,EACnB,YAA0B,EAC1B,IAAY;IAEZ,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAkB,CAAC;IACxD,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAEzD,QAAQ,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
2
|
+
import type { CodeValidator } from '../validator/index.js';
|
|
3
|
+
import type { SandboxExecutor } from '../executor/index.js';
|
|
4
|
+
import type { ExecutionStateManager } from '../execution-state/index.js';
|
|
5
|
+
import type { log } from '@mondaydotcomorg/atp-runtime';
|
|
6
|
+
interface StreamContext {
|
|
7
|
+
validator: CodeValidator;
|
|
8
|
+
executor: SandboxExecutor;
|
|
9
|
+
stateManager?: ExecutionStateManager;
|
|
10
|
+
auditConfig?: {
|
|
11
|
+
enabled: boolean;
|
|
12
|
+
};
|
|
13
|
+
defaultTimeout: number;
|
|
14
|
+
defaultMemoryLimit: number;
|
|
15
|
+
defaultLLMCallLimit: number;
|
|
16
|
+
}
|
|
17
|
+
export declare function handleExecuteStream(req: IncomingMessage, res: ServerResponse, context: StreamContext, body: string, clientId: string | undefined, logger: ReturnType<typeof log.child>): Promise<void>;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=stream.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/stream.controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAQjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEzE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AAExD,UAAU,aAAa;IACtB,SAAS,EAAE,aAAa,CAAC;IACzB,QAAQ,EAAE,eAAe,CAAC;IAC1B,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAsB,mBAAmB,CACxC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,MAAM,EAAE,UAAU,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,GAClC,OAAO,CAAC,IAAI,CAAC,CA8Jf"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { ExecutionErrorCode, validateExecutionConfig, sanitizeInput, MAX_CODE_SIZE, } from '@mondaydotcomorg/atp-protocol';
|
|
2
|
+
import { nanoid } from 'nanoid';
|
|
3
|
+
export async function handleExecuteStream(req, res, context, body, clientId, logger) {
|
|
4
|
+
let request;
|
|
5
|
+
try {
|
|
6
|
+
request = JSON.parse(body);
|
|
7
|
+
}
|
|
8
|
+
catch (error) {
|
|
9
|
+
logger.warn('Invalid request body', { error });
|
|
10
|
+
res.writeHead(400, { 'Content-Type': 'application/json' });
|
|
11
|
+
res.end(JSON.stringify({
|
|
12
|
+
error: 'Invalid request body',
|
|
13
|
+
message: error instanceof Error ? error.message : 'Failed to parse request',
|
|
14
|
+
}));
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
request.code = sanitizeInput(request.code, MAX_CODE_SIZE);
|
|
18
|
+
logger.info('Streaming code execution request', {
|
|
19
|
+
codeLength: request.code.length,
|
|
20
|
+
});
|
|
21
|
+
res.writeHead(200, {
|
|
22
|
+
'Content-Type': 'text/event-stream',
|
|
23
|
+
'Cache-Control': 'no-cache',
|
|
24
|
+
Connection: 'keep-alive',
|
|
25
|
+
});
|
|
26
|
+
const sendEvent = (event, data) => {
|
|
27
|
+
res.write(`event: ${event}\n`);
|
|
28
|
+
res.write(`data: ${JSON.stringify(data)}\n\n`);
|
|
29
|
+
};
|
|
30
|
+
try {
|
|
31
|
+
if (request.config) {
|
|
32
|
+
try {
|
|
33
|
+
validateExecutionConfig(request.config);
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
logger.warn('Invalid execution config', { error });
|
|
37
|
+
sendEvent('error', {
|
|
38
|
+
message: error instanceof Error ? error.message : 'Invalid configuration',
|
|
39
|
+
});
|
|
40
|
+
res.end();
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
const executionConfig = {
|
|
45
|
+
timeout: request.config?.timeout ?? context.defaultTimeout,
|
|
46
|
+
maxMemory: request.config?.maxMemory ?? context.defaultMemoryLimit,
|
|
47
|
+
maxLLMCalls: request.config?.maxLLMCalls ?? context.defaultLLMCallLimit,
|
|
48
|
+
allowedAPIs: request.config?.allowedAPIs ?? [],
|
|
49
|
+
allowLLMCalls: request.config?.allowLLMCalls ?? true,
|
|
50
|
+
progressCallback: (message, fraction) => {
|
|
51
|
+
sendEvent('progress', { message, fraction });
|
|
52
|
+
},
|
|
53
|
+
clientServices: request.config?.clientServices,
|
|
54
|
+
provenanceMode: request.config?.provenanceMode,
|
|
55
|
+
securityPolicies: request.config?.securityPolicies,
|
|
56
|
+
provenanceHints: request.config?.provenanceHints,
|
|
57
|
+
};
|
|
58
|
+
logger.info('Validating code for streaming execution', {
|
|
59
|
+
codeLength: request.code.length,
|
|
60
|
+
timeout: executionConfig.timeout,
|
|
61
|
+
clientServices: executionConfig.clientServices,
|
|
62
|
+
});
|
|
63
|
+
const validationResult = await context.validator.validate(request.code, executionConfig);
|
|
64
|
+
if (!validationResult.valid) {
|
|
65
|
+
logger.warn('Code validation failed', {
|
|
66
|
+
errors: validationResult.errors?.length,
|
|
67
|
+
securityIssues: validationResult.securityIssues?.length,
|
|
68
|
+
});
|
|
69
|
+
const hasSecurityIssues = validationResult.securityIssues && validationResult.securityIssues.length > 0;
|
|
70
|
+
sendEvent('result', {
|
|
71
|
+
executionId: nanoid(),
|
|
72
|
+
status: hasSecurityIssues ? 'security_violation' : 'validation_failed',
|
|
73
|
+
error: {
|
|
74
|
+
message: 'Code validation failed',
|
|
75
|
+
code: hasSecurityIssues
|
|
76
|
+
? ExecutionErrorCode.SECURITY_VIOLATION
|
|
77
|
+
: ExecutionErrorCode.VALIDATION_FAILED,
|
|
78
|
+
context: {
|
|
79
|
+
errors: validationResult.errors,
|
|
80
|
+
securityIssues: validationResult.securityIssues,
|
|
81
|
+
},
|
|
82
|
+
retryable: false,
|
|
83
|
+
suggestion: hasSecurityIssues
|
|
84
|
+
? 'Remove forbidden operations and use only allowed APIs'
|
|
85
|
+
: 'Fix syntax errors and validation issues in your code',
|
|
86
|
+
},
|
|
87
|
+
stats: {
|
|
88
|
+
duration: 0,
|
|
89
|
+
memoryUsed: 0,
|
|
90
|
+
llmCallsCount: 0,
|
|
91
|
+
approvalCallsCount: 0,
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
res.end();
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
sendEvent('start', { message: 'Execution started' });
|
|
98
|
+
logger.info('Executing code in sandbox (streaming)');
|
|
99
|
+
const result = await context.executor.execute(request.code, executionConfig, clientId);
|
|
100
|
+
logger.info('Code execution completed (streaming)', {
|
|
101
|
+
executionId: result.executionId,
|
|
102
|
+
status: result.status,
|
|
103
|
+
duration: result.stats.duration,
|
|
104
|
+
});
|
|
105
|
+
if (result.status === 'paused' &&
|
|
106
|
+
result.needsCallback &&
|
|
107
|
+
result.callbackHistory &&
|
|
108
|
+
context.stateManager) {
|
|
109
|
+
if (!clientId) {
|
|
110
|
+
sendEvent('error', { message: 'Client ID required for paused executions' });
|
|
111
|
+
res.end();
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
await context.stateManager.pause({
|
|
115
|
+
executionId: result.executionId,
|
|
116
|
+
code: request.code,
|
|
117
|
+
config: executionConfig,
|
|
118
|
+
clientId,
|
|
119
|
+
callbackRequest: result.needsCallback,
|
|
120
|
+
pausedAt: Date.now(),
|
|
121
|
+
callbackHistory: result.callbackHistory,
|
|
122
|
+
currentCallbackIndex: result.callbackHistory.length - 1,
|
|
123
|
+
context: {},
|
|
124
|
+
});
|
|
125
|
+
logger.info('Execution state saved (streaming)', {
|
|
126
|
+
executionId: result.executionId,
|
|
127
|
+
callbackType: result.needsCallback.type,
|
|
128
|
+
historyLength: result.callbackHistory.length,
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
sendEvent('result', result);
|
|
132
|
+
res.end();
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
const err = error;
|
|
136
|
+
logger.error('Streaming execution error', { error: err.message });
|
|
137
|
+
sendEvent('error', { message: err.message, stack: err.stack });
|
|
138
|
+
res.end();
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=stream.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream.controller.js","sourceRoot":"","sources":["../../src/controllers/stream.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import type { CacheProvider, AuthProvider, AuditSink, ProvenanceMode, SecurityPolicy, ScopeFilteringConfig } from '@mondaydotcomorg/atp-protocol';
|
|
2
|
+
export declare const MB: number;
|
|
3
|
+
export declare const GB: number;
|
|
4
|
+
export declare const SECOND = 1000;
|
|
5
|
+
export declare const MINUTE: number;
|
|
6
|
+
export declare const HOUR: number;
|
|
7
|
+
export declare const DAY: number;
|
|
8
|
+
/**
|
|
9
|
+
* Execution configuration
|
|
10
|
+
*/
|
|
11
|
+
export interface ExecutionConfig {
|
|
12
|
+
/** Timeout in milliseconds */
|
|
13
|
+
timeout: number;
|
|
14
|
+
/** Memory limit in bytes */
|
|
15
|
+
memory: number;
|
|
16
|
+
/** Maximum LLM calls allowed */
|
|
17
|
+
llmCalls: number;
|
|
18
|
+
/** Provenance tracking mode (none|proxy|ast) */
|
|
19
|
+
provenanceMode?: ProvenanceMode;
|
|
20
|
+
/** Security policies for provenance-based protection */
|
|
21
|
+
securityPolicies?: SecurityPolicy[];
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Client initialization configuration
|
|
25
|
+
*/
|
|
26
|
+
export interface ClientInitConfig {
|
|
27
|
+
/** Token time-to-live in milliseconds */
|
|
28
|
+
tokenTTL: number;
|
|
29
|
+
/** Token rotation interval in milliseconds */
|
|
30
|
+
tokenRotation: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Execution state configuration
|
|
34
|
+
*/
|
|
35
|
+
export interface ExecutionStateConfig {
|
|
36
|
+
/** TTL for paused execution state in seconds */
|
|
37
|
+
ttl: number;
|
|
38
|
+
/** Maximum allowed pause duration in seconds (default: 1 hour) */
|
|
39
|
+
maxPauseDuration: number;
|
|
40
|
+
/** Key prefix for execution state (defaults to 'atp:execution:') */
|
|
41
|
+
keyPrefix?: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Discovery configuration
|
|
45
|
+
*/
|
|
46
|
+
export interface DiscoveryConfig {
|
|
47
|
+
/** Enable embeddings for semantic search */
|
|
48
|
+
embeddings: boolean;
|
|
49
|
+
/** Scope filtering configuration for search results */
|
|
50
|
+
scopeFiltering?: ScopeFilteringConfig;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* OpenTelemetry configuration
|
|
54
|
+
*/
|
|
55
|
+
export interface OpenTelemetryConfig {
|
|
56
|
+
/** Enable OpenTelemetry tracing and metrics */
|
|
57
|
+
enabled: boolean;
|
|
58
|
+
/** Service name for traces and metrics (defaults to 'agent-tool-protocol') */
|
|
59
|
+
serviceName?: string;
|
|
60
|
+
/** Service version for resource attributes */
|
|
61
|
+
serviceVersion?: string;
|
|
62
|
+
/** OTLP endpoint for traces (defaults to http://localhost:4318/v1/traces) */
|
|
63
|
+
traceEndpoint?: string;
|
|
64
|
+
/** OTLP endpoint for metrics (defaults to http://localhost:4318/v1/metrics) */
|
|
65
|
+
metricsEndpoint?: string;
|
|
66
|
+
/** Headers for OTLP exporter (e.g., for authentication) */
|
|
67
|
+
headers?: Record<string, string>;
|
|
68
|
+
/** Metrics export interval in milliseconds (defaults to 60000) */
|
|
69
|
+
metricsInterval?: number;
|
|
70
|
+
/** Additional resource attributes */
|
|
71
|
+
resourceAttributes?: Record<string, string>;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Logger interface
|
|
75
|
+
*/
|
|
76
|
+
export interface Logger {
|
|
77
|
+
debug(message: string, meta?: unknown): void;
|
|
78
|
+
info(message: string, meta?: unknown): void;
|
|
79
|
+
warn(message: string, meta?: unknown): void;
|
|
80
|
+
error(message: string, meta?: unknown): void;
|
|
81
|
+
child?(meta: Record<string, unknown>): Logger;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Audit configuration
|
|
85
|
+
*/
|
|
86
|
+
export interface AuditConfig {
|
|
87
|
+
/** Enable audit logging */
|
|
88
|
+
enabled: boolean;
|
|
89
|
+
/** Audit sink(s) for logging events */
|
|
90
|
+
sinks?: AuditSink | AuditSink[];
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Provider configuration
|
|
94
|
+
*/
|
|
95
|
+
export interface ProvidersConfig {
|
|
96
|
+
/** Cache provider for storing execution state and data (defaults to MemoryCache) */
|
|
97
|
+
cache?: CacheProvider;
|
|
98
|
+
/** Token/credential store for managing client tokens (defaults to EnvAuthProvider) */
|
|
99
|
+
auth?: AuthProvider;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Server configuration (user input - all fields optional)
|
|
103
|
+
*/
|
|
104
|
+
export interface ServerConfig {
|
|
105
|
+
execution?: Partial<ExecutionConfig>;
|
|
106
|
+
clientInit?: Partial<ClientInitConfig>;
|
|
107
|
+
executionState?: Partial<ExecutionStateConfig>;
|
|
108
|
+
discovery?: Partial<DiscoveryConfig>;
|
|
109
|
+
/** Audit logging configuration */
|
|
110
|
+
audit?: Partial<AuditConfig>;
|
|
111
|
+
/** OpenTelemetry tracing and metrics configuration */
|
|
112
|
+
otel?: Partial<OpenTelemetryConfig>;
|
|
113
|
+
/** External providers (cache, auth) */
|
|
114
|
+
providers?: ProvidersConfig;
|
|
115
|
+
logger?: 'debug' | 'info' | 'warn' | 'error' | Logger;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Resolved server configuration with defaults applied
|
|
119
|
+
*/
|
|
120
|
+
export interface ResolvedServerConfig {
|
|
121
|
+
execution: ExecutionConfig;
|
|
122
|
+
clientInit: ClientInitConfig;
|
|
123
|
+
executionState: ExecutionStateConfig;
|
|
124
|
+
discovery: DiscoveryConfig;
|
|
125
|
+
audit: AuditConfig;
|
|
126
|
+
otel: OpenTelemetryConfig;
|
|
127
|
+
logger: 'debug' | 'info' | 'warn' | 'error' | Logger;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Request context passed through middleware
|
|
131
|
+
*/
|
|
132
|
+
export interface RequestContext {
|
|
133
|
+
method: string;
|
|
134
|
+
path: string;
|
|
135
|
+
query: Record<string, string>;
|
|
136
|
+
headers: Record<string, string>;
|
|
137
|
+
body: unknown;
|
|
138
|
+
clientId?: string;
|
|
139
|
+
clientToken?: string;
|
|
140
|
+
userId?: string;
|
|
141
|
+
user?: unknown;
|
|
142
|
+
executionId?: string;
|
|
143
|
+
code?: string;
|
|
144
|
+
validation?: unknown;
|
|
145
|
+
result?: unknown;
|
|
146
|
+
error?: Error;
|
|
147
|
+
cache?: CacheProvider;
|
|
148
|
+
auth?: AuthProvider;
|
|
149
|
+
audit?: AuditSink;
|
|
150
|
+
logger: Logger;
|
|
151
|
+
status: number;
|
|
152
|
+
responseBody: unknown;
|
|
153
|
+
throw(status: number, message: string): never;
|
|
154
|
+
assert(condition: boolean, message: string): asserts condition;
|
|
155
|
+
set(header: string, value: string): void;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Middleware function signature
|
|
159
|
+
*/
|
|
160
|
+
export type Middleware = (ctx: RequestContext, next: () => Promise<void>) => Promise<void>;
|
|
161
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAC9B,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AACrC,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC;AAC3B,MAAM,CAAC,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC;AAChC,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACnC,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/core/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C,wBAAgB,SAAS,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAEhE;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAa9D"}
|