@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.
Files changed (134) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/README.md +77 -91
  3. package/dist/authoring/toolbox.d.ts +7 -7
  4. package/dist/authoring/toolbox.d.ts.map +1 -1
  5. package/dist/authoring/toolbox.js +5 -5
  6. package/dist/authoring/toolbox.js.map +1 -1
  7. package/dist/cli/auth-resolve.d.ts +4 -1
  8. package/dist/cli/auth-resolve.d.ts.map +1 -1
  9. package/dist/cli/auth-resolve.js +5 -3
  10. package/dist/cli/auth-resolve.js.map +1 -1
  11. package/dist/cli/commands/deploy-cmd.js +1 -1
  12. package/dist/cli/commands/deploy-cmd.js.map +1 -1
  13. package/dist/cli/commands/login.d.ts +10 -1
  14. package/dist/cli/commands/login.d.ts.map +1 -1
  15. package/dist/cli/commands/login.js +33 -5
  16. package/dist/cli/commands/login.js.map +1 -1
  17. package/dist/cli/commands/logout.d.ts +12 -2
  18. package/dist/cli/commands/logout.d.ts.map +1 -1
  19. package/dist/cli/commands/logout.js +29 -5
  20. package/dist/cli/commands/logout.js.map +1 -1
  21. package/dist/cli/commands/triggers-cmd.d.ts +19 -0
  22. package/dist/cli/commands/triggers-cmd.d.ts.map +1 -0
  23. package/dist/cli/commands/{connections-cmd.js → triggers-cmd.js} +12 -12
  24. package/dist/cli/commands/triggers-cmd.js.map +1 -0
  25. package/dist/cli/commands/whoami.js +1 -1
  26. package/dist/cli/commands/whoami.js.map +1 -1
  27. package/dist/cli/commands/workflows-cmd.d.ts +8 -1
  28. package/dist/cli/commands/workflows-cmd.d.ts.map +1 -1
  29. package/dist/cli/commands/workflows-cmd.js +23 -2
  30. package/dist/cli/commands/workflows-cmd.js.map +1 -1
  31. package/dist/cli/create-cli-client.d.ts +2 -0
  32. package/dist/cli/create-cli-client.d.ts.map +1 -1
  33. package/dist/cli/create-cli-client.js +11 -6
  34. package/dist/cli/create-cli-client.js.map +1 -1
  35. package/dist/cli/credentials.d.ts +38 -4
  36. package/dist/cli/credentials.d.ts.map +1 -1
  37. package/dist/cli/credentials.js +69 -4
  38. package/dist/cli/credentials.js.map +1 -1
  39. package/dist/cli/index.d.ts +1 -1
  40. package/dist/cli/index.js +37 -39
  41. package/dist/cli/index.js.map +1 -1
  42. package/dist/client/approvals-types.d.ts +47 -0
  43. package/dist/client/approvals-types.d.ts.map +1 -0
  44. package/dist/client/approvals-types.js +6 -0
  45. package/dist/client/approvals-types.js.map +1 -0
  46. package/dist/client/approvals.d.ts +18 -0
  47. package/dist/client/approvals.d.ts.map +1 -0
  48. package/dist/client/approvals.js +52 -0
  49. package/dist/client/approvals.js.map +1 -0
  50. package/dist/client/connectors.d.ts +1 -1
  51. package/dist/client/connectors.d.ts.map +1 -1
  52. package/dist/client/connectors.js +1 -1
  53. package/dist/client/connectors.js.map +1 -1
  54. package/dist/client/data-products-types.d.ts +1 -1
  55. package/dist/client/data-products-types.d.ts.map +1 -1
  56. package/dist/client/data-products.d.ts +1 -1
  57. package/dist/client/data-products.d.ts.map +1 -1
  58. package/dist/client/data-products.js +1 -1
  59. package/dist/client/data-products.js.map +1 -1
  60. package/dist/client/discovery.d.ts +4 -4
  61. package/dist/client/discovery.d.ts.map +1 -1
  62. package/dist/client/discovery.js +4 -4
  63. package/dist/client/discovery.js.map +1 -1
  64. package/dist/client/index.d.ts +5 -3
  65. package/dist/client/index.d.ts.map +1 -1
  66. package/dist/client/index.js +1 -0
  67. package/dist/client/index.js.map +1 -1
  68. package/dist/client/loxtep-client.d.ts +36 -21
  69. package/dist/client/loxtep-client.d.ts.map +1 -1
  70. package/dist/client/loxtep-client.js +42 -25
  71. package/dist/client/loxtep-client.js.map +1 -1
  72. package/dist/client/projects.d.ts +1 -1
  73. package/dist/client/projects.d.ts.map +1 -1
  74. package/dist/client/projects.js +1 -1
  75. package/dist/client/projects.js.map +1 -1
  76. package/dist/client/{delivery-types.d.ts → target-types.d.ts} +18 -18
  77. package/dist/client/target-types.d.ts.map +1 -0
  78. package/dist/client/target-types.js +10 -0
  79. package/dist/client/target-types.js.map +1 -0
  80. package/dist/client/targets.d.ts +21 -0
  81. package/dist/client/targets.d.ts.map +1 -0
  82. package/dist/client/{delivery.js → targets.js} +31 -33
  83. package/dist/client/targets.js.map +1 -0
  84. package/dist/client/thesaurus.d.ts +2 -2
  85. package/dist/client/thesaurus.d.ts.map +1 -1
  86. package/dist/client/thesaurus.js +4 -4
  87. package/dist/client/thesaurus.js.map +1 -1
  88. package/dist/client/{connection-types.d.ts → trigger-types.d.ts} +22 -21
  89. package/dist/client/trigger-types.d.ts.map +1 -0
  90. package/dist/client/trigger-types.js +19 -0
  91. package/dist/client/trigger-types.js.map +1 -0
  92. package/dist/client/triggers.d.ts +19 -0
  93. package/dist/client/triggers.d.ts.map +1 -0
  94. package/dist/client/{connections.js → triggers.js} +12 -11
  95. package/dist/client/triggers.js.map +1 -0
  96. package/dist/client/workflows.d.ts +38 -6
  97. package/dist/client/workflows.d.ts.map +1 -1
  98. package/dist/client/workflows.js +192 -8
  99. package/dist/client/workflows.js.map +1 -1
  100. package/dist/codegen/load-workspace-context.d.ts.map +1 -1
  101. package/dist/codegen/load-workspace-context.js +6 -4
  102. package/dist/codegen/load-workspace-context.js.map +1 -1
  103. package/dist/config/workspace-config.d.ts +2 -1
  104. package/dist/config/workspace-config.d.ts.map +1 -1
  105. package/dist/config/workspace-config.js +5 -6
  106. package/dist/config/workspace-config.js.map +1 -1
  107. package/docs/getting-started.md +0 -12
  108. package/docs/quick-reference.md +6 -19
  109. package/docs/sdk-mcp-mapping.md +15 -8
  110. package/docs/sdk-pairing.md +5 -5
  111. package/package.json +2 -2
  112. package/dist/cli/commands/connections-cmd.d.ts +0 -19
  113. package/dist/cli/commands/connections-cmd.d.ts.map +0 -1
  114. package/dist/cli/commands/connections-cmd.js.map +0 -1
  115. package/dist/cli/commands/flows-cmd.d.ts +0 -19
  116. package/dist/cli/commands/flows-cmd.d.ts.map +0 -1
  117. package/dist/cli/commands/flows-cmd.js +0 -37
  118. package/dist/cli/commands/flows-cmd.js.map +0 -1
  119. package/dist/client/connection-types.d.ts.map +0 -1
  120. package/dist/client/connection-types.js +0 -18
  121. package/dist/client/connection-types.js.map +0 -1
  122. package/dist/client/connections.d.ts +0 -18
  123. package/dist/client/connections.d.ts.map +0 -1
  124. package/dist/client/connections.js.map +0 -1
  125. package/dist/client/delivery-types.d.ts.map +0 -1
  126. package/dist/client/delivery-types.js +0 -10
  127. package/dist/client/delivery-types.js.map +0 -1
  128. package/dist/client/delivery.d.ts +0 -23
  129. package/dist/client/delivery.d.ts.map +0 -1
  130. package/dist/client/delivery.js.map +0 -1
  131. package/dist/client/flows.d.ts +0 -33
  132. package/dist/client/flows.d.ts.map +0 -1
  133. package/dist/client/flows.js +0 -218
  134. package/dist/client/flows.js.map +0 -1
