@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,148 @@
1
+ import type { HoloContent, HoloCountTokensParams, HoloCountTokensResponse, HoloEmbedParams, HoloEmbedResponse, HoloGenerateParams, HoloMessage, HoloModelListParams, HoloPagedResponse, HoloResponse, HoloThread, HoloThreadCreateParams, HoloThreadListParams, HoloThreadMessage, HoloThreadMessageListParams, HoloThreadUpdateParams } from '@holokai/holo-types/holo';
2
+ import type { HoloApplicationInfo, HoloChatParams, HoloClientOptions, HoloModelInfo } from './types';
3
+ import { HoloStream } from './stream';
4
+ import { HoloRequestBuilder } from './builder';
5
+ import type { HoloToolRunnerOptions } from './runner';
6
+ import { HoloToolRunner } from './runner';
7
+ /**
8
+ * Main entry point for the Holo SDK. Provides namespaced access to chat, models, and applications APIs.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * import { HoloClient } from '@holokai/holo-sdk';
13
+ *
14
+ * const client = new HoloClient({
15
+ * baseUrl: 'https://holo.example.com',
16
+ * token: 'my-token',
17
+ * defaultModel: 'gpt-4o',
18
+ * });
19
+ *
20
+ * // Simple request
21
+ * const response = await client.chat.create({
22
+ * messages: [{ role: 'user', content: 'Hello!' }],
23
+ * });
24
+ *
25
+ * // Streaming
26
+ * const stream = await client.chat.stream({
27
+ * messages: [{ role: 'user', content: 'Tell me a story' }],
28
+ * });
29
+ * for await (const event of stream) { ... }
30
+ *
31
+ * // Fluent builder
32
+ * const res = await client.chat.builder()
33
+ * .user('Summarize this')
34
+ * .temperature(0.3)
35
+ * .send();
36
+ * ```
37
+ *
38
+ * @see {@link HoloClientOptions} for configuration.
39
+ * @see {@link ChatNamespace} for chat completions, streaming, tool runners, and builders.
40
+ */
41
+ export declare class HoloClient {
42
+ readonly chat: ChatNamespace;
43
+ readonly generate: GenerateNamespace;
44
+ readonly embed: EmbedNamespace;
45
+ readonly metrics: MetricsNamespace;
46
+ readonly models: ModelsNamespace;
47
+ readonly applications: ApplicationsNamespace;
48
+ readonly threads: ThreadsNamespace;
49
+ private readonly transport;
50
+ private readonly defaultModel?;
51
+ private readonly defaultApplication?;
52
+ constructor(options: HoloClientOptions);
53
+ request<T>(method: string, path: string, body?: unknown, signal?: AbortSignal): Promise<T>;
54
+ streamRequest(path: string, body: unknown, signal?: AbortSignal): Promise<{
55
+ body: ReadableStream<Uint8Array>;
56
+ response: Response;
57
+ }>;
58
+ getDefaults(): {
59
+ model?: string;
60
+ application?: string;
61
+ };
62
+ }
63
+ /**
64
+ * Chat completions namespace — send messages, stream responses, and run tool loops.
65
+ *
66
+ * @see {@link HoloClient.chat}
67
+ */
68
+ declare class ChatNamespace {
69
+ private readonly client;
70
+ constructor(client: HoloClient);
71
+ /** Send a chat completion request and return the full response. */
72
+ create(params: HoloChatParams): Promise<HoloResponse>;
73
+ /**
74
+ * Send a streaming chat completion request.
75
+ * @see {@link HoloStream} for how to consume the returned stream.
76
+ */
77
+ stream(params: HoloChatParams): Promise<HoloStream>;
78
+ /** Cancel an in-flight chat request by ID. */
79
+ cancel(id: string): Promise<void>;
80
+ /**
81
+ * Create a {@link HoloToolRunner} for agentic tool-use loops.
82
+ * @see {@link HoloToolRunnerOptions} for configuration.
83
+ */
84
+ runner(options: HoloToolRunnerOptions): HoloToolRunner;
85
+ /**
86
+ * Create a {@link HoloRequestBuilder} for fluent request construction.
87
+ * Inherits `defaultModel` and `defaultApplication` from the client.
88
+ */
89
+ builder(): HoloRequestBuilder;
90
+ /** Shortcut: create a builder pre-seeded with a user message. */
91
+ user(content: string | HoloContent[]): HoloRequestBuilder;
92
+ /** Shortcut: create a builder pre-seeded with a system message. */
93
+ system(content: string): HoloRequestBuilder;
94
+ /** Shortcut: create a builder pre-seeded with an assistant message. */
95
+ assistant(content: string | HoloContent[]): HoloRequestBuilder;
96
+ /** Shortcut: create a builder with the model already set. */
97
+ model(name: string): HoloRequestBuilder;
98
+ /** Shortcut: create a builder pre-seeded with the given messages. */
99
+ messages(msgs: HoloMessage[]): HoloRequestBuilder;
100
+ private paramsToRequest;
101
+ }
102
+ /** Namespace for prompt-in, text-out generation (e.g. ollama.generate). */
103
+ declare class GenerateNamespace {
104
+ private readonly client;
105
+ constructor(client: HoloClient);
106
+ create(params: HoloGenerateParams): Promise<HoloResponse>;
107
+ stream(params: HoloGenerateParams): Promise<HoloStream>;
108
+ }
109
+ /** Namespace for embedding requests. */
110
+ declare class EmbedNamespace {
111
+ private readonly client;
112
+ constructor(client: HoloClient);
113
+ create(params: HoloEmbedParams): Promise<HoloEmbedResponse>;
114
+ }
115
+ /** Namespace for metrics operations (e.g. token counting). */
116
+ declare class MetricsNamespace {
117
+ private readonly client;
118
+ constructor(client: HoloClient);
119
+ countTokens(params: HoloCountTokensParams): Promise<HoloCountTokensResponse>;
120
+ }
121
+ /** Namespace for listing available models. */
122
+ declare class ModelsNamespace {
123
+ private readonly client;
124
+ constructor(client: HoloClient);
125
+ list(params?: HoloModelListParams): Promise<HoloModelInfo[]>;
126
+ }
127
+ /** Namespace for listing and inspecting applications. */
128
+ declare class ApplicationsNamespace {
129
+ private readonly client;
130
+ constructor(client: HoloClient);
131
+ /** List all applications available to the authenticated user. */
132
+ list(): Promise<HoloApplicationInfo[]>;
133
+ /** Get a single application by slug. */
134
+ get(slug: string): Promise<HoloApplicationInfo>;
135
+ }
136
+ /** Namespace for thread management. */
137
+ declare class ThreadsNamespace {
138
+ private readonly client;
139
+ constructor(client: HoloClient);
140
+ list(params?: HoloThreadListParams): Promise<HoloPagedResponse<HoloThread>>;
141
+ get(id: string): Promise<HoloThread>;
142
+ create(params: HoloThreadCreateParams): Promise<HoloThread>;
143
+ update(id: string, params: HoloThreadUpdateParams): Promise<HoloThread>;
144
+ delete(id: string): Promise<void>;
145
+ messages(id: string, params?: HoloThreadMessageListParams): Promise<HoloPagedResponse<HoloThreadMessage>>;
146
+ }
147
+ export {};
148
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,309 @@
1
+ import { HoloStream } from './stream';
2
+ import { HoloRequestBuilder } from './builder';
3
+ import { HoloToolRunner } from './runner';
4
+ import { parseSSEStream } from './sse';
5
+ import { FetchTransport } from './transport';
6
+ /**
7
+ * Main entry point for the Holo SDK. Provides namespaced access to chat, models, and applications APIs.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import { HoloClient } from '@holokai/holo-sdk';
12
+ *
13
+ * const client = new HoloClient({
14
+ * baseUrl: 'https://holo.example.com',
15
+ * token: 'my-token',
16
+ * defaultModel: 'gpt-4o',
17
+ * });
18
+ *
19
+ * // Simple request
20
+ * const response = await client.chat.create({
21
+ * messages: [{ role: 'user', content: 'Hello!' }],
22
+ * });
23
+ *
24
+ * // Streaming
25
+ * const stream = await client.chat.stream({
26
+ * messages: [{ role: 'user', content: 'Tell me a story' }],
27
+ * });
28
+ * for await (const event of stream) { ... }
29
+ *
30
+ * // Fluent builder
31
+ * const res = await client.chat.builder()
32
+ * .user('Summarize this')
33
+ * .temperature(0.3)
34
+ * .send();
35
+ * ```
36
+ *
37
+ * @see {@link HoloClientOptions} for configuration.
38
+ * @see {@link ChatNamespace} for chat completions, streaming, tool runners, and builders.
39
+ */
40
+ export class HoloClient {
41
+ chat;
42
+ generate;
43
+ embed;
44
+ metrics;
45
+ models;
46
+ applications;
47
+ threads;
48
+ transport;
49
+ defaultModel;
50
+ defaultApplication;
51
+ constructor(options) {
52
+ this.transport = new FetchTransport({
53
+ baseUrl: options.baseUrl,
54
+ token: options.token,
55
+ fetch: options.fetch,
56
+ timeout: options.timeout,
57
+ });
58
+ if (options.defaultModel)
59
+ this.defaultModel = options.defaultModel;
60
+ if (options.defaultApplication)
61
+ this.defaultApplication = options.defaultApplication;
62
+ this.chat = new ChatNamespace(this);
63
+ this.generate = new GenerateNamespace(this);
64
+ this.embed = new EmbedNamespace(this);
65
+ this.metrics = new MetricsNamespace(this);
66
+ this.models = new ModelsNamespace(this);
67
+ this.applications = new ApplicationsNamespace(this);
68
+ this.threads = new ThreadsNamespace(this);
69
+ }
70
+ async request(method, path, body, signal) {
71
+ return this.transport.request({ method, path, body, signal });
72
+ }
73
+ async streamRequest(path, body, signal) {
74
+ return this.transport.streamRequest({ path, body, signal });
75
+ }
76
+ getDefaults() {
77
+ const result = {};
78
+ if (this.defaultModel)
79
+ result.model = this.defaultModel;
80
+ if (this.defaultApplication)
81
+ result.application = this.defaultApplication;
82
+ return result;
83
+ }
84
+ }
85
+ /**
86
+ * Chat completions namespace — send messages, stream responses, and run tool loops.
87
+ *
88
+ * @see {@link HoloClient.chat}
89
+ */
90
+ class ChatNamespace {
91
+ client;
92
+ constructor(client) {
93
+ this.client = client;
94
+ }
95
+ /** Send a chat completion request and return the full response. */
96
+ async create(params) {
97
+ const request = this.paramsToRequest(params, false);
98
+ return this.client.request('POST', '/chat', request);
99
+ }
100
+ /**
101
+ * Send a streaming chat completion request.
102
+ * @see {@link HoloStream} for how to consume the returned stream.
103
+ */
104
+ async stream(params) {
105
+ const abortController = new AbortController();
106
+ const request = this.paramsToRequest(params, true);
107
+ const { body } = await this.client.streamRequest('/chat', request, abortController.signal);
108
+ const events = parseSSEStream(body, abortController.signal);
109
+ return new HoloStream(events, abortController);
110
+ }
111
+ /** Cancel an in-flight chat request by ID. */
112
+ async cancel(id) {
113
+ await this.client.request('POST', `/chat/${id}/cancel`);
114
+ }
115
+ /**
116
+ * Create a {@link HoloToolRunner} for agentic tool-use loops.
117
+ * @see {@link HoloToolRunnerOptions} for configuration.
118
+ */
119
+ runner(options) {
120
+ return new HoloToolRunner((params) => this.stream(params), options);
121
+ }
122
+ /**
123
+ * Create a {@link HoloRequestBuilder} for fluent request construction.
124
+ * Inherits `defaultModel` and `defaultApplication` from the client.
125
+ */
126
+ builder() {
127
+ return new HoloRequestBuilder((request) => this.client.request('POST', '/chat', request), async (request) => {
128
+ const abortController = new AbortController();
129
+ const { body } = await this.client.streamRequest('/chat', request, abortController.signal);
130
+ const events = parseSSEStream(body, abortController.signal);
131
+ return new HoloStream(events, abortController);
132
+ }, this.client.getDefaults());
133
+ }
134
+ /** Shortcut: create a builder pre-seeded with a user message. */
135
+ user(content) {
136
+ return this.builder().user(content);
137
+ }
138
+ /** Shortcut: create a builder pre-seeded with a system message. */
139
+ system(content) {
140
+ return this.builder().system(content);
141
+ }
142
+ /** Shortcut: create a builder pre-seeded with an assistant message. */
143
+ assistant(content) {
144
+ return this.builder().assistant(content);
145
+ }
146
+ /** Shortcut: create a builder with the model already set. */
147
+ model(name) {
148
+ return this.builder().model(name);
149
+ }
150
+ /** Shortcut: create a builder pre-seeded with the given messages. */
151
+ messages(msgs) {
152
+ return this.builder().messages(msgs);
153
+ }
154
+ paramsToRequest(params, stream) {
155
+ const defaults = this.client.getDefaults();
156
+ const model = params.model ?? defaults.model;
157
+ if (!model) {
158
+ throw new Error('No model specified. Set a model in params or provide a defaultModel in HoloClientOptions.');
159
+ }
160
+ const request = {
161
+ model,
162
+ messages: params.messages,
163
+ stream,
164
+ };
165
+ if (params.temperature !== undefined)
166
+ request.temperature = params.temperature;
167
+ if (params.max_tokens !== undefined)
168
+ request.max_tokens = params.max_tokens;
169
+ if (params.top_p !== undefined)
170
+ request.top_p = params.top_p;
171
+ if (params.top_k !== undefined)
172
+ request.top_k = params.top_k;
173
+ if (params.frequency_penalty !== undefined)
174
+ request.frequency_penalty = params.frequency_penalty;
175
+ if (params.presence_penalty !== undefined)
176
+ request.presence_penalty = params.presence_penalty;
177
+ if (params.seed !== undefined)
178
+ request.seed = params.seed;
179
+ if (params.stop_sequences)
180
+ request.stop_sequences = params.stop_sequences;
181
+ if (params.tools)
182
+ request.tools = params.tools;
183
+ if (params.tool_choice)
184
+ request.tool_choice = params.tool_choice;
185
+ if (params.response_format)
186
+ request.response_format = params.response_format;
187
+ if (params.metadata !== undefined)
188
+ request.metadata = params.metadata;
189
+ if (params.service_tier)
190
+ request.service_tier = params.service_tier;
191
+ if (params.provider)
192
+ request.provider = params.provider;
193
+ const app = params.application ?? defaults.application;
194
+ if (app)
195
+ request.application = app;
196
+ if (params.thread_id)
197
+ request.thread_id = params.thread_id;
198
+ if (params.branch)
199
+ request.branch = params.branch;
200
+ if (params.protocol)
201
+ request.protocol = params.protocol;
202
+ return request;
203
+ }
204
+ }
205
+ /** Namespace for prompt-in, text-out generation (e.g. ollama.generate). */
206
+ class GenerateNamespace {
207
+ client;
208
+ constructor(client) {
209
+ this.client = client;
210
+ }
211
+ async create(params) {
212
+ return this.client.request('POST', '/generate', { ...params, stream: false });
213
+ }
214
+ async stream(params) {
215
+ const abortController = new AbortController();
216
+ const body = { ...params, stream: true };
217
+ const { body: responseBody } = await this.client.streamRequest('/generate', body, abortController.signal);
218
+ const events = parseSSEStream(responseBody, abortController.signal);
219
+ return new HoloStream(events, abortController);
220
+ }
221
+ }
222
+ /** Namespace for embedding requests. */
223
+ class EmbedNamespace {
224
+ client;
225
+ constructor(client) {
226
+ this.client = client;
227
+ }
228
+ async create(params) {
229
+ return this.client.request('POST', '/embed', params);
230
+ }
231
+ }
232
+ /** Namespace for metrics operations (e.g. token counting). */
233
+ class MetricsNamespace {
234
+ client;
235
+ constructor(client) {
236
+ this.client = client;
237
+ }
238
+ async countTokens(params) {
239
+ return this.client.request('POST', '/metrics/count-tokens', params);
240
+ }
241
+ }
242
+ /** Namespace for listing available models. */
243
+ class ModelsNamespace {
244
+ client;
245
+ constructor(client) {
246
+ this.client = client;
247
+ }
248
+ async list(params) {
249
+ const qs = toQueryString(params);
250
+ const result = await this.client.request('GET', `/models${qs}`);
251
+ return result.data;
252
+ }
253
+ }
254
+ /** Namespace for listing and inspecting applications. */
255
+ class ApplicationsNamespace {
256
+ client;
257
+ constructor(client) {
258
+ this.client = client;
259
+ }
260
+ /** List all applications available to the authenticated user. */
261
+ async list() {
262
+ const result = await this.client.request('GET', '/applications');
263
+ return result.data;
264
+ }
265
+ /** Get a single application by slug. */
266
+ async get(slug) {
267
+ const result = await this.client.request('GET', `/applications/${encodeURIComponent(slug)}`);
268
+ return result.data;
269
+ }
270
+ }
271
+ /** Namespace for thread management. */
272
+ class ThreadsNamespace {
273
+ client;
274
+ constructor(client) {
275
+ this.client = client;
276
+ }
277
+ async list(params) {
278
+ const qs = toQueryString(params);
279
+ return this.client.request('GET', `/threads${qs}`);
280
+ }
281
+ async get(id) {
282
+ const result = await this.client.request('GET', `/threads/${encodeURIComponent(id)}`);
283
+ return result.data;
284
+ }
285
+ async create(params) {
286
+ const result = await this.client.request('POST', '/threads', params);
287
+ return result.data;
288
+ }
289
+ async update(id, params) {
290
+ const result = await this.client.request('PATCH', `/threads/${encodeURIComponent(id)}`, params);
291
+ return result.data;
292
+ }
293
+ async delete(id) {
294
+ await this.client.request('DELETE', `/threads/${encodeURIComponent(id)}`);
295
+ }
296
+ async messages(id, params) {
297
+ const qs = toQueryString(params);
298
+ return this.client.request('GET', `/threads/${encodeURIComponent(id)}/messages${qs}`);
299
+ }
300
+ }
301
+ function toQueryString(params) {
302
+ if (!params)
303
+ return '';
304
+ const entries = Object.entries(params).filter(([, v]) => v !== undefined);
305
+ if (entries.length === 0)
306
+ return '';
307
+ return '?' + entries.map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(String(v))}`).join('&');
308
+ }
309
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /** Thrown when the Holo API returns a non-2xx HTTP response. */
2
+ export declare class HoloApiError extends Error {
3
+ readonly status: number;
4
+ readonly code?: string;
5
+ /** The parsed response body, if available. */
6
+ readonly body?: unknown;
7
+ constructor(message: string, status: number, code?: string, body?: unknown);
8
+ }
9
+ /** Thrown when a streaming response encounters a protocol-level error. */
10
+ export declare class HoloStreamError extends Error {
11
+ /** The raw SSE event that triggered the error, if available. */
12
+ readonly event?: unknown;
13
+ constructor(message: string, event?: unknown);
14
+ }
15
+ /** Thrown when a request exceeds the configured timeout. */
16
+ export declare class HoloTimeoutError extends Error {
17
+ readonly timeoutMs: number;
18
+ constructor(timeoutMs: number);
19
+ }
20
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/client/errors.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,qBAAa,YAAa,SAAQ,KAAK;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;gBAEZ,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;CAO7E;AAED,0EAA0E;AAC1E,qBAAa,eAAgB,SAAQ,KAAK;IACtC,gEAAgE;IAChE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;gBAEb,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAK/C;AAED,4DAA4D;AAC5D,qBAAa,gBAAiB,SAAQ,KAAK;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBAEf,SAAS,EAAE,MAAM;CAKhC"}
@@ -0,0 +1,36 @@
1
+ /** Thrown when the Holo API returns a non-2xx HTTP response. */
2
+ export class HoloApiError extends Error {
3
+ status;
4
+ code;
5
+ /** The parsed response body, if available. */
6
+ body;
7
+ constructor(message, status, code, body) {
8
+ super(message);
9
+ this.name = 'HoloApiError';
10
+ this.status = status;
11
+ if (code)
12
+ this.code = code;
13
+ if (body !== undefined)
14
+ this.body = body;
15
+ }
16
+ }
17
+ /** Thrown when a streaming response encounters a protocol-level error. */
18
+ export class HoloStreamError extends Error {
19
+ /** The raw SSE event that triggered the error, if available. */
20
+ event;
21
+ constructor(message, event) {
22
+ super(message);
23
+ this.name = 'HoloStreamError';
24
+ this.event = event;
25
+ }
26
+ }
27
+ /** Thrown when a request exceeds the configured timeout. */
28
+ export class HoloTimeoutError extends Error {
29
+ timeoutMs;
30
+ constructor(timeoutMs) {
31
+ super(`Request timed out after ${timeoutMs}ms`);
32
+ this.name = 'HoloTimeoutError';
33
+ this.timeoutMs = timeoutMs;
34
+ }
35
+ }
36
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/client/errors.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,MAAM,OAAO,YAAa,SAAQ,KAAK;IAC1B,MAAM,CAAS;IACf,IAAI,CAAU;IACvB,8CAA8C;IACrC,IAAI,CAAW;IAExB,YAAY,OAAe,EAAE,MAAc,EAAE,IAAa,EAAE,IAAc;QACtE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAC3B,IAAI,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAC7C,CAAC;CACJ;AAED,0EAA0E;AAC1E,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACtC,gEAAgE;IACvD,KAAK,CAAW;IAEzB,YAAY,OAAe,EAAE,KAAe;QACxC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;CACJ;AAED,4DAA4D;AAC5D,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAC9B,SAAS,CAAS;IAE3B,YAAY,SAAiB;QACzB,KAAK,CAAC,2BAA2B,SAAS,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;CACJ"}
@@ -0,0 +1,11 @@
1
+ export { HoloClient } from './client';
2
+ export { HoloRequestBuilder } from './builder';
3
+ export { HoloStream } from './stream';
4
+ export { HoloStreamAccumulator } from './merge';
5
+ export { HoloToolRunner } from './runner';
6
+ export { HoloApiError, HoloStreamError, HoloTimeoutError } from './errors';
7
+ export { HoloOutput, getMessageText, getMessageReasoning, getMessageToolCalls, getMessageInvalidToolCalls } from './output';
8
+ export type { HoloClientOptions, HoloChatParams, HoloModelInfo, HoloApplicationInfo, HoloGenerateParams, HoloEmbedParams, HoloEmbedResponse, HoloCountTokensParams, HoloCountTokensResponse, HoloModelListParams, } from './types';
9
+ export type { HoloToolRunnerOptions, HoloToolCallInfo, HoloToolResult } from './runner';
10
+ export type { HoloThread, HoloThreadCreateParams, HoloThreadUpdateParams, HoloThreadListParams, HoloThreadMessage, HoloThreadMessageListParams, HoloPagedResponse, } from '@holokai/holo-types/holo';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAC,kBAAkB,EAAC,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAC,qBAAqB,EAAC,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAC,cAAc,EAAC,MAAM,UAAU,CAAC;AACxC,OAAO,EAAC,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAC,MAAM,UAAU,CAAC;AACzE,OAAO,EACH,UAAU,EAAE,cAAc,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,0BAA0B,EACnG,MAAM,UAAU,CAAC;AAClB,YAAY,EACR,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,EACrE,kBAAkB,EAAE,eAAe,EAAE,iBAAiB,EACtD,qBAAqB,EAAE,uBAAuB,EAAE,mBAAmB,GACtE,MAAM,SAAS,CAAC;AACjB,YAAY,EAAC,qBAAqB,EAAE,gBAAgB,EAAE,cAAc,EAAC,MAAM,UAAU,CAAC;AACtF,YAAY,EACR,UAAU,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,oBAAoB,EAChF,iBAAiB,EAAE,2BAA2B,EAAE,iBAAiB,GACpE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,8 @@
1
+ export { HoloClient } from './client';
2
+ export { HoloRequestBuilder } from './builder';
3
+ export { HoloStream } from './stream';
4
+ export { HoloStreamAccumulator } from './merge';
5
+ export { HoloToolRunner } from './runner';
6
+ export { HoloApiError, HoloStreamError, HoloTimeoutError } from './errors';
7
+ export { HoloOutput, getMessageText, getMessageReasoning, getMessageToolCalls, getMessageInvalidToolCalls } from './output';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAC,kBAAkB,EAAC,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAC,qBAAqB,EAAC,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAC,cAAc,EAAC,MAAM,UAAU,CAAC;AACxC,OAAO,EAAC,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAC,MAAM,UAAU,CAAC;AACzE,OAAO,EACH,UAAU,EAAE,cAAc,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,0BAA0B,EACnG,MAAM,UAAU,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type { HoloResponse, HoloStreamEvent } from '@holokai/holo-types/holo';
2
+ /**
3
+ * Accumulates {@link HoloStreamEvent} deltas into a complete {@link HoloResponse}.
4
+ *
5
+ * Feed events via {@link push}, then call {@link toResponse} to get the assembled result.
6
+ * Used internally by {@link HoloStream} but can also be used standalone.
7
+ */
8
+ export declare class HoloStreamAccumulator {
9
+ private id;
10
+ private model?;
11
+ private created?;
12
+ private textParts;
13
+ private reasoningParts;
14
+ private toolCalls;
15
+ private invalidToolCalls;
16
+ private usage?;
17
+ private finishReason;
18
+ /** Process a single stream event, merging its data into the accumulated state. */
19
+ push(event: HoloStreamEvent): void;
20
+ /** Assemble all accumulated deltas into a complete {@link HoloResponse}. */
21
+ toResponse(): HoloResponse;
22
+ /** Return the concatenated text output accumulated so far. */
23
+ getText(): string;
24
+ private buildToolCallBlocks;
25
+ private buildToolCallProjections;
26
+ private parseArguments;
27
+ }
28
+ //# sourceMappingURL=merge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/client/merge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAQR,YAAY,EACZ,eAAe,EAGlB,MAAM,0BAA0B,CAAC;AAElC;;;;;GAKG;AACH,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,EAAE,CAAc;IACxB,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,SAAS,CAA4E;IAC7F,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,KAAK,CAAC,CAAY;IAC1B,OAAO,CAAC,YAAY,CAA0B;IAE9C,kFAAkF;IAClF,IAAI,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAuDlC,4EAA4E;IAC5E,UAAU,IAAI,YAAY;IAyD1B,8DAA8D;IAC9D,OAAO,IAAI,MAAM;IAIjB,OAAO,CAAC,mBAAmB;IAyB3B,OAAO,CAAC,wBAAwB;IAiBhC,OAAO,CAAC,cAAc;CAYzB"}