@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.
@@ -0,0 +1,7 @@
1
+ import { Atom } from '../types';
2
+ export declare const addAtom: Atom;
3
+ export declare const subAtom: Atom;
4
+ export declare const mulAtom: Atom;
5
+ export declare const divAtom: Atom;
6
+ export declare const modAtom: Atom;
7
+ export declare const randomAtom: Atom;
@@ -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;