lightclaw2 0.0.1
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.md +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/src/channel.d.ts +11 -0
- package/dist/src/channel.d.ts.map +1 -0
- package/dist/src/channel.js +255 -0
- package/dist/src/channel.js.map +1 -0
- package/dist/src/config.d.ts +29 -0
- package/dist/src/config.d.ts.map +1 -0
- package/dist/src/config.js +99 -0
- package/dist/src/config.js.map +1 -0
- package/dist/src/dedup.d.ts +7 -0
- package/dist/src/dedup.d.ts.map +1 -0
- package/dist/src/dedup.js +52 -0
- package/dist/src/dedup.js.map +1 -0
- package/dist/src/gateway.d.ts +16 -0
- package/dist/src/gateway.d.ts.map +1 -0
- package/dist/src/gateway.js +283 -0
- package/dist/src/gateway.js.map +1 -0
- package/dist/src/inbound.d.ts +18 -0
- package/dist/src/inbound.d.ts.map +1 -0
- package/dist/src/inbound.js +252 -0
- package/dist/src/inbound.js.map +1 -0
- package/dist/src/media.d.ts +12 -0
- package/dist/src/media.d.ts.map +1 -0
- package/dist/src/media.js +87 -0
- package/dist/src/media.js.map +1 -0
- package/dist/src/outbound.d.ts +28 -0
- package/dist/src/outbound.d.ts.map +1 -0
- package/dist/src/outbound.js +172 -0
- package/dist/src/outbound.js.map +1 -0
- package/dist/src/runtime.d.ts +4 -0
- package/dist/src/runtime.d.ts.map +1 -0
- package/dist/src/runtime.js +11 -0
- package/dist/src/runtime.js.map +1 -0
- package/dist/src/session-history.d.ts +88 -0
- package/dist/src/session-history.d.ts.map +1 -0
- package/dist/src/session-history.js +545 -0
- package/dist/src/session-history.js.map +1 -0
- package/dist/src/socket-handlers.d.ts +21 -0
- package/dist/src/socket-handlers.d.ts.map +1 -0
- package/dist/src/socket-handlers.js +120 -0
- package/dist/src/socket-handlers.js.map +1 -0
- package/dist/src/socket-registry.d.ts +53 -0
- package/dist/src/socket-registry.d.ts.map +1 -0
- package/dist/src/socket-registry.js +115 -0
- package/dist/src/socket-registry.js.map +1 -0
- package/dist/src/types.d.ts +100 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +10 -0
- package/dist/src/types.js.map +1 -0
- package/node_modules/@socket.io/component-emitter/LICENSE +24 -0
- package/node_modules/@socket.io/component-emitter/Readme.md +79 -0
- package/node_modules/@socket.io/component-emitter/lib/cjs/index.d.ts +179 -0
- package/node_modules/@socket.io/component-emitter/lib/cjs/index.js +176 -0
- package/node_modules/@socket.io/component-emitter/lib/cjs/package.json +4 -0
- package/node_modules/@socket.io/component-emitter/lib/esm/index.d.ts +179 -0
- package/node_modules/@socket.io/component-emitter/lib/esm/index.js +169 -0
- package/node_modules/@socket.io/component-emitter/lib/esm/package.json +4 -0
- package/node_modules/@socket.io/component-emitter/package.json +28 -0
- package/node_modules/debug/LICENSE +20 -0
- package/node_modules/debug/README.md +481 -0
- package/node_modules/debug/package.json +64 -0
- package/node_modules/debug/src/browser.js +272 -0
- package/node_modules/debug/src/common.js +292 -0
- package/node_modules/debug/src/index.js +10 -0
- package/node_modules/debug/src/node.js +263 -0
- package/node_modules/engine.io-client/LICENSE +22 -0
- package/node_modules/engine.io-client/README.md +331 -0
- package/node_modules/engine.io-client/build/cjs/browser-entrypoint.d.ts +3 -0
- package/node_modules/engine.io-client/build/cjs/browser-entrypoint.js +4 -0
- package/node_modules/engine.io-client/build/cjs/contrib/has-cors.d.ts +1 -0
- package/node_modules/engine.io-client/build/cjs/contrib/has-cors.js +14 -0
- package/node_modules/engine.io-client/build/cjs/contrib/parseqs.d.ts +15 -0
- package/node_modules/engine.io-client/build/cjs/contrib/parseqs.js +38 -0
- package/node_modules/engine.io-client/build/cjs/contrib/parseuri.d.ts +1 -0
- package/node_modules/engine.io-client/build/cjs/contrib/parseuri.js +67 -0
- package/node_modules/engine.io-client/build/cjs/globals.d.ts +4 -0
- package/node_modules/engine.io-client/build/cjs/globals.js +26 -0
- package/node_modules/engine.io-client/build/cjs/globals.node.d.ts +21 -0
- package/node_modules/engine.io-client/build/cjs/globals.node.js +97 -0
- package/node_modules/engine.io-client/build/cjs/index.d.ts +15 -0
- package/node_modules/engine.io-client/build/cjs/index.js +32 -0
- package/node_modules/engine.io-client/build/cjs/package.json +10 -0
- package/node_modules/engine.io-client/build/cjs/socket.d.ts +482 -0
- package/node_modules/engine.io-client/build/cjs/socket.js +765 -0
- package/node_modules/engine.io-client/build/cjs/transport.d.ts +106 -0
- package/node_modules/engine.io-client/build/cjs/transport.js +153 -0
- package/node_modules/engine.io-client/build/cjs/transports/index.d.ts +8 -0
- package/node_modules/engine.io-client/build/cjs/transports/index.js +11 -0
- package/node_modules/engine.io-client/build/cjs/transports/polling-fetch.d.ts +15 -0
- package/node_modules/engine.io-client/build/cjs/transports/polling-fetch.js +60 -0
- package/node_modules/engine.io-client/build/cjs/transports/polling-xhr.d.ts +108 -0
- package/node_modules/engine.io-client/build/cjs/transports/polling-xhr.js +285 -0
- package/node_modules/engine.io-client/build/cjs/transports/polling-xhr.node.d.ts +11 -0
- package/node_modules/engine.io-client/build/cjs/transports/polling-xhr.node.js +44 -0
- package/node_modules/engine.io-client/build/cjs/transports/polling.d.ts +52 -0
- package/node_modules/engine.io-client/build/cjs/transports/polling.js +165 -0
- package/node_modules/engine.io-client/build/cjs/transports/websocket.d.ts +36 -0
- package/node_modules/engine.io-client/build/cjs/transports/websocket.js +136 -0
- package/node_modules/engine.io-client/build/cjs/transports/websocket.node.d.ts +14 -0
- package/node_modules/engine.io-client/build/cjs/transports/websocket.node.js +68 -0
- package/node_modules/engine.io-client/build/cjs/transports/webtransport.d.ts +18 -0
- package/node_modules/engine.io-client/build/cjs/transports/webtransport.js +94 -0
- package/node_modules/engine.io-client/build/cjs/util.d.ts +7 -0
- package/node_modules/engine.io-client/build/cjs/util.js +65 -0
- package/node_modules/engine.io-client/build/esm/browser-entrypoint.d.ts +3 -0
- package/node_modules/engine.io-client/build/esm/browser-entrypoint.js +2 -0
- package/node_modules/engine.io-client/build/esm/contrib/has-cors.d.ts +1 -0
- package/node_modules/engine.io-client/build/esm/contrib/has-cors.js +11 -0
- package/node_modules/engine.io-client/build/esm/contrib/parseqs.d.ts +15 -0
- package/node_modules/engine.io-client/build/esm/contrib/parseqs.js +34 -0
- package/node_modules/engine.io-client/build/esm/contrib/parseuri.d.ts +1 -0
- package/node_modules/engine.io-client/build/esm/contrib/parseuri.js +64 -0
- package/node_modules/engine.io-client/build/esm/globals.d.ts +4 -0
- package/node_modules/engine.io-client/build/esm/globals.js +22 -0
- package/node_modules/engine.io-client/build/esm/globals.node.d.ts +21 -0
- package/node_modules/engine.io-client/build/esm/globals.node.js +91 -0
- package/node_modules/engine.io-client/build/esm/index.d.ts +15 -0
- package/node_modules/engine.io-client/build/esm/index.js +15 -0
- package/node_modules/engine.io-client/build/esm/package.json +10 -0
- package/node_modules/engine.io-client/build/esm/socket.d.ts +482 -0
- package/node_modules/engine.io-client/build/esm/socket.js +727 -0
- package/node_modules/engine.io-client/build/esm/transport.d.ts +106 -0
- package/node_modules/engine.io-client/build/esm/transport.js +142 -0
- package/node_modules/engine.io-client/build/esm/transports/index.d.ts +8 -0
- package/node_modules/engine.io-client/build/esm/transports/index.js +8 -0
- package/node_modules/engine.io-client/build/esm/transports/polling-fetch.d.ts +15 -0
- package/node_modules/engine.io-client/build/esm/transports/polling-fetch.js +56 -0
- package/node_modules/engine.io-client/build/esm/transports/polling-xhr.d.ts +108 -0
- package/node_modules/engine.io-client/build/esm/transports/polling-xhr.js +271 -0
- package/node_modules/engine.io-client/build/esm/transports/polling-xhr.node.d.ts +11 -0
- package/node_modules/engine.io-client/build/esm/transports/polling-xhr.node.js +17 -0
- package/node_modules/engine.io-client/build/esm/transports/polling.d.ts +52 -0
- package/node_modules/engine.io-client/build/esm/transports/polling.js +145 -0
- package/node_modules/engine.io-client/build/esm/transports/websocket.d.ts +36 -0
- package/node_modules/engine.io-client/build/esm/transports/websocket.js +125 -0
- package/node_modules/engine.io-client/build/esm/transports/websocket.node.d.ts +14 -0
- package/node_modules/engine.io-client/build/esm/transports/websocket.node.js +41 -0
- package/node_modules/engine.io-client/build/esm/transports/webtransport.d.ts +18 -0
- package/node_modules/engine.io-client/build/esm/transports/webtransport.js +80 -0
- package/node_modules/engine.io-client/build/esm/util.d.ts +7 -0
- package/node_modules/engine.io-client/build/esm/util.js +59 -0
- package/node_modules/engine.io-client/build/esm-debug/browser-entrypoint.d.ts +3 -0
- package/node_modules/engine.io-client/build/esm-debug/browser-entrypoint.js +2 -0
- package/node_modules/engine.io-client/build/esm-debug/contrib/has-cors.d.ts +1 -0
- package/node_modules/engine.io-client/build/esm-debug/contrib/has-cors.js +11 -0
- package/node_modules/engine.io-client/build/esm-debug/contrib/parseqs.d.ts +15 -0
- package/node_modules/engine.io-client/build/esm-debug/contrib/parseqs.js +34 -0
- package/node_modules/engine.io-client/build/esm-debug/contrib/parseuri.d.ts +1 -0
- package/node_modules/engine.io-client/build/esm-debug/contrib/parseuri.js +64 -0
- package/node_modules/engine.io-client/build/esm-debug/globals.d.ts +4 -0
- package/node_modules/engine.io-client/build/esm-debug/globals.js +22 -0
- package/node_modules/engine.io-client/build/esm-debug/globals.node.d.ts +21 -0
- package/node_modules/engine.io-client/build/esm-debug/globals.node.js +91 -0
- package/node_modules/engine.io-client/build/esm-debug/index.d.ts +15 -0
- package/node_modules/engine.io-client/build/esm-debug/index.js +15 -0
- package/node_modules/engine.io-client/build/esm-debug/package.json +10 -0
- package/node_modules/engine.io-client/build/esm-debug/socket.d.ts +482 -0
- package/node_modules/engine.io-client/build/esm-debug/socket.js +756 -0
- package/node_modules/engine.io-client/build/esm-debug/transport.d.ts +106 -0
- package/node_modules/engine.io-client/build/esm-debug/transport.js +145 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/index.d.ts +8 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/index.js +8 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/polling-fetch.d.ts +15 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/polling-fetch.js +56 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/polling-xhr.d.ts +108 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/polling-xhr.js +276 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/polling-xhr.node.d.ts +11 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/polling-xhr.node.js +17 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/polling.d.ts +52 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/polling.js +158 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/websocket.d.ts +36 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/websocket.js +128 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/websocket.node.d.ts +14 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/websocket.node.js +41 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/webtransport.d.ts +18 -0
- package/node_modules/engine.io-client/build/esm-debug/transports/webtransport.js +87 -0
- package/node_modules/engine.io-client/build/esm-debug/util.d.ts +7 -0
- package/node_modules/engine.io-client/build/esm-debug/util.js +59 -0
- package/node_modules/engine.io-client/dist/engine.io.esm.min.js +7 -0
- package/node_modules/engine.io-client/dist/engine.io.esm.min.js.map +1 -0
- package/node_modules/engine.io-client/dist/engine.io.js +3064 -0
- package/node_modules/engine.io-client/dist/engine.io.js.map +1 -0
- package/node_modules/engine.io-client/dist/engine.io.min.js +7 -0
- package/node_modules/engine.io-client/dist/engine.io.min.js.map +1 -0
- package/node_modules/engine.io-client/node_modules/ws/LICENSE +20 -0
- package/node_modules/engine.io-client/node_modules/ws/README.md +548 -0
- package/node_modules/engine.io-client/node_modules/ws/browser.js +8 -0
- package/node_modules/engine.io-client/node_modules/ws/index.js +13 -0
- package/node_modules/engine.io-client/node_modules/ws/lib/buffer-util.js +131 -0
- package/node_modules/engine.io-client/node_modules/ws/lib/constants.js +18 -0
- package/node_modules/engine.io-client/node_modules/ws/lib/event-target.js +292 -0
- package/node_modules/engine.io-client/node_modules/ws/lib/extension.js +203 -0
- package/node_modules/engine.io-client/node_modules/ws/lib/limiter.js +55 -0
- package/node_modules/engine.io-client/node_modules/ws/lib/permessage-deflate.js +528 -0
- package/node_modules/engine.io-client/node_modules/ws/lib/receiver.js +706 -0
- package/node_modules/engine.io-client/node_modules/ws/lib/sender.js +602 -0
- package/node_modules/engine.io-client/node_modules/ws/lib/stream.js +161 -0
- package/node_modules/engine.io-client/node_modules/ws/lib/subprotocol.js +62 -0
- package/node_modules/engine.io-client/node_modules/ws/lib/validation.js +152 -0
- package/node_modules/engine.io-client/node_modules/ws/lib/websocket-server.js +550 -0
- package/node_modules/engine.io-client/node_modules/ws/lib/websocket.js +1388 -0
- package/node_modules/engine.io-client/node_modules/ws/package.json +69 -0
- package/node_modules/engine.io-client/node_modules/ws/wrapper.mjs +8 -0
- package/node_modules/engine.io-client/package.json +95 -0
- package/node_modules/engine.io-parser/LICENSE +22 -0
- package/node_modules/engine.io-parser/Readme.md +158 -0
- package/node_modules/engine.io-parser/build/cjs/commons.d.ts +14 -0
- package/node_modules/engine.io-parser/build/cjs/commons.js +19 -0
- package/node_modules/engine.io-parser/build/cjs/contrib/base64-arraybuffer.d.ts +2 -0
- package/node_modules/engine.io-parser/build/cjs/contrib/base64-arraybuffer.js +48 -0
- package/node_modules/engine.io-parser/build/cjs/decodePacket.browser.d.ts +2 -0
- package/node_modules/engine.io-parser/build/cjs/decodePacket.browser.js +66 -0
- package/node_modules/engine.io-parser/build/cjs/decodePacket.d.ts +2 -0
- package/node_modules/engine.io-parser/build/cjs/decodePacket.js +59 -0
- package/node_modules/engine.io-parser/build/cjs/encodePacket.browser.d.ts +4 -0
- package/node_modules/engine.io-parser/build/cjs/encodePacket.browser.js +72 -0
- package/node_modules/engine.io-parser/build/cjs/encodePacket.d.ts +3 -0
- package/node_modules/engine.io-parser/build/cjs/encodePacket.js +38 -0
- package/node_modules/engine.io-parser/build/cjs/index.d.ts +9 -0
- package/node_modules/engine.io-parser/build/cjs/index.js +164 -0
- package/node_modules/engine.io-parser/build/cjs/package.json +8 -0
- package/node_modules/engine.io-parser/build/esm/commons.d.ts +14 -0
- package/node_modules/engine.io-parser/build/esm/commons.js +14 -0
- package/node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.d.ts +2 -0
- package/node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js +43 -0
- package/node_modules/engine.io-parser/build/esm/decodePacket.browser.d.ts +2 -0
- package/node_modules/engine.io-parser/build/esm/decodePacket.browser.js +62 -0
- package/node_modules/engine.io-parser/build/esm/decodePacket.d.ts +2 -0
- package/node_modules/engine.io-parser/build/esm/decodePacket.js +55 -0
- package/node_modules/engine.io-parser/build/esm/encodePacket.browser.d.ts +4 -0
- package/node_modules/engine.io-parser/build/esm/encodePacket.browser.js +68 -0
- package/node_modules/engine.io-parser/build/esm/encodePacket.d.ts +3 -0
- package/node_modules/engine.io-parser/build/esm/encodePacket.js +33 -0
- package/node_modules/engine.io-parser/build/esm/index.d.ts +9 -0
- package/node_modules/engine.io-parser/build/esm/index.js +156 -0
- package/node_modules/engine.io-parser/build/esm/package.json +8 -0
- package/node_modules/engine.io-parser/package.json +46 -0
- package/node_modules/ms/index.js +162 -0
- package/node_modules/ms/license.md +21 -0
- package/node_modules/ms/package.json +38 -0
- package/node_modules/ms/readme.md +59 -0
- package/node_modules/socket.io-client/LICENSE +21 -0
- package/node_modules/socket.io-client/README.md +29 -0
- package/node_modules/socket.io-client/build/cjs/browser-entrypoint.d.ts +2 -0
- package/node_modules/socket.io-client/build/cjs/browser-entrypoint.js +4 -0
- package/node_modules/socket.io-client/build/cjs/contrib/backo2.d.ts +12 -0
- package/node_modules/socket.io-client/build/cjs/contrib/backo2.js +69 -0
- package/node_modules/socket.io-client/build/cjs/index.d.ts +29 -0
- package/node_modules/socket.io-client/build/cjs/index.js +76 -0
- package/node_modules/socket.io-client/build/cjs/manager.d.ts +295 -0
- package/node_modules/socket.io-client/build/cjs/manager.js +416 -0
- package/node_modules/socket.io-client/build/cjs/on.d.ts +2 -0
- package/node_modules/socket.io-client/build/cjs/on.js +9 -0
- package/node_modules/socket.io-client/build/cjs/socket.d.ts +593 -0
- package/node_modules/socket.io-client/build/cjs/socket.js +909 -0
- package/node_modules/socket.io-client/build/cjs/url.d.ts +33 -0
- package/node_modules/socket.io-client/build/cjs/url.js +69 -0
- package/node_modules/socket.io-client/build/esm/browser-entrypoint.d.ts +2 -0
- package/node_modules/socket.io-client/build/esm/browser-entrypoint.js +2 -0
- package/node_modules/socket.io-client/build/esm/contrib/backo2.d.ts +12 -0
- package/node_modules/socket.io-client/build/esm/contrib/backo2.js +66 -0
- package/node_modules/socket.io-client/build/esm/index.d.ts +29 -0
- package/node_modules/socket.io-client/build/esm/index.js +58 -0
- package/node_modules/socket.io-client/build/esm/manager.d.ts +295 -0
- package/node_modules/socket.io-client/build/esm/manager.js +367 -0
- package/node_modules/socket.io-client/build/esm/on.d.ts +2 -0
- package/node_modules/socket.io-client/build/esm/on.js +6 -0
- package/node_modules/socket.io-client/build/esm/package.json +5 -0
- package/node_modules/socket.io-client/build/esm/socket.d.ts +593 -0
- package/node_modules/socket.io-client/build/esm/socket.js +880 -0
- package/node_modules/socket.io-client/build/esm/url.d.ts +33 -0
- package/node_modules/socket.io-client/build/esm/url.js +59 -0
- package/node_modules/socket.io-client/build/esm-debug/browser-entrypoint.d.ts +2 -0
- package/node_modules/socket.io-client/build/esm-debug/browser-entrypoint.js +2 -0
- package/node_modules/socket.io-client/build/esm-debug/contrib/backo2.d.ts +12 -0
- package/node_modules/socket.io-client/build/esm-debug/contrib/backo2.js +66 -0
- package/node_modules/socket.io-client/build/esm-debug/index.d.ts +29 -0
- package/node_modules/socket.io-client/build/esm-debug/index.js +62 -0
- package/node_modules/socket.io-client/build/esm-debug/manager.d.ts +295 -0
- package/node_modules/socket.io-client/build/esm-debug/manager.js +386 -0
- package/node_modules/socket.io-client/build/esm-debug/on.d.ts +2 -0
- package/node_modules/socket.io-client/build/esm-debug/on.js +6 -0
- package/node_modules/socket.io-client/build/esm-debug/package.json +5 -0
- package/node_modules/socket.io-client/build/esm-debug/socket.d.ts +593 -0
- package/node_modules/socket.io-client/build/esm-debug/socket.js +902 -0
- package/node_modules/socket.io-client/build/esm-debug/url.d.ts +33 -0
- package/node_modules/socket.io-client/build/esm-debug/url.js +63 -0
- package/node_modules/socket.io-client/dist/socket.io.esm.min.js +7 -0
- package/node_modules/socket.io-client/dist/socket.io.esm.min.js.map +1 -0
- package/node_modules/socket.io-client/dist/socket.io.js +4955 -0
- package/node_modules/socket.io-client/dist/socket.io.js.map +1 -0
- package/node_modules/socket.io-client/dist/socket.io.min.js +7 -0
- package/node_modules/socket.io-client/dist/socket.io.min.js.map +1 -0
- package/node_modules/socket.io-client/dist/socket.io.msgpack.min.js +7 -0
- package/node_modules/socket.io-client/dist/socket.io.msgpack.min.js.map +1 -0
- package/node_modules/socket.io-client/package.json +101 -0
- package/node_modules/socket.io-parser/LICENSE +20 -0
- package/node_modules/socket.io-parser/Readme.md +81 -0
- package/node_modules/socket.io-parser/build/cjs/binary.d.ts +20 -0
- package/node_modules/socket.io-parser/build/cjs/binary.js +87 -0
- package/node_modules/socket.io-parser/build/cjs/index.d.ts +91 -0
- package/node_modules/socket.io-parser/build/cjs/index.js +359 -0
- package/node_modules/socket.io-parser/build/cjs/is-binary.d.ts +7 -0
- package/node_modules/socket.io-parser/build/cjs/is-binary.js +54 -0
- package/node_modules/socket.io-parser/build/cjs/package.json +3 -0
- package/node_modules/socket.io-parser/build/esm/binary.d.ts +20 -0
- package/node_modules/socket.io-parser/build/esm/binary.js +83 -0
- package/node_modules/socket.io-parser/build/esm/index.d.ts +91 -0
- package/node_modules/socket.io-parser/build/esm/index.js +348 -0
- package/node_modules/socket.io-parser/build/esm/is-binary.d.ts +7 -0
- package/node_modules/socket.io-parser/build/esm/is-binary.js +50 -0
- package/node_modules/socket.io-parser/build/esm/package.json +3 -0
- package/node_modules/socket.io-parser/build/esm-debug/binary.d.ts +20 -0
- package/node_modules/socket.io-parser/build/esm-debug/binary.js +83 -0
- package/node_modules/socket.io-parser/build/esm-debug/index.d.ts +91 -0
- package/node_modules/socket.io-parser/build/esm-debug/index.js +353 -0
- package/node_modules/socket.io-parser/build/esm-debug/is-binary.d.ts +7 -0
- package/node_modules/socket.io-parser/build/esm-debug/is-binary.js +50 -0
- package/node_modules/socket.io-parser/build/esm-debug/package.json +3 -0
- package/node_modules/socket.io-parser/package.json +44 -0
- package/node_modules/xmlhttprequest-ssl/LICENSE +22 -0
- package/node_modules/xmlhttprequest-ssl/README.md +67 -0
- package/node_modules/xmlhttprequest-ssl/lib/XMLHttpRequest.js +689 -0
- package/node_modules/xmlhttprequest-ssl/package.json +40 -0
- package/openclaw.plugin.json +17 -0
- package/package.json +61 -0
- package/skills/lightclaw-cron/SKILL.md +381 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LightClaw — 媒体文件处理工具
|
|
3
|
+
*/
|
|
4
|
+
import * as path from "node:path";
|
|
5
|
+
// ============================================================
|
|
6
|
+
// 解析 data URL → Buffer
|
|
7
|
+
// ============================================================
|
|
8
|
+
export function parseDataUrl(dataUrl) {
|
|
9
|
+
const match = dataUrl.match(/^data:([^;]+);base64,(.+)$/);
|
|
10
|
+
if (!match)
|
|
11
|
+
return null;
|
|
12
|
+
return { mimeType: match[1], buffer: Buffer.from(match[2], "base64") };
|
|
13
|
+
}
|
|
14
|
+
// ============================================================
|
|
15
|
+
// 格式化文件大小
|
|
16
|
+
// ============================================================
|
|
17
|
+
export function formatFileSize(bytes) {
|
|
18
|
+
if (bytes < 1024)
|
|
19
|
+
return `${bytes}B`;
|
|
20
|
+
if (bytes < 1024 * 1024)
|
|
21
|
+
return `${(bytes / 1024).toFixed(1)}KB`;
|
|
22
|
+
if (bytes < 1024 * 1024 * 1024)
|
|
23
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)}MB`;
|
|
24
|
+
return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)}GB`;
|
|
25
|
+
}
|
|
26
|
+
// ============================================================
|
|
27
|
+
// MIME 类型猜测
|
|
28
|
+
// ============================================================
|
|
29
|
+
export function guessMimeByExt(ext) {
|
|
30
|
+
const map = {
|
|
31
|
+
".png": "image/png", ".jpg": "image/jpeg", ".jpeg": "image/jpeg",
|
|
32
|
+
".gif": "image/gif", ".webp": "image/webp", ".svg": "image/svg+xml",
|
|
33
|
+
".mp3": "audio/mpeg", ".wav": "audio/wav", ".ogg": "audio/ogg",
|
|
34
|
+
".mp4": "video/mp4", ".webm": "video/webm",
|
|
35
|
+
".pdf": "application/pdf", ".txt": "text/plain",
|
|
36
|
+
};
|
|
37
|
+
return map[ext] || "application/octet-stream";
|
|
38
|
+
}
|
|
39
|
+
// ============================================================
|
|
40
|
+
// 将 AI 引擎返回的 mediaUrl 列表转为 files[] 格式
|
|
41
|
+
// ============================================================
|
|
42
|
+
export async function mediaUrlsToFiles(urls, log) {
|
|
43
|
+
const files = [];
|
|
44
|
+
const { readFileSync, existsSync } = await import("node:fs");
|
|
45
|
+
for (const url of urls) {
|
|
46
|
+
try {
|
|
47
|
+
let buffer;
|
|
48
|
+
let mimeType;
|
|
49
|
+
let name;
|
|
50
|
+
if (url.startsWith("data:")) {
|
|
51
|
+
const parsed = parseDataUrl(url);
|
|
52
|
+
if (!parsed)
|
|
53
|
+
continue;
|
|
54
|
+
buffer = parsed.buffer;
|
|
55
|
+
mimeType = parsed.mimeType;
|
|
56
|
+
name = "file";
|
|
57
|
+
}
|
|
58
|
+
else if (url.startsWith("http://") || url.startsWith("https://")) {
|
|
59
|
+
const resp = await fetch(url);
|
|
60
|
+
if (!resp.ok)
|
|
61
|
+
continue;
|
|
62
|
+
buffer = Buffer.from(await resp.arrayBuffer());
|
|
63
|
+
mimeType = resp.headers.get("content-type") || "application/octet-stream";
|
|
64
|
+
name = url.split("/").pop()?.split("?")[0] || "file";
|
|
65
|
+
}
|
|
66
|
+
else if (existsSync(url)) {
|
|
67
|
+
buffer = readFileSync(url);
|
|
68
|
+
const ext = path.extname(url).toLowerCase();
|
|
69
|
+
mimeType = guessMimeByExt(ext);
|
|
70
|
+
name = path.basename(url);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
files.push({
|
|
76
|
+
name,
|
|
77
|
+
mimeType,
|
|
78
|
+
bytes: `data:${mimeType};base64,${buffer.toString("base64")}`,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
log?.warn?.(`[mediaUrlsToFiles] Failed to convert ${url}: ${err}`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return files;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=media.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/media.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LightClaw — 出站消息适配器
|
|
3
|
+
*
|
|
4
|
+
* 处理 OpenClaw 框架层的主动消息发送(非 deliver 回调场景)。
|
|
5
|
+
* 例如:用户通过 /message 命令发消息、cron 定时任务触发等。
|
|
6
|
+
*
|
|
7
|
+
* 发送策略:
|
|
8
|
+
* 1. 优先通过 gateway 的 WS 长连接发送(socket-registry)
|
|
9
|
+
* 2. WS 不可用时 fallback 到 REST API(需配置 apiBaseUrl)
|
|
10
|
+
*/
|
|
11
|
+
import type { ChannelOutboundContext } from "openclaw/plugin-sdk";
|
|
12
|
+
/**
|
|
13
|
+
* 发送文本消息
|
|
14
|
+
* 由 channel.outbound.sendText 调用
|
|
15
|
+
*/
|
|
16
|
+
export declare function sendText(ctx: ChannelOutboundContext): Promise<{
|
|
17
|
+
channel: string;
|
|
18
|
+
messageId: string;
|
|
19
|
+
}>;
|
|
20
|
+
/**
|
|
21
|
+
* 发送媒体消息
|
|
22
|
+
* 由 channel.outbound.sendMedia 调用
|
|
23
|
+
*/
|
|
24
|
+
export declare function sendMedia(ctx: ChannelOutboundContext): Promise<{
|
|
25
|
+
channel: string;
|
|
26
|
+
messageId: string;
|
|
27
|
+
}>;
|
|
28
|
+
//# sourceMappingURL=outbound.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outbound.d.ts","sourceRoot":"","sources":["../../src/outbound.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AA2ElE;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,sBAAsB;;;GA0CzD;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,sBAAsB;;;GAmD1D"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LightClaw — 出站消息适配器
|
|
3
|
+
*
|
|
4
|
+
* 处理 OpenClaw 框架层的主动消息发送(非 deliver 回调场景)。
|
|
5
|
+
* 例如:用户通过 /message 命令发消息、cron 定时任务触发等。
|
|
6
|
+
*
|
|
7
|
+
* 发送策略:
|
|
8
|
+
* 1. 优先通过 gateway 的 WS 长连接发送(socket-registry)
|
|
9
|
+
* 2. WS 不可用时 fallback 到 REST API(需配置 apiBaseUrl)
|
|
10
|
+
*/
|
|
11
|
+
import { resolveAccount, CHANNEL_KEY, DEFAULT_ACCOUNT_ID } from "./config.js";
|
|
12
|
+
import { getAssistantRuntime } from "./runtime.js";
|
|
13
|
+
import { getSocket, bufferMessage, hasEntry, getBotClientId } from "./socket-registry.js";
|
|
14
|
+
/** 获取日志器 */
|
|
15
|
+
function getLogger() {
|
|
16
|
+
return getAssistantRuntime().logging.getChildLogger({ module: "outbound" });
|
|
17
|
+
}
|
|
18
|
+
/** 生成消息 ID */
|
|
19
|
+
let outboundMsgCounter = 0;
|
|
20
|
+
function generateOutboundMsgId() {
|
|
21
|
+
const ts = Date.now().toString(36);
|
|
22
|
+
const rand = Math.random().toString(36).substring(2, 8);
|
|
23
|
+
const seq = (outboundMsgCounter++).toString(36);
|
|
24
|
+
return `ob-${ts}-${rand}-${seq}`;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* 解析目标用户 ID:去掉 channel 前缀和 dm/group 前缀
|
|
28
|
+
*/
|
|
29
|
+
function resolveTarget(to) {
|
|
30
|
+
return to
|
|
31
|
+
.replace(new RegExp(`^${CHANNEL_KEY}:`, "i"), "")
|
|
32
|
+
.replace(/^(dm|group):/, "");
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* 通过 WS 发送消息。
|
|
36
|
+
*
|
|
37
|
+
* 策略:
|
|
38
|
+
* 1. socket connected → 直接发送
|
|
39
|
+
* 2. socket 断开但 entry 存在(正在重连中)→ 缓冲消息,重连后自动 flush
|
|
40
|
+
* 3. entry 不存在 → 返回 null(gateway 尚未启动或已销毁)
|
|
41
|
+
*/
|
|
42
|
+
function sendViaSocket(accountId, target, text, replyToId) {
|
|
43
|
+
const resolvedAccountId = accountId || DEFAULT_ACCOUNT_ID;
|
|
44
|
+
const entry = getSocket(resolvedAccountId);
|
|
45
|
+
const msgId = generateOutboundMsgId();
|
|
46
|
+
const message = {
|
|
47
|
+
msgId,
|
|
48
|
+
from: entry?.botClientId ?? getBotClientId(resolvedAccountId) ?? "",
|
|
49
|
+
to: target,
|
|
50
|
+
content: text,
|
|
51
|
+
timestamp: Date.now(),
|
|
52
|
+
replyToMsgId: replyToId ?? undefined,
|
|
53
|
+
};
|
|
54
|
+
if (entry) {
|
|
55
|
+
// Socket connected,直接发送
|
|
56
|
+
try {
|
|
57
|
+
entry.socket.emit("message:private", message);
|
|
58
|
+
getLogger().info(`[${CHANNEL_KEY}] outbound sent via WS: to=${target} msgId=${msgId}`);
|
|
59
|
+
return msgId;
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
getLogger().warn(`[${CHANNEL_KEY}] outbound WS emit failed: ${err}`);
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Socket 断开但 entry 存在(正在自动重连),缓冲消息
|
|
67
|
+
if (hasEntry(resolvedAccountId)) {
|
|
68
|
+
const buffered = bufferMessage(resolvedAccountId, message);
|
|
69
|
+
if (buffered) {
|
|
70
|
+
getLogger().info(`[${CHANNEL_KEY}] outbound buffered (WS reconnecting): to=${target} msgId=${msgId}`);
|
|
71
|
+
return msgId;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// Entry 不存在,gateway 未启动或已销毁
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* 发送文本消息
|
|
79
|
+
* 由 channel.outbound.sendText 调用
|
|
80
|
+
*/
|
|
81
|
+
export async function sendText(ctx) {
|
|
82
|
+
const log = getLogger();
|
|
83
|
+
try {
|
|
84
|
+
const account = resolveAccount(ctx.cfg, ctx.accountId);
|
|
85
|
+
const target = resolveTarget(ctx.to);
|
|
86
|
+
// 优先走 WS
|
|
87
|
+
const wsMsgId = sendViaSocket(account.accountId, target, ctx.text, ctx.replyToId);
|
|
88
|
+
if (wsMsgId) {
|
|
89
|
+
return { channel: CHANNEL_KEY, messageId: wsMsgId };
|
|
90
|
+
}
|
|
91
|
+
// Fallback: REST API
|
|
92
|
+
if (!account.apiBaseUrl) {
|
|
93
|
+
throw new Error("WS not connected and apiBaseUrl not configured, cannot send outbound message");
|
|
94
|
+
}
|
|
95
|
+
log.info(`[${CHANNEL_KEY}] outbound fallback to REST API: to=${target}`);
|
|
96
|
+
const resp = await fetch(`${account.apiBaseUrl}/send`, {
|
|
97
|
+
method: "POST",
|
|
98
|
+
headers: {
|
|
99
|
+
"Content-Type": "application/json",
|
|
100
|
+
Authorization: `Bearer ${account.apiKey}`,
|
|
101
|
+
},
|
|
102
|
+
body: JSON.stringify({
|
|
103
|
+
target,
|
|
104
|
+
text: ctx.text,
|
|
105
|
+
replyToMessageId: ctx.replyToId,
|
|
106
|
+
}),
|
|
107
|
+
});
|
|
108
|
+
if (!resp.ok) {
|
|
109
|
+
const errText = await resp.text();
|
|
110
|
+
throw new Error(`Send failed (${resp.status}): ${errText}`);
|
|
111
|
+
}
|
|
112
|
+
const data = (await resp.json());
|
|
113
|
+
return { channel: CHANNEL_KEY, messageId: data.messageId ?? `msg_${Date.now()}` };
|
|
114
|
+
}
|
|
115
|
+
catch (err) {
|
|
116
|
+
log.error(`[${CHANNEL_KEY}] outbound.sendText error: ${err}`);
|
|
117
|
+
throw err;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* 发送媒体消息
|
|
122
|
+
* 由 channel.outbound.sendMedia 调用
|
|
123
|
+
*/
|
|
124
|
+
export async function sendMedia(ctx) {
|
|
125
|
+
const log = getLogger();
|
|
126
|
+
try {
|
|
127
|
+
const account = resolveAccount(ctx.cfg, ctx.accountId);
|
|
128
|
+
const target = resolveTarget(ctx.to);
|
|
129
|
+
// 优先走 WS(媒体消息只发文本部分,因为 WS 不方便传大文件)
|
|
130
|
+
// 如果有 mediaUrl 且没有 REST API,仍用 WS 发文本
|
|
131
|
+
if (!ctx.mediaUrl) {
|
|
132
|
+
const wsMsgId = sendViaSocket(account.accountId, target, ctx.text, ctx.replyToId);
|
|
133
|
+
if (wsMsgId) {
|
|
134
|
+
return { channel: CHANNEL_KEY, messageId: wsMsgId };
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
// Fallback: REST API
|
|
138
|
+
if (!account.apiBaseUrl) {
|
|
139
|
+
// 没有 REST API 也没有 mediaUrl,用 WS 发文本
|
|
140
|
+
const wsMsgId = sendViaSocket(account.accountId, target, ctx.text, ctx.replyToId);
|
|
141
|
+
if (wsMsgId) {
|
|
142
|
+
return { channel: CHANNEL_KEY, messageId: wsMsgId };
|
|
143
|
+
}
|
|
144
|
+
throw new Error("WS not connected and apiBaseUrl not configured, cannot send outbound media");
|
|
145
|
+
}
|
|
146
|
+
log.info(`[${CHANNEL_KEY}] outbound media via REST API: to=${target}`);
|
|
147
|
+
const resp = await fetch(`${account.apiBaseUrl}/send-media`, {
|
|
148
|
+
method: "POST",
|
|
149
|
+
headers: {
|
|
150
|
+
"Content-Type": "application/json",
|
|
151
|
+
Authorization: `Bearer ${account.apiKey}`,
|
|
152
|
+
},
|
|
153
|
+
body: JSON.stringify({
|
|
154
|
+
target,
|
|
155
|
+
text: ctx.text,
|
|
156
|
+
mediaUrl: ctx.mediaUrl,
|
|
157
|
+
replyToMessageId: ctx.replyToId,
|
|
158
|
+
}),
|
|
159
|
+
});
|
|
160
|
+
if (!resp.ok) {
|
|
161
|
+
const errText = await resp.text();
|
|
162
|
+
throw new Error(`Send media failed (${resp.status}): ${errText}`);
|
|
163
|
+
}
|
|
164
|
+
const data = (await resp.json());
|
|
165
|
+
return { channel: CHANNEL_KEY, messageId: data.messageId ?? `msg_${Date.now()}` };
|
|
166
|
+
}
|
|
167
|
+
catch (err) {
|
|
168
|
+
log.error(`[${CHANNEL_KEY}] outbound.sendMedia error: ${err}`);
|
|
169
|
+
throw err;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=outbound.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outbound.js","sourceRoot":"","sources":["../../src/outbound.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKzD,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI,CAE3D;AAED,wBAAgB,mBAAmB,IAAI,aAAa,CAGnD"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CHANNEL_KEY } from "./config.js";
|
|
2
|
+
let runtime;
|
|
3
|
+
export function setAssistantRuntime(rt) {
|
|
4
|
+
runtime = rt;
|
|
5
|
+
}
|
|
6
|
+
export function getAssistantRuntime() {
|
|
7
|
+
if (!runtime)
|
|
8
|
+
throw new Error(`[${CHANNEL_KEY}] PluginRuntime not initialized — register() not called yet`);
|
|
9
|
+
return runtime;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,IAAI,OAAkC,CAAC;AAEvC,MAAM,UAAU,mBAAmB,CAAC,EAAiB;IACnD,OAAO,GAAG,EAAE,CAAC;AACf,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,IAAI,WAAW,6DAA6D,CAAC,CAAC;IAC5G,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LightClaw — Session History Reader
|
|
3
|
+
*
|
|
4
|
+
* 直接读取 OpenClaw Gateway 的 JSONL session 文件,获取持久化的对话历史。
|
|
5
|
+
* 文件路径: ~/.openclaw/agents/<agentId>/sessions/<sessionId>.jsonl
|
|
6
|
+
*
|
|
7
|
+
* JSONL 每行格式:
|
|
8
|
+
* { "type": "session", ... } ← session header (第一行)
|
|
9
|
+
* { "type": "message", "message": { ... }} ← 对话消息
|
|
10
|
+
* { "type": "compaction", ... } ← 上下文压缩标记
|
|
11
|
+
* { "type": "model_change", ... } ← 模型切换(跳过)
|
|
12
|
+
* { "type": "thinking_level_change", ... } ← 思考级别变更(跳过)
|
|
13
|
+
* { "type": "custom", ... } ← 自定义元数据(跳过)
|
|
14
|
+
*/
|
|
15
|
+
/** 文件附件信息(从消息文本中提取) */
|
|
16
|
+
export interface FileAttachmentInfo {
|
|
17
|
+
/** 原始文件名 */
|
|
18
|
+
name: string;
|
|
19
|
+
/** MIME 类型 */
|
|
20
|
+
mimeType?: string;
|
|
21
|
+
/** 文件大小描述(如 "3.0KB") */
|
|
22
|
+
size?: string;
|
|
23
|
+
/** 文件路径或 URI */
|
|
24
|
+
uri?: string;
|
|
25
|
+
}
|
|
26
|
+
/** 标准化后返回给前端的历史消息 */
|
|
27
|
+
export interface HistoryMessage {
|
|
28
|
+
role: "user" | "assistant" | "system" | "tool";
|
|
29
|
+
content: string;
|
|
30
|
+
timestamp?: number;
|
|
31
|
+
/** 消息中包含的工具调用(可选) */
|
|
32
|
+
toolCalls?: Array<{
|
|
33
|
+
name: string;
|
|
34
|
+
args?: string;
|
|
35
|
+
}>;
|
|
36
|
+
/** 消息中包含的工具结果(可选) */
|
|
37
|
+
toolResult?: {
|
|
38
|
+
toolCallId?: string;
|
|
39
|
+
name?: string;
|
|
40
|
+
output?: string;
|
|
41
|
+
};
|
|
42
|
+
/** AI 的思考过程(可选) */
|
|
43
|
+
thinking?: string;
|
|
44
|
+
/** 消息中包含的文件附件(可选) */
|
|
45
|
+
files?: FileAttachmentInfo[];
|
|
46
|
+
/** 压缩标记 */
|
|
47
|
+
isCompaction?: boolean;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* 根据 sessionKey 找到对应的 .jsonl transcript 文件路径
|
|
51
|
+
*/
|
|
52
|
+
export declare function resolveTranscriptPath(sessionKey: string, agentId?: string): string | null;
|
|
53
|
+
export interface ReadHistoryOptions {
|
|
54
|
+
/** 最大返回条数,默认 200 */
|
|
55
|
+
limit?: number;
|
|
56
|
+
/** Agent ID,默认 "default" */
|
|
57
|
+
agentId?: string;
|
|
58
|
+
/** 只返回 user/assistant 消息(过滤 system/tool),默认 false */
|
|
59
|
+
chatOnly?: boolean;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* 读取指定 sessionKey 的历史对话消息
|
|
63
|
+
*
|
|
64
|
+
* @param sessionKey - 会话标识(与 gateway.ts 中 route.sessionKey 一致)
|
|
65
|
+
* @param opts - 选项
|
|
66
|
+
* @returns 历史消息数组(按时间正序),如果找不到 session 返回空数组
|
|
67
|
+
*/
|
|
68
|
+
export declare function readSessionHistory(sessionKey: string, opts?: ReadHistoryOptions): HistoryMessage[];
|
|
69
|
+
/**
|
|
70
|
+
* 读取指定 sessionKey 的历史消息(从文件末尾读取,大文件性能更好)
|
|
71
|
+
*
|
|
72
|
+
* 对于大文件(>1MB),不读取整个文件,而是从末尾读取指定字节数。
|
|
73
|
+
*/
|
|
74
|
+
export declare function readSessionHistoryTail(sessionKey: string, opts?: ReadHistoryOptions & {
|
|
75
|
+
maxBytes?: number;
|
|
76
|
+
}): HistoryMessage[];
|
|
77
|
+
/**
|
|
78
|
+
* 列出所有已知的 session(从 sessions.json 索引读取)
|
|
79
|
+
*/
|
|
80
|
+
export declare function listSessions(agentId?: string): Array<{
|
|
81
|
+
sessionKey: string;
|
|
82
|
+
sessionId: string;
|
|
83
|
+
updatedAt?: number;
|
|
84
|
+
label?: string;
|
|
85
|
+
displayName?: string;
|
|
86
|
+
channel?: string;
|
|
87
|
+
}>;
|
|
88
|
+
//# sourceMappingURL=session-history.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-history.d.ts","sourceRoot":"","sources":["../../src/session-history.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAUH,uBAAuB;AACvB,MAAM,WAAW,kBAAkB;IACjC,YAAY;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,cAAc;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,qBAAqB;AACrB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qBAAqB;IACrB,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD,qBAAqB;IACrB,UAAU,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,mBAAmB;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qBAAqB;IACrB,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC7B,WAAW;IACX,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AA4ED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA0BzF;AAsVD,MAAM,WAAW,kBAAkB;IACjC,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,kBAAkB,GAAG,cAAc,EAAE,CA4DlG;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,kBAAkB,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAChD,cAAc,EAAE,CAuElB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC,CAaD"}
|