@venturialstd/workflow 0.1.161 → 0.1.163

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.
Files changed (46) hide show
  1. package/dist/modules/chatgpt/actions/chat-completion.action.d.ts +0 -16
  2. package/dist/modules/chatgpt/actions/chat-completion.action.d.ts.map +1 -1
  3. package/dist/modules/chatgpt/actions/chat-completion.action.js +17 -71
  4. package/dist/modules/chatgpt/actions/chat-completion.action.js.map +1 -1
  5. package/dist/modules/chatgpt/actions/chat-purpose.action.d.ts +3 -0
  6. package/dist/modules/chatgpt/actions/chat-purpose.action.d.ts.map +1 -0
  7. package/dist/modules/chatgpt/actions/chat-purpose.action.js +229 -0
  8. package/dist/modules/chatgpt/actions/chat-purpose.action.js.map +1 -0
  9. package/dist/modules/chatgpt/actions/index.d.ts +1 -0
  10. package/dist/modules/chatgpt/actions/index.d.ts.map +1 -1
  11. package/dist/modules/chatgpt/actions/index.js +1 -0
  12. package/dist/modules/chatgpt/actions/index.js.map +1 -1
  13. package/dist/modules/chatgpt/chatgpt-nest.module.d.ts.map +1 -1
  14. package/dist/modules/chatgpt/chatgpt-nest.module.js +2 -0
  15. package/dist/modules/chatgpt/chatgpt-nest.module.js.map +1 -1
  16. package/dist/modules/chatgpt/chatgpt.module.d.ts.map +1 -1
  17. package/dist/modules/chatgpt/chatgpt.module.js +1 -0
  18. package/dist/modules/chatgpt/chatgpt.module.js.map +1 -1
  19. package/dist/modules/chatgpt/services/chat-completion.service.d.ts.map +1 -1
  20. package/dist/modules/chatgpt/services/chat-completion.service.js +15 -43
  21. package/dist/modules/chatgpt/services/chat-completion.service.js.map +1 -1
  22. package/dist/modules/chatgpt/services/chat-purpose.service.d.ts +24 -0
  23. package/dist/modules/chatgpt/services/chat-purpose.service.d.ts.map +1 -0
  24. package/dist/modules/chatgpt/services/chat-purpose.service.js +396 -0
  25. package/dist/modules/chatgpt/services/chat-purpose.service.js.map +1 -0
  26. package/dist/modules/chatgpt/services/index.d.ts +1 -0
  27. package/dist/modules/chatgpt/services/index.d.ts.map +1 -1
  28. package/dist/modules/chatgpt/services/index.js +1 -0
  29. package/dist/modules/chatgpt/services/index.js.map +1 -1
  30. package/dist/modules/chatgpt/types/purpose-memory.types.d.ts +38 -0
  31. package/dist/modules/chatgpt/types/purpose-memory.types.d.ts.map +1 -0
  32. package/dist/modules/chatgpt/types/purpose-memory.types.js +28 -0
  33. package/dist/modules/chatgpt/types/purpose-memory.types.js.map +1 -0
  34. package/dist/modules/chatgpt/utils/purpose-cache-key.util.d.ts +5 -0
  35. package/dist/modules/chatgpt/utils/purpose-cache-key.util.d.ts.map +1 -0
  36. package/dist/modules/chatgpt/utils/purpose-cache-key.util.js +15 -0
  37. package/dist/modules/chatgpt/utils/purpose-cache-key.util.js.map +1 -0
  38. package/dist/modules/chatgpt/utils/purpose-schema.validator.d.ts +2 -0
  39. package/dist/modules/chatgpt/utils/purpose-schema.validator.d.ts.map +1 -0
  40. package/dist/modules/chatgpt/utils/purpose-schema.validator.js +34 -0
  41. package/dist/modules/chatgpt/utils/purpose-schema.validator.js.map +1 -0
  42. package/dist/modules/chatgpt/utils/token-estimate.util.d.ts +7 -0
  43. package/dist/modules/chatgpt/utils/token-estimate.util.d.ts.map +1 -0
  44. package/dist/modules/chatgpt/utils/token-estimate.util.js +20 -0
  45. package/dist/modules/chatgpt/utils/token-estimate.util.js.map +1 -0
  46. package/package.json +3 -2
@@ -1,19 +1,3 @@
1
1
  import { WorkflowActionTrigger } from '../../types';
2
- export declare const CHAT_COMPLETION_MESSAGE_SCHEMA: {
3
- role: {
4
- type: "select";
5
- label: string;
6
- description: string;
7
- options: {
8
- label: string;
9
- value: string;
10
- }[];
11
- };
12
- content: {
13
- type: "string";
14
- label: string;
15
- placeholder: string;
16
- };
17
- };
18
2
  export declare const chatCompletionAction: WorkflowActionTrigger;
