@thanh01.pmt/domain-kit 0.6.0 → 0.6.1

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 (87) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +10 -10
  3. package/dist/assembly/index.d.cts +3 -2
  4. package/dist/assembly/index.d.ts +3 -2
  5. package/dist/{chunk-2OGNQUXC.mjs → chunk-4UCXYRM3.mjs} +152 -303
  6. package/dist/chunk-4UCXYRM3.mjs.map +1 -0
  7. package/dist/chunk-7A2SG466.mjs +325 -0
  8. package/dist/chunk-7A2SG466.mjs.map +1 -0
  9. package/dist/{chunk-DRVOV5ZD.mjs → chunk-DSEJLTUO.mjs} +2 -2
  10. package/dist/chunk-DSEJLTUO.mjs.map +1 -0
  11. package/dist/{chunk-ERDTHXQA.mjs → chunk-H4W3YJLK.mjs} +10 -3
  12. package/dist/chunk-H4W3YJLK.mjs.map +1 -0
  13. package/dist/chunk-IBVXXVGE.mjs +14 -0
  14. package/dist/chunk-IBVXXVGE.mjs.map +1 -0
  15. package/dist/{chunk-5OMSYKQP.mjs → chunk-KHCZYLKM.mjs} +33 -18
  16. package/dist/chunk-KHCZYLKM.mjs.map +1 -0
  17. package/dist/{chunk-67GXK3ZE.mjs → chunk-WD3P5V3B.mjs} +3 -2
  18. package/dist/chunk-WD3P5V3B.mjs.map +1 -0
  19. package/dist/{conceptEscalator-DPrs4PwC.d.cts → conceptEscalator-BmMJD8C5.d.cts} +1 -1
  20. package/dist/{conceptEscalator-BCsw0ys_.d.ts → conceptEscalator-DMsehscs.d.ts} +1 -1
  21. package/dist/concepts/index.d.cts +4 -3
  22. package/dist/concepts/index.d.ts +4 -3
  23. package/dist/{cpp-CZUPqJt9.d.cts → cpp-vlDl6pCL.d.cts} +4 -4
  24. package/dist/{cpp-CZUPqJt9.d.ts → cpp-vlDl6pCL.d.ts} +4 -4
  25. package/dist/detector/index.cjs +1 -0
  26. package/dist/detector/index.cjs.map +1 -1
  27. package/dist/detector/index.d.cts +2 -2
  28. package/dist/detector/index.d.ts +2 -2
  29. package/dist/detector/index.mjs +1 -1
  30. package/dist/{domainProfileDetector-DHb1T0zB.d.ts → domainProfileDetector-6pjgL-6_.d.ts} +1 -1
  31. package/dist/{domainProfileDetector-bzugdQmS.d.cts → domainProfileDetector-BsADsuRV.d.cts} +1 -1
  32. package/dist/{domainProfileSchema-CwT3Ffsw.d.cts → domainProfileSchema-779FGk14.d.cts} +38 -1
  33. package/dist/{domainProfileSchema-CwT3Ffsw.d.ts → domainProfileSchema-779FGk14.d.ts} +38 -1
  34. package/dist/extractors/index.d.cts +3 -3
  35. package/dist/extractors/index.d.ts +3 -3
  36. package/dist/feed/index.d.cts +1 -1
  37. package/dist/feed/index.d.ts +1 -1
  38. package/dist/graph/index.cjs +235 -57
  39. package/dist/graph/index.cjs.map +1 -1
  40. package/dist/graph/index.d.cts +9 -6
  41. package/dist/graph/index.d.ts +9 -6
  42. package/dist/graph/index.mjs +3 -1
  43. package/dist/{hybridGraphPipeline-CocfYe4d.d.cts → hybridGraphPipeline-B4mamLim.d.cts} +1 -1
  44. package/dist/{hybridGraphPipeline-9dRKJj7r.d.ts → hybridGraphPipeline-D2_1GUva.d.ts} +1 -1
  45. package/dist/index.cjs +277 -68
  46. package/dist/index.cjs.map +1 -1
  47. package/dist/index.d.cts +9 -8
  48. package/dist/index.d.ts +9 -8
  49. package/dist/index.mjs +11 -9
  50. package/dist/{keywordExtractor-BxlGRMHC.d.cts → keywordExtractor-1YAFntsn.d.cts} +1 -1
  51. package/dist/{keywordExtractor-DU5XRN8-.d.ts → keywordExtractor-DWw8z_AF.d.ts} +1 -1
  52. package/dist/parsers/index.cjs.map +1 -1
  53. package/dist/parsers/index.d.cts +1 -1
  54. package/dist/parsers/index.d.ts +1 -1
  55. package/dist/parsers/index.mjs +1 -1
  56. package/dist/pipeline/index.cjs +261 -68
  57. package/dist/pipeline/index.cjs.map +1 -1
  58. package/dist/pipeline/index.d.cts +10 -9
  59. package/dist/pipeline/index.d.ts +10 -9
  60. package/dist/pipeline/index.mjs +8 -6
  61. package/dist/schemas/index.cjs +8 -0
  62. package/dist/schemas/index.cjs.map +1 -1
  63. package/dist/schemas/index.d.cts +2 -2
  64. package/dist/schemas/index.d.ts +2 -2
  65. package/dist/schemas/index.mjs +1 -1
  66. package/dist/utils/llmClient.cjs +344 -0
  67. package/dist/utils/llmClient.cjs.map +1 -0
  68. package/dist/utils/llmClient.d.cts +118 -0
  69. package/dist/utils/llmClient.d.ts +118 -0
  70. package/dist/utils/llmClient.mjs +4 -0
  71. package/dist/utils/llmClient.mjs.map +1 -0
  72. package/dist/utils/llmTransportResult.cjs +16 -0
  73. package/dist/utils/llmTransportResult.cjs.map +1 -0
  74. package/dist/utils/llmTransportResult.d.cts +36 -0
  75. package/dist/utils/llmTransportResult.d.ts +36 -0
  76. package/dist/utils/llmTransportResult.mjs +3 -0
  77. package/dist/utils/llmTransportResult.mjs.map +1 -0
  78. package/package.json +9 -10
  79. package/dist/chunk-2OGNQUXC.mjs.map +0 -1
  80. package/dist/chunk-5OMSYKQP.mjs.map +0 -1
  81. package/dist/chunk-67GXK3ZE.mjs.map +0 -1
  82. package/dist/chunk-DRVOV5ZD.mjs.map +0 -1
  83. package/dist/chunk-ERDTHXQA.mjs.map +0 -1
  84. package/dist/llmClient-CX5uUiQ1.d.cts +0 -60
  85. package/dist/llmClient-CX5uUiQ1.d.ts +0 -60
  86. package/dist/{curriculumFeedSchema-DYayelAA.d.ts → curriculumFeedSchema-DK-TUAJZ.d.cts} +8 -8
  87. package/dist/{curriculumFeedSchema-DYayelAA.d.cts → curriculumFeedSchema-DK-TUAJZ.d.ts} +8 -8
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ // src/utils/llmTransportResult.ts
4
+ function transportResultFrom(provider, model, options) {
5
+ return {
6
+ provider,
7
+ model,
8
+ framingStripped: !!options?.framingStripped,
9
+ upstreamError: options?.upstreamError,
10
+ usage: options?.usage
11
+ };
12
+ }
13
+
14
+ exports.transportResultFrom = transportResultFrom;
15
+ //# sourceMappingURL=llmTransportResult.cjs.map
16
+ //# sourceMappingURL=llmTransportResult.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/llmTransportResult.ts"],"names":[],"mappings":";;;AA8BO,SAAS,mBAAA,CACd,QAAA,EACA,KAAA,EACA,OAAA,EAKoB;AACpB,EAAA,OAAO;AAAA,IACL,QAAA;AAAA,IACA,KAAA;AAAA,IACA,eAAA,EAAiB,CAAC,CAAC,OAAA,EAAS,eAAA;AAAA,IAC5B,eAAe,OAAA,EAAS,aAAA;AAAA,IACxB,OAAO,OAAA,EAAS;AAAA,GAClB;AACF","file":"llmTransportResult.cjs","sourcesContent":["/**\n * Single source of truth for ONE LLM response through the kit.\n *\n * Every `LlmClient.chat` return path attaches one of these so downstream\n * code inspects the ACTUAL resolved provider/model and framing flags instead\n * of trusting the static client.model card. This is the contract behind the\n * \"no silent cross-gateway rerouting\" policy: each response carries its own\n * provenance and framing metadata.\n */\nexport interface LlmTransportResult {\n /** Provider label that actually served this response (e.g. '9router'). */\n provider: string;\n /** Exact model string sent to and returned by that provider. */\n model: string;\n /** True when the response body was stripped of 9router SSE framing. */\n framingStripped: boolean;\n /** When present, the upstream returned an error envelope inside HTTP 200. */\n upstreamError?: string;\n /** When present, usage record attached to the response. */\n usage?: {\n prompt_tokens: number;\n completion_tokens: number;\n total_tokens: number;\n finishReason?: string;\n };\n}\n\n/**\n * Build the transport result that accompanies a successful chat completion.\n */\nexport function transportResultFrom(\n provider: string,\n model: string,\n options?: {\n framingStripped?: boolean;\n upstreamError?: string;\n usage?: LlmTransportResult['usage'];\n },\n): LlmTransportResult {\n return {\n provider,\n model,\n framingStripped: !!options?.framingStripped,\n upstreamError: options?.upstreamError,\n usage: options?.usage,\n };\n}\n"]}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Single source of truth for ONE LLM response through the kit.
3
+ *
4
+ * Every `LlmClient.chat` return path attaches one of these so downstream
5
+ * code inspects the ACTUAL resolved provider/model and framing flags instead
6
+ * of trusting the static client.model card. This is the contract behind the
7
+ * "no silent cross-gateway rerouting" policy: each response carries its own
8
+ * provenance and framing metadata.
9
+ */
10
+ interface LlmTransportResult {
11
+ /** Provider label that actually served this response (e.g. '9router'). */
12
+ provider: string;
13
+ /** Exact model string sent to and returned by that provider. */
14
+ model: string;
15
+ /** True when the response body was stripped of 9router SSE framing. */
16
+ framingStripped: boolean;
17
+ /** When present, the upstream returned an error envelope inside HTTP 200. */
18
+ upstreamError?: string;
19
+ /** When present, usage record attached to the response. */
20
+ usage?: {
21
+ prompt_tokens: number;
22
+ completion_tokens: number;
23
+ total_tokens: number;
24
+ finishReason?: string;
25
+ };
26
+ }
27
+ /**
28
+ * Build the transport result that accompanies a successful chat completion.
29
+ */
30
+ declare function transportResultFrom(provider: string, model: string, options?: {
31
+ framingStripped?: boolean;
32
+ upstreamError?: string;
33
+ usage?: LlmTransportResult['usage'];
34
+ }): LlmTransportResult;
35
+
36
+ export { type LlmTransportResult, transportResultFrom };
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Single source of truth for ONE LLM response through the kit.
3
+ *
4
+ * Every `LlmClient.chat` return path attaches one of these so downstream
5
+ * code inspects the ACTUAL resolved provider/model and framing flags instead
6
+ * of trusting the static client.model card. This is the contract behind the
7
+ * "no silent cross-gateway rerouting" policy: each response carries its own
8
+ * provenance and framing metadata.
9
+ */
10
+ interface LlmTransportResult {
11
+ /** Provider label that actually served this response (e.g. '9router'). */
12
+ provider: string;
13
+ /** Exact model string sent to and returned by that provider. */
14
+ model: string;
15
+ /** True when the response body was stripped of 9router SSE framing. */
16
+ framingStripped: boolean;
17
+ /** When present, the upstream returned an error envelope inside HTTP 200. */
18
+ upstreamError?: string;
19
+ /** When present, usage record attached to the response. */
20
+ usage?: {
21
+ prompt_tokens: number;
22
+ completion_tokens: number;
23
+ total_tokens: number;
24
+ finishReason?: string;
25
+ };
26
+ }
27
+ /**
28
+ * Build the transport result that accompanies a successful chat completion.
29
+ */
30
+ declare function transportResultFrom(provider: string, model: string, options?: {
31
+ framingStripped?: boolean;
32
+ upstreamError?: string;
33
+ usage?: LlmTransportResult['usage'];
34
+ }): LlmTransportResult;
35
+
36
+ export { type LlmTransportResult, transportResultFrom };
@@ -0,0 +1,3 @@
1
+ export { transportResultFrom } from '../chunk-IBVXXVGE.mjs';
2
+ //# sourceMappingURL=llmTransportResult.mjs.map
3
+ //# sourceMappingURL=llmTransportResult.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"llmTransportResult.mjs"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thanh01.pmt/domain-kit",
3
- "version": "0.6.0",
3
+ "version": "0.6.1",
4
4
  "description": "Domain graph generation engine — decomposes any domain (software, hardware, math, science...) into structured domain graphs for curriculum planning.",
5
5
  "author": "Thanh Pham <https://github.com/thanh01pmt>",
6
6
  "license": "MIT",
@@ -51,14 +51,6 @@
51
51
  "publishConfig": {
52
52
  "access": "public"
53
53
  },
54
- "scripts": {
55
- "clean": "rm -rf dist",
56
- "build": "npm run clean && tsup",
57
- "lint": "eslint . --ext .ts",
58
- "test": "vitest run",
59
- "typecheck": "tsc --noEmit",
60
- "prepublishOnly": "npm run build"
61
- },
62
54
  "dependencies": {
63
55
  "zod": "^3.23.8"
64
56
  },
@@ -67,5 +59,12 @@
67
59
  "tsup": "^8.3.6",
68
60
  "typescript": "^5.7.3",
69
61
  "vitest": "^2.1.8"
62
+ },
63
+ "scripts": {
64
+ "clean": "rm -rf dist",
65
+ "build": "npm run clean && tsup",
66
+ "lint": "eslint . --ext .ts",
67
+ "test": "vitest run",
68
+ "typecheck": "tsc --noEmit"
70
69
  }
71
- }
70
+ }