@curie-agent/tools 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/.tsbuildinfo +1 -0
  2. package/dist/src/bash.d.ts +8 -0
  3. package/dist/src/bash.d.ts.map +1 -0
  4. package/dist/src/bash.js +52 -0
  5. package/dist/src/bash.js.map +1 -0
  6. package/dist/src/edit.d.ts +9 -0
  7. package/dist/src/edit.d.ts.map +1 -0
  8. package/dist/src/edit.js +39 -0
  9. package/dist/src/edit.js.map +1 -0
  10. package/dist/src/glob.d.ts +7 -0
  11. package/dist/src/glob.d.ts.map +1 -0
  12. package/dist/src/glob.js +73 -0
  13. package/dist/src/glob.js.map +1 -0
  14. package/dist/src/grep.d.ts +12 -0
  15. package/dist/src/grep.d.ts.map +1 -0
  16. package/dist/src/grep.js +78 -0
  17. package/dist/src/grep.js.map +1 -0
  18. package/dist/src/index.d.ts +59 -0
  19. package/dist/src/index.d.ts.map +1 -0
  20. package/dist/src/index.js +21 -0
  21. package/dist/src/index.js.map +1 -0
  22. package/dist/src/read.d.ts +9 -0
  23. package/dist/src/read.d.ts.map +1 -0
  24. package/dist/src/read.js +61 -0
  25. package/dist/src/read.js.map +1 -0
  26. package/dist/src/reminder.d.ts +7 -0
  27. package/dist/src/reminder.d.ts.map +1 -0
  28. package/dist/src/reminder.js +28 -0
  29. package/dist/src/reminder.js.map +1 -0
  30. package/dist/src/tool.d.ts +28 -0
  31. package/dist/src/tool.d.ts.map +1 -0
  32. package/dist/src/tool.js +73 -0
  33. package/dist/src/tool.js.map +1 -0
  34. package/dist/src/web-fetch.d.ts +7 -0
  35. package/dist/src/web-fetch.d.ts.map +1 -0
  36. package/dist/src/web-fetch.js +51 -0
  37. package/dist/src/web-fetch.js.map +1 -0
  38. package/dist/src/web-search.d.ts +9 -0
  39. package/dist/src/web-search.d.ts.map +1 -0
  40. package/dist/src/web-search.js +61 -0
  41. package/dist/src/web-search.js.map +1 -0
  42. package/dist/src/write.d.ts +7 -0
  43. package/dist/src/write.d.ts.map +1 -0
  44. package/dist/src/write.js +23 -0
  45. package/dist/src/write.js.map +1 -0
  46. package/package.json +33 -0
