api-reference.md
card-types.md
channelData-pattern.md
README.md
CLAUDE.md
pnpm-lock.yaml
release-please-config.json
openclaw.plugin.json
.gitignore
tsconfig.json
.github/workflows/release-please.yml
node_modules/router/README.md
node_modules/router/HISTORY.md
node_modules/router/package.json
node_modules/router/index.js
node_modules/router/LICENSE
node_modules/typescript/README.md
node_modules/typescript/SECURITY.md
node_modules/typescript/ThirdPartyNoticeText.txt
node_modules/typescript/package.json
node_modules/typescript/LICENSE.txt
node_modules/bottleneck/.env
node_modules/bottleneck/bottleneck.d.ts.ejs
node_modules/bottleneck/bower.json
node_modules/bottleneck/bottleneck.d.ts
node_modules/bottleneck/README.md
node_modules/bottleneck/test.ts
node_modules/bottleneck/.babelrc.lib
node_modules/bottleneck/rollup.config.es5.js
node_modules/bottleneck/rollup.config.light.js
node_modules/bottleneck/package.json
node_modules/bottleneck/.babelrc.es5
node_modules/bottleneck/.travis.yml
node_modules/bottleneck/light.js
node_modules/bottleneck/LICENSE
node_modules/bottleneck/es5.js
node_modules/asynckit/README.md
node_modules/asynckit/stream.js
node_modules/asynckit/serialOrdered.js
node_modules/asynckit/parallel.js
node_modules/asynckit/package.json
node_modules/asynckit/serial.js
node_modules/asynckit/bench.js
node_modules/asynckit/index.js
node_modules/asynckit/LICENSE
node_modules/cookie-signature/package.json
node_modules/cookie-signature/index.js
node_modules/cookie-signature/LICENSE
node_modules/cookie-signature/History.md
node_modules/cookie-signature/Readme.md
node_modules/fdir/README.md
node_modules/fdir/package.json
node_modules/fdir/LICENSE
node_modules/discord-api-types/v6.d.ts
node_modules/discord-api-types/globals.d.ts
node_modules/discord-api-types/README.md
node_modules/discord-api-types/v6.js.map
node_modules/discord-api-types/v8.d.ts
node_modules/discord-api-types/v8.d.ts.map
node_modules/discord-api-types/v10.js.map
node_modules/discord-api-types/v9.d.ts
node_modules/discord-api-types/v9.d.ts.map
node_modules/discord-api-types/v6.js
node_modules/discord-api-types/v9.js
node_modules/discord-api-types/v10.js
node_modules/discord-api-types/v9.js.map
node_modules/discord-api-types/v8.js.map
node_modules/discord-api-types/package.json
node_modules/discord-api-types/v6.mjs
node_modules/discord-api-types/v10.d.ts.map
node_modules/discord-api-types/globals.js
node_modules/discord-api-types/v6.d.ts.map
node_modules/discord-api-types/globals.mjs
node_modules/discord-api-types/globals.d.ts.map
node_modules/discord-api-types/v8.js
node_modules/discord-api-types/v8.mjs
node_modules/discord-api-types/v9.mjs
node_modules/discord-api-types/CHANGELOG.md
node_modules/discord-api-types/globals.js.map
node_modules/discord-api-types/v10.mjs
node_modules/discord-api-types/v10.d.ts
node_modules/discord-api-types/LICENSE
node_modules/ms/license.md
node_modules/ms/readme.md
node_modules/ms/package.json
node_modules/ms/index.js
node_modules/jsonfile/README.md
node_modules/jsonfile/utils.js
node_modules/jsonfile/package.json
node_modules/jsonfile/index.js
node_modules/jsonfile/LICENSE
node_modules/netmask/README.md
node_modules/netmask/package.json
node_modules/netmask/CHANGELOG.md
node_modules/netmask/CREDITS.md
node_modules/file-type/license
node_modules/file-type/readme.md
node_modules/file-type/supported.js
node_modules/file-type/package.json
node_modules/file-type/core.js
node_modules/file-type/index.d.ts
node_modules/file-type/index.js
node_modules/file-type/util.js
node_modules/file-type/core.d.ts
node_modules/htmlparser2/README.md
node_modules/htmlparser2/package.json
node_modules/htmlparser2/WritableStream.js
node_modules/htmlparser2/LICENSE
node_modules/google-auth-library/README.md
node_modules/google-auth-library/package.json
node_modules/google-auth-library/LICENSE
node_modules/statuses/README.md
node_modules/statuses/codes.json
node_modules/statuses/HISTORY.md
node_modules/statuses/package.json
node_modules/statuses/index.js
node_modules/statuses/LICENSE
node_modules/sonic-boom/README.md
node_modules/sonic-boom/package.json
node_modules/sonic-boom/.eslintignore
node_modules/sonic-boom/bench.js
node_modules/sonic-boom/example.js
node_modules/sonic-boom/check.js
node_modules/sonic-boom/index.js
node_modules/sonic-boom/LICENSE
node_modules/sonic-boom/.taprc
node_modules/ts-algebra/README.md
node_modules/ts-algebra/.prettierignore
node_modules/ts-algebra/.prettierrc
node_modules/ts-algebra/package.json
node_modules/ts-algebra/.nvmrc
node_modules/ts-algebra/.eslintignore
node_modules/ts-algebra/.eslintrc.js
node_modules/ts-algebra/LICENSE
node_modules/json-schema-traverse/README.md
node_modules/json-schema-traverse/.eslintrc.yml
node_modules/json-schema-traverse/package.json
node_modules/json-schema-traverse/index.d.ts
node_modules/json-schema-traverse/index.js
node_modules/json-schema-traverse/LICENSE
node_modules/isarray/README.md
node_modules/isarray/.npmignore
node_modules/isarray/component.json
node_modules/isarray/Makefile
node_modules/isarray/test.js
node_modules/isarray/package.json
node_modules/isarray/.travis.yml
node_modules/isarray/index.js
node_modules/get-east-asian-width/license
node_modules/get-east-asian-width/readme.md
node_modules/get-east-asian-width/package.json
node_modules/get-east-asian-width/index.d.ts
node_modules/get-east-asian-width/lookup.js
node_modules/get-east-asian-width/index.js
node_modules/ci-info/README.md
node_modules/ci-info/vendors.json
node_modules/ci-info/package.json
node_modules/ci-info/index.d.ts
node_modules/ci-info/CHANGELOG.md
node_modules/ci-info/index.js
node_modules/ci-info/LICENSE
node_modules/fs-extra/README.md
node_modules/fs-extra/package.json
node_modules/fs-extra/LICENSE
node_modules/async-retry/README.md
node_modules/async-retry/LICENSE.md
node_modules/async-retry/package.json
node_modules/p-finally/license
node_modules/p-finally/readme.md
node_modules/p-finally/package.json
node_modules/p-finally/index.js
node_modules/buffer-from/readme.md
node_modules/buffer-from/package.json
node_modules/buffer-from/index.js
node_modules/buffer-from/LICENSE
node_modules/safer-buffer/Porting-Buffer.md
node_modules/safer-buffer/dangerous.js
node_modules/safer-buffer/package.json
node_modules/safer-buffer/safer.js
node_modules/safer-buffer/tests.js
node_modules/safer-buffer/LICENSE
node_modules/safer-buffer/Readme.md
node_modules/octokit/README.md
node_modules/octokit/package.json
node_modules/octokit/LICENSE
node_modules/escodegen/escodegen.js
node_modules/escodegen/README.md
node_modules/escodegen/LICENSE.BSD
node_modules/escodegen/package.json
node_modules/foreground-child/README.md
node_modules/foreground-child/package.json
node_modules/foreground-child/LICENSE
node_modules/minizlib/README.md
node_modules/minizlib/package.json
node_modules/minizlib/index.js
node_modules/minizlib/constants.js
node_modules/minizlib/LICENSE
node_modules/debug/README.md
node_modules/debug/package.json
node_modules/debug/LICENSE
node_modules/partial-json/README.md
node_modules/partial-json/package.json
node_modules/partial-json/LICENSE
node_modules/are-we-there-yet/README.md
node_modules/are-we-there-yet/LICENSE.md
node_modules/are-we-there-yet/package.json
node_modules/yaml/README.md
node_modules/yaml/bin.mjs
node_modules/yaml/package.json
node_modules/yaml/LICENSE
node_modules/yaml/util.js
node_modules/send/README.md
node_modules/send/package.json
node_modules/send/index.js
node_modules/send/LICENSE
node_modules/log-symbols/license
node_modules/log-symbols/readme.md
node_modules/log-symbols/package.json
node_modules/log-symbols/browser.js
node_modules/log-symbols/index.d.ts
node_modules/log-symbols/symbols.js
node_modules/log-symbols/index.js
node_modules/log-symbols/browser-symbols.js
node_modules/lodash.isplainobject/README.md
node_modules/lodash.isplainobject/package.json
node_modules/lodash.isplainobject/index.js
node_modules/lodash.isplainobject/LICENSE
node_modules/get-intrinsic/README.md
node_modules/get-intrinsic/.eslintrc
node_modules/get-intrinsic/.nycrc
node_modules/get-intrinsic/package.json
node_modules/get-intrinsic/CHANGELOG.md
node_modules/get-intrinsic/index.js
node_modules/get-intrinsic/LICENSE
node_modules/signal-polyfill/README.md
node_modules/signal-polyfill/vite.config.ts
node_modules/signal-polyfill/RELEASE.md
node_modules/signal-polyfill/.prettierignore
node_modules/signal-polyfill/tsconfig.json
node_modules/signal-polyfill/.release-plan.json
node_modules/signal-polyfill/package.json
node_modules/signal-polyfill/.prettierrc.json
node_modules/signal-polyfill/CHANGELOG.md
node_modules/signal-polyfill/LICENSE
node_modules/markdown-it/README.md
node_modules/markdown-it/package.json
node_modules/markdown-it/LICENSE
node_modules/markdown-it/index.mjs
node_modules/token-types/README.md
node_modules/token-types/package.json
node_modules/token-types/LICENSE.txt
node_modules/es-errors/uri.js
node_modules/es-errors/README.md
node_modules/es-errors/.eslintrc
node_modules/es-errors/tsconfig.json
node_modules/es-errors/ref.d.ts
node_modules/es-errors/type.d.ts
node_modules/es-errors/syntax.js
node_modules/es-errors/type.js
node_modules/es-errors/eval.d.ts
node_modules/es-errors/syntax.d.ts
node_modules/es-errors/uri.d.ts
node_modules/es-errors/range.d.ts
node_modules/es-errors/package.json
node_modules/es-errors/index.d.ts
node_modules/es-errors/CHANGELOG.md
node_modules/es-errors/ref.js
node_modules/es-errors/eval.js
node_modules/es-errors/index.js
node_modules/es-errors/LICENSE
node_modules/es-errors/range.js
node_modules/brace-expansion/README.md
node_modules/brace-expansion/package.json
node_modules/brace-expansion/index.js
node_modules/brace-expansion/LICENSE
node_modules/magic-string/README.md
node_modules/magic-string/package.json
node_modules/magic-string/LICENSE
node_modules/entities/readme.md
node_modules/entities/package.json
node_modules/entities/LICENSE
node_modules/side-channel/README.md
node_modules/side-channel/.eslintrc
node_modules/side-channel/tsconfig.json
node_modules/side-channel/.editorconfig
node_modules/side-channel/.nycrc
node_modules/side-channel/package.json
node_modules/side-channel/index.d.ts
node_modules/side-channel/CHANGELOG.md
node_modules/side-channel/index.js
node_modules/side-channel/LICENSE
node_modules/ajv/README.md
node_modules/ajv/package.json
node_modules/ajv/.runkit_example.js
node_modules/ajv/LICENSE
node_modules/is-fullwidth-code-point/license
node_modules/is-fullwidth-code-point/readme.md
node_modules/is-fullwidth-code-point/package.json
node_modules/is-fullwidth-code-point/index.d.ts
node_modules/is-fullwidth-code-point/index.js
node_modules/domhandler/readme.md
node_modules/domhandler/package.json
node_modules/domhandler/LICENSE
node_modules/fresh/README.md
node_modules/fresh/HISTORY.md
node_modules/fresh/package.json
node_modules/fresh/index.js
node_modules/fresh/LICENSE
node_modules/boolbase/README.md
node_modules/boolbase/package.json
node_modules/boolbase/index.js
node_modules/bignumber.js/README.md
node_modules/bignumber.js/bignumber.js
node_modules/bignumber.js/bignumber.mjs
node_modules/bignumber.js/types.d.ts
node_modules/bignumber.js/LICENCE.md
node_modules/bignumber.js/package.json
node_modules/bignumber.js/CHANGELOG.md
node_modules/bignumber.js/bignumber.d.mts
node_modules/bignumber.js/bignumber.d.ts
node_modules/punycode.js/README.md
node_modules/punycode.js/punycode.js
node_modules/punycode.js/package.json
node_modules/punycode.js/punycode.es6.js
node_modules/punycode.js/LICENSE-MIT.txt
node_modules/is-promise/readme.md
node_modules/is-promise/package.json
node_modules/is-promise/index.d.ts
node_modules/is-promise/index.js
node_modules/is-promise/LICENSE
node_modules/is-promise/index.mjs
node_modules/source-map/source-map.js
node_modules/source-map/README.md
node_modules/source-map/package.json
node_modules/source-map/source-map.d.ts
node_modules/source-map/CHANGELOG.md
node_modules/source-map/LICENSE
node_modules/fast-content-type-parse/README.md
node_modules/fast-content-type-parse/.gitattributes
node_modules/fast-content-type-parse/package.json
node_modules/fast-content-type-parse/index.js
node_modules/fast-content-type-parse/LICENSE
node_modules/fast-content-type-parse/eslint.config.js
node_modules/readdirp/README.md
node_modules/readdirp/package.json
node_modules/readdirp/index.d.ts
node_modules/readdirp/index.js
node_modules/readdirp/LICENSE
node_modules/process-nextick-args/license.md
node_modules/process-nextick-args/readme.md
node_modules/process-nextick-args/package.json
node_modules/process-nextick-args/index.js
node_modules/has-symbols/shams.js
node_modules/has-symbols/README.md
node_modules/has-symbols/.eslintrc
node_modules/has-symbols/tsconfig.json
node_modules/has-symbols/.nycrc
node_modules/has-symbols/package.json
node_modules/has-symbols/index.d.ts
node_modules/has-symbols/CHANGELOG.md
node_modules/has-symbols/shams.d.ts
node_modules/has-symbols/index.js
node_modules/has-symbols/LICENSE
node_modules/abort-controller/browser.mjs
node_modules/abort-controller/README.md
node_modules/abort-controller/polyfill.js
node_modules/abort-controller/polyfill.mjs
node_modules/abort-controller/package.json
node_modules/abort-controller/browser.js
node_modules/abort-controller/LICENSE
node_modules/socks-proxy-agent/README.md
node_modules/socks-proxy-agent/package.json
node_modules/socks-proxy-agent/LICENSE
node_modules/delayed-stream/License
node_modules/delayed-stream/.npmignore
node_modules/delayed-stream/Makefile
node_modules/delayed-stream/package.json
node_modules/delayed-stream/Readme.md
node_modules/path-key/license
node_modules/path-key/readme.md
node_modules/path-key/package.json
node_modules/path-key/index.d.ts
node_modules/path-key/index.js
node_modules/openai/client.js
node_modules/openai/error.mjs
node_modules/openai/streaming.d.mts.map
node_modules/openai/README.md
node_modules/openai/error.d.ts.map
node_modules/openai/version.js.map
node_modules/openai/resources.d.mts.map
node_modules/openai/azure.js.map
node_modules/openai/streaming.mjs
node_modules/openai/index.js.map
node_modules/openai/api-promise.d.ts.map
node_modules/openai/azure.mjs
node_modules/openai/error.mjs.map
node_modules/openai/api-promise.d.mts.map
node_modules/openai/uploads.d.ts.map
node_modules/openai/resource.d.ts
node_modules/openai/index.d.ts.map
node_modules/openai/streaming.d.ts.map
node_modules/openai/uploads.mjs
node_modules/openai/error.js
node_modules/openai/resources.mjs.map
node_modules/openai/client.d.mts
node_modules/openai/client.d.ts.map
node_modules/openai/error.d.mts.map
node_modules/openai/pagination.mjs
node_modules/openai/uploads.d.mts.map
node_modules/openai/resource.d.mts.map
node_modules/openai/client.mjs.map
node_modules/openai/version.d.ts.map
node_modules/openai/azure.mjs.map
node_modules/openai/resource.d.mts
node_modules/openai/azure.d.mts
node_modules/openai/streaming.d.mts
node_modules/openai/streaming.d.ts
node_modules/openai/version.d.mts.map
node_modules/openai/streaming.js
node_modules/openai/pagination.d.ts
node_modules/openai/resource.js.map
node_modules/openai/azure.js
node_modules/openai/index.d.mts.map
node_modules/openai/api-promise.js
node_modules/openai/version.mjs
node_modules/openai/uploads.js.map
node_modules/openai/resource.mjs.map
node_modules/openai/version.d.ts
node_modules/openai/version.js
node_modules/openai/version.d.mts
node_modules/openai/client.js.map
node_modules/openai/resource.d.ts.map
node_modules/openai/resource.mjs
node_modules/openai/error.js.map
node_modules/openai/error.d.mts
node_modules/openai/package.json
node_modules/openai/azure.d.ts
node_modules/openai/azure.d.ts.map
node_modules/openai/index.d.ts
node_modules/openai/index.mjs.map
node_modules/openai/api-promise.js.map
node_modules/openai/uploads.mjs.map
node_modules/openai/resources.d.mts
node_modules/openai/resources.d.ts
node_modules/openai/resources.d.ts.map
node_modules/openai/pagination.mjs.map
node_modules/openai/error.d.ts
node_modules/openai/streaming.js.map
node_modules/openai/uploads.d.ts
node_modules/openai/pagination.d.ts.map
node_modules/openai/pagination.d.mts.map
node_modules/openai/uploads.d.mts
node_modules/openai/pagination.js
node_modules/openai/api-promise.mjs
node_modules/openai/uploads.js
node_modules/openai/CHANGELOG.md
node_modules/openai/resources.js.map
node_modules/openai/client.d.ts
node_modules/openai/streaming.mjs.map
node_modules/openai/resource.js
node_modules/openai/client.mjs
node_modules/openai/index.d.mts
node_modules/openai/index.js
node_modules/openai/azure.d.mts.map
node_modules/openai/LICENSE
node_modules/openai/api-promise.d.mts
node_modules/openai/version.mjs.map
node_modules/openai/pagination.d.mts
node_modules/openai/client.d.mts.map
node_modules/openai/resources.mjs
node_modules/openai/resources.js
node_modules/openai/index.mjs
node_modules/openai/api-promise.mjs.map
node_modules/openai/pagination.js.map
node_modules/openai/api-promise.d.ts
node_modules/strip-ansi/license
node_modules/strip-ansi/readme.md
node_modules/strip-ansi/package.json
node_modules/strip-ansi/index.d.ts
node_modules/strip-ansi/index.js
node_modules/has-unicode/README.md
node_modules/has-unicode/package.json
node_modules/has-unicode/index.js
node_modules/has-unicode/LICENSE
node_modules/esbuild/README.md
node_modules/esbuild/LICENSE.md
node_modules/esbuild/package.json
node_modules/esbuild/install.js
node_modules/source-map-js/source-map.js
node_modules/source-map-js/README.md
node_modules/source-map-js/package.json
node_modules/source-map-js/source-map.d.ts
node_modules/source-map-js/LICENSE
node_modules/qs/README.md
node_modules/qs/LICENSE.md
node_modules/qs/.editorconfig
node_modules/qs/.nycrc
node_modules/qs/package.json
node_modules/qs/eslint.config.mjs
node_modules/qs/CHANGELOG.md
node_modules/lodash.debounce/README.md
node_modules/lodash.debounce/package.json
node_modules/lodash.debounce/index.js
node_modules/lodash.debounce/LICENSE
node_modules/color-name/README.md
node_modules/color-name/package.json
node_modules/color-name/index.js
node_modules/color-name/LICENSE
node_modules/y18n/README.md
node_modules/y18n/package.json
node_modules/y18n/CHANGELOG.md
node_modules/y18n/LICENSE
node_modules/y18n/index.mjs
node_modules/node-llama-cpp/README.md
node_modules/node-llama-cpp/package.json
node_modules/node-llama-cpp/LICENSE
node_modules/agent-base/README.md
node_modules/agent-base/package.json
node_modules/agent-base/LICENSE
node_modules/toad-cache/README.md
node_modules/toad-cache/toad-cache.d.ts
node_modules/toad-cache/toad-cache.d.cts
node_modules/toad-cache/package.json
node_modules/toad-cache/LICENSE
node_modules/whatwg-url/README.md
node_modules/whatwg-url/package.json
node_modules/whatwg-url/LICENSE.txt
node_modules/strip-json-comments/license
node_modules/strip-json-comments/readme.md
node_modules/strip-json-comments/package.json
node_modules/strip-json-comments/index.js
node_modules/finalhandler/README.md
node_modules/finalhandler/HISTORY.md
node_modules/finalhandler/package.json
node_modules/finalhandler/index.js
node_modules/finalhandler/LICENSE
node_modules/cssom/README.mdown
node_modules/cssom/package.json
node_modules/cssom/LICENSE.txt
node_modules/color-support/README.md
node_modules/color-support/bin.js
node_modules/color-support/package.json
node_modules/color-support/browser.js
node_modules/color-support/index.js
node_modules/color-support/LICENSE
node_modules/estree-walker/README.md
node_modules/estree-walker/package.json
node_modules/estree-walker/LICENSE
node_modules/ansi-escapes/license
node_modules/ansi-escapes/readme.md
node_modules/ansi-escapes/package.json
node_modules/ansi-escapes/index.d.ts
node_modules/ansi-escapes/index.js
node_modules/yargs/browser.mjs
node_modules/yargs/README.md
node_modules/yargs/yargs.mjs
node_modules/yargs/yargs
node_modules/yargs/browser.d.ts
node_modules/yargs/package.json
node_modules/yargs/index.cjs
node_modules/yargs/LICENSE
node_modules/yargs/index.mjs
node_modules/any-promise/implementation.d.ts
node_modules/any-promise/README.md
node_modules/any-promise/implementation.js
node_modules/any-promise/.npmignore
node_modules/any-promise/register.js
node_modules/any-promise/package.json
node_modules/any-promise/index.d.ts
node_modules/any-promise/optional.js
node_modules/any-promise/loader.js
node_modules/any-promise/register-shim.js
node_modules/any-promise/.jshintrc
node_modules/any-promise/index.js
node_modules/any-promise/LICENSE
node_modules/any-promise/register.d.ts
node_modules/sharp/README.md
node_modules/sharp/package.json
node_modules/sharp/LICENSE
node_modules/istanbul-lib-report/README.md
node_modules/istanbul-lib-report/package.json
node_modules/istanbul-lib-report/CHANGELOG.md
node_modules/istanbul-lib-report/index.js
node_modules/istanbul-lib-report/LICENSE
node_modules/safe-stable-stringify/readme.md
node_modules/safe-stable-stringify/package.json
node_modules/safe-stable-stringify/index.d.ts
node_modules/safe-stable-stringify/index.js
node_modules/safe-stable-stringify/LICENSE
node_modules/domelementtype/readme.md
node_modules/domelementtype/package.json
node_modules/domelementtype/LICENSE
node_modules/argparse/README.md
node_modules/argparse/package.json
node_modules/argparse/CHANGELOG.md
node_modules/argparse/argparse.js
node_modules/argparse/LICENSE
node_modules/glob/README.md
node_modules/glob/LICENSE.md
node_modules/glob/package.json
node_modules/graceful-fs/README.md
node_modules/graceful-fs/graceful-fs.js
node_modules/graceful-fs/legacy-streams.js
node_modules/graceful-fs/package.json
node_modules/graceful-fs/polyfills.js
node_modules/graceful-fs/clone.js
node_modules/graceful-fs/LICENSE
node_modules/pako/README.md
node_modules/pako/package.json
node_modules/pako/CHANGELOG.md
node_modules/pako/index.js
node_modules/pako/LICENSE
node_modules/shebang-regex/license
node_modules/shebang-regex/readme.md
node_modules/shebang-regex/package.json
node_modules/shebang-regex/index.d.ts
node_modules/shebang-regex/index.js
node_modules/raw-body/README.md
node_modules/raw-body/package.json
node_modules/raw-body/index.d.ts
node_modules/raw-body/index.js
node_modules/raw-body/LICENSE
node_modules/chmodrp/license
node_modules/chmodrp/readme.md
node_modules/chmodrp/.gitkeep
node_modules/chmodrp/package.json
node_modules/chmodrp/index.d.ts
node_modules/chmodrp/index.cjs
node_modules/chmodrp/index.js
node_modules/gtoken/README.md
node_modules/gtoken/package.json
node_modules/gtoken/LICENSE
node_modules/node-addon-api/node_addon_api.gyp
node_modules/node-addon-api/README.md
node_modules/node-addon-api/LICENSE.md
node_modules/node-addon-api/nothing.c
node_modules/node-addon-api/node_api.gyp
node_modules/node-addon-api/package-support.json
node_modules/node-addon-api/noexcept.gypi
node_modules/node-addon-api/napi.h
node_modules/node-addon-api/napi-inl.h
node_modules/node-addon-api/package.json
node_modules/node-addon-api/common.gypi
node_modules/node-addon-api/index.js
node_modules/node-addon-api/napi-inl.deprecated.h
node_modules/node-addon-api/except.gypi
node_modules/supports-color/license
node_modules/supports-color/readme.md
node_modules/supports-color/package.json
node_modules/supports-color/browser.js
node_modules/supports-color/index.js
node_modules/object-assign/license
node_modules/object-assign/readme.md
node_modules/object-assign/package.json
node_modules/object-assign/index.js
node_modules/css-select/README.md
node_modules/css-select/package.json
node_modules/css-select/LICENSE
node_modules/lodash.isstring/README.md
node_modules/lodash.isstring/package.json
node_modules/lodash.isstring/index.js
node_modules/lodash.isstring/LICENSE
node_modules/strip-ansi-cjs/license
node_modules/strip-ansi-cjs/readme.md
node_modules/strip-ansi-cjs/package.json
node_modules/strip-ansi-cjs/index.d.ts
node_modules/strip-ansi-cjs/index.js
node_modules/depd/package.json
node_modules/depd/index.js
node_modules/depd/LICENSE
node_modules/depd/History.md
node_modules/depd/Readme.md
node_modules/balanced-match/README.md
node_modules/balanced-match/LICENSE.md
node_modules/balanced-match/package.json
node_modules/balanced-match/index.js
node_modules/diff/release-notes.md
node_modules/diff/CONTRIBUTING.md
node_modules/diff/README.md
node_modules/diff/package.json
node_modules/diff/eslint.config.mjs
node_modules/diff/LICENSE
node_modules/thenify/README.md
node_modules/thenify/package.json
node_modules/thenify/index.js
node_modules/thenify/LICENSE
node_modules/thenify/History.md
node_modules/side-channel-weakmap/README.md
node_modules/side-channel-weakmap/.eslintrc
node_modules/side-channel-weakmap/tsconfig.json
node_modules/side-channel-weakmap/.editorconfig
node_modules/side-channel-weakmap/.nycrc
node_modules/side-channel-weakmap/package.json
node_modules/side-channel-weakmap/index.d.ts
node_modules/side-channel-weakmap/CHANGELOG.md
node_modules/side-channel-weakmap/index.js
node_modules/side-channel-weakmap/LICENSE
node_modules/emoji-regex/README.md
node_modules/emoji-regex/text.js
node_modules/emoji-regex/package.json
node_modules/emoji-regex/index.d.ts
node_modules/emoji-regex/index.js
node_modules/emoji-regex/LICENSE-MIT.txt
node_modules/validate-npm-package-name/README.md
node_modules/validate-npm-package-name/package.json
node_modules/validate-npm-package-name/LICENSE
node_modules/tar/README.md
node_modules/tar/package.json
node_modules/tar/index.js
node_modules/tar/LICENSE
node_modules/expect-type/README.md
node_modules/expect-type/SECURITY.md
node_modules/expect-type/package.json
node_modules/expect-type/LICENSE
node_modules/thenify-all/README.md
node_modules/thenify-all/package.json
node_modules/thenify-all/index.js
node_modules/thenify-all/LICENSE
node_modules/thenify-all/History.md
node_modules/parse-ms/license
node_modules/parse-ms/readme.md
node_modules/parse-ms/package.json
node_modules/parse-ms/index.d.ts
node_modules/parse-ms/index.js
node_modules/uhyphen/README.md
node_modules/uhyphen/es.js
node_modules/uhyphen/min.js
node_modules/uhyphen/package.json
node_modules/uhyphen/index.js
node_modules/uhyphen/LICENSE
node_modules/cmake-js/README.md
node_modules/cmake-js/package.json
node_modules/cmake-js/changelog.md
node_modules/cmake-js/LICENSE
node_modules/jws/readme.md
node_modules/jws/package.json
node_modules/jws/CHANGELOG.md
node_modules/jws/opslevel.yml
node_modules/jws/index.js
node_modules/jws/LICENSE
node_modules/content-disposition/README.md
node_modules/content-disposition/HISTORY.md
node_modules/content-disposition/package.json
node_modules/content-disposition/index.js
node_modules/content-disposition/LICENSE
node_modules/parse5/README.md
node_modules/parse5/package.json
node_modules/parse5/LICENSE
node_modules/dotenv/README.md
node_modules/dotenv/README-es.md
node_modules/dotenv/SECURITY.md
node_modules/dotenv/package.json
node_modules/dotenv/CHANGELOG.md
node_modules/dotenv/config.js
node_modules/dotenv/LICENSE
node_modules/dotenv/config.d.ts
node_modules/estraverse/README.md
node_modules/estraverse/estraverse.js
node_modules/estraverse/gulpfile.js
node_modules/estraverse/LICENSE.BSD
node_modules/estraverse/package.json
node_modules/estraverse/.jshintrc
node_modules/get-caller-file/README.md
node_modules/get-caller-file/LICENSE.md
node_modules/get-caller-file/index.js.map
node_modules/get-caller-file/package.json
node_modules/get-caller-file/index.d.ts
node_modules/get-caller-file/index.js
node_modules/gopd/README.md
node_modules/gopd/.eslintrc
node_modules/gopd/tsconfig.json
node_modules/gopd/gOPD.d.ts
node_modules/gopd/package.json
node_modules/gopd/index.d.ts
node_modules/gopd/CHANGELOG.md
node_modules/gopd/gOPD.js
node_modules/gopd/index.js
node_modules/gopd/LICENSE
node_modules/yoctocolors/base.d.ts
node_modules/yoctocolors/license
node_modules/yoctocolors/readme.md
node_modules/yoctocolors/package.json
node_modules/yoctocolors/index.d.ts
node_modules/yoctocolors/base.js
node_modules/yoctocolors/index.js
node_modules/playwright-core/NOTICE
node_modules/playwright-core/README.md
node_modules/playwright-core/browsers.json
node_modules/playwright-core/package.json
node_modules/playwright-core/index.d.ts
node_modules/playwright-core/ThirdPartyNotices.txt
node_modules/playwright-core/cli.js
node_modules/playwright-core/index.js
node_modules/playwright-core/LICENSE
node_modules/playwright-core/index.mjs
node_modules/wrap-ansi/license
node_modules/wrap-ansi/readme.md
node_modules/wrap-ansi/package.json
node_modules/wrap-ansi/index.js
node_modules/rimraf/README.md
node_modules/rimraf/package.json
node_modules/rimraf/LICENSE
node_modules/encodeurl/README.md
node_modules/encodeurl/package.json
node_modules/encodeurl/index.js
node_modules/encodeurl/LICENSE
node_modules/call-bind-apply-helpers/README.md
node_modules/call-bind-apply-helpers/.eslintrc
node_modules/call-bind-apply-helpers/tsconfig.json
node_modules/call-bind-apply-helpers/functionApply.js
node_modules/call-bind-apply-helpers/.nycrc
node_modules/call-bind-apply-helpers/actualApply.js
node_modules/call-bind-apply-helpers/actualApply.d.ts
node_modules/call-bind-apply-helpers/functionCall.js
node_modules/call-bind-apply-helpers/reflectApply.d.ts
node_modules/call-bind-apply-helpers/package.json
node_modules/call-bind-apply-helpers/index.d.ts
node_modules/call-bind-apply-helpers/applyBind.js
node_modules/call-bind-apply-helpers/CHANGELOG.md
node_modules/call-bind-apply-helpers/reflectApply.js
node_modules/call-bind-apply-helpers/functionCall.d.ts
node_modules/call-bind-apply-helpers/functionApply.d.ts
node_modules/call-bind-apply-helpers/applyBind.d.ts
node_modules/call-bind-apply-helpers/index.js
node_modules/call-bind-apply-helpers/LICENSE
node_modules/chokidar/README.md
node_modules/chokidar/handler.d.ts
node_modules/chokidar/package.json
node_modules/chokidar/index.d.ts
node_modules/chokidar/handler.js
node_modules/chokidar/index.js
node_modules/chokidar/LICENSE
node_modules/commander/package-support.json
node_modules/commander/package.json
node_modules/commander/esm.mjs
node_modules/commander/index.js
node_modules/commander/LICENSE
node_modules/commander/Readme.md
node_modules/node-fetch/README.md
node_modules/node-fetch/LICENSE.md
node_modules/node-fetch/package.json
node_modules/ini/README.md
node_modules/ini/ini.js
node_modules/ini/package.json
node_modules/ini/LICENSE
node_modules/basic-ftp/README.md
node_modules/basic-ftp/package.json
node_modules/basic-ftp/LICENSE.txt
node_modules/filenamify/filenamify-path.d.ts
node_modules/filenamify/filenamify.d.ts
node_modules/filenamify/license
node_modules/filenamify/readme.md
node_modules/filenamify/filenamify-path.js
node_modules/filenamify/filenamify.js
node_modules/filenamify/package.json
node_modules/filenamify/index.d.ts
node_modules/filenamify/index.js
node_modules/tinybench/README.md
node_modules/tinybench/package.json
node_modules/tinybench/LICENSE
node_modules/proxy-addr/README.md
node_modules/proxy-addr/HISTORY.md
node_modules/proxy-addr/package.json
node_modules/proxy-addr/index.js
node_modules/proxy-addr/LICENSE
node_modules/yallist/README.md
node_modules/yallist/package.json
node_modules/yallist/iterator.js
node_modules/yallist/yallist.js
node_modules/yallist/LICENSE
node_modules/npmlog/README.md
node_modules/npmlog/LICENSE.md
node_modules/npmlog/package.json
node_modules/undici-types/interceptors.d.ts
node_modules/undici-types/webidl.d.ts
node_modules/undici-types/README.md
node_modules/undici-types/util.d.ts
node_modules/undici-types/cache.d.ts
node_modules/undici-types/patch.d.ts
node_modules/undici-types/dispatcher.d.ts
node_modules/undici-types/mock-client.d.ts
node_modules/undici-types/pool-stats.d.ts
node_modules/undici-types/global-origin.d.ts
node_modules/undici-types/mock-pool.d.ts
node_modules/undici-types/agent.d.ts
node_modules/undici-types/mock-interceptor.d.ts
node_modules/undici-types/proxy-agent.d.ts
node_modules/undici-types/websocket.d.ts
node_modules/undici-types/connector.d.ts
node_modules/undici-types/pool.d.ts
node_modules/undici-types/filereader.d.ts
node_modules/undici-types/diagnostics-channel.d.ts
node_modules/undici-types/balanced-pool.d.ts
node_modules/undici-types/readable.d.ts
node_modules/undici-types/file.d.ts
node_modules/undici-types/header.d.ts
node_modules/undici-types/errors.d.ts
node_modules/undici-types/retry-agent.d.ts
node_modules/undici-types/package.json
node_modules/undici-types/env-http-proxy-agent.d.ts
node_modules/undici-types/global-dispatcher.d.ts
node_modules/undici-types/index.d.ts
node_modules/undici-types/mock-errors.d.ts
node_modules/undici-types/mock-agent.d.ts
node_modules/undici-types/api.d.ts
node_modules/undici-types/retry-handler.d.ts
node_modules/undici-types/formdata.d.ts
node_modules/undici-types/client.d.ts
node_modules/undici-types/handlers.d.ts
node_modules/undici-types/cookies.d.ts
node_modules/undici-types/LICENSE
node_modules/undici-types/fetch.d.ts
node_modules/undici-types/eventsource.d.ts
node_modules/undici-types/content-type.d.ts
node_modules/proper-lockfile/README.md
node_modules/proper-lockfile/package.json
node_modules/proper-lockfile/CHANGELOG.md
node_modules/proper-lockfile/index.js
node_modules/proper-lockfile/LICENSE
node_modules/minimatch/README.md
node_modules/minimatch/LICENSE.md
node_modules/minimatch/package.json
node_modules/universalify/README.md
node_modules/universalify/package.json
node_modules/universalify/index.js
node_modules/universalify/LICENSE
node_modules/cli-cursor/license
node_modules/cli-cursor/readme.md
node_modules/cli-cursor/package.json
node_modules/cli-cursor/index.d.ts
node_modules/cli-cursor/index.js
node_modules/json-schema-to-ts/README.md
node_modules/json-schema-to-ts/package.json
node_modules/json-schema-to-ts/LICENSE
node_modules/es-set-tostringtag/README.md
node_modules/es-set-tostringtag/.eslintrc
node_modules/es-set-tostringtag/tsconfig.json
node_modules/es-set-tostringtag/.nycrc
node_modules/es-set-tostringtag/package.json
node_modules/es-set-tostringtag/index.d.ts
node_modules/es-set-tostringtag/CHANGELOG.md
node_modules/es-set-tostringtag/index.js
node_modules/es-set-tostringtag/LICENSE
node_modules/tinyexec/README.md
node_modules/tinyexec/package.json
node_modules/tinyexec/LICENSE
node_modules/event-target-shim/README.md
node_modules/event-target-shim/package.json
node_modules/event-target-shim/index.d.ts
node_modules/event-target-shim/LICENSE
node_modules/html-escaper/README.md
node_modules/html-escaper/min.js
node_modules/html-escaper/package.json
node_modules/html-escaper/LICENSE.txt
node_modules/html-escaper/index.js
node_modules/uint8array-extras/license
node_modules/uint8array-extras/readme.md
node_modules/uint8array-extras/package.json
node_modules/uint8array-extras/index.d.ts
node_modules/uint8array-extras/index.js
node_modules/tslog/README.md
node_modules/tslog/package.json
node_modules/tslog/LICENSE
node_modules/lodash.includes/README.md
node_modules/lodash.includes/package.json
node_modules/lodash.includes/index.js
node_modules/lodash.includes/LICENSE
node_modules/media-typer/README.md
node_modules/media-typer/HISTORY.md
node_modules/media-typer/package.json
node_modules/media-typer/index.js
node_modules/media-typer/LICENSE
node_modules/undici/README.md
node_modules/undici/index-fetch.js
node_modules/undici/package.json
node_modules/undici/index.d.ts
node_modules/undici/index.js
node_modules/undici/LICENSE
node_modules/content-type/README.md
node_modules/content-type/HISTORY.md
node_modules/content-type/package.json
node_modules/content-type/index.js
node_modules/content-type/LICENSE
node_modules/bun-types/overrides.d.ts
node_modules/bun-types/globals.d.ts
node_modules/bun-types/README.md
node_modules/bun-types/CLAUDE.md
node_modules/bun-types/test.d.ts
node_modules/bun-types/html-rewriter.d.ts
node_modules/bun-types/deprecated.d.ts
node_modules/bun-types/test-globals.d.ts
node_modules/bun-types/redis.d.ts
node_modules/bun-types/devserver.d.ts
node_modules/bun-types/serve.d.ts
node_modules/bun-types/shell.d.ts
node_modules/bun-types/s3.d.ts
node_modules/bun-types/sqlite.d.ts
node_modules/bun-types/jsc.d.ts
node_modules/bun-types/bun.ns.d.ts
node_modules/bun-types/bun.d.ts
node_modules/bun-types/wasm.d.ts
node_modules/bun-types/package.json
node_modules/bun-types/sql.d.ts
node_modules/bun-types/index.d.ts
node_modules/bun-types/extensions.d.ts
node_modules/bun-types/security.d.ts
node_modules/bun-types/bundle.d.ts
node_modules/bun-types/fetch.d.ts
node_modules/bun-types/ffi.d.ts
node_modules/p-queue/license
node_modules/p-queue/readme.md
node_modules/p-queue/package.json
node_modules/jsonwebtoken/README.md
node_modules/jsonwebtoken/verify.js
node_modules/jsonwebtoken/package.json
node_modules/jsonwebtoken/sign.js
node_modules/jsonwebtoken/decode.js
node_modules/jsonwebtoken/index.js
node_modules/jsonwebtoken/LICENSE
node_modules/zod-to-json-schema/README.md
node_modules/zod-to-json-schema/postesm.ts
node_modules/zod-to-json-schema/createIndex.ts
node_modules/zod-to-json-schema/package.json
node_modules/zod-to-json-schema/.prettierrc.json
node_modules/zod-to-json-schema/contributing.md
node_modules/zod-to-json-schema/changelog.md
node_modules/zod-to-json-schema/postcjs.ts
node_modules/zod-to-json-schema/LICENSE
node_modules/http-errors/README.md
node_modules/http-errors/HISTORY.md
node_modules/http-errors/package.json
node_modules/http-errors/index.js
node_modules/http-errors/LICENSE
node_modules/object-inspect/.eslintrc
node_modules/object-inspect/util.inspect.js
node_modules/object-inspect/readme.markdown
node_modules/object-inspect/.nycrc
node_modules/object-inspect/package-support.json
node_modules/object-inspect/test-core-js.js
node_modules/object-inspect/package.json
node_modules/object-inspect/CHANGELOG.md
node_modules/object-inspect/index.js
node_modules/object-inspect/LICENSE
node_modules/proxy-from-env/README.md
node_modules/proxy-from-env/.eslintrc
node_modules/proxy-from-env/test.js
node_modules/proxy-from-env/package.json
node_modules/proxy-from-env/.travis.yml
node_modules/proxy-from-env/index.js
node_modules/proxy-from-env/LICENSE
node_modules/cross-spawn/README.md
node_modules/cross-spawn/package.json
node_modules/cross-spawn/index.js
node_modules/cross-spawn/LICENSE
node_modules/socks/README.md
node_modules/socks/.prettierrc.yaml
node_modules/socks/package.json
node_modules/socks/.eslintrc.cjs
node_modules/socks/LICENSE
node_modules/cli-spinners/license
node_modules/cli-spinners/spinners.json
node_modules/cli-spinners/readme.md
node_modules/cli-spinners/package.json
node_modules/cli-spinners/index.d.ts
node_modules/cli-spinners/index.js
node_modules/function-bind/README.md
node_modules/function-bind/.eslintrc
node_modules/function-bind/implementation.js
node_modules/function-bind/.nycrc
node_modules/function-bind/package.json
node_modules/function-bind/CHANGELOG.md
node_modules/function-bind/index.js
node_modules/function-bind/LICENSE
node_modules/package-json-from-dist/README.md
node_modules/package-json-from-dist/LICENSE.md
node_modules/package-json-from-dist/package.json
node_modules/minimist/README.md
node_modules/minimist/.eslintrc
node_modules/minimist/.nycrc
node_modules/minimist/package.json
node_modules/minimist/CHANGELOG.md
node_modules/minimist/index.js
node_modules/minimist/LICENSE
node_modules/gauge/README.md
node_modules/gauge/LICENSE.md
node_modules/gauge/package.json
node_modules/gcp-metadata/README.md
node_modules/gcp-metadata/package.json
node_modules/gcp-metadata/LICENSE
node_modules/mimic-function/license
node_modules/mimic-function/readme.md
node_modules/mimic-function/package.json
node_modules/mimic-function/index.d.ts
node_modules/mimic-function/index.js
node_modules/is-interactive/license
node_modules/is-interactive/readme.md
node_modules/is-interactive/package.json
node_modules/is-interactive/index.d.ts
node_modules/is-interactive/index.js
node_modules/p-retry/license
node_modules/p-retry/readme.md
node_modules/p-retry/package.json
node_modules/p-retry/index.d.ts
node_modules/p-retry/index.js
node_modules/call-bound/README.md
node_modules/call-bound/.eslintrc
node_modules/call-bound/tsconfig.json
node_modules/call-bound/.nycrc
node_modules/call-bound/package.json
node_modules/call-bound/index.d.ts
node_modules/call-bound/CHANGELOG.md
node_modules/call-bound/index.js
node_modules/call-bound/LICENSE
node_modules/wrappy/README.md
node_modules/wrappy/package.json
node_modules/wrappy/wrappy.js
node_modules/wrappy/LICENSE
node_modules/es-object-atoms/RequireObjectCoercible.d.ts
node_modules/es-object-atoms/README.md
node_modules/es-object-atoms/isObject.d.ts
node_modules/es-object-atoms/.eslintrc
node_modules/es-object-atoms/tsconfig.json
node_modules/es-object-atoms/package.json
node_modules/es-object-atoms/isObject.js
node_modules/es-object-atoms/index.d.ts
node_modules/es-object-atoms/RequireObjectCoercible.js
node_modules/es-object-atoms/CHANGELOG.md
node_modules/es-object-atoms/ToObject.js
node_modules/es-object-atoms/index.js
node_modules/es-object-atoms/LICENSE
node_modules/es-object-atoms/ToObject.d.ts
node_modules/lodash.isboolean/README.md
node_modules/lodash.isboolean/package.json
node_modules/lodash.isboolean/index.js
node_modules/lodash.isboolean/LICENSE
node_modules/fast-uri/README.md
node_modules/fast-uri/.gitattributes
node_modules/fast-uri/tsconfig.json
node_modules/fast-uri/package.json
node_modules/fast-uri/index.js
node_modules/fast-uri/LICENSE
node_modules/fast-uri/eslint.config.js
node_modules/pac-proxy-agent/README.md
node_modules/pac-proxy-agent/package.json
node_modules/pac-proxy-agent/LICENSE
node_modules/webidl-conversions/README.md
node_modules/webidl-conversions/LICENSE.md
node_modules/webidl-conversions/package.json
node_modules/ieee754/README.md
node_modules/ieee754/package.json
node_modules/ieee754/index.d.ts
node_modules/ieee754/index.js
node_modules/ieee754/LICENSE
node_modules/lru-cache/README.md
node_modules/lru-cache/LICENSE.md
node_modules/lru-cache/package.json
node_modules/uc.micro/README.md
node_modules/uc.micro/package.json
node_modules/uc.micro/LICENSE.txt
node_modules/uc.micro/index.mjs
node_modules/negotiator/README.md
node_modules/negotiator/HISTORY.md
node_modules/negotiator/package.json
node_modules/negotiator/index.js
node_modules/negotiator/LICENSE
node_modules/http-proxy-agent/README.md
node_modules/http-proxy-agent/package.json
node_modules/http-proxy-agent/LICENSE
node_modules/semver/range.bnf
node_modules/semver/preload.js
node_modules/semver/README.md
node_modules/semver/package.json
node_modules/semver/index.js
node_modules/semver/LICENSE
node_modules/ipull/README.md
node_modules/ipull/package.json
node_modules/ipull/LICENSE
node_modules/gaxios/README.md
node_modules/gaxios/package.json
node_modules/gaxios/LICENSE
node_modules/universal-github-app-jwt/index.test-d.ts
node_modules/universal-github-app-jwt/README.md
node_modules/universal-github-app-jwt/jsconfig.json
node_modules/universal-github-app-jwt/package.json
node_modules/universal-github-app-jwt/index.d.ts
node_modules/universal-github-app-jwt/index.js
node_modules/universal-github-app-jwt/LICENSE
node_modules/universal-github-app-jwt/internals.d.ts
node_modules/universal-github-app-jwt/CODE_OF_CONDUCT.md
node_modules/sqlite-vec-linux-arm64/README.md
node_modules/sqlite-vec-linux-arm64/package.json
node_modules/sqlite-vec-linux-arm64/vec0.so
node_modules/once/README.md
node_modules/once/once.js
node_modules/once/package.json
node_modules/once/LICENSE
node_modules/pdfjs-dist/README.md
node_modules/pdfjs-dist/webpack.mjs
node_modules/pdfjs-dist/package.json
node_modules/pdfjs-dist/LICENSE
node_modules/pdfjs-dist/CODE_OF_CONDUCT.md
node_modules/node-domexception/README.md
node_modules/node-domexception/package.json
node_modules/node-domexception/index.js
node_modules/node-domexception/LICENSE
node_modules/slice-ansi/license
node_modules/slice-ansi/readme.md
node_modules/slice-ansi/package.json
node_modules/slice-ansi/index.d.ts
node_modules/slice-ansi/index.js
node_modules/on-exit-leak-free/README.md
node_modules/on-exit-leak-free/package.json
node_modules/on-exit-leak-free/index.js
node_modules/on-exit-leak-free/LICENSE
node_modules/extend/README.md
node_modules/extend/.eslintrc
node_modules/extend/.editorconfig
node_modules/extend/component.json
node_modules/extend/.jscs.json
node_modules/extend/package.json
node_modules/extend/.travis.yml
node_modules/extend/CHANGELOG.md
node_modules/extend/index.js
node_modules/extend/LICENSE
node_modules/obug/README.md
node_modules/obug/package.json
node_modules/obug/LICENSE
node_modules/signal-exit/README.md
node_modules/signal-exit/signals.js
node_modules/signal-exit/package.json
node_modules/signal-exit/LICENSE.txt
node_modules/signal-exit/index.js
node_modules/make-dir/license
node_modules/make-dir/readme.md
node_modules/make-dir/package.json
node_modules/make-dir/index.d.ts
node_modules/make-dir/index.js
node_modules/quick-format-unescaped/readme.md
node_modules/quick-format-unescaped/package.json
node_modules/quick-format-unescaped/benchmark.js
node_modules/quick-format-unescaped/index.js
node_modules/quick-format-unescaped/LICENSE
node_modules/escape-html/package.json
node_modules/escape-html/index.js
node_modules/escape-html/LICENSE
node_modules/escape-html/Readme.md
node_modules/ansi-regex/license
node_modules/ansi-regex/readme.md
node_modules/ansi-regex/package.json
node_modules/ansi-regex/index.d.ts
node_modules/ansi-regex/index.js
node_modules/body-parser/README.md
node_modules/body-parser/package.json
node_modules/body-parser/index.js
node_modules/body-parser/LICENSE
node_modules/env-var/README.md
node_modules/env-var/env-var.d.ts
node_modules/env-var/env-var.js
node_modules/env-var/package.json
node_modules/env-var/CHANGELOG.md
node_modules/env-var/LICENSE
node_modules/lowdb/README.md
node_modules/lowdb/package.json
node_modules/lowdb/LICENSE
node_modules/string-width-cjs/license
node_modules/string-width-cjs/readme.md
node_modules/string-width-cjs/package.json
node_modules/string-width-cjs/index.d.ts
node_modules/string-width-cjs/index.js
node_modules/iconv-lite/README.md
node_modules/iconv-lite/package.json
node_modules/iconv-lite/LICENSE
node_modules/protobufjs/README.md
node_modules/protobufjs/light.d.ts
node_modules/protobufjs/tsconfig.json
node_modules/protobufjs/package.json
node_modules/protobufjs/index.d.ts
node_modules/protobufjs/minimal.js
node_modules/protobufjs/light.js
node_modules/protobufjs/index.js
node_modules/protobufjs/LICENSE
node_modules/protobufjs/minimal.d.ts
node_modules/win-guid/README.md
node_modules/win-guid/package.json
node_modules/win-guid/LICENSE.txt
node_modules/hasown/README.md
node_modules/hasown/.eslintrc
node_modules/hasown/tsconfig.json
node_modules/hasown/.nycrc
node_modules/hasown/package.json
node_modules/hasown/index.d.ts
node_modules/hasown/CHANGELOG.md
node_modules/hasown/index.js
node_modules/hasown/LICENSE
node_modules/rollup/README.md
node_modules/rollup/LICENSE.md
node_modules/rollup/package.json
node_modules/ecdsa-sig-formatter/README.md
node_modules/ecdsa-sig-formatter/CODEOWNERS
node_modules/ecdsa-sig-formatter/package.json
node_modules/ecdsa-sig-formatter/LICENSE
node_modules/qrcode-terminal/README.md
node_modules/qrcode-terminal/package.json
node_modules/qrcode-terminal/.travis.yml
node_modules/qrcode-terminal/LICENSE
node_modules/axios/README.md
node_modules/axios/MIGRATION_GUIDE.md
node_modules/axios/package.json
node_modules/axios/index.d.ts
node_modules/axios/CHANGELOG.md
node_modules/axios/index.js
node_modules/axios/index.d.cts
node_modules/axios/LICENSE
node_modules/lodash.once/README.md
node_modules/lodash.once/package.json
node_modules/lodash.once/index.js
node_modules/lodash.once/LICENSE
node_modules/thread-stream/README.md
node_modules/thread-stream/tsconfig.json
node_modules/thread-stream/package.json
node_modules/thread-stream/index.d.ts
node_modules/thread-stream/bench.js
node_modules/thread-stream/index.js
node_modules/thread-stream/LICENSE
node_modules/thread-stream/.taprc
node_modules/before-after-hook/README.md
node_modules/before-after-hook/package.json
node_modules/before-after-hook/index.d.ts
node_modules/before-after-hook/index.js
node_modules/before-after-hook/LICENSE
node_modules/marked/README.md
node_modules/marked/LICENSE.md
node_modules/marked/package.json
node_modules/marked/marked.min.js
node_modules/web-streams-polyfill/README.md
node_modules/web-streams-polyfill/package.json
node_modules/web-streams-polyfill/LICENSE
node_modules/restore-cursor/license
node_modules/restore-cursor/readme.md
node_modules/restore-cursor/package.json
node_modules/restore-cursor/index.d.ts
node_modules/restore-cursor/index.js
node_modules/pac-resolver/README.md
node_modules/pac-resolver/package.json
node_modules/pac-resolver/LICENSE
node_modules/jwa/README.md
node_modules/jwa/package.json
node_modules/jwa/opslevel.yml
node_modules/jwa/index.js
node_modules/jwa/LICENSE
node_modules/hashery/README.md
node_modules/hashery/package.json
node_modules/hashery/LICENSE
node_modules/jackspeak/README.md
node_modules/jackspeak/LICENSE.md
node_modules/jackspeak/package.json
node_modules/lodash.pickby/README.md
node_modules/lodash.pickby/package.json
node_modules/lodash.pickby/index.js
node_modules/lodash.pickby/LICENSE
node_modules/mime-types/README.md
node_modules/mime-types/HISTORY.md
node_modules/mime-types/package.json
node_modules/mime-types/index.js
node_modules/mime-types/LICENSE
node_modules/pino-abstract-transport/README.md
node_modules/pino-abstract-transport/package.json
node_modules/pino-abstract-transport/index.d.ts
node_modules/pino-abstract-transport/index.js
node_modules/pino-abstract-transport/LICENSE
node_modules/range-parser/README.md
node_modules/range-parser/HISTORY.md
node_modules/range-parser/package.json
node_modules/range-parser/index.js
node_modules/range-parser/LICENSE
node_modules/aproba/README.md
node_modules/aproba/package.json
node_modules/aproba/index.js
node_modules/aproba/LICENSE
node_modules/shebang-command/license
node_modules/shebang-command/readme.md
node_modules/shebang-command/package.json
node_modules/shebang-command/index.js
node_modules/retry/License
node_modules/retry/README.md
node_modules/retry/package.json
node_modules/retry/index.js
node_modules/lie/README.md
node_modules/lie/license.md
node_modules/lie/polyfill.js
node_modules/lie/package.json
node_modules/lie/lie.d.ts
node_modules/follow-redirects/README.md
node_modules/follow-redirects/http.js
node_modules/follow-redirects/https.js
node_modules/follow-redirects/package.json
node_modules/follow-redirects/debug.js
node_modules/follow-redirects/index.js
node_modules/follow-redirects/LICENSE
node_modules/lodash.identity/README.md
node_modules/lodash.identity/package.json
node_modules/lodash.identity/LICENSE.txt
node_modules/lodash.identity/index.js
node_modules/process-warning/README.md
node_modules/process-warning/.gitattributes
node_modules/process-warning/package.json
node_modules/process-warning/index.js
node_modules/process-warning/LICENSE
node_modules/process-warning/eslint.config.js
node_modules/is-electron/README.md
node_modules/is-electron/package.json
node_modules/is-electron/index.d.ts
node_modules/is-electron/index.js
node_modules/is-electron/LICENSE
node_modules/stackback/README.md
node_modules/stackback/.npmignore
node_modules/stackback/formatstack.js
node_modules/stackback/test.js
node_modules/stackback/package.json
node_modules/stackback/.travis.yml
node_modules/stackback/index.js
node_modules/degenerator/README.md
node_modules/degenerator/package.json
node_modules/tinyglobby/README.md
node_modules/tinyglobby/package.json
node_modules/tinyglobby/LICENSE
node_modules/steno/README.md
node_modules/steno/package.json
node_modules/steno/LICENSE
node_modules/atomic-sleep/readme.md
node_modules/atomic-sleep/test.js
node_modules/atomic-sleep/package.json
node_modules/atomic-sleep/.travis.yml
node_modules/atomic-sleep/index.js
node_modules/atomic-sleep/LICENSE
node_modules/hosted-git-info/README.md
node_modules/hosted-git-info/package.json
node_modules/hosted-git-info/LICENSE
node_modules/picocolors/README.md
node_modules/picocolors/types.d.ts
node_modules/picocolors/picocolors.browser.js
node_modules/picocolors/package.json
node_modules/picocolors/picocolors.d.ts
node_modules/picocolors/LICENSE
node_modules/picocolors/picocolors.js
node_modules/filename-reserved-regex/license
node_modules/filename-reserved-regex/readme.md
node_modules/filename-reserved-regex/package.json
node_modules/filename-reserved-regex/index.js
node_modules/source-map-support/register-hook-require.js
node_modules/source-map-support/README.md
node_modules/source-map-support/LICENSE.md
node_modules/source-map-support/browser-source-map-support.js
node_modules/source-map-support/register.js
node_modules/source-map-support/package.json
node_modules/source-map-support/source-map-support.js
node_modules/lifecycle-utils/README.md
node_modules/lifecycle-utils/package.json
node_modules/lifecycle-utils/LICENSE
node_modules/esutils/README.md
node_modules/esutils/LICENSE.BSD
node_modules/esutils/package.json
node_modules/vitest/globals.d.ts
node_modules/vitest/suite.d.ts
node_modules/vitest/mocker.d.ts
node_modules/vitest/README.md
node_modules/vitest/suppress-warnings.cjs
node_modules/vitest/coverage.d.ts
node_modules/vitest/node.d.ts
node_modules/vitest/LICENSE.md
node_modules/vitest/importMeta.d.ts
node_modules/vitest/jsdom.d.ts
node_modules/vitest/snapshot.d.ts
node_modules/vitest/optional-types.d.ts
node_modules/vitest/worker.d.ts
node_modules/vitest/package.json
node_modules/vitest/runners.d.ts
node_modules/vitest/environments.d.ts
node_modules/vitest/index.cjs
node_modules/vitest/reporters.d.ts
node_modules/vitest/vitest.mjs
node_modules/vitest/index.d.cts
node_modules/vitest/import-meta.d.ts
node_modules/vitest/config.d.ts
node_modules/p-timeout/license
node_modules/p-timeout/readme.md
node_modules/p-timeout/package.json
node_modules/p-timeout/index.d.ts
node_modules/p-timeout/index.js
node_modules/lodash.merge/README.md
node_modules/lodash.merge/package.json
node_modules/lodash.merge/index.js
node_modules/lodash.merge/LICENSE
node_modules/picomatch/README.md
node_modules/picomatch/package.json
node_modules/picomatch/posix.js
node_modules/picomatch/index.js
node_modules/picomatch/LICENSE
node_modules/css-what/readme.md
node_modules/css-what/package.json
node_modules/css-what/LICENSE
node_modules/fast-deep-equal/README.md
node_modules/fast-deep-equal/react.js
node_modules/fast-deep-equal/package.json
node_modules/fast-deep-equal/index.d.ts
node_modules/fast-deep-equal/react.d.ts
node_modules/fast-deep-equal/index.js
node_modules/fast-deep-equal/LICENSE
node_modules/node-edge-tts/README.md
node_modules/node-edge-tts/bin.js
node_modules/node-edge-tts/package.json
node_modules/node-edge-tts/LICENSE
node_modules/assertion-error/README.md
node_modules/assertion-error/package.json
node_modules/assertion-error/index.d.ts
node_modules/assertion-error/index.js
node_modules/assertion-error/LICENSE
node_modules/stdin-discarder/license
node_modules/stdin-discarder/readme.md
node_modules/stdin-discarder/package.json
node_modules/stdin-discarder/index.d.ts
node_modules/stdin-discarder/index.js
node_modules/side-channel-map/README.md
node_modules/side-channel-map/.eslintrc
node_modules/side-channel-map/tsconfig.json
node_modules/side-channel-map/.editorconfig
node_modules/side-channel-map/.nycrc
node_modules/side-channel-map/package.json
node_modules/side-channel-map/index.d.ts
node_modules/side-channel-map/CHANGELOG.md
node_modules/side-channel-map/index.js
node_modules/side-channel-map/LICENSE
node_modules/eastasianwidth/README.md
node_modules/eastasianwidth/eastasianwidth.js
node_modules/eastasianwidth/package.json
node_modules/formdata-polyfill/README.md
node_modules/formdata-polyfill/formdata-to-blob.js
node_modules/formdata-polyfill/formdata.min.js
node_modules/formdata-polyfill/FormData.js
node_modules/formdata-polyfill/esm.min.js
node_modules/formdata-polyfill/package.json
node_modules/formdata-polyfill/esm.min.d.ts
node_modules/formdata-polyfill/LICENSE
node_modules/get-uri/README.md
node_modules/get-uri/package.json
node_modules/get-uri/LICENSE
node_modules/ansi-styles/license
node_modules/ansi-styles/readme.md
node_modules/ansi-styles/package.json
node_modules/ansi-styles/index.d.ts
node_modules/ansi-styles/index.js
node_modules/readable-stream/CONTRIBUTING.md
node_modules/readable-stream/README.md
node_modules/readable-stream/readable.js
node_modules/readable-stream/errors-browser.js
node_modules/readable-stream/errors.js
node_modules/readable-stream/GOVERNANCE.md
node_modules/readable-stream/experimentalWarning.js
node_modules/readable-stream/readable-browser.js
node_modules/readable-stream/package.json
node_modules/readable-stream/LICENSE
node_modules/ip-address/README.md
node_modules/ip-address/package.json
node_modules/ip-address/LICENSE
node_modules/lodash.isnumber/README.md
node_modules/lodash.isnumber/package.json
node_modules/lodash.isnumber/index.js
node_modules/lodash.isnumber/LICENSE
node_modules/pretty-ms/license
node_modules/pretty-ms/readme.md
node_modules/pretty-ms/package.json
node_modules/pretty-ms/index.d.ts
node_modules/pretty-ms/index.js
node_modules/proxy-agent/README.md
node_modules/proxy-agent/package.json
node_modules/proxy-agent/LICENSE
node_modules/ajv-formats/README.md
node_modules/ajv-formats/package.json
node_modules/ajv-formats/LICENSE
node_modules/ipaddr.js/README.md
node_modules/ipaddr.js/package.json
node_modules/ipaddr.js/ipaddr.min.js
node_modules/ipaddr.js/LICENSE
node_modules/jszip/CHANGES.md
node_modules/jszip/deps.js
node_modules/jszip/graph.svg
node_modules/jszip/tsconfig.json
node_modules/jszip/.editorconfig
node_modules/jszip/README.markdown
node_modules/jszip/.codeclimate.yml
node_modules/jszip/package.json
node_modules/jszip/.jekyll-metadata
node_modules/jszip/index.d.ts
node_modules/jszip/.travis.yml
node_modules/jszip/.eslintrc.js
node_modules/jszip/sponsors.md
node_modules/jszip/LICENSE.markdown
node_modules/vary/README.md
node_modules/vary/HISTORY.md
node_modules/vary/package.json
node_modules/vary/index.js
node_modules/vary/LICENSE
node_modules/ast-v8-to-istanbul/README.md
node_modules/ast-v8-to-istanbul/package.json
node_modules/ast-v8-to-istanbul/LICENSE
node_modules/isexe/README.md
node_modules/isexe/LICENSE.md
node_modules/isexe/package.json
node_modules/openclaw/README.md
node_modules/openclaw/package.json
node_modules/openclaw/openclaw.mjs
node_modules/openclaw/CHANGELOG.md
node_modules/openclaw/LICENSE
node_modules/libsignal/README.md
node_modules/libsignal/package.json
node_modules/libsignal/index.d.ts
node_modules/libsignal/index.js
node_modules/libsignal/LICENSE
node_modules/strtok3/README.md
node_modules/strtok3/package.json
node_modules/strtok3/LICENSE.txt
node_modules/sleep-promise/README.md
node_modules/sleep-promise/LICENSE.md
node_modules/sleep-promise/yarn.lock
node_modules/sleep-promise/package.json
node_modules/sleep-promise/CHANGELOG.md
node_modules/mdurl/README.md
node_modules/mdurl/package.json
node_modules/mdurl/LICENSE
node_modules/mdurl/index.mjs
node_modules/nanoid/README.md
node_modules/nanoid/index.browser.js
node_modules/nanoid/package.json
node_modules/nanoid/index.d.ts
node_modules/nanoid/nanoid.js
node_modules/nanoid/index.js
node_modules/nanoid/LICENSE
node_modules/postcss/README.md
node_modules/postcss/package.json
node_modules/postcss/LICENSE
node_modules/base64-js/README.md
node_modules/base64-js/package.json
node_modules/base64-js/index.d.ts
node_modules/base64-js/base64js.min.js
node_modules/base64-js/index.js
node_modules/base64-js/LICENSE
node_modules/which/README.md
node_modules/which/package.json
node_modules/which/LICENSE
node_modules/toidentifier/README.md
node_modules/toidentifier/HISTORY.md
node_modules/toidentifier/package.json
node_modules/toidentifier/index.js
node_modules/toidentifier/LICENSE
node_modules/domutils/readme.md
node_modules/domutils/package.json
node_modules/domutils/LICENSE
node_modules/path-scurry/README.md
node_modules/path-scurry/LICENSE.md
node_modules/path-scurry/package.json
node_modules/real-require/README.md
node_modules/real-require/LICENSE.md
node_modules/real-require/package.json
node_modules/sisteransi/license
node_modules/sisteransi/readme.md
node_modules/sisteransi/package.json
node_modules/path-to-regexp/package.json
node_modules/path-to-regexp/LICENSE
node_modules/path-to-regexp/Readme.md
node_modules/forwarded/README.md
node_modules/forwarded/HISTORY.md
node_modules/forwarded/package.json
node_modules/forwarded/index.js
node_modules/forwarded/LICENSE
node_modules/lodash.isinteger/README.md
node_modules/lodash.isinteger/package.json
node_modules/lodash.isinteger/index.js
node_modules/lodash.isinteger/LICENSE
node_modules/util-deprecate/README.md
node_modules/util-deprecate/node.js
node_modules/util-deprecate/package.json
node_modules/util-deprecate/browser.js
node_modules/util-deprecate/LICENSE
node_modules/util-deprecate/History.md
node_modules/grammy/README.md
node_modules/grammy/package.json
node_modules/grammy/LICENSE
node_modules/sqlite-vec/README.md
node_modules/sqlite-vec/package.json
node_modules/sqlite-vec/index.d.ts
node_modules/sqlite-vec/index.cjs
node_modules/sqlite-vec/index.mjs
node_modules/.package-lock.json
node_modules/pretty-bytes/license
node_modules/pretty-bytes/readme.md
node_modules/pretty-bytes/package.json
node_modules/pretty-bytes/index.d.ts
node_modules/pretty-bytes/index.js
node_modules/magicast/README.md
node_modules/magicast/package.json
node_modules/magicast/LICENSE
node_modules/delegates/License
node_modules/delegates/.npmignore
node_modules/delegates/Makefile
node_modules/delegates/package.json
node_modules/delegates/index.js
node_modules/delegates/History.md
node_modules/delegates/Readme.md
node_modules/serve-static/README.md
node_modules/serve-static/package.json
node_modules/serve-static/index.js
node_modules/serve-static/LICENSE
node_modules/hookified/README.md
node_modules/hookified/package.json
node_modules/hookified/LICENSE
node_modules/node-api-headers/CONTRIBUTING.md
node_modules/node-api-headers/README.md
node_modules/node-api-headers/release-please-config.json
node_modules/node-api-headers/CREATING_A_RELEASE.md
node_modules/node-api-headers/package.json
node_modules/node-api-headers/CHANGELOG.md
node_modules/node-api-headers/symbols.js
node_modules/node-api-headers/.release-please-manifest.json
node_modules/node-api-headers/index.js
node_modules/node-api-headers/LICENSE
node_modules/node-api-headers/CODE_OF_CONDUCT.md
node_modules/etag/README.md
node_modules/etag/HISTORY.md
node_modules/etag/package.json
node_modules/etag/index.js
node_modules/etag/LICENSE
node_modules/split2/README.md
node_modules/split2/test.js
node_modules/split2/package.json
node_modules/split2/bench.js
node_modules/split2/index.js
node_modules/split2/LICENSE
node_modules/wrap-ansi-cjs/license
node_modules/wrap-ansi-cjs/readme.md
node_modules/wrap-ansi-cjs/package.json
node_modules/wrap-ansi-cjs/index.js
node_modules/color-convert/conversions.js
node_modules/color-convert/README.md
node_modules/color-convert/package.json
node_modules/color-convert/CHANGELOG.md
node_modules/color-convert/index.js
node_modules/color-convert/route.js
node_modules/color-convert/LICENSE
node_modules/jiti/README.md
node_modules/jiti/package.json
node_modules/jiti/LICENSE
node_modules/ora/license
node_modules/ora/readme.md
node_modules/ora/package.json
node_modules/ora/index.d.ts
node_modules/ora/index.js
node_modules/stdout-update/README.md
node_modules/stdout-update/package.json
node_modules/stdout-update/CHANGELOG.md
node_modules/stdout-update/LICENSE
node_modules/escalade/license
node_modules/escalade/readme.md
node_modules/escalade/package.json
node_modules/escalade/index.d.ts
node_modules/escalade/index.d.mts
node_modules/wide-align/README.md
node_modules/wide-align/align.js
node_modules/wide-align/package.json
node_modules/wide-align/LICENSE
node_modules/get-proto/README.md
node_modules/get-proto/.eslintrc
node_modules/get-proto/tsconfig.json
node_modules/get-proto/.nycrc
node_modules/get-proto/Object.getPrototypeOf.d.ts
node_modules/get-proto/package.json
node_modules/get-proto/Reflect.getPrototypeOf.js
node_modules/get-proto/index.d.ts
node_modules/get-proto/CHANGELOG.md
node_modules/get-proto/index.js
node_modules/get-proto/Reflect.getPrototypeOf.d.ts
node_modules/get-proto/LICENSE
node_modules/get-proto/Object.getPrototypeOf.js
node_modules/require-from-string/license
node_modules/require-from-string/readme.md
node_modules/require-from-string/package.json
node_modules/require-from-string/index.js
node_modules/cliui/README.md
node_modules/cliui/package.json
node_modules/cliui/LICENSE.txt
node_modules/cliui/CHANGELOG.md
node_modules/cliui/index.mjs
node_modules/music-metadata/README.md
node_modules/music-metadata/package.json
node_modules/music-metadata/LICENSE.txt
node_modules/detect-libc/README.md
node_modules/detect-libc/package.json
node_modules/detect-libc/index.d.ts
node_modules/detect-libc/LICENSE
node_modules/has-tostringtag/shams.js
node_modules/has-tostringtag/README.md
node_modules/has-tostringtag/.eslintrc
node_modules/has-tostringtag/tsconfig.json
node_modules/has-tostringtag/.nycrc
node_modules/has-tostringtag/package.json
node_modules/has-tostringtag/index.d.ts
node_modules/has-tostringtag/CHANGELOG.md
node_modules/has-tostringtag/shams.d.ts
node_modules/has-tostringtag/index.js
node_modules/has-tostringtag/LICENSE
node_modules/merge-descriptors/license
node_modules/merge-descriptors/readme.md
node_modules/merge-descriptors/package.json
node_modules/merge-descriptors/index.d.ts
node_modules/merge-descriptors/index.js
node_modules/combined-stream/License
node_modules/combined-stream/yarn.lock
node_modules/combined-stream/package.json
node_modules/combined-stream/Readme.md
node_modules/fetch-blob/README.md
node_modules/fetch-blob/file.d.ts
node_modules/fetch-blob/from.js
node_modules/fetch-blob/package.json
node_modules/fetch-blob/index.d.ts
node_modules/fetch-blob/file.js
node_modules/fetch-blob/index.js
node_modules/fetch-blob/streams.cjs
node_modules/fetch-blob/LICENSE
node_modules/fetch-blob/from.d.ts
node_modules/chalk/license
node_modules/chalk/readme.md
node_modules/chalk/package.json
node_modules/console-control-strings/README.md
node_modules/console-control-strings/README.md~
node_modules/console-control-strings/package.json
node_modules/console-control-strings/index.js
node_modules/console-control-strings/LICENSE
node_modules/yargs-parser/README.md
node_modules/yargs-parser/package.json
node_modules/yargs-parser/browser.js
node_modules/yargs-parser/LICENSE.txt
node_modules/yargs-parser/CHANGELOG.md
node_modules/cacheable/README.md
node_modules/cacheable/package.json
node_modules/cacheable/LICENSE
node_modules/deep-extend/README.md
node_modules/deep-extend/package.json
node_modules/deep-extend/CHANGELOG.md
node_modules/deep-extend/index.js
node_modules/deep-extend/LICENSE
node_modules/tinyrainbow/README.md
node_modules/tinyrainbow/package.json
node_modules/tinyrainbow/LICENCE
node_modules/setprototypeof/README.md
node_modules/setprototypeof/package.json
node_modules/setprototypeof/index.d.ts
node_modules/setprototypeof/index.js
node_modules/setprototypeof/LICENSE
node_modules/chai/README.md
node_modules/chai/package.json
node_modules/chai/register-should.js
node_modules/chai/register-expect.js
node_modules/chai/index.js
node_modules/chai/LICENSE
node_modules/chai/register-assert.js
node_modules/parseurl/README.md
node_modules/parseurl/HISTORY.md
node_modules/parseurl/package.json
node_modules/parseurl/index.js
node_modules/parseurl/LICENSE
node_modules/form-data/License
node_modules/form-data/README.md
node_modules/form-data/package.json
node_modules/form-data/index.d.ts
node_modules/form-data/CHANGELOG.md
node_modules/unpipe/README.md
node_modules/unpipe/HISTORY.md
node_modules/unpipe/package.json
node_modules/unpipe/index.js
node_modules/unpipe/LICENSE
node_modules/url-join/README.md
node_modules/url-join/package.json
node_modules/url-join/.travis.yml
node_modules/url-join/CHANGELOG.md
node_modules/url-join/LICENSE
node_modules/eventemitter3/README.md
node_modules/eventemitter3/package.json
node_modules/eventemitter3/index.d.ts
node_modules/eventemitter3/index.js
node_modules/eventemitter3/LICENSE
node_modules/eventemitter3/index.mjs
node_modules/math-intrinsics/isNaN.js
node_modules/math-intrinsics/mod.js
node_modules/math-intrinsics/pow.d.ts
node_modules/math-intrinsics/max.js
node_modules/math-intrinsics/README.md
node_modules/math-intrinsics/min.d.ts
node_modules/math-intrinsics/isNegativeZero.d.ts
node_modules/math-intrinsics/abs.js
node_modules/math-intrinsics/.eslintrc
node_modules/math-intrinsics/tsconfig.json
node_modules/math-intrinsics/isInteger.js
node_modules/math-intrinsics/isNaN.d.ts
node_modules/math-intrinsics/floor.d.ts
node_modules/math-intrinsics/max.d.ts
node_modules/math-intrinsics/isFinite.js
node_modules/math-intrinsics/mod.d.ts
node_modules/math-intrinsics/round.js
node_modules/math-intrinsics/min.js
node_modules/math-intrinsics/floor.js
node_modules/math-intrinsics/sign.d.ts
node_modules/math-intrinsics/package.json
node_modules/math-intrinsics/isInteger.d.ts
node_modules/math-intrinsics/abs.d.ts
node_modules/math-intrinsics/sign.js
node_modules/math-intrinsics/isFinite.d.ts
node_modules/math-intrinsics/CHANGELOG.md
node_modules/math-intrinsics/isNegativeZero.js
node_modules/math-intrinsics/pow.js
node_modules/math-intrinsics/LICENSE
node_modules/math-intrinsics/round.d.ts
node_modules/hono/README.md
node_modules/hono/package.json
node_modules/hono/LICENSE
node_modules/require-directory/.npmignore
node_modules/require-directory/README.markdown
node_modules/require-directory/package.json
node_modules/require-directory/.travis.yml
node_modules/require-directory/.jshintrc
node_modules/require-directory/index.js
node_modules/require-directory/LICENSE
node_modules/json-bigint/README.md
node_modules/json-bigint/package.json
node_modules/json-bigint/index.js
node_modules/json-bigint/LICENSE
node_modules/async-mutex/README.md
node_modules/async-mutex/package.json
node_modules/async-mutex/LICENSE
node_modules/async-mutex/index.mjs
node_modules/rc/README.md
node_modules/rc/LICENSE.APACHE2
node_modules/rc/LICENSE.MIT
node_modules/rc/LICENSE.BSD
node_modules/rc/package.json
node_modules/rc/browser.js
node_modules/rc/cli.js
node_modules/rc/index.js
node_modules/is-unicode-supported/license
node_modules/is-unicode-supported/readme.md
node_modules/is-unicode-supported/package.json
node_modules/is-unicode-supported/index.d.ts
node_modules/is-unicode-supported/index.js
node_modules/inherits/README.md
node_modules/inherits/inherits_browser.js
node_modules/inherits/inherits.js
node_modules/inherits/package.json
node_modules/inherits/LICENSE
node_modules/ee-first/README.md
node_modules/ee-first/package.json
node_modules/ee-first/index.js
node_modules/ee-first/LICENSE
node_modules/string-width/license
node_modules/string-width/readme.md
node_modules/string-width/package.json
node_modules/string-width/index.d.ts
node_modules/string-width/index.js
node_modules/cli-highlight/README.md
node_modules/cli-highlight/package.json
node_modules/cli-highlight/LICENSE.txt
node_modules/zod/README.md
node_modules/zod/package.json
node_modules/zod/index.d.ts
node_modules/zod/index.cjs
node_modules/zod/index.js
node_modules/zod/index.d.cts
node_modules/zod/LICENSE
node_modules/set-blocking/README.md
node_modules/set-blocking/package.json
node_modules/set-blocking/LICENSE.txt
node_modules/set-blocking/CHANGELOG.md
node_modules/set-blocking/index.js
node_modules/vite/README.md
node_modules/vite/LICENSE.md
node_modules/vite/package.json
node_modules/vite/client.d.ts
node_modules/highlight.js/README.md
node_modules/highlight.js/package.json
node_modules/highlight.js/LICENSE
node_modules/osc-progress/README.md
node_modules/osc-progress/package.json
node_modules/osc-progress/CHANGELOG.md
node_modules/osc-progress/LICENSE
node_modules/why-is-node-running/README.md
node_modules/why-is-node-running/include.js
node_modules/why-is-node-running/package.json
node_modules/why-is-node-running/example.js
node_modules/why-is-node-running/cli.js
node_modules/why-is-node-running/index.js
node_modules/why-is-node-running/LICENSE
node_modules/safe-buffer/README.md
node_modules/safe-buffer/package.json
node_modules/safe-buffer/index.d.ts
node_modules/safe-buffer/index.js
node_modules/safe-buffer/LICENSE
node_modules/keyv/README.md
node_modules/keyv/package.json
node_modules/keyv/LICENSE
node_modules/pino-std-serializers/tsconfig.json
node_modules/pino-std-serializers/.editorconfig
node_modules/pino-std-serializers/package.json
node_modules/pino-std-serializers/index.d.ts
node_modules/pino-std-serializers/index.js
node_modules/pino-std-serializers/LICENSE
node_modules/pino-std-serializers/Readme.md
node_modules/pino-std-serializers/eslint.config.js
node_modules/side-channel-list/list.d.ts
node_modules/side-channel-list/README.md
node_modules/side-channel-list/.eslintrc
node_modules/side-channel-list/tsconfig.json
node_modules/side-channel-list/.editorconfig
node_modules/side-channel-list/.nycrc
node_modules/side-channel-list/package.json
node_modules/side-channel-list/index.d.ts
node_modules/side-channel-list/CHANGELOG.md
node_modules/side-channel-list/index.js
node_modules/side-channel-list/LICENSE
node_modules/pathe/README.md
node_modules/pathe/utils.d.ts
node_modules/pathe/package.json
node_modules/pathe/LICENSE
node_modules/smart-buffer/README.md
node_modules/smart-buffer/.prettierrc.yaml
node_modules/smart-buffer/package.json
node_modules/smart-buffer/.travis.yml
node_modules/smart-buffer/LICENSE
node_modules/google-logging-utils/README.md
node_modules/google-logging-utils/package.json
node_modules/google-logging-utils/LICENSE
node_modules/accepts/README.md
node_modules/accepts/HISTORY.md
node_modules/accepts/package.json
node_modules/accepts/index.js
node_modules/accepts/LICENSE
node_modules/istanbul-lib-coverage/README.md
node_modules/istanbul-lib-coverage/package.json
node_modules/istanbul-lib-coverage/CHANGELOG.md
node_modules/istanbul-lib-coverage/index.js
node_modules/istanbul-lib-coverage/LICENSE
node_modules/minipass/README.md
node_modules/minipass/package.json
node_modules/minipass/LICENSE
node_modules/istanbul-reports/README.md
node_modules/istanbul-reports/package.json
node_modules/istanbul-reports/CHANGELOG.md
node_modules/istanbul-reports/index.js
node_modules/istanbul-reports/LICENSE
node_modules/siginfo/README.md
node_modules/siginfo/test.js
node_modules/siginfo/package.json
node_modules/siginfo/.travis.yml
node_modules/siginfo/index.js
node_modules/siginfo/LICENSE
node_modules/dom-serializer/README.md
node_modules/dom-serializer/package.json
node_modules/dom-serializer/LICENSE
node_modules/simple-git/promise.js
node_modules/simple-git/readme.md
node_modules/simple-git/package.json
node_modules/fs-minipass/README.md
node_modules/fs-minipass/package.json
node_modules/fs-minipass/index.js
node_modules/fs-minipass/LICENSE
node_modules/curve25519-js/README.md
node_modules/curve25519-js/tsconfig.json
node_modules/curve25519-js/tslint.json
node_modules/curve25519-js/.prettierrc
node_modules/curve25519-js/package.json
node_modules/curve25519-js/LICENSE
node_modules/es-define-property/README.md
node_modules/es-define-property/.eslintrc
node_modules/es-define-property/tsconfig.json
node_modules/es-define-property/.nycrc
node_modules/es-define-property/package.json
node_modules/es-define-property/index.d.ts
node_modules/es-define-property/CHANGELOG.md
node_modules/es-define-property/index.js
node_modules/es-define-property/LICENSE
node_modules/chownr/README.md
node_modules/chownr/chownr.js
node_modules/chownr/package.json
node_modules/chownr/LICENSE
node_modules/linkedom/README.md
node_modules/linkedom/tsconfig.json
node_modules/linkedom/worker.js
node_modules/linkedom/package.json
node_modules/linkedom/LICENSE
node_modules/immediate/README.md
node_modules/immediate/package.json
node_modules/immediate/LICENSE.txt
node_modules/buffer-equal-constant-time/README.md
node_modules/buffer-equal-constant-time/.npmignore
node_modules/buffer-equal-constant-time/test.js
node_modules/buffer-equal-constant-time/package.json
node_modules/buffer-equal-constant-time/.travis.yml
node_modules/buffer-equal-constant-time/LICENSE.txt
node_modules/buffer-equal-constant-time/index.js
node_modules/prism-media/README.md
node_modules/prism-media/package.json
node_modules/prism-media/LICENSE
node_modules/nth-check/README.md
node_modules/nth-check/package.json
node_modules/nth-check/LICENSE
node_modules/strnum/algo.stflow
node_modules/strnum/README.md
node_modules/strnum/strnum.test.js
node_modules/strnum/test.js
node_modules/strnum/package.json
node_modules/strnum/CHANGELOG.md
node_modules/strnum/LICENSE
node_modules/strnum/strnum.js
node_modules/mz/zlib.js
node_modules/mz/README.md
node_modules/mz/child_process.js
node_modules/mz/dns.js
node_modules/mz/fs.js
node_modules/mz/HISTORY.md
node_modules/mz/package.json
node_modules/mz/readline.js
node_modules/mz/crypto.js
node_modules/mz/index.js
node_modules/mz/LICENSE
node_modules/esprima/README.md
node_modules/esprima/ChangeLog
node_modules/esprima/LICENSE.BSD
node_modules/esprima/package.json
node_modules/js-tokens/README.md
node_modules/js-tokens/package.json
node_modules/js-tokens/index.d.ts
node_modules/js-tokens/index.js
node_modules/js-tokens/LICENSE
node_modules/memory-stream/README.md
node_modules/memory-stream/package.json
node_modules/memory-stream/index.js
node_modules/memory-stream/LICENSE
node_modules/dunder-proto/README.md
node_modules/dunder-proto/set.js
node_modules/dunder-proto/.eslintrc
node_modules/dunder-proto/tsconfig.json
node_modules/dunder-proto/.nycrc
node_modules/dunder-proto/package.json
node_modules/dunder-proto/CHANGELOG.md
node_modules/dunder-proto/get.d.ts
node_modules/dunder-proto/LICENSE
node_modules/dunder-proto/get.js
node_modules/dunder-proto/set.d.ts
node_modules/express/package.json
node_modules/express/index.js
node_modules/express/LICENSE
node_modules/express/Readme.md
node_modules/qified/README.md
node_modules/qified/package.json
node_modules/qified/LICENSE
node_modules/linkify-it/README.md
node_modules/linkify-it/package.json
node_modules/linkify-it/LICENSE
node_modules/linkify-it/index.mjs
node_modules/bowser/README.md
node_modules/bowser/bundled.js
node_modules/bowser/package.json
node_modules/bowser/index.d.ts
node_modules/bowser/LICENSE
node_modules/bowser/es5.js
node_modules/ws/README.md
node_modules/ws/wrapper.mjs
node_modules/ws/package.json
node_modules/ws/browser.js
node_modules/ws/index.js
node_modules/ws/LICENSE
node_modules/has-flag/license
node_modules/has-flag/readme.md
node_modules/has-flag/package.json
node_modules/has-flag/index.d.ts
node_modules/has-flag/index.js
node_modules/https-proxy-agent/README.md
node_modules/https-proxy-agent/package.json
node_modules/https-proxy-agent/LICENSE
node_modules/mkdirp/readme.markdown
node_modules/mkdirp/package.json
node_modules/mkdirp/CHANGELOG.md
node_modules/mkdirp/index.js
node_modules/mkdirp/LICENSE
node_modules/is-stream/license
node_modules/is-stream/readme.md
node_modules/is-stream/package.json
node_modules/is-stream/index.d.ts
node_modules/is-stream/index.js
node_modules/fast-xml-parser/README.md
node_modules/fast-xml-parser/package.json
node_modules/fast-xml-parser/CHANGELOG.md
node_modules/fast-xml-parser/LICENSE
node_modules/universal-user-agent/index.test-d.ts
node_modules/universal-user-agent/README.md
node_modules/universal-user-agent/index.test.js
node_modules/universal-user-agent/LICENSE.md
node_modules/universal-user-agent/SECURITY.md
node_modules/universal-user-agent/package.json
node_modules/universal-user-agent/index.d.ts
node_modules/universal-user-agent/index.js
node_modules/universal-user-agent/CODE_OF_CONDUCT.md
node_modules/json5/README.md
node_modules/json5/LICENSE.md
node_modules/json5/package.json
node_modules/mime-db/README.md
node_modules/mime-db/db.json
node_modules/mime-db/HISTORY.md
node_modules/mime-db/package.json
node_modules/mime-db/index.js
node_modules/mime-db/LICENSE
node_modules/string_decoder/README.md
node_modules/string_decoder/package.json
node_modules/string_decoder/LICENSE
node_modules/bytes/package.json
node_modules/bytes/index.js
node_modules/bytes/LICENSE
node_modules/bytes/History.md
node_modules/bytes/Readme.md
node_modules/ignore/README.md
node_modules/ignore/LICENSE-MIT
node_modules/ignore/legacy.js
node_modules/ignore/package.json
node_modules/ignore/index.d.ts
node_modules/ignore/index.js
node_modules/on-finished/README.md
node_modules/on-finished/HISTORY.md
node_modules/on-finished/package.json
node_modules/on-finished/index.js
node_modules/on-finished/LICENSE
node_modules/core-util-is/README.md
node_modules/core-util-is/package.json
node_modules/core-util-is/LICENSE
node_modules/signal-utils/README.md
node_modules/signal-utils/package.json
node_modules/signal-utils/LICENSE
node_modules/tr46/.npmignore
node_modules/tr46/package.json
node_modules/tr46/index.js
node_modules/type-is/README.md
node_modules/type-is/HISTORY.md
node_modules/type-is/package.json
node_modules/type-is/index.js
node_modules/type-is/LICENSE
node_modules/croner/README.md
node_modules/croner/package.json
node_modules/croner/LICENSE
node_modules/es-module-lexer/README.md
node_modules/es-module-lexer/lexer.js
node_modules/es-module-lexer/package.json
node_modules/es-module-lexer/LICENSE
node_modules/std-env/README.md
node_modules/std-env/package.json
node_modules/std-env/LICENCE
node_modules/cookie/README.md
node_modules/cookie/SECURITY.md
node_modules/cookie/package.json
node_modules/cookie/index.js
node_modules/cookie/LICENSE
node_modules/long/README.md
node_modules/long/types.d.ts
node_modules/long/package.json
node_modules/long/index.d.ts
node_modules/long/index.js
node_modules/long/LICENSE
node_modules/setimmediate/package.json
node_modules/setimmediate/LICENSE.txt
node_modules/setimmediate/setImmediate.js
node_modules/pino/CONTRIBUTING.md
node_modules/pino/index.html
node_modules/pino/README.md
node_modules/pino/pino-logo-hire.png
node_modules/pino/favicon.ico
node_modules/pino/.taprc.yaml
node_modules/pino/.eslintrc
node_modules/pino/.prettierignore
node_modules/pino/tsconfig.json
node_modules/pino/pino-banner.png
node_modules/pino/SECURITY.md
node_modules/pino/.nojekyll
node_modules/pino/CNAME
node_modules/pino/bin.js
node_modules/pino/favicon-32x32.png
node_modules/pino/pino-tree.png
node_modules/pino/pino.js
node_modules/pino/pino.d.ts
node_modules/pino/package.json
node_modules/pino/favicon-16x16.png
node_modules/pino/browser.js
node_modules/pino/.eslintignore
node_modules/pino/file.js
node_modules/pino/pretty-demo.png
node_modules/pino/LICENSE
node_modules/pino/inc-version.sh
node_modules/data-uri-to-buffer/README.md
node_modules/data-uri-to-buffer/package.json
node_modules/parse5-htmlparser2-tree-adapter/README.md
node_modules/parse5-htmlparser2-tree-adapter/package.json
node_modules/parse5-htmlparser2-tree-adapter/LICENSE
node_modules/ast-types/README.md
node_modules/ast-types/fork.js
node_modules/ast-types/types.js
node_modules/ast-types/tsconfig.json
node_modules/ast-types/main.d.ts
node_modules/ast-types/fork.d.ts
node_modules/ast-types/types.d.ts
node_modules/ast-types/package.json
node_modules/ast-types/main.js
node_modules/ast-types/LICENSE
node_modules/onetime/license
node_modules/onetime/readme.md
node_modules/onetime/package.json
node_modules/onetime/index.d.ts
node_modules/onetime/index.js
node_modules/node-readable-to-web-readable-stream/README.md
node_modules/node-readable-to-web-readable-stream/package.json
node_modules/node-readable-to-web-readable-stream/LICENSE.txt
node_modules/tsscmp/README.md
node_modules/tsscmp/package.json
node_modules/tsscmp/.travis.yml
node_modules/tsscmp/LICENSE
node_modules/tsscmp/appveyor.yml
node_modules/tslib/README.md
node_modules/tslib/tslib.js
node_modules/tslib/SECURITY.md
node_modules/tslib/tslib.es6.html
node_modules/tslib/tslib.d.ts
node_modules/tslib/package.json
node_modules/tslib/CopyrightNotice.txt
node_modules/tslib/LICENSE.txt
node_modules/tslib/tslib.es6.js
node_modules/tslib/tslib.es6.mjs
node_modules/tslib/tslib.html
package-lock.json
vitest.config.ts
README.en.md
package.json
index.ts
tests/fixtures/payloads.ts
tests/example.test.ts
tests/integration/relay-client.test.ts
tests/integration/.gitkeep
tests/integration/plugin-export.test.ts
tests/unit/index.test.ts
tests/unit/version.test.ts
tests/unit/types.test.ts
tests/unit/runtime.test.ts
tests/unit/.gitkeep
tests/unit/channel.test.ts
tests/setup.ts
src/version.ts
src/types.ts
src/kakao/callback.ts
src/kakao/response.ts
src/kakao/limits.ts
src/kakao/payload.ts
src/adapters/outbound.ts
src/adapters/pairing.ts
src/adapters/security.ts
src/adapters/config.ts
src/adapters/status.ts
src/adapters/setup.ts
src/adapters/gateway.ts
src/channel.ts
src/openclaw.d.ts
src/relay/sse.ts
src/relay/client.ts
src/relay/session.ts
src/relay/stream.ts
src/runtime.ts
src/config/schema.ts
CHANGELOG.md
.release-please-manifest.json
AGENTS.md
images/apple-touch-icon.png
images/github-logo.webp
images/openclaw-icon.png
images/lobster-emoji-large-google.png
images/github-social.png
docs/api-reference.md
docs/channelData-pattern.md
docs/card-types.md


