@hostwebhook/node-types 1.27.0 → 1.28.0
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/connections.js +2 -2
- package/dist/dispatch.js +1 -1
- package/dist/registry.js +4 -4
- package/dist/types.d.ts +9 -1
- package/dist/ui.js +7 -2
- package/package.json +1 -1
package/dist/connections.js
CHANGED
|
@@ -22,7 +22,7 @@ const PROCESSING_OUTPUTS = [
|
|
|
22
22
|
];
|
|
23
23
|
/** Standard processing input sources */
|
|
24
24
|
const STANDARD_INPUTS = [
|
|
25
|
-
'endpoint', 'scheduledWebhook', 'serviceTrigger', '
|
|
25
|
+
'endpoint', 'scheduledWebhook', 'serviceTrigger', 'voiceAgent', 'router', 'filter', 'transform',
|
|
26
26
|
'cache', 'code', 'rateLimiter', 'aggregator', 'conditional', 'delay', 'schemaValidator', 'split', 'loop', 'markdown', 'fileTransform',
|
|
27
27
|
];
|
|
28
28
|
/** Action nodes that can chain (non-terminal) */
|
|
@@ -35,7 +35,7 @@ exports.NODE_CONNECTIONS = {
|
|
|
35
35
|
scheduledWebhook: { acceptsInputFrom: [], canOutputTo: PROCESSING_OUTPUTS },
|
|
36
36
|
chatTrigger: { acceptsInputFrom: [], canOutputTo: PROCESSING_OUTPUTS },
|
|
37
37
|
serviceTrigger: { acceptsInputFrom: [], canOutputTo: PROCESSING_OUTPUTS },
|
|
38
|
-
|
|
38
|
+
voiceAgent: { acceptsInputFrom: [], canOutputTo: PROCESSING_OUTPUTS },
|
|
39
39
|
// ── Pipeline processing nodes ──
|
|
40
40
|
filter: { acceptsInputFrom: STANDARD_INPUTS, canOutputTo: PROCESSING_OUTPUTS },
|
|
41
41
|
transform: { acceptsInputFrom: STANDARD_INPUTS, canOutputTo: PROCESSING_OUTPUTS },
|
package/dist/dispatch.js
CHANGED
|
@@ -52,7 +52,7 @@ exports.NODE_DISPATCH = {
|
|
|
52
52
|
scheduledWebhook: { service: 'scheduledWebhooksService', collection: 'scheduledwebhooks', hasFilters: false, outputFields: ['outputNodes'], customDispatch: true, pipelineDispatch: 'excluded' },
|
|
53
53
|
chatTrigger: { service: 'chatTriggersService', collection: 'chattriggers', hasFilters: false, outputFields: ['outputNodes'], customDispatch: true, pipelineDispatch: 'excluded' },
|
|
54
54
|
serviceTrigger: { service: 'serviceTriggersService', collection: 'servicetriggers', hasFilters: false, outputFields: ['outputNodes'], customDispatch: true, pipelineDispatch: 'excluded' },
|
|
55
|
-
|
|
55
|
+
voiceAgent: { service: 'voiceAgentsService', collection: 'voiceagents', hasFilters: false, outputFields: ['outputNodes'], customDispatch: true, pipelineDispatch: 'excluded' },
|
|
56
56
|
// ── Annotation — never executed in pipeline ──
|
|
57
57
|
stickyNote: { service: 'stickyNotesService', collection: 'stickynotes', hasFilters: false, outputFields: ['outputNodes'], customDispatch: true, pipelineDispatch: 'excluded' },
|
|
58
58
|
};
|
package/dist/registry.js
CHANGED
|
@@ -35,10 +35,10 @@ exports.NODE_REGISTRY = {
|
|
|
35
35
|
stateKey: 'serviceTriggers', allStateKey: 'allServiceTriggers',
|
|
36
36
|
color: '#ef4444', testable: false,
|
|
37
37
|
},
|
|
38
|
-
|
|
39
|
-
type: '
|
|
40
|
-
group: 'Sources', detailPath: '/dashboard/voice-
|
|
41
|
-
stateKey: '
|
|
38
|
+
voiceAgent: {
|
|
39
|
+
type: 'voiceAgent', prefix: 'va', label: 'Voice Agent',
|
|
40
|
+
group: 'Sources', detailPath: '/dashboard/voice-agents', apiPath: '/voice-agents',
|
|
41
|
+
stateKey: 'voiceAgents', allStateKey: 'allVoiceAgents',
|
|
42
42
|
color: '#a855f7', testable: false,
|
|
43
43
|
},
|
|
44
44
|
// ── Flow Control ──
|
package/dist/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** All valid node type identifiers */
|
|
2
|
-
export type NodeType = 'endpoint' | 'scheduledWebhook' | 'chatTrigger' | 'serviceTrigger' | '
|
|
2
|
+
export type NodeType = 'endpoint' | 'scheduledWebhook' | 'chatTrigger' | 'serviceTrigger' | 'voiceAgent' | 'filter' | 'transform' | 'schemaValidator' | 'conditional' | 'delay' | 'rateLimiter' | 'aggregator' | 'cache' | 'code' | 'ai' | 'merge' | 'approval' | 'split' | 'loop' | 'markdown' | 'fileTransform' | 'router' | 'emailAction' | 'httpAction' | 'mongoAction' | 'postgresAction' | 'notificationAction' | 'sheetsAction' | 'calendarAction' | 'docsAction' | 'driveAction' | 'firecrawlAction' | 'vectorStore' | 'stickyNote';
|
|
3
3
|
/** Node role in the pipeline */
|
|
4
4
|
export type NodeRole = 'source' | 'processing' | 'flowControl' | 'routing' | 'action' | 'monitoring';
|
|
5
5
|
/** Handle positions on the canvas node */
|
|
@@ -26,6 +26,14 @@ export interface NodeUIConfig {
|
|
|
26
26
|
input?: string[];
|
|
27
27
|
output?: string[];
|
|
28
28
|
};
|
|
29
|
+
/**
|
|
30
|
+
* When true, the canvas derives output handles from the node entity
|
|
31
|
+
* at render time (e.g. one handle per `entity.tools[i].name`) rather
|
|
32
|
+
* than from a static `dotHandles.output` list. Used by Voice Agent —
|
|
33
|
+
* the count of tools is data, not config. NodeShell branches on this
|
|
34
|
+
* flag to render the dynamic handle set.
|
|
35
|
+
*/
|
|
36
|
+
dynamicOutputs?: boolean;
|
|
29
37
|
special?: {
|
|
30
38
|
rejectionEndpoints?: string;
|
|
31
39
|
hasBranches?: boolean;
|
package/dist/ui.js
CHANGED
|
@@ -12,7 +12,12 @@ exports.NODE_UI = {
|
|
|
12
12
|
scheduledWebhook: { fromNodes: false, toNodes: true, isSource: true, outputHandles: ['right', 'bottom'], dotHandles: { output: ['right-out', 'bottom-out'] } },
|
|
13
13
|
chatTrigger: { fromNodes: false, toNodes: true, isSource: true, outputHandles: ['right'], dotHandles: { output: ['right-out'] } },
|
|
14
14
|
serviceTrigger: { fromNodes: false, toNodes: true, isSource: true, outputHandles: ['right', 'bottom'], dotHandles: { output: ['right-out', 'bottom-out'] } },
|
|
15
|
-
|
|
15
|
+
// Voice Agent: dynamicOutputs=true tells NodeShell to derive ONE
|
|
16
|
+
// output handle per non-disabled `entity.tools[i].name`. The
|
|
17
|
+
// `right-out` fallback handle is rendered when the agent has zero
|
|
18
|
+
// tools so the user has somewhere to drop the first wired connection
|
|
19
|
+
// before any tools are defined (rare but possible during onboarding).
|
|
20
|
+
voiceAgent: { fromNodes: false, toNodes: true, isSource: true, outputHandles: ['right'], dotHandles: { output: ['right-out'] }, dynamicOutputs: true },
|
|
16
21
|
// ── Pipeline processing nodes ──
|
|
17
22
|
filter: { fromNodes: true, toNodes: true, special: { loopBackAllowed: true } },
|
|
18
23
|
transform: { fromNodes: true, toNodes: true, special: { loopBackAllowed: true } },
|
|
@@ -54,7 +59,7 @@ exports.PREFIX_TO_TYPE = [
|
|
|
54
59
|
{ prefix: 'sw-', type: 'scheduledWebhook', canvasType: 'scheduledWebhook' },
|
|
55
60
|
{ prefix: 'chat-', type: 'chatTrigger', canvasType: 'chatTrigger' },
|
|
56
61
|
{ prefix: 'svc-', type: 'serviceTrigger', canvasType: 'serviceTrigger' },
|
|
57
|
-
{ prefix: '
|
|
62
|
+
{ prefix: 'va-', type: 'voiceAgent', canvasType: 'voiceAgent' },
|
|
58
63
|
{ prefix: 'ea-', type: 'emailAction', canvasType: 'emailAction' },
|
|
59
64
|
{ prefix: 'ha-', type: 'httpAction', canvasType: 'httpAction' },
|
|
60
65
|
{ prefix: 'ma-', type: 'mongoAction', canvasType: 'mongoAction' },
|
package/package.json
CHANGED