@loxtep/sdk 0.7.15 → 0.7.17

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 (56) hide show
  1. package/CHANGELOG.md +31 -3
  2. package/README.md +19 -11
  3. package/dist/cli/cli-list-output.d.ts +10 -3
  4. package/dist/cli/cli-list-output.d.ts.map +1 -1
  5. package/dist/cli/cli-list-output.js +12 -5
  6. package/dist/cli/cli-list-output.js.map +1 -1
  7. package/dist/cli/commands/activity-cmd.d.ts.map +1 -1
  8. package/dist/cli/commands/activity-cmd.js +1 -4
  9. package/dist/cli/commands/activity-cmd.js.map +1 -1
  10. package/dist/cli/commands/bundle-cmd.d.ts +15 -0
  11. package/dist/cli/commands/bundle-cmd.d.ts.map +1 -0
  12. package/dist/cli/commands/bundle-cmd.js +44 -0
  13. package/dist/cli/commands/bundle-cmd.js.map +1 -0
  14. package/dist/cli/commands/data-contracts-cmd.js +2 -2
  15. package/dist/cli/commands/data-products-cmd.js +2 -2
  16. package/dist/cli/commands/domains-cmd.js +2 -2
  17. package/dist/cli/commands/improvements-cmd.d.ts.map +1 -1
  18. package/dist/cli/commands/improvements-cmd.js +1 -4
  19. package/dist/cli/commands/improvements-cmd.js.map +1 -1
  20. package/dist/cli/commands/ingest-cmd.d.ts +20 -0
  21. package/dist/cli/commands/ingest-cmd.d.ts.map +1 -0
  22. package/dist/cli/commands/ingest-cmd.js +95 -0
  23. package/dist/cli/commands/ingest-cmd.js.map +1 -0
  24. package/dist/cli/commands/projects-cmd.js +2 -2
  25. package/dist/cli/commands/standards-cmd.js +2 -2
  26. package/dist/cli/commands/triggers-cmd.js +2 -2
  27. package/dist/cli/commands/workflows-cmd.js +2 -2
  28. package/dist/cli/help.d.ts.map +1 -1
  29. package/dist/cli/help.js +10 -1
  30. package/dist/cli/help.js.map +1 -1
  31. package/dist/cli/index.js +32 -0
  32. package/dist/cli/index.js.map +1 -1
  33. package/dist/client/index.d.ts +1 -1
  34. package/dist/client/index.d.ts.map +1 -1
  35. package/dist/client/index.js.map +1 -1
  36. package/dist/client/workflows-types.d.ts +28 -0
  37. package/dist/client/workflows-types.d.ts.map +1 -1
  38. package/dist/client/workflows.d.ts +2 -1
  39. package/dist/client/workflows.d.ts.map +1 -1
  40. package/dist/client/workflows.js +7 -0
  41. package/dist/client/workflows.js.map +1 -1
  42. package/dist/index.d.ts +2 -0
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +1 -0
  45. package/dist/index.js.map +1 -1
  46. package/dist/lib/sdk-ingest-bundle.d.ts +24 -0
  47. package/dist/lib/sdk-ingest-bundle.d.ts.map +1 -0
  48. package/dist/lib/sdk-ingest-bundle.js +73 -0
  49. package/dist/lib/sdk-ingest-bundle.js.map +1 -0
  50. package/docs/code-first-cli.md +3 -3
  51. package/docs/examples/generate-ingest-bundle.mjs +133 -0
  52. package/docs/examples/write-events.mjs +54 -0
  53. package/docs/getting-started.md +46 -25
  54. package/docs/quick-reference.md +18 -4
  55. package/docs/sdk-first-ingest.md +304 -0
  56. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -6,6 +6,35 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to
7
7
  [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
8
8
 
9
+ ## [0.7.17] - 2026-07-23
10
+
11
+ ### Added
12
+
13
+ - **`workflows.save_workflow_bundle(project_id, { files, dry_run? })`** — HTTP
14
+ wrapper for `POST /workflows/projects/{project_id}/workflow-bundle` (same
15
+ bundle shape as agent `save_workflow_bundle`; requires platform workflows MS
16
+ with the new endpoint deployed).
17
+ - **`buildSdkIngestBundle()`** — builds SDK-ingest topology (SDK connector
18
+ connection node → source data product) for programmatic or CLI provisioning.
19
+ - **CLI `loxtep ingest provision`** — create SDK connector, save workflow
20
+ bundle, and deploy to the attached instance (`--dry-run`, `--no-deploy`,
21
+ `--name`, `--domain-id`).
22
+ - **CLI `loxtep bundle save`** — persist a workflow bundle JSON file
23
+ (default `.loxtep/sdk-ingest-bundle.json`; supports `--dry-run`).
24
+ - **Docs** — [SDK-first ingest](./docs/sdk-first-ingest.md), example scripts
25
+ (`generate-ingest-bundle.mjs`, `write-events.mjs`), and Getting Started updates
26
+ for the MCP-free greenfield path.
27
+
28
+ ## [0.7.16] - 2026-07-23
29
+
30
+ ### Changed
31
+
32
+ - **CLI `list` stdout** is now a bare JSON **array** of summary rows (same as
33
+ `instances list`), not `{ items, pagination }`. Pagination and cursor metadata
34
+ remain in the raw API response, visible with `--debug` or `LOXTEP_DEBUG=1`.
35
+ Affected: `projects`, `domains`, `data-products`, `workflows`, `triggers`,
36
+ `standards`, `data-contracts`, `activity`, and `improvements`.
37
+
9
38
  ## [0.7.15] - 2026-07-23
10
39
 
11
40
  ### Changed
@@ -14,9 +43,8 @@ and this project adheres to
14
43
  other fields needed to pick resources or configure workflows) instead of full
