@modular-prompt/driver 0.12.0 → 0.13.2

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 (133) hide show
  1. package/dist/anthropic/anthropic-driver.d.ts +38 -8
  2. package/dist/anthropic/anthropic-driver.d.ts.map +1 -1
  3. package/dist/anthropic/anthropic-driver.js +180 -164
  4. package/dist/anthropic/anthropic-driver.js.map +1 -1
  5. package/dist/cache-controller.d.ts +31 -0
  6. package/dist/cache-controller.d.ts.map +1 -0
  7. package/dist/cache-controller.js +2 -0
  8. package/dist/cache-controller.js.map +1 -0
  9. package/dist/cache-utils.d.ts +20 -0
  10. package/dist/cache-utils.d.ts.map +1 -0
  11. package/dist/cache-utils.js +71 -0
  12. package/dist/cache-utils.js.map +1 -0
  13. package/dist/content-utils.d.ts.map +1 -1
  14. package/dist/content-utils.js +20 -0
  15. package/dist/content-utils.js.map +1 -1
  16. package/dist/driver-registry/config-based-factory.d.ts.map +1 -1
  17. package/dist/driver-registry/config-based-factory.js +7 -0
  18. package/dist/driver-registry/config-based-factory.js.map +1 -1
  19. package/dist/driver-registry/factory-helper.d.ts.map +1 -1
  20. package/dist/driver-registry/factory-helper.js +7 -4
  21. package/dist/driver-registry/factory-helper.js.map +1 -1
  22. package/dist/driver-registry/types.d.ts +6 -0
  23. package/dist/driver-registry/types.d.ts.map +1 -1
  24. package/dist/formatter/converter.js +1 -1
  25. package/dist/formatter/converter.js.map +1 -1
  26. package/dist/google-genai/element-converter.d.ts +11 -0
  27. package/dist/google-genai/element-converter.d.ts.map +1 -0
  28. package/dist/google-genai/element-converter.js +126 -0
  29. package/dist/google-genai/element-converter.js.map +1 -0
  30. package/dist/google-genai/google-genai-cache-controller.d.ts +24 -0
  31. package/dist/google-genai/google-genai-cache-controller.d.ts.map +1 -0
  32. package/dist/google-genai/google-genai-cache-controller.js +127 -0
  33. package/dist/google-genai/google-genai-cache-controller.js.map +1 -0
  34. package/dist/google-genai/google-genai-driver.d.ts +5 -29
  35. package/dist/google-genai/google-genai-driver.d.ts.map +1 -1
  36. package/dist/google-genai/google-genai-driver.js +92 -255
  37. package/dist/google-genai/google-genai-driver.js.map +1 -1
  38. package/dist/index.d.ts +4 -0
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +3 -0
  41. package/dist/index.js.map +1 -1
  42. package/dist/mlx-ml/mlx-cache-controller.d.ts +65 -0
  43. package/dist/mlx-ml/mlx-cache-controller.d.ts.map +1 -0
  44. package/dist/mlx-ml/mlx-cache-controller.js +624 -0
  45. package/dist/mlx-ml/mlx-cache-controller.js.map +1 -0
  46. package/dist/mlx-ml/mlx-driver.d.ts +12 -7
  47. package/dist/mlx-ml/mlx-driver.d.ts.map +1 -1
  48. package/dist/mlx-ml/mlx-driver.js +192 -124
  49. package/dist/mlx-ml/mlx-driver.js.map +1 -1
  50. package/dist/mlx-ml/mlx-message-utils.d.ts +9 -0
  51. package/dist/mlx-ml/mlx-message-utils.d.ts.map +1 -0
  52. package/dist/mlx-ml/mlx-message-utils.js +71 -0
  53. package/dist/mlx-ml/mlx-message-utils.js.map +1 -0
  54. package/dist/mlx-ml/process/index.d.ts +7 -3
  55. package/dist/mlx-ml/process/index.d.ts.map +1 -1
  56. package/dist/mlx-ml/process/index.js +22 -7
  57. package/dist/mlx-ml/process/index.js.map +1 -1
  58. package/dist/mlx-ml/process/model-handlers.d.ts +4 -59
  59. package/dist/mlx-ml/process/model-handlers.d.ts.map +1 -1
  60. package/dist/mlx-ml/process/model-handlers.js +15 -14
  61. package/dist/mlx-ml/process/model-handlers.js.map +1 -1
  62. package/dist/mlx-ml/process/model-specific.d.ts +7 -0
  63. package/dist/mlx-ml/process/model-specific.d.ts.map +1 -1
  64. package/dist/mlx-ml/process/model-specific.js +3 -0
  65. package/dist/mlx-ml/process/model-specific.js.map +1 -1
  66. package/dist/mlx-ml/process/process-communication.d.ts +3 -0
  67. package/dist/mlx-ml/process/process-communication.d.ts.map +1 -1
  68. package/dist/mlx-ml/process/process-communication.js +13 -0
  69. package/dist/mlx-ml/process/process-communication.js.map +1 -1
  70. package/dist/mlx-ml/process/queue.d.ts +5 -2
  71. package/dist/mlx-ml/process/queue.d.ts.map +1 -1
  72. package/dist/mlx-ml/process/queue.js +101 -14
  73. package/dist/mlx-ml/process/queue.js.map +1 -1
  74. package/dist/mlx-ml/process/response-processor.d.ts +10 -0
  75. package/dist/mlx-ml/process/response-processor.d.ts.map +1 -1
  76. package/dist/mlx-ml/process/response-processor.js +23 -1
  77. package/dist/mlx-ml/process/response-processor.js.map +1 -1
  78. package/dist/mlx-ml/process/types.d.ts +50 -4
  79. package/dist/mlx-ml/process/types.d.ts.map +1 -1
  80. package/dist/mlx-ml/tool-call-parser/content-parsers.d.ts +9 -0
  81. package/dist/mlx-ml/tool-call-parser/content-parsers.d.ts.map +1 -0
  82. package/dist/mlx-ml/tool-call-parser/content-parsers.js +223 -0
  83. package/dist/mlx-ml/tool-call-parser/content-parsers.js.map +1 -0
  84. package/dist/mlx-ml/tool-call-parser/detector.d.ts +16 -0
  85. package/dist/mlx-ml/tool-call-parser/detector.d.ts.map +1 -0
  86. package/dist/mlx-ml/tool-call-parser/detector.js +58 -0
  87. package/dist/mlx-ml/tool-call-parser/detector.js.map +1 -0
  88. package/dist/mlx-ml/tool-call-parser/index.d.ts +7 -0
  89. package/dist/mlx-ml/tool-call-parser/index.d.ts.map +1 -0
  90. package/dist/mlx-ml/tool-call-parser/index.js +136 -0
  91. package/dist/mlx-ml/tool-call-parser/index.js.map +1 -0
  92. package/dist/mlx-ml/tool-call-parser/tool-formatter.d.ts +8 -0
  93. package/dist/mlx-ml/tool-call-parser/tool-formatter.d.ts.map +1 -0
  94. package/dist/mlx-ml/tool-call-parser/tool-formatter.js +88 -0
  95. package/dist/mlx-ml/tool-call-parser/tool-formatter.js.map +1 -0
  96. package/dist/mlx-ml/tool-call-parser/types.d.ts +18 -0
  97. package/dist/mlx-ml/tool-call-parser/types.d.ts.map +1 -0
  98. package/dist/mlx-ml/tool-call-parser/types.js +2 -0
  99. package/dist/mlx-ml/tool-call-parser/types.js.map +1 -0
  100. package/dist/mlx-ml/tool-call-parser/utils.d.ts +5 -0
  101. package/dist/mlx-ml/tool-call-parser/utils.d.ts.map +1 -0
  102. package/dist/mlx-ml/tool-call-parser/utils.js +77 -0
  103. package/dist/mlx-ml/tool-call-parser/utils.js.map +1 -0
  104. package/dist/types.d.ts +2 -0
  105. package/dist/types.d.ts.map +1 -1
  106. package/package.json +9 -4
  107. package/src/mlx-ml/python/__main__.py +41 -449
  108. package/src/mlx-ml/python/backends/__init__.py +3 -0
  109. package/src/mlx-ml/python/backends/base.py +84 -0
  110. package/src/mlx-ml/python/backends/mlx_lm.py +202 -0
  111. package/src/mlx-ml/python/backends/mlx_vlm.py +99 -0
  112. package/src/mlx-ml/python/handlers/__init__.py +6 -0
  113. package/src/mlx-ml/python/handlers/cache.py +81 -0
  114. package/src/mlx-ml/python/handlers/capabilities.py +6 -0
  115. package/src/mlx-ml/python/handlers/chat.py +221 -0
  116. package/src/mlx-ml/python/handlers/completion.py +36 -0
  117. package/src/mlx-ml/python/handlers/format_test.py +70 -0
  118. package/src/mlx-ml/python/handlers/tokenize.py +63 -0
  119. package/src/mlx-ml/python/pyproject.toml +13 -3
  120. package/src/mlx-ml/python/server.py +126 -0
  121. package/src/mlx-ml/python/tests/__init__.py +0 -0
  122. package/src/mlx-ml/python/utils/__init__.py +0 -0
  123. package/src/mlx-ml/python/utils/prompt_builder.py +54 -0
  124. package/src/mlx-ml/python/{token_utils.py → utils/token_utils.py} +9 -40
  125. package/src/mlx-ml/python/uv.lock +266 -41
  126. package/dist/mlx-ml/tool-call-parser.d.ts +0 -30
  127. package/dist/mlx-ml/tool-call-parser.d.ts.map +0 -1
  128. package/dist/mlx-ml/tool-call-parser.js +0 -623
  129. package/dist/mlx-ml/tool-call-parser.js.map +0 -1
  130. /package/src/mlx-ml/python/{example_basic.py → examples/example_basic.py} +0 -0
  131. /package/src/mlx-ml/python/{example_tool_call.py → examples/example_tool_call.py} +0 -0
  132. /package/src/mlx-ml/python/{chat_template_constraints.py → utils/chat_template_constraints.py} +0 -0
  133. /package/src/mlx-ml/python/{vlm_utils.py → utils/vlm_utils.py} +0 -0
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export { hasToolCalls, isToolResult } from './types.js';
2
+ export { isElementCacheable, partitionPrompt } from './cache-utils.js';
2
3
  // Query Logger