# API Reference

## Response Builders

### `buildSimpleTextResponse(text: string)`

Build a Kakao SkillResponse with simpleText output.

```typescript
import { buildSimpleTextResponse } from "@openclaw/kakao-talkchannel";

const response = buildSimpleTextResponse("안녕하세요!");
// { version: "2.0", template: { outputs: [{ simpleText: { text: "안녕하세요!" } }] } }
```

### `buildSimpleImageResponse(imageUrl: string, altText?: string)`

Build a response with simpleImage output.

```typescript
const response = buildSimpleImageResponse(
  "https://example.com/image.jpg",
  "상품 이미지"
);
```

### `buildTextCardResponse(options)`

Build a response with textCard output.

```typescript
const response = buildTextCardResponse({
  title: "알림",
  description: "새로운 메시지가 있습니다.",
  buttons: [
    { label: "확인", action: "message", messageText: "확인했습니다" }
  ]
});
```

### `buildBasicCardResponse(options)`

Build a response with basicCard output.

```typescript
const response = buildBasicCardResponse({
  title: "상품명",
  description: "상품 설명",
  thumbnail: { imageUrl: "https://example.com/thumb.jpg" },
  buttons: [
    { label: "구매하기", action: "webLink", webLinkUrl: "https://shop.example.com" }
  ]
});
```

