@farazirfan/costar-server-executor 1.7.34 → 1.7.36
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/updates/checker.d.ts.map +1 -1
- package/dist/updates/checker.js +32 -2
- package/dist/updates/checker.js.map +1 -1
- package/dist/updates/self-updater.d.ts.map +1 -1
- package/dist/updates/self-updater.js +33 -0
- package/dist/updates/self-updater.js.map +1 -1
- package/package.json +1 -1
- package/public/index.html +40 -35
- package/scripts/postinstall.js +28 -64
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../src/updates/checker.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../src/updates/checker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;AAEtD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,aAAa,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,aAAa,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAmKF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAWtF;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAkBzD;AAiCD;;;GAGG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE;IAC5C,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAqDpC;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACxD,kEAAkE;IAClE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kDAAkD;IAClD,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACpD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,0BAA0B,GAAG,IAAI,CA8B5E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC"}
|
package/dist/updates/checker.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* CoStar Server Executor - Update Checker
|
|
3
3
|
* Adapted from OpenClaw's infra/update-check.ts and infra/update-startup.ts
|
|
4
4
|
*/
|
|
5
|
+
import fsSync from "node:fs";
|
|
5
6
|
import fs from "node:fs/promises";
|
|
6
7
|
import path from "node:path";
|
|
7
8
|
import os from "node:os";
|
|
@@ -44,6 +45,35 @@ async function writeState(state) {
|
|
|
44
45
|
await fs.mkdir(path.dirname(statePath), { recursive: true });
|
|
45
46
|
await fs.writeFile(statePath, JSON.stringify(state, null, 2), "utf-8");
|
|
46
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Read npm auth token from environment or .npmrc files.
|
|
50
|
+
* Checks NPM_TOKEN env first, then looks for .npmrc in common locations.
|
|
51
|
+
*/
|
|
52
|
+
function getNpmAuthToken() {
|
|
53
|
+
// 1. Check environment variable
|
|
54
|
+
if (process.env.NPM_TOKEN)
|
|
55
|
+
return process.env.NPM_TOKEN;
|
|
56
|
+
// 2. Check .npmrc files in common locations
|
|
57
|
+
const candidates = [
|
|
58
|
+
process.env.HOME,
|
|
59
|
+
"/root",
|
|
60
|
+
"/home/user",
|
|
61
|
+
].filter(Boolean);
|
|
62
|
+
for (const dir of candidates) {
|
|
63
|
+
try {
|
|
64
|
+
const npmrcPath = path.join(dir, ".npmrc");
|
|
65
|
+
if (fsSync.existsSync(npmrcPath)) {
|
|
66
|
+
const content = fsSync.readFileSync(npmrcPath, "utf-8");
|
|
67
|
+
// Parse _authToken from .npmrc (format: //registry.npmjs.org/:_authToken=TOKEN)
|
|
68
|
+
const match = content.match(/:_authToken=(.+)/);
|
|
69
|
+
if (match?.[1])
|
|
70
|
+
return match[1].trim();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
catch { /* ignore permission errors */ }
|
|
74
|
+
}
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
47
77
|
/**
|
|
48
78
|
* Fetch version from npm registry with timeout
|
|
49
79
|
* (Adapted from OpenClaw's fetchNpmTagVersion pattern)
|
|
@@ -58,9 +88,9 @@ async function fetchNpmVersion(params) {
|
|
|
58
88
|
// Scoped package — encode the package name for the registry URL
|
|
59
89
|
const encodedPkg = NPM_PACKAGE_NAME.replace("/", "%2f");
|
|
60
90
|
const url = `https://registry.npmjs.org/${encodedPkg}/${encodeURIComponent(npmTag)}`;
|
|
61
|
-
// Private package — include auth token
|
|
91
|
+
// Private package — include auth token from env or .npmrc
|
|
62
92
|
const headers = {};
|
|
63
|
-
const npmToken =
|
|
93
|
+
const npmToken = getNpmAuthToken();
|
|
64
94
|
if (npmToken) {
|
|
65
95
|
headers["Authorization"] = `Bearer ${npmToken}`;
|
|
66
96
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checker.js","sourceRoot":"","sources":["../../src/updates/checker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAuBzB,sDAAsD;AACtD,MAAM,wBAAwB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACrD,MAAM,gBAAgB,GAAG,oCAAoC,CAAC;AAE9D;;GAEG;AACH,SAAS,WAAW;IAClB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB;IAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,mBAAmB,CAAC,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,SAAS;IACtB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,uBAAuB,EAAE,CAAC;QAC5C,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAqB,CAAC;QACnD,OAAO,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,UAAU,CAAC,KAAuB;IAC/C,MAAM,SAAS,GAAG,uBAAuB,EAAE,CAAC;IAC5C,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,eAAe,CAAC,MAG9B;IACC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC;IAC3C,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE/C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,eAAe,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;QAE1D,IAAI,CAAC;YACH,gEAAgE;YAChE,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACxD,MAAM,GAAG,GAAG,8BAA8B,UAAU,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;YAErF,
|
|
1
|
+
{"version":3,"file":"checker.js","sourceRoot":"","sources":["../../src/updates/checker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"self-updater.d.ts","sourceRoot":"","sources":["../../src/updates/self-updater.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAeH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;
|
|
1
|
+
{"version":3,"file":"self-updater.d.ts","sourceRoot":"","sources":["../../src/updates/self-updater.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAeH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AA+LD;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,gBAAgB,CAAC,CAqE3B"}
|
|
@@ -43,17 +43,50 @@ async function waitForIdle(getIdleState, timeoutMs = IDLE_TIMEOUT_MS) {
|
|
|
43
43
|
}, IDLE_POLL_INTERVAL_MS);
|
|
44
44
|
});
|
|
45
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Find the .npmrc file containing the auth token.
|
|
48
|
+
* On Hetzner sandboxes, HOME may be /home/user but the token lives in /root/.npmrc.
|
|
49
|
+
* Returns the directory containing .npmrc, or null if not found.
|
|
50
|
+
*/
|
|
51
|
+
function findNpmrcHome() {
|
|
52
|
+
const candidates = [
|
|
53
|
+
process.env.HOME,
|
|
54
|
+
"/root",
|
|
55
|
+
"/home/user",
|
|
56
|
+
].filter(Boolean);
|
|
57
|
+
for (const dir of candidates) {
|
|
58
|
+
try {
|
|
59
|
+
const npmrcPath = path.join(dir, ".npmrc");
|
|
60
|
+
if (fs.existsSync(npmrcPath)) {
|
|
61
|
+
const content = fs.readFileSync(npmrcPath, "utf-8");
|
|
62
|
+
if (content.includes("_authToken")) {
|
|
63
|
+
return dir;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
catch { /* ignore permission errors */ }
|
|
68
|
+
}
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
46
71
|
/**
|
|
47
72
|
* Run the npm install command to update the package
|
|
48
73
|
*/
|
|
49
74
|
function runNpmInstall(version) {
|
|
50
75
|
const target = `${NPM_PACKAGE}@${version}`;
|
|
51
76
|
console.log(`[SELF-UPDATE] Installing ${target}...`);
|
|
77
|
+
// Find the HOME that has .npmrc with auth token (fixes HOME mismatch on sandboxes)
|
|
78
|
+
const npmHome = findNpmrcHome();
|
|
79
|
+
const env = { ...process.env };
|
|
80
|
+
if (npmHome && npmHome !== process.env.HOME) {
|
|
81
|
+
console.log(`[SELF-UPDATE] Using HOME=${npmHome} for npm auth (actual HOME=${process.env.HOME})`);
|
|
82
|
+
env.HOME = npmHome;
|
|
83
|
+
}
|
|
52
84
|
try {
|
|
53
85
|
const output = execSync(`npm install -g ${target}`, {
|
|
54
86
|
encoding: "utf-8",
|
|
55
87
|
timeout: 120_000, // 2 minute timeout
|
|
56
88
|
stdio: ["pipe", "pipe", "pipe"],
|
|
89
|
+
env,
|
|
57
90
|
});
|
|
58
91
|
console.log(`[SELF-UPDATE] npm install succeeded`);
|
|
59
92
|
return { success: true, output };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"self-updater.js","sourceRoot":"","sources":["../../src/updates/self-updater.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,MAAM,WAAW,GAAG,oCAAoC,CAAC;AACzD,MAAM,qBAAqB,GAAG,MAAM,CAAC,CAAC,aAAa;AACnD,MAAM,eAAe,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,sBAAsB;AAE3D,8CAA8C;AAC9C,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAkB7B;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,WAAW,CACxB,YAA2B,EAC3B,YAAoB,eAAe;IAEnC,IAAI,YAAY,EAAE;QAAE,OAAO,IAAI,CAAC;IAEhC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;QACtC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC7B,IAAI,YAAY,EAAE,EAAE,CAAC;gBACnB,aAAa,CAAC,KAAK,CAAC,CAAC;gBACrB,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;iBAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,SAAS,EAAE,CAAC;gBAC1C,aAAa,CAAC,KAAK,CAAC,CAAC;gBACrB,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;QACH,CAAC,EAAE,qBAAqB,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,OAAe;IACpC,MAAM,MAAM,GAAG,GAAG,WAAW,IAAI,OAAO,EAAE,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,4BAA4B,MAAM,KAAK,CAAC,CAAC;IAErD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,kBAAkB,MAAM,EAAE,EAAE;YAClD,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,OAAO,EAAE,mBAAmB;YACrC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"self-updater.js","sourceRoot":"","sources":["../../src/updates/self-updater.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/public/index.html
CHANGED
|
@@ -707,21 +707,24 @@
|
|
|
707
707
|
display: none;
|
|
708
708
|
}
|
|
709
709
|
|
|
710
|
-
/* Compaction banner */
|
|
710
|
+
/* Compaction banner — fixed above chat input */
|
|
711
711
|
.compaction-banner {
|
|
712
|
-
display:
|
|
712
|
+
display: none;
|
|
713
713
|
align-items: center;
|
|
714
714
|
gap: 8px;
|
|
715
715
|
padding: 8px 12px;
|
|
716
|
-
margin:
|
|
717
|
-
border-radius: var(--radius);
|
|
716
|
+
margin: 0;
|
|
717
|
+
border-radius: var(--radius) var(--radius) 0 0;
|
|
718
718
|
background: rgba(99, 102, 241, 0.08);
|
|
719
719
|
border: 1px solid rgba(99, 102, 241, 0.2);
|
|
720
|
+
border-bottom: none;
|
|
720
721
|
font-size: 12px;
|
|
721
722
|
color: var(--accent);
|
|
722
723
|
font-family: var(--mono);
|
|
723
724
|
}
|
|
724
725
|
|
|
726
|
+
.compaction-banner.active { display: flex; }
|
|
727
|
+
|
|
725
728
|
.compaction-banner .compaction-icon {
|
|
726
729
|
animation: spin 1s linear infinite;
|
|
727
730
|
font-size: 14px;
|
|
@@ -730,6 +733,7 @@
|
|
|
730
733
|
.compaction-banner.compaction-done {
|
|
731
734
|
background: rgba(34, 197, 94, 0.08);
|
|
732
735
|
border-color: rgba(34, 197, 94, 0.2);
|
|
736
|
+
border-bottom: none;
|
|
733
737
|
color: var(--green);
|
|
734
738
|
}
|
|
735
739
|
|
|
@@ -740,6 +744,7 @@
|
|
|
740
744
|
.compaction-banner.compaction-error {
|
|
741
745
|
background: rgba(239, 68, 68, 0.08);
|
|
742
746
|
border-color: rgba(239, 68, 68, 0.2);
|
|
747
|
+
border-bottom: none;
|
|
743
748
|
color: var(--red);
|
|
744
749
|
}
|
|
745
750
|
|
|
@@ -1247,6 +1252,10 @@
|
|
|
1247
1252
|
<div class="vnc-panel-body" id="vnc-panel-body"></div>
|
|
1248
1253
|
</div>
|
|
1249
1254
|
|
|
1255
|
+
<div class="compaction-banner" id="compaction-banner">
|
|
1256
|
+
<span class="compaction-icon">⚙</span>
|
|
1257
|
+
<span class="compaction-text">Compacting conversation context...</span>
|
|
1258
|
+
</div>
|
|
1250
1259
|
<div class="chat-input-wrap">
|
|
1251
1260
|
<input type="text" id="chat-input" placeholder="Type a message..." onkeydown="if(event.key==='Enter') sendMessage()" />
|
|
1252
1261
|
<button class="btn btn-primary" onclick="sendMessage()" id="chat-send-btn">Send</button>
|
|
@@ -2044,41 +2053,37 @@
|
|
|
2044
2053
|
break;
|
|
2045
2054
|
}
|
|
2046
2055
|
|
|
2047
|
-
case 'compaction_start':
|
|
2048
|
-
|
|
2049
|
-
|
|
2050
|
-
|
|
2051
|
-
|
|
2052
|
-
|
|
2053
|
-
<span>Compacting conversation context...</span>
|
|
2054
|
-
</div>
|
|
2055
|
-
`);
|
|
2056
|
-
state.ensureTextSpan();
|
|
2057
|
-
scrollChat();
|
|
2056
|
+
case 'compaction_start': {
|
|
2057
|
+
const cb = document.getElementById('compaction-banner');
|
|
2058
|
+
if (cb) {
|
|
2059
|
+
cb.className = 'compaction-banner active';
|
|
2060
|
+
cb.querySelector('.compaction-icon').innerHTML = '⚙';
|
|
2061
|
+
cb.querySelector('.compaction-text').textContent = 'Compacting conversation context...';
|
|
2058
2062
|
}
|
|
2059
2063
|
break;
|
|
2064
|
+
}
|
|
2060
2065
|
|
|
2061
|
-
case 'compaction_end':
|
|
2062
|
-
|
|
2063
|
-
|
|
2064
|
-
|
|
2065
|
-
|
|
2066
|
-
|
|
2067
|
-
|
|
2068
|
-
|
|
2069
|
-
|
|
2070
|
-
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
|
|
2078
|
-
|
|
2079
|
-
|
|
2066
|
+
case 'compaction_end': {
|
|
2067
|
+
const cb = document.getElementById('compaction-banner');
|
|
2068
|
+
if (cb) {
|
|
2069
|
+
const icon = cb.querySelector('.compaction-icon');
|
|
2070
|
+
const text = cb.querySelector('.compaction-text');
|
|
2071
|
+
if (data.error) {
|
|
2072
|
+
icon.innerHTML = '⚠';
|
|
2073
|
+
cb.className = 'compaction-banner active compaction-error';
|
|
2074
|
+
text.textContent = `Compaction failed: ${esc(data.error)}`;
|
|
2075
|
+
} else {
|
|
2076
|
+
icon.innerHTML = '✓';
|
|
2077
|
+
cb.className = 'compaction-banner active compaction-done';
|
|
2078
|
+
const detail = data.tokensBefore && data.tokensAfter
|
|
2079
|
+
? ` (${data.tokensBefore.toLocaleString()} \u2192 ${data.tokensAfter.toLocaleString()} tokens)`
|
|
2080
|
+
: '';
|
|
2081
|
+
text.textContent = `Context compacted${detail}`;
|
|
2082
|
+
}
|
|
2083
|
+
// Auto-hide after 5s on success
|
|
2084
|
+
if (!data.error) {
|
|
2085
|
+
setTimeout(() => { cb.classList.remove('active'); }, 5000);
|
|
2080
2086
|
}
|
|
2081
|
-
scrollChat();
|
|
2082
2087
|
}
|
|
2083
2088
|
break;
|
|
2084
2089
|
|
package/scripts/postinstall.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* 1. Ensure the CLI entry point is executable
|
|
6
6
|
* 2. Attempt to install Playwright Chromium (for browser tool)
|
|
7
7
|
* 3. Create ~/.costar directory
|
|
8
|
-
* 4. Install Docker
|
|
8
|
+
* 4. Install Docker on Linux if missing (image auto-builds on first browser use)
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import fs from "node:fs";
|
|
@@ -109,80 +109,44 @@ function installPlaywrightBrowsers() {
|
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
111
|
|
|
112
|
-
function
|
|
112
|
+
function ensureDocker() {
|
|
113
113
|
// Only on Linux (Hetzner / sandbox VMs)
|
|
114
114
|
if (process.platform !== "linux") return;
|
|
115
115
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
// Step 1: Install Docker if not present
|
|
116
|
+
// Check if Docker is already installed
|
|
119
117
|
const dockerCheck = spawnSync("docker", ["--version"], { stdio: "pipe", timeout: 5000 });
|
|
120
|
-
if (dockerCheck.status
|
|
121
|
-
console.log("[postinstall] Docker not found, installing...");
|
|
122
|
-
const whoami = spawnSync("whoami", [], { stdio: "pipe", encoding: "utf-8", timeout: 3000 });
|
|
123
|
-
const isRoot = whoami.stdout?.trim() === "root";
|
|
124
|
-
const sudo = isRoot ? "" : "sudo ";
|
|
125
|
-
|
|
126
|
-
const installResult = spawnSync("sh", ["-c",
|
|
127
|
-
`curl -fsSL https://get.docker.com | ${sudo}sh 2>&1`
|
|
128
|
-
], {
|
|
129
|
-
stdio: "inherit",
|
|
130
|
-
timeout: 180_000, // 3 min
|
|
131
|
-
});
|
|
132
|
-
|
|
133
|
-
if (installResult.status !== 0) {
|
|
134
|
-
console.warn("[postinstall] Docker install failed (browser will work without live view)");
|
|
135
|
-
return;
|
|
136
|
-
}
|
|
137
|
-
console.log("[postinstall] Docker installed successfully");
|
|
138
|
-
} else {
|
|
118
|
+
if (dockerCheck.status === 0) {
|
|
139
119
|
console.log("[postinstall] Docker already installed");
|
|
120
|
+
return;
|
|
140
121
|
}
|
|
141
122
|
|
|
142
|
-
//
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
const isRoot = whoami.stdout?.trim() === "root";
|
|
148
|
-
const sudo = isRoot ? "" : "sudo ";
|
|
149
|
-
spawnSync("sh", ["-c", `${sudo}systemctl start docker 2>&1 || ${sudo}service docker start 2>&1`], {
|
|
150
|
-
stdio: "inherit",
|
|
151
|
-
timeout: 15_000,
|
|
152
|
-
});
|
|
153
|
-
}
|
|
123
|
+
// Install Docker
|
|
124
|
+
console.log("[postinstall] Docker not found, installing...");
|
|
125
|
+
const whoami = spawnSync("whoami", [], { stdio: "pipe", encoding: "utf-8", timeout: 3000 });
|
|
126
|
+
const isRoot = whoami.stdout?.trim() === "root";
|
|
127
|
+
const sudo = isRoot ? "" : "sudo ";
|
|
154
128
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
129
|
+
const installResult = spawnSync("sh", ["-c",
|
|
130
|
+
`curl -fsSL https://get.docker.com | ${sudo}sh 2>&1`
|
|
131
|
+
], {
|
|
132
|
+
stdio: "inherit",
|
|
133
|
+
timeout: 180_000, // 3 min
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
if (installResult.status !== 0) {
|
|
137
|
+
console.warn("[postinstall] Docker install failed (browser sandbox will not be available)");
|
|
159
138
|
return;
|
|
160
139
|
}
|
|
140
|
+
console.log("[postinstall] Docker installed successfully");
|
|
161
141
|
|
|
162
|
-
//
|
|
163
|
-
|
|
164
|
-
stdio: "
|
|
165
|
-
timeout:
|
|
142
|
+
// Start Docker daemon
|
|
143
|
+
spawnSync("sh", ["-c", `${sudo}systemctl start docker 2>&1 || ${sudo}service docker start 2>&1`], {
|
|
144
|
+
stdio: "inherit",
|
|
145
|
+
timeout: 15_000,
|
|
166
146
|
});
|
|
167
|
-
if (imageCheck.status === 0) {
|
|
168
|
-
console.log("[postinstall] Docker sandbox browser image already exists");
|
|
169
|
-
return;
|
|
170
|
-
}
|
|
171
147
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
if (fs.existsSync(setupScript)) {
|
|
175
|
-
const buildResult = spawnSync("bash", [setupScript], {
|
|
176
|
-
stdio: "inherit",
|
|
177
|
-
timeout: 300_000, // 5 min
|
|
178
|
-
cwd: repoRoot,
|
|
179
|
-
});
|
|
180
|
-
if (buildResult.status === 0) {
|
|
181
|
-
console.log("[postinstall] Sandbox browser Docker image built successfully");
|
|
182
|
-
} else {
|
|
183
|
-
console.warn("[postinstall] Docker image build failed (browser will work without live view)");
|
|
184
|
-
}
|
|
185
|
-
}
|
|
148
|
+
// Note: Docker image will be auto-built on first browser use (see browser-container.ts)
|
|
149
|
+
console.log("[postinstall] Docker image will be built automatically on first browser use");
|
|
186
150
|
}
|
|
187
151
|
|
|
188
152
|
// ─── Main ──────────────────────────────────────────────────────
|
|
@@ -206,8 +170,8 @@ try {
|
|
|
206
170
|
// Install Chromium (optional, may fail gracefully)
|
|
207
171
|
installPlaywrightBrowsers();
|
|
208
172
|
|
|
209
|
-
// Install Docker
|
|
210
|
-
|
|
173
|
+
// Install Docker on Linux (image auto-builds on first browser use)
|
|
174
|
+
ensureDocker();
|
|
211
175
|
}
|
|
212
176
|
} catch (err) {
|
|
213
177
|
// Postinstall should never fail the npm install
|