@loxtep/sdk 0.8.0 → 0.9.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 (104) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/README.md +2 -1
  3. package/dist/cli/commands/clone-cmd.d.ts +39 -0
  4. package/dist/cli/commands/clone-cmd.d.ts.map +1 -0
  5. package/dist/cli/commands/clone-cmd.js +291 -0
  6. package/dist/cli/commands/clone-cmd.js.map +1 -0
  7. package/dist/cli/commands/deploy-cmd.d.ts.map +1 -1
  8. package/dist/cli/commands/deploy-cmd.js +51 -19
  9. package/dist/cli/commands/deploy-cmd.js.map +1 -1
  10. package/dist/cli/commands/init-cmd.d.ts.map +1 -1
  11. package/dist/cli/commands/init-cmd.js +12 -1
  12. package/dist/cli/commands/init-cmd.js.map +1 -1
  13. package/dist/cli/commands/link-cmd.d.ts +33 -0
  14. package/dist/cli/commands/link-cmd.d.ts.map +1 -0
  15. package/dist/cli/commands/link-cmd.js +145 -0
  16. package/dist/cli/commands/link-cmd.js.map +1 -0
  17. package/dist/cli/commands/projects-cmd.d.ts +39 -1
  18. package/dist/cli/commands/projects-cmd.d.ts.map +1 -1
  19. package/dist/cli/commands/projects-cmd.js +231 -4
  20. package/dist/cli/commands/projects-cmd.js.map +1 -1
  21. package/dist/cli/commands/projects-github-cmd.d.ts +24 -0
  22. package/dist/cli/commands/projects-github-cmd.d.ts.map +1 -0
  23. package/dist/cli/commands/projects-github-cmd.js +108 -0
  24. package/dist/cli/commands/projects-github-cmd.js.map +1 -0
  25. package/dist/cli/commands/push-cmd.d.ts +3 -7
  26. package/dist/cli/commands/push-cmd.d.ts.map +1 -1
  27. package/dist/cli/commands/push-cmd.js +10 -39
  28. package/dist/cli/commands/push-cmd.js.map +1 -1
  29. package/dist/cli/commands/status-cmd.d.ts +21 -0
  30. package/dist/cli/commands/status-cmd.d.ts.map +1 -0
  31. package/dist/cli/commands/status-cmd.js +127 -0
  32. package/dist/cli/commands/status-cmd.js.map +1 -0
  33. package/dist/cli/help.d.ts.map +1 -1
  34. package/dist/cli/help.js +17 -3
  35. package/dist/cli/help.js.map +1 -1
  36. package/dist/cli/index.js +62 -3
  37. package/dist/cli/index.js.map +1 -1
  38. package/dist/cli/known-locals-registry.d.ts +51 -0
  39. package/dist/cli/known-locals-registry.d.ts.map +1 -0
  40. package/dist/cli/known-locals-registry.js +94 -0
  41. package/dist/cli/known-locals-registry.js.map +1 -0
  42. package/dist/cli/project-context.d.ts +9 -0
  43. package/dist/cli/project-context.d.ts.map +1 -1
  44. package/dist/cli/project-context.js +21 -0
  45. package/dist/cli/project-context.js.map +1 -1
  46. package/dist/client/deployments-types.d.ts +40 -0
  47. package/dist/client/deployments-types.d.ts.map +1 -0
  48. package/dist/client/deployments-types.js +6 -0
  49. package/dist/client/deployments-types.js.map +1 -0
  50. package/dist/client/deployments.d.ts +13 -0
  51. package/dist/client/deployments.d.ts.map +1 -0
  52. package/dist/client/deployments.js +48 -0
  53. package/dist/client/deployments.js.map +1 -0
  54. package/dist/client/index.d.ts +10 -0
  55. package/dist/client/index.d.ts.map +1 -1
  56. package/dist/client/index.js +6 -0
  57. package/dist/client/index.js.map +1 -1
  58. package/dist/client/loxtep-client.d.ts.map +1 -1
  59. package/dist/client/loxtep-client.js +7 -1
  60. package/dist/client/loxtep-client.js.map +1 -1
  61. package/dist/client/project-workspace-inventory.d.ts +61 -0
  62. package/dist/client/project-workspace-inventory.d.ts.map +1 -0
  63. package/dist/client/project-workspace-inventory.js +300 -0
  64. package/dist/client/project-workspace-inventory.js.map +1 -0
  65. package/dist/client/project-workspace-status-types.d.ts +644 -0
  66. package/dist/client/project-workspace-status-types.d.ts.map +1 -0
  67. package/dist/client/project-workspace-status-types.js +265 -0
  68. package/dist/client/project-workspace-status-types.js.map +1 -0
  69. package/dist/client/project-workspace-status.d.ts +76 -0
  70. package/dist/client/project-workspace-status.d.ts.map +1 -0
  71. package/dist/client/project-workspace-status.js +368 -0
  72. package/dist/client/project-workspace-status.js.map +1 -0
  73. package/dist/client/projects.d.ts +53 -0
  74. package/dist/client/projects.d.ts.map +1 -1
  75. package/dist/client/projects.js +18 -0
  76. package/dist/client/projects.js.map +1 -1
  77. package/dist/client/versions-types.d.ts +3 -4
  78. package/dist/client/versions-types.d.ts.map +1 -1
  79. package/dist/client/versions-types.js +3 -4
  80. package/dist/client/versions-types.js.map +1 -1
  81. package/dist/client/workflows-types.d.ts +16 -3
  82. package/dist/client/workflows-types.d.ts.map +1 -1
  83. package/dist/client/workflows-types.js +47 -1
  84. package/dist/client/workflows-types.js.map +1 -1
  85. package/dist/client/workflows.d.ts.map +1 -1
  86. package/dist/client/workflows.js +2 -1
  87. package/dist/client/workflows.js.map +1 -1
  88. package/dist/client/workspace-package.d.ts +26 -0
  89. package/dist/client/workspace-package.d.ts.map +1 -0
  90. package/dist/client/workspace-package.js +85 -0
  91. package/dist/client/workspace-package.js.map +1 -0
  92. package/dist/client/workspace.d.ts +5 -1
  93. package/dist/client/workspace.d.ts.map +1 -1
  94. package/dist/client/workspace.js +3 -1
  95. package/dist/client/workspace.js.map +1 -1
  96. package/dist/config/platform-request-url.d.ts +2 -2
  97. package/dist/config/platform-request-url.js +4 -4
  98. package/docs/code-first-cli.md +28 -2
  99. package/docs/project-workspace-status.md +161 -0
  100. package/docs/sdk-mcp-mapping.md +1 -1
  101. package/package.json +1 -1
  102. package/schemas/entity-json-schemas/SCHEMA_SYNC.md +4 -3
  103. package/schemas/entity-json-schemas/data-product.json +1 -1
  104. package/schemas/entity-json-schemas/odps-product.json +1 -1
