@minded-ai/mindedjs 1.0.19
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/.github/workflows/CI.yml +34 -0
- package/.prettierrc +8 -0
- package/README.md +6 -0
- package/dist/agent.d.ts +36 -0
- package/dist/agent.js +199 -0
- package/dist/agent.js.map +1 -0
- package/dist/analytics.d.ts +6 -0
- package/dist/analytics.js +19 -0
- package/dist/analytics.js.map +1 -0
- package/dist/edges/createDirectEdge.d.ts +4 -0
- package/dist/edges/createDirectEdge.js +14 -0
- package/dist/edges/createDirectEdge.js.map +1 -0
- package/dist/edges/createLogicalRouter.d.ts +5 -0
- package/dist/edges/createLogicalRouter.js +18 -0
- package/dist/edges/createLogicalRouter.js.map +1 -0
- package/dist/edges/createPromptRouter.d.ts +7 -0
- package/dist/edges/createPromptRouter.js +54 -0
- package/dist/edges/createPromptRouter.js.map +1 -0
- package/dist/edges/edgeFactory.d.ts +9 -0
- package/dist/edges/edgeFactory.js +65 -0
- package/dist/edges/edgeFactory.js.map +1 -0
- package/dist/events/AgentEvents.d.ts +22 -0
- package/dist/events/AgentEvents.js +9 -0
- package/dist/events/AgentEvents.js.map +1 -0
- package/dist/events/index.d.ts +2 -0
- package/dist/events/index.js +5 -0
- package/dist/events/index.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/infrastructure.ts/mindedRequest.d.ts +8 -0
- package/dist/infrastructure.ts/mindedRequest.js +22 -0
- package/dist/infrastructure.ts/mindedRequest.js.map +1 -0
- package/dist/llm/createLlmInstance.d.ts +2 -0
- package/dist/llm/createLlmInstance.js +14 -0
- package/dist/llm/createLlmInstance.js.map +1 -0
- package/dist/nodes/addHumanInTheLoopNode.d.ts +8 -0
- package/dist/nodes/addHumanInTheLoopNode.js +17 -0
- package/dist/nodes/addHumanInTheLoopNode.js.map +1 -0
- package/dist/nodes/addPromptNode.d.ts +15 -0
- package/dist/nodes/addPromptNode.js +52 -0
- package/dist/nodes/addPromptNode.js.map +1 -0
- package/dist/nodes/addToolNode.d.ts +10 -0
- package/dist/nodes/addToolNode.js +82 -0
- package/dist/nodes/addToolNode.js.map +1 -0
- package/dist/nodes/addTriggerNode.d.ts +6 -0
- package/dist/nodes/addTriggerNode.js +12 -0
- package/dist/nodes/addTriggerNode.js.map +1 -0
- package/dist/nodes/nodeFactory.d.ts +13 -0
- package/dist/nodes/nodeFactory.js +41 -0
- package/dist/nodes/nodeFactory.js.map +1 -0
- package/dist/platform/analytics.d.ts +6 -0
- package/dist/platform/analytics.js +19 -0
- package/dist/platform/analytics.js.map +1 -0
- package/dist/platform/mindedCheckpointSaver.d.ts +10 -0
- package/dist/platform/mindedCheckpointSaver.js +49 -0
- package/dist/platform/mindedCheckpointSaver.js.map +1 -0
- package/dist/platform/mindedConnection.d.ts +13 -0
- package/dist/platform/mindedConnection.js +117 -0
- package/dist/platform/mindedConnection.js.map +1 -0
- package/dist/platform/mindedConnectionTypes.d.ts +10 -0
- package/dist/platform/mindedConnectionTypes.js +8 -0
- package/dist/platform/mindedConnectionTypes.js.map +1 -0
- package/dist/platform/mindedRequest.d.ts +8 -0
- package/dist/platform/mindedRequest.js +22 -0
- package/dist/platform/mindedRequest.js.map +1 -0
- package/dist/types/Agent.types.d.ts +8 -0
- package/dist/types/Agent.types.js +3 -0
- package/dist/types/Agent.types.js.map +1 -0
- package/dist/types/Flows.types.d.ts +83 -0
- package/dist/types/Flows.types.js +24 -0
- package/dist/types/Flows.types.js.map +1 -0
- package/dist/types/LLM.types.d.ts +10 -0
- package/dist/types/LLM.types.js +9 -0
- package/dist/types/LLM.types.js.map +1 -0
- package/dist/types/LangGraph.types.d.ts +29 -0
- package/dist/types/LangGraph.types.js +20 -0
- package/dist/types/LangGraph.types.js.map +1 -0
- package/dist/types/Tools.types.d.ts +14 -0
- package/dist/types/Tools.types.js +3 -0
- package/dist/types/Tools.types.js.map +1 -0
- package/dist/types/Triggers.types.d.ts +1 -0
- package/dist/types/Triggers.types.js +3 -0
- package/dist/types/Triggers.types.js.map +1 -0
- package/docs/.gitbook/assets/image.png +0 -0
- package/docs/README.md +51 -0
- package/docs/SUMMARY.md +21 -0
- package/docs/api-reference/.nojekyll +1 -0
- package/docs/api-reference/assets/hierarchy.js +1 -0
- package/docs/api-reference/assets/highlight.css +120 -0
- package/docs/api-reference/assets/icons.js +18 -0
- package/docs/api-reference/assets/icons.svg +1 -0
- package/docs/api-reference/assets/main.js +60 -0
- package/docs/api-reference/assets/navigation.js +1 -0
- package/docs/api-reference/assets/search.js +1 -0
- package/docs/api-reference/assets/style.css +1640 -0
- package/docs/api-reference/classes/index.Agent.html +4 -0
- package/docs/api-reference/enums/index.EdgeType.html +4 -0
- package/docs/api-reference/enums/index.NodeType.html +6 -0
- package/docs/api-reference/enums/index.TriggerType.html +4 -0
- package/docs/api-reference/enums/index.events.html +3 -0
- package/docs/api-reference/hierarchy.html +1 -0
- package/docs/api-reference/index.html +310 -0
- package/docs/api-reference/interfaces/index.AppToolNode.html +5 -0
- package/docs/api-reference/interfaces/index.AppTriggerNode.html +6 -0
- package/docs/api-reference/interfaces/index.Flow.html +4 -0
- package/docs/api-reference/interfaces/index.JunctionNode.html +4 -0
- package/docs/api-reference/interfaces/index.LogicalConditionEdge.html +5 -0
- package/docs/api-reference/interfaces/index.ManualTriggerNode.html +5 -0
- package/docs/api-reference/interfaces/index.PromptConditionEdge.html +5 -0
- package/docs/api-reference/interfaces/index.PromptNode.html +6 -0
- package/docs/api-reference/interfaces/index.StepForwardEdge.html +4 -0
- package/docs/api-reference/interfaces/index.Tool.html +6 -0
- package/docs/api-reference/interfaces/index.ToolNode.html +5 -0
- package/docs/api-reference/modules/index-1.html +1 -0
- package/docs/api-reference/modules/index.html +1 -0
- package/docs/api-reference/modules.html +1 -0
- package/docs/api-reference/types/index.Edge.html +1 -0
- package/docs/api-reference/types/index.Node.html +1 -0
- package/docs/api-reference/types/index.TriggerNode.html +1 -0
- package/docs/core-concepts/edges.md +242 -0
- package/docs/core-concepts/events.md +161 -0
- package/docs/core-concepts/flows.md +74 -0
- package/docs/core-concepts/memory-types.md +208 -0
- package/docs/core-concepts/nodes.md +239 -0
- package/docs/core-concepts/tools.md +205 -0
- package/docs/examples/order-refund-flow.md +560 -0
- package/docs/getting-started/installation.md +34 -0
- package/docs/getting-started/quick-start.md +264 -0
- package/docs-structure.md +144 -0
- package/eslint.config.js +68 -0
- package/examples/orderRefundAgent/flows/orderRefundFlow.yaml +32 -0
- package/examples/orderRefundAgent/minded.json +14 -0
- package/examples/orderRefundAgent/orderRefundAgent.ts +58 -0
- package/examples/orderRefundAgent/schema.ts +7 -0
- package/examples/orderRefundAgent/tools/escalateConversation.ts +28 -0
- package/examples/orderRefundAgent/tools/index.ts +4 -0
- package/examples/orderRefundAgent/tools/refundOrder.ts +27 -0
- package/package.json +46 -0
- package/src/agent.ts +216 -0
- package/src/edges/createDirectEdge.ts +11 -0
- package/src/edges/createLogicalRouter.ts +16 -0
- package/src/edges/createPromptRouter.ts +52 -0
- package/src/edges/edgeFactory.ts +85 -0
- package/src/events/AgentEvents.ts +22 -0
- package/src/events/index.ts +3 -0
- package/src/index.ts +22 -0
- package/src/llm/createLlmInstance.ts +10 -0
- package/src/nodes/addHumanInTheLoopNode.ts +20 -0
- package/src/nodes/addPromptNode.ts +66 -0
- package/src/nodes/addToolNode.ts +95 -0
- package/src/nodes/addTriggerNode.ts +12 -0
- package/src/nodes/nodeFactory.ts +65 -0
- package/src/platform/analytics.ts +16 -0
- package/src/platform/mindedCheckpointSaver.ts +74 -0
- package/src/platform/mindedConnection.ts +106 -0
- package/src/platform/mindedConnectionTypes.ts +15 -0
- package/src/platform/mindedRequest.ts +28 -0
- package/src/types/Agent.types.ts +10 -0
- package/src/types/Flows.types.ts +103 -0
- package/src/types/LLM.types.ts +13 -0
- package/src/types/LangGraph.types.ts +25 -0
- package/src/types/Tools.types.ts +9 -0
- package/test/can-stay-on-node/can-stay-on-node.test.ts +148 -0
- package/test/can-stay-on-node/flows/test-flow.yaml +25 -0
- package/test/cannot-stay-on-node/cannot-stay-on-node.test.ts +201 -0
- package/test/cannot-stay-on-node/flows/test-flow.yaml +34 -0
- package/test/human-in-the-loop-node/flows/test-flow.yaml +23 -0
- package/test/human-in-the-loop-node/human-in-the-loop-node.test.ts +92 -0
- package/test/logical-edges/flows/logical-edge-test-flow.yaml +24 -0
- package/test/logical-edges/logical-edges.test.ts +66 -0
- package/test/no-human-in-the-loop-node/flows/test-flow.yaml +23 -0
- package/test/no-human-in-the-loop-node/no-human-in-the-loop-node.test.ts +80 -0
- package/test/prompt-edges/flows/test-flow.yaml +24 -0
- package/test/prompt-edges/prompt-edges.test.ts +90 -0
- package/test/prompt-node/flows/test-flow.yaml +24 -0
- package/test/prompt-node/prompt-node.test.ts +86 -0
- package/test/setup.ts +5 -0
- package/test/tool-node/flows/test-flow.yaml +14 -0
- package/test/tool-node/tool-node.test.ts +67 -0
- package/test/trigger/flows/test-flow.yaml +7 -0
- package/test/trigger/trigger.test.ts +57 -0
- package/tsconfig.json +17 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.mindedRequest = void 0;
|
|
7
|
+
const axios_1 = __importDefault(require("axios"));
|
|
8
|
+
const baseUrl = 'https://api.minded.com/sdk';
|
|
9
|
+
const mindedRequest = async ({ path, method, body, token }) => {
|
|
10
|
+
const response = await (0, axios_1.default)({
|
|
11
|
+
method,
|
|
12
|
+
url: `${baseUrl}${path}`,
|
|
13
|
+
data: body,
|
|
14
|
+
headers: {
|
|
15
|
+
'Content-Type': 'application/json',
|
|
16
|
+
'Authorization': `Bearer ${token}`
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
return response.data;
|
|
20
|
+
};
|
|
21
|
+
exports.mindedRequest = mindedRequest;
|
|
22
|
+
//# sourceMappingURL=mindedRequest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mindedRequest.js","sourceRoot":"","sources":["../../src/infrastructure.ts/mindedRequest.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,MAAM,OAAO,GAAG,4BAA4B,CAAA;AAIrC,MAAM,aAAa,GAAG,KAAK,EAA8B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAkE,EAAqB,EAAE;IAClL,MAAM,QAAQ,GAAG,MAAM,IAAA,eAAK,EAAC;QAC3B,MAAM;QACN,GAAG,EAAE,GAAG,OAAO,GAAG,IAAI,EAAE;QACxB,IAAI,EAAE,IAAI;QACV,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,eAAe,EAAE,UAAU,KAAK,EAAE;SACnC;KACF,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC,CAAA;AAZY,QAAA,aAAa,iBAYzB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createLlmInstance = void 0;
|
|
4
|
+
const LLM_types_1 = require("../types/LLM.types");
|
|
5
|
+
const createLlmInstance = (llmConfig) => {
|
|
6
|
+
const { name, properties } = llmConfig;
|
|
7
|
+
const LLMClass = LLM_types_1.LLMProviders[name];
|
|
8
|
+
if (!LLMClass) {
|
|
9
|
+
throw new Error(`Unsupported LLM provider: ${name}`);
|
|
10
|
+
}
|
|
11
|
+
return new LLMClass(properties);
|
|
12
|
+
};
|
|
13
|
+
exports.createLlmInstance = createLlmInstance;
|
|
14
|
+
//# sourceMappingURL=createLlmInstance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createLlmInstance.js","sourceRoot":"","sources":["../../src/llm/createLlmInstance.ts"],"names":[],"mappings":";;;AAAA,kDAA0E;AAEnE,MAAM,iBAAiB,GAAG,CAAC,SAAoB,EAAE,EAAE;IACxD,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;IACvC,MAAM,QAAQ,GAAG,wBAAY,CAAC,IAAmB,CAAC,CAAC;IACnD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;AAClC,CAAC,CAAC;AAPW,QAAA,iBAAiB,qBAO5B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { PreCompiledGraph } from '../types/LangGraph.types';
|
|
2
|
+
type AddHumanInTheLoopNodeParams = {
|
|
3
|
+
graph: PreCompiledGraph;
|
|
4
|
+
attachedToNodeName: string;
|
|
5
|
+
};
|
|
6
|
+
export declare const buildHumanInTheLoopNodeName: (nodeName: string) => string;
|
|
7
|
+
export declare const addHumanInTheLoopNode: ({ graph, attachedToNodeName }: AddHumanInTheLoopNodeParams) => Promise<void>;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addHumanInTheLoopNode = exports.buildHumanInTheLoopNodeName = void 0;
|
|
4
|
+
const langgraph_1 = require("@langchain/langgraph");
|
|
5
|
+
const buildHumanInTheLoopNodeName = (nodeName) => `${nodeName}_humanInTheLoop`;
|
|
6
|
+
exports.buildHumanInTheLoopNodeName = buildHumanInTheLoopNodeName;
|
|
7
|
+
const addHumanInTheLoopNode = async ({ graph, attachedToNodeName }) => {
|
|
8
|
+
const callback = async () => {
|
|
9
|
+
console.log(`Executing "human in the loop" node for the attached node${attachedToNodeName}`);
|
|
10
|
+
const value = (0, langgraph_1.interrupt)('input from human in the loop');
|
|
11
|
+
return value;
|
|
12
|
+
};
|
|
13
|
+
graph.addNode(`${attachedToNodeName}_humanInTheLoop`, callback);
|
|
14
|
+
graph.addEdge(attachedToNodeName, (0, exports.buildHumanInTheLoopNodeName)(attachedToNodeName));
|
|
15
|
+
};
|
|
16
|
+
exports.addHumanInTheLoopNode = addHumanInTheLoopNode;
|
|
17
|
+
//# sourceMappingURL=addHumanInTheLoopNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addHumanInTheLoopNode.js","sourceRoot":"","sources":["../../src/nodes/addHumanInTheLoopNode.ts"],"names":[],"mappings":";;;AAAA,oDAAiD;AAS1C,MAAM,2BAA2B,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,GAAG,QAAQ,iBAAiB,CAAC;AAAjF,QAAA,2BAA2B,+BAAsD;AAEvF,MAAM,qBAAqB,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAA+B,EAAE,EAAE;IACxG,MAAM,QAAQ,GAAiB,KAAK,IAAI,EAAE;QACxC,OAAO,CAAC,GAAG,CAAC,2DAA2D,kBAAkB,EAAE,CAAC,CAAC;QAC7F,MAAM,KAAK,GAAG,IAAA,qBAAS,EAAC,8BAA8B,CAAC,CAAC;QACxD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACF,KAAK,CAAC,OAAO,CAAC,GAAG,kBAAkB,iBAAiB,EAAE,QAAQ,CAAC,CAAC;IAChE,KAAK,CAAC,OAAO,CAAC,kBAAyB,EAAE,IAAA,mCAA2B,EAAC,kBAAkB,CAAQ,CAAC,CAAC;AACnG,CAAC,CAAC;AARW,QAAA,qBAAqB,yBAQhC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { PromptNode } from '../types/Flows.types';
|
|
2
|
+
import { PreCompiledGraph } from '../types/LangGraph.types';
|
|
3
|
+
import { BaseLanguageModel } from '@langchain/core/language_models/base';
|
|
4
|
+
import { Tool } from '../types/Tools.types';
|
|
5
|
+
import { AgentEventRequestPayloads } from '../events/AgentEvents';
|
|
6
|
+
import { EmitSignature } from '../types/Agent.types';
|
|
7
|
+
type AddPromptNodeParams = {
|
|
8
|
+
graph: PreCompiledGraph;
|
|
9
|
+
node: PromptNode;
|
|
10
|
+
llm: BaseLanguageModel;
|
|
11
|
+
tools: Tool<any, any>[];
|
|
12
|
+
emit: EmitSignature<any, keyof AgentEventRequestPayloads<any>>;
|
|
13
|
+
};
|
|
14
|
+
export declare const addPromptNode: ({ graph, node, llm, tools, emit }: AddPromptNodeParams) => Promise<void>;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addPromptNode = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const prebuilt_1 = require("@langchain/langgraph/prebuilt");
|
|
6
|
+
const messages_1 = require("@langchain/core/messages");
|
|
7
|
+
const tools_1 = require("@langchain/core/tools");
|
|
8
|
+
const AgentEvents_1 = require("../events/AgentEvents");
|
|
9
|
+
const createLlmInstance_1 = require("../llm/createLlmInstance");
|
|
10
|
+
const addPromptNode = async ({ graph, node, llm, tools, emit }) => {
|
|
11
|
+
const callback = async (state) => {
|
|
12
|
+
console.log(`Executing prompt node ${node.name}`);
|
|
13
|
+
const llmToUse = node.llmConfig ? (0, createLlmInstance_1.createLlmInstance)(node.llmConfig) : llm;
|
|
14
|
+
const globalTools = tools
|
|
15
|
+
.filter((tool) => tool.isGlobal)
|
|
16
|
+
.map((tool) => (0, tools_1.tool)((input) => tool.execute({ input, memory: state.memory }), {
|
|
17
|
+
name: tool.name,
|
|
18
|
+
description: tool.description,
|
|
19
|
+
schema: tool.input,
|
|
20
|
+
}));
|
|
21
|
+
const agent = (0, prebuilt_1.createReactAgent)({
|
|
22
|
+
llm: llmToUse,
|
|
23
|
+
tools: globalTools,
|
|
24
|
+
responseFormat: zod_1.z.object({
|
|
25
|
+
waitForUserResponse: zod_1.z.boolean(),
|
|
26
|
+
done: zod_1.z.boolean(),
|
|
27
|
+
}),
|
|
28
|
+
});
|
|
29
|
+
const message = `
|
|
30
|
+
- This is a node in a workflow.
|
|
31
|
+
- User instructions: ${node.prompt}
|
|
32
|
+
- Workflow memory: ${JSON.stringify(state.memory)}
|
|
33
|
+
- Conversation history: ${state.messages.map((message) => `${message.getType()}: ${message.content}`).join('\n')}
|
|
34
|
+
`;
|
|
35
|
+
const result = await agent.invoke({
|
|
36
|
+
messages: [new messages_1.SystemMessage(message)],
|
|
37
|
+
});
|
|
38
|
+
const lastMessage = result.messages[result.messages.length - 1];
|
|
39
|
+
if (lastMessage.getType() === 'ai') {
|
|
40
|
+
await emit(AgentEvents_1.AgentEvents.AI_MESSAGE, {
|
|
41
|
+
message: lastMessage.content,
|
|
42
|
+
memory: state.memory,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
messages: [lastMessage],
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
graph.addNode(node.name, callback);
|
|
50
|
+
};
|
|
51
|
+
exports.addPromptNode = addPromptNode;
|
|
52
|
+
//# sourceMappingURL=addPromptNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addPromptNode.js","sourceRoot":"","sources":["../../src/nodes/addPromptNode.ts"],"names":[],"mappings":";;;AAGA,6BAAwB;AAExB,4DAAiE;AACjE,uDAAyD;AAEzD,iDAA8D;AAC9D,uDAA+E;AAE/E,gEAA6D;AAUtD,MAAM,aAAa,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAuB,EAAE,EAAE;IAC5F,MAAM,QAAQ,GAAiB,KAAK,EAAE,KAAmC,EAAE,EAAE;QAC3E,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,qCAAiB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAE1E,MAAM,WAAW,GAAG,KAAK;aACtB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;aAC/B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,IAAA,YAAa,EAAC,CAAC,KAAiC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;YAClG,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,MAAM,EAAE,IAAI,CAAC,KAAK;SACnB,CAAC,CACH,CAAC;QAEJ,MAAM,KAAK,GAAG,IAAA,2BAAgB,EAAC;YAC7B,GAAG,EAAE,QAAQ;YACb,KAAK,EAAE,WAAW;YAClB,cAAc,EAAE,OAAC,CAAC,MAAM,CAAC;gBACvB,mBAAmB,EAAE,OAAC,CAAC,OAAO,EAAE;gBAChC,IAAI,EAAE,OAAC,CAAC,OAAO,EAAE;aAClB,CAAC;SACH,CAAC,CAAC;QACH,MAAM,OAAO,GAAG;;2BAEO,IAAI,CAAC,MAAM;yBACb,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;8BACvB,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;KAC/G,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;YAChC,QAAQ,EAAE,CAAC,IAAI,wBAAa,CAAC,OAAO,CAAC,CAAC;SACvC,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAChE,IAAI,WAAW,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,yBAAW,CAAC,UAAU,EAAE;gBACjC,OAAO,EAAE,WAAW,CAAC,OAAiB;gBACtC,MAAM,EAAE,KAAK,CAAC,MAAM;aACrB,CAAC,CAAC;QACL,CAAC;QACD,OAAO;YACL,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB,CAAC;IACJ,CAAC,CAAC;IACF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACrC,CAAC,CAAC;AA5CW,QAAA,aAAa,iBA4CxB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseLanguageModel } from "@langchain/core/language_models/base";
|
|
2
|
+
import { ToolNode } from "../types/Flows.types";
|
|
3
|
+
import { Tool } from "../types/Tools.types";
|
|
4
|
+
import { PreCompiledGraph } from "../types/LangGraph.types";
|
|
5
|
+
export declare const addToolNode: <Memory>({ graph, node, tools, llm, }: {
|
|
6
|
+
graph: PreCompiledGraph;
|
|
7
|
+
node: ToolNode;
|
|
8
|
+
tools: Tool<any, any>[];
|
|
9
|
+
llm: BaseLanguageModel;
|
|
10
|
+
}) => Promise<void>;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addToolNode = void 0;
|
|
4
|
+
const tools_1 = require("@langchain/core/tools");
|
|
5
|
+
const messages_1 = require("@langchain/core/messages");
|
|
6
|
+
const prebuilt_1 = require("@langchain/langgraph/prebuilt");
|
|
7
|
+
const addToolNode = async ({ graph, node, tools, llm, }) => {
|
|
8
|
+
const toolNode = node;
|
|
9
|
+
const matchedTool = tools.find((tool) => tool.name === toolNode.toolName);
|
|
10
|
+
if (!matchedTool) {
|
|
11
|
+
throw new Error(`Tool not found: ${toolNode.toolName}`);
|
|
12
|
+
}
|
|
13
|
+
const callback = async (state) => {
|
|
14
|
+
try {
|
|
15
|
+
console.log(`Executing tool node ${toolNode.name}`);
|
|
16
|
+
const executeWrapper = async (input) => {
|
|
17
|
+
try {
|
|
18
|
+
const response = await matchedTool.execute({ input, memory: state.memory });
|
|
19
|
+
return response || {};
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
console.error('Error executing tool', error);
|
|
23
|
+
throw error;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
const tool = (0, tools_1.tool)(executeWrapper, {
|
|
27
|
+
name: matchedTool.name,
|
|
28
|
+
description: matchedTool.description,
|
|
29
|
+
schema: matchedTool.input,
|
|
30
|
+
});
|
|
31
|
+
const prompt = `
|
|
32
|
+
Context:
|
|
33
|
+
messages: ${JSON.stringify(state.messages)}
|
|
34
|
+
workflow memory: ${JSON.stringify(state.memory)}
|
|
35
|
+
Instructions:
|
|
36
|
+
Call immediately tool ${tool.name}(...)
|
|
37
|
+
${toolNode.prompt && `Tool execution instructions: ${toolNode.prompt}`}
|
|
38
|
+
`;
|
|
39
|
+
const toolCallingAgent = (0, prebuilt_1.createReactAgent)({
|
|
40
|
+
llm,
|
|
41
|
+
tools: [tool],
|
|
42
|
+
});
|
|
43
|
+
const response = await toolCallingAgent.invoke({ messages: [new messages_1.SystemMessage(prompt)] });
|
|
44
|
+
const toolCallMessage = getLastToolCallMessage(response.messages);
|
|
45
|
+
const toolResponseMessage = getLastToolMessage(response.messages);
|
|
46
|
+
if (!toolCallMessage || !toolResponseMessage) {
|
|
47
|
+
throw new Error('Tool call or tool response message not found');
|
|
48
|
+
}
|
|
49
|
+
const toolMemory = extractToolMemoryResponse(toolResponseMessage);
|
|
50
|
+
return { memory: toolMemory, messages: [toolCallMessage, toolResponseMessage] };
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
console.error('Error executing tool node', error);
|
|
54
|
+
throw error;
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
graph.addNode(node.name, callback);
|
|
58
|
+
};
|
|
59
|
+
exports.addToolNode = addToolNode;
|
|
60
|
+
const getLastToolCallMessage = (messages) => {
|
|
61
|
+
const toolCallMessages = messages.filter((message) => { var _a; return ((_a = message.tool_calls) === null || _a === void 0 ? void 0 : _a.length) || 0 > 0; });
|
|
62
|
+
const lastToolCallMessage = toolCallMessages[toolCallMessages.length - 1];
|
|
63
|
+
return lastToolCallMessage;
|
|
64
|
+
};
|
|
65
|
+
const getLastToolMessage = (messages) => {
|
|
66
|
+
const toolMessages = messages.filter((message) => message.getType() === 'tool');
|
|
67
|
+
const lastToolMessage = toolMessages[toolMessages.length - 1];
|
|
68
|
+
return lastToolMessage;
|
|
69
|
+
};
|
|
70
|
+
const extractToolMemoryResponse = (toolMessage) => {
|
|
71
|
+
try {
|
|
72
|
+
const parsed = JSON.parse(toolMessage.content);
|
|
73
|
+
if (typeof parsed === 'object' && parsed !== null && 'memory' in parsed) {
|
|
74
|
+
return parsed.memory;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
console.error('Error parsing tool memory response', error);
|
|
79
|
+
}
|
|
80
|
+
return {};
|
|
81
|
+
};
|
|
82
|
+
//# sourceMappingURL=addToolNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addToolNode.js","sourceRoot":"","sources":["../../src/nodes/addToolNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addTriggerNode = void 0;
|
|
4
|
+
const addTriggerNode = async ({ graph, node }) => {
|
|
5
|
+
const callback = async () => {
|
|
6
|
+
console.log(`Executing trigger node ${node.name}`);
|
|
7
|
+
return;
|
|
8
|
+
};
|
|
9
|
+
graph.addNode(node.name, callback);
|
|
10
|
+
};
|
|
11
|
+
exports.addTriggerNode = addTriggerNode;
|
|
12
|
+
//# sourceMappingURL=addTriggerNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addTriggerNode.js","sourceRoot":"","sources":["../../src/nodes/addTriggerNode.ts"],"names":[],"mappings":";;;AAIO,MAAM,cAAc,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAkD,EAAE,EAAE;IACtG,MAAM,QAAQ,GAAiB,KAAK,IAAI,EAAE;QACxC,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACnD,OAAO;IACT,CAAC,CAAC;IAEF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACrC,CAAC,CAAC;AAPW,QAAA,cAAc,kBAOzB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Node } from '../types/Flows.types';
|
|
2
|
+
import { PreCompiledGraph } from '../types/LangGraph.types';
|
|
3
|
+
import { Tool } from '../types/Tools.types';
|
|
4
|
+
import { BaseLanguageModel } from '@langchain/core/language_models/base';
|
|
5
|
+
import { AgentEventRequestPayloads } from '../events/AgentEvents';
|
|
6
|
+
import { EmitSignature } from '../types/Agent.types';
|
|
7
|
+
export declare const nodeFactory: ({ graph, node, tools, llm, emit, }: {
|
|
8
|
+
graph: PreCompiledGraph;
|
|
9
|
+
node: Node;
|
|
10
|
+
tools: Tool<any, any>[];
|
|
11
|
+
llm: BaseLanguageModel;
|
|
12
|
+
emit: EmitSignature<any, keyof AgentEventRequestPayloads<any>>;
|
|
13
|
+
}) => void;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.nodeFactory = void 0;
|
|
4
|
+
const Flows_types_1 = require("../types/Flows.types");
|
|
5
|
+
const addTriggerNode_1 = require("./addTriggerNode");
|
|
6
|
+
const addToolNode_1 = require("./addToolNode");
|
|
7
|
+
const addPromptNode_1 = require("./addPromptNode");
|
|
8
|
+
const addJunctionNode = ({ graph, node }) => {
|
|
9
|
+
const callback = async () => { };
|
|
10
|
+
graph.addNode(node.name, callback);
|
|
11
|
+
};
|
|
12
|
+
const addAppToolNode = ({ graph, node, }) => {
|
|
13
|
+
const callback = async () => {
|
|
14
|
+
throw new Error('Not implemented');
|
|
15
|
+
};
|
|
16
|
+
graph.addNode(node.name, callback);
|
|
17
|
+
};
|
|
18
|
+
const nodeFactory = ({ graph, node, tools, llm, emit, }) => {
|
|
19
|
+
const nodeType = node.type;
|
|
20
|
+
switch (nodeType) {
|
|
21
|
+
case Flows_types_1.NodeType.TRIGGER:
|
|
22
|
+
(0, addTriggerNode_1.addTriggerNode)({ graph, node });
|
|
23
|
+
break;
|
|
24
|
+
case Flows_types_1.NodeType.TOOL:
|
|
25
|
+
(0, addToolNode_1.addToolNode)({ graph, node, tools, llm });
|
|
26
|
+
break;
|
|
27
|
+
case Flows_types_1.NodeType.JUNCTION:
|
|
28
|
+
addJunctionNode({ graph, node });
|
|
29
|
+
break;
|
|
30
|
+
case Flows_types_1.NodeType.APP_TOOL:
|
|
31
|
+
addAppToolNode({ graph, node, tools, llm });
|
|
32
|
+
break;
|
|
33
|
+
case Flows_types_1.NodeType.PROMPT_NODE:
|
|
34
|
+
(0, addPromptNode_1.addPromptNode)({ graph, node, tools, llm, emit });
|
|
35
|
+
break;
|
|
36
|
+
default:
|
|
37
|
+
throw new Error(`Unsupported node type: ${nodeType}`);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
exports.nodeFactory = nodeFactory;
|
|
41
|
+
//# sourceMappingURL=nodeFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodeFactory.js","sourceRoot":"","sources":["../../src/nodes/nodeFactory.ts"],"names":[],"mappings":";;;AACA,sDAAiF;AAIjF,qDAAkD;AAClD,+CAA4C;AAC5C,mDAAgD;AAIhD,MAAM,eAAe,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAmD,EAAE,EAAE;IAC3F,MAAM,QAAQ,GAAiB,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC;IAC9C,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,EACtB,KAAK,EACL,IAAI,GAML,EAAE,EAAE;IACH,MAAM,QAAQ,GAAiB,KAAK,IAAI,EAAE;QACxC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC,CAAC;IACF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACrC,CAAC,CAAC;AAEK,MAAM,WAAW,GAAG,CAAC,EAC1B,KAAK,EACL,IAAI,EACJ,KAAK,EACL,GAAG,EACH,IAAI,GAOL,EAAE,EAAE;IACH,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;IAC3B,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,sBAAQ,CAAC,OAAO;YACnB,IAAA,+BAAc,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAChC,MAAM;QACR,KAAK,sBAAQ,CAAC,IAAI;YAChB,IAAA,yBAAW,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YACzC,MAAM;QACR,KAAK,sBAAQ,CAAC,QAAQ;YACpB,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACjC,MAAM;QACR,KAAK,sBAAQ,CAAC,QAAQ;YACpB,cAAc,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAC5C,MAAM;QACR,KAAK,sBAAQ,CAAC,WAAW;YACvB,IAAA,6BAAa,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;YACjD,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,EAAE,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC,CAAC;AAjCW,QAAA,WAAW,eAiCtB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.analyticsFactory = void 0;
|
|
4
|
+
const mindedRequest_1 = require("./mindedRequest");
|
|
5
|
+
const track = async ({ event, data, token, sessionId }) => {
|
|
6
|
+
await (0, mindedRequest_1.mindedRequest)({
|
|
7
|
+
path: '/analytics/events',
|
|
8
|
+
method: 'POST',
|
|
9
|
+
body: { event, data, sessionId },
|
|
10
|
+
token,
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
const analyticsFactory = ({ token, sessionId }) => {
|
|
14
|
+
return {
|
|
15
|
+
track: (event, data) => track({ event, data, token, sessionId }),
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
exports.analyticsFactory = analyticsFactory;
|
|
19
|
+
//# sourceMappingURL=analytics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/platform/analytics.ts"],"names":[],"mappings":";;;AAAA,mDAAgD;AAEhD,MAAM,KAAK,GAAG,KAAK,EAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAgE,EAAE,EAAE;IACzH,MAAM,IAAA,6BAAa,EAAC;QAClB,IAAI,EAAE,mBAAmB;QACzB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE;QAChC,KAAK;KACN,CAAC,CAAC;AACL,CAAC,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAwC,EAAE,EAAE;IAC7F,OAAO;QACL,KAAK,EAAE,CAAI,KAAa,EAAE,IAAO,EAAE,EAAE,CAAC,KAAK,CAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;KAClF,CAAC;AACJ,CAAC,CAAC;AAJW,QAAA,gBAAgB,oBAI3B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseCheckpointSaver, CheckpointTuple, Checkpoint, CheckpointMetadata, ChannelVersions, PendingWrite, CheckpointListOptions } from '@langchain/langgraph-checkpoint';
|
|
2
|
+
import type { RunnableConfig } from '@langchain/core/runnables';
|
|
3
|
+
export declare class MindedCheckpointSaver extends BaseCheckpointSaver<number> {
|
|
4
|
+
private token;
|
|
5
|
+
constructor(token: string);
|
|
6
|
+
getTuple(config: RunnableConfig<Record<string, any>>): Promise<CheckpointTuple | undefined>;
|
|
7
|
+
list(config: RunnableConfig<Record<string, any>>, options?: CheckpointListOptions): AsyncGenerator<CheckpointTuple, any, any>;
|
|
8
|
+
put(config: RunnableConfig<Record<string, any>>, checkpoint: Checkpoint<string, string>, metadata: CheckpointMetadata, newVersions: ChannelVersions): Promise<RunnableConfig<Record<string, any>>>;
|
|
9
|
+
putWrites(config: RunnableConfig<Record<string, any>>, writes: PendingWrite[], taskId: string): Promise<void>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MindedCheckpointSaver = void 0;
|
|
4
|
+
const langgraph_checkpoint_1 = require("@langchain/langgraph-checkpoint");
|
|
5
|
+
const mindedRequest_1 = require("./mindedRequest");
|
|
6
|
+
class MindedCheckpointSaver extends langgraph_checkpoint_1.BaseCheckpointSaver {
|
|
7
|
+
constructor(token) {
|
|
8
|
+
super();
|
|
9
|
+
this.token = token;
|
|
10
|
+
}
|
|
11
|
+
async getTuple(config) {
|
|
12
|
+
return await (0, mindedRequest_1.mindedRequest)({
|
|
13
|
+
path: '/checkpoint/get',
|
|
14
|
+
method: 'POST',
|
|
15
|
+
body: { config },
|
|
16
|
+
token: this.token,
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
async *list(config, options) {
|
|
20
|
+
const tuples = await (0, mindedRequest_1.mindedRequest)({
|
|
21
|
+
path: '/checkpoint/list',
|
|
22
|
+
method: 'POST',
|
|
23
|
+
body: { config, options },
|
|
24
|
+
token: this.token,
|
|
25
|
+
});
|
|
26
|
+
for (const tuple of tuples) {
|
|
27
|
+
yield tuple;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
async put(config, checkpoint, metadata, newVersions) {
|
|
31
|
+
const newConfig = await (0, mindedRequest_1.mindedRequest)({
|
|
32
|
+
path: '/checkpoint/put',
|
|
33
|
+
method: 'POST',
|
|
34
|
+
body: { config, checkpoint, metadata, newVersions },
|
|
35
|
+
token: this.token,
|
|
36
|
+
});
|
|
37
|
+
return newConfig;
|
|
38
|
+
}
|
|
39
|
+
async putWrites(config, writes, taskId) {
|
|
40
|
+
await (0, mindedRequest_1.mindedRequest)({
|
|
41
|
+
path: '/checkpoint/put-writes',
|
|
42
|
+
method: 'POST',
|
|
43
|
+
body: { config, writes, taskId },
|
|
44
|
+
token: this.token,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.MindedCheckpointSaver = MindedCheckpointSaver;
|
|
49
|
+
//# sourceMappingURL=mindedCheckpointSaver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mindedCheckpointSaver.js","sourceRoot":"","sources":["../../src/platform/mindedCheckpointSaver.ts"],"names":[],"mappings":";;;AAAA,0EAQyC;AAEzC,mDAAgD;AAEhD,MAAa,qBAAsB,SAAQ,0CAA2B;IACpE,YAAoB,KAAa;QAC/B,KAAK,EAAE,CAAC;QADU,UAAK,GAAL,KAAK,CAAQ;IAEjC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAA2C;QACxD,OAAO,MAAM,IAAA,6BAAa,EAA+E;YACvG,IAAI,EAAE,iBAAiB;YACvB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,MAAM,EAAE;YAChB,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,CAAC,IAAI,CAAC,MAA2C,EAAE,OAA+B;QACtF,MAAM,MAAM,GAAG,MAAM,IAAA,6BAAa,EAChC;YACE,IAAI,EAAE,kBAAkB;YACxB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CACF,CAAC;QAEF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CACP,MAA2C,EAC3C,UAAsC,EACtC,QAA4B,EAC5B,WAA4B;QAE5B,MAAM,SAAS,GAAG,MAAM,IAAA,6BAAa,EAQnC;YACA,IAAI,EAAE,iBAAiB;YACvB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE;YACnD,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAA2C,EAAE,MAAsB,EAAE,MAAc;QACjG,MAAM,IAAA,6BAAa,EAAgG;YACjH,IAAI,EAAE,wBAAwB;YAC9B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;YAChC,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;IACL,CAAC;CACF;AA7DD,sDA6DC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BaseMindedConnectionSocketMessage, MindedConnectionSocketMessageType } from './mindedConnectionTypes';
|
|
2
|
+
export declare class MindedConnection {
|
|
3
|
+
private socket;
|
|
4
|
+
private rl;
|
|
5
|
+
listeners: {
|
|
6
|
+
[key: string]: ((message: BaseMindedConnectionSocketMessage) => void)[];
|
|
7
|
+
};
|
|
8
|
+
constructor();
|
|
9
|
+
private getMindedToken;
|
|
10
|
+
on: (event: MindedConnectionSocketMessageType, callback: (message: BaseMindedConnectionSocketMessage) => void) => void;
|
|
11
|
+
emit: (event: MindedConnectionSocketMessageType, message: BaseMindedConnectionSocketMessage) => void;
|
|
12
|
+
start(): void;
|
|
13
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.MindedConnection = void 0;
|
|
37
|
+
const socket_io_client_1 = require("socket.io-client");
|
|
38
|
+
const readline = __importStar(require("readline"));
|
|
39
|
+
class MindedConnection {
|
|
40
|
+
constructor() {
|
|
41
|
+
this.socket = null;
|
|
42
|
+
this.rl = null;
|
|
43
|
+
this.listeners = {};
|
|
44
|
+
this.on = (event, callback) => {
|
|
45
|
+
if (!this.listeners[event]) {
|
|
46
|
+
this.listeners[event] = [];
|
|
47
|
+
}
|
|
48
|
+
this.listeners[event].push(callback);
|
|
49
|
+
};
|
|
50
|
+
this.emit = (event, message) => {
|
|
51
|
+
if (this.socket) {
|
|
52
|
+
this.socket.emit(event, message);
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
if (!process.env.MINDED_CONNECTION_TOKEN) {
|
|
56
|
+
this.rl = readline.createInterface({
|
|
57
|
+
input: process.stdin,
|
|
58
|
+
output: process.stdout
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
async getMindedToken() {
|
|
63
|
+
const envToken = process.env.MINDED_CONNECTION_TOKEN;
|
|
64
|
+
if (envToken) {
|
|
65
|
+
return envToken;
|
|
66
|
+
}
|
|
67
|
+
return new Promise((resolve) => {
|
|
68
|
+
this.rl.question('Enter your Minded connection token: ', (token) => {
|
|
69
|
+
resolve(token);
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
start() {
|
|
74
|
+
this.getMindedToken().then(token => {
|
|
75
|
+
this.socket = (0, socket_io_client_1.io)('http://localhost:8888', {
|
|
76
|
+
path: '/minded-connect',
|
|
77
|
+
query: {
|
|
78
|
+
token
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
// Connection event handlers
|
|
82
|
+
this.socket.on('connect', () => {
|
|
83
|
+
console.log('\x1b[32mConnection with Minded platform is live!\x1b[0m');
|
|
84
|
+
console.log('\x1b[36mPress Ctrl+C to exit.\x1b[0m');
|
|
85
|
+
});
|
|
86
|
+
this.socket.on('connect_error', () => {
|
|
87
|
+
console.error('Failed to connect to minded platform');
|
|
88
|
+
});
|
|
89
|
+
this.socket.on('disconnect', () => {
|
|
90
|
+
console.log('Disconnected from local debugging socket');
|
|
91
|
+
});
|
|
92
|
+
// Listen for error messages from the server
|
|
93
|
+
this.socket.on('error', (error) => {
|
|
94
|
+
console.error('Server error:', error.message);
|
|
95
|
+
});
|
|
96
|
+
// Listen for specific message types
|
|
97
|
+
this.socket.onAny((event, message) => {
|
|
98
|
+
if (this.listeners[event]) {
|
|
99
|
+
this.listeners[event].forEach((listener) => {
|
|
100
|
+
listener(message);
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
// Handle process termination
|
|
105
|
+
process.on('SIGINT', () => {
|
|
106
|
+
var _a;
|
|
107
|
+
if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
|
|
108
|
+
console.log('\nDisconnecting...');
|
|
109
|
+
this.socket.disconnect();
|
|
110
|
+
}
|
|
111
|
+
process.exit(0);
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
exports.MindedConnection = MindedConnection;
|
|
117
|
+
//# sourceMappingURL=mindedConnection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mindedConnection.js","sourceRoot":"","sources":["../../src/platform/mindedConnection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare enum MindedConnectionSocketMessageType {
|
|
2
|
+
OnAppTrigger = "on-app-trigger"
|
|
3
|
+
}
|
|
4
|
+
export interface BaseMindedConnectionSocketMessage {
|
|
5
|
+
type: MindedConnectionSocketMessageType;
|
|
6
|
+
}
|
|
7
|
+
export interface OnAppTrigger extends BaseMindedConnectionSocketMessage {
|
|
8
|
+
name: string;
|
|
9
|
+
body: Record<string, any>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MindedConnectionSocketMessageType = void 0;
|
|
4
|
+
var MindedConnectionSocketMessageType;
|
|
5
|
+
(function (MindedConnectionSocketMessageType) {
|
|
6
|
+
MindedConnectionSocketMessageType["OnAppTrigger"] = "on-app-trigger";
|
|
7
|
+
})(MindedConnectionSocketMessageType || (exports.MindedConnectionSocketMessageType = MindedConnectionSocketMessageType = {}));
|
|
8
|
+
//# sourceMappingURL=mindedConnectionTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mindedConnectionTypes.js","sourceRoot":"","sources":["../../src/platform/mindedConnectionTypes.ts"],"names":[],"mappings":";;;AACA,IAAY,iCAEX;AAFD,WAAY,iCAAiC;IAC3C,oEAA+B,CAAA;AACjC,CAAC,EAFW,iCAAiC,iDAAjC,iCAAiC,QAE5C"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
type Method = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
|
|
2
|
+
export declare const mindedRequest: <Response, Request = object>({ path, method, body, token, }: {
|
|
3
|
+
path: string;
|
|
4
|
+
method: Method;
|
|
5
|
+
body: Request;
|
|
6
|
+
token: string;
|
|
7
|
+
}) => Promise<Response>;
|
|
8
|
+
export {};
|