@@ -0,0 +1 @@
1
+ {"fileNames":["../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.full.d.ts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/json-schema.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/standard-schema.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/registries.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/to-json-schema.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/util.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/versions.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/schemas.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/checks.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/errors.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/core.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/parse.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/regexes.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ar.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/az.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/be.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/bg.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ca.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/cs.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/da.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/de.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/el.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/en.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/eo.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/es.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/fa.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/fi.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/fr.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/fr-ca.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/he.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/hr.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/hu.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/hy.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/id.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/is.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/it.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ja.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ka.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/kh.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/km.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ko.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/lt.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/mk.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ms.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/nl.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/no.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ota.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ps.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/pl.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/pt.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ro.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ru.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/sl.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/sv.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ta.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/th.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/tr.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ua.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/uk.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ur.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/uz.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/vi.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/zh-cn.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/zh-tw.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/yo.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/index.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/doc.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/api.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/json-schema-processors.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/json-schema-generator.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/index.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/errors.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/parse.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/schemas.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/checks.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/compat.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/from-json-schema.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/iso.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/coerce.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/external.d.cts","../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/index.d.cts","../../core/dist/src/event-bus.d.ts","../../core/dist/src/session-store.d.ts","../../core/dist/src/permission.d.ts","../../core/dist/src/settings.d.ts","../../core/dist/src/turn-loop.d.ts","../../core/dist/src/cron-manager.d.ts","../../core/dist/src/reminder-parser.d.ts","../../core/dist/src/telegram-gateway.d.ts","../../core/dist/src/channel-registry.d.ts","../../core/dist/src/channel-router.d.ts","../../core/dist/src/heartbeat-executor.d.ts","../../core/dist/src/heartbeat-delivery.d.ts","../../core/dist/src/index.d.ts","../src/tool.ts","../src/bash.ts","../src/edit.ts","../src/glob.ts","../src/grep.ts","../src/read.ts","../src/write.ts","../src/reminder.ts","../src/web-search.ts","../src/web-fetch.ts","../src/index.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/header.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/readable.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/file.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/fetch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/formdata.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/connector.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/handlers.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/api.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/util.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cookies.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/patch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/websocket.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/filereader.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/content-type.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cache.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/index.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/sea.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/sqlite.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@22.19.18/node_modules/@types/node/index.d.ts"],"fileIdsList":[[173,218,219,221,238,239],[173,220,221,238,239],[221,238,239],[173,221,226,238,239,256],[173,221,222,227,232,238,239,241,253,264],[173,221,222,223,232,238,239,241],[173,221,238,239],[168,169,170,173,221,238,239],[173,221,224,238,239,265],[173,221,225,226,233,238,239,242],[173,221,226,238,239,253,261],[173,221,227,229,232,238,239,241],[173,220,221,228,238,239],[173,221,229,230,238,239],[173,221,231,232,238,239],[173,220,221,232,238,239],[173,221,232,233,234,238,239,253,264],[173,221,232,233,234,238,239,248,253,256],[173,214,221,229,232,235,238,239,241,253,264],[173,221,232,233,235,236,238,239,241,253,261,264],[173,221,235,237,238,239,253,261,264],[171,172,173,174,175,176,177,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270],[173,221,232,238,239],[173,221,238,239,240,264],[173,221,229,232,238,239,241,253],[173,221,238,239,242],[173,221,238,239,243],[173,220,221,238,239,244],[173,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270],[173,221,238,239,246],[173,221,238,239,247],[173,221,232,238,239,248,249],[173,221,238,239,248,250,265,267],[173,221,233,238,239],[173,221,232,238,239,253,254,256],[173,221,238,239,255,256],[173,221,238,239,253,254],[173,221,238,239,256],[173,221,238,239,257],[173,218,221,238,239,253,258,264],[173,221,232,238,239,259,260],[173,221,238,239,259,260],[173,221,226,238,239,241,253,261],[173,221,238,239,262],[173,221,238,239,241,263],[173,221,235,238,239,247,264],[173,221,226,238,239,265],[173,221,238,239,253,266],[173,221,238,239,240,267],[173,221,238,239,268],[173,214,221,238,239],[173,214,221,232,234,238,239,244,253,256,264,266,267,269],[173,221,238,239,253,270],[173,186,190,221,238,239,264],[173,186,221,238,239,253,264],[173,181,221,238,239],[173,183,186,221,238,239,261,264],[173,221,238,239,241,261],[173,221,238,239,271],[173,181,221,238,239,271],[173,183,186,221,238,239,241,264],[173,178,179,182,185,221,232,238,239,253,264],[173,186,193,221,238,239],[173,178,184,221,238,239],[173,186,207,208,221,238,239],[173,182,186,221,238,239,256,264,271],[173,207,221,238,239,271],[173,180,181,221,238,239,271],[173,186,221,238,239],[173,180,181,182,183,184,185,186,187,188,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,208,209,210,211,212,213,221,238,239],[173,186,201,221,238,239],[173,186,193,194,221,238,239],[173,184,186,194,195,221,238,239],[173,185,221,238,239],[173,178,181,186,221,238,239],[173,186,190,194,195,221,238,239],[173,190,221,238,239],[173,184,186,189,221,238,239,264],[173,178,183,186,193,221,238,239],[173,221,238,239,253],[173,181,186,207,221,238,239,269,271],[142,173,221,238,239],[133,173,221,238,239],[133,136,173,221,238,239],[68,128,131,133,134,135,136,137,138,139,140,141,173,221,238,239],[64,66,136,173,221,238,239],[133,134,173,221,238,239],[65,133,135,173,221,238,239],[66,68,70,71,72,73,173,221,238,239],[68,70,72,73,173,221,238,239],[68,70,72,173,221,238,239],[65,68,70,71,73,173,221,238,239],[64,66,67,68,69,70,71,72,73,74,75,128,129,130,131,132,173,221,238,239],[64,66,67,70,173,221,238,239],[66,67,70,173,221,238,239],[70,73,173,221,238,239],[64,65,67,68,69,71,72,73,173,221,238,239],[64,65,66,70,133,173,221,238,239],[70,71,72,73,173,221,238,239],[72,173,221,238,239],[76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,173,221,238,239],[147,152,173,221,238,239],[151,173,221,238,239],[147,148,149,173,221,238,239],[144,145,146,147,148,149,150,151,152,153,154,155,173,221,238,239],[144,173,221,238,239],[144,145,146,147,173,221,238,239],[143,157,173,221,222,238,239,243,265],[143,157,173,221,233,238,239,243],[157,158,159,160,161,162,163,164,165,166,173,221,238,239],[143,156,157,173,221,238,239],[143,156,173,221,238,239,242],[143,157,173,221,238,239]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"2a2de5b9459b3fc44decd9ce6100b72f1b002ef523126c1d3d8b2a4a63d74d78","affectsGlobalScope":true,"impliedFormat":1},{"version":"f13f4b465c99041e912db5c44129a94588e1aafee35a50eab51044833f50b4ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},{"version":"01a30f9e8582b369075c0808df71121e6855cb06fd8d3d39511d9ebb66405205","impliedFormat":1},{"version":"c1a2e05eb6d7ca8d7e4a7f4c93ccf0c2857e842a64c98eaee4d85841ee9855e6","impliedFormat":1},{"version":"835fb2909ce458740fb4a49fc61709896c6864f5ce3db7f0a88f06c720d74d02","impliedFormat":1},{"version":"6e5857f38aa297a859cab4ec891408659218a5a2610cd317b6dcbef9979459cc","impliedFormat":1},{"version":"ead8e39c2e11891f286b06ae2aa71f208b1802661fcdb2425cffa4f494a68854","impliedFormat":1},{"version":"40ba6c32eb732a09e4446ade5cb6ad0c147f186f9c9dc6878b90b4418ad9f6ea","impliedFormat":1},{"version":"fdd814741843f85c98281522c58f5a646590ba9019fad2efaa95987655e0611b","impliedFormat":1},{"version":"c78aff4fb58b28b8f642d5095fc7eeb79f00e652a67caa19693af1adabb833c9","impliedFormat":1},{"version":"f80a08ced8818dc99359c0acd5b3f12762e1ce53758007759b0d4e503cbf4a5e","impliedFormat":1},{"version":"37935fa7564bcc6e0bc845b766a24391098d26f7c8245d6e8ab37bc016816e94","impliedFormat":1},{"version":"68add36d9632bc096d7245d24d6b0b8ad5f125183016102a3dad4c9c2438ccb0","impliedFormat":1},{"version":"3a819c2928ee06bbcc84e2797fd3558ae2ebb7e0ed8d87f71732fb2e2acc87b4","impliedFormat":1},{"version":"0f8a263f4c8595c8a07de52e3f3927640c44386c1aa2984de9eae50d75e613b2","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"346fffde7c32da87c2196eb7494422449dc2ca82d3b4e6bf55be1d1a33ffc2b0","impliedFormat":1},{"version":"add0ce7b77ba5b308492fa68f77f24d1ed1d9148534bdf05ac17c30763fc1a79","impliedFormat":1},{"version":"8b5875e4958528042103fdd775e106a7f76bafc29709f0690df9a7d2241d52a7","impliedFormat":1},{"version":"2f67911e4bf4e0717dc2ded248ce2d5e4398d945ee13889a6852c1233ea41508","impliedFormat":1},{"version":"d8430c275b0f59417ea8e173cfb888a4477b430ec35b595bf734f3ec7a7d729f","impliedFormat":1},{"version":"69364df1c776372d7df1fb46a6cb3a6bf7f55e700f533a104e3f9d70a32bec18","impliedFormat":1},{"version":"6042774c61ece4ba77b3bf375f15942eb054675b7957882a00c22c0e4fe5865c","impliedFormat":1},{"version":"5a3bd57ed7a9d9afef74c75f77fce79ba3c786401af9810cdf45907c4e93f30e","impliedFormat":1},{"version":"aef26cf95593c8ace1c62c4724f9afac77bdfa756fb8a00613cd152117cb2f43","impliedFormat":1},{"version":"30db853bb2e60170ba11e39ab48bacecb32d06d4def89eedf17e58ebab762a65","impliedFormat":1},{"version":"e27451b24234dfed45f6cf22112a04955183a99c42a2691fb4936d63cfe42761","impliedFormat":1},{"version":"2316301dd223d31962d917999acf8e543e0119c5d24ec984c9f22cb23247160c","impliedFormat":1},{"version":"58d65a2803c3b6629b0e18c8bf1bc883a686fcf0333230dd0151ab6e85b74307","impliedFormat":1},{"version":"e818471014c77c103330aee11f00a7a00b37b35500b53ea6f337aefacd6174c9","impliedFormat":1},{"version":"268fd6d9f2e807a39a6c5aa654b00f949feb63d3faa7dd0f9bba7dde9172159c","impliedFormat":1},{"version":"29f823cbe0166e10e7176a94afe609a24b9e5af3858628c541ff8ce1727023cd","impliedFormat":1},"83f4e015f73c5f81e45c580c0ff5b234af453adce4c73880b315955d82a8c76c","df9ab0fe34601fff1888269c56872da42f7a1fb73152abbdd625918d0e3e9224","ebc527cfe7241bb64b03d3db6d22fedf16f3bd6ed43cc330ea5bf78d419576ad","459881cb83ef430cb1181af873b99c7a9522f16e9ca84ee016b1dba5bb763765","3385e31651f61acd8d8119d88a652b1b0b3244b308135cd13f06dab55df037dc","f872c95f3da641cf32d3abb3d9afd17e806ce2a07530bdee31203b3594a45caa","949fc6507cdd36f444898ee1ce04dbbceac6912872e9940d9295a82b082ea8cf","3c6010fd34b52dce1ee36b38c583529cae6591466e7e6c108476bbc9097ab976","b9a34accd5d8e2b056b54e12141cdf904253cdc3235ebe2a9e73c55ff12d8212","1bee8d6dbb193a7381ca02d44b261145655168f2c58853d35a898520bb914150","fdb463def1b7ffc876731296adabb382092e51dde4ab2e77b98e10cdc6559705","9957616e4e053f8dab5f8cb9f85490479394bbe1dbac842d3e82d98189d258a5","543d1afbec547238df5d6f10280152687823c355285ab1fbd79512bab61709e6",{"version":"677a29049e123e199d687e53311a17d603f7a403d12f1598c1cf97bc3cbe93bc","signature":"3636b1a5a6416d73ef13a77633613933cf31db854ec0f6aa97fb46d9f544a703"},{"version":"aecc39c8dd5f9c5b6b3b0052818738757facfb057871be3eaecb14586873b70b","signature":"b23e7b61195db19e6eff446225e94e3fb7d5d441d82db0908a22ed9469f87408"},{"version":"a5fc20bbc9de628d30aaa6b8f9f3e3d784c54ad937f3ee737991c27bbb2a120c","signature":"50aa3250d03c3036d624f429b745b56da3e946a607f8aa0770cda8fb1c6b3269"},{"version":"78ec3ab61f06b3878c6d2756d431c1b3ea25012e2042e32b32a78ac834905c02","signature":"83d5ede219c89397105d39915e330a0dd22ed0f4fc4531715e2c87525aeed467"},{"version":"c7b198094facea233056a4ddfa0896943d9b1c512944a439bee918bea96ce633","signature":"0a825a229cdb68d31200e641497df2f674099c114323f766fc7426103c5c4712"},{"version":"09c68282fc2e7c84ac7441965841f3c15416d35ef457307f7d81ad60ad4c4cc4","signature":"a7b3d7f5ed340357f3270f7b342522d49bba6b84f93f2015553deaf5d4298c0a"},{"version":"1729df8f31e4680ffb25bd9a5a050757a15d4f111c29fd8c78de36df5c1d339e","signature":"26ad0e1cfae712fda6418b7db8ae7f0961f4201b730ec27e5a51203469f26a6c"},{"version":"d83786723ba68b1b5706d6fa2e3c7034c57b14ac0d1d167fb31391499b2ebd48","signature":"557efaa2fd4a7821747bb25d0326d1192ab580e93084dcaa668675758b11823b"},{"version":"92c66ce1e4b29e37057a700abbc4ac6d180d304a7a91f09f42b3c4afec1e382e","signature":"0915723ee11dcede82081d777fd6f2e33fcbf5c9dac0836cf30351987bc2edb7"},{"version":"6ed7047b8900df33e828b84146e735094b2182f97ef0c817db4a53972666a067","signature":"dbd203df5fd723f4dfb29e573da9d7fbc8a8e53a165b604095dc5e1c89dbaef4"},{"version":"c32d5d0fc0795c88debaa37764ec86d1c685f45bb8b56ac1e74997bd962227f3","signature":"bd47f24f0c40dcaf67cfb755bd51552b179167efa3ea1a29646fcc3ad48452c5"},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f5c844119c43e51ce777c509267f14d6aaf31eafb2c2b002ca35584cd13b29","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"9855e02d837744303391e5623a531734443a5f8e6e8755e018c41d63ad797db2","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"c906fb15bd2aabc9ed1e3f44eb6a8661199d6c320b3aa196b826121552cb3695","impliedFormat":1},{"version":"22295e8103f1d6d8ea4b5d6211e43421fe4564e34d0dd8e09e520e452d89e659","impliedFormat":1},{"version":"58647d85d0f722a1ce9de50955df60a7489f0593bf1a7015521efe901c06d770","impliedFormat":1},{"version":"0958335a19c90bf5e69e6654bac7dfb120e432558f8143263d8b2324bd85e61c","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6f137d651076822d4fe884287e68fd61785a0d3d1fdb250a5059b691fa897db","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"8b479a130ccb62e98f11f136d3ac80f2984fdc07616516d29881f3061f2dd472","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"bceb58df66ab8fb00170df20cd813978c5ab84be1d285710c4eb005d8e9d8efb","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"a3fc63c0d7b031693f665f5494412ba4b551fe644ededccc0ab5922401079c95","impliedFormat":1},{"version":"80523c00b8544a2000ae0143e4a90a00b47f99823eb7926c1e03c494216fc363","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"746911b62b329587939560deb5c036aca48aece03147b021fa680223255d5183","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"c8d3e5a18ba35629954e48c4cc8f11dc88224650067a172685c736b27a34a4dc","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"2b55d426ff2b9087485e52ac4bc7cfafe1dc420fc76dad926cd46526567c501a","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"47613031a5a31510831304405af561b0ffaedb734437c595256bb61a90f9311b","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"8a1a0d0a4a06a8d278947fcb66bf684f117bf147f89b06e50662d79a53be3e9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"358765d5ea8afd285d4fd1532e78b88273f18cb3f87403a9b16fef61ac9fdcfe","impliedFormat":1},{"version":"9f55299850d4f0921e79b6bf344b47c420ce0f507b9dcf593e532b09ea7eeea1","impliedFormat":1}],"root":[[157,167]],"options":{"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"jsx":4,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noImplicitReturns":true,"noUncheckedIndexedAccess":true,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"stripInternal":true,"target":9,"tsBuildInfoFile":"./.tsbuildinfo"},"referencedMap":[[218,1],[219,1],[220,2],[173,3],[221,4],[222,5],[223,6],[168,7],[171,8],[169,7],[170,7],[224,9],[225,10],[226,11],[227,12],[228,13],[229,14],[230,14],[231,15],[232,16],[233,17],[234,18],[174,7],[172,7],[235,19],[236,20],[237,21],[271,22],[238,23],[239,7],[240,24],[241,25],[242,26],[243,27],[244,28],[245,29],[246,30],[247,31],[248,32],[249,32],[250,33],[251,7],[252,34],[253,35],[255,36],[254,37],[256,38],[257,39],[258,40],[259,41],[260,42],[261,43],[262,44],[263,45],[264,46],[265,47],[266,48],[267,49],[268,50],[175,7],[176,7],[177,7],[215,51],[216,7],[217,7],[269,52],[270,53],[61,7],[62,7],[12,7],[10,7],[11,7],[16,7],[15,7],[2,7],[17,7],[18,7],[19,7],[20,7],[21,7],[22,7],[23,7],[24,7],[3,7],[25,7],[26,7],[4,7],[27,7],[31,7],[28,7],[29,7],[30,7],[32,7],[33,7],[34,7],[5,7],[35,7],[36,7],[37,7],[38,7],[6,7],[42,7],[39,7],[40,7],[41,7],[43,7],[7,7],[44,7],[49,7],[50,7],[45,7],[46,7],[47,7],[48,7],[8,7],[54,7],[51,7],[52,7],[53,7],[55,7],[9,7],[56,7],[63,7],[57,7],[58,7],[60,7],[59,7],[1,7],[14,7],[13,7],[193,54],[203,55],[192,54],[213,56],[184,57],[183,58],[212,59],[206,60],[211,61],[186,62],[200,63],[185,64],[209,65],[181,66],[180,59],[210,67],[182,68],[187,69],[188,7],[191,69],[178,7],[214,70],[204,71],[195,72],[196,73],[198,74],[194,75],[197,76],[207,59],[189,77],[190,78],[199,79],[179,80],[202,71],[201,69],[205,7],[208,81],[143,82],[137,83],[141,84],[138,84],[134,83],[142,85],[139,86],[140,84],[135,87],[136,88],[130,89],[71,90],[73,91],[129,7],[72,92],[133,93],[132,94],[131,95],[64,7],[74,90],[75,7],[66,96],[70,97],[65,7],[67,98],[68,99],[69,7],[76,100],[77,100],[78,100],[79,100],[80,100],[81,100],[82,100],[83,100],[84,100],[85,100],[86,100],[87,100],[88,100],[89,100],[91,100],[90,100],[92,100],[93,100],[94,100],[95,100],[96,100],[128,101],[97,100],[98,100],[99,100],[100,100],[101,100],[102,100],[103,100],[104,100],[105,100],[106,100],[107,100],[108,100],[109,100],[111,100],[110,100],[112,100],[113,100],[114,100],[115,100],[116,100],[117,100],[118,100],[119,100],[120,100],[121,100],[122,100],[123,100],[124,100],[127,100],[125,100],[126,100],[152,7],[153,102],[149,7],[144,7],[155,103],[154,104],[156,105],[146,7],[150,7],[145,106],[147,7],[151,7],[148,107],[158,108],[159,109],[160,109],[161,109],[167,110],[162,109],[164,111],[157,112],[166,113],[165,113],[163,109]],"latestChangedDtsFile":"./src/index.d.ts","version":"6.0.3"}
@@ -0,0 +1,8 @@
1
+ export declare const bashTool: import("./tool.js").Tool & {
2
+ validate: (raw: Record<string, unknown>) => {
3
+ command: string;
4
+ timeout?: number | undefined;
5
+ description?: string | undefined;
6
+ };
7
+ };
8
+ //# sourceMappingURL=bash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../src/bash.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,QAAQ;;;;;;CA8CpB,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { execFile, spawn } from 'node:child_process';
2
+ import { promisify } from 'node:util';
3
+ import { z } from 'zod';
4
+ import { createTool } from './tool.js';
5
+ const execFileAsync = promisify(execFile);
6
+ const BashSchema = z.object({
7
+ command: z.string().describe('The command to execute'),
8
+ timeout: z.number().optional().describe('Optional timeout in milliseconds (max 600000)'),
9
+ description: z.string().optional().describe('Clear, concise description of what this command does'),
10
+ });
11
+ const SHELLS = {
12
+ win32: 'cmd.exe',
13
+ linux: '/bin/bash',
14
+ darwin: '/bin/bash',
15
+ };
16
+ export const bashTool = createTool('Bash', 'Executes a bash command and returns its output. For shell-only operations.', BashSchema, async (input, ctx) => {
17
+ const shell = SHELLS[process.platform] || '/bin/sh';
18
+ const timeout = Math.min(input.timeout || 120000, 600000);
19
+ return new Promise((resolve) => {
20
+ const child = spawn(shell, ['/c', input.command], {
21
+ cwd: ctx.cwd,
22
+ timeout,
23
+ shell: false,
24
+ env: { ...process.env },
25
+ });
26
+ let stdout = '';
27
+ let stderr = '';
28
+ child.stdout.on('data', (data) => {
29
+ stdout += data.toString();
30
+ });
31
+ child.stderr.on('data', (data) => {
32
+ stderr += data.toString();
33
+ });
34
+ child.on('close', (code) => {
35
+ resolve({
36
+ output: {
37
+ exitCode: code,
38
+ stdout: stdout.trim(),
39
+ stderr: stderr.trim(),
40
+ },
41
+ error: code !== 0 ? stderr.trim() : undefined,
42
+ });
43
+ });
44
+ child.on('error', (err) => {
45
+ resolve({
46
+ output: null,
47
+ error: `Command failed: ${err.message}`,
48
+ });
49
+ });
50
+ });
51
+ });
52
+ //# sourceMappingURL=bash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bash.js","sourceRoot":"","sources":["../../src/bash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAoB,MAAM,WAAW,CAAC;AAEzD,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IACtD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;IACxF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;CACpG,CAAC,CAAC;AAEH,MAAM,MAAM,GAA2B;IACrC,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,WAAW;CACpB,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAChC,MAAM,EACN,4EAA4E,EAC5E,UAAU,EACV,KAAK,EAAE,KAAK,EAAE,GAAgB,EAAE,EAAE;IAChC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC;IACpD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,MAAM,EAAE,MAAM,CAAC,CAAC;IAE1D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;YAChD,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,OAAO;YACP,KAAK,EAAE,KAAK;YACZ,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;SACxB,CAAC,CAAC;QAEH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAC/B,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAC/B,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,OAAO,CAAC;gBACN,MAAM,EAAE;oBACN,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;oBACrB,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;iBACtB;gBACD,KAAK,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS;aAC9C,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,OAAO,CAAC;gBACN,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,mBAAmB,GAAG,CAAC,OAAO,EAAE;aACxC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CACF,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare const editTool: import("./tool.js").Tool & {
2
+ validate: (raw: Record<string, unknown>) => {
3
+ file_path: string;
4
+ old_string: string;
5
+ new_string: string;
6
+ replace_all?: boolean | undefined;
7
+ };
8
+ };
9
+ //# sourceMappingURL=edit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../src/edit.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,QAAQ;;;;;;;CA+BpB,CAAC"}
@@ -0,0 +1,39 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { z } from 'zod';
4
+ import { createTool, expandPath } from './tool.js';
5
+ const EditSchema = z.object({
6
+ file_path: z.string().describe('The absolute path to the file to modify'),
7
+ old_string: z.string().describe('The text to replace'),
8
+ new_string: z.string().describe('The text to replace it with'),
9
+ replace_all: z.boolean().optional().describe('Replace all occurrences'),
10
+ });
11
+ export const editTool = createTool('Edit', 'Performs exact string replacements in files. Use replace_all to change every instance.', EditSchema, async (input, ctx) => {
12
+ const filePath = path.resolve(ctx.cwd, expandPath(input.file_path));
13
+ if (!fs.existsSync(filePath)) {
14
+ return { output: null, error: `File not found: ${filePath}. Read it first before editing.` };
15
+ }
16
+ const content = fs.readFileSync(filePath, 'utf-8');
17
+ if (input.replace_all) {
18
+ const count = (content.match(new RegExp(escapeRegex(input.old_string), 'g')) || []).length;
19
+ if (count === 0) {
20
+ return { output: null, error: `String not found in file: ${input.old_string.slice(0, 50)}` };
21
+ }
22
+ const newContent = content.split(input.old_string).join(input.new_string);
23
+ fs.writeFileSync(filePath, newContent, 'utf-8');
24
+ return { output: { path: filePath, replacements: count } };
25
+ }
26
+ else {
27
+ const idx = content.indexOf(input.old_string);
28
+ if (idx === -1) {
29
+ return { output: null, error: `String not found in file. The old_string must match exactly.` };
30
+ }
31
+ const newContent = content.slice(0, idx) + input.new_string + content.slice(idx + input.old_string.length);
32
+ fs.writeFileSync(filePath, newContent, 'utf-8');
33
+ return { output: { path: filePath, replacements: 1 } };
34
+ }
35
+ });
36
+ function escapeRegex(s) {
37
+ return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
38
+ }
39
+ //# sourceMappingURL=edit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/edit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare const globTool: import("./tool.js").Tool & {
2
+ validate: (raw: Record<string, unknown>) => {
3
+ pattern: string;
4
+ path?: string | undefined;
5
+ };
6
+ };
7
+ //# sourceMappingURL=glob.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../../src/glob.ts"],"names":[],"mappings":"AA2CA,eAAO,MAAM,QAAQ;;;;;CAoCpB,CAAC"}
@@ -0,0 +1,73 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { z } from 'zod';
4
+ import { createTool } from './tool.js';
5
+ const GlobSchema = z.object({
6
+ pattern: z.string().describe('The glob pattern to match files against'),
7
+ path: z.string().optional().describe('The directory to search in'),
8
+ });
9
+ function minimatch(pattern, str) {
10
+ const regex = globToRegex(pattern);
11
+ return regex.test(str);
12
+ }
13
+ function globToRegex(pattern) {
14
+ let regex = pattern
15
+ .replace(/[.+?^${}()|[\]\\]/g, '\\$&')
16
+ .replace(/\*\*/g, '\\*\\*')
17
+ .replace(/\*/g, '[^/]*')
18
+ .replace(/\\\*\\\*/g, '.*')
19
+ .replace(/\?/g, '[^/]');
20
+ return new RegExp(`^${regex}$`);
21
+ }
22
+ function readGitignore(cwd) {
23
+ const gitignorePath = path.join(cwd, '.gitignore');
24
+ if (!fs.existsSync(gitignorePath))
25
+ return [];
26
+ return fs
27
+ .readFileSync(gitignorePath, 'utf-8')
28
+ .split('\n')
29
+ .map((l) => l.trim())
30
+ .filter((l) => l && !l.startsWith('#'));
31
+ }
32
+ function shouldIgnore(relPath, patterns) {
33
+ for (const p of patterns) {
34
+ if (minimatch(p, relPath))
35
+ return true;
36
+ if (minimatch(`${p}/**`, relPath))
37
+ return true;
38
+ }
39
+ return false;
40
+ }
41
+ export const globTool = createTool('Glob', 'Fast file pattern matching. Gitignore-aware file pattern matching.', GlobSchema, async (input, ctx) => {
42
+ const searchDir = input.path ? path.resolve(ctx.cwd, input.path) : ctx.cwd;
43
+ const gitignorePatterns = readGitignore(ctx.cwd);
44
+ const results = [];
45
+ function walk(dir) {
46
+ let entries;
47
+ try {
48
+ entries = fs.readdirSync(dir, { withFileTypes: true });
49
+ }
50
+ catch {
51
+ return;
52
+ }
53
+ for (const entry of entries) {
54
+ const fullPath = path.join(dir, entry.name);
55
+ const relPath = path.relative(ctx.cwd, fullPath);
56
+ if (entry.isDirectory()) {
57
+ if (shouldIgnore(relPath, gitignorePatterns))
58
+ continue;
59
+ walk(fullPath);
60
+ }
61
+ else {
62
+ if (shouldIgnore(relPath, gitignorePatterns))
63
+ continue;
64
+ if (minimatch(input.pattern, relPath)) {
65
+ results.push(fullPath);
66
+ }
67
+ }
68
+ }
69
+ }
70
+ walk(searchDir);
71
+ return { output: results.sort() };
72
+ });
73
+ //# sourceMappingURL=glob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glob.js","sourceRoot":"","sources":["../../src/glob.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export declare const grepTool: import("./tool.js").Tool & {
2
+ validate: (raw: Record<string, unknown>) => {
3
+ pattern: string;
4
+ path?: string | undefined;
5
+ glob?: string | undefined;
6
+ type?: string | undefined;
7
+ '-i'?: boolean | undefined;
8
+ '-n'?: boolean | undefined;
9
+ context?: number | undefined;
10
+ };
11
+ };
12
+ //# sourceMappingURL=grep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grep.d.ts","sourceRoot":"","sources":["../../src/grep.ts"],"names":[],"mappings":"AA0BA,eAAO,MAAM,QAAQ;;;;;;;;;;CAyDpB,CAAC"}
@@ -0,0 +1,78 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { z } from 'zod';
4
+ import { createTool } from './tool.js';
5
+ const GrepSchema = z.object({
6
+ pattern: z.string().describe('The regular expression pattern to search for'),
7
+ path: z.string().optional().describe('File or directory to search in'),
8
+ glob: z.string().optional().describe('Glob pattern to filter files'),
9
+ type: z.string().optional().describe('File type to search (js, py, ts, etc.)'),
10
+ '-i': z.boolean().optional().describe('Case insensitive search'),
11
+ '-n': z.boolean().optional().describe('Show line numbers'),
12
+ context: z.number().optional().describe('Lines of context before and after'),
13
+ });
14
+ const EXT_MAP = {
15
+ js: ['.js', '.jsx', '.mjs'],
16
+ ts: ['.ts', '.tsx'],
17
+ py: ['.py'],
18
+ rust: ['.rs'],
19
+ go: ['.go'],
20
+ java: ['.java'],
21
+ rb: ['.rb'],
22
+ rs: ['.rs'],
23
+ };
24
+ export const grepTool = createTool('Grep', 'Content search with regex support. Searches file contents for matching patterns.', GrepSchema, async (input, ctx) => {
25
+ const searchPath = input.path ? path.resolve(ctx.cwd, input.path) : ctx.cwd;
26
+ const regexFlags = input['-i'] ? 'gi' : 'g';
27
+ const pattern = input.pattern ?? '';
28
+ const regex = new RegExp(pattern, regexFlags);
29
+ const allowedExts = input.type ? EXT_MAP[input.type] : null;
30
+ const results = [];
31
+ function walk(dir) {
32
+ let entries;
33
+ try {
34
+ entries = fs.readdirSync(dir, { withFileTypes: true });
35
+ }
36
+ catch {
37
+ return;
38
+ }
39
+ for (const entry of entries) {
40
+ const fullPath = path.join(dir, entry.name);
41
+ if (entry.isDirectory()) {
42
+ if (entry.name === 'node_modules' || entry.name === '.git')
43
+ continue;
44
+ walk(fullPath);
45
+ }
46
+ else if (entry.isFile()) {
47
+ if (allowedExts) {
48
+ const ext = path.extname(entry.name).toLowerCase();
49
+ if (!allowedExts.includes(ext))
50
+ continue;
51
+ }
52
+ try {
53
+ const content = fs.readFileSync(fullPath, 'utf-8');
54
+ const lines = content.split('\n');
55
+ for (let i = 0; i < lines.length; i++) {
56
+ regex.lastIndex = 0;
57
+ const line = lines[i];
58
+ if (line && regex.test(line)) {
59
+ results.push({ file: fullPath, line: i + 1, text: line });
60
+ }
61
+ }
62
+ }
63
+ catch {
64
+ // skip binary files
65
+ }
66
+ }
67
+ }
68
+ }
69
+ walk(searchPath);
70
+ return {
71
+ output: {
72
+ pattern: input.pattern,
73
+ matches: results.length,
74
+ results: results.slice(0, 250),
75
+ },
76
+ };
77
+ });
78
+ //# sourceMappingURL=grep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grep.js","sourceRoot":"","sources":["../../src/grep.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ export { type Tool, type ToolResult, type ToolContext, type ToolDef, createTool } from './tool.js';
2
+ export { readTool } from './read.js';
3
+ export { editTool } from './edit.js';
4
+ export { writeTool } from './write.js';
5
+ export { globTool } from './glob.js';
6
+ export { grepTool } from './grep.js';
7
+ export { bashTool } from './bash.js';
8
+ export { reminderTool } from './reminder.js';
9
+ export { webSearchTool } from './web-search.js';
10
+ export { webFetchTool } from './web-fetch.js';
11
+ export declare const allTools: ((import("./tool.js").Tool & {
12
+ validate: (raw: Record<string, unknown>) => {
13
+ file_path: string;
14
+ offset?: number | undefined;
15
+ limit?: number | undefined;
16
+ pages?: string | undefined;
17
+ };
18
+ }) | (import("./tool.js").Tool & {
19
+ validate: (raw: Record<string, unknown>) => {
20
+ file_path: string;
21
+ old_string: string;
22
+ new_string: string;
23
+ replace_all?: boolean | undefined;
24
+ };
25
+ }) | (import("./tool.js").Tool & {
26
+ validate: (raw: Record<string, unknown>) => {
27
+ file_path: string;
28
+ content: string;
29
+ };
30
+ }) | (import("./tool.js").Tool & {
31
+ validate: (raw: Record<string, unknown>) => {
32
+ pattern: string;
33
+ path?: string | undefined;
34
+ };
35
+ }) | (import("./tool.js").Tool & {
36
+ validate: (raw: Record<string, unknown>) => {
37
+ command: string;
38
+ timeout?: number | undefined;
39
+ description?: string | undefined;
40
+ };
41
+ }) | (import("./tool.js").Tool & {
42
+ validate: (raw: Record<string, unknown>) => {
43
+ message: string;
44
+ scheduled_at: string;
45
+ };
46
+ }) | (import("./tool.js").Tool & {
47
+ validate: (raw: Record<string, unknown>) => {
48
+ query: string;
49
+ count?: number | undefined;
50
+ blocked_domains?: string[] | undefined;
51
+ allowed_domains?: string[] | undefined;
52
+ };
53
+ }) | (import("./tool.js").Tool & {
54
+ validate: (raw: Record<string, unknown>) => {
55
+ url: string;
56
+ prompt: string;
57
+ };
58
+ }))[];
59
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACnG,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAY9C,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAA2G,CAAC"}
@@ -0,0 +1,21 @@
1
+ export { createTool } from './tool.js';
2
+ export { readTool } from './read.js';
3
+ export { editTool } from './edit.js';
4
+ export { writeTool } from './write.js';
5
+ export { globTool } from './glob.js';
6
+ export { grepTool } from './grep.js';
7
+ export { bashTool } from './bash.js';
8
+ export { reminderTool } from './reminder.js';
9
+ export { webSearchTool } from './web-search.js';
10
+ export { webFetchTool } from './web-fetch.js';
11
+ import { readTool } from './read.js';
12
+ import { editTool } from './edit.js';
13
+ import { writeTool } from './write.js';
14
+ import { globTool } from './glob.js';
15
+ import { grepTool } from './grep.js';
16
+ import { bashTool } from './bash.js';
17
+ import { reminderTool } from './reminder.js';
18
+ import { webSearchTool } from './web-search.js';
19
+ import { webFetchTool } from './web-fetch.js';
20
+ export const allTools = [readTool, editTool, writeTool, globTool, grepTool, bashTool, reminderTool, webSearchTool, webFetchTool];
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8D,UAAU,EAAE,MAAM,WAAW,CAAC;AACnG,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare const readTool: import("./tool.js").Tool & {
2
+ validate: (raw: Record<string, unknown>) => {
3
+ file_path: string;
4
+ offset?: number | undefined;
5
+ limit?: number | undefined;
6
+ pages?: string | undefined;
7
+ };
8
+ };
9
+ //# sourceMappingURL=read.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/read.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,QAAQ;;;;;;;CA+DpB,CAAC"}
@@ -0,0 +1,61 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { z } from 'zod';
4
+ import { createTool, expandPath } from './tool.js';
5
+ const ReadSchema = z.object({
6
+ file_path: z.string().describe('The absolute path to the file to read'),
7
+ offset: z.number().optional().describe('The line number to start reading from'),
8
+ limit: z.number().optional().describe('The number of lines to read'),
9
+ pages: z.string().optional().describe('Page range for PDF files'),
10
+ });
11
+ export const readTool = createTool('Read', 'Reads a file from the local filesystem. Supports text files, PDF, notebooks, and images.', ReadSchema, async (input, ctx) => {
12
+ const filePath = path.resolve(ctx.cwd, expandPath(input.file_path));
13
+ if (!fs.existsSync(filePath)) {
14
+ return { output: null, error: `File not found: ${filePath}` };
15
+ }
16
+ const stat = fs.statSync(filePath);
17
+ if (stat.isDirectory()) {
18
+ const entries = fs.readdirSync(filePath, { withFileTypes: true });
19
+ return { output: entries.map((e) => ({ name: e.name, isDirectory: e.isDirectory(), isFile: e.isFile() })) };
20
+ }
21
+ const ext = path.extname(filePath).toLowerCase();
22
+ if (['.png', '.jpg', '.jpeg', '.gif', '.bmp', '.webp', '.svg'].includes(ext)) {
23
+ const buf = fs.readFileSync(filePath);
24
+ return {
25
+ output: {
26
+ type: 'image',
27
+ path: filePath,
28
+ size: buf.length,
29
+ encoding: 'base64',
30
+ data: buf.toString('base64'),
31
+ },
32
+ };
33
+ }
34
+ if (ext === '.pdf') {
35
+ return { output: null, error: `PDF reading requires a PDF library. Path: ${filePath}` };
36
+ }
37
+ const content = fs.readFileSync(filePath, 'utf-8');
38
+ const lines = content.split('\n');
39
+ let resultLines = lines;
40
+ if (input.offset !== undefined) {
41
+ const start = Math.max(0, input.offset - 1);
42
+ resultLines = lines.slice(start);
43
+ }
44
+ if (input.limit !== undefined) {
45
+ resultLines = resultLines.slice(0, input.limit);
46
+ }
47
+ const numbered = resultLines
48
+ .map((line, i) => {
49
+ const ln = input.offset !== undefined ? input.offset + i : i + 1;
50
+ return `${ln}\t${line}`;
51
+ })
52
+ .join('\n');
53
+ return {
54
+ output: {
55
+ path: filePath,
56
+ totalLines: lines.length,
57
+ content: numbered,
58
+ },
59
+ };
60
+ });
61
+ //# sourceMappingURL=read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../src/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAoB,MAAM,WAAW,CAAC;AAErE,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IACvE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IAC/E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IACpE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;CAClE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAChC,MAAM,EACN,0FAA0F,EAC1F,UAAU,EACV,KAAK,EAAE,KAAK,EAAE,GAAgB,EAAE,EAAE;IAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAEpE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,mBAAmB,QAAQ,EAAE,EAAE,CAAC;IAChE,CAAC;IAED,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;IAC9G,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IAEjD,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7E,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACtC,OAAO;YACL,MAAM,EAAE;gBACN,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,GAAG,CAAC,MAAM;gBAChB,QAAQ,EAAE,QAAQ;gBAClB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;aAC7B;SACF,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QACnB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,6CAA6C,QAAQ,EAAE,EAAE,CAAC;IAC1F,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAElC,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5C,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC9B,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,QAAQ,GAAG,WAAW;SACzB,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACf,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC;IAC1B,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO;QACL,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,KAAK,CAAC,MAAM;YACxB,OAAO,EAAE,QAAQ;SAClB;KACF,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare const reminderTool: import("./tool.js").Tool & {
2
+ validate: (raw: Record<string, unknown>) => {
3
+ message: string;
4
+ scheduled_at: string;
5
+ };
6
+ };
7
+ //# sourceMappingURL=reminder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reminder.d.ts","sourceRoot":"","sources":["../../src/reminder.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,YAAY;;;;;CAuBxB,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { z } from 'zod';
2
+ import { createTool } from './tool.js';
3
+ import { CronManager } from '@curie-agent/core';
4
+ const CronManagerSingleton = new CronManager();
5
+ const CreateReminderSchema = z.object({
6
+ message: z.string().describe('What to remind the user about'),
7
+ scheduled_at: z.string().describe('ISO 8601 datetime (e.g. "2026-05-03T07:00:00Z")'),
8
+ });
9
+ export const reminderTool = createTool('CreateReminder', 'Creates a reminder notification that will fire at the specified time.', CreateReminderSchema, async (input) => {
10
+ const scheduledAt = new Date(input.scheduled_at).getTime();
11
+ if (isNaN(scheduledAt)) {
12
+ return {
13
+ output: null,
14
+ error: `Invalid datetime: "${input.scheduled_at}". Use ISO 8601 format (e.g. "2026-05-03T07:00:00Z").`,
15
+ };
16
+ }
17
+ const task = CronManagerSingleton.createReminder(input.message, scheduledAt);
18
+ const timeStr = new Date(scheduledAt).toLocaleString();
19
+ return {
20
+ output: {
21
+ id: task.id,
22
+ message: task.message,
23
+ scheduledAt: timeStr,
24
+ status: task.status,
25
+ },
26
+ };
27
+ });
28
+ //# sourceMappingURL=reminder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reminder.js","sourceRoot":"","sources":["../../src/reminder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAoB,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,oBAAoB,GAAG,IAAI,WAAW,EAAE,CAAC;AAE/C,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IAC7D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;CACrF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CACpC,gBAAgB,EAChB,uEAAuE,EACvE,oBAAoB,EACpB,KAAK,EAAE,KAAK,EAAE,EAAE;IACd,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;IAC3D,IAAI,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QACvB,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,sBAAsB,KAAK,CAAC,YAAY,uDAAuD;SACvG,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,oBAAoB,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC7E,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,cAAc,EAAE,CAAC;IACvD,OAAO;QACL,MAAM,EAAE;YACN,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,OAAO;YACpB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB;KACF,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { z } from 'zod';
2
+ import type { HopperSettings } from '@curie-agent/core';
3
+ export interface ToolDef {
4
+ name: string;
5
+ description: string;
6
+ inputSchema: {
7
+ type: 'object';
8
+ properties: Record<string, unknown>;
9
+ required?: string[];
10
+ };
11
+ }
12
+ export interface Tool {
13
+ definition: ToolDef;
14
+ execute: (input: Record<string, unknown>, settings: HopperSettings) => Promise<ToolResult>;
15
+ }
16
+ export interface ToolResult {
17
+ output: unknown;
18
+ error?: string;
19
+ }
20
+ export interface ToolContext {
21
+ cwd: string;
22
+ settings: HopperSettings;
23
+ }
24
+ export declare function expandPath(p: string): string;
25
+ export declare function createTool<Schema extends z.ZodObject<z.ZodRawShape>>(name: string, description: string, schema: Schema, execute: (input: z.infer<Schema>, ctx: ToolContext) => Promise<ToolResult>): Tool & {
26
+ validate: (raw: Record<string, unknown>) => z.infer<Schema>;
27
+ };
28
+ //# sourceMappingURL=tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,IAAI;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,cAAc,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CAC5F;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAK5C;AA8BD,wBAAgB,UAAU,CAAC,MAAM,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,EAClE,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,GACzE,IAAI,GAAG;IAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;CAAE,CAqCxE"}
@@ -0,0 +1,73 @@
1
+ import { z } from 'zod';
2
+ import { homedir } from 'node:os';
3
+ export function expandPath(p) {
4
+ if (p.startsWith('~/') || p === '~') {
5
+ return homedir() + p.slice(1);
6
+ }
7
+ return p;
8
+ }
9
+ function zodToJsonSchema(schema) {
10
+ const raw = z.toJSONSchema(schema);
11
+ // Strip $schema meta-field — not needed by LLM providers
12
+ delete raw['$schema'];
13
+ return raw;
14
+ }
15
+ /**
16
+ * Common camelCase -> snake_case mappings for tool input keys.
17
+ * LLMs (especially local models) often normalize snake_case schema keys
18
+ * to camelCase when generating tool calls. This map lets us accept either form.
19
+ */
20
+ const KEY_ALIASES = {
21
+ // Read / Edit
22
+ filePath: 'file_path',
23
+ oldString: 'old_string',
24
+ newString: 'new_string',
25
+ replaceAll: 'replace_all',
26
+ // Write
27
+ content: 'content', // already matched
28
+ // Glob
29
+ pattern: 'pattern', // already matched
30
+ // Grep
31
+ regex: 'regex', // already matched
32
+ // Bash
33
+ command: 'command', // already matched
34
+ };
35
+ export function createTool(name, description, schema, execute) {
36
+ const jsonSchema = zodToJsonSchema(schema);
37
+ const def = {
38
+ name,
39
+ description,
40
+ inputSchema: jsonSchema,
41
+ };
42
+ return {
43
+ definition: def,
44
+ validate: (raw) => schema.parse(raw),
45
+ async execute(input, settings) {
46
+ // Normalize input: strip null/undefined values and map camelCase
47
+ // key aliases to their snake_case equivalents. LLMs (especially local
48
+ // models) frequently normalize snake_case schema keys to camelCase.
49
+ const normalized = {};
50
+ for (const [k, v] of Object.entries(input)) {
51
+ if (v === null || v === undefined)
52
+ continue;
53
+ const targetKey = KEY_ALIASES[k] ?? k;
54
+ // Only set if the target key isn't already present (preserve explicit snake_case)
55
+ if (!(targetKey in normalized)) {
56
+ normalized[targetKey] = v;
57
+ }
58
+ }
59
+ try {
60
+ const parsed = schema.parse(normalized);
61
+ return execute(parsed, { cwd: '', settings });
62
+ }
63
+ catch (err) {
64
+ if (err instanceof z.ZodError) {
65
+ const details = err.issues.map((i) => `${i.path.join('.')}: ${i.message}`).join('; ');
66
+ return { output: null, error: `Validation error for tool "${name}": ${details}` };
67
+ }
68
+ throw err;
69
+ }
70
+ },
71
+ };
72
+ }
73
+ //# sourceMappingURL=tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare const webFetchTool: import("./tool.js").Tool & {
2
+ validate: (raw: Record<string, unknown>) => {
3
+ url: string;
4
+ prompt: string;
5
+ };
6
+ };
7
+ //# sourceMappingURL=web-fetch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-fetch.d.ts","sourceRoot":"","sources":["../../src/web-fetch.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,YAAY;;;;;CAuCxB,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { z } from 'zod';
2
+ import { createTool } from './tool.js';
3
+ const WebFetchSchema = z.object({
4
+ url: z.string().describe('The URL to fetch content from'),
5
+ prompt: z.string().describe('Description of what content to extract from the page'),
6
+ });
7
+ export const webFetchTool = createTool('WebFetch', 'Fetches a URL and extracts readable content. Returns the extracted text.', WebFetchSchema, async (input, ctx) => {
8
+ let url;
9
+ try {
10
+ url = new URL(input.url);
11
+ }
12
+ catch {
13
+ return {
14
+ output: null,
15
+ error: `Invalid URL: "${input.url}"`,
16
+ };
17
+ }
18
+ const response = await fetch(url.toString(), {
19
+ headers: {
20
+ Accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
21
+ 'User-Agent': 'Mozilla/5.0 (compatible; HopperBot/1.0)',
22
+ },
23
+ });
24
+ if (!response.ok) {
25
+ return {
26
+ output: null,
27
+ error: `Failed to fetch ${url.toString()}: ${response.status} ${response.statusText}`,
28
+ };
29
+ }
30
+ const contentType = response.headers.get('content-type') ?? '';
31
+ const body = await response.text();
32
+ let content = body;
33
+ if (contentType.includes('text/html')) {
34
+ content = htmlToText(body);
35
+ }
36
+ return { output: { url: url.toString(), content, contentType } };
37
+ });
38
+ function htmlToText(html) {
39
+ let text = html.replace(/<script[\s\S]*?<\/script>/gi, '');
40
+ text = text.replace(/<style[\s\S]*?<\/style>/gi, '');
41
+ text = text.replace(/<[^>]+>/g, ' ');
42
+ text = text.replace(/&nbsp;/g, ' ')
43
+ .replace(/&amp;/g, '&')
44
+ .replace(/&lt;/g, '<')
45
+ .replace(/&gt;/g, '>')
46
+ .replace(/&quot;/g, '"')
47
+ .replace(/&#39;/g, "'");
48
+ text = text.replace(/\s+/g, ' ').trim();
49
+ return text;
50
+ }
51
+ //# sourceMappingURL=web-fetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-fetch.js","sourceRoot":"","sources":["../../src/web-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAoB,MAAM,WAAW,CAAC;AAEzD,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IACzD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;CACpF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CACpC,UAAU,EACV,0EAA0E,EAC1E,cAAc,EACd,KAAK,EAAE,KAAK,EAAE,GAAgB,EAAE,EAAE;IAChC,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,iBAAiB,KAAK,CAAC,GAAG,GAAG;SACrC,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;QAC3C,OAAO,EAAE;YACP,MAAM,EAAE,iEAAiE;YACzE,YAAY,EAAE,yCAAyC;SACxD;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,mBAAmB,GAAG,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE;SACtF,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IAC/D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEnC,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACtC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC;AACnE,CAAC,CACF,CAAC;AAEF,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC;IAC3D,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;IACrD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACrC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SAChC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC1B,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare const webSearchTool: import("./tool.js").Tool & {
2
+ validate: (raw: Record<string, unknown>) => {
3
+ query: string;
4
+ count?: number | undefined;
5
+ blocked_domains?: string[] | undefined;
6
+ allowed_domains?: string[] | undefined;
7
+ };
8
+ };
9
+ //# sourceMappingURL=web-search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-search.d.ts","sourceRoot":"","sources":["../../src/web-search.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,aAAa;;;;;;;CAiEzB,CAAC"}
@@ -0,0 +1,61 @@
1
+ import { z } from 'zod';
2
+ import { createTool } from './tool.js';
3
+ const WebSearchSchema = z.object({
4
+ query: z.string().describe('The search query to look up on the web'),
5
+ count: z.number().optional().describe('Number of results to return (max 20, default 10)'),
6
+ blocked_domains: z.array(z.string()).optional().describe('Domains to exclude from search results'),
7
+ allowed_domains: z.array(z.string()).optional().describe('Only return results from these domains'),
8
+ });
9
+ export const webSearchTool = createTool('WebSearch', 'Search the web using Brave Search API. Returns titles, URLs, and snippets.', WebSearchSchema, async (input, ctx) => {
10
+ const apiKey = ctx.settings.BRAVE_SEARCH_API_KEY;
11
+ if (!apiKey) {
12
+ return {
13
+ output: null,
14
+ error: 'BRAVE_SEARCH_API_KEY is not configured in settings.json',
15
+ };
16
+ }
17
+ const count = Math.min(input.count ?? 10, 20);
18
+ const url = new URL('https://api.search.brave.com/res/v1/web/search');
19
+ url.searchParams.set('q', input.query);
20
+ url.searchParams.set('count', String(count));
21
+ if (input.allowed_domains?.length) {
22
+ url.searchParams.set('filters', input.allowed_domains.join(','));
23
+ }
24
+ const response = await fetch(url.toString(), {
25
+ headers: {
26
+ Accept: 'application/json',
27
+ 'Accept-Encoding': 'gzip',
28
+ 'X-Subscription-Token': apiKey,
29
+ },
30
+ });
31
+ if (!response.ok) {
32
+ return {
33
+ output: null,
34
+ error: `Brave Search API error: ${response.status} ${response.statusText}`,
35
+ };
36
+ }
37
+ const data = await response.json();
38
+ const results = [];
39
+ const web = data.web;
40
+ const webResults = web?.results ?? [];
41
+ for (const r of webResults) {
42
+ const title = r.title ?? '';
43
+ const urlStr = r.url ?? '';
44
+ const snippet = r.description ?? '';
45
+ if (input.blocked_domains?.length) {
46
+ try {
47
+ const hostname = new URL(urlStr).hostname;
48
+ if (input.blocked_domains.some((d) => hostname.includes(d)))
49
+ continue;
50
+ }
51
+ catch {
52
+ continue;
53
+ }
54
+ }
55
+ results.push({ title, url: urlStr, snippet });
56
+ if (results.length >= count)
57
+ break;
58
+ }
59
+ return { output: results };
60
+ });
61
+ //# sourceMappingURL=web-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-search.js","sourceRoot":"","sources":["../../src/web-search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare const writeTool: import("./tool.js").Tool & {
2
+ validate: (raw: Record<string, unknown>) => {
3
+ file_path: string;
4
+ content: string;
5
+ };
6
+ };
7
+ //# sourceMappingURL=write.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../src/write.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,SAAS;;;;;CAqBrB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { z } from 'zod';
4
+ import { createTool, expandPath } from './tool.js';
5
+ const WriteSchema = z.object({
6
+ file_path: z.string().describe('The absolute path to the file to write'),
7
+ content: z.string().describe('The content to write to the file'),
8
+ });
9
+ export const writeTool = createTool('Write', 'Writes a file to the local filesystem. Creates new files or overwrites existing ones.', WriteSchema, async (input, ctx) => {
10
+ const filePath = path.resolve(ctx.cwd, expandPath(input.file_path));
11
+ const dir = path.dirname(filePath);
12
+ if (!fs.existsSync(dir)) {
13
+ fs.mkdirSync(dir, { recursive: true });
14
+ }
15
+ fs.writeFileSync(filePath, input.content, 'utf-8');
16
+ return {
17
+ output: {
18
+ path: filePath,
19
+ bytes: Buffer.byteLength(input.content, 'utf-8'),
20
+ },
21
+ };
22
+ });
23
+ //# sourceMappingURL=write.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/write.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAoB,MAAM,WAAW,CAAC;AAErE,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IACxE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;CACjE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CACjC,OAAO,EACP,uFAAuF,EACvF,WAAW,EACX,KAAK,EAAE,KAAK,EAAE,GAAgB,EAAE,EAAE;IAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAEpE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAEnD,OAAO;QACL,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;SACjD;KACF,CAAC;AACJ,CAAC,CACF,CAAC"}
package/package.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "@curie-agent/tools",
3
+ "version": "0.1.0",
4
+ "publish": true,
5
+ "type": "module",
6
+ "files": [
7
+ "dist"
8
+ ],
9
+ "main": "./dist/src/index.js",
10
+ "types": "./dist/src/index.d.ts",
11
+ "exports": {
12
+ ".": {
13
+ "import": "./dist/src/index.js",
14
+ "types": "./dist/src/index.d.ts"
15
+ }
16
+ },
17
+ "scripts": {
18
+ "build": "tsc --project tsconfig.json",
19
+ "dev": "tsc --watch --project tsconfig.json",
20
+ "typecheck": "tsc --noEmit --project tsconfig.json",
21
+ "lint": "eslint src/",
22
+ "test": "vitest run",
23
+ "clean": "npx rimraf dist"
24
+ },
25
+ "dependencies": {
26
+ "@curie-agent/core": "workspace:^0.1.0",
27
+ "zod": "^4.4.3"
28
+ },
29
+ "devDependencies": {
30
+ "@types/node": "^22.0.0",
31
+ "typescript": "^6.0.3"
32
+ }
33
+ }