@staff0rd/assist 0.661.0 → 0.663.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
@@ -6,7 +6,7 @@ import { Command } from "commander";
6
6
  // package.json
7
7
  var package_default = {
8
8
  name: "@staff0rd/assist",
9
- version: "0.661.0",
9
+ version: "0.663.0",
10
10
  type: "module",
11
11
  main: "dist/index.js",
12
12
  bin: {
@@ -651,8 +651,7 @@ var DEFAULT_BACKUP_DIR = "~/.assist/backups";
651
651
  var DEFAULT_CLONE_DIR = "~/git";
652
652
  var assistConfigShape = {
653
653
  advice: z3.strictObject({
654
- include: z3.array(z3.enum(adviceFragmentNames)).default([]),
655
- exclude: z3.array(z3.enum(adviceFragmentNames)).default([]),
654
+ fragments: z3.partialRecord(z3.enum(adviceFragmentNames), z3.boolean()).default({}),
656
655
  extra: z3.string().optional(),
657
656
  verify: z3.string().optional()
658
657
  }).optional(),
@@ -2870,8 +2869,7 @@ function configHelp(command, entries, preamble) {
2870
2869
 
2871
2870
  // src/shared/configEnumDescriptions.ts
2872
2871
  var byKey = {
2873
- "advice.include": adviceFragmentTitles,
2874
- "advice.exclude": adviceFragmentTitles
2872
+ "advice.fragments": adviceFragmentTitles
2875
2873
  };
2876
2874
  function configEnumDescriptions(key) {
2877
2875
  return byKey[key];
@@ -3002,11 +3000,24 @@ function unionOfObjectsConfigNode(inner, base, build2) {
3002
3000
  }
3003
3001
 
3004
3002
  // src/shared/recordConfigNode.ts
3003
+ function enumKeyValues(keyType, base, build2) {
3004
+ if (!keyType) return void 0;
3005
+ const key = build2(keyType, base.path);
3006
+ return key.kind === "scalar" ? key.enumValues : void 0;
3007
+ }
3005
3008
  function recordConfigNode(inner, base, build2) {
3006
3009
  const valueType = inner.def?.valueType;
3007
3010
  if (inner.def?.type !== "record" || !valueType) return void 0;
3008
3011
  const value = build2(valueType, [...base.path, { kind: "entry" }]);
3009
- return { ...base, kind: "record", value };
3012
+ const keyValues = enumKeyValues(inner.def?.keyType, base, build2);
3013
+ const keyDescriptions = keyValues ? configEnumDescriptions(formatConfigPath(base.path)) : void 0;
3014
+ return {
3015
+ ...base,
3016
+ kind: "record",
3017
+ value,
3018
+ ...keyValues ? { keyValues } : {},
3019
+ ...keyDescriptions ? { keyDescriptions } : {}
3020
+ };
3010
3021
  }
3011
3022
 
3012
3023
  // src/shared/scalarConfigNode.ts
@@ -3101,14 +3112,9 @@ function enumerateConfigLeafKeys(schema2) {
3101
3112
  // src/commands/advise/adviceConfigHelp.ts
3102
3113
  var adviceConfigHelp = [
3103
3114
  {
3104
- key: "advice.include",
3105
- setter: 'assist config set advice.include "refactor"',
3106
- note: "fragment names included whatever their condition says; 'assist advise --explain' lists every name"
3107
- },
3108
- {
3109
- key: "advice.exclude",
3110
- setter: 'assist config set advice.exclude "jira-context"',
3111
- note: "fragment names dropped even when their condition matches; 'assist advise --explain' lists every name"
3115
+ key: "advice.fragments",
3116
+ setter: "assist config set advice.fragments.verify false",
3117
+ note: "force a fragment on (true) or off (false) whatever its condition says; 'assist advise --explain' lists every name"
3112
3118
  },
3113
3119
  {
3114
3120
  key: "advice.extra",
@@ -5369,13 +5375,14 @@ var adviceConditions = {
5369
5375
 
5370
5376
  // src/commands/advise/selectAdvice.ts
5371
5377
  function decide(fragment, context) {
5372
- const advice = context.config.advice;
5373
- const exclude = advice?.exclude ?? [];
5374
- const include = advice?.include ?? [];
5375
- if (exclude.includes(fragment.name))
5376
- return { fragment, included: false, reason: "excluded by advice.exclude" };
5377
- if (include.includes(fragment.name))
5378
- return { fragment, included: true, reason: "included by advice.include" };
5378
+ const fragments = context.config.advice?.fragments ?? {};
5379
+ const override = fragments[fragment.name];
5380
+ if (override !== void 0)
5381
+ return {
5382
+ fragment,
5383
+ included: override,
5384
+ reason: `advice.fragments.${fragment.name} is ${override}`
5385
+ };
5379
5386
  const condition = adviceConditions[fragment.when];
5380
5387
  if (!condition)
5381
5388
  return {
@@ -27491,6 +27498,32 @@ async function reply(commentId, body) {
27491
27498
  }
27492
27499
  }
27493
27500
 
27501
+ // src/commands/prs/status/fetchReviewThreads.ts
27502
+ import { execSync as execSync51 } from "child_process";
27503
+ var THREAD_QUERY2 = `query($owner: String!, $repo: String!, $prNumber: Int!) { repository(owner: $owner, name: $repo) { pullRequest(number: $prNumber) { reviewThreads(first: 100) { nodes { isResolved } } } } }`;
27504
+ function fetchReviewThreads(org, repo, prNumber) {
27505
+ const output = execSync51(
27506
+ `gh api graphql -f query='${THREAD_QUERY2}' -F owner=${org} -F repo=${repo} -F prNumber=${prNumber}`,
27507
+ { encoding: "utf8", stdio: ["ignore", "pipe", "pipe"] }
27508
+ );
27509
+ const nodes = JSON.parse(output)?.data?.repository?.pullRequest?.reviewThreads?.nodes;
27510
+ if (!Array.isArray(nodes)) {
27511
+ throw new Error("unexpected response from gh api graphql");
27512
+ }
27513
+ return nodes;
27514
+ }
27515
+
27516
+ // src/commands/prs/status/countUnresolvedThreads.ts
27517
+ function countUnresolvedThreads(org, repo, prNumber) {
27518
+ try {
27519
+ return fetchReviewThreads(org, repo, prNumber).filter(
27520
+ (thread) => !thread.isResolved
27521
+ ).length;
27522
+ } catch {
27523
+ return null;
27524
+ }
27525
+ }
27526
+
27494
27527
  // src/commands/prs/status/describeFetchError.ts
27495
27528
  function firstLine2(text18) {
27496
27529
  const line = text18.split("\n").map((candidate) => candidate.trim()).find((candidate) => candidate.length > 0);
@@ -27515,10 +27548,10 @@ function describeFetchError(error) {
27515
27548
  }
27516
27549
 
27517
27550
  // src/commands/prs/status/fetchRepoPullRequests.ts
27518
- import { execSync as execSync51 } from "child_process";
27551
+ import { execSync as execSync52 } from "child_process";
27519
27552
  var FIELDS = "number,title,url,author,isDraft,createdAt,updatedAt,reviewDecision,latestReviews,statusCheckRollup,mergeable";
27520
27553
  function fetchRepoPullRequests(org, repo) {
27521
- const output = execSync51(
27554
+ const output = execSync52(
27522
27555
  `gh pr list --state open --json ${FIELDS} --limit 100 -R ${org}/${repo}`,
27523
27556
  { encoding: "utf8", stdio: ["ignore", "pipe", "pipe"] }
27524
27557
  );
@@ -27577,7 +27610,7 @@ function toReviews(pr) {
27577
27610
  state: review2.state ?? "UNKNOWN"
27578
27611
  }));
27579
27612
  }
27580
- function toPrStatus(pr, now = Date.now()) {
27613
+ function toPrStatus(pr, unresolvedThreads, now = Date.now()) {
27581
27614
  const age = describeAge(pr.updatedAt, now);
27582
27615
  return {
27583
27616
  number: pr.number,
@@ -27593,7 +27626,8 @@ function toPrStatus(pr, now = Date.now()) {
27593
27626
  reviewDecision: pr.reviewDecision || null,
27594
27627
  reviews: toReviews(pr),
27595
27628
  checks: summariseChecks(pr.statusCheckRollup),
27596
- mergeable: pr.mergeable || "UNKNOWN"
27629
+ mergeable: pr.mergeable || "UNKNOWN",
27630
+ unresolvedThreads
27597
27631
  };
27598
27632
  }
27599
27633
 
@@ -27612,7 +27646,11 @@ function buildPrsStatusReport(repoArguments, now = Date.now()) {
27612
27646
  const repo = `${parsed.org}/${parsed.repo}`;
27613
27647
  try {
27614
27648
  const pullRequests = fetchRepoPullRequests(parsed.org, parsed.repo).map(
27615
- (pr) => toPrStatus(pr, now)
27649
+ (pr) => toPrStatus(
27650
+ pr,
27651
+ countUnresolvedThreads(parsed.org, parsed.repo, pr.number),
27652
+ now
27653
+ )
27616
27654
  );
27617
27655
  report2.repos.push({ repo, pullRequests });
27618
27656
  } catch (error) {
@@ -27652,6 +27690,13 @@ function checkLines(pr) {
27652
27690
  }
27653
27691
  return lines2;
27654
27692
  }
27693
+ function threadsLine(pr) {
27694
+ if (pr.unresolvedThreads === null) {
27695
+ return chalk186.dim("unresolved comments: unknown");
27696
+ }
27697
+ if (pr.unresolvedThreads === 0) return null;
27698
+ return chalk186.yellow(`unresolved comments: ${pr.unresolvedThreads}`);
27699
+ }
27655
27700
  function mergeableLine(pr) {
27656
27701
  if (pr.mergeable === "CONFLICTING") return chalk186.red("conflicting");
27657
27702
  if (pr.mergeable === "MERGEABLE") return null;
@@ -27664,6 +27709,7 @@ function printPrStatus(pr) {
27664
27709
  const details = [
27665
27710
  reviewLine(pr),
27666
27711
  ...checkLines(pr),
27712
+ threadsLine(pr),
27667
27713
  mergeableLine(pr),
27668
27714
  chalk186.dim(pr.url)
27669
27715
  ];
@@ -27702,7 +27748,7 @@ function prsStatus(repos2, options2) {
27702
27748
  }
27703
27749
 
27704
27750
  // src/commands/prs/wontfix.ts
27705
- import { execSync as execSync52 } from "child_process";
27751
+ import { execSync as execSync53 } from "child_process";
27706
27752
  function validateReason(reason4) {
27707
27753
  const lowerReason = reason4.toLowerCase();
27708
27754
  if (lowerReason.includes("claude") || lowerReason.includes("opus")) {
@@ -27719,7 +27765,7 @@ function validateShaReferences(reason4) {
27719
27765
  const invalidShas = [];
27720
27766
  for (const sha of shas) {
27721
27767
  try {
27722
- execSync52(`git cat-file -t ${sha}`, { stdio: "pipe" });
27768
+ execSync53(`git cat-file -t ${sha}`, { stdio: "pipe" });
27723
27769
  } catch {
27724
27770
  invalidShas.push(sha);
27725
27771
  }
@@ -28108,7 +28154,7 @@ function resolveReadTimeTarget(target) {
28108
28154
  }
28109
28155
 
28110
28156
  // src/commands/prs/fetchPrBody.ts
28111
- import { execSync as execSync53 } from "child_process";
28157
+ import { execSync as execSync54 } from "child_process";
28112
28158
  function exitGhNotInstalled() {
28113
28159
  console.error("Error: GitHub CLI (gh) is not installed.");
28114
28160
  console.error("Install it from https://cli.github.com/");
@@ -28129,7 +28175,7 @@ function currentRepo() {
28129
28175
  function fetchPrBody(number, repo) {
28130
28176
  const { org, repo: name } = repo ?? currentRepo();
28131
28177
  try {
28132
- const raw = execSync53(`gh pr view ${number} --json body -R ${org}/${name}`, {
28178
+ const raw = execSync54(`gh pr view ${number} --json body -R ${org}/${name}`, {
28133
28179
  encoding: "utf8",
28134
28180
  stdio: ["pipe", "pipe", "pipe"]
28135
28181
  });
@@ -28285,10 +28331,10 @@ import chalk190 from "chalk";
28285
28331
  import Enquirer2 from "enquirer";
28286
28332
 
28287
28333
  // src/commands/ravendb/searchItems.ts
28288
- import { execSync as execSync54 } from "child_process";
28334
+ import { execSync as execSync55 } from "child_process";
28289
28335
  import chalk189 from "chalk";
28290
28336
  function opExec(args) {
28291
- return execSync54(`op ${args}`, {
28337
+ return execSync55(`op ${args}`, {
28292
28338
  encoding: "utf8",
28293
28339
  stdio: ["pipe", "pipe", "pipe"]
28294
28340
  }).trim();
@@ -28440,7 +28486,7 @@ ${errorText}`
28440
28486
  }
28441
28487
 
28442
28488
  // src/commands/ravendb/resolveOpSecret.ts
28443
- import { execSync as execSync55 } from "child_process";
28489
+ import { execSync as execSync56 } from "child_process";
28444
28490
  import chalk194 from "chalk";
28445
28491
  function resolveOpSecret(reference) {
28446
28492
  if (!reference.startsWith("op://")) {
@@ -28448,7 +28494,7 @@ function resolveOpSecret(reference) {
28448
28494
  process.exit(1);
28449
28495
  }
28450
28496
  try {
28451
- return execSync55(`op read "${reference}"`, {
28497
+ return execSync56(`op read "${reference}"`, {
28452
28498
  encoding: "utf8",
28453
28499
  stdio: ["pipe", "pipe", "pipe"]
28454
28500
  }).trim();
@@ -28698,7 +28744,7 @@ Refactor check failed:
28698
28744
  }
28699
28745
 
28700
28746
  // src/commands/refactor/check/getViolations/index.ts
28701
- import { execSync as execSync56 } from "child_process";
28747
+ import { execSync as execSync57 } from "child_process";
28702
28748
  import fs31 from "fs";
28703
28749
  import { minimatch as minimatch6 } from "minimatch";
28704
28750
 
@@ -28748,7 +28794,7 @@ function getGitFiles(options2) {
28748
28794
  }
28749
28795
  const files = /* @__PURE__ */ new Set();
28750
28796
  if (options2.staged || options2.modified) {
28751
- const staged = execSync56("git diff --cached --name-only", {
28797
+ const staged = execSync57("git diff --cached --name-only", {
28752
28798
  encoding: "utf8"
28753
28799
  });
28754
28800
  for (const file of staged.trim().split("\n").filter(Boolean)) {
@@ -28756,7 +28802,7 @@ function getGitFiles(options2) {
28756
28802
  }
28757
28803
  }
28758
28804
  if (options2.unstaged || options2.modified) {
28759
- const unstaged = execSync56("git diff --name-only", { encoding: "utf8" });
28805
+ const unstaged = execSync57("git diff --name-only", { encoding: "utf8" });
28760
28806
  for (const file of unstaged.trim().split("\n").filter(Boolean)) {
28761
28807
  files.add(file);
28762
28808
  }
@@ -30338,9 +30384,9 @@ async function checkoutOnlySession(number) {
30338
30384
  import chalk213 from "chalk";
30339
30385
 
30340
30386
  // src/commands/review/fetchPrDiffInfo.ts
30341
- import { execSync as execSync57 } from "child_process";
30387
+ import { execSync as execSync58 } from "child_process";
30342
30388
  function getCurrentBranch3() {
30343
- return execSync57("git rev-parse --abbrev-ref HEAD", {
30389
+ return execSync58("git rev-parse --abbrev-ref HEAD", {
30344
30390
  encoding: "utf8"
30345
30391
  }).trim();
30346
30392
  }
@@ -30348,7 +30394,7 @@ function fetchPrDiffInfo() {
30348
30394
  const { org, repo } = getRepoInfo();
30349
30395
  const branch2 = getCurrentBranch3();
30350
30396
  const fields = "number,baseRefName,baseRefOid,headRefName,headRefOid";
30351
- const raw = execSync57(
30397
+ const raw = execSync58(
30352
30398
  `gh pr list --state open --head ${branch2} --json ${fields} -R ${org}/${repo}`,
30353
30399
  {
30354
30400
  encoding: "utf8",
@@ -30373,7 +30419,7 @@ function fetchPrDiffInfo() {
30373
30419
  }
30374
30420
  function fetchPrChangedFiles(prNumber) {
30375
30421
  const { org, repo } = getRepoInfo();
30376
- const out = execSync57(
30422
+ const out = execSync58(
30377
30423
  `gh api repos/${org}/${repo}/pulls/${prNumber}/files --paginate --jq ".[].filename"`,
30378
30424
  {
30379
30425
  encoding: "utf8",
@@ -30754,9 +30800,9 @@ function buildReviewPaths(repoRoot2, key) {
30754
30800
  }
30755
30801
 
30756
30802
  // src/commands/review/fetchExistingComments.ts
30757
- import { execSync as execSync58 } from "child_process";
30803
+ import { execSync as execSync59 } from "child_process";
30758
30804
  function fetchRawComments(org, repo, prNumber) {
30759
- const out = execSync58(
30805
+ const out = execSync59(
30760
30806
  `gh api --paginate repos/${org}/${repo}/pulls/${prNumber}/comments`,
30761
30807
  { encoding: "utf8", maxBuffer: 64 * 1024 * 1024 }
30762
30808
  );
@@ -30787,14 +30833,14 @@ function fetchExistingComments() {
30787
30833
  }
30788
30834
 
30789
30835
  // src/commands/review/gatherContext.ts
30790
- import { execSync as execSync60 } from "child_process";
30836
+ import { execSync as execSync61 } from "child_process";
30791
30837
 
30792
30838
  // src/commands/review/fetchPrDiff.ts
30793
- import { execSync as execSync59 } from "child_process";
30839
+ import { execSync as execSync60 } from "child_process";
30794
30840
  function fetchPrDiff(prNumber, baseSha, headSha) {
30795
30841
  const { org, repo } = getRepoInfo();
30796
30842
  try {
30797
- return execSync59(`gh pr diff ${prNumber} -R ${org}/${repo}`, {
30843
+ return execSync60(`gh pr diff ${prNumber} -R ${org}/${repo}`, {
30798
30844
  encoding: "utf8",
30799
30845
  maxBuffer: 256 * 1024 * 1024,
30800
30846
  stdio: ["ignore", "pipe", "pipe"]
@@ -30809,10 +30855,10 @@ function isDiffTooLarge(error) {
30809
30855
  }
30810
30856
  function fetchDiffViaGit(baseSha, headSha) {
30811
30857
  try {
30812
- execSync59(`git fetch origin ${baseSha} ${headSha}`, { stdio: "ignore" });
30858
+ execSync60(`git fetch origin ${baseSha} ${headSha}`, { stdio: "ignore" });
30813
30859
  } catch {
30814
30860
  }
30815
- return execSync59(`git diff ${baseSha}...${headSha}`, {
30861
+ return execSync60(`git diff ${baseSha}...${headSha}`, {
30816
30862
  encoding: "utf8",
30817
30863
  maxBuffer: 256 * 1024 * 1024
30818
30864
  });
@@ -30820,11 +30866,11 @@ function fetchDiffViaGit(baseSha, headSha) {
30820
30866
 
30821
30867
  // src/commands/review/gatherContext.ts
30822
30868
  function gatherContext() {
30823
- const branch2 = execSync60("git rev-parse --abbrev-ref HEAD", {
30869
+ const branch2 = execSync61("git rev-parse --abbrev-ref HEAD", {
30824
30870
  encoding: "utf8"
30825
30871
  }).trim();
30826
- const sha = execSync60("git rev-parse HEAD", { encoding: "utf8" }).trim();
30827
- const shortSha = execSync60("git rev-parse --short=7 HEAD", {
30872
+ const sha = execSync61("git rev-parse HEAD", { encoding: "utf8" }).trim();
30873
+ const shortSha = execSync61("git rev-parse --short=7 HEAD", {
30828
30874
  encoding: "utf8"
30829
30875
  }).trim();
30830
30876
  const prInfo = fetchPrDiffInfo();
@@ -34791,7 +34837,7 @@ import { mkdirSync as mkdirSync31 } from "fs";
34791
34837
  import { join as join93 } from "path";
34792
34838
 
34793
34839
  // src/commands/voice/checkLockFile.ts
34794
- import { execSync as execSync61 } from "child_process";
34840
+ import { execSync as execSync62 } from "child_process";
34795
34841
  import { existsSync as existsSync78, mkdirSync as mkdirSync30, readFileSync as readFileSync58, writeFileSync as writeFileSync48 } from "fs";
34796
34842
  import { join as join92 } from "path";
34797
34843
  function isProcessAlive2(pid) {
@@ -34820,7 +34866,7 @@ function bootstrapVenv() {
34820
34866
  if (existsSync78(getVenvPython())) return;
34821
34867
  console.log("Setting up Python environment...");
34822
34868
  const pythonDir = getPythonDir();
34823
- execSync61(
34869
+ execSync62(
34824
34870
  `uv sync --project "${pythonDir}" --extra runtime --no-install-project`,
34825
34871
  {
34826
34872
  stdio: "inherit",
@@ -35441,11 +35487,11 @@ function runCommandToCompletion(command, args, env, cwd, quiet) {
35441
35487
  }
35442
35488
 
35443
35489
  // src/commands/run/runPreCommands.ts
35444
- import { execSync as execSync62 } from "child_process";
35490
+ import { execSync as execSync63 } from "child_process";
35445
35491
  function runPreCommands(pre, cwd) {
35446
35492
  for (const cmd of pre) {
35447
35493
  try {
35448
- execSync62(cmd, { stdio: "inherit", cwd });
35494
+ execSync63(cmd, { stdio: "inherit", cwd });
35449
35495
  } catch (error) {
35450
35496
  const code = error && typeof error === "object" && "status" in error ? error.status : 1;
35451
35497
  process.exit(code);
@@ -36172,7 +36218,7 @@ function registerRun(program2) {
36172
36218
  }
36173
36219
 
36174
36220
  // src/commands/screenshot/index.ts
36175
- import { execSync as execSync63 } from "child_process";
36221
+ import { execSync as execSync64 } from "child_process";
36176
36222
  import { existsSync as existsSync85, mkdirSync as mkdirSync34, unlinkSync as unlinkSync22, writeFileSync as writeFileSync51 } from "fs";
36177
36223
  import { tmpdir as tmpdir9 } from "os";
36178
36224
  import { join as join100, resolve as resolve21 } from "path";
@@ -36315,7 +36361,7 @@ function runPowerShellScript(processName, outputPath) {
36315
36361
  const scriptPath = join100(tmpdir9(), `assist-screenshot-${Date.now()}.ps1`);
36316
36362
  writeFileSync51(scriptPath, captureWindowPs1, "utf8");
36317
36363
  try {
36318
- execSync63(
36364
+ execSync64(
36319
36365
  `powershell -NoProfile -ExecutionPolicy Bypass -File "${scriptPath}" -ProcessName "${processName}" -OutputPath "${outputPath}"`,
36320
36366
  { stdio: ["ignore", "pipe", "pipe"], encoding: "utf8" }
36321
36367
  );
@@ -42607,7 +42653,7 @@ async function statusLine() {
42607
42653
  }
42608
42654
 
42609
42655
  // src/commands/update.ts
42610
- import { execSync as execSync64 } from "child_process";
42656
+ import { execSync as execSync65 } from "child_process";
42611
42657
  import * as path90 from "path";
42612
42658
 
42613
42659
  // src/commands/restartDaemonAfterUpdate.ts
@@ -42631,7 +42677,7 @@ function isGlobalNpmInstall(dir) {
42631
42677
  if (resolved.split(path90.sep).includes("node_modules")) {
42632
42678
  return true;
42633
42679
  }
42634
- const globalPrefix = execSync64("npm prefix -g", { stdio: "pipe" }).toString().trim();
42680
+ const globalPrefix = execSync65("npm prefix -g", { stdio: "pipe" }).toString().trim();
42635
42681
  return resolved.toLowerCase().startsWith(path90.resolve(globalPrefix).toLowerCase());
42636
42682
  } catch {
42637
42683
  return false;
@@ -42642,18 +42688,18 @@ async function update2() {
42642
42688
  console.log(`Assist is installed at: ${installDir}`);
42643
42689
  if (isGitRepo(installDir)) {
42644
42690
  console.log("Detected git repo installation, pulling latest...");
42645
- execSync64("git pull", { cwd: installDir, stdio: "inherit" });
42691
+ execSync65("git pull", { cwd: installDir, stdio: "inherit" });
42646
42692
  console.log("Installing dependencies...");
42647
- execSync64("npm i", { cwd: installDir, stdio: "inherit" });
42693
+ execSync65("npm i", { cwd: installDir, stdio: "inherit" });
42648
42694
  console.log("Building...");
42649
- execSync64("npm run build", { cwd: installDir, stdio: "inherit" });
42695
+ execSync65("npm run build", { cwd: installDir, stdio: "inherit" });
42650
42696
  console.log("Syncing commands...");
42651
- execSync64("assist sync", { stdio: "inherit" });
42697
+ execSync65("assist sync", { stdio: "inherit" });
42652
42698
  } else if (isGlobalNpmInstall(installDir)) {
42653
42699
  console.log("Detected global npm installation, updating...");
42654
- execSync64("npm i -g @staff0rd/assist@latest", { stdio: "inherit" });
42700
+ execSync65("npm i -g @staff0rd/assist@latest", { stdio: "inherit" });
42655
42701
  console.log("Syncing commands...");
42656
- execSync64("assist sync", { stdio: "inherit" });
42702
+ execSync65("assist sync", { stdio: "inherit" });
42657
42703
  } else {
42658
42704
  console.error(
42659
42705
  "Could not determine installation method. Expected a git repo or global npm install."
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@staff0rd/assist",
3
- "version": "0.661.0",
3
+ "version": "0.663.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "bin": {