@holokai/holo-sdk 1.4.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 (211) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +264 -0
  3. package/dist/client/builder.d.ts +82 -0
  4. package/dist/client/builder.d.ts.map +1 -0
  5. package/dist/client/builder.js +207 -0
  6. package/dist/client/builder.js.map +1 -0
  7. package/dist/client/client.d.ts +148 -0
  8. package/dist/client/client.d.ts.map +1 -0
  9. package/dist/client/client.js +309 -0
  10. package/dist/client/client.js.map +1 -0
  11. package/dist/client/errors.d.ts +20 -0
  12. package/dist/client/errors.d.ts.map +1 -0
  13. package/dist/client/errors.js +36 -0
  14. package/dist/client/errors.js.map +1 -0
  15. package/dist/client/index.d.ts +11 -0
  16. package/dist/client/index.d.ts.map +1 -0
  17. package/dist/client/index.js +8 -0
  18. package/dist/client/index.js.map +1 -0
  19. package/dist/client/merge.d.ts +28 -0
  20. package/dist/client/merge.d.ts.map +1 -0
  21. package/dist/client/merge.js +185 -0
  22. package/dist/client/merge.js.map +1 -0
  23. package/dist/client/output.d.ts +26 -0
  24. package/dist/client/output.d.ts.map +1 -0
  25. package/dist/client/output.js +75 -0
  26. package/dist/client/output.js.map +1 -0
  27. package/dist/client/runner.d.ts +92 -0
  28. package/dist/client/runner.d.ts.map +1 -0
  29. package/dist/client/runner.js +121 -0
  30. package/dist/client/runner.js.map +1 -0
  31. package/dist/client/sse.d.ts +3 -0
  32. package/dist/client/sse.d.ts.map +1 -0
  33. package/dist/client/sse.js +72 -0
  34. package/dist/client/sse.js.map +1 -0
  35. package/dist/client/stream.d.ts +60 -0
  36. package/dist/client/stream.d.ts.map +1 -0
  37. package/dist/client/stream.js +137 -0
  38. package/dist/client/stream.js.map +1 -0
  39. package/dist/client/transport.d.ts +42 -0
  40. package/dist/client/transport.d.ts.map +1 -0
  41. package/dist/client/transport.js +129 -0
  42. package/dist/client/transport.js.map +1 -0
  43. package/dist/client/types.d.ts +41 -0
  44. package/dist/client/types.d.ts.map +1 -0
  45. package/dist/client/types.js +2 -0
  46. package/dist/client/types.js.map +1 -0
  47. package/dist/core/async-event-queue.d.ts +11 -0
  48. package/dist/core/async-event-queue.d.ts.map +1 -0
  49. package/dist/core/async-event-queue.js +38 -0
  50. package/dist/core/async-event-queue.js.map +1 -0
  51. package/dist/core/binary.d.ts +3 -0
  52. package/dist/core/binary.d.ts.map +1 -0
  53. package/dist/core/binary.js +11 -0
  54. package/dist/core/binary.js.map +1 -0
  55. package/dist/core/errors.d.ts +11 -0
  56. package/dist/core/errors.d.ts.map +1 -0
  57. package/dist/core/errors.js +24 -0
  58. package/dist/core/errors.js.map +1 -0
  59. package/dist/core/headers.d.ts +3 -0
  60. package/dist/core/headers.d.ts.map +1 -0
  61. package/dist/core/headers.js +42 -0
  62. package/dist/core/headers.js.map +1 -0
  63. package/dist/core/index.d.ts +13 -0
  64. package/dist/core/index.d.ts.map +1 -0
  65. package/dist/core/index.js +13 -0
  66. package/dist/core/index.js.map +1 -0
  67. package/dist/core/logger.d.ts +37 -0
  68. package/dist/core/logger.d.ts.map +1 -0
  69. package/dist/core/logger.js +73 -0
  70. package/dist/core/logger.js.map +1 -0
  71. package/dist/core/pick-defined.d.ts +9 -0
  72. package/dist/core/pick-defined.d.ts.map +1 -0
  73. package/dist/core/pick-defined.js +79 -0
  74. package/dist/core/pick-defined.js.map +1 -0
  75. package/dist/core/safe-parse.d.ts +2 -0
  76. package/dist/core/safe-parse.d.ts.map +1 -0
  77. package/dist/core/safe-parse.js +11 -0
  78. package/dist/core/safe-parse.js.map +1 -0
  79. package/dist/core/sanitize.object.d.ts +2 -0
  80. package/dist/core/sanitize.object.d.ts.map +1 -0
  81. package/dist/core/sanitize.object.js +10 -0
  82. package/dist/core/sanitize.object.js.map +1 -0
  83. package/dist/core/stable-id.d.ts +2 -0
  84. package/dist/core/stable-id.d.ts.map +1 -0
  85. package/dist/core/stable-id.js +11 -0
  86. package/dist/core/stable-id.js.map +1 -0
  87. package/dist/core/stringify-any.d.ts +2 -0
  88. package/dist/core/stringify-any.d.ts.map +1 -0
  89. package/dist/core/stringify-any.js +4 -0
  90. package/dist/core/stringify-any.js.map +1 -0
  91. package/dist/core/time-utils.d.ts +2 -0
  92. package/dist/core/time-utils.d.ts.map +1 -0
  93. package/dist/core/time-utils.js +2 -0
  94. package/dist/core/time-utils.js.map +1 -0
  95. package/dist/core/tokenizer.d.ts +2 -0
  96. package/dist/core/tokenizer.d.ts.map +1 -0
  97. package/dist/core/tokenizer.js +12 -0
  98. package/dist/core/tokenizer.js.map +1 -0
  99. package/dist/holo/content.d.ts +9 -0
  100. package/dist/holo/content.d.ts.map +1 -0
  101. package/dist/holo/content.js +22 -0
  102. package/dist/holo/content.js.map +1 -0
  103. package/dist/holo/factories/index.d.ts +2 -0
  104. package/dist/holo/factories/index.d.ts.map +1 -0
  105. package/dist/holo/factories/index.js +2 -0
  106. package/dist/holo/factories/index.js.map +1 -0
  107. package/dist/holo/factories/request-factory.d.ts +3 -0
  108. package/dist/holo/factories/request-factory.d.ts.map +1 -0
  109. package/dist/holo/factories/request-factory.js +8 -0
  110. package/dist/holo/factories/request-factory.js.map +1 -0
  111. package/dist/holo/index.d.ts +3 -0
  112. package/dist/holo/index.d.ts.map +1 -0
  113. package/dist/holo/index.js +3 -0
  114. package/dist/holo/index.js.map +1 -0
  115. package/dist/index.d.ts +5 -0
  116. package/dist/index.d.ts.map +1 -0
  117. package/dist/index.js +5 -0
  118. package/dist/index.js.map +1 -0
  119. package/dist/matching/index.d.ts +3 -0
  120. package/dist/matching/index.d.ts.map +1 -0
  121. package/dist/matching/index.js +2 -0
  122. package/dist/matching/index.js.map +1 -0
  123. package/dist/matching/normalize.d.ts +19 -0
  124. package/dist/matching/normalize.d.ts.map +1 -0
  125. package/dist/matching/normalize.js +169 -0
  126. package/dist/matching/normalize.js.map +1 -0
  127. package/dist/notification/index.d.ts +4 -0
  128. package/dist/notification/index.d.ts.map +1 -0
  129. package/dist/notification/index.js +4 -0
  130. package/dist/notification/index.js.map +1 -0
  131. package/dist/notification/service.d.ts +8 -0
  132. package/dist/notification/service.d.ts.map +1 -0
  133. package/dist/notification/service.js +16 -0
  134. package/dist/notification/service.js.map +1 -0
  135. package/dist/notification/store.d.ts +2 -0
  136. package/dist/notification/store.d.ts.map +1 -0
  137. package/dist/notification/store.js +2 -0
  138. package/dist/notification/store.js.map +1 -0
  139. package/dist/notification/types.d.ts +11 -0
  140. package/dist/notification/types.d.ts.map +1 -0
  141. package/dist/notification/types.js +63 -0
  142. package/dist/notification/types.js.map +1 -0
  143. package/dist/plugin/base.d.ts +29 -0
  144. package/dist/plugin/base.d.ts.map +1 -0
  145. package/dist/plugin/base.js +105 -0
  146. package/dist/plugin/base.js.map +1 -0
  147. package/dist/plugin/errors.d.ts +9 -0
  148. package/dist/plugin/errors.d.ts.map +1 -0
  149. package/dist/plugin/errors.js +15 -0
  150. package/dist/plugin/errors.js.map +1 -0
  151. package/dist/plugin/index.d.ts +5 -0
  152. package/dist/plugin/index.d.ts.map +1 -0
  153. package/dist/plugin/index.js +5 -0
  154. package/dist/plugin/index.js.map +1 -0
  155. package/dist/plugin/loader.d.ts +14 -0
  156. package/dist/plugin/loader.d.ts.map +1 -0
  157. package/dist/plugin/loader.js +67 -0
  158. package/dist/plugin/loader.js.map +1 -0
  159. package/dist/plugin/normalize.d.ts +3 -0
  160. package/dist/plugin/normalize.d.ts.map +1 -0
  161. package/dist/plugin/normalize.js +160 -0
  162. package/dist/plugin/normalize.js.map +1 -0
  163. package/dist/provider/auditor/base.d.ts +47 -0
  164. package/dist/provider/auditor/base.d.ts.map +1 -0
  165. package/dist/provider/auditor/base.js +254 -0
  166. package/dist/provider/auditor/base.js.map +1 -0
  167. package/dist/provider/auditor/index.d.ts +2 -0
  168. package/dist/provider/auditor/index.d.ts.map +1 -0
  169. package/dist/provider/auditor/index.js +2 -0
  170. package/dist/provider/auditor/index.js.map +1 -0
  171. package/dist/provider/base.d.ts +36 -0
  172. package/dist/provider/base.d.ts.map +1 -0
  173. package/dist/provider/base.js +185 -0
  174. package/dist/provider/base.js.map +1 -0
  175. package/dist/provider/event-processor.d.ts +13 -0
  176. package/dist/provider/event-processor.d.ts.map +1 -0
  177. package/dist/provider/event-processor.js +22 -0
  178. package/dist/provider/event-processor.js.map +1 -0
  179. package/dist/provider/index.d.ts +7 -0
  180. package/dist/provider/index.d.ts.map +1 -0
  181. package/dist/provider/index.js +7 -0
  182. package/dist/provider/index.js.map +1 -0
  183. package/dist/provider/translator/base.d.ts +15 -0
  184. package/dist/provider/translator/base.d.ts.map +1 -0
  185. package/dist/provider/translator/base.js +33 -0
  186. package/dist/provider/translator/base.js.map +1 -0
  187. package/dist/provider/translator/index.d.ts +3 -0
  188. package/dist/provider/translator/index.d.ts.map +1 -0
  189. package/dist/provider/translator/index.js +3 -0
  190. package/dist/provider/translator/index.js.map +1 -0
  191. package/dist/provider/translator/stream.d.ts +24 -0
  192. package/dist/provider/translator/stream.d.ts.map +1 -0
  193. package/dist/provider/translator/stream.js +50 -0
  194. package/dist/provider/translator/stream.js.map +1 -0
  195. package/dist/provider/wire/base.d.ts +39 -0
  196. package/dist/provider/wire/base.d.ts.map +1 -0
  197. package/dist/provider/wire/base.js +106 -0
  198. package/dist/provider/wire/base.js.map +1 -0
  199. package/dist/provider/wire/holo.wire.adapter.d.ts +33 -0
  200. package/dist/provider/wire/holo.wire.adapter.d.ts.map +1 -0
  201. package/dist/provider/wire/holo.wire.adapter.js +220 -0
  202. package/dist/provider/wire/holo.wire.adapter.js.map +1 -0
  203. package/dist/provider/wire/index.d.ts +3 -0
  204. package/dist/provider/wire/index.d.ts.map +1 -0
  205. package/dist/provider/wire/index.js +3 -0
  206. package/dist/provider/wire/index.js.map +1 -0
  207. package/dist/provider/worker-request-factory.d.ts +23 -0
  208. package/dist/provider/worker-request-factory.d.ts.map +1 -0
  209. package/dist/provider/worker-request-factory.js +38 -0
  210. package/dist/provider/worker-request-factory.js.map +1 -0
  211. package/package.json +106 -0