3
4
  export { QueryLogger } from './query-logger.js';
4
5
  // Test driver
@@ -18,10 +19,12 @@ export { AnthropicDriver } from './anthropic/anthropic-driver.js';
18
19
  export { MlxDriver } from './mlx-ml/mlx-driver.js';
19
20
  // MLX ML low-level process API
20
21
  export { MlxProcess } from './mlx-ml/process/index.js';
22
+ export { MlxCacheController, } from './mlx-ml/mlx-cache-controller.js';
21
23
  // VertexAI driver
22
24
  export { VertexAIDriver } from './vertexai/vertexai-driver.js';
23
25
  // GoogleGenAI driver
24
26
  export { GoogleGenAIDriver } from './google-genai/google-genai-driver.js';
27
+ export { GoogleGenAICacheController } from './google-genai/google-genai-cache-controller.js';
25
28
  export { DefaultFormatter } from './formatter/formatter.js';
26
29
  export { formatPromptAsMessages, formatCompletionPrompt, defaultFormatterTexts, ECHO_SPECIAL_TOKENS } from './formatter/converter.js';
27
30
  // Driver Registry and AI Service exports
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAExD,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,cAAc;AACd,OAAO,EACL,UAAU,EAGX,MAAM,kBAAkB,CAAC;AAE1B,cAAc;AACd,OAAO,EACL,UAAU,EAEX,MAAM,kBAAkB,CAAC;AAE1B,gBAAgB;AAChB,OAAO,EACL,YAAY,EAGb,MAAM,2BAA2B,CAAC;AAEnC,gBAAgB;AAChB,OAAO,EACL,YAAY,EAEb,MAAM,2BAA2B,CAAC;AAEnC,cAAc;AACd,OAAO,EACL,UAAU,EAEX,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAEhC,mBAAmB;AACnB,OAAO,EACL,eAAe,EAIhB,MAAM,iCAAiC,CAAC;AAEzC,gBAAgB;AAChB,OAAO,EACL,SAAS,EAEV,MAAM,wBAAwB,CAAC;AAEhC,+BAA+B;AAC/B,OAAO,EACL,UAAU,EACX,MAAM,2BAA2B,CAAC;AAOnC,kBAAkB;AAClB,OAAO,EACL,cAAc,EAGf,MAAM,+BAA+B,CAAC;AAEvC,qBAAqB;AACrB,OAAO,EACL,iBAAiB,EAGlB,MAAM,uCAAuC,CAAC;AAQ/C,OAAO,EACL,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAElC,yCAAyC;AACzC,OAAO,EACL,SAAS,EACT,cAAc,EACd,iBAAiB,EAGlB,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AASxD,OAAO,EACL,kBAAkB,EAClB,eAAe,EAEhB,MAAM,kBAAkB,CAAC;AAE1B,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,cAAc;AACd,OAAO,EACL,UAAU,EAGX,MAAM,kBAAkB,CAAC;AAE1B,cAAc;AACd,OAAO,EACL,UAAU,EAEX,MAAM,kBAAkB,CAAC;AAE1B,gBAAgB;AAChB,OAAO,EACL,YAAY,EAGb,MAAM,2BAA2B,CAAC;AAEnC,gBAAgB;AAChB,OAAO,EACL,YAAY,EAEb,MAAM,2BAA2B,CAAC;AAEnC,cAAc;AACd,OAAO,EACL,UAAU,EAEX,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAEhC,mBAAmB;AACnB,OAAO,EACL,eAAe,EAIhB,MAAM,iCAAiC,CAAC;AAEzC,gBAAgB;AAChB,OAAO,EACL,SAAS,EAEV,MAAM,wBAAwB,CAAC;AAEhC,+BAA+B;AAC/B,OAAO,EACL,UAAU,EACX,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,kBAAkB,GACnB,MAAM,kCAAkC,CAAC;AAO1C,kBAAkB;AAClB,OAAO,EACL,cAAc,EAGf,MAAM,+BAA+B,CAAC;AAEvC,qBAAqB;AACrB,OAAO,EACL,iBAAiB,EAGlB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EACL,0BAA0B,EAE3B,MAAM,iDAAiD,CAAC;AAQzD,OAAO,EACL,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAElC,yCAAyC;AACzC,OAAO,EACL,SAAS,EACT,cAAc,EACd,iBAAiB,EAGlB,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,65 @@
1
+ import type { PromptCacheController, CachePrepareParams, CacheHandle } from '../cache-controller.js';
2
+ import type { FormatterOptions } from '../formatter/types.js';
3
+ import type { MlxProcess } from './process/index.js';
4
+ import type { MlxMessage } from './process/index.js';
5
+ export interface MlxCacheControllerOptions {
6
+ /** 固定キャッシュディレクトリ。指定時はauto-cleanupが無効になる */
7
+ cacheDir?: string;
8
+ }
9
+ export declare class MlxCacheController implements PromptCacheController {
10
+ private cacheByHash;
11
+ private inflightRequests;
12
+ private process?;
13
+ private cacheDir;
14
+ private managedDir;
15
+ private cacheDirReady;
16
+ private closed;
17
+ private bound;
18
+ private cleanupHandler?;
19
+ private messageProcessor?;
20
+ private formatterOptions;
21
+ private lastHandle?;
22
+ private lastElementHashes?;
23
+ private lastHandleModel?;
24
+ private lastHandleFormatterOptionsHash?;
25
+ private lastHandleToolsHash?;
26
+ private lastHandleReasoningEffort?;
27
+ private cacheIndex;
28
+ private stats;
29
+ constructor(options?: MlxCacheControllerOptions);
30
+ bind(process: MlxProcess, formatterOptions: FormatterOptions, messageProcessor?: (messages: MlxMessage[]) => MlxMessage[]): Promise<void>;
31
+ private ensureCacheDir;
32
+ private get indexPath();
33
+ private readMetaTokenCount;
34
+ private loadIndex;
35
+ private saveIndex;
36
+ private computeFormatterOptionsHash;
37
+ private computeToolsHash;
38
+ private updateLastCache;
39
+ private clearLastCache;
40
+ private computeElementHashes;
41
+ private readPrefixMeta;
42
+ private computeTokenPrefixHash;
43
+ private computePrefixInfo;
44
+ private findBestBase;
45
+ private addToIndex;
46
+ private computeCacheKey;
47
+ private generateCachePath;
48
+ recordQuery(): void;
49
+ recordPromptTokens(newPromptTokens: number, cacheTokensUsed: number): void;
50
+ readCacheTokenCount(cachePath: string): number;
51
+ getStats(): {
52
+ totalQueries: number;
53
+ incremental: number;
54
+ fresh: number;
55
+ totalPromptTokens: number;
56
+ prefillReusedTokens: number;
57
+ cacheGrowthTokens: number;
58
+ };
59
+ prepare(params: CachePrepareParams): Promise<CacheHandle>;
60
+ private static readonly EMPTY_HANDLE;
61
+ private createCache;
62
+ release(ref: string): void;
63
+ close(): Promise<void>;
64
+ }
65
+ //# sourceMappingURL=mlx-cache-controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mlx-cache-controller.d.ts","sourceRoot":"","sources":["../../src/mlx-ml/mlx-cache-controller.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,OAAO,KAAK,EAAE,UAAU,EAAqB,MAAM,oBAAoB,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAsBrD,MAAM,WAAW,yBAAyB;IACxC,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAWD,qBAAa,kBAAmB,YAAW,qBAAqB;IAC9D,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,gBAAgB,CAA2C;IACnE,OAAO,CAAC,OAAO,CAAC,CAAa;IAC7B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,cAAc,CAAC,CAAa;IACpC,OAAO,CAAC,gBAAgB,CAAC,CAA2C;IACpE,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,UAAU,CAAC,CAAc;IACjC,OAAO,CAAC,iBAAiB,CAAC,CAAW;IACrC,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,8BAA8B,CAAC,CAAS;IAChD,OAAO,CAAC,mBAAmB,CAAC,CAAS;IACrC,OAAO,CAAC,yBAAyB,CAAC,CAAS;IAC3C,OAAO,CAAC,UAAU,CAA2C;IAC7D,OAAO,CAAC,KAAK,CAOX;gBAEU,OAAO,CAAC,EAAE,yBAAyB;IAWzC,IAAI,CACR,OAAO,EAAE,UAAU,EACnB,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,GAC1D,OAAO,CAAC,IAAI,CAAC;YAsBF,cAAc;IAM5B,OAAO,KAAK,SAAS,GAEpB;IAED,OAAO,CAAC,kBAAkB;YAUZ,SAAS;YAkBT,SAAS;IAevB,OAAO,CAAC,2BAA2B;IAOnC,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,sBAAsB;YAMhB,iBAAiB;YAmFjB,YAAY;IAgI1B,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,eAAe;IAoBvB,OAAO,CAAC,iBAAiB;IAIzB,WAAW,IAAI,IAAI;IAInB,kBAAkB,CAAC,eAAe,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI;IAK1E,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAI9C,QAAQ;;;;;;;;IAWF,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC;IAsC/D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAElC;YAEY,WAAW;IA+IzB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAmBpB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CA6B7B"}