@gowelle/stint-agent 1.2.27 → 1.2.28
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/{StatusDashboard-RG4NAR2B.js → StatusDashboard-BV7RHIIH.js} +2 -2
- package/dist/api-MEUGSQYO.js +7 -0
- package/dist/{chunk-WBVNPUXR.js → chunk-GLD7IU2F.js} +41 -20
- package/dist/{chunk-TKPLAYYZ.js → chunk-JIRQHCFR.js} +1 -1
- package/dist/{chunk-OX2GO7KX.js → chunk-RHWE22KH.js} +1 -1
- package/dist/{chunk-JIYLLUF7.js → chunk-UJBUIRQZ.js} +2 -2
- package/dist/daemon/runner.js +4 -4
- package/dist/index.js +6 -6
- package/package.json +1 -1
- package/dist/api-DIM62R5R.js +0 -7
|
@@ -2,10 +2,10 @@ import {
|
|
|
2
2
|
gitService,
|
|
3
3
|
projectService,
|
|
4
4
|
validatePidFile
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-JIRQHCFR.js";
|
|
6
6
|
import {
|
|
7
7
|
authService
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-RHWE22KH.js";
|
|
9
9
|
|
|
10
10
|
// src/components/StatusDashboard.tsx
|
|
11
11
|
import { useState, useEffect } from "react";
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
apiService
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-UJBUIRQZ.js";
|
|
4
4
|
import {
|
|
5
5
|
gitService,
|
|
6
6
|
projectService
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-JIRQHCFR.js";
|
|
8
8
|
import {
|
|
9
9
|
authService,
|
|
10
10
|
config,
|
|
11
11
|
logger
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-RHWE22KH.js";
|
|
13
13
|
|
|
14
14
|
// src/utils/notify.ts
|
|
15
15
|
import notifier from "node-notifier";
|
|
@@ -561,6 +561,10 @@ var WebSocketServiceImpl = class {
|
|
|
561
561
|
forceTLS = true;
|
|
562
562
|
}
|
|
563
563
|
logger.info("websocket", `Connecting to ${wsHost}:${wsPort} with key ${reverbAppKey}...`);
|
|
564
|
+
if (typeof global.WebSocket === "undefined") {
|
|
565
|
+
const { WebSocket } = await import("ws");
|
|
566
|
+
global.WebSocket = WebSocket;
|
|
567
|
+
}
|
|
564
568
|
const pusherClient = new Pusher(reverbAppKey, {
|
|
565
569
|
wsHost,
|
|
566
570
|
wsPort,
|
|
@@ -605,7 +609,7 @@ var WebSocketServiceImpl = class {
|
|
|
605
609
|
}
|
|
606
610
|
})
|
|
607
611
|
});
|
|
608
|
-
|
|
612
|
+
const echoInstance = new Echo({
|
|
609
613
|
broadcaster: "reverb",
|
|
610
614
|
key: reverbAppKey,
|
|
611
615
|
wsHost,
|
|
@@ -622,21 +626,32 @@ var WebSocketServiceImpl = class {
|
|
|
622
626
|
},
|
|
623
627
|
client: pusherClient
|
|
624
628
|
});
|
|
629
|
+
this.echo = echoInstance;
|
|
625
630
|
logger.info("websocket", "Echo instance created, setting up connection handlers...");
|
|
626
631
|
return new Promise((resolve, reject) => {
|
|
627
|
-
if (
|
|
628
|
-
|
|
632
|
+
if (pusherClient.connection.state === "connected") {
|
|
633
|
+
logger.success("websocket", "\u2705 Already connected to Broadcaster");
|
|
634
|
+
writeStatus({ connected: true });
|
|
635
|
+
this.reconnectAttempts = 0;
|
|
636
|
+
this.isManualDisconnect = false;
|
|
637
|
+
resolve();
|
|
629
638
|
return;
|
|
630
639
|
}
|
|
631
640
|
const connectionTimeout = setTimeout(() => {
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
641
|
+
if (this.echo !== echoInstance) return;
|
|
642
|
+
const state = pusherClient.connection.state || "unknown";
|
|
643
|
+
logger.error("websocket", `Connection timeout after 30s (state: ${state})`);
|
|
644
|
+
if (state !== "connected") {
|
|
645
|
+
reject(new Error(`Connection timeout - stuck in state: ${state}`));
|
|
646
|
+
}
|
|
647
|
+
}, 3e4);
|
|
648
|
+
pusherClient.connection.bind("state_change", (states) => {
|
|
649
|
+
if (this.echo === echoInstance) {
|
|
650
|
+
logger.info("websocket", `Connection state: ${states.previous} -> ${states.current}`);
|
|
651
|
+
}
|
|
638
652
|
});
|
|
639
|
-
|
|
653
|
+
pusherClient.connection.bind("connected", () => {
|
|
654
|
+
if (this.echo !== echoInstance) return;
|
|
640
655
|
clearTimeout(connectionTimeout);
|
|
641
656
|
logger.success("websocket", "\u2705 Connected to Broadcaster via Sanctum");
|
|
642
657
|
writeStatus({ connected: true });
|
|
@@ -644,28 +659,34 @@ var WebSocketServiceImpl = class {
|
|
|
644
659
|
this.isManualDisconnect = false;
|
|
645
660
|
resolve();
|
|
646
661
|
});
|
|
647
|
-
|
|
662
|
+
pusherClient.connection.bind("error", (error) => {
|
|
663
|
+
if (this.echo !== echoInstance) return;
|
|
648
664
|
clearTimeout(connectionTimeout);
|
|
649
665
|
const errorMessage = error instanceof Error ? error.message : JSON.stringify(error) || "Unknown connection error";
|
|
650
666
|
logger.error("websocket", `WebSocket error: ${errorMessage}`);
|
|
651
|
-
if (error
|
|
667
|
+
if (error && typeof error === "object" && "data" in error && error.data?.code === 1006) {
|
|
652
668
|
logger.warn("websocket", "Detected abnormal closure (1006), ensuring reconnection...");
|
|
653
669
|
this.handleDisconnect();
|
|
654
670
|
}
|
|
655
|
-
|
|
671
|
+
if (pusherClient.connection.state === "failed") {
|
|
672
|
+
reject(new Error(errorMessage));
|
|
673
|
+
}
|
|
656
674
|
});
|
|
657
|
-
|
|
675
|
+
pusherClient.connection.bind("disconnected", () => {
|
|
676
|
+
if (this.echo !== echoInstance) return;
|
|
658
677
|
logger.warn("websocket", "WebSocket disconnected");
|
|
659
678
|
writeStatus({ connected: false });
|
|
660
679
|
this.handleDisconnect();
|
|
661
680
|
});
|
|
662
|
-
|
|
681
|
+
pusherClient.connection.bind("failed", () => {
|
|
682
|
+
if (this.echo !== echoInstance) return;
|
|
663
683
|
clearTimeout(connectionTimeout);
|
|
664
684
|
logger.error("websocket", "WebSocket connection failed");
|
|
665
685
|
this.handleDisconnect();
|
|
666
686
|
reject(new Error("WebSocket connection failed"));
|
|
667
687
|
});
|
|
668
|
-
|
|
688
|
+
pusherClient.connection.bind("unavailable", () => {
|
|
689
|
+
if (this.echo !== echoInstance) return;
|
|
669
690
|
logger.warn("websocket", "WebSocket connection unavailable, attempting auto-reconnect");
|
|
670
691
|
writeStatus({ connected: false });
|
|
671
692
|
});
|
|
@@ -726,7 +747,7 @@ var WebSocketServiceImpl = class {
|
|
|
726
747
|
if (commit.has_large_files) {
|
|
727
748
|
try {
|
|
728
749
|
logger.info("websocket", `Commit ${commit.id} marked as large, fetching full details...`);
|
|
729
|
-
const { apiService: apiService2 } = await import("./api-
|
|
750
|
+
const { apiService: apiService2 } = await import("./api-MEUGSQYO.js");
|
|
730
751
|
const fullCommit = await apiService2.getCommit(commit.id);
|
|
731
752
|
commit = {
|
|
732
753
|
...commit,
|
|
@@ -308,7 +308,7 @@ var AuthServiceImpl = class {
|
|
|
308
308
|
return null;
|
|
309
309
|
}
|
|
310
310
|
try {
|
|
311
|
-
const { apiService } = await import("./api-
|
|
311
|
+
const { apiService } = await import("./api-MEUGSQYO.js");
|
|
312
312
|
const user = await apiService.getCurrentUser();
|
|
313
313
|
logger.info("auth", `Token validated for user: ${user.email}`);
|
|
314
314
|
return user;
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
authService,
|
|
3
3
|
config,
|
|
4
4
|
logger
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-RHWE22KH.js";
|
|
6
6
|
|
|
7
7
|
// src/utils/circuit-breaker.ts
|
|
8
8
|
var CircuitBreaker = class {
|
|
@@ -98,7 +98,7 @@ var CircuitBreaker = class {
|
|
|
98
98
|
};
|
|
99
99
|
|
|
100
100
|
// src/services/api.ts
|
|
101
|
-
var AGENT_VERSION = "1.2.
|
|
101
|
+
var AGENT_VERSION = "1.2.28";
|
|
102
102
|
var ApiServiceImpl = class {
|
|
103
103
|
sessionId = null;
|
|
104
104
|
circuitBreaker = new CircuitBreaker({
|
package/dist/daemon/runner.js
CHANGED
|
@@ -3,20 +3,20 @@ import {
|
|
|
3
3
|
commitQueue,
|
|
4
4
|
notify,
|
|
5
5
|
websocketService
|
|
6
|
-
} from "../chunk-
|
|
6
|
+
} from "../chunk-GLD7IU2F.js";
|
|
7
7
|
import {
|
|
8
8
|
apiService
|
|
9
|
-
} from "../chunk-
|
|
9
|
+
} from "../chunk-UJBUIRQZ.js";
|
|
10
10
|
import {
|
|
11
11
|
gitService,
|
|
12
12
|
projectService,
|
|
13
13
|
removePidFile,
|
|
14
14
|
writePidFile
|
|
15
|
-
} from "../chunk-
|
|
15
|
+
} from "../chunk-JIRQHCFR.js";
|
|
16
16
|
import {
|
|
17
17
|
authService,
|
|
18
18
|
logger
|
|
19
|
-
} from "../chunk-
|
|
19
|
+
} from "../chunk-RHWE22KH.js";
|
|
20
20
|
|
|
21
21
|
// src/daemon/runner.ts
|
|
22
22
|
import "dotenv/config";
|
package/dist/index.js
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import {
|
|
3
3
|
commitQueue,
|
|
4
4
|
websocketService
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-GLD7IU2F.js";
|
|
6
6
|
import {
|
|
7
7
|
apiService
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-UJBUIRQZ.js";
|
|
9
9
|
import {
|
|
10
10
|
getPidFilePath,
|
|
11
11
|
gitService,
|
|
@@ -14,14 +14,14 @@ import {
|
|
|
14
14
|
projectService,
|
|
15
15
|
spawnDetached,
|
|
16
16
|
validatePidFile
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-JIRQHCFR.js";
|
|
18
18
|
import {
|
|
19
19
|
__commonJS,
|
|
20
20
|
__toESM,
|
|
21
21
|
authService,
|
|
22
22
|
config,
|
|
23
23
|
logger
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-RHWE22KH.js";
|
|
25
25
|
|
|
26
26
|
// node_modules/semver/internal/constants.js
|
|
27
27
|
var require_constants = __commonJS({
|
|
@@ -2552,7 +2552,7 @@ function registerStatusCommand(program2) {
|
|
|
2552
2552
|
try {
|
|
2553
2553
|
const { render } = await import("ink");
|
|
2554
2554
|
const { createElement } = await import("react");
|
|
2555
|
-
const { StatusDashboard } = await import("./StatusDashboard-
|
|
2555
|
+
const { StatusDashboard } = await import("./StatusDashboard-BV7RHIIH.js");
|
|
2556
2556
|
render(createElement(StatusDashboard, { cwd }));
|
|
2557
2557
|
return;
|
|
2558
2558
|
} catch (error) {
|
|
@@ -4356,7 +4356,7 @@ ${chalk14.bold("Config file:")} ${chalk14.cyan(configPath)}
|
|
|
4356
4356
|
}
|
|
4357
4357
|
|
|
4358
4358
|
// src/index.ts
|
|
4359
|
-
var AGENT_VERSION = "1.2.
|
|
4359
|
+
var AGENT_VERSION = "1.2.28";
|
|
4360
4360
|
var program = new Command();
|
|
4361
4361
|
program.name("stint").description("Stint Agent - Local daemon for Stint Project Assistant").version(AGENT_VERSION, "-v, --version", "output the current version").addHelpText("after", `
|
|
4362
4362
|
${chalk15.bold("Examples:")}
|
package/package.json
CHANGED