### `buildCarouselResponse(type, items)`

Build a response with carousel output.

```typescript
const response = buildCarouselResponse("basicCard", [
  { basicCard: { title: "상품1", thumbnail: { imageUrl: "..." } } },
  { basicCard: { title: "상품2", thumbnail: { imageUrl: "..." } } },
]);
```

## Text Processing

### `chunkTextForKakao(text, limit?, mode?)`

Split text into chunks respecting Kakao's character limits.

```typescript
import { chunkTextForKakao } from "@openclaw/kakao-talkchannel";

// Default: 400 chars, sentence mode
const chunks = chunkTextForKakao(longText);

// Custom limit and mode
const chunks = chunkTextForKakao(longText, 500, "newline");
```

**Modes:**
- `sentence` (default): Split at sentence boundaries (. ! ?)
- `newline`: Split at paragraph boundaries (blank lines)
- `length`: Hard split at exact character limit

### `stripMarkdown(text: string)`

Remove markdown formatting for Kakao (which doesn't support markdown).

```typescript
import { stripMarkdown } from "@openclaw/kakao-talkchannel";

const plain = stripMarkdown("**Bold** and *italic*");
// "Bold and italic"
```

## Validation

### `KAKAO_LIMITS`

Constants for Kakao API limits.

```typescript
import { KAKAO_LIMITS } from "@openclaw/kakao-talkchannel";

KAKAO_LIMITS.SIMPLE_TEXT_MAX      // 1000
KAKAO_LIMITS.SIMPLE_TEXT_VISIBLE  // 400
KAKAO_LIMITS.CARD_TITLE           // 50
KAKAO_LIMITS.CARD_DESCRIPTION     // 230
KAKAO_LIMITS.BUTTON_LABEL         // 14
KAKAO_LIMITS.QUICK_REPLY_LABEL    // 14
KAKAO_LIMITS.QUICK_REPLIES_MAX    // 10
KAKAO_LIMITS.OUTPUTS_MAX          // 3
KAKAO_LIMITS.CAROUSEL_MIN         // 2
KAKAO_LIMITS.CAROUSEL_MAX         // 10
KAKAO_LIMITS.LIST_ITEMS_MIN       // 2
KAKAO_LIMITS.LIST_ITEMS_MAX       // 5
```

### Validation Functions

```typescript
import {
  validateSimpleText,
  validateCardTitle,
  validateButton,
  validateQuickReplies,
} from "@openclaw/kakao-talkchannel";

const result = validateSimpleText(text);
if (!result.valid) {
  console.error(result.error);
}
```

## Types

### `KakaoSkillPayload`

Incoming message from Kakao.

```typescript
interface KakaoSkillPayload {
  intent: KakaoIntent;
  userRequest: KakaoUserRequest;
  bot: KakaoBot;
  action: KakaoAction;
}
```

### `KakaoSkillResponse`

Response to send back to Kakao.

```typescript
interface KakaoSkillResponse {
  version: "2.0";
  useCallback?: boolean;
  template?: KakaoSkillTemplate;
  context?: KakaoContextControl;
  data?: Record<string, unknown>;
}
```

### `KakaoButton`

Button configuration.

```typescript
interface KakaoButton {
  label: string;
  action: "webLink" | "message" | "block" | "share" | "phone" | "operator" | "osLink";
  webLinkUrl?: string;
  messageText?: string;
  blockId?: string;
  phoneNumber?: string;
  osLink?: { ios?: string; android?: string };
  extra?: Record<string, unknown>;
}
```

### `KakaoQuickReply`

Quick reply configuration.

```typescript
interface KakaoQuickReply {
  label: string;
  action: "message" | "block";
  messageText?: string;
  blockId?: string;
  extra?: Record<string, unknown>;
}
```


exec

cd ~/Downloads/openclaw-kakao-talkchannel && rg "pair" src -n


/bin/bash: line 1: rg: command not found

Command exited with code 127


cd ~/Downloads/openclaw-kakao-talkchannel && grep -R "pairing" -n


# OpenClaw Kakao TalkChannel Plugin

카카오톡 채널을 OpenClaw에 연결하는 플러그인입니다.

[English](./README.en.md)

---

## 설치

### npm

```bash
npm install @openclaw/kakao-talkchannel
```

```bash
pnpm add @openclaw/kakao-talkchannel
```

### OpenClaw CLI

OpenClaw에게 말하세요:

> "카카오톡 플러그인 설치해줘"

그게 끝입니다. OpenClaw가 알아서 설치합니다.

---

## 사용자 가이드

### 카카오톡 연결

1. OpenClaw에게 **"카카오톡 연결해줘"**
2. OpenClaw가 페어링 코드 제공 (예: `ABCD-1234`)
3. [카카오톡 채널](http://pf.kakao.com/_scexbC) 접속
4. 채팅창에 `/pair ABCD-1234` 입력
5. 연결 완료!

> **중요**: 반드시 OpenClaw가 먼저 코드를 생성합니다.

### 문제 해결

| 문제 | OpenClaw에게 요청 |
|------|------------------|
| 플러그인이 안 됨 | "플러그인 진단해줘" |
| 채널이 안 보임 | "게이트웨이 재시작해줘" |
| 페어링이 안 됨 | "카카오톡 연결해줘" (처음부터 다시) |
| 대화가 멈춤 / tool 에러 | `/reset` 또는 `/compact` 실행 |

#### OpenClaw 세션 관리

대화가 길어지면 OpenClaw 코어의 컴팩션 과정에서 tool 관련 에러가 발생할 수 있습니다:

```
messages.60.content.1: unexpected tooluseid found in toolresult blocks
```

이는 OpenClaw 코어의 알려진 버그로, 고아 toolResult를 transcript hygiene이 감지하지 못한 케이스입니다.

**예방 및 해결 방법:**

| 방법 | 언제 사용 | 효과 |
|------|-----------|------|
| `/compact` | 대화가 복잡해지기 전 | 히스토리 압축으로 문제 예방 |
| `/reset` | 에러로 대화가 막혔을 때 | 세션 초기화로 즉시 해결 |

> **권장**: 장시간 대화 시 주기적으로 `/compact`를 실행하세요.

---

## OpenClaw 에이전트 가이드

> 이 섹션은 OpenClaw가 참조하는 자동화 지침입니다.

### 플러그인 설치 요청 시

사용자가 "카카오톡 플러그인 설치", "카톡 연동" 등을 요청하면:

```bash
# 1. 설치
openclaw plugins install @openclaw/kakao-talkchannel

# 2. 확인 (kakao-talkchannel이 loaded 상태인지)
openclaw plugins list

# 3. 게이트웨이 재시작
openclaw gateway restart

# 4. 채널 확인
openclaw channels list
```

### 카카오톡 연결 요청 시

사용자가 "카카오톡 연결", "카톡 연동" 등을 요청하면:

1. 페어링 코드 생성
2. 사용자에게 안내:
   > "카카오톡 채널(http://pf.kakao.com/_scexbC)에서 `/pair {코드}`를 입력하세요"
3. 페어링 완료 대기

### 로컬 플러그인 설치 요청 시

사용자가 경로를 지정하며 로컬 설치를 요청하면:

```bash
# 링크 모드 (개발용, 소스 수정 즉시 반영)
openclaw plugins install -l {경로}

# 복사 모드
openclaw plugins install {경로}
```

---

## 카드 메시지

에이전트가 JSON 형식으로 응답하면 카카오톡 카드로 자동 변환됩니다.

### 지원 카드 타입

| 타입 | 설명 |
|------|------|
| `textCard` | 텍스트 + 버튼 |
| `basicCard` | 이미지 + 텍스트 + 버튼 |
| `listCard` | 리스트 형태 |
| `commerceCard` | 상품 카드 |
| `simpleImage` | 이미지만 |
| `carousel` | 여러 카드 슬라이드 |

### 예시: textCard

```json
{"textCard":{"title":"제목","description":"설명","buttons":[{"label":"버튼","action":"message","messageText":"클릭!"}]}}
```

### 예시: basicCard

```json
{"basicCard":{"title":"제목","description":"설명","thumbnail":{"imageUrl":"https://example.com/image.jpg"},"buttons":[{"label":"자세히","action":"webLink","webLinkUrl":"https://example.com"}]}}
```

### 버튼 액션

| action | 설명 | 필수 필드 |
|--------|------|-----------|
| `message` | 메시지 전송 | `messageText` |
| `webLink` | 웹 링크 | `webLinkUrl` |
| `phone` | 전화 걸기 | `phoneNumber` |
| `share` | 공유하기 | - |

### quickReplies (빠른 응답)

```json
{"textCard":{"title":"선택하세요"},"quickReplies":[{"label":"A","action":"message","messageText":"A"},{"label":"B","action":"message","messageText":"B"}]}
```

> **참고**: 일반 텍스트는 그대로 전송됩니다. JSON 형식일 때만 카드로 변환됩니다.
>
> **주의**: 카드를 보낼 때는 JSON만 단독으로 보내야 합니다. 텍스트와 섞으면 변환되지 않습니다.

자세한 내용은 [CLAUDE.md](./CLAUDE.md)를 참조하세요.

---

## 릴레이 서버

이 플러그인은 **릴레이 서버**를 통해 카카오톡 채널과 통신합니다. 두 가지 방식으로 사용할 수 있습니다.

### 방식 1: 기본 채널 사용 (권장)

설치 후 별도 설정 없이 바로 사용할 수 있습니다. 기본 릴레이 서버(`k.tess.dev`)와 공유 카카오톡 채널([Samantha](http://pf.kakao.com/_scexbC))이 제공됩니다.

- 설정 불필요, 설치 즉시 동작
- 페어링 코드로 OpenClaw 인스턴스에 연결
- 여러 사용자가 하나의 채널을 공유

### 방식 2: 별도 릴레이 서버 배포

자체 카카오톡 채널과 릴레이 서버를 운영하고 싶다면 직접 배포할 수 있습니다.

1. [kakao-talkchannel-relay-openclaw](https://github.com/kakao-bart-lee/kakao-talkchannel-relay-openclaw) 저장소에서 릴레이 서버 배포
2. [카카오 i 오픈빌더](https://i.kakao.com/)에서 챗봇 생성 및 스킬 연결 (릴레이 서버의 [설정 가이드](https://github.com/kakao-bart-lee/kakao-talkchannel-relay-openclaw/blob/main/docs/setup-guide.md) 참고)
3. 릴레이 서버 Admin UI에서 Account 생성 후 `relayToken` 발급
4. 플러그인 설정에서 `relayUrl`과 `relayToken` 지정

```json
{
  "channels": {
    "kakao-talkchannel": {
      "accounts": {
        "default": {
          "relayUrl": "https://your-relay-server.example.com",
          "relayToken": "발급받은_토큰"
        }
      }
    }
  }
}
```

자체 릴레이 서버를 사용하면:
- 독립적인 카카오톡 채널 운영 가능
- 채널 브랜딩 및 프로필 커스터마이징
- 메시지 로그 및 Admin UI 직접 관리

---

## 설정 레퍼런스

대부분의 경우 설정이 필요 없습니다. 설치 후 바로 사용 가능합니다.

### 설정 파일 위치

`~/.openclaw/openclaw.json` 또는 `config.yaml`

### 사용자 설정

| 옵션 | 설명 | 기본값 |
|------|------|--------|
| `enabled` | 채널 활성화 | `true` |
| `dmPolicy` | DM 정책 | `"pairing"` |
| `allowFrom` | 허용 사용자 목록 (`allowlist` 모드) | - |

#### dmPolicy 옵션

| 값 | 설명 |
|----|------|
| `pairing` | 페어링된 사용자만 (기본값, 권장) |
| `allowlist` | `allowFrom` 목록의 사용자만 |
| `open` | 모든 사용자 |
| `disabled` | DM 비활성화 |

### 고급 설정 (대부분 불필요)

| 옵션 | 설명 | 기본값 |
|------|------|--------|
| `channelId` | 채널 식별자 | 자동 |
| `relayUrl` | 릴레이 서버 URL ([별도 배포](#방식-2-별도-릴레이-서버-배포) 시 변경) | `https://k.tess.dev/` |
| `relayToken` | 릴레이 인증 토큰 (별도 서버 사용 시 필수) | 환경변수 또는 자동 |

### 설정 예시

```json
{
  "channels": {
    "kakao-talkchannel": {
      "accounts": {
        "default": {
          "enabled": true,
          "dmPolicy": "pairing"
        }
      }
    }
  }
}
```

---

## 라이선스

MIT


카카오톡 채널에서 “페어링 코드 받으라”고 나온 건 정상이에요.
이제 우리가 그 코드를 만들어서 알려주면 돼.

페어링 코드는 **OpenClaw 쪽에서 생성**되기 때문에, 터미널에서 한 번만 이렇게 해줘:

```bash
openclaw pairing list kakao-talkchannel
```

출력 예시는 대략 이런 식일 거예요:

```text
$ openclaw pairing list kakao-talkchannel
Pending pairing requests (kakao-talkchannel):
CODE    USER ID       EXPIRES
ABCD-1234  kakao:123456789  2026-02-11T...
```

1. 여기서 `CODE` 자리에 나온 값을 확인해서
2. 카카오톡 채널(Samantha)에 가서:

   ```text
   /pair ABCD-1234
   ```

   이런 식으로 입력하면 됩니다.

---

### 지금 할 것

1. 터미널에서:

   ```bash
   openclaw pairing list kakao-talkchannel
   ```

2. 거기 나온 출력 전체를 복사해서 여기에 붙여주면,
   - 어느 코드 써야 하는지,
   - 만료됐을 때 어떻게 다시 받는지
   까지 같이 정리해 줄게.


[Wed 2026-02-11 07:54 GMT+9] OpenClaw에 연결되지 않았습니다. 연결하려면 페어링 코드를 받은 후: /pair <코드> 를 입력해주세요. 도움말:
[message_id: c2352b81-9df2-4552-acd9-1c5d4f0af77f]


카카오톡에서 온 저 메시지는 **아직 OpenClaw랑 안 묶여 있다**는 뜻이에요.
말 그대로 “OpenClaw에서 받은 페어링 코드를 `/pair <코드>`로 보내라”는 안내문.

그 코드는 **OpenClaw 쪽에서 만들어서 확인**해야 해요.

---

## 1. 터미널에서 페어링 코드 확인

게이트웨이 돌아가는 머신에서:

```bash
openclaw pairing list kakao-talkchannel
```

- `Pending pairing requests` 아래에 `CODE` 같은 값이 하나 보일 거예요.
  (예: `ABCD-1234`)

코드가 안 보이면 전체 출력 그대로 붙여줘요. 같이 볼게요.

---

## 2. 카카오톡에 코드 보내기

코드를 확인했으면, 카카오톡 채널(Samantha) 채팅창에서:

```text
/pair ABCD-1234
```

이렇게 보내면 페어링 완료되고, 그 이후부터는 카카오톡에서 쓴 메시지가 OpenClaw로 들어와요.

---

요약:
지금 단계는 **정상**이고, 다음 순서만 하면 됨:

1. `openclaw pairing list kakao-talkchannel` 로 코드 확인
2. 카톡에서 `/pair <그 코드>` 입력

1번 결과를 여기 붙여주면, 어떤 코드 써야 하는지까지 정확히 짚어 줄게.


[Wed 2026-02-11 07:55 GMT+9] cdr@spark-1695:~/Downloads/openclaw-kakao-talkchannel$ openclaw pairing list kakao-talkchannel 🦞 OpenClaw 2026.2.6-3 (85ed6c7) It's not "failing," it's "discovering new ways to configure the same thing wrong." No pending kakao-talkchannel pairing requests.
[message_id: 32ef4dbd-7f05-4fcb-b813-37cd86d9ed5e]


지금 나온 건 **DM 페어링용 CLI**라서,
카카오 플러그인의 “릴레이–OpenClaw 연결 코드”랑은 다른 저장소라 그래요.

카카오 플러그인 쪽 페어링 코드는 **로그에 찍히는 방식**이라, 이렇게 보면 돼:

---

## 1. 로그에서 페어링 코드 찾기

터미널에서:

```bash
openclaw logs --since 10m | grep 'kakao-talkchannel' | grep '페어링 코드'
```

또는 실시간으로 보고 싶으면:

```bash
openclaw logs --follow | grep 'kakao-talkchannel'
```

이렇게 하면 대충 이런 로그가 보일 거예요:

```text
[kakao-talkchannel:default] 🔗 페어링 코드: ABCD-1234
[kakao-talkchannel:default] 카카오톡에서 /pair ABCD-1234 입력하세요
```

여기서 `ABCD-1234`가 우리가 쓸 **페어링 코드**입니다.

---

## 2. 카카오톡에 코드 입력

코드 확인했으면, 카카오톡 채널에서:

```text
/pair ABCD-1234
```

이렇게 보내면 연결 완료.

---

### 만약 로그에 아무 것도 안 나오면

1. `openclaw logs --follow | grep 'kakao-talkchannel'` 켜둔 상태에서
2. 카카오톡 채널에 아무 텍스트나 한 번 더 보내고(예: `안녕`)
3. 새로 찍히는 로그에 페어링 코드가 뜨는지 확인해봐.

로그에 찍힌 줄을 그대로 복사해서 보내주면,
어떤 코드 쓰면 되는지 다시 한 번 같이 확인해 줄게.


[Wed 2026-02-11 07:57 GMT+9] ❌ 유효하지 않은 코드입니다. 코드를 다시 확인해주세요.
[message_id: 3a904029-4ad3-4cfc-bc75-7e8ad4a0222a]


**Looking into debugging code**

I need to help debug some invalid code. It seems like it could be caused by using the DM pairing code instead of the relay code, or maybe the code has expired. To get to the bottom of this, I should ask the user for the actual logs and request that they paste them here. Getting clearer details will help me diagnose the issue effectively.

지금 카카오 쪽에서 말하는 건:

- **“그 코드 OpenClaw에서 발급된 게 아닌데?”** 또는
- **“이미 만료된 코드야”** 에 가까운 상황이에요.

그래서, **정확한 코드 문자열**을 먼저 확인해야 해.

---

## 1. 실제로 입력한 코드 / 로그 확인이 필요해

지금까지 상황상, 둘 중 하나일 가능성이 큼:

1. `openclaw pairing list kakao-talkchannel` 에서 쓰는 **DM 페어링 코드**를
   카카오 채널에 넣었다
2. 카카오 플러그인이 릴레이에서 준 코드가 **이미 만료**됐거나,
   복사하면서 한 글자 틀어졌거나

우리가 써야 하는 건 플러그인 로그에 찍히는 이 형태야:

```text
[kakao-talkchannel:default] 🔗 페어링 코드: ABCD-1234
[kakao-talkchannel:default] 카카오톡에서 /pair ABCD-1234 입력하세요
```

그래서, 이렇게 해보자:

```bash
openclaw logs --since 10m | grep 'kakao-talkchannel' | grep '페어링 코드'
```

혹은:

```bash
openclaw logs --follow | grep 'kakao-talkchannel'
```

그리고 거기 **나온 로그 몇 줄**을 그대로 복사해서 여기 붙여줘.
(특히 `페어링 코드:` 부분 포함해서)

---

## 2. 그 사이에 다시 시도할 때

- 로그에서 예를 들어 `페어링 코드: QWER-5678` 이 보였다면
- 카카오톡 채널에 딱:

```text
/pair QWER-5678
```

이렇게 보내야 해.
앞뒤 공백, 따옴표, backtick 같은 거 없이 **정확히 저 문자열만**.

---

로그 줄만 한 번 보여주면,
- 코드가 유효한지,
- 혹시 우리가 다른 코드를 잘못 넣은 건지
딱 집어서 설명해 줄게.