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/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((resolve15) => {
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
- resolve15(null);
988
+ resolve16(null);
989
989
  } else {
990
- resolve15(stdout.trim());
990
+ resolve16(stdout.trim());
991
991
  }
992
992
  });
993
- child.on("error", () => resolve15(null));
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((resolve15) => {
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
- resolve15(mainPages.length > 0 ? mainPages : fallbackPages);
1617
+ resolve16(mainPages.length > 0 ? mainPages : fallbackPages);
1618
1618
  } catch {
1619
- resolve15([]);
1619
+ resolve16([]);
1620
1620
  }
1621
1621
  });
1622
1622
  });
1623
- req.on("error", () => resolve15([]));
1623
+ req.on("error", () => resolve16([]));
1624
1624
  req.setTimeout(2e3, () => {
1625
1625
  req.destroy();
1626
- resolve15([]);
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((resolve15) => {
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
- resolve15(targets.find((t) => t.webSocketDebuggerUrl) || null);
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
- resolve15(selected.target);
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
- resolve15(null);
1701
+ resolve16(null);
1702
1702
  return;
1703
1703
  }
1704
1704
  this._pageTitle = list[0]?.title || "";
1705
- resolve15(list[0]);
1705
+ resolve16(list[0]);
1706
1706
  } catch {
1707
- resolve15(null);
1707
+ resolve16(null);
1708
1708
  }
1709
1709
  });
1710
1710
  });
1711
- req.on("error", () => resolve15(null));
1711
+ req.on("error", () => resolve16(null));
1712
1712
  req.setTimeout(2e3, () => {
1713
1713
  req.destroy();
1714
- resolve15(null);
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((resolve15) => {
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
- resolve15(true);
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: resolve16, reject } = this.pending.get(msg.id);
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 resolve16(msg.result);
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
- resolve15(false);
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((resolve15, reject) => {
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
- resolve15();
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: resolve16, reject: reject2 } = this.browserPending.get(msg.id);
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 resolve16(msg.result);
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((resolve15) => {
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
- resolve15(info.webSocketDebuggerUrl || null);
1828
+ resolve16(info.webSocketDebuggerUrl || null);
1829
1829
  } catch {
1830
- resolve15(null);
1830
+ resolve16(null);
1831
1831
  }
1832
1832
  });
1833
1833
  });
1834
- req.on("error", () => resolve15(null));
1834
+ req.on("error", () => resolve16(null));
1835
1835
  req.setTimeout(3e3, () => {
1836
1836
  req.destroy();
1837
- resolve15(null);
1837
+ resolve16(null);
1838
1838
  });
1839
1839
  });
1840
1840
  }
