@bpmsoftwaresolutions/ai-engine-client 1.1.85 → 1.1.87

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.
@@ -0,0 +1,99 @@
1
+ export function createWorkflowsDomain(client) {
2
+ return {
3
+ listWorkflows({ status, includeSteps } = {}) {
4
+ return client._request('/api/workflows', {
5
+ query: { status, include_steps: includeSteps },
6
+ });
7
+ },
8
+
9
+ createWorkflow({ name, slug, description, goal, governanceProfile, steps = [] } = {}) {
10
+ return client._request('/api/workflows', {
11
+ method: 'POST',
12
+ body: { name, slug, description, goal, governance_profile: governanceProfile, steps },
13
+ });
14
+ },
15
+
16
+ getWorkflow(workflowId) {
17
+ return client._request(`/api/workflows/${workflowId}`);
18
+ },
19
+
20
+ replaceWorkflowSteps(workflowId, steps) {
21
+ return client._request(`/api/workflows/${workflowId}/steps`, { method: 'PUT', body: { steps } });
22
+ },
23
+
24
+ publishWorkflow(workflowId) {
25
+ return client._request(`/api/workflows/${workflowId}/publish`, { method: 'POST' });
26
+ },
27
+
28
+ cloneWorkflow(workflowId) {
29
+ return client._request(`/api/workflows/${workflowId}/clone`, { method: 'POST' });
30
+ },
31
+
32
+ evaluateWorkflowGovernance(workflowId) {
33
+ return client._request(`/api/workflows/${workflowId}/governance/evaluate`, { method: 'POST' });
34
+ },
35
+
36
+ listWorkflowGovernanceDecisions(workflowId) {
37
+ return client._request(`/api/workflows/${workflowId}/governance/decisions`);
38
+ },
39
+
40
+ getWorkflowGovernanceSimulation(workflowId) {
41
+ return client._request(`/api/workflows/${workflowId}/governance/simulation`);
42
+ },
43
+
44
+ listWorkflowGovernanceBundles(workflowId) {
45
+ return client._request(`/api/workflows/${workflowId}/governance/bundles`);
46
+ },
47
+
48
+ listWorkflowGovernanceApprovals(workflowId) {
49
+ return client._request(`/api/workflows/${workflowId}/governance/approvals`);
50
+ },
51
+
52
+ listWorkflowGovernanceEvents(workflowId) {
53
+ return client._request(`/api/workflows/${workflowId}/governance/events`);
54
+ },
55
+
56
+ getWorkflowGovernanceReview(workflowId) {
57
+ return client._request(`/api/workflows/${workflowId}/governance/review`);
58
+ },
59
+
60
+ createWorkflowGovernanceReviewDecision(workflowId, body) {
61
+ return client._request(`/api/workflows/${workflowId}/governance/review-decisions`, {
62
+ method: 'POST',
63
+ body,
64
+ });
65
+ },
66
+
67
+ createWorkflowRun(body) {
68
+ return client._request('/api/workflow-runs', { method: 'POST', body });
69
+ },
70
+
71
+ getWorkflowRun(workflowRunId) {
72
+ return client._request(`/api/workflow-runs/${workflowRunId}`);
73
+ },
74
+
75
+ listWorkflowArtifacts(workflowRunId) {
76
+ return client._request(`/api/workflow-runs/${workflowRunId}/artifacts`);
77
+ },
78
+
79
+ getWorkflowRunSubstrate(workflowRunId) {
80
+ return client._request(`/api/workflow-runs/${workflowRunId}/substrate`);
81
+ },
82
+
83
+ getWorkflowPlayback(workflowRunId) {
84
+ return client._request(`/api/operator/workflow-runs/${workflowRunId}/playback`);
85
+ },
86
+
87
+ resumeWorkflowRun(workflowRunId, body = {}) {
88
+ return client._request(`/api/workflow-runs/${workflowRunId}/resume`, { method: 'POST', body });
89
+ },
90
+
91
+ listRecentInspectorRuns({ limit } = {}) {
92
+ return client._request('/api/workflow-inspector/runs/recent', { query: { limit } });
93
+ },
94
+
95
+ inspectWorkflowRun(workflowRunId) {
96
+ return client._request(`/api/workflow-inspector/runs/${workflowRunId}`);
97
+ },
98
+ };
99
+ }
package/src/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export { AIEngineClient, createAIEngineClient } from './client.js';
2
- export const AI_ENGINE_CLIENT_VERSION = '1.1.85';
2
+ export const AI_ENGINE_CLIENT_VERSION = '1.1.87';
3
3
  export { GOVERNED_MUTATION_REQUIRED_CAPABILITIES, AI_ENGINE_CLIENT_CAPABILITIES, TASK_BOUND_SUBSTRATE_EXECUTION_POLICY } from './constants/governance.js';