15
44
  API records. Affected: `domains`, `data-products`, `workflows`, `triggers`,
16
45
  `standards`, `data-contracts`, `improvements`, and `activity` (plus existing
17
- `instances list`). Pagination/cursor metadata is preserved where the API
18
- returns it. Use `--debug` or `LOXTEP_DEBUG=1` to dump the raw API payload to
19
- stderr.
46
+ `instances list`). Use `--debug` or `LOXTEP_DEBUG=1` to dump the raw API payload to
47
+ stderr. *(0.7.16: stdout is a bare array; pagination only in debug output.)*
20
48
  - **`loxtep projects list | get <id>`** — discover project UUIDs in your org.
21
49
  - **Getting Started** — documents what a project is, where `project_id` comes
22
50
  from (`init` / `config list`), and that `workflows list` uses the workspace
package/README.md CHANGED
@@ -101,18 +101,26 @@ Run these in an **empty directory** you want to turn into a Loxtep workspace.
101
101
  Not in a scaffolded folder? Run `pnpm exec loxtep projects list` first, then
102
102
  `workflows list --project-id <uuid>`.
103
103
 
104
- A brand-new org may have **no data products yet** — that's expected. Create
105
- and deploy workflows (below, or via MCP/UI) before calling `get_writer`.
104
+ 6. **Provision your first source data product (SDK ingest)**
106
105
 
