@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/README.md +2 -2
- package/dist/commands/sessions/web/bundle.js +379 -379
- package/dist/index.js +111 -65
- package/package.json +1 -1
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.
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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.
|
|
3105
|
-
setter:
|
|
3106
|
-
note: "fragment
|
|
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
|
|
5373
|
-
const
|
|
5374
|
-
|
|
5375
|
-
|
|
5376
|
-
|
|
5377
|
-
|
|
5378
|
-
|
|
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
|
|
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 =
|
|
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(
|
|
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
|
|
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
|
-
|
|
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
|
|
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 =
|
|
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
|
|
28334
|
+
import { execSync as execSync55 } from "child_process";
|
|
28289
28335
|
import chalk189 from "chalk";
|
|
28290
28336
|
function opExec(args) {
|
|
28291
|
-
return
|
|
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
|
|
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
|
|
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
|
|
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 =
|
|
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 =
|
|
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
|
|
30387
|
+
import { execSync as execSync58 } from "child_process";
|
|
30342
30388
|
function getCurrentBranch3() {
|
|
30343
|
-
return
|
|
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 =
|
|
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 =
|
|
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
|
|
30803
|
+
import { execSync as execSync59 } from "child_process";
|
|
30758
30804
|
function fetchRawComments(org, repo, prNumber) {
|
|
30759
|
-
const out =
|
|
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
|
|
30836
|
+
import { execSync as execSync61 } from "child_process";
|
|
30791
30837
|
|
|
30792
30838
|
// src/commands/review/fetchPrDiff.ts
|
|
30793
|
-
import { execSync as
|
|
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
|
|
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
|
-
|
|
30858
|
+
execSync60(`git fetch origin ${baseSha} ${headSha}`, { stdio: "ignore" });
|
|
30813
30859
|
} catch {
|
|
30814
30860
|
}
|
|
30815
|
-
return
|
|
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 =
|
|
30869
|
+
const branch2 = execSync61("git rev-parse --abbrev-ref HEAD", {
|
|
30824
30870
|
encoding: "utf8"
|
|
30825
30871
|
}).trim();
|
|
30826
|
-
const sha =
|
|
30827
|
-
const shortSha =
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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 =
|
|
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
|
-
|
|
42691
|
+
execSync65("git pull", { cwd: installDir, stdio: "inherit" });
|
|
42646
42692
|
console.log("Installing dependencies...");
|
|
42647
|
-
|
|
42693
|
+
execSync65("npm i", { cwd: installDir, stdio: "inherit" });
|
|
42648
42694
|
console.log("Building...");
|
|
42649
|
-
|
|
42695
|
+
execSync65("npm run build", { cwd: installDir, stdio: "inherit" });
|
|
42650
42696
|
console.log("Syncing commands...");
|
|
42651
|
-
|
|
42697
|
+
execSync65("assist sync", { stdio: "inherit" });
|
|
42652
42698
|
} else if (isGlobalNpmInstall(installDir)) {
|
|
42653
42699
|
console.log("Detected global npm installation, updating...");
|
|
42654
|
-
|
|
42700
|
+
execSync65("npm i -g @staff0rd/assist@latest", { stdio: "inherit" });
|
|
42655
42701
|
console.log("Syncing commands...");
|
|
42656
|
-
|
|
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."
|