@loxtep/sdk 0.4.0 → 0.6.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/CHANGELOG.md +50 -0
- package/README.md +77 -91
- package/dist/authoring/toolbox.d.ts +7 -7
- package/dist/authoring/toolbox.d.ts.map +1 -1
- package/dist/authoring/toolbox.js +5 -5
- package/dist/authoring/toolbox.js.map +1 -1
- package/dist/cli/auth-resolve.d.ts +4 -1
- package/dist/cli/auth-resolve.d.ts.map +1 -1
- package/dist/cli/auth-resolve.js +5 -3
- package/dist/cli/auth-resolve.js.map +1 -1
- package/dist/cli/commands/deploy-cmd.js +1 -1
- package/dist/cli/commands/deploy-cmd.js.map +1 -1
- package/dist/cli/commands/login.d.ts +10 -1
- package/dist/cli/commands/login.d.ts.map +1 -1
- package/dist/cli/commands/login.js +33 -5
- package/dist/cli/commands/login.js.map +1 -1
- package/dist/cli/commands/logout.d.ts +12 -2
- package/dist/cli/commands/logout.d.ts.map +1 -1
- package/dist/cli/commands/logout.js +29 -5
- package/dist/cli/commands/logout.js.map +1 -1
- package/dist/cli/commands/triggers-cmd.d.ts +19 -0
- package/dist/cli/commands/triggers-cmd.d.ts.map +1 -0
- package/dist/cli/commands/{connections-cmd.js → triggers-cmd.js} +12 -12
- package/dist/cli/commands/triggers-cmd.js.map +1 -0
- package/dist/cli/commands/whoami.js +1 -1
- package/dist/cli/commands/whoami.js.map +1 -1
- package/dist/cli/commands/workflows-cmd.d.ts +8 -1
- package/dist/cli/commands/workflows-cmd.d.ts.map +1 -1
- package/dist/cli/commands/workflows-cmd.js +23 -2
- package/dist/cli/commands/workflows-cmd.js.map +1 -1
- package/dist/cli/create-cli-client.d.ts +2 -0
- package/dist/cli/create-cli-client.d.ts.map +1 -1
- package/dist/cli/create-cli-client.js +11 -6
- package/dist/cli/create-cli-client.js.map +1 -1
- package/dist/cli/credentials.d.ts +38 -4
- package/dist/cli/credentials.d.ts.map +1 -1
- package/dist/cli/credentials.js +69 -4
- package/dist/cli/credentials.js.map +1 -1
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.js +37 -39
- package/dist/cli/index.js.map +1 -1
- package/dist/client/approvals-types.d.ts +47 -0
- package/dist/client/approvals-types.d.ts.map +1 -0
- package/dist/client/approvals-types.js +6 -0
- package/dist/client/approvals-types.js.map +1 -0
- package/dist/client/approvals.d.ts +18 -0
- package/dist/client/approvals.d.ts.map +1 -0
- package/dist/client/approvals.js +52 -0
- package/dist/client/approvals.js.map +1 -0
- package/dist/client/connectors.d.ts +1 -1
- package/dist/client/connectors.d.ts.map +1 -1
- package/dist/client/connectors.js +1 -1
- package/dist/client/connectors.js.map +1 -1
- package/dist/client/data-products-types.d.ts +1 -1
- package/dist/client/data-products-types.d.ts.map +1 -1
- package/dist/client/data-products.d.ts +1 -1
- package/dist/client/data-products.d.ts.map +1 -1
- package/dist/client/data-products.js +1 -1
- package/dist/client/data-products.js.map +1 -1
- package/dist/client/discovery.d.ts +4 -4
- package/dist/client/discovery.d.ts.map +1 -1
- package/dist/client/discovery.js +4 -4
- package/dist/client/discovery.js.map +1 -1
- package/dist/client/index.d.ts +5 -3
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +1 -0
- package/dist/client/index.js.map +1 -1
- package/dist/client/loxtep-client.d.ts +36 -21
- package/dist/client/loxtep-client.d.ts.map +1 -1
- package/dist/client/loxtep-client.js +42 -25
- package/dist/client/loxtep-client.js.map +1 -1
- package/dist/client/projects.d.ts +1 -1
- package/dist/client/projects.d.ts.map +1 -1
- package/dist/client/projects.js +1 -1
- package/dist/client/projects.js.map +1 -1
- package/dist/client/{delivery-types.d.ts → target-types.d.ts} +18 -18
- package/dist/client/target-types.d.ts.map +1 -0
- package/dist/client/target-types.js +10 -0
- package/dist/client/target-types.js.map +1 -0
- package/dist/client/targets.d.ts +21 -0
- package/dist/client/targets.d.ts.map +1 -0
- package/dist/client/{delivery.js → targets.js} +31 -33
- package/dist/client/targets.js.map +1 -0
- package/dist/client/thesaurus.d.ts +2 -2
- package/dist/client/thesaurus.d.ts.map +1 -1
- package/dist/client/thesaurus.js +4 -4
- package/dist/client/thesaurus.js.map +1 -1
- package/dist/client/{connection-types.d.ts → trigger-types.d.ts} +22 -21
- package/dist/client/trigger-types.d.ts.map +1 -0
- package/dist/client/trigger-types.js +19 -0
- package/dist/client/trigger-types.js.map +1 -0
- package/dist/client/triggers.d.ts +19 -0
- package/dist/client/triggers.d.ts.map +1 -0
- package/dist/client/{connections.js → triggers.js} +12 -11
- package/dist/client/triggers.js.map +1 -0
- package/dist/client/workflows.d.ts +38 -6
- package/dist/client/workflows.d.ts.map +1 -1
- package/dist/client/workflows.js +192 -8
- package/dist/client/workflows.js.map +1 -1
- package/dist/codegen/load-workspace-context.d.ts.map +1 -1
- package/dist/codegen/load-workspace-context.js +6 -4
- package/dist/codegen/load-workspace-context.js.map +1 -1
- package/dist/config/workspace-config.d.ts +2 -1
- package/dist/config/workspace-config.d.ts.map +1 -1
- package/dist/config/workspace-config.js +5 -6
- package/dist/config/workspace-config.js.map +1 -1
- package/docs/getting-started.md +0 -12
- package/docs/quick-reference.md +6 -19
- package/docs/sdk-mcp-mapping.md +15 -8
- package/docs/sdk-pairing.md +5 -5
- package/package.json +2 -2
- package/dist/cli/commands/connections-cmd.d.ts +0 -19
- package/dist/cli/commands/connections-cmd.d.ts.map +0 -1
- package/dist/cli/commands/connections-cmd.js.map +0 -1
- package/dist/cli/commands/flows-cmd.d.ts +0 -19
- package/dist/cli/commands/flows-cmd.d.ts.map +0 -1
- package/dist/cli/commands/flows-cmd.js +0 -37
- package/dist/cli/commands/flows-cmd.js.map +0 -1
- package/dist/client/connection-types.d.ts.map +0 -1
- package/dist/client/connection-types.js +0 -18
- package/dist/client/connection-types.js.map +0 -1
- package/dist/client/connections.d.ts +0 -18
- package/dist/client/connections.d.ts.map +0 -1
- package/dist/client/connections.js.map +0 -1
- package/dist/client/delivery-types.d.ts.map +0 -1
- package/dist/client/delivery-types.js +0 -10
- package/dist/client/delivery-types.js.map +0 -1
- package/dist/client/delivery.d.ts +0 -23
- package/dist/client/delivery.d.ts.map +0 -1
- package/dist/client/delivery.js.map +0 -1
- package/dist/client/flows.d.ts +0 -33
- package/dist/client/flows.d.ts.map +0 -1
- package/dist/client/flows.js +0 -218
- package/dist/client/flows.js.map +0 -1
package/dist/client/workflows.js
CHANGED
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Workflows API:
|
|
2
|
+
* Workflows API: list, get (with nodes), create, get_graph, deploy, get_writer.
|
|
3
3
|
* Backend: workflows microservice (/workflows/workflows, graph, projects/:id/deploy).
|
|
4
|
+
*
|
|
5
|
+
* A workflow is a DAG of nodes (ingestion → transformation → export). This
|
|
6
|
+
* namespace is the single surface for the workflow entity and its lifecycle;
|
|
7
|
+
* the former `flows` namespace has been folded in here.
|
|
8
|
+
*
|
|
9
|
+
* `get_writer` is a low-level stream-writer escape hatch — see `@internal` note.
|
|
10
|
+
* Live event writes use the Loxtep stream data plane, not HTTP POST.
|
|
4
11
|
*/
|
|
12
|
+
import { DefinitionValidationError } from '../errors/validation.js';
|
|
13
|
+
import { StreamingError } from '../errors/streaming.js';
|
|
14
|
+
import { createQueueWriter } from '../rstreams/event-bridge.js';
|
|
15
|
+
import { resolveIngestionQueueName } from './flow-queue-resolve.js';
|
|
5
16
|
const WORKFLOWS_BASE = '/workflows/workflows';
|
|
6
17
|
const PROJECTS_BASE = '/workflows/projects';
|
|
7
18
|
function buildQueryString(params) {
|
|
@@ -14,9 +25,104 @@ function buildQueryString(params) {
|
|
|
14
25
|
const qs = search.toString();
|
|
15
26
|
return qs ? `?${qs}` : '';
|
|
16
27
|
}
|
|
17
|
-
|
|
28
|
+
function validateEventAgainstDefinition(event, definition) {
|
|
29
|
+
const errors = [];
|
|
30
|
+
const required = definition.required;
|
|
31
|
+
if (Array.isArray(required) &&
|
|
32
|
+
required.length > 0 &&
|
|
33
|
+
event !== null &&
|
|
34
|
+
typeof event === 'object') {
|
|
35
|
+
const obj = event;
|
|
36
|
+
for (const key of required) {
|
|
37
|
+
if (!(key in obj) || obj[key] === undefined) {
|
|
38
|
+
errors.push({ path: key, message: `Missing required field: ${key}` });
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return errors;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Determine whether an error is transient and should be retried.
|
|
46
|
+
* Transient: network errors, timeouts, throttling (429), 5xx responses.
|
|
47
|
+
* Non-transient: 4xx (except 429), auth failures — fail immediately.
|
|
48
|
+
*/
|
|
49
|
+
export function isTransientError(err) {
|
|
50
|
+
if (err === null || err === undefined)
|
|
51
|
+
return false;
|
|
52
|
+
// Check for status code on the error object (HTTP response errors)
|
|
53
|
+
const statusCode = typeof err.status_code === 'number'
|
|
54
|
+
? err.status_code
|
|
55
|
+
: typeof err.statusCode === 'number'
|
|
56
|
+
? err.statusCode
|
|
57
|
+
: typeof err.status === 'number'
|
|
58
|
+
? err.status
|
|
59
|
+
: undefined;
|
|
60
|
+
if (statusCode !== undefined) {
|
|
61
|
+
// 429 (throttling) is transient
|
|
62
|
+
if (statusCode === 429)
|
|
63
|
+
return true;
|
|
64
|
+
// 5xx responses are transient
|
|
65
|
+
if (statusCode >= 500 && statusCode < 600)
|
|
66
|
+
return true;
|
|
67
|
+
// Other 4xx are non-transient (auth failures, validation errors, etc.)
|
|
68
|
+
if (statusCode >= 400 && statusCode < 500)
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
// Check error code strings
|
|
72
|
+
const code = typeof err.code === 'string'
|
|
73
|
+
? err.code
|
|
74
|
+
: undefined;
|
|
75
|
+
if (code) {
|
|
76
|
+
const transientCodes = new Set([
|
|
77
|
+
'ECONNRESET',
|
|
78
|
+
'ECONNREFUSED',
|
|
79
|
+
'ENOTFOUND',
|
|
80
|
+
'ETIMEDOUT',
|
|
81
|
+
'EPIPE',
|
|
82
|
+
'EAI_AGAIN',
|
|
83
|
+
'RATE_LIMIT_EXCEEDED',
|
|
84
|
+
'RATE_LIMIT_ERROR',
|
|
85
|
+
'SERVICE_UNAVAILABLE',
|
|
86
|
+
'GATEWAY_TIMEOUT',
|
|
87
|
+
'INTERNAL_SERVER_ERROR',
|
|
88
|
+
]);
|
|
89
|
+
if (transientCodes.has(code))
|
|
90
|
+
return true;
|
|
91
|
+
// Auth-related codes are non-transient
|
|
92
|
+
const nonTransientCodes = new Set([
|
|
93
|
+
'AUTHENTICATION_ERROR',
|
|
94
|
+
'AUTHORIZATION_ERROR',
|
|
95
|
+
'VALIDATION_ERROR',
|
|
96
|
+
'NOT_FOUND',
|
|
97
|
+
]);
|
|
98
|
+
if (nonTransientCodes.has(code))
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
// Check error message for network-related keywords
|
|
102
|
+
const message = typeof err.message === 'string'
|
|
103
|
+
? err.message.toLowerCase()
|
|
104
|
+
: '';
|
|
105
|
+
if (message.includes('timeout') ||
|
|
106
|
+
message.includes('econnreset') ||
|
|
107
|
+
message.includes('econnrefused') ||
|
|
108
|
+
message.includes('network') ||
|
|
109
|
+
message.includes('socket hang up')) {
|
|
110
|
+
return true;
|
|
111
|
+
}
|
|
112
|
+
// Default: treat unknown errors as transient to allow retry
|
|
113
|
+
return true;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Sleep for the given number of milliseconds. Extracted for testability.
|
|
117
|
+
*/
|
|
118
|
+
export function sleep(ms) {
|
|
119
|
+
if (ms <= 0)
|
|
120
|
+
return Promise.resolve();
|
|
121
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
122
|
+
}
|
|
123
|
+
export function createWorkflowsApi(http, deps) {
|
|
18
124
|
const api = {
|
|
19
|
-
async
|
|
125
|
+
async list(filters) {
|
|
20
126
|
const params = {
|
|
21
127
|
project_id: filters.project_id,
|
|
22
128
|
page: filters.page ?? 1,
|
|
@@ -30,20 +136,98 @@ export function createWorkflowsApi(http) {
|
|
|
30
136
|
const res = await http.get(`${WORKFLOWS_BASE}${qs}`);
|
|
31
137
|
return res.data;
|
|
32
138
|
},
|
|
33
|
-
async
|
|
34
|
-
const
|
|
35
|
-
const
|
|
36
|
-
|
|
139
|
+
async get(id) {
|
|
140
|
+
const flowRes = await http.get(`${WORKFLOWS_BASE}/${encodeURIComponent(id)}`);
|
|
141
|
+
const flow = flowRes.data;
|
|
142
|
+
let nodes = [];
|
|
143
|
+
try {
|
|
144
|
+
const nodesRes = await http.get(`${WORKFLOWS_BASE}/${encodeURIComponent(id)}/nodes`);
|
|
145
|
+
const payload = nodesRes.data ?? nodesRes;
|
|
146
|
+
nodes = payload.items ?? [];
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
// Nodes endpoint may not exist or may 404; workflow still has node_count
|
|
150
|
+
}
|
|
151
|
+
return { ...flow, nodes };
|
|
37
152
|
},
|
|
38
|
-
async
|
|
153
|
+
async create(input) {
|
|
39
154
|
const res = await http.post(WORKFLOWS_BASE, input);
|
|
40
155
|
return res.data;
|
|
41
156
|
},
|
|
157
|
+
async get_graph(workflow_id, project_id) {
|
|
158
|
+
const qs = buildQueryString({ project_id });
|
|
159
|
+
const res = await http.get(`${WORKFLOWS_BASE}/${encodeURIComponent(workflow_id)}/graph${qs}`);
|
|
160
|
+
return res.data;
|
|
161
|
+
},
|
|
42
162
|
async deploy(input) {
|
|
43
163
|
const { project_id, instance_id, version_id, force_redeploy } = input;
|
|
44
164
|
const res = await http.post(`${PROJECTS_BASE}/${encodeURIComponent(project_id)}/deploy`, { instance_id, version_id, force_redeploy: force_redeploy ?? false });
|
|
45
165
|
return res.data;
|
|
46
166
|
},
|
|
167
|
+
async get_writer(workflow_id, options) {
|
|
168
|
+
// Resolve the stream runtime, source bot, and destination queue up front; the rstreams `load`
|
|
169
|
+
// stream (created inside createQueueWriter) owns buffering, batching, backoff, and checkpointing.
|
|
170
|
+
const rsdk = deps?.rsdk ?? (await deps?.get_rsdk?.());
|
|
171
|
+
if (!rsdk) {
|
|
172
|
+
throw new StreamingError('Stream bus configuration missing. Set LEO_* environment variables or add `streams` to ~/.loxtep/config.json. ' +
|
|
173
|
+
'Pass `streams` in LoxtepClientOptions, or ensure your instance stream environment is configured.', {
|
|
174
|
+
details: {
|
|
175
|
+
workflow_id,
|
|
176
|
+
hint: 'Run `loxtep init` to configure stream bus, or set LEO_* env vars from your instance.',
|
|
177
|
+
},
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
const botId = options?.bot_id;
|
|
181
|
+
if (!botId) {
|
|
182
|
+
throw new StreamingError('workflows.get_writer requires bot_id in options (stream writer identity on the bus).', { details: { workflow_id } });
|
|
183
|
+
}
|
|
184
|
+
let queueName = options?.output_queue_name;
|
|
185
|
+
if (!queueName && options?.environment_prefix && options?.project_id) {
|
|
186
|
+
const flowRes = await http.get(`${WORKFLOWS_BASE}/${encodeURIComponent(workflow_id)}`);
|
|
187
|
+
const flowData = flowRes && typeof flowRes === 'object' && 'data' in flowRes
|
|
188
|
+
? flowRes.data
|
|
189
|
+
: flowRes;
|
|
190
|
+
let nodes = [];
|
|
191
|
+
try {
|
|
192
|
+
const nodesRes = await http.get(`${WORKFLOWS_BASE}/${encodeURIComponent(workflow_id)}/nodes`);
|
|
193
|
+
const payload = nodesRes.data ?? nodesRes;
|
|
194
|
+
nodes = payload.items ?? [];
|
|
195
|
+
}
|
|
196
|
+
catch {
|
|
197
|
+
/* ignore */
|
|
198
|
+
}
|
|
199
|
+
const flowWithNodes = { ...flowData, nodes };
|
|
200
|
+
queueName = resolveIngestionQueueName(flowWithNodes, options.environment_prefix);
|
|
201
|
+
}
|
|
202
|
+
if (!queueName) {
|
|
203
|
+
throw new StreamingError('workflows.get_writer requires output_queue_name, or environment_prefix + project_id so the SDK can resolve the ingestion queue from the workflow.', { details: { workflow_id } });
|
|
204
|
+
}
|
|
205
|
+
const writer = createQueueWriter(rsdk, botId, queueName, () => new StreamingError('Cannot write to a closed writer. Create a new writer via workflows.get_writer().', { details: { workflow_id } }));
|
|
206
|
+
// Optional per-event definition validation wraps the passthrough writer.
|
|
207
|
+
const validate = options?.validate_definition === true && !!options?.definition;
|
|
208
|
+
if (!validate)
|
|
209
|
+
return writer;
|
|
210
|
+
const onError = options?.on_validation_error ?? 'reject';
|
|
211
|
+
return {
|
|
212
|
+
write(event, writeOptions) {
|
|
213
|
+
if (options?.definition) {
|
|
214
|
+
const errors = validateEventAgainstDefinition(event, options.definition);
|
|
215
|
+
if (errors.length > 0) {
|
|
216
|
+
if (onError === 'reject') {
|
|
217
|
+
throw new DefinitionValidationError('Event failed definition validation', options.definition_version ?? '', errors);
|
|
218
|
+
}
|
|
219
|
+
if (onError === 'warn') {
|
|
220
|
+
console.warn('[workflows writer] Definition validation failed:', errors);
|
|
221
|
+
}
|
|
222
|
+
if (onError === 'skip')
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
writer.write(event, writeOptions);
|
|
227
|
+
},
|
|
228
|
+
close: () => writer.close(),
|
|
229
|
+
};
|
|
230
|
+
},
|
|
47
231
|
};
|
|
48
232
|
return api;
|
|
49
233
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/client/workflows.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/client/workflows.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-workspace-context.d.ts","sourceRoot":"","sources":["../../src/codegen/load-workspace-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;;;;;;;;;;;GAYG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"load-workspace-context.d.ts","sourceRoot":"","sources":["../../src/codegen/load-workspace-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;;;;;;;;;;;GAYG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,CAAC,CAoF3B"}
|
|
@@ -26,15 +26,17 @@
|
|
|
26
26
|
*/
|
|
27
27
|
export async function loadWorkspaceContext(client, projectId) {
|
|
28
28
|
// Fetch all resource types concurrently for performance.
|
|
29
|
-
// Project-scoped resources (
|
|
29
|
+
// Project-scoped resources (workflows) use projectId directly.
|
|
30
30
|
// Org-scoped resources (data products, connectors, domains) fetch all available.
|
|
31
|
-
const [dataProductsResult, connectorsResult, domainsResult,
|
|
31
|
+
const [dataProductsResult, connectorsResult, domainsResult, workflowsResult,] = await Promise.all([
|
|
32
32
|
client.data_products.list({ page: 1, page_size: 1000 }),
|
|
33
33
|
client.connectors.list({ page: 1, page_size: 1000 }),
|
|
34
34
|
client.domains.list({ page: 1, page_size: 1000 }),
|
|
35
|
-
client.
|
|
36
|
-
client.workflows.listWorkflows({ project_id: projectId, page: 1, page_size: 1000 }),
|
|
35
|
+
client.workflows.list({ project_id: projectId, page: 1, page_size: 1000 }),
|
|
37
36
|
]);
|
|
37
|
+
// `flows` and `workflows` are the same backend entity; the WorkspaceContext
|
|
38
|
+
// keeps both collections for the generated artifact, sourced from one fetch.
|
|
39
|
+
const flowsResult = workflowsResult;
|
|
38
40
|
// Fetch queues from the observe endpoint (instance-level).
|
|
39
41
|
// The observe.status() returns bot/queue info for the configured instance.
|
|
40
42
|
let queuesRaw = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-workspace-context.js","sourceRoot":"","sources":["../../src/codegen/load-workspace-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAoB,EACpB,SAAiB;IAEjB,yDAAyD;IACzD
|
|
1
|
+
{"version":3,"file":"load-workspace-context.js","sourceRoot":"","sources":["../../src/codegen/load-workspace-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,7 +30,8 @@ export interface WorkspaceConfigResult {
|
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
32
32
|
* Load workspace-resolved configuration from `.loxtep/project.json` (local project)
|
|
33
|
-
* and
|
|
33
|
+
* and credentials — project-local `.loxtep/credentials.json` if present, else
|
|
34
|
+
* `~/.loxtep/credentials.json` (see {@link resolveCredentialsPath}).
|
|
34
35
|
*
|
|
35
36
|
* This does NOT check env vars or explicit config — it only resolves from files.
|
|
36
37
|
* The caller is responsible for merging with the correct precedence.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-config.d.ts","sourceRoot":"","sources":["../../src/config/workspace-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,4CAA4C;IAC5C,MAAM,EAAE,uBAAuB,CAAC;IAChC,sCAAsC;IACtC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,8CAA8C;IAC9C,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;
|
|
1
|
+
{"version":3,"file":"workspace-config.d.ts","sourceRoot":"","sources":["../../src/config/workspace-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,4CAA4C;IAC5C,MAAM,EAAE,uBAAuB,CAAC;IAChC,sCAAsC;IACtC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,8CAA8C;IAC9C,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,qBAAqB,CAkEvE;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAUD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,+BAA+B;IAC/B,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,CAAC,EAAE,oBAAoB,EAC/B,GAAG,CAAC,EAAE,MAAM,GACX,gBAAgB,CA0BlB"}
|
|
@@ -10,13 +10,12 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import { existsSync, readFileSync } from 'node:fs';
|
|
12
12
|
import { join } from 'node:path';
|
|
13
|
-
import { getConfigDir } from './paths.js';
|
|
14
13
|
import { findProjectDir, getProjectFilePath, PROJECT_DIR_NAME, PROJECT_FILE_NAME } from '../cli/project-context.js';
|
|
15
|
-
|
|
16
|
-
const CREDENTIALS_FILE_NAME = 'credentials.json';
|
|
14
|
+
import { resolveCredentialsPath } from '../cli/credentials.js';
|
|
17
15
|
/**
|
|
18
16
|
* Load workspace-resolved configuration from `.loxtep/project.json` (local project)
|
|
19
|
-
* and
|
|
17
|
+
* and credentials — project-local `.loxtep/credentials.json` if present, else
|
|
18
|
+
* `~/.loxtep/credentials.json` (see {@link resolveCredentialsPath}).
|
|
20
19
|
*
|
|
21
20
|
* This does NOT check env vars or explicit config — it only resolves from files.
|
|
22
21
|
* The caller is responsible for merging with the correct precedence.
|
|
@@ -59,8 +58,8 @@ export function loadWorkspaceConfig(cwd) {
|
|
|
59
58
|
const searchedPath = join(workDir, PROJECT_DIR_NAME, PROJECT_FILE_NAME);
|
|
60
59
|
missingFiles.push(searchedPath);
|
|
61
60
|
}
|
|
62
|
-
// 2. Resolve
|
|
63
|
-
const credentialsPath =
|
|
61
|
+
// 2. Resolve credentials.json — project-local first, else ~/.loxtep/credentials.json
|
|
62
|
+
const credentialsPath = resolveCredentialsPath(workDir).path;
|
|
64
63
|
if (existsSync(credentialsPath)) {
|
|
65
64
|
try {
|
|
66
65
|
const raw = readFileSync(credentialsPath, 'utf-8');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-config.js","sourceRoot":"","sources":["../../src/config/workspace-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"workspace-config.js","sourceRoot":"","sources":["../../src/config/workspace-config.ts"],"names":[],"mappings":"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"}
|
package/docs/getting-started.md
CHANGED
|
@@ -321,16 +321,4 @@ Now that you've written and read your first event, explore these resources:
|
|
|
321
321
|
| [Event Replay Cookbook](./event-replay-cookbook.md) | Patterns for replaying and reprocessing historical events |
|
|
322
322
|
| [MCP → SDK Mapping](./sdk-mcp-mapping.md) | How MCP tools map to SDK methods |
|
|
323
323
|
|
|
324
|
-
### Lower-level API
|
|
325
|
-
|
|
326
|
-
If you need explicit control over bot IDs, queue names, or stream configuration,
|
|
327
|
-
the `flows.get_writer` API is still available as a lower-level escape hatch:
|
|
328
|
-
|
|
329
|
-
```typescript
|
|
330
|
-
const writer = await client.flows.get_writer('<flow_id>', {
|
|
331
|
-
bot_id: 'my-custom-bot',
|
|
332
|
-
output_queue_name: 'specific-queue-name',
|
|
333
|
-
});
|
|
334
|
-
```
|
|
335
|
-
|
|
336
324
|
See the [SDK README](../README.md) for the full API surface.
|
package/docs/quick-reference.md
CHANGED
|
@@ -70,18 +70,6 @@ writer.write({"id": "evt-2", "payload": {"key": "value"}})
|
|
|
70
70
|
await writer.close() # flushes all buffered events
|
|
71
71
|
```
|
|
72
72
|
|
|
73
|
-
### Lower-level escape hatch (explicit control)
|
|
74
|
-
|
|
75
|
-
```typescript
|
|
76
|
-
// Only use when you need manual bot_id/queue control
|
|
77
|
-
const writer = client.flows.get_writer('<flow_id>', {
|
|
78
|
-
bot_id: 'my-bot',
|
|
79
|
-
output_queue_name: 'raw-events',
|
|
80
|
-
});
|
|
81
|
-
writer.write({ id: 'evt-1', payload: { key: 'value' } });
|
|
82
|
-
await writer.close();
|
|
83
|
-
```
|
|
84
|
-
|
|
85
73
|
---
|
|
86
74
|
|
|
87
75
|
## Reading Events
|
|
@@ -108,7 +96,7 @@ for event in reader:
|
|
|
108
96
|
print(event)
|
|
109
97
|
```
|
|
110
98
|
|
|
111
|
-
###
|
|
99
|
+
### Advanced: manual queue reader (`queues` namespace)
|
|
112
100
|
|
|
113
101
|
```typescript
|
|
114
102
|
const reader = await client.queues.open_reader({
|
|
@@ -188,20 +176,20 @@ product = client.data_products.get("<data_product_id>")
|
|
|
188
176
|
|
|
189
177
|
---
|
|
190
178
|
|
|
191
|
-
##
|
|
179
|
+
## Workflows and Connectors
|
|
192
180
|
|
|
193
|
-
### List
|
|
181
|
+
### List Workflows
|
|
194
182
|
|
|
195
183
|
#### Node.js
|
|
196
184
|
|
|
197
185
|
```typescript
|
|
198
|
-
const
|
|
186
|
+
const workflows = await client.workflows.list({ project_id: '<project_id>' });
|
|
199
187
|
```
|
|
200
188
|
|
|
201
189
|
#### Python
|
|
202
190
|
|
|
203
191
|
```python
|
|
204
|
-
|
|
192
|
+
workflows = client.workflows.list(project_id="<project_id>")
|
|
205
193
|
```
|
|
206
194
|
|
|
207
195
|
### Get Connector
|
|
@@ -227,13 +215,12 @@ connector = client.connectors.get("<connector_id>")
|
|
|
227
215
|
| **Init client** | `new LoxtepClient(options)` | `LoxtepClient(**options)` |
|
|
228
216
|
| **Write events** | `await client.data_products.get_writer('name')` → `writer.write(evt)` → `writer.close()` | Same API |
|
|
229
217
|
| **Read events** | `await client.data_products.get_reader('name')` → `for await (const e of reader)` | Same API |
|
|
230
|
-
| **Write (low-level)** | `client.flows.get_writer(flow_id, { bot_id, output_queue_name })` | Same API |
|
|
231
218
|
| **Read (low-level)** | `client.queues.open_reader({ bot_id, queue_name })` → `reader.read()` | Same API |
|
|
232
219
|
| **Stream live** | `client.data_products.stream(id, opts)` | Same API |
|
|
233
220
|
| **Replay history** | `client.data_products.replay(id, opts)` | Same API |
|
|
234
221
|
| **List data products** | `client.data_products.list()` | Same API |
|
|
235
222
|
| **Get data product** | `client.data_products.get(id)` | Same API |
|
|
236
|
-
| **List
|
|
223
|
+
| **List workflows** | `client.workflows.list({ project_id })` | Same API |
|
|
237
224
|
| **Get connector** | `client.connectors.get(id)` | Same API |
|
|
238
225
|
| **Invalidate cache** | `client.data_products.invalidate_cache('name')` | Same API |
|
|
239
226
|
|
package/docs/sdk-mcp-mapping.md
CHANGED
|
@@ -4,14 +4,21 @@ This is a **guide for agents**, not an exhaustive OpenAPI listing. MCP stays on
|
|
|
4
4
|
**HTTP**; the SDK adds **typed REST** and the **stream data plane** for live
|
|
5
5
|
I/O.
|
|
6
6
|
|
|
7
|
-
| Area | MCP (
|
|
8
|
-
| ------------------------ |
|
|
9
|
-
| Catalog / discovery | `
|
|
10
|
-
| Data products |
|
|
11
|
-
|
|
|
12
|
-
|
|
|
13
|
-
|
|
|
14
|
-
|
|
|
7
|
+
| Area | MCP facade (tool) | SDK |
|
|
8
|
+
| ------------------------ | ------------------------------------------ | ------------------------------------------------------------------------ |
|
|
9
|
+
| Catalog / discovery | `loxtep_catalog` (search_catalog, get_evidence, …) | `client.discovery.*`, `client.catalog.search` |
|
|
10
|
+
| Data products | `loxtep_data_products` | `client.data_products` (get, list, create, query, stream, replay, …) |
|
|
11
|
+
| Workflows | `loxtep_workflows` | `client.workflows`, `client.projects` |
|
|
12
|
+
| Triggers | `loxtep_triggers` (was `loxtep_connections`) | `client.triggers` |
|
|
13
|
+
| Connectors | `loxtep_connectors` | `client.connectors` |
|
|
14
|
+
| Targets (delivery) | `loxtep_data_products` (create_target / list_targets) | `client.targets` |
|
|
15
|
+
| Org / instances | `loxtep_instances` | `client.instances`, config `instance_id` |
|
|
16
|
+
| Live queue I/O | Not a substitute for the stream runtime | `client.queues`, `data_products.get_writer`/`get_reader` |
|
|
17
|
+
|
|
18
|
+
Vocabulary matches the SDK: MCP uses `loxtep_triggers` (backend: connections) and
|
|
19
|
+
target operations (backend: consumptions). The prior names — `loxtep_connections`,
|
|
20
|
+
`create_delivery_interface`/`create_consumption` — remain as **deprecated aliases**,
|
|
21
|
+
so older agent configs keep working.
|
|
15
22
|
|
|
16
23
|
When unsure: **MCP for provisioning and agent tool calls**; **SDK for runtime**
|
|
17
24
|
services running in your infrastructure or CI.
|
package/docs/sdk-pairing.md
CHANGED
|
@@ -5,18 +5,18 @@
|
|
|
5
5
|
Use one base URL everywhere:
|
|
6
6
|
|
|
7
7
|
- **REST / SDK:** `LOXTEP_API_URL` or `config.json` → `api_url`
|
|
8
|
-
- **
|
|
8
|
+
- **Loxtep MCP:** hosted only — connect with a URL and OAuth 2.1 (PKCE), not a local login
|
|
9
9
|
|
|
10
10
|
The CLI and SDK resolve tokens in this order: **`LOXTEP_AUTH_TOKEN`** →
|
|
11
|
-
|
|
12
|
-
`
|
|
13
|
-
|
|
11
|
+
project-local **`.loxtep/credentials.json`** → **`~/.loxtep/credentials.json`**
|
|
12
|
+
(written by `loxtep login`). MCP auth is separate — it's a hosted server, so it
|
|
13
|
+
authenticates via its own OAuth flow in the MCP client, not this file.
|
|
14
14
|
|
|
15
15
|
## When to use what
|
|
16
16
|
|
|
17
17
|
| Job | Tool |
|
|
18
18
|
| --- | ---- |
|
|
19
|
-
| Provision org resources, run catalog/dataproduct MCP tools, IDE agent calls | **
|
|
19
|
+
| Provision org resources, run catalog/dataproduct MCP tools, IDE agent calls | **Loxtep MCP** (hosted; connect via URL + OAuth) |
|
|
20
20
|
| Typed REST from Node services, scripts, CI | **`@loxtep/sdk`** (`LoxtepClient`) |
|
|
21
21
|
| Quick operator commands, token bootstrap | **`loxtep` CLI** (ships with the SDK) |
|
|
22
22
|
| **Live** queue produce/consume | **SDK** with stream config |
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loxtep/sdk",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Loxtep SDK for Node.js — the Enterprise Context Layer: data products,
|
|
3
|
+
"version": "0.6.0",
|
|
4
|
+
"description": "Loxtep SDK for Node.js — the Enterprise Context Layer: data products, workflows, projects, queues, and machine-usable context for AI",
|
|
5
5
|
"author": "Loxtep <engineering@loxtep.io>",
|
|
6
6
|
"homepage": "https://loxtep.io",
|
|
7
7
|
"repository": {
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CLI: loxtep connections list | connections get <id> | connections create ... | connections test <id>
|
|
3
|
-
*/
|
|
4
|
-
export interface ConnectionsCmdOptions {
|
|
5
|
-
configFilePath?: string;
|
|
6
|
-
credentialsPath?: string;
|
|
7
|
-
customerMcpPath?: string;
|
|
8
|
-
}
|
|
9
|
-
export declare function runConnectionsList(options?: ConnectionsCmdOptions): Promise<void>;
|
|
10
|
-
export declare function runConnectionsGet(connectionId: string, options?: ConnectionsCmdOptions): Promise<void>;
|
|
11
|
-
export declare function runConnectionsCreate(params: {
|
|
12
|
-
name?: string;
|
|
13
|
-
type?: string;
|
|
14
|
-
key?: string;
|
|
15
|
-
data?: string;
|
|
16
|
-
configuration?: Record<string, unknown>;
|
|
17
|
-
}, options?: ConnectionsCmdOptions): Promise<void>;
|
|
18
|
-
export declare function runConnectionsTest(connectionId: string, options?: ConnectionsCmdOptions): Promise<void>;
|
|
19
|
-
//# sourceMappingURL=connections-cmd.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connections-cmd.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/connections-cmd.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,WAAW,qBAAqB;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAsB,kBAAkB,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAI3F;AAED,wBAAsB,iBAAiB,CACrC,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE;IACN,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC,EACD,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,IAAI,CAAC,CAkBf;AAED,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,IAAI,CAAC,CAIf"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connections-cmd.js","sourceRoot":"","sources":["../../../src/cli/commands/connections-cmd.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAQ3D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,UAAiC,EAAE;IAC1E,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,YAAoB,EACpB,UAAiC,EAAE;IAEnC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAMC,EACD,UAAiC,EAAE;IAEnC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC;IAClC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IAC5C,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QACzD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;QAC3C,IAAI;QACJ,IAAI,EAAE,IAA+C;QACrD,GAAG;QACH,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI;QACzB,aAAa,EAAE,MAAM,CAAC,aAAa;KACpC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,YAAoB,EACpB,UAAiC,EAAE;IAEnC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CLI: loxtep flows list --project-id <id> | flows get <id> | flows create ...
|
|
3
|
-
*/
|
|
4
|
-
export interface FlowsCmdOptions {
|
|
5
|
-
configFilePath?: string;
|
|
6
|
-
credentialsPath?: string;
|
|
7
|
-
customerMcpPath?: string;
|
|
8
|
-
}
|
|
9
|
-
export declare function runFlowsList(options?: FlowsCmdOptions & {
|
|
10
|
-
project_id?: string;
|
|
11
|
-
}): Promise<void>;
|
|
12
|
-
export declare function runFlowsGet(flowId: string, options?: FlowsCmdOptions): Promise<void>;
|
|
13
|
-
export declare function runFlowsCreate(params: {
|
|
14
|
-
name: string;
|
|
15
|
-
project_id: string;
|
|
16
|
-
template_id?: string;
|
|
17
|
-
description?: string;
|
|
18
|
-
}, options?: FlowsCmdOptions): Promise<void>;
|
|
19
|
-
//# sourceMappingURL=flows-cmd.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"flows-cmd.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/flows-cmd.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,WAAW,eAAe;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAsB,YAAY,CAChC,OAAO,GAAE,eAAe,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GACtD,OAAO,CAAC,IAAI,CAAC,CAYf;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAI9F;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EACxF,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAef"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CLI: loxtep flows list --project-id <id> | flows get <id> | flows create ...
|
|
3
|
-
*/
|
|
4
|
-
import { requireCliClient } from '../create-cli-client.js';
|
|
5
|
-
export async function runFlowsList(options = {}) {
|
|
6
|
-
const { client, config } = await requireCliClient(options);
|
|
7
|
-
const projectId = options.project_id ?? config.project_id;
|
|
8
|
-
if (!projectId) {
|
|
9
|
-
console.error('Missing project_id. Use: loxtep flows list --project-id <id> or loxtep config set project_id <id>');
|
|
10
|
-
process.exitCode = 1;
|
|
11
|
-
return;
|
|
12
|
-
}
|
|
13
|
-
const result = await client.flows.list({ project_id: projectId, page_size: 50 });
|
|
14
|
-
console.log(JSON.stringify(result, null, 2));
|
|
15
|
-
}
|
|
16
|
-
export async function runFlowsGet(flowId, options = {}) {
|
|
17
|
-
const { client } = await requireCliClient(options);
|
|
18
|
-
const flow = await client.flows.get(flowId);
|
|
19
|
-
console.log(JSON.stringify(flow, null, 2));
|
|
20
|
-
}
|
|
21
|
-
export async function runFlowsCreate(params, options = {}) {
|
|
22
|
-
const { client, config } = await requireCliClient(options);
|
|
23
|
-
const projectId = params.project_id ?? config.project_id;
|
|
24
|
-
if (!projectId) {
|
|
25
|
-
console.error('Missing project_id. Use: loxtep flows create --name "..." --project-id <id>');
|
|
26
|
-
process.exitCode = 1;
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
const flow = await client.flows.create({
|
|
30
|
-
project_id: projectId,
|
|
31
|
-
name: params.name,
|
|
32
|
-
description: params.description,
|
|
33
|
-
template_id: params.template_id,
|
|
34
|
-
});
|
|
35
|
-
console.log(JSON.stringify(flow, null, 2));
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=flows-cmd.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"flows-cmd.js","sourceRoot":"","sources":["../../../src/cli/commands/flows-cmd.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAQ3D,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,UAAqD,EAAE;IAEvD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC;IAC1D,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,mGAAmG,CACpG,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAc,EAAE,UAA2B,EAAE;IAC7E,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAwF,EACxF,UAA2B,EAAE;IAE7B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC;IACzD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,6EAA6E,CAAC,CAAC;QAC7F,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QACrC,UAAU,EAAE,SAAS;QACrB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC"}
|