@prostgles/prostgles 2.3.6-dev.1786565331 → 2.3.6-dev.1786615880
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/common/DBGeneratedSchema.d.ts +5 -9
- package/dist/common/DBGeneratedSchema.d.ts.map +1 -1
- package/dist/common/llmUtils.d.ts.map +1 -1
- package/dist/server/package.json +3 -2
- package/dist/server/src/BackupManager/BackupManager.d.ts +0 -1
- package/dist/server/src/BackupManager/BackupManager.d.ts.map +1 -1
- package/dist/server/src/ConnectionManager/ConnectionManager.d.ts +1 -2
- package/dist/server/src/ConnectionManager/ConnectionManager.d.ts.map +1 -1
- package/dist/server/src/ConnectionManager/ConnectionManager.js +9 -5
- package/dist/server/src/ConnectionManager/ConnectionManager.js.map +1 -1
- package/dist/server/src/ConnectionManager/connectionManagerUtils.d.ts +0 -4
- package/dist/server/src/ConnectionManager/connectionManagerUtils.d.ts.map +1 -1
- package/dist/server/src/ConnectionManager/connectionManagerUtils.js +1 -8
- package/dist/server/src/ConnectionManager/connectionManagerUtils.js.map +1 -1
- package/dist/server/src/ConnectionManager/getHotReloadConfigs.d.ts.map +1 -1
- package/dist/server/src/ConnectionManager/initConnectionManager.js +1 -1
- package/dist/server/src/ConnectionManager/initConnectionManager.js.map +1 -1
- package/dist/server/src/ConnectionManager/startConnection.d.ts.map +1 -1
- package/dist/server/src/ConnectionManager/startConnection.js +1 -5
- package/dist/server/src/ConnectionManager/startConnection.js.map +1 -1
- package/dist/server/src/McpHub/DockerSandbox/getDockerRunArgs.d.ts.map +1 -1
- package/dist/server/src/McpHub/DockerSandbox/getDockerRunArgs.js +4 -2
- package/dist/server/src/McpHub/DockerSandbox/getDockerRunArgs.js.map +1 -1
- package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/validateAgenticWorkflowDefinitions.d.ts.map +1 -1
- package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/proxyHandlers/createWorkflowExecutionHandlers.d.ts.map +1 -1
- package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/proxyHandlers/getAgentConfigWithDefaults.d.ts.map +1 -1
- package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/proxyHandlers/setupOrchestrationToolPermissions.d.ts.map +1 -1
- package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/WebDev/tools/getWebDevChatAndConnection.d.ts +0 -1
- package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/WebDev/tools/getWebDevChatAndConnection.d.ts.map +1 -1
- package/dist/server/src/authConfig/sessionUtils.d.ts.map +1 -1
- package/dist/server/src/authConfig/subscribeToAuthSetupChanges.d.ts.map +1 -1
- package/dist/server/src/cli/cli.js +19 -1
- package/dist/server/src/cli/cli.js.map +1 -1
- package/dist/server/src/cli/cliUtils.d.ts +1 -0
- package/dist/server/src/cli/cliUtils.d.ts.map +1 -1
- package/dist/server/src/cli/cliUtils.js +5 -0
- package/dist/server/src/cli/cliUtils.js.map +1 -1
- package/dist/server/src/connectionUtils/testDBConnection.d.ts +1 -1
- package/dist/server/src/connectionUtils/testDBConnection.d.ts.map +1 -1
- package/dist/server/src/connectionUtils/testDBConnection.js +12 -9
- package/dist/server/src/connectionUtils/testDBConnection.js.map +1 -1
- package/dist/server/src/createHttpAndIOServers/getCorsOptions.d.ts.map +1 -1
- package/dist/server/src/createHttpAndIOServers/getCorsOptions.js +4 -0
- package/dist/server/src/createHttpAndIOServers/getCorsOptions.js.map +1 -1
- package/dist/server/src/init/initUsers.d.ts.map +1 -1
- package/dist/server/src/init/saveTypescriptFilesForProduction.d.ts.map +1 -1
- package/dist/server/src/init/saveTypescriptFilesForProduction.js +3 -1
- package/dist/server/src/init/saveTypescriptFilesForProduction.js.map +1 -1
- package/dist/server/src/init/startProstgles.d.ts.map +1 -1
- package/dist/server/src/init/startProstgles.js +5 -2
- package/dist/server/src/init/startProstgles.js.map +1 -1
- package/dist/server/src/publish/getPublishLLM.d.ts.map +1 -1
- package/dist/server/src/publish/getPublishLlmChats.d.ts.map +1 -1
- package/dist/server/src/serverFunctions/adminServerFunctions/getAdminServerFunctions.d.ts +0 -10
- package/dist/server/src/serverFunctions/adminServerFunctions/getAdminServerFunctions.d.ts.map +1 -1
- package/dist/server/src/serverFunctions/adminServerFunctions/getAdminServerFunctions.js +0 -1
- package/dist/server/src/serverFunctions/adminServerFunctions/getAdminServerFunctions.js.map +1 -1
- package/dist/server/src/serverFunctions/adminServerFunctions/getAgenticWorkflowFunctions.d.ts.map +1 -1
- package/dist/server/src/serverFunctions/adminServerFunctions/getBackupServerFunctions.d.ts.map +1 -1
- package/dist/server/src/serverFunctions/adminServerFunctions/getDefineAdminFunction.d.ts.map +1 -1
- package/dist/server/src/serverFunctions/adminServerFunctions/getMcpServerFunctions.d.ts.map +1 -1
- package/dist/server/src/serverFunctions/adminServerFunctions/getWebAppServerFunctions.d.ts.map +1 -1
- package/dist/server/src/serverFunctions/adminServerFunctions/webApp/getTemplatedWebAppConnection.d.ts +0 -1
- package/dist/server/src/serverFunctions/adminServerFunctions/webApp/getTemplatedWebAppConnection.d.ts.map +1 -1
- package/dist/server/src/serverFunctions/applySampleSchema.d.ts +0 -1
- package/dist/server/src/serverFunctions/applySampleSchema.d.ts.map +1 -1
- package/dist/server/src/serverFunctions/askLLM/askLLM.d.ts.map +1 -1
- package/dist/server/src/serverFunctions/askLLM/getPastMessages.d.ts.map +1 -1
- package/dist/server/src/serverFunctions/askLLM/getValidatedAskLLMChatOptions.d.ts.map +1 -1
- package/dist/server/src/serverFunctions/askLLM/handleToolUseResultConfirmation.d.ts.map +1 -1
- package/dist/server/src/serverFunctions/askLLM/prostglesLLMTools/getMCPServerTools.d.ts.map +1 -1
- package/dist/server/src/serverFunctions/askLLM/prostglesLLMTools/getMcpToolsWithDynamicDescription.d.ts.map +1 -1
- package/dist/server/src/serverFunctions/deleteConnection.d.ts +0 -1
- package/dist/server/src/serverFunctions/deleteConnection.d.ts.map +1 -1
- package/dist/server/src/serverFunctions/getConnectionAndDatabaseConfig.d.ts +0 -1
- package/dist/server/src/serverFunctions/getConnectionAndDatabaseConfig.d.ts.map +1 -1
- package/dist/server/src/serverFunctions/getServerFunctions.d.ts +0 -10
- package/dist/server/src/serverFunctions/getServerFunctions.d.ts.map +1 -1
- package/dist/server/src/serverFunctions/getServerFunctionsContext.d.ts.map +1 -1
- package/dist/server/src/serverFunctions/userServerFunctions/getLLMAccessParams.d.ts.map +1 -1
- package/dist/server/src/serverFunctions/userServerFunctions/getUserServerFunctions.d.ts.map +1 -1
- package/dist/server/src/tableConfig/tableConfigConnections.d.ts.map +1 -1
- package/dist/server/src/tableConfig/tableConfigConnections.js +0 -6
- package/dist/server/src/tableConfig/tableConfigConnections.js.map +1 -1
- package/dist/server/src/upsertConnection.d.ts +0 -1
- package/dist/server/src/upsertConnection.d.ts.map +1 -1
- package/package.json +3 -2
- package/sample_schemas/crypto/tsconfig.json +4 -0
- package/sample_schemas/food_delivery/tsconfig.json +1 -1
- package/sample_schemas/property_management/tsconfig.json +1 -1
- package/sample_schemas/weather/tsconfig.json +1 -1
- package/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/addInstrumentationToTsLogic.ts +350 -0
- package/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/callWorkflowProxy.ts +99 -0
- package/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/defineAgenticWorkflow.spec.ts +110 -0
- package/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/defineAgenticWorkflow.ts +576 -0
- package/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/defineAgenticWorkflowHandlers.ts +127 -0
- package/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/defineAgenticWorkflowHandlers.types.ts +72 -0
- package/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/definitionHandler.ts +104 -0
- package/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/ensureWorkflowIsExecuted.ts +53 -0
- package/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/getTsLogicSummary.ts +639 -0
- package/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/orchestrationToolHandlers.ts +55 -0
- package/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/tableHandlers.ts +108 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { DefineAgenticWorkflow } from "./defineAgenticWorkflow";
|
|
2
|
+
|
|
3
|
+
export type ProxyDbCallData =
|
|
4
|
+
| {
|
|
5
|
+
type: "db/execute_sql" | "db/execute_readonly_sql";
|
|
6
|
+
sql: string;
|
|
7
|
+
query_timeout?: number;
|
|
8
|
+
query_params?: unknown[] | Record<string, unknown>;
|
|
9
|
+
}
|
|
10
|
+
| {
|
|
11
|
+
type: "db/find" | "db/count";
|
|
12
|
+
tableName: string;
|
|
13
|
+
filter?: any;
|
|
14
|
+
limit?: any;
|
|
15
|
+
select?: any;
|
|
16
|
+
orderBy?: any;
|
|
17
|
+
offset?: any;
|
|
18
|
+
}
|
|
19
|
+
| {
|
|
20
|
+
type: "db/insert" | "db/insertMany";
|
|
21
|
+
tableName: string;
|
|
22
|
+
data: any;
|
|
23
|
+
returning?: any;
|
|
24
|
+
onConflict?: any;
|
|
25
|
+
}
|
|
26
|
+
| {
|
|
27
|
+
type: "db/update";
|
|
28
|
+
tableName: string;
|
|
29
|
+
filter: any;
|
|
30
|
+
data: any;
|
|
31
|
+
returning?: any;
|
|
32
|
+
onConflict?: any;
|
|
33
|
+
}
|
|
34
|
+
| {
|
|
35
|
+
type: "db/delete";
|
|
36
|
+
tableName: string;
|
|
37
|
+
filter: any;
|
|
38
|
+
returning?: any;
|
|
39
|
+
};
|
|
40
|
+
export type AgenticWorkflowDefinition = Parameters<DefineAgenticWorkflow>[0];
|
|
41
|
+
export type ProxyCallDataDefinitions = {
|
|
42
|
+
type: "definitions";
|
|
43
|
+
definitions: Parameters<DefineAgenticWorkflow>[0];
|
|
44
|
+
usedTables: string[];
|
|
45
|
+
};
|
|
46
|
+
export type ProxyCallData =
|
|
47
|
+
| ProxyCallDataDefinitions
|
|
48
|
+
| {
|
|
49
|
+
type: "agent";
|
|
50
|
+
agentName: string;
|
|
51
|
+
input: string;
|
|
52
|
+
}
|
|
53
|
+
| {
|
|
54
|
+
type: "tool";
|
|
55
|
+
toolName: string;
|
|
56
|
+
serverName: string;
|
|
57
|
+
input: Record<string, unknown> | undefined;
|
|
58
|
+
}
|
|
59
|
+
| {
|
|
60
|
+
type: "progress";
|
|
61
|
+
percent: number;
|
|
62
|
+
message: string;
|
|
63
|
+
}
|
|
64
|
+
| ProxyDbCallData;
|
|
65
|
+
|
|
66
|
+
const { DOCKER_MCP_ENDPOINT, MODE, USER_INPUT, EXECUTION_MODE } = process.env;
|
|
67
|
+
export const WORKFLOW_ENV_VARS = {
|
|
68
|
+
DOCKER_MCP_ENDPOINT,
|
|
69
|
+
MODE,
|
|
70
|
+
USER_INPUT,
|
|
71
|
+
EXECUTION_MODE,
|
|
72
|
+
};
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import ts from "typescript";
|
|
2
|
+
import { callWorkflowProxy } from "./callWorkflowProxy";
|
|
3
|
+
import { type DefineAgenticWorkflow } from "./defineAgenticWorkflow";
|
|
4
|
+
|
|
5
|
+
export const definitionHandler = async (
|
|
6
|
+
definitions: Parameters<DefineAgenticWorkflow>[0],
|
|
7
|
+
) => {
|
|
8
|
+
const usedTables = extractTableNames();
|
|
9
|
+
await callWorkflowProxy({
|
|
10
|
+
type: "definitions",
|
|
11
|
+
definitions,
|
|
12
|
+
usedTables,
|
|
13
|
+
});
|
|
14
|
+
console.log(
|
|
15
|
+
"Definitions sent to MCP proxy, exiting due to MODE=definitions-only",
|
|
16
|
+
);
|
|
17
|
+
process.exit(0);
|
|
18
|
+
};
|
|
19
|
+
const dbTableMethods = new Set([
|
|
20
|
+
"find",
|
|
21
|
+
"findOne",
|
|
22
|
+
"insert",
|
|
23
|
+
"update",
|
|
24
|
+
"delete",
|
|
25
|
+
"count",
|
|
26
|
+
"upsert",
|
|
27
|
+
"findOneOrCreate",
|
|
28
|
+
]);
|
|
29
|
+
|
|
30
|
+
const extractTableNames = (): string[] => {
|
|
31
|
+
const configPath = ts.findConfigFile(
|
|
32
|
+
__dirname,
|
|
33
|
+
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
34
|
+
ts.sys.fileExists,
|
|
35
|
+
"tsconfig.json",
|
|
36
|
+
);
|
|
37
|
+
if (!configPath) throw new Error("tsconfig.json not found");
|
|
38
|
+
|
|
39
|
+
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
40
|
+
const configFile = ts.readConfigFile(configPath, ts.sys.readFile);
|
|
41
|
+
const parsed = ts.parseJsonConfigFileContent(
|
|
42
|
+
configFile.config,
|
|
43
|
+
ts.sys,
|
|
44
|
+
__dirname,
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
const program = ts.createProgram(parsed.fileNames, parsed.options);
|
|
48
|
+
const sourceFile = program.getSourceFile(`${__dirname}/index.ts`);
|
|
49
|
+
if (!sourceFile) throw new Error("index.ts not found");
|
|
50
|
+
|
|
51
|
+
const checker = program.getTypeChecker();
|
|
52
|
+
const tables: string[] = [];
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Matches both:
|
|
56
|
+
* - `db.tableName.method()` where `db` is a destructured DbTableHandler
|
|
57
|
+
* - `databaseHandler.db.tableName.method()` where the parent is DatabaseHandler
|
|
58
|
+
*/
|
|
59
|
+
const isDbTableHandlerExpr = (node: ts.Expression): boolean => {
|
|
60
|
+
const type = checker.getTypeAtLocation(node);
|
|
61
|
+
|
|
62
|
+
// Covers the destructured case: `const { db } = databaseHandler`
|
|
63
|
+
if (type.aliasSymbol?.getName() === "DbTableHandler") return true;
|
|
64
|
+
|
|
65
|
+
// Covers the direct property access case: `databaseHandler.db`
|
|
66
|
+
if (ts.isPropertyAccessExpression(node) && node.name.text === "db") {
|
|
67
|
+
const parentType = checker.getTypeAtLocation(node.expression);
|
|
68
|
+
const parentSymbol = parentType.aliasSymbol ?? parentType.getSymbol();
|
|
69
|
+
return parentSymbol?.getName() === "DatabaseHandler";
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
return false;
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const visit = (node: ts.Node): void => {
|
|
76
|
+
/**
|
|
77
|
+
* Target AST shape:
|
|
78
|
+
* CallExpression
|
|
79
|
+
* PropertyAccessExpression <- `.method()`
|
|
80
|
+
* PropertyAccessExpression <- `.tableName` ← extract this
|
|
81
|
+
* Expression (DbTableHandler) <- `db`
|
|
82
|
+
*/
|
|
83
|
+
if (ts.isCallExpression(node)) {
|
|
84
|
+
const expr = node.expression;
|
|
85
|
+
if (
|
|
86
|
+
ts.isPropertyAccessExpression(expr) &&
|
|
87
|
+
dbTableMethods.has(expr.name.text)
|
|
88
|
+
) {
|
|
89
|
+
const tableAccess = expr.expression;
|
|
90
|
+
if (
|
|
91
|
+
ts.isPropertyAccessExpression(tableAccess) &&
|
|
92
|
+
isDbTableHandlerExpr(tableAccess.expression)
|
|
93
|
+
) {
|
|
94
|
+
tables.push(tableAccess.name.text);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
ts.forEachChild(node, visit);
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
visit(sourceFile);
|
|
103
|
+
return Array.from(new Set(tables));
|
|
104
|
+
};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { WORKFLOW_ENV_VARS } from "./defineAgenticWorkflowHandlers.types";
|
|
2
|
+
|
|
3
|
+
export const assertWorkflowStarted = (runState: { wasStarted: boolean }) => {
|
|
4
|
+
if (!WORKFLOW_ENV_VARS.DOCKER_MCP_ENDPOINT) {
|
|
5
|
+
// Not running inside container
|
|
6
|
+
return;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
process.on("unhandledRejection", (reason) => {
|
|
10
|
+
console.error("Unhandled Rejection:\n", reason);
|
|
11
|
+
process.exit(1);
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
process.on("uncaughtException", (error) => {
|
|
15
|
+
console.error("Uncaught Exception:\n", error);
|
|
16
|
+
process.exit(1);
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
setTimeout(() => {
|
|
20
|
+
if (runState.wasStarted) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
console.error(`
|
|
24
|
+
defineAgenticWorkflow was not called within 1 second of the container starting.
|
|
25
|
+
This likely means there is an error in your workflow code that is preventing it from running, or you are not using defineAgenticWorkflow correctly.
|
|
26
|
+
When generating workflow code, you MUST:
|
|
27
|
+
|
|
28
|
+
1. Use defineAgenticWorkflow() - NOT exported functions
|
|
29
|
+
2. Structure must be:
|
|
30
|
+
|
|
31
|
+
\`\`\`typescript
|
|
32
|
+
import { defineAgenticWorkflow } from "./defineAgenticWorkflow";
|
|
33
|
+
void defineAgenticWorkflow(
|
|
34
|
+
{
|
|
35
|
+
name: "Workflow Name",
|
|
36
|
+
// workflow parameters
|
|
37
|
+
},
|
|
38
|
+
async ({ agentName }) => {
|
|
39
|
+
// workflow logic
|
|
40
|
+
},
|
|
41
|
+
);
|
|
42
|
+
\`\`\`
|
|
43
|
+
|
|
44
|
+
3. DO NOT use:
|
|
45
|
+
- export default function
|
|
46
|
+
- export const myWorkflow
|
|
47
|
+
- Any other export syntax
|
|
48
|
+
|
|
49
|
+
4. The workflow callback is the SECOND argument to defineAgenticWorkflow
|
|
50
|
+
`);
|
|
51
|
+
process.exit(1);
|
|
52
|
+
}, 1000);
|
|
53
|
+
};
|