4
4
  export { LOGA_CONTRACT, LOGA_INTERACTION_CONTRACT, LOGA_NAVIGATION_CONTRACT, LOGA_PROJECTION_WORKFLOW } from './constants/loga.js';
5
5
  export {
@@ -0,0 +1,92 @@
1
+ import {
2
+ AGENT_COMMUNICATION_MESSAGE_KINDS,
3
+ AGENT_COMMUNICATION_RECIPIENT_MODES,
4
+ AGENT_COMMUNICATION_THREAD_TYPES,
5
+ AGENT_COMMUNICATION_TRANSFER_KINDS,
6
+ AGENT_COMMUNICATION_TRANSFER_LIFECYCLE_STATES,
7
+ AGENT_COMMUNICATION_TRANSFER_MODES,
8
+ AGENT_COMMUNICATION_TRANSFER_RECEIPT_TYPES,
9
+ } from '../constants/agent-communications.js';
10
+
11
+ function normalizeEnum(value, allowedValues, fallback, label, aliases = {}) {
12
+ const text = String(value || '').trim();
13
+ if (!text) return fallback;
14
+ const normalized = aliases[text.toLowerCase()] || text;
15
+ if (allowedValues.includes(normalized)) return normalized;
16
+ const lower = normalized.toLowerCase();
17
+ const match = allowedValues.find((item) => item.toLowerCase() === lower);
18
+ if (match) return match;
19
+ throw new Error(`Invalid ${label || 'value'}: ${value}`);
20
+ }
21
+
22
+ export function cleanText(value) {
23
+ const text = String(value || '').trim();
24
+ return text || null;
25
+ }
26
+
27
+ export function isPlainObject(value) {
28
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
29
+ }
30
+
31
+ export function normalizeThreadType(value) {
32
+ return normalizeEnum(value, AGENT_COMMUNICATION_THREAD_TYPES, 'coordination', 'thread_type', {
33
+ task_request: 'request',
34
+ task: 'request',
35
+ review_request: 'review',
36
+ handoff_request: 'handoff',
37
+ });
38
+ }
39
+
40
+ export function normalizeMessageKind(value) {
41
+ return normalizeEnum(value, AGENT_COMMUNICATION_MESSAGE_KINDS, 'request', 'message_kind', {
42
+ task: 'request',
43
+ note: 'request',
44
+ update: 'response',
45
+ });
46
+ }
47
+
48
+ export function normalizeConnectionFirstMessageKind(value, transferKind) {
49
+ const text = cleanText(value);
50
+ if (!text) return normalizeMessageKind(transferKind === 'handoff' ? 'handoff' : 'request');
51
+ const normalized = text.toLowerCase();
52
+ const aliases = {
53
+ connection_request: 'request',
54
+ connection_accepted: 'response',
55
+ connection_acceptance: 'response',
56
+ handoff_request: 'handoff',
57
+ handoff_acceptance: 'response',
58
+ handoff_response: 'response',
59
+ acceptance: 'response',
60
+ decline: 'response',
61
+ };
62
+ const candidate = aliases[normalized] || text;
63
+ try {
64
+ return normalizeMessageKind(candidate);
65
+ } catch (error) {
66
+ void error;
67
+ return normalizeMessageKind(transferKind === 'handoff' ? 'handoff' : 'request');
68
+ }
69
+ }
70
+
71
+ export function normalizeTransferKind(value) {
72
+ return normalizeEnum(value, AGENT_COMMUNICATION_TRANSFER_KINDS, 'upstream_remediation', 'transfer_kind', {
73
+ remediation_request: 'upstream_remediation',
74
+ review: 'review_request',
75
+ });
76
+ }
77
+
78
+ export function normalizeTransferMode(value) {
79
+ return normalizeEnum(value, AGENT_COMMUNICATION_TRANSFER_MODES, 'inline_payload', 'transfer_mode');
80
+ }
81
+
82
+ export function normalizeTransferLifecycleStatus(value) {
83
+ return normalizeEnum(value, AGENT_COMMUNICATION_TRANSFER_LIFECYCLE_STATES, 'created', 'lifecycle_status');
84
+ }
85
+
86
+ export function normalizeTransferReceiptType(value) {
87
+ return normalizeEnum(value, AGENT_COMMUNICATION_TRANSFER_RECEIPT_TYPES, 'delivery_receipt', 'receipt_type');
88
+ }
89
+
90
+ export function normalizeRecipientMode(value) {
91
+ return normalizeEnum(value, AGENT_COMMUNICATION_RECIPIENT_MODES, 'role', 'recipient_mode');
92
+ }