newcraw 1.0.0
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/LICENSE +201 -0
- package/README.md +692 -0
- package/README.zh-CN.md +338 -0
- package/cli-acp.js +82 -0
- package/cli.js +105 -0
- package/dist/REPL-74GZVSMY.js +42 -0
- package/dist/REPL-74GZVSMY.js.map +7 -0
- package/dist/acp-A55ZRIPP.js +1357 -0
- package/dist/acp-A55ZRIPP.js.map +7 -0
- package/dist/agentsValidate-XWFIEHJ2.js +373 -0
- package/dist/agentsValidate-XWFIEHJ2.js.map +7 -0
- package/dist/ask-4ACYU23S.js +126 -0
- package/dist/ask-4ACYU23S.js.map +7 -0
- package/dist/autoUpdater-O2WHHSGP.js +17 -0
- package/dist/autoUpdater-O2WHHSGP.js.map +7 -0
- package/dist/chunk-2UO3BFZH.js +16 -0
- package/dist/chunk-2UO3BFZH.js.map +7 -0
- package/dist/chunk-3C73U2IU.js +2970 -0
- package/dist/chunk-3C73U2IU.js.map +7 -0
- package/dist/chunk-3U5X4VWP.js +2613 -0
- package/dist/chunk-3U5X4VWP.js.map +7 -0
- package/dist/chunk-755HIAI3.js +95 -0
- package/dist/chunk-755HIAI3.js.map +7 -0
- package/dist/chunk-7ZFLZNOW.js +21 -0
- package/dist/chunk-7ZFLZNOW.js.map +7 -0
- package/dist/chunk-A44DGORI.js +49 -0
- package/dist/chunk-A44DGORI.js.map +7 -0
- package/dist/chunk-AXWJI6N5.js +11 -0
- package/dist/chunk-AXWJI6N5.js.map +7 -0
- package/dist/chunk-B26ZUMJI.js +515 -0
- package/dist/chunk-B26ZUMJI.js.map +7 -0
- package/dist/chunk-BHNQGSLO.js +96 -0
- package/dist/chunk-BHNQGSLO.js.map +7 -0
- package/dist/chunk-BUI6KGVA.js +164 -0
- package/dist/chunk-BUI6KGVA.js.map +7 -0
- package/dist/chunk-DY5D4SS7.js +936 -0
- package/dist/chunk-DY5D4SS7.js.map +7 -0
- package/dist/chunk-EENI5HG7.js +498 -0
- package/dist/chunk-EENI5HG7.js.map +7 -0
- package/dist/chunk-EXPWPWA4.js +654 -0
- package/dist/chunk-EXPWPWA4.js.map +7 -0
- package/dist/chunk-FHOCKJOW.js +766 -0
- package/dist/chunk-FHOCKJOW.js.map +7 -0
- package/dist/chunk-GPKVTIYJ.js +191 -0
- package/dist/chunk-GPKVTIYJ.js.map +7 -0
- package/dist/chunk-H5BCUDEN.js +794 -0
- package/dist/chunk-H5BCUDEN.js.map +7 -0
- package/dist/chunk-INJSFEKL.js +47 -0
- package/dist/chunk-INJSFEKL.js.map +7 -0
- package/dist/chunk-JX5ZQYTQ.js +12 -0
- package/dist/chunk-JX5ZQYTQ.js.map +7 -0
- package/dist/chunk-KQSHIOZK.js +24 -0
- package/dist/chunk-KQSHIOZK.js.map +7 -0
- package/dist/chunk-L6WKZEK4.js +1609 -0
- package/dist/chunk-L6WKZEK4.js.map +7 -0
- package/dist/chunk-LC4CL3YJ.js +124 -0
- package/dist/chunk-LC4CL3YJ.js.map +7 -0
- package/dist/chunk-MXSB7IOZ.js +1097 -0
- package/dist/chunk-MXSB7IOZ.js.map +7 -0
- package/dist/chunk-N5OHRWG2.js +249 -0
- package/dist/chunk-N5OHRWG2.js.map +7 -0
- package/dist/chunk-NQE3GGE3.js +19 -0
- package/dist/chunk-NQE3GGE3.js.map +7 -0
- package/dist/chunk-QF6YDTME.js +139 -0
- package/dist/chunk-QF6YDTME.js.map +7 -0
- package/dist/chunk-QTX7AJFQ.js +240 -0
- package/dist/chunk-QTX7AJFQ.js.map +7 -0
- package/dist/chunk-S3ZAJPYZ.js +515 -0
- package/dist/chunk-S3ZAJPYZ.js.map +7 -0
- package/dist/chunk-S5Y5IF2H.js +735 -0
- package/dist/chunk-S5Y5IF2H.js.map +7 -0
- package/dist/chunk-SBE6Y327.js +836 -0
- package/dist/chunk-SBE6Y327.js.map +7 -0
- package/dist/chunk-T25Z3JMG.js +17 -0
- package/dist/chunk-T25Z3JMG.js.map +7 -0
- package/dist/chunk-T6VKT5FR.js +196 -0
- package/dist/chunk-T6VKT5FR.js.map +7 -0
- package/dist/chunk-TSGGSPYD.js +151 -0
- package/dist/chunk-TSGGSPYD.js.map +7 -0
- package/dist/chunk-TY3CCSAT.js +24 -0
- package/dist/chunk-TY3CCSAT.js.map +7 -0
- package/dist/chunk-U224EQOS.js +34 -0
- package/dist/chunk-U224EQOS.js.map +7 -0
- package/dist/chunk-U7S4MEYP.js +95 -0
- package/dist/chunk-U7S4MEYP.js.map +7 -0
- package/dist/chunk-ULVAAZ2U.js +30517 -0
- package/dist/chunk-ULVAAZ2U.js.map +7 -0
- package/dist/chunk-WWLFALT7.js +128 -0
- package/dist/chunk-WWLFALT7.js.map +7 -0
- package/dist/chunk-XJQATPV7.js +23 -0
- package/dist/chunk-XJQATPV7.js.map +7 -0
- package/dist/chunk-XMGUQHMF.js +72 -0
- package/dist/chunk-XMGUQHMF.js.map +7 -0
- package/dist/chunk-XOMW5QTV.js +472 -0
- package/dist/chunk-XOMW5QTV.js.map +7 -0
- package/dist/chunk-Y7VZUSIM.js +1256 -0
- package/dist/chunk-Y7VZUSIM.js.map +7 -0
- package/dist/chunk-YVNBXMIP.js +511 -0
- package/dist/chunk-YVNBXMIP.js.map +7 -0
- package/dist/chunk-YYPJWXSA.js +145 -0
- package/dist/chunk-YYPJWXSA.js.map +7 -0
- package/dist/cli-BW34VKCN.js +3917 -0
- package/dist/cli-BW34VKCN.js.map +7 -0
- package/dist/commands-4CNZZBTE.js +46 -0
- package/dist/commands-4CNZZBTE.js.map +7 -0
- package/dist/config-XKRCXCSS.js +81 -0
- package/dist/config-XKRCXCSS.js.map +7 -0
- package/dist/context-T5CR3RP6.js +30 -0
- package/dist/context-T5CR3RP6.js.map +7 -0
- package/dist/costTracker-2G3ZI2JF.js +19 -0
- package/dist/costTracker-2G3ZI2JF.js.map +7 -0
- package/dist/customCommands-OCUMXZDN.js +25 -0
- package/dist/customCommands-OCUMXZDN.js.map +7 -0
- package/dist/env-DYDNFB4D.js +22 -0
- package/dist/env-DYDNFB4D.js.map +7 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +7 -0
- package/dist/kodeAgentSessionId-KTGFX2BE.js +13 -0
- package/dist/kodeAgentSessionId-KTGFX2BE.js.map +7 -0
- package/dist/kodeAgentSessionLoad-ZKR2VGHO.js +18 -0
- package/dist/kodeAgentSessionLoad-ZKR2VGHO.js.map +7 -0
- package/dist/kodeAgentSessionResume-NFZCTIBZ.js +16 -0
- package/dist/kodeAgentSessionResume-NFZCTIBZ.js.map +7 -0
- package/dist/kodeAgentStreamJson-VIXFTYL5.js +13 -0
- package/dist/kodeAgentStreamJson-VIXFTYL5.js.map +7 -0
- package/dist/kodeAgentStreamJsonSession-6CKTK6AF.js +131 -0
- package/dist/kodeAgentStreamJsonSession-6CKTK6AF.js.map +7 -0
- package/dist/kodeAgentStructuredStdio-SI5C7AAD.js +10 -0
- package/dist/kodeAgentStructuredStdio-SI5C7AAD.js.map +7 -0
- package/dist/kodeHooks-5RXJRDCY.js +36 -0
- package/dist/kodeHooks-5RXJRDCY.js.map +7 -0
- package/dist/llm-QJA3QMXR.js +3118 -0
- package/dist/llm-QJA3QMXR.js.map +7 -0
- package/dist/llmLazy-VCEV22DK.js +15 -0
- package/dist/llmLazy-VCEV22DK.js.map +7 -0
- package/dist/loader-CKNYMPCZ.js +28 -0
- package/dist/loader-CKNYMPCZ.js.map +7 -0
- package/dist/mcp-2SZTOKZX.js +49 -0
- package/dist/mcp-2SZTOKZX.js.map +7 -0
- package/dist/mentionProcessor-O7NWOH6S.js +211 -0
- package/dist/mentionProcessor-O7NWOH6S.js.map +7 -0
- package/dist/messages-PRKIHXMK.js +65 -0
- package/dist/messages-PRKIHXMK.js.map +7 -0
- package/dist/model-WG6RA25G.js +30 -0
- package/dist/model-WG6RA25G.js.map +7 -0
- package/dist/openai-VQLYFQ6B.js +29 -0
- package/dist/openai-VQLYFQ6B.js.map +7 -0
- package/dist/outputStyles-VQ57E3B6.js +28 -0
- package/dist/outputStyles-VQ57E3B6.js.map +7 -0
- package/dist/package.json +4 -0
- package/dist/pluginRuntime-NWOLU73K.js +218 -0
- package/dist/pluginRuntime-NWOLU73K.js.map +7 -0
- package/dist/pluginValidation-R7B6QQ6T.js +17 -0
- package/dist/pluginValidation-R7B6QQ6T.js.map +7 -0
- package/dist/prompts-W4V4Y67M.js +48 -0
- package/dist/prompts-W4V4Y67M.js.map +7 -0
- package/dist/query-GFFKKURO.js +50 -0
- package/dist/query-GFFKKURO.js.map +7 -0
- package/dist/responsesStreaming-2AIT6GHG.js +10 -0
- package/dist/responsesStreaming-2AIT6GHG.js.map +7 -0
- package/dist/ripgrep-SVBVC46X.js +17 -0
- package/dist/ripgrep-SVBVC46X.js.map +7 -0
- package/dist/skillMarketplace-5Z7Y6FTD.js +37 -0
- package/dist/skillMarketplace-5Z7Y6FTD.js.map +7 -0
- package/dist/state-X3R7BV7A.js +16 -0
- package/dist/state-X3R7BV7A.js.map +7 -0
- package/dist/theme-4VA64EWF.js +14 -0
- package/dist/theme-4VA64EWF.js.map +7 -0
- package/dist/toolPermissionContext-I3IXPVED.js +17 -0
- package/dist/toolPermissionContext-I3IXPVED.js.map +7 -0
- package/dist/toolPermissionSettings-35DJQEKG.js +18 -0
- package/dist/toolPermissionSettings-35DJQEKG.js.map +7 -0
- package/dist/tools-USOBTPOI.js +47 -0
- package/dist/tools-USOBTPOI.js.map +7 -0
- package/dist/userInput-NID2UYXG.js +312 -0
- package/dist/userInput-NID2UYXG.js.map +7 -0
- package/dist/uuid-VA3KVASX.js +9 -0
- package/dist/uuid-VA3KVASX.js.map +7 -0
- package/dist/yoga.wasm +0 -0
- package/package.json +135 -0
- package/scripts/binary-utils.cjs +61 -0
- package/scripts/cli-acp-wrapper.cjs +82 -0
- package/scripts/cli-wrapper.cjs +105 -0
- package/scripts/postinstall.js +144 -0
- package/web/dist/assets/index-COAJqX1Z.css +1 -0
- package/web/dist/assets/index-CzS_4LmC.js +179 -0
- package/web/dist/index.html +14 -0
- package/yoga.wasm +0 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { createRequire as __newcrawCreateRequire } from "node:module";
|
|
2
|
+
const require = __newcrawCreateRequire(import.meta.url);
|
|
3
|
+
import {
|
|
4
|
+
PRODUCT_NAME,
|
|
5
|
+
execFileNoThrow,
|
|
6
|
+
logError
|
|
7
|
+
} from "./chunk-3C73U2IU.js";
|
|
8
|
+
import {
|
|
9
|
+
MACRO
|
|
10
|
+
} from "./chunk-TSGGSPYD.js";
|
|
11
|
+
|
|
12
|
+
// src/utils/session/autoUpdater.ts
|
|
13
|
+
async function getSemver() {
|
|
14
|
+
const mod = await import("semver");
|
|
15
|
+
return mod?.default ?? mod;
|
|
16
|
+
}
|
|
17
|
+
async function assertMinVersion() {
|
|
18
|
+
try {
|
|
19
|
+
const versionConfig = { minVersion: "0.0.0" };
|
|
20
|
+
if (versionConfig.minVersion) {
|
|
21
|
+
const { lt } = await getSemver();
|
|
22
|
+
if (!lt(MACRO.VERSION, versionConfig.minVersion)) return;
|
|
23
|
+
const suggestions = await getUpdateCommandSuggestions();
|
|
24
|
+
process.stderr.write(
|
|
25
|
+
`Your ${PRODUCT_NAME} version ${MACRO.VERSION} is below the minimum supported ${versionConfig.minVersion}.
|
|
26
|
+
Update using one of:
|
|
27
|
+
` + suggestions.map((c) => ` ${c}`).join("\n") + "\n"
|
|
28
|
+
);
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
} catch (error) {
|
|
32
|
+
logError(`Error checking minimum version: ${error}`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
async function getLatestVersion() {
|
|
36
|
+
try {
|
|
37
|
+
const abortController = new AbortController();
|
|
38
|
+
setTimeout(() => abortController.abort(), 5e3);
|
|
39
|
+
const result = await execFileNoThrow(
|
|
40
|
+
"npm",
|
|
41
|
+
["view", MACRO.PACKAGE_URL, "version"],
|
|
42
|
+
abortController.signal
|
|
43
|
+
);
|
|
44
|
+
if (result.code === 0) {
|
|
45
|
+
const v = result.stdout.trim();
|
|
46
|
+
if (v) return v;
|
|
47
|
+
}
|
|
48
|
+
} catch {
|
|
49
|
+
}
|
|
50
|
+
try {
|
|
51
|
+
const controller = new AbortController();
|
|
52
|
+
const timer = setTimeout(() => controller.abort(), 5e3);
|
|
53
|
+
const res = await fetch(
|
|
54
|
+
`https://registry.npmjs.org/${encodeURIComponent(MACRO.PACKAGE_URL)}`,
|
|
55
|
+
{
|
|
56
|
+
method: "GET",
|
|
57
|
+
headers: {
|
|
58
|
+
Accept: "application/vnd.npm.install-v1+json",
|
|
59
|
+
"User-Agent": `${PRODUCT_NAME}/${MACRO.VERSION}`
|
|
60
|
+
},
|
|
61
|
+
signal: controller.signal
|
|
62
|
+
}
|
|
63
|
+
);
|
|
64
|
+
clearTimeout(timer);
|
|
65
|
+
if (!res.ok) return null;
|
|
66
|
+
const json = await res.json().catch(() => null);
|
|
67
|
+
const latest = json && json["dist-tags"] && json["dist-tags"].latest;
|
|
68
|
+
return typeof latest === "string" ? latest : null;
|
|
69
|
+
} catch {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
async function getUpdateCommandSuggestions() {
|
|
74
|
+
return [
|
|
75
|
+
`bun add -g ${MACRO.PACKAGE_URL}@latest`,
|
|
76
|
+
`npm install -g ${MACRO.PACKAGE_URL}@latest`
|
|
77
|
+
];
|
|
78
|
+
}
|
|
79
|
+
async function checkAndNotifyUpdate() {
|
|
80
|
+
try {
|
|
81
|
+
if (process.env.NODE_ENV === "test") return;
|
|
82
|
+
const [
|
|
83
|
+
{ isAutoUpdaterDisabled, getGlobalConfig, saveGlobalConfig },
|
|
84
|
+
{ env }
|
|
85
|
+
] = await Promise.all([import("./config-XKRCXCSS.js"), import("./env-DYDNFB4D.js")]);
|
|
86
|
+
if (await isAutoUpdaterDisabled()) return;
|
|
87
|
+
if (await env.getIsDocker()) return;
|
|
88
|
+
if (!await env.hasInternetAccess()) return;
|
|
89
|
+
const config = getGlobalConfig();
|
|
90
|
+
const now = Date.now();
|
|
91
|
+
const DAY_MS = 24 * 60 * 60 * 1e3;
|
|
92
|
+
const lastCheck = Number(config.lastUpdateCheckAt || 0);
|
|
93
|
+
if (lastCheck && now - lastCheck < DAY_MS) return;
|
|
94
|
+
const latest = await getLatestVersion();
|
|
95
|
+
if (!latest) {
|
|
96
|
+
saveGlobalConfig({ ...config, lastUpdateCheckAt: now });
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
const { gt } = await getSemver();
|
|
100
|
+
if (gt(latest, MACRO.VERSION)) {
|
|
101
|
+
saveGlobalConfig({
|
|
102
|
+
...config,
|
|
103
|
+
lastUpdateCheckAt: now,
|
|
104
|
+
lastSuggestedVersion: latest
|
|
105
|
+
});
|
|
106
|
+
const suggestions = await getUpdateCommandSuggestions();
|
|
107
|
+
process.stderr.write(
|
|
108
|
+
[
|
|
109
|
+
`New version available: ${latest} (current: ${MACRO.VERSION})`,
|
|
110
|
+
"Run the following command to update:",
|
|
111
|
+
...suggestions.map((command) => ` ${command}`),
|
|
112
|
+
""
|
|
113
|
+
].join("\n")
|
|
114
|
+
);
|
|
115
|
+
} else {
|
|
116
|
+
saveGlobalConfig({ ...config, lastUpdateCheckAt: now });
|
|
117
|
+
}
|
|
118
|
+
} catch (error) {
|
|
119
|
+
logError(`update-notify: ${error}`);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export {
|
|
124
|
+
assertMinVersion,
|
|
125
|
+
getLatestVersion,
|
|
126
|
+
getUpdateCommandSuggestions,
|
|
127
|
+
checkAndNotifyUpdate
|
|
128
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/utils/session/autoUpdater.ts"],
|
|
4
|
+
"sourcesContent": ["import { execFileNoThrow } from '@utils/system/execFileNoThrow'\r\nimport { logError } from '@utils/log'\r\n\r\nimport { MACRO } from '@constants/macros'\r\nimport { PRODUCT_NAME } from '@constants/product'\r\n\r\nasync function getSemver() {\r\n const mod: any = await import('semver')\r\n return (mod?.default ?? mod) as {\r\n lt: (a: string, b: string) => boolean\r\n gt: (a: string, b: string) => boolean\r\n }\r\n}\r\n\r\nexport type VersionConfig = {\r\n minVersion: string\r\n}\r\n\r\nexport async function assertMinVersion(): Promise<void> {\r\n try {\r\n const versionConfig: VersionConfig = { minVersion: '0.0.0' }\r\n if (versionConfig.minVersion) {\r\n const { lt } = await getSemver()\r\n if (!lt(MACRO.VERSION, versionConfig.minVersion)) return\r\n\r\n const suggestions = await getUpdateCommandSuggestions()\r\n process.stderr.write(\r\n `Your ${PRODUCT_NAME} version ${MACRO.VERSION} is below the minimum supported ${versionConfig.minVersion}.\\n` +\r\n 'Update using one of:\\n' +\r\n suggestions.map(c => ` ${c}`).join('\\n') +\r\n '\\n',\r\n )\r\n process.exit(1)\r\n }\r\n } catch (error) {\r\n logError(`Error checking minimum version: ${error}`)\r\n }\r\n}\r\n\r\nexport async function getLatestVersion(): Promise<string | null> {\r\n try {\r\n const abortController = new AbortController()\r\n setTimeout(() => abortController.abort(), 5000)\r\n const result = await execFileNoThrow(\r\n 'npm',\r\n ['view', MACRO.PACKAGE_URL, 'version'],\r\n abortController.signal,\r\n )\r\n if (result.code === 0) {\r\n const v = result.stdout.trim()\r\n if (v) return v\r\n }\r\n } catch {}\r\n\r\n\t try {\r\n\t const controller = new AbortController()\r\n\t const timer = setTimeout(() => controller.abort(), 5000)\r\n\t const res = await fetch(\r\n\t `https://registry.npmjs.org/${encodeURIComponent(MACRO.PACKAGE_URL)}`,\r\n\t {\r\n\t method: 'GET',\r\n\t headers: {\r\n\t Accept: 'application/vnd.npm.install-v1+json',\r\n\t 'User-Agent': `${PRODUCT_NAME}/${MACRO.VERSION}`,\r\n\t },\r\n\t signal: controller.signal,\r\n\t },\r\n\t )\r\n\t clearTimeout(timer)\r\n\t if (!res.ok) return null\r\n\t const json: any = await res.json().catch(() => null)\r\n\t const latest = json && json['dist-tags'] && json['dist-tags'].latest\r\n\t return typeof latest === 'string' ? latest : null\r\n\t } catch {\r\n\t return null\r\n\t }\r\n\t}\r\n\r\nexport async function getUpdateCommandSuggestions(): Promise<string[]> {\r\n return [\r\n `bun add -g ${MACRO.PACKAGE_URL}@latest`,\r\n `npm install -g ${MACRO.PACKAGE_URL}@latest`,\r\n ]\r\n}\r\n\r\nexport async function checkAndNotifyUpdate(): Promise<void> {\r\n try {\r\n if (process.env.NODE_ENV === 'test') return\r\n const [\r\n { isAutoUpdaterDisabled, getGlobalConfig, saveGlobalConfig },\r\n { env },\r\n ] = await Promise.all([import('@utils/config'), import('@utils/config/env')])\r\n if (await isAutoUpdaterDisabled()) return\r\n if (await env.getIsDocker()) return\r\n if (!(await env.hasInternetAccess())) return\r\n\r\n const config: any = getGlobalConfig()\r\n const now = Date.now()\r\n const DAY_MS = 24 * 60 * 60 * 1000\r\n const lastCheck = Number(config.lastUpdateCheckAt || 0)\r\n if (lastCheck && now - lastCheck < DAY_MS) return\r\n\r\n const latest = await getLatestVersion()\r\n if (!latest) {\r\n saveGlobalConfig({ ...config, lastUpdateCheckAt: now })\r\n return\r\n }\r\n\r\n const { gt } = await getSemver()\r\n if (gt(latest, MACRO.VERSION)) {\r\n saveGlobalConfig({\r\n ...config,\r\n lastUpdateCheckAt: now,\r\n lastSuggestedVersion: latest,\r\n })\r\n const suggestions = await getUpdateCommandSuggestions()\r\n process.stderr.write(\r\n [\r\n `New version available: ${latest} (current: ${MACRO.VERSION})`,\r\n 'Run the following command to update:',\r\n ...suggestions.map(command => ` ${command}`),\r\n '',\r\n ].join('\\n'),\r\n )\r\n } else {\r\n saveGlobalConfig({ ...config, lastUpdateCheckAt: now })\r\n }\r\n } catch (error) {\r\n logError(`update-notify: ${error}`)\r\n }\r\n}\r\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { createRequire as __newcrawCreateRequire } from "node:module";
|
|
2
|
+
const require = __newcrawCreateRequire(import.meta.url);
|
|
3
|
+
|
|
4
|
+
// src/utils/session/requestStatus.ts
|
|
5
|
+
var current = { kind: "idle", updatedAt: Date.now() };
|
|
6
|
+
var listeners = /* @__PURE__ */ new Set();
|
|
7
|
+
function getRequestStatus() {
|
|
8
|
+
return current;
|
|
9
|
+
}
|
|
10
|
+
function setRequestStatus(status) {
|
|
11
|
+
current = { ...status, updatedAt: Date.now() };
|
|
12
|
+
for (const listener of listeners) listener(current);
|
|
13
|
+
}
|
|
14
|
+
function subscribeRequestStatus(listener) {
|
|
15
|
+
listeners.add(listener);
|
|
16
|
+
return () => listeners.delete(listener);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export {
|
|
20
|
+
getRequestStatus,
|
|
21
|
+
setRequestStatus,
|
|
22
|
+
subscribeRequestStatus
|
|
23
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/utils/session/requestStatus.ts"],
|
|
4
|
+
"sourcesContent": ["export type RequestStatusKind = 'idle' | 'thinking' | 'streaming' | 'tool'\r\n\r\nexport type RequestStatus = {\r\n kind: RequestStatusKind\r\n detail?: string\r\n updatedAt: number\r\n}\r\n\r\nlet current: RequestStatus = { kind: 'idle', updatedAt: Date.now() }\r\nconst listeners = new Set<(status: RequestStatus) => void>()\r\n\r\nexport function getRequestStatus(): RequestStatus {\r\n return current\r\n}\r\n\r\nexport function setRequestStatus(\r\n status: Omit<RequestStatus, 'updatedAt'>,\r\n): void {\r\n current = { ...status, updatedAt: Date.now() }\r\n for (const listener of listeners) listener(current)\r\n}\r\n\r\nexport function subscribeRequestStatus(\r\n listener: (status: RequestStatus) => void,\r\n): () => void {\r\n listeners.add(listener)\r\n return () => listeners.delete(listener)\r\n}\r\n"],
|
|
5
|
+
"mappings": ";;;;AAQA,IAAI,UAAyB,EAAE,MAAM,QAAQ,WAAW,KAAK,IAAI,EAAE;AACnE,IAAM,YAAY,oBAAI,IAAqC;AAEpD,SAAS,mBAAkC;AAChD,SAAO;AACT;AAEO,SAAS,iBACd,QACM;AACN,YAAU,EAAE,GAAG,QAAQ,WAAW,KAAK,IAAI,EAAE;AAC7C,aAAW,YAAY,UAAW,UAAS,OAAO;AACpD;AAEO,SAAS,uBACd,UACY;AACZ,YAAU,IAAI,QAAQ;AACtB,SAAO,MAAM,UAAU,OAAO,QAAQ;AACxC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { createRequire as __newcrawCreateRequire } from "node:module";
|
|
2
|
+
const require = __newcrawCreateRequire(import.meta.url);
|
|
3
|
+
|
|
4
|
+
// src/utils/protocol/kodeAgentStreamJson.ts
|
|
5
|
+
function normalizeToolUseBlockTypes(block) {
|
|
6
|
+
if (!block || typeof block !== "object") return block;
|
|
7
|
+
if (block.type === "server_tool_use" || block.type === "mcp_tool_use") {
|
|
8
|
+
return { ...block, type: "tool_use" };
|
|
9
|
+
}
|
|
10
|
+
return block;
|
|
11
|
+
}
|
|
12
|
+
function makeSdkInitMessage(args) {
|
|
13
|
+
return {
|
|
14
|
+
type: "system",
|
|
15
|
+
subtype: "init",
|
|
16
|
+
session_id: args.sessionId,
|
|
17
|
+
cwd: args.cwd,
|
|
18
|
+
model: args.model,
|
|
19
|
+
tools: args.tools,
|
|
20
|
+
...args.slashCommands ? { slash_commands: args.slashCommands } : {}
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function makeSdkResultMessage(args) {
|
|
24
|
+
return {
|
|
25
|
+
type: "result",
|
|
26
|
+
subtype: args.isError ? "error_during_execution" : "success",
|
|
27
|
+
result: args.result,
|
|
28
|
+
...args.structuredOutput ? { structured_output: args.structuredOutput } : {},
|
|
29
|
+
num_turns: args.numTurns,
|
|
30
|
+
usage: args.usage,
|
|
31
|
+
total_cost_usd: args.totalCostUsd,
|
|
32
|
+
duration_ms: args.durationMs,
|
|
33
|
+
duration_api_ms: args.durationApiMs,
|
|
34
|
+
is_error: args.isError,
|
|
35
|
+
session_id: args.sessionId
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
function kodeMessageToSdkMessage(message, sessionId) {
|
|
39
|
+
if (message.type === "progress") return null;
|
|
40
|
+
if (message.type === "user") {
|
|
41
|
+
return {
|
|
42
|
+
type: "user",
|
|
43
|
+
session_id: sessionId,
|
|
44
|
+
uuid: message.uuid,
|
|
45
|
+
parent_tool_use_id: null,
|
|
46
|
+
message: {
|
|
47
|
+
role: "user",
|
|
48
|
+
content: message.message.content
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
if (message.type === "assistant") {
|
|
53
|
+
const content = Array.isArray(message.message.content) ? message.message.content.map(normalizeToolUseBlockTypes) : [];
|
|
54
|
+
return {
|
|
55
|
+
type: "assistant",
|
|
56
|
+
session_id: sessionId,
|
|
57
|
+
uuid: message.uuid,
|
|
58
|
+
parent_tool_use_id: null,
|
|
59
|
+
message: {
|
|
60
|
+
role: "assistant",
|
|
61
|
+
content
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export {
|
|
69
|
+
makeSdkInitMessage,
|
|
70
|
+
makeSdkResultMessage,
|
|
71
|
+
kodeMessageToSdkMessage
|
|
72
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/utils/protocol/kodeAgentStreamJson.ts"],
|
|
4
|
+
"sourcesContent": ["import type { Message as KodeMessage } from '@query'\r\n\r\n\r\nexport type SdkMessage =\r\n | {\r\n type: 'system'\r\n subtype: string\r\n session_id?: string\r\n model?: string\r\n cwd?: string\r\n tools?: string[]\r\n slash_commands?: string[]\r\n status?: string\r\n uuid?: string\r\n }\r\n | {\r\n type: 'user'\r\n session_id?: string\r\n uuid?: string\r\n parent_tool_use_id?: string | null\r\n message: { role: 'user'; content: any }\r\n }\r\n | {\r\n type: 'assistant'\r\n session_id?: string\r\n uuid?: string\r\n parent_tool_use_id?: string | null\r\n message: { role: 'assistant'; content: any[] }\r\n }\r\n | {\r\n type: 'result'\r\n subtype: 'success' | 'error_during_execution' | 'error_max_turns'\r\n result?: string\r\n structured_output?: Record<string, unknown>\r\n num_turns: number\r\n usage?: any\r\n total_cost_usd: number\r\n duration_ms: number\r\n duration_api_ms: number\r\n is_error: boolean\r\n session_id: string\r\n }\r\n | {\r\n type: 'log'\r\n log: { level: 'debug' | 'info' | 'warn' | 'error'; message: string }\r\n }\r\n\r\nfunction normalizeToolUseBlockTypes(block: any): any {\r\n if (!block || typeof block !== 'object') return block\r\n if (block.type === 'server_tool_use' || block.type === 'mcp_tool_use') {\r\n return { ...block, type: 'tool_use' }\r\n }\r\n return block\r\n}\r\n\r\nexport function makeSdkInitMessage(args: {\r\n sessionId: string\r\n cwd: string\r\n model?: string\r\n tools?: string[]\r\n slashCommands?: string[]\r\n}): SdkMessage {\r\n return {\r\n type: 'system',\r\n subtype: 'init',\r\n session_id: args.sessionId,\r\n cwd: args.cwd,\r\n model: args.model,\r\n tools: args.tools,\r\n ...(args.slashCommands ? { slash_commands: args.slashCommands } : {}),\r\n }\r\n}\r\n\r\nexport function makeSdkResultMessage(args: {\r\n sessionId: string\r\n result: string\r\n structuredOutput?: Record<string, unknown>\r\n numTurns: number\r\n usage?: any\r\n totalCostUsd: number\r\n durationMs: number\r\n durationApiMs: number\r\n isError: boolean\r\n}): SdkMessage {\r\n return {\r\n type: 'result',\r\n subtype: args.isError ? 'error_during_execution' : 'success',\r\n result: args.result,\r\n ...(args.structuredOutput\r\n ? { structured_output: args.structuredOutput }\r\n : {}),\r\n num_turns: args.numTurns,\r\n usage: args.usage,\r\n total_cost_usd: args.totalCostUsd,\r\n duration_ms: args.durationMs,\r\n duration_api_ms: args.durationApiMs,\r\n is_error: args.isError,\r\n session_id: args.sessionId,\r\n }\r\n}\r\n\r\nexport function kodeMessageToSdkMessage(\r\n message: KodeMessage,\r\n sessionId: string,\r\n): SdkMessage | null {\r\n if (message.type === 'progress') return null\r\n\r\n if (message.type === 'user') {\r\n return {\r\n type: 'user',\r\n session_id: sessionId,\r\n uuid: message.uuid,\r\n parent_tool_use_id: null,\r\n message: {\r\n role: 'user',\r\n content: message.message.content as any,\r\n },\r\n }\r\n }\r\n\r\n if (message.type === 'assistant') {\r\n const content = Array.isArray(message.message.content)\r\n ? message.message.content.map(normalizeToolUseBlockTypes)\r\n : []\r\n return {\r\n type: 'assistant',\r\n session_id: sessionId,\r\n uuid: message.uuid,\r\n parent_tool_use_id: null,\r\n message: {\r\n role: 'assistant',\r\n content: content as any[],\r\n },\r\n }\r\n }\r\n\r\n return null\r\n}\r\n"],
|
|
5
|
+
"mappings": ";;;;AA+CA,SAAS,2BAA2B,OAAiB;AACnD,MAAI,CAAC,SAAS,OAAO,UAAU,SAAU,QAAO;AAChD,MAAI,MAAM,SAAS,qBAAqB,MAAM,SAAS,gBAAgB;AACrE,WAAO,EAAE,GAAG,OAAO,MAAM,WAAW;AAAA,EACtC;AACA,SAAO;AACT;AAEO,SAAS,mBAAmB,MAMpB;AACb,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,YAAY,KAAK;AAAA,IACjB,KAAK,KAAK;AAAA,IACV,OAAO,KAAK;AAAA,IACZ,OAAO,KAAK;AAAA,IACZ,GAAI,KAAK,gBAAgB,EAAE,gBAAgB,KAAK,cAAc,IAAI,CAAC;AAAA,EACrE;AACF;AAEO,SAAS,qBAAqB,MAUtB;AACb,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS,KAAK,UAAU,2BAA2B;AAAA,IACnD,QAAQ,KAAK;AAAA,IACb,GAAI,KAAK,mBACL,EAAE,mBAAmB,KAAK,iBAAiB,IAC3C,CAAC;AAAA,IACL,WAAW,KAAK;AAAA,IAChB,OAAO,KAAK;AAAA,IACZ,gBAAgB,KAAK;AAAA,IACrB,aAAa,KAAK;AAAA,IAClB,iBAAiB,KAAK;AAAA,IACtB,UAAU,KAAK;AAAA,IACf,YAAY,KAAK;AAAA,EACnB;AACF;AAEO,SAAS,wBACd,SACA,WACmB;AACnB,MAAI,QAAQ,SAAS,WAAY,QAAO;AAExC,MAAI,QAAQ,SAAS,QAAQ;AAC3B,WAAO;AAAA,MACL,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,MAAM,QAAQ;AAAA,MACd,oBAAoB;AAAA,MACpB,SAAS;AAAA,QACP,MAAM;AAAA,QACN,SAAS,QAAQ,QAAQ;AAAA,MAC3B;AAAA,IACF;AAAA,EACF;AAEA,MAAI,QAAQ,SAAS,aAAa;AAChC,UAAM,UAAU,MAAM,QAAQ,QAAQ,QAAQ,OAAO,IACjD,QAAQ,QAAQ,QAAQ,IAAI,0BAA0B,IACtD,CAAC;AACL,WAAO;AAAA,MACL,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,MAAM,QAAQ;AAAA,MACd,oBAAoB;AAAA,MACpB,SAAS;AAAA,QACP,MAAM;AAAA,QACN;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|