19
3
  //# sourceMappingURL=chat-completion.action.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-completion.action.d.ts","sourceRoot":"","sources":["../../../../src/modules/chatgpt/actions/chat-completion.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAIrB,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;CAgB1C,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,qBAqHlC,CAAC"}
1
+ {"version":3,"file":"chat-completion.action.d.ts","sourceRoot":"","sources":["../../../../src/modules/chatgpt/actions/chat-completion.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAGrB,eAAO,MAAM,oBAAoB,EAAE,qBA+ElC,CAAC"}
@@ -1,64 +1,36 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.chatCompletionAction = exports.CHAT_COMPLETION_MESSAGE_SCHEMA = void 0;
3
+ exports.chatCompletionAction = void 0;
4
4
  const types_1 = require("../../types");
5
5
  const chat_completion_service_1 = require("../services/chat-completion.service");
6
- exports.CHAT_COMPLETION_MESSAGE_SCHEMA = {
7
- role: {
8
- type: 'select',
9
- label: 'Role',
10
- description: 'Who is sending this message',
11
- options: [
12
- { label: 'System', value: 'system' },
13
- { label: 'User', value: 'user' },
14
- { label: 'Assistant', value: 'assistant' },
15
- ],
16
- },
17
- content: {
18
- type: 'string',
19
- label: 'Content',
20
- placeholder: 'Message text',
21
- },
22
- };
23
6
  exports.chatCompletionAction = {
24
7
  key: 'chat-completion',
25
8
  name: 'Chat Completion',
26
- description: 'Get a response from ChatGPT. Use a simple prompt, or build a full conversation with roles.',
9
+ description: 'Send a message to ChatGPT and get a reply.',
27
10
  category: types_1.NODE_CATEGORY.ACTION,
28
11
  icon: '💬',
29
12
  serviceClass: chat_completion_service_1.ChatCompletionService,
30
13
  inputs: [
31
14
  {
32
- id: 'systemPrompt',
33
- name: 'System instructions',
34
- description: 'Optional. How the assistant should behave (e.g. "You are a helpful coding assistant.")',
35
- type: types_1.FIELD_TYPE.STRING,
36
- validation: { required: false },
37
- placeholder: 'e.g. You are a helpful assistant that answers in Spanish.',
38
- },
39
- {
40
- id: 'userMessage',
41
- name: 'Your message',
42
- description: 'The question or message for this turn. Use this for a single prompt, or leave empty when using Conversation history only.',
15
+ id: 'message',
16
+ name: 'Message',
17
+ description: 'The question or text to send.',
43
18
  type: types_1.FIELD_TYPE.STRING,
44
- validation: { required: false },
19
+ validation: { required: true },
45
20
  placeholder: 'e.g. What is the capital of France?',
46
21
  },
47
22
  {
48
- id: 'messages',
49
- name: 'Conversation history',
50
- description: 'Optional. Full conversation with roles. Each message: { "role": "system" | "user" | "assistant", "content": "text" }. Order matters. Use for multi-turn chats.',
51
- type: types_1.FIELD_TYPE.JSON,
23
+ id: 'systemInstructions',
24
+ name: 'System instructions',
25
+ description: 'Optional. How the assistant should behave.',
26
+ type: types_1.FIELD_TYPE.STRING,
52
27
  validation: { required: false },
53
- placeholder: '[{"role": "user", "content": "Hello!"}, {"role": "assistant", "content": "Hi! How can I help?"}]',
54
- metadata: {
55
- itemSchema: exports.CHAT_COMPLETION_MESSAGE_SCHEMA,
56
- },
28
+ placeholder: 'e.g. You are a helpful assistant that answers in Spanish.',
57
29
  },
58
30
  {
59
31
  id: 'model',
60
32
  name: 'Model',
61
- description: 'Which ChatGPT model to use',
33
+ description: 'ChatGPT model to use.',
62
34
  type: types_1.FIELD_TYPE.STRING,
63
35
  validation: {
64
36
  required: false,
@@ -76,7 +48,7 @@ exports.chatCompletionAction = {
76
48
  {
77
49
  id: 'temperature',
78
50
  name: 'Temperature',
79
- description: 'Randomness of the response (0 = focused, 2 = more creative)',
51
+ description: 'Response randomness (0 = focused, 2 = creative).',
80
52
  type: types_1.FIELD_TYPE.NUMBER,
81
53
  validation: { required: false, min: 0, max: 2 },
82
54
  defaultValue: 0.7,
@@ -84,57 +56,31 @@ exports.chatCompletionAction = {
84
56
  {
85
57
  id: 'maxTokens',
86
58
  name: 'Max tokens',
87
- description: 'Maximum length of the reply',
59
+ description: 'Maximum reply length.',
88
60
  type: types_1.FIELD_TYPE.NUMBER,
89
61
  validation: { required: false, min: 1, max: 4000 },
90
62
  defaultValue: 2000,
91
63
  },
92
- {
93
- id: 'store',
94
- name: 'Save to history',
95
- description: 'Whether to store this exchange in the database',
96
- type: types_1.FIELD_TYPE.BOOLEAN,
97
- validation: { required: false },
98
- defaultValue: true,
99
- },
100
64
  ],
101
65
  outputs: [
102
66
  {
103
67
  id: 'content',
104
68
  name: 'Reply',
105
- description: 'The assistant reply text',
106
- type: types_1.FIELD_TYPE.STRING,
107
- },
108
- {
109
- id: 'role',
110
- name: 'Role',
111
- description: 'Role of the message (assistant)',
112
- type: types_1.FIELD_TYPE.STRING,
113
- },
114
- {
115
- id: 'model',
116
- name: 'Model used',
117
- description: 'Model that generated the reply',
69
+ description: 'The assistant reply text.',
118
70
  type: types_1.FIELD_TYPE.STRING,
119
71
  },
120
72
  {
121
73
  id: 'tokensUsed',
122
74
  name: 'Tokens used',
123
- description: 'Number of tokens consumed',
75
+ description: 'Number of tokens consumed.',
124
76
  type: types_1.FIELD_TYPE.NUMBER,
125
77
  },
126
78
  {
127
79
  id: 'cost',
128
80
  name: 'Cost (USD)',
129
- description: 'Estimated cost in USD',
81
+ description: 'Estimated cost in USD.',
130
82
  type: types_1.FIELD_TYPE.NUMBER,
131
83
  },
132
- {
133
- id: 'messageId',
134
- name: 'Message ID',
135
- description: 'Unique identifier for the message',
136
- type: types_1.FIELD_TYPE.STRING,
137
- },
138
84
  ],
139
85
  };
140
86
  //# sourceMappingURL=chat-completion.action.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-completion.action.js","sourceRoot":"","sources":["../../../../src/modules/chatgpt/actions/chat-completion.action.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-completion.action.js","sourceRoot":"","sources":["../../../../src/modules/chatgpt/actions/chat-completion.action.ts"],"names":[],"mappings":";;;AAAA,uCAKqB;AACrB,iFAA4E;AAE/D,QAAA,oBAAoB,GAA0B;IACzD,GAAG,EAAE,iBAAiB;IACtB,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,4CAA4C;IACzD,QAAQ,EAAE,qBAAa,CAAC,MAAM;IAC9B,IAAI,EAAE,IAAI;IACV,YAAY,EAAE,+CAA2E;IACzF,MAAM,EAAE;QACN;YACE,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,+BAA+B;YAC5C,IAAI,EAAE,kBAAU,CAAC,MAAM;YACvB,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC9B,WAAW,EAAE,qCAAqC;SACnD;QACD;YACE,EAAE,EAAE,oBAAoB;YACxB,IAAI,EAAE,qBAAqB;YAC3B,WAAW,EAAE,4CAA4C;YACzD,IAAI,EAAE,kBAAU,CAAC,MAAM;YACvB,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;YAC/B,WAAW,EAAE,2DAA2D;SACzE;QACD;YACE,EAAE,EAAE,OAAO;YACX,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,uBAAuB;YACpC,IAAI,EAAE,kBAAU,CAAC,MAAM;YACvB,UAAU,EAAE;gBACV,QAAQ,EAAE,KAAK;gBACf,IAAI,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,qBAAqB,EAAE,OAAO,EAAE,eAAe,CAAC;aACjF;YACD,YAAY,EAAE,QAAQ;YACtB,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;gBACpC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;gBAC9C,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,qBAAqB,EAAE;gBACtD,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;gBAClC,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE;aACnD;SACF;QACD;YACE,EAAE,EAAE,aAAa;YACjB,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,kDAAkD;YAC/D,IAAI,EAAE,kBAAU,CAAC,MAAM;YACvB,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;YAC/C,YAAY,EAAE,GAAG;SAClB;QACD;YACE,EAAE,EAAE,WAAW;YACf,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,uBAAuB;YACpC,IAAI,EAAE,kBAAU,CAAC,MAAM;YACvB,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE;YAClD,YAAY,EAAE,IAAI;SACnB;KACF;IACD,OAAO,EAAE;QACP;YACE,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,2BAA2B;YACxC,IAAI,EAAE,kBAAU,CAAC,MAAM;SACxB;QACD;YACE,EAAE,EAAE,YAAY;YAChB,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,4BAA4B;YACzC,IAAI,EAAE,kBAAU,CAAC,MAAM;SACxB;QACD;YACE,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,wBAAwB;YACrC,IAAI,EAAE,kBAAU,CAAC,MAAM;SACxB;KACF;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { WorkflowActionTrigger } from '../../types';
2
+ export declare const chatPurposeAction: WorkflowActionTrigger;
3
+ //# sourceMappingURL=chat-purpose.action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-purpose.action.d.ts","sourceRoot":"","sources":["../../../../src/modules/chatgpt/actions/chat-purpose.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAGrB,eAAO,MAAM,iBAAiB,EAAE,qBAqO/B,CAAC"}
@@ -0,0 +1,229 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.chatPurposeAction = void 0;
4
+ const types_1 = require("../../types");
5
+ const chat_purpose_service_1 = require("../services/chat-purpose.service");
6
+ exports.chatPurposeAction = {
7
+ key: 'chat-purpose',
8
+ name: 'ChatGPT Purpose',
9
+ description: 'Stateful conversational controller: collects structured data through conversation, persists memory across webhook executions, returns IN_PROGRESS | COMPLETED | FAILED. Use for KYC, onboarding, surveys, data correction.',
10
+ category: types_1.NODE_CATEGORY.ACTION,
11
+ icon: '🎯',
12
+ serviceClass: chat_purpose_service_1.ChatGptPurposeService,
13
+ inputs: [
14
+ {
15
+ id: 'systemPrompt',
16
+ name: 'System prompt',
17
+ description: 'Instructions for the assistant (e.g. goal, tone, questions to ask). Supports expressions like {{workflowId}}.',
18
+ type: types_1.FIELD_TYPE.STRING,
19
+ validation: { required: true },
20
+ placeholder: 'e.g. You are collecting KYC data. Ask for full name, then ID number.',
21
+ },
22
+ {
23
+ id: 'incomingUserMessage',
24
+ name: 'Incoming user message',
25
+ description: 'The user message for this turn. Supports expressions from previous nodes.',
26
+ type: types_1.FIELD_TYPE.STRING,
27
+ validation: { required: false },
28
+ placeholder: 'e.g. {{trigger.body.message}} or {{node_1.reply}}',
29
+ },
30
+ {
31
+ id: 'enableMemoryPersistence',
32
+ name: 'Enable memory persistence',
33
+ description: 'Store conversation state in cache across executions (required for multi-turn via webhooks).',
34
+ type: types_1.FIELD_TYPE.BOOLEAN,
35
+ validation: { required: false },
36
+ defaultValue: true,
37
+ },
38
+ {
39
+ id: 'userId',
40
+ name: 'User ID',
41
+ description: 'Optional. User identifier for per-user isolation. Stored in Redis as workflow:workflowId:userId:... when provided. Supports expressions.',
42
+ type: types_1.FIELD_TYPE.STRING,
43
+ validation: { required: false },
44
+ placeholder: 'e.g. {{trigger.body.userId}} or leave empty',
45
+ },
46
+ {
47
+ id: 'memoryKey',
48
+ name: 'Memory key',
49
+ description: 'Required when persistence is enabled. Slot name for this conversation. Full Redis key: workflow:{workflowId}:[userId]:[purposeName]:memoryKey. Supports expressions.',
50
+ type: types_1.FIELD_TYPE.STRING,
51
+ validation: { required: false },
52
+ placeholder: 'e.g. simpleKyc, onboarding',
53
+ },
54
+ {
55
+ id: 'purposeName',
56
+ name: 'Purpose name',
57
+ description: 'Optional. Purpose identifier (e.g. simpleKyc, onboarding). Included in Redis key when provided. Supports expressions.',
58
+ type: types_1.FIELD_TYPE.STRING,
59
+ validation: { required: false },
60
+ placeholder: 'e.g. simpleKyc',
61
+ },
62
+ {
63
+ id: 'memoryTimePersistenceMinutes',
64
+ name: 'Memory time persistence (minutes)',
65
+ description: 'TTL for the conversation memory in cache (minutes). Default 60.',
66
+ type: types_1.FIELD_TYPE.NUMBER,
67
+ validation: { required: false, min: 1, max: 43200 },
68
+ defaultValue: 60,
69
+ placeholder: '60',
70
+ },
71
+ {
72
+ id: 'stopExecutionUntilPurposeFinish',
73
+ name: 'Stop execution until purpose finish',
74
+ description: 'When true, use an IF node after this node to branch on result.status; route only when COMPLETED to continue. Prevents advancing until conversation completes.',
75
+ type: types_1.FIELD_TYPE.BOOLEAN,
76
+ validation: { required: false },
77
+ defaultValue: false,
78
+ },
79
+ {
80
+ id: 'expectedOutputSchema',
81
+ name: 'Expected output schema (JSON)',
82
+ description: 'JSON schema or object describing the shape of "output" when status is COMPLETED (e.g. {"type":"object","properties":{"fullName":{},"idNumber":{}},"required":["fullName","idNumber"]}). Used for validation and to guide the model.',
83
+ type: types_1.FIELD_TYPE.JSON,
84
+ validation: { required: false },
85
+ placeholder: '{"type":"object","properties":{"fullName":{},"idNumber":{}},"required":["fullName","idNumber"]}',
86
+ },
87
+ {
88
+ id: 'model',
89
+ name: 'Model',
90
+ description: 'ChatGPT model to use',
91
+ type: types_1.FIELD_TYPE.STRING,
92
+ validation: {
93
+ required: false,
94
+ enum: ['gpt-4o', 'gpt-4o-mini', 'gpt-4-turbo-preview', 'gpt-4', 'gpt-3.5-turbo'],
95
+ },
96
+ defaultValue: 'gpt-4o',
97
+ options: [
98
+ { label: 'GPT-4o', value: 'gpt-4o' },
99
+ { label: 'GPT-4o Mini', value: 'gpt-4o-mini' },
100
+ { label: 'GPT-4 Turbo', value: 'gpt-4-turbo-preview' },
101
+ { label: 'GPT-4', value: 'gpt-4' },
102
+ { label: 'GPT-3.5 Turbo', value: 'gpt-3.5-turbo' },
103
+ ],
104
+ },
105
+ {
106
+ id: 'temperature',
107
+ name: 'Temperature',
108
+ description: 'Randomness (0 = focused, 2 = creative). Lower is better for structured collection.',
109
+ type: types_1.FIELD_TYPE.NUMBER,
110
+ validation: { required: false, min: 0, max: 2 },
111
+ defaultValue: 0.3,
112
+ },
113
+ {
114
+ id: 'maxTokens',
115
+ name: 'Max tokens',
116
+ description: 'Maximum response length',
117
+ type: types_1.FIELD_TYPE.NUMBER,
118
+ validation: { required: false, min: 100, max: 4000 },
119
+ defaultValue: 2000,
120
+ },
121
+ {
122
+ id: 'maxContextTokens',
123
+ name: 'Max context tokens',
124
+ description: 'Token budget for conversation history; older messages are truncated to stay under this. Default 6000.',
125
+ type: types_1.FIELD_TYPE.NUMBER,
126
+ validation: { required: false, min: 1000, max: 120000 },
127
+ defaultValue: 6000,
128
+ placeholder: '6000',
129
+ },
130
+ {
131
+ id: 'enableConversationSummarization',
132
+ name: 'Enable conversation summarization',
133
+ description: 'When conversation is long, summarize oldest messages into one to save context. Recommended for long flows.',
134
+ type: types_1.FIELD_TYPE.BOOLEAN,
135
+ validation: { required: false },
136
+ defaultValue: true,
137
+ },
138
+ {
139
+ id: 'summarizationTriggerMessageCount',
140
+ name: 'Summarization trigger (message count)',
141
+ description: 'When message count reaches this, oldest portion is summarized. Default 14.',
142
+ type: types_1.FIELD_TYPE.NUMBER,
143
+ validation: { required: false, min: 6, max: 50 },
144
+ defaultValue: 14,
145
+ placeholder: '14',
146
+ },
147
+ ],
148
+ outputs: [
149
+ {
150
+ id: 'messages',
151
+ name: 'Messages',
152
+ description: 'Full conversation history [{ role, content }]',
153
+ type: types_1.FIELD_TYPE.ARRAY,
154
+ },
155
+ {
156
+ id: 'result',
157
+ name: 'Result',
158
+ description: 'Object with status (IN_PROGRESS | COMPLETED | FAILED) and output (when COMPLETED)',
159
+ type: types_1.FIELD_TYPE.OBJECT,
160
+ },
161
+ {
162
+ id: 'result.status',
163
+ name: 'Result status',
164
+ description: 'Use in IF node: IN_PROGRESS, COMPLETED, or FAILED',
165
+ type: types_1.FIELD_TYPE.STRING,
166
+ },
167
+ {
168
+ id: 'result.output',
169
+ name: 'Result output',
170
+ description: 'Collected data when status is COMPLETED; use in concatenation or downstream nodes',
171
+ type: types_1.FIELD_TYPE.OBJECT,
172
+ },
173
+ {
174
+ id: 'memoryKey',
175
+ name: 'Memory key',
176
+ description: 'Key used for persistence (for debugging)',
177
+ type: types_1.FIELD_TYPE.STRING,
178
+ },
179
+ {
180
+ id: 'collectedData',
181
+ name: 'Collected data',
182
+ description: 'Accumulated collected data so far',
183
+ type: types_1.FIELD_TYPE.OBJECT,
184
+ },
185
+ {
186
+ id: 'lastAssistantMessage',
187
+ name: 'Last assistant message',
188
+ description: 'Latest assistant reply (e.g. for Twilio/SMS)',
189
+ type: types_1.FIELD_TYPE.STRING,
190
+ },
191
+ {
192
+ id: 'metrics',
193
+ name: 'Metrics',
194
+ description: 'Conversation duration (ms), message count, completed (for completion rate)',
195
+ type: types_1.FIELD_TYPE.OBJECT,
196
+ },
197
+ {
198
+ id: 'metrics.conversationDurationMs',
199
+ name: 'Metrics: duration (ms)',
200
+ description: 'Time from first message to last update',
201
+ type: types_1.FIELD_TYPE.NUMBER,
202
+ },
203
+ {
204
+ id: 'metrics.messageCount',
205
+ name: 'Metrics: message count',
206
+ description: 'Total messages in conversation',
207
+ type: types_1.FIELD_TYPE.NUMBER,
208
+ },
209
+ {
210
+ id: 'metrics.completed',
211
+ name: 'Metrics: completed',
212
+ description: 'True when status is COMPLETED (for completion rate)',
213
+ type: types_1.FIELD_TYPE.BOOLEAN,
214
+ },
215
+ {
216
+ id: 'error',
217
+ name: 'Error',
218
+ description: 'True if the node returned FAILED due to an error',
219
+ type: types_1.FIELD_TYPE.BOOLEAN,
220
+ },
221
+ {
222
+ id: 'errorMessage',
223
+ name: 'Error message',
224
+ description: 'Error details when error is true',
225
+ type: types_1.FIELD_TYPE.STRING,
226
+ },
227
+ ],
228
+ };
229
+ //# sourceMappingURL=chat-purpose.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-purpose.action.js","sourceRoot":"","sources":["../../../../src/modules/chatgpt/actions/chat-purpose.action.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export * from './chat-completion.action';
2
+ export * from './chat-purpose.action';
2
3
  export * from './create-embedding.action';
3
4
  export * from './generate-image.action';
4
5
  export * from './speech-to-text.action';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/chatgpt/actions/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/chatgpt/actions/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC"}
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./chat-completion.action"), exports);
18
+ __exportStar(require("./chat-purpose.action"), exports);
18
19
  __exportStar(require("./create-embedding.action"), exports);
19
20
  __exportStar(require("./generate-image.action"), exports);
20
21
  __exportStar(require("./speech-to-text.action"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/chatgpt/actions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,4DAA0C;AAC1C,0DAAwC;AACxC,0DAAwC;AACxC,0DAAwC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/chatgpt/actions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,wDAAsC;AACtC,4DAA0C;AAC1C,0DAAwC;AACxC,0DAAwC;AACxC,0DAAwC"}
@@ -1 +1 @@
1
- {"version":3,"file":"chatgpt-nest.module.d.ts","sourceRoot":"","sources":["../../../src/modules/chatgpt/chatgpt-nest.module.ts"],"names":[],"mappings":"AAYA,qBAmBa,iBAAiB;CAAG"}
1
+ {"version":3,"file":"chatgpt-nest.module.d.ts","sourceRoot":"","sources":["../../../src/modules/chatgpt/chatgpt-nest.module.ts"],"names":[],"mappings":"AAaA,qBAqBa,iBAAiB;CAAG"}
@@ -20,6 +20,7 @@ exports.ChatGptNestModule = ChatGptNestModule = __decorate([
20
20
  providers: [
21
21
  auth_1.ChatGptAuthService,
22
22
  services_1.ChatCompletionService,
23
+ services_1.ChatGptPurposeService,
23
24
  services_1.CreateEmbeddingService,
24
25
  services_1.GenerateImageService,
25
26
  services_1.SpeechToTextService,
@@ -28,6 +29,7 @@ exports.ChatGptNestModule = ChatGptNestModule = __decorate([
28
29
  exports: [
29
30
  auth_1.ChatGptAuthService,
30
31
  services_1.ChatCompletionService,
32
+ services_1.ChatGptPurposeService,
31
33
  services_1.CreateEmbeddingService,
32
34
  services_1.GenerateImageService,
33
35
  services_1.SpeechToTextService,
@@ -1 +1 @@
1
- {"version":3,"file":"chatgpt-nest.module.js","sourceRoot":"","sources":["../../../src/modules/chatgpt/chatgpt-nest.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,mDAAsD;AAEtD,iCAA4C;AAC5C,yCAMoB;AAqBb,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;CAAG,CAAA;AAApB,8CAAiB;4BAAjB,iBAAiB;IAnB7B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,uBAAa,CAAC;QACxB,SAAS,EAAE;YACT,yBAAkB;YAClB,gCAAqB;YACrB,iCAAsB;YACtB,+BAAoB;YACpB,8BAAmB;YACnB,8BAAmB;SACpB;QACD,OAAO,EAAE;YACP,yBAAkB;YAClB,gCAAqB;YACrB,iCAAsB;YACtB,+BAAoB;YACpB,8BAAmB;YACnB,8BAAmB;SACpB;KACF,CAAC;GACW,iBAAiB,CAAG"}
1
+ {"version":3,"file":"chatgpt-nest.module.js","sourceRoot":"","sources":["../../../src/modules/chatgpt/chatgpt-nest.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,mDAAsD;AAEtD,iCAA4C;AAC5C,yCAOoB;AAuBb,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;CAAG,CAAA;AAApB,8CAAiB;4BAAjB,iBAAiB;IArB7B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,uBAAa,CAAC;QACxB,SAAS,EAAE;YACT,yBAAkB;YAClB,gCAAqB;YACrB,gCAAqB;YACrB,iCAAsB;YACtB,+BAAoB;YACpB,8BAAmB;YACnB,8BAAmB;SACpB;QACD,OAAO,EAAE;YACP,yBAAkB;YAClB,gCAAqB;YACrB,gCAAqB;YACrB,iCAAsB;YACtB,+BAAoB;YACpB,8BAAmB;YACnB,8BAAmB;SACpB;KACF,CAAC;GACW,iBAAiB,CAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"chatgpt.module.d.ts","sourceRoot":"","sources":["../../../src/modules/chatgpt/chatgpt.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAWpF,eAAO,MAAM,aAAa,EAAE,wBAkB3B,CAAC"}
1
+ {"version":3,"file":"chatgpt.module.d.ts","sourceRoot":"","sources":["../../../src/modules/chatgpt/chatgpt.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAYpF,eAAO,MAAM,aAAa,EAAE,wBAmB3B,CAAC"}
@@ -14,6 +14,7 @@ exports.chatgptModule = {
14
14
  authServiceClass: auth_1.ChatGptAuthService,
15
15
  actions: [
16
16
  actions_1.chatCompletionAction,
17
+ actions_1.chatPurposeAction,
17
18
  actions_1.generateImageAction,
18
19
  actions_1.textToSpeechAction,
19
20
  actions_1.speechToTextAction,
@@ -1 +1 @@
1
- {"version":3,"file":"chatgpt.module.js","sourceRoot":"","sources":["../../../src/modules/chatgpt/chatgpt.module.ts"],"names":[],"mappings":";;;AACA,uCAMmB;AACnB,iCAA4C;AAC5C,+CAAmD;AAEtC,QAAA,aAAa,GAA6B;IACrD,GAAG,EAAE,SAAS;IACd,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,+DAA+D;IAC5E,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,OAAO;IAChB,gBAAgB,EAAE,gCAAkB;IACpC,gBAAgB,EAAE,yBAEiB;IACnC,OAAO,EAAE;QACP,8BAAoB;QACpB,6BAAmB;QACnB,4BAAkB;QAClB,4BAAkB;QAClB,+BAAqB;KACtB;IACD,QAAQ,EAAE,EAAE;CACb,CAAC"}
1
+ {"version":3,"file":"chatgpt.module.js","sourceRoot":"","sources":["../../../src/modules/chatgpt/chatgpt.module.ts"],"names":[],"mappings":";;;AACA,uCAOmB;AACnB,iCAA4C;AAC5C,+CAAmD;AAEtC,QAAA,aAAa,GAA6B;IACrD,GAAG,EAAE,SAAS;IACd,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,+DAA+D;IAC5E,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,OAAO;IAChB,gBAAgB,EAAE,gCAAkB;IACpC,gBAAgB,EAAE,yBAEiB;IACnC,OAAO,EAAE;QACP,8BAAoB;QACpB,2BAAiB;QACjB,6BAAmB;QACnB,4BAAkB;QAClB,4BAAkB;QAClB,+BAAqB;KACtB;IACD,QAAQ,EAAE,EAAE;CACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat-completion.service.d.ts","sourceRoot":"","sources":["../../../../src/modules/chatgpt/services/chat-completion.service.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,kBAAkB,EAEnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE5E,qBACa,qBAAsB,YAAW,sBAAsB;IACtD,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBAAlB,kBAAkB,EAAE,kBAAkB;IAE7D,OAAO,CACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAgDnC,OAAO,CAAC,aAAa;IAqCrB,OAAO,CAAC,aAAa;CAWtB"}
1
+ {"version":3,"file":"chat-completion.service.d.ts","sourceRoot":"","sources":["../../../../src/modules/chatgpt/services/chat-completion.service.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,kBAAkB,EAEnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE5E,qBACa,qBAAsB,YAAW,sBAAsB;IACtD,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBAAlB,kBAAkB,EAAE,kBAAkB;IAE7D,OAAO,CACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IA4CnC,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,aAAa;CAWtB"}
@@ -23,64 +23,36 @@ let ChatCompletionService = class ChatCompletionService {
23
23
  if (!apiKey) {
24
24
  throw new Error('OpenAI API key is required in credentials');
25
25
  }
26
- const messages = this.buildMessages(inputs);
27
- if (messages.length === 0) {
28
- throw new Error('Provide at least one of: System instructions, Your message, or Conversation history');
26
+ const message = String(inputs.message ?? '').trim();
27
+ if (!message) {
28
+ throw new Error('Message is required');
29
29
  }
30
+ const messages = this.buildMessages(message, inputs.systemInstructions ?? undefined);
30
31
  const model = inputs.model || 'gpt-4o';
31
- const temperature = inputs.temperature || 0.7;
32
- const maxTokens = inputs.maxTokens || 2000;
33
- const store = inputs.store !== false;
32
+ const temperature = inputs.temperature ?? 0.7;
33
+ const maxTokens = inputs.maxTokens ?? 2000;
34
34
  const completion = await this.chatGptChatService.createChatCompletion({
35
35
  model,
36
36
  temperature,
37
37
  maxTokens,
38
- store,
38
+ store: true,
39
39
  apiKey,
40
40
  baseUrl,
41
41
  }, messages);
42
42
  const assistantMessage = completion.choices[0]?.message;
43
+ const totalTokens = completion.usage?.total_tokens ?? 0;
43
44
  return {
44
- content: assistantMessage?.content || '',
45
- role: assistantMessage?.role || 'assistant',
46
- model: completion.model,
47
- tokensUsed: completion.usage?.total_tokens || 0,
48
- cost: this.calculateCost(completion.model, completion.usage?.total_tokens || 0),
49
- messageId: completion.id,
45
+ content: assistantMessage?.content ?? '',
46
+ tokensUsed: totalTokens,
47
+ cost: this.calculateCost(completion.model, totalTokens),
50
48
  };
51
49
  }
52
- buildMessages(inputs) {
50
+ buildMessages(message, systemInstructions) {
53
51
  const result = [];
54
- const systemPrompt = inputs.systemPrompt;
55
- if (systemPrompt != null && String(systemPrompt).trim()) {
56
- result.push({ role: 'system', content: systemPrompt.trim() });
57
- }
58
- let conversation = [];
59
- if (inputs.messages != null) {
60
- if (typeof inputs.messages === 'string') {
61
- try {
62
- const parsed = JSON.parse(inputs.messages);
63
- conversation = Array.isArray(parsed) ? parsed : [];
64
- }
65
- catch {
66
- conversation = [];
67
- }
68
- }
69
- else if (Array.isArray(inputs.messages)) {
70
- conversation = inputs.messages;
71
- }
72
- }
73
- const validRoles = ['system', 'user', 'assistant'];
74
- for (const m of conversation) {
75
- if (m && typeof m === 'object' && typeof m.content === 'string') {
76
- const role = validRoles.includes(m.role) ? m.role : 'user';
77
- result.push({ role: role, content: m.content });
78
- }
79
- }
80
- const userMessage = inputs.userMessage;
81
- if (userMessage != null && String(userMessage).trim()) {
82
- result.push({ role: 'user', content: userMessage.trim() });
52
+ if (systemInstructions?.trim()) {
53
+ result.push({ role: 'system', content: systemInstructions.trim() });
83
54
  }
55
+ result.push({ role: 'user', content: message });
84
56
  return result;
85
57
  }
86
58
  calculateCost(model, tokens) {
@@ -1 +1 @@
1
- {"version":3,"file":"chat-completion.service.js","sourceRoot":"","sources":["../../../../src/modules/chatgpt/services/chat-completion.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-completion.service.js","sourceRoot":"","sources":["../../../../src/modules/chatgpt/services/chat-completion.service.ts"],"names":[],"mappings":"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"}