@@ -1,16 +1,127 @@
1
1
  /**
2
- * CLI: loxtep projects list | projects get <id>
2
+ * CLI: loxtep projects list | get | link | changes | clone | pull | push
3
3
  * Projects are the platform container for workflows, connectors, and deploy targets.
4
+ * Enriched with cheap status flags (github / local path / deployed when detectable).
5
+ * `--source local|remote|all` uses `~/.loxtep/workspaces.json`.
6
+ * `projects changes` = unpublished inventory (alias of `loxtep status --unpublished`).
4
7
  */
5
8
  import { toProjectListSummary } from '../../client/list-summaries.js';
9
+ import { buildProjectWorkspaceStatus, enrichProjectListSummary, toProjectListStatusEnrichment, } from '../../client/project-workspace-status.js';
10
+ import { pickLatestDeployment } from '../../client/deployments.js';
6
11
  import { mapListSummaries, printCliListOutput } from '../cli-list-output.js';
7
12
  import { requireCliClient } from '../create-cli-client.js';
13
+ import { knownLocalProjectIds, listKnownLocalsPresent, } from '../known-locals-registry.js';
14
+ import { tryLoadProjectConfig, } from '../project-context.js';
15
+ import { runLink } from './link-cmd.js';
16
+ import { runClone } from './clone-cmd.js';
17
+ import { runProjectsGithubPull, runProjectsGithubPush } from './projects-github-cmd.js';
18
+ import { runStatusCommand } from './status-cmd.js';
19
+ function parseSource(raw) {
20
+ if (raw == null || raw === '')
21
+ return 'all';
22
+ const v = raw.toLowerCase();
23
+ if (v === 'all' || v === 'local' || v === 'remote')
24
+ return v;
25
+ return { error: `Invalid --source '${raw}'. Use local | remote | all.` };
26
+ }
27
+ function filterBySource(items, source, knownIds) {
28
+ if (source === 'all')
29
+ return items;
30
+ if (source === 'local')
31
+ return items.filter(p => knownIds.has(p.project_id));
32
+ return items.filter(p => !knownIds.has(p.project_id));
33
+ }
34
+ function localOnlyPlaceholders(source, knownPresent, cloudItems) {
35
+ if (source !== 'local')
36
+ return [];
37
+ const cloudIds = new Set(cloudItems.map(p => p.project_id));
38
+ return knownPresent
39
+ .filter(w => !cloudIds.has(w.project_id))
40
+ .map(w => ({
41
+ project_id: w.project_id,
42
+ name: '(known local — not returned by cloud list)',
43
+ path: w.path,
44
+ last_seen_at: w.last_seen_at,
45
+ source: 'local',
46
+ }));
47
+ }
48
+ function cwdLocalSnapshot(cwd) {
49
+ const loaded = tryLoadProjectConfig(cwd);
50
+ if (!loaded)
51
+ return null;
52
+ return {
53
+ project_id: loaded.project.project_id,
54
+ path: loaded.projectDir,
55
+ project_file: loaded.projectFilePath,
56
+ instance_id: loaded.project.instance_id ?? null,
57
+ api_url: loaded.project.api_url ?? null,
58
+ };
59
+ }
60
+ async function loadDeployedByProject(client) {
61
+ const map = new Map();
62
+ try {
63
+ const listed = await client.workspace.deployments.list({
64
+ page_size: 100,
65
+ sort_by: 'updated_at',
66
+ sort_order: 'desc',
67
+ });
68
+ for (const d of listed.items) {
69
+ if (map.has(d.project_id))
70
+ continue;
71
+ map.set(d.project_id, d.status === 'deployed' ? 'deployed' : 'never_deployed');
72
+ }
73
+ for (const d of listed.items) {
74
+ if (d.status === 'deployed')
75
+ map.set(d.project_id, 'deployed');
76
+ }
77
+ }
78
+ catch {
79
+ // List enrichment stays snappy: omit deployed_state when unavailable.
80
+ }
81
+ return map;
82
+ }
8
83
  export async function runProjectsList(options = {}) {
84
+ const sourceResult = parseSource(options.source);
85
+ if (typeof sourceResult === 'object' && 'error' in sourceResult) {
86
+ console.error(sourceResult.error);
87
+ process.exitCode = 1;
88
+ return;
89
+ }
90
+ const source = sourceResult;
91
+ const cwd = options.cwd ?? process.cwd();
92
+ const local = cwdLocalSnapshot(cwd);
9
93
  const { client } = await requireCliClient(options);
10
94
  try {
11
95
  const result = await client.workspace.projects.list({ page_size: 100 });
12
- const summary = mapListSummaries(result, toProjectListSummary);
13
- printCliListOutput(summary, result, { ...options, label: 'projects list' });
96
+ const knownIds = knownLocalProjectIds(options.registryPath);
97
+ const knownPresent = listKnownLocalsPresent(options.registryPath);
98
+ const filteredItems = filterBySource(result.items, source, knownIds);
99
+ const filtered = { ...result, items: filteredItems };
100
+ const deployed_by_project = await loadDeployedByProject(client);
101
+ const attach_state = local?.instance_id && local.api_url ? 'attached' : 'unattached';
102
+ const summary = mapListSummaries(filtered, project => ({
103
+ ...toProjectListSummary(project),
104
+ ...enrichProjectListSummary(project, {
105
+ cwd_project_id: local?.project_id ?? null,
106
+ cwd_path: local?.path ?? null,
107
+ cwd_attach_state: local ? attach_state : undefined,
108
+ deployed_by_project,
109
+ }),
110
+ }));
111
+ const extra = localOnlyPlaceholders(source, knownPresent, filteredItems);
112
+ const payload = source === 'all'
113
+ ? summary
114
+ : {
115
+ ...summary,
116
+ source,
117
+ known_locals: knownPresent.map(w => ({
118
+ project_id: w.project_id,
119
+ path: w.path,
120
+ last_seen_at: w.last_seen_at,
121
+ })),
122
+ local_only: extra,
123
+ };
124
+ printCliListOutput(payload, filtered, { ...options, label: 'projects list' });
14
125
  }
15
126
  catch (err) {
16
127
  console.error(err.message);
@@ -18,14 +129,130 @@ export async function runProjectsList(options = {}) {
18
129
  }
19
130
  }
20
131
  export async function runProjectsGet(projectId, options = {}) {
132
+ const cwd = options.cwd ?? process.cwd();
133
+ const local = cwdLocalSnapshot(cwd);
21
134
  const { client } = await requireCliClient(options);
22
135
  try {
23
136
  const project = await client.workspace.projects.get(projectId);
24
- console.log(JSON.stringify(project, null, 2));
137
+ let deployments = null;
138
+ let deployments_unavailable = false;
139
+ try {
140
+ const listed = await client.workspace.deployments.list({
141
+ project_id: projectId,
142
+ page_size: 20,
143
+ sort_by: 'updated_at',
144
+ sort_order: 'desc',
145
+ });
146
+ deployments = listed.items;
147
+ }
148
+ catch {
149
+ deployments_unavailable = true;
150
+ }
151
+ const localForProject = local && local.project_id === projectId ? local : null;
152
+ const status = buildProjectWorkspaceStatus({
153
+ population_depth: 'status',
154
+ local: localForProject,
155
+ cloud: project,
156
+ deployments,
157
+ deployments_unavailable,
158
+ });
159
+ const enrichment = toProjectListStatusEnrichment(status);
160
+ const latest = deployments ? pickLatestDeployment(deployments) : null;
161
+ console.log(JSON.stringify({
162
+ ...project,
163
+ status_enrichment: enrichment,
164
+ workspace_status: status,
165
+ ...(latest
166
+ ? {
167
+ latest_deployment: {
168
+ deployment_id: latest.deployment_id,
169
+ status: latest.status,
170
+ updated_at: latest.updated_at,
171
+ },
172
+ }
173
+ : {}),
174
+ }, null, 2));
25
175
  }
26
176
  catch (err) {
27
177
  console.error(err.message);
28
178
  process.exitCode = 1;
29
179
  }
30
180
  }
181
+ export async function runProjectsLink(projectRef, options = {}) {
182
+ const { client } = await requireCliClient(options);
183
+ const result = await runLink(client, {
184
+ projectRef,
185
+ path: options.path,
186
+ registryPath: options.registryPath,
187
+ });
188
+ for (const line of result.stdout)
189
+ console.log(line);
190
+ for (const line of result.stderr)
191
+ console.error(line);
192
+ if (result.exitCode !== 0)
193
+ process.exitCode = result.exitCode;
194
+ }
195
+ /**
196
+ * `loxtep projects changes` — unpublished Local→Cloud / Cloud→Deployed inventory.
197
+ * Same payload as `loxtep status --unpublished`.
198
+ */
199
+ export async function runProjectsChangesCommand(options = {}) {
200
+ return runStatusCommand({
201
+ cwd: options.cwd,
202
+ unpublished: true,
203
+ json: options.json === true,
204
+ });
205
+ }
206
+ export async function runProjectsChanges(options = {}) {
207
+ const result = await runProjectsChangesCommand(options);
208
+ for (const line of result.stdout)
209
+ console.log(line);
210
+ for (const line of result.stderr)
211
+ console.error(line);
212
+ if (result.exitCode !== 0)
213
+ process.exitCode = result.exitCode;
214
+ }
215
+ export async function runProjectsClone(projectRef, dir, options = {}) {
216
+ const { client } = await requireCliClient(options);
217
+ const result = await runClone(client, {
218
+ projectRef,
219
+ dir,
220
+ registryPath: options.registryPath,
221
+ });
222
+ for (const line of result.stdout)
223
+ console.log(line);
224
+ for (const line of result.stderr)
225
+ console.error(line);
226
+ if (result.exitCode !== 0)
227
+ process.exitCode = result.exitCode;
228
+ }
229
+ export async function runProjectsGithubPullCmd(options = {}) {
230
+ const { client } = await requireCliClient(options);
231
+ const result = await runProjectsGithubPull(client, {
232
+ projectId: options.projectId,
233
+ commitSha: options.commitSha,
234
+ cwd: options.cwd,
235
+ });
236
+ for (const line of result.stdout)
237
+ console.log(line);
238
+ for (const line of result.stderr)
239
+ console.error(line);
240
+ if (result.exitCode !== 0)
241
+ process.exitCode = result.exitCode;
242
+ }
243
+ export async function runProjectsGithubPushCmd(options = {}) {
244
+ const { client } = await requireCliClient(options);
245
+ const result = await runProjectsGithubPush(client, {
246
+ projectId: options.projectId,
247
+ commitMessage: options.commitMessage,
248
+ branch: options.branch,
249
+ cwd: options.cwd,
250
+ });
251
+ for (const line of result.stdout)
252
+ console.log(line);
253
+ for (const line of result.stderr)
254
+ console.error(line);
255
+ if (result.exitCode !== 0)
256
+ process.exitCode = result.exitCode;
257
+ }
31
258
  //# sourceMappingURL=projects-cmd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"projects-cmd.js","sourceRoot":"","sources":["../../../src/cli/commands/projects-cmd.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAS3D,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,UAA8B,EAAE;IACpE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACnD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;QAC/D,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;IAC9E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,SAAiB,EACjB,UAA8B,EAAE;IAEhC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACnD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"projects-cmd.js","sourceRoot":"","sources":["../../../src/cli/commands/projects-cmd.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * GitHub sync wrappers for bound projects (LOX-1188).
3
+ *
4
+ * - `loxtep projects pull` → POST /projects/{id}/github/pull (S3 ← GitHub)
5
+ * - `loxtep projects push` → POST /projects/{id}/github/push (S3 → GitHub)
6
+ *
7
+ * Unbound packages keep using top-level `loxtep push` (save_workflow_bundle).
8
+ * These commands refuse when the cloud project has no github_repo_url.
9
+ */
10
+ import type { LoxtepClient } from '../../client/loxtep-client.js';
11
+ import { type CliResult } from '../project-context.js';
12
+ export interface GithubSyncOptions {
13
+ /** Override project id (else `.loxtep/project.json`). */
14
+ projectId?: string;
15
+ cwd?: string;
16
+ /** pull only */
17
+ commitSha?: string;
18
+ /** push only */
19
+ commitMessage?: string;
20
+ branch?: string;
21
+ }
22
+ export declare function runProjectsGithubPull(client: LoxtepClient, options?: GithubSyncOptions): Promise<CliResult>;
23
+ export declare function runProjectsGithubPush(client: LoxtepClient, options?: GithubSyncOptions): Promise<CliResult>;
24
+ //# sourceMappingURL=projects-github-cmd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects-github-cmd.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/projects-github-cmd.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAG7E,MAAM,WAAW,iBAAiB;IAChC,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gBAAgB;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA4CD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,SAAS,CAAC,CA2BpB;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,SAAS,CAAC,CA6BpB"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * GitHub sync wrappers for bound projects (LOX-1188).
3
+ *
4
+ * - `loxtep projects pull` → POST /projects/{id}/github/pull (S3 ← GitHub)
5
+ * - `loxtep projects push` → POST /projects/{id}/github/push (S3 → GitHub)
6
+ *
7
+ * Unbound packages keep using top-level `loxtep push` (save_workflow_bundle).
8
+ * These commands refuse when the cloud project has no github_repo_url.
9
+ */
10
+ import { tryLoadProjectConfig } from '../project-context.js';
11
+ import { resolveCloudProject } from './link-cmd.js';
12
+ async function resolveBoundProjectId(client, options) {
13
+ const cwd = options.cwd ?? process.cwd();
14
+ let projectId = options.projectId;
15
+ if (!projectId) {
16
+ const loaded = tryLoadProjectConfig(cwd);
17
+ if (!loaded) {
18
+ return {
19
+ exitCode: 1,
20
+ stdout: [],
21
+ stderr: [
22
+ 'No .loxtep/project.json found. Run from a cloned/linked workspace or pass --project-id.',
23
+ ],
24
+ };
25
+ }
26
+ projectId = loaded.project.project_id;
27
+ }
28
+ let cloud;
29
+ try {
30
+ cloud = await resolveCloudProject(client, projectId);
31
+ }
32
+ catch (err) {
33
+ const reason = err instanceof Error ? err.message : String(err);
34
+ return { exitCode: 1, stdout: [], stderr: [`GitHub sync failed: ${reason}`] };
35
+ }
36
+ if (!cloud.github_repo_url) {
37
+ return {
38
+ exitCode: 1,
39
+ stdout: [],
40
+ stderr: [
41
+ `Project "${cloud.name}" (${cloud.project_id}) has no GitHub binding.`,
42
+ 'Use `loxtep push` for unbound Local→Cloud package upload — do not pretend Git.',
43
+ ],
44
+ };
45
+ }
46
+ return { project_id: cloud.project_id, name: cloud.name };
47
+ }
48
+ export async function runProjectsGithubPull(client, options = {}) {
49
+ const resolved = await resolveBoundProjectId(client, options);
50
+ if ('exitCode' in resolved)
51
+ return resolved;
52
+ try {
53
+ const result = await client.workspace.projects.github_pull(resolved.project_id, {
54
+ commit_sha: options.commitSha,
55
+ });
56
+ const ok = result.success !== false;
57
+ const lines = [
58
+ `GitHub pull for "${resolved.name}" (${resolved.project_id}): ${ok ? 'ok' : 'failed'}`,
59
+ result.commit_sha ? ` commit_sha: ${result.commit_sha}` : '',
60
+ result.file_count != null ? ` file_count: ${result.file_count}` : '',
61
+ result.message ? ` ${result.message}` : '',
62
+ ].filter(Boolean);
63
+ if (result.errors?.length) {
64
+ return {
65
+ exitCode: 1,
66
+ stdout: lines,
67
+ stderr: result.errors,
68
+ };
69
+ }
70
+ return { exitCode: ok ? 0 : 1, stdout: lines, stderr: ok ? [] : ['GitHub pull failed'] };
71
+ }
72
+ catch (err) {
73
+ const reason = err instanceof Error ? err.message : String(err);
74
+ return { exitCode: 1, stdout: [], stderr: [`GitHub pull failed: ${reason}`] };
75
+ }
76
+ }
77
+ export async function runProjectsGithubPush(client, options = {}) {
78
+ const resolved = await resolveBoundProjectId(client, options);
79
+ if ('exitCode' in resolved)
80
+ return resolved;
81
+ try {
82
+ const result = await client.workspace.projects.github_push(resolved.project_id, {
83
+ commit_message: options.commitMessage,
84
+ branch: options.branch,
85
+ });
86
+ const ok = result.success !== false;
87
+ const lines = [
88
+ `GitHub push for "${resolved.name}" (${resolved.project_id}): ${ok ? 'ok' : 'failed'}`,
89
+ result.commit_sha ? ` commit_sha: ${result.commit_sha}` : '',
90
+ result.commit_url ? ` commit_url: ${result.commit_url}` : '',
91
+ result.file_count != null ? ` file_count: ${result.file_count}` : '',
92
+ result.message ? ` ${result.message}` : '',
93
+ ].filter(Boolean);
94
+ if (result.errors?.length) {
95
+ return {
96
+ exitCode: 1,
97
+ stdout: lines,
98
+ stderr: result.errors,
99
+ };
100
+ }
101
+ return { exitCode: ok ? 0 : 1, stdout: lines, stderr: ok ? [] : ['GitHub push failed'] };
102
+ }
103
+ catch (err) {
104
+ const reason = err instanceof Error ? err.message : String(err);
105
+ return { exitCode: 1, stdout: [], stderr: [`GitHub push failed: ${reason}`] };
106
+ }
107
+ }
108
+ //# sourceMappingURL=projects-github-cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects-github-cmd.js","sourceRoot":"","sources":["../../../src/cli/commands/projects-github-cmd.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  * CLI: loxtep push — upload local workflow packages to workspace S3 (save_workflow_bundle),
3
3
  * then trigger project reindex so deploy sees new workflows.
4
4
  */
5
+ import { collectFlatBundle, listLocalWorkflowIds } from '../../client/workspace-package.js';
5
6
  export interface PushCmdOptions {
6
7
  configFilePath?: string;
7
8
  credentialsPath?: string;
@@ -9,13 +10,8 @@ export interface PushCmdOptions {
9
10
  debug?: boolean;
10
11
  cwd?: string;
11
12
  }
12
- /**
13
- * Find local workflow packages under `workflows/<id>/` (SDK-first entity-JSON layout, as
14
- * written by `ingest`/`transform`/`delivery create`) — as opposed to the code-first-cli
15
- * flow's flat `.ts`/`.js` module files, which `deploy-cmd.ts` discovers separately.
16
- */
17
- export declare function listLocalWorkflowIds(projectDir: string): string[];
18
- export declare function collectFlatBundle(projectDir: string, workflowId: string): Record<string, Record<string, unknown>>;
13
+ /** @deprecated Prefer `../../client/workspace-package.js` — re-exported for existing imports. */
14
+ export { collectFlatBundle, listLocalWorkflowIds };
19
15
  /**
20
16
  * Push all local workflow packages via save_workflow_bundle, then reindex the project.
21
17
  */
@@ -1 +1 @@
1
- {"version":3,"file":"push-cmd.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/push-cmd.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,MAAM,WAAW,cAAc;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAOjE;AAED,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA4BzC;AAED;;GAEG;AACH,wBAAsB,OAAO,CAC3B,MAAM,GAAE;IACN,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CACnB,EACN,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CA+Ef"}
1
+ {"version":3,"file":"push-cmd.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/push-cmd.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,mCAAmC,CAAC;AAG3C,MAAM,WAAW,cAAc;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,iGAAiG;AACjG,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,CAAC;AAEnD;;GAEG;AACH,wBAAsB,OAAO,CAC3B,MAAM,GAAE;IACN,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CACnB,EACN,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAsFf"}
@@ -2,47 +2,12 @@
2
2
  * CLI: loxtep push — upload local workflow packages to workspace S3 (save_workflow_bundle),
3
3
  * then trigger project reindex so deploy sees new workflows.
4
4
  */
5
- import { existsSync, readdirSync, readFileSync } from 'node:fs';
6
- import { join } from 'node:path';
7
5
  import { findProjectDir } from '../project-context.js';
8
6
  import { requireCliClient } from '../create-cli-client.js';
9
- /**
10
- * Find local workflow packages under `workflows/<id>/` (SDK-first entity-JSON layout, as
11
- * written by `ingest`/`transform`/`delivery create`) — as opposed to the code-first-cli
12
- * flow's flat `.ts`/`.js` module files, which `deploy-cmd.ts` discovers separately.
13
- */
14
- export function listLocalWorkflowIds(projectDir) {
15
- const workflowsRoot = join(projectDir, 'workflows');
16
- if (!existsSync(workflowsRoot))
17
- return [];
18
- return readdirSync(workflowsRoot, { withFileTypes: true })
19
- .filter(d => d.isDirectory())
20
- .map(d => d.name)
21
- .filter(id => existsSync(join(workflowsRoot, id, 'workflow.json')));
22
- }
23
- export function collectFlatBundle(projectDir, workflowId) {
24
- const root = join(projectDir, 'workflows', workflowId);
25
- const files = {};
26
- const workflowJson = JSON.parse(readFileSync(join(root, 'workflow.json'), 'utf8'));
27
- files['workflow.json'] = workflowJson;
28
- for (const entityDir of [
29
- 'connections',
30
- 'data-products',
31
- 'transformations',
32
- 'validations',
33
- ]) {
34
- const dir = join(root, entityDir);
35
- if (!existsSync(dir))
36
- continue;
37
- for (const name of readdirSync(dir)) {
38
- if (!name.endsWith('.json'))
39
- continue;
40
- const entity = JSON.parse(readFileSync(join(dir, name), 'utf8'));
41
- files[`${entityDir}/${name}`] = entity;
42
- }
43
- }
44
- return files;
45
- }
7
+ import { collectFlatBundle, listLocalWorkflowIds, } from '../../client/workspace-package.js';
8
+ import { writePushManifestFromProjectDir } from '../../client/project-workspace-inventory.js';
9
+ /** @deprecated Prefer `../../client/workspace-package.js` — re-exported for existing imports. */
10
+ export { collectFlatBundle, listLocalWorkflowIds };
46
11
  /**
47
12
  * Push all local workflow packages via save_workflow_bundle, then reindex the project.
48
13
  */
@@ -107,6 +72,12 @@ export async function runPush(params = {}, options = {}) {
107
72
  dry_run: params.dry_run ?? false,
108
73
  }, null, 2));
