@glasstrace/sdk 1.15.0 → 1.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/README.md +117 -8
  2. package/dist/async-context/index.cjs +21 -2
  3. package/dist/async-context/index.cjs.map +1 -1
  4. package/dist/async-context/index.js +2 -2
  5. package/dist/{capture-error-03qDnC5v.d.cts → capture-error-B0txjNut.d.cts} +2 -2
  6. package/dist/{capture-error-CAfFUyIU.d.ts → capture-error-Dc01rYNR.d.ts} +2 -2
  7. package/dist/{chunk-F7A3QXCT.js → chunk-774XIOZG.js} +2 -2
  8. package/dist/{chunk-VMK2G6QR.js → chunk-AFTCLH77.js} +2 -2
  9. package/dist/{chunk-XMD5OYD6.js → chunk-BGJKEFBN.js} +2 -2
  10. package/dist/{chunk-LQZRGBN5.js → chunk-DW3CZDS6.js} +2 -2
  11. package/dist/{chunk-PSMSSLQY.js → chunk-EWW3TZ52.js} +123 -12
  12. package/dist/{chunk-PSMSSLQY.js.map → chunk-EWW3TZ52.js.map} +1 -1
  13. package/dist/{chunk-7LE2O4ZJ.js → chunk-GBVMPMVV.js} +54 -5
  14. package/dist/{chunk-7LE2O4ZJ.js.map → chunk-GBVMPMVV.js.map} +1 -1
  15. package/dist/{chunk-HMEHYSTS.js → chunk-KM4UNN3Q.js} +2 -2
  16. package/dist/{chunk-MP3QNDXQ.js → chunk-OHSX224U.js} +2 -2
  17. package/dist/{chunk-6ST4QV7T.js → chunk-T7B752NF.js} +3 -3
  18. package/dist/{chunk-ZIYT2Y4B.js → chunk-WOYJAG7H.js} +3 -3
  19. package/dist/cli/init.cjs +18 -5
  20. package/dist/cli/init.cjs.map +1 -1
  21. package/dist/cli/init.js +7 -7
  22. package/dist/cli/mcp-add.cjs +15 -2
  23. package/dist/cli/mcp-add.cjs.map +1 -1
  24. package/dist/cli/mcp-add.js +3 -3
  25. package/dist/cli/uninit.js +3 -3
  26. package/dist/cli/upgrade-instructions.cjs +1 -1
  27. package/dist/cli/upgrade-instructions.js +3 -3
  28. package/dist/cli/validate.cjs +14 -1
  29. package/dist/cli/validate.cjs.map +1 -1
  30. package/dist/cli/validate.js +2 -2
  31. package/dist/{correlation-id-YcfcqOru.d.ts → correlation-id-B9YYmoZw.d.ts} +1 -1
  32. package/dist/{correlation-id-CZ2bstzA.d.cts → correlation-id-CelUvw7j.d.cts} +1 -1
  33. package/dist/edge-entry.cjs +21 -2
  34. package/dist/edge-entry.cjs.map +1 -1
  35. package/dist/edge-entry.d.cts +2 -2
  36. package/dist/edge-entry.d.ts +2 -2
  37. package/dist/edge-entry.js +4 -4
  38. package/dist/import-graph-DBLGNjcI.d.cts +238 -0
  39. package/dist/import-graph-Dka_Fm7j.d.ts +238 -0
  40. package/dist/index.cjs +165 -12
  41. package/dist/index.cjs.map +1 -1
  42. package/dist/{index.d-BQIJ5Dvc.d.cts → index.d-3-cJoY8y.d.cts} +10 -2
  43. package/dist/{index.d-BQIJ5Dvc.d.ts → index.d-3-cJoY8y.d.ts} +10 -2
  44. package/dist/index.d.cts +28 -4
  45. package/dist/index.d.ts +28 -4
  46. package/dist/index.js +5 -5
  47. package/dist/middleware/index.cjs +21 -2
  48. package/dist/middleware/index.cjs.map +1 -1
  49. package/dist/middleware/index.js +2 -2
  50. package/dist/node-entry.cjs +56 -9
  51. package/dist/node-entry.cjs.map +1 -1
  52. package/dist/node-entry.d.cts +4 -4
  53. package/dist/node-entry.d.ts +4 -4
  54. package/dist/node-entry.js +7 -7
  55. package/dist/node-subpath.cjs +27 -1
  56. package/dist/node-subpath.cjs.map +1 -1
  57. package/dist/node-subpath.d.cts +51 -235
  58. package/dist/node-subpath.d.ts +51 -235
  59. package/dist/node-subpath.js +16 -3
  60. package/dist/node-subpath.js.map +1 -1
  61. package/dist/{source-map-uploader-NUONOEJG.js → source-map-uploader-UJPZCUFN.js} +3 -3
  62. package/dist/trpc/index.cjs +21 -2
  63. package/dist/trpc/index.cjs.map +1 -1
  64. package/dist/trpc/index.js +1 -1
  65. package/package.json +1 -1
  66. /package/dist/{chunk-F7A3QXCT.js.map → chunk-774XIOZG.js.map} +0 -0
  67. /package/dist/{chunk-VMK2G6QR.js.map → chunk-AFTCLH77.js.map} +0 -0
  68. /package/dist/{chunk-XMD5OYD6.js.map → chunk-BGJKEFBN.js.map} +0 -0
  69. /package/dist/{chunk-LQZRGBN5.js.map → chunk-DW3CZDS6.js.map} +0 -0
  70. /package/dist/{chunk-HMEHYSTS.js.map → chunk-KM4UNN3Q.js.map} +0 -0
  71. /package/dist/{chunk-MP3QNDXQ.js.map → chunk-OHSX224U.js.map} +0 -0
  72. /package/dist/{chunk-6ST4QV7T.js.map → chunk-T7B752NF.js.map} +0 -0
  73. /package/dist/{chunk-ZIYT2Y4B.js.map → chunk-WOYJAG7H.js.map} +0 -0
  74. /package/dist/{source-map-uploader-NUONOEJG.js.map → source-map-uploader-UJPZCUFN.js.map} +0 -0