107
- 7. **Author, test, and deploy** (when you're ready)
106
+ See **[SDK-first ingest](./docs/sdk-first-ingest.md)** generate bundle,
107
+ save via MCP, deploy, then write:
108
+
109
+ ```bash
110
+ pnpm exec loxtep domains list
111
+ node node_modules/@loxtep/sdk/docs/examples/generate-ingest-bundle.mjs
112
+ # … save_workflow_bundle (MCP) + workflows deploy …
113
+ node node_modules/@loxtep/sdk/docs/examples/write-events.mjs
114
+ ```
115
+
116
+ 7. **Author code-first workflow modules** (optional, different path)
108
117
 
109
118
  ```bash
110
119
  pnpm exec loxtep test <module> --event ./events/sample.json
111
120
  pnpm exec loxtep deploy
112
121
  ```
113
122
 
114
- See **[Code-first CLI guide](./docs/code-first-cli.md)** for workflow
115
- modules and templates.
123
+ See **[Code-first CLI guide](./docs/code-first-cli.md)**.
116
124
 
117
125
  ### Bootstrap the SDK from your workspace
118
126
 
@@ -127,20 +135,20 @@ const { user, organization } = await client.session.get_current_user();
127
135
  console.log(user.email, organization?.name);
128
136
  ```
129
137
 
130
- ### Write and read events (after deploy)
138
+ ### Write and read events (after SDK ingest deploy)
131
139
 
132
140
  `get_writer` / `get_reader` resolve queue, bot, and stream config from
133
- **deployment metadata**. Use a name from `loxtep data-products list` after
134
- your workflow is deployed:
141
+ **deployment metadata**. Complete [SDK-first ingest](./docs/sdk-first-ingest.md)
142
+ before streaming:
135
143
 
136
144
  ```ts
137
145
  const client = await LoxtepClient.fromWorkspace();
138
146
 
139
- const writer = await client.get_writer('orders');
140
- writer.write({ order_id: '1', total: 42.0 });
147
+ const writer = await client.get_writer('app-events');
148
+ writer.write({ event_id: '1', payload: { hello: 'world' } });
141
149
  await writer.close();
142
150
 
143
- const reader = await client.get_reader('orders');
151
+ const reader = await client.get_reader('app-events');
144
152
  for await (const event of reader) {
145
153
  console.log(event);
146
154
  break;
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Shared stdout/stderr formatting for CLI `list` subcommands.
3
- * Default output is a pruned summary; raw API payloads go to stderr with --debug or LOXTEP_DEBUG=1.
3
+ * Default output is a pruned JSON **array** of summary rows (human + jq friendly).
4
+ * Raw API payloads (including pagination/cursor) go to stderr with --debug or LOXTEP_DEBUG=1.
4
5
  */
5
6
  export interface CliListOutputOptions {
6
7
  debug?: boolean;
@@ -8,8 +9,14 @@ export interface CliListOutputOptions {
8
9
  label?: string;
9
10
  }
10
11
  export declare function isCliListDebugEnabled(options?: CliListOutputOptions): boolean;
11
- export declare function printCliListOutput(summary: unknown, raw: unknown, options?: CliListOutputOptions): void;
12
- /** Map list rows while preserving pagination metadata for scripts. */
12
+ export declare function printCliListOutput(summaryRows: unknown[], raw: unknown, options?: CliListOutputOptions): void;
13
+ /** Map paginated SDK list results to a flat summary array for CLI stdout. */
14
+ export declare function mapListSummaries<T, S>(data: {
15
+ items: T[];
16
+ }, mapItem: (item: T) => S): S[];
17
+ /**
18
+ * @deprecated CLI stdout is a bare array; use {@link mapListSummaries}. Pagination belongs in --debug raw output only.
19
+ */
13
20
  export declare function mapPaginatedList<T, S>(data: {
14
21
  items: T[];
15
22
  pagination?: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"cli-list-output.d.ts","sourceRoot":"","sources":["../../src/cli/cli-list-output.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAE7E;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,OAAO,EACZ,OAAO,CAAC,EAAE,oBAAoB,GAC7B,IAAI,CAON;AAED,sEAAsE;AACtE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,CAAC,EACnC,IAAI,EAAE;IAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,EAC1C,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GACtB;IAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,CAKtC"}
1
+ {"version":3,"file":"cli-list-output.d.ts","sourceRoot":"","sources":["../../src/cli/cli-list-output.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAE7E;AAED,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,OAAO,EAAE,EACtB,GAAG,EAAE,OAAO,EACZ,OAAO,CAAC,EAAE,oBAAoB,GAC7B,IAAI,CAON;AAED,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,CAAC,EACnC,IAAI,EAAE;IAAE,KAAK,EAAE,CAAC,EAAE,CAAA;CAAE,EACpB,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GACtB,CAAC,EAAE,CAEL;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,CAAC,EACnC,IAAI,EAAE;IAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,EAC1C,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GACtB;IAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,CAKtC"}
@@ -1,22 +1,29 @@
1
1
  /**
2
2
  * Shared stdout/stderr formatting for CLI `list` subcommands.
3
- * Default output is a pruned summary; raw API payloads go to stderr with --debug or LOXTEP_DEBUG=1.
3
+ * Default output is a pruned JSON **array** of summary rows (human + jq friendly).
4
+ * Raw API payloads (including pagination/cursor) go to stderr with --debug or LOXTEP_DEBUG=1.
4
5
  */
5
6
  export function isCliListDebugEnabled(options) {
6
7
  return options?.debug === true || process.env.LOXTEP_DEBUG === '1';
7
8
  }
8
- export function printCliListOutput(summary, raw, options) {
9
+ export function printCliListOutput(summaryRows, raw, options) {
9
10
  if (isCliListDebugEnabled(options)) {
10
11
  const label = options?.label ?? 'list';
11
12
  console.error(`[loxtep ${label} debug] raw API response:`);
12
13
  console.error(JSON.stringify(raw, null, 2));
13
14
  }
14
- console.log(JSON.stringify(summary, null, 2));
15
+ console.log(JSON.stringify(summaryRows, null, 2));
15
16
  }
16
- /** Map list rows while preserving pagination metadata for scripts. */
17
+ /** Map paginated SDK list results to a flat summary array for CLI stdout. */
18
+ export function mapListSummaries(data, mapItem) {
19
+ return data.items.map(mapItem);
20
+ }
21
+ /**
22
+ * @deprecated CLI stdout is a bare array; use {@link mapListSummaries}. Pagination belongs in --debug raw output only.
23
+ */
17
24
  export function mapPaginatedList(data, mapItem) {
18
25
  return {
19
- items: data.items.map(mapItem),
26
+ items: mapListSummaries(data, mapItem),
20
27
  ...(data.pagination !== undefined ? { pagination: data.pagination } : {}),
21
28
  };
22
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cli-list-output.js","sourceRoot":"","sources":["../../src/cli/cli-list-output.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,MAAM,UAAU,qBAAqB,CAAC,OAA8B;IAClE,OAAO,OAAO,EAAE,KAAK,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,OAAgB,EAChB,GAAY,EACZ,OAA8B;IAE9B,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,MAAM,CAAC;QACvC,OAAO,CAAC,KAAK,CAAC,WAAW,KAAK,2BAA2B,CAAC,CAAC;QAC3D,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,gBAAgB,CAC9B,IAA0C,EAC1C,OAAuB;IAEvB,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;QAC9B,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1E,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"cli-list-output.js","sourceRoot":"","sources":["../../src/cli/cli-list-output.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,MAAM,UAAU,qBAAqB,CAAC,OAA8B;IAClE,OAAO,OAAO,EAAE,KAAK,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,WAAsB,EACtB,GAAY,EACZ,OAA8B;IAE9B,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,MAAM,CAAC;QACvC,OAAO,CAAC,KAAK,CAAC,WAAW,KAAK,2BAA2B,CAAC,CAAC;QAC3D,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,gBAAgB,CAC9B,IAAoB,EACpB,OAAuB;IAEvB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAA0C,EAC1C,OAAuB;IAEvB,OAAO;QACL,KAAK,EAAE,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC;QACtC,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1E,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"activity-cmd.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/activity-cmd.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAGlE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIvD,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,SAAS,CAAC,CAmCpB"}
1
+ {"version":3,"file":"activity-cmd.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/activity-cmd.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAGlE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIvD,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,SAAS,CAAC,CAgCpB"}
@@ -42,10 +42,7 @@ export async function runActivityListCommand(client, options) {
42
42
  if (options?.limit != null)
43
43
  filters.limit = options.limit;
44
44
  const result = await client.context.activity.list(filters);
45
- const summary = {
46
- items: result.entries.map(toActivityListSummary),
47
- cursor: result.cursor,
48
- };
45
+ const summary = result.entries.map(toActivityListSummary);
49
46
  return {
50
47
  exitCode: 0,
51
48
  stdout: [JSON.stringify(summary, null, 2)],
@@ -1 +1 @@
1
- {"version":3,"file":"activity-cmd.js","sourceRoot":"","sources":["../../../src/cli/commands/activity-cmd.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAIvE,MAAM,aAAa,GAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAWpE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAoB,EACpB,OAA6B;IAE7B,IAAI,CAAC;QACH,yBAAyB;QACzB,IAAI,OAAO,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAwB,CAAC,EAAE,CAAC;YACjF,OAAO;gBACL,QAAQ,EAAE,CAAC;gBACX,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE;oBACN,2BAA2B,OAAO,CAAC,MAAM,sBAAsB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;iBAC3F;aACF,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,IAAI,OAAO,EAAE,MAAM;YAAE,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAwB,CAAC;QACvE,IAAI,OAAO,EAAE,KAAK;YAAE,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAClD,IAAI,OAAO,EAAE,aAAa;YAAE,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC1E,IAAI,OAAO,EAAE,IAAI;YAAE,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;QAChD,IAAI,OAAO,EAAE,EAAE;YAAE,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,EAAE,CAAC;QAC1C,IAAI,OAAO,EAAE,KAAK,IAAI,IAAI;YAAE,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAE1D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG;YACd,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;YAChD,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;QACF,OAAO;YACL,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC1C,MAAM,EAAE,EAAE;SACX,CAAC;IACJ,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,4BAA4B,OAAO,EAAE,CAAC,EAAE,CAAC;IACtF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"activity-cmd.js","sourceRoot":"","sources":["../../../src/cli/commands/activity-cmd.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAIvE,MAAM,aAAa,GAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAWpE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAoB,EACpB,OAA6B;IAE7B,IAAI,CAAC;QACH,yBAAyB;QACzB,IAAI,OAAO,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAwB,CAAC,EAAE,CAAC;YACjF,OAAO;gBACL,QAAQ,EAAE,CAAC;gBACX,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE;oBACN,2BAA2B,OAAO,CAAC,MAAM,sBAAsB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;iBAC3F;aACF,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,IAAI,OAAO,EAAE,MAAM;YAAE,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAwB,CAAC;QACvE,IAAI,OAAO,EAAE,KAAK;YAAE,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAClD,IAAI,OAAO,EAAE,aAAa;YAAE,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC1E,IAAI,OAAO,EAAE,IAAI;YAAE,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;QAChD,IAAI,OAAO,EAAE,EAAE;YAAE,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,EAAE,CAAC;QAC1C,IAAI,OAAO,EAAE,KAAK,IAAI,IAAI;YAAE,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAE1D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAC1D,OAAO;YACL,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC1C,MAAM,EAAE,EAAE;SACX,CAAC;IACJ,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,4BAA4B,OAAO,EAAE,CAAC,EAAE,CAAC;IACtF,CAAC;AACH,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * CLI: loxtep bundle save — persist a workflow entity bundle to the project workspace.
3
+ */
4
+ export interface BundleCmdOptions {
5
+ configFilePath?: string;
6
+ credentialsPath?: string;
7
+ customerMcpPath?: string;
8
+ debug?: boolean;
9
+ }
10
+ export declare function runBundleSave(params: {
11
+ file?: string;
12
+ project_id?: string;
13
+ dry_run?: boolean;
14
+ }, options?: BundleCmdOptions): Promise<void>;
15
+ //# sourceMappingURL=bundle-cmd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle-cmd.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/bundle-cmd.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,MAAM,WAAW,gBAAgB;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAgBD,wBAAsB,aAAa,CACjC,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,EACjE,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAmCf"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * CLI: loxtep bundle save — persist a workflow entity bundle to the project workspace.
3
+ */
4
+ import { readFileSync } from 'node:fs';
5
+ import { resolve } from 'node:path';
6
+ import { requireCliClient } from '../create-cli-client.js';
7
+ function parseBundleFile(filePath) {
8
+ const raw = JSON.parse(readFileSync(filePath, 'utf8'));
9
+ if (raw.files && typeof raw.files === 'object') {
10
+ return {
11
+ project_id: typeof raw.project_id === 'string' ? raw.project_id : undefined,
12
+ files: raw.files,
13
+ };
14
+ }
15
+ return { files: raw };
16
+ }
17
+ export async function runBundleSave(params, options = {}) {
18
+ const { client, config } = await requireCliClient(options);
19
+ const filePath = resolve(params.file ?? '.loxtep/sdk-ingest-bundle.json');
20
+ let parsed;
21
+ try {
22
+ parsed = parseBundleFile(filePath);
23
+ }
24
+ catch (err) {
25
+ console.error(`Failed to read bundle file ${filePath}: ${err instanceof Error ? err.message : String(err)}`);
26
+ process.exitCode = 1;
27
+ return;
28
+ }
29
+ const projectId = params.project_id ?? parsed.project_id ?? config.project_id;
30
+ if (!projectId) {
31
+ console.error('Missing project_id. Pass --project-id, include project_id in the bundle file, or run from an attached workspace.');
32
+ process.exitCode = 1;
33
+ return;
34
+ }
35
+ const result = await client.build.workflows.save_workflow_bundle(projectId, {
36
+ files: parsed.files,
37
+ dry_run: params.dry_run ?? false,
38
+ });
39
+ console.log(JSON.stringify(result, null, 2));
40
+ if (params.dry_run) {
41
+ console.error(`Dry run passed for workflow ${result.workflow_id}. Re-run without --dry-run to persist.`);
42
+ }
43
+ }
44
+ //# sourceMappingURL=bundle-cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle-cmd.js","sourceRoot":"","sources":["../../../src/cli/commands/bundle-cmd.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAS3D,SAAS,eAAe,CAAC,QAAgB;IAIvC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAA4B,CAAC;IAClF,IAAI,GAAG,CAAC,KAAK,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/C,OAAO;YACL,UAAU,EAAE,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YAC3E,KAAK,EAAE,GAAG,CAAC,KAAgD;SAC5D,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,GAA8C,EAAE,CAAC;AACnE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAiE,EACjE,UAA4B,EAAE;IAE9B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,gCAAgC,CAAC,CAAC;IAC1E,IAAI,MAA+E,CAAC;IACpF,IAAI,CAAC;QACH,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACX,8BAA8B,QAAQ,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC9F,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC;IAC9E,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,kHAAkH,CACnH,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,oBAAoB,CAAC,SAAS,EAAE;QAC1E,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK;KACjC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAE7C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,CAAC,KAAK,CACX,+BAA+B,MAAM,CAAC,WAAW,wCAAwC,CAC1F,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -3,13 +3,13 @@
3
3
  * Data contracts (backend). Uses SDK data_contracts surface (GET /dataproducts/datacontracts).
4
4
  */
5
5
  import { toDataContractListSummary } from '../../client/list-summaries.js';
6
- import { mapPaginatedList, printCliListOutput } from '../cli-list-output.js';
6
+ import { mapListSummaries, printCliListOutput } from '../cli-list-output.js';
7
7
  import { requireCliClient } from '../create-cli-client.js';
8
8
  export async function runDataContractsList(options = {}) {
9
9
  const { client } = await requireCliClient(options);
10
10
  try {
11
11
  const result = await client.define.data_contracts.list();
12
- const summary = mapPaginatedList(result, toDataContractListSummary);
12
+ const summary = mapListSummaries(result, toDataContractListSummary);
13
13
  printCliListOutput(summary, result, { ...options, label: 'data-contracts list' });
14
14
  }
15
15
  catch (err) {
@@ -2,12 +2,12 @@
2
2
  * CLI: loxtep data-products list | get | query | tables | create
3
3
  */
4
4
  import { toDataProductListSummary } from '../../client/list-summaries.js';
5
- import { mapPaginatedList, printCliListOutput } from '../cli-list-output.js';
5
+ import { mapListSummaries, printCliListOutput } from '../cli-list-output.js';
6
6
  import { requireCliClient } from '../create-cli-client.js';
7
7
  export async function runDataProductsList(options = {}) {
8
8
  const { client } = await requireCliClient(options);
9
9
  const result = await client.build.data_products.list({ page_size: 20 });
10
- const summary = mapPaginatedList(result, toDataProductListSummary);
10
+ const summary = mapListSummaries(result, toDataProductListSummary);
11
11
  printCliListOutput(summary, result, { ...options, label: 'data-products list' });
12
12
  }
13
13
  export async function runDataProductsGet(dataProductId, options = {}) {
@@ -3,13 +3,13 @@
3
3
  * Uses SDK domains surface (GET /organizations/domains).
4
4
  */
5
5
  import { toDomainListSummary } from '../../client/list-summaries.js';
6
- import { mapPaginatedList, printCliListOutput } from '../cli-list-output.js';
6
+ import { mapListSummaries, printCliListOutput } from '../cli-list-output.js';
7
7
  import { requireCliClient } from '../create-cli-client.js';
8
8
  export async function runDomainsList(options = {}) {
9
9
  const { client } = await requireCliClient(options);
10
10
  try {
11
11
  const result = await client.define.domains.list();
12
- const summary = mapPaginatedList(result, toDomainListSummary);
12
+ const summary = mapListSummaries(result, toDomainListSummary);
13
13
  printCliListOutput(summary, result, { ...options, label: 'domains list' });
14
14
  }
15
15
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"improvements-cmd.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/improvements-cmd.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,EAGL,KAAK,SAAS,EACf,MAAM,uBAAuB,CAAC;AAE/B;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GACpD,OAAO,CAAC,SAAS,CAAC,CA+BpB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,YAAY,EACpB,EAAE,EAAE,MAAM,EACV,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,SAAS,CAAC,CAuFpB;AAED;;;;;;;GAOG;AACH,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,YAAY,EACpB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,SAAS,CAAC,CAmBpB"}
1
+ {"version":3,"file":"improvements-cmd.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/improvements-cmd.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,EAGL,KAAK,SAAS,EACf,MAAM,uBAAuB,CAAC;AAE/B;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GACpD,OAAO,CAAC,SAAS,CAAC,CA4BpB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,YAAY,EACpB,EAAE,EAAE,MAAM,EACV,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,SAAS,CAAC,CAuFpB;AAED;;;;;;;GAOG;AACH,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,YAAY,EACpB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,SAAS,CAAC,CAmBpB"}
@@ -36,10 +36,7 @@ export async function runImprovementsListCommand(client, options) {
36
36
  filters.workflow_name = options.workflow_name;
37
37
  }
38
38
  const result = await client.review.improvements.list(filters);
39
- const summary = {
40
- items: result.improvements.map(toImprovementListSummary),
41
- cursor: result.cursor,
42
- };
39
+ const summary = result.improvements.map(toImprovementListSummary);
43
40
  return {
44
41
  exitCode: 0,
45
42
  stdout: [JSON.stringify(summary, null, 2)],
@@ -1 +1 @@
1
- {"version":3,"file":"improvements-cmd.js","sourceRoot":"","sources":["../../../src/cli/commands/improvements-cmd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"improvements-cmd.js","sourceRoot":"","sources":["../../../src/cli/commands/improvements-cmd.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * CLI: loxtep ingest provision — SDK connector + workflow bundle + optional deploy.
3
+ */
4
+ export interface IngestCmdOptions {
5
+ configFilePath?: string;
6
+ credentialsPath?: string;
7
+ customerMcpPath?: string;
8
+ debug?: boolean;
9
+ }
10
+ export declare function runIngestProvision(params: {
11
+ name?: string;
12
+ domain_id?: string;
13
+ workflow_name?: string;
14
+ project_id?: string;
15
+ instance_id?: string;
16
+ dry_run?: boolean;
17
+ no_deploy?: boolean;
18
+ write_bundle_file?: boolean;
19
+ }, options?: IngestCmdOptions): Promise<void>;
20
+ //# sourceMappingURL=ingest-cmd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ingest-cmd.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/ingest-cmd.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,MAAM,WAAW,gBAAgB;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE;IACN,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,EACD,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAgHf"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * CLI: loxtep ingest provision — SDK connector + workflow bundle + optional deploy.
3
+ */
4
+ import { mkdirSync, writeFileSync } from 'node:fs';
5
+ import { join } from 'node:path';
6
+ import { buildSdkIngestBundle } from '../../lib/sdk-ingest-bundle.js';
7
+ import { requireCliClient } from '../create-cli-client.js';
8
+ export async function runIngestProvision(params, options = {}) {
9
+ const { client, config } = await requireCliClient(options);
10
+ const dataProductName = params.name ?? 'app-events';
11
+ const projectId = params.project_id ?? config.project_id;
12
+ const instanceId = (params.instance_id && params.instance_id.trim()) || config.instance_id;
13
+ if (!projectId) {
14
+ console.error('Missing project_id. Run `loxtep init` and attach a project first.');
15
+ process.exitCode = 1;
16
+ return;
17
+ }
18
+ if (!params.dry_run && !params.no_deploy && !instanceId) {
19
+ console.error('Missing instance_id for deploy. Pass --instance-id, run `loxtep attach`, or use --no-deploy / --dry-run.');
20
+ process.exitCode = 1;
21
+ return;
22
+ }
23
+ const user = await client.session.get_current_user();
24
+ const organizationId = user.organization_id ?? client.organization_id;
25
+ if (!organizationId) {
26
+ console.error('Missing organization_id in session.');
27
+ process.exitCode = 1;
28
+ return;
29
+ }
30
+ let domainId = params.domain_id;
31
+ if (!domainId) {
32
+ const domains = await client.define.domains.list({ page_size: 20 });
33
+ const items = domains.items ?? [];
34
+ if (items.length === 0) {
35
+ console.error('No domains found. Create one in the Web UI (Governance → Domains) or pass --domain-id.');
36
+ process.exitCode = 1;
37
+ return;
38
+ }
39
+ domainId = items[0].domain_id;
40
+ console.error(`Using domain: ${items[0].name} (${domainId})`);
41
+ }
42
+ console.error('Creating SDK connector…');
43
+ const connector = await client.connect.connectors.create({
44
+ connector_type: 'sdk',
45
+ metadata: { name: 'SDK Connector', created_by: 'loxtep-ingest-provision' },
46
+ });
47
+ const bundle = buildSdkIngestBundle({
48
+ organization_id: organizationId,
49
+ project_id: projectId,
50
+ domain_id: domainId,
51
+ connector_id: connector.connector_id,
52
+ data_product_name: dataProductName,
53
+ workflow_name: params.workflow_name,
54
+ user_id: user.user_id,
55
+ });
56
+ if (params.write_bundle_file !== false) {
57
+ mkdirSync('.loxtep', { recursive: true });
58
+ const outPath = join('.loxtep', 'sdk-ingest-bundle.json');
59
+ writeFileSync(outPath, JSON.stringify({ project_id: projectId, files: bundle.files }, null, 2));
60
+ console.error(`Wrote bundle file: ${outPath}`);
61
+ }
62
+ console.error(params.dry_run ? 'Validating workflow bundle (dry run)…' : 'Saving workflow bundle…');
63
+ const saveResult = await client.build.workflows.save_workflow_bundle(projectId, {
64
+ files: bundle.files,
65
+ dry_run: params.dry_run ?? false,
66
+ });
67
+ if (params.dry_run) {
68
+ console.log(JSON.stringify({ ...bundle, save: saveResult }, null, 2));
69
+ console.error(`Dry run passed for workflow ${saveResult.workflow_id}. Re-run without --dry-run to persist and deploy.`);
70
+ return;
71
+ }
72
+ let deployResult;
73
+ if (!params.no_deploy && instanceId) {
74
+ console.error('Deploying project to instance…');
75
+ deployResult = await client.build.workflows.deploy({
76
+ project_id: projectId,
77
+ instance_id: instanceId,
78
+ });
79
+ }
80
+ console.log(JSON.stringify({
81
+ connector_id: connector.connector_id,
82
+ workflow_id: saveResult.workflow_id,
83
+ data_product_id: bundle.data_product_id,
84
+ data_product_name: bundle.data_product_name,
85
+ save: saveResult,
86
+ deploy: deployResult,
87
+ }, null, 2));
88
+ if (!params.no_deploy && instanceId) {
89
+ console.error(`
90
+ Next: write events with get_writer('${dataProductName}') or:
91
+ LOXTEP_DATA_PRODUCT_NAME=${dataProductName} node node_modules/@loxtep/sdk/docs/examples/write-events.mjs
92
+ `);
93
+ }
94
+ }
95
+ //# sourceMappingURL=ingest-cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ingest-cmd.js","sourceRoot":"","sources":["../../../src/cli/commands/ingest-cmd.ts"],"names":[],"mappings":"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"}
@@ -3,13 +3,13 @@
3
3
  * Projects are the platform container for workflows, connectors, and deploy targets.
4
4
  */
5
5
  import { toProjectListSummary } from '../../client/list-summaries.js';
6
- import { mapPaginatedList, printCliListOutput } from '../cli-list-output.js';
6
+ import { mapListSummaries, printCliListOutput } from '../cli-list-output.js';
7
7
  import { requireCliClient } from '../create-cli-client.js';
8
8
  export async function runProjectsList(options = {}) {
9
9
  const { client } = await requireCliClient(options);
10
10
  try {
11
11
  const result = await client.workspace.projects.list({ page_size: 100 });
12
- const summary = mapPaginatedList(result, toProjectListSummary);
12
+ const summary = mapListSummaries(result, toProjectListSummary);
13
13
  printCliListOutput(summary, result, { ...options, label: 'projects list' });
14
14
  }
15
15
  catch (err) {
@@ -3,13 +3,13 @@
3
3
  * Standards = policies (backend). Uses SDK standards surface (GET /governance/standards).
4
4
  */
5
5
  import { toStandardListSummary } from '../../client/list-summaries.js';
6
- import { mapPaginatedList, printCliListOutput } from '../cli-list-output.js';
6
+ import { mapListSummaries, printCliListOutput } from '../cli-list-output.js';
7
7
  import { requireCliClient } from '../create-cli-client.js';
8
8
  export async function runStandardsList(options = {}) {
9
9
  const { client } = await requireCliClient(options);
10
10
  try {
11
11
  const result = await client.define.standards.list();
12
- const summary = mapPaginatedList(result, toStandardListSummary);
12
+ const summary = mapListSummaries(result, toStandardListSummary);
13
13
  printCliListOutput(summary, result, { ...options, label: 'standards list' });
14
14
  }
15
15
  catch (err) {
@@ -2,12 +2,12 @@
2
2
  * CLI: loxtep triggers list | triggers get <id> | triggers create ... | triggers test <id>
3
3
  */
4
4
  import { toTriggerListSummary } from '../../client/list-summaries.js';
5
- import { mapPaginatedList, printCliListOutput } from '../cli-list-output.js';
5
+ import { mapListSummaries, printCliListOutput } from '../cli-list-output.js';
6
6
  import { requireCliClient } from '../create-cli-client.js';
7
7
  export async function runTriggersList(options = {}) {
8
8
  const { client } = await requireCliClient(options);
9
9
  const result = await client.build.triggers.list({ page_size: 50 });
10
- const summary = mapPaginatedList(result, toTriggerListSummary);
10
+ const summary = mapListSummaries(result, toTriggerListSummary);
11
11
  printCliListOutput(summary, result, { ...options, label: 'triggers list' });
12
12
  }
13
13
  export async function runTriggersGet(triggerId, options = {}) {
@@ -2,7 +2,7 @@
2
2
  * CLI: loxtep workflows list | get <id> | create ... | deploy (backend workflows MS).
3
3
  */
4
4
  import { toWorkflowListSummary } from '../../client/list-summaries.js';
5
- import { mapPaginatedList, printCliListOutput } from '../cli-list-output.js';
5
+ import { mapListSummaries, printCliListOutput } from '../cli-list-output.js';
6
6
  import { requireCliClient } from '../create-cli-client.js';
7
7
  export async function runWorkflowsList(options = {}) {
8
8
  const { client, config } = await requireCliClient(options);
@@ -16,7 +16,7 @@ export async function runWorkflowsList(options = {}) {
16
16
  return;
17
17
  }
18
18
  const result = await client.build.workflows.list({ project_id: projectId, page_size: 50 });
19
- const summary = mapPaginatedList(result, toWorkflowListSummary);
19
+ const summary = mapListSummaries(result, toWorkflowListSummary);
20
20
  printCliListOutput(summary, result, { ...options, label: 'workflows list' });
21
21
  }
22
22
  export async function runWorkflowsGet(workflowId, options = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,QAAQ,QA4EV,CAAC;AAEZ,wBAAgB,YAAY,IAAI,IAAI,CAEnC"}
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,QAAQ,QAqFV,CAAC;AAEZ,wBAAgB,YAAY,IAAI,IAAI,CAEnC"}
package/dist/cli/help.js CHANGED
@@ -25,6 +25,10 @@ Workspace
25
25
  Provision and register runtime instances
26
26
 
27
27
  Build & deploy
28
+ ingest provision [--name app-events] [--domain-id <id>] [--dry-run] [--no-deploy]
29
+ SDK connector + workflow bundle + deploy (CLI-only path)
30
+ bundle save [--file .loxtep/sdk-ingest-bundle.json] [--dry-run]
31
+ Persist a workflow entity bundle JSON to the project workspace
28
32
  test <module> --event <file>
29
33
  Run a workflow module locally (action trace)
30
34
  deploy Compile workflow modules and deploy to the attached instance
@@ -64,6 +68,11 @@ Configuration
64
68
 
65
69
  Examples:
66
70
  pnpm exec loxtep login
71
+ pnpm exec loxtep init && pnpm exec loxtep attach --instance <id>
72
+ pnpm exec loxtep ingest provision --name app-events
73
+ pnpm exec loxtep bundle save --dry-run
74
+ pnpm exec loxtep workflows deploy --project-id <id> --instance-id <id>
75
+ node node_modules/@loxtep/sdk/docs/examples/write-events.mjs
67
76
  pnpm exec loxtep init --template shopify-orders
68
77
  pnpm exec loxtep attach --instance prod && pnpm exec loxtep generate
69
78
  pnpm exec loxtep projects list
@@ -76,7 +85,7 @@ Examples:
76
85
  pnpm exec loxtep observe status
77
86
  pnpm exec loxtep config export --from-connector <connector-id> --format json
78
87
 
79
- Docs: nodejs/docs/code-first-cli.md · nodejs/docs/getting-started.md · nodejs/docs/quick-reference.md
88
+ Docs: nodejs/docs/sdk-first-ingest.md · nodejs/docs/code-first-cli.md · nodejs/docs/getting-started.md · nodejs/docs/quick-reference.md
80
89
  `.trimEnd();
81
90
  export function printCliHelp() {
82
91
  console.log(CLI_HELP);