@staff0rd/assist 0.497.0 → 0.499.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.497.0",
9
+ version: "0.499.0",
10
10
  type: "module",
11
11
  main: "dist/index.js",
12
12
  bin: {
@@ -12777,7 +12777,8 @@ function parsePreviewDecision(line, requestId) {
12777
12777
  decision: msg.decision,
12778
12778
  reason: msg.reason,
12779
12779
  comments: Array.isArray(msg.comments) ? msg.comments : void 0,
12780
- screenshots: Array.isArray(msg.screenshots) ? msg.screenshots : void 0
12780
+ screenshots: Array.isArray(msg.screenshots) ? msg.screenshots : void 0,
12781
+ reviewAfter: msg.reviewAfter === true
12781
12782
  }
12782
12783
  };
12783
12784
  } catch {
@@ -21653,6 +21654,84 @@ function appendScreenshots(body, screenshots) {
21653
21654
  ${screenshots.join("\n\n")}`;
21654
21655
  }
21655
21656
 
21657
+ // src/commands/review/startChainedSession.ts
21658
+ async function startChainedSession(label2, start3) {
21659
+ if (process.env.ASSIST_SESSION !== "1") return;
21660
+ try {
21661
+ await start3();
21662
+ console.log(`Started ${label2}.`);
21663
+ } catch (error) {
21664
+ console.error(
21665
+ `Warning: could not start ${label2}: ${error instanceof Error ? error.message : String(error)}`
21666
+ );
21667
+ }
21668
+ }
21669
+
21670
+ // src/commands/sessions/shared/requestSession.ts
21671
+ function parseIncoming(line, type) {
21672
+ try {
21673
+ const msg = JSON.parse(line);
21674
+ if (msg.type === "error" && (msg.message ?? "").includes(type))
21675
+ return { kind: "error", message: msg.message ?? `${type} failed` };
21676
+ if (msg.type !== "created" || !msg.sessionId) return null;
21677
+ return { kind: "created", sessionId: msg.sessionId };
21678
+ } catch {
21679
+ return null;
21680
+ }
21681
+ }
21682
+ function requestSession(message3) {
21683
+ return new Promise((resolve22, reject) => {
21684
+ connectToDaemon().then((socket) => {
21685
+ let settled = false;
21686
+ const finish = (error, sessionId) => {
21687
+ if (settled) return;
21688
+ settled = true;
21689
+ socket.destroy();
21690
+ if (error) reject(error);
21691
+ else resolve22(sessionId);
21692
+ };
21693
+ readSocketLines(socket, (line) => {
21694
+ const incoming = parseIncoming(line, message3.type);
21695
+ if (!incoming) return;
21696
+ if (incoming.kind === "error") finish(new Error(incoming.message));
21697
+ else finish(void 0, incoming.sessionId);
21698
+ });
21699
+ socket.on("error", (error) => finish(error));
21700
+ socket.on(
21701
+ "close",
21702
+ () => finish(new Error("daemon closed before the session was created"))
21703
+ );
21704
+ socket.write(`${JSON.stringify(message3)}
21705
+ `);
21706
+ }, reject);
21707
+ });
21708
+ }
21709
+
21710
+ // src/commands/sessions/shared/requestAssistSession.ts
21711
+ function requestAssistSession(assistArgs, cwd) {
21712
+ return requestSession({ type: "create-assist", assistArgs, cwd });
21713
+ }
21714
+
21715
+ // src/commands/prs/chainReviewAndPost.ts
21716
+ function chainReviewAndPost(prNumber) {
21717
+ return startChainedSession("a Review + Post session for the PR", () => {
21718
+ const number = prNumber ?? findCurrentPrNumber();
21719
+ if (number === null)
21720
+ throw new Error("no pull request found for the current branch");
21721
+ return requestAssistSession(
21722
+ [
21723
+ "review",
21724
+ "--no-prompt",
21725
+ "--submit",
21726
+ String(number),
21727
+ "--address-comments",
21728
+ "--announce"
21729
+ ],
21730
+ process.cwd()
21731
+ );
21732
+ });
21733
+ }
21734
+
21656
21735
  // src/commands/prs/previewAndPlace.ts
21657
21736
  async function previewAndPlace(args) {
21658
21737
  const decision = await awaitPreviewApproval("PR preview", {
@@ -21664,6 +21743,7 @@ async function previewAndPlace(args) {
21664
21743
  });
21665
21744
  const body = appendScreenshots(args.body, decision.screenshots ?? []);
21666
21745
  await placePr(args.prNumber, args.title, body, args.options);
21746
+ if (decision.reviewAfter === true) await chainReviewAndPost(args.prNumber);
21667
21747
  }
21668
21748
 
21669
21749
  // src/commands/prs/raise.ts
@@ -24339,64 +24419,11 @@ function gatherContext() {
24339
24419
  };
24340
24420
  }
24341
24421
 
24342
- // src/commands/sessions/shared/requestSession.ts
24343
- function parseIncoming(line, type) {
24344
- try {
24345
- const msg = JSON.parse(line);
24346
- if (msg.type === "error" && (msg.message ?? "").includes(type))
24347
- return { kind: "error", message: msg.message ?? `${type} failed` };
24348
- if (msg.type !== "created" || !msg.sessionId) return null;
24349
- return { kind: "created", sessionId: msg.sessionId };
24350
- } catch {
24351
- return null;
24352
- }
24353
- }
24354
- function requestSession(message3) {
24355
- return new Promise((resolve22, reject) => {
24356
- connectToDaemon().then((socket) => {
24357
- let settled = false;
24358
- const finish = (error, sessionId) => {
24359
- if (settled) return;
24360
- settled = true;
24361
- socket.destroy();
24362
- if (error) reject(error);
24363
- else resolve22(sessionId);
24364
- };
24365
- readSocketLines(socket, (line) => {
24366
- const incoming = parseIncoming(line, message3.type);
24367
- if (!incoming) return;
24368
- if (incoming.kind === "error") finish(new Error(incoming.message));
24369
- else finish(void 0, incoming.sessionId);
24370
- });
24371
- socket.on("error", (error) => finish(error));
24372
- socket.on(
24373
- "close",
24374
- () => finish(new Error("daemon closed before the session was created"))
24375
- );
24376
- socket.write(`${JSON.stringify(message3)}
24377
- `);
24378
- }, reject);
24379
- });
24380
- }
24381
-
24382
24422
  // src/commands/sessions/shared/requestClaudeSession.ts
24383
24423
  function requestClaudeSession(prompt, cwd) {
24384
24424
  return requestSession({ type: "create", prompt, cwd });
24385
24425
  }
24386
24426
 
24387
- // src/commands/review/startChainedSession.ts
24388
- async function startChainedSession(label2, start3) {
24389
- if (process.env.ASSIST_SESSION !== "1") return;
24390
- try {
24391
- await start3();
24392
- console.log(`Started ${label2}.`);
24393
- } catch (error) {
24394
- console.error(
24395
- `Warning: could not start ${label2}: ${error instanceof Error ? error.message : String(error)}`
24396
- );
24397
- }
24398
- }
24399
-
24400
24427
  // src/commands/review/announcePr.ts
24401
24428
  function announcePr(prNumber) {
24402
24429
  return startChainedSession(
@@ -24411,11 +24438,6 @@ function announcePr(prNumber) {
24411
24438
  // src/commands/review/postReviewToPr.ts
24412
24439
  import { readFileSync as readFileSync41 } from "fs";
24413
24440
 
24414
- // src/commands/sessions/shared/requestAssistSession.ts
24415
- function requestAssistSession(assistArgs, cwd) {
24416
- return requestSession({ type: "create-assist", assistArgs, cwd });
24417
- }
24418
-
24419
24441
  // src/commands/review/chainAddressComments.ts
24420
24442
  function chainAddressComments(prNumber, announce) {
24421
24443
  const args = ["review-pr-comments", String(prNumber)];
@@ -29801,7 +29823,7 @@ function decidePrPreview(sessions, waiters, notify2, d) {
29801
29823
  const commentCount = Array.isArray(d.comments) ? d.comments.length : 0;
29802
29824
  const screenshotCount = Array.isArray(d.screenshots) ? d.screenshots.length : 0;
29803
29825
  daemonLog(
29804
- `pr-decision received: id=${id} requestId=${requestId} decision=${d.decision} comments=${commentCount} screenshots=${screenshotCount}`
29826
+ `pr-decision received: id=${id} requestId=${requestId} decision=${d.decision} comments=${commentCount} screenshots=${screenshotCount} reviewAfter=${d.reviewAfter === true}`
29805
29827
  );
29806
29828
  const waiter = waiters.get(id);
29807
29829
  if (waiter)
@@ -29811,7 +29833,8 @@ function decidePrPreview(sessions, waiters, notify2, d) {
29811
29833
  decision: d.decision,
29812
29834
  reason: d.reason,
29813
29835
  comments: d.comments,
29814
- screenshots: d.screenshots
29836
+ screenshots: d.screenshots,
29837
+ reviewAfter: d.reviewAfter
29815
29838
  });
29816
29839
  waiters.delete(id);
29817
29840
  session.pendingPrPreview = void 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@staff0rd/assist",
3
- "version": "0.497.0",
3
+ "version": "0.499.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "bin": {