@lowdefy/server-dev 0.0.0-experimental-20250910140832 → 0.0.0-experimental-20250915134255
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/app/api/ai/[transport]/helpers/createContext.js +60 -0
- package/app/api/ai/[transport]/helpers/loadIndividualSchema.js +32 -0
- package/app/api/ai/[transport]/helpers/loadSchemasAsArray.js +50 -0
- package/app/api/ai/[transport]/route.js +63 -0
- package/app/api/ai/[transport]/tools/executeRequest.js +63 -0
- package/app/api/ai/[transport]/tools/getAction.js +55 -0
- package/app/api/ai/[transport]/tools/getBlock.js +55 -0
- package/app/api/ai/[transport]/tools/getConnection.js +53 -0
- package/app/api/ai/[transport]/tools/getOperator.js +55 -0
- package/app/api/ai/[transport]/tools/getRequest.js +58 -0
- package/app/api/ai/[transport]/tools/listActions.js +35 -0
- package/app/api/ai/[transport]/tools/listBlocks.js +35 -0
- package/app/api/ai/[transport]/tools/listConnections.js +35 -0
- package/app/api/ai/[transport]/tools/listOperators.js +35 -0
- package/app/api/ai/[transport]/tools/listRequests.js +40 -0
- package/package.json +30 -29
- package/package.original.json +30 -29
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright 2020-2024 Lowdefy, Inc
|
|
3
|
+
|
|
4
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
you may not use this file except in compliance with the License.
|
|
6
|
+
You may obtain a copy of the License at
|
|
7
|
+
|
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
|
|
10
|
+
Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
See the License for the specific language governing permissions and
|
|
14
|
+
limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import path from 'path';
|
|
18
|
+
import crypto from 'crypto';
|
|
19
|
+
import { createApiContext } from '@lowdefy/api';
|
|
20
|
+
import { getSecretsFromEnv } from '@lowdefy/node-utils';
|
|
21
|
+
|
|
22
|
+
import config from '../../../../../build/config.json';
|
|
23
|
+
import connections from '../../../../../build/plugins/connections.js';
|
|
24
|
+
import createLogger from '../../../../../lib/server/log/createLogger.js';
|
|
25
|
+
import fileCache from '../../../../../lib/server/fileCache.js';
|
|
26
|
+
import logError from '../../../../../lib/server/log/logError.js';
|
|
27
|
+
import logRequest from '../../../../../lib/server/log/logRequest.js';
|
|
28
|
+
import operators from '../../../../../build/plugins/operators/server.js';
|
|
29
|
+
import jsMap from '../../../../../build/plugins/operators/serverJsMap.js';
|
|
30
|
+
import getAuthOptions from '../../../../../lib/server/auth/getAuthOptions.js';
|
|
31
|
+
|
|
32
|
+
const secrets = getSecretsFromEnv();
|
|
33
|
+
|
|
34
|
+
async function createContext() {
|
|
35
|
+
const context = {
|
|
36
|
+
rid: crypto.randomUUID(),
|
|
37
|
+
buildDirectory: path.join(process.cwd(), 'build'),
|
|
38
|
+
config,
|
|
39
|
+
connections,
|
|
40
|
+
fileCache,
|
|
41
|
+
jsMap,
|
|
42
|
+
logger: console,
|
|
43
|
+
operators,
|
|
44
|
+
secrets,
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
try {
|
|
48
|
+
context.logger = createLogger({ rid: context.rid });
|
|
49
|
+
context.authOptions = getAuthOptions(context);
|
|
50
|
+
|
|
51
|
+
createApiContext(context);
|
|
52
|
+
logRequest({ context });
|
|
53
|
+
} catch (error) {
|
|
54
|
+
logError({ error, context });
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
return context;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export default createContext;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright 2020-2024 Lowdefy, Inc
|
|
3
|
+
|
|
4
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
you may not use this file except in compliance with the License.
|
|
6
|
+
You may obtain a copy of the License at
|
|
7
|
+
|
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
|
|
10
|
+
Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
See the License for the specific language governing permissions and
|
|
14
|
+
limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import fs from 'fs';
|
|
18
|
+
import path from 'path';
|
|
19
|
+
|
|
20
|
+
// Helper function to load individual schema
|
|
21
|
+
function loadIndividualSchema(schemaType, identifier) {
|
|
22
|
+
try {
|
|
23
|
+
const schemaPath = path.join(process.cwd(), `build/schemas/${schemaType}/${identifier}.json`);
|
|
24
|
+
const schemaContent = fs.readFileSync(schemaPath, 'utf8');
|
|
25
|
+
|
|
26
|
+
return JSON.parse(schemaContent);
|
|
27
|
+
} catch (error) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export default loadIndividualSchema;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright 2020-2024 Lowdefy, Inc
|
|
3
|
+
|
|
4
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
you may not use this file except in compliance with the License.
|
|
6
|
+
You may obtain a copy of the License at
|
|
7
|
+
|
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
|
|
10
|
+
Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
See the License for the specific language governing permissions and
|
|
14
|
+
limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import fs from 'fs';
|
|
18
|
+
import path from 'path';
|
|
19
|
+
|
|
20
|
+
// Helper function to load all schemas from a directory as array
|
|
21
|
+
function loadSchemasAsArray(schemaType, excludeFields = []) {
|
|
22
|
+
try {
|
|
23
|
+
const schemasDir = path.join(process.cwd(), `build/schemas/${schemaType}`);
|
|
24
|
+
const files = fs.readdirSync(schemasDir);
|
|
25
|
+
const schemas = [];
|
|
26
|
+
|
|
27
|
+
files.forEach((file) => {
|
|
28
|
+
if (file.endsWith('.json')) {
|
|
29
|
+
const schemaPath = path.join(schemasDir, file);
|
|
30
|
+
const schemaContent = fs.readFileSync(schemaPath, 'utf8');
|
|
31
|
+
let schema = JSON.parse(schemaContent);
|
|
32
|
+
|
|
33
|
+
// Apply field exclusion if specified
|
|
34
|
+
if (excludeFields.length > 0) {
|
|
35
|
+
const filteredSchema = { ...schema };
|
|
36
|
+
excludeFields.forEach((field) => delete filteredSchema[field]);
|
|
37
|
+
schema = filteredSchema;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
schemas.push(schema);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
return schemas;
|
|
45
|
+
} catch (error) {
|
|
46
|
+
return [];
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export default loadSchemasAsArray;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright 2020-2024 Lowdefy, Inc
|
|
3
|
+
|
|
4
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
you may not use this file except in compliance with the License.
|
|
6
|
+
You may obtain a copy of the License at
|
|
7
|
+
|
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
|
|
10
|
+
Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
See the License for the specific language governing permissions and
|
|
14
|
+
limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { createMcpHandler } from 'mcp-handler';
|
|
18
|
+
import getAction from './tools/getAction.js';
|
|
19
|
+
import getBlock from './tools/getBlock.js';
|
|
20
|
+
import getConnection from './tools/getConnection.js';
|
|
21
|
+
import getOperator from './tools/getOperator.js';
|
|
22
|
+
import getRequest from './tools/getRequest.js';
|
|
23
|
+
import listActions from './tools/listActions.js';
|
|
24
|
+
import listBlocks from './tools/listBlocks.js';
|
|
25
|
+
import listConnections from './tools/listConnections.js';
|
|
26
|
+
import listOperators from './tools/listOperators.js';
|
|
27
|
+
import listRequests from './tools/listRequests.js';
|
|
28
|
+
import executeRequest from './tools/executeRequest.js';
|
|
29
|
+
|
|
30
|
+
const handler = createMcpHandler(
|
|
31
|
+
async (server) => {
|
|
32
|
+
// Actions
|
|
33
|
+
server.tool(...listActions);
|
|
34
|
+
server.tool(...getAction);
|
|
35
|
+
|
|
36
|
+
// Blocks
|
|
37
|
+
server.tool(...listBlocks);
|
|
38
|
+
server.tool(...getBlock);
|
|
39
|
+
|
|
40
|
+
// Connections
|
|
41
|
+
server.tool(...listConnections);
|
|
42
|
+
server.tool(...getConnection);
|
|
43
|
+
|
|
44
|
+
// Operators
|
|
45
|
+
server.tool(...listOperators);
|
|
46
|
+
server.tool(...getOperator);
|
|
47
|
+
|
|
48
|
+
// Requests
|
|
49
|
+
server.tool(...listRequests);
|
|
50
|
+
server.tool(...getRequest);
|
|
51
|
+
server.tool(...executeRequest);
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
// Optional server options
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
basePath: '/api/ai',
|
|
58
|
+
verboseLogs: true,
|
|
59
|
+
maxDuration: 60,
|
|
60
|
+
}
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
export { handler as GET, handler as POST, handler as DELETE };
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright 2020-2024 Lowdefy, Inc
|
|
3
|
+
|
|
4
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
you may not use this file except in compliance with the License.
|
|
6
|
+
You may obtain a copy of the License at
|
|
7
|
+
|
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
|
|
10
|
+
Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
See the License for the specific language governing permissions and
|
|
14
|
+
limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { z } from 'zod';
|
|
18
|
+
import { callRequest } from '@lowdefy/api';
|
|
19
|
+
|
|
20
|
+
import createContext from '../helpers/createContext.js';
|
|
21
|
+
|
|
22
|
+
export default [
|
|
23
|
+
'execute_request',
|
|
24
|
+
'Execute a request with specified blockId, pageId, payload and requestId',
|
|
25
|
+
{
|
|
26
|
+
blockId: z.string().describe('The block ID to test against'),
|
|
27
|
+
pageId: z.string().describe('The page ID to test against'),
|
|
28
|
+
payload: z.record(z.any()).optional().describe('Additional payload for the request'),
|
|
29
|
+
requestId: z.string().optional().describe('The request ID to test against'),
|
|
30
|
+
},
|
|
31
|
+
async ({ blockId, pageId, payload = {}, requestId }) => {
|
|
32
|
+
const requestConfig = {
|
|
33
|
+
blockId,
|
|
34
|
+
pageId,
|
|
35
|
+
payload,
|
|
36
|
+
requestId,
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
let responseText = `Executing Request:\n${JSON.stringify(requestConfig, null, 2)}`;
|
|
40
|
+
|
|
41
|
+
try {
|
|
42
|
+
const context = await createContext();
|
|
43
|
+
const response = await callRequest(context, requestConfig);
|
|
44
|
+
|
|
45
|
+
responseText += `\n\nExecution Result:\n${JSON.stringify(response, null, 2)}`;
|
|
46
|
+
} catch (error) {
|
|
47
|
+
responseText += `\n\nExecution Error:\n${error.message || 'Unknown error occurred'}`;
|
|
48
|
+
|
|
49
|
+
if (error.stack) {
|
|
50
|
+
responseText += `\n\nStack Trace:\n${error.stack}`;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return {
|
|
55
|
+
content: [
|
|
56
|
+
{
|
|
57
|
+
type: 'text',
|
|
58
|
+
text: responseText,
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
};
|
|
62
|
+
},
|
|
63
|
+
];
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright 2020-2024 Lowdefy, Inc
|
|
3
|
+
|
|
4
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
you may not use this file except in compliance with the License.
|
|
6
|
+
You may obtain a copy of the License at
|
|
7
|
+
|
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
|
|
10
|
+
Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
See the License for the specific language governing permissions and
|
|
14
|
+
limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { z } from 'zod';
|
|
18
|
+
import loadIndividualSchema from '../helpers/loadIndividualSchema.js';
|
|
19
|
+
|
|
20
|
+
export default [
|
|
21
|
+
'get_action',
|
|
22
|
+
'Returns detailed schema information for a specific action type',
|
|
23
|
+
{
|
|
24
|
+
actionType: z
|
|
25
|
+
.string()
|
|
26
|
+
.describe('The action type to get schema for (e.g., "CallAPI", "SetState", "Fetch")'),
|
|
27
|
+
},
|
|
28
|
+
async ({ actionType }) => {
|
|
29
|
+
const action = loadIndividualSchema('actions', actionType);
|
|
30
|
+
|
|
31
|
+
if (!action) {
|
|
32
|
+
return {
|
|
33
|
+
content: [
|
|
34
|
+
{
|
|
35
|
+
type: 'text',
|
|
36
|
+
text: `Action "${actionType}" not found.`,
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return {
|
|
43
|
+
content: [
|
|
44
|
+
{
|
|
45
|
+
type: 'text',
|
|
46
|
+
text: `Action: ${actionType}\nPackage: ${action.package}\nSchema:\n${JSON.stringify(
|
|
47
|
+
action,
|
|
48
|
+
null,
|
|
49
|
+
2
|
|
50
|
+
)}`,
|
|
51
|
+
},
|
|
52
|
+
],
|
|
53
|
+
};
|
|
54
|
+
},
|
|
55
|
+
];
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright 2020-2024 Lowdefy, Inc
|
|
3
|
+
|
|
4
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
you may not use this file except in compliance with the License.
|
|
6
|
+
You may obtain a copy of the License at
|
|
7
|
+
|
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
|
|
10
|
+
Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
See the License for the specific language governing permissions and
|
|
14
|
+
limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { z } from 'zod';
|
|
18
|
+
import loadIndividualSchema from '../helpers/loadIndividualSchema.js';
|
|
19
|
+
|
|
20
|
+
export default [
|
|
21
|
+
'get_block',
|
|
22
|
+
'Returns detailed schema information for a specific block type',
|
|
23
|
+
{
|
|
24
|
+
blockType: z
|
|
25
|
+
.string()
|
|
26
|
+
.describe('The block type to get schema for (e.g., "Button", "TextInput", "Card")'),
|
|
27
|
+
},
|
|
28
|
+
async ({ blockType }) => {
|
|
29
|
+
const block = loadIndividualSchema('blocks', blockType);
|
|
30
|
+
|
|
31
|
+
if (!block) {
|
|
32
|
+
return {
|
|
33
|
+
content: [
|
|
34
|
+
{
|
|
35
|
+
type: 'text',
|
|
36
|
+
text: `Block "${blockType}" not found.`,
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return {
|
|
43
|
+
content: [
|
|
44
|
+
{
|
|
45
|
+
type: 'text',
|
|
46
|
+
text: `Block: ${blockType}\nPackage: ${block.package}\nSchema:\n${JSON.stringify(
|
|
47
|
+
block,
|
|
48
|
+
null,
|
|
49
|
+
2
|
|
50
|
+
)}`,
|
|
51
|
+
},
|
|
52
|
+
],
|
|
53
|
+
};
|
|
54
|
+
},
|
|
55
|
+
];
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright 2020-2024 Lowdefy, Inc
|
|
3
|
+
|
|
4
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
you may not use this file except in compliance with the License.
|
|
6
|
+
You may obtain a copy of the License at
|
|
7
|
+
|
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
|
|
10
|
+
Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
See the License for the specific language governing permissions and
|
|
14
|
+
limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { z } from 'zod';
|
|
18
|
+
import loadIndividualSchema from '../helpers/loadIndividualSchema.js';
|
|
19
|
+
|
|
20
|
+
export default [
|
|
21
|
+
'get_connection',
|
|
22
|
+
'Returns detailed schema information for a specific connection type',
|
|
23
|
+
{
|
|
24
|
+
connectionType: z
|
|
25
|
+
.string()
|
|
26
|
+
.describe('The connection type to get schema for (e.g., "AxiosHttp", "MongoDBCollection")'),
|
|
27
|
+
},
|
|
28
|
+
async ({ connectionType }) => {
|
|
29
|
+
const connection = loadIndividualSchema('connections', connectionType);
|
|
30
|
+
|
|
31
|
+
if (!connection) {
|
|
32
|
+
return {
|
|
33
|
+
content: [
|
|
34
|
+
{
|
|
35
|
+
type: 'text',
|
|
36
|
+
text: `Connection "${connectionType}" not found.`,
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return {
|
|
43
|
+
content: [
|
|
44
|
+
{
|
|
45
|
+
type: 'text',
|
|
46
|
+
text: `Connection: ${connectionType}\nPackage: ${
|
|
47
|
+
connection.package
|
|
48
|
+
}\nSchema:\n${JSON.stringify(connection, null, 2)}`,
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
};
|
|
52
|
+
},
|
|
53
|
+
];
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright 2020-2024 Lowdefy, Inc
|
|
3
|
+
|
|
4
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
you may not use this file except in compliance with the License.
|
|
6
|
+
You may obtain a copy of the License at
|
|
7
|
+
|
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
|
|
10
|
+
Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
See the License for the specific language governing permissions and
|
|
14
|
+
limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { z } from 'zod';
|
|
18
|
+
import loadIndividualSchema from '../helpers/loadIndividualSchema.js';
|
|
19
|
+
|
|
20
|
+
export default [
|
|
21
|
+
'get_operator',
|
|
22
|
+
'Returns detailed schema information for a specific operator type',
|
|
23
|
+
{
|
|
24
|
+
operatorType: z
|
|
25
|
+
.string()
|
|
26
|
+
.describe('The operator type to get schema for (e.g., "_and", "_array", "_string")'),
|
|
27
|
+
},
|
|
28
|
+
async ({ operatorType }) => {
|
|
29
|
+
const operator = loadIndividualSchema('operators', operatorType);
|
|
30
|
+
|
|
31
|
+
if (!operator) {
|
|
32
|
+
return {
|
|
33
|
+
content: [
|
|
34
|
+
{
|
|
35
|
+
type: 'text',
|
|
36
|
+
text: `Operator "${operatorType}" not found.`,
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return {
|
|
43
|
+
content: [
|
|
44
|
+
{
|
|
45
|
+
type: 'text',
|
|
46
|
+
text: `Operator: ${operatorType}\nPackage: ${operator.package}\nSchema:\n${JSON.stringify(
|
|
47
|
+
operator,
|
|
48
|
+
null,
|
|
49
|
+
2
|
|
50
|
+
)}`,
|
|
51
|
+
},
|
|
52
|
+
],
|
|
53
|
+
};
|
|
54
|
+
},
|
|
55
|
+
];
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright 2020-2024 Lowdefy, Inc
|
|
3
|
+
|
|
4
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
you may not use this file except in compliance with the License.
|
|
6
|
+
You may obtain a copy of the License at
|
|
7
|
+
|
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
|
|
10
|
+
Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
See the License for the specific language governing permissions and
|
|
14
|
+
limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { z } from 'zod';
|
|
18
|
+
import loadIndividualSchema from '../helpers/loadIndividualSchema.js';
|
|
19
|
+
|
|
20
|
+
export default [
|
|
21
|
+
'get_request',
|
|
22
|
+
'Returns detailed schema information for a specific request type',
|
|
23
|
+
{
|
|
24
|
+
connectionType: z
|
|
25
|
+
.string()
|
|
26
|
+
.describe(
|
|
27
|
+
'The connection type the request belongs to (e.g., "AxiosHttp", "MongoDBCollection")'
|
|
28
|
+
),
|
|
29
|
+
requestType: z
|
|
30
|
+
.string()
|
|
31
|
+
.describe('The request type to get schema for (e.g., "AxiosHttp", "MongoDBAggregation")'),
|
|
32
|
+
},
|
|
33
|
+
async ({ connectionType, requestType }) => {
|
|
34
|
+
const request = loadIndividualSchema(`requests/${connectionType}`, requestType);
|
|
35
|
+
|
|
36
|
+
if (!request) {
|
|
37
|
+
return {
|
|
38
|
+
content: [
|
|
39
|
+
{
|
|
40
|
+
type: 'text',
|
|
41
|
+
text: `Request "${requestType}" not found.`,
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return {
|
|
48
|
+
content: [
|
|
49
|
+
{
|
|
50
|
+
type: 'text',
|
|
51
|
+
text: `Connection: ${connectionType}\nRequest: ${requestType}\nPackage: ${
|
|
52
|
+
request.package
|
|
53
|
+
}\nSchema:\n${JSON.stringify(request, null, 2)}`,
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
};
|
|
57
|
+
},
|
|
58
|
+
];
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright 2020-2024 Lowdefy, Inc
|
|
3
|
+
|
|
4
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
you may not use this file except in compliance with the License.
|
|
6
|
+
You may obtain a copy of the License at
|
|
7
|
+
|
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
|
|
10
|
+
Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
See the License for the specific language governing permissions and
|
|
14
|
+
limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import loadSchemasAsArray from '../helpers/loadSchemasAsArray.js';
|
|
18
|
+
|
|
19
|
+
export default [
|
|
20
|
+
'list_actions',
|
|
21
|
+
'Returns a list of all available Lowdefy actions with their types and packages',
|
|
22
|
+
{},
|
|
23
|
+
async () => {
|
|
24
|
+
const actionList = loadSchemasAsArray('actions', ['schema']);
|
|
25
|
+
|
|
26
|
+
return {
|
|
27
|
+
content: [
|
|
28
|
+
{
|
|
29
|
+
type: 'text',
|
|
30
|
+
text: `Available actions:\n${JSON.stringify(actionList, null, 2)}`,
|
|
31
|
+
},
|
|
32
|
+
],
|
|
33
|
+
};
|
|
34
|
+
},
|
|
35
|
+
];
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright 2020-2024 Lowdefy, Inc
|
|
3
|
+
|
|
4
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
you may not use this file except in compliance with the License.
|
|
6
|
+
You may obtain a copy of the License at
|
|
7
|
+
|
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
|
|
10
|
+
Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
See the License for the specific language governing permissions and
|
|
14
|
+
limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import loadSchemasAsArray from '../helpers/loadSchemasAsArray.js';
|
|
18
|
+
|
|
19
|
+
export default [
|
|
20
|
+
'list_blocks',
|
|
21
|
+
'Returns a list of all available Lowdefy blocks with their types and packages',
|
|
22
|
+
{},
|
|
23
|
+
async () => {
|
|
24
|
+
const blockList = loadSchemasAsArray('blocks', ['schema']);
|
|
25
|
+
|
|
26
|
+
return {
|
|
27
|
+
content: [
|
|
28
|
+
{
|
|
29
|
+
type: 'text',
|
|
30
|
+
text: `Available blocks:\n${JSON.stringify(blockList, null, 2)}`,
|
|
31
|
+
},
|
|
32
|
+
],
|
|
33
|
+
};
|
|
34
|
+
},
|
|
35
|
+
];
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright 2020-2024 Lowdefy, Inc
|
|
3
|
+
|
|
4
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
you may not use this file except in compliance with the License.
|
|
6
|
+
You may obtain a copy of the License at
|
|
7
|
+
|
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
|
|
10
|
+
Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
See the License for the specific language governing permissions and
|
|
14
|
+
limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import loadSchemasAsArray from '../helpers/loadSchemasAsArray.js';
|
|
18
|
+
|
|
19
|
+
export default [
|
|
20
|
+
'list_connections',
|
|
21
|
+
'Returns a list of all available Lowdefy connections with their types and packages',
|
|
22
|
+
{},
|
|
23
|
+
async () => {
|
|
24
|
+
const connectionList = loadSchemasAsArray('connections', ['schema']);
|
|
25
|
+
|
|
26
|
+
return {
|
|
27
|
+
content: [
|
|
28
|
+
{
|
|
29
|
+
type: 'text',
|
|
30
|
+
text: `Available connections:\n${JSON.stringify(connectionList, null, 2)}`,
|
|
31
|
+
},
|
|
32
|
+
],
|
|
33
|
+
};
|
|
34
|
+
},
|
|
35
|
+
];
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright 2020-2024 Lowdefy, Inc
|
|
3
|
+
|
|
4
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
you may not use this file except in compliance with the License.
|
|
6
|
+
You may obtain a copy of the License at
|
|
7
|
+
|
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
|
|
10
|
+
Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
See the License for the specific language governing permissions and
|
|
14
|
+
limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import loadSchemasAsArray from '../helpers/loadSchemasAsArray.js';
|
|
18
|
+
|
|
19
|
+
export default [
|
|
20
|
+
'list_operators',
|
|
21
|
+
'Returns a list of all available Lowdefy operators with their types and packages',
|
|
22
|
+
{},
|
|
23
|
+
async () => {
|
|
24
|
+
const operatorList = loadSchemasAsArray('operators', ['schema']);
|
|
25
|
+
|
|
26
|
+
return {
|
|
27
|
+
content: [
|
|
28
|
+
{
|
|
29
|
+
type: 'text',
|
|
30
|
+
text: `Available operators:\n${JSON.stringify(operatorList, null, 2)}`,
|
|
31
|
+
},
|
|
32
|
+
],
|
|
33
|
+
};
|
|
34
|
+
},
|
|
35
|
+
];
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright 2020-2024 Lowdefy, Inc
|
|
3
|
+
|
|
4
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
you may not use this file except in compliance with the License.
|
|
6
|
+
You may obtain a copy of the License at
|
|
7
|
+
|
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
|
|
10
|
+
Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
See the License for the specific language governing permissions and
|
|
14
|
+
limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { z } from 'zod';
|
|
18
|
+
import loadSchemasAsArray from '../helpers/loadSchemasAsArray.js';
|
|
19
|
+
|
|
20
|
+
export default [
|
|
21
|
+
'list_requests',
|
|
22
|
+
'Returns a list of all available Lowdefy requests for a specific connection type',
|
|
23
|
+
{
|
|
24
|
+
connectionType: z
|
|
25
|
+
.string()
|
|
26
|
+
.describe('The connection type to get requests for (e.g., "AxiosHttp", "MongoDBCollection")'),
|
|
27
|
+
},
|
|
28
|
+
async ({ connectionType }) => {
|
|
29
|
+
const requestList = loadSchemasAsArray(`requests/${connectionType}`, ['schema']);
|
|
30
|
+
|
|
31
|
+
return {
|
|
32
|
+
content: [
|
|
33
|
+
{
|
|
34
|
+
type: 'text',
|
|
35
|
+
text: `Available requests:\n${JSON.stringify(requestList, null, 2)}`,
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
};
|
|
39
|
+
},
|
|
40
|
+
];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lowdefy/server-dev",
|
|
3
|
-
"version": "0.0.0-experimental-
|
|
3
|
+
"version": "0.0.0-experimental-20250915134255",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "",
|
|
6
6
|
"homepage": "https://lowdefy.com",
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
"url": "https://github.com/lowdefy/lowdefy.git"
|
|
27
27
|
},
|
|
28
28
|
"files": [
|
|
29
|
+
"app/*",
|
|
29
30
|
"lib/*",
|
|
30
31
|
"manager/*",
|
|
31
32
|
"pages/*",
|
|
@@ -36,33 +37,33 @@
|
|
|
36
37
|
".npmrc"
|
|
37
38
|
],
|
|
38
39
|
"dependencies": {
|
|
39
|
-
"@lowdefy/actions-core": "0.0.0-experimental-
|
|
40
|
-
"@lowdefy/api": "0.0.0-experimental-
|
|
41
|
-
"@lowdefy/block-utils": "0.0.0-experimental-
|
|
42
|
-
"@lowdefy/blocks-aggrid": "0.0.0-experimental-
|
|
43
|
-
"@lowdefy/blocks-antd": "0.0.0-experimental-
|
|
44
|
-
"@lowdefy/blocks-basic": "0.0.0-experimental-
|
|
45
|
-
"@lowdefy/blocks-color-selectors": "0.0.0-experimental-
|
|
46
|
-
"@lowdefy/blocks-echarts": "0.0.0-experimental-
|
|
47
|
-
"@lowdefy/blocks-loaders": "0.0.0-experimental-
|
|
48
|
-
"@lowdefy/blocks-markdown": "0.0.0-experimental-
|
|
49
|
-
"@lowdefy/blocks-qr": "0.0.0-experimental-
|
|
50
|
-
"@lowdefy/build": "0.0.0-experimental-
|
|
51
|
-
"@lowdefy/client": "0.0.0-experimental-
|
|
52
|
-
"@lowdefy/connection-axios-http": "0.0.0-experimental-
|
|
53
|
-
"@lowdefy/engine": "0.0.0-experimental-
|
|
54
|
-
"@lowdefy/helpers": "0.0.0-experimental-
|
|
55
|
-
"@lowdefy/layout": "0.0.0-experimental-
|
|
56
|
-
"@lowdefy/node-utils": "0.0.0-experimental-
|
|
57
|
-
"@lowdefy/operators-change-case": "0.0.0-experimental-
|
|
58
|
-
"@lowdefy/operators-diff": "0.0.0-experimental-
|
|
59
|
-
"@lowdefy/operators-js": "0.0.0-experimental-
|
|
60
|
-
"@lowdefy/operators-moment": "0.0.0-experimental-
|
|
61
|
-
"@lowdefy/operators-mql": "0.0.0-experimental-
|
|
62
|
-
"@lowdefy/operators-nunjucks": "0.0.0-experimental-
|
|
63
|
-
"@lowdefy/operators-uuid": "0.0.0-experimental-
|
|
64
|
-
"@lowdefy/operators-yaml": "0.0.0-experimental-
|
|
65
|
-
"@lowdefy/plugin-next-auth": "0.0.0-experimental-
|
|
40
|
+
"@lowdefy/actions-core": "0.0.0-experimental-20250915134255",
|
|
41
|
+
"@lowdefy/api": "0.0.0-experimental-20250915134255",
|
|
42
|
+
"@lowdefy/block-utils": "0.0.0-experimental-20250915134255",
|
|
43
|
+
"@lowdefy/blocks-aggrid": "0.0.0-experimental-20250915134255",
|
|
44
|
+
"@lowdefy/blocks-antd": "0.0.0-experimental-20250915134255",
|
|
45
|
+
"@lowdefy/blocks-basic": "0.0.0-experimental-20250915134255",
|
|
46
|
+
"@lowdefy/blocks-color-selectors": "0.0.0-experimental-20250915134255",
|
|
47
|
+
"@lowdefy/blocks-echarts": "0.0.0-experimental-20250915134255",
|
|
48
|
+
"@lowdefy/blocks-loaders": "0.0.0-experimental-20250915134255",
|
|
49
|
+
"@lowdefy/blocks-markdown": "0.0.0-experimental-20250915134255",
|
|
50
|
+
"@lowdefy/blocks-qr": "0.0.0-experimental-20250915134255",
|
|
51
|
+
"@lowdefy/build": "0.0.0-experimental-20250915134255",
|
|
52
|
+
"@lowdefy/client": "0.0.0-experimental-20250915134255",
|
|
53
|
+
"@lowdefy/connection-axios-http": "0.0.0-experimental-20250915134255",
|
|
54
|
+
"@lowdefy/engine": "0.0.0-experimental-20250915134255",
|
|
55
|
+
"@lowdefy/helpers": "0.0.0-experimental-20250915134255",
|
|
56
|
+
"@lowdefy/layout": "0.0.0-experimental-20250915134255",
|
|
57
|
+
"@lowdefy/node-utils": "0.0.0-experimental-20250915134255",
|
|
58
|
+
"@lowdefy/operators-change-case": "0.0.0-experimental-20250915134255",
|
|
59
|
+
"@lowdefy/operators-diff": "0.0.0-experimental-20250915134255",
|
|
60
|
+
"@lowdefy/operators-js": "0.0.0-experimental-20250915134255",
|
|
61
|
+
"@lowdefy/operators-moment": "0.0.0-experimental-20250915134255",
|
|
62
|
+
"@lowdefy/operators-mql": "0.0.0-experimental-20250915134255",
|
|
63
|
+
"@lowdefy/operators-nunjucks": "0.0.0-experimental-20250915134255",
|
|
64
|
+
"@lowdefy/operators-uuid": "0.0.0-experimental-20250915134255",
|
|
65
|
+
"@lowdefy/operators-yaml": "0.0.0-experimental-20250915134255",
|
|
66
|
+
"@lowdefy/plugin-next-auth": "0.0.0-experimental-20250915134255",
|
|
66
67
|
"@modelcontextprotocol/sdk": "1.17.4",
|
|
67
68
|
"chokidar": "3.5.3",
|
|
68
69
|
"dotenv": "16.3.1",
|
|
@@ -78,7 +79,7 @@
|
|
|
78
79
|
"swr": "2.2.4",
|
|
79
80
|
"yaml": "2.3.4",
|
|
80
81
|
"yargs": "17.7.2",
|
|
81
|
-
"zod": "
|
|
82
|
+
"zod": "3.25.76"
|
|
82
83
|
},
|
|
83
84
|
"devDependencies": {
|
|
84
85
|
"@next/eslint-plugin-next": "13.5.4",
|
package/package.original.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lowdefy/server-dev",
|
|
3
|
-
"version": "0.0.0-experimental-
|
|
3
|
+
"version": "0.0.0-experimental-20250915134255",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "",
|
|
6
6
|
"homepage": "https://lowdefy.com",
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
"url": "https://github.com/lowdefy/lowdefy.git"
|
|
27
27
|
},
|
|
28
28
|
"files": [
|
|
29
|
+
"app/*",
|
|
29
30
|
"lib/*",
|
|
30
31
|
"manager/*",
|
|
31
32
|
"pages/*",
|
|
@@ -43,33 +44,33 @@
|
|
|
43
44
|
"prepublishOnly": "pnpm build"
|
|
44
45
|
},
|
|
45
46
|
"dependencies": {
|
|
46
|
-
"@lowdefy/actions-core": "0.0.0-experimental-
|
|
47
|
-
"@lowdefy/api": "0.0.0-experimental-
|
|
48
|
-
"@lowdefy/block-utils": "0.0.0-experimental-
|
|
49
|
-
"@lowdefy/blocks-aggrid": "0.0.0-experimental-
|
|
50
|
-
"@lowdefy/blocks-antd": "0.0.0-experimental-
|
|
51
|
-
"@lowdefy/blocks-basic": "0.0.0-experimental-
|
|
52
|
-
"@lowdefy/blocks-color-selectors": "0.0.0-experimental-
|
|
53
|
-
"@lowdefy/blocks-echarts": "0.0.0-experimental-
|
|
54
|
-
"@lowdefy/blocks-loaders": "0.0.0-experimental-
|
|
55
|
-
"@lowdefy/blocks-markdown": "0.0.0-experimental-
|
|
56
|
-
"@lowdefy/blocks-qr": "0.0.0-experimental-
|
|
57
|
-
"@lowdefy/build": "0.0.0-experimental-
|
|
58
|
-
"@lowdefy/client": "0.0.0-experimental-
|
|
59
|
-
"@lowdefy/connection-axios-http": "0.0.0-experimental-
|
|
60
|
-
"@lowdefy/engine": "0.0.0-experimental-
|
|
61
|
-
"@lowdefy/helpers": "0.0.0-experimental-
|
|
62
|
-
"@lowdefy/layout": "0.0.0-experimental-
|
|
63
|
-
"@lowdefy/node-utils": "0.0.0-experimental-
|
|
64
|
-
"@lowdefy/operators-change-case": "0.0.0-experimental-
|
|
65
|
-
"@lowdefy/operators-diff": "0.0.0-experimental-
|
|
66
|
-
"@lowdefy/operators-js": "0.0.0-experimental-
|
|
67
|
-
"@lowdefy/operators-moment": "0.0.0-experimental-
|
|
68
|
-
"@lowdefy/operators-mql": "0.0.0-experimental-
|
|
69
|
-
"@lowdefy/operators-nunjucks": "0.0.0-experimental-
|
|
70
|
-
"@lowdefy/operators-uuid": "0.0.0-experimental-
|
|
71
|
-
"@lowdefy/operators-yaml": "0.0.0-experimental-
|
|
72
|
-
"@lowdefy/plugin-next-auth": "0.0.0-experimental-
|
|
47
|
+
"@lowdefy/actions-core": "0.0.0-experimental-20250915134255",
|
|
48
|
+
"@lowdefy/api": "0.0.0-experimental-20250915134255",
|
|
49
|
+
"@lowdefy/block-utils": "0.0.0-experimental-20250915134255",
|
|
50
|
+
"@lowdefy/blocks-aggrid": "0.0.0-experimental-20250915134255",
|
|
51
|
+
"@lowdefy/blocks-antd": "0.0.0-experimental-20250915134255",
|
|
52
|
+
"@lowdefy/blocks-basic": "0.0.0-experimental-20250915134255",
|
|
53
|
+
"@lowdefy/blocks-color-selectors": "0.0.0-experimental-20250915134255",
|
|
54
|
+
"@lowdefy/blocks-echarts": "0.0.0-experimental-20250915134255",
|
|
55
|
+
"@lowdefy/blocks-loaders": "0.0.0-experimental-20250915134255",
|
|
56
|
+
"@lowdefy/blocks-markdown": "0.0.0-experimental-20250915134255",
|
|
57
|
+
"@lowdefy/blocks-qr": "0.0.0-experimental-20250915134255",
|
|
58
|
+
"@lowdefy/build": "0.0.0-experimental-20250915134255",
|
|
59
|
+
"@lowdefy/client": "0.0.0-experimental-20250915134255",
|
|
60
|
+
"@lowdefy/connection-axios-http": "0.0.0-experimental-20250915134255",
|
|
61
|
+
"@lowdefy/engine": "0.0.0-experimental-20250915134255",
|
|
62
|
+
"@lowdefy/helpers": "0.0.0-experimental-20250915134255",
|
|
63
|
+
"@lowdefy/layout": "0.0.0-experimental-20250915134255",
|
|
64
|
+
"@lowdefy/node-utils": "0.0.0-experimental-20250915134255",
|
|
65
|
+
"@lowdefy/operators-change-case": "0.0.0-experimental-20250915134255",
|
|
66
|
+
"@lowdefy/operators-diff": "0.0.0-experimental-20250915134255",
|
|
67
|
+
"@lowdefy/operators-js": "0.0.0-experimental-20250915134255",
|
|
68
|
+
"@lowdefy/operators-moment": "0.0.0-experimental-20250915134255",
|
|
69
|
+
"@lowdefy/operators-mql": "0.0.0-experimental-20250915134255",
|
|
70
|
+
"@lowdefy/operators-nunjucks": "0.0.0-experimental-20250915134255",
|
|
71
|
+
"@lowdefy/operators-uuid": "0.0.0-experimental-20250915134255",
|
|
72
|
+
"@lowdefy/operators-yaml": "0.0.0-experimental-20250915134255",
|
|
73
|
+
"@lowdefy/plugin-next-auth": "0.0.0-experimental-20250915134255",
|
|
73
74
|
"@modelcontextprotocol/sdk": "1.17.4",
|
|
74
75
|
"chokidar": "3.5.3",
|
|
75
76
|
"dotenv": "16.3.1",
|
|
@@ -85,7 +86,7 @@
|
|
|
85
86
|
"swr": "2.2.4",
|
|
86
87
|
"yaml": "2.3.4",
|
|
87
88
|
"yargs": "17.7.2",
|
|
88
|
-
"zod": "
|
|
89
|
+
"zod": "3.25.76"
|
|
89
90
|
},
|
|
90
91
|
"devDependencies": {
|
|
91
92
|
"@next/eslint-plugin-next": "13.5.4",
|