@almadar/workspace 0.10.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import path2 from 'path';
2
- import fs from 'fs';
2
+ import fs, { existsSync } from 'fs';
3
3
  import { execFile } from 'child_process';
4
+ import dugite from 'dugite';
4
5
  import { randomBytes, createHash } from 'crypto';
5
6
  import { EmbeddingClient } from '@almadar/llm';
6
7
  import os from 'os';
@@ -380,7 +381,10 @@ function createProjectOrbTemplate(projectName, appId) {
380
381
  function serializeJson(value) {
381
382
  return JSON.stringify(value, null, 2);
382
383
  }
383
- var GIT_BINARY = process.env.ALMADAR_GIT_BINARY || "git";
384
+ var { gitLocation: BUNDLED_GIT, env: BUNDLED_GIT_ENV } = dugite.setupEnvironment({});
385
+ var USE_BUNDLED = !process.env.ALMADAR_GIT_BINARY && existsSync(BUNDLED_GIT);
386
+ var GIT_BINARY = process.env.ALMADAR_GIT_BINARY || (USE_BUNDLED ? BUNDLED_GIT : "git");
387
+ var GIT_ENV = USE_BUNDLED ? { ...process.env, ...BUNDLED_GIT_ENV } : process.env;
384
388
  var GitClient = class {
385
389
  constructor(cwd, backend) {
386
390
  this.cwd = cwd;
@@ -506,7 +510,7 @@ var GitClient = class {
506
510
  };
507
511
  function execGit(args, cwd) {
508
512
  return new Promise((resolve, reject) => {
509
- execFile(GIT_BINARY, args, { cwd, maxBuffer: 64 * 1024 * 1024 }, (err, stdout, stderr) => {
513
+ execFile(GIT_BINARY, args, { cwd, env: GIT_ENV, maxBuffer: 64 * 1024 * 1024 }, (err, stdout, stderr) => {
510
514
  if (err) {
511
515
  const message = stderr?.trim() || stdout?.trim() || err.message;
512
516
  reject(new Error(`git ${args[0]}: ${message}`));
@@ -2209,10 +2213,14 @@ var WorkspaceServiceImpl = class {
2209
2213
  await this.backend.rm(cloneDir, { recursive: true }).catch(() => {
2210
2214
  });
2211
2215
  await this.git.cloneBundle(bundlePath, cloneDir);
2212
- await this.backend.rm(this.workDir, { recursive: true });
2213
- await this.backend.rename(cloneDir, this.workDir);
2216
+ const dotGit = path2.join(this.workDir, ".git");
2217
+ await this.backend.rm(dotGit, { recursive: true }).catch(() => {
2218
+ });
2219
+ await this.backend.rename(path2.join(cloneDir, ".git"), dotGit);
2214
2220
  return true;
2215
2221
  } finally {
2222
+ await this.backend.rm(cloneDir, { recursive: true }).catch(() => {
2223
+ });
2216
2224
  await this.backend.rm(bundlePath).catch(() => {
2217
2225
  });
2218
2226
  }
@@ -2373,7 +2381,11 @@ async function openWorkspaceInternal(opts) {
2373
2381
  }
2374
2382
  let git;
2375
2383
  if (!bare && opts.backend !== "memory") {
2376
- git = await ensureGitInit(backend, resolved.workDir);
2384
+ try {
2385
+ git = await ensureGitInit(backend, resolved.workDir);
2386
+ } catch {
2387
+ git = void 0;
2388
+ }
2377
2389
  }
2378
2390
  const service = new WorkspaceServiceImpl({
2379
2391
  workDir: resolved.workDir,