@vybestack/llxprt-ui 0.8.0-nightly.260112.d9cf7fbc6 → 0.8.0-nightly.260113.48db4b09b
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/bun.lock +31 -31
- package/package.json +2 -2
- package/src/hooks/useToolScheduler.ts +72 -20
package/bun.lock
CHANGED
|
@@ -36,21 +36,21 @@
|
|
|
36
36
|
},
|
|
37
37
|
},
|
|
38
38
|
"packages": {
|
|
39
|
-
"@babel/code-frame": ["@babel/code-frame@7.
|
|
39
|
+
"@babel/code-frame": ["@babel/code-frame@7.28.6", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.28.5", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q=="],
|
|
40
40
|
|
|
41
|
-
"@babel/compat-data": ["@babel/compat-data@7.28.
|
|
41
|
+
"@babel/compat-data": ["@babel/compat-data@7.28.6", "", {}, "sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg=="],
|
|
42
42
|
|
|
43
|
-
"@babel/core": ["@babel/core@7.28.
|
|
43
|
+
"@babel/core": ["@babel/core@7.28.6", "", { "dependencies": { "@babel/code-frame": "^7.28.6", "@babel/generator": "^7.28.6", "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-module-transforms": "^7.28.6", "@babel/helpers": "^7.28.6", "@babel/parser": "^7.28.6", "@babel/template": "^7.28.6", "@babel/traverse": "^7.28.6", "@babel/types": "^7.28.6", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw=="],
|
|
44
44
|
|
|
45
|
-
"@babel/generator": ["@babel/generator@7.28.
|
|
45
|
+
"@babel/generator": ["@babel/generator@7.28.6", "", { "dependencies": { "@babel/parser": "^7.28.6", "@babel/types": "^7.28.6", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" } }, "sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw=="],
|
|
46
46
|
|
|
47
|
-
"@babel/helper-compilation-targets": ["@babel/helper-compilation-targets@7.
|
|
47
|
+
"@babel/helper-compilation-targets": ["@babel/helper-compilation-targets@7.28.6", "", { "dependencies": { "@babel/compat-data": "^7.28.6", "@babel/helper-validator-option": "^7.27.1", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" } }, "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA=="],
|
|
48
48
|
|
|
49
49
|
"@babel/helper-globals": ["@babel/helper-globals@7.28.0", "", {}, "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw=="],
|
|
50
50
|
|
|
51
|
-
"@babel/helper-module-imports": ["@babel/helper-module-imports@7.
|
|
51
|
+
"@babel/helper-module-imports": ["@babel/helper-module-imports@7.28.6", "", { "dependencies": { "@babel/traverse": "^7.28.6", "@babel/types": "^7.28.6" } }, "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw=="],
|
|
52
52
|
|
|
53
|
-
"@babel/helper-module-transforms": ["@babel/helper-module-transforms@7.28.
|
|
53
|
+
"@babel/helper-module-transforms": ["@babel/helper-module-transforms@7.28.6", "", { "dependencies": { "@babel/helper-module-imports": "^7.28.6", "@babel/helper-validator-identifier": "^7.28.5", "@babel/traverse": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA=="],
|
|
54
54
|
|
|
55
55
|
"@babel/helper-string-parser": ["@babel/helper-string-parser@7.27.1", "", {}, "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="],
|
|
56
56
|
|
|
@@ -58,17 +58,17 @@
|
|
|
58
58
|
|
|
59
59
|
"@babel/helper-validator-option": ["@babel/helper-validator-option@7.27.1", "", {}, "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg=="],
|
|
60
60
|
|
|
61
|
-
"@babel/helpers": ["@babel/helpers@7.28.
|
|
61
|
+
"@babel/helpers": ["@babel/helpers@7.28.6", "", { "dependencies": { "@babel/template": "^7.28.6", "@babel/types": "^7.28.6" } }, "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw=="],
|
|
62
62
|
|
|
63
|
-
"@babel/parser": ["@babel/parser@7.28.
|
|
63
|
+
"@babel/parser": ["@babel/parser@7.28.6", "", { "dependencies": { "@babel/types": "^7.28.6" }, "bin": "./bin/babel-parser.js" }, "sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ=="],
|
|
64
64
|
|
|
65
|
-
"@babel/runtime": ["@babel/runtime@7.28.
|
|
65
|
+
"@babel/runtime": ["@babel/runtime@7.28.6", "", {}, "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA=="],
|
|
66
66
|
|
|
67
|
-
"@babel/template": ["@babel/template@7.
|
|
67
|
+
"@babel/template": ["@babel/template@7.28.6", "", { "dependencies": { "@babel/code-frame": "^7.28.6", "@babel/parser": "^7.28.6", "@babel/types": "^7.28.6" } }, "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ=="],
|
|
68
68
|
|
|
69
|
-
"@babel/traverse": ["@babel/traverse@7.28.
|
|
69
|
+
"@babel/traverse": ["@babel/traverse@7.28.6", "", { "dependencies": { "@babel/code-frame": "^7.28.6", "@babel/generator": "^7.28.6", "@babel/helper-globals": "^7.28.0", "@babel/parser": "^7.28.6", "@babel/template": "^7.28.6", "@babel/types": "^7.28.6", "debug": "^4.3.1" } }, "sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg=="],
|
|
70
70
|
|
|
71
|
-
"@babel/types": ["@babel/types@7.28.
|
|
71
|
+
"@babel/types": ["@babel/types@7.28.6", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" } }, "sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg=="],
|
|
72
72
|
|
|
73
73
|
"@dimforge/rapier2d-simd-compat": ["@dimforge/rapier2d-simd-compat@0.17.3", "", {}, "sha512-bijvwWz6NHsNj5e5i1vtd3dU2pDhthSaTUZSh14DUGGKJfw8eMnlWZsxwHBxB/a3AXVNDjL9abuHw1k9FGR+jg=="],
|
|
74
74
|
|
|
@@ -274,41 +274,41 @@
|
|
|
274
274
|
|
|
275
275
|
"@types/whatwg-mimetype": ["@types/whatwg-mimetype@3.0.2", "", {}, "sha512-c2AKvDT8ToxLIOUlN51gTiHXflsfIFisS4pO7pDPoKouJCESkhZnEy623gwP9laCy5lnLDAw1vAzu2vM2YLOrA=="],
|
|
276
276
|
|
|
277
|
-
"@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.
|
|
277
|
+
"@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.53.0", "", { "dependencies": { "@eslint-community/regexpp": "^4.12.2", "@typescript-eslint/scope-manager": "8.53.0", "@typescript-eslint/type-utils": "8.53.0", "@typescript-eslint/utils": "8.53.0", "@typescript-eslint/visitor-keys": "8.53.0", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.4.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.53.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-eEXsVvLPu8Z4PkFibtuFJLJOTAV/nPdgtSjkGoPpddpFk3/ym2oy97jynY6ic2m6+nc5M8SE1e9v/mHKsulcJg=="],
|
|
278
278
|
|
|
279
|
-
"@typescript-eslint/parser": ["@typescript-eslint/parser@8.
|
|
279
|
+
"@typescript-eslint/parser": ["@typescript-eslint/parser@8.53.0", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.53.0", "@typescript-eslint/types": "8.53.0", "@typescript-eslint/typescript-estree": "8.53.0", "@typescript-eslint/visitor-keys": "8.53.0", "debug": "^4.4.3" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-npiaib8XzbjtzS2N4HlqPvlpxpmZ14FjSJrteZpPxGUaYPlvhzlzUZ4mZyABo0EFrOWnvyd0Xxroq//hKhtAWg=="],
|
|
280
280
|
|
|
281
|
-
"@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.
|
|
281
|
+
"@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.53.0", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.53.0", "@typescript-eslint/types": "^8.53.0", "debug": "^4.4.3" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-Bl6Gdr7NqkqIP5yP9z1JU///Nmes4Eose6L1HwpuVHwScgDPPuEWbUVhvlZmb8hy0vX9syLk5EGNL700WcBlbg=="],
|
|
282
282
|
|
|
283
|
-
"@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.
|
|
283
|
+
"@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.53.0", "", { "dependencies": { "@typescript-eslint/types": "8.53.0", "@typescript-eslint/visitor-keys": "8.53.0" } }, "sha512-kWNj3l01eOGSdVBnfAF2K1BTh06WS0Yet6JUgb9Cmkqaz3Jlu0fdVUjj9UI8gPidBWSMqDIglmEXifSgDT/D0g=="],
|
|
284
284
|
|
|
285
|
-
"@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.
|
|
285
|
+
"@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.53.0", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-K6Sc0R5GIG6dNoPdOooQ+KtvT5KCKAvTcY8h2rIuul19vxH5OTQk7ArKkd4yTzkw66WnNY0kPPzzcmWA+XRmiA=="],
|
|
286
286
|
|
|
287
|
-
"@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.
|
|
287
|
+
"@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.53.0", "", { "dependencies": { "@typescript-eslint/types": "8.53.0", "@typescript-eslint/typescript-estree": "8.53.0", "@typescript-eslint/utils": "8.53.0", "debug": "^4.4.3", "ts-api-utils": "^2.4.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-BBAUhlx7g4SmcLhn8cnbxoxtmS7hcq39xKCgiutL3oNx1TaIp+cny51s8ewnKMpVUKQUGb41RAUWZ9kxYdovuw=="],
|
|
288
288
|
|
|
289
|
-
"@typescript-eslint/types": ["@typescript-eslint/types@8.
|
|
289
|
+
"@typescript-eslint/types": ["@typescript-eslint/types@8.53.0", "", {}, "sha512-Bmh9KX31Vlxa13+PqPvt4RzKRN1XORYSLlAE+sO1i28NkisGbTtSLFVB3l7PWdHtR3E0mVMuC7JilWJ99m2HxQ=="],
|
|
290
290
|
|
|
291
|
-
"@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.
|
|
291
|
+
"@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.53.0", "", { "dependencies": { "@typescript-eslint/project-service": "8.53.0", "@typescript-eslint/tsconfig-utils": "8.53.0", "@typescript-eslint/types": "8.53.0", "@typescript-eslint/visitor-keys": "8.53.0", "debug": "^4.4.3", "minimatch": "^9.0.5", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.4.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-pw0c0Gdo7Z4xOG987u3nJ8akL9093yEEKv8QTJ+Bhkghj1xyj8cgPaavlr9rq8h7+s6plUJ4QJYw2gCZodqmGw=="],
|
|
292
292
|
|
|
293
|
-
"@typescript-eslint/utils": ["@typescript-eslint/utils@8.
|
|
293
|
+
"@typescript-eslint/utils": ["@typescript-eslint/utils@8.53.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", "@typescript-eslint/scope-manager": "8.53.0", "@typescript-eslint/types": "8.53.0", "@typescript-eslint/typescript-estree": "8.53.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-XDY4mXTez3Z1iRDI5mbRhH4DFSt46oaIFsLg+Zn97+sYrXACziXSQcSelMybnVZ5pa1P6xYkPr5cMJyunM1ZDA=="],
|
|
294
294
|
|
|
295
|
-
"@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.
|
|
295
|
+
"@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.53.0", "", { "dependencies": { "@typescript-eslint/types": "8.53.0", "eslint-visitor-keys": "^4.2.1" } }, "sha512-LZ2NqIHFhvFwxG0qZeLL9DvdNAHPGCY5dIRwBhyYeU+LfLhcStE1ImjsuTG/WaVh3XysGaeLW8Rqq7cGkPCFvw=="],
|
|
296
296
|
|
|
297
297
|
"@vitest/eslint-plugin": ["@vitest/eslint-plugin@1.6.6", "", { "dependencies": { "@typescript-eslint/scope-manager": "^8.51.0", "@typescript-eslint/utils": "^8.51.0" }, "peerDependencies": { "eslint": ">=8.57.0", "typescript": ">=5.0.0", "vitest": "*" }, "optionalPeers": ["typescript", "vitest"] }, "sha512-bwgQxQWRtnTVzsUHK824tBmHzjV0iTx3tZaiQIYDjX3SA7TsQS8CuDVqxXrRY3FaOUMgbGavesCxI9MOfFLm7Q=="],
|
|
298
298
|
|
|
299
|
-
"@vitest/expect": ["@vitest/expect@4.0.
|
|
299
|
+
"@vitest/expect": ["@vitest/expect@4.0.17", "", { "dependencies": { "@standard-schema/spec": "^1.0.0", "@types/chai": "^5.2.2", "@vitest/spy": "4.0.17", "@vitest/utils": "4.0.17", "chai": "^6.2.1", "tinyrainbow": "^3.0.3" } }, "sha512-mEoqP3RqhKlbmUmntNDDCJeTDavDR+fVYkSOw8qRwJFaW/0/5zA9zFeTrHqNtcmwh6j26yMmwx2PqUDPzt5ZAQ=="],
|
|
300
300
|
|
|
301
|
-
"@vitest/mocker": ["@vitest/mocker@4.0.
|
|
301
|
+
"@vitest/mocker": ["@vitest/mocker@4.0.17", "", { "dependencies": { "@vitest/spy": "4.0.17", "estree-walker": "^3.0.3", "magic-string": "^0.30.21" }, "peerDependencies": { "msw": "^2.4.9", "vite": "^6.0.0 || ^7.0.0-0" }, "optionalPeers": ["msw", "vite"] }, "sha512-+ZtQhLA3lDh1tI2wxe3yMsGzbp7uuJSWBM1iTIKCbppWTSBN09PUC+L+fyNlQApQoR+Ps8twt2pbSSXg2fQVEQ=="],
|
|
302
302
|
|
|
303
|
-
"@vitest/pretty-format": ["@vitest/pretty-format@4.0.
|
|
303
|
+
"@vitest/pretty-format": ["@vitest/pretty-format@4.0.17", "", { "dependencies": { "tinyrainbow": "^3.0.3" } }, "sha512-Ah3VAYmjcEdHg6+MwFE17qyLqBHZ+ni2ScKCiW2XrlSBV4H3Z7vYfPfz7CWQ33gyu76oc0Ai36+kgLU3rfF4nw=="],
|
|
304
304
|
|
|
305
|
-
"@vitest/runner": ["@vitest/runner@4.0.
|
|
305
|
+
"@vitest/runner": ["@vitest/runner@4.0.17", "", { "dependencies": { "@vitest/utils": "4.0.17", "pathe": "^2.0.3" } }, "sha512-JmuQyf8aMWoo/LmNFppdpkfRVHJcsgzkbCA+/Bk7VfNH7RE6Ut2qxegeyx2j3ojtJtKIbIGy3h+KxGfYfk28YQ=="],
|
|
306
306
|
|
|
307
|
-
"@vitest/snapshot": ["@vitest/snapshot@4.0.
|
|
307
|
+
"@vitest/snapshot": ["@vitest/snapshot@4.0.17", "", { "dependencies": { "@vitest/pretty-format": "4.0.17", "magic-string": "^0.30.21", "pathe": "^2.0.3" } }, "sha512-npPelD7oyL+YQM2gbIYvlavlMVWUfNNGZPcu0aEUQXt7FXTuqhmgiYupPnAanhKvyP6Srs2pIbWo30K0RbDtRQ=="],
|
|
308
308
|
|
|
309
|
-
"@vitest/spy": ["@vitest/spy@4.0.
|
|
309
|
+
"@vitest/spy": ["@vitest/spy@4.0.17", "", {}, "sha512-I1bQo8QaP6tZlTomQNWKJE6ym4SHf3oLS7ceNjozxxgzavRAgZDc06T7kD8gb9bXKEgcLNt00Z+kZO6KaJ62Ew=="],
|
|
310
310
|
|
|
311
|
-
"@vitest/utils": ["@vitest/utils@4.0.
|
|
311
|
+
"@vitest/utils": ["@vitest/utils@4.0.17", "", { "dependencies": { "@vitest/pretty-format": "4.0.17", "tinyrainbow": "^3.0.3" } }, "sha512-RG6iy+IzQpa9SB8HAFHJ9Y+pTzI+h8553MrciN9eC6TFBErqrQaTas4vG+MVj8S4uKk8uTT2p0vgZPnTdxd96w=="],
|
|
312
312
|
|
|
313
313
|
"@vybestack/opentui-core": ["@vybestack/opentui-core@0.1.62", "", { "dependencies": { "bun-ffi-structs": "0.1.2", "diff": "8.0.2", "sharp": "0.33.5", "yoga-layout": "3.2.1" }, "optionalDependencies": { "@dimforge/rapier2d-simd-compat": "^0.17.3", "@vybestack/opentui-core-darwin-arm64": "0.1.62", "@vybestack/opentui-core-darwin-x64": "0.1.62", "@vybestack/opentui-core-linux-arm64": "0.1.62", "@vybestack/opentui-core-linux-x64": "0.1.62", "@vybestack/opentui-core-win32-arm64": "0.1.62", "@vybestack/opentui-core-win32-x64": "0.1.62", "bun-webgpu": "0.1.4", "planck": "^1.4.2", "three": "0.177.0" }, "peerDependencies": { "web-tree-sitter": "0.25.10" } }, "sha512-7bV642znET0E7HS+aaNKFaMRWXYkQGVZbXgE1IWdgQMHCjO/McZ5Z6EFREhnVY7BfnsEoQnS8cwP6DO9vNAhPw=="],
|
|
314
314
|
|
|
@@ -884,7 +884,7 @@
|
|
|
884
884
|
|
|
885
885
|
"vite": ["vite@7.3.1", "", { "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA=="],
|
|
886
886
|
|
|
887
|
-
"vitest": ["vitest@4.0.
|
|
887
|
+
"vitest": ["vitest@4.0.17", "", { "dependencies": { "@vitest/expect": "4.0.17", "@vitest/mocker": "4.0.17", "@vitest/pretty-format": "4.0.17", "@vitest/runner": "4.0.17", "@vitest/snapshot": "4.0.17", "@vitest/spy": "4.0.17", "@vitest/utils": "4.0.17", "es-module-lexer": "^1.7.0", "expect-type": "^1.2.2", "magic-string": "^0.30.21", "obug": "^2.1.1", "pathe": "^2.0.3", "picomatch": "^4.0.3", "std-env": "^3.10.0", "tinybench": "^2.9.0", "tinyexec": "^1.0.2", "tinyglobby": "^0.2.15", "tinyrainbow": "^3.0.3", "vite": "^6.0.0 || ^7.0.0", "why-is-node-running": "^2.3.0" }, "peerDependencies": { "@edge-runtime/vm": "*", "@opentelemetry/api": "^1.9.0", "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", "@vitest/browser-playwright": "4.0.17", "@vitest/browser-preview": "4.0.17", "@vitest/browser-webdriverio": "4.0.17", "@vitest/ui": "4.0.17", "happy-dom": "*", "jsdom": "*" }, "optionalPeers": ["@edge-runtime/vm", "@opentelemetry/api", "@types/node", "@vitest/browser-playwright", "@vitest/browser-preview", "@vitest/browser-webdriverio", "@vitest/ui", "happy-dom", "jsdom"], "bin": { "vitest": "vitest.mjs" } }, "sha512-FQMeF0DJdWY0iOnbv466n/0BudNdKj1l5jYgl5JVTwjSsZSlqyXFt/9+1sEyhR6CLowbZpV7O1sCHrzBhucKKg=="],
|
|
888
888
|
|
|
889
889
|
"web-tree-sitter": ["web-tree-sitter@0.25.10", "", { "peerDependencies": { "@types/emscripten": "^1.40.0" }, "optionalPeers": ["@types/emscripten"] }, "sha512-Y09sF44/13XvgVKgO2cNDw5rGk6s26MgoZPXLESvMXeefBf7i6/73eFurre0IsTW6E14Y0ArIzhUMmjoc7xyzA=="],
|
|
890
890
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vybestack/llxprt-ui",
|
|
3
|
-
"version": "0.8.0-nightly.
|
|
3
|
+
"version": "0.8.0-nightly.260113.48db4b09b",
|
|
4
4
|
"description": "Experimental terminal UI for llxprt-code",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.ts",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"react": "^19.2.1"
|
|
42
42
|
},
|
|
43
43
|
"peerDependencies": {
|
|
44
|
-
"@vybestack/llxprt-code-core": "^0.8.0-nightly.
|
|
44
|
+
"@vybestack/llxprt-code-core": "^0.8.0-nightly.260113.48db4b09b"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@eslint/js": "^9.39.1",
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { useCallback, useState, useRef, useEffect } from 'react';
|
|
2
|
-
import type {
|
|
3
|
-
|
|
2
|
+
import type {
|
|
3
|
+
Config,
|
|
4
|
+
ToolCallRequestInfo,
|
|
5
|
+
ToolConfirmationOutcome,
|
|
4
6
|
CoreToolScheduler,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
type ToolConfirmationOutcome,
|
|
7
|
+
ToolCall as CoreToolCall,
|
|
8
|
+
CompletedToolCall,
|
|
9
|
+
WaitingToolCall,
|
|
10
|
+
ExecutingToolCall,
|
|
11
|
+
CancelledToolCall,
|
|
12
|
+
ToolCallConfirmationDetails,
|
|
12
13
|
} from '@vybestack/llxprt-code-core';
|
|
13
14
|
import type { ToolStatus } from '../types/events';
|
|
14
15
|
import { getLogger } from '../lib/logger';
|
|
@@ -270,6 +271,12 @@ export function useToolScheduler(
|
|
|
270
271
|
): UseToolSchedulerResult {
|
|
271
272
|
const [toolCalls, setToolCalls] = useState<TrackedToolCall[]>([]);
|
|
272
273
|
const schedulerRef = useRef<CoreToolScheduler | null>(null);
|
|
274
|
+
const pendingScheduleRequests = useRef<
|
|
275
|
+
{
|
|
276
|
+
request: ToolCallRequestInfo | ToolCallRequestInfo[];
|
|
277
|
+
signal: AbortSignal;
|
|
278
|
+
}[]
|
|
279
|
+
>([]);
|
|
273
280
|
|
|
274
281
|
// Use refs to store callbacks so they don't trigger effect re-runs
|
|
275
282
|
const onCompleteRef = useRef<OnCompleteCallback>(onAllToolCallsComplete);
|
|
@@ -291,14 +298,23 @@ export function useToolScheduler(
|
|
|
291
298
|
return;
|
|
292
299
|
}
|
|
293
300
|
|
|
301
|
+
const sessionId = config.getSessionId();
|
|
302
|
+
let mounted = true;
|
|
303
|
+
|
|
294
304
|
const handleOutputUpdate = (
|
|
295
305
|
toolCallId: string,
|
|
296
306
|
outputChunk: string,
|
|
297
307
|
): void => {
|
|
308
|
+
if (!mounted) {
|
|
309
|
+
return;
|
|
310
|
+
}
|
|
298
311
|
setToolCalls((prev) => applyOutputUpdate(prev, toolCallId, outputChunk));
|
|
299
312
|
};
|
|
300
313
|
|
|
301
314
|
const handleToolCallsUpdate = (updatedCalls: CoreToolCall[]): void => {
|
|
315
|
+
if (!mounted) {
|
|
316
|
+
return;
|
|
317
|
+
}
|
|
302
318
|
setToolCalls((prevCalls) => {
|
|
303
319
|
if (updatedCalls.length === 0) {
|
|
304
320
|
return [];
|
|
@@ -315,6 +331,9 @@ export function useToolScheduler(
|
|
|
315
331
|
const handleAllComplete = async (
|
|
316
332
|
completedToolCalls: CompletedToolCall[],
|
|
317
333
|
): Promise<void> => {
|
|
334
|
+
if (!mounted) {
|
|
335
|
+
return;
|
|
336
|
+
}
|
|
318
337
|
logger.debug(
|
|
319
338
|
'handleAllComplete called',
|
|
320
339
|
'toolCount:',
|
|
@@ -332,20 +351,50 @@ export function useToolScheduler(
|
|
|
332
351
|
handleToolCallsUpdate([]);
|
|
333
352
|
};
|
|
334
353
|
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
354
|
+
// Use the singleton scheduler from config to ensure all schedulers in a session
|
|
355
|
+
// share the same CoreToolScheduler instance, avoiding duplicate MessageBus
|
|
356
|
+
// subscriptions and "unknown correlationId" errors.
|
|
357
|
+
const initializeScheduler = async () => {
|
|
358
|
+
try {
|
|
359
|
+
const scheduler = await config.getOrCreateScheduler(sessionId, {
|
|
360
|
+
outputUpdateHandler: handleOutputUpdate,
|
|
361
|
+
onAllToolCallsComplete: handleAllComplete,
|
|
362
|
+
onToolCallsUpdate: handleToolCallsUpdate,
|
|
363
|
+
getPreferredEditor: () => undefined,
|
|
364
|
+
onEditorClose: () => {
|
|
365
|
+
/* no-op */
|
|
366
|
+
},
|
|
367
|
+
});
|
|
368
|
+
|
|
369
|
+
if (!mounted) {
|
|
370
|
+
config.disposeScheduler(sessionId);
|
|
371
|
+
return;
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
schedulerRef.current = scheduler;
|
|
375
|
+
|
|
376
|
+
if (pendingScheduleRequests.current.length > 0) {
|
|
377
|
+
for (const { request, signal } of pendingScheduleRequests.current) {
|
|
378
|
+
if (signal.aborted) {
|
|
379
|
+
continue;
|
|
380
|
+
}
|
|
381
|
+
void scheduler.schedule(request, signal);
|
|
382
|
+
}
|
|
383
|
+
pendingScheduleRequests.current = [];
|
|
384
|
+
}
|
|
385
|
+
} catch (error) {
|
|
386
|
+
logger.error('Failed to initialize scheduler:', error);
|
|
387
|
+
if (mounted) {
|
|
388
|
+
schedulerRef.current = null;
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
};
|
|
345
392
|
|
|
346
|
-
|
|
393
|
+
void initializeScheduler();
|
|
347
394
|
|
|
348
395
|
return () => {
|
|
396
|
+
mounted = false;
|
|
397
|
+
config.disposeScheduler(sessionId);
|
|
349
398
|
schedulerRef.current = null;
|
|
350
399
|
};
|
|
351
400
|
}, [config]);
|
|
@@ -359,7 +408,10 @@ export function useToolScheduler(
|
|
|
359
408
|
const scheduler = schedulerRef.current;
|
|
360
409
|
if (scheduler) {
|
|
361
410
|
void scheduler.schedule(request, signal);
|
|
411
|
+
return;
|
|
362
412
|
}
|
|
413
|
+
|
|
414
|
+
pendingScheduleRequests.current.push({ request, signal });
|
|
363
415
|
},
|
|
364
416
|
[],
|
|
365
417
|
);
|