@syntero/orca-cli 1.2.11 → 1.2.12

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 (40) hide show
  1. package/dist/autocomplete.d.ts.map +1 -1
  2. package/dist/autocomplete.js +1 -0
  3. package/dist/autocomplete.js.map +1 -1
  4. package/dist/components/ChatApp.js +2 -2
  5. package/dist/components/ChatApp.js.map +1 -1
  6. package/dist/components/FolderBrowser.d.ts +29 -0
  7. package/dist/components/FolderBrowser.d.ts.map +1 -0
  8. package/dist/components/FolderBrowser.js +195 -0
  9. package/dist/components/FolderBrowser.js.map +1 -0
  10. package/dist/components/InputFooter.d.ts +12 -10
  11. package/dist/components/InputFooter.d.ts.map +1 -1
  12. package/dist/components/InputFooter.js +38 -2
  13. package/dist/components/InputFooter.js.map +1 -1
  14. package/dist/components/SyncMenu.d.ts +5 -8
  15. package/dist/components/SyncMenu.d.ts.map +1 -1
  16. package/dist/components/SyncMenu.js +14 -52
  17. package/dist/components/SyncMenu.js.map +1 -1
  18. package/dist/components/UploadMenu.d.ts +38 -0
  19. package/dist/components/UploadMenu.d.ts.map +1 -0
  20. package/dist/components/UploadMenu.js +249 -0
  21. package/dist/components/UploadMenu.js.map +1 -0
  22. package/dist/hooks/useInputDispatch.d.ts.map +1 -1
  23. package/dist/hooks/useInputDispatch.js +61 -0
  24. package/dist/hooks/useInputDispatch.js.map +1 -1
  25. package/dist/hooks/useSlashCommands.d.ts.map +1 -1
  26. package/dist/hooks/useSlashCommands.js +5 -0
  27. package/dist/hooks/useSlashCommands.js.map +1 -1
  28. package/dist/hooks/useSyncFetchers.d.ts +22 -2
  29. package/dist/hooks/useSyncFetchers.d.ts.map +1 -1
  30. package/dist/hooks/useSyncFetchers.js +61 -4
  31. package/dist/hooks/useSyncFetchers.js.map +1 -1
  32. package/dist/sync/index.d.ts +2 -0
  33. package/dist/sync/index.d.ts.map +1 -1
  34. package/dist/sync/index.js +2 -0
  35. package/dist/sync/index.js.map +1 -1
  36. package/dist/sync/upload.d.ts +47 -0
  37. package/dist/sync/upload.d.ts.map +1 -0
  38. package/dist/sync/upload.js +284 -0
  39. package/dist/sync/upload.js.map +1 -0
  40. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkBH,cAAc;AACd,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEnF,mBAAmB;AACnB,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,cAAc,EACd,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAErB,iBAAiB;AACjB,OAAO,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,UAAU,EACX,MAAM,WAAW,CAAC;AAEnB,oBAAoB;AACpB,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,eAAe,CAAC;AAEvB,sBAAsB;AACtB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,eAAe,CAAC;AAEvB,qBAAqB;AACrB,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAEvB,mBAAmB;AACnB,OAAO,EACL,eAAe,EACf,YAAY,EACZ,aAAa,EACb,cAAc,EACd,cAAc,EACd,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,cAAc,EACf,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkBH,cAAc;AACd,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEnF,mBAAmB;AACnB,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,cAAc,EACd,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAErB,iBAAiB;AACjB,OAAO,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,UAAU,EACX,MAAM,WAAW,CAAC;AAEnB,oBAAoB;AACpB,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,eAAe,CAAC;AAEvB,sBAAsB;AACtB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,eAAe,CAAC;AAEvB,qBAAqB;AACrB,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAEvB,mBAAmB;AACnB,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAGrB,mBAAmB;AACnB,OAAO,EACL,eAAe,EACf,YAAY,EACZ,aAAa,EACb,cAAc,EACd,cAAc,EACd,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,cAAc,EACf,MAAM,eAAe,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Upload engine — push local sandbox files to cloud.