@@ -1,7 +1,18 @@
1
1
  /**
2
- * Workflows API: listWorkflows, getWorkflowGraph, createWorkflow, deploy.
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
- export function createWorkflowsApi(http) {
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 listWorkflows(filters) {
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 getWorkflowGraph(workflow_id, project_id) {
34
- const qs = buildQueryString({ project_id });
35
- const res = await http.get(`${WORKFLOWS_BASE}/${encodeURIComponent(workflow_id)}/graph${qs}`);
36
- return res.data;
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 createWorkflow(input) {
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;;;GAGG;AAaH,MAAM,cAAc,GAAG,sBAAsB,CAAC;AAC9C,MAAM,aAAa,GAAG,qBAAqB,CAAC;AAE5C,SAAS,gBAAgB,CAAC,MAA6D;IACrF,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5C,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI;YAAE,SAAS;QAC5C,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC7B,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5B,CAAC;AAYD,MAAM,UAAU,kBAAkB,CAAC,IAAsB;IACvD,MAAM,GAAG,GAAiB;QACxB,KAAK,CAAC,aAAa,CAAC,OAA6B;YAC/C,MAAM,MAAM,GAAgD;gBAC1D,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC;gBACvB,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,GAAG;aACpC,CAAC;YACF,IAAI,OAAO,CAAC,MAAM;gBAAE,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YACnD,IAAI,OAAO,CAAC,MAAM;gBAAE,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YACnD,MAAM,EAAE,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAwB,GAAG,cAAc,GAAG,EAAE,EAAE,CAAC,CAAC;YAC5E,OAAO,GAAG,CAAC,IAAI,CAAC;QAClB,CAAC;QAED,KAAK,CAAC,gBAAgB,CACpB,WAAmB,EACnB,UAAkB;YAElB,MAAM,EAAE,GAAG,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;YAC5C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CACxB,GAAG,cAAc,IAAI,kBAAkB,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,CAClE,CAAC;YACF,OAAO,GAAG,CAAC,IAAI,CAAC;QAClB,CAAC;QAED,KAAK,CAAC,cAAc,CAAC,KAA0B;YAC7C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAgC,cAAc,EAAE,KAAK,CAAC,CAAC;YAClF,OAAO,GAAG,CAAC,IAAI,CAAC;QAClB,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,KAAkB;YAC7B,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;YACtE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CACzB,GAAG,aAAa,IAAI,kBAAkB,CAAC,UAAU,CAAC,SAAS,EAC3D,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,IAAI,KAAK,EAAE,CACrE,CAAC;YACF,OAAO,GAAG,CAAC,IAAI,CAAC;QAClB,CAAC;KACF,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC"}
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,CAmF3B"}
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 (flows, workflows) use projectId directly.
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, flowsResult, workflowsResult,] = await Promise.all([
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.flows.list({ project_id: projectId, page: 1, page_size: 1000 }),
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":"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"}
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 `~/.loxtep/credentials.json` (user credentials).
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;AAKD;;;;;;;;;GASG;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"}
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
- /** Credentials file name within `~/.loxtep/`. */
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 `~/.loxtep/credentials.json` (user credentials).
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 ~/.loxtep/credentials.json (user-level credentials)
63
- const credentialsPath = join(getConfigDir(), CREDENTIALS_FILE_NAME);
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":"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"}
1
+ {"version":3,"file":"workspace-config.js","sourceRoot":"","sources":["../../src/config/workspace-config.ts"],"names":[],"mappings":"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"}
@@ -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.
@@ -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
- ### Lower-level escape hatch (explicit control)
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
- ## Flows and Connectors
179
+ ## Workflows and Connectors
192
180
 
