adhdev 0.8.93 → 0.8.95
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/cli/index.js +565 -280
- package/dist/cli/index.js.map +1 -1
- package/dist/index.js +488 -218
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -982,15 +982,15 @@ function resolveCommandPath(command) {
|
|
|
982
982
|
return null;
|
|
983
983
|
}
|
|
984
984
|
function execAsync(cmd, timeoutMs = 5e3) {
|
|
985
|
-
return new Promise((
|
|
985
|
+
return new Promise((resolve16) => {
|
|
986
986
|
const child = (0, import_child_process2.exec)(cmd, { encoding: "utf-8", timeout: timeoutMs }, (err, stdout) => {
|
|
987
987
|
if (err || !stdout?.trim()) {
|
|
988
|
-
|
|
988
|
+
resolve16(null);
|
|
989
989
|
} else {
|
|
990
|
-
|
|
990
|
+
resolve16(stdout.trim());
|
|
991
991
|
}
|
|
992
992
|
});
|
|
993
|
-
child.on("error", () =>
|
|
993
|
+
child.on("error", () => resolve16(null));
|
|
994
994
|
});
|
|
995
995
|
}
|
|
996
996
|
async function detectCLIs(providerLoader, options) {
|
|
@@ -1598,7 +1598,7 @@ var init_manager = __esm({
|
|
|
1598
1598
|
* Returns multiple entries if multiple IDE windows are open on same port
|
|
1599
1599
|
*/
|
|
1600
1600
|
static listAllTargets(port) {
|
|
1601
|
-
return new Promise((
|
|
1601
|
+
return new Promise((resolve16) => {
|
|
1602
1602
|
const req = http.get(`http://127.0.0.1:${port}/json`, (res) => {
|
|
1603
1603
|
let data = "";
|
|
1604
1604
|
res.on("data", (chunk) => data += chunk.toString());
|
|
@@ -1614,16 +1614,16 @@ var init_manager = __esm({
|
|
|
1614
1614
|
(t) => !isNonMain(t.title || "") && t.url?.includes("workbench.html") && !t.url?.includes("agent")
|
|
1615
1615
|
);
|
|
1616
1616
|
const fallbackPages = pages.filter((t) => !isNonMain(t.title || ""));
|
|
1617
|
-
|
|
1617
|
+
resolve16(mainPages.length > 0 ? mainPages : fallbackPages);
|
|
1618
1618
|
} catch {
|
|
1619
|
-
|
|
1619
|
+
resolve16([]);
|
|
1620
1620
|
}
|
|
1621
1621
|
});
|
|
1622
1622
|
});
|
|
1623
|
-
req.on("error", () =>
|
|
1623
|
+
req.on("error", () => resolve16([]));
|
|
1624
1624
|
req.setTimeout(2e3, () => {
|
|
1625
1625
|
req.destroy();
|
|
1626
|
-
|
|
1626
|
+
resolve16([]);
|
|
1627
1627
|
});
|
|
1628
1628
|
});
|
|
1629
1629
|
}
|
|
@@ -1663,7 +1663,7 @@ var init_manager = __esm({
|
|
|
1663
1663
|
}
|
|
1664
1664
|
}
|
|
1665
1665
|
findTargetOnPort(port) {
|
|
1666
|
-
return new Promise((
|
|
1666
|
+
return new Promise((resolve16) => {
|
|
1667
1667
|
const req = http.get(`http://127.0.0.1:${port}/json`, (res) => {
|
|
1668
1668
|
let data = "";
|
|
1669
1669
|
res.on("data", (chunk) => data += chunk.toString());
|
|
@@ -1674,7 +1674,7 @@ var init_manager = __esm({
|
|
|
1674
1674
|
(t) => (t.type === "page" || t.type === "browser" || t.type === "Page") && t.webSocketDebuggerUrl
|
|
1675
1675
|
);
|
|
1676
1676
|
if (pages.length === 0) {
|
|
1677
|
-
|
|
1677
|
+
resolve16(targets.find((t) => t.webSocketDebuggerUrl) || null);
|
|
1678
1678
|
return;
|
|
1679
1679
|
}
|
|
1680
1680
|
const titleFilteredPages = pages.filter((t) => !this.isNonMainTitle(t.title || ""));
|
|
@@ -1693,25 +1693,25 @@ var init_manager = __esm({
|
|
|
1693
1693
|
this._targetId = selected.target.id;
|
|
1694
1694
|
}
|
|
1695
1695
|
this._pageTitle = selected.target.title || "";
|
|
1696
|
-
|
|
1696
|
+
resolve16(selected.target);
|
|
1697
1697
|
return;
|
|
1698
1698
|
}
|
|
1699
1699
|
if (previousTargetId) {
|
|
1700
1700
|
this.log(`[CDP] Target ${previousTargetId} not found in page list`);
|
|
1701
|
-
|
|
1701
|
+
resolve16(null);
|
|
1702
1702
|
return;
|
|
1703
1703
|
}
|
|
1704
1704
|
this._pageTitle = list[0]?.title || "";
|
|
1705
|
-
|
|
1705
|
+
resolve16(list[0]);
|
|
1706
1706
|
} catch {
|
|
1707
|
-
|
|
1707
|
+
resolve16(null);
|
|
1708
1708
|
}
|
|
1709
1709
|
});
|
|
1710
1710
|
});
|
|
1711
|
-
req.on("error", () =>
|
|
1711
|
+
req.on("error", () => resolve16(null));
|
|
1712
1712
|
req.setTimeout(2e3, () => {
|
|
1713
1713
|
req.destroy();
|
|
1714
|
-
|
|
1714
|
+
resolve16(null);
|
|
1715
1715
|
});
|
|
1716
1716
|
});
|
|
1717
1717
|
}
|
|
@@ -1722,7 +1722,7 @@ var init_manager = __esm({
|
|
|
1722
1722
|
this.extensionProviders = providers;
|
|
1723
1723
|
}
|
|
1724
1724
|
connectToTarget(wsUrl) {
|
|
1725
|
-
return new Promise((
|
|
1725
|
+
return new Promise((resolve16) => {
|
|
1726
1726
|
this.ws = new import_ws.default(wsUrl);
|
|
1727
1727
|
this.ws.on("open", async () => {
|
|
1728
1728
|
this._connected = true;
|
|
@@ -1732,17 +1732,17 @@ var init_manager = __esm({
|
|
|
1732
1732
|
}
|
|
1733
1733
|
this.connectBrowserWs().catch(() => {
|
|
1734
1734
|
});
|
|
1735
|
-
|
|
1735
|
+
resolve16(true);
|
|
1736
1736
|
});
|
|
1737
1737
|
this.ws.on("message", (data) => {
|
|
1738
1738
|
try {
|
|
1739
1739
|
const msg = JSON.parse(data.toString());
|
|
1740
1740
|
if (msg.id && this.pending.has(msg.id)) {
|
|
1741
|
-
const { resolve:
|
|
1741
|
+
const { resolve: resolve17, reject } = this.pending.get(msg.id);
|
|
1742
1742
|
this.pending.delete(msg.id);
|
|
1743
1743
|
this.failureCount = 0;
|
|
1744
1744
|
if (msg.error) reject(new Error(msg.error.message));
|
|
1745
|
-
else
|
|
1745
|
+
else resolve17(msg.result);
|
|
1746
1746
|
} else if (msg.method === "Runtime.executionContextCreated") {
|
|
1747
1747
|
this.contexts.add(msg.params.context.id);
|
|
1748
1748
|
} else if (msg.method === "Runtime.executionContextDestroyed") {
|
|
@@ -1765,7 +1765,7 @@ var init_manager = __esm({
|
|
|
1765
1765
|
this.ws.on("error", (err) => {
|
|
1766
1766
|
this.log(`[CDP] WebSocket error: ${err.message}`);
|
|
1767
1767
|
this._connected = false;
|
|
1768
|
-
|
|
1768
|
+
resolve16(false);
|
|
1769
1769
|
});
|
|
1770
1770
|
});
|
|
1771
1771
|
}
|
|
@@ -1779,7 +1779,7 @@ var init_manager = __esm({
|
|
|
1779
1779
|
return;
|
|
1780
1780
|
}
|
|
1781
1781
|
this.log(`[CDP] Connecting browser WS for target discovery...`);
|
|
1782
|
-
await new Promise((
|
|
1782
|
+
await new Promise((resolve16, reject) => {
|
|
1783
1783
|
this.browserWs = new import_ws.default(browserWsUrl);
|
|
1784
1784
|
this.browserWs.on("open", async () => {
|
|
1785
1785
|
this._browserConnected = true;
|
|
@@ -1789,16 +1789,16 @@ var init_manager = __esm({
|
|
|
1789
1789
|
} catch (e) {
|
|
1790
1790
|
this.log(`[CDP] setDiscoverTargets failed: ${e.message}`);
|
|
1791
1791
|
}
|
|
1792
|
-
|
|
1792
|
+
resolve16();
|
|
1793
1793
|
});
|
|
1794
1794
|
this.browserWs.on("message", (data) => {
|
|
1795
1795
|
try {
|
|
1796
1796
|
const msg = JSON.parse(data.toString());
|
|
1797
1797
|
if (msg.id && this.browserPending.has(msg.id)) {
|
|
1798
|
-
const { resolve:
|
|
1798
|
+
const { resolve: resolve17, reject: reject2 } = this.browserPending.get(msg.id);
|
|
1799
1799
|
this.browserPending.delete(msg.id);
|
|
1800
1800
|
if (msg.error) reject2(new Error(msg.error.message));
|
|
1801
|
-
else
|
|
1801
|
+
else resolve17(msg.result);
|
|
1802
1802
|
}
|
|
1803
1803
|
} catch {
|
|
1804
1804
|
}
|
|
@@ -1818,31 +1818,31 @@ var init_manager = __esm({
|
|
|
1818
1818
|
}
|
|
1819
1819
|
}
|
|
1820
1820
|
getBrowserWsUrl() {
|
|
1821
|
-
return new Promise((
|
|
1821
|
+
return new Promise((resolve16) => {
|
|
1822
1822
|
const req = http.get(`http://127.0.0.1:${this.port}/json/version`, (res) => {
|
|
1823
1823
|
let data = "";
|
|
1824
1824
|
res.on("data", (chunk) => data += chunk.toString());
|
|
1825
1825
|
res.on("end", () => {
|
|
1826
1826
|
try {
|
|
1827
1827
|
const info = JSON.parse(data);
|
|
1828
|
-
|
|
1828
|
+
resolve16(info.webSocketDebuggerUrl || null);
|
|
1829
1829
|
} catch {
|
|
1830
|
-
|
|
1830
|
+
resolve16(null);
|
|
1831
1831
|
}
|
|
1832
1832
|
});
|
|
1833
1833
|
});
|
|
1834
|
-
req.on("error", () =>
|
|
1834
|
+
req.on("error", () => resolve16(null));
|
|
1835
1835
|
req.setTimeout(3e3, () => {
|
|
1836
1836
|
req.destroy();
|
|
1837
|
-
|
|
1837
|
+
resolve16(null);
|
|
1838
1838
|
});
|
|
1839
1839
|
});
|
|
1840
1840
|
}
|
|
1841
1841
|
sendBrowser(method, params = {}, timeoutMs = 15e3) {
|
|
1842
|
-
return new Promise((
|
|
1842
|
+
return new Promise((resolve16, reject) => {
|
|
1843
1843
|
if (!this.browserWs || !this._browserConnected) return reject(new Error("Browser WS not connected"));
|
|
1844
1844
|
const id = this.browserMsgId++;
|
|
1845
|
-
this.browserPending.set(id, { resolve:
|
|
1845
|
+
this.browserPending.set(id, { resolve: resolve16, reject });
|
|
1846
1846
|
this.browserWs.send(JSON.stringify({ id, method, params }));
|
|
1847
1847
|
setTimeout(() => {
|
|
1848
1848
|
if (this.browserPending.has(id)) {
|
|
@@ -1882,11 +1882,11 @@ var init_manager = __esm({
|
|
|
1882
1882
|
}
|
|
1883
1883
|
// ─── CDP Protocol ────────────────────────────────────────
|
|
1884
1884
|
sendInternal(method, params = {}, timeoutMs = 15e3) {
|
|
1885
|
-
return new Promise((
|
|
1885
|
+
return new Promise((resolve16, reject) => {
|
|
1886
1886
|
if (!this.ws || !this._connected) return reject(new Error("CDP not connected"));
|
|
1887
1887
|
if (this.ws.readyState !== import_ws.default.OPEN) return reject(new Error("WebSocket not open"));
|
|
1888
1888
|
const id = this.msgId++;
|
|
1889
|
-
this.pending.set(id, { resolve:
|
|
1889
|
+
this.pending.set(id, { resolve: resolve16, reject });
|
|
1890
1890
|
this.ws.send(JSON.stringify({ id, method, params }));
|
|
1891
1891
|
setTimeout(() => {
|
|
1892
1892
|
if (this.pending.has(id)) {
|
|
@@ -2135,7 +2135,7 @@ var init_manager = __esm({
|
|
|
2135
2135
|
const browserWs = this.browserWs;
|
|
2136
2136
|
let msgId = this.browserMsgId;
|
|
2137
2137
|
const sendWs = (method, params = {}, sessionId) => {
|
|
2138
|
-
return new Promise((
|
|
2138
|
+
return new Promise((resolve16, reject) => {
|
|
2139
2139
|
const mid = msgId++;
|
|
2140
2140
|
this.browserMsgId = msgId;
|
|
2141
2141
|
const handler = (raw) => {
|
|
@@ -2144,7 +2144,7 @@ var init_manager = __esm({
|
|
|
2144
2144
|
if (msg.id === mid) {
|
|
2145
2145
|
browserWs.removeListener("message", handler);
|
|
2146
2146
|
if (msg.error) reject(new Error(msg.error.message || JSON.stringify(msg.error)));
|
|
2147
|
-
else
|
|
2147
|
+
else resolve16(msg.result);
|
|
2148
2148
|
}
|
|
2149
2149
|
} catch {
|
|
2150
2150
|
}
|
|
@@ -2345,14 +2345,14 @@ var init_manager = __esm({
|
|
|
2345
2345
|
if (!ws || ws.readyState !== import_ws.default.OPEN) {
|
|
2346
2346
|
throw new Error("CDP not connected");
|
|
2347
2347
|
}
|
|
2348
|
-
return new Promise((
|
|
2348
|
+
return new Promise((resolve16, reject) => {
|
|
2349
2349
|
const id = getNextId();
|
|
2350
2350
|
pendingMap.set(id, {
|
|
2351
2351
|
resolve: (result) => {
|
|
2352
2352
|
if (result?.result?.subtype === "error") {
|
|
2353
2353
|
reject(new Error(result.result.description));
|
|
2354
2354
|
} else {
|
|
2355
|
-
|
|
2355
|
+
resolve16(result?.result?.value);
|
|
2356
2356
|
}
|
|
2357
2357
|
},
|
|
2358
2358
|
reject
|
|
@@ -2384,10 +2384,10 @@ var init_manager = __esm({
|
|
|
2384
2384
|
throw new Error("CDP not connected");
|
|
2385
2385
|
}
|
|
2386
2386
|
const sendViaSession = (method, params = {}) => {
|
|
2387
|
-
return new Promise((
|
|
2387
|
+
return new Promise((resolve16, reject) => {
|
|
2388
2388
|
const pendingMap = this._browserConnected ? this.browserPending : this.pending;
|
|
2389
2389
|
const id = this._browserConnected ? this.browserMsgId++ : this.msgId++;
|
|
2390
|
-
pendingMap.set(id, { resolve:
|
|
2390
|
+
pendingMap.set(id, { resolve: resolve16, reject });
|
|
2391
2391
|
ws.send(JSON.stringify({ id, sessionId, method, params }));
|
|
2392
2392
|
setTimeout(() => {
|
|
2393
2393
|
if (pendingMap.has(id)) {
|
|
@@ -4141,6 +4141,125 @@ function listSavedHistorySessions(agentType, options = {}) {
|
|
|
4141
4141
|
return { sessions: [], hasMore: false };
|
|
4142
4142
|
}
|
|
4143
4143
|
}
|
|
4144
|
+
function normalizeCanonicalHermesMessageContent(content) {
|
|
4145
|
+
if (typeof content === "string") return content.trim();
|
|
4146
|
+
if (content == null) return "";
|
|
4147
|
+
try {
|
|
4148
|
+
return JSON.stringify(content).trim();
|
|
4149
|
+
} catch {
|
|
4150
|
+
return String(content).trim();
|
|
4151
|
+
}
|
|
4152
|
+
}
|
|
4153
|
+
function extractCanonicalHermesMessageTimestamp(message, fallbackTs) {
|
|
4154
|
+
const numericTimestamp = Number(message.receivedAt || message.timestamp || message.ts || 0);
|
|
4155
|
+
if (Number.isFinite(numericTimestamp) && numericTimestamp > 0) return numericTimestamp;
|
|
4156
|
+
const stringTimestamp = typeof message.ts === "string" ? Date.parse(message.ts) : typeof message.timestamp === "string" ? Date.parse(message.timestamp) : NaN;
|
|
4157
|
+
if (Number.isFinite(stringTimestamp) && stringTimestamp > 0) return stringTimestamp;
|
|
4158
|
+
return fallbackTs;
|
|
4159
|
+
}
|
|
4160
|
+
function readExistingHermesSessionStartRecord(historySessionId) {
|
|
4161
|
+
try {
|
|
4162
|
+
const dir = path7.join(HISTORY_DIR, "hermes-cli");
|
|
4163
|
+
if (!fs3.existsSync(dir)) return null;
|
|
4164
|
+
const files = listHistoryFiles(dir, historySessionId).sort();
|
|
4165
|
+
for (const file2 of files) {
|
|
4166
|
+
const lines = fs3.readFileSync(path7.join(dir, file2), "utf-8").split("\n").filter(Boolean);
|
|
4167
|
+
for (const line of lines) {
|
|
4168
|
+
try {
|
|
4169
|
+
const parsed = JSON.parse(line);
|
|
4170
|
+
if (parsed.historySessionId !== historySessionId) continue;
|
|
4171
|
+
if (parsed.kind === "session_start" && parsed.role === "system") {
|
|
4172
|
+
return parsed;
|
|
4173
|
+
}
|
|
4174
|
+
} catch {
|
|
4175
|
+
}
|
|
4176
|
+
}
|
|
4177
|
+
}
|
|
4178
|
+
return null;
|
|
4179
|
+
} catch {
|
|
4180
|
+
return null;
|
|
4181
|
+
}
|
|
4182
|
+
}
|
|
4183
|
+
function rebuildHermesSavedHistoryFromCanonicalSession(historySessionId) {
|
|
4184
|
+
const normalizedSessionId = normalizeSavedHistorySessionId("hermes-cli", historySessionId);
|
|
4185
|
+
if (!normalizedSessionId) return false;
|
|
4186
|
+
try {
|
|
4187
|
+
const sessionFilePath = path7.join(os5.homedir(), ".hermes", "sessions", `session_${normalizedSessionId}.json`);
|
|
4188
|
+
if (!fs3.existsSync(sessionFilePath)) return false;
|
|
4189
|
+
const raw = JSON.parse(fs3.readFileSync(sessionFilePath, "utf-8"));
|
|
4190
|
+
const canonicalMessages = Array.isArray(raw.messages) ? raw.messages : [];
|
|
4191
|
+
const dir = path7.join(HISTORY_DIR, "hermes-cli");
|
|
4192
|
+
fs3.mkdirSync(dir, { recursive: true });
|
|
4193
|
+
const existingSessionStart = readExistingHermesSessionStartRecord(normalizedSessionId);
|
|
4194
|
+
const records = [];
|
|
4195
|
+
if (existingSessionStart) {
|
|
4196
|
+
records.push({
|
|
4197
|
+
...existingSessionStart,
|
|
4198
|
+
historySessionId: normalizedSessionId
|
|
4199
|
+
});
|
|
4200
|
+
}
|
|
4201
|
+
let fallbackTs = Date.parse(raw.session_start || raw.last_updated || "") || Date.now();
|
|
4202
|
+
for (const message of canonicalMessages) {
|
|
4203
|
+
const role = String(message.role || "").trim();
|
|
4204
|
+
const content = normalizeCanonicalHermesMessageContent(message.content);
|
|
4205
|
+
if (!content) continue;
|
|
4206
|
+
const receivedAt = extractCanonicalHermesMessageTimestamp(message, fallbackTs);
|
|
4207
|
+
fallbackTs = receivedAt + 1;
|
|
4208
|
+
if (role === "user") {
|
|
4209
|
+
records.push({
|
|
4210
|
+
ts: new Date(receivedAt).toISOString(),
|
|
4211
|
+
receivedAt,
|
|
4212
|
+
role: "user",
|
|
4213
|
+
content,
|
|
4214
|
+
kind: "standard",
|
|
4215
|
+
agent: "hermes-cli",
|
|
4216
|
+
historySessionId: normalizedSessionId
|
|
4217
|
+
});
|
|
4218
|
+
continue;
|
|
4219
|
+
}
|
|
4220
|
+
if (role === "assistant") {
|
|
4221
|
+
records.push({
|
|
4222
|
+
ts: new Date(receivedAt).toISOString(),
|
|
4223
|
+
receivedAt,
|
|
4224
|
+
role: "assistant",
|
|
4225
|
+
content,
|
|
4226
|
+
kind: "standard",
|
|
4227
|
+
agent: "hermes-cli",
|
|
4228
|
+
historySessionId: normalizedSessionId
|
|
4229
|
+
});
|
|
4230
|
+
continue;
|
|
4231
|
+
}
|
|
4232
|
+
if (role === "tool") {
|
|
4233
|
+
records.push({
|
|
4234
|
+
ts: new Date(receivedAt).toISOString(),
|
|
4235
|
+
receivedAt,
|
|
4236
|
+
role: "assistant",
|
|
4237
|
+
content,
|
|
4238
|
+
kind: "tool",
|
|
4239
|
+
senderName: "Tool",
|
|
4240
|
+
agent: "hermes-cli",
|
|
4241
|
+
historySessionId: normalizedSessionId
|
|
4242
|
+
});
|
|
4243
|
+
}
|
|
4244
|
+
}
|
|
4245
|
+
if (records.length === 0) return false;
|
|
4246
|
+
const prefix = `${normalizedSessionId.replace(/[^a-zA-Z0-9_-]/g, "_")}_`;
|
|
4247
|
+
for (const file2 of fs3.readdirSync(dir)) {
|
|
4248
|
+
if (file2.startsWith(prefix) && file2.endsWith(".jsonl")) {
|
|
4249
|
+
fs3.unlinkSync(path7.join(dir, file2));
|
|
4250
|
+
}
|
|
4251
|
+
}
|
|
4252
|
+
const targetDate = new Date(records[records.length - 1].receivedAt || Date.now()).toISOString().slice(0, 10);
|
|
4253
|
+
const filePath = path7.join(dir, `${prefix}${targetDate}.jsonl`);
|
|
4254
|
+
fs3.writeFileSync(filePath, `${records.map((record2) => JSON.stringify(record2)).join("\n")}
|
|
4255
|
+
`, "utf-8");
|
|
4256
|
+
invalidatePersistedSavedHistoryIndex("hermes-cli", dir);
|
|
4257
|
+
savedHistorySessionCache.delete("hermes-cli");
|
|
4258
|
+
return true;
|
|
4259
|
+
} catch {
|
|
4260
|
+
return false;
|
|
4261
|
+
}
|
|
4262
|
+
}
|
|
4144
4263
|
var fs3, path7, os5, HISTORY_DIR, RETAIN_DAYS, SAVED_HISTORY_INDEX_VERSION, SAVED_HISTORY_INDEX_FILE, SAVED_HISTORY_INDEX_LOCK_SUFFIX, SAVED_HISTORY_INDEX_LOCK_WAIT_MS, SAVED_HISTORY_INDEX_LOCK_STALE_MS, SAVED_HISTORY_INDEX_LOCK_POLL_MS, SAVED_HISTORY_ROLLUP_THRESHOLD_BYTES, savedHistorySessionCache, savedHistoryFileSummaryCache, savedHistoryBackgroundRefresh, savedHistoryRollupInFlight, CODEX_STARTER_PROMPT_RE, ChatHistoryWriter;
|
|
4145
4264
|
var init_chat_history = __esm({
|
|
4146
4265
|
"../../oss/packages/daemon-core/src/config/chat-history.ts"() {
|
|
@@ -6955,7 +7074,9 @@ function getTargetInstance(h, args) {
|
|
|
6955
7074
|
const targetSessionId = typeof args?.targetSessionId === "string" ? args.targetSessionId.trim() : "";
|
|
6956
7075
|
const sessionId = targetSessionId || h.currentSession?.sessionId || "";
|
|
6957
7076
|
if (!sessionId) return null;
|
|
6958
|
-
|
|
7077
|
+
const session = h.ctx.sessionRegistry?.get(sessionId);
|
|
7078
|
+
const instanceKey = session?.adapterKey || session?.instanceKey || sessionId;
|
|
7079
|
+
return h.ctx.instanceManager?.getInstance(instanceKey) || null;
|
|
6959
7080
|
}
|
|
6960
7081
|
function getTargetTransport(h, provider) {
|
|
6961
7082
|
if (h.currentSession?.transport) return h.currentSession.transport;
|
|
@@ -7252,7 +7373,7 @@ function getStateLastSignature(state) {
|
|
|
7252
7373
|
async function getStableExtensionBaseline(h) {
|
|
7253
7374
|
const first = await readExtensionChatState(h);
|
|
7254
7375
|
if (getStateMessageCount(first) > 0 || getStateLastSignature(first)) return first;
|
|
7255
|
-
await new Promise((
|
|
7376
|
+
await new Promise((resolve16) => setTimeout(resolve16, 150));
|
|
7256
7377
|
const second = await readExtensionChatState(h);
|
|
7257
7378
|
return getStateMessageCount(second) >= getStateMessageCount(first) ? second : first;
|
|
7258
7379
|
}
|
|
@@ -7260,7 +7381,7 @@ async function verifyExtensionSendObserved(h, before) {
|
|
|
7260
7381
|
const beforeCount = getStateMessageCount(before);
|
|
7261
7382
|
const beforeSignature = getStateLastSignature(before);
|
|
7262
7383
|
for (let attempt = 0; attempt < 12; attempt += 1) {
|
|
7263
|
-
await new Promise((
|
|
7384
|
+
await new Promise((resolve16) => setTimeout(resolve16, 250));
|
|
7264
7385
|
const state = await readExtensionChatState(h);
|
|
7265
7386
|
if (state?.status === "waiting_approval") return true;
|
|
7266
7387
|
const afterCount = getStateMessageCount(state);
|
|
@@ -8024,10 +8145,17 @@ async function handleResolveAction(h, args) {
|
|
|
8024
8145
|
}
|
|
8025
8146
|
}
|
|
8026
8147
|
const status = adapter.getStatus();
|
|
8027
|
-
|
|
8148
|
+
const targetInstance = getTargetInstance(h, args);
|
|
8149
|
+
const targetState = targetInstance?.getState?.();
|
|
8150
|
+
const surfacedModal = targetState?.activeChat?.activeModal && Array.isArray(targetState.activeChat.activeModal.buttons) && targetState.activeChat.activeModal.buttons.some((candidate) => typeof candidate === "string" && candidate.trim()) ? targetState.activeChat.activeModal : null;
|
|
8151
|
+
const statusModal = status?.activeModal && Array.isArray(status.activeModal.buttons) && status.activeModal.buttons.some((candidate) => typeof candidate === "string" && candidate.trim()) ? status.activeModal : null;
|
|
8152
|
+
const effectiveModal = statusModal || surfacedModal;
|
|
8153
|
+
const effectiveStatus = status?.status === "waiting_approval" || targetState?.activeChat?.status === "waiting_approval" ? "waiting_approval" : status?.status;
|
|
8154
|
+
LOG.info("Command", `[resolveAction] CLI PTY gate target=${String(args?.targetSessionId || "")} rawStatus=${String(status?.status || "")} effectiveStatus=${String(effectiveStatus || "")} statusModal=${statusModal ? "yes" : "no"} surfacedModal=${surfacedModal ? "yes" : "no"} instance=${targetInstance ? "yes" : "no"}`);
|
|
8155
|
+
if (effectiveStatus !== "waiting_approval" && !effectiveModal) {
|
|
8028
8156
|
return { success: false, error: "Not in approval state" };
|
|
8029
8157
|
}
|
|
8030
|
-
const buttons =
|
|
8158
|
+
const buttons = effectiveModal?.buttons || ["Allow once", "Always allow", "Deny"];
|
|
8031
8159
|
let buttonIndex = typeof args?.buttonIndex === "number" ? args.buttonIndex : -1;
|
|
8032
8160
|
if (buttonIndex < 0) {
|
|
8033
8161
|
const btnLower = button.toLowerCase();
|
|
@@ -9538,7 +9666,7 @@ var init_handler = __esm({
|
|
|
9538
9666
|
try {
|
|
9539
9667
|
const http3 = await import("http");
|
|
9540
9668
|
const postData = JSON.stringify(body);
|
|
9541
|
-
const result = await new Promise((
|
|
9669
|
+
const result = await new Promise((resolve16, reject) => {
|
|
9542
9670
|
const req = http3.request({
|
|
9543
9671
|
hostname: "127.0.0.1",
|
|
9544
9672
|
port: 19280,
|
|
@@ -9550,9 +9678,9 @@ var init_handler = __esm({
|
|
|
9550
9678
|
res.on("data", (chunk) => data += chunk);
|
|
9551
9679
|
res.on("end", () => {
|
|
9552
9680
|
try {
|
|
9553
|
-
|
|
9681
|
+
resolve16(JSON.parse(data));
|
|
9554
9682
|
} catch {
|
|
9555
|
-
|
|
9683
|
+
resolve16({ raw: data });
|
|
9556
9684
|
}
|
|
9557
9685
|
});
|
|
9558
9686
|
});
|
|
@@ -9570,15 +9698,15 @@ var init_handler = __esm({
|
|
|
9570
9698
|
if (!providerType) return { success: false, error: "providerType required" };
|
|
9571
9699
|
try {
|
|
9572
9700
|
const http3 = await import("http");
|
|
9573
|
-
const result = await new Promise((
|
|
9701
|
+
const result = await new Promise((resolve16, reject) => {
|
|
9574
9702
|
http3.get(`http://127.0.0.1:19280/api/providers/${providerType}/${endpoint}`, (res) => {
|
|
9575
9703
|
let data = "";
|
|
9576
9704
|
res.on("data", (chunk) => data += chunk);
|
|
9577
9705
|
res.on("end", () => {
|
|
9578
9706
|
try {
|
|
9579
|
-
|
|
9707
|
+
resolve16(JSON.parse(data));
|
|
9580
9708
|
} catch {
|
|
9581
|
-
|
|
9709
|
+
resolve16({ raw: data });
|
|
9582
9710
|
}
|
|
9583
9711
|
});
|
|
9584
9712
|
}).on("error", reject);
|
|
@@ -9592,7 +9720,7 @@ var init_handler = __esm({
|
|
|
9592
9720
|
try {
|
|
9593
9721
|
const http3 = await import("http");
|
|
9594
9722
|
const postData = JSON.stringify(args || {});
|
|
9595
|
-
const result = await new Promise((
|
|
9723
|
+
const result = await new Promise((resolve16, reject) => {
|
|
9596
9724
|
const req = http3.request({
|
|
9597
9725
|
hostname: "127.0.0.1",
|
|
9598
9726
|
port: 19280,
|
|
@@ -9604,9 +9732,9 @@ var init_handler = __esm({
|
|
|
9604
9732
|
res.on("data", (chunk) => data += chunk);
|
|
9605
9733
|
res.on("end", () => {
|
|
9606
9734
|
try {
|
|
9607
|
-
|
|
9735
|
+
resolve16(JSON.parse(data));
|
|
9608
9736
|
} catch {
|
|
9609
|
-
|
|
9737
|
+
resolve16({ raw: data });
|
|
9610
9738
|
}
|
|
9611
9739
|
});
|
|
9612
9740
|
});
|
|
@@ -11843,7 +11971,7 @@ var init_provider_cli_adapter = __esm({
|
|
|
11843
11971
|
`[${this.cliType}] Waiting for interactive prompt: hasPrompt=${hasPrompt} stableMs=${stableMs} recentOutputMs=${recentlyOutput} status=${status} startup=${startupLikelyActive} screen=${JSON.stringify(summarizeCliTraceText(screenText, 220)).slice(0, 260)}`
|
|
11844
11972
|
);
|
|
11845
11973
|
}
|
|
11846
|
-
await new Promise((
|
|
11974
|
+
await new Promise((resolve16) => setTimeout(resolve16, 50));
|
|
11847
11975
|
}
|
|
11848
11976
|
const finalScreenText = this.terminalScreen.getText() || "";
|
|
11849
11977
|
LOG.warn(
|
|
@@ -12431,7 +12559,7 @@ var init_provider_cli_adapter = __esm({
|
|
|
12431
12559
|
}
|
|
12432
12560
|
projectEffectiveStatus(startupModal = null) {
|
|
12433
12561
|
if (this.parseErrorMessage) return "error";
|
|
12434
|
-
if (startupModal) return "waiting_approval";
|
|
12562
|
+
if (startupModal || this.activeModal) return "waiting_approval";
|
|
12435
12563
|
if (this.isWaitingForResponse && this.currentTurnScope && this.currentStatus === "idle") return "generating";
|
|
12436
12564
|
return this.currentStatus;
|
|
12437
12565
|
}
|
|
@@ -12439,12 +12567,24 @@ var init_provider_cli_adapter = __esm({
|
|
|
12439
12567
|
getStatus() {
|
|
12440
12568
|
const screenText = this.terminalScreen.getText() || "";
|
|
12441
12569
|
const startupModal = this.startupParseGate ? this.getStartupConfirmationModal(screenText) : null;
|
|
12442
|
-
|
|
12570
|
+
let effectiveStatus = this.projectEffectiveStatus(startupModal);
|
|
12571
|
+
let effectiveModal = startupModal || this.activeModal;
|
|
12572
|
+
if (!startupModal && !effectiveModal && typeof this.cliScripts?.parseOutput === "function") {
|
|
12573
|
+
try {
|
|
12574
|
+
const parsed = this.getScriptParsedStatus();
|
|
12575
|
+
const parsedModal = parsed?.activeModal && Array.isArray(parsed.activeModal.buttons) && parsed.activeModal.buttons.some((button) => typeof button === "string" && button.trim()) ? parsed.activeModal : null;
|
|
12576
|
+
if (parsed?.status === "waiting_approval" && parsedModal) {
|
|
12577
|
+
effectiveStatus = "waiting_approval";
|
|
12578
|
+
effectiveModal = parsedModal;
|
|
12579
|
+
}
|
|
12580
|
+
} catch {
|
|
12581
|
+
}
|
|
12582
|
+
}
|
|
12443
12583
|
return {
|
|
12444
12584
|
status: effectiveStatus,
|
|
12445
12585
|
messages: [...this.committedMessages],
|
|
12446
12586
|
workingDir: this.workingDir,
|
|
12447
|
-
activeModal:
|
|
12587
|
+
activeModal: effectiveModal,
|
|
12448
12588
|
errorMessage: this.parseErrorMessage || void 0,
|
|
12449
12589
|
errorReason: this.parseErrorMessage ? "parse_error" : void 0
|
|
12450
12590
|
};
|
|
@@ -12480,6 +12620,15 @@ var init_provider_cli_adapter = __esm({
|
|
|
12480
12620
|
this.currentTurnScope,
|
|
12481
12621
|
screenText
|
|
12482
12622
|
);
|
|
12623
|
+
const parsedModal = parsed?.activeModal && Array.isArray(parsed.activeModal.buttons) && parsed.activeModal.buttons.some((button) => typeof button === "string" && button.trim()) ? parsed.activeModal : null;
|
|
12624
|
+
if (parsedModal && parsed?.status === "waiting_approval") {
|
|
12625
|
+
this.activeModal = parsedModal;
|
|
12626
|
+
this.isWaitingForResponse = true;
|
|
12627
|
+
if (this.currentStatus !== "waiting_approval") {
|
|
12628
|
+
this.setStatus("waiting_approval", "parsed_waiting_approval");
|
|
12629
|
+
this.onStatusChange?.();
|
|
12630
|
+
}
|
|
12631
|
+
}
|
|
12483
12632
|
if (this.maybeCommitVisibleIdleTranscript(parsed)) {
|
|
12484
12633
|
return this.getScriptParsedStatus();
|
|
12485
12634
|
}
|
|
@@ -12684,7 +12833,7 @@ ${data.message || ""}`.trim();
|
|
|
12684
12833
|
const deadline = Date.now() + 1e4;
|
|
12685
12834
|
while (this.startupParseGate && Date.now() < deadline) {
|
|
12686
12835
|
this.resolveStartupState("send_wait");
|
|
12687
|
-
await new Promise((
|
|
12836
|
+
await new Promise((resolve16) => setTimeout(resolve16, 50));
|
|
12688
12837
|
}
|
|
12689
12838
|
}
|
|
12690
12839
|
if (!allowInterventionPrompt) {
|
|
@@ -12776,12 +12925,12 @@ ${data.message || ""}`.trim();
|
|
|
12776
12925
|
if (this.isWaitingForResponse) this.finishResponse();
|
|
12777
12926
|
}, this.timeouts.maxResponse);
|
|
12778
12927
|
};
|
|
12779
|
-
await new Promise((
|
|
12928
|
+
await new Promise((resolve16) => {
|
|
12780
12929
|
let resolved = false;
|
|
12781
12930
|
const resolveOnce = () => {
|
|
12782
12931
|
if (resolved) return;
|
|
12783
12932
|
resolved = true;
|
|
12784
|
-
|
|
12933
|
+
resolve16();
|
|
12785
12934
|
};
|
|
12786
12935
|
const submit = () => {
|
|
12787
12936
|
if (!this.ptyProcess) {
|
|
@@ -12955,17 +13104,17 @@ ${data.message || ""}`.trim();
|
|
|
12955
13104
|
}
|
|
12956
13105
|
}
|
|
12957
13106
|
waitForStopped(timeoutMs) {
|
|
12958
|
-
return new Promise((
|
|
13107
|
+
return new Promise((resolve16) => {
|
|
12959
13108
|
const startedAt = Date.now();
|
|
12960
13109
|
const timer = setInterval(() => {
|
|
12961
13110
|
if (!this.ptyProcess || this.currentStatus === "stopped") {
|
|
12962
13111
|
clearInterval(timer);
|
|
12963
|
-
|
|
13112
|
+
resolve16(true);
|
|
12964
13113
|
return;
|
|
12965
13114
|
}
|
|
12966
13115
|
if (Date.now() - startedAt >= timeoutMs) {
|
|
12967
13116
|
clearInterval(timer);
|
|
12968
|
-
|
|
13117
|
+
resolve16(false);
|
|
12969
13118
|
}
|
|
12970
13119
|
}, 100);
|
|
12971
13120
|
});
|
|
@@ -13130,7 +13279,22 @@ ${data.message || ""}`.trim();
|
|
|
13130
13279
|
}
|
|
13131
13280
|
resolveModal(buttonIndex) {
|
|
13132
13281
|
const screenText = this.terminalScreen.getText() || "";
|
|
13133
|
-
|
|
13282
|
+
let modal = this.activeModal || this.getStartupConfirmationModal(screenText);
|
|
13283
|
+
if (!modal && typeof this.cliScripts?.parseOutput === "function") {
|
|
13284
|
+
try {
|
|
13285
|
+
const parsed = this.getScriptParsedStatus();
|
|
13286
|
+
const parsedModal = parsed?.activeModal && Array.isArray(parsed.activeModal.buttons) && parsed.activeModal.buttons.some((button) => typeof button === "string" && button.trim()) ? parsed.activeModal : null;
|
|
13287
|
+
if (parsed?.status === "waiting_approval" && parsedModal) {
|
|
13288
|
+
modal = parsedModal;
|
|
13289
|
+
this.activeModal = parsedModal;
|
|
13290
|
+
if (this.currentStatus !== "waiting_approval") {
|
|
13291
|
+
this.setStatus("waiting_approval", "resolve_modal_parse");
|
|
13292
|
+
this.onStatusChange?.();
|
|
13293
|
+
}
|
|
13294
|
+
}
|
|
13295
|
+
} catch {
|
|
13296
|
+
}
|
|
13297
|
+
}
|
|
13134
13298
|
if (!this.ptyProcess || this.currentStatus !== "waiting_approval" && !modal) return;
|
|
13135
13299
|
this.clearIdleFinishCandidate("resolve_modal");
|
|
13136
13300
|
this.recordTrace("resolve_modal", {
|
|
@@ -13309,7 +13473,7 @@ async function waitForCliAdapterReady(adapter, options) {
|
|
|
13309
13473
|
if (status === "stopped") {
|
|
13310
13474
|
throw new Error("CLI runtime stopped before it became ready");
|
|
13311
13475
|
}
|
|
13312
|
-
await new Promise((
|
|
13476
|
+
await new Promise((resolve16) => setTimeout(resolve16, pollMs));
|
|
13313
13477
|
}
|
|
13314
13478
|
throw new Error(`CLI runtime did not become ready within ${timeoutMs}ms`);
|
|
13315
13479
|
}
|
|
@@ -13368,6 +13532,7 @@ var init_cli_provider_instance = __esm({
|
|
|
13368
13532
|
historyWriter;
|
|
13369
13533
|
runtimeMessages = [];
|
|
13370
13534
|
lastPersistedHistoryMessages = [];
|
|
13535
|
+
lastCanonicalHermesSyncMtimeMs = 0;
|
|
13371
13536
|
instanceId;
|
|
13372
13537
|
suppressIdleHistoryReplay = false;
|
|
13373
13538
|
errorMessage = void 0;
|
|
@@ -13400,34 +13565,7 @@ var init_cli_provider_instance = __esm({
|
|
|
13400
13565
|
await this.enforceFreshSessionLaunchIfNeeded();
|
|
13401
13566
|
this.maybeAppendRuntimeRecoveryMessage(this.adapter.getRuntimeMetadata());
|
|
13402
13567
|
if (this.providerSessionId) {
|
|
13403
|
-
this.
|
|
13404
|
-
const restoredHistory = readChatHistory(this.type, 0, 200, this.providerSessionId);
|
|
13405
|
-
this.historyWriter.seedSessionHistory(
|
|
13406
|
-
this.type,
|
|
13407
|
-
restoredHistory.messages,
|
|
13408
|
-
this.providerSessionId,
|
|
13409
|
-
this.instanceId
|
|
13410
|
-
);
|
|
13411
|
-
this.lastPersistedHistoryMessages = restoredHistory.messages.map((message) => ({
|
|
13412
|
-
role: message.role,
|
|
13413
|
-
content: message.content,
|
|
13414
|
-
kind: message.kind,
|
|
13415
|
-
senderName: message.senderName,
|
|
13416
|
-
receivedAt: message.receivedAt
|
|
13417
|
-
}));
|
|
13418
|
-
this.suppressIdleHistoryReplay = restoredHistory.messages.length > 0;
|
|
13419
|
-
if (restoredHistory.messages.length > 0) {
|
|
13420
|
-
this.adapter.seedCommittedMessages(
|
|
13421
|
-
restoredHistory.messages.map((message) => ({
|
|
13422
|
-
role: message.role,
|
|
13423
|
-
content: message.content,
|
|
13424
|
-
timestamp: message.receivedAt,
|
|
13425
|
-
receivedAt: message.receivedAt,
|
|
13426
|
-
kind: message.kind,
|
|
13427
|
-
senderName: message.senderName
|
|
13428
|
-
}))
|
|
13429
|
-
);
|
|
13430
|
-
}
|
|
13568
|
+
this.restorePersistedHistoryFromCurrentSession();
|
|
13431
13569
|
}
|
|
13432
13570
|
if (this.providerSessionId && this.launchMode === "resume") {
|
|
13433
13571
|
const resumedAt = Date.now();
|
|
@@ -13536,6 +13674,7 @@ var init_cli_provider_instance = __esm({
|
|
|
13536
13674
|
parsedMessages = historyMessageCount > 0 ? parsedMessages.slice(-historyMessageCount) : [];
|
|
13537
13675
|
}
|
|
13538
13676
|
const mergedMessages = this.mergeConversationMessages(parsedMessages);
|
|
13677
|
+
const canonicalHermesBackedHistory = this.syncCanonicalHermesSavedHistoryIfNeeded();
|
|
13539
13678
|
const dirName = this.workingDir.split("/").filter(Boolean).pop() || "session";
|
|
13540
13679
|
if (parsedMessages.length > 0) {
|
|
13541
13680
|
const shouldSkipReplayPersist = this.suppressIdleHistoryReplay && adapterStatus.status === "idle" && parsedStatus?.status === "idle";
|
|
@@ -13553,7 +13692,7 @@ var init_cli_provider_instance = __esm({
|
|
|
13553
13692
|
senderName: typeof message.senderName === "string" ? message.senderName : void 0,
|
|
13554
13693
|
receivedAt: typeof message.receivedAt === "number" ? message.receivedAt : message.timestamp
|
|
13555
13694
|
}));
|
|
13556
|
-
if (!shouldSkipReplayPersist && normalizedMessagesToSave.length > 0) {
|
|
13695
|
+
if (!canonicalHermesBackedHistory && !shouldSkipReplayPersist && normalizedMessagesToSave.length > 0) {
|
|
13557
13696
|
const incrementalMessages = buildIncrementalHistoryAppendMessages(this.lastPersistedHistoryMessages, normalizedMessagesToSave);
|
|
13558
13697
|
this.historyWriter.appendNewMessages(
|
|
13559
13698
|
this.type,
|
|
@@ -13563,7 +13702,9 @@ var init_cli_provider_instance = __esm({
|
|
|
13563
13702
|
this.providerSessionId
|
|
13564
13703
|
);
|
|
13565
13704
|
}
|
|
13566
|
-
|
|
13705
|
+
if (!canonicalHermesBackedHistory) {
|
|
13706
|
+
this.lastPersistedHistoryMessages = normalizedMessagesToSave;
|
|
13707
|
+
}
|
|
13567
13708
|
}
|
|
13568
13709
|
this.applyProviderResponse(parsedStatus, { phase: "immediate" });
|
|
13569
13710
|
const surface = resolveProviderStateSurface({
|
|
@@ -14020,6 +14161,7 @@ ${effect.notification.body || ""}`.trim();
|
|
|
14020
14161
|
this.providerSessionId = nextSessionId;
|
|
14021
14162
|
this.historyWriter.promoteHistorySession(this.type, previousHistorySessionId, nextSessionId);
|
|
14022
14163
|
this.historyWriter.writeSessionStart(this.type, nextSessionId, this.workingDir, this.instanceId);
|
|
14164
|
+
this.restorePersistedHistoryFromCurrentSession();
|
|
14023
14165
|
this.adapter.updateRuntimeMeta({ providerSessionId: nextSessionId });
|
|
14024
14166
|
this.onProviderSessionResolved?.({
|
|
14025
14167
|
instanceId: this.instanceId,
|
|
@@ -14031,6 +14173,61 @@ ${effect.notification.body || ""}`.trim();
|
|
|
14031
14173
|
});
|
|
14032
14174
|
LOG.info("CLI", `[${this.type}] discovered provider session id: ${nextSessionId}`);
|
|
14033
14175
|
}
|
|
14176
|
+
syncCanonicalHermesSavedHistoryIfNeeded() {
|
|
14177
|
+
if (this.type !== "hermes-cli" || !this.providerSessionId) return false;
|
|
14178
|
+
try {
|
|
14179
|
+
const canonicalPath = path11.join(os13.homedir(), ".hermes", "sessions", `session_${this.providerSessionId}.json`);
|
|
14180
|
+
if (!fs5.existsSync(canonicalPath)) return false;
|
|
14181
|
+
const stat4 = fs5.statSync(canonicalPath);
|
|
14182
|
+
if (stat4.mtimeMs <= this.lastCanonicalHermesSyncMtimeMs) return true;
|
|
14183
|
+
const rebuilt = rebuildHermesSavedHistoryFromCanonicalSession(this.providerSessionId);
|
|
14184
|
+
if (!rebuilt) return false;
|
|
14185
|
+
this.lastCanonicalHermesSyncMtimeMs = stat4.mtimeMs;
|
|
14186
|
+
const restoredHistory = readChatHistory(this.type, 0, 200, this.providerSessionId);
|
|
14187
|
+
this.lastPersistedHistoryMessages = restoredHistory.messages.map((message) => ({
|
|
14188
|
+
role: message.role,
|
|
14189
|
+
content: message.content,
|
|
14190
|
+
kind: message.kind,
|
|
14191
|
+
senderName: message.senderName,
|
|
14192
|
+
receivedAt: message.receivedAt
|
|
14193
|
+
}));
|
|
14194
|
+
return true;
|
|
14195
|
+
} catch {
|
|
14196
|
+
return false;
|
|
14197
|
+
}
|
|
14198
|
+
}
|
|
14199
|
+
restorePersistedHistoryFromCurrentSession() {
|
|
14200
|
+
if (!this.providerSessionId) return;
|
|
14201
|
+
this.syncCanonicalHermesSavedHistoryIfNeeded();
|
|
14202
|
+
this.historyWriter.compactHistorySession(this.type, this.providerSessionId);
|
|
14203
|
+
const restoredHistory = readChatHistory(this.type, 0, 200, this.providerSessionId);
|
|
14204
|
+
this.historyWriter.seedSessionHistory(
|
|
14205
|
+
this.type,
|
|
14206
|
+
restoredHistory.messages,
|
|
14207
|
+
this.providerSessionId,
|
|
14208
|
+
this.instanceId
|
|
14209
|
+
);
|
|
14210
|
+
this.lastPersistedHistoryMessages = restoredHistory.messages.map((message) => ({
|
|
14211
|
+
role: message.role,
|
|
14212
|
+
content: message.content,
|
|
14213
|
+
kind: message.kind,
|
|
14214
|
+
senderName: message.senderName,
|
|
14215
|
+
receivedAt: message.receivedAt
|
|
14216
|
+
}));
|
|
14217
|
+
this.suppressIdleHistoryReplay = restoredHistory.messages.length > 0;
|
|
14218
|
+
if (restoredHistory.messages.length > 0) {
|
|
14219
|
+
this.adapter.seedCommittedMessages(
|
|
14220
|
+
restoredHistory.messages.map((message) => ({
|
|
14221
|
+
role: message.role,
|
|
14222
|
+
content: message.content,
|
|
14223
|
+
timestamp: message.receivedAt,
|
|
14224
|
+
receivedAt: message.receivedAt,
|
|
14225
|
+
kind: message.kind,
|
|
14226
|
+
senderName: message.senderName
|
|
14227
|
+
}))
|
|
14228
|
+
);
|
|
14229
|
+
}
|
|
14230
|
+
}
|
|
14034
14231
|
getProbeDirectories() {
|
|
14035
14232
|
const dirs = /* @__PURE__ */ new Set();
|
|
14036
14233
|
const addDir = (value) => {
|
|
@@ -30123,8 +30320,8 @@ var init_acp = __esm({
|
|
|
30123
30320
|
this.#requestHandler = requestHandler;
|
|
30124
30321
|
this.#notificationHandler = notificationHandler;
|
|
30125
30322
|
this.#stream = stream;
|
|
30126
|
-
this.#closedPromise = new Promise((
|
|
30127
|
-
this.#abortController.signal.addEventListener("abort", () =>
|
|
30323
|
+
this.#closedPromise = new Promise((resolve16) => {
|
|
30324
|
+
this.#abortController.signal.addEventListener("abort", () => resolve16());
|
|
30128
30325
|
});
|
|
30129
30326
|
this.#receive();
|
|
30130
30327
|
}
|
|
@@ -30273,8 +30470,8 @@ var init_acp = __esm({
|
|
|
30273
30470
|
}
|
|
30274
30471
|
async sendRequest(method, params) {
|
|
30275
30472
|
const id = this.#nextRequestId++;
|
|
30276
|
-
const responsePromise = new Promise((
|
|
30277
|
-
this.#pendingResponses.set(id, { resolve:
|
|
30473
|
+
const responsePromise = new Promise((resolve16, reject) => {
|
|
30474
|
+
this.#pendingResponses.set(id, { resolve: resolve16, reject });
|
|
30278
30475
|
});
|
|
30279
30476
|
await this.#sendMessage({ jsonrpc: "2.0", id, method, params });
|
|
30280
30477
|
return responsePromise;
|
|
@@ -30945,13 +31142,13 @@ var init_acp_provider_instance = __esm({
|
|
|
30945
31142
|
}
|
|
30946
31143
|
this.currentStatus = "waiting_approval";
|
|
30947
31144
|
this.detectStatusTransition();
|
|
30948
|
-
const approved = await new Promise((
|
|
30949
|
-
this.permissionResolvers.push(
|
|
31145
|
+
const approved = await new Promise((resolve16) => {
|
|
31146
|
+
this.permissionResolvers.push(resolve16);
|
|
30950
31147
|
setTimeout(() => {
|
|
30951
|
-
const idx = this.permissionResolvers.indexOf(
|
|
31148
|
+
const idx = this.permissionResolvers.indexOf(resolve16);
|
|
30952
31149
|
if (idx >= 0) {
|
|
30953
31150
|
this.permissionResolvers.splice(idx, 1);
|
|
30954
|
-
|
|
31151
|
+
resolve16(false);
|
|
30955
31152
|
}
|
|
30956
31153
|
}, 3e5);
|
|
30957
31154
|
});
|
|
@@ -33174,7 +33371,7 @@ var init_handler2 = __esm({
|
|
|
33174
33371
|
this._addToNodeFs(path29, initialAdd, wh, depth + 1);
|
|
33175
33372
|
}
|
|
33176
33373
|
}).on(EV.ERROR, this._boundHandleError);
|
|
33177
|
-
return new Promise((
|
|
33374
|
+
return new Promise((resolve16, reject) => {
|
|
33178
33375
|
if (!stream)
|
|
33179
33376
|
return reject();
|
|
33180
33377
|
stream.once(STR_END, () => {
|
|
@@ -33183,7 +33380,7 @@ var init_handler2 = __esm({
|
|
|
33183
33380
|
return;
|
|
33184
33381
|
}
|
|
33185
33382
|
const wasThrottled = throttler ? throttler.clear() : false;
|
|
33186
|
-
|
|
33383
|
+
resolve16(void 0);
|
|
33187
33384
|
previous.getChildren().filter((item) => {
|
|
33188
33385
|
return item !== directory && !current.has(item);
|
|
33189
33386
|
}).forEach((item) => {
|
|
@@ -34274,10 +34471,75 @@ var init_provider_loader = __esm({
|
|
|
34274
34471
|
}
|
|
34275
34472
|
static GITHUB_TARBALL_URL = "https://github.com/vilmire/adhdev-providers/archive/refs/heads/main.tar.gz";
|
|
34276
34473
|
static META_FILE = ".meta.json";
|
|
34474
|
+
static REPO_PROVIDER_DIRNAME = "adhdev-providers";
|
|
34475
|
+
static SIBLING_MARKER_FILE = ".adhdev-provider-root";
|
|
34476
|
+
static SIBLING_ENV_VAR = "ADHDEV_USE_SIBLING_PROVIDERS";
|
|
34477
|
+
probeStarts = [];
|
|
34478
|
+
siblingLogged = false;
|
|
34479
|
+
userDirSource = "home-default";
|
|
34480
|
+
/** Process-level dedup for stderr sibling-adoption notices (shared across all ProviderLoader instances). */
|
|
34481
|
+
static siblingStderrLogged = /* @__PURE__ */ new Set();
|
|
34482
|
+
static looksLikeProviderRoot(candidate) {
|
|
34483
|
+
try {
|
|
34484
|
+
if (!fs6.existsSync(candidate) || !fs6.statSync(candidate).isDirectory()) return false;
|
|
34485
|
+
return ["ide", "extension", "cli", "acp"].some(
|
|
34486
|
+
(category) => fs6.existsSync(path13.join(candidate, category))
|
|
34487
|
+
);
|
|
34488
|
+
} catch {
|
|
34489
|
+
return false;
|
|
34490
|
+
}
|
|
34491
|
+
}
|
|
34492
|
+
static hasProviderRootMarker(candidate) {
|
|
34493
|
+
try {
|
|
34494
|
+
return fs6.existsSync(path13.join(candidate, _ProviderLoader.SIBLING_MARKER_FILE));
|
|
34495
|
+
} catch {
|
|
34496
|
+
return false;
|
|
34497
|
+
}
|
|
34498
|
+
}
|
|
34499
|
+
detectDefaultUserDir() {
|
|
34500
|
+
const fallback2 = path13.join(os15.homedir(), ".adhdev", "providers");
|
|
34501
|
+
const envOptIn = process.env[_ProviderLoader.SIBLING_ENV_VAR] === "1";
|
|
34502
|
+
const visited = /* @__PURE__ */ new Set();
|
|
34503
|
+
for (const start of this.probeStarts) {
|
|
34504
|
+
let current = path13.resolve(start);
|
|
34505
|
+
while (!visited.has(current)) {
|
|
34506
|
+
visited.add(current);
|
|
34507
|
+
const siblingCandidate = path13.join(path13.dirname(current), _ProviderLoader.REPO_PROVIDER_DIRNAME);
|
|
34508
|
+
if (_ProviderLoader.looksLikeProviderRoot(siblingCandidate)) {
|
|
34509
|
+
const hasMarker = _ProviderLoader.hasProviderRootMarker(siblingCandidate);
|
|
34510
|
+
if (envOptIn || hasMarker) {
|
|
34511
|
+
const source = hasMarker ? "sibling-marker" : "sibling-env";
|
|
34512
|
+
if (!this.siblingLogged) {
|
|
34513
|
+
this.log(`Using sibling provider checkout (${source}): ${siblingCandidate}`);
|
|
34514
|
+
this.siblingLogged = true;
|
|
34515
|
+
}
|
|
34516
|
+
if (!_ProviderLoader.siblingStderrLogged.has(siblingCandidate)) {
|
|
34517
|
+
_ProviderLoader.siblingStderrLogged.add(siblingCandidate);
|
|
34518
|
+
try {
|
|
34519
|
+
process.stderr.write(
|
|
34520
|
+
`[adhdev] Using sibling adhdev-providers checkout (${source}): ${siblingCandidate}
|
|
34521
|
+
`
|
|
34522
|
+
);
|
|
34523
|
+
} catch {
|
|
34524
|
+
}
|
|
34525
|
+
}
|
|
34526
|
+
return { path: siblingCandidate, source };
|
|
34527
|
+
}
|
|
34528
|
+
}
|
|
34529
|
+
const parent = path13.dirname(current);
|
|
34530
|
+
if (parent === current) break;
|
|
34531
|
+
current = parent;
|
|
34532
|
+
}
|
|
34533
|
+
}
|
|
34534
|
+
return { path: fallback2, source: "home-default" };
|
|
34535
|
+
}
|
|
34277
34536
|
constructor(options) {
|
|
34278
34537
|
this.logFn = options?.logFn || LOG.forComponent("Provider").asLogFn();
|
|
34538
|
+
this.probeStarts = options?.probeStarts ?? [process.cwd(), __dirname];
|
|
34279
34539
|
this.defaultProvidersDir = path13.join(os15.homedir(), ".adhdev", "providers");
|
|
34280
|
-
|
|
34540
|
+
const detected = this.detectDefaultUserDir();
|
|
34541
|
+
this.userDir = detected.path;
|
|
34542
|
+
this.userDirSource = detected.source;
|
|
34281
34543
|
this.upstreamDir = path13.join(this.defaultProvidersDir, ".upstream");
|
|
34282
34544
|
this.disableUpstream = false;
|
|
34283
34545
|
this.applySourceConfig({
|
|
@@ -34315,6 +34577,7 @@ var init_provider_loader = __esm({
|
|
|
34315
34577
|
disableUpstream: this.disableUpstream,
|
|
34316
34578
|
explicitProviderDir: this.explicitProviderDir,
|
|
34317
34579
|
userDir: this.userDir,
|
|
34580
|
+
userDirSource: this.userDirSource,
|
|
34318
34581
|
upstreamDir: this.upstreamDir,
|
|
34319
34582
|
providerRoots: this.getProviderRoots()
|
|
34320
34583
|
};
|
|
@@ -34325,7 +34588,14 @@ var init_provider_loader = __esm({
|
|
|
34325
34588
|
this.explicitProviderDir = options.userDir?.trim() ? options.userDir : null;
|
|
34326
34589
|
}
|
|
34327
34590
|
this.sourceMode = nextSourceMode;
|
|
34328
|
-
|
|
34591
|
+
if (this.explicitProviderDir) {
|
|
34592
|
+
this.userDir = this.explicitProviderDir;
|
|
34593
|
+
this.userDirSource = "explicit";
|
|
34594
|
+
} else {
|
|
34595
|
+
const detected = this.detectDefaultUserDir();
|
|
34596
|
+
this.userDir = detected.path;
|
|
34597
|
+
this.userDirSource = detected.source;
|
|
34598
|
+
}
|
|
34329
34599
|
this.upstreamDir = path13.join(this.defaultProvidersDir, ".upstream");
|
|
34330
34600
|
this.disableUpstream = this.sourceMode === "no-upstream";
|
|
34331
34601
|
if (this.explicitProviderDir) {
|
|
@@ -34919,7 +35189,7 @@ var init_provider_loader = __esm({
|
|
|
34919
35189
|
return { updated: false };
|
|
34920
35190
|
}
|
|
34921
35191
|
try {
|
|
34922
|
-
const etag = await new Promise((
|
|
35192
|
+
const etag = await new Promise((resolve16, reject) => {
|
|
34923
35193
|
const options = {
|
|
34924
35194
|
method: "HEAD",
|
|
34925
35195
|
hostname: "github.com",
|
|
@@ -34937,7 +35207,7 @@ var init_provider_loader = __esm({
|
|
|
34937
35207
|
headers: { "User-Agent": "adhdev-launcher" },
|
|
34938
35208
|
timeout: 1e4
|
|
34939
35209
|
}, (res2) => {
|
|
34940
|
-
|
|
35210
|
+
resolve16(res2.headers.etag || res2.headers["last-modified"] || "");
|
|
34941
35211
|
});
|
|
34942
35212
|
req2.on("error", reject);
|
|
34943
35213
|
req2.on("timeout", () => {
|
|
@@ -34946,7 +35216,7 @@ var init_provider_loader = __esm({
|
|
|
34946
35216
|
});
|
|
34947
35217
|
req2.end();
|
|
34948
35218
|
} else {
|
|
34949
|
-
|
|
35219
|
+
resolve16(res.headers.etag || res.headers["last-modified"] || "");
|
|
34950
35220
|
}
|
|
34951
35221
|
});
|
|
34952
35222
|
req.on("error", reject);
|
|
@@ -35010,7 +35280,7 @@ var init_provider_loader = __esm({
|
|
|
35010
35280
|
downloadFile(url2, destPath) {
|
|
35011
35281
|
const https = require("https");
|
|
35012
35282
|
const http3 = require("http");
|
|
35013
|
-
return new Promise((
|
|
35283
|
+
return new Promise((resolve16, reject) => {
|
|
35014
35284
|
const doRequest = (reqUrl, redirectCount = 0) => {
|
|
35015
35285
|
if (redirectCount > 5) {
|
|
35016
35286
|
reject(new Error("Too many redirects"));
|
|
@@ -35030,7 +35300,7 @@ var init_provider_loader = __esm({
|
|
|
35030
35300
|
res.pipe(ws);
|
|
35031
35301
|
ws.on("finish", () => {
|
|
35032
35302
|
ws.close();
|
|
35033
|
-
|
|
35303
|
+
resolve16();
|
|
35034
35304
|
});
|
|
35035
35305
|
ws.on("error", reject);
|
|
35036
35306
|
});
|
|
@@ -35506,17 +35776,17 @@ async function findFreePort(ports) {
|
|
|
35506
35776
|
throw new Error("No free port found");
|
|
35507
35777
|
}
|
|
35508
35778
|
function checkPortFree(port) {
|
|
35509
|
-
return new Promise((
|
|
35779
|
+
return new Promise((resolve16) => {
|
|
35510
35780
|
const server = net2.createServer();
|
|
35511
35781
|
server.unref();
|
|
35512
|
-
server.on("error", () =>
|
|
35782
|
+
server.on("error", () => resolve16(false));
|
|
35513
35783
|
server.listen(port, "127.0.0.1", () => {
|
|
35514
|
-
server.close(() =>
|
|
35784
|
+
server.close(() => resolve16(true));
|
|
35515
35785
|
});
|
|
35516
35786
|
});
|
|
35517
35787
|
}
|
|
35518
35788
|
async function isCdpActive(port) {
|
|
35519
|
-
return new Promise((
|
|
35789
|
+
return new Promise((resolve16) => {
|
|
35520
35790
|
const req = require("http").get(`http://127.0.0.1:${port}/json/version`, {
|
|
35521
35791
|
timeout: 2e3
|
|
35522
35792
|
}, (res) => {
|
|
@@ -35525,16 +35795,16 @@ async function isCdpActive(port) {
|
|
|
35525
35795
|
res.on("end", () => {
|
|
35526
35796
|
try {
|
|
35527
35797
|
const info = JSON.parse(data);
|
|
35528
|
-
|
|
35798
|
+
resolve16(!!info["WebKit-Version"] || !!info["Browser"]);
|
|
35529
35799
|
} catch {
|
|
35530
|
-
|
|
35800
|
+
resolve16(false);
|
|
35531
35801
|
}
|
|
35532
35802
|
});
|
|
35533
35803
|
});
|
|
35534
|
-
req.on("error", () =>
|
|
35804
|
+
req.on("error", () => resolve16(false));
|
|
35535
35805
|
req.on("timeout", () => {
|
|
35536
35806
|
req.destroy();
|
|
35537
|
-
|
|
35807
|
+
resolve16(false);
|
|
35538
35808
|
});
|
|
35539
35809
|
});
|
|
35540
35810
|
}
|
|
@@ -36344,7 +36614,7 @@ async function waitForPidExit(pid, timeoutMs) {
|
|
|
36344
36614
|
while (Date.now() - start < timeoutMs) {
|
|
36345
36615
|
try {
|
|
36346
36616
|
process.kill(pid, 0);
|
|
36347
|
-
await new Promise((
|
|
36617
|
+
await new Promise((resolve16) => setTimeout(resolve16, 250));
|
|
36348
36618
|
} catch {
|
|
36349
36619
|
return;
|
|
36350
36620
|
}
|
|
@@ -36459,7 +36729,7 @@ async function runDaemonUpgradeHelper(payload) {
|
|
|
36459
36729
|
appendUpgradeLog(installOutput.trim());
|
|
36460
36730
|
}
|
|
36461
36731
|
if (process.platform === "win32") {
|
|
36462
|
-
await new Promise((
|
|
36732
|
+
await new Promise((resolve16) => setTimeout(resolve16, 500));
|
|
36463
36733
|
cleanupStaleGlobalInstallDirs(payload.packageName);
|
|
36464
36734
|
appendUpgradeLog("Post-install staging cleanup complete");
|
|
36465
36735
|
}
|
|
@@ -37867,7 +38137,7 @@ var init_provider_adapter = __esm({
|
|
|
37867
38137
|
const beforeCount = this.messageCount(before);
|
|
37868
38138
|
const beforeSignature = this.lastMessageSignature(before);
|
|
37869
38139
|
for (let attempt = 0; attempt < 12; attempt += 1) {
|
|
37870
|
-
await new Promise((
|
|
38140
|
+
await new Promise((resolve16) => setTimeout(resolve16, 250));
|
|
37871
38141
|
let state;
|
|
37872
38142
|
try {
|
|
37873
38143
|
state = await this.readChat(evaluate);
|
|
@@ -37889,7 +38159,7 @@ var init_provider_adapter = __esm({
|
|
|
37889
38159
|
if (this.messageCount(first) > 0 || this.lastMessageSignature(first)) {
|
|
37890
38160
|
return first;
|
|
37891
38161
|
}
|
|
37892
|
-
await new Promise((
|
|
38162
|
+
await new Promise((resolve16) => setTimeout(resolve16, 150));
|
|
37893
38163
|
const second = await this.readChat(evaluate);
|
|
37894
38164
|
return this.messageCount(second) >= this.messageCount(first) ? second : first;
|
|
37895
38165
|
}
|
|
@@ -38040,7 +38310,7 @@ var init_provider_adapter = __esm({
|
|
|
38040
38310
|
if (typeof data.error === "string" && data.error.trim()) return false;
|
|
38041
38311
|
}
|
|
38042
38312
|
for (let attempt = 0; attempt < 6; attempt += 1) {
|
|
38043
|
-
await new Promise((
|
|
38313
|
+
await new Promise((resolve16) => setTimeout(resolve16, 250));
|
|
38044
38314
|
const state = await this.readChat(evaluate);
|
|
38045
38315
|
const title = this.getStateTitle(state);
|
|
38046
38316
|
if (this.titlesMatch(title, sessionId)) return true;
|
|
@@ -40615,7 +40885,7 @@ function getCliTargetBundle(ctx, type, instanceId) {
|
|
|
40615
40885
|
return { target, instance, adapter };
|
|
40616
40886
|
}
|
|
40617
40887
|
function sleep(ms) {
|
|
40618
|
-
return new Promise((
|
|
40888
|
+
return new Promise((resolve16) => setTimeout(resolve16, ms));
|
|
40619
40889
|
}
|
|
40620
40890
|
async function waitForCliReady(ctx, type, instanceId, timeoutMs) {
|
|
40621
40891
|
const startedAt = Date.now();
|
|
@@ -42907,15 +43177,15 @@ var init_dev_server = __esm({
|
|
|
42907
43177
|
this.json(res, 500, { error: e.message });
|
|
42908
43178
|
}
|
|
42909
43179
|
});
|
|
42910
|
-
return new Promise((
|
|
43180
|
+
return new Promise((resolve16, reject) => {
|
|
42911
43181
|
this.server.listen(port, "127.0.0.1", () => {
|
|
42912
43182
|
this.log(`Dev server listening on http://127.0.0.1:${port}`);
|
|
42913
|
-
|
|
43183
|
+
resolve16();
|
|
42914
43184
|
});
|
|
42915
43185
|
this.server.on("error", (e) => {
|
|
42916
43186
|
if (e.code === "EADDRINUSE") {
|
|
42917
43187
|
this.log(`Port ${port} in use, skipping dev server`);
|
|
42918
|
-
|
|
43188
|
+
resolve16();
|
|
42919
43189
|
} else {
|
|
42920
43190
|
reject(e);
|
|
42921
43191
|
}
|
|
@@ -42997,20 +43267,20 @@ var init_dev_server = __esm({
|
|
|
42997
43267
|
child.stderr?.on("data", (d) => {
|
|
42998
43268
|
stderr += d.toString().slice(0, 2e3);
|
|
42999
43269
|
});
|
|
43000
|
-
await new Promise((
|
|
43270
|
+
await new Promise((resolve16) => {
|
|
43001
43271
|
const timer = setTimeout(() => {
|
|
43002
43272
|
child.kill();
|
|
43003
|
-
|
|
43273
|
+
resolve16();
|
|
43004
43274
|
}, 3e3);
|
|
43005
43275
|
child.on("exit", () => {
|
|
43006
43276
|
clearTimeout(timer);
|
|
43007
|
-
|
|
43277
|
+
resolve16();
|
|
43008
43278
|
});
|
|
43009
43279
|
child.stdout?.once("data", () => {
|
|
43010
43280
|
setTimeout(() => {
|
|
43011
43281
|
child.kill();
|
|
43012
43282
|
clearTimeout(timer);
|
|
43013
|
-
|
|
43283
|
+
resolve16();
|
|
43014
43284
|
}, 500);
|
|
43015
43285
|
});
|
|
43016
43286
|
});
|
|
@@ -43526,14 +43796,14 @@ var init_dev_server = __esm({
|
|
|
43526
43796
|
child.stderr?.on("data", (d) => {
|
|
43527
43797
|
stderr += d.toString();
|
|
43528
43798
|
});
|
|
43529
|
-
await new Promise((
|
|
43799
|
+
await new Promise((resolve16) => {
|
|
43530
43800
|
const timer = setTimeout(() => {
|
|
43531
43801
|
child.kill();
|
|
43532
|
-
|
|
43802
|
+
resolve16();
|
|
43533
43803
|
}, timeout);
|
|
43534
43804
|
child.on("exit", () => {
|
|
43535
43805
|
clearTimeout(timer);
|
|
43536
|
-
|
|
43806
|
+
resolve16();
|
|
43537
43807
|
});
|
|
43538
43808
|
});
|
|
43539
43809
|
const elapsed = Date.now() - start;
|
|
@@ -44203,14 +44473,14 @@ data: ${JSON.stringify(msg.data)}
|
|
|
44203
44473
|
res.end(JSON.stringify(data, null, 2));
|
|
44204
44474
|
}
|
|
44205
44475
|
async readBody(req) {
|
|
44206
|
-
return new Promise((
|
|
44476
|
+
return new Promise((resolve16) => {
|
|
44207
44477
|
let body = "";
|
|
44208
44478
|
req.on("data", (chunk) => body += chunk);
|
|
44209
44479
|
req.on("end", () => {
|
|
44210
44480
|
try {
|
|
44211
|
-
|
|
44481
|
+
resolve16(JSON.parse(body));
|
|
44212
44482
|
} catch {
|
|
44213
|
-
|
|
44483
|
+
resolve16({});
|
|
44214
44484
|
}
|
|
44215
44485
|
});
|
|
44216
44486
|
});
|
|
@@ -44725,7 +44995,7 @@ async function waitForReady(endpoint, timeoutMs = STARTUP_TIMEOUT_MS) {
|
|
|
44725
44995
|
const deadline = Date.now() + timeoutMs;
|
|
44726
44996
|
while (Date.now() < deadline) {
|
|
44727
44997
|
if (await canConnect(endpoint)) return;
|
|
44728
|
-
await new Promise((
|
|
44998
|
+
await new Promise((resolve16) => setTimeout(resolve16, STARTUP_POLL_MS));
|
|
44729
44999
|
}
|
|
44730
45000
|
throw new Error(`Session host did not become ready within ${timeoutMs}ms`);
|
|
44731
45001
|
}
|
|
@@ -44831,10 +45101,10 @@ async function installExtension(ide, extension) {
|
|
|
44831
45101
|
const buffer = Buffer.from(await res.arrayBuffer());
|
|
44832
45102
|
const fs24 = await import("fs");
|
|
44833
45103
|
fs24.writeFileSync(vsixPath, buffer);
|
|
44834
|
-
return new Promise((
|
|
45104
|
+
return new Promise((resolve16) => {
|
|
44835
45105
|
const cmd = `"${ide.cliCommand}" --install-extension "${vsixPath}" --force`;
|
|
44836
45106
|
(0, import_child_process10.exec)(cmd, { timeout: 6e4 }, (error48, _stdout, stderr) => {
|
|
44837
|
-
|
|
45107
|
+
resolve16({
|
|
44838
45108
|
extensionId: extension.id,
|
|
44839
45109
|
marketplaceId: extension.marketplaceId,
|
|
44840
45110
|
success: !error48,
|
|
@@ -44847,11 +45117,11 @@ async function installExtension(ide, extension) {
|
|
|
44847
45117
|
} catch (e) {
|
|
44848
45118
|
}
|
|
44849
45119
|
}
|
|
44850
|
-
return new Promise((
|
|
45120
|
+
return new Promise((resolve16) => {
|
|
44851
45121
|
const cmd = `"${ide.cliCommand}" --install-extension ${extension.marketplaceId} --force`;
|
|
44852
45122
|
(0, import_child_process10.exec)(cmd, { timeout: 6e4 }, (error48, stdout, stderr) => {
|
|
44853
45123
|
if (error48) {
|
|
44854
|
-
|
|
45124
|
+
resolve16({
|
|
44855
45125
|
extensionId: extension.id,
|
|
44856
45126
|
marketplaceId: extension.marketplaceId,
|
|
44857
45127
|
success: false,
|
|
@@ -44859,7 +45129,7 @@ async function installExtension(ide, extension) {
|
|
|
44859
45129
|
error: stderr || error48.message
|
|
44860
45130
|
});
|
|
44861
45131
|
} else {
|
|
44862
|
-
|
|
45132
|
+
resolve16({
|
|
44863
45133
|
extensionId: extension.id,
|
|
44864
45134
|
marketplaceId: extension.marketplaceId,
|
|
44865
45135
|
success: true,
|
|
@@ -47027,14 +47297,14 @@ var require_filesystem = __commonJS({
|
|
|
47027
47297
|
});
|
|
47028
47298
|
return buffer.subarray(0, bytesRead);
|
|
47029
47299
|
};
|
|
47030
|
-
var readFile = (path29) => new Promise((
|
|
47300
|
+
var readFile = (path29) => new Promise((resolve16, reject) => {
|
|
47031
47301
|
fs24.open(path29, "r", (err, fd) => {
|
|
47032
47302
|
if (err) {
|
|
47033
47303
|
reject(err);
|
|
47034
47304
|
} else {
|
|
47035
47305
|
const buffer = Buffer.alloc(MAX_LENGTH);
|
|
47036
47306
|
fs24.read(fd, buffer, 0, MAX_LENGTH, 0, (_2, bytesRead) => {
|
|
47037
|
-
|
|
47307
|
+
resolve16(buffer.subarray(0, bytesRead));
|
|
47038
47308
|
fs24.close(fd, () => {
|
|
47039
47309
|
});
|
|
47040
47310
|
});
|
|
@@ -47102,10 +47372,10 @@ var require_detect_libc = __commonJS({
|
|
|
47102
47372
|
var commandOut = "";
|
|
47103
47373
|
var safeCommand = () => {
|
|
47104
47374
|
if (!commandOut) {
|
|
47105
|
-
return new Promise((
|
|
47375
|
+
return new Promise((resolve16) => {
|
|
47106
47376
|
childProcess2.exec(command, (err, out) => {
|
|
47107
47377
|
commandOut = err ? " " : out;
|
|
47108
|
-
|
|
47378
|
+
resolve16(commandOut);
|
|
47109
47379
|
});
|
|
47110
47380
|
});
|
|
47111
47381
|
}
|
|
@@ -49785,14 +50055,14 @@ var require_input = __commonJS({
|
|
|
49785
50055
|
return this;
|
|
49786
50056
|
} else {
|
|
49787
50057
|
if (this._isStreamInput()) {
|
|
49788
|
-
return new Promise((
|
|
50058
|
+
return new Promise((resolve16, reject) => {
|
|
49789
50059
|
const finished = () => {
|
|
49790
50060
|
this._flattenBufferIn();
|
|
49791
50061
|
sharp.metadata(this.options, (err, metadata2) => {
|
|
49792
50062
|
if (err) {
|
|
49793
50063
|
reject(is.nativeError(err, stack));
|
|
49794
50064
|
} else {
|
|
49795
|
-
|
|
50065
|
+
resolve16(metadata2);
|
|
49796
50066
|
}
|
|
49797
50067
|
});
|
|
49798
50068
|
};
|
|
@@ -49803,12 +50073,12 @@ var require_input = __commonJS({
|
|
|
49803
50073
|
}
|
|
49804
50074
|
});
|
|
49805
50075
|
} else {
|
|
49806
|
-
return new Promise((
|
|
50076
|
+
return new Promise((resolve16, reject) => {
|
|
49807
50077
|
sharp.metadata(this.options, (err, metadata2) => {
|
|
49808
50078
|
if (err) {
|
|
49809
50079
|
reject(is.nativeError(err, stack));
|
|
49810
50080
|
} else {
|
|
49811
|
-
|
|
50081
|
+
resolve16(metadata2);
|
|
49812
50082
|
}
|
|
49813
50083
|
});
|
|
49814
50084
|
});
|
|
@@ -49841,25 +50111,25 @@ var require_input = __commonJS({
|
|
|
49841
50111
|
return this;
|
|
49842
50112
|
} else {
|
|
49843
50113
|
if (this._isStreamInput()) {
|
|
49844
|
-
return new Promise((
|
|
50114
|
+
return new Promise((resolve16, reject) => {
|
|
49845
50115
|
this.on("finish", function() {
|
|
49846
50116
|
this._flattenBufferIn();
|
|
49847
50117
|
sharp.stats(this.options, (err, stats2) => {
|
|
49848
50118
|
if (err) {
|
|
49849
50119
|
reject(is.nativeError(err, stack));
|
|
49850
50120
|
} else {
|
|
49851
|
-
|
|
50121
|
+
resolve16(stats2);
|
|
49852
50122
|
}
|
|
49853
50123
|
});
|
|
49854
50124
|
});
|
|
49855
50125
|
});
|
|
49856
50126
|
} else {
|
|
49857
|
-
return new Promise((
|
|
50127
|
+
return new Promise((resolve16, reject) => {
|
|
49858
50128
|
sharp.stats(this.options, (err, stats2) => {
|
|
49859
50129
|
if (err) {
|
|
49860
50130
|
reject(is.nativeError(err, stack));
|
|
49861
50131
|
} else {
|
|
49862
|
-
|
|
50132
|
+
resolve16(stats2);
|
|
49863
50133
|
}
|
|
49864
50134
|
});
|
|
49865
50135
|
});
|
|
@@ -53281,7 +53551,7 @@ var require_output = __commonJS({
|
|
|
53281
53551
|
return this;
|
|
53282
53552
|
} else {
|
|
53283
53553
|
if (this._isStreamInput()) {
|
|
53284
|
-
return new Promise((
|
|
53554
|
+
return new Promise((resolve16, reject) => {
|
|
53285
53555
|
this.once("finish", () => {
|
|
53286
53556
|
this._flattenBufferIn();
|
|
53287
53557
|
sharp.pipeline(this.options, (err, data, info) => {
|
|
@@ -53289,24 +53559,24 @@ var require_output = __commonJS({
|
|
|
53289
53559
|
reject(is.nativeError(err, stack));
|
|
53290
53560
|
} else {
|
|
53291
53561
|
if (this.options.resolveWithObject) {
|
|
53292
|
-
|
|
53562
|
+
resolve16({ data, info });
|
|
53293
53563
|
} else {
|
|
53294
|
-
|
|
53564
|
+
resolve16(data);
|
|
53295
53565
|
}
|
|
53296
53566
|
}
|
|
53297
53567
|
});
|
|
53298
53568
|
});
|
|
53299
53569
|
});
|
|
53300
53570
|
} else {
|
|
53301
|
-
return new Promise((
|
|
53571
|
+
return new Promise((resolve16, reject) => {
|
|
53302
53572
|
sharp.pipeline(this.options, (err, data, info) => {
|
|
53303
53573
|
if (err) {
|
|
53304
53574
|
reject(is.nativeError(err, stack));
|
|
53305
53575
|
} else {
|
|
53306
53576
|
if (this.options.resolveWithObject) {
|
|
53307
|
-
|
|
53577
|
+
resolve16({ data, info });
|
|
53308
53578
|
} else {
|
|
53309
|
-
|
|
53579
|
+
resolve16(data);
|
|
53310
53580
|
}
|
|
53311
53581
|
}
|
|
53312
53582
|
});
|
|
@@ -54827,7 +55097,7 @@ var init_adhdev_daemon = __esm({
|
|
|
54827
55097
|
init_version();
|
|
54828
55098
|
init_src();
|
|
54829
55099
|
init_runtime_defaults();
|
|
54830
|
-
pkgVersion = resolvePackageVersion({ injectedVersion: "0.8.
|
|
55100
|
+
pkgVersion = resolvePackageVersion({ injectedVersion: "0.8.95" });
|
|
54831
55101
|
AdhdevDaemon = class _AdhdevDaemon {
|
|
54832
55102
|
localHttpServer = null;
|
|
54833
55103
|
localWss = null;
|
|
@@ -55671,7 +55941,7 @@ ${err?.stack || ""}`);
|
|
|
55671
55941
|
this.localWss.emit("connection", ws, req);
|
|
55672
55942
|
});
|
|
55673
55943
|
});
|
|
55674
|
-
await new Promise((
|
|
55944
|
+
await new Promise((resolve16, reject) => {
|
|
55675
55945
|
const cleanup = () => {
|
|
55676
55946
|
this.localHttpServer?.off("error", onError);
|
|
55677
55947
|
this.localHttpServer?.off("listening", onListening);
|
|
@@ -55682,7 +55952,7 @@ ${err?.stack || ""}`);
|
|
|
55682
55952
|
};
|
|
55683
55953
|
const onListening = () => {
|
|
55684
55954
|
cleanup();
|
|
55685
|
-
|
|
55955
|
+
resolve16();
|
|
55686
55956
|
};
|
|
55687
55957
|
this.localHttpServer.once("error", onError);
|
|
55688
55958
|
this.localHttpServer.once("listening", onListening);
|
|
@@ -55842,12 +56112,12 @@ ${err?.stack || ""}`);
|
|
|
55842
56112
|
this.localClients.clear();
|
|
55843
56113
|
this.localWss?.close();
|
|
55844
56114
|
this.localWss = null;
|
|
55845
|
-
await new Promise((
|
|
56115
|
+
await new Promise((resolve16) => {
|
|
55846
56116
|
if (!this.localHttpServer) {
|
|
55847
|
-
|
|
56117
|
+
resolve16();
|
|
55848
56118
|
return;
|
|
55849
56119
|
}
|
|
55850
|
-
this.localHttpServer.close(() =>
|
|
56120
|
+
this.localHttpServer.close(() => resolve16());
|
|
55851
56121
|
this.localHttpServer = null;
|
|
55852
56122
|
});
|
|
55853
56123
|
} catch {
|
|
@@ -56395,14 +56665,14 @@ var require_run_async = __commonJS({
|
|
|
56395
56665
|
return function() {
|
|
56396
56666
|
var args = arguments;
|
|
56397
56667
|
var originalThis = this;
|
|
56398
|
-
var promise2 = new Promise(function(
|
|
56668
|
+
var promise2 = new Promise(function(resolve16, reject) {
|
|
56399
56669
|
var resolved = false;
|
|
56400
56670
|
const wrappedResolve = function(value) {
|
|
56401
56671
|
if (resolved) {
|
|
56402
56672
|
console.warn("Run-async promise already resolved.");
|
|
56403
56673
|
}
|
|
56404
56674
|
resolved = true;
|
|
56405
|
-
|
|
56675
|
+
resolve16(value);
|
|
56406
56676
|
};
|
|
56407
56677
|
var rejected = false;
|
|
56408
56678
|
const wrappedReject = function(value) {
|
|
@@ -57193,7 +57463,7 @@ var require_Observable = __commonJS({
|
|
|
57193
57463
|
Observable2.prototype.forEach = function(next, promiseCtor) {
|
|
57194
57464
|
var _this = this;
|
|
57195
57465
|
promiseCtor = getPromiseCtor(promiseCtor);
|
|
57196
|
-
return new promiseCtor(function(
|
|
57466
|
+
return new promiseCtor(function(resolve16, reject) {
|
|
57197
57467
|
var subscriber = new Subscriber_1.SafeSubscriber({
|
|
57198
57468
|
next: function(value) {
|
|
57199
57469
|
try {
|
|
@@ -57204,7 +57474,7 @@ var require_Observable = __commonJS({
|
|
|
57204
57474
|
}
|
|
57205
57475
|
},
|
|
57206
57476
|
error: reject,
|
|
57207
|
-
complete:
|
|
57477
|
+
complete: resolve16
|
|
57208
57478
|
});
|
|
57209
57479
|
_this.subscribe(subscriber);
|
|
57210
57480
|
});
|
|
@@ -57226,14 +57496,14 @@ var require_Observable = __commonJS({
|
|
|
57226
57496
|
Observable2.prototype.toPromise = function(promiseCtor) {
|
|
57227
57497
|
var _this = this;
|
|
57228
57498
|
promiseCtor = getPromiseCtor(promiseCtor);
|
|
57229
|
-
return new promiseCtor(function(
|
|
57499
|
+
return new promiseCtor(function(resolve16, reject) {
|
|
57230
57500
|
var value;
|
|
57231
57501
|
_this.subscribe(function(x) {
|
|
57232
57502
|
return value = x;
|
|
57233
57503
|
}, function(err) {
|
|
57234
57504
|
return reject(err);
|
|
57235
57505
|
}, function() {
|
|
57236
|
-
return
|
|
57506
|
+
return resolve16(value);
|
|
57237
57507
|
});
|
|
57238
57508
|
});
|
|
57239
57509
|
};
|
|
@@ -59329,11 +59599,11 @@ var require_innerFrom = __commonJS({
|
|
|
59329
59599
|
"use strict";
|
|
59330
59600
|
var __awaiter = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) {
|
|
59331
59601
|
function adopt(value) {
|
|
59332
|
-
return value instanceof P ? value : new P(function(
|
|
59333
|
-
|
|
59602
|
+
return value instanceof P ? value : new P(function(resolve16) {
|
|
59603
|
+
resolve16(value);
|
|
59334
59604
|
});
|
|
59335
59605
|
}
|
|
59336
|
-
return new (P || (P = Promise))(function(
|
|
59606
|
+
return new (P || (P = Promise))(function(resolve16, reject) {
|
|
59337
59607
|
function fulfilled(value) {
|
|
59338
59608
|
try {
|
|
59339
59609
|
step(generator.next(value));
|
|
@@ -59349,7 +59619,7 @@ var require_innerFrom = __commonJS({
|
|
|
59349
59619
|
}
|
|
59350
59620
|
}
|
|
59351
59621
|
function step(result) {
|
|
59352
|
-
result.done ?
|
|
59622
|
+
result.done ? resolve16(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
59353
59623
|
}
|
|
59354
59624
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
59355
59625
|
});
|
|
@@ -59431,14 +59701,14 @@ var require_innerFrom = __commonJS({
|
|
|
59431
59701
|
}, i);
|
|
59432
59702
|
function verb(n) {
|
|
59433
59703
|
i[n] = o[n] && function(v) {
|
|
59434
|
-
return new Promise(function(
|
|
59435
|
-
v = o[n](v), settle(
|
|
59704
|
+
return new Promise(function(resolve16, reject) {
|
|
59705
|
+
v = o[n](v), settle(resolve16, reject, v.done, v.value);
|
|
59436
59706
|
});
|
|
59437
59707
|
};
|
|
59438
59708
|
}
|
|
59439
|
-
function settle(
|
|
59709
|
+
function settle(resolve16, reject, d, v) {
|
|
59440
59710
|
Promise.resolve(v).then(function(v2) {
|
|
59441
|
-
|
|
59711
|
+
resolve16({ value: v2, done: d });
|
|
59442
59712
|
}, reject);
|
|
59443
59713
|
}
|
|
59444
59714
|
};
|
|
@@ -60057,7 +60327,7 @@ var require_lastValueFrom = __commonJS({
|
|
|
60057
60327
|
var EmptyError_1 = require_EmptyError();
|
|
60058
60328
|
function lastValueFrom(source, config2) {
|
|
60059
60329
|
var hasConfig = typeof config2 === "object";
|
|
60060
|
-
return new Promise(function(
|
|
60330
|
+
return new Promise(function(resolve16, reject) {
|
|
60061
60331
|
var _hasValue = false;
|
|
60062
60332
|
var _value;
|
|
60063
60333
|
source.subscribe({
|
|
@@ -60068,9 +60338,9 @@ var require_lastValueFrom = __commonJS({
|
|
|
60068
60338
|
error: reject,
|
|
60069
60339
|
complete: function() {
|
|
60070
60340
|
if (_hasValue) {
|
|
60071
|
-
|
|
60341
|
+
resolve16(_value);
|
|
60072
60342
|
} else if (hasConfig) {
|
|
60073
|
-
|
|
60343
|
+
resolve16(config2.defaultValue);
|
|
60074
60344
|
} else {
|
|
60075
60345
|
reject(new EmptyError_1.EmptyError());
|
|
60076
60346
|
}
|
|
@@ -60092,16 +60362,16 @@ var require_firstValueFrom = __commonJS({
|
|
|
60092
60362
|
var Subscriber_1 = require_Subscriber();
|
|
60093
60363
|
function firstValueFrom(source, config2) {
|
|
60094
60364
|
var hasConfig = typeof config2 === "object";
|
|
60095
|
-
return new Promise(function(
|
|
60365
|
+
return new Promise(function(resolve16, reject) {
|
|
60096
60366
|
var subscriber = new Subscriber_1.SafeSubscriber({
|
|
60097
60367
|
next: function(value) {
|
|
60098
|
-
|
|
60368
|
+
resolve16(value);
|
|
60099
60369
|
subscriber.unsubscribe();
|
|
60100
60370
|
},
|
|
60101
60371
|
error: reject,
|
|
60102
60372
|
complete: function() {
|
|
60103
60373
|
if (hasConfig) {
|
|
60104
|
-
|
|
60374
|
+
resolve16(config2.defaultValue);
|
|
60105
60375
|
} else {
|
|
60106
60376
|
reject(new EmptyError_1.EmptyError());
|
|
60107
60377
|
}
|
|
@@ -71907,14 +72177,14 @@ var require_async_iterator = __commonJS({
|
|
|
71907
72177
|
};
|
|
71908
72178
|
}
|
|
71909
72179
|
function readAndResolve(iter) {
|
|
71910
|
-
var
|
|
71911
|
-
if (
|
|
72180
|
+
var resolve16 = iter[kLastResolve];
|
|
72181
|
+
if (resolve16 !== null) {
|
|
71912
72182
|
var data = iter[kStream].read();
|
|
71913
72183
|
if (data !== null) {
|
|
71914
72184
|
iter[kLastPromise] = null;
|
|
71915
72185
|
iter[kLastResolve] = null;
|
|
71916
72186
|
iter[kLastReject] = null;
|
|
71917
|
-
|
|
72187
|
+
resolve16(createIterResult(data, false));
|
|
71918
72188
|
}
|
|
71919
72189
|
}
|
|
71920
72190
|
}
|
|
@@ -71922,13 +72192,13 @@ var require_async_iterator = __commonJS({
|
|
|
71922
72192
|
process.nextTick(readAndResolve, iter);
|
|
71923
72193
|
}
|
|
71924
72194
|
function wrapForNext(lastPromise, iter) {
|
|
71925
|
-
return function(
|
|
72195
|
+
return function(resolve16, reject) {
|
|
71926
72196
|
lastPromise.then(function() {
|
|
71927
72197
|
if (iter[kEnded]) {
|
|
71928
|
-
|
|
72198
|
+
resolve16(createIterResult(void 0, true));
|
|
71929
72199
|
return;
|
|
71930
72200
|
}
|
|
71931
|
-
iter[kHandlePromise](
|
|
72201
|
+
iter[kHandlePromise](resolve16, reject);
|
|
71932
72202
|
}, reject);
|
|
71933
72203
|
};
|
|
71934
72204
|
}
|
|
@@ -71948,12 +72218,12 @@ var require_async_iterator = __commonJS({
|
|
|
71948
72218
|
return Promise.resolve(createIterResult(void 0, true));
|
|
71949
72219
|
}
|
|
71950
72220
|
if (this[kStream].destroyed) {
|
|
71951
|
-
return new Promise(function(
|
|
72221
|
+
return new Promise(function(resolve16, reject) {
|
|
71952
72222
|
process.nextTick(function() {
|
|
71953
72223
|
if (_this[kError]) {
|
|
71954
72224
|
reject(_this[kError]);
|
|
71955
72225
|
} else {
|
|
71956
|
-
|
|
72226
|
+
resolve16(createIterResult(void 0, true));
|
|
71957
72227
|
}
|
|
71958
72228
|
});
|
|
71959
72229
|
});
|
|
@@ -71976,13 +72246,13 @@ var require_async_iterator = __commonJS({
|
|
|
71976
72246
|
return this;
|
|
71977
72247
|
}), _defineProperty(_Object$setPrototypeO, "return", function _return() {
|
|
71978
72248
|
var _this2 = this;
|
|
71979
|
-
return new Promise(function(
|
|
72249
|
+
return new Promise(function(resolve16, reject) {
|
|
71980
72250
|
_this2[kStream].destroy(null, function(err) {
|
|
71981
72251
|
if (err) {
|
|
71982
72252
|
reject(err);
|
|
71983
72253
|
return;
|
|
71984
72254
|
}
|
|
71985
|
-
|
|
72255
|
+
resolve16(createIterResult(void 0, true));
|
|
71986
72256
|
});
|
|
71987
72257
|
});
|
|
71988
72258
|
}), _Object$setPrototypeO), AsyncIteratorPrototype);
|
|
@@ -72004,15 +72274,15 @@ var require_async_iterator = __commonJS({
|
|
|
72004
72274
|
value: stream._readableState.endEmitted,
|
|
72005
72275
|
writable: true
|
|
72006
72276
|
}), _defineProperty(_Object$create, kHandlePromise, {
|
|
72007
|
-
value: function value(
|
|
72277
|
+
value: function value(resolve16, reject) {
|
|
72008
72278
|
var data = iterator[kStream].read();
|
|
72009
72279
|
if (data) {
|
|
72010
72280
|
iterator[kLastPromise] = null;
|
|
72011
72281
|
iterator[kLastResolve] = null;
|
|
72012
72282
|
iterator[kLastReject] = null;
|
|
72013
|
-
|
|
72283
|
+
resolve16(createIterResult(data, false));
|
|
72014
72284
|
} else {
|
|
72015
|
-
iterator[kLastResolve] =
|
|
72285
|
+
iterator[kLastResolve] = resolve16;
|
|
72016
72286
|
iterator[kLastReject] = reject;
|
|
72017
72287
|
}
|
|
72018
72288
|
},
|
|
@@ -72031,12 +72301,12 @@ var require_async_iterator = __commonJS({
|
|
|
72031
72301
|
iterator[kError] = err;
|
|
72032
72302
|
return;
|
|
72033
72303
|
}
|
|
72034
|
-
var
|
|
72035
|
-
if (
|
|
72304
|
+
var resolve16 = iterator[kLastResolve];
|
|
72305
|
+
if (resolve16 !== null) {
|
|
72036
72306
|
iterator[kLastPromise] = null;
|
|
72037
72307
|
iterator[kLastResolve] = null;
|
|
72038
72308
|
iterator[kLastReject] = null;
|
|
72039
|
-
|
|
72309
|
+
resolve16(createIterResult(void 0, true));
|
|
72040
72310
|
}
|
|
72041
72311
|
iterator[kEnded] = true;
|
|
72042
72312
|
});
|
|
@@ -72051,7 +72321,7 @@ var require_async_iterator = __commonJS({
|
|
|
72051
72321
|
var require_from2 = __commonJS({
|
|
72052
72322
|
"../../node_modules/readable-stream/lib/internal/streams/from.js"(exports2, module2) {
|
|
72053
72323
|
"use strict";
|
|
72054
|
-
function asyncGeneratorStep(gen,
|
|
72324
|
+
function asyncGeneratorStep(gen, resolve16, reject, _next, _throw, key, arg) {
|
|
72055
72325
|
try {
|
|
72056
72326
|
var info = gen[key](arg);
|
|
72057
72327
|
var value = info.value;
|
|
@@ -72060,7 +72330,7 @@ var require_from2 = __commonJS({
|
|
|
72060
72330
|
return;
|
|
72061
72331
|
}
|
|
72062
72332
|
if (info.done) {
|
|
72063
|
-
|
|
72333
|
+
resolve16(value);
|
|
72064
72334
|
} else {
|
|
72065
72335
|
Promise.resolve(value).then(_next, _throw);
|
|
72066
72336
|
}
|
|
@@ -72068,13 +72338,13 @@ var require_from2 = __commonJS({
|
|
|
72068
72338
|
function _asyncToGenerator(fn) {
|
|
72069
72339
|
return function() {
|
|
72070
72340
|
var self2 = this, args = arguments;
|
|
72071
|
-
return new Promise(function(
|
|
72341
|
+
return new Promise(function(resolve16, reject) {
|
|
72072
72342
|
var gen = fn.apply(self2, args);
|
|
72073
72343
|
function _next(value) {
|
|
72074
|
-
asyncGeneratorStep(gen,
|
|
72344
|
+
asyncGeneratorStep(gen, resolve16, reject, _next, _throw, "next", value);
|
|
72075
72345
|
}
|
|
72076
72346
|
function _throw(err) {
|
|
72077
|
-
asyncGeneratorStep(gen,
|
|
72347
|
+
asyncGeneratorStep(gen, resolve16, reject, _next, _throw, "throw", err);
|
|
72078
72348
|
}
|
|
72079
72349
|
_next(void 0);
|
|
72080
72350
|
});
|
|
@@ -74013,9 +74283,9 @@ var init_base = __esm({
|
|
|
74013
74283
|
* @return {Promise}
|
|
74014
74284
|
*/
|
|
74015
74285
|
run() {
|
|
74016
|
-
return new Promise((
|
|
74286
|
+
return new Promise((resolve16, reject) => {
|
|
74017
74287
|
this._run(
|
|
74018
|
-
(value) =>
|
|
74288
|
+
(value) => resolve16(value),
|
|
74019
74289
|
(error48) => reject(error48)
|
|
74020
74290
|
);
|
|
74021
74291
|
});
|
|
@@ -80647,7 +80917,7 @@ var require_lib2 = __commonJS({
|
|
|
80647
80917
|
return matches;
|
|
80648
80918
|
};
|
|
80649
80919
|
exports2.analyse = analyse;
|
|
80650
|
-
var detectFile = (filepath, opts = {}) => new Promise((
|
|
80920
|
+
var detectFile = (filepath, opts = {}) => new Promise((resolve16, reject) => {
|
|
80651
80921
|
let fd;
|
|
80652
80922
|
const fs24 = (0, node_1.default)();
|
|
80653
80923
|
const handler = (err, buffer) => {
|
|
@@ -80657,7 +80927,7 @@ var require_lib2 = __commonJS({
|
|
|
80657
80927
|
if (err) {
|
|
80658
80928
|
reject(err);
|
|
80659
80929
|
} else if (buffer) {
|
|
80660
|
-
|
|
80930
|
+
resolve16((0, exports2.detect)(buffer));
|
|
80661
80931
|
} else {
|
|
80662
80932
|
reject(new Error("No error and no buffer received"));
|
|
80663
80933
|
}
|
|
@@ -86842,14 +87112,14 @@ var baseOpen = async (options) => {
|
|
|
86842
87112
|
}
|
|
86843
87113
|
const subprocess = import_node_child_process5.default.spawn(command, cliArguments, childProcessOptions);
|
|
86844
87114
|
if (options.wait) {
|
|
86845
|
-
return new Promise((
|
|
87115
|
+
return new Promise((resolve16, reject) => {
|
|
86846
87116
|
subprocess.once("error", reject);
|
|
86847
87117
|
subprocess.once("close", (exitCode) => {
|
|
86848
87118
|
if (!options.allowNonzeroExitCode && exitCode > 0) {
|
|
86849
87119
|
reject(new Error(`Exited with code ${exitCode}`));
|
|
86850
87120
|
return;
|
|
86851
87121
|
}
|
|
86852
|
-
|
|
87122
|
+
resolve16(subprocess);
|
|
86853
87123
|
});
|
|
86854
87124
|
});
|
|
86855
87125
|
}
|