@vectorize-io/hindsight-client 0.4.18 → 0.4.19

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 (78) hide show
  1. package/dist/{generated/types.gen.d.ts → index.d.mts} +1426 -362
  2. package/dist/index.d.ts +5384 -0
  3. package/dist/index.js +1597 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/index.mjs +1572 -0
  6. package/dist/index.mjs.map +1 -0
  7. package/generated/client/client.gen.ts +3 -1
  8. package/generated/sdk.gen.ts +17 -0
  9. package/generated/types.gen.ts +63 -1
  10. package/package.json +15 -5
  11. package/src/index.ts +2 -0
  12. package/dist/generated/client/client.gen.d.ts +0 -3
  13. package/dist/generated/client/client.gen.d.ts.map +0 -1
  14. package/dist/generated/client/client.gen.js +0 -233
  15. package/dist/generated/client/client.gen.js.map +0 -1
  16. package/dist/generated/client/index.d.ts +0 -9
  17. package/dist/generated/client/index.d.ts.map +0 -1
  18. package/dist/generated/client/index.js +0 -18
  19. package/dist/generated/client/index.js.map +0 -1
  20. package/dist/generated/client/types.gen.d.ts +0 -118
  21. package/dist/generated/client/types.gen.d.ts.map +0 -1
  22. package/dist/generated/client/types.gen.js +0 -4
  23. package/dist/generated/client/types.gen.js.map +0 -1
  24. package/dist/generated/client/utils.gen.d.ts +0 -34
  25. package/dist/generated/client/utils.gen.d.ts.map +0 -1
  26. package/dist/generated/client/utils.gen.js +0 -245
  27. package/dist/generated/client/utils.gen.js.map +0 -1
  28. package/dist/generated/client.gen.d.ts +0 -13
  29. package/dist/generated/client.gen.d.ts.map +0 -1
  30. package/dist/generated/client.gen.js +0 -7
  31. package/dist/generated/client.gen.js.map +0 -1
  32. package/dist/generated/core/auth.gen.d.ts +0 -19
  33. package/dist/generated/core/auth.gen.d.ts.map +0 -1
  34. package/dist/generated/core/auth.gen.js +0 -19
  35. package/dist/generated/core/auth.gen.js.map +0 -1
  36. package/dist/generated/core/bodySerializer.gen.d.ts +0 -26
  37. package/dist/generated/core/bodySerializer.gen.d.ts.map +0 -1
  38. package/dist/generated/core/bodySerializer.gen.js +0 -61
  39. package/dist/generated/core/bodySerializer.gen.js.map +0 -1
  40. package/dist/generated/core/params.gen.d.ts +0 -44
  41. package/dist/generated/core/params.gen.d.ts.map +0 -1
  42. package/dist/generated/core/params.gen.js +0 -105
  43. package/dist/generated/core/params.gen.js.map +0 -1
  44. package/dist/generated/core/pathSerializer.gen.d.ts +0 -34
  45. package/dist/generated/core/pathSerializer.gen.d.ts.map +0 -1
  46. package/dist/generated/core/pathSerializer.gen.js +0 -124
  47. package/dist/generated/core/pathSerializer.gen.js.map +0 -1
  48. package/dist/generated/core/queryKeySerializer.gen.d.ts +0 -19
  49. package/dist/generated/core/queryKeySerializer.gen.d.ts.map +0 -1
  50. package/dist/generated/core/queryKeySerializer.gen.js +0 -106
  51. package/dist/generated/core/queryKeySerializer.gen.js.map +0 -1
  52. package/dist/generated/core/serverSentEvents.gen.d.ts +0 -72
  53. package/dist/generated/core/serverSentEvents.gen.d.ts.map +0 -1
  54. package/dist/generated/core/serverSentEvents.gen.js +0 -140
  55. package/dist/generated/core/serverSentEvents.gen.js.map +0 -1
  56. package/dist/generated/core/types.gen.d.ts +0 -79
  57. package/dist/generated/core/types.gen.d.ts.map +0 -1
  58. package/dist/generated/core/types.gen.js +0 -4
  59. package/dist/generated/core/types.gen.js.map +0 -1
  60. package/dist/generated/core/utils.gen.d.ts +0 -20
  61. package/dist/generated/core/utils.gen.d.ts.map +0 -1
  62. package/dist/generated/core/utils.gen.js +0 -94
  63. package/dist/generated/core/utils.gen.js.map +0 -1
  64. package/dist/generated/index.d.ts +0 -3
  65. package/dist/generated/index.d.ts.map +0 -1
  66. package/dist/generated/index.js +0 -19
  67. package/dist/generated/index.js.map +0 -1
  68. package/dist/generated/sdk.gen.d.ts +0 -433
  69. package/dist/generated/sdk.gen.d.ts.map +0 -1
  70. package/dist/generated/sdk.gen.js +0 -636
  71. package/dist/generated/sdk.gen.js.map +0 -1
  72. package/dist/generated/types.gen.d.ts.map +0 -1
  73. package/dist/generated/types.gen.js +0 -4
  74. package/dist/generated/types.gen.js.map +0 -1
  75. package/dist/src/index.d.ts +0 -310
  76. package/dist/src/index.d.ts.map +0 -1
  77. package/dist/src/index.js +0 -518
  78. package/dist/src/index.js.map +0 -1
