@xiaoso/dsh-tool-plus 0.1.0-beta.2 → 0.1.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +122 -0
- package/README.md +3 -2
- package/THIRD_PARTY_NOTICES.md +4 -35
- package/lib/abort-B7izMMna.mjs +51 -0
- package/lib/abort-D1_Z5Ut5.mjs +51 -0
- package/lib/abort-dIkZBV7Q.mjs +51 -0
- package/lib/amazon-bedrock-B0nxT06F.mjs +917 -0
- package/lib/amazon-bedrock-D-shAr1X.mjs +917 -0
- package/lib/amazon-bedrock-WQhvjHYu.mjs +917 -0
- package/lib/anthropic-BWsZFzU8.mjs +262 -0
- package/lib/anthropic-CJCauvYz.mjs +3115 -0
- package/lib/anthropic-CMT1Qj1t.mjs +3115 -0
- package/lib/anthropic-CZghe_9U.mjs +3115 -0
- package/lib/anthropic-sCMH7JID.mjs +262 -0
- package/lib/anthropic-tTntD8BD.mjs +262 -0
- package/lib/api-key-login-BzqNdM2y.mjs +157 -0
- package/lib/api-key-login-CWVwvHT1.mjs +157 -0
- package/lib/api-key-login-CpzSezsi.mjs +157 -0
- package/lib/aws-credentials-8Mgn5MAy.mjs +867 -0
- package/lib/aws-credentials-CXryMobh.mjs +867 -0
- package/lib/aws-credentials-ChG79ey-.mjs +867 -0
- package/lib/azure-openai-responses-CNkHiLUh.mjs +274 -0
- package/lib/azure-openai-responses-Cgmc-rbL.mjs +274 -0
- package/lib/azure-openai-responses-DuukbD0F.mjs +274 -0
- package/lib/bun-shim.mjs +252 -12
- package/lib/bundled-references-CSuBco5p.mjs +55 -0
- package/lib/bundled-references-Cavaffah.mjs +55 -0
- package/lib/bundled-references-sLN0YdXU.mjs +55 -0
- package/lib/callback-server-BEFNf-jf.mjs +398 -0
- package/lib/callback-server-CQ5Jo8F-.mjs +398 -0
- package/lib/callback-server-DDSrZ6l_.mjs +398 -0
- package/lib/client.js +111 -41
- package/lib/cursor-B3zg7EHj.mjs +273 -0
- package/lib/cursor-B6TUEmgP.mjs +135 -0
- package/lib/cursor-BIQfBC6V.mjs +135 -0
- package/lib/cursor-D8gvtTL3.mjs +135 -0
- package/lib/cursor-DNk6eXDd.mjs +5470 -0
- package/lib/cursor-DkSX2h3H.mjs +5441 -0
- package/lib/cursor-MjSm74IJ.mjs +273 -0
- package/lib/cursor-aJrXeYCb.mjs +273 -0
- package/lib/cursor-mJQwUKXK.mjs +5441 -0
- package/lib/device-code-DBo3B5nh.mjs +51 -0
- package/lib/device-code-DIb0FU-H.mjs +51 -0
- package/lib/device-code-OI_tQcmc.mjs +51 -0
- package/lib/devin-BHZZyMhO.mjs +95 -0
- package/lib/devin-BK7DHeca.mjs +114 -0
- package/lib/devin-CfMp3cXS.mjs +95 -0
- package/lib/devin-CldyPD8K.mjs +95 -0
- package/lib/devin-CzRpTUOA.mjs +114 -0
- package/lib/devin-D9zR5B_R.mjs +542 -0
- package/lib/devin-DXOeNyU7.mjs +542 -0
- package/lib/devin-Q1yem3lp.mjs +114 -0
- package/lib/devin-vNZTNUON.mjs +542 -0
- package/lib/error-B3bevhrs.mjs +1449 -0
- package/lib/error-Dd8DIqs-.mjs +1449 -0
- package/lib/error-yCSG0mGC.mjs +1449 -0
- package/lib/event-stream-BDPi64mK.mjs +151 -0
- package/lib/event-stream-BbFZJy-z.mjs +151 -0
- package/lib/event-stream-loUa0s1T.mjs +151 -0
- package/lib/fs-promises-shim-Bx0fpxuk.mjs +57 -0
- package/lib/github-copilot-4GaMtQmg.mjs +208 -0
- package/lib/github-copilot-B1yiyVRh.mjs +104 -0
- package/lib/github-copilot-B2HGSIJK.mjs +104 -0
- package/lib/github-copilot-BWT3eAOF.mjs +208 -0
- package/lib/github-copilot-CYkjeTi3.mjs +208 -0
- package/lib/github-copilot-jscUZ8Hf.mjs +104 -0
- package/lib/gitlab-duo-CM7Ref1H.mjs +155 -0
- package/lib/gitlab-duo-akICyfeD.mjs +155 -0
- package/lib/gitlab-duo-gubO4FNw.mjs +155 -0
- package/lib/gitlab-duo-workflow-BGAF6JDw.mjs +91 -0
- package/lib/gitlab-duo-workflow-CSEgYk3N.mjs +91 -0
- package/lib/gitlab-duo-workflow-D78tdn8E.mjs +91 -0
- package/lib/google-BS4T25Pn.mjs +30 -0
- package/lib/google-TFe-7-of.mjs +30 -0
- package/lib/google-antigravity-DGmwC2KV.mjs +198 -0
- package/lib/google-antigravity-DNYhgTpA.mjs +198 -0
- package/lib/google-antigravity-Dlkdhahq.mjs +198 -0
- package/lib/google-auth-B6gjsZvg.mjs +232 -0
- package/lib/google-auth-De7_s3eo.mjs +232 -0
- package/lib/google-auth-DhqpOYrX.mjs +232 -0
- package/lib/google-gemini-cli-BG_LRdIV.mjs +850 -0
- package/lib/google-gemini-cli-CWu8HvXW.mjs +211 -0
- package/lib/google-gemini-cli-Cb97bzQc.mjs +850 -0
- package/lib/google-gemini-cli-Cqds_Q5T.mjs +850 -0
- package/lib/google-gemini-cli-Dsztq0N5.mjs +211 -0
- package/lib/google-gemini-cli-zJhiOcND.mjs +211 -0
- package/lib/google-oauth-shared-CuEHaDDj.mjs +147 -0
- package/lib/google-oauth-shared-CwNWYdmR.mjs +147 -0
- package/lib/google-oauth-shared-yqlyqPPC.mjs +147 -0
- package/lib/google-shared-CgKmmdO3.mjs +760 -0
- package/lib/google-shared-Dr-VG-ap.mjs +760 -0
- package/lib/google-shared-DzhCb9b0.mjs +760 -0
- package/lib/google-vertex-BDN2tLaD.mjs +99 -0
- package/lib/google-vertex-DopVOQOG.mjs +99 -0
- package/lib/google-vertex-kscbkyRb.mjs +99 -0
- package/lib/google-zyDOG9x7.mjs +30 -0
- package/lib/identity-Da1GPU9a.mjs +219 -0
- package/lib/identity-DnB63pS7.mjs +219 -0
- package/lib/identity-xRP7_eSR.mjs +219 -0
- package/lib/idle-iterator-Baoyn3Hp.mjs +366 -0
- package/lib/idle-iterator-C6XbWcuB.mjs +366 -0
- package/lib/idle-iterator-DUjKQEGT.mjs +366 -0
- package/lib/index.mjs +4608 -3935
- package/lib/kimi--wUOWER5.mjs +236 -0
- package/lib/kimi-DMVI-zrZ.mjs +236 -0
- package/lib/kimi-Dh0pv3WZ.mjs +236 -0
- package/lib/markit-BL3cH47U.mjs +1417 -0
- package/lib/markit-BNiNY6SE.mjs +1417 -0
- package/lib/markit-M0jhziqU.mjs +1417 -0
- package/lib/minimax-code-BK-3eBbz.mjs +53 -0
- package/lib/minimax-code-DCbuA6Yk.mjs +53 -0
- package/lib/minimax-code-Uq8Qu9LW.mjs +53 -0
- package/lib/models-CfT4coYT.mjs +104660 -0
- package/lib/models-D_XnT6ay.mjs +104660 -0
- package/lib/models-SGASygJ3.mjs +104660 -0
- package/lib/ollama-BQMGPxtV.mjs +589 -0
- package/lib/ollama-DPzBmq89.mjs +589 -0
- package/lib/ollama-DoBz5SFm.mjs +589 -0
- package/lib/openai-codex-Bi-4S4PX.mjs +255 -0
- package/lib/openai-codex-CQL_kvYL.mjs +255 -0
- package/lib/openai-codex-Ch8CkT3p.mjs +255 -0
- package/lib/openai-codex-responses-CvxL_FMF.mjs +3144 -0
- package/lib/openai-codex-responses-Cz-2qpC7.mjs +3144 -0
- package/lib/openai-codex-responses-pejZgdZo.mjs +3144 -0
- package/lib/openai-completions-CF8IyNtP.mjs +1360 -0
- package/lib/openai-completions-DIf361kF.mjs +1360 -0
- package/lib/openai-completions-i8doczAk.mjs +1360 -0
- package/lib/openai-reasoning-fallback-DGVVLgd1.mjs +286 -0
- package/lib/openai-reasoning-fallback-Nj6yB2rY.mjs +286 -0
- package/lib/openai-reasoning-fallback-OdJREP1o.mjs +286 -0
- package/lib/openai-responses-BqXJInHX.mjs +867 -0
- package/lib/openai-responses-DTkBiiy-.mjs +867 -0
- package/lib/openai-responses-Db_a-U4-.mjs +867 -0
- package/lib/opencode-DaJjcUbf.mjs +38 -0
- package/lib/opencode-DhMolSoB.mjs +38 -0
- package/lib/opencode-Rq_Q2vAO.mjs +38 -0
- package/lib/perplexity-9b-RQ0mV.mjs +194 -0
- package/lib/perplexity-C4iLVMUj.mjs +194 -0
- package/lib/perplexity-Uu7Jzg5b.mjs +194 -0
- package/lib/proxy-DDqrmjjC.mjs +190 -0
- package/lib/proxy-ZtUcl6r5.mjs +190 -0
- package/lib/proxy-pM_NIv-H.mjs +190 -0
- package/lib/request-debug-HJMoJncL.mjs +183 -0
- package/lib/sanitize-text-CfcXzw5X.mjs +33 -0
- package/lib/scrapers-BkFfcPHj.mjs +9198 -0
- package/lib/scrapers-CL-WgdU1.mjs +9198 -0
- package/lib/scrapers-CVptboMs.mjs +9198 -0
- package/lib/scrapers-CipyKyCH.mjs +9198 -0
- package/lib/scrapers-DGfrYhtw.mjs +9198 -0
- package/lib/scrapers-DSUPYoUF.mjs +9198 -0
- package/lib/scrapers-DZ2GXmp7.mjs +9198 -0
- package/lib/scrapers-nhQAvc8d.mjs +9198 -0
- package/lib/shell-snapshot-fn-env.sh +67 -43
- package/lib/src-BgpusnsB.mjs +5076 -0
- package/lib/src-DTid0g4K.mjs +5001 -0
- package/lib/src-lDmkSRbm.mjs +5006 -0
- package/lib/stream-BlldLkVq.mjs +10236 -0
- package/lib/stream-CRtexYLe.mjs +10236 -0
- package/lib/stream-C_RAoxJC.mjs +10236 -0
- package/lib/stream-markup-healing-2toHXWXM.mjs +491 -0
- package/lib/stream-markup-healing-DMsxBx1L.mjs +491 -0
- package/lib/stream-markup-healing-KMkiAA00.mjs +491 -0
- package/lib/turndown-DN7ByzEI.mjs +667 -0
- package/lib/types/client/locales.d.ts +1 -1
- package/lib/types/config/fields.d.ts +1 -1
- package/lib/types/config/settings.d.ts +25 -3
- package/lib/types/config/truncate.d.ts +9 -5
- package/lib/types/tools/bash/background.d.ts +1 -1
- package/lib/types/tools/bash/bash-executor.d.ts +4 -0
- package/lib/types/tools/bash/bash-interceptor.d.ts +10 -8
- package/lib/types/tools/bash/cd-workdir.d.ts +35 -0
- package/lib/types/tools/bash/non-interactive-env.d.ts +2 -0
- package/lib/types/tools/bash/render.d.ts +4 -3
- package/lib/types/tools/bash/sanitize-text.d.ts +5 -0
- package/lib/types/tools/bash/shell-snapshot.d.ts +4 -1
- package/lib/types/tools/bash/shell-tokenize.d.ts +60 -0
- package/lib/types/tools/bash/streaming-output.d.ts +12 -212
- package/lib/types/tools/bash/which.d.ts +20 -0
- package/lib/types/tools/bash/windows-shell.d.ts +31 -0
- package/lib/types/tools/edit/adapter/index.d.ts +25 -3
- package/lib/types/tools/edit/adapter/tools/auto-generated-guard.d.ts +7 -17
- package/lib/types/tools/glob/adapter/index.d.ts +27 -1
- package/lib/types/tools/grep/adapter/index.d.ts +29 -1
- package/lib/types/tools/omp/edit/dispatch.d.ts +43 -0
- package/lib/types/tools/omp/edit/hashline/noop-loop-guard.d.ts +3 -1
- package/lib/types/tools/omp/sdk.d.ts +6 -0
- package/lib/types/tools/omp/tools/auto-generated-guard.d.ts +20 -0
- package/lib/types/tools/omp/tools/fetch.d.ts +2 -0
- package/lib/types/tools/omp/tools/read.d.ts +2 -8
- package/lib/types/tools/omp/tools/write.d.ts +4 -4
- package/lib/types/tools/omp/utils/image-loading.d.ts +10 -36
- package/lib/types/tools/read/adapter/index.d.ts +4 -1
- package/lib/types/tools/read-image/index.d.ts +4 -0
- package/lib/types/tools/shared/auto-generated-guard.dsh.d.ts +16 -4
- package/lib/types/tools/shared/bun-shim.d.ts +39 -3
- package/lib/types/tools/shared/fs-promises-shim.d.ts +3 -1
- package/lib/types/tools/shared/image-bridge.d.ts +98 -0
- package/lib/types/tools/shared/omp-prompt.d.ts +17 -9
- package/lib/types/tools/shared/session-state.d.ts +9 -3
- package/lib/utils-2Wq2eATG.mjs +8119 -0
- package/lib/utils-BnX8O3vi.mjs +12303 -0
- package/lib/utils-Bw139LTz.mjs +8119 -0
- package/lib/utils-CE8N8P4Q.mjs +12315 -0
- package/lib/utils-CZw4tVZQ.mjs +12315 -0
- package/lib/utils-C_MrQ_0z.mjs +12301 -0
- package/lib/utils-CiGN7OHR.mjs +12315 -0
- package/lib/utils-Cp76gCyk.mjs +8119 -0
- package/lib/utils-D0GRDgAr.mjs +12315 -0
- package/lib/utils-D0Z1fyoO.mjs +12299 -0
- package/lib/utils-D2YknRk4.mjs +51 -0
- package/lib/utils-DppGHXQB.mjs +51 -0
- package/lib/utils-DzXZDfYc.mjs +51 -0
- package/lib/utils-W8WdSBpX.mjs +12315 -0
- package/lib/vision-guard-01qSwFpf.mjs +92 -0
- package/lib/vision-guard-BDD4OrKo.mjs +92 -0
- package/lib/vision-guard-DzZGaOga.mjs +92 -0
- package/lib/wafer-CgtPHerf.mjs +17 -0
- package/lib/wafer-DRU0EjZX.mjs +17 -0
- package/lib/wafer-cBtrn6q9.mjs +17 -0
- package/lib/xai-oauth-Buk8XVvM.mjs +446 -0
- package/lib/xai-oauth-CMal8l1O.mjs +446 -0
- package/lib/xai-oauth-DPHDXKD7.mjs +446 -0
- package/lib/xiaomi-CZgwvX2G.mjs +157 -0
- package/lib/xiaomi-D2qT5cAC.mjs +157 -0
- package/lib/xiaomi-Dd87KSg5.mjs +157 -0
- package/lib/zai-7DWMkEqM.mjs +203 -0
- package/lib/zai-C59YnomG.mjs +203 -0
- package/lib/zai-CFeOt-53.mjs +203 -0
- package/lib/zip-Cg9ANN_U.mjs +1316 -0
- package/lib/zip-D36ZKsP8.mjs +1316 -0
- package/lib/zip-D6QXpvaJ.mjs +1316 -0
- package/package.json +14 -10
- package/presets/package.json +1 -1
- package/presets/tool-plus-ptc/preset.yml +1 -1
- package/presets/tool-plus-standard/preset.yml +1 -1
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { installBunShim as __installBunShim } from "./bun-shim.mjs";
|
|
2
|
+
__installBunShim();
|
|
3
|
+
import { C as classifyMessage, s as ProviderResponseError } from "./error-B3bevhrs.mjs";
|
|
4
|
+
//#region node_modules/.pnpm/@oh-my-pi+pi-ai@17.3.5/node_modules/@oh-my-pi/pi-ai/src/utils/event-stream.ts
|
|
5
|
+
var EventStream = class {
|
|
6
|
+
queue = [];
|
|
7
|
+
waiting = [];
|
|
8
|
+
done = false;
|
|
9
|
+
/** True once finalResultPromise has been resolved or rejected. */
|
|
10
|
+
resultSettled = false;
|
|
11
|
+
#failed = false;
|
|
12
|
+
#error = void 0;
|
|
13
|
+
/**
|
|
14
|
+
* Consumer-side local operations currently in flight for this stream — a
|
|
15
|
+
* provider transport waiting on a server-requested local tool bridge
|
|
16
|
+
* (e.g. the Cursor exec channel) before it can send the result upstream.
|
|
17
|
+
* While non-zero, event silence is attributable to our own pending work,
|
|
18
|
+
* not a provider stall; idle watchdogs consult {@link hasPendingLocalWork}.
|
|
19
|
+
*/
|
|
20
|
+
#pendingLocalWork = 0;
|
|
21
|
+
finalResultPromise;
|
|
22
|
+
resolveFinalResult;
|
|
23
|
+
rejectFinalResult;
|
|
24
|
+
isComplete;
|
|
25
|
+
extractResult;
|
|
26
|
+
constructor(isComplete, extractResult) {
|
|
27
|
+
const { promise, resolve, reject } = Promise.withResolvers();
|
|
28
|
+
promise.catch(() => {});
|
|
29
|
+
this.finalResultPromise = promise;
|
|
30
|
+
this.resolveFinalResult = resolve;
|
|
31
|
+
this.rejectFinalResult = reject;
|
|
32
|
+
this.isComplete = isComplete;
|
|
33
|
+
this.extractResult = extractResult;
|
|
34
|
+
}
|
|
35
|
+
push(event) {
|
|
36
|
+
if (this.done) return;
|
|
37
|
+
if (this.isComplete(event)) {
|
|
38
|
+
this.done = true;
|
|
39
|
+
this.resultSettled = true;
|
|
40
|
+
this.resolveFinalResult(this.extractResult(event));
|
|
41
|
+
}
|
|
42
|
+
const waiter = this.waiting.shift();
|
|
43
|
+
if (waiter) waiter.resolve({
|
|
44
|
+
value: event,
|
|
45
|
+
done: false
|
|
46
|
+
});
|
|
47
|
+
else this.queue.push(event);
|
|
48
|
+
}
|
|
49
|
+
deliver(event) {
|
|
50
|
+
const waiter = this.waiting.shift();
|
|
51
|
+
if (waiter) waiter.resolve({
|
|
52
|
+
value: event,
|
|
53
|
+
done: false
|
|
54
|
+
});
|
|
55
|
+
else this.queue.push(event);
|
|
56
|
+
}
|
|
57
|
+
end(result) {
|
|
58
|
+
this.done = true;
|
|
59
|
+
if (result !== void 0) {
|
|
60
|
+
this.resultSettled = true;
|
|
61
|
+
this.resolveFinalResult(result);
|
|
62
|
+
} else if (!this.resultSettled) {
|
|
63
|
+
this.resultSettled = true;
|
|
64
|
+
this.rejectFinalResult(new ProviderResponseError("Stream ended without a final result", { kind: "envelope" }));
|
|
65
|
+
}
|
|
66
|
+
while (this.waiting.length > 0) this.waiting.shift().resolve({
|
|
67
|
+
value: void 0,
|
|
68
|
+
done: true
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
endWaiting() {
|
|
72
|
+
while (this.waiting.length > 0) this.waiting.shift().resolve({
|
|
73
|
+
value: void 0,
|
|
74
|
+
done: true
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
fail(err) {
|
|
78
|
+
if (this.done) return;
|
|
79
|
+
this.done = true;
|
|
80
|
+
this.#failed = true;
|
|
81
|
+
this.#error = err;
|
|
82
|
+
this.resultSettled = true;
|
|
83
|
+
this.rejectFinalResult(err);
|
|
84
|
+
while (this.waiting.length > 0) this.waiting.shift().reject(err);
|
|
85
|
+
}
|
|
86
|
+
async *[Symbol.asyncIterator]() {
|
|
87
|
+
while (true) if (this.queue.length > 0) yield this.queue.shift();
|
|
88
|
+
else if (this.#failed) throw this.#error;
|
|
89
|
+
else if (this.done) return;
|
|
90
|
+
else {
|
|
91
|
+
const result = await new Promise((resolve, reject) => this.waiting.push({
|
|
92
|
+
resolve,
|
|
93
|
+
reject
|
|
94
|
+
}));
|
|
95
|
+
if (result.done) return;
|
|
96
|
+
yield result.value;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
result() {
|
|
100
|
+
return this.finalResultPromise;
|
|
101
|
+
}
|
|
102
|
+
/** True while local work tracked via {@link trackLocalWork} is pending. */
|
|
103
|
+
get hasPendingLocalWork() {
|
|
104
|
+
return this.#pendingLocalWork > 0;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Track a local-work promise so idle watchdogs on this stream do not treat
|
|
108
|
+
* the event silence while it is pending as a provider stall.
|
|
109
|
+
*/
|
|
110
|
+
async trackLocalWork(work) {
|
|
111
|
+
this.#pendingLocalWork++;
|
|
112
|
+
try {
|
|
113
|
+
return await work;
|
|
114
|
+
} finally {
|
|
115
|
+
this.#pendingLocalWork--;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
var AssistantMessageEventStream = class extends EventStream {
|
|
120
|
+
constructor() {
|
|
121
|
+
super((event) => event.type === "done" || event.type === "error", (event) => {
|
|
122
|
+
if (event.type === "done") return event.message;
|
|
123
|
+
else if (event.type === "error") return event.error;
|
|
124
|
+
throw new ProviderResponseError("Unexpected event type for final result", { kind: "envelope" });
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
push(event) {
|
|
128
|
+
if (this.done) return;
|
|
129
|
+
if (event.type === "error" && event.error.stopReason === "error") classifyMessage(event.error);
|
|
130
|
+
if (this.isComplete(event)) {
|
|
131
|
+
this.done = true;
|
|
132
|
+
this.resultSettled = true;
|
|
133
|
+
this.resolveFinalResult(this.extractResult(event));
|
|
134
|
+
}
|
|
135
|
+
this.deliver(event);
|
|
136
|
+
}
|
|
137
|
+
end(result) {
|
|
138
|
+
this.done = true;
|
|
139
|
+
if (result !== void 0) {
|
|
140
|
+
if (result.stopReason === "error") classifyMessage(result);
|
|
141
|
+
this.resultSettled = true;
|
|
142
|
+
this.resolveFinalResult(result);
|
|
143
|
+
} else if (!this.resultSettled) {
|
|
144
|
+
this.resultSettled = true;
|
|
145
|
+
this.rejectFinalResult(new ProviderResponseError("Stream ended without a final result", { kind: "envelope" }));
|
|
146
|
+
}
|
|
147
|
+
this.endWaiting();
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
//#endregion
|
|
151
|
+
export { AssistantMessageEventStream as t };
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { installBunShim as __installBunShim } from "./bun-shim.mjs";
|
|
2
|
+
__installBunShim();
|
|
3
|
+
import { C as classifyMessage, s as ProviderResponseError } from "./error-Dd8DIqs-.mjs";
|
|
4
|
+
//#region node_modules/.pnpm/@oh-my-pi+pi-ai@17.3.5/node_modules/@oh-my-pi/pi-ai/src/utils/event-stream.ts
|
|
5
|
+
var EventStream = class {
|
|
6
|
+
queue = [];
|
|
7
|
+
waiting = [];
|
|
8
|
+
done = false;
|
|
9
|
+
/** True once finalResultPromise has been resolved or rejected. */
|
|
10
|
+
resultSettled = false;
|
|
11
|
+
#failed = false;
|
|
12
|
+
#error = void 0;
|
|
13
|
+
/**
|
|
14
|
+
* Consumer-side local operations currently in flight for this stream — a
|
|
15
|
+
* provider transport waiting on a server-requested local tool bridge
|
|
16
|
+
* (e.g. the Cursor exec channel) before it can send the result upstream.
|
|
17
|
+
* While non-zero, event silence is attributable to our own pending work,
|
|
18
|
+
* not a provider stall; idle watchdogs consult {@link hasPendingLocalWork}.
|
|
19
|
+
*/
|
|
20
|
+
#pendingLocalWork = 0;
|
|
21
|
+
finalResultPromise;
|
|
22
|
+
resolveFinalResult;
|
|
23
|
+
rejectFinalResult;
|
|
24
|
+
isComplete;
|
|
25
|
+
extractResult;
|
|
26
|
+
constructor(isComplete, extractResult) {
|
|
27
|
+
const { promise, resolve, reject } = Promise.withResolvers();
|
|
28
|
+
promise.catch(() => {});
|
|
29
|
+
this.finalResultPromise = promise;
|
|
30
|
+
this.resolveFinalResult = resolve;
|
|
31
|
+
this.rejectFinalResult = reject;
|
|
32
|
+
this.isComplete = isComplete;
|
|
33
|
+
this.extractResult = extractResult;
|
|
34
|
+
}
|
|
35
|
+
push(event) {
|
|
36
|
+
if (this.done) return;
|
|
37
|
+
if (this.isComplete(event)) {
|
|
38
|
+
this.done = true;
|
|
39
|
+
this.resultSettled = true;
|
|
40
|
+
this.resolveFinalResult(this.extractResult(event));
|
|
41
|
+
}
|
|
42
|
+
const waiter = this.waiting.shift();
|
|
43
|
+
if (waiter) waiter.resolve({
|
|
44
|
+
value: event,
|
|
45
|
+
done: false
|
|
46
|
+
});
|
|
47
|
+
else this.queue.push(event);
|
|
48
|
+
}
|
|
49
|
+
deliver(event) {
|
|
50
|
+
const waiter = this.waiting.shift();
|
|
51
|
+
if (waiter) waiter.resolve({
|
|
52
|
+
value: event,
|
|
53
|
+
done: false
|
|
54
|
+
});
|
|
55
|
+
else this.queue.push(event);
|
|
56
|
+
}
|
|
57
|
+
end(result) {
|
|
58
|
+
this.done = true;
|
|
59
|
+
if (result !== void 0) {
|
|
60
|
+
this.resultSettled = true;
|
|
61
|
+
this.resolveFinalResult(result);
|
|
62
|
+
} else if (!this.resultSettled) {
|
|
63
|
+
this.resultSettled = true;
|
|
64
|
+
this.rejectFinalResult(new ProviderResponseError("Stream ended without a final result", { kind: "envelope" }));
|
|
65
|
+
}
|
|
66
|
+
while (this.waiting.length > 0) this.waiting.shift().resolve({
|
|
67
|
+
value: void 0,
|
|
68
|
+
done: true
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
endWaiting() {
|
|
72
|
+
while (this.waiting.length > 0) this.waiting.shift().resolve({
|
|
73
|
+
value: void 0,
|
|
74
|
+
done: true
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
fail(err) {
|
|
78
|
+
if (this.done) return;
|
|
79
|
+
this.done = true;
|
|
80
|
+
this.#failed = true;
|
|
81
|
+
this.#error = err;
|
|
82
|
+
this.resultSettled = true;
|
|
83
|
+
this.rejectFinalResult(err);
|
|
84
|
+
while (this.waiting.length > 0) this.waiting.shift().reject(err);
|
|
85
|
+
}
|
|
86
|
+
async *[Symbol.asyncIterator]() {
|
|
87
|
+
while (true) if (this.queue.length > 0) yield this.queue.shift();
|
|
88
|
+
else if (this.#failed) throw this.#error;
|
|
89
|
+
else if (this.done) return;
|
|
90
|
+
else {
|
|
91
|
+
const result = await new Promise((resolve, reject) => this.waiting.push({
|
|
92
|
+
resolve,
|
|
93
|
+
reject
|
|
94
|
+
}));
|
|
95
|
+
if (result.done) return;
|
|
96
|
+
yield result.value;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
result() {
|
|
100
|
+
return this.finalResultPromise;
|
|
101
|
+
}
|
|
102
|
+
/** True while local work tracked via {@link trackLocalWork} is pending. */
|
|
103
|
+
get hasPendingLocalWork() {
|
|
104
|
+
return this.#pendingLocalWork > 0;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Track a local-work promise so idle watchdogs on this stream do not treat
|
|
108
|
+
* the event silence while it is pending as a provider stall.
|
|
109
|
+
*/
|
|
110
|
+
async trackLocalWork(work) {
|
|
111
|
+
this.#pendingLocalWork++;
|
|
112
|
+
try {
|
|
113
|
+
return await work;
|
|
114
|
+
} finally {
|
|
115
|
+
this.#pendingLocalWork--;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
var AssistantMessageEventStream = class extends EventStream {
|
|
120
|
+
constructor() {
|
|
121
|
+
super((event) => event.type === "done" || event.type === "error", (event) => {
|
|
122
|
+
if (event.type === "done") return event.message;
|
|
123
|
+
else if (event.type === "error") return event.error;
|
|
124
|
+
throw new ProviderResponseError("Unexpected event type for final result", { kind: "envelope" });
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
push(event) {
|
|
128
|
+
if (this.done) return;
|
|
129
|
+
if (event.type === "error" && event.error.stopReason === "error") classifyMessage(event.error);
|
|
130
|
+
if (this.isComplete(event)) {
|
|
131
|
+
this.done = true;
|
|
132
|
+
this.resultSettled = true;
|
|
133
|
+
this.resolveFinalResult(this.extractResult(event));
|
|
134
|
+
}
|
|
135
|
+
this.deliver(event);
|
|
136
|
+
}
|
|
137
|
+
end(result) {
|
|
138
|
+
this.done = true;
|
|
139
|
+
if (result !== void 0) {
|
|
140
|
+
if (result.stopReason === "error") classifyMessage(result);
|
|
141
|
+
this.resultSettled = true;
|
|
142
|
+
this.resolveFinalResult(result);
|
|
143
|
+
} else if (!this.resultSettled) {
|
|
144
|
+
this.resultSettled = true;
|
|
145
|
+
this.rejectFinalResult(new ProviderResponseError("Stream ended without a final result", { kind: "envelope" }));
|
|
146
|
+
}
|
|
147
|
+
this.endWaiting();
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
//#endregion
|
|
151
|
+
export { AssistantMessageEventStream as t };
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { installBunShim as __installBunShim } from "./bun-shim.mjs";
|
|
2
|
+
__installBunShim();
|
|
3
|
+
import { C as classifyMessage, s as ProviderResponseError } from "./error-yCSG0mGC.mjs";
|
|
4
|
+
//#region node_modules/.pnpm/@oh-my-pi+pi-ai@17.3.5/node_modules/@oh-my-pi/pi-ai/src/utils/event-stream.ts
|
|
5
|
+
var EventStream = class {
|
|
6
|
+
queue = [];
|
|
7
|
+
waiting = [];
|
|
8
|
+
done = false;
|
|
9
|
+
/** True once finalResultPromise has been resolved or rejected. */
|
|
10
|
+
resultSettled = false;
|
|
11
|
+
#failed = false;
|
|
12
|
+
#error = void 0;
|
|
13
|
+
/**
|
|
14
|
+
* Consumer-side local operations currently in flight for this stream — a
|
|
15
|
+
* provider transport waiting on a server-requested local tool bridge
|
|
16
|
+
* (e.g. the Cursor exec channel) before it can send the result upstream.
|
|
17
|
+
* While non-zero, event silence is attributable to our own pending work,
|
|
18
|
+
* not a provider stall; idle watchdogs consult {@link hasPendingLocalWork}.
|
|
19
|
+
*/
|
|
20
|
+
#pendingLocalWork = 0;
|
|
21
|
+
finalResultPromise;
|
|
22
|
+
resolveFinalResult;
|
|
23
|
+
rejectFinalResult;
|
|
24
|
+
isComplete;
|
|
25
|
+
extractResult;
|
|
26
|
+
constructor(isComplete, extractResult) {
|
|
27
|
+
const { promise, resolve, reject } = Promise.withResolvers();
|
|
28
|
+
promise.catch(() => {});
|
|
29
|
+
this.finalResultPromise = promise;
|
|
30
|
+
this.resolveFinalResult = resolve;
|
|
31
|
+
this.rejectFinalResult = reject;
|
|
32
|
+
this.isComplete = isComplete;
|
|
33
|
+
this.extractResult = extractResult;
|
|
34
|
+
}
|
|
35
|
+
push(event) {
|
|
36
|
+
if (this.done) return;
|
|
37
|
+
if (this.isComplete(event)) {
|
|
38
|
+
this.done = true;
|
|
39
|
+
this.resultSettled = true;
|
|
40
|
+
this.resolveFinalResult(this.extractResult(event));
|
|
41
|
+
}
|
|
42
|
+
const waiter = this.waiting.shift();
|
|
43
|
+
if (waiter) waiter.resolve({
|
|
44
|
+
value: event,
|
|
45
|
+
done: false
|
|
46
|
+
});
|
|
47
|
+
else this.queue.push(event);
|
|
48
|
+
}
|
|
49
|
+
deliver(event) {
|
|
50
|
+
const waiter = this.waiting.shift();
|
|
51
|
+
if (waiter) waiter.resolve({
|
|
52
|
+
value: event,
|
|
53
|
+
done: false
|
|
54
|
+
});
|
|
55
|
+
else this.queue.push(event);
|
|
56
|
+
}
|
|
57
|
+
end(result) {
|
|
58
|
+
this.done = true;
|
|
59
|
+
if (result !== void 0) {
|
|
60
|
+
this.resultSettled = true;
|
|
61
|
+
this.resolveFinalResult(result);
|
|
62
|
+
} else if (!this.resultSettled) {
|
|
63
|
+
this.resultSettled = true;
|
|
64
|
+
this.rejectFinalResult(new ProviderResponseError("Stream ended without a final result", { kind: "envelope" }));
|
|
65
|
+
}
|
|
66
|
+
while (this.waiting.length > 0) this.waiting.shift().resolve({
|
|
67
|
+
value: void 0,
|
|
68
|
+
done: true
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
endWaiting() {
|
|
72
|
+
while (this.waiting.length > 0) this.waiting.shift().resolve({
|
|
73
|
+
value: void 0,
|
|
74
|
+
done: true
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
fail(err) {
|
|
78
|
+
if (this.done) return;
|
|
79
|
+
this.done = true;
|
|
80
|
+
this.#failed = true;
|
|
81
|
+
this.#error = err;
|
|
82
|
+
this.resultSettled = true;
|
|
83
|
+
this.rejectFinalResult(err);
|
|
84
|
+
while (this.waiting.length > 0) this.waiting.shift().reject(err);
|
|
85
|
+
}
|
|
86
|
+
async *[Symbol.asyncIterator]() {
|
|
87
|
+
while (true) if (this.queue.length > 0) yield this.queue.shift();
|
|
88
|
+
else if (this.#failed) throw this.#error;
|
|
89
|
+
else if (this.done) return;
|
|
90
|
+
else {
|
|
91
|
+
const result = await new Promise((resolve, reject) => this.waiting.push({
|
|
92
|
+
resolve,
|
|
93
|
+
reject
|
|
94
|
+
}));
|
|
95
|
+
if (result.done) return;
|
|
96
|
+
yield result.value;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
result() {
|
|
100
|
+
return this.finalResultPromise;
|
|
101
|
+
}
|
|
102
|
+
/** True while local work tracked via {@link trackLocalWork} is pending. */
|
|
103
|
+
get hasPendingLocalWork() {
|
|
104
|
+
return this.#pendingLocalWork > 0;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Track a local-work promise so idle watchdogs on this stream do not treat
|
|
108
|
+
* the event silence while it is pending as a provider stall.
|
|
109
|
+
*/
|
|
110
|
+
async trackLocalWork(work) {
|
|
111
|
+
this.#pendingLocalWork++;
|
|
112
|
+
try {
|
|
113
|
+
return await work;
|
|
114
|
+
} finally {
|
|
115
|
+
this.#pendingLocalWork--;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
var AssistantMessageEventStream = class extends EventStream {
|
|
120
|
+
constructor() {
|
|
121
|
+
super((event) => event.type === "done" || event.type === "error", (event) => {
|
|
122
|
+
if (event.type === "done") return event.message;
|
|
123
|
+
else if (event.type === "error") return event.error;
|
|
124
|
+
throw new ProviderResponseError("Unexpected event type for final result", { kind: "envelope" });
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
push(event) {
|
|
128
|
+
if (this.done) return;
|
|
129
|
+
if (event.type === "error" && event.error.stopReason === "error") classifyMessage(event.error);
|
|
130
|
+
if (this.isComplete(event)) {
|
|
131
|
+
this.done = true;
|
|
132
|
+
this.resultSettled = true;
|
|
133
|
+
this.resolveFinalResult(this.extractResult(event));
|
|
134
|
+
}
|
|
135
|
+
this.deliver(event);
|
|
136
|
+
}
|
|
137
|
+
end(result) {
|
|
138
|
+
this.done = true;
|
|
139
|
+
if (result !== void 0) {
|
|
140
|
+
if (result.stopReason === "error") classifyMessage(result);
|
|
141
|
+
this.resultSettled = true;
|
|
142
|
+
this.resolveFinalResult(result);
|
|
143
|
+
} else if (!this.resultSettled) {
|
|
144
|
+
this.resultSettled = true;
|
|
145
|
+
this.rejectFinalResult(new ProviderResponseError("Stream ended without a final result", { kind: "envelope" }));
|
|
146
|
+
}
|
|
147
|
+
this.endWaiting();
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
//#endregion
|
|
151
|
+
export { AssistantMessageEventStream as t };
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { installBunShim as __installBunShim } from "./bun-shim.mjs";
|
|
2
|
+
__installBunShim();
|
|
3
|
+
import * as fsp from "fs/promises";
|
|
4
|
+
//#region \0rolldown/runtime.js
|
|
5
|
+
var __defProp = Object.defineProperty;
|
|
6
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __exportAll = (all, no_symbols) => {
|
|
10
|
+
let target = {};
|
|
11
|
+
for (var name in all) __defProp(target, name, {
|
|
12
|
+
get: all[name],
|
|
13
|
+
enumerable: true
|
|
14
|
+
});
|
|
15
|
+
if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
16
|
+
return target;
|
|
17
|
+
};
|
|
18
|
+
var __copyProps = (to, from, except, desc) => {
|
|
19
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
20
|
+
key = keys[i];
|
|
21
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
22
|
+
get: ((k) => from[k]).bind(null, key),
|
|
23
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
return to;
|
|
27
|
+
};
|
|
28
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
29
|
+
//#endregion
|
|
30
|
+
//#region src/tools/shared/fs-promises-shim.ts
|
|
31
|
+
/**
|
|
32
|
+
* DSH node:fs/promises shim.
|
|
33
|
+
*
|
|
34
|
+
* OMP tool code imports `node:fs/promises` and calls `fs.exists(path)`, a
|
|
35
|
+
* Bun-only extension that Node's `fs/promises` does not provide. This module
|
|
36
|
+
* re-exports the whole Node `fs/promises` API and adds the missing `exists`.
|
|
37
|
+
*
|
|
38
|
+
* NOTE: the import MUST be `from 'fs/promises'` (no `node:` prefix) so the
|
|
39
|
+
* tsdown alias for `node:fs/promises` does not recursively substitute its own
|
|
40
|
+
* target back onto itself.
|
|
41
|
+
*/
|
|
42
|
+
var fs_promises_shim_exports = /* @__PURE__ */ __exportAll({ exists: () => exists });
|
|
43
|
+
import * as import_fs_promises from "fs/promises";
|
|
44
|
+
__reExport(fs_promises_shim_exports, import_fs_promises);
|
|
45
|
+
/** Bun's `node:fs/promises` extension: `exists(path)` → `Promise<boolean>`.
|
|
46
|
+
* Bun swallows every stat error, not just ENOENT — ENAMETOOLONG on a 60k-char
|
|
47
|
+
* path also yields false (probe audit-probes/S15/s15-exists4.ts). */
|
|
48
|
+
async function exists(path) {
|
|
49
|
+
try {
|
|
50
|
+
await fsp.stat(path);
|
|
51
|
+
return true;
|
|
52
|
+
} catch {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//#endregion
|
|
57
|
+
export { fs_promises_shim_exports as n, __exportAll as r, exists as t };
|