@@ -0,0 +1,3 @@
1
+ import type { PluginPricingSheet, PricingDataset } from '@holokai/holo-types/plugin';
2
+ export declare function normalizePricingDataset(dataset: PricingDataset): Map<string, PluginPricingSheet>;
3
+ //# sourceMappingURL=normalize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../src/plugin/normalize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,kBAAkB,EAAE,cAAc,EAAiB,MAAM,4BAA4B,CAAC;AAoBvH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAyIhG"}
@@ -0,0 +1,160 @@
1
+ export function normalizePricingDataset(dataset) {
2
+ const snapshotsByName = new Map(dataset.pricing_snapshots.map(s => [s.name, s]));
3
+ // Step 1: Build model_id → family pricing lookup
4
+ const modelIdCosts = new Map();
5
+ for (const mid of dataset.model_ids) {
6
+ if (!mid.pricing_snapshot)
7
+ continue;
8
+ const snapshot = snapshotsByName.get(mid.pricing_snapshot);
9
+ if (!snapshot)
10
+ continue;
11
+ const familyModel = snapshot.models.find(m => m.model_name === mid.family);
12
+ if (!familyModel)
13
+ continue;
14
+ const entry = {
15
+ input_cost: familyModel.input_cost,
16
+ output_cost: familyModel.output_cost,
17
+ release_date: mid.release_date,
18
+ shutdown_date: mid.shutdown_date,
19
+ };
20
+ if (familyModel.cache_read_cost !== undefined)
21
+ entry.cache_read_cost = familyModel.cache_read_cost;
22
+ if (familyModel.cache_write_cost !== undefined)
23
+ entry.cache_write_cost = familyModel.cache_write_cost;
24
+ if (familyModel.batch_input_cost !== undefined)
25
+ entry.batch_input_cost = familyModel.batch_input_cost;
26
+ if (familyModel.batch_output_cost !== undefined)
27
+ entry.batch_output_cost = familyModel.batch_output_cost;
28
+ if (familyModel.context_threshold !== undefined)
29
+ entry.context_threshold = familyModel.context_threshold;
30
+ if (familyModel.extended_input_cost !== undefined)
31
+ entry.extended_input_cost = familyModel.extended_input_cost;
32
+ if (familyModel.extended_output_cost !== undefined)
33
+ entry.extended_output_cost = familyModel.extended_output_cost;
34
+ if (familyModel.token_costs !== undefined)
35
+ entry.token_costs = familyModel.token_costs;
36
+ modelIdCosts.set(mid.model_id, entry);
37
+ }
38
+ // Step 2: Collect all distinct effective dates
39
+ const dateSet = new Set();
40
+ for (const snapshot of dataset.pricing_snapshots) {
41
+ dateSet.add(snapshot.effective_from);
42
+ }
43
+ for (const mid of dataset.model_ids) {
44
+ if (mid.pricing_snapshot) {
45
+ dateSet.add(mid.release_date);
46
+ }
47
+ }
48
+ const sortedDates = Array.from(dateSet).sort();
49
+ // Build index: date → snapshots effective at that date
50
+ const snapshotsByDate = new Map();
51
+ for (const snapshot of dataset.pricing_snapshots) {
52
+ const list = snapshotsByDate.get(snapshot.effective_from) ?? [];
53
+ list.push(snapshot);
54
+ snapshotsByDate.set(snapshot.effective_from, list);
55
+ }
56
+ // Build index: date → model_ids releasing at that date
57
+ const modelIdsByDate = new Map();
58
+ for (const mid of dataset.model_ids) {
59
+ if (!mid.pricing_snapshot)
60
+ continue;
61
+ const list = modelIdsByDate.get(mid.release_date) ?? [];
62
+ list.push(mid);
63
+ modelIdsByDate.set(mid.release_date, list);
64
+ }
65
+ // Step 3: Build compiled snapshots
66
+ let prevModels = new Map();
67
+ const compiledSnapshots = [];
68
+ for (const date of sortedDates) {
69
+ const currentModels = new Map(prevModels);
70
+ // Apply pricing snapshot changes at this date
71
+ const snapshots = snapshotsByDate.get(date);
72
+ if (snapshots) {
73
+ for (const snapshot of snapshots) {
74
+ for (const model of snapshot.models) {
75
+ currentModels.set(model.model_name, { ...model });
76
+ }
77
+ }
78
+ }
79
+ // Apply model_id entries releasing at this date (alias expansion)
80
+ const releasingModels = modelIdsByDate.get(date);
81
+ if (releasingModels) {
82
+ for (const mid of releasingModels) {
83
+ const costs = modelIdCosts.get(mid.model_id);
84
+ if (!costs)
85
+ continue;
86
+ // Add the model_id itself
87
+ currentModels.set(mid.model_id, {
88
+ model_name: mid.model_id,
89
+ ...extractCosts(costs),
90
+ });
91
+ // Add aliases
92
+ if (mid.aliases) {
93
+ for (const alias of mid.aliases) {
94
+ currentModels.set(alias, {
95
+ model_name: alias,
96
+ ...extractCosts(costs),
97
+ });
98
+ }
99
+ }
100
+ }
101
+ }
102
+ // Remove shutdown models
103
+ for (const [name, _] of currentModels) {
104
+ const mid = dataset.model_ids.find(m => m.model_id === name);
105
+ if (mid?.shutdown_date && mid.shutdown_date <= date) {
106
+ currentModels.delete(name);
107
+ if (mid.aliases) {
108
+ for (const alias of mid.aliases) {
109
+ currentModels.delete(alias);
110
+ }
111
+ }
112
+ }
113
+ }
114
+ compiledSnapshots.push({ date, models: currentModels });
115
+ prevModels = currentModels;
116
+ }
117
+ // Step 4 & 5: Compute effective_to and build result map
118
+ const result = new Map();
119
+ for (let i = 0; i < compiledSnapshots.length; i++) {
120
+ const snapshot = compiledSnapshots[i];
121
+ const effectiveTo = i + 1 < compiledSnapshots.length
122
+ ? compiledSnapshots[i + 1].date
123
+ : undefined;
124
+ const version = snapshot.date;
125
+ const sheet = {
126
+ name: `${dataset.name} ${version}`,
127
+ version,
128
+ effective_from: snapshot.date,
129
+ models: Array.from(snapshot.models.values()),
130
+ };
131
+ if (effectiveTo !== undefined)
132
+ sheet.effective_to = effectiveTo;
133
+ result.set(version, sheet);
134
+ }
135
+ return result;
136
+ }
137
+ function extractCosts(costs) {
138
+ const result = {
139
+ input_cost: costs.input_cost,
140
+ output_cost: costs.output_cost,
141
+ };
142
+ if (costs.cache_read_cost !== undefined)
143
+ result.cache_read_cost = costs.cache_read_cost;
144
+ if (costs.cache_write_cost !== undefined)
145
+ result.cache_write_cost = costs.cache_write_cost;
146
+ if (costs.batch_input_cost !== undefined)
147
+ result.batch_input_cost = costs.batch_input_cost;
148
+ if (costs.batch_output_cost !== undefined)
149
+ result.batch_output_cost = costs.batch_output_cost;
150
+ if (costs.context_threshold !== undefined)
151
+ result.context_threshold = costs.context_threshold;
152
+ if (costs.extended_input_cost !== undefined)
153
+ result.extended_input_cost = costs.extended_input_cost;
154
+ if (costs.extended_output_cost !== undefined)
155
+ result.extended_output_cost = costs.extended_output_cost;
156
+ if (costs.token_costs !== undefined)
157
+ result.token_costs = costs.token_costs;
158
+ return result;
159
+ }
160
+ //# sourceMappingURL=normalize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/plugin/normalize.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import { HoloWorkerRequest, ProviderDoneEvent, ProviderEnvelope, ProviderErrorEvent, ProviderRequest, ProviderResponse, ProviderResponseStatus, WorkerRequestEnvelope, WorkerResponseEnvelope } from "@holokai/holo-types";
2
+ import type { HoloFinishReason, HoloUsage } from "@holokai/holo-types/holo";
3
+ import { ClassLogger } from "../../core";
4
+ import type { IAuditor } from "@holokai/holo-types/provider";
5
+ import { ProviderEvent } from "@holokai/holo-types/provider";
6
+ import type { FinishReason, ProviderResponseMetrics } from "@holokai/holo-types/entities";
7
+ export type PromptRole = "user" | "system";
8
+ type RoleLike = {
9
+ role?: string;
10
+ };
11
+ export declare function normalizeText(text: string): string | null;
12
+ /**
13
+ * Extract text from OpenAI / Anthropic / Ollama-style `content`.
14
+ * Supports:
15
+ * - string
16
+ * - array of blocks with { type: "text" | "input_text", text: string }
17
+ * - array of blocks with { text: string }
18
+ */
19
+ export declare function extractTextContent(content: unknown): string | null;
20
+ /**
21
+ * Find the first/last message with the given role and extract text from it.
22
+ */
23
+ export declare function extractPromptByRole<T extends RoleLike>(items: T[] | undefined, role: PromptRole, strategy: "first" | "last", getText: (item: T) => string | null): string | null;
24
+ /**
25
+ * For top-level system prompt-like fields.
26
+ * Returns string as-is, otherwise JSON stringifies structured values.
27
+ */
28
+ export declare function extractTopLevelPrompt(value: unknown): string | null;
29
+ export declare abstract class BaseAuditor extends ClassLogger implements IAuditor {
30
+ abstract readonly provider: string;
31
+ mapFinishReason(nativeResponse: any, _protocolName?: string): HoloFinishReason;
32
+ mapUsage(nativeResponse: any, _protocolName?: string): HoloUsage;
33
+ createWorkerRequestEnvelope(workerRequest: HoloWorkerRequest): Promise<WorkerRequestEnvelope>;
34
+ createWorkerResponseEnvelope(workerRequest: HoloWorkerRequest, workerId?: string): Promise<WorkerResponseEnvelope>;
35
+ auditRequest(workerRequest: HoloWorkerRequest): Promise<ProviderRequest>;
36
+ auditResponse(envelope: WorkerResponseEnvelope, providerEvent: ProviderDoneEvent | ProviderErrorEvent): Promise<ProviderResponse>;
37
+ protected mapResponseMetrics(providerEvent: ProviderDoneEvent | ProviderErrorEvent, protocolName: string): Promise<ProviderResponseMetrics>;
38
+ protected abstract mapProviderResponseMetrics(providerEvent: ProviderDoneEvent, protocolName: string): Promise<Partial<ProviderResponseMetrics>>;
39
+ protected mapResponseStatus(providerEvent: ProviderEvent, _envelope: WorkerResponseEnvelope): Promise<ProviderResponseStatus>;
40
+ protected hasTools(payload: any): boolean;
41
+ protected abstract extractFinishReason(providerEvent: ProviderDoneEvent | ProviderErrorEvent, envelope: WorkerResponseEnvelope): Promise<FinishReason | undefined>;
42
+ protected extractNativeError(providerEvent: ProviderErrorEvent): Promise<any>;
43
+ protected abstract extractRequestOptions(workerRequest: HoloWorkerRequest): Promise<Record<string, any>>;
44
+ protected abstract createProviderEnvelope(workerRequest: HoloWorkerRequest): Promise<ProviderEnvelope>;
45
+ }
46
+ export {};
47
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/provider/auditor/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,254 @@
1
+ import { ProviderEventType, ProviderResponseStatus } from "@holokai/holo-types";
2
+ import { ClassLogger, pickDefined } from "../../core";
3
+ export function normalizeText(text) {
4
+ const trimmed = text.trim();
5
+ return trimmed.length > 0 ? trimmed : null;
6
+ }
7
+ /**
8
+ * Extract text from OpenAI / Anthropic / Ollama-style `content`.
9
+ * Supports:
10
+ * - string
11
+ * - array of blocks with { type: "text" | "input_text", text: string }
12
+ * - array of blocks with { text: string }
13
+ */
14
+ export function extractTextContent(content) {
15
+ if (typeof content === "string") {
16
+ return normalizeText(content);
17
+ }
18
+ if (!Array.isArray(content))
19
+ return null;
20
+ const text = content
21
+ .flatMap((part) => {
22
+ if (!part || typeof part !== "object")
23
+ return [];
24
+ if ((part.type === "text" || part.type === "input_text") &&
25
+ typeof part.text === "string") {
26
+ return [part.text];
27
+ }
28
+ if (typeof part.text === "string") {
29
+ return [part.text];
30
+ }
31
+ return [];
32
+ })
33
+ .map((s) => s.trim())
34
+ .filter(Boolean)
35
+ .join("\n");
36
+ return normalizeText(text);
37
+ }
38
+ /**
39
+ * Find the first/last message with the given role and extract text from it.
40
+ */
41
+ export function extractPromptByRole(items, role, strategy, getText) {
42
+ if (!items || !Array.isArray(items))
43
+ return null;
44
+ const iterable = strategy === "last" ? [...items].reverse() : items;
45
+ for (const item of iterable) {
46
+ if (!item || typeof item !== "object")
47
+ continue;
48
+ if (item.role !== role)
49
+ continue;
50
+ const text = getText(item);
51
+ if (text)
52
+ return text;
53
+ return null;
54
+ }
55
+ return null;
56
+ }
57
+ /**
58
+ * For top-level system prompt-like fields.
59
+ * Returns string as-is, otherwise JSON stringifies structured values.
60
+ */
61
+ export function extractTopLevelPrompt(value) {
62
+ if (value == null)
63
+ return null;
64
+ if (typeof value === "string") {
65
+ return normalizeText(value);
66
+ }
67
+ try {
68
+ return JSON.stringify(value);
69
+ }
70
+ catch {
71
+ return null;
72
+ }
73
+ }
74
+ export class BaseAuditor extends ClassLogger {
75
+ mapFinishReason(nativeResponse, _protocolName) {
76
+ if (!nativeResponse)
77
+ return 'stop';
78
+ const reason = nativeResponse.stop_reason ?? nativeResponse.finish_reason ?? nativeResponse.choices?.[0]?.finish_reason;
79
+ switch (reason) {
80
+ case 'end_turn':
81
+ case 'stop':
82
+ return 'stop';
83
+ case 'max_tokens':
84
+ case 'length':
85
+ return 'length';
86
+ case 'tool_use':
87
+ case 'tool_calls':
88
+ return 'tool_calls';
89
+ case 'content_filter':
90
+ return 'content_filter';
91
+ default:
92
+ return 'stop';
93
+ }
94
+ }
95
+ mapUsage(nativeResponse, _protocolName) {
96
+ if (!nativeResponse)
97
+ return {};
98
+ const usage = nativeResponse.usage;
99
+ if (!usage)
100
+ return {};
101
+ return pickDefined({
102
+ input_tokens: usage.input_tokens ?? usage.prompt_tokens,
103
+ output_tokens: usage.output_tokens ?? usage.completion_tokens,
104
+ total_tokens: usage.total_tokens ?? (((usage.input_tokens ?? usage.prompt_tokens ?? 0) + (usage.output_tokens ?? usage.completion_tokens ?? 0)) || undefined),
105
+ });
106
+ }
107
+ async createWorkerRequestEnvelope(workerRequest) {
108
+ const logger = this.mlog(this.createWorkerRequestEnvelope);
109
+ if (!workerRequest.requestId) {
110
+ logger.error(`No requestId for workerRequest: ${JSON.stringify(workerRequest)}`);
111
+ }
112
+ const { access_model, system_prompt, last_user_prompt } = await this.createProviderEnvelope(workerRequest);
113
+ const { httpRequestDetails } = workerRequest;
114
+ return pickDefined({
115
+ request_id: workerRequest.requestId,
116
+ organization_id: workerRequest.organizationId,
117
+ application: workerRequest.application,
118
+ provider: workerRequest.provider,
119
+ protocol: workerRequest.protocol,
120
+ user_id: workerRequest.userId,
121
+ thread_id: workerRequest.threadId,
122
+ created_at: new Date(workerRequest.timestamp).toISOString(),
123
+ request_raw: workerRequest.payload,
124
+ access_model,
125
+ system_prompt,
126
+ last_user_prompt,
127
+ metadata: pickDefined({
128
+ source_id: workerRequest.sourceId,
129
+ branch_id: workerRequest.branchId,
130
+ httpRequestDetails,
131
+ is_streaming: workerRequest.isStreaming || undefined,
132
+ is_passthrough: workerRequest.isPassthrough || undefined,
133
+ guard_result: workerRequest.guardResult,
134
+ token_type: workerRequest.tokenType,
135
+ })
136
+ });
137
+ }
138
+ async createWorkerResponseEnvelope(workerRequest, workerId) {
139
+ const providerEnvelope = await this.createProviderEnvelope(workerRequest);
140
+ return pickDefined({
141
+ source_id: workerRequest.sourceId,
142
+ request_id: workerRequest.requestId,
143
+ organization_id: workerRequest.organizationId,
144
+ application: workerRequest.application,
145
+ provider: workerRequest.provider,
146
+ protocol: workerRequest.protocol,
147
+ user_id: workerRequest.userId,
148
+ client_identifier: workerRequest.clientIdentifier,
149
+ worker_id: workerId,
150
+ payload: workerRequest.payload,
151
+ thread_id: workerRequest.threadId,
152
+ branch_id: workerRequest.branchId,
153
+ ...providerEnvelope
154
+ });
155
+ }
156
+ async auditRequest(workerRequest) {
157
+ const envelope = await this.createWorkerRequestEnvelope(workerRequest);
158
+ const metadata = {
159
+ ...envelope.metadata,
160
+ options: await this.extractRequestOptions(workerRequest)
161
+ };
162
+ const providerRequest = {
163
+ request_id: envelope.request_id,
164
+ organization_id: envelope.organization_id,
165
+ application_id: envelope.application?.id,
166
+ provider_id: envelope.provider.id,
167
+ protocol_id: envelope.protocol.id,
168
+ protocol_capability: envelope.protocol.capability,
169
+ user_id: envelope.user_id,
170
+ client_identifier: workerRequest.clientIdentifier,
171
+ request_raw: envelope.request_raw,
172
+ access_model: envelope.access_model,
173
+ system_prompt: envelope.system_prompt,
174
+ last_user_prompt: envelope.last_user_prompt,
175
+ has_tools: this.hasTools(workerRequest.payload),
176
+ thread_id: envelope.thread_id,
177
+ created_at: envelope.created_at,
178
+ metadata
179
+ };
180
+ return pickDefined(providerRequest);
181
+ }
182
+ async auditResponse(envelope, providerEvent) {
183
+ const metrics = await this.mapResponseMetrics(providerEvent, envelope.protocol.name);
184
+ const responseRaw = providerEvent.type === ProviderEventType.DONE
185
+ ? providerEvent.message
186
+ : providerEvent.type === 'error'
187
+ ? await this.extractNativeError(providerEvent)
188
+ : undefined;
189
+ const { usage_raw, input_tokens, output_tokens, total_tokens, time_to_first_token, total_processing_time } = metrics;
190
+ const metadata = pickDefined({
191
+ worker_id: envelope.worker_id,
192
+ });
193
+ return pickDefined({
194
+ request_id: envelope.request_id,
195
+ organization_id: envelope.organization_id,
196
+ application_id: envelope.application?.id,
197
+ provider_id: envelope.provider.id,
198
+ protocol_id: envelope.protocol.id,
199
+ capability: envelope.protocol.capability,
200
+ user_id: envelope.user_id,
201
+ client_identifier: envelope.client_identifier,
202
+ access_model: envelope.access_model,
203
+ status: await this.mapResponseStatus(providerEvent, envelope),
204
+ finish_reason: await this.extractFinishReason(providerEvent, envelope),
205
+ response: providerEvent.text,
206
+ response_raw: responseRaw,
207
+ usage_raw,
208
+ input_tokens,
209
+ output_tokens,
210
+ total_tokens,
211
+ time_to_first_token,
212
+ total_processing_time,
213
+ cost: 0,
214
+ created_at: providerEvent.ts ? new Date(providerEvent.ts).toISOString() : new Date().toISOString(),
215
+ metadata,
216
+ });
217
+ }
218
+ async mapResponseMetrics(providerEvent, protocolName) {
219
+ const { metrics } = providerEvent;
220
+ const eventMetrics = {
221
+ input_tokens: metrics.inputTokens,
222
+ output_tokens: metrics.outputTokens,
223
+ total_tokens: metrics.inputTokens + metrics.outputTokens,
224
+ time_to_first_token: metrics.timeToFirstToken,
225
+ total_processing_time: metrics.totalProcessingTime,
226
+ };
227
+ if (providerEvent.type === ProviderEventType.ERROR) {
228
+ return eventMetrics;
229
+ }
230
+ const providerMetrics = await this.mapProviderResponseMetrics(providerEvent, protocolName);
231
+ return {
232
+ ...eventMetrics,
233
+ ...providerMetrics
234
+ };
235
+ }
236
+ async mapResponseStatus(providerEvent, _envelope) {
237
+ switch (providerEvent.type) {
238
+ case 'done':
239
+ return ProviderResponseStatus.SUCCESS;
240
+ case 'error':
241
+ return ProviderResponseStatus.ERROR;
242
+ default:
243
+ return ProviderResponseStatus.PARTIAL;
244
+ }
245
+ }
246
+ hasTools(payload) {
247
+ return Array.isArray(payload?.tools) && payload.tools.length > 0;
248
+ }
249
+ async extractNativeError(providerEvent) {
250
+ const err = providerEvent.error;
251
+ return err?.error ?? err;
252
+ }
253
+ }
254
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/provider/auditor/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './base';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/provider/auditor/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './base';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/provider/auditor/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,36 @@
1
+ import type { DiscoveredModel, IAuditor, IProvider, IProviderTranslator, IResponseFactory, ProviderRunner } from "@holokai/holo-types/provider";
2
+ import { ModelInfo, ProviderContext, ProviderEvent } from "@holokai/holo-types/provider";
3
+ import { HoloWorkerRequest } from "@holokai/holo-types/worker";
4
+ import { ProtocolCapability, ProviderRequest, ProviderResponse } from "@holokai/holo-types/entities";
5
+ import { AsyncEventQueue, ClassLogger } from "../core";
6
+ import { IProviderPlugin, WorkerResponseEnvelope } from "@holokai/holo-types";
7
+ export declare abstract class BaseProvider<ProviderClient = any, RequestPayload = any, Final = any> extends ClassLogger implements IProvider {
8
+ readonly id: string;
9
+ readonly name: string;
10
+ readonly plugin: IProviderPlugin;
11
+ protected readonly _config: any;
12
+ readonly auditor: IAuditor;
13
+ readonly translator: IProviderTranslator;
14
+ readonly responseFactory: IResponseFactory;
15
+ protected models: Record<string, ModelInfo>;
16
+ protected readonly client: ProviderClient;
17
+ constructor(id: string, name: string, plugin: IProviderPlugin, _config: any);
18
+ abstract getModels(allowedModels: string[] | true): Promise<any>;
19
+ abstract discoverModels(): Promise<DiscoveredModel[]>;
20
+ auditRequest(workerRequest: HoloWorkerRequest): Promise<ProviderRequest>;
21
+ auditResponse(workerEnvelope: WorkerResponseEnvelope, providerEvent: ProviderEvent): Promise<ProviderResponse>;
22
+ processWorkerRequest(request: HoloWorkerRequest, _opts?: {
23
+ signal?: AbortSignal;
24
+ }): Promise<AsyncEventQueue<ProviderEvent>>;
25
+ abstract getModelNameFromRequest(payload: any): Promise<string | undefined>;
26
+ protected abstract createClient(): ProviderClient;
27
+ protected abstract createAuditor(): IAuditor;
28
+ protected abstract createTranslator(): IProviderTranslator;
29
+ protected abstract createResponseFactory(): IResponseFactory;
30
+ protected abstract handleError(error: any): Promise<any>;
31
+ protected getErrorStatus(e: any, handledError: any): number | undefined;
32
+ protected abstract createRequestRunner(payload: RequestPayload, ctx: ProviderContext): Promise<ProviderRunner<Final>>;
33
+ protected translatePayload(capability: ProtocolCapability | undefined, payload: any, _protocolName?: string): Promise<any>;
34
+ private createEventPusher;
35
+ }
36
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/provider/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,eAAe,EACf,QAAQ,EACR,SAAS,EACT,mBAAmB,EACnB,gBAAgB,EAEhB,cAAc,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAC,SAAS,EAAE,eAAe,EAAE,aAAa,EAAC,MAAM,8BAA8B,CAAC;AACvF,OAAO,EAAC,iBAAiB,EAAC,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAC,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,EAAC,MAAM,8BAA8B,CAAC;AACnG,OAAO,EAAC,eAAe,EAAE,WAAW,EAA2B,MAAM,SAAS,CAAC;AAC/E,OAAO,EAAe,eAAe,EAAE,sBAAsB,EAAC,MAAM,qBAAqB,CAAC;AAE1F,8BAAsB,YAAY,CAAC,cAAc,GAAG,GAAG,EAAE,cAAc,GAAG,GAAG,EAAE,KAAK,GAAG,GAAG,CAAE,SAAQ,WAAY,YAAW,SAAS;aAQ5G,EAAE,EAAE,MAAM;aACV,IAAI,EAAE,MAAM;aACZ,MAAM,EAAE,eAAe;IACvC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG;IAVnC,SAAgB,OAAO,EAAE,QAAQ,CAAC;IAClC,SAAgB,UAAU,EAAE,mBAAmB,CAAC;IAChD,SAAgB,eAAe,EAAE,gBAAgB,CAAC;IAClD,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAM;IACjD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;gBAGtB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,eAAe,EACpB,OAAO,EAAE,GAAG;IAUnC,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;IAEhE,QAAQ,CAAC,cAAc,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAE/C,YAAY,CAAC,aAAa,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC;IAIxE,aAAa,CACf,cAAc,EAAE,sBAAsB,EACtC,aAAa,EAAE,aAAa,GAC7B,OAAO,CAAC,gBAAgB,CAAC;IAItB,oBAAoB,CACtB,OAAO,EAAE,iBAAiB,EAC1B,KAAK,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACjC,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;aAuI1B,uBAAuB,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAElF,SAAS,CAAC,QAAQ,CAAC,YAAY,IAAI,cAAc;IAEjD,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,QAAQ;IAE5C,SAAS,CAAC,QAAQ,CAAC,gBAAgB,IAAI,mBAAmB;IAE1D,SAAS,CAAC,QAAQ,CAAC,qBAAqB,IAAI,gBAAgB;IAE5D,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAExD,SAAS,CAAC,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS;IAIvE,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAClC,OAAO,EAAE,cAAc,EACvB,GAAG,EAAE,eAAe,GACrB,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;cAEjB,gBAAgB,CAAC,UAAU,EAAE,kBAAkB,GAAG,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAqBhI,OAAO,CAAC,iBAAiB;CAM5B"}