package/dist/src/index.js DELETED
@@ -1,518 +0,0 @@
1
- "use strict";
2
- /**
3
- * Hindsight Client - Clean, TypeScript SDK for the Hindsight API.
4
- *
5
- * Example:
6
- * ```typescript
7
- * import { HindsightClient } from '@vectorize-io/hindsight-client';
8
- *
9
- * // Without authentication
10
- * const client = new HindsightClient({ baseUrl: 'http://localhost:8888' });
11
- *
12
- * // With API key authentication
13
- * const client = new HindsightClient({
14
- * baseUrl: 'http://localhost:8888',
15
- * apiKey: 'your-api-key'
16
- * });
17
- *
18
- * // Retain a memory
19
- * await client.retain('alice', 'Alice loves AI');
20
- *
21
- * // Recall memories
22
- * const results = await client.recall('alice', 'What does Alice like?');
23
- *
24
- * // Generate contextual answer
25
- * const answer = await client.reflect('alice', 'What are my interests?');
26
- * ```
27
- */
28
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
29
- if (k2 === undefined) k2 = k;
30
- var desc = Object.getOwnPropertyDescriptor(m, k);
31
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
32
- desc = { enumerable: true, get: function() { return m[k]; } };
33
- }
34
- Object.defineProperty(o, k2, desc);
35
- }) : (function(o, m, k, k2) {
36
- if (k2 === undefined) k2 = k;
37
- o[k2] = m[k];
38
- }));
39
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
40
- Object.defineProperty(o, "default", { enumerable: true, value: v });
41
- }) : function(o, v) {
42
- o["default"] = v;
43
- });
44
- var __importStar = (this && this.__importStar) || (function () {
45
- var ownKeys = function(o) {
46
- ownKeys = Object.getOwnPropertyNames || function (o) {
47
- var ar = [];
48
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
49
- return ar;
50
- };
51
- return ownKeys(o);
52
- };
53
- return function (mod) {
54
- if (mod && mod.__esModule) return mod;
55
- var result = {};
56
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
57
- __setModuleDefault(result, mod);
58
- return result;
59
- };
60
- })();
61
- Object.defineProperty(exports, "__esModule", { value: true });
62
- exports.createConfig = exports.createClient = exports.sdk = exports.HindsightClient = exports.HindsightError = void 0;
63
- const client_1 = require("../generated/client");
64
- const sdk = __importStar(require("../generated/sdk.gen"));
65
- /**
66
- * Error thrown by the Hindsight client when an API request fails.
67
- * Includes the HTTP status code and error details from the API.
68
- */
69
- class HindsightError extends Error {
70
- constructor(message, statusCode, details) {
71
- super(message);
72
- this.name = 'HindsightError';
73
- this.statusCode = statusCode;
74
- this.details = details;
75
- }
76
- }
77
- exports.HindsightError = HindsightError;
78
- class HindsightClient {
79
- constructor(options) {
80
- this.client = (0, client_1.createClient)((0, client_1.createConfig)({
81
- baseUrl: options.baseUrl,
82
- headers: options.apiKey
83
- ? { Authorization: `Bearer ${options.apiKey}` }
84
- : undefined,
85
- }));
86
- }
87
- /**
88
- * Validates the API response and throws an error if the request failed.
89
- */
90
- validateResponse(response, operation) {
91
- if (!response.data) {
92
- // The generated client returns { error, response, request }
93
- // Status code is in response.status, not in the error object
94
- const error = response.error;
95
- const httpResponse = response.response;
96
- // Extract status code from the HTTP response object
97
- const statusCode = httpResponse?.status;
98
- const details = error?.detail || error?.message || error;
99
- throw new HindsightError(`${operation} failed: ${JSON.stringify(details)}`, statusCode, details);
100
- }
101
- return response.data;
102
- }
103
- /**
104
- * Retain a single memory for a bank.
105
- */
106
- async retain(bankId, content, options) {
107
- const item = { content };
108
- if (options?.timestamp) {
109
- item.timestamp =
110
- options.timestamp instanceof Date
111
- ? options.timestamp.toISOString()
112
- : options.timestamp;
113
- }
114
- if (options?.context) {
115
- item.context = options.context;
116
- }
117
- if (options?.metadata) {
118
- item.metadata = options.metadata;
119
- }
120
- if (options?.documentId) {
121
- item.document_id = options.documentId;
122
- }
123
- if (options?.entities) {
124
- item.entities = options.entities;
125
- }
126
- if (options?.tags) {
127
- item.tags = options.tags;
128
- }
129
- const response = await sdk.retainMemories({
130
- client: this.client,
131
- path: { bank_id: bankId },
132
- body: { items: [item], async: options?.async },
133
- });
134
- return this.validateResponse(response, 'retain');
135
- }
136
- /**
137
- * Retain multiple memories in batch.
138
- */
139
- async retainBatch(bankId, items, options) {
140
- const processedItems = items.map((item) => ({
141
- content: item.content,
142
- context: item.context,
143
- metadata: item.metadata,
144
- document_id: item.document_id,
145
- entities: item.entities,
146
- tags: item.tags,
147
- observation_scopes: item.observation_scopes,
148
- timestamp: item.timestamp instanceof Date
149
- ? item.timestamp.toISOString()
150
- : item.timestamp,
151
- }));
152
- // If documentId is provided at the batch level, add it to all items that don't have one
153
- const itemsWithDocId = processedItems.map(item => ({
154
- ...item,
155
- document_id: item.document_id || options?.documentId
156
- }));
157
- const response = await sdk.retainMemories({
158
- client: this.client,
159
- path: { bank_id: bankId },
160
- body: {
161
- items: itemsWithDocId,
162
- document_tags: options?.documentTags,
163
- async: options?.async,
164
- },
165
- });
166
- return this.validateResponse(response, 'retainBatch');
167
- }
168
- /**
169
- * Upload files and retain their contents as memories.
170
- *
171
- * Files are automatically converted to text (PDF, DOCX, images via OCR, audio via
172
- * transcription, and more) and ingested as memories. Processing is always asynchronous —
173
- * use the returned operation IDs to track progress via the operations endpoint.
174
- *
175
- * @param bankId - The memory bank ID
176
- * @param files - Array of File or Blob objects to upload
177
- * @param options - Optional settings: context, documentTags, filesMetadata
178
- */
179
- async retainFiles(bankId, files, options) {
180
- const meta = options?.filesMetadata ?? files.map(() => options?.context ? { context: options.context } : {});
181
- const requestBody = JSON.stringify({
182
- files_metadata: meta,
183
- });
184
- const response = await sdk.fileRetain({
185
- client: this.client,
186
- path: { bank_id: bankId },
187
- body: { files, request: requestBody },
188
- });
189
- return this.validateResponse(response, 'retainFiles');
190
- }
191
- /**
192
- * Recall memories with a natural language query.
193
- */
194
- async recall(bankId, query, options) {
195
- const response = await sdk.recallMemories({
196
- client: this.client,
197
- path: { bank_id: bankId },
198
- body: {
199
- query,
200
- types: options?.types,
201
- max_tokens: options?.maxTokens,
202
- budget: options?.budget || 'mid',
203
- trace: options?.trace,
204
- query_timestamp: options?.queryTimestamp,
205
- include: {
206
- entities: options?.includeEntities === false ? null : options?.includeEntities ? { max_tokens: options?.maxEntityTokens ?? 500 } : undefined,
207
- chunks: options?.includeChunks ? { max_tokens: options?.maxChunkTokens ?? 8192 } : undefined,
208
- source_facts: options?.includeSourceFacts ? { max_tokens: options?.maxSourceFactsTokens ?? 4096 } : undefined,
209
- },
210
- tags: options?.tags,
211
- tags_match: options?.tagsMatch,
212
- },
213
- });
214
- return this.validateResponse(response, 'recall');
215
- }
216
- /**
217
- * Reflect and generate a contextual answer using the bank's identity and memories.
218
- */
219
- async reflect(bankId, query, options) {
220
- const response = await sdk.reflect({
221
- client: this.client,
222
- path: { bank_id: bankId },
223
- body: {
224
- query,
225
- context: options?.context,
226
- budget: options?.budget || 'low',
227
- tags: options?.tags,
228
- tags_match: options?.tagsMatch,
229
- },
230
- });
231
- return this.validateResponse(response, 'reflect');
232
- }
233
- /**
234
- * List memories with pagination.
235
- */
236
- async listMemories(bankId, options) {
237
- const response = await sdk.listMemories({
238
- client: this.client,
239
- path: { bank_id: bankId },
240
- query: {
241
- limit: options?.limit,
242
- offset: options?.offset,
243
- type: options?.type,
244
- q: options?.q,
245
- },
246
- });
247
- return this.validateResponse(response, 'listMemories');
248
- }
249
- /**
250
- * Create or update a bank with disposition, missions, and operational configuration.
251
- */
252
- async createBank(bankId, options = {}) {
253
- const response = await sdk.createOrUpdateBank({
254
- client: this.client,
255
- path: { bank_id: bankId },
256
- body: {
257
- name: options.name,
258
- mission: options.mission,
259
- reflect_mission: options.reflectMission,
260
- background: options.background,
261
- disposition: options.disposition,
262
- disposition_skepticism: options.dispositionSkepticism,
263
- disposition_literalism: options.dispositionLiteralism,
264
- disposition_empathy: options.dispositionEmpathy,
265
- retain_mission: options.retainMission,
266
- retain_extraction_mode: options.retainExtractionMode,
267
- retain_custom_instructions: options.retainCustomInstructions,
268
- retain_chunk_size: options.retainChunkSize,
269
- enable_observations: options.enableObservations,
270
- observations_mission: options.observationsMission,
271
- },
272
- });
273
- return this.validateResponse(response, 'createBank');
274
- }
275
- /**
276
- * Set or update the reflect mission for a memory bank.
277
- * @deprecated Use createBank({ reflectMission: '...' }) instead.
278
- */
279
- async setMission(bankId, mission) {
280
- return this.createBank(bankId, { reflectMission: mission });
281
- }
282
- /**
283
- * Get a bank's profile.
284
- */
285
- async getBankProfile(bankId) {
286
- const response = await sdk.getBankProfile({
287
- client: this.client,
288
- path: { bank_id: bankId },
289
- });
290
- return this.validateResponse(response, 'getBankProfile');
291
- }
292
- /**
293
- * Get the resolved configuration for a bank, including any bank-level overrides.
294
- *
295
- * Can be disabled on the server by setting `HINDSIGHT_API_ENABLE_BANK_CONFIG_API=false`.
296
- */
297
- async getBankConfig(bankId) {
298
- const response = await sdk.getBankConfig({
299
- client: this.client,
300
- path: { bank_id: bankId },
301
- });
302
- return this.validateResponse(response, 'getBankConfig');
303
- }
304
- /**
305
- * Update configuration overrides for a bank.
306
- *
307
- * Can be disabled on the server by setting `HINDSIGHT_API_ENABLE_BANK_CONFIG_API=false`.
308
- *
309
- * @param bankId - The memory bank ID
310
- * @param options - Fields to override
311
- */
312
- async updateBankConfig(bankId, options) {
313
- const updates = {};
314
- if (options.reflectMission !== undefined)
315
- updates.reflect_mission = options.reflectMission;
316
- if (options.retainMission !== undefined)
317
- updates.retain_mission = options.retainMission;
318
- if (options.retainExtractionMode !== undefined)
319
- updates.retain_extraction_mode = options.retainExtractionMode;
320
- if (options.retainCustomInstructions !== undefined)
321
- updates.retain_custom_instructions = options.retainCustomInstructions;
322
- if (options.retainChunkSize !== undefined)
323
- updates.retain_chunk_size = options.retainChunkSize;
324
- if (options.enableObservations !== undefined)
325
- updates.enable_observations = options.enableObservations;
326
- if (options.observationsMission !== undefined)
327
- updates.observations_mission = options.observationsMission;
328
- if (options.dispositionSkepticism !== undefined)
329
- updates.disposition_skepticism = options.dispositionSkepticism;
330
- if (options.dispositionLiteralism !== undefined)
331
- updates.disposition_literalism = options.dispositionLiteralism;
332
- if (options.dispositionEmpathy !== undefined)
333
- updates.disposition_empathy = options.dispositionEmpathy;
334
- const response = await sdk.updateBankConfig({
335
- client: this.client,
336
- path: { bank_id: bankId },
337
- body: { updates },
338
- });
339
- return this.validateResponse(response, 'updateBankConfig');
340
- }
341
- /**
342
- * Reset all bank-level configuration overrides, reverting to server defaults.
343
- *
344
- * Can be disabled on the server by setting `HINDSIGHT_API_ENABLE_BANK_CONFIG_API=false`.
345
- */
346
- async resetBankConfig(bankId) {
347
- const response = await sdk.resetBankConfig({
348
- client: this.client,
349
- path: { bank_id: bankId },
350
- });
351
- return this.validateResponse(response, 'resetBankConfig');
352
- }
353
- /**
354
- * Delete a bank.
355
- */
356
- async deleteBank(bankId) {
357
- const response = await sdk.deleteBank({
358
- client: this.client,
359
- path: { bank_id: bankId },
360
- });
361
- if (response.error) {
362
- throw new Error(`deleteBank failed: ${JSON.stringify(response.error)}`);
363
- }
364
- }
365
- // Directive methods
366
- /**
367
- * Create a directive (hard rule for reflect).
368
- */
369
- async createDirective(bankId, name, content, options) {
370
- const response = await sdk.createDirective({
371
- client: this.client,
372
- path: { bank_id: bankId },
373
- body: {
374
- name,
375
- content,
376
- priority: options?.priority ?? 0,
377
- is_active: options?.isActive ?? true,
378
- tags: options?.tags,
379
- },
380
- });
381
- return this.validateResponse(response, 'createDirective');
382
- }
383
- /**
384
- * List all directives in a bank.
385
- */
386
- async listDirectives(bankId, options) {
387
- const response = await sdk.listDirectives({
388
- client: this.client,
389
- path: { bank_id: bankId },
390
- query: { tags: options?.tags },
391
- });
392
- return this.validateResponse(response, 'listDirectives');
393
- }
394
- /**
395
- * Get a specific directive.
396
- */
397
- async getDirective(bankId, directiveId) {
398
- const response = await sdk.getDirective({
399
- client: this.client,
400
- path: { bank_id: bankId, directive_id: directiveId },
401
- });
402
- return this.validateResponse(response, 'getDirective');
403
- }
404
- /**
405
- * Update a directive.
406
- */
407
- async updateDirective(bankId, directiveId, options) {
408
- const response = await sdk.updateDirective({
409
- client: this.client,
410
- path: { bank_id: bankId, directive_id: directiveId },
411
- body: {
412
- name: options.name,
413
- content: options.content,
414
- priority: options.priority,
415
- is_active: options.isActive,
416
- tags: options.tags,
417
- },
418
- });
419
- return this.validateResponse(response, 'updateDirective');
420
- }
421
- /**
422
- * Delete a directive.
423
- */
424
- async deleteDirective(bankId, directiveId) {
425
- const response = await sdk.deleteDirective({
426
- client: this.client,
427
- path: { bank_id: bankId, directive_id: directiveId },
428
- });
429
- if (response.error) {
430
- throw new Error(`deleteDirective failed: ${JSON.stringify(response.error)}`);
431
- }
432
- }
433
- // Mental Model methods
434
- /**
435
- * Create a mental model (runs reflect in background).
436
- */
437
- async createMentalModel(bankId, name, sourceQuery, options) {
438
- const response = await sdk.createMentalModel({
439
- client: this.client,
440
- path: { bank_id: bankId },
441
- body: {
442
- name,
443
- source_query: sourceQuery,
444
- tags: options?.tags,
445
- max_tokens: options?.maxTokens,
446
- trigger: options?.trigger ? { refresh_after_consolidation: options.trigger.refreshAfterConsolidation } : undefined,
447
- },
448
- });
449
- return this.validateResponse(response, 'createMentalModel');
450
- }
451
- /**
452
- * List all mental models in a bank.
453
- */
454
- async listMentalModels(bankId, options) {
455
- const response = await sdk.listMentalModels({
456
- client: this.client,
457
- path: { bank_id: bankId },
458
- query: { tags: options?.tags },
459
- });
460
- return this.validateResponse(response, 'listMentalModels');
461
- }
462
- /**
463
- * Get a specific mental model.
464
- */
465
- async getMentalModel(bankId, mentalModelId) {
466
- const response = await sdk.getMentalModel({
467
- client: this.client,
468
- path: { bank_id: bankId, mental_model_id: mentalModelId },
469
- });
470
- return this.validateResponse(response, 'getMentalModel');
471
- }
472
- /**
473
- * Refresh a mental model to update with current knowledge.
474
- */
475
- async refreshMentalModel(bankId, mentalModelId) {
476
- const response = await sdk.refreshMentalModel({
477
- client: this.client,
478
- path: { bank_id: bankId, mental_model_id: mentalModelId },
479
- });
480
- return this.validateResponse(response, 'refreshMentalModel');
481
- }
482
- /**
483
- * Update a mental model's metadata.
484
- */
485
- async updateMentalModel(bankId, mentalModelId, options) {
486
- const response = await sdk.updateMentalModel({
487
- client: this.client,
488
- path: { bank_id: bankId, mental_model_id: mentalModelId },
489
- body: {
490
- name: options.name,
491
- source_query: options.sourceQuery,
492
- tags: options.tags,
493
- max_tokens: options.maxTokens,
494
- trigger: options.trigger ? { refresh_after_consolidation: options.trigger.refreshAfterConsolidation } : undefined,
495
- },
496
- });
497
- return this.validateResponse(response, 'updateMentalModel');
498
- }
499
- /**
500
- * Delete a mental model.
501
- */
502
- async deleteMentalModel(bankId, mentalModelId) {
503
- const response = await sdk.deleteMentalModel({
504
- client: this.client,
505
- path: { bank_id: bankId, mental_model_id: mentalModelId },
506
- });
507
- if (response.error) {
508
- throw new Error(`deleteMentalModel failed: ${JSON.stringify(response.error)}`);
509
- }
510
- }
511
- }
512
- exports.HindsightClient = HindsightClient;
513
- // Also export low-level SDK functions for advanced usage
514
- exports.sdk = __importStar(require("../generated/sdk.gen"));
515
- var client_2 = require("../generated/client");
516
- Object.defineProperty(exports, "createClient", { enumerable: true, get: function () { return client_2.createClient; } });
517
- Object.defineProperty(exports, "createConfig", { enumerable: true, get: function () { return client_2.createConfig; } });
518
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}