@spotlightjs/spotlight 4.5.0 → 4.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/_commonjsHelpers.js +9 -0
- package/dist/_virtual/_commonjsHelpers.js.map +1 -0
- package/dist/_virtual/cache.js +5 -0
- package/dist/_virtual/cache.js.map +1 -0
- package/dist/_virtual/index.js +5 -0
- package/dist/_virtual/index.js.map +1 -0
- package/dist/_virtual/re.js +5 -0
- package/dist/_virtual/re.js.map +1 -0
- package/dist/_virtual/uri.all.js +5 -0
- package/dist/_virtual/uri.all.js.map +1 -0
- package/dist/bootstrap.d.ts +0 -0
- package/dist/electron-index.d.ts +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/instrument.js +74 -0
- package/dist/instrument.js.map +1 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js +233 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js.map +1 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js +56 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js.map +1 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js +188 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js.map +1 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js +596 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js.map +1 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js +68 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js.map +1 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js +383 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js.map +1 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js +33 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js.map +1 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js +1037 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/ajv.js +357 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/ajv.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/cache.js +21 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/cache.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/async.js +65 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/async.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/error_classes.js +28 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/error_classes.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/formats.js +110 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/formats.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/index.js +279 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/index.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/resolve.js +219 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/resolve.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/rules.js +92 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/rules.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/schema_obj.js +10 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/schema_obj.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/ucs2length.js +16 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/ucs2length.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/util.js +183 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/util.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/data.js +48 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/data.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/definition_schema.js +39 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/definition_schema.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limit.js +151 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limit.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitItems.js +81 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitItems.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitLength.js +86 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitLength.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitProperties.js +81 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitProperties.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/allOf.js +43 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/allOf.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/anyOf.js +74 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/anyOf.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/comment.js +17 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/comment.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/const.js +54 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/const.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/contains.js +79 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/contains.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/custom.js +221 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/custom.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/dependencies.js +162 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/dependencies.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/enum.js +63 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/enum.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/format.js +148 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/format.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/if.js +101 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/if.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/index.js +58 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/index.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/items.js +138 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/items.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/multipleOf.js +81 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/multipleOf.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/not.js +86 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/not.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/oneOf.js +72 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/oneOf.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/pattern.js +76 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/pattern.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/properties.js +313 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/properties.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/propertyNames.js +75 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/propertyNames.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/ref.js +125 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/ref.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/required.js +254 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/required.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/uniqueItems.js +86 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/uniqueItems.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/validate.js +455 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/validate.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/keyword.js +99 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/keyword.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/refs/data.json.js +41 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/refs/data.json.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/refs/json-schema-draft-07.json.js +257 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/refs/json-schema-draft-07.json.js.map +1 -0
- package/dist/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js +32 -0
- package/dist/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js.map +1 -0
- package/dist/node_modules/.pnpm/fast-json-stable-stringify@2.1.0/node_modules/fast-json-stable-stringify/index.js +53 -0
- package/dist/node_modules/.pnpm/fast-json-stable-stringify@2.1.0/node_modules/fast-json-stable-stringify/index.js.map +1 -0
- package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/helper/streaming/sse.js +24 -0
- package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/helper/streaming/sse.js.map +1 -0
- package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/middleware/cors/index.js +87 -0
- package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/middleware/cors/index.js.map +1 -0
- package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/utils/html.js +35 -0
- package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/utils/html.js.map +1 -0
- package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/utils/stream.js +69 -0
- package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/utils/stream.js.map +1 -0
- package/dist/node_modules/.pnpm/json-schema-traverse@0.4.1/node_modules/json-schema-traverse/index.js +83 -0
- package/dist/node_modules/.pnpm/json-schema-traverse@0.4.1/node_modules/json-schema-traverse/index.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/comparator.js +123 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/comparator.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/range.js +388 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/range.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/semver.js +277 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/semver.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/clean.js +11 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/clean.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/cmp.js +53 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/cmp.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/coerce.js +46 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/coerce.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-build.js +12 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-build.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-loose.js +8 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-loose.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare.js +8 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/diff.js +42 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/diff.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/eq.js +8 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/eq.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gt.js +8 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gt.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gte.js +8 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gte.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/inc.js +22 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/inc.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lt.js +8 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lt.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lte.js +8 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lte.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/major.js +8 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/major.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/minor.js +8 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/minor.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/neq.js +8 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/neq.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/parse.js +20 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/parse.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/patch.js +8 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/patch.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/prerelease.js +11 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/prerelease.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rcompare.js +8 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rcompare.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rsort.js +8 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rsort.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/satisfies.js +15 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/satisfies.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/sort.js +8 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/sort.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/valid.js +11 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/valid.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/index.js +135 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/index.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/constants.js +29 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/constants.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/debug.js +7 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/debug.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/identifiers.js +22 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/identifiers.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/lrucache.js +35 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/lrucache.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/parse-options.js +16 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/parse-options.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/re.js +91 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/re.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/gtr.js +8 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/gtr.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/intersects.js +12 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/intersects.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/ltr.js +8 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/ltr.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/max-satisfying.js +28 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/max-satisfying.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-satisfying.js +28 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-satisfying.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-version.js +57 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-version.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/outside.js +74 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/outside.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/simplify.js +49 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/simplify.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/subset.js +163 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/subset.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/to-comparators.js +8 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/to-comparators.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/valid.js +14 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/valid.js.map +1 -0
- package/dist/node_modules/.pnpm/uri-js@4.4.1/node_modules/uri-js/dist/es5/uri.all.js +1027 -0
- package/dist/node_modules/.pnpm/uri-js@4.4.1/node_modules/uri-js/dist/es5/uri.all.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Options.js +38 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Options.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Refs.js +24 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Refs.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/errorMessages.js +19 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/errorMessages.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js +12 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parseDef.js +62 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parseDef.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/any.js +19 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/any.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/array.js +29 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/array.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js +49 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js +9 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js +8 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js +8 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/date.js +62 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/date.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/default.js +11 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/default.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js +9 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js +10 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js +45 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js +22 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/map.js +30 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/map.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js +16 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/never.js +13 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/never.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/null.js +12 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/null.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js +36 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/number.js +52 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/number.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/object.js +73 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/object.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js +23 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js +23 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js +8 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js +8 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/record.js +59 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/record.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/set.js +24 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/set.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/string.js +322 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/string.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js +31 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js +10 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/union.js +72 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/union.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js +8 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/selectParser.js +109 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/selectParser.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js +67 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js.map +1 -0
- package/dist/run.d.ts +0 -1
- package/dist/run.js +23 -44623
- package/dist/run.js.map +1 -0
- package/dist/sentry-config.d.ts +7 -0
- package/dist/sentry-config.js +11 -0
- package/dist/sentry-config.js.map +1 -0
- package/dist/server/cli/help.d.ts +1 -0
- package/dist/server/cli/help.js +38 -0
- package/dist/server/cli/help.js.map +1 -0
- package/dist/server/cli/mcp.d.ts +2 -0
- package/dist/server/cli/mcp.js +105 -0
- package/dist/server/cli/mcp.js.map +1 -0
- package/dist/server/cli/run.d.ts +2 -0
- package/dist/server/cli/run.js +271 -0
- package/dist/server/cli/run.js.map +1 -0
- package/dist/server/cli/server.d.ts +2 -0
- package/dist/server/cli/server.js +13 -0
- package/dist/server/cli/server.js.map +1 -0
- package/dist/server/cli/tail.d.ts +8 -0
- package/dist/server/cli/tail.js +97 -0
- package/dist/server/cli/tail.js.map +1 -0
- package/dist/server/cli.d.ts +16 -0
- package/dist/server/cli.js +120 -0
- package/dist/server/cli.js.map +1 -0
- package/dist/server/constants.d.ts +3 -0
- package/dist/server/constants.js +7 -0
- package/dist/server/constants.js.map +1 -0
- package/dist/server/formatters/human/errors.d.ts +6 -0
- package/dist/server/formatters/human/errors.js +28 -0
- package/dist/server/formatters/human/errors.js.map +1 -0
- package/dist/server/formatters/human/index.d.ts +2 -0
- package/dist/server/formatters/human/index.js +13 -0
- package/dist/server/formatters/human/index.js.map +1 -0
- package/dist/server/formatters/human/logs.d.ts +6 -0
- package/dist/server/formatters/human/logs.js +23 -0
- package/dist/server/formatters/human/logs.js.map +1 -0
- package/dist/server/formatters/human/traces.d.ts +6 -0
- package/dist/server/formatters/human/traces.js +29 -0
- package/dist/server/formatters/human/traces.js.map +1 -0
- package/dist/server/formatters/human/utils.d.ts +43 -0
- package/dist/server/formatters/human/utils.js +113 -0
- package/dist/server/formatters/human/utils.js.map +1 -0
- package/dist/server/formatters/index.d.ts +11 -0
- package/dist/server/formatters/index.js +19 -0
- package/dist/server/formatters/index.js.map +1 -0
- package/dist/server/formatters/json/errors.d.ts +3 -0
- package/dist/server/formatters/json/errors.js +8 -0
- package/dist/server/formatters/json/errors.js.map +1 -0
- package/dist/server/formatters/json/index.d.ts +2 -0
- package/dist/server/formatters/json/index.js +13 -0
- package/dist/server/formatters/json/index.js.map +1 -0
- package/dist/server/formatters/json/logs.d.ts +3 -0
- package/dist/server/formatters/json/logs.js +11 -0
- package/dist/server/formatters/json/logs.js.map +1 -0
- package/dist/server/formatters/json/traces.d.ts +3 -0
- package/dist/server/formatters/json/traces.js +8 -0
- package/dist/server/formatters/json/traces.js.map +1 -0
- package/dist/server/formatters/logfmt/errors.d.ts +3 -0
- package/dist/server/formatters/logfmt/errors.js +9 -0
- package/dist/server/formatters/logfmt/errors.js.map +1 -0
- package/dist/server/formatters/logfmt/index.d.ts +2 -0
- package/dist/server/formatters/logfmt/index.js +13 -0
- package/dist/server/formatters/logfmt/index.js.map +1 -0
- package/dist/server/formatters/logfmt/logs.d.ts +3 -0
- package/dist/server/formatters/logfmt/logs.js +27 -0
- package/dist/server/formatters/logfmt/logs.js.map +1 -0
- package/dist/server/formatters/logfmt/traces.d.ts +3 -0
- package/dist/server/formatters/logfmt/traces.js +9 -0
- package/dist/server/formatters/logfmt/traces.js.map +1 -0
- package/dist/server/formatters/md/errors.d.ts +10 -0
- package/dist/server/formatters/md/errors.js +77 -0
- package/dist/server/formatters/md/errors.js.map +1 -0
- package/dist/server/formatters/md/event.d.ts +11 -0
- package/dist/server/formatters/md/event.js +362 -0
- package/dist/server/formatters/md/event.js.map +1 -0
- package/dist/server/formatters/md/index.d.ts +2 -0
- package/dist/server/formatters/md/index.js +13 -0
- package/dist/server/formatters/md/index.js.map +1 -0
- package/dist/server/formatters/md/logs.d.ts +7 -0
- package/dist/server/formatters/md/logs.js +39 -0
- package/dist/server/formatters/md/logs.js.map +1 -0
- package/dist/server/formatters/md/traces.d.ts +87 -0
- package/dist/server/formatters/md/traces.js +300 -0
- package/dist/server/formatters/md/traces.js.map +1 -0
- package/dist/server/formatters/schema.d.ts +6810 -0
- package/dist/server/formatters/shared/data-builders.d.ts +15 -0
- package/dist/server/formatters/shared/data-builders.js +120 -0
- package/dist/server/formatters/shared/data-builders.js.map +1 -0
- package/dist/server/formatters/types.d.ts +33 -0
- package/dist/server/formatters/types.js +5 -0
- package/dist/server/formatters/types.js.map +1 -0
- package/dist/server/formatters/utils.d.ts +25 -0
- package/dist/server/formatters/utils.js +46 -0
- package/dist/server/formatters/utils.js.map +1 -0
- package/dist/server/handlers/fileToServe.d.ts +2 -0
- package/dist/server/handlers/fileToServe.js +27 -0
- package/dist/server/handlers/fileToServe.js.map +1 -0
- package/dist/server/handlers/index.d.ts +1 -0
- package/dist/server/logger.d.ts +5 -0
- package/dist/server/logger.js +31 -0
- package/dist/server/logger.js.map +1 -0
- package/dist/server/main.d.ts +6 -0
- package/dist/server/main.js +175 -0
- package/dist/server/main.js.map +1 -0
- package/dist/server/mcp/constants.d.ts +3 -0
- package/dist/server/mcp/constants.js +79 -0
- package/dist/server/mcp/constants.js.map +1 -0
- package/dist/server/mcp/mcp.d.ts +31 -0
- package/dist/server/mcp/mcp.js +392 -0
- package/dist/server/mcp/mcp.js.map +1 -0
- package/dist/server/messageBuffer.d.ts +40 -0
- package/dist/server/messageBuffer.js +279 -0
- package/dist/server/messageBuffer.js.map +1 -0
- package/dist/server/parser/helpers.d.ts +10 -0
- package/dist/server/parser/helpers.js +32 -0
- package/dist/server/parser/helpers.js.map +1 -0
- package/dist/server/parser/index.d.ts +3 -0
- package/dist/server/parser/processEnvelope.d.ts +17 -0
- package/dist/server/parser/processEnvelope.js +86 -0
- package/dist/server/parser/processEnvelope.js.map +1 -0
- package/dist/server/parser/types.d.ts +198 -0
- package/dist/server/routes/clear.d.ts +3 -0
- package/dist/server/routes/clear.js +15 -0
- package/dist/server/routes/clear.js.map +1 -0
- package/dist/server/routes/contextlines/index.d.ts +3 -0
- package/dist/server/routes/contextlines/index.js +44 -0
- package/dist/server/routes/contextlines/index.js.map +1 -0
- package/dist/server/routes/contextlines/utils.d.ts +20 -0
- package/dist/server/routes/contextlines/utils.js +83 -0
- package/dist/server/routes/contextlines/utils.js.map +1 -0
- package/dist/server/routes/health.d.ts +3 -0
- package/dist/server/routes/health.js +7 -0
- package/dist/server/routes/health.js.map +1 -0
- package/dist/server/routes/index.d.ts +3 -0
- package/dist/server/routes/index.js +19 -0
- package/dist/server/routes/index.js.map +1 -0
- package/dist/server/routes/mcp.d.ts +3 -0
- package/dist/server/routes/mcp.js +20 -0
- package/dist/server/routes/mcp.js.map +1 -0
- package/dist/server/routes/open.d.ts +4 -0
- package/dist/server/routes/open.js +25 -0
- package/dist/server/routes/open.js.map +1 -0
- package/dist/server/routes/stream/debugLogging.d.ts +11 -0
- package/dist/server/routes/stream/debugLogging.js +59 -0
- package/dist/server/routes/stream/debugLogging.js.map +1 -0
- package/dist/server/routes/stream/index.d.ts +34 -0
- package/dist/server/routes/stream/index.js +98 -0
- package/dist/server/routes/stream/index.js.map +1 -0
- package/dist/server/routes/stream/streaming.d.ts +3 -0
- package/dist/server/routes/stream/streaming.js +26 -0
- package/dist/server/routes/stream/streaming.js.map +1 -0
- package/dist/server/routes/stream/userAgent.d.ts +11 -0
- package/dist/server/routes/stream/userAgent.js +25 -0
- package/dist/server/routes/stream/userAgent.js.map +1 -0
- package/dist/server/sdk.d.ts +15 -0
- package/dist/server/sdk.js +32 -0
- package/dist/server/sdk.js.map +1 -0
- package/dist/server/types/cli.d.ts +14 -0
- package/dist/server/types/env.d.ts +10 -0
- package/dist/server/types/index.d.ts +2 -0
- package/dist/server/types/utils.d.ts +44 -0
- package/dist/server/utils/cors.d.ts +12 -0
- package/dist/server/utils/cors.js +22 -0
- package/dist/server/utils/cors.js.map +1 -0
- package/dist/server/utils/docker-compose-parser.d.ts +20 -0
- package/dist/server/utils/docker-compose-parser.js +61 -0
- package/dist/server/utils/docker-compose-parser.js.map +1 -0
- package/dist/server/utils/docker-compose.d.ts +30 -0
- package/dist/server/utils/docker-compose.js +131 -0
- package/dist/server/utils/docker-compose.js.map +1 -0
- package/dist/server/utils/eventContainer.d.ts +34 -0
- package/dist/server/utils/eventContainer.js +71 -0
- package/dist/server/utils/eventContainer.js.map +1 -0
- package/dist/server/utils/extras.d.ts +5 -0
- package/dist/server/utils/extras.js +63 -0
- package/dist/server/utils/extras.js.map +1 -0
- package/dist/server/utils/getBuffer.d.ts +1 -0
- package/dist/server/utils/getBuffer.js +9 -0
- package/dist/server/utils/getBuffer.js.map +1 -0
- package/dist/server/utils/index.d.ts +4 -0
- package/dist/shared/constants.d.ts +3 -0
- package/dist/shared/constants.js +9 -0
- package/dist/shared/constants.js.map +1 -0
- package/dist/ui/assets/angular-html.js +1 -0
- package/dist/ui/assets/angular-ts.js +1 -0
- package/dist/ui/assets/astro.js +1 -0
- package/dist/ui/assets/blade.js +1 -0
- package/dist/ui/assets/client.js +50 -0
- package/dist/ui/assets/coffee.js +1 -0
- package/dist/ui/assets/cpp.js +1 -0
- package/dist/ui/assets/electron-index.js +6 -0
- package/dist/ui/assets/firefox.svg +105 -0
- package/dist/ui/assets/glsl.js +1 -0
- package/dist/ui/assets/graphql.js +1 -0
- package/dist/ui/assets/haml.js +1 -0
- package/dist/ui/assets/handlebars.js +1 -0
- package/dist/ui/assets/html-derivative.js +1 -0
- package/dist/ui/assets/html.js +1 -0
- package/dist/ui/assets/http.js +1 -0
- package/dist/ui/assets/index.js +152 -0
- package/dist/ui/assets/index2.js +1 -0
- package/dist/ui/assets/instrumentation.js +24 -0
- package/dist/ui/assets/jinja.js +1 -0
- package/dist/ui/assets/jison.js +1 -0
- package/dist/ui/assets/julia.js +1 -0
- package/dist/ui/assets/main.css +1 -0
- package/dist/ui/assets/main.js +2 -0
- package/dist/ui/assets/marko.js +1 -0
- package/dist/ui/assets/mdc.js +1 -0
- package/dist/ui/assets/nestjs.svg +4 -0
- package/dist/ui/assets/php.js +1 -0
- package/dist/ui/assets/pug.js +1 -0
- package/dist/ui/assets/raleway-cyrillic-400-normal.woff +0 -0
- package/dist/ui/assets/raleway-cyrillic-400-normal.woff2 +0 -0
- package/dist/ui/assets/raleway-cyrillic-ext-400-normal.woff +0 -0
- package/dist/ui/assets/raleway-cyrillic-ext-400-normal.woff2 +0 -0
- package/dist/ui/assets/raleway-latin-400-normal.woff +0 -0
- package/dist/ui/assets/raleway-latin-400-normal.woff2 +0 -0
- package/dist/ui/assets/raleway-latin-ext-400-normal.woff +0 -0
- package/dist/ui/assets/raleway-latin-ext-400-normal.woff2 +0 -0
- package/dist/ui/assets/raleway-vietnamese-400-normal.woff +0 -0
- package/dist/ui/assets/raleway-vietnamese-400-normal.woff2 +0 -0
- package/dist/ui/assets/safari.svg +38 -0
- package/dist/ui/assets/scss.js +1 -0
- package/dist/ui/assets/svelte.js +1 -0
- package/dist/ui/assets/ts-tags.js +1 -0
- package/dist/ui/assets/vue-html.js +1 -0
- package/dist/ui/assets/vue-vine.js +1 -0
- package/dist/ui/assets/vue.js +1 -0
- package/dist/ui/assets/xml.js +1 -0
- package/dist/{overlay/src → ui}/index.html +34 -0
- package/dist/ui/manifest.json +1103 -0
- package/package.json +109 -19
- package/dist/overlay/assets/angular-html-BmadGEgW.js +0 -1
- package/dist/overlay/assets/angular-ts-D-QQnnGT.js +0 -1
- package/dist/overlay/assets/astro-DHnp0xIo.js +0 -1
- package/dist/overlay/assets/blade-OPzGcV14.js +0 -1
- package/dist/overlay/assets/coffee-Dl27lzbd.js +0 -1
- package/dist/overlay/assets/cpp-Cj177cuW.js +0 -1
- package/dist/overlay/assets/glsl-CkUcVZNK.js +0 -1
- package/dist/overlay/assets/graphql-BLaPX4fU.js +0 -1
- package/dist/overlay/assets/haml-6FagfhCM.js +0 -1
- package/dist/overlay/assets/handlebars-Bd5Y4M6I.js +0 -1
- package/dist/overlay/assets/html-7XVNRwN7.js +0 -1
- package/dist/overlay/assets/html-derivative-BNxZ5Yf6.js +0 -1
- package/dist/overlay/assets/http-WC357zBG.js +0 -1
- package/dist/overlay/assets/index-BfFEknL3.js +0 -1
- package/dist/overlay/assets/jinja-WEhOU5ES.js +0 -1
- package/dist/overlay/assets/jison-c2JI40PB.js +0 -1
- package/dist/overlay/assets/julia-DcoDQokW.js +0 -1
- package/dist/overlay/assets/main.js +0 -224
- package/dist/overlay/assets/marko-DDi9qpQP.js +0 -1
- package/dist/overlay/assets/mdc-FI2x3BiY.js +0 -1
- package/dist/overlay/assets/php-BRU9zhoN.js +0 -1
- package/dist/overlay/assets/pug-CJWI-qSo.js +0 -1
- package/dist/overlay/assets/scss-B1FaCqwR.js +0 -1
- package/dist/overlay/assets/svelte-BjDUPxZ1.js +0 -1
- package/dist/overlay/assets/ts-tags-CZMzuZh-.js +0 -1
- package/dist/overlay/assets/vue-D-ba2-Rx.js +0 -1
- package/dist/overlay/assets/vue-html-Dn2ZoOSz.js +0 -1
- package/dist/overlay/assets/vue-vine-Jmfkm6lF.js +0 -1
- package/dist/overlay/assets/xml-C2J0sS9M.js +0 -1
- package/dist/overlay/manifest.json +0 -1000
- package/dist/run.cjs +0 -44693
- package/dist/sidecar.cjs +0 -7
- package/dist/sidecar.d.ts +0 -1
- package/dist/sidecar.js +0 -4
- /package/dist/{overlay/assets/andromeeda-BIpZ7gaU.js → ui/assets/andromeeda.js} +0 -0
- /package/dist/{overlay/assets/aurora-x-BwoVEUWZ.js → ui/assets/aurora-x.js} +0 -0
- /package/dist/{overlay/assets/ayu-dark-CxPZkpb2.js → ui/assets/ayu-dark.js} +0 -0
- /package/dist/{overlay/assets/c-eeMepfLm.js → ui/assets/c.js} +0 -0
- /package/dist/{overlay/assets/catppuccin-frappe-5udUqgsX.js → ui/assets/catppuccin-frappe.js} +0 -0
- /package/dist/{overlay/assets/catppuccin-latte-ufkS-HWv.js → ui/assets/catppuccin-latte.js} +0 -0
- /package/dist/{overlay/assets/catppuccin-macchiato-DzL2LPek.js → ui/assets/catppuccin-macchiato.js} +0 -0
- /package/dist/{overlay/assets/catppuccin-mocha-DDDDwkUT.js → ui/assets/catppuccin-mocha.js} +0 -0
- /package/dist/{overlay/assets/css-CECN5uSL.js → ui/assets/css.js} +0 -0
- /package/dist/{overlay/assets/dark-plus-pUHDTVV0.js → ui/assets/dark-plus.js} +0 -0
- /package/dist/{overlay/assets/dracula-soft-BKa-aqBv.js → ui/assets/dracula-soft.js} +0 -0
- /package/dist/{overlay/assets/dracula-BtZx2Kac.js → ui/assets/dracula.js} +0 -0
- /package/dist/{overlay/assets/everforest-dark-DMCBqXCK.js → ui/assets/everforest-dark.js} +0 -0
- /package/dist/{overlay/assets/everforest-light-BbXl82Em.js → ui/assets/everforest-light.js} +0 -0
- /package/dist/{overlay/assets/github-dark-default-BJPUVz4H.js → ui/assets/github-dark-default.js} +0 -0
- /package/dist/{overlay/assets/github-dark-dimmed-DUshB20C.js → ui/assets/github-dark-dimmed.js} +0 -0
- /package/dist/{overlay/assets/github-dark-high-contrast-D3aGCnF8.js → ui/assets/github-dark-high-contrast.js} +0 -0
- /package/dist/{overlay/assets/github-dark-DenFmJkN.js → ui/assets/github-dark.js} +0 -0
- /package/dist/{overlay/assets/github-light-default-D99KPAby.js → ui/assets/github-light-default.js} +0 -0
- /package/dist/{overlay/assets/github-light-high-contrast-BbmZE-Mp.js → ui/assets/github-light-high-contrast.js} +0 -0
- /package/dist/{overlay/assets/github-light-JYsPkUQd.js → ui/assets/github-light.js} +0 -0
- /package/dist/{overlay/assets/gruvbox-dark-hard-C2ND4cMr.js → ui/assets/gruvbox-dark-hard.js} +0 -0
- /package/dist/{overlay/assets/gruvbox-dark-medium-C8k4c8au.js → ui/assets/gruvbox-dark-medium.js} +0 -0
- /package/dist/{overlay/assets/gruvbox-dark-soft-xx9Q6FaG.js → ui/assets/gruvbox-dark-soft.js} +0 -0
- /package/dist/{overlay/assets/gruvbox-light-hard-BpUXv5in.js → ui/assets/gruvbox-light-hard.js} +0 -0
- /package/dist/{overlay/assets/gruvbox-light-medium-D3XFCoU1.js → ui/assets/gruvbox-light-medium.js} +0 -0
- /package/dist/{overlay/assets/gruvbox-light-soft-u7hpfz6Z.js → ui/assets/gruvbox-light-soft.js} +0 -0
- /package/dist/{overlay/assets/houston-BDYrDoDW.js → ui/assets/houston.js} +0 -0
- /package/dist/{overlay/assets/imba-CimUv-Uh.js → ui/assets/imba.js} +0 -0
- /package/dist/{overlay/assets/java-DY6VlHhP.js → ui/assets/java.js} +0 -0
- /package/dist/{overlay/assets/javascript-Dp1Jmi5H.js → ui/assets/javascript.js} +0 -0
- /package/dist/{overlay/assets/json-DxJze_jm.js → ui/assets/json.js} +0 -0
- /package/dist/{overlay/assets/json5-BT4Fjg39.js → ui/assets/json5.js} +0 -0
- /package/dist/{overlay/assets/jsonc-CHjZD8gR.js → ui/assets/jsonc.js} +0 -0
- /package/dist/{overlay/assets/jsonl-BGuvDmy9.js → ui/assets/jsonl.js} +0 -0
- /package/dist/{overlay/assets/jsx-BtKADgXT.js → ui/assets/jsx.js} +0 -0
- /package/dist/{overlay/assets/kanagawa-dragon-CiKur4Hl.js → ui/assets/kanagawa-dragon.js} +0 -0
- /package/dist/{overlay/assets/kanagawa-lotus-BKu-smKu.js → ui/assets/kanagawa-lotus.js} +0 -0
- /package/dist/{overlay/assets/kanagawa-wave-CQwozSzG.js → ui/assets/kanagawa-wave.js} +0 -0
- /package/dist/{overlay/assets/laserwave-6a00oqik.js → ui/assets/laserwave.js} +0 -0
- /package/dist/{overlay/assets/less-B1GLI2Di.js → ui/assets/less.js} +0 -0
- /package/dist/{overlay/assets/light-plus-CZuVqSLX.js → ui/assets/light-plus.js} +0 -0
- /package/dist/{overlay/assets/markdown-CrScaQ96.js → ui/assets/markdown.js} +0 -0
- /package/dist/{overlay/assets/material-theme-darker-CkRroheE.js → ui/assets/material-theme-darker.js} +0 -0
- /package/dist/{overlay/assets/material-theme-lighter-BUBw43Yz.js → ui/assets/material-theme-lighter.js} +0 -0
- /package/dist/{overlay/assets/material-theme-ocean-ClGX14Ja.js → ui/assets/material-theme-ocean.js} +0 -0
- /package/dist/{overlay/assets/material-theme-palenight-C1RVm8K1.js → ui/assets/material-theme-palenight.js} +0 -0
- /package/dist/{overlay/assets/material-theme-D6KBX41T.js → ui/assets/material-theme.js} +0 -0
- /package/dist/{overlay/assets/mdx-BOhZZUJ8.js → ui/assets/mdx.js} +0 -0
- /package/dist/{overlay/assets/min-dark-C7ak0t6c.js → ui/assets/min-dark.js} +0 -0
- /package/dist/{overlay/assets/min-light-CKFxVcPp.js → ui/assets/min-light.js} +0 -0
- /package/dist/{overlay/assets/monokai-C1KBYcO0.js → ui/assets/monokai.js} +0 -0
- /package/dist/{overlay/assets/night-owl-Bm2rzalh.js → ui/assets/night-owl.js} +0 -0
- /package/dist/{overlay/assets/nord-CC5OiUXg.js → ui/assets/nord.js} +0 -0
- /package/dist/{overlay/assets/one-dark-pro-DTA3VF0_.js → ui/assets/one-dark-pro.js} +0 -0
- /package/dist/{overlay/assets/one-light-D9sNaUtq.js → ui/assets/one-light.js} +0 -0
- /package/dist/{overlay/assets/plastic-CSTz3KZp.js → ui/assets/plastic.js} +0 -0
- /package/dist/{overlay/assets/poimandres-C-VADXHD.js → ui/assets/poimandres.js} +0 -0
- /package/dist/{overlay/assets/postcss-05aHdL-n.js → ui/assets/postcss.js} +0 -0
- /package/dist/{overlay/assets/python-BFNSHbwJ.js → ui/assets/python.js} +0 -0
- /package/dist/{overlay/assets/r-Bm0uF0U2.js → ui/assets/r.js} +0 -0
- /package/dist/{overlay/assets/red-7y8PH7HH.js → ui/assets/red.js} +0 -0
- /package/dist/{overlay/assets/regexp-BazyLpPg.js → ui/assets/regexp.js} +0 -0
- /package/dist/{overlay/assets/rose-pine-dawn-ClRRUdXX.js → ui/assets/rose-pine-dawn.js} +0 -0
- /package/dist/{overlay/assets/rose-pine-moon-ucNn3Gm8.js → ui/assets/rose-pine-moon.js} +0 -0
- /package/dist/{overlay/assets/rose-pine-Cr4kwgAY.js → ui/assets/rose-pine.js} +0 -0
- /package/dist/{overlay/assets/sass-DxHp5rTx.js → ui/assets/sass.js} +0 -0
- /package/dist/{overlay/assets/shellscript-InADTalH.js → ui/assets/shellscript.js} +0 -0
- /package/dist/{overlay/assets/slack-dark-i7wN4OET.js → ui/assets/slack-dark.js} +0 -0
- /package/dist/{overlay/assets/slack-ochin-ndHf0LoP.js → ui/assets/slack-ochin.js} +0 -0
- /package/dist/{overlay/assets/snazzy-light-BlSJXAu4.js → ui/assets/snazzy-light.js} +0 -0
- /package/dist/{overlay/assets/solarized-dark-UTmkh7lw.js → ui/assets/solarized-dark.js} +0 -0
- /package/dist/{overlay/assets/solarized-light-BheCkDPT.js → ui/assets/solarized-light.js} +0 -0
- /package/dist/{overlay/assets/sql-Cn_v3PB0.js → ui/assets/sql.js} +0 -0
- /package/dist/{overlay/assets/stylus-CyKEU1Ej.js → ui/assets/stylus.js} +0 -0
- /package/dist/{overlay/assets/synthwave-84-NU3C_KFZ.js → ui/assets/synthwave-84.js} +0 -0
- /package/dist/{overlay/assets/tokyo-night-DP4TmcQl.js → ui/assets/tokyo-night.js} +0 -0
- /package/dist/{overlay/assets/tsx-B8rCNbgL.js → ui/assets/tsx.js} +0 -0
- /package/dist/{overlay/assets/typescript-mg6ATTE8.js → ui/assets/typescript.js} +0 -0
- /package/dist/{overlay/assets/vesper-BckBta1U.js → ui/assets/vesper.js} +0 -0
- /package/dist/{overlay/assets/vitesse-black-BoGvW84i.js → ui/assets/vitesse-black.js} +0 -0
- /package/dist/{overlay/assets/vitesse-dark-Cym-eLtO.js → ui/assets/vitesse-dark.js} +0 -0
- /package/dist/{overlay/assets/vitesse-light-CcmG315c.js → ui/assets/vitesse-light.js} +0 -0
- /package/dist/{overlay/assets/wasm-BBXxrAl7.js → ui/assets/wasm.js} +0 -0
- /package/dist/{overlay/assets/wasm-DQxwEHae.js → ui/assets/wasm2.js} +0 -0
- /package/dist/{overlay/assets/wgsl-DY4iK1q1.js → ui/assets/wgsl.js} +0 -0
- /package/dist/{overlay/assets/wit-CQMQOlTg.js → ui/assets/wit.js} +0 -0
- /package/dist/{overlay/assets/yaml-DaO7k5B1.js → ui/assets/yaml.js} +0 -0
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
const LANGUAGE_EXTENSIONS = {
|
|
2
|
+
".java": "java",
|
|
3
|
+
".py": "python",
|
|
4
|
+
".js": "javascript",
|
|
5
|
+
".jsx": "javascript",
|
|
6
|
+
".ts": "javascript",
|
|
7
|
+
".tsx": "javascript",
|
|
8
|
+
".rb": "ruby",
|
|
9
|
+
".php": "php"
|
|
10
|
+
};
|
|
11
|
+
const LANGUAGE_MODULE_PATTERNS = [[/^(java\.|com\.|org\.)/, "java"]];
|
|
12
|
+
function detectLanguage(frame, platform) {
|
|
13
|
+
if (frame.filename) {
|
|
14
|
+
const ext = frame.filename.toLowerCase().match(/\.[^.]+$/)?.[0];
|
|
15
|
+
if (ext && LANGUAGE_EXTENSIONS[ext]) {
|
|
16
|
+
return LANGUAGE_EXTENSIONS[ext];
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
if (frame.module) {
|
|
20
|
+
for (const [pattern, language] of LANGUAGE_MODULE_PATTERNS) {
|
|
21
|
+
if (pattern.test(frame.module)) {
|
|
22
|
+
return language;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return platform || "unknown";
|
|
27
|
+
}
|
|
28
|
+
function formatFrameHeader(frame, frameIndex, platform) {
|
|
29
|
+
const language = detectLanguage(frame, platform);
|
|
30
|
+
switch (language) {
|
|
31
|
+
case "java": {
|
|
32
|
+
const className = frame.module || "UnknownClass";
|
|
33
|
+
const method = frame.function || "<unknown>";
|
|
34
|
+
const source = frame.filename || "Unknown Source";
|
|
35
|
+
const location = frame.lineNo ? `:${frame.lineNo}` : "";
|
|
36
|
+
return `at ${className}.${method}(${source}${location})`;
|
|
37
|
+
}
|
|
38
|
+
case "python": {
|
|
39
|
+
const file = frame.filename || frame.absPath || frame.module || "<unknown>";
|
|
40
|
+
const func = frame.function || "<module>";
|
|
41
|
+
const line = frame.lineNo ? `, line ${frame.lineNo}` : "";
|
|
42
|
+
return ` File "${file}"${line}, in ${func}`;
|
|
43
|
+
}
|
|
44
|
+
case "javascript": {
|
|
45
|
+
return `${[frame.filename, frame.lineNo, frame.colNo].filter((i) => !!i).join(":")}${frame.function ? ` (${frame.function})` : ""}`;
|
|
46
|
+
}
|
|
47
|
+
case "ruby": {
|
|
48
|
+
const file = frame.filename || frame.module || "<unknown>";
|
|
49
|
+
const func = frame.function ? ` \`${frame.function}\`` : "";
|
|
50
|
+
const line = frame.lineNo ? `:${frame.lineNo}:in` : "";
|
|
51
|
+
return ` from ${file}${line}${func}`;
|
|
52
|
+
}
|
|
53
|
+
case "php": {
|
|
54
|
+
const file = frame.filename || "<unknown>";
|
|
55
|
+
const line = frame.lineNo ? `(${frame.lineNo})` : "";
|
|
56
|
+
const func = frame.function || "<unknown>";
|
|
57
|
+
const prefix = "";
|
|
58
|
+
return `${prefix}${file}${line}: ${func}()`;
|
|
59
|
+
}
|
|
60
|
+
default: {
|
|
61
|
+
const func = frame.function || "<unknown>";
|
|
62
|
+
const location = frame.filename || frame.module || "<unknown>";
|
|
63
|
+
const line = frame.lineNo ? `:${frame.lineNo}` : "";
|
|
64
|
+
const col = frame.colNo != null ? `:${frame.colNo}` : "";
|
|
65
|
+
return ` at ${func} (${location}${line}${col})`;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function formatEventOutput(event) {
|
|
70
|
+
let output = "";
|
|
71
|
+
const messageEntry = event.entries.find((e) => e.type === "message");
|
|
72
|
+
const exceptionEntry = event.entries.find((e) => e.type === "exception");
|
|
73
|
+
const threadsEntry = event.entries.find((e) => e.type === "threads");
|
|
74
|
+
const requestEntry = event.entries.find((e) => e.type === "request");
|
|
75
|
+
if (messageEntry) {
|
|
76
|
+
output += formatMessageInterfaceOutput(event, messageEntry.data);
|
|
77
|
+
}
|
|
78
|
+
if (exceptionEntry) {
|
|
79
|
+
output += formatExceptionInterfaceOutput(event, exceptionEntry.data);
|
|
80
|
+
} else if (threadsEntry) {
|
|
81
|
+
output += formatThreadsInterfaceOutput(event, threadsEntry.data);
|
|
82
|
+
}
|
|
83
|
+
if (requestEntry) {
|
|
84
|
+
output += formatRequestInterfaceOutput(event, requestEntry.data);
|
|
85
|
+
}
|
|
86
|
+
output += formatTags(event.tags);
|
|
87
|
+
output += formatContexts(event.contexts);
|
|
88
|
+
return output;
|
|
89
|
+
}
|
|
90
|
+
function renderInlineContext(frame) {
|
|
91
|
+
if (!frame.context?.length || !frame.lineNo) {
|
|
92
|
+
return "";
|
|
93
|
+
}
|
|
94
|
+
const contextLine = frame.context.find(([lineNo]) => lineNo === frame.lineNo);
|
|
95
|
+
return contextLine ? `
|
|
96
|
+
${contextLine[1]}` : "";
|
|
97
|
+
}
|
|
98
|
+
function renderEnhancedFrame(frame, event) {
|
|
99
|
+
const parts = [];
|
|
100
|
+
parts.push("**Most Relevant Frame:**");
|
|
101
|
+
parts.push("─────────────────────");
|
|
102
|
+
parts.push(formatFrameHeader(frame, void 0, event.platform));
|
|
103
|
+
if (frame.context?.length) {
|
|
104
|
+
const contextLines = renderContextLines(frame);
|
|
105
|
+
if (contextLines) {
|
|
106
|
+
parts.push("");
|
|
107
|
+
parts.push(contextLines);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
if (frame.vars && Object.keys(frame.vars).length > 0) {
|
|
111
|
+
parts.push("");
|
|
112
|
+
parts.push(renderVariablesTable(frame.vars));
|
|
113
|
+
}
|
|
114
|
+
return parts.join("\n");
|
|
115
|
+
}
|
|
116
|
+
function formatExceptionInterfaceOutput(event, data) {
|
|
117
|
+
const parts = [];
|
|
118
|
+
const exceptions = data.values || (data.value ? [data.value] : []);
|
|
119
|
+
if (exceptions.length === 0) {
|
|
120
|
+
return "";
|
|
121
|
+
}
|
|
122
|
+
const isChained = exceptions.length > 1;
|
|
123
|
+
[...exceptions].reverse().forEach((exception, index) => {
|
|
124
|
+
if (!exception) return;
|
|
125
|
+
if (isChained && index > 0) {
|
|
126
|
+
parts.push("");
|
|
127
|
+
parts.push(getExceptionChainMessage(event.platform || null, index, exceptions.length));
|
|
128
|
+
parts.push("");
|
|
129
|
+
}
|
|
130
|
+
const exceptionTitle = `${exception.type}${exception.value ? `: ${exception.value}` : ""}`;
|
|
131
|
+
parts.push(index === 0 ? "### Error" : `### ${exceptionTitle}`);
|
|
132
|
+
parts.push("");
|
|
133
|
+
if (index === 0) {
|
|
134
|
+
parts.push("```");
|
|
135
|
+
parts.push(exceptionTitle);
|
|
136
|
+
parts.push("```");
|
|
137
|
+
parts.push("");
|
|
138
|
+
}
|
|
139
|
+
if (!exception.stacktrace || !exception.stacktrace.frames) {
|
|
140
|
+
parts.push("**Stacktrace:**");
|
|
141
|
+
parts.push("```");
|
|
142
|
+
parts.push("No stacktrace available");
|
|
143
|
+
parts.push("```");
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
const frames = exception.stacktrace.frames;
|
|
147
|
+
if (index === 0) {
|
|
148
|
+
const firstInAppFrame = findFirstInAppFrame(frames);
|
|
149
|
+
if (firstInAppFrame && (firstInAppFrame.context?.length || firstInAppFrame.vars)) {
|
|
150
|
+
parts.push(renderEnhancedFrame(firstInAppFrame, event));
|
|
151
|
+
parts.push("");
|
|
152
|
+
parts.push("**Full Stacktrace:**");
|
|
153
|
+
parts.push("────────────────");
|
|
154
|
+
} else {
|
|
155
|
+
parts.push("**Stacktrace:**");
|
|
156
|
+
}
|
|
157
|
+
} else {
|
|
158
|
+
parts.push("**Stacktrace:**");
|
|
159
|
+
}
|
|
160
|
+
parts.push("```");
|
|
161
|
+
parts.push(
|
|
162
|
+
frames.map((frame) => {
|
|
163
|
+
const header = formatFrameHeader(frame, void 0, event.platform);
|
|
164
|
+
const context = renderInlineContext(frame);
|
|
165
|
+
return `${header}${context}`;
|
|
166
|
+
}).join("\n")
|
|
167
|
+
);
|
|
168
|
+
parts.push("```");
|
|
169
|
+
});
|
|
170
|
+
parts.push("");
|
|
171
|
+
parts.push("");
|
|
172
|
+
return parts.join("\n");
|
|
173
|
+
}
|
|
174
|
+
function getExceptionChainMessage(platform, index, _totalExceptions) {
|
|
175
|
+
const defaultMessage = "**During handling of the above exception, another exception occurred:**";
|
|
176
|
+
if (!platform) {
|
|
177
|
+
return defaultMessage;
|
|
178
|
+
}
|
|
179
|
+
switch (platform.toLowerCase()) {
|
|
180
|
+
case "python":
|
|
181
|
+
return "**During handling of the above exception, another exception occurred:**";
|
|
182
|
+
case "java":
|
|
183
|
+
return "**Caused by:**";
|
|
184
|
+
case "csharp":
|
|
185
|
+
case "dotnet":
|
|
186
|
+
return "**---> Inner Exception:**";
|
|
187
|
+
case "ruby":
|
|
188
|
+
return "**Caused by:**";
|
|
189
|
+
case "go":
|
|
190
|
+
return "**Wrapped error:**";
|
|
191
|
+
case "rust":
|
|
192
|
+
return `**Caused by (${index}):**`;
|
|
193
|
+
default:
|
|
194
|
+
return defaultMessage;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
function formatRequestInterfaceOutput(_event, data) {
|
|
198
|
+
if (!data.method || !data.url) {
|
|
199
|
+
return "";
|
|
200
|
+
}
|
|
201
|
+
return `### HTTP Request
|
|
202
|
+
|
|
203
|
+
**Method:** ${data.method}
|
|
204
|
+
**URL:** ${data.url}
|
|
205
|
+
|
|
206
|
+
`;
|
|
207
|
+
}
|
|
208
|
+
function formatMessageInterfaceOutput(_event, data) {
|
|
209
|
+
if (!data.formatted && !data.message) {
|
|
210
|
+
return "";
|
|
211
|
+
}
|
|
212
|
+
const message = data.formatted || data.message || "";
|
|
213
|
+
return `### Error
|
|
214
|
+
|
|
215
|
+
${"```"}
|
|
216
|
+
${message}
|
|
217
|
+
${"```"}
|
|
218
|
+
|
|
219
|
+
`;
|
|
220
|
+
}
|
|
221
|
+
function formatThreadsInterfaceOutput(event, data) {
|
|
222
|
+
if (!data.values || data.values.length === 0) {
|
|
223
|
+
return "";
|
|
224
|
+
}
|
|
225
|
+
const crashedThread = data.values.find((t) => t.crashed);
|
|
226
|
+
if (!crashedThread?.stacktrace?.frames) {
|
|
227
|
+
return "";
|
|
228
|
+
}
|
|
229
|
+
const parts = [];
|
|
230
|
+
if (crashedThread.name) {
|
|
231
|
+
parts.push(`**Thread** (${crashedThread.name})`);
|
|
232
|
+
parts.push("");
|
|
233
|
+
}
|
|
234
|
+
const frames = crashedThread.stacktrace.frames;
|
|
235
|
+
const firstInAppFrame = findFirstInAppFrame(frames);
|
|
236
|
+
if (firstInAppFrame && (firstInAppFrame.context?.length || firstInAppFrame.vars)) {
|
|
237
|
+
parts.push(renderEnhancedFrame(firstInAppFrame, event));
|
|
238
|
+
parts.push("");
|
|
239
|
+
parts.push("**Full Stacktrace:**");
|
|
240
|
+
parts.push("────────────────");
|
|
241
|
+
} else {
|
|
242
|
+
parts.push("**Stacktrace:**");
|
|
243
|
+
}
|
|
244
|
+
parts.push("```");
|
|
245
|
+
parts.push(
|
|
246
|
+
frames.map((frame) => {
|
|
247
|
+
const header = formatFrameHeader(frame, void 0, event.platform);
|
|
248
|
+
const context = renderInlineContext(frame);
|
|
249
|
+
return `${header}${context}`;
|
|
250
|
+
}).join("\n")
|
|
251
|
+
);
|
|
252
|
+
parts.push("```");
|
|
253
|
+
parts.push("");
|
|
254
|
+
return parts.join("\n");
|
|
255
|
+
}
|
|
256
|
+
function renderContextLines(frame, contextSize = 3) {
|
|
257
|
+
if (!frame.context || frame.context.length === 0 || !frame.lineNo) {
|
|
258
|
+
return "";
|
|
259
|
+
}
|
|
260
|
+
const lines = [];
|
|
261
|
+
const errorLine = frame.lineNo;
|
|
262
|
+
const maxLineNoWidth = Math.max(...frame.context.map(([lineNo]) => lineNo.toString().length));
|
|
263
|
+
for (const [lineNo, code] of frame.context) {
|
|
264
|
+
const isErrorLine = lineNo === errorLine;
|
|
265
|
+
const lineNoStr = lineNo.toString().padStart(maxLineNoWidth, " ");
|
|
266
|
+
if (Math.abs(lineNo - errorLine) <= contextSize) {
|
|
267
|
+
if (isErrorLine) {
|
|
268
|
+
lines.push(` → ${lineNoStr} │ ${code}`);
|
|
269
|
+
} else {
|
|
270
|
+
lines.push(` ${lineNoStr} │ ${code}`);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
return lines.join("\n");
|
|
275
|
+
}
|
|
276
|
+
function formatVariableValue(value, maxLength = 80) {
|
|
277
|
+
try {
|
|
278
|
+
if (typeof value === "string") {
|
|
279
|
+
return `"${value}"`;
|
|
280
|
+
}
|
|
281
|
+
if (value === null) {
|
|
282
|
+
return "null";
|
|
283
|
+
}
|
|
284
|
+
if (value === void 0) {
|
|
285
|
+
return "undefined";
|
|
286
|
+
}
|
|
287
|
+
if (typeof value === "object") {
|
|
288
|
+
const stringified = JSON.stringify(value);
|
|
289
|
+
if (stringified.length > maxLength) {
|
|
290
|
+
const truncateAt = maxLength - 6;
|
|
291
|
+
let truncated = stringified.substring(0, truncateAt);
|
|
292
|
+
const lastComma = truncated.lastIndexOf(",");
|
|
293
|
+
if (lastComma > 0) {
|
|
294
|
+
truncated = truncated.substring(0, lastComma);
|
|
295
|
+
}
|
|
296
|
+
if (Array.isArray(value)) {
|
|
297
|
+
return `${truncated}, ...]`;
|
|
298
|
+
}
|
|
299
|
+
return `${truncated}, ...}`;
|
|
300
|
+
}
|
|
301
|
+
return stringified;
|
|
302
|
+
}
|
|
303
|
+
return String(value);
|
|
304
|
+
} catch {
|
|
305
|
+
return `<${typeof value}>`;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
function renderVariablesTable(vars) {
|
|
309
|
+
const entries = Object.entries(vars);
|
|
310
|
+
if (entries.length === 0) {
|
|
311
|
+
return "";
|
|
312
|
+
}
|
|
313
|
+
const lines = ["Local Variables:"];
|
|
314
|
+
const lastIndex = entries.length - 1;
|
|
315
|
+
entries.forEach(([key, value], index) => {
|
|
316
|
+
const prefix = index === lastIndex ? "└─" : "├─";
|
|
317
|
+
const valueStr = formatVariableValue(value);
|
|
318
|
+
lines.push(`${prefix} ${key}: ${valueStr}`);
|
|
319
|
+
});
|
|
320
|
+
return lines.join("\n");
|
|
321
|
+
}
|
|
322
|
+
function findFirstInAppFrame(frames) {
|
|
323
|
+
for (let i = frames.length - 1; i >= 0; i--) {
|
|
324
|
+
if (frames[i].inApp === true) {
|
|
325
|
+
return frames[i];
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
return void 0;
|
|
329
|
+
}
|
|
330
|
+
function formatTags(tags) {
|
|
331
|
+
if (!tags || tags.length === 0) {
|
|
332
|
+
return "";
|
|
333
|
+
}
|
|
334
|
+
return `### Tags
|
|
335
|
+
|
|
336
|
+
${tags.map((tag) => `**${tag.key}**: ${tag.value}`).join("\n")}
|
|
337
|
+
|
|
338
|
+
`;
|
|
339
|
+
}
|
|
340
|
+
function formatContexts(contexts) {
|
|
341
|
+
if (!contexts || Object.keys(contexts).length === 0) {
|
|
342
|
+
return "";
|
|
343
|
+
}
|
|
344
|
+
return `### Additional Context
|
|
345
|
+
|
|
346
|
+
These are additional context provided by the user when they're instrumenting their application.
|
|
347
|
+
|
|
348
|
+
${Object.entries(
|
|
349
|
+
contexts
|
|
350
|
+
).map(
|
|
351
|
+
([name, data]) => `**${name}**
|
|
352
|
+
${Object.entries(data).filter(([key, _]) => key !== "type").map(([key, value]) => {
|
|
353
|
+
return `${key}: ${JSON.stringify(value, void 0, 2)}`;
|
|
354
|
+
}).join("\n")}`
|
|
355
|
+
).join("\n\n")}
|
|
356
|
+
|
|
357
|
+
`;
|
|
358
|
+
}
|
|
359
|
+
export {
|
|
360
|
+
formatEventOutput
|
|
361
|
+
};
|
|
362
|
+
//# sourceMappingURL=event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event.js","sources":["../../../../src/server/formatters/md/event.ts"],"sourcesContent":["/**\n * LLM response formatting utilities for Sentry data.\n *\n * Converts Sentry API responses into structured markdown format optimized\n * for LLM consumption. Handles stacktraces, event details, issue summaries,\n * and contextual information with consistent formatting patterns.\n */\nimport type { z } from \"zod\";\nimport type {\n ErrorEntrySchema,\n EventSchema,\n FrameInterface,\n MessageEntrySchema,\n RequestEntrySchema,\n ThreadsEntrySchema,\n} from \"../schema.ts\";\n\nexport type Event = z.infer<typeof EventSchema>;\n\n// Language detection mappings\nconst LANGUAGE_EXTENSIONS: Record<string, string> = {\n \".java\": \"java\",\n \".py\": \"python\",\n \".js\": \"javascript\",\n \".jsx\": \"javascript\",\n \".ts\": \"javascript\",\n \".tsx\": \"javascript\",\n \".rb\": \"ruby\",\n \".php\": \"php\",\n};\n\nconst LANGUAGE_MODULE_PATTERNS: Array<[RegExp, string]> = [[/^(java\\.|com\\.|org\\.)/, \"java\"]];\n\n/**\n * Detects the programming language of a stack frame based on the file extension.\n * Falls back to the platform parameter if no filename is available or extension is unrecognized.\n *\n * @param frame - The stack frame containing file and location information\n * @param platform - Optional platform hint to use as fallback\n * @returns The detected language or platform fallback or \"unknown\"\n */\nfunction detectLanguage(frame: z.infer<typeof FrameInterface>, platform?: string | null): string {\n // Check filename extensions\n if (frame.filename) {\n const ext = frame.filename.toLowerCase().match(/\\.[^.]+$/)?.[0];\n if (ext && LANGUAGE_EXTENSIONS[ext]) {\n return LANGUAGE_EXTENSIONS[ext];\n }\n }\n\n // Check module patterns\n if (frame.module) {\n for (const [pattern, language] of LANGUAGE_MODULE_PATTERNS) {\n if (pattern.test(frame.module)) {\n return language;\n }\n }\n }\n\n // Fallback to platform or unknown\n return platform || \"unknown\";\n}\n\n/**\n * Formats a stack frame into a language-specific string representation.\n * Different languages have different conventions for displaying stack traces.\n *\n * @param frame - The stack frame to format\n * @param frameIndex - Optional frame index for languages that display frame numbers\n * @param platform - Optional platform hint for language detection fallback\n * @returns Formatted stack frame string\n */\nfunction formatFrameHeader(frame: z.infer<typeof FrameInterface>, frameIndex?: number, platform?: string | null) {\n const language = detectLanguage(frame, platform);\n\n switch (language) {\n case \"java\": {\n // at com.example.ClassName.methodName(FileName.java:123)\n const className = frame.module || \"UnknownClass\";\n const method = frame.function || \"<unknown>\";\n const source = frame.filename || \"Unknown Source\";\n const location = frame.lineNo ? `:${frame.lineNo}` : \"\";\n return `at ${className}.${method}(${source}${location})`;\n }\n\n case \"python\": {\n // File \"/path/to/file.py\", line 42, in function_name\n const file = frame.filename || frame.absPath || frame.module || \"<unknown>\";\n const func = frame.function || \"<module>\";\n const line = frame.lineNo ? `, line ${frame.lineNo}` : \"\";\n return ` File \"${file}\"${line}, in ${func}`;\n }\n\n case \"javascript\": {\n // Original compact format: filename:line:col (function)\n // This preserves backward compatibility\n return `${[frame.filename, frame.lineNo, frame.colNo]\n .filter(i => !!i)\n .join(\":\")}${frame.function ? ` (${frame.function})` : \"\"}`;\n }\n\n case \"ruby\": {\n // from /path/to/file.rb:42:in `method_name'\n const file = frame.filename || frame.module || \"<unknown>\";\n const func = frame.function ? ` \\`${frame.function}\\`` : \"\";\n const line = frame.lineNo ? `:${frame.lineNo}:in` : \"\";\n return ` from ${file}${line}${func}`;\n }\n\n case \"php\": {\n // #0 /path/to/file.php(42): functionName()\n const file = frame.filename || \"<unknown>\";\n const line = frame.lineNo ? `(${frame.lineNo})` : \"\";\n const func = frame.function || \"<unknown>\";\n const prefix = frameIndex !== undefined ? `#${frameIndex} ` : \"\";\n return `${prefix}${file}${line}: ${func}()`;\n }\n\n default: {\n // Generic format for unknown languages\n const func = frame.function || \"<unknown>\";\n const location = frame.filename || frame.module || \"<unknown>\";\n const line = frame.lineNo ? `:${frame.lineNo}` : \"\";\n const col = frame.colNo != null ? `:${frame.colNo}` : \"\";\n return ` at ${func} (${location}${line}${col})`;\n }\n }\n}\n\n/**\n * Formats a Sentry event into a structured markdown output.\n * Includes error messages, stack traces, request info, and contextual data.\n *\n * @param event - The Sentry event to format\n * @returns Formatted markdown string\n */\nexport function formatEventOutput(event: Event) {\n let output = \"\";\n\n // Look for the primary error information\n const messageEntry = event.entries.find(e => e.type === \"message\");\n const exceptionEntry = event.entries.find(e => e.type === \"exception\");\n const threadsEntry = event.entries.find(e => e.type === \"threads\");\n const requestEntry = event.entries.find(e => e.type === \"request\");\n\n // Error message (if present)\n if (messageEntry) {\n output += formatMessageInterfaceOutput(event, messageEntry.data as z.infer<typeof MessageEntrySchema>);\n }\n\n // Stack trace (from exception or threads)\n if (exceptionEntry) {\n output += formatExceptionInterfaceOutput(event, exceptionEntry.data as z.infer<typeof ErrorEntrySchema>);\n } else if (threadsEntry) {\n output += formatThreadsInterfaceOutput(event, threadsEntry.data as z.infer<typeof ThreadsEntrySchema>);\n }\n\n // Request info (if HTTP error)\n if (requestEntry) {\n output += formatRequestInterfaceOutput(event, requestEntry.data as z.infer<typeof RequestEntrySchema>);\n }\n\n output += formatTags(event.tags);\n output += formatContexts(event.contexts);\n return output;\n}\n\n/**\n * Extracts the context line matching the frame's line number for inline display.\n * This is used in the full stacktrace view to show the actual line of code\n * that caused the error inline with the stack frame.\n *\n * @param frame - The stack frame containing context lines\n * @returns The line of code at the frame's line number, or empty string if not available\n */\nfunction renderInlineContext(frame: z.infer<typeof FrameInterface>): string {\n if (!frame.context?.length || !frame.lineNo) {\n return \"\";\n }\n\n const contextLine = frame.context.find(([lineNo]) => lineNo === frame.lineNo);\n return contextLine ? `\\n${contextLine[1]}` : \"\";\n}\n\n/**\n * Renders an enhanced view of a stack frame with context lines and variables.\n * Used for the \"Most Relevant Frame\" section to provide detailed information\n * about the most relevant application frame where the error occurred.\n *\n * @param frame - The stack frame to render with enhanced information\n * @param event - The Sentry event containing platform information for language detection\n * @returns Formatted string with frame header, context lines, and variables table\n */\nfunction renderEnhancedFrame(frame: z.infer<typeof FrameInterface>, event: Event): string {\n const parts: string[] = [];\n\n parts.push(\"**Most Relevant Frame:**\");\n parts.push(\"─────────────────────\");\n parts.push(formatFrameHeader(frame, undefined, event.platform));\n\n // Add context lines if available\n if (frame.context?.length) {\n const contextLines = renderContextLines(frame);\n if (contextLines) {\n parts.push(\"\");\n parts.push(contextLines);\n }\n }\n\n // Add variables table if available\n if (frame.vars && Object.keys(frame.vars).length > 0) {\n parts.push(\"\");\n parts.push(renderVariablesTable(frame.vars));\n }\n\n return parts.join(\"\\n\");\n}\n\nfunction formatExceptionInterfaceOutput(event: Event, data: z.infer<typeof ErrorEntrySchema>) {\n const parts: string[] = [];\n\n // Handle both single exception (value) and chained exceptions (values)\n const exceptions = data.values || (data.value ? [data.value] : []);\n\n if (exceptions.length === 0) {\n return \"\";\n }\n\n // For chained exceptions, they are typically ordered from innermost to outermost\n // We'll render them in reverse order (outermost first) to match how they occurred\n const isChained = exceptions.length > 1;\n\n // Create a copy before reversing to avoid mutating the original array\n [...exceptions].reverse().forEach((exception, index) => {\n if (!exception) return;\n\n // Add language-specific chain indicator for multiple exceptions\n if (isChained && index > 0) {\n parts.push(\"\");\n parts.push(getExceptionChainMessage(event.platform || null, index, exceptions.length));\n parts.push(\"\");\n }\n\n // Use the actual exception type and value as the heading\n const exceptionTitle = `${exception.type}${exception.value ? `: ${exception.value}` : \"\"}`;\n\n parts.push(index === 0 ? \"### Error\" : `### ${exceptionTitle}`);\n parts.push(\"\");\n\n // Add the error details in a code block for the first exception\n // to maintain backward compatibility\n if (index === 0) {\n parts.push(\"```\");\n parts.push(exceptionTitle);\n parts.push(\"```\");\n parts.push(\"\");\n }\n\n if (!exception.stacktrace || !exception.stacktrace.frames) {\n parts.push(\"**Stacktrace:**\");\n parts.push(\"```\");\n parts.push(\"No stacktrace available\");\n parts.push(\"```\");\n return;\n }\n\n const frames = exception.stacktrace.frames;\n\n // Only show enhanced frame for the first (outermost) exception to avoid overwhelming output\n if (index === 0) {\n const firstInAppFrame = findFirstInAppFrame(frames);\n if (firstInAppFrame && (firstInAppFrame.context?.length || firstInAppFrame.vars)) {\n parts.push(renderEnhancedFrame(firstInAppFrame, event));\n parts.push(\"\");\n parts.push(\"**Full Stacktrace:**\");\n parts.push(\"────────────────\");\n } else {\n parts.push(\"**Stacktrace:**\");\n }\n } else {\n parts.push(\"**Stacktrace:**\");\n }\n\n parts.push(\"```\");\n parts.push(\n frames\n .map(frame => {\n const header = formatFrameHeader(frame, undefined, event.platform);\n const context = renderInlineContext(frame);\n return `${header}${context}`;\n })\n .join(\"\\n\"),\n );\n parts.push(\"```\");\n });\n\n parts.push(\"\");\n parts.push(\"\");\n\n return parts.join(\"\\n\");\n}\n\n/**\n * Get the appropriate exception chain message based on the platform\n */\nfunction getExceptionChainMessage(platform: string | null, index: number, _totalExceptions: number): string {\n // Default message for unknown platforms\n const defaultMessage = \"**During handling of the above exception, another exception occurred:**\";\n\n if (!platform) {\n return defaultMessage;\n }\n\n switch (platform.toLowerCase()) {\n case \"python\":\n // Python has two distinct messages, but without additional metadata\n // we default to the implicit chaining message\n return \"**During handling of the above exception, another exception occurred:**\";\n\n case \"java\":\n return \"**Caused by:**\";\n\n case \"csharp\":\n case \"dotnet\":\n return \"**---> Inner Exception:**\";\n\n case \"ruby\":\n return \"**Caused by:**\";\n\n case \"go\":\n return \"**Wrapped error:**\";\n\n case \"rust\":\n return `**Caused by (${index}):**`;\n\n default:\n return defaultMessage;\n }\n}\n\nfunction formatRequestInterfaceOutput(_event: Event, data: z.infer<typeof RequestEntrySchema>) {\n if (!data.method || !data.url) {\n return \"\";\n }\n return `### HTTP Request\\n\\n**Method:** ${data.method}\\n**URL:** ${data.url}\\n\\n`;\n}\n\nfunction formatMessageInterfaceOutput(_event: Event, data: z.infer<typeof MessageEntrySchema>) {\n if (!data.formatted && !data.message) {\n return \"\";\n }\n const message = data.formatted || data.message || \"\";\n return `### Error\\n\\n${\"```\"}\\n${message}\\n${\"```\"}\\n\\n`;\n}\n\nfunction formatThreadsInterfaceOutput(event: Event, data: z.infer<typeof ThreadsEntrySchema>) {\n if (!data.values || data.values.length === 0) {\n return \"\";\n }\n\n // Find the crashed thread only\n const crashedThread = data.values.find(t => t.crashed);\n\n if (!crashedThread?.stacktrace?.frames) {\n return \"\";\n }\n\n const parts: string[] = [];\n\n // Include thread name if available\n if (crashedThread.name) {\n parts.push(`**Thread** (${crashedThread.name})`);\n parts.push(\"\");\n }\n\n const frames = crashedThread.stacktrace.frames;\n\n // Find and format the first in-app frame with enhanced view\n const firstInAppFrame = findFirstInAppFrame(frames);\n if (firstInAppFrame && (firstInAppFrame.context?.length || firstInAppFrame.vars)) {\n parts.push(renderEnhancedFrame(firstInAppFrame, event));\n parts.push(\"\");\n parts.push(\"**Full Stacktrace:**\");\n parts.push(\"────────────────\");\n } else {\n parts.push(\"**Stacktrace:**\");\n }\n\n parts.push(\"```\");\n parts.push(\n frames\n .map(frame => {\n const header = formatFrameHeader(frame, undefined, event.platform);\n const context = renderInlineContext(frame);\n return `${header}${context}`;\n })\n .join(\"\\n\"),\n );\n parts.push(\"```\");\n parts.push(\"\");\n\n return parts.join(\"\\n\");\n}\n\n/**\n * Renders surrounding source code context for a stack frame.\n * Shows a window of code lines around the error line with visual indicators.\n *\n * @param frame - The stack frame containing context lines\n * @param contextSize - Number of lines to show before and after the error line (default: 3)\n * @returns Formatted context lines with line numbers and arrow indicator for the error line\n */\nfunction renderContextLines(frame: z.infer<typeof FrameInterface>, contextSize = 3): string {\n if (!frame.context || frame.context.length === 0 || !frame.lineNo) {\n return \"\";\n }\n\n const lines: string[] = [];\n const errorLine = frame.lineNo;\n const maxLineNoWidth = Math.max(...frame.context.map(([lineNo]) => lineNo.toString().length));\n\n for (const [lineNo, code] of frame.context) {\n const isErrorLine = lineNo === errorLine;\n const lineNoStr = lineNo.toString().padStart(maxLineNoWidth, \" \");\n\n if (Math.abs(lineNo - errorLine) <= contextSize) {\n if (isErrorLine) {\n lines.push(` → ${lineNoStr} │ ${code}`);\n } else {\n lines.push(` ${lineNoStr} │ ${code}`);\n }\n }\n }\n\n return lines.join(\"\\n\");\n}\n\n/**\n * Formats a variable value for display in the variables table.\n * Handles different types appropriately and safely, converting complex objects\n * to readable representations and handling edge cases like circular references.\n *\n * @param value - The variable value to format (can be any type)\n * @param maxLength - Maximum length for stringified objects/arrays (default: 80)\n * @returns markdown string representation of the value\n */\nfunction formatVariableValue(value: unknown, maxLength = 80): string {\n try {\n if (typeof value === \"string\") {\n return `\"${value}\"`;\n }\n if (value === null) {\n return \"null\";\n }\n if (value === undefined) {\n return \"undefined\";\n }\n if (typeof value === \"object\") {\n const stringified = JSON.stringify(value);\n if (stringified.length > maxLength) {\n // Leave room for \", ...]\" or \", ...}\"\n const truncateAt = maxLength - 6;\n let truncated = stringified.substring(0, truncateAt);\n\n // Find the last complete element by looking for the last comma\n const lastComma = truncated.lastIndexOf(\",\");\n if (lastComma > 0) {\n truncated = truncated.substring(0, lastComma);\n }\n\n // Add the appropriate ending\n if (Array.isArray(value)) {\n return `${truncated}, ...]`;\n }\n return `${truncated}, ...}`;\n }\n return stringified;\n }\n return String(value);\n } catch {\n // Handle circular references or other stringify errors\n return `<${typeof value}>`;\n }\n}\n\n/**\n * Renders a table of local variables in a tree-like format.\n * Uses box-drawing characters to create a visual hierarchy of variables\n * and their values at the point where the error occurred.\n *\n * @param vars - Object containing variable names as keys and their values\n * @returns Formatted variables table with tree-style prefix characters\n */\nfunction renderVariablesTable(vars: Record<string, unknown>): string {\n const entries = Object.entries(vars);\n if (entries.length === 0) {\n return \"\";\n }\n\n const lines: string[] = [\"Local Variables:\"];\n const lastIndex = entries.length - 1;\n\n entries.forEach(([key, value], index) => {\n const prefix = index === lastIndex ? \"└─\" : \"├─\";\n const valueStr = formatVariableValue(value);\n lines.push(`${prefix} ${key}: ${valueStr}`);\n });\n\n return lines.join(\"\\n\");\n}\n\n/**\n * Finds the first application frame (in_app) in a stack trace.\n * Searches from the bottom of the stack (oldest frame) to find the first\n * frame that belongs to the user's application code rather than libraries.\n *\n * @param frames - Array of stack frames, typically in reverse chronological order\n * @returns The first in-app frame found, or undefined if none exist\n */\nfunction findFirstInAppFrame(frames: z.infer<typeof FrameInterface>[]): z.infer<typeof FrameInterface> | undefined {\n // Frames are usually in reverse order (most recent first)\n // We want the first in-app frame from the bottom\n for (let i = frames.length - 1; i >= 0; i--) {\n if (frames[i].inApp === true) {\n return frames[i];\n }\n }\n return undefined;\n}\n\nfunction formatTags(tags: z.infer<typeof EventSchema>[\"tags\"]) {\n if (!tags || tags.length === 0) {\n return \"\";\n }\n return `### Tags\\n\\n${tags.map(tag => `**${tag.key}**: ${tag.value}`).join(\"\\n\")}\\n\\n`;\n}\n\nfunction formatContexts(contexts: z.infer<typeof EventSchema>[\"contexts\"]) {\n if (!contexts || Object.keys(contexts).length === 0) {\n return \"\";\n }\n return `### Additional Context\\n\\nThese are additional context provided by the user when they're instrumenting their application.\\n\\n${Object.entries(\n contexts,\n )\n .map(\n ([name, data]) =>\n `**${name}**\\n${Object.entries(data)\n .filter(([key, _]) => key !== \"type\")\n .map(([key, value]) => {\n return `${key}: ${JSON.stringify(value, undefined, 2)}`;\n })\n .join(\"\\n\")}`,\n )\n .join(\"\\n\\n\")}\\n\\n`;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { isTraceEvent, isLogEvent, isErrorEvent } from "../../parser/helpers.js";
|
|
2
|
+
import { formatError } from "./errors.js";
|
|
3
|
+
import { formatLog } from "./logs.js";
|
|
4
|
+
import { formatTrace } from "./traces.js";
|
|
5
|
+
const formatters = {
|
|
6
|
+
event: { typeGuard: isErrorEvent, format: formatError },
|
|
7
|
+
log: { typeGuard: isLogEvent, format: formatLog },
|
|
8
|
+
transaction: { typeGuard: isTraceEvent, format: formatTrace }
|
|
9
|
+
};
|
|
10
|
+
export {
|
|
11
|
+
formatters
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/server/formatters/md/index.ts"],"sourcesContent":["import { isErrorEvent, isLogEvent, isTraceEvent } from \"../../parser/helpers.ts\";\nimport type { FormatterRegistry } from \"../types.ts\";\nimport { formatError } from \"./errors.ts\";\nimport { formatLog } from \"./logs.ts\";\nimport { formatTrace } from \"./traces.ts\";\n\nexport const formatters: FormatterRegistry = {\n event: { typeGuard: isErrorEvent, format: formatError },\n log: { typeGuard: isLogEvent, format: formatLog },\n transaction: { typeGuard: isTraceEvent, format: formatTrace },\n};\n"],"names":[],"mappings":";;;;AAMO,MAAM,aAAgC;AAAA,EAC3C,OAAO,EAAE,WAAW,cAAc,QAAQ,YAAA;AAAA,EAC1C,KAAK,EAAE,WAAW,YAAY,QAAQ,UAAA;AAAA,EACtC,aAAa,EAAE,WAAW,cAAc,QAAQ,YAAA;AAClD;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Envelope, EnvelopeItem } from '@sentry/core';
|
|
2
|
+
import { EventContainer } from '../../utils/index.ts';
|
|
3
|
+
export declare function formatLogEnvelope(container: EventContainer): string[];
|
|
4
|
+
/**
|
|
5
|
+
* Format a log event to markdown string
|
|
6
|
+
*/
|
|
7
|
+
export declare function formatLog(payload: EnvelopeItem[1], _envelopeHeader: Envelope[0]): string[];
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { isLogEvent } from "../../parser/helpers.js";
|
|
2
|
+
import "uuidv7";
|
|
3
|
+
import { formatTimestamp } from "../utils.js";
|
|
4
|
+
function formatLogEnvelope(container) {
|
|
5
|
+
const parsedEnvelope = container.getParsedEnvelope();
|
|
6
|
+
const {
|
|
7
|
+
envelope: [envelopeHeader, items]
|
|
8
|
+
} = parsedEnvelope;
|
|
9
|
+
const formatted = [];
|
|
10
|
+
for (const item of items) {
|
|
11
|
+
const [{ type }, payload] = item;
|
|
12
|
+
if (type === "log" && isLogEvent(payload)) {
|
|
13
|
+
formatted.push(...formatLog(payload));
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return formatted;
|
|
17
|
+
}
|
|
18
|
+
function formatSingleLog(event) {
|
|
19
|
+
let attr = "";
|
|
20
|
+
for (const [key, property] of Object.entries(event.attributes ?? {})) {
|
|
21
|
+
if (key.startsWith("sentry.")) {
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
attr += `${key}: ${property.value} (${property.type})
|
|
25
|
+
`;
|
|
26
|
+
}
|
|
27
|
+
return `${formatTimestamp(event.timestamp)} ${event.level} ${event.body}
|
|
28
|
+
Attributes:
|
|
29
|
+
${attr}`;
|
|
30
|
+
}
|
|
31
|
+
function formatLog(payload, _envelopeHeader) {
|
|
32
|
+
const event = payload;
|
|
33
|
+
return event.items.map(formatSingleLog);
|
|
34
|
+
}
|
|
35
|
+
export {
|
|
36
|
+
formatLog,
|
|
37
|
+
formatLogEnvelope
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=logs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.js","sources":["../../../../src/server/formatters/md/logs.ts"],"sourcesContent":["import type { Envelope, EnvelopeItem, SerializedLog } from \"@sentry/core\";\nimport { type SentryEvent, type SentryLogEvent, isLogEvent } from \"../../parser/index.ts\";\nimport type { EventContainer } from \"../../utils/index.ts\";\nimport { formatTimestamp } from \"../utils.ts\";\n\nexport function formatLogEnvelope(container: EventContainer) {\n const parsedEnvelope = container.getParsedEnvelope();\n\n const {\n envelope: [envelopeHeader, items],\n } = parsedEnvelope;\n\n const formatted: string[] = [];\n for (const item of items) {\n const [{ type }, payload] = item;\n\n if (type === \"log\" && isLogEvent(payload as SentryEvent)) {\n formatted.push(...formatLog(payload, envelopeHeader));\n }\n }\n\n return formatted;\n}\n\n/**\n * Format a single log entry to markdown string\n */\nfunction formatSingleLog(event: SerializedLog): string {\n let attr = \"\";\n for (const [key, property] of Object.entries(event.attributes ?? {})) {\n if (key.startsWith(\"sentry.\")) {\n continue;\n }\n\n attr += `${key}: ${property.value} (${property.type})\\n`;\n }\n\n return `${formatTimestamp(event.timestamp)} ${event.level} ${event.body}\nAttributes:\n${attr}`;\n}\n\n/**\n * Format a log event to markdown string\n */\nexport function formatLog(payload: EnvelopeItem[1], _envelopeHeader: Envelope[0]): string[] {\n const event = payload as SentryLogEvent;\n return event.items.map(formatSingleLog);\n}\n"],"names":[],"mappings":";;;AAKO,SAAS,kBAAkB,WAA2B;AAC3D,QAAM,iBAAiB,UAAU,kBAAA;AAEjC,QAAM;AAAA,IACJ,UAAU,CAAC,gBAAgB,KAAK;AAAA,EAAA,IAC9B;AAEJ,QAAM,YAAsB,CAAA;AAC5B,aAAW,QAAQ,OAAO;AACxB,UAAM,CAAC,EAAE,QAAQ,OAAO,IAAI;AAE5B,QAAI,SAAS,SAAS,WAAW,OAAsB,GAAG;AACxD,gBAAU,KAAK,GAAG,UAAU,OAAuB,CAAC;AAAA,IACtD;AAAA,EACF;AAEA,SAAO;AACT;AAKA,SAAS,gBAAgB,OAA8B;AACrD,MAAI,OAAO;AACX,aAAW,CAAC,KAAK,QAAQ,KAAK,OAAO,QAAQ,MAAM,cAAc,CAAA,CAAE,GAAG;AACpE,QAAI,IAAI,WAAW,SAAS,GAAG;AAC7B;AAAA,IACF;AAEA,YAAQ,GAAG,GAAG,KAAK,SAAS,KAAK,KAAK,SAAS,IAAI;AAAA;AAAA,EACrD;AAEA,SAAO,GAAG,gBAAgB,MAAM,SAAS,CAAC,IAAI,MAAM,KAAK,IAAI,MAAM,IAAI;AAAA;AAAA,EAEvE,IAAI;AACN;AAKO,SAAS,UAAU,SAA0B,iBAAwC;AAC1F,QAAM,QAAQ;AACd,SAAO,MAAM,MAAM,IAAI,eAAe;AACxC;"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { Envelope, EnvelopeItem } from '@sentry/core';
|
|
2
|
+
import { SentryTransactionEvent } from '../../parser/index.ts';
|
|
3
|
+
import { EventContainer } from '../../utils/index.ts';
|
|
4
|
+
export interface TraceContext {
|
|
5
|
+
trace_id: string;
|
|
6
|
+
span_id: string;
|
|
7
|
+
parent_span_id?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface SpanData {
|
|
10
|
+
span_id: string;
|
|
11
|
+
parent_span_id?: string;
|
|
12
|
+
trace_id: string;
|
|
13
|
+
op?: string;
|
|
14
|
+
description?: string;
|
|
15
|
+
start_timestamp?: number;
|
|
16
|
+
timestamp?: number;
|
|
17
|
+
duration?: number;
|
|
18
|
+
status?: string;
|
|
19
|
+
data?: Record<string, unknown>;
|
|
20
|
+
}
|
|
21
|
+
export interface TraceEvent {
|
|
22
|
+
event_id: string;
|
|
23
|
+
type: string;
|
|
24
|
+
timestamp?: number;
|
|
25
|
+
start_timestamp?: number;
|
|
26
|
+
transaction?: string;
|
|
27
|
+
trace_context?: TraceContext;
|
|
28
|
+
spans?: SpanData[];
|
|
29
|
+
level?: string;
|
|
30
|
+
platform?: string;
|
|
31
|
+
message?: string;
|
|
32
|
+
exception?: {
|
|
33
|
+
values?: Array<{
|
|
34
|
+
type?: string;
|
|
35
|
+
value?: string;
|
|
36
|
+
}>;
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
export interface TraceSummary {
|
|
40
|
+
trace_id: string;
|
|
41
|
+
root_transaction?: string;
|
|
42
|
+
start_timestamp?: number;
|
|
43
|
+
duration?: number;
|
|
44
|
+
span_count: number;
|
|
45
|
+
error_count: number;
|
|
46
|
+
events: TraceEvent[];
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Extract trace events from envelopes and group by trace ID
|
|
50
|
+
*/
|
|
51
|
+
export declare function extractTracesFromEnvelopes(containers: EventContainer[]): Map<string, TraceSummary>;
|
|
52
|
+
/**
|
|
53
|
+
* Build a hierarchical span tree from trace events
|
|
54
|
+
*/
|
|
55
|
+
export interface SpanNode {
|
|
56
|
+
span_id: string;
|
|
57
|
+
parent_span_id?: string;
|
|
58
|
+
op?: string;
|
|
59
|
+
description?: string;
|
|
60
|
+
duration?: number;
|
|
61
|
+
status?: string;
|
|
62
|
+
is_transaction?: boolean;
|
|
63
|
+
children: SpanNode[];
|
|
64
|
+
level: number;
|
|
65
|
+
event_id?: string;
|
|
66
|
+
}
|
|
67
|
+
export declare function buildSpanTree(trace: TraceSummary): SpanNode[];
|
|
68
|
+
/**
|
|
69
|
+
* Format a transaction payload for CLI output
|
|
70
|
+
*/
|
|
71
|
+
export declare function formatTransactionEvent(event: SentryTransactionEvent): string[];
|
|
72
|
+
/**
|
|
73
|
+
* Format a trace/transaction event to markdown string
|
|
74
|
+
*/
|
|
75
|
+
export declare function formatTrace(payload: EnvelopeItem[1], _envelopeHeader: Envelope[0]): string[];
|
|
76
|
+
/**
|
|
77
|
+
* Process a single trace event for CLI output
|
|
78
|
+
*/
|
|
79
|
+
export declare function processTraceEvent(event: TraceEvent): string[];
|
|
80
|
+
/**
|
|
81
|
+
* Format trace summary for display
|
|
82
|
+
*/
|
|
83
|
+
export declare function formatTraceSummary(trace: TraceSummary): string;
|
|
84
|
+
/**
|
|
85
|
+
* Render span tree as hierarchical text
|
|
86
|
+
*/
|
|
87
|
+
export declare function renderSpanTree(spans: SpanNode[]): string[];
|