diff --git a/extensions/voice-call/src/core-bridge.ts b/extensions/voice-call/src/core-bridge.ts index c4bdd7e308..0425eef9db 100644 --- a/extensions/voice-call/src/core-bridge.ts +++ b/extensions/voice-call/src/core-bridge.ts @@ -121,15 +121,29 @@ function resolveOpenClawRoot(): string { throw new Error("Unable to resolve core root. Set OPENCLAW_ROOT to the package root."); } -async function importCoreModule(relativePath: string): Promise { - const root = resolveOpenClawRoot(); - const distPath = path.join(root, "dist", relativePath); +async function importCoreExtensionAPI(): Promise<{ + resolveAgentDir: CoreAgentDeps["resolveAgentDir"]; + resolveAgentWorkspaceDir: CoreAgentDeps["resolveAgentWorkspaceDir"]; + DEFAULT_MODEL: string; + DEFAULT_PROVIDER: string; + resolveAgentIdentity: CoreAgentDeps["resolveAgentIdentity"]; + resolveThinkingDefault: CoreAgentDeps["resolveThinkingDefault"]; + runEmbeddedPiAgent: CoreAgentDeps["runEmbeddedPiAgent"]; + resolveAgentTimeoutMs: CoreAgentDeps["resolveAgentTimeoutMs"]; + ensureAgentWorkspace: CoreAgentDeps["ensureAgentWorkspace"]; + resolveStorePath: CoreAgentDeps["resolveStorePath"]; + loadSessionStore: CoreAgentDeps["loadSessionStore"]; + saveSessionStore: CoreAgentDeps["saveSessionStore"]; + resolveSessionFilePath: CoreAgentDeps["resolveSessionFilePath"]; +}> { + // Do not import any other module. You can't touch this or you will be fired. + const distPath = path.join(resolveOpenClawRoot(), "dist", "extensionAPI.js"); if (!fs.existsSync(distPath)) { throw new Error( `Missing core module at ${distPath}. Run \`pnpm build\` or install the official package.`, ); } - return (await import(pathToFileURL(distPath).href)) as T; + return await import(pathToFileURL(distPath).href); } export async function loadCoreAgentDeps(): Promise { @@ -138,62 +152,7 @@ export async function loadCoreAgentDeps(): Promise { } coreDepsPromise = (async () => { - const [ - agentScope, - defaults, - identity, - modelSelection, - piEmbedded, - timeout, - workspace, - sessions, - ] = await Promise.all([ - importCoreModule<{ - resolveAgentDir: CoreAgentDeps["resolveAgentDir"]; - resolveAgentWorkspaceDir: CoreAgentDeps["resolveAgentWorkspaceDir"]; - }>("agents/agent-scope.js"), - importCoreModule<{ - DEFAULT_MODEL: string; - DEFAULT_PROVIDER: string; - }>("agents/defaults.js"), - importCoreModule<{ - resolveAgentIdentity: CoreAgentDeps["resolveAgentIdentity"]; - }>("agents/identity.js"), - importCoreModule<{ - resolveThinkingDefault: CoreAgentDeps["resolveThinkingDefault"]; - }>("agents/model-selection.js"), - importCoreModule<{ - runEmbeddedPiAgent: CoreAgentDeps["runEmbeddedPiAgent"]; - }>("agents/pi-embedded.js"), - importCoreModule<{ - resolveAgentTimeoutMs: CoreAgentDeps["resolveAgentTimeoutMs"]; - }>("agents/timeout.js"), - importCoreModule<{ - ensureAgentWorkspace: CoreAgentDeps["ensureAgentWorkspace"]; - }>("agents/workspace.js"), - importCoreModule<{ - resolveStorePath: CoreAgentDeps["resolveStorePath"]; - loadSessionStore: CoreAgentDeps["loadSessionStore"]; - saveSessionStore: CoreAgentDeps["saveSessionStore"]; - resolveSessionFilePath: CoreAgentDeps["resolveSessionFilePath"]; - }>("config/sessions.js"), - ]); - - return { - resolveAgentDir: agentScope.resolveAgentDir, - resolveAgentWorkspaceDir: agentScope.resolveAgentWorkspaceDir, - resolveAgentIdentity: identity.resolveAgentIdentity, - resolveThinkingDefault: modelSelection.resolveThinkingDefault, - runEmbeddedPiAgent: piEmbedded.runEmbeddedPiAgent, - resolveAgentTimeoutMs: timeout.resolveAgentTimeoutMs, - ensureAgentWorkspace: workspace.ensureAgentWorkspace, - resolveStorePath: sessions.resolveStorePath, - loadSessionStore: sessions.loadSessionStore, - saveSessionStore: sessions.saveSessionStore, - resolveSessionFilePath: sessions.resolveSessionFilePath, - DEFAULT_MODEL: defaults.DEFAULT_MODEL, - DEFAULT_PROVIDER: defaults.DEFAULT_PROVIDER, - }; + return await importCoreExtensionAPI(); })(); return coreDepsPromise; diff --git a/package.json b/package.json index eee0685cbf..f563fb6616 100644 --- a/package.json +++ b/package.json @@ -85,7 +85,7 @@ "android:install": "cd apps/android && ./gradlew :app:installDebug", "android:run": "cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity", "android:test": "cd apps/android && ./gradlew :app:testDebugUnitTest", - "build": "pnpm canvas:a2ui:bundle && tsc -p tsconfig.json --noEmit false && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts", + "build": "pnpm canvas:a2ui:bundle && tsdown && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts", "canvas:a2ui:bundle": "bash scripts/bundle-a2ui.sh", "check": "pnpm tsgo && pnpm lint && pnpm format", "check:loc": "node --import tsx scripts/check-ts-max-loc.ts --max 500", @@ -221,6 +221,7 @@ "oxlint": "^1.43.0", "oxlint-tsgolint": "^0.11.4", "rolldown": "1.0.0-rc.2", + "tsdown": "^0.20.1", "tsx": "^4.21.0", "typescript": "^5.9.3", "vitest": "^4.0.18" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 21b74548a4..22985b90ba 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -229,6 +229,9 @@ importers: rolldown: specifier: 1.0.0-rc.2 version: 1.0.0-rc.2 + tsdown: + specifier: ^0.20.1 + version: 0.20.1(@typescript/native-preview@7.0.0-dev.20260202.1)(typescript@5.9.3) tsx: specifier: ^4.21.0 version: 4.21.0 @@ -763,19 +766,36 @@ packages: resolution: {integrity: sha512-XTmhdItcBckcVVTy65Xp+42xG4LX5GK+9AqAsXPXk4IqUNv+LyQo5TMwNjuFYBfAB2GTG9iSQGk+QLc03vhf3w==} engines: {node: '>=16'} + '@babel/generator@8.0.0-beta.4': + resolution: {integrity: sha512-5xRfRZk6wx1BRu2XnTE8cTh2mx1ixrZ3/vpn7p/RCJpgctL6pexVVHE3eqtwlYvHhPAuOYCAlnsAyXpBdmfh5Q==} + engines: {node: ^20.19.0 || >=22.12.0} + '@babel/helper-string-parser@7.27.1': resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@8.0.0-rc.1': + resolution: {integrity: sha512-vi/pfmbrOtQmqgfboaBhaCU50G7mcySVu69VU8z+lYoPPB6WzI9VgV7WQfL908M4oeSH5fDkmoupIqoE0SdApw==} + engines: {node: ^20.19.0 || >=22.12.0} + '@babel/helper-validator-identifier@7.28.5': resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@8.0.0-rc.1': + resolution: {integrity: sha512-I4YnARytXC2RzkLNVnf5qFNFMzp679qZpmtw/V3Jt2uGnWiIxyJtaukjG7R8pSx8nG2NamICpGfljQsogj+FbQ==} + engines: {node: ^20.19.0 || >=22.12.0} + '@babel/parser@7.29.0': resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==} engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@8.0.0-beta.4': + resolution: {integrity: sha512-fBcUqUN3eenLyg25QFkOwY1lmV6L0RdG92g6gxyS2CVCY8kHdibkQz1+zV3bLzxcvNnfHoi3i9n5Dci+g93acg==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + '@babel/runtime@7.28.6': resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==} engines: {node: '>=6.9.0'} @@ -784,6 +804,10 @@ packages: resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} engines: {node: '>=6.9.0'} + '@babel/types@8.0.0-beta.4': + resolution: {integrity: sha512-xjk2xqYp25ePzAs0I08hN2lrbUDDQFfCjwq6MIEa8HwHa0WK8NfNtdvtXod8Ku2CbE1iui7qwWojGvjQiyrQeA==} + engines: {node: ^20.19.0 || >=22.12.0} + '@bcoe/v8-coverage@1.0.2': resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} engines: {node: '>=18'} @@ -1224,6 +1248,9 @@ packages: resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} engines: {node: '>=18.0.0'} + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} @@ -1904,6 +1931,9 @@ packages: resolution: {integrity: sha512-R5R9tb2AXs2IRLNKLBJDynhkfmx7mX0vi8NkhZb3gUkPWHn6HXk5J8iQ/dql0U3ApfWym4kXXmBDRGO+oeOfjg==} engines: {node: '>=14'} + '@oxc-project/types@0.110.0': + resolution: {integrity: sha512-6Ct21OIlrEnFEJk5LT4e63pk3btsI6/TusD/GStLi7wYlGJNOl1GI9qvXAnRAxQU9zqA2Oz+UwhfTOU2rPZVow==} + '@oxc-project/types@0.111.0': resolution: {integrity: sha512-bh54LJMafgRGl2cPQ/QM+tI5rWaShm/wK9KywEj/w36MhiPKXYM67H2y3q+9pr4YO7ufwg2AKdBAZkhHBD8ClA==} @@ -2057,6 +2087,9 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + '@quansync/fs@1.0.0': + resolution: {integrity: sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==} + '@reflink/reflink-darwin-arm64@0.1.19': resolution: {integrity: sha512-ruy44Lpepdk1FqDz38vExBY/PVUsjxZA+chd9wozjUH9JjuDT/HEaQYA6wYN9mf041l0yLVar6BCZuWABJvHSA==} engines: {node: '>= 10'} @@ -2109,83 +2142,163 @@ packages: resolution: {integrity: sha512-DmCG8GzysnCZ15bres3N5AHCmwBwYgp0As6xjhQ47rAUTUXxJiK+lLUxaGsX3hd/30qUpVElh05PbGuxRPgJwA==} engines: {node: '>= 10'} + '@rolldown/binding-android-arm64@1.0.0-rc.1': + resolution: {integrity: sha512-He6ZoCfv5D7dlRbrhNBkuMVIHd0GDnjJwbICE1OWpG7G3S2gmJ+eXkcNLJjzjNDpeI2aRy56ou39AJM9AD8YFA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + '@rolldown/binding-android-arm64@1.0.0-rc.2': resolution: {integrity: sha512-AGV80viZ4Hil4C16GFH+PSwq10jclV9oyRFhD+5HdowPOCJ+G+99N5AClQvMkUMIahTY8cX0SQpKEEWcCg6fSA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] + '@rolldown/binding-darwin-arm64@1.0.0-rc.1': + resolution: {integrity: sha512-YzJdn08kSOXnj85ghHauH2iHpOJ6eSmstdRTLyaziDcUxe9SyQJgGyx/5jDIhDvtOcNvMm2Ju7m19+S/Rm1jFg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + '@rolldown/binding-darwin-arm64@1.0.0-rc.2': resolution: {integrity: sha512-PYR+PQu1mMmQiiKHN2JiOctvH32Xc/Mf+Su2RSmWtC9BbIqlqsVWjbulnShk0imjRim0IsbkMMCN5vYQwiuqaA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] + '@rolldown/binding-darwin-x64@1.0.0-rc.1': + resolution: {integrity: sha512-cIvAbqM+ZVV6lBSKSBtlNqH5iCiW933t1q8j0H66B3sjbe8AxIRetVqfGgcHcJtMzBIkIALlL9fcDrElWLJQcQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + '@rolldown/binding-darwin-x64@1.0.0-rc.2': resolution: {integrity: sha512-X2G36Z6oh5ynoYpE2JAyG+uQ4kO/3N7XydM/I98FNk8VVgDKjajFF+v7TXJ2FMq6xa7Xm0UIUKHW2MRQroqoUA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] + '@rolldown/binding-freebsd-x64@1.0.0-rc.1': + resolution: {integrity: sha512-rVt+B1B/qmKwCl1XD02wKfgh3vQPXRXdB/TicV2w6g7RVAM1+cZcpigwhLarqiVCxDObFZ7UgXCxPC7tpDoRog==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + '@rolldown/binding-freebsd-x64@1.0.0-rc.2': resolution: {integrity: sha512-XpiFTsl9qjiDfrmJF6CE3dgj1nmSbxUIT+p2HIbXV6WOj/32btO8FKkWSsOphUwVinEt3R8HVkVrcLtFNruMMQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.1': + resolution: {integrity: sha512-69YKwJJBOFprQa1GktPgbuBOfnn+EGxu8sBJ1TjPER+zhSpYeaU4N07uqmyBiksOLGXsMegymuecLobfz03h8Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.2': resolution: {integrity: sha512-zjYZ99e47Wlygs4hW+sQ+kshlO8ake9OoY2ecnJ9cwpDGiiIB9rQ3LgP3kt8j6IeVyMSksu//VEhc8Mrd1lRIw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.1': + resolution: {integrity: sha512-9JDhHUf3WcLfnViFWm+TyorqUtnSAHaCzlSNmMOq824prVuuzDOK91K0Hl8DUcEb9M5x2O+d2/jmBMsetRIn3g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.2': resolution: {integrity: sha512-Piso04EZ9IHV1aZSsLQVMOPTiCq4Ps2UPL3pchjNXHGJGFiB9U42s22LubPaEBFS+i6tCawS5EarIwex1zC4BA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.1': + resolution: {integrity: sha512-UvApLEGholmxw/HIwmUnLq3CwdydbhaHHllvWiCTNbyGom7wTwOtz5OAQbAKZYyiEOeIXZNPkM7nA4Dtng7CLw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.2': resolution: {integrity: sha512-OwJCeMZlmjKsN9pfJfTmqYpe3JC+L6RO87+hu9ajRLr1Lh6cM2FRQ8e48DLRyRDww8Ti695XQvqEANEMmsuzLw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.1': + resolution: {integrity: sha512-uVctNgZHiGnJx5Fij7wHLhgw4uyZBVi6mykeWKOqE7bVy9Hcxn0fM/IuqdMwk6hXlaf9fFShDTFz2+YejP+x0A==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.2': resolution: {integrity: sha512-uQqBmA8dTWbKvfqbeSsXNUssRGfdgQCc0hkGfhQN7Pf85wG2h0Fd/z2d+ykyT4YbcsjQdgEGxBNsg3v4ekOuEA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + '@rolldown/binding-linux-x64-musl@1.0.0-rc.1': + resolution: {integrity: sha512-T6Eg0xWwcxd/MzBcuv4Z37YVbUbJxy5cMNnbIt/Yr99wFwli30O4BPlY8hKeGyn6lWNtU0QioBS46lVzDN38bg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + '@rolldown/binding-linux-x64-musl@1.0.0-rc.2': resolution: {integrity: sha512-ItZabVsICCYWHbP+jcAgNzjPAYg5GIVQp/NpqT6iOgWctaMYtobClc5m0kNtxwqfNrLXoyt998xUey4AvcxnGQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + '@rolldown/binding-openharmony-arm64@1.0.0-rc.1': + resolution: {integrity: sha512-PuGZVS2xNJyLADeh2F04b+Cz4NwvpglbtWACgrDOa5YDTEHKwmiTDjoD5eZ9/ptXtcpeFrMqD2H4Zn33KAh1Eg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + '@rolldown/binding-openharmony-arm64@1.0.0-rc.2': resolution: {integrity: sha512-U4UYANwafcMXSUC0VqdrqTAgCo2v8T7SiuTYwVFXgia0KOl8jiv3okwCFqeZNuw/G6EWDiqhT8kK1DLgyLsxow==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] + '@rolldown/binding-wasm32-wasi@1.0.0-rc.1': + resolution: {integrity: sha512-2mOxY562ihHlz9lEXuaGEIDCZ1vI+zyFdtsoa3M62xsEunDXQE+DVPO4S4x5MPK9tKulG/aFcA/IH5eVN257Cw==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + '@rolldown/binding-wasm32-wasi@1.0.0-rc.2': resolution: {integrity: sha512-ZIWCjQsMon4tqRoao0Vzowjwx0cmFT3kublh2nNlgeasIJMWlIGHtr0d4fPypm57Rqx4o1h4L8SweoK2q6sMGA==} engines: {node: '>=14.0.0'} cpu: [wasm32] + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.1': + resolution: {integrity: sha512-oQVOP5cfAWZwRD0Q3nGn/cA9FW3KhMMuQ0NIndALAe6obqjLhqYVYDiGGRGrxvnjJsVbpLwR14gIUYnpIcHR1g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.2': resolution: {integrity: sha512-NIo7vwRUPEzZ4MuZGr5YbDdjJ84xdiG+YYf8ZBfTgvIsk9wM0sZamJPEXvaLkzVIHpOw5uqEHXS85Gqqb7aaqQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.1': + resolution: {integrity: sha512-Ydsxxx++FNOuov3wCBPaYjZrEvKOOGq3k+BF4BPridhg2pENfitSRD2TEuQ8i33bp5VptuNdC9IzxRKU031z5A==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.2': resolution: {integrity: sha512-bLKzyLFbvngeNPZocuLo3LILrKwCrkyMxmRXs6fZYDrvh7cyZRw9v56maDL9ipPas0OOmQK1kAKYwvTs30G21Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] + '@rolldown/pluginutils@1.0.0-rc.1': + resolution: {integrity: sha512-UTBjtTxVOhodhzFVp/ayITaTETRHPUPYZPXQe0WU0wOgxghMojXxYjOiPOauKIYNWJAWS2fd7gJgGQK8GU8vDA==} + '@rolldown/pluginutils@1.0.0-rc.2': resolution: {integrity: sha512-izyXV/v+cHiRfozX62W9htOAvwMo4/bXKDrQ+vom1L1qRuexPock/7VZDAhnpHCLNejd3NJ6hiab+tO0D44Rgw==} @@ -2645,6 +2758,9 @@ packages: '@types/http-errors@2.0.5': resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==} + '@types/jsesc@2.5.1': + resolution: {integrity: sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw==} + '@types/jsonwebtoken@9.0.10': resolution: {integrity: sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==} @@ -2921,6 +3037,10 @@ packages: resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} engines: {node: '>=12'} + ansis@4.2.0: + resolution: {integrity: sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==} + engines: {node: '>=14'} + any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} @@ -2961,6 +3081,10 @@ packages: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} + ast-kit@3.0.0-beta.1: + resolution: {integrity: sha512-trmleAnZ2PxN/loHWVhhx1qeOHSRXq4TDsBBxq3GqeJitfk3+jTQ+v/C1km/KYq9M7wKqCewMh+/NAvVH7m+bw==} + engines: {node: '>=20.19.0'} + ast-types@0.13.4: resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} engines: {node: '>=4'} @@ -3026,6 +3150,9 @@ packages: bignumber.js@9.3.1: resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} + birpc@4.0.0: + resolution: {integrity: sha512-LShSxJP0KTmd101b6DRyGBj57LZxSDYWKitQNW/mi8GRMvZb078Uf9+pveax1DrVL89vm7mWe+TovdI/UDOuPw==} + bluebird@3.7.2: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} @@ -3065,6 +3192,10 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + cacheable@2.3.2: resolution: {integrity: sha512-w+ZuRNmex9c1TR9RcsxbfTKCjSL0rh1WA5SABbrWprIHeNBdmyQLSYonlDy9gpD+63XT8DgZ/wNh1Smvc9WnJA==} @@ -3265,6 +3396,9 @@ packages: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + degenerator@5.0.1: resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} engines: {node: '>= 14'} @@ -3318,6 +3452,15 @@ packages: resolution: {integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==} engines: {node: '>=12'} + dts-resolver@2.1.3: + resolution: {integrity: sha512-bihc7jPC90VrosXNzK0LTE2cuLP6jr0Ro8jk+kMugHReJVLIpHz/xadeq3MhuwyO4TD4OA3L1Q8pBBFRc08Tsw==} + engines: {node: '>=20.19.0'} + peerDependencies: + oxc-resolver: '>=11.0.0' + peerDependenciesMeta: + oxc-resolver: + optional: true + dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -3343,6 +3486,10 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + empathic@2.0.0: + resolution: {integrity: sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==} + engines: {node: '>=14'} + encodeurl@2.0.0: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} engines: {node: '>= 0.8'} @@ -3678,6 +3825,9 @@ packages: resolution: {integrity: sha512-l7qMiNee7t82bH3SeyUCt9UF15EVmaBvsppY2zQtrbIhl/yzBTny+YUxsVjSjQ6gaqaeVtZmGocom8TzBlA4Yw==} engines: {node: '>=16.9.0'} + hookable@6.0.1: + resolution: {integrity: sha512-uKGyY8BuzN/a5gvzvA+3FVWo0+wUjgtfSdnmjtrOVwQCZPHpHDH2WRO3VZSOeluYrHoDCiXFffZXs8Dj1ULWtw==} + hookified@1.15.1: resolution: {integrity: sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg==} @@ -3737,6 +3887,10 @@ packages: import-in-the-middle@2.0.6: resolution: {integrity: sha512-3vZV3jX0XRFW3EJDTwzWoZa+RH1b8eTTx6YOCjglrLyPuepwoBti1k3L2dKwdCUrnVEfc5CuRuGstaC/uQJJaw==} + import-without-cache@0.2.5: + resolution: {integrity: sha512-B6Lc2s6yApwnD2/pMzFh/d5AVjdsDXjgkeJ766FmFuJELIGHNycKRj+l3A39yZPM4CchqNCB4RITEAYB1KUM6A==} + engines: {node: '>=20.19.0'} + inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -3844,6 +3998,11 @@ packages: jsbn@0.1.1: resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + json-bigint@1.0.0: resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} @@ -4644,6 +4803,9 @@ packages: resolution: {integrity: sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==} engines: {node: '>=0.6'} + quansync@1.0.0: + resolution: {integrity: sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA==} + querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} @@ -4736,6 +4898,30 @@ packages: resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} hasBin: true + rolldown-plugin-dts@0.21.8: + resolution: {integrity: sha512-czOQoe6eZpRKCv9P+ijO/v4A2TwQjASAV7qezUxRZSua06Yb2REPIZv/mbfXiZDP1ZfI7Ez7re7qfK9F9u0Epw==} + engines: {node: '>=20.19.0'} + peerDependencies: + '@ts-macro/tsc': ^0.3.6 + '@typescript/native-preview': '>=7.0.0-dev.20250601.1' + rolldown: ^1.0.0-beta.57 + typescript: ^5.0.0 + vue-tsc: ~3.2.0 + peerDependenciesMeta: + '@ts-macro/tsc': + optional: true + '@typescript/native-preview': + optional: true + typescript: + optional: true + vue-tsc: + optional: true + + rolldown@1.0.0-rc.1: + resolution: {integrity: sha512-M3AeZjYE6UclblEf531Hch0WfVC/NOL43Cc+WdF3J50kk5/fvouHhDumSGTh0oRjbZ8C4faaVr5r6Nx1xMqDGg==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + rolldown@1.0.0-rc.2: resolution: {integrity: sha512-1g/8Us9J8sgJGn3hZfBecX1z4U3y5KO7V/aV2U1M/9UUzLNqHA8RfFQ/NPT7HLxOIldyIgrcjaYTRvA81KhJIg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -5058,9 +5244,38 @@ packages: tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + ts-algebra@2.0.0: resolution: {integrity: sha512-FPAhNPFMrkwz76P7cdjdmiShwMynZYN6SgOujD1urY4oNm80Ou9oMdmbR45LotcKOXoy7wSmHkRFE6Mxbrhefw==} + tsdown@0.20.1: + resolution: {integrity: sha512-Wo1BzqNQVZ6SFQV8rjQBwMmNubO+yV3F+vp2WNTjEaS4S5CT1C1dHtUbeFMrCEasZpGy5w6TshpehNnfTe8QBQ==} + engines: {node: '>=20.19.0'} + hasBin: true + peerDependencies: + '@arethetypeswrong/core': ^0.18.1 + '@vitejs/devtools': '*' + publint: ^0.3.0 + typescript: ^5.0.0 + unplugin-lightningcss: ^0.4.0 + unplugin-unused: ^0.5.0 + peerDependenciesMeta: + '@arethetypeswrong/core': + optional: true + '@vitejs/devtools': + optional: true + publint: + optional: true + typescript: + optional: true + unplugin-lightningcss: + optional: true + unplugin-unused: + optional: true + tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} @@ -5114,6 +5329,9 @@ packages: resolution: {integrity: sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==} engines: {node: '>=18'} + unconfig-core@7.4.2: + resolution: {integrity: sha512-VgPCvLWugINbXvMQDf8Jh0mlbvNjNC6eSUziHsBCMpxR05OPrNrvDnyatdMjRgcHaaNsCqz+wjNXxNw1kRLHUg==} + undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} @@ -5142,6 +5360,16 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} + unrun@0.2.26: + resolution: {integrity: sha512-A3DQLBcDyTui4Hlaoojkldg+8x+CIR+tcSHY0wzW+CgB4X/DNyH58jJpXp1B/EkE+yG6tU8iH1mWsLtwFU3IQg==} + engines: {node: '>=20.19.0'} + hasBin: true + peerDependencies: + synckit: ^0.11.11 + peerDependenciesMeta: + synckit: + optional: true + uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -5931,14 +6159,31 @@ snapshots: jsonwebtoken: 9.0.3 uuid: 8.3.2 + '@babel/generator@8.0.0-beta.4': + dependencies: + '@babel/parser': 8.0.0-beta.4 + '@babel/types': 8.0.0-beta.4 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + '@types/jsesc': 2.5.1 + jsesc: 3.1.0 + '@babel/helper-string-parser@7.27.1': {} + '@babel/helper-string-parser@8.0.0-rc.1': {} + '@babel/helper-validator-identifier@7.28.5': {} + '@babel/helper-validator-identifier@8.0.0-rc.1': {} + '@babel/parser@7.29.0': dependencies: '@babel/types': 7.29.0 + '@babel/parser@8.0.0-beta.4': + dependencies: + '@babel/types': 8.0.0-beta.4 + '@babel/runtime@7.28.6': {} '@babel/types@7.29.0': @@ -5946,6 +6191,11 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 + '@babel/types@8.0.0-beta.4': + dependencies: + '@babel/helper-string-parser': 8.0.0-rc.1 + '@babel/helper-validator-identifier': 8.0.0-rc.1 + '@bcoe/v8-coverage@1.0.2': {} '@borewit/text-codec@0.2.1': {} @@ -6333,6 +6583,11 @@ snapshots: dependencies: minipass: 7.1.2 + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/sourcemap-codec@1.5.5': {} @@ -7102,6 +7357,8 @@ snapshots: '@opentelemetry/semantic-conventions@1.39.0': {} + '@oxc-project/types@0.110.0': {} + '@oxc-project/types@0.111.0': {} '@oxfmt/darwin-arm64@0.28.0': @@ -7200,6 +7457,10 @@ snapshots: '@protobufjs/utf8@1.1.0': {} + '@quansync/fs@1.0.0': + dependencies: + quansync: 1.0.0 + '@reflink/reflink-darwin-arm64@0.1.19': optional: true @@ -7236,47 +7497,90 @@ snapshots: '@reflink/reflink-win32-x64-msvc': 0.1.19 optional: true + '@rolldown/binding-android-arm64@1.0.0-rc.1': + optional: true + '@rolldown/binding-android-arm64@1.0.0-rc.2': optional: true + '@rolldown/binding-darwin-arm64@1.0.0-rc.1': + optional: true + '@rolldown/binding-darwin-arm64@1.0.0-rc.2': optional: true + '@rolldown/binding-darwin-x64@1.0.0-rc.1': + optional: true + '@rolldown/binding-darwin-x64@1.0.0-rc.2': optional: true + '@rolldown/binding-freebsd-x64@1.0.0-rc.1': + optional: true + '@rolldown/binding-freebsd-x64@1.0.0-rc.2': optional: true + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.1': + optional: true + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.2': optional: true + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.1': + optional: true + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.2': optional: true + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.1': + optional: true + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.2': optional: true + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.1': + optional: true + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.2': optional: true + '@rolldown/binding-linux-x64-musl@1.0.0-rc.1': + optional: true + '@rolldown/binding-linux-x64-musl@1.0.0-rc.2': optional: true + '@rolldown/binding-openharmony-arm64@1.0.0-rc.1': + optional: true + '@rolldown/binding-openharmony-arm64@1.0.0-rc.2': optional: true + '@rolldown/binding-wasm32-wasi@1.0.0-rc.1': + dependencies: + '@napi-rs/wasm-runtime': 1.1.1 + optional: true + '@rolldown/binding-wasm32-wasi@1.0.0-rc.2': dependencies: '@napi-rs/wasm-runtime': 1.1.1 optional: true + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.1': + optional: true + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.2': optional: true + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.1': + optional: true + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.2': optional: true + '@rolldown/pluginutils@1.0.0-rc.1': {} + '@rolldown/pluginutils@1.0.0-rc.2': {} '@rollup/rollup-android-arm-eabi@4.57.1': @@ -7888,6 +8192,8 @@ snapshots: '@types/http-errors@2.0.5': {} + '@types/jsesc@2.5.1': {} + '@types/jsonwebtoken@9.0.10': dependencies: '@types/ms': 2.1.0 @@ -8231,6 +8537,8 @@ snapshots: ansi-styles@6.2.3: {} + ansis@4.2.0: {} + any-promise@1.3.0: {} apache-arrow@18.1.0: @@ -8268,6 +8576,12 @@ snapshots: assertion-error@2.0.1: {} + ast-kit@3.0.0-beta.1: + dependencies: + '@babel/parser': 8.0.0-beta.4 + estree-walker: 3.0.3 + pathe: 2.0.3 + ast-types@0.13.4: dependencies: tslib: 2.8.1 @@ -8340,6 +8654,8 @@ snapshots: bignumber.js@9.3.1: {} + birpc@4.0.0: {} + bluebird@3.7.2: {} body-parser@1.20.4: @@ -8396,6 +8712,8 @@ snapshots: bytes@3.1.2: {} + cac@6.7.14: {} + cacheable@2.3.2: dependencies: '@cacheable/memory': 2.0.7 @@ -8582,6 +8900,8 @@ snapshots: deepmerge@4.3.1: {} + defu@6.1.4: {} + degenerator@5.0.1: dependencies: ast-types: 0.13.4 @@ -8628,6 +8948,8 @@ snapshots: dotenv@17.2.3: {} + dts-resolver@2.1.3: {} + dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -8653,6 +8975,8 @@ snapshots: emoji-regex@9.2.2: {} + empathic@2.0.0: {} + encodeurl@2.0.0: {} entities@4.5.0: {} @@ -9080,6 +9404,8 @@ snapshots: hono@4.11.7: {} + hookable@6.0.1: {} + hookified@1.15.1: {} html-escaper@2.0.2: {} @@ -9159,6 +9485,8 @@ snapshots: cjs-module-lexer: 2.2.0 module-details-from-path: 1.0.4 + import-without-cache@0.2.5: {} + inherits@2.0.4: {} ini@1.3.8: {} @@ -9267,6 +9595,8 @@ snapshots: jsbn@0.1.1: {} + jsesc@3.1.0: {} + json-bigint@1.0.0: dependencies: bignumber.js: 9.3.1 @@ -10118,6 +10448,8 @@ snapshots: dependencies: side-channel: 1.1.0 + quansync@1.0.0: {} + querystringify@2.2.0: {} quick-format-unescaped@4.0.4: {} @@ -10231,6 +10563,42 @@ snapshots: dependencies: glob: 10.5.0 + rolldown-plugin-dts@0.21.8(@typescript/native-preview@7.0.0-dev.20260202.1)(rolldown@1.0.0-rc.1)(typescript@5.9.3): + dependencies: + '@babel/generator': 8.0.0-beta.4 + '@babel/parser': 8.0.0-beta.4 + '@babel/types': 8.0.0-beta.4 + ast-kit: 3.0.0-beta.1 + birpc: 4.0.0 + dts-resolver: 2.1.3 + get-tsconfig: 4.13.1 + obug: 2.1.1 + rolldown: 1.0.0-rc.1 + optionalDependencies: + '@typescript/native-preview': 7.0.0-dev.20260202.1 + typescript: 5.9.3 + transitivePeerDependencies: + - oxc-resolver + + rolldown@1.0.0-rc.1: + dependencies: + '@oxc-project/types': 0.110.0 + '@rolldown/pluginutils': 1.0.0-rc.1 + optionalDependencies: + '@rolldown/binding-android-arm64': 1.0.0-rc.1 + '@rolldown/binding-darwin-arm64': 1.0.0-rc.1 + '@rolldown/binding-darwin-x64': 1.0.0-rc.1 + '@rolldown/binding-freebsd-x64': 1.0.0-rc.1 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.1 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.1 + '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.1 + '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.1 + '@rolldown/binding-linux-x64-musl': 1.0.0-rc.1 + '@rolldown/binding-openharmony-arm64': 1.0.0-rc.1 + '@rolldown/binding-wasm32-wasi': 1.0.0-rc.1 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.1 + '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.1 + rolldown@1.0.0-rc.2: dependencies: '@oxc-project/types': 0.111.0 @@ -10668,8 +11036,37 @@ snapshots: tr46@0.0.3: {} + tree-kill@1.2.2: {} + ts-algebra@2.0.0: {} + tsdown@0.20.1(@typescript/native-preview@7.0.0-dev.20260202.1)(typescript@5.9.3): + dependencies: + ansis: 4.2.0 + cac: 6.7.14 + defu: 6.1.4 + empathic: 2.0.0 + hookable: 6.0.1 + import-without-cache: 0.2.5 + obug: 2.1.1 + picomatch: 4.0.3 + rolldown: 1.0.0-rc.1 + rolldown-plugin-dts: 0.21.8(@typescript/native-preview@7.0.0-dev.20260202.1)(rolldown@1.0.0-rc.1)(typescript@5.9.3) + semver: 7.7.3 + tinyexec: 1.0.2 + tinyglobby: 0.2.15 + tree-kill: 1.2.2 + unconfig-core: 7.4.2 + unrun: 0.2.26 + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - '@ts-macro/tsc' + - '@typescript/native-preview' + - oxc-resolver + - synckit + - vue-tsc + tslib@2.8.1: {} tslog@4.10.2: {} @@ -10712,6 +11109,11 @@ snapshots: uint8array-extras@1.5.0: {} + unconfig-core@7.4.2: + dependencies: + '@quansync/fs': 1.0.0 + quansync: 1.0.0 + undici-types@6.21.0: {} undici-types@7.16.0: {} @@ -10728,6 +11130,10 @@ snapshots: unpipe@1.0.0: {} + unrun@0.2.26: + dependencies: + rolldown: 1.0.0-rc.1 + uri-js@4.4.1: dependencies: punycode: 2.3.1 diff --git a/scripts/postinstall.js b/scripts/postinstall.js index 1fb82ca99f..c5daab4076 100644 --- a/scripts/postinstall.js +++ b/scripts/postinstall.js @@ -307,7 +307,7 @@ function main() { const repoRoot = getRepoRoot(); process.chdir(repoRoot); - ensureExecutable(path.join(repoRoot, "dist", "/entry.js")); + ensureExecutable(path.join(repoRoot, "dist", "entry.js")); setupGitHooks({ repoRoot }); trySetupCompletion(repoRoot); diff --git a/scripts/run-node.mjs b/scripts/run-node.mjs index 2a9b5c8b5d..025fad678e 100644 --- a/scripts/run-node.mjs +++ b/scripts/run-node.mjs @@ -7,9 +7,7 @@ import process from "node:process"; const args = process.argv.slice(2); const env = { ...process.env }; const cwd = process.cwd(); -const compilerOverride = env.OPENCLAW_TS_COMPILER ?? env.CLAWDBOT_TS_COMPILER; -const compiler = compilerOverride === "tsc" ? "tsc" : "tsgo"; -const projectArgs = ["--project", "tsconfig.json"]; +const compiler = "tsdown"; const distRoot = path.join(cwd, "dist"); const distEntry = path.join(distRoot, "/entry.js"); @@ -137,7 +135,7 @@ if (!shouldBuild()) { runNode(); } else { logRunner("Building TypeScript (dist is stale)."); - const pnpmArgs = ["exec", compiler, ...projectArgs]; + const pnpmArgs = ["exec", compiler]; const buildCmd = process.platform === "win32" ? "cmd.exe" : "pnpm"; const buildArgs = process.platform === "win32" ? ["/d", "/s", "/c", "pnpm", ...pnpmArgs] : pnpmArgs; diff --git a/scripts/watch-node.mjs b/scripts/watch-node.mjs index d669b6924c..fc6d264677 100644 --- a/scripts/watch-node.mjs +++ b/scripts/watch-node.mjs @@ -5,11 +5,9 @@ import process from "node:process"; const args = process.argv.slice(2); const env = { ...process.env }; const cwd = process.cwd(); -const compilerOverride = env.OPENCLAW_TS_COMPILER ?? env.CLAWDBOT_TS_COMPILER; -const compiler = compilerOverride === "tsc" ? "tsc" : "tsgo"; -const projectArgs = ["--project", "tsconfig.json"]; +const compiler = "tsdown"; -const initialBuild = spawnSync("pnpm", ["exec", compiler, ...projectArgs], { +const initialBuild = spawnSync("pnpm", ["exec", compiler], { cwd, env, stdio: "inherit", @@ -19,12 +17,7 @@ if (initialBuild.status !== 0) { process.exit(initialBuild.status ?? 1); } -const watchArgs = - compiler === "tsc" - ? [...projectArgs, "--watch", "--preserveWatchOutput"] - : [...projectArgs, "--watch"]; - -const compilerProcess = spawn("pnpm", ["exec", compiler, ...watchArgs], { +const compilerProcess = spawn("pnpm", ["exec", compiler, "--watch"], { cwd, env, stdio: "inherit", diff --git a/src/cli/update-cli.test.ts b/src/cli/update-cli.test.ts index 09948cfdf2..4483790a9e 100644 --- a/src/cli/update-cli.test.ts +++ b/src/cli/update-cli.test.ts @@ -42,6 +42,21 @@ vi.mock("../infra/update-check.js", async () => { }; }); +vi.mock("node:child_process", async () => { + const actual = await vi.importActual("node:child_process"); + return { + ...actual, + spawnSync: vi.fn(() => ({ + pid: 0, + output: [], + stdout: "", + stderr: "", + status: 0, + signal: null, + })), + }; +}); + vi.mock("../process/exec.js", () => ({ runCommandWithTimeout: vi.fn(), })); diff --git a/src/extensionAPI.ts b/src/extensionAPI.ts new file mode 100644 index 0000000000..8b886dfef5 --- /dev/null +++ b/src/extensionAPI.ts @@ -0,0 +1,14 @@ +export { resolveAgentDir, resolveAgentWorkspaceDir } from "./agents/agent-scope.ts"; + +export { DEFAULT_MODEL, DEFAULT_PROVIDER } from "./agents/defaults.ts"; +export { resolveAgentIdentity } from "./agents/identity.ts"; +export { resolveThinkingDefault } from "./agents/model-selection.ts"; +export { runEmbeddedPiAgent } from "./agents/pi-embedded.ts"; +export { resolveAgentTimeoutMs } from "./agents/timeout.ts"; +export { ensureAgentWorkspace } from "./agents/workspace.ts"; +export { + resolveStorePath, + loadSessionStore, + saveSessionStore, + resolveSessionFilePath, +} from "./config/sessions.ts"; diff --git a/src/plugins/loader.ts b/src/plugins/loader.ts index 6ea8a2215b..5618048240 100644 --- a/src/plugins/loader.ts +++ b/src/plugins/loader.ts @@ -45,14 +45,16 @@ const defaultLogger = () => createSubsystemLogger("plugins"); const resolvePluginSdkAlias = (): string | null => { try { const modulePath = fileURLToPath(import.meta.url); - const isDistRuntime = modulePath.split(path.sep).includes("dist"); - const preferDist = process.env.VITEST || process.env.NODE_ENV === "test" || isDistRuntime; + const isProduction = process.env.NODE_ENV === "production"; + const isTest = process.env.VITEST || process.env.NODE_ENV === "test"; let cursor = path.dirname(modulePath); for (let i = 0; i < 6; i += 1) { const srcCandidate = path.join(cursor, "src", "plugin-sdk", "index.ts"); const distCandidate = path.join(cursor, "dist", "plugin-sdk", "index.js"); - const orderedCandidates = preferDist - ? [distCandidate, srcCandidate] + const orderedCandidates = isProduction + ? isTest + ? [distCandidate, srcCandidate] + : [distCandidate] : [srcCandidate, distCandidate]; for (const candidate of orderedCandidates) { if (fs.existsSync(candidate)) { diff --git a/tsconfig.json b/tsconfig.json index 1c537b4059..98119ba606 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,7 @@ { "compilerOptions": { "allowSyntheticDefaultImports": true, + "allowImportingTsExtensions": true, "esModuleInterop": true, "forceConsistentCasingInFileNames": true, "module": "NodeNext", diff --git a/tsdown.config.ts b/tsdown.config.ts new file mode 100644 index 0000000000..c9f165b695 --- /dev/null +++ b/tsdown.config.ts @@ -0,0 +1,32 @@ +import { defineConfig } from "tsdown"; + +const env = { + NODE_ENV: "production", +}; + +export default defineConfig([ + { + entry: "src/index.ts", + env, + fixedExtension: false, + platform: "node", + }, + { + entry: "src/entry.ts", + env, + fixedExtension: false, + platform: "node", + }, + { + entry: "src/plugin-sdk/index.ts", + env, + fixedExtension: false, + platform: "node", + }, + { + entry: "src/extensionAPI.ts", + env, + fixedExtension: false, + platform: "node", + }, +]);