193
- ### List Flows
181
+ ### List Workflows
194
182
 
195
183
  #### Node.js
196
184
 
197
185
  ```typescript
198
- const flows = await client.flows.list();
186
+ const workflows = await client.workflows.list({ project_id: '<project_id>' });
199
187
  ```
200
188
 
201
189
  #### Python
202
190
 
203
191
  ```python
204
- flows = client.flows.list()
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 flows** | `client.flows.list()` | Same API |
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
 
@@ -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 (typical) | SDK |
8
- | ------------------------ | ----------------------------------------- | ------------------------------------------------------------------------ |
9
- | Catalog / discovery | `POST /ai/mcp/tools/call` discovery tools | `client.discovery.*`, `client.catalog.search` |
10
- | Data products | MCP dataproduct tools | `client.data_products` (get, list, create, query, stream, replay, …) |
11
- | Flows / workflows | MCP / Studio workflows | `client.flows`, `client.workflows`, `client.projects` |
12
- | Connections / connectors | MCP connectors | `client.connections`, `client.connectors` |
13
- | Org / instances | MCP org / instances | `client.instances.list()`, config `instance_id` |
14
- | Live queue I/O | Not a substitute for the stream runtime | `client.queues`, `client.flows.get_writer`, `data_products.get_writer` |
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.
@@ -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
- - **Customer MCP / browser login:** same base URL in credentials
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
- **`~/.loxtep/credentials.json`** (shared: `loxtep login` and
12
- `npx @loxtep/customer-mcp-server login`). You should not need two logins for the
13
- same machine if you use one file-based flow.
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 | **Customer MCP** (HTTP tools against the platform) |
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.0",
4
- "description": "Loxtep SDK for Node.js — the Enterprise Context Layer: data products, flows, projects, queues, and machine-usable context for AI",
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"}