@aitos/core 1.0.0 → 1.0.1
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/acs.d.ts +108 -0
- package/dist/acs.js +719 -0
- package/dist/atoms/calculation.d.ts +7 -0
- package/dist/atoms/calculation.js +95 -0
- package/dist/atoms/control.d.ts +11 -0
- package/dist/atoms/control.js +269 -0
- package/dist/atoms/judgment.d.ts +14 -0
- package/dist/atoms/judgment.js +193 -0
- package/dist/atoms/manipulation.d.ts +22 -0
- package/dist/atoms/manipulation.js +371 -0
- package/dist/atoms/state.d.ts +3 -0
- package/dist/atoms/state.js +35 -0
- package/dist/atoms/telemetry.d.ts +6 -0
- package/dist/atoms/telemetry.js +135 -0
- package/dist/atoms/time.d.ts +5 -0
- package/dist/atoms/time.js +71 -0
- package/dist/atoms/tool-calls.d.ts +2 -0
- package/dist/atoms/tool-calls.js +106 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +52 -0
- package/dist/runtime.d.ts +50 -0
- package/dist/runtime.js +408 -0
- package/dist/types.d.ts +123 -0
- package/dist/types.js +3 -0
- package/package.json +21 -7
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.randomAtom = exports.modAtom = exports.divAtom = exports.mulAtom = exports.subAtom = exports.addAtom = void 0;
|
|
4
|
+
exports.addAtom = {
|
|
5
|
+
name: 'add',
|
|
6
|
+
version: '1.0.0',
|
|
7
|
+
meta: {
|
|
8
|
+
input: [
|
|
9
|
+
{ name: 'a', type: 'number' },
|
|
10
|
+
{ name: 'b', type: 'number' }
|
|
11
|
+
],
|
|
12
|
+
output: { type: 'number' }
|
|
13
|
+
},
|
|
14
|
+
characteristics: { stateless: true, atomic: true, composable: true },
|
|
15
|
+
execute: async (input, context) => {
|
|
16
|
+
return { success: true, data: input.a + input.b };
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
exports.subAtom = {
|
|
20
|
+
name: 'sub',
|
|
21
|
+
version: '1.0.0',
|
|
22
|
+
meta: {
|
|
23
|
+
input: [
|
|
24
|
+
{ name: 'a', type: 'number' },
|
|
25
|
+
{ name: 'b', type: 'number' }
|
|
26
|
+
],
|
|
27
|
+
output: { type: 'number' }
|
|
28
|
+
},
|
|
29
|
+
characteristics: { stateless: true, atomic: true, composable: true },
|
|
30
|
+
execute: async (input, context) => {
|
|
31
|
+
return { success: true, data: input.a - input.b };
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
exports.mulAtom = {
|
|
35
|
+
name: 'mul',
|
|
36
|
+
version: '1.0.0',
|
|
37
|
+
meta: {
|
|
38
|
+
input: [
|
|
39
|
+
{ name: 'a', type: 'number' },
|
|
40
|
+
{ name: 'b', type: 'number' }
|
|
41
|
+
],
|
|
42
|
+
output: { type: 'number' }
|
|
43
|
+
},
|
|
44
|
+
characteristics: { stateless: true, atomic: true, composable: true },
|
|
45
|
+
execute: async (input, context) => {
|
|
46
|
+
return { success: true, data: input.a * input.b };
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
exports.divAtom = {
|
|
50
|
+
name: 'div',
|
|
51
|
+
version: '1.0.0',
|
|
52
|
+
meta: {
|
|
53
|
+
input: [
|
|
54
|
+
{ name: 'a', type: 'number' },
|
|
55
|
+
{ name: 'b', type: 'number' }
|
|
56
|
+
],
|
|
57
|
+
output: { type: 'number' }
|
|
58
|
+
},
|
|
59
|
+
characteristics: { stateless: true, atomic: true, composable: true },
|
|
60
|
+
execute: async (input, context) => {
|
|
61
|
+
return { success: true, data: input.a / input.b };
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
exports.modAtom = {
|
|
65
|
+
name: 'mod',
|
|
66
|
+
version: '1.0.0',
|
|
67
|
+
meta: {
|
|
68
|
+
input: [
|
|
69
|
+
{ name: 'a', type: 'number' },
|
|
70
|
+
{ name: 'b', type: 'number' }
|
|
71
|
+
],
|
|
72
|
+
output: { type: 'number' }
|
|
73
|
+
},
|
|
74
|
+
characteristics: { stateless: true, atomic: true, composable: true },
|
|
75
|
+
execute: async (input, context) => {
|
|
76
|
+
return { success: true, data: input.a % input.b };
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
exports.randomAtom = {
|
|
80
|
+
name: 'random',
|
|
81
|
+
version: '1.0.0',
|
|
82
|
+
meta: {
|
|
83
|
+
input: [
|
|
84
|
+
{ name: 'min', type: 'number' },
|
|
85
|
+
{ name: 'max', type: 'number' }
|
|
86
|
+
],
|
|
87
|
+
output: { type: 'number' }
|
|
88
|
+
},
|
|
89
|
+
characteristics: { stateless: true, atomic: true, composable: true },
|
|
90
|
+
execute: async (input, context) => {
|
|
91
|
+
const { min, max } = input;
|
|
92
|
+
return { success: true, data: Math.floor(Math.random() * (max - min + 1)) + min };
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXRvbXMvY2FsY3VsYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRWEsUUFBQSxPQUFPLEdBQVM7SUFDM0IsSUFBSSxFQUFFLEtBQUs7SUFDWCxPQUFPLEVBQUUsT0FBTztJQUNoQixJQUFJLEVBQUU7UUFDSixLQUFLLEVBQUU7WUFDTCxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUM3QixFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtTQUM5QjtRQUNELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7S0FDM0I7SUFDRCxlQUFlLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRTtJQUNwRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQStCLEVBQUUsT0FBZ0IsRUFBbUIsRUFBRTtRQUNwRixPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDcEQsQ0FBQztDQUNGLENBQUM7QUFFVyxRQUFBLE9BQU8sR0FBUztJQUMzQixJQUFJLEVBQUUsS0FBSztJQUNYLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLElBQUksRUFBRTtRQUNKLEtBQUssRUFBRTtZQUNMLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQzdCLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO1NBQzlCO1FBQ0QsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtLQUMzQjtJQUNELGVBQWUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUs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LElBQUksRUFBRSxRQUFRLEVBQUU7WUFDL0IsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7U0FDaEM7UUFDRCxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO0tBQzNCO0lBQ0QsZUFBZSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUU7SUFDcEUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFtQyxFQUFFLE9BQWdCLEVBQW1CLEVBQUU7UUFDeEYsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDM0IsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ3BGLENBQUM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXRvbSwgQ29udGV4dCwgUmVzdWx0IH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgYWRkQXRvbTogQXRvbSA9IHtcbiAgbmFtZTogJ2FkZCcsXG4gIHZlcnNpb246ICcxLjAuMCcsXG4gIG1ldGE6IHtcbiAgICBpbnB1dDogW1xuICAgICAgeyBuYW1lOiAnYScsIHR5cGU6ICdudW1iZXInIH0sXG4gICAgICB7IG5hbWU6ICdiJywgdHlwZTogJ251bWJlcicgfVxuICAgIF0sXG4gICAgb3V0cHV0OiB7IHR5cGU6ICdudW1iZXInIH1cbiAgfSxcbiAgY2hhcmFjdGVyaXN0aWNzOiB7IHN0YXRlbGVzczogdHJ1ZSwgYXRvbWljOiB0cnVlLCBjb21wb3NhYmxlOiB0cnVlIH0sXG4gIGV4ZWN1dGU6IGFzeW5jIChpbnB1dDogeyBhOiBudW1iZXI7IGI6IG51bWJlciB9LCBjb250ZXh0OiBDb250ZXh0KTogUHJvbWlzZTxSZXN1bHQ+ID0+IHtcbiAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlLCBkYXRhOiBpbnB1dC5hICsgaW5wdXQuYiB9O1xuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IHN1YkF0b206IEF0b20gPSB7XG4gIG5hbWU6ICdzdWInLFxuICB2ZXJzaW9uOiAnMS4wLjAnLFxuICBtZXRhOiB7XG4gICAgaW5wdXQ6IFtcbiAgICAgIHsgbmFtZTogJ2EnLCB0eXBlOiAnbnVtYmVyJyB9LFxuICAgICAgeyBuYW1lOiAnYicsIHR5cGU6ICdudW1iZXInIH1cbiAgICBdLFxuICAgIG91dHB1dDogeyB0eXBlOiAnbnVtYmVyJyB9XG4gIH0sXG4gIGNoYXJhY3RlcmlzdGljczogeyBzdGF0ZWxlc3M6IHRydWUsIGF0b21pYzogdHJ1ZSwgY29tcG9zYWJsZTogdHJ1ZSB9LFxuICBleGVjdXRlOiBhc3luYyAoaW5wdXQ6IHsgYTogbnVtYmVyOyBiOiBudW1iZXIgfSwgY29udGV4dDogQ29udGV4dCk6IFByb21pc2U8UmVzdWx0PiA9PiB7XG4gICAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSwgZGF0YTogaW5wdXQuYSAtIGlucHV0LmIgfTtcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBtdWxBdG9tOiBBdG9tID0ge1xuICBuYW1lOiAnbXVsJyxcbiAgdmVyc2lvbjogJzEuMC4wJyxcbiAgbWV0YToge1xuICAgIGlucHV0OiBbXG4gICAgICB7IG5hbWU6ICdhJywgdHlwZTogJ251bWJlcicgfSxcbiAgICAgIHsgbmFtZTogJ2InLCB0eXBlOiAnbnVtYmVyJyB9XG4gICAgXSxcbiAgICBvdXRwdXQ6IHsgdHlwZTogJ251bWJlcicgfVxuICB9LFxuICBjaGFyYWN0ZXJpc3RpY3M6IHsgc3RhdGVsZXNzOiB0cnVlLCBhdG9taWM6IHRydWUsIGNvbXBvc2FibGU6IHRydWUgfSxcbiAgZXhlY3V0ZTogYXN5bmMgKGlucHV0OiB7IGE6IG51bWJlcjsgYjogbnVtYmVyIH0sIGNvbnRleHQ6IENvbnRleHQpOiBQcm9taXNlPFJlc3VsdD4gPT4ge1xuICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIGRhdGE6IGlucHV0LmEgKiBpbnB1dC5iIH07XG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgZGl2QXRvbTogQXRvbSA9IHtcbiAgbmFtZTogJ2RpdicsXG4gIHZlcnNpb246ICcxLjAuMCcsXG4gIG1ldGE6IHtcbiAgICBpbnB1dDogW1xuICAgICAgeyBuYW1lOiAnYScsIHR5cGU6ICdudW1iZXInIH0sXG4gICAgICB7IG5hbWU6ICdiJywgdHlwZTogJ251bWJlcicgfVxuICAgIF0sXG4gICAgb3V0cHV0OiB7IHR5cGU6ICdudW1iZXInIH1cbiAgfSxcbiAgY2hhcmFjdGVyaXN0aWNzOiB7IHN0YXRlbGVzczogdHJ1ZSwgYXRvbWljOiB0cnVlLCBjb21wb3NhYmxlOiB0cnVlIH0sXG4gIGV4ZWN1dGU6IGFzeW5jIChpbnB1dDogeyBhOiBudW1iZXI7IGI6IG51bWJlciB9LCBjb250ZXh0OiBDb250ZXh0KTogUHJvbWlzZTxSZXN1bHQ+ID0+IHtcbiAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlLCBkYXRhOiBpbnB1dC5hIC8gaW5wdXQuYiB9O1xuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IG1vZEF0b206IEF0b20gPSB7XG4gIG5hbWU6ICdtb2QnLFxuICB2ZXJzaW9uOiAnMS4wLjAnLFxuICBtZXRhOiB7XG4gICAgaW5wdXQ6IFtcbiAgICAgIHsgbmFtZTogJ2EnLCB0eXBlOiAnbnVtYmVyJyB9LFxuICAgICAgeyBuYW1lOiAnYicsIHR5cGU6ICdudW1iZXInIH1cbiAgICBdLFxuICAgIG91dHB1dDogeyB0eXBlOiAnbnVtYmVyJyB9XG4gIH0sXG4gIGNoYXJhY3RlcmlzdGljczogeyBzdGF0ZWxlc3M6IHRydWUsIGF0b21pYzogdHJ1ZSwgY29tcG9zYWJsZTogdHJ1ZSB9LFxuICBleGVjdXRlOiBhc3luYyAoaW5wdXQ6IHsgYTogbnVtYmVyOyBiOiBudW1iZXIgfSwgY29udGV4dDogQ29udGV4dCk6IFByb21pc2U8UmVzdWx0PiA9PiB7XG4gICAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSwgZGF0YTogaW5wdXQuYSAlIGlucHV0LmIgfTtcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCByYW5kb21BdG9tOiBBdG9tID0ge1xuICBuYW1lOiAncmFuZG9tJyxcbiAgdmVyc2lvbjogJzEuMC4wJyxcbiAgbWV0YToge1xuICAgIGlucHV0OiBbXG4gICAgICB7IG5hbWU6ICdtaW4nLCB0eXBlOiAnbnVtYmVyJyB9LFxuICAgICAgeyBuYW1lOiAnbWF4JywgdHlwZTogJ251bWJlcicgfVxuICAgIF0sXG4gICAgb3V0cHV0OiB7IHR5cGU6ICdudW1iZXInIH1cbiAgfSxcbiAgY2hhcmFjdGVyaXN0aWNzOiB7IHN0YXRlbGVzczogdHJ1ZSwgYXRvbWljOiB0cnVlLCBjb21wb3NhYmxlOiB0cnVlIH0sXG4gIGV4ZWN1dGU6IGFzeW5jIChpbnB1dDogeyBtaW46IG51bWJlcjsgbWF4OiBudW1iZXIgfSwgY29udGV4dDogQ29udGV4dCk6IFByb21pc2U8UmVzdWx0PiA9PiB7XG4gICAgY29uc3QgeyBtaW4sIG1heCB9ID0gaW5wdXQ7XG4gICAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSwgZGF0YTogTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKG1heCAtIG1pbiArIDEpKSArIG1pbiB9O1xuICB9LFxufTtcbiJdfQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Atom } from '../types';
|
|
2
|
+
export declare const branchAtom: Atom;
|
|
3
|
+
export declare const loopAtom: Atom;
|
|
4
|
+
export declare const forEachAtom: Atom;
|
|
5
|
+
export declare const execAtom: Atom;
|
|
6
|
+
export declare const execGraphAtom: Atom;
|
|
7
|
+
export declare const waitAtom: Atom;
|
|
8
|
+
export declare const execFileAtom: Atom;
|
|
9
|
+
export declare const logAtom: Atom;
|
|
10
|
+
export declare const getSkillSetAtom: Atom;
|
|
11
|
+
export declare const compileAcsAtom: Atom;
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.compileAcsAtom = exports.getSkillSetAtom = exports.logAtom = exports.execFileAtom = exports.waitAtom = exports.execGraphAtom = exports.execAtom = exports.forEachAtom = exports.loopAtom = exports.branchAtom = void 0;
|
|
4
|
+
const acs_1 = require("../acs");
|
|
5
|
+
function isGraph(obj) {
|
|
6
|
+
return obj && typeof obj === 'object' && Array.isArray(obj.order) && typeof obj.nodes === 'object';
|
|
7
|
+
}
|
|
8
|
+
exports.branchAtom = {
|
|
9
|
+
name: 'branch',
|
|
10
|
+
version: '1.0.0',
|
|
11
|
+
meta: {
|
|
12
|
+
input: [
|
|
13
|
+
{ name: 'cond', type: 'boolean', description: 'Condition to evaluate' },
|
|
14
|
+
{ name: 'then', type: 'object', description: 'Graph to execute if cond is true' },
|
|
15
|
+
{ name: 'else', type: 'object', description: 'Graph to execute if cond is false' }
|
|
16
|
+
],
|
|
17
|
+
output: { type: 'any' }
|
|
18
|
+
},
|
|
19
|
+
characteristics: { stateless: true, atomic: true, composable: true },
|
|
20
|
+
execute: async (input, context) => {
|
|
21
|
+
const condValue = !!input.cond;
|
|
22
|
+
const branchInput = condValue ? input.then : input.else;
|
|
23
|
+
if (!branchInput) {
|
|
24
|
+
return { success: true, data: null };
|
|
25
|
+
}
|
|
26
|
+
if (!isGraph(branchInput)) {
|
|
27
|
+
return { success: false, error: 'Branch input must be a valid graph with order and nodes' };
|
|
28
|
+
}
|
|
29
|
+
if (!context.executeGraph) {
|
|
30
|
+
return { success: false, error: 'executeGraph not available' };
|
|
31
|
+
}
|
|
32
|
+
const results = await context.executeGraph(branchInput, context.currentScope);
|
|
33
|
+
const lastNodeId = branchInput.order[branchInput.order.length - 1];
|
|
34
|
+
return { success: true, data: results[lastNodeId] };
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
exports.loopAtom = {
|
|
38
|
+
name: 'loop',
|
|
39
|
+
version: '1.0.0',
|
|
40
|
+
meta: {
|
|
41
|
+
input: [
|
|
42
|
+
{ name: 'nodes', type: 'object' },
|
|
43
|
+
{ name: 'condKey', type: 'string' }
|
|
44
|
+
],
|
|
45
|
+
output: { type: 'void' }
|
|
46
|
+
},
|
|
47
|
+
characteristics: { stateless: true, atomic: true, composable: true },
|
|
48
|
+
execute: async (input, context) => {
|
|
49
|
+
const { nodes, condKey } = input;
|
|
50
|
+
if (!context.executeGraph) {
|
|
51
|
+
return { success: true, data: { done: true } };
|
|
52
|
+
}
|
|
53
|
+
while (true) {
|
|
54
|
+
if (condKey) {
|
|
55
|
+
const shouldContinue = context.store.get(condKey);
|
|
56
|
+
if (!shouldContinue)
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
await context.executeGraph(nodes, context.currentScope);
|
|
60
|
+
}
|
|
61
|
+
return { success: true, data: { done: true } };
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
exports.forEachAtom = {
|
|
65
|
+
name: 'forEach',
|
|
66
|
+
version: '1.0.0',
|
|
67
|
+
meta: {
|
|
68
|
+
input: [
|
|
69
|
+
{ name: 'array', type: 'array', description: 'Array to iterate' },
|
|
70
|
+
{ name: 'nodes', type: 'object', description: 'Graph to execute for each item' },
|
|
71
|
+
{ name: 'itemKey', type: 'string', description: 'Key to store current item in store' },
|
|
72
|
+
{ name: 'indexKey', type: 'string', description: 'Optional key to store current index' }
|
|
73
|
+
],
|
|
74
|
+
output: { type: 'void', description: 'Nothing' }
|
|
75
|
+
},
|
|
76
|
+
characteristics: { stateless: true, atomic: true, composable: true },
|
|
77
|
+
execute: async (input, context) => {
|
|
78
|
+
if (!context.executeGraph) {
|
|
79
|
+
return { success: true, data: { done: true } };
|
|
80
|
+
}
|
|
81
|
+
if (!Array.isArray(input.array)) {
|
|
82
|
+
return { success: false, error: 'Input is not an array' };
|
|
83
|
+
}
|
|
84
|
+
for (let i = 0; i < input.array.length; i++) {
|
|
85
|
+
context.store.set(input.itemKey, input.array[i]);
|
|
86
|
+
if (input.indexKey) {
|
|
87
|
+
context.store.set(input.indexKey, i);
|
|
88
|
+
}
|
|
89
|
+
await context.executeGraph(input.nodes, context.currentScope);
|
|
90
|
+
}
|
|
91
|
+
return { success: true, data: { done: true } };
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
exports.execAtom = {
|
|
95
|
+
name: 'exec',
|
|
96
|
+
version: '1.0.0',
|
|
97
|
+
meta: {
|
|
98
|
+
input: [
|
|
99
|
+
{ name: 'nodes', type: 'object' }
|
|
100
|
+
],
|
|
101
|
+
output: { type: 'any' }
|
|
102
|
+
},
|
|
103
|
+
characteristics: { stateless: true, atomic: true, composable: true },
|
|
104
|
+
execute: async (input, context) => {
|
|
105
|
+
if (!context.executeGraph) {
|
|
106
|
+
return { success: true, data: null };
|
|
107
|
+
}
|
|
108
|
+
const results = await context.executeGraph(input.nodes, context.currentScope);
|
|
109
|
+
const lastNodeId = input.nodes.order[input.nodes.order.length - 1];
|
|
110
|
+
return { success: true, data: results[lastNodeId] };
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
exports.execGraphAtom = {
|
|
114
|
+
name: 'execGraph',
|
|
115
|
+
version: '1.0.0',
|
|
116
|
+
meta: {
|
|
117
|
+
input: [
|
|
118
|
+
{ name: 'graph', type: 'any', description: 'Graph object or ACS string' }
|
|
119
|
+
],
|
|
120
|
+
output: { type: 'any', description: 'Result of the last node in the graph' }
|
|
121
|
+
},
|
|
122
|
+
characteristics: { stateless: true, atomic: true, composable: true },
|
|
123
|
+
execute: async (input, context) => {
|
|
124
|
+
if (!context.executeGraph) {
|
|
125
|
+
return { success: false, error: 'executeGraph not available in context' };
|
|
126
|
+
}
|
|
127
|
+
let graph;
|
|
128
|
+
if (typeof input.graph === 'string') {
|
|
129
|
+
try {
|
|
130
|
+
graph = (0, acs_1.compileAcs)(input.graph);
|
|
131
|
+
}
|
|
132
|
+
catch (e) {
|
|
133
|
+
return { success: false, error: `Failed to compile ACS: ${e.message}` };
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
else if (isGraph(input.graph)) {
|
|
137
|
+
graph = input.graph;
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
return { success: false, error: 'Invalid graph: must be a Graph object or ACS string' };
|
|
141
|
+
}
|
|
142
|
+
if (!graph.order || !graph.nodes) {
|
|
143
|
+
return { success: false, error: 'Invalid graph: missing order or nodes' };
|
|
144
|
+
}
|
|
145
|
+
const results = await context.executeGraph(graph, context.currentScope);
|
|
146
|
+
const lastNodeId = graph.order[graph.order.length - 1];
|
|
147
|
+
return { success: true, data: results[lastNodeId] };
|
|
148
|
+
},
|
|
149
|
+
};
|
|
150
|
+
exports.waitAtom = {
|
|
151
|
+
name: 'wait',
|
|
152
|
+
version: '1.0.0',
|
|
153
|
+
meta: {
|
|
154
|
+
input: [
|
|
155
|
+
{ name: 'ms', type: 'number' }
|
|
156
|
+
],
|
|
157
|
+
output: { type: 'void' }
|
|
158
|
+
},
|
|
159
|
+
characteristics: { stateless: true, atomic: true, composable: true },
|
|
160
|
+
execute: async (input, context) => {
|
|
161
|
+
return new Promise(resolve => {
|
|
162
|
+
setTimeout(() => resolve({ success: true, data: { done: true } }), input.ms);
|
|
163
|
+
});
|
|
164
|
+
},
|
|
165
|
+
};
|
|
166
|
+
exports.execFileAtom = {
|
|
167
|
+
name: 'execFile',
|
|
168
|
+
version: '1.0.0',
|
|
169
|
+
meta: {
|
|
170
|
+
input: [
|
|
171
|
+
{ name: 'file', type: 'string' }
|
|
172
|
+
],
|
|
173
|
+
output: { type: 'any' }
|
|
174
|
+
},
|
|
175
|
+
characteristics: { stateless: true, atomic: true, composable: true },
|
|
176
|
+
execute: async (input, context) => {
|
|
177
|
+
let graph = context.store.get(`__graph_${input.file}`);
|
|
178
|
+
if (!graph) {
|
|
179
|
+
return { success: false, error: `Graph file "${input.file}" not found in store` };
|
|
180
|
+
}
|
|
181
|
+
if (typeof graph === 'string') {
|
|
182
|
+
try {
|
|
183
|
+
graph = (0, acs_1.compileAcs)(graph);
|
|
184
|
+
}
|
|
185
|
+
catch (e) {
|
|
186
|
+
return { success: false, error: `Failed to compile ACS: ${e.message}` };
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
if (!isGraph(graph)) {
|
|
190
|
+
return { success: false, error: 'Invalid graph: must be a Graph object or ACS string' };
|
|
191
|
+
}
|
|
192
|
+
if (!context.executeGraph) {
|
|
193
|
+
return { success: false, error: 'executeGraph not available in context' };
|
|
194
|
+
}
|
|
195
|
+
const results = await context.executeGraph(graph, context.currentScope, input.file);
|
|
196
|
+
const lastNodeId = graph.order[graph.order.length - 1];
|
|
197
|
+
return { success: true, data: results[lastNodeId] };
|
|
198
|
+
},
|
|
199
|
+
};
|
|
200
|
+
exports.logAtom = {
|
|
201
|
+
name: 'log',
|
|
202
|
+
version: '1.0.0',
|
|
203
|
+
meta: {
|
|
204
|
+
input: [
|
|
205
|
+
{ name: 'message', type: 'string' },
|
|
206
|
+
{ name: 'data', type: 'any' }
|
|
207
|
+
],
|
|
208
|
+
output: { type: 'any' }
|
|
209
|
+
},
|
|
210
|
+
characteristics: { stateless: true, atomic: true, composable: true },
|
|
211
|
+
execute: async (input, context) => {
|
|
212
|
+
if (input.message && input.data !== undefined) {
|
|
213
|
+
console.log(`[AITOS] ${input.message}:`, input.data);
|
|
214
|
+
}
|
|
215
|
+
else if (input.data !== undefined) {
|
|
216
|
+
console.log('[AITOS]', input.data);
|
|
217
|
+
}
|
|
218
|
+
else if (input.message) {
|
|
219
|
+
console.log(`[AITOS] ${input.message}`);
|
|
220
|
+
}
|
|
221
|
+
return { success: true, data: input.data };
|
|
222
|
+
},
|
|
223
|
+
};
|
|
224
|
+
exports.getSkillSetAtom = {
|
|
225
|
+
name: 'getSkillSet',
|
|
226
|
+
version: '1.0.0',
|
|
227
|
+
meta: {
|
|
228
|
+
input: [],
|
|
229
|
+
output: { type: 'string', description: 'JSON string containing all available atoms and graph format' }
|
|
230
|
+
},
|
|
231
|
+
characteristics: { stateless: true, atomic: true, composable: true },
|
|
232
|
+
execute: async (input, context) => {
|
|
233
|
+
if (!context.runtime) {
|
|
234
|
+
return { success: false, error: 'Runtime not available in context' };
|
|
235
|
+
}
|
|
236
|
+
const skillSet = context.runtime.getSkillSet();
|
|
237
|
+
return { success: true, data: skillSet };
|
|
238
|
+
},
|
|
239
|
+
};
|
|
240
|
+
exports.compileAcsAtom = {
|
|
241
|
+
name: 'compileAcs',
|
|
242
|
+
version: '1.0.0',
|
|
243
|
+
meta: {
|
|
244
|
+
input: [
|
|
245
|
+
{ name: 'acs', type: 'string', description: 'ACS string to compile' }
|
|
246
|
+
],
|
|
247
|
+
output: { type: 'object', description: 'Compiled Graph object or error' }
|
|
248
|
+
},
|
|
249
|
+
characteristics: { stateless: true, atomic: true, composable: true },
|
|
250
|
+
execute: async (input, context) => {
|
|
251
|
+
if (typeof input.acs !== 'string') {
|
|
252
|
+
return { success: false, error: 'Input must be a string' };
|
|
253
|
+
}
|
|
254
|
+
try {
|
|
255
|
+
const graph = (0, acs_1.compileAcs)(input.acs);
|
|
256
|
+
if (context.runtime) {
|
|
257
|
+
const validation = context.runtime.validateGraph(graph);
|
|
258
|
+
if (!validation.valid) {
|
|
259
|
+
return { success: false, error: `Graph validation failed: ${validation.errors.join('; ')}` };
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
return { success: true, data: graph };
|
|
263
|
+
}
|
|
264
|
+
catch (e) {
|
|
265
|
+
return { success: false, error: `ACS compilation error: ${e.message}` };
|
|
266
|
+
}
|
|
267
|
+
},
|
|
268
|
+
};
|
|
269
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdG9tcy9jb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLGdDQUFvQztBQUVwQyxTQUFTLE9BQU8sQ0FBQyxHQUFRO0lBQ3ZCLE9BQU8sR0FBRyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxPQUFPLEdBQUcsQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDO0FBQ3JHLENBQUM7QUFFWSxRQUFBLFVBQVUsR0FBUztJQUM5QixJQUFJLEVBQUUsUUFBUTtJQUNkLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLElBQUksRUFBRTtRQUNKLEtBQUssRUFBRTtZQUNMLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSx1QkFBdUIsRUFBRTtZQUN2RSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsa0NBQWtDLEVBQUU7WUFDakYsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLG1DQUFtQyxFQUFFO1NBQ25GO1FBQ0QsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRTtLQUN4QjtJQUNELGVBQWUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFO0lBQ3BFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBb0QsRUFBRSxPQUFnQixFQUFtQixFQUFFO1FBQ3pHLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBRS9CLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxD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VUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUMvRixDQUFDO1lBQ0gsQ0FBQztZQUVELE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUN4QyxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsMEJBQTBCLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQzFFLENBQUM7SUFDSCxDQUFDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF0b20sIENvbnRleHQsIFJlc3VsdCwgR3JhcGggfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBjb21waWxlQWNzIH0gZnJvbSAnLi4vYWNzJztcblxuZnVuY3Rpb24gaXNHcmFwaChvYmo6IGFueSk6IG9iaiBpcyBHcmFwaCB7XG4gIHJldHVybiBvYmogJiYgdHlwZW9mIG9iaiA9PT0gJ29iamVjdCcgJiYgQXJyYXkuaXNBcnJheShvYmoub3JkZXIpICYmIHR5cGVvZiBvYmoubm9kZXMgPT09ICdvYmplY3QnO1xufVxuXG5leHBvcnQgY29uc3QgYnJhbmNoQXRvbTogQXRvbSA9IHtcbiAgbmFtZTogJ2JyYW5jaCcsXG4gIHZlcnNpb246ICcxLjAuMCcsXG4gIG1ldGE6IHtcbiAgICBpbnB1dDogW1xuICAgICAgeyBuYW1lOiAnY29uZCcsIHR5cGU6ICdib29sZWFuJywgZGVzY3JpcHRpb246ICdDb25kaXRpb24gdG8gZXZhbHVhdGUnIH0sXG4gICAgICB7IG5hbWU6ICd0aGVuJywgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnR3JhcGggdG8gZXhlY3V0ZSBpZiBjb25kIGlzIHRydWUnIH0sXG4gICAgICB7IG5hbWU6ICdlbHNlJywgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnR3JhcGggdG8gZXhlY3V0ZSBpZiBjb25kIGlzIGZhbHNlJyB9XG4gICAgXSxcbiAgICBvdXRwdXQ6IHsgdHlwZTogJ2FueScgfVxuICB9LFxuICBjaGFyYWN0ZXJpc3RpY3M6IHsgc3RhdGVsZXNzOiB0cnVlLCBhdG9taWM6IHRydWUsIGNvbXBvc2FibGU6IHRydWUgfSxcbiAgZXhlY3V0ZTogYXN5bmMgKGlucHV0OiB7IGNvbmQ6IGJvb2xlYW47IHRoZW4/OiBHcmFwaDsgZWxzZT86IEdyYXBoIH0sIGNvbnRleHQ6IENvbnRleHQpOiBQcm9taXNlPFJlc3VsdD4gPT4ge1xuICAgIGNvbnN0IGNvbmRWYWx1ZSA9ICEhaW5wdXQuY29uZDtcbiAgICBcbiAgICBjb25zdCBicmFuY2hJbnB1dCA9IGNvbmRWYWx1ZSA/IGlucHV0LnRoZW4gOiBpbnB1dC5lbHNlO1xuICAgIFxuICAgIGlmICghYnJhbmNoSW5wdXQpIHtcbiAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIGRhdGE6IG51bGwgfTtcbiAgICB9XG5cbiAgICBpZiAoIWlzR3JhcGgoYnJhbmNoSW5wdXQpKSB7XG4gICAgICByZXR1cm4geyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6ICdCcmFuY2ggaW5wdXQgbXVzdCBiZSBhIHZhbGlkIGdyYXBoIHdpdGggb3JkZXIgYW5kIG5vZGVzJyB9O1xuICAgIH1cblxuICAgIGlmICghY29udGV4dC5leGVjdXRlR3JhcGgpIHtcbiAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogJ2V4ZWN1dGVHcmFwaCBub3QgYXZhaWxhYmxlJyB9O1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBjb250ZXh0LmV4ZWN1dGVHcmFwaChicmFuY2hJbnB1dCwgY29udGV4dC5jdXJyZW50U2NvcGUpO1xuICAgIGNvbnN0IGxhc3ROb2RlSWQgPSBicmFuY2hJbnB1dC5vcmRlclticmFuY2hJbnB1dC5vcmRlci5sZW5ndGggLSAxXTtcbiAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlLCBkYXRhOiByZXN1bHRzW2xhc3ROb2RlSWRdIH07XG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgbG9vcEF0b206IEF0b20gPSB7XG4gIG5hbWU6ICdsb29wJyxcbiAgdmVyc2lvbjogJzEuMC4wJyxcbiAgbWV0YToge1xuICAgIGlucHV0OiBbXG4gICAgICB7IG5hbWU6ICdub2RlcycsIHR5cGU6ICdvYmplY3QnIH0sXG4gICAgICB7IG5hbWU6ICdjb25kS2V5JywgdHlwZTogJ3N0cmluZycgfVxuICAgIF0sXG4gICAgb3V0cHV0OiB7IHR5cGU6ICd2b2lkJyB9XG4gIH0sXG4gIGNoYXJhY3RlcmlzdGljczogeyBzdGF0ZWxlc3M6IHRydWUsIGF0b21pYzogdHJ1ZSwgY29tcG9zYWJsZTogdHJ1ZSB9LFxuICBleGVjdXRlOiBhc3luYyAoaW5wdXQ6IHsgbm9kZXM6IEdyYXBoOyBjb25kS2V5Pzogc3RyaW5nIH0sIGNvbnRleHQ6IENvbnRleHQpOiBQcm9taXNlPFJlc3VsdD4gPT4ge1xuICAgIGNvbnN0IHsgbm9kZXMsIGNvbmRLZXkgfSA9IGlucHV0O1xuXG4gICAgaWYgKCFjb250ZXh0LmV4ZWN1dGVHcmFwaCkge1xuICAgICAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSwgZGF0YTogeyBkb25lOiB0cnVlIH0gfTtcbiAgICB9XG5cbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgaWYgKGNvbmRLZXkpIHtcbiAgICAgICAgY29uc3Qgc2hvdWxkQ29udGludWUgPSBjb250ZXh0LnN0b3JlLmdldChjb25kS2V5KTtcbiAgICAgICAgaWYgKCFzaG91bGRDb250aW51ZSkgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IGNvbnRleHQuZXhlY3V0ZUdyYXBoKG5vZGVzLCBjb250ZXh0LmN1cnJlbnRTY29wZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSwgZGF0YTogeyBkb25lOiB0cnVlIH0gfTtcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBmb3JFYWNoQXRvbTogQXRvbSA9IHtcbiAgbmFtZTogJ2ZvckVhY2gnLFxuICB2ZXJzaW9uOiAnMS4wLjAnLFxuICBtZXRhOiB7XG4gICAgaW5wdXQ6IFtcbiAgICAgIHsgbmFtZTogJ2FycmF5JywgdHlwZTogJ2FycmF5JywgZGVzY3JpcHRpb246ICdBcnJheSB0byBpdGVyYXRlJyB9LFxuICAgICAgeyBuYW1lOiAnbm9kZXMnLCB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdHcmFwaCB0byBleGVjdXRlIGZvciBlYWNoIGl0ZW0nIH0sXG4gICAgICB7IG5hbWU6ICdpdGVtS2V5JywgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnS2V5IHRvIHN0b3JlIGN1cnJlbnQgaXRlbSBpbiBzdG9yZScgfSxcbiAgICAgIHsgbmFtZTogJ2luZGV4S2V5JywgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnT3B0aW9uYWwga2V5IHRvIHN0b3JlIGN1cnJlbnQgaW5kZXgnIH1cbiAgICBdLFxuICAgIG91dHB1dDogeyB0eXBlOiAndm9pZCcsIGRlc2NyaXB0aW9uOiAnTm90aGluZycgfVxuICB9LFxuICBjaGFyYWN0ZXJpc3RpY3M6IHsgc3RhdGVsZXNzOiB0cnVlLCBhdG9taWM6IHRydWUsIGNvbXBvc2FibGU6IHRydWUgfSxcbiAgZXhlY3V0ZTogYXN5bmMgKGlucHV0OiB7IFxuICAgIGFycmF5OiBhbnlbXTsgXG4gICAgbm9kZXM6IEdyYXBoOyBcbiAgICBpdGVtS2V5OiBzdHJpbmc7XG4gICAgaW5kZXhLZXk/OiBzdHJpbmc7XG4gIH0sIGNvbnRleHQ6IENvbnRleHQpOiBQcm9taXNlPFJlc3VsdD4gPT4ge1xuICAgIGlmICghY29udGV4dC5leGVjdXRlR3JhcGgpIHtcbiAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIGRhdGE6IHsgZG9uZTogdHJ1ZSB9IH07XG4gICAgfVxuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGlucHV0LmFycmF5KSkge1xuICAgICAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiAnSW5wdXQgaXMgbm90IGFuIGFycmF5JyB9O1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXQuYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnRleHQuc3RvcmUuc2V0KGlucHV0Lml0ZW1LZXksIGlucHV0LmFycmF5W2ldKTtcbiAgICAgIGlmIChpbnB1dC5pbmRleEtleSkge1xuICAgICAgICBjb250ZXh0LnN0b3JlLnNldChpbnB1dC5pbmRleEtleSwgaSk7XG4gICAgICB9XG4gICAgICBhd2FpdCBjb250ZXh0LmV4ZWN1dGVHcmFwaChpbnB1dC5ub2RlcywgY29udGV4dC5jdXJyZW50U2NvcGUpO1xuICAgIH1cblxuICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIGRhdGE6IHsgZG9uZTogdHJ1ZSB9IH07XG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgZXhlY0F0b206IEF0b20gPSB7XG4gIG5hbWU6ICdleGVjJyxcbiAgdmVyc2lvbjogJzEuMC4wJyxcbiAgbWV0YToge1xuICAgIGlucHV0OiBbXG4gICAgICB7IG5hbWU6ICdub2RlcycsIHR5cGU6ICdvYmplY3QnIH1cbiAgICBdLFxuICAgIG91dHB1dDogeyB0eXBlOiAnYW55JyB9XG4gIH0sXG4gIGNoYXJhY3RlcmlzdGljczogeyBzdGF0ZWxlc3M6IHRydWUsIGF0b21pYzogdHJ1ZSwgY29tcG9zYWJsZTogdHJ1ZSB9LFxuICBleGVjdXRlOiBhc3luYyAoaW5wdXQ6IHsgbm9kZXM6IEdyYXBoIH0sIGNvbnRleHQ6IENvbnRleHQpOiBQcm9taXNlPFJlc3VsdD4gPT4ge1xuICAgIGlmICghY29udGV4dC5leGVjdXRlR3JhcGgpIHtcbiAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIGRhdGE6IG51bGwgfTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgY29udGV4dC5leGVjdXRlR3JhcGgoaW5wdXQubm9kZXMsIGNvbnRleHQuY3VycmVudFNjb3BlKTtcbiAgICBjb25zdCBsYXN0Tm9kZUlkID0gaW5wdXQubm9kZXMub3JkZXJbaW5wdXQubm9kZXMub3JkZXIubGVuZ3RoIC0gMV07XG4gICAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSwgZGF0YTogcmVzdWx0c1tsYXN0Tm9kZUlkXSB9O1xuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IGV4ZWNHcmFwaEF0b206IEF0b20gPSB7XG4gIG5hbWU6ICdleGVjR3JhcGgnLFxuICB2ZXJzaW9uOiAnMS4wLjAnLFxuICBtZXRhOiB7XG4gICAgaW5wdXQ6IFtcbiAgICAgIHsgbmFtZTogJ2dyYXBoJywgdHlwZTogJ2FueScsIGRlc2NyaXB0aW9uOiAnR3JhcGggb2JqZWN0IG9yIEFDUyBzdHJpbmcnIH1cbiAgICBdLFxuICAgIG91dHB1dDogeyB0eXBlOiAnYW55JywgZGVzY3JpcHRpb246ICdSZXN1bHQgb2YgdGhlIGxhc3Qgbm9kZSBpbiB0aGUgZ3JhcGgnIH1cbiAgfSxcbiAgY2hhcmFjdGVyaXN0aWNzOiB7IHN0YXRlbGVzczogdHJ1ZSwgYXRvbWljOiB0cnVlLCBjb21wb3NhYmxlOiB0cnVlIH0sXG4gIGV4ZWN1dGU6IGFzeW5jIChpbnB1dDogeyBncmFwaDogYW55IH0sIGNvbnRleHQ6IENvbnRleHQpOiBQcm9taXNlPFJlc3VsdD4gPT4ge1xuICAgIGlmICghY29udGV4dC5leGVjdXRlR3JhcGgpIHtcbiAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogJ2V4ZWN1dGVHcmFwaCBub3QgYXZhaWxhYmxlIGluIGNvbnRleHQnIH07XG4gICAgfVxuXG4gICAgbGV0IGdyYXBoOiBHcmFwaDtcbiAgICBpZiAodHlwZW9mIGlucHV0LmdyYXBoID09PSAnc3RyaW5nJykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZ3JhcGggPSBjb21waWxlQWNzKGlucHV0LmdyYXBoKTtcbiAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICByZXR1cm4geyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6IGBGYWlsZWQgdG8gY29tcGlsZSBBQ1M6ICR7ZS5tZXNzYWdlfWAgfTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzR3JhcGgoaW5wdXQuZ3JhcGgpKSB7XG4gICAgICBncmFwaCA9IGlucHV0LmdyYXBoO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4geyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6ICdJbnZhbGlkIGdyYXBoOiBtdXN0IGJlIGEgR3JhcGggb2JqZWN0IG9yIEFDUyBzdHJpbmcnIH07XG4gICAgfVxuXG4gICAgaWYgKCFncmFwaC5vcmRlciB8fCAhZ3JhcGgubm9kZXMpIHtcbiAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogJ0ludmFsaWQgZ3JhcGg6IG1pc3Npbmcgb3JkZXIgb3Igbm9kZXMnIH07XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IGNvbnRleHQuZXhlY3V0ZUdyYXBoKGdyYXBoLCBjb250ZXh0LmN1cnJlbnRTY29wZSk7XG4gICAgY29uc3QgbGFzdE5vZGVJZCA9IGdyYXBoLm9yZGVyW2dyYXBoLm9yZGVyLmxlbmd0aCAtIDFdO1xuICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIGRhdGE6IHJlc3VsdHNbbGFzdE5vZGVJZF0gfTtcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCB3YWl0QXRvbTogQXRvbSA9IHtcbiAgbmFtZTogJ3dhaXQnLFxuICB2ZXJzaW9uOiAnMS4wLjAnLFxuICBtZXRhOiB7XG4gICAgaW5wdXQ6IFtcbiAgICAgIHsgbmFtZTogJ21zJywgdHlwZTogJ251bWJlcicgfVxuICAgIF0sXG4gICAgb3V0cHV0OiB7IHR5cGU6ICd2b2lkJyB9XG4gIH0sXG4gIGNoYXJhY3RlcmlzdGljczogeyBzdGF0ZWxlc3M6IHRydWUsIGF0b21pYzogdHJ1ZSwgY29tcG9zYWJsZTogdHJ1ZSB9LFxuICBleGVjdXRlOiBhc3luYyAoaW5wdXQ6IHsgbXM6IG51bWJlciB9LCBjb250ZXh0OiBDb250ZXh0KTogUHJvbWlzZTxSZXN1bHQ+ID0+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHJlc29sdmUoeyBzdWNjZXNzOiB0cnVlLCBkYXRhOiB7IGRvbmU6IHRydWUgfSB9KSwgaW5wdXQubXMpO1xuICAgIH0pO1xuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IGV4ZWNGaWxlQXRvbTogQXRvbSA9IHtcbiAgbmFtZTogJ2V4ZWNGaWxlJyxcbiAgdmVyc2lvbjogJzEuMC4wJyxcbiAgbWV0YToge1xuICAgIGlucHV0OiBbXG4gICAgICB7IG5hbWU6ICdmaWxlJywgdHlwZTogJ3N0cmluZycgfVxuICAgIF0sXG4gICAgb3V0cHV0OiB7IHR5cGU6ICdhbnknIH1cbiAgfSxcbiAgY2hhcmFjdGVyaXN0aWNzOiB7IHN0YXRlbGVzczogdHJ1ZSwgYXRvbWljOiB0cnVlLCBjb21wb3NhYmxlOiB0cnVlIH0sXG4gIGV4ZWN1dGU6IGFzeW5jIChpbnB1dDogeyBmaWxlOiBzdHJpbmcgfSwgY29udGV4dDogQ29udGV4dCk6IFByb21pc2U8UmVzdWx0PiA9PiB7XG4gICAgbGV0IGdyYXBoID0gY29udGV4dC5zdG9yZS5nZXQoYF9fZ3JhcGhfJHtpbnB1dC5maWxlfWApO1xuICAgIFxuICAgIGlmICghZ3JhcGgpIHtcbiAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogYEdyYXBoIGZpbGUgXCIke2lucHV0LmZpbGV9XCIgbm90IGZvdW5kIGluIHN0b3JlYCB9O1xuICAgIH1cbiAgICBcbiAgICBpZiAodHlwZW9mIGdyYXBoID09PSAnc3RyaW5nJykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZ3JhcGggPSBjb21waWxlQWNzKGdyYXBoKTtcbiAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICByZXR1cm4geyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6IGBGYWlsZWQgdG8gY29tcGlsZSBBQ1M6ICR7ZS5tZXNzYWdlfWAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIWlzR3JhcGgoZ3JhcGgpKSB7XG4gICAgICByZXR1cm4geyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6ICdJbnZhbGlkIGdyYXBoOiBtdXN0IGJlIGEgR3JhcGggb2JqZWN0IG9yIEFDUyBzdHJpbmcnIH07XG4gICAgfVxuICAgIFxuICAgIGlmICghY29udGV4dC5leGVjdXRlR3JhcGgpIHtcbiAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogJ2V4ZWN1dGVHcmFwaCBub3QgYXZhaWxhYmxlIGluIGNvbnRleHQnIH07XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IGNvbnRleHQuZXhlY3V0ZUdyYXBoKGdyYXBoLCBjb250ZXh0LmN1cnJlbnRTY29wZSwgaW5wdXQuZmlsZSk7XG4gICAgY29uc3QgbGFzdE5vZGVJZCA9IGdyYXBoLm9yZGVyW2dyYXBoLm9yZGVyLmxlbmd0aCAtIDFdO1xuICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIGRhdGE6IHJlc3VsdHNbbGFzdE5vZGVJZF0gfTtcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBsb2dBdG9tOiBBdG9tID0ge1xuICBuYW1lOiAnbG9nJyxcbiAgdmVyc2lvbjogJzEuMC4wJyxcbiAgbWV0YToge1xuICAgIGlucHV0OiBbXG4gICAgICB7IG5hbWU6ICdtZXNzYWdlJywgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgIHsgbmFtZTogJ2RhdGEnLCB0eXBlOiAnYW55JyB9XG4gICAgXSxcbiAgICBvdXRwdXQ6IHsgdHlwZTogJ2FueScgfVxuICB9LFxuICBjaGFyYWN0ZXJpc3RpY3M6IHsgc3RhdGVsZXNzOiB0cnVlLCBhdG9taWM6IHRydWUsIGNvbXBvc2FibGU6IHRydWUgfSxcbiAgZXhlY3V0ZTogYXN5bmMgKGlucHV0OiB7IG1lc3NhZ2U/OiBzdHJpbmc7IGRhdGE/OiBhbnkgfSwgY29udGV4dDogQ29udGV4dCk6IFByb21pc2U8UmVzdWx0PiA9PiB7XG4gICAgaWYgKGlucHV0Lm1lc3NhZ2UgJiYgaW5wdXQuZGF0YSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zb2xlLmxvZyhgW0FJVE9TXSAke2lucHV0Lm1lc3NhZ2V9OmAsIGlucHV0LmRhdGEpO1xuICAgIH0gZWxzZSBpZiAoaW5wdXQuZGF0YSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zb2xlLmxvZygnW0FJVE9TXScsIGlucHV0LmRhdGEpO1xuICAgIH0gZWxzZSBpZiAoaW5wdXQubWVzc2FnZSkge1xuICAgICAgY29uc29sZS5sb2coYFtBSVRPU10gJHtpbnB1dC5tZXNzYWdlfWApO1xuICAgIH1cbiAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlLCBkYXRhOiBpbnB1dC5kYXRhIH07XG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U2tpbGxTZXRBdG9tOiBBdG9tID0ge1xuICBuYW1lOiAnZ2V0U2tpbGxTZXQnLFxuICB2ZXJzaW9uOiAnMS4wLjAnLFxuICBtZXRhOiB7XG4gICAgaW5wdXQ6IFtdLFxuICAgIG91dHB1dDogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdKU09OIHN0cmluZyBjb250YWluaW5nIGFsbCBhdmFpbGFibGUgYXRvbXMgYW5kIGdyYXBoIGZvcm1hdCcgfVxuICB9LFxuICBjaGFyYWN0ZXJpc3RpY3M6IHsgc3RhdGVsZXNzOiB0cnVlLCBhdG9taWM6IHRydWUsIGNvbXBvc2FibGU6IHRydWUgfSxcbiAgZXhlY3V0ZTogYXN5bmMgKGlucHV0OiB7fSwgY29udGV4dDogQ29udGV4dCk6IFByb21pc2U8UmVzdWx0PiA9PiB7XG4gICAgaWYgKCFjb250ZXh0LnJ1bnRpbWUpIHtcbiAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogJ1J1bnRpbWUgbm90IGF2YWlsYWJsZSBpbiBjb250ZXh0JyB9O1xuICAgIH1cbiAgICBcbiAgICBjb25zdCBza2lsbFNldCA9IGNvbnRleHQucnVudGltZS5nZXRTa2lsbFNldCgpO1xuICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIGRhdGE6IHNraWxsU2V0IH07XG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgY29tcGlsZUFjc0F0b206IEF0b20gPSB7XG4gIG5hbWU6ICdjb21waWxlQWNzJyxcbiAgdmVyc2lvbjogJzEuMC4wJyxcbiAgbWV0YToge1xuICAgIGlucHV0OiBbXG4gICAgICB7IG5hbWU6ICdhY3MnLCB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdBQ1Mgc3RyaW5nIHRvIGNvbXBpbGUnIH1cbiAgICBdLFxuICAgIG91dHB1dDogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdDb21waWxlZCBHcmFwaCBvYmplY3Qgb3IgZXJyb3InIH1cbiAgfSxcbiAgY2hhcmFjdGVyaXN0aWNzOiB7IHN0YXRlbGVzczogdHJ1ZSwgYXRvbWljOiB0cnVlLCBjb21wb3NhYmxlOiB0cnVlIH0sXG4gIGV4ZWN1dGU6IGFzeW5jIChpbnB1dDogeyBhY3M6IHN0cmluZyB9LCBjb250ZXh0OiBDb250ZXh0KTogUHJvbWlzZTxSZXN1bHQ+ID0+IHtcbiAgICBpZiAodHlwZW9mIGlucHV0LmFjcyAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogJ0lucHV0IG11c3QgYmUgYSBzdHJpbmcnIH07XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGdyYXBoID0gY29tcGlsZUFjcyhpbnB1dC5hY3MpO1xuXG4gICAgICBpZiAoY29udGV4dC5ydW50aW1lKSB7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRpb24gPSBjb250ZXh0LnJ1bnRpbWUudmFsaWRhdGVHcmFwaChncmFwaCk7XG4gICAgICAgIGlmICghdmFsaWRhdGlvbi52YWxpZCkge1xuICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogYEdyYXBoIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb24uZXJyb3JzLmpvaW4oJzsgJyl9YCB9O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIGRhdGE6IGdyYXBoIH07XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICByZXR1cm4geyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6IGBBQ1MgY29tcGlsYXRpb24gZXJyb3I6ICR7ZS5tZXNzYWdlfWAgfTtcbiAgICB9XG4gIH0sXG59O1xuXG5cbiJdfQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Atom } from '../types';
|
|
2
|
+
export declare const eqAtom: Atom;
|
|
3
|
+
export declare const gtAtom: Atom;
|
|
4
|
+
export declare const ltAtom: Atom;
|
|
5
|
+
export declare const gteAtom: Atom;
|
|
6
|
+
export declare const lteAtom: Atom;
|
|
7
|
+
export declare const andAtom: Atom;
|
|
8
|
+
export declare const orAtom: Atom;
|
|
9
|
+
export declare const notAtom: Atom;
|
|
10
|
+
export declare const isNilAtom: Atom;
|
|
11
|
+
export declare const isNumAtom: Atom;
|
|
12
|
+
export declare const isStrAtom: Atom;
|
|
13
|
+
export declare const isArrAtom: Atom;
|
|
14
|
+
export declare const isObjAtom: Atom;
|