automata-cli 0.10.0 → 0.11.0-develop.457

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.
@@ -10,7 +10,7 @@ import {
10
10
  readConfig,
11
11
  readRawConfig,
12
12
  writeConfig
13
- } from "./chunk-YQ2FLG7W.js";
13
+ } from "./chunk-OUJQLQP3.js";
14
14
 
15
15
  // src/config/ConfigWizard.tsx
16
16
  import { useState } from "react";
@@ -17,8 +17,8 @@ var DEFAULT_DO_WORK = {
17
17
  postRunLog: true
18
18
  };
19
19
  var DEFAULT_DO_WORK_ISSUE_DISCUSS_PROMPT = "You are the agent named in the context below, working on a GitHub issue together with the people allowed to instruct you. Answer the messages marked NEW; the earlier messages are context only.\n\nDo not modify, create or delete any file, and do not create a branch or a pull request, UNLESS a message marked NEW explicitly asks you to implement the work. If it does: create a branch off the base branch named below, implement the change following the project's existing conventions, run the tests and the linter, and open a pull request whose body contains `Closes #<issue number>`.\n\nOtherwise do not touch the code at all: reply on the issue with the specification, the plan, or the open questions you need answered. Keep the reply short and concrete.\n\nEither way, always post a reply on the issue before you finish \u2014 including when you implemented and opened a pull request. Silence is indistinguishable from a crash, and the run will be reported as having produced no answer.";
20
- var DEFAULT_DO_WORK_PR_WORK_PROMPT = "You are the agent named in the context below, working on the pull request for a GitHub issue together with the people allowed to instruct you. Work on the branch named below, which is already checked out and up to date.\n\nAddress every message marked NEW and every unresolved review thread listed. Follow the project's existing conventions, run the tests and the linter, then commit and push to that branch. Do not merge the pull request and do not push to the base branch.\n\nReply on the pull request with a short summary of what you changed, or reply in the review thread when your answer belongs to a specific comment. Always post a reply \u2014 silence looks like a crash.";
21
- var DEFAULT_DO_WORK_PR_ORPHAN_PROMPT = "You are the agent named in the context below, working on a pull request that is not linked to any issue \u2014 a dependency bump, or another change opened without one \u2014 together with the people allowed to instruct you. Work on the branch named below, which is already checked out and up to date.\n\nAddress every message marked NEW and every unresolved review thread listed. Typical work here is finding out why the checks are failing, bringing the branch up to date with the base branch, and fixing whatever the change needs in order to be mergeable. Follow the project's existing conventions, run the tests and the linter, then commit and push to that branch.\n\nDo not merge the pull request, do not close it, and do not push to the base branch. If you conclude that it should be merged or closed, say so in your reply and leave the decision to the humans.\n\nReply on the pull request with a short summary of what you did and what you recommend, or reply in the review thread when your answer belongs to a specific comment. Always post a reply \u2014 silence looks like a crash.";
20
+ var DEFAULT_DO_WORK_PR_WORK_PROMPT = "You are the agent named in the context below, working on the pull request for a GitHub issue together with the people allowed to instruct you. Work on the branch named below, which is already checked out and up to date.\n\nAddress every message marked NEW and every unresolved review thread listed. Follow the project's existing conventions, run the tests and the linter, then commit and push to that branch. Do not merge the pull request and do not push to the base branch.\n\nOnce a review thread is fixed and pushed, resolve it (GraphQL `resolveReviewThread`) after replying; leave open any thread you did not fix. Reply on the pull request with a short summary of what you changed, or reply in the review thread when your answer belongs to a specific comment. Always post a reply \u2014 silence looks like a crash.";
21
+ var DEFAULT_DO_WORK_PR_ORPHAN_PROMPT = "You are the agent named in the context below, working on a pull request that is not linked to any issue \u2014 a dependency bump, or another change opened without one \u2014 together with the people allowed to instruct you. Work on the branch named below, which is already checked out and up to date.\n\nAddress every message marked NEW and every unresolved review thread listed. Typical work here is finding out why the checks are failing, bringing the branch up to date with the base branch, and fixing whatever the change needs in order to be mergeable. Follow the project's existing conventions, run the tests and the linter, then commit and push to that branch.\n\nDo not merge the pull request, do not close it, and do not push to the base branch. If you conclude that it should be merged or closed, say so in your reply and leave the decision to the humans.\n\nOnce a review thread is fixed and pushed, resolve it (GraphQL `resolveReviewThread`) after replying; leave open any thread you did not fix. Reply on the pull request with a short summary of what you did and what you recommend, or reply in the review thread when your answer belongs to a specific comment. Always post a reply \u2014 silence looks like a crash.";
22
22
  var CONFIG_DIR = ".automata";