109
74
  if (failed.length === 0 && !params.dry_run) {
75
+ try {
76
+ writePushManifestFromProjectDir(projectDir, projectId);
77
+ }
78
+ catch (err) {
79
+ console.error(`Warning: could not write local push manifest (${err instanceof Error ? err.message : String(err)}).`);
80
+ }
110
81
  console.error('Push complete. Next: `loxtep deploy`.');
111
82
  }
112
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"push-cmd.js","sourceRoot":"","sources":["../../../src/cli/commands/push-cmd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"push-cmd.js","sourceRoot":"","sources":["../../../src/cli/commands/push-cmd.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * CLI: loxtep status [--unpublished] [--json]
3
+ *
4
+ * Cwd-first project workspace status (local / cloud / deployed).
5
+ * Distinct from `loxtep observe status` (runtime bots/queues).
6
+ */
7
+ import { type CreateCliClientOptions } from '../create-cli-client.js';
8
+ import type { CliResult } from '../project-context.js';
9
+ export interface StatusCmdOptions extends CreateCliClientOptions {
10
+ cwd?: string;
11
+ /** Emit full JSON status payload instead of the one-screen text view. */
12
+ json?: boolean;
13
+ /** Entity/file inventory (population_depth: unpublished). */
14
+ unpublished?: boolean;
15
+ }
16
+ /**
17
+ * Execute `loxtep status` (structured {@link CliResult} for tests).
18
+ */
19
+ export declare function runStatusCommand(options?: StatusCmdOptions): Promise<CliResult>;
20
+ export declare function runStatus(options?: StatusCmdOptions): Promise<void>;
21
+ //# sourceMappingURL=status-cmd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-cmd.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/status-cmd.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,EAAoB,KAAK,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAExF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,WAAW,gBAAiB,SAAQ,sBAAsB;IAC9D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,6DAA6D;IAC7D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAiCD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,SAAS,CAAC,CAiFzF;AAED,wBAAsB,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAK7E"}