1841
1841
  sendBrowser(method, params = {}, timeoutMs = 15e3) {
1842
- return new Promise((resolve15, reject) => {
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: resolve15, reject });
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((resolve15, reject) => {
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: resolve15, reject });
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((resolve15, reject) => {
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 resolve15(msg.result);
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((resolve15, reject) => {
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
- resolve15(result?.result?.value);
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((resolve15, reject) => {
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: resolve15, reject });
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
- return h.ctx.instanceManager?.getInstance(sessionId) || null;
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((resolve15) => setTimeout(resolve15, 150));
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((resolve15) => setTimeout(resolve15, 250));
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
- if (status?.status !== "waiting_approval") {
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 = status.activeModal?.buttons || ["Allow once", "Always allow", "Deny"];
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((resolve15, reject) => {
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
- resolve15(JSON.parse(data));
9681
+ resolve16(JSON.parse(data));
9554
9682
  } catch {
9555
- resolve15({ raw: data });
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((resolve15, reject) => {
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
- resolve15(JSON.parse(data));
9707
+ resolve16(JSON.parse(data));
9580
9708
  } catch {
9581
- resolve15({ raw: data });
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((resolve15, reject) => {
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
- resolve15(JSON.parse(data));
9735
+ resolve16(JSON.parse(data));
9608
9736
  } catch {
9609
- resolve15({ raw: data });
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((resolve15) => setTimeout(resolve15, 50));
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
- const effectiveStatus = this.projectEffectiveStatus(startupModal);
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: startupModal || this.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((resolve15) => setTimeout(resolve15, 50));
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((resolve15) => {
12928
+ await new Promise((resolve16) => {
12780
12929
  let resolved = false;
12781
12930
  const resolveOnce = () => {
12782
12931
  if (resolved) return;
12783
12932
  resolved = true;
12784
- resolve15();
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((resolve15) => {
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
- resolve15(true);
13112
+ resolve16(true);
12964
13113
  return;
12965
13114
  }
12966
13115
  if (Date.now() - startedAt >= timeoutMs) {
12967
13116
  clearInterval(timer);
12968
- resolve15(false);
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
- const modal = this.activeModal || this.getStartupConfirmationModal(screenText);
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((resolve15) => setTimeout(resolve15, pollMs));
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.historyWriter.compactHistorySession(this.type, this.providerSessionId);
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
- this.lastPersistedHistoryMessages = normalizedMessagesToSave;
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((resolve15) => {
30127
- this.#abortController.signal.addEventListener("abort", () => resolve15());
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((resolve15, reject) => {
30277
- this.#pendingResponses.set(id, { resolve: resolve15, reject });
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((resolve15) => {
30949
- this.permissionResolvers.push(resolve15);
31145
+ const approved = await new Promise((resolve16) => {
31146
+ this.permissionResolvers.push(resolve16);
30950
31147
  setTimeout(() => {
30951
- const idx = this.permissionResolvers.indexOf(resolve15);
31148
+ const idx = this.permissionResolvers.indexOf(resolve16);
30952
31149
  if (idx >= 0) {
30953
31150
  this.permissionResolvers.splice(idx, 1);
30954
- resolve15(false);
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((resolve15, reject) => {
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
- resolve15(void 0);
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
- this.userDir = this.defaultProvidersDir;
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
- this.userDir = this.explicitProviderDir || this.defaultProvidersDir;
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((resolve15, reject) => {
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
- resolve15(res2.headers.etag || res2.headers["last-modified"] || "");
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
- resolve15(res.headers.etag || res.headers["last-modified"] || "");
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((resolve15, reject) => {
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
- resolve15();
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((resolve15) => {
35779
+ return new Promise((resolve16) => {
35510
35780
  const server = net2.createServer();
35511
35781
  server.unref();
35512
- server.on("error", () => resolve15(false));
35782
+ server.on("error", () => resolve16(false));
35513
35783
  server.listen(port, "127.0.0.1", () => {
35514
- server.close(() => resolve15(true));
35784
+ server.close(() => resolve16(true));
35515
35785
  });
35516
35786
  });
35517
35787
  }
35518
35788
  async function isCdpActive(port) {
35519
- return new Promise((resolve15) => {
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
- resolve15(!!info["WebKit-Version"] || !!info["Browser"]);
35798
+ resolve16(!!info["WebKit-Version"] || !!info["Browser"]);
35529
35799
  } catch {
35530
- resolve15(false);
35800
+ resolve16(false);
35531
35801
  }
35532
35802
  });
35533
35803
  });
35534
- req.on("error", () => resolve15(false));
35804
+ req.on("error", () => resolve16(false));
35535
35805
  req.on("timeout", () => {
35536
35806
  req.destroy();
35537
- resolve15(false);
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((resolve15) => setTimeout(resolve15, 250));
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((resolve15) => setTimeout(resolve15, 500));
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((resolve15) => setTimeout(resolve15, 250));
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((resolve15) => setTimeout(resolve15, 150));
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((resolve15) => setTimeout(resolve15, 250));
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((resolve15) => setTimeout(resolve15, ms));
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((resolve15, reject) => {
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
- resolve15();
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
- resolve15();
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((resolve15) => {
43270
+ await new Promise((resolve16) => {
43001
43271
  const timer = setTimeout(() => {
43002
43272
  child.kill();
43003
- resolve15();
43273
+ resolve16();
43004
43274
  }, 3e3);
43005
43275
  child.on("exit", () => {
43006
43276
  clearTimeout(timer);
43007
- resolve15();
43277
+ resolve16();
43008
43278
  });
43009
43279
  child.stdout?.once("data", () => {
43010
43280
  setTimeout(() => {
43011
43281
  child.kill();
43012
43282
  clearTimeout(timer);
43013
- resolve15();
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((resolve15) => {
43799
+ await new Promise((resolve16) => {
43530
43800
  const timer = setTimeout(() => {
43531
43801
  child.kill();
43532
- resolve15();
43802
+ resolve16();
43533
43803
  }, timeout);
43534
43804
  child.on("exit", () => {
43535
43805
  clearTimeout(timer);
43536
- resolve15();
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((resolve15) => {
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
- resolve15(JSON.parse(body));
44481
+ resolve16(JSON.parse(body));
44212
44482
  } catch {
44213
- resolve15({});
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((resolve15) => setTimeout(resolve15, STARTUP_POLL_MS));
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((resolve15) => {
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
- resolve15({
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((resolve15) => {
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
- resolve15({
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
- resolve15({
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((resolve15, reject) => {
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
- resolve15(buffer.subarray(0, bytesRead));
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((resolve15) => {
47375
+ return new Promise((resolve16) => {
47106
47376
  childProcess2.exec(command, (err, out) => {
47107
47377
  commandOut = err ? " " : out;
47108
- resolve15(commandOut);
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((resolve15, reject) => {
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
- resolve15(metadata2);
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((resolve15, reject) => {
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
- resolve15(metadata2);
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((resolve15, reject) => {
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
- resolve15(stats2);
50121
+ resolve16(stats2);
49852
50122
  }
49853
50123
  });
49854
50124
  });
49855
50125
  });
49856
50126
  } else {
49857
- return new Promise((resolve15, reject) => {
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
- resolve15(stats2);
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((resolve15, reject) => {
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
- resolve15({ data, info });
53562
+ resolve16({ data, info });
53293
53563
  } else {
53294
- resolve15(data);
53564
+ resolve16(data);
53295
53565
  }
53296
53566
  }
53297
53567
  });
53298
53568
  });
53299
53569
  });
53300
53570
  } else {
53301
- return new Promise((resolve15, reject) => {
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
- resolve15({ data, info });
53577
+ resolve16({ data, info });
53308
53578
  } else {
53309
- resolve15(data);
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.93" });
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((resolve15, reject) => {
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
- resolve15();
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((resolve15) => {
56115
+ await new Promise((resolve16) => {
55846
56116
  if (!this.localHttpServer) {
55847
- resolve15();
56117
+ resolve16();
55848
56118
  return;
55849
56119
  }
55850
- this.localHttpServer.close(() => resolve15());
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(resolve15, reject) {
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
- resolve15(value);
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(resolve15, reject) {
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: resolve15
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(resolve15, reject) {
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 resolve15(value);
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(resolve15) {
59333
- resolve15(value);
59602
+ return value instanceof P ? value : new P(function(resolve16) {
59603
+ resolve16(value);
59334
59604
  });
59335
59605
  }
59336
- return new (P || (P = Promise))(function(resolve15, reject) {
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 ? resolve15(result.value) : adopt(result.value).then(fulfilled, rejected);
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(resolve15, reject) {
59435
- v = o[n](v), settle(resolve15, reject, v.done, v.value);
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(resolve15, reject, d, v) {
59709
+ function settle(resolve16, reject, d, v) {
59440
59710
  Promise.resolve(v).then(function(v2) {
59441
- resolve15({ value: v2, done: d });
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(resolve15, reject) {
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
- resolve15(_value);
60341
+ resolve16(_value);
60072
60342
  } else if (hasConfig) {
60073
- resolve15(config2.defaultValue);
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(resolve15, reject) {
60365
+ return new Promise(function(resolve16, reject) {
60096
60366
  var subscriber = new Subscriber_1.SafeSubscriber({
60097
60367
  next: function(value) {
60098
- resolve15(value);
60368
+ resolve16(value);
60099
60369
  subscriber.unsubscribe();
60100
60370
  },
60101
60371
  error: reject,
60102
60372
  complete: function() {
60103
60373
  if (hasConfig) {
60104
- resolve15(config2.defaultValue);
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 resolve15 = iter[kLastResolve];
71911
- if (resolve15 !== null) {
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
- resolve15(createIterResult(data, false));
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(resolve15, reject) {
72195
+ return function(resolve16, reject) {
71926
72196
  lastPromise.then(function() {
71927
72197
  if (iter[kEnded]) {
71928
- resolve15(createIterResult(void 0, true));
72198
+ resolve16(createIterResult(void 0, true));
71929
72199
  return;
71930
72200
  }
71931
- iter[kHandlePromise](resolve15, reject);
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(resolve15, reject) {
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
- resolve15(createIterResult(void 0, true));
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(resolve15, reject) {
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
- resolve15(createIterResult(void 0, true));
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(resolve15, reject) {
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
- resolve15(createIterResult(data, false));
72283
+ resolve16(createIterResult(data, false));
72014
72284
  } else {
72015
- iterator[kLastResolve] = resolve15;
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 resolve15 = iterator[kLastResolve];
72035
- if (resolve15 !== null) {
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
- resolve15(createIterResult(void 0, true));
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, resolve15, reject, _next, _throw, key, arg) {
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
- resolve15(value);
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(resolve15, reject) {
72341
+ return new Promise(function(resolve16, reject) {
72072
72342
  var gen = fn.apply(self2, args);
72073
72343
  function _next(value) {
72074
- asyncGeneratorStep(gen, resolve15, reject, _next, _throw, "next", value);
72344
+ asyncGeneratorStep(gen, resolve16, reject, _next, _throw, "next", value);
72075
72345
  }
72076
72346
  function _throw(err) {
72077
- asyncGeneratorStep(gen, resolve15, reject, _next, _throw, "throw", err);
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((resolve15, reject) => {
74286
+ return new Promise((resolve16, reject) => {
74017
74287
  this._run(
74018
- (value) => resolve15(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((resolve15, reject) => {
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
- resolve15((0, exports2.detect)(buffer));
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((resolve15, reject) => {
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
- resolve15(subprocess);
87122
+ resolve16(subprocess);
86853
87123
  });
86854
87124
  });
86855
87125
  }