23
23
  var CONFIG_FILE = "config.json";
24
24
  function configPath() {
package/dist/index.js CHANGED
@@ -11,7 +11,7 @@ import {
11
11
  readConfig,
12
12
  readRawConfig,
13
13
  writeConfig
14
- } from "./chunk-YQ2FLG7W.js";
14
+ } from "./chunk-OUJQLQP3.js";
15
15
 
16
16
  // src/index.ts
17
17
  import { Command as Command7 } from "commander";
@@ -321,7 +321,7 @@ var configCommand = new Command("config").description("Configure automata settin
321
321
  const [{ render }, React, { ConfigWizard }] = await Promise.all([
322
322
  import("ink"),
323
323
  import("react"),
324
- import("./ConfigWizard-FVFD5WFI.js")
324
+ import("./ConfigWizard-QZ2CJJS3.js")
325
325
  ]);
326
326
  const { waitUntilExit } = render(React.createElement(ConfigWizard));
327
327
  await waitUntilExit();
@@ -331,13 +331,135 @@ var configCommand = new Command("config").description("Configure automata settin
331
331
  import { Command as Command2 } from "commander";
332
332
 
333
333
  // src/git/gitService.ts
334
- import { spawnSync as spawnSync2 } from "child_process";
334
+ import { spawnSync as spawnSync3 } from "child_process";
335
335
  import { existsSync } from "fs";
336
336
 
337
- // src/config/azdoService.ts
337
+ // src/remote/azdoPrerequisites.ts
338
338
  import { spawnSync } from "child_process";
339
+ var MIN_AZDO_VERSION = "0.20.0";
340
+ var AZDO_NO_UPDATE_CHECK = "--no-update-check";
341
+ function defaultRunner(args) {
342
+ const result = spawnSync("azdo", args, { encoding: "utf8" });
343
+ const code = result.error?.code;
344
+ return {
345
+ stdout: result.stdout ?? "",
346
+ stderr: result.stderr ?? "",
347
+ status: result.status ?? 1,
348
+ missing: code === "ENOENT"
349
+ };
350
+ }
351
+ function parseVersion(text) {
352
+ const match = /(\d{1,9})\.(\d{1,9})\.(\d{1,9})(?:-([0-9A-Za-z.-]{1,64}))?/.exec(text);
353
+ if (!match) return null;
354
+ return { parts: [Number(match[1]), Number(match[2]), Number(match[3])], prerelease: match[4] ?? null };
355
+ }
356
+ function compareVersions(a, b) {
357
+ for (let i = 0; i < 3; i++) {
358
+ if (a.parts[i] !== b.parts[i]) return a.parts[i] < b.parts[i] ? -1 : 1;
359
+ }
360
+ if (a.prerelease === b.prerelease) return 0;
361
+ if (a.prerelease === null) return 1;
362
+ if (b.prerelease === null) return -1;
363
+ return a.prerelease < b.prerelease ? -1 : 1;
364
+ }
365
+ function formatVersion(v) {
366
+ return v.parts.join(".") + (v.prerelease ? `-${v.prerelease}` : "");
367
+ }
368
+ function extractIdentity(stdout) {
369
+ try {
370
+ const parsed = JSON.parse(stdout);
371
+ const id = parsed.identity;
372
+ if (typeof id === "string" && id) return id;
373
+ if (id && typeof id === "object") {
374
+ const o = id;
375
+ for (const key of ["displayName", "uniqueName", "providerDisplayName", "id"]) {
376
+ if (typeof o[key] === "string" && o[key]) return o[key];
377
+ }
378
+ }
379
+ } catch {
380
+ }
381
+ return null;
382
+ }
383
+ function checkAzdoPrerequisites(run5 = defaultRunner) {
384
+ const v = run5(["--version", AZDO_NO_UPDATE_CHECK]);
385
+ if (v.missing) {
386
+ return { ok: false, reason: "missing", message: "`azdo` CLI is not installed or not on PATH." };
387
+ }
388
+ const version2 = v.status === 0 ? parseVersion(v.stdout) : null;
389
+ if (!version2) {
390
+ return { ok: false, reason: "missing", message: "Could not determine the `azdo` CLI version (`azdo --version`)." };
391
+ }
392
+ const min = parseVersion(MIN_AZDO_VERSION);
393
+ if (compareVersions(version2, min) < 0) {
394
+ return {
395
+ ok: false,
396
+ reason: "too-old",
397
+ message: `azdo-cli ${formatVersion(version2)} is too old; ${MIN_AZDO_VERSION} or newer is required.`
398
+ };
399
+ }
400
+ const auth = run5(["auth", "diagnose", "--json", AZDO_NO_UPDATE_CHECK]);
401
+ const identity = auth.status === 0 ? extractIdentity(auth.stdout) : null;
402
+ if (!identity) {
403
+ return {
404
+ ok: false,
405
+ reason: "unauthenticated",
406
+ message: "`azdo` is not authenticated. Run `azdo auth login` and check `azdo auth diagnose`."
407
+ };
408
+ }
409
+ return { ok: true, version: formatVersion(version2), identity };
410
+ }
411
+ var verified = null;
412
+ function assertAzdoReady(run5) {
413
+ if (verified?.ok) return;
414
+ const result = checkAzdoPrerequisites(run5);
415
+ if (!result.ok) throw new Error(result.message);
416
+ verified = result;
417
+ }
418
+
419
+ // src/remote/originUrl.ts
420
+ function strip(name) {
421
+ return decodeURIComponent(name).replace(/\.git$/, "");
422
+ }
423
+ function orNull(parse) {
424
+ try {
425
+ return parse();
426
+ } catch (error) {
427
+ if (error instanceof URIError) return null;
428
+ throw error;
429
+ }
430
+ }
431
+ function parseGitHub(url) {
432
+ const match = /^(?:https?:\/\/(?:[^@/]+@)?(?:www\.)?github\.com\/|(?:ssh:\/\/)?git@github\.com[:/])([^/]+)\/([^/]+?)(?:\.git)?\/?$/i.exec(
433
+ url
434
+ );
435
+ return match ? { kind: "github", owner: match[1], repo: match[2] } : null;
436
+ }
437
+ function parseAzdo(url) {
438
+ const dev = /^https?:\/\/(?:[^@/]+@)?dev\.azure\.com\/([^/]+)\/([^/]+)\/_git\/([^/?#]+)\/?$/.exec(url);
439
+ if (dev) {
440
+ return { kind: "azdo", organization: strip(dev[1]), project: strip(dev[2]), repo: strip(dev[3]) };
441
+ }
442
+ const vs = /^https?:\/\/(?:[^@/]+@)?([^./]+)\.visualstudio\.com\/(?:DefaultCollection\/)?([^/]+)\/_git\/([^/?#]+)\/?$/i.exec(
443
+ url
444
+ );
445
+ if (vs) {
446
+ return { kind: "azdo", organization: strip(vs[1]), project: strip(vs[2]), repo: strip(vs[3]) };
447
+ }
448
+ const ssh = /^(?:ssh:\/\/)?(?:[^@/]+@)?ssh\.dev\.azure\.com[:/]v3\/([^/]+)\/([^/]+)\/([^/?#]+?)\/?$/.exec(url);
449
+ if (ssh) {
450
+ return { kind: "azdo", organization: strip(ssh[1]), project: strip(ssh[2]), repo: strip(ssh[3]) };
451
+ }
452
+ return null;
453
+ }
454
+ function parseOrigin(rawUrl) {
455
+ const url = rawUrl.trim();
456
+ return orNull(() => parseAzdo(url) ?? parseGitHub(url));
457
+ }
458
+
459
+ // src/config/azdoService.ts
460
+ import { spawnSync as spawnSync2 } from "child_process";
339
461
  function run(cmd, args) {
340
- const result = spawnSync(cmd, args, { encoding: "utf8" });
462
+ const result = spawnSync2(cmd, args, { encoding: "utf8" });
341
463
  if (result.error) {
342
464
  const err = result.error;
343
465
  if (err.code === "ENOENT") {
@@ -363,24 +485,85 @@ function mapStatus(azdoStatus) {
363
485
  return azdoStatus.toUpperCase();
364
486
  }
365
487
  }
366
- function getPrInfo() {
367
- const { stdout, stderr, status } = run("azdo", ["pr", "status", "--json"]);
368
- if (status !== 0) {
369
- throw new Error(stderr.trim() || "Failed to query Azure DevOps PR status. Is `azdo` installed and authenticated?");
488
+ function mapCheckState(state) {
489
+ switch (state) {
490
+ case "succeeded":
491
+ return { status: "COMPLETED", conclusion: "SUCCESS" };
492
+ case "failed":
493
+ case "rejected":
494
+ case "error":
495
+ return { status: "COMPLETED", conclusion: "FAILURE" };
496
+ case "notApplicable":
497
+ case "notSet":
498
+ return { status: "COMPLETED", conclusion: "SKIPPED" };
499
+ case "queued":
500
+ return { status: "QUEUED", conclusion: null };
501
+ case "running":
502
+ return { status: "IN_PROGRESS", conclusion: null };
503
+ default:
504
+ return { status: "PENDING", conclusion: null };
370
505
  }
371
- const parsed = JSON.parse(stdout);
372
- if (parsed.pullRequests.length === 0) {
373
- return null;
506
+ }
507
+ function mapRunState(run5) {
508
+ if (run5.state !== "completed") return "pending";
509
+ switch (run5.result) {
510
+ case "succeeded":
511
+ return "succeeded";
512
+ case "failed":
513
+ return "failed";
514
+ case "canceled":
515
+ return "error";
516
+ default:
517
+ return "pending";
374
518
  }
375
- const pr = parsed.pullRequests[0];
519
+ }
520
+ function toPrCheck(check) {
376
521
  return {
377
- number: pr.id,
378
- title: pr.title,
379
- state: mapStatus(pr.status),
380
- url: pr.url,
381
- checks: []
522
+ name: check.name,
523
+ ...mapCheckState(check.state),
524
+ description: check.description ?? "",
525
+ detailsUrl: check.targetUrl ?? ""
382
526
  };
383
527
  }
528
+ function runJson(args, failure) {
529
+ const { stdout, stderr, status } = run("azdo", [...args, "--json", "--no-update-check"]);
530
+ if (status !== 0) {
531
+ throw new Error(stderr.trim() || failure);
532
+ }
533
+ return JSON.parse(stdout);
534
+ }
535
+ function toPrInfo(pr, checks) {
536
+ return { number: pr.id, title: pr.title, state: mapStatus(pr.status), url: pr.url, checks };
537
+ }
538
+ function getBranchPrInfo(branch) {
539
+ const listed = runJson(
540
+ ["pr", "list", "--branch", branch, "--status", "all"],
541
+ "Failed to list Azure DevOps pull requests. Is `azdo` installed and authenticated?"
542
+ );
543
+ const pr = listed.pullRequests[0];
544
+ if (pr === void 0) return null;
545
+ const runs = runJson(
546
+ ["pipeline", "get-runs", "--pr", String(pr.id)],
547
+ "Failed to list Azure DevOps pipeline runs for the pull request."
548
+ );
549
+ const checks = runs.map(
550
+ (r) => toPrCheck({ state: mapRunState(r), name: `Build ${r.name ?? String(r.id)}` })
551
+ );
552
+ return toPrInfo(pr, checks);
553
+ }
554
+ function getPrInfo(branch) {
555
+ if (branch !== void 0) return getBranchPrInfo(branch);
556
+ const parsed = runJson(
557
+ ["pr", "status"],
558
+ "Failed to query Azure DevOps PR status. Is `azdo` installed and authenticated?"
559
+ );
560
+ const pr = parsed.pullRequests[0];
561
+ if (pr === void 0) return null;
562
+ if (pr.checksError) {
563
+ throw new Error(`Azure DevOps could not retrieve the checks of PR #${pr.id}: ${pr.checksError}`);
564
+ }
565
+ return toPrInfo(pr, (pr.checks ?? []).map(toPrCheck));
566
+ }
384
567
 
385
568
  // src/remote/backend.ts
386
569
  var AZDO_GAP_DOC = "docs/azdo-gap.md";
@@ -471,7 +654,7 @@ Set it explicitly with: automata config set git-trunk-branch <branch>`;
471
654
  // src/git/gitService.ts
472
655
  function run2(cmd, args) {
473
656
  const startedAt = Date.now();
474
- const result = spawnSync2(cmd, args, { encoding: "utf8" });
657
+ const result = spawnSync3(cmd, args, { encoding: "utf8" });
475
658
  const status = result.status ?? 1;
476
659
  recordCommand(cmd, args, startedAt, result.error ? -1 : status);
477
660
  return {
@@ -493,11 +676,15 @@ function parseOwnerRepo() {
493
676
  const { stdout, status } = run2("git", ["remote", "get-url", "origin"]);
494
677
  if (status !== 0) return null;
495
678
  const url = stdout.trim();
496
- const https = /github\.com\/([^/]+\/[^/]+?)(?:\.git)?$/.exec(url);
497
- if (https) return https[1];
498
- const ssh = /github\.com:([^/]+\/[^/]+?)(?:\.git)?$/.exec(url);
499
- if (ssh) return ssh[1];
500
- return null;
679
+ const origin = parseOrigin(url);
680
+ return origin?.kind === "github" ? `${origin.owner}/${origin.repo}` : null;
681
+ }
682
+ function assertAzdoRemote() {
683
+ const { stdout, status } = run2("git", ["remote", "get-url", "origin"]);
684
+ if (status === 0 && parseOrigin(stdout)?.kind === "github") {
685
+ throw new Error("remoteType is `azdo` but `origin` is a GitHub URL. Fix `remoteType` in .automata/config.json.");
686
+ }
687
+ assertAzdoReady();
501
688
  }
502
689
  function extractLastMarkdownUrl(markdown) {
503
690
  const matches = [...markdown.matchAll(/\]\((https?:\/\/[^)]+)\)/g)];
@@ -904,26 +1091,26 @@ async function getPrInfoGh(branch) {
904
1091
  detailsUrl: enriched?.detailsUrl || c.detailsUrl || ""
905
1092
  };
906
1093
  });
907
- const sonarCheck = checks.find((c) => isSonarUrl(c.detailsUrl));
908
- const sonar = sonarCheck === void 0 ? void 0 : await describeSonarCheck(sonarCheck, raw.number);
1094
+ return withSonar({ number: raw.number, title: raw.title, state: raw.state, url: raw.url, checks });
1095
+ }
1096
+ async function withSonar(pr) {
1097
+ const sonarCheck = pr.checks.find((c) => isSonarUrl(c.detailsUrl));
1098
+ if (sonarCheck === void 0) return pr;
1099
+ const sonar = await describeSonarCheck(sonarCheck, pr.number);
909
1100
  return {
910
- number: raw.number,
911
- title: raw.title,
912
- state: raw.state,
913
- url: raw.url,
914
- checks,
915
- ...sonar === void 0 ? {} : {
916
- sonarcloudUrl: sonar.sonarcloudUrl,
917
- sonarNewIssues: sonar.sonarNewIssues,
918
- sonarNewIssuesNote: sonar.sonarNewIssuesNote
919
- },
920
- ...sonar?.sonarFailures === void 0 ? {} : { sonarFailures: sonar.sonarFailures }
1101
+ ...pr,
1102
+ sonarcloudUrl: sonar.sonarcloudUrl,
1103
+ sonarNewIssues: sonar.sonarNewIssues,
1104
+ sonarNewIssuesNote: sonar.sonarNewIssuesNote,
1105
+ ...sonar.sonarFailures === void 0 ? {} : { sonarFailures: sonar.sonarFailures }
921
1106
  };
922
1107
  }
923
1108
  async function getPrInfo2(branch) {
924
1109
  const config = readConfig();
925
1110
  if (selectBackend(config) === "azdo") {
926
- return getPrInfo();
1111
+ assertAzdoRemote();
1112
+ const pr = getPrInfo(branch === getCurrentBranch() ? void 0 : branch);
1113
+ return pr === null ? null : withSonar(pr);
927
1114
  }
928
1115
  return getPrInfoGh(branch);
929
1116
  }
@@ -1838,11 +2025,11 @@ import { createInterface as createInterface2 } from "readline";
1838
2025
  import { Command as Command3 } from "commander";
1839
2026
 
1840
2027
  // src/config/githubService.ts
1841
- import { spawnSync as spawnSync3 } from "child_process";
2028
+ import { spawnSync as spawnSync4 } from "child_process";
1842
2029
  var GITHUB_ISSUE_COMMENT_URL_RE = /github\.com\/([^/]+\/[^/]+)\/issues\/\d+#issuecomment-(\d+)/;
1843
2030
  function run3(cmd, args) {
1844
2031
  const startedAt = Date.now();
1845
- const result = spawnSync3(cmd, args, { encoding: "utf8" });
2032
+ const result = spawnSync4(cmd, args, { encoding: "utf8" });
1846
2033
  recordCommand(cmd, args, startedAt, result.error ? -1 : result.status ?? 1);
1847
2034
  if (result.error) {
1848
2035
  const err = result.error;
@@ -1997,10 +2184,10 @@ function addCopilotReviewer(prNumber) {
1997
2184
  }
1998
2185
 
1999
2186
  // src/github/ghWorkService.ts
2000
- import { spawnSync as spawnSync4 } from "child_process";
2187
+ import { spawnSync as spawnSync5 } from "child_process";
2001
2188
  function run4(cmd, args) {
2002
2189
  const startedAt = Date.now();
2003
- const result = spawnSync4(cmd, args, { encoding: "utf8" });
2190
+ const result = spawnSync5(cmd, args, { encoding: "utf8" });
2004
2191
  recordCommand(cmd, args, startedAt, result.error ? -1 : result.status ?? 1);
2005
2192
  if (result.error) {
2006
2193
  const err = result.error;
@@ -2448,7 +2635,7 @@ function parseCreatedPrUrl(stdout, head) {
2448
2635
  }
2449
2636
 
2450
2637
  // src/claude/claudeService.ts
2451
- import { spawn, spawnSync as spawnSync5 } from "child_process";
2638
+ import { spawn, spawnSync as spawnSync6 } from "child_process";
2452
2639
  import { createInterface } from "readline";
2453
2640
 
2454
2641
  // src/cli/spawnUtils.ts
@@ -2633,7 +2820,7 @@ function invokeClaudeCode(prompt, options = {}) {
2633
2820
  function invokeClaudeCodeSync(prompt, yolo, model, effort) {
2634
2821
  const claudeBin = resolveCommand("claude");
2635
2822
  const args = buildClaudeArgs(prompt, { yolo, model, effort, verbose: false });
2636
- const result = spawnSync5(claudeBin, args, { encoding: "utf8", stdio: "inherit" });
2823
+ const result = spawnSync6(claudeBin, args, { encoding: "utf8", stdio: "inherit" });
2637
2824
  handleSpawnError(result.error, "claude");
2638
2825
  handleExitCode(result.status, "Claude Code");
2639
2826
  }
@@ -2739,7 +2926,7 @@ function summarizeTool(name, input) {
2739
2926
  }
2740
2927
 
2741
2928
  // src/codex/codexService.ts
2742
- import { spawn as spawn2, spawnSync as spawnSync6 } from "child_process";
2929
+ import { spawn as spawn2, spawnSync as spawnSync7 } from "child_process";
2743
2930
  function toTomlBasicString(value) {
2744
2931
  return JSON.stringify(value);
2745
2932
  }
@@ -2760,7 +2947,7 @@ function invokeCodexCode(prompt, options = {}) {
2760
2947
  function invokeCodexCodeSync(prompt, yolo, model, effort) {
2761
2948
  const codexBin = resolveCommand("codex");
2762
2949
  const args = buildCodexArgs(prompt, { yolo, model, effort });
2763
- const result = spawnSync6(codexBin, args, { encoding: "utf8", stdio: "inherit" });
2950
+ const result = spawnSync7(codexBin, args, { encoding: "utf8", stdio: "inherit" });
2764
2951
  handleSpawnError(result.error, "codex");
2765
2952
  handleExitCode(result.status, "Codex");
2766
2953
  }
@@ -5414,11 +5601,11 @@ function readWorkRecords(options = {}) {
5414
5601
  }
5415
5602
 
5416
5603
  // src/git/repoStatus.ts
5417
- import { spawnSync as spawnSync7 } from "child_process";
5604
+ import { spawnSync as spawnSync8 } from "child_process";
5418
5605
  var GIT_BIN = resolveCommand("git");
5419
5606
  function git(args) {
5420
5607
  const startedAt = Date.now();
5421
- const result = spawnSync7(GIT_BIN, args, { encoding: "utf8" });
5608
+ const result = spawnSync8(GIT_BIN, args, { encoding: "utf8" });
5422
5609
  const status = result.status ?? 1;
5423
5610
  recordCommand(GIT_BIN, args, startedAt, result.error ? -1 : status);
5424
5611
  return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "automata-cli",
3
- "version": "0.10.0",
3
+ "version": "0.11.0-develop.457",
4
4
  "description": "Automata CLI tool",
5
5
  "type": "module",
6
6
  "engines": {