3
+ *
4
+ * Reads files from the local Docker container, optionally checks for
5
+ * conflicts against the remote manifest, then POSTs them to the
6
+ * backend upload-folder endpoint.
7
+ */
8
+ export interface UploadOptions {
9
+ /** e.g. "/workspace/library" or "/workspace/users/{id}" */
10
+ basePath: string;
11
+ /** Selected folders to upload */
12
+ pathFilter: string[];
13
+ /** Organization ID */
14
+ orgId?: string;
15
+ /** Skip conflict warning */
16
+ force?: boolean;
17
+ }
18
+ export interface UploadResult {
19
+ success: boolean;
20
+ filesUploaded: number;
21
+ filesSkipped: number;
22
+ errors: {
23
+ path: string;
24
+ error: string;
25
+ }[];
26
+ conflicts: string[];
27
+ }
28
+ interface LocalFile {
29
+ /** Relative path from basePath (e.g. "demo-testing/server.py") */
30
+ relativePath: string;
31
+ /** SHA-256 hash of the file */
32
+ hash: string;
33
+ }
34
+ /**
35
+ * List all files under selected folders in the sandbox container.
36
+ */
37
+ export declare function listFilesForUpload(orgId: string, basePath: string, folders: string[]): LocalFile[];
38
+ /**
39
+ * Check which local files conflict with remote versions.
40
+ */
41
+ export declare function checkRemoteConflicts(localFiles: LocalFile[], basePath: string, orgId?: string): Promise<string[]>;
42
+ /**
43
+ * Main upload orchestrator.
44
+ */
45
+ export declare function runUpload(options: UploadOptions, onProgress?: (message: string) => void): Promise<UploadResult>;
46
+ export {};
47
+ //# sourceMappingURL=upload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../src/sync/upload.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAsBH,MAAM,WAAW,aAAa;IAC5B,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,UAAU,SAAS;IACjB,kEAAkE;IAClE,YAAY,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EAAE,GAChB,SAAS,EAAE,CAkBb;AAmCD;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,SAAS,EAAE,EACvB,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,EAAE,CAAC,CAgBnB;AAsJD;;GAEG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,aAAa,EACtB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACrC,OAAO,CAAC,YAAY,CAAC,CA0FvB"}
@@ -0,0 +1,284 @@
1
+ /**
2
+ * Upload engine — push local sandbox files to cloud.
3
+ *
4
+ * Reads files from the local Docker container, optionally checks for
5
+ * conflicts against the remote manifest, then POSTs them to the
6
+ * backend upload-folder endpoint.
7
+ */
8
+ import * as path from 'path';
9
+ import { loadCredentials } from '../auth.js';
10
+ import { hashFileInSandbox, listSandboxDirectory, findSandboxContainer, readFileFromSandbox } from './docker.js';
11
+ import { loadLocalManifest, saveLocalManifest, ensureSyncDir } from './manifest.js';
12
+ import { debugLog } from '../utils.js';
13
+ /** Maximum files per upload batch */
14
+ const MAX_BATCH_SIZE = 50;
15
+ /** Maximum retries for upload */
16
+ const MAX_RETRIES = 3;
17
+ /** Backoff factor for retries (ms) */
18
+ const BACKOFF_BASE = 1000;
19
+ /**
20
+ * List all files under selected folders in the sandbox container.
21
+ */
22
+ export function listFilesForUpload(orgId, basePath, folders) {
23
+ const files = [];
24
+ for (const folder of folders) {
25
+ const folderPath = `${basePath}/${folder}`;
26
+ const entries = listSandboxDirectory(orgId, folderPath);
27
+ for (const entry of entries) {
28
+ const relativePath = `${folder}/${entry}`;
29
+ const fullPath = `${basePath}/${relativePath}`;
30
+ const hash = hashFileInSandbox(orgId, fullPath);
31
+ if (hash) {
32
+ files.push({ relativePath, hash });
33
+ }
34
+ }
35
+ }
36
+ return files;
37
+ }
38
+ /**
39
+ * Fetch the remote manifest for a given base path to detect conflicts.
40
+ */
41
+ async function fetchRemoteManifest(basePath, orgId) {
42
+ const creds = loadCredentials();
43
+ if (!creds) {
44
+ throw new Error('Not authenticated. Run /token first.');
45
+ }
46
+ const url = `${creds.endpoint}/api/v2/library/sync/manifest?base_path=${encodeURIComponent(basePath)}`;
47
+ const headers = {
48
+ 'Authorization': `Bearer ${creds.token}`,
49
+ };
50
+ if (orgId) {
51
+ headers['X-Org-Id'] = orgId;
52
+ }
53
+ const response = await fetch(url, { method: 'GET', headers });
54
+ if (!response.ok) {
55
+ if (response.status === 404) {
56
+ // No remote manifest yet — no conflicts possible
57
+ return [];
58
+ }
59
+ throw new Error(`Failed to fetch remote manifest: HTTP ${response.status}`);
60
+ }
61
+ const data = await response.json();
62
+ return data.files ?? [];
63
+ }
64
+ /**
65
+ * Check which local files conflict with remote versions.
66
+ */
67
+ export async function checkRemoteConflicts(localFiles, basePath, orgId) {
68
+ const remoteFiles = await fetchRemoteManifest(basePath, orgId);
69
+ const remoteMap = new Map();
70
+ for (const f of remoteFiles) {
71
+ remoteMap.set(f.path, f.hash);
72
+ }
73
+ const conflicts = [];
74
+ for (const local of localFiles) {
75
+ const remoteHash = remoteMap.get(local.relativePath);
76
+ // A conflict is when the file exists remotely with a different hash
77
+ if (remoteHash && remoteHash !== local.hash) {
78
+ conflicts.push(local.relativePath);
79
+ }
80
+ }
81
+ return conflicts;
82
+ }
83
+ /**
84
+ * Split files into batches.
85
+ */
86
+ function splitIntoBatches(items, maxSize = MAX_BATCH_SIZE) {
87
+ const batches = [];
88
+ for (let i = 0; i < items.length; i += maxSize) {
89
+ batches.push(items.slice(i, i + maxSize));
90
+ }
91
+ return batches;
92
+ }
93
+ /**
94
+ * Upload a batch of files to the cloud endpoint.
95
+ */
96
+ async function uploadBatch(orgId, basePath, files, overwrite) {
97
+ const creds = loadCredentials();
98
+ if (!creds) {
99
+ throw new Error('Not authenticated. Run /token first.');
100
+ }
101
+ // Build multipart form
102
+ const formData = new FormData();
103
+ formData.append('destination_path', basePath);
104
+ if (overwrite) {
105
+ formData.append('overwrite', 'true');
106
+ }
107
+ for (const file of files) {
108
+ const fullPath = `${basePath}/${file.relativePath}`;
109
+ const content = await readFileFromSandbox(orgId, fullPath);
110
+ const blob = new Blob([content]);
111
+ formData.append('files', blob, path.basename(file.relativePath));
112
+ formData.append('paths', file.relativePath);
113
+ }
114
+ const url = `${creds.endpoint}/api/v2/workspace/upload-folder`;
115
+ const headers = {
116
+ 'Authorization': `Bearer ${creds.token}`,
117
+ };
118
+ if (orgId) {
119
+ headers['X-Org-Id'] = orgId;
120
+ }
121
+ const response = await fetch(url, {
122
+ method: 'POST',
123
+ headers,
124
+ body: formData,
125
+ });
126
+ if (!response.ok) {
127
+ let errorMsg = `HTTP ${response.status}`;
128
+ try {
129
+ const errorData = await response.json();
130
+ errorMsg = errorData.message || errorMsg;
131
+ }
132
+ catch {
133
+ // Ignore parse error
134
+ }
135
+ return {
136
+ uploaded: 0,
137
+ errors: files.map(f => ({ path: f.relativePath, error: errorMsg })),
138
+ };
139
+ }
140
+ const data = await response.json();
141
+ return {
142
+ uploaded: data.data?.file_count ?? files.length,
143
+ errors: [],
144
+ };
145
+ }
146
+ /**
147
+ * Upload a batch with retry logic.
148
+ */
149
+ async function uploadBatchWithRetry(orgId, basePath, files, overwrite) {
150
+ let lastError = null;
151
+ for (let attempt = 1; attempt <= MAX_RETRIES; attempt++) {
152
+ try {
153
+ return await uploadBatch(orgId, basePath, files, overwrite);
154
+ }
155
+ catch (e) {
156
+ lastError = e instanceof Error ? e.message : String(e);
157
+ if (attempt < MAX_RETRIES) {
158
+ const delay = BACKOFF_BASE * Math.pow(2, attempt - 1);
159
+ await new Promise(resolve => setTimeout(resolve, delay));
160
+ }
161
+ }
162
+ }
163
+ return {
164
+ uploaded: 0,
165
+ errors: files.map(f => ({ path: f.relativePath, error: lastError || 'Upload failed after retries' })),
166
+ };
167
+ }
168
+ /**
169
+ * Update the local manifest after a successful upload so that
170
+ * the next /sync doesn't see these files as "changed remotely".
171
+ */
172
+ function updateManifestAfterUpload(uploadedFiles, basePath, orgId) {
173
+ ensureSyncDir();
174
+ let manifest = loadLocalManifest();
175
+ if (!manifest) {
176
+ manifest = {
177
+ version: 2,
178
+ updated_at: new Date().toISOString(),
179
+ org_id: orgId,
180
+ endpoint: loadCredentials()?.endpoint ?? '',
181
+ base_path: basePath,
182
+ files: [],
183
+ services_registry: {},
184
+ };
185
+ }
186
+ // Build a map for quick lookup
187
+ const fileMap = new Map();
188
+ for (const f of manifest.files) {
189
+ fileMap.set(f.path, f);
190
+ }
191
+ // Update entries for uploaded files
192
+ for (const uf of uploadedFiles) {
193
+ fileMap.set(uf.relativePath, {
194
+ path: uf.relativePath,
195
+ hash: uf.hash,
196
+ size: 0, // Size is not critical for conflict detection
197
+ });
198
+ }
199
+ manifest.files = Array.from(fileMap.values());
200
+ manifest.updated_at = new Date().toISOString();
201
+ saveLocalManifest(manifest);
202
+ }
203
+ /**
204
+ * Main upload orchestrator.
205
+ */
206
+ export async function runUpload(options, onProgress) {
207
+ const { basePath, pathFilter, orgId, force } = options;
208
+ const result = {
209
+ success: true,
210
+ filesUploaded: 0,
211
+ filesSkipped: 0,
212
+ errors: [],
213
+ conflicts: [],
214
+ };
215
+ const effectiveOrgId = orgId || loadCredentials()?.org_id;
216
+ if (!effectiveOrgId) {
217
+ throw new Error('No organization ID available. Authenticate first.');
218
+ }
219
+ // 1. Verify sandbox is available
220
+ const container = findSandboxContainer(effectiveOrgId);
221
+ if (!container) {
222
+ throw new Error(`Sandbox container not found for org ${effectiveOrgId}. Start the local deployment first.`);
223
+ }
224
+ // 2. List files from sandbox
225
+ onProgress?.('Scanning local files...');
226
+ const localFiles = listFilesForUpload(effectiveOrgId, basePath, pathFilter);
227
+ if (localFiles.length === 0) {
228
+ onProgress?.('No files found in selected folders.');
229
+ return result;
230
+ }
231
+ debugLog(`[upload] Found ${localFiles.length} files to upload`);
232
+ onProgress?.(`Found ${localFiles.length} file(s) to upload.`);
233
+ // 3. Check for conflicts (unless force)
234
+ if (!force) {
235
+ onProgress?.('Checking for remote conflicts...');
236
+ try {
237
+ const conflicts = await checkRemoteConflicts(localFiles, basePath, effectiveOrgId);
238
+ if (conflicts.length > 0) {
239
+ result.conflicts = conflicts;
240
+ debugLog(`[upload] ${conflicts.length} conflict(s) detected`);
241
+ // Caller (useInputDispatch) should prompt user for confirmation
242
+ return result;
243
+ }
244
+ }
245
+ catch (e) {
246
+ debugLog(`[upload] Conflict check failed (proceeding): ${e}`);
247
+ // If we can't check conflicts, proceed anyway
248
+ }
249
+ }
250
+ // 4. Upload in batches
251
+ const batches = splitIntoBatches(localFiles);
252
+ let batchNum = 0;
253
+ for (const batch of batches) {
254
+ batchNum++;
255
+ if (batches.length > 1) {
256
+ onProgress?.(`Uploading batch ${batchNum}/${batches.length} (${batch.length} files)...`);
257
+ }
258
+ else {
259
+ onProgress?.(`Uploading ${batch.length} file(s)...`);
260
+ }
261
+ const batchResult = await uploadBatchWithRetry(effectiveOrgId, basePath, batch, force ?? false);
262
+ result.filesUploaded += batchResult.uploaded;
263
+ result.errors.push(...batchResult.errors);
264
+ }
265
+ if (result.errors.length > 0) {
266
+ result.success = false;
267
+ }
268
+ // 5. Update local manifest
269
+ if (result.filesUploaded > 0) {
270
+ onProgress?.('Updating local manifest...');
271
+ try {
272
+ updateManifestAfterUpload(localFiles, basePath, effectiveOrgId);
273
+ }
274
+ catch (e) {
275
+ debugLog(`[upload] Manifest update failed: ${e}`);
276
+ // Non-fatal
277
+ }
278
+ }
279
+ onProgress?.(result.success
280
+ ? `Upload complete: ${result.filesUploaded} file(s) uploaded.`
281
+ : `Upload finished with errors: ${result.filesUploaded} uploaded, ${result.errors.length} failed.`);
282
+ return result;
283
+ }
284
+ //# sourceMappingURL=upload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../src/sync/upload.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@syntero/orca-cli",
3
- "version": "1.2.11",
3
+ "version": "1.2.12",
4
4
  "description": "LLM-powered deployment troubleshooting assistant for Orca",
5
5
  "type": "module",
6
6
  "bin": {