lightclawbot 1.1.2-beta.0 → 1.2.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -1
- package/dist/index.js +38 -31
- package/dist/setup-entry.js +32 -0
- package/dist/src/channel.js +301 -257
- package/dist/src/channel.setup.js +16 -0
- package/dist/src/config.js +31 -124
- package/dist/src/dedup.js +0 -1
- package/dist/src/download-tool.js +0 -1
- package/dist/src/file-storage.js +2 -2
- package/dist/src/gateway.js +226 -178
- package/dist/src/history/cron-utils.js +0 -1
- package/dist/src/history/index.js +0 -1
- package/dist/src/history/message-parser.js +0 -1
- package/dist/src/history/session-reader.js +3 -1
- package/dist/src/history/session-store.js +0 -1
- package/dist/src/history/text-processing.js +0 -1
- package/dist/src/history/types.js +0 -1
- package/dist/src/inbound.js +183 -234
- package/dist/src/media.js +0 -1
- package/dist/src/messaging.js +65 -0
- package/dist/src/outbound.js +131 -45
- package/dist/src/runtime.js +29 -11
- package/dist/src/setup-core.js +27 -0
- package/dist/src/shared.js +141 -0
- package/dist/src/socket/handlers.js +72 -49
- package/dist/src/socket/index.js +0 -1
- package/dist/src/socket/native-socket.js +385 -0
- package/dist/src/socket/registry.js +0 -1
- package/dist/src/socket/reliable-emitter.js +188 -50
- package/dist/src/streaming/delta-tracker.js +140 -0
- package/dist/src/streaming/index.js +12 -0
- package/dist/src/streaming/stream-reply-sink.js +387 -0
- package/dist/src/streaming/types.js +4 -0
- package/dist/src/tools.js +13 -0
- package/dist/src/types.js +23 -2
- package/dist/src/upload-tool.js +0 -1
- package/dist/src/utils/account.js +73 -0
- package/dist/src/utils/common.js +48 -0
- package/dist/src/utils/index.js +2 -0
- package/node_modules/ws/index.js +22 -0
- package/node_modules/{engine.io-client/node_modules/ws → ws}/lib/constants.js +1 -0
- package/node_modules/{engine.io-client/node_modules/ws → ws}/lib/permessage-deflate.js +6 -6
- package/node_modules/{engine.io-client/node_modules/ws → ws}/lib/websocket-server.js +10 -6
- package/node_modules/{engine.io-client/node_modules/ws → ws}/lib/websocket.js +19 -14
- package/node_modules/{engine.io-client/node_modules/ws → ws}/package.json +4 -3
- package/node_modules/ws/wrapper.mjs +21 -0
- package/openclaw.plugin.json +0 -7
- package/package.json +8 -5
- package/dist/index.d.ts +0 -24
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/public/data/scripts/manifest.json +0 -11
- package/dist/public/data/scripts/upgrade.156d7999.sh +0 -384
- package/dist/public/data/scripts/upgrade.sh +0 -384
- package/dist/src/channel.d.ts +0 -11
- package/dist/src/channel.d.ts.map +0 -1
- package/dist/src/channel.js.map +0 -1
- package/dist/src/config.d.ts +0 -129
- package/dist/src/config.d.ts.map +0 -1
- package/dist/src/config.js.map +0 -1
- package/dist/src/dedup.d.ts +0 -12
- package/dist/src/dedup.d.ts.map +0 -1
- package/dist/src/dedup.js.map +0 -1
- package/dist/src/download-tool.d.ts +0 -32
- package/dist/src/download-tool.d.ts.map +0 -1
- package/dist/src/download-tool.js.map +0 -1
- package/dist/src/file-storage.d.ts +0 -74
- package/dist/src/file-storage.d.ts.map +0 -1
- package/dist/src/file-storage.js.map +0 -1
- package/dist/src/format-urls.d.ts +0 -26
- package/dist/src/format-urls.d.ts.map +0 -1
- package/dist/src/format-urls.js +0 -53
- package/dist/src/format-urls.js.map +0 -1
- package/dist/src/gateway.d.ts +0 -16
- package/dist/src/gateway.d.ts.map +0 -1
- package/dist/src/gateway.js.map +0 -1
- package/dist/src/history/cron-utils.d.ts +0 -76
- package/dist/src/history/cron-utils.d.ts.map +0 -1
- package/dist/src/history/cron-utils.js.map +0 -1
- package/dist/src/history/index.d.ts +0 -20
- package/dist/src/history/index.d.ts.map +0 -1
- package/dist/src/history/index.js.map +0 -1
- package/dist/src/history/message-parser.d.ts +0 -52
- package/dist/src/history/message-parser.d.ts.map +0 -1
- package/dist/src/history/message-parser.js.map +0 -1
- package/dist/src/history/session-reader.d.ts +0 -58
- package/dist/src/history/session-reader.d.ts.map +0 -1
- package/dist/src/history/session-reader.js.map +0 -1
- package/dist/src/history/session-store.d.ts +0 -42
- package/dist/src/history/session-store.d.ts.map +0 -1
- package/dist/src/history/session-store.js.map +0 -1
- package/dist/src/history/text-processing.d.ts +0 -41
- package/dist/src/history/text-processing.d.ts.map +0 -1
- package/dist/src/history/text-processing.js.map +0 -1
- package/dist/src/history/types.d.ts +0 -134
- package/dist/src/history/types.d.ts.map +0 -1
- package/dist/src/history/types.js.map +0 -1
- package/dist/src/inbound.d.ts +0 -18
- package/dist/src/inbound.d.ts.map +0 -1
- package/dist/src/inbound.js.map +0 -1
- package/dist/src/media.d.ts +0 -12
- package/dist/src/media.d.ts.map +0 -1
- package/dist/src/media.js.map +0 -1
- package/dist/src/outbound.d.ts +0 -28
- package/dist/src/outbound.d.ts.map +0 -1
- package/dist/src/outbound.js.map +0 -1
- package/dist/src/runtime.d.ts +0 -4
- package/dist/src/runtime.d.ts.map +0 -1
- package/dist/src/runtime.js.map +0 -1
- package/dist/src/socket/handlers.d.ts +0 -26
- package/dist/src/socket/handlers.d.ts.map +0 -1
- package/dist/src/socket/handlers.js.map +0 -1
- package/dist/src/socket/index.d.ts +0 -11
- package/dist/src/socket/index.d.ts.map +0 -1
- package/dist/src/socket/index.js.map +0 -1
- package/dist/src/socket/registry.d.ts +0 -59
- package/dist/src/socket/registry.d.ts.map +0 -1
- package/dist/src/socket/registry.js.map +0 -1
- package/dist/src/socket/reliable-emitter.d.ts +0 -79
- package/dist/src/socket/reliable-emitter.d.ts.map +0 -1
- package/dist/src/socket/reliable-emitter.js.map +0 -1
- package/dist/src/types.d.ts +0 -112
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/types.js.map +0 -1
- package/dist/src/upload-tool.d.ts +0 -27
- package/dist/src/upload-tool.d.ts.map +0 -1
- package/dist/src/upload-tool.js.map +0 -1
- package/node_modules/@socket.io/component-emitter/LICENSE +0 -24
- package/node_modules/@socket.io/component-emitter/Readme.md +0 -79
- package/node_modules/@socket.io/component-emitter/lib/cjs/index.d.ts +0 -179
- package/node_modules/@socket.io/component-emitter/lib/cjs/index.js +0 -176
- package/node_modules/@socket.io/component-emitter/lib/cjs/package.json +0 -4
- package/node_modules/@socket.io/component-emitter/lib/esm/index.d.ts +0 -179
- package/node_modules/@socket.io/component-emitter/lib/esm/index.js +0 -169
- package/node_modules/@socket.io/component-emitter/lib/esm/package.json +0 -4
- package/node_modules/@socket.io/component-emitter/package.json +0 -28
- package/node_modules/debug/LICENSE +0 -20
- package/node_modules/debug/README.md +0 -481
- package/node_modules/debug/package.json +0 -64
- package/node_modules/debug/src/browser.js +0 -272
- package/node_modules/debug/src/common.js +0 -292
- package/node_modules/debug/src/index.js +0 -10
- package/node_modules/debug/src/node.js +0 -263
- package/node_modules/engine.io-client/LICENSE +0 -22
- package/node_modules/engine.io-client/README.md +0 -331
- package/node_modules/engine.io-client/build/cjs/browser-entrypoint.d.ts +0 -3
- package/node_modules/engine.io-client/build/cjs/browser-entrypoint.js +0 -4
- package/node_modules/engine.io-client/build/cjs/contrib/has-cors.d.ts +0 -1
- package/node_modules/engine.io-client/build/cjs/contrib/has-cors.js +0 -14
- package/node_modules/engine.io-client/build/cjs/contrib/parseqs.d.ts +0 -15
- package/node_modules/engine.io-client/build/cjs/contrib/parseqs.js +0 -38
- package/node_modules/engine.io-client/build/cjs/contrib/parseuri.d.ts +0 -1
- package/node_modules/engine.io-client/build/cjs/contrib/parseuri.js +0 -67
- package/node_modules/engine.io-client/build/cjs/globals.d.ts +0 -4
- package/node_modules/engine.io-client/build/cjs/globals.js +0 -26
- package/node_modules/engine.io-client/build/cjs/globals.node.d.ts +0 -21
- package/node_modules/engine.io-client/build/cjs/globals.node.js +0 -97
- package/node_modules/engine.io-client/build/cjs/index.d.ts +0 -15
- package/node_modules/engine.io-client/build/cjs/index.js +0 -32
- package/node_modules/engine.io-client/build/cjs/package.json +0 -10
- package/node_modules/engine.io-client/build/cjs/socket.d.ts +0 -482
- package/node_modules/engine.io-client/build/cjs/socket.js +0 -765
- package/node_modules/engine.io-client/build/cjs/transport.d.ts +0 -106
- package/node_modules/engine.io-client/build/cjs/transport.js +0 -153
- package/node_modules/engine.io-client/build/cjs/transports/index.d.ts +0 -8
- package/node_modules/engine.io-client/build/cjs/transports/index.js +0 -11
- package/node_modules/engine.io-client/build/cjs/transports/polling-fetch.d.ts +0 -15
- package/node_modules/engine.io-client/build/cjs/transports/polling-fetch.js +0 -60
- package/node_modules/engine.io-client/build/cjs/transports/polling-xhr.d.ts +0 -108
- package/node_modules/engine.io-client/build/cjs/transports/polling-xhr.js +0 -285
- package/node_modules/engine.io-client/build/cjs/transports/polling-xhr.node.d.ts +0 -11
- package/node_modules/engine.io-client/build/cjs/transports/polling-xhr.node.js +0 -44
- package/node_modules/engine.io-client/build/cjs/transports/polling.d.ts +0 -52
- package/node_modules/engine.io-client/build/cjs/transports/polling.js +0 -165
- package/node_modules/engine.io-client/build/cjs/transports/websocket.d.ts +0 -36
- package/node_modules/engine.io-client/build/cjs/transports/websocket.js +0 -136
- package/node_modules/engine.io-client/build/cjs/transports/websocket.node.d.ts +0 -14
- package/node_modules/engine.io-client/build/cjs/transports/websocket.node.js +0 -68
- package/node_modules/engine.io-client/build/cjs/transports/webtransport.d.ts +0 -18
- package/node_modules/engine.io-client/build/cjs/transports/webtransport.js +0 -94
- package/node_modules/engine.io-client/build/cjs/util.d.ts +0 -7
- package/node_modules/engine.io-client/build/cjs/util.js +0 -65
- package/node_modules/engine.io-client/build/esm/browser-entrypoint.d.ts +0 -3
- package/node_modules/engine.io-client/build/esm/browser-entrypoint.js +0 -2
- package/node_modules/engine.io-client/build/esm/contrib/has-cors.d.ts +0 -1
- package/node_modules/engine.io-client/build/esm/contrib/has-cors.js +0 -11
- package/node_modules/engine.io-client/build/esm/contrib/parseqs.d.ts +0 -15
- package/node_modules/engine.io-client/build/esm/contrib/parseqs.js +0 -34
- package/node_modules/engine.io-client/build/esm/contrib/parseuri.d.ts +0 -1
- package/node_modules/engine.io-client/build/esm/contrib/parseuri.js +0 -64
- package/node_modules/engine.io-client/build/esm/globals.d.ts +0 -4
- package/node_modules/engine.io-client/build/esm/globals.js +0 -22
- package/node_modules/engine.io-client/build/esm/globals.node.d.ts +0 -21
- package/node_modules/engine.io-client/build/esm/globals.node.js +0 -91
- package/node_modules/engine.io-client/build/esm/index.d.ts +0 -15
- package/node_modules/engine.io-client/build/esm/index.js +0 -15
- package/node_modules/engine.io-client/build/esm/package.json +0 -10
- package/node_modules/engine.io-client/build/esm/socket.d.ts +0 -482
- package/node_modules/engine.io-client/build/esm/socket.js +0 -727
- package/node_modules/engine.io-client/build/esm/transport.d.ts +0 -106
- package/node_modules/engine.io-client/build/esm/transport.js +0 -142
- package/node_modules/engine.io-client/build/esm/transports/index.d.ts +0 -8
- package/node_modules/engine.io-client/build/esm/transports/index.js +0 -8
- package/node_modules/engine.io-client/build/esm/transports/polling-fetch.d.ts +0 -15
- package/node_modules/engine.io-client/build/esm/transports/polling-fetch.js +0 -56
- package/node_modules/engine.io-client/build/esm/transports/polling-xhr.d.ts +0 -108
- package/node_modules/engine.io-client/build/esm/transports/polling-xhr.js +0 -271
- package/node_modules/engine.io-client/build/esm/transports/polling-xhr.node.d.ts +0 -11
- package/node_modules/engine.io-client/build/esm/transports/polling-xhr.node.js +0 -17
- package/node_modules/engine.io-client/build/esm/transports/polling.d.ts +0 -52
- package/node_modules/engine.io-client/build/esm/transports/polling.js +0 -145
- package/node_modules/engine.io-client/build/esm/transports/websocket.d.ts +0 -36
- package/node_modules/engine.io-client/build/esm/transports/websocket.js +0 -125
- package/node_modules/engine.io-client/build/esm/transports/websocket.node.d.ts +0 -14
- package/node_modules/engine.io-client/build/esm/transports/websocket.node.js +0 -41
- package/node_modules/engine.io-client/build/esm/transports/webtransport.d.ts +0 -18
- package/node_modules/engine.io-client/build/esm/transports/webtransport.js +0 -80
- package/node_modules/engine.io-client/build/esm/util.d.ts +0 -7
- package/node_modules/engine.io-client/build/esm/util.js +0 -59
- package/node_modules/engine.io-client/build/esm-debug/browser-entrypoint.d.ts +0 -3
- package/node_modules/engine.io-client/build/esm-debug/browser-entrypoint.js +0 -2
- package/node_modules/engine.io-client/build/esm-debug/contrib/has-cors.d.ts +0 -1
- package/node_modules/engine.io-client/build/esm-debug/contrib/has-cors.js +0 -11
- package/node_modules/engine.io-client/build/esm-debug/contrib/parseqs.d.ts +0 -15
- package/node_modules/engine.io-client/build/esm-debug/contrib/parseqs.js +0 -34
- package/node_modules/engine.io-client/build/esm-debug/contrib/parseuri.d.ts +0 -1
- package/node_modules/engine.io-client/build/esm-debug/contrib/parseuri.js +0 -64
- package/node_modules/engine.io-client/build/esm-debug/globals.d.ts +0 -4
- package/node_modules/engine.io-client/build/esm-debug/globals.js +0 -22
- package/node_modules/engine.io-client/build/esm-debug/globals.node.d.ts +0 -21
- package/node_modules/engine.io-client/build/esm-debug/globals.node.js +0 -91
- package/node_modules/engine.io-client/build/esm-debug/index.d.ts +0 -15
- package/node_modules/engine.io-client/build/esm-debug/index.js +0 -15
- package/node_modules/engine.io-client/build/esm-debug/package.json +0 -10
- package/node_modules/engine.io-client/build/esm-debug/socket.d.ts +0 -482
- package/node_modules/engine.io-client/build/esm-debug/socket.js +0 -756
- package/node_modules/engine.io-client/build/esm-debug/transport.d.ts +0 -106
- package/node_modules/engine.io-client/build/esm-debug/transport.js +0 -145
- package/node_modules/engine.io-client/build/esm-debug/transports/index.d.ts +0 -8
- package/node_modules/engine.io-client/build/esm-debug/transports/index.js +0 -8
- package/node_modules/engine.io-client/build/esm-debug/transports/polling-fetch.d.ts +0 -15
- package/node_modules/engine.io-client/build/esm-debug/transports/polling-fetch.js +0 -56
- package/node_modules/engine.io-client/build/esm-debug/transports/polling-xhr.d.ts +0 -108
- package/node_modules/engine.io-client/build/esm-debug/transports/polling-xhr.js +0 -276
- package/node_modules/engine.io-client/build/esm-debug/transports/polling-xhr.node.d.ts +0 -11
- package/node_modules/engine.io-client/build/esm-debug/transports/polling-xhr.node.js +0 -17
- package/node_modules/engine.io-client/build/esm-debug/transports/polling.d.ts +0 -52
- package/node_modules/engine.io-client/build/esm-debug/transports/polling.js +0 -158
- package/node_modules/engine.io-client/build/esm-debug/transports/websocket.d.ts +0 -36
- package/node_modules/engine.io-client/build/esm-debug/transports/websocket.js +0 -128
- package/node_modules/engine.io-client/build/esm-debug/transports/websocket.node.d.ts +0 -14
- package/node_modules/engine.io-client/build/esm-debug/transports/websocket.node.js +0 -41
- package/node_modules/engine.io-client/build/esm-debug/transports/webtransport.d.ts +0 -18
- package/node_modules/engine.io-client/build/esm-debug/transports/webtransport.js +0 -87
- package/node_modules/engine.io-client/build/esm-debug/util.d.ts +0 -7
- package/node_modules/engine.io-client/build/esm-debug/util.js +0 -59
- package/node_modules/engine.io-client/dist/engine.io.esm.min.js +0 -7
- package/node_modules/engine.io-client/dist/engine.io.esm.min.js.map +0 -1
- package/node_modules/engine.io-client/dist/engine.io.js +0 -3064
- package/node_modules/engine.io-client/dist/engine.io.js.map +0 -1
- package/node_modules/engine.io-client/dist/engine.io.min.js +0 -7
- package/node_modules/engine.io-client/dist/engine.io.min.js.map +0 -1
- package/node_modules/engine.io-client/node_modules/ws/index.js +0 -13
- package/node_modules/engine.io-client/node_modules/ws/wrapper.mjs +0 -8
- package/node_modules/engine.io-client/package.json +0 -95
- package/node_modules/engine.io-parser/LICENSE +0 -22
- package/node_modules/engine.io-parser/Readme.md +0 -158
- package/node_modules/engine.io-parser/build/cjs/commons.d.ts +0 -14
- package/node_modules/engine.io-parser/build/cjs/commons.js +0 -19
- package/node_modules/engine.io-parser/build/cjs/contrib/base64-arraybuffer.d.ts +0 -2
- package/node_modules/engine.io-parser/build/cjs/contrib/base64-arraybuffer.js +0 -48
- package/node_modules/engine.io-parser/build/cjs/decodePacket.browser.d.ts +0 -2
- package/node_modules/engine.io-parser/build/cjs/decodePacket.browser.js +0 -66
- package/node_modules/engine.io-parser/build/cjs/decodePacket.d.ts +0 -2
- package/node_modules/engine.io-parser/build/cjs/decodePacket.js +0 -59
- package/node_modules/engine.io-parser/build/cjs/encodePacket.browser.d.ts +0 -4
- package/node_modules/engine.io-parser/build/cjs/encodePacket.browser.js +0 -72
- package/node_modules/engine.io-parser/build/cjs/encodePacket.d.ts +0 -3
- package/node_modules/engine.io-parser/build/cjs/encodePacket.js +0 -38
- package/node_modules/engine.io-parser/build/cjs/index.d.ts +0 -9
- package/node_modules/engine.io-parser/build/cjs/index.js +0 -164
- package/node_modules/engine.io-parser/build/cjs/package.json +0 -8
- package/node_modules/engine.io-parser/build/esm/commons.d.ts +0 -14
- package/node_modules/engine.io-parser/build/esm/commons.js +0 -14
- package/node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.d.ts +0 -2
- package/node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js +0 -43
- package/node_modules/engine.io-parser/build/esm/decodePacket.browser.d.ts +0 -2
- package/node_modules/engine.io-parser/build/esm/decodePacket.browser.js +0 -62
- package/node_modules/engine.io-parser/build/esm/decodePacket.d.ts +0 -2
- package/node_modules/engine.io-parser/build/esm/decodePacket.js +0 -55
- package/node_modules/engine.io-parser/build/esm/encodePacket.browser.d.ts +0 -4
- package/node_modules/engine.io-parser/build/esm/encodePacket.browser.js +0 -68
- package/node_modules/engine.io-parser/build/esm/encodePacket.d.ts +0 -3
- package/node_modules/engine.io-parser/build/esm/encodePacket.js +0 -33
- package/node_modules/engine.io-parser/build/esm/index.d.ts +0 -9
- package/node_modules/engine.io-parser/build/esm/index.js +0 -156
- package/node_modules/engine.io-parser/build/esm/package.json +0 -8
- package/node_modules/engine.io-parser/package.json +0 -46
- package/node_modules/ms/index.js +0 -162
- package/node_modules/ms/license.md +0 -21
- package/node_modules/ms/package.json +0 -38
- package/node_modules/ms/readme.md +0 -59
- package/node_modules/socket.io-client/LICENSE +0 -21
- package/node_modules/socket.io-client/README.md +0 -29
- package/node_modules/socket.io-client/build/cjs/browser-entrypoint.d.ts +0 -2
- package/node_modules/socket.io-client/build/cjs/browser-entrypoint.js +0 -4
- package/node_modules/socket.io-client/build/cjs/contrib/backo2.d.ts +0 -12
- package/node_modules/socket.io-client/build/cjs/contrib/backo2.js +0 -69
- package/node_modules/socket.io-client/build/cjs/index.d.ts +0 -29
- package/node_modules/socket.io-client/build/cjs/index.js +0 -76
- package/node_modules/socket.io-client/build/cjs/manager.d.ts +0 -295
- package/node_modules/socket.io-client/build/cjs/manager.js +0 -416
- package/node_modules/socket.io-client/build/cjs/on.d.ts +0 -2
- package/node_modules/socket.io-client/build/cjs/on.js +0 -9
- package/node_modules/socket.io-client/build/cjs/socket.d.ts +0 -593
- package/node_modules/socket.io-client/build/cjs/socket.js +0 -909
- package/node_modules/socket.io-client/build/cjs/url.d.ts +0 -33
- package/node_modules/socket.io-client/build/cjs/url.js +0 -69
- package/node_modules/socket.io-client/build/esm/browser-entrypoint.d.ts +0 -2
- package/node_modules/socket.io-client/build/esm/browser-entrypoint.js +0 -2
- package/node_modules/socket.io-client/build/esm/contrib/backo2.d.ts +0 -12
- package/node_modules/socket.io-client/build/esm/contrib/backo2.js +0 -66
- package/node_modules/socket.io-client/build/esm/index.d.ts +0 -29
- package/node_modules/socket.io-client/build/esm/index.js +0 -58
- package/node_modules/socket.io-client/build/esm/manager.d.ts +0 -295
- package/node_modules/socket.io-client/build/esm/manager.js +0 -367
- package/node_modules/socket.io-client/build/esm/on.d.ts +0 -2
- package/node_modules/socket.io-client/build/esm/on.js +0 -6
- package/node_modules/socket.io-client/build/esm/package.json +0 -5
- package/node_modules/socket.io-client/build/esm/socket.d.ts +0 -593
- package/node_modules/socket.io-client/build/esm/socket.js +0 -880
- package/node_modules/socket.io-client/build/esm/url.d.ts +0 -33
- package/node_modules/socket.io-client/build/esm/url.js +0 -59
- package/node_modules/socket.io-client/build/esm-debug/browser-entrypoint.d.ts +0 -2
- package/node_modules/socket.io-client/build/esm-debug/browser-entrypoint.js +0 -2
- package/node_modules/socket.io-client/build/esm-debug/contrib/backo2.d.ts +0 -12
- package/node_modules/socket.io-client/build/esm-debug/contrib/backo2.js +0 -66
- package/node_modules/socket.io-client/build/esm-debug/index.d.ts +0 -29
- package/node_modules/socket.io-client/build/esm-debug/index.js +0 -62
- package/node_modules/socket.io-client/build/esm-debug/manager.d.ts +0 -295
- package/node_modules/socket.io-client/build/esm-debug/manager.js +0 -386
- package/node_modules/socket.io-client/build/esm-debug/on.d.ts +0 -2
- package/node_modules/socket.io-client/build/esm-debug/on.js +0 -6
- package/node_modules/socket.io-client/build/esm-debug/package.json +0 -5
- package/node_modules/socket.io-client/build/esm-debug/socket.d.ts +0 -593
- package/node_modules/socket.io-client/build/esm-debug/socket.js +0 -902
- package/node_modules/socket.io-client/build/esm-debug/url.d.ts +0 -33
- package/node_modules/socket.io-client/build/esm-debug/url.js +0 -63
- package/node_modules/socket.io-client/dist/socket.io.esm.min.js +0 -7
- package/node_modules/socket.io-client/dist/socket.io.esm.min.js.map +0 -1
- package/node_modules/socket.io-client/dist/socket.io.js +0 -4955
- package/node_modules/socket.io-client/dist/socket.io.js.map +0 -1
- package/node_modules/socket.io-client/dist/socket.io.min.js +0 -7
- package/node_modules/socket.io-client/dist/socket.io.min.js.map +0 -1
- package/node_modules/socket.io-client/dist/socket.io.msgpack.min.js +0 -7
- package/node_modules/socket.io-client/dist/socket.io.msgpack.min.js.map +0 -1
- package/node_modules/socket.io-client/package.json +0 -101
- package/node_modules/socket.io-parser/LICENSE +0 -20
- package/node_modules/socket.io-parser/Readme.md +0 -81
- package/node_modules/socket.io-parser/build/cjs/binary.d.ts +0 -20
- package/node_modules/socket.io-parser/build/cjs/binary.js +0 -87
- package/node_modules/socket.io-parser/build/cjs/index.d.ts +0 -101
- package/node_modules/socket.io-parser/build/cjs/index.js +0 -367
- package/node_modules/socket.io-parser/build/cjs/is-binary.d.ts +0 -7
- package/node_modules/socket.io-parser/build/cjs/is-binary.js +0 -54
- package/node_modules/socket.io-parser/build/cjs/package.json +0 -3
- package/node_modules/socket.io-parser/build/esm/binary.d.ts +0 -20
- package/node_modules/socket.io-parser/build/esm/binary.js +0 -83
- package/node_modules/socket.io-parser/build/esm/index.d.ts +0 -101
- package/node_modules/socket.io-parser/build/esm/index.js +0 -356
- package/node_modules/socket.io-parser/build/esm/is-binary.d.ts +0 -7
- package/node_modules/socket.io-parser/build/esm/is-binary.js +0 -50
- package/node_modules/socket.io-parser/build/esm/package.json +0 -3
- package/node_modules/socket.io-parser/build/esm-debug/binary.d.ts +0 -20
- package/node_modules/socket.io-parser/build/esm-debug/binary.js +0 -83
- package/node_modules/socket.io-parser/build/esm-debug/index.d.ts +0 -101
- package/node_modules/socket.io-parser/build/esm-debug/index.js +0 -361
- package/node_modules/socket.io-parser/build/esm-debug/is-binary.d.ts +0 -7
- package/node_modules/socket.io-parser/build/esm-debug/is-binary.js +0 -50
- package/node_modules/socket.io-parser/build/esm-debug/package.json +0 -3
- package/node_modules/socket.io-parser/package.json +0 -44
- package/node_modules/xmlhttprequest-ssl/LICENSE +0 -22
- package/node_modules/xmlhttprequest-ssl/README.md +0 -67
- package/node_modules/xmlhttprequest-ssl/lib/XMLHttpRequest.js +0 -689
- package/node_modules/xmlhttprequest-ssl/package.json +0 -40
- /package/node_modules/{engine.io-client/node_modules/ws → ws}/LICENSE +0 -0
- /package/node_modules/{engine.io-client/node_modules/ws → ws}/README.md +0 -0
- /package/node_modules/{engine.io-client/node_modules/ws → ws}/browser.js +0 -0
- /package/node_modules/{engine.io-client/node_modules/ws → ws}/lib/buffer-util.js +0 -0
- /package/node_modules/{engine.io-client/node_modules/ws → ws}/lib/event-target.js +0 -0
- /package/node_modules/{engine.io-client/node_modules/ws → ws}/lib/extension.js +0 -0
- /package/node_modules/{engine.io-client/node_modules/ws → ws}/lib/limiter.js +0 -0
- /package/node_modules/{engine.io-client/node_modules/ws → ws}/lib/receiver.js +0 -0
- /package/node_modules/{engine.io-client/node_modules/ws → ws}/lib/sender.js +0 -0
- /package/node_modules/{engine.io-client/node_modules/ws → ws}/lib/stream.js +0 -0
- /package/node_modules/{engine.io-client/node_modules/ws → ws}/lib/subprotocol.js +0 -0
- /package/node_modules/{engine.io-client/node_modules/ws → ws}/lib/validation.js +0 -0
|
@@ -1,384 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
set -e
|
|
3
|
-
|
|
4
|
-
# ========== lightclawbot 插件快速安装/升级脚本 ==========
|
|
5
|
-
# 用途:跳过 openclaw plugins install 的慢路径,直接安装/升级 lightclawbot 插件
|
|
6
|
-
# 前提:openclaw 已安装且可用,pnpm 或 npm 已安装(不依赖 jq,JSON 操作统一用 node)
|
|
7
|
-
# 支持:首次安装 / 重装 / 升级,自动保留已有的 channels 配置
|
|
8
|
-
#
|
|
9
|
-
# 输出规范:stdout 输出多行,供前端逐行解析
|
|
10
|
-
# - 步骤进度:STEP:{"step":"step_id","message":"描述"}:
|
|
11
|
-
# 7 处 step_log 调用 分别在环境检查、版本检查、下载、解压、配置更新、设备审批、重启网关前输出
|
|
12
|
-
# STEP:{"step":"env_check","message":"checking environment"}
|
|
13
|
-
# STEP:{"step":"version_check","message":"checking version info"}
|
|
14
|
-
# STEP:{"step":"download","message":"downloading plugin"}
|
|
15
|
-
# STEP:{"step":"extract","message":"extracting and installing"}
|
|
16
|
-
# STEP:{"step":"config_update","message":"updating configuration"}
|
|
17
|
-
# STEP:{"step":"devices_approve","message":"approving devices"}
|
|
18
|
-
# STEP:{"step":"gateway_restart","message":"restarting gateway"}
|
|
19
|
-
# - 最终成功:RESULT:{"status":"ok","version":"x.y.z"}
|
|
20
|
-
# - 最终失败:RESULT:{"status":"error","reason":"..."}
|
|
21
|
-
#
|
|
22
|
-
# 使用方式:
|
|
23
|
-
# 本地执行: bash scripts/upgrade.sh
|
|
24
|
-
# CDN 执行: bash <(curl -fsSL https://your-cdn.com/upgrade.sh)
|
|
25
|
-
# 传入参数: APIKEY="sk-xxx" bash <(curl -fsSL https://your-cdn.com/upgrade.sh)
|
|
26
|
-
# 跳过重启: RESTART_GATEWAY=false APIKEY="sk-xxx" bash <(curl -fsSL https://your-cdn.com/upgrade.sh)
|
|
27
|
-
|
|
28
|
-
# ========== 工具函数 ==========
|
|
29
|
-
|
|
30
|
-
# 输出步骤进度,供前端逐行解析
|
|
31
|
-
step_log() {
|
|
32
|
-
local step="$1"
|
|
33
|
-
local message="$2"
|
|
34
|
-
echo "STEP:{\"step\":\"${step}\",\"message\":\"${message}\"}"
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
result_exit() {
|
|
38
|
-
local reason="$1"
|
|
39
|
-
echo "RESULT:{\"status\":\"error\",\"reason\":\"${reason}\"}"
|
|
40
|
-
exit 1
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
result_ok() {
|
|
44
|
-
echo "RESULT:{\"status\":\"ok\",\"version\":\"${1}\"}"
|
|
45
|
-
exit 0
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
# semver 比较:left >= right 返回 0,否则返回 1,解析失败返回 2
|
|
49
|
-
version_gte() {
|
|
50
|
-
local left="$1"
|
|
51
|
-
local right="$2"
|
|
52
|
-
VERSION_LEFT="$left" VERSION_RIGHT="$right" node - <<'NODE'
|
|
53
|
-
function parseSemver(value) {
|
|
54
|
-
const match = String(value || "").trim().match(/^(\d+)\.(\d+)\.(\d+)(?:[-+].*)?$/);
|
|
55
|
-
if (!match) return null;
|
|
56
|
-
return [Number(match[1]), Number(match[2]), Number(match[3])];
|
|
57
|
-
}
|
|
58
|
-
const left = parseSemver(process.env.VERSION_LEFT);
|
|
59
|
-
const right = parseSemver(process.env.VERSION_RIGHT);
|
|
60
|
-
if (!left || !right) process.exit(2);
|
|
61
|
-
for (let i = 0; i < 3; i++) {
|
|
62
|
-
if (left[i] > right[i]) process.exit(0);
|
|
63
|
-
if (left[i] < right[i]) process.exit(1);
|
|
64
|
-
}
|
|
65
|
-
process.exit(0);
|
|
66
|
-
NODE
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
# 获取本机 openclaw 版本号(纯数字 x.y.z 格式)
|
|
70
|
-
get_openclaw_version() {
|
|
71
|
-
if ! command -v openclaw &>/dev/null; then
|
|
72
|
-
echo ""
|
|
73
|
-
return
|
|
74
|
-
fi
|
|
75
|
-
local raw
|
|
76
|
-
raw=$(openclaw -v 2>/dev/null || true)
|
|
77
|
-
echo "$raw" | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | head -n1
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
# ========== 配置 ==========
|
|
81
|
-
|
|
82
|
-
id="lightclawbot"
|
|
83
|
-
spec="lightclawbot"
|
|
84
|
-
cfg="$HOME/.openclaw/openclaw.json"
|
|
85
|
-
plugin_dir="$HOME/.openclaw/extensions/${id}"
|
|
86
|
-
|
|
87
|
-
# npm 源:使用腾讯镜像源(可通过 NPM_REGISTRY 环境变量覆盖)
|
|
88
|
-
NPM_REGISTRY="${NPM_REGISTRY:-https://mirrors.tencent.com/npm/}"
|
|
89
|
-
# fallback 源:首选失败时兜底(可通过 NPM_FALLBACK 环境变量覆盖)
|
|
90
|
-
NPM_FALLBACK="${NPM_FALLBACK:-https://registry.npmjs.org}"
|
|
91
|
-
|
|
92
|
-
# API Key:优先读取环境变量,为空则保留配置文件中已有的值
|
|
93
|
-
# 用法:APIKEY="sk-xxx" bash <(curl -fsSL https://your-cdn.com/upgrade.sh)
|
|
94
|
-
APIKEY="${APIKEY:-}"
|
|
95
|
-
|
|
96
|
-
# 是否在安装/升级后重启 Gateway:默认 true,传入 false 可跳过重启
|
|
97
|
-
# 用法:RESTART_GATEWAY=false bash <(curl -fsSL https://your-cdn.com/upgrade.sh)
|
|
98
|
-
RESTART_GATEWAY="${RESTART_GATEWAY:-true}"
|
|
99
|
-
|
|
100
|
-
# openclaw 新老版本分界线:>= 此版本使用最新插件,< 此版本锁定 LEGACY_PLUGIN_VERSION
|
|
101
|
-
OPENCLAW_BREAKING_VERSION="2026.3.22"
|
|
102
|
-
LEGACY_PLUGIN_VERSION="1.0.8"
|
|
103
|
-
|
|
104
|
-
# openclaw = 此版本需要执行 devices approve
|
|
105
|
-
OPENCLAW_DEVICES_APPROVE_VERSION="2026.3.28"
|
|
106
|
-
|
|
107
|
-
# ========== 环境加载 ==========
|
|
108
|
-
# bash xxx.sh 启动的是非交互式 shell,不会自动 source ~/.bashrc,
|
|
109
|
-
# 如果用户通过 nvm 安装 node,脚本中的 node/pnpm/openclaw 都找不到。
|
|
110
|
-
|
|
111
|
-
export NVM_DIR="$HOME/.nvm"
|
|
112
|
-
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
|
113
|
-
|
|
114
|
-
if [ -z "$PNPM_HOME" ] && [ -d "$HOME/.local/share/pnpm" ]; then
|
|
115
|
-
export PNPM_HOME="$HOME/.local/share/pnpm"
|
|
116
|
-
export PATH="$PNPM_HOME:$PATH"
|
|
117
|
-
fi
|
|
118
|
-
|
|
119
|
-
[ ! -t 1 ] && export CI=true
|
|
120
|
-
|
|
121
|
-
# ========== 前置检查 ==========
|
|
122
|
-
|
|
123
|
-
step_log "env_check" "checking environment"
|
|
124
|
-
|
|
125
|
-
# 1) 探测包管理器:优先 pnpm,fallback npm,都没有则报错
|
|
126
|
-
if command -v pnpm &>/dev/null; then
|
|
127
|
-
PKG_MGR="pnpm"
|
|
128
|
-
elif command -v npm &>/dev/null; then
|
|
129
|
-
PKG_MGR="npm"
|
|
130
|
-
else
|
|
131
|
-
result_exit "npm_not_found"
|
|
132
|
-
fi
|
|
133
|
-
|
|
134
|
-
# 2) 检查 openclaw 是否可用
|
|
135
|
-
if ! openclaw -v &>/dev/null; then
|
|
136
|
-
result_exit "openclaw_not_available"
|
|
137
|
-
fi
|
|
138
|
-
|
|
139
|
-
# 3) 设置 npm/pnpm 源(确保后续 pack/install 都走镜像源)
|
|
140
|
-
npm config set registry "$NPM_REGISTRY" 2>/dev/null || true
|
|
141
|
-
[ "$PKG_MGR" = "pnpm" ] && pnpm config set registry "$NPM_REGISTRY" 2>/dev/null || true
|
|
142
|
-
|
|
143
|
-
# 4) 检查 APIKEY
|
|
144
|
-
if [ -z "$APIKEY" ]; then
|
|
145
|
-
result_exit "apikey_empty"
|
|
146
|
-
fi
|
|
147
|
-
|
|
148
|
-
# ========== 安装 / 升级 lightclawbot ==========
|
|
149
|
-
|
|
150
|
-
step_log "version_check" "checking version info"
|
|
151
|
-
|
|
152
|
-
# ---------- 检查是否已安装,获取本地版本 ----------
|
|
153
|
-
local_version=""
|
|
154
|
-
if [ -d "$plugin_dir" ] && [ -f "$plugin_dir/package.json" ]; then
|
|
155
|
-
local_version=$(node -e "try{console.log(JSON.parse(require('fs').readFileSync(process.argv[1],'utf8')).version||'')}catch(e){console.log('')}" "$plugin_dir/package.json" 2>/dev/null || true)
|
|
156
|
-
fi
|
|
157
|
-
|
|
158
|
-
# ---------- 获取 openclaw 版本,确定目标插件版本 ----------
|
|
159
|
-
openclaw_version=$(get_openclaw_version)
|
|
160
|
-
target_spec="$spec"
|
|
161
|
-
|
|
162
|
-
if [ -n "$openclaw_version" ]; then
|
|
163
|
-
if version_gte "$openclaw_version" "$OPENCLAW_BREAKING_VERSION"; then
|
|
164
|
-
# openclaw >= 2026.3.22 → 安装最新版插件
|
|
165
|
-
target_spec="$spec"
|
|
166
|
-
else
|
|
167
|
-
# openclaw < 2026.3.22 → 锁定旧版插件
|
|
168
|
-
target_spec="${spec}@${LEGACY_PLUGIN_VERSION}"
|
|
169
|
-
fi
|
|
170
|
-
fi
|
|
171
|
-
|
|
172
|
-
# ---------- 查询远程目标版本 ----------
|
|
173
|
-
remote_version=""
|
|
174
|
-
|
|
175
|
-
if [ -n "$openclaw_version" ] && ! version_gte "$openclaw_version" "$OPENCLAW_BREAKING_VERSION"; then
|
|
176
|
-
# 旧版 openclaw:版本已锁定
|
|
177
|
-
remote_version="$LEGACY_PLUGIN_VERSION"
|
|
178
|
-
else
|
|
179
|
-
remote_version=$(npm view "$spec" version 2>/dev/null || true)
|
|
180
|
-
|
|
181
|
-
if [ -z "$remote_version" ]; then
|
|
182
|
-
remote_version=$(npm view "$spec" version --registry "$NPM_FALLBACK" 2>/dev/null || true)
|
|
183
|
-
fi
|
|
184
|
-
fi
|
|
185
|
-
|
|
186
|
-
# ---------- 判断安装模式 ----------
|
|
187
|
-
install_mode="install"
|
|
188
|
-
if [ -n "$local_version" ]; then
|
|
189
|
-
if [ -n "$remote_version" ] && [ "$local_version" = "$remote_version" ]; then
|
|
190
|
-
install_mode="up-to-date"
|
|
191
|
-
else
|
|
192
|
-
install_mode="upgrade"
|
|
193
|
-
fi
|
|
194
|
-
fi
|
|
195
|
-
|
|
196
|
-
if [ "$install_mode" != "up-to-date" ]; then
|
|
197
|
-
# ---------- 清理旧版本 ----------
|
|
198
|
-
rm -rf "$plugin_dir"
|
|
199
|
-
|
|
200
|
-
step_log "download" "downloading plugin"
|
|
201
|
-
|
|
202
|
-
# ---------- npm pack 下载 tgz ----------
|
|
203
|
-
tmp_dir=$(mktemp -d /tmp/openclaw-plugin-XXXXXX)
|
|
204
|
-
|
|
205
|
-
tgz_file=$(cd "$tmp_dir" && npm pack "$target_spec" 2>/dev/null | tail -n1)
|
|
206
|
-
if [ -z "$tgz_file" ] || [ ! -f "$tmp_dir/$tgz_file" ]; then
|
|
207
|
-
tgz_file=$(cd "$tmp_dir" && npm pack "$target_spec" --registry "$NPM_FALLBACK" 2>/dev/null | tail -n1)
|
|
208
|
-
fi
|
|
209
|
-
if [ -z "$tgz_file" ] || [ ! -f "$tmp_dir/$tgz_file" ]; then
|
|
210
|
-
rm -rf "$tmp_dir"
|
|
211
|
-
result_exit "download_failed"
|
|
212
|
-
fi
|
|
213
|
-
|
|
214
|
-
step_log "extract" "extracting and installing"
|
|
215
|
-
|
|
216
|
-
# ---------- 解压到插件目录 ----------
|
|
217
|
-
mkdir -p "$plugin_dir"
|
|
218
|
-
tar -xzf "$tmp_dir/$tgz_file" -C "$plugin_dir" --strip-components=1
|
|
219
|
-
rm -rf "$tmp_dir"
|
|
220
|
-
|
|
221
|
-
# ---------- 安装生产依赖 ----------
|
|
222
|
-
# lightclawbot 声明了 bundledDependencies,npm pack 产出的 tgz 已包含所有依赖
|
|
223
|
-
has_unbundled_deps=$(node -e '
|
|
224
|
-
const pkg = JSON.parse(require("fs").readFileSync(process.argv[1], "utf8"));
|
|
225
|
-
const deps = Object.keys(pkg.dependencies || {});
|
|
226
|
-
const bundled = pkg.bundledDependencies || pkg.bundleDependencies || [];
|
|
227
|
-
console.log(deps.length > 0 && bundled.length < deps.length ? "true" : "false");
|
|
228
|
-
' "$plugin_dir/package.json")
|
|
229
|
-
|
|
230
|
-
if [ "$has_unbundled_deps" = true ]; then
|
|
231
|
-
(cd "$plugin_dir" && CI=true $PKG_MGR install --prod) >/dev/null 2>&1
|
|
232
|
-
fi
|
|
233
|
-
fi
|
|
234
|
-
|
|
235
|
-
# ========== 更新配置文件 ==========
|
|
236
|
-
|
|
237
|
-
step_log "config_update" "updating configuration"
|
|
238
|
-
|
|
239
|
-
# 确保配置文件存在
|
|
240
|
-
if [ ! -f "$cfg" ]; then
|
|
241
|
-
mkdir -p "$(dirname "$cfg")"
|
|
242
|
-
echo '{}' > "$cfg"
|
|
243
|
-
fi
|
|
244
|
-
|
|
245
|
-
# 校验配置文件是合法 JSON(用户可能手动编辑弄坏了格式)
|
|
246
|
-
if ! node -e "JSON.parse(require('fs').readFileSync(process.argv[1],'utf8'))" "$cfg" 2>/dev/null; then
|
|
247
|
-
result_exit "config_json_invalid"
|
|
248
|
-
fi
|
|
249
|
-
|
|
250
|
-
# ---------- 单次 node 调用完成所有配置更新 ----------
|
|
251
|
-
# 一次启动 V8,通过环境变量安全传参,
|
|
252
|
-
# 顺序完成 plugins.entries / installs / deny / allow / channels 全部配置修改,
|
|
253
|
-
# 减少文件 I/O 次数(只读一次 + 写一次)。
|
|
254
|
-
|
|
255
|
-
version=$(UPGRADE_CFG="$cfg" UPGRADE_ID="$id" UPGRADE_SPEC="$spec" \
|
|
256
|
-
UPGRADE_PLUGIN_DIR="$plugin_dir" UPGRADE_APIKEY="$APIKEY" \
|
|
257
|
-
node -e '
|
|
258
|
-
const fs = require("fs");
|
|
259
|
-
const cfgPath = process.env.UPGRADE_CFG;
|
|
260
|
-
const pluginId = process.env.UPGRADE_ID;
|
|
261
|
-
const spec = process.env.UPGRADE_SPEC;
|
|
262
|
-
const pluginDir = process.env.UPGRADE_PLUGIN_DIR;
|
|
263
|
-
const envApiKey = process.env.UPGRADE_APIKEY || "";
|
|
264
|
-
|
|
265
|
-
function fail(reason) {
|
|
266
|
-
process.exit(1);
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
// 读取配置
|
|
270
|
-
let cfg;
|
|
271
|
-
try {
|
|
272
|
-
cfg = JSON.parse(fs.readFileSync(cfgPath, "utf8"));
|
|
273
|
-
} catch (e) {
|
|
274
|
-
fail("config_read_failed");
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
// 读取插件版本
|
|
278
|
-
let version = "unknown";
|
|
279
|
-
try {
|
|
280
|
-
const pkg = JSON.parse(fs.readFileSync(pluginDir + "/package.json", "utf8"));
|
|
281
|
-
version = pkg.version || "unknown";
|
|
282
|
-
} catch (e) {}
|
|
283
|
-
|
|
284
|
-
// ---------- 1) 确保 plugins 基础结构存在 & 全局插件系统启用 ----------
|
|
285
|
-
if (!cfg.plugins) cfg.plugins = {};
|
|
286
|
-
// 确保全局插件系统生效(plugins.enabled 默认 true,仅显式 false 时需修复)
|
|
287
|
-
if (cfg.plugins.enabled === false) {
|
|
288
|
-
cfg.plugins.enabled = true;
|
|
289
|
-
}
|
|
290
|
-
if (!cfg.plugins.entries) cfg.plugins.entries = {};
|
|
291
|
-
if (!cfg.plugins.installs) cfg.plugins.installs = {};
|
|
292
|
-
|
|
293
|
-
// plugins.entries:启用插件
|
|
294
|
-
cfg.plugins.entries[pluginId] = { enabled: true };
|
|
295
|
-
|
|
296
|
-
// plugins.installs:安装记录
|
|
297
|
-
cfg.plugins.installs[pluginId] = {
|
|
298
|
-
source: "npm",
|
|
299
|
-
spec: spec,
|
|
300
|
-
installPath: pluginDir,
|
|
301
|
-
version: version,
|
|
302
|
-
installedAt: new Date().toISOString().replace(/\.\d{3}Z$/, ".000Z")
|
|
303
|
-
};
|
|
304
|
-
|
|
305
|
-
// ---------- 2) 黑名单修复 ----------
|
|
306
|
-
if (Array.isArray(cfg.plugins.deny)) {
|
|
307
|
-
const idx = cfg.plugins.deny.indexOf(pluginId);
|
|
308
|
-
if (idx !== -1) {
|
|
309
|
-
cfg.plugins.deny.splice(idx, 1);
|
|
310
|
-
if (cfg.plugins.deny.length === 0) {
|
|
311
|
-
delete cfg.plugins.deny;
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
// ---------- 3) 白名单添加 ----------
|
|
317
|
-
if (Array.isArray(cfg.plugins.allow)) {
|
|
318
|
-
if (!cfg.plugins.allow.includes(pluginId)) {
|
|
319
|
-
cfg.plugins.allow.push(pluginId);
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
// ---------- 4) channel 配置:智能合并 ----------
|
|
324
|
-
if (!cfg.channels) cfg.channels = {};
|
|
325
|
-
const ch = cfg.channels[pluginId] || {};
|
|
326
|
-
|
|
327
|
-
// 迁移旧的 apiKey -> apiKeys
|
|
328
|
-
let apiKeys = Array.isArray(ch.apiKeys) ? [...ch.apiKeys] : [];
|
|
329
|
-
if (ch.apiKey && typeof ch.apiKey === "string") {
|
|
330
|
-
if (!apiKeys.includes(ch.apiKey)) {
|
|
331
|
-
apiKeys.push(ch.apiKey);
|
|
332
|
-
}
|
|
333
|
-
delete ch.apiKey;
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
// 如果通过环境变量传入了 APIKEY,确保它在 apiKeys 数组中(去重)
|
|
337
|
-
if (envApiKey && !apiKeys.includes(envApiKey)) {
|
|
338
|
-
apiKeys.push(envApiKey);
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
ch.enabled = true;
|
|
342
|
-
ch.apiKeys = apiKeys;
|
|
343
|
-
cfg.channels[pluginId] = ch;
|
|
344
|
-
|
|
345
|
-
// ---------- 5) 写回配置文件 ----------
|
|
346
|
-
fs.writeFileSync(cfgPath, JSON.stringify(cfg, null, 2) + "\n", "utf8");
|
|
347
|
-
|
|
348
|
-
// 输出版本号到 stdout,供 shell 接收
|
|
349
|
-
process.stdout.write(version);
|
|
350
|
-
') || result_exit "config_update_failed"
|
|
351
|
-
|
|
352
|
-
# ========== 插件 >= 1.1.0 时需要重新安装依赖并注册 ==========
|
|
353
|
-
|
|
354
|
-
# if version_gte "$version" "1.1.0"; then
|
|
355
|
-
# (cd "$plugin_dir" && pnpm install) >/dev/null 2>&1 || true
|
|
356
|
-
# openclaw gateway install --force >/dev/null 2>&1 || true
|
|
357
|
-
|
|
358
|
-
# # 小内存机器(<3GB)自动注入 NODE_OPTIONS 限制堆内存,避免 OOM
|
|
359
|
-
# GATEWAY_SERVICE="$HOME/.config/systemd/user/openclaw-gateway.service"
|
|
360
|
-
# TOTAL_MEM_KB=$(awk '/MemTotal/ {print $2}' /proc/meminfo 2>/dev/null || echo "0")
|
|
361
|
-
# if [ "$TOTAL_MEM_KB" -gt 0 ] && [ "$TOTAL_MEM_KB" -lt 3000000 ] \
|
|
362
|
-
# && [ -f "$GATEWAY_SERVICE" ] \
|
|
363
|
-
# && ! grep -q 'max-old-space-size' "$GATEWAY_SERVICE"; then
|
|
364
|
-
# sed -i '/\[Service\]/a Environment="NODE_OPTIONS=--max-old-space-size=1500"' "$GATEWAY_SERVICE"
|
|
365
|
-
# systemctl --user daemon-reload
|
|
366
|
-
# fi
|
|
367
|
-
# fi
|
|
368
|
-
|
|
369
|
-
# ========== 设备审批(openclaw == 2026.3.28)==========
|
|
370
|
-
|
|
371
|
-
if [ -n "$openclaw_version" ] && [ "$openclaw_version" = "$OPENCLAW_DEVICES_APPROVE_VERSION" ]; then
|
|
372
|
-
step_log "devices_approve" "approving devices"
|
|
373
|
-
openclaw devices approve >/dev/null 2>&1 || true
|
|
374
|
-
fi
|
|
375
|
-
|
|
376
|
-
# ========== 重启 Gateway ==========
|
|
377
|
-
|
|
378
|
-
if [ "$RESTART_GATEWAY" = "true" ]; then
|
|
379
|
-
step_log "gateway_restart" "restarting gateway"
|
|
380
|
-
openclaw gateway restart >/dev/null 2>&1 || true
|
|
381
|
-
fi
|
|
382
|
-
|
|
383
|
-
# stdout 最后一行 RESULT,供前端解析最终结果
|
|
384
|
-
result_ok "$version"
|