code-mode-core 2.0.0 → 2.1.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/engine.d.ts.map +1 -1
- package/dist/engine.js +25 -8
- package/dist/engine.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/engine.ts +27 -7
- package/src/index.ts +3 -0
- package/src/types.ts +7 -0
package/dist/engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,cAAc,EAGf,MAAM,SAAS,CAAC;AAqBjB,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,SAAS,CAAc;IAE/B,OAAO;IAIP,4CAA4C;WAC/B,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC;IAK9C,2DAA2D;IACrD,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC;IAuB3E,yDAAyD;IACnD,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAClC,OAAO,CAAC,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,cAAc,EAGf,MAAM,SAAS,CAAC;AAqBjB,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,SAAS,CAAc;IAE/B,OAAO;IAIP,4CAA4C;WAC/B,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC;IAK9C,2DAA2D;IACrD,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC;IAuB3E,yDAAyD;IACnD,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAClC,OAAO,CAAC,eAAe,CAAC;IAsD3B,uDAAuD;IACjD,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAM3C,kFAAkF;IAC5E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAOd,kBAAkB;YAWlB,iBAAiB;IAgC/B,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,oBAAoB;IAuB5B,OAAO,CAAC,YAAY;CAOrB"}
|
package/dist/engine.js
CHANGED
|
@@ -57,15 +57,31 @@ class CodeModeEngine {
|
|
|
57
57
|
/** Execute code in the sandbox with registered tools. */
|
|
58
58
|
async execute(code, options) {
|
|
59
59
|
const opts = { ...DEFAULT_OPTIONS, ...options };
|
|
60
|
-
const
|
|
60
|
+
const registeredTools = await this.getToolsAsToolLike();
|
|
61
|
+
// Merge external tools (e.g., sibling tools from n8n)
|
|
62
|
+
const allTools = opts.externalTools
|
|
63
|
+
? [...registeredTools, ...opts.externalTools]
|
|
64
|
+
: registeredTools;
|
|
61
65
|
// Get or compute cached setup
|
|
62
|
-
const setup = await this.getOrComputeSetup(
|
|
63
|
-
// Build callToolFn — optionally with tracing
|
|
66
|
+
const setup = await this.getOrComputeSetup(allTools);
|
|
67
|
+
// Build callToolFn — compose external + internal, optionally with tracing
|
|
68
|
+
const internalCallTool = this.createCallTool();
|
|
69
|
+
const baseCallTool = opts.externalCallToolFn
|
|
70
|
+
? (() => {
|
|
71
|
+
const externalNames = new Set(opts.externalTools?.map(t => t.name));
|
|
72
|
+
return async (toolName, args) => {
|
|
73
|
+
if (externalNames.has(toolName)) {
|
|
74
|
+
return opts.externalCallToolFn(toolName, args);
|
|
75
|
+
}
|
|
76
|
+
return internalCallTool(toolName, args);
|
|
77
|
+
};
|
|
78
|
+
})()
|
|
79
|
+
: internalCallTool;
|
|
64
80
|
const trace = [];
|
|
65
81
|
const callToolFn = opts.enableTrace
|
|
66
|
-
? this.createTracedCallTool(trace)
|
|
67
|
-
:
|
|
68
|
-
const sandboxResult = await (0, sandbox_1.executeInSandbox)(code,
|
|
82
|
+
? this.createTracedCallTool(trace, baseCallTool)
|
|
83
|
+
: baseCallTool;
|
|
84
|
+
const sandboxResult = await (0, sandbox_1.executeInSandbox)(code, allTools, callToolFn, setup.interfacesString, setup.interfaceMap, { timeout: opts.timeout, memoryLimit: opts.memoryLimit });
|
|
69
85
|
const executionResult = {
|
|
70
86
|
result: sandboxResult.result,
|
|
71
87
|
logs: sandboxResult.logs,
|
|
@@ -132,11 +148,12 @@ class CodeModeEngine {
|
|
|
132
148
|
return this.client.callTool(toolName, args);
|
|
133
149
|
};
|
|
134
150
|
}
|
|
135
|
-
createTracedCallTool(trace) {
|
|
151
|
+
createTracedCallTool(trace, baseCallTool) {
|
|
152
|
+
const callFn = baseCallTool ?? this.createCallTool();
|
|
136
153
|
return async (toolName, args) => {
|
|
137
154
|
const start = performance.now();
|
|
138
155
|
try {
|
|
139
|
-
const result = await
|
|
156
|
+
const result = await callFn(toolName, args);
|
|
140
157
|
trace.push({ toolName, args, result, durationMs: performance.now() - start });
|
|
141
158
|
return result;
|
|
142
159
|
}
|
package/dist/engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH,mCAAuC;AASvC,iDAGwB;AAExB,uCAA6C;AAC7C,mCAKiB;AAGjB,MAAM,eAAe,GAAqB;IACxC,OAAO,EAAE,KAAK;IACd,WAAW,EAAE,GAAG;IAChB,WAAW,EAAE,KAAK;CACnB,CAAC;AAEF,MAAa,cAAc;IAIzB,YAAoB,MAAkB;QAF9B,cAAS,GAAW,EAAE,CAAC;QAG7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,4CAA4C;IAC5C,MAAM,CAAC,KAAK,CAAC,MAAM;QACjB,MAAM,MAAM,GAAG,MAAM,gBAAU,CAAC,MAAM,EAAE,CAAC;QACzC,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,2DAA2D;IAC3D,KAAK,CAAC,kBAAkB,CAAC,MAAwB;QAC/C,8EAA8E;QAC9E,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAa,CAAC,CAAC;YAC/D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC;gBACpF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YACtC,CAAC;YACD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,SAAS,EAAE,EAAE;gBACb,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC;aACjD,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,SAAS,EAAE,EAAE;gBACb,MAAM,EAAE,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aAC3D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,yDAAyD;IACzD,KAAK,CAAC,OAAO,CACX,IAAY,EACZ,OAAmC;QAEnC,MAAM,IAAI,GAAG,EAAE,GAAG,eAAe,EAAE,GAAG,OAAO,EAAE,CAAC;QAChD,MAAM,
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,4 +7,6 @@
|
|
|
7
7
|
*/
|
|
8
8
|
export { CodeModeEngine } from './engine';
|
|
9
9
|
export type { ExecutionOptions, ExecutionResult, ToolDefinition, ToolCallRecord, ExecutionStats, ToolSourceConfig, RegisterResult, JsonSchemaLike, } from './types';
|
|
10
|
+
export type { ToolLike } from './schema-to-ts';
|
|
11
|
+
export type { CallToolFn } from './bridges';
|
|
10
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,cAAc,GACf,MAAM,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,cAAc,GACf,MAAM,SAAS,CAAC;AAEjB,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
|
+
import type { ToolLike } from './schema-to-ts';
|
|
9
|
+
import type { CallToolFn } from './bridges';
|
|
8
10
|
/** Minimal JSON Schema subset used for tool input/output definitions. */
|
|
9
11
|
export interface JsonSchemaLike {
|
|
10
12
|
type?: string | string[];
|
|
@@ -30,6 +32,10 @@ export interface ExecutionOptions {
|
|
|
30
32
|
memoryLimit: number;
|
|
31
33
|
/** Enable execution tracing (tool call timing). Default: false */
|
|
32
34
|
enableTrace: boolean;
|
|
35
|
+
/** External tools to merge with registered tools (for platform-specific sources). */
|
|
36
|
+
externalTools?: ToolLike[];
|
|
37
|
+
/** External call handler for external tools. Checked before internal client.callTool. */
|
|
38
|
+
externalCallToolFn?: CallToolFn;
|
|
33
39
|
}
|
|
34
40
|
/** A single tool call recorded during traced execution. */
|
|
35
41
|
export interface ToolCallRecord {
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,cAAc,GAAG,cAAc,EAAE,CAAC;IAC1C,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,yCAAyC;AACzC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,cAAc,CAAC;IAC5B,YAAY,EAAE,cAAc,CAAC;IAC7B,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,kCAAkC;AAClC,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,WAAW,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,cAAc,GAAG,cAAc,EAAE,CAAC;IAC1C,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,yCAAyC;AACzC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,cAAc,CAAC;IAC5B,YAAY,EAAE,cAAc,CAAC;IAC7B,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,kCAAkC;AAClC,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,WAAW,EAAE,OAAO,CAAC;IACrB,qFAAqF;IACrF,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC3B,yFAAyF;IACzF,kBAAkB,CAAC,EAAE,UAAU,CAAC;CACjC;AAED,2DAA2D;AAC3D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,sCAAsC;AACtC,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,+CAA+C;AAC/C,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB;AAED,mEAAmE;AACnE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,2CAA2C;AAC3C,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "code-mode-core",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "Platform-agnostic code execution engine. Chains multiple tool calls into a single TypeScript code execution in a secure sandbox.",
|
|
5
5
|
"license": "MPL-2.0",
|
|
6
6
|
"author": "Marius J",
|
package/src/engine.ts
CHANGED
|
@@ -82,20 +82,38 @@ export class CodeModeEngine {
|
|
|
82
82
|
options?: Partial<ExecutionOptions>,
|
|
83
83
|
): Promise<ExecutionResult> {
|
|
84
84
|
const opts = { ...DEFAULT_OPTIONS, ...options };
|
|
85
|
-
const
|
|
85
|
+
const registeredTools = await this.getToolsAsToolLike();
|
|
86
|
+
|
|
87
|
+
// Merge external tools (e.g., sibling tools from n8n)
|
|
88
|
+
const allTools = opts.externalTools
|
|
89
|
+
? [...registeredTools, ...opts.externalTools]
|
|
90
|
+
: registeredTools;
|
|
86
91
|
|
|
87
92
|
// Get or compute cached setup
|
|
88
|
-
const setup = await this.getOrComputeSetup(
|
|
93
|
+
const setup = await this.getOrComputeSetup(allTools);
|
|
94
|
+
|
|
95
|
+
// Build callToolFn — compose external + internal, optionally with tracing
|
|
96
|
+
const internalCallTool = this.createCallTool();
|
|
97
|
+
const baseCallTool = opts.externalCallToolFn
|
|
98
|
+
? (() => {
|
|
99
|
+
const externalNames = new Set(opts.externalTools?.map(t => t.name));
|
|
100
|
+
return async (toolName: string, args: Record<string, unknown>): Promise<unknown> => {
|
|
101
|
+
if (externalNames.has(toolName)) {
|
|
102
|
+
return opts.externalCallToolFn!(toolName, args);
|
|
103
|
+
}
|
|
104
|
+
return internalCallTool(toolName, args);
|
|
105
|
+
};
|
|
106
|
+
})()
|
|
107
|
+
: internalCallTool;
|
|
89
108
|
|
|
90
|
-
// Build callToolFn — optionally with tracing
|
|
91
109
|
const trace: ToolCallRecord[] = [];
|
|
92
110
|
const callToolFn = opts.enableTrace
|
|
93
|
-
? this.createTracedCallTool(trace)
|
|
94
|
-
:
|
|
111
|
+
? this.createTracedCallTool(trace, baseCallTool)
|
|
112
|
+
: baseCallTool;
|
|
95
113
|
|
|
96
114
|
const sandboxResult = await executeInSandbox(
|
|
97
115
|
code,
|
|
98
|
-
|
|
116
|
+
allTools,
|
|
99
117
|
callToolFn,
|
|
100
118
|
setup.interfacesString,
|
|
101
119
|
setup.interfaceMap,
|
|
@@ -182,11 +200,13 @@ export class CodeModeEngine {
|
|
|
182
200
|
|
|
183
201
|
private createTracedCallTool(
|
|
184
202
|
trace: ToolCallRecord[],
|
|
203
|
+
baseCallTool?: (toolName: string, args: Record<string, unknown>) => Promise<unknown>,
|
|
185
204
|
): (toolName: string, args: Record<string, unknown>) => Promise<unknown> {
|
|
205
|
+
const callFn = baseCallTool ?? this.createCallTool();
|
|
186
206
|
return async (toolName: string, args: Record<string, unknown>) => {
|
|
187
207
|
const start = performance.now();
|
|
188
208
|
try {
|
|
189
|
-
const result = await
|
|
209
|
+
const result = await callFn(toolName, args);
|
|
190
210
|
trace.push({ toolName, args, result, durationMs: performance.now() - start });
|
|
191
211
|
return result;
|
|
192
212
|
} catch (err) {
|
package/src/index.ts
CHANGED
package/src/types.ts
CHANGED
|
@@ -6,6 +6,9 @@
|
|
|
6
6
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
+
import type { ToolLike } from './schema-to-ts';
|
|
10
|
+
import type { CallToolFn } from './bridges';
|
|
11
|
+
|
|
9
12
|
/** Minimal JSON Schema subset used for tool input/output definitions. */
|
|
10
13
|
export interface JsonSchemaLike {
|
|
11
14
|
type?: string | string[];
|
|
@@ -33,6 +36,10 @@ export interface ExecutionOptions {
|
|
|
33
36
|
memoryLimit: number;
|
|
34
37
|
/** Enable execution tracing (tool call timing). Default: false */
|
|
35
38
|
enableTrace: boolean;
|
|
39
|
+
/** External tools to merge with registered tools (for platform-specific sources). */
|
|
40
|
+
externalTools?: ToolLike[];
|
|
41
|
+
/** External call handler for external tools. Checked before internal client.callTool. */
|
|
42
|
+
externalCallToolFn?: CallToolFn;
|
|
36
43
|
}
|
|
37
44
|
|
|
38
45
|
/** A single tool call recorded during traced execution. */
|