@@ -14559,7 +14559,20 @@ var CaptureConfigSchema = external_exports.object({
14559
14559
  * client-side allowlist enforcement layered with the product's
14560
14560
  * storage-time filter as defense-in-depth.
14561
14561
  */
14562
- sideEffectEvidence: external_exports.boolean().optional().default(false)
14562
+ sideEffectEvidence: external_exports.boolean().optional().default(false),
14563
+ /**
14564
+ * Per-account value-fidelity capture posture (server-pushed).
14565
+ *
14566
+ * `strict` (default) is fail-closed: the SDK rejects raw wall-clock
14567
+ * timestamps and unhashed identifiers from the `scalar.*` channel at
14568
+ * emit time. `full` relaxes those rejections so raw magnitudes can be
14569
+ * surfaced — but only in conjunction with an explicit producer opt-in
14570
+ * (so a `full`-configured account still emits strict-shaped scalars
14571
+ * unless the producer also opts in). The operator owns this flag; it
14572
+ * is never derived from producer or request input. Absent on the wire
14573
+ * ⇒ `strict`.
14574
+ */
14575
+ captureFidelity: external_exports.enum(["strict", "full"]).optional().default("strict")
14563
14576
  });
14564
14577
  var SdkCachedConfigSchema = external_exports.object({
14565
14578
  response: external_exports.record(external_exports.string(), external_exports.unknown()),
@@ -14750,7 +14763,13 @@ var GLASSTRACE_ATTRIBUTE_NAMES = {
14750
14763
  SIDE_EFFECT_OMITTED_UNSUPPORTED_KEY: "glasstrace.side_effect.omitted.unsupported_key",
14751
14764
  SIDE_EFFECT_OMITTED_VALUE_TOO_LONG: "glasstrace.side_effect.omitted.value_too_long",
14752
14765
  SIDE_EFFECT_OMITTED_NOT_EMITTED: "glasstrace.side_effect.omitted.not_emitted",
14753
- SIDE_EFFECT_OMITTED_CAPTURE_DISABLED: "glasstrace.side_effect.omitted.capture_disabled"
14766
+ SIDE_EFFECT_OMITTED_CAPTURE_DISABLED: "glasstrace.side_effect.omitted.capture_disabled",
14767
+ // Value-fidelity scalar-channel omission reasons. Counts only; the
14768
+ // rejected raw value (timestamp, unhashed id, non-finite number) is
14769
+ // never echoed. Mirror the product omission enum verbatim.
14770
+ SIDE_EFFECT_OMITTED_RAW_TIMESTAMP: "glasstrace.side_effect.omitted.raw_timestamp",
14771
+ SIDE_EFFECT_OMITTED_UNHASHED_ID: "glasstrace.side_effect.omitted.unhashed_id",
14772
+ SIDE_EFFECT_OMITTED_NON_FINITE: "glasstrace.side_effect.omitted.non_finite"
14754
14773
  };
14755
14774
  var DEFAULT_CAPTURE_CONFIG = {
14756
14775
  requestBodies: false,
@@ -14760,7 +14779,8 @@ var DEFAULT_CAPTURE_CONFIG = {
14760
14779
  importGraph: false,
14761
14780
  consoleErrors: false,
14762
14781
  errorResponseBodies: false,
14763
- sideEffectEvidence: false
14782
+ sideEffectEvidence: false,
14783
+ captureFidelity: "strict"
14764
14784
  };
14765
14785
  var MAX_SOURCE_MAP_FILE_PATH_LENGTH = 512;
14766
14786
  var MAX_SOURCE_MAP_FILE_SIZE = 50 * 1024 * 1024;
@@ -15058,8 +15078,32 @@ var SIDE_EFFECT_OMISSION_REASONS = [
15058
15078
  "unsupported_key",
15059
15079
  "value_too_long",
15060
15080
  "not_emitted",
15061
- "capture_disabled"
15081
+ "capture_disabled",
15082
+ // Value-fidelity scalar channel reasons. A scalar is dropped under
15083
+ // `raw_timestamp` when a wall-clock value (a `Date` instance, or a
15084
+ // numeric epoch on a `*Ms` key) is rejected in favor of a bounded
15085
+ // delta; `unhashed_id` when an `*Id` scalar is not the `gthid_<hex>`
15086
+ // output of `hashId`; `non_finite` when a number is NaN/±Infinity.
15087
+ // (A type-mismatched value — e.g. a date *string* on a numeric key —
15088
+ // is dropped under `raw_payload`, not `raw_timestamp`, since the
15089
+ // scalar channel only carries native numbers/booleans plus `gthid_`
15090
+ // ids.) These mirror the product `SideEffectOmissionReasonSchema`
15091
+ // tuple verbatim (hand-maintained on both sides; see @drift-check
15092
+ // above). `non_finite` is SDK-emit-time only — JSON cannot carry
15093
+ // NaN/Infinity to the wire.
15094
+ "raw_timestamp",
15095
+ "unhashed_id",
15096
+ "non_finite"
15062
15097
  ];
15098
+ var SIDE_EFFECT_SCALAR_KEY_PATTERN = /^[a-z][A-Za-z0-9]*(Ms|Amount|Bytes|Ratio|Id|Value|Flag)$/;
15099
+ var SIDE_EFFECT_SCALAR_PREFIX = "glasstrace.side_effect.scalar.";
15100
+ var MAX_SIDE_EFFECT_SCALARS_PER_OPERATION = 16;
15101
+ function isSideEffectScalarKey(key) {
15102
+ if (key.length > MAX_SIDE_EFFECT_SEMANTIC_FIELD_KEY_LENGTH) return false;
15103
+ return SIDE_EFFECT_SCALAR_KEY_PATTERN.test(key);
15104
+ }
15105
+ var SIDE_EFFECT_HASHED_ID_PREFIX = "gthid_";
15106
+ var SIDE_EFFECT_HASHED_ID_HEX_LENGTH = 32;
15063
15107
  var SIDE_EFFECT_OPERATION_STATUSES = [
15064
15108
  "scheduled",
15065
15109
  "started",
@@ -15090,7 +15134,12 @@ export {
15090
15134
  SIDE_EFFECT_OPERATION_KINDS,
15091
15135
  isSideEffectSemanticFieldKey,
15092
15136
  SIDE_EFFECT_OMISSION_REASONS,
15137
+ SIDE_EFFECT_SCALAR_PREFIX,
15138
+ MAX_SIDE_EFFECT_SCALARS_PER_OPERATION,
15139
+ isSideEffectScalarKey,
15140
+ SIDE_EFFECT_HASHED_ID_PREFIX,
15141
+ SIDE_EFFECT_HASHED_ID_HEX_LENGTH,
15093
15142
  SIDE_EFFECT_OPERATION_STATUSES,
15094
15143
  SIDE_EFFECT_OPERATION_PHASES
15095
15144
  };
15096
- //# sourceMappingURL=chunk-7LE2O4ZJ.js.map
15145
+ //# sourceMappingURL=chunk-GBVMPMVV.js.map