@hua-labs/tap 0.2.2 → 0.2.4
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/bridges/codex-app-server-auth-gateway.mjs +11 -3
- package/dist/bridges/codex-app-server-auth-gateway.mjs.map +1 -1
- package/dist/bridges/codex-app-server-bridge.d.mts +1 -0
- package/dist/bridges/codex-app-server-bridge.mjs +16 -13
- package/dist/bridges/codex-app-server-bridge.mjs.map +1 -1
- package/dist/bridges/codex-bridge-runner.mjs +21 -17
- package/dist/bridges/codex-bridge-runner.mjs.map +1 -1
- package/dist/cli.mjs +497 -163
- package/dist/cli.mjs.map +1 -1
- package/dist/index.d.mts +4 -1
- package/dist/index.mjs +186 -92
- package/dist/index.mjs.map +1 -1
- package/dist/mcp-server.mjs +185 -185
- package/dist/mcp-server.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -453,7 +453,7 @@ function createHeadlessLoop(options) {
|
|
|
453
453
|
lastPollAt: null
|
|
454
454
|
};
|
|
455
455
|
let timer = null;
|
|
456
|
-
function
|
|
456
|
+
function log2(msg) {
|
|
457
457
|
const ts = (/* @__PURE__ */ new Date()).toISOString();
|
|
458
458
|
console.error(`[${ts}] [headless-loop] ${msg}`);
|
|
459
459
|
}
|
|
@@ -507,7 +507,7 @@ function createHeadlessLoop(options) {
|
|
|
507
507
|
writeStateFile();
|
|
508
508
|
}
|
|
509
509
|
function startReviewSession(request) {
|
|
510
|
-
|
|
510
|
+
log2(`Starting review for PR #${request.prNumber}`);
|
|
511
511
|
markAsProcessed(options.stateDir, request);
|
|
512
512
|
try {
|
|
513
513
|
writeReviewReceipt(options.commsDir, request, options.agentName);
|
|
@@ -533,9 +533,9 @@ function createHeadlessLoop(options) {
|
|
|
533
533
|
options.agentName
|
|
534
534
|
)
|
|
535
535
|
};
|
|
536
|
-
|
|
536
|
+
log2(`Dispatched review prompt for PR #${request.prNumber} (round 1)`);
|
|
537
537
|
} catch (err) {
|
|
538
|
-
|
|
538
|
+
log2(
|
|
539
539
|
`Failed to start review for PR #${request.prNumber}: ${err instanceof Error ? err.message : String(err)}`
|
|
540
540
|
);
|
|
541
541
|
unmarkProcessed(options.stateDir, request);
|
|
@@ -557,7 +557,7 @@ function createHeadlessLoop(options) {
|
|
|
557
557
|
const round = parseReviewOutput(revPath, roundNum);
|
|
558
558
|
if (!round) return;
|
|
559
559
|
session.rounds.push(round);
|
|
560
|
-
|
|
560
|
+
log2(
|
|
561
561
|
`PR #${session.request.prNumber} round ${roundNum}: ${round.findingCount} findings, ${round.suggestedDiffLines} suggested diff lines`
|
|
562
562
|
);
|
|
563
563
|
const stopSignalPath = path6.join(options.stateDir, "stop-signal");
|
|
@@ -569,12 +569,12 @@ function createHeadlessLoop(options) {
|
|
|
569
569
|
};
|
|
570
570
|
const result = evaluate(ctx);
|
|
571
571
|
if (result.verdict === "stop") {
|
|
572
|
-
|
|
572
|
+
log2(
|
|
573
573
|
`PR #${session.request.prNumber} terminated: ${result.reason} (${result.strategy})`
|
|
574
574
|
);
|
|
575
575
|
completeSession(session);
|
|
576
576
|
} else {
|
|
577
|
-
|
|
577
|
+
log2(
|
|
578
578
|
`PR #${session.request.prNumber} continues to round ${roundNum + 1}`
|
|
579
579
|
);
|
|
580
580
|
dispatchFollowUp(session, roundNum + 1);
|
|
@@ -584,7 +584,7 @@ function createHeadlessLoop(options) {
|
|
|
584
584
|
const SESSION_TIMEOUT_MS = 10 * 60 * 1e3;
|
|
585
585
|
const elapsed = Date.now() - new Date(session.startedAt).getTime();
|
|
586
586
|
if (elapsed > SESSION_TIMEOUT_MS && session.rounds.length === 0) {
|
|
587
|
-
|
|
587
|
+
log2(
|
|
588
588
|
`PR #${session.request.prNumber} timed out \u2014 no output after ${Math.round(elapsed / 6e4)}min. Releasing session.`
|
|
589
589
|
);
|
|
590
590
|
state.activeSession = null;
|
|
@@ -596,7 +596,7 @@ function createHeadlessLoop(options) {
|
|
|
596
596
|
session.rounds[session.rounds.length - 1].timestamp
|
|
597
597
|
).getTime();
|
|
598
598
|
if (Date.now() - lastRoundTime > ROUND_TIMEOUT_MS) {
|
|
599
|
-
|
|
599
|
+
log2(
|
|
600
600
|
`PR #${session.request.prNumber} round timeout \u2014 no new output after ${Math.round((Date.now() - lastRoundTime) / 6e4)}min. Completing session.`
|
|
601
601
|
);
|
|
602
602
|
completeSession(session);
|
|
@@ -627,18 +627,18 @@ function createHeadlessLoop(options) {
|
|
|
627
627
|
}
|
|
628
628
|
state.activeSession = null;
|
|
629
629
|
state.completedSessions++;
|
|
630
|
-
|
|
630
|
+
log2(
|
|
631
631
|
`PR #${session.request.prNumber} review complete (${session.rounds.length} rounds)`
|
|
632
632
|
);
|
|
633
633
|
}
|
|
634
634
|
return {
|
|
635
635
|
start() {
|
|
636
636
|
if (!isHeadlessReviewer()) {
|
|
637
|
-
|
|
637
|
+
log2("Not in headless mode \u2014 loop not started");
|
|
638
638
|
return;
|
|
639
639
|
}
|
|
640
640
|
state.running = true;
|
|
641
|
-
|
|
641
|
+
log2(
|
|
642
642
|
`Headless review loop started (${envConfig?.role ?? "reviewer"}, poll ${options.pollIntervalMs}ms, max ${terminationConfig.maxRounds} rounds)`
|
|
643
643
|
);
|
|
644
644
|
writeStateFile();
|
|
@@ -652,7 +652,7 @@ function createHeadlessLoop(options) {
|
|
|
652
652
|
timer = null;
|
|
653
653
|
}
|
|
654
654
|
writeStateFile();
|
|
655
|
-
|
|
655
|
+
log2("Headless review loop stopped");
|
|
656
656
|
},
|
|
657
657
|
getState() {
|
|
658
658
|
return { ...state };
|
|
@@ -684,6 +684,10 @@ var _noGitWarned = false;
|
|
|
684
684
|
function _setNoGitWarned() {
|
|
685
685
|
_noGitWarned = true;
|
|
686
686
|
}
|
|
687
|
+
var _jsonMode = false;
|
|
688
|
+
function log(message) {
|
|
689
|
+
if (!_jsonMode) console.log(` ${message}`);
|
|
690
|
+
}
|
|
687
691
|
|
|
688
692
|
// src/config/resolve.ts
|
|
689
693
|
var SHARED_CONFIG_FILE = "tap-config.json";
|
|
@@ -698,8 +702,8 @@ function findRepoRoot(startDir = process.cwd()) {
|
|
|
698
702
|
if (fs2.existsSync(path2.join(dir, "package.json"))) {
|
|
699
703
|
if (!_noGitWarned) {
|
|
700
704
|
_setNoGitWarned();
|
|
701
|
-
|
|
702
|
-
"
|
|
705
|
+
log(
|
|
706
|
+
"No .git directory found. Resolved tap root via package.json. That's fine outside git; use --comms-dir to choose a different comms location."
|
|
703
707
|
);
|
|
704
708
|
}
|
|
705
709
|
return dir;
|
|
@@ -710,8 +714,8 @@ function findRepoRoot(startDir = process.cwd()) {
|
|
|
710
714
|
}
|
|
711
715
|
if (!_noGitWarned) {
|
|
712
716
|
_setNoGitWarned();
|
|
713
|
-
|
|
714
|
-
"
|
|
717
|
+
log(
|
|
718
|
+
"No git repository or package.json found. Using the current directory as tap root. That's fine outside git; use --comms-dir to choose a different comms location."
|
|
715
719
|
);
|
|
716
720
|
}
|
|
717
721
|
return process.cwd();
|