@prefactor/sdk 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/LICENSE +14 -0
  2. package/README.md +313 -0
  3. package/dist/LICENSE +14 -0
  4. package/dist/README.md +313 -0
  5. package/dist/config.d.ts +247 -0
  6. package/dist/config.d.ts.map +1 -0
  7. package/dist/config.js +107 -0
  8. package/dist/config.js.map +1 -0
  9. package/dist/index.cjs +1224 -0
  10. package/dist/index.cjs.map +23 -0
  11. package/dist/index.d.ts +82 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +1200 -0
  14. package/dist/index.js.map +23 -0
  15. package/dist/instrumentation/langchain/metadata-extractor.d.ts +20 -0
  16. package/dist/instrumentation/langchain/metadata-extractor.d.ts.map +1 -0
  17. package/dist/instrumentation/langchain/metadata-extractor.js +54 -0
  18. package/dist/instrumentation/langchain/metadata-extractor.js.map +1 -0
  19. package/dist/instrumentation/langchain/middleware.d.ts +84 -0
  20. package/dist/instrumentation/langchain/middleware.d.ts.map +1 -0
  21. package/dist/instrumentation/langchain/middleware.js +181 -0
  22. package/dist/instrumentation/langchain/middleware.js.map +1 -0
  23. package/dist/package.json +56 -0
  24. package/dist/tracing/context.d.ts +53 -0
  25. package/dist/tracing/context.d.ts.map +1 -0
  26. package/dist/tracing/context.js +65 -0
  27. package/dist/tracing/context.js.map +1 -0
  28. package/dist/tracing/span.d.ts +68 -0
  29. package/dist/tracing/span.d.ts.map +1 -0
  30. package/dist/tracing/span.js +21 -0
  31. package/dist/tracing/span.js.map +1 -0
  32. package/dist/tracing/tracer.d.ts +100 -0
  33. package/dist/tracing/tracer.d.ts.map +1 -0
  34. package/dist/tracing/tracer.js +151 -0
  35. package/dist/tracing/tracer.js.map +1 -0
  36. package/dist/transport/base.d.ts +38 -0
  37. package/dist/transport/base.d.ts.map +1 -0
  38. package/dist/transport/base.js +2 -0
  39. package/dist/transport/base.js.map +1 -0
  40. package/dist/transport/http.d.ts +86 -0
  41. package/dist/transport/http.d.ts.map +1 -0
  42. package/dist/transport/http.js +331 -0
  43. package/dist/transport/http.js.map +1 -0
  44. package/dist/transport/stdio.d.ts +48 -0
  45. package/dist/transport/stdio.d.ts.map +1 -0
  46. package/dist/transport/stdio.js +71 -0
  47. package/dist/transport/stdio.js.map +1 -0
  48. package/dist/utils/logging.d.ts +29 -0
  49. package/dist/utils/logging.d.ts.map +1 -0
  50. package/dist/utils/logging.js +71 -0
  51. package/dist/utils/logging.js.map +1 -0
  52. package/dist/utils/serialization.d.ts +24 -0
  53. package/dist/utils/serialization.d.ts.map +1 -0
  54. package/dist/utils/serialization.js +60 -0
  55. package/dist/utils/serialization.js.map +1 -0
  56. package/package.json +56 -0
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Truncate a string to a maximum length, adding an ellipsis if truncated
3
+ *
4
+ * @param value - The string to truncate
5
+ * @param maxLength - Maximum length
6
+ * @returns Truncated string
7
+ */
8
+ export function truncateString(value, maxLength) {
9
+ if (value.length <= maxLength) {
10
+ return value;
11
+ }
12
+ return value.slice(0, maxLength) + '... [truncated]';
13
+ }
14
+ /**
15
+ * Serialize a value for JSON output, handling non-serializable types and
16
+ * truncating long strings
17
+ *
18
+ * @param value - Value to serialize
19
+ * @param maxLength - Maximum length for strings (null for no truncation)
20
+ * @returns Serialized value
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const serialized = serializeValue({ message: 'Hello'.repeat(1000) }, 100);
25
+ * // Result: { message: 'HelloHelloHello... [truncated]' }
26
+ * ```
27
+ */
28
+ export function serializeValue(value, maxLength = 10000) {
29
+ // Handle primitives that don't need serialization
30
+ if (value === null || value === undefined) {
31
+ return value;
32
+ }
33
+ if (typeof value === 'boolean' || typeof value === 'number') {
34
+ return value;
35
+ }
36
+ // Handle strings with truncation
37
+ if (typeof value === 'string') {
38
+ return maxLength !== null ? truncateString(value, maxLength) : value;
39
+ }
40
+ // Handle arrays
41
+ if (Array.isArray(value)) {
42
+ return value.map((item) => serializeValue(item, maxLength));
43
+ }
44
+ // Handle objects
45
+ if (typeof value === 'object') {
46
+ const result = {};
47
+ for (const [key, val] of Object.entries(value)) {
48
+ result[key] = serializeValue(val, maxLength);
49
+ }
50
+ return result;
51
+ }
52
+ // Handle other types by converting to string
53
+ try {
54
+ return String(value);
55
+ }
56
+ catch {
57
+ return `<${typeof value} object>`;
58
+ }
59
+ }
60
+ //# sourceMappingURL=serialization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialization.js","sourceRoot":"","sources":["../../src/utils/serialization.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,SAAiB;IAC7D,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,iBAAiB,CAAC;AACvD,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc,EAAE,YAA2B,KAAK;IAC7E,kDAAkD;IAClD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,iCAAiC;IACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACvE,CAAC;IAED,gBAAgB;IAChB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,iBAAiB;IACjB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,MAAM,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,6CAA6C;IAC7C,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,OAAO,KAAK,UAAU,CAAC;IACpC,CAAC;AACH,CAAC"}
package/package.json ADDED
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "@prefactor/sdk",
3
+ "version": "0.1.0",
4
+ "description": "Automatic observability for LangChain.js agents",
5
+ "type": "module",
6
+ "main": "dist/index.cjs",
7
+ "module": "dist/index.js",
8
+ "types": "dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js",
13
+ "require": "./dist/index.cjs"
14
+ }
15
+ },
16
+ "files": [
17
+ "dist"
18
+ ],
19
+ "scripts": {
20
+ "build": "bun run scripts/build.ts",
21
+ "test": "bun test",
22
+ "test:watch": "bun test --watch",
23
+ "typecheck": "tsc --noEmit",
24
+ "lint": "biome check .",
25
+ "format": "biome format --write .",
26
+ "example:basic": "bun examples/basic.ts",
27
+ "example:anthropic": "bun examples/anthropic-agent/simple-agent.ts",
28
+ "prepublishOnly": "bun run build && bun run test && bun run typecheck"
29
+ },
30
+ "keywords": [
31
+ "prefactor",
32
+ "observability",
33
+ "tracing",
34
+ "langchain",
35
+ "llm",
36
+ "agent",
37
+ "monitoring"
38
+ ],
39
+ "author": "Prefactor",
40
+ "license": "MIT",
41
+ "dependencies": {
42
+ "@langchain/core": "^0.3.0",
43
+ "@prefactor/pfid": "^0.1.0",
44
+ "zod": "^3.23.0"
45
+ },
46
+ "devDependencies": {
47
+ "@biomejs/biome": "2.3.11",
48
+ "@types/node": "^20.0.0",
49
+ "bun-types": "latest",
50
+ "langchain": "^1.0.0",
51
+ "typescript": "^5.3.0"
52
+ },
53
+ "engines": {
54
+ "node": ">=18.0.0"
55
+ }
56
+ }