@mondaydotcomorg/atp-server 0.20.0 → 0.20.2
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/controllers/stream.controller.d.ts.map +1 -1
- package/dist/controllers/stream.controller.js +3 -0
- package/dist/controllers/stream.controller.js.map +1 -1
- package/dist/executor/sandbox-builder.d.ts.map +1 -1
- package/dist/executor/sandbox-builder.js +27 -1
- package/dist/executor/sandbox-builder.js.map +1 -1
- package/dist/handlers/execute.handler.d.ts.map +1 -1
- package/dist/handlers/execute.handler.js +1 -0
- package/dist/handlers/execute.handler.js.map +1 -1
- package/dist/index.cjs +48 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +49 -8
- package/dist/index.js.map +1 -1
- package/dist/openapi-loader.d.ts +22 -0
- package/dist/openapi-loader.d.ts.map +1 -1
- package/dist/openapi-loader.js +24 -4
- package/dist/openapi-loader.js.map +1 -1
- package/package.json +6 -6
- package/src/controllers/stream.controller.ts +4 -1
- package/src/executor/sandbox-builder.ts +50 -1
- package/src/handlers/execute.handler.ts +1 -0
- package/src/openapi-loader.ts +48 -4
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import { log, isReplayMode, setCurrentExecutionId, getAPIResultFromCache, approv
|
|
|
2
2
|
import fs, { readFile } from 'fs/promises';
|
|
3
3
|
import yaml from 'js-yaml';
|
|
4
4
|
import { createServer as createServer$1 } from 'http';
|
|
5
|
-
import { ProvenanceMode, ToolOperationType, ToolSensitivityLevel, CallbackType, ToolOperation, ExecutionStatus, sanitizeInput, MAX_CODE_SIZE, ExecutionErrorCode } from '@mondaydotcomorg/atp-protocol';
|
|
5
|
+
import { ProvenanceMode, ToolOperationType, ToolSensitivityLevel, createToolStartEvent, createToolEndEvent, CallbackType, ToolOperation, ExecutionStatus, sanitizeInput, MAX_CODE_SIZE, ExecutionErrorCode } from '@mondaydotcomorg/atp-protocol';
|
|
6
6
|
import { getProvenance, createProvenanceProxy, ProvenanceSource, setProvenanceExecutionId, SecurityPolicyEngine, createTrackingRuntime, registerProvenanceMetadata, instrumentCode, captureProvenanceSnapshot, cleanupProvenanceForExecution, clearProvenanceExecutionId, DynamicPolicyRegistry, getProvenanceForPrimitive, computeDigest, verifyProvenanceHints, restoreProvenanceSnapshot, markPrimitiveTainted, ProvenanceMode as ProvenanceMode$1, issueProvenanceToken } from '@mondaydotcomorg/atp-provenance';
|
|
7
7
|
export { ProvenanceMode, ProvenanceSecurityError, ProvenanceSource, SecurityPolicyEngine, auditSensitiveAccess, blockLLMRecipients, blockLLMRecipientsWithApproval, canRead, captureProvenanceState, cleanupProvenanceForExecution, clearProvenanceExecutionId, createCustomPolicy, createProvenanceProxy, createTrackingRuntime, getAllProvenance, getBuiltInPolicies, getBuiltInPoliciesWithApproval, getProvenance, getProvenanceForPrimitive, hasProvenance, instrumentCode, isPrimitiveTainted, markPrimitiveTainted, preventDataExfiltration, preventDataExfiltrationWithApproval, requireUserOrigin, requireUserOriginWithApproval, restoreProvenanceState, setProvenanceExecutionId } from '@mondaydotcomorg/atp-provenance';
|
|
8
8
|
import crypto, { randomBytes, randomUUID } from 'crypto';
|
|
@@ -6410,10 +6410,28 @@ function convertOperation(path, method, operation, spec, baseURL, options, auth)
|
|
|
6410
6410
|
url.searchParams.append(key, value);
|
|
6411
6411
|
}
|
|
6412
6412
|
try {
|
|
6413
|
-
|
|
6414
|
-
|
|
6415
|
-
|
|
6416
|
-
|
|
6413
|
+
let finalUrl = url.toString();
|
|
6414
|
+
let finalMethod = method.toUpperCase();
|
|
6415
|
+
let finalHeaders = {
|
|
6416
|
+
...headers
|
|
6417
|
+
};
|
|
6418
|
+
let finalBody = body ? JSON.stringify(body) : void 0;
|
|
6419
|
+
if (options.requestTransformer) {
|
|
6420
|
+
const transformed = await options.requestTransformer({
|
|
6421
|
+
url: finalUrl,
|
|
6422
|
+
method: finalMethod,
|
|
6423
|
+
headers: finalHeaders,
|
|
6424
|
+
body
|
|
6425
|
+
});
|
|
6426
|
+
if (transformed.url) finalUrl = transformed.url;
|
|
6427
|
+
if (transformed.method) finalMethod = transformed.method;
|
|
6428
|
+
if (transformed.headers) finalHeaders = transformed.headers;
|
|
6429
|
+
if (transformed.body !== void 0) finalBody = transformed.body;
|
|
6430
|
+
}
|
|
6431
|
+
const response = await fetch(finalUrl, {
|
|
6432
|
+
method: finalMethod,
|
|
6433
|
+
headers: finalHeaders,
|
|
6434
|
+
body: finalBody
|
|
6417
6435
|
});
|
|
6418
6436
|
if (!response.ok) {
|
|
6419
6437
|
const errorText = await response.text();
|
|
@@ -7050,6 +7068,24 @@ function reattachProvenanceFromHints(args, hintMap) {
|
|
|
7050
7068
|
__name(reattachProvenanceFromHints, "reattachProvenanceFromHints");
|
|
7051
7069
|
|
|
7052
7070
|
// src/executor/sandbox-builder.ts
|
|
7071
|
+
function createEventEmitter(eventCallback) {
|
|
7072
|
+
return (eventOrType, data, runId) => {
|
|
7073
|
+
if (!eventCallback) return;
|
|
7074
|
+
const event = typeof eventOrType === "string" ? {
|
|
7075
|
+
type: eventOrType,
|
|
7076
|
+
data,
|
|
7077
|
+
timestamp: Date.now(),
|
|
7078
|
+
runId
|
|
7079
|
+
} : eventOrType;
|
|
7080
|
+
setImmediate(() => {
|
|
7081
|
+
try {
|
|
7082
|
+
eventCallback(event);
|
|
7083
|
+
} catch (error) {
|
|
7084
|
+
}
|
|
7085
|
+
});
|
|
7086
|
+
};
|
|
7087
|
+
}
|
|
7088
|
+
__name(createEventEmitter, "createEventEmitter");
|
|
7053
7089
|
var SandboxBuilder = class {
|
|
7054
7090
|
static {
|
|
7055
7091
|
__name(this, "SandboxBuilder");
|
|
@@ -7408,21 +7444,25 @@ var SandboxBuilder = class {
|
|
|
7408
7444
|
sensitivityLevel: metadata?.sensitivityLevel
|
|
7409
7445
|
});
|
|
7410
7446
|
}
|
|
7447
|
+
const emit = createEventEmitter(config.eventCallback);
|
|
7411
7448
|
const handlerContext = {
|
|
7412
7449
|
metadata,
|
|
7413
|
-
requestContext: config.requestContext
|
|
7450
|
+
requestContext: config.requestContext,
|
|
7451
|
+
emit
|
|
7414
7452
|
};
|
|
7415
7453
|
const toolCallStartTime = Date.now();
|
|
7416
7454
|
let result;
|
|
7417
7455
|
let toolCallError;
|
|
7456
|
+
emit(createToolStartEvent(func.name, group.name, input));
|
|
7418
7457
|
try {
|
|
7419
7458
|
result = await handler(input, handlerContext);
|
|
7420
7459
|
} catch (error) {
|
|
7421
7460
|
toolCallError = error instanceof Error ? error : new Error(String(error));
|
|
7422
7461
|
throw error;
|
|
7423
7462
|
} finally {
|
|
7463
|
+
const duration = Date.now() - toolCallStartTime;
|
|
7464
|
+
emit(createToolEndEvent(func.name, group.name, toolCallError ? void 0 : result, duration, !toolCallError, toolCallError?.message));
|
|
7424
7465
|
if (config.onToolCall) {
|
|
7425
|
-
const duration = Date.now() - toolCallStartTime;
|
|
7426
7466
|
config.onToolCall({
|
|
7427
7467
|
toolName: func.name,
|
|
7428
7468
|
apiGroup: group.name,
|
|
@@ -11250,7 +11290,8 @@ async function handleExecute(ctx, executor, stateManager, config, auditSink, ses
|
|
|
11250
11290
|
path: ctx.path,
|
|
11251
11291
|
method: ctx.method
|
|
11252
11292
|
},
|
|
11253
|
-
onToolCall
|
|
11293
|
+
onToolCall,
|
|
11294
|
+
eventCallback: requestConfig.eventCallback
|
|
11254
11295
|
};
|
|
11255
11296
|
let hintMap;
|
|
11256
11297
|
const prelimExecutionId = crypto.randomUUID();
|