@nebula-ai/sdk 1.2.2 → 1.4.0

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.
@@ -0,0 +1,2824 @@
1
+ //#region src/runtime/retry.d.ts
2
+ interface RetryPolicy {
3
+ readonly maxRetries: number;
4
+ readonly baseMs: number;
5
+ readonly maxMs: number;
6
+ }
7
+ declare const DEFAULT_RETRY: RetryPolicy;
8
+ declare function isRetryableStatus(status: number): boolean;
9
+ declare function backoffMs(attempt: number, policy: RetryPolicy, retryAfterSec?: number): number;
10
+ declare function sleep(ms: number, signal?: AbortSignal): Promise<void>;
11
+ //#endregion
12
+ //#region src/runtime/client.d.ts
13
+ interface ClientOptions {
14
+ baseUrl?: string;
15
+ apiKey?: string;
16
+ bearerToken?: string;
17
+ defaultHeaders?: Record<string, string>;
18
+ fetchImpl?: typeof fetch;
19
+ fetchOptions?: Omit<RequestInit, "method" | "headers" | "body" | "signal">;
20
+ timeoutMs?: number;
21
+ retry?: Partial<RetryPolicy>;
22
+ userAgent?: string;
23
+ }
24
+ interface RequestArgs {
25
+ method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
26
+ path: string;
27
+ pathParams?: Record<string, string | number>;
28
+ query?: Record<string, unknown>;
29
+ body?: unknown;
30
+ headers?: Record<string, string>;
31
+ idempotent?: boolean;
32
+ signal?: AbortSignal;
33
+ }
34
+ declare class NebulaCore {
35
+ readonly baseUrl: string;
36
+ readonly apiKey?: string;
37
+ readonly bearerToken?: string;
38
+ readonly defaultHeaders: Record<string, string>;
39
+ readonly fetchImpl: typeof fetch;
40
+ readonly fetchOptions: Omit<RequestInit, "method" | "headers" | "body" | "signal">;
41
+ readonly timeoutMs: number;
42
+ readonly retry: RetryPolicy;
43
+ readonly userAgent: string;
44
+ constructor(options?: ClientOptions);
45
+ buildUrl(path: string, pathParams?: Record<string, string | number>, query?: Record<string, unknown>): string;
46
+ private buildHeaders;
47
+ request<T>(args: RequestArgs): Promise<T>;
48
+ }
49
+ //#endregion
50
+ //#region src/types.d.ts
51
+ interface components {
52
+ schemas: {
53
+ /**
54
+ * ActivatedEntity
55
+ * @description An entity activated during memory traversal with its profile.
56
+ *
57
+ * Represents a conceptual node in memory that was activated by the query.
58
+ * Contains the full EntityProfile (gestalt) filtered by relevance.
59
+ */
60
+ ActivatedEntity: {
61
+ /**
62
+ * Activation Score
63
+ * @default 0
64
+ */
65
+ activation_score: number; /** Category */
66
+ category?: string | null;
67
+ /**
68
+ * Id
69
+ * Format: uuid
70
+ */
71
+ id: string; /** Name */
72
+ name: string; /** Profile */
73
+ profile?: unknown | null;
74
+ };
75
+ /**
76
+ * ActivatedEpisode
77
+ * @description An episodic nodegroup activated during memory traversal.
78
+ *
79
+ * Represents a cluster of temporally related facts/events discovered
80
+ * during graph traversal.
81
+ */
82
+ ActivatedEpisode: {
83
+ /**
84
+ * Activation Score
85
+ * @default 0
86
+ */
87
+ activation_score: number;
88
+ /**
89
+ * Category
90
+ * @default episodic
91
+ */
92
+ category: string; /** Description */
93
+ description?: string | null; /** Entity Names */
94
+ entity_names?: string[]; /** Evidence Ids */
95
+ evidence_ids?: string[];
96
+ /**
97
+ * Id
98
+ * Format: uuid
99
+ */
100
+ id: string;
101
+ /**
102
+ * Is Obligation
103
+ * @default false
104
+ */
105
+ is_obligation: boolean; /** Member Semantic Ids */
106
+ member_semantic_ids?: string[]; /** Modality */
107
+ modality?: string | null;
108
+ /**
109
+ * N Facts
110
+ * @default 0
111
+ */
112
+ n_facts: number; /** Name */
113
+ name: string; /** Resolved At */
114
+ resolved_at?: string | null; /** Status */
115
+ status?: string | null; /** T Last */
116
+ t_last?: string | null; /** T Start */
117
+ t_start?: string | null;
118
+ };
119
+ /**
120
+ * ActivatedProcedure
121
+ * @description A procedure-like memory activated during memory traversal.
122
+ *
123
+ * This includes preference procedures, atomic traces, and trace-derived
124
+ * strategies. Distinct from facts which are descriptive assertions.
125
+ */
126
+ ActivatedProcedure: {
127
+ /**
128
+ * Activation Score
129
+ * @default 0
130
+ */
131
+ activation_score: number; /** Belief Kind */
132
+ belief_kind?: string | null;
133
+ /**
134
+ * Confidence
135
+ * @default 0
136
+ */
137
+ confidence: number;
138
+ /**
139
+ * Derivation Type
140
+ * @default trivial
141
+ */
142
+ derivation_type: string; /** Entity Id */
143
+ entity_id?: string | null; /** Entity Name */
144
+ entity_name?: string | null;
145
+ /**
146
+ * Id
147
+ * Format: uuid
148
+ */
149
+ id: string;
150
+ /**
151
+ * Is Negated
152
+ * @default false
153
+ */
154
+ is_negated: boolean; /** Metadata */
155
+ metadata?: {
156
+ [key: string]: unknown;
157
+ } | null; /** Statement */
158
+ statement: string;
159
+ };
160
+ /**
161
+ * ActivatedSemantic
162
+ * @description A semantic item activated during memory traversal.
163
+ *
164
+ * Represents a structured assertion (fact, inference, or episodic) that was
165
+ * found relevant to the query. Links back to its entity and source
166
+ * utterances for provenance.
167
+ */
168
+ ActivatedSemantic: {
169
+ /**
170
+ * Activation Score
171
+ * @default 0
172
+ */
173
+ activation_score: number; /** Belief Kind */
174
+ belief_kind?: string | null;
175
+ /**
176
+ * Category
177
+ * @default fact
178
+ */
179
+ category: string;
180
+ /**
181
+ * Corroboration Count
182
+ * @default 1
183
+ */
184
+ corroboration_count: number; /** Description */
185
+ description?: string | null; /** Entity Id */
186
+ entity_id?: string | null; /** Entity Name */
187
+ entity_name?: string | null; /** Evidence Ids */
188
+ evidence_ids?: string[]; /** Evidence Refs */
189
+ evidence_refs?: components["schemas"]["EvidenceRef"][];
190
+ /**
191
+ * Extraction Confidence
192
+ * @default 0
193
+ */
194
+ extraction_confidence: number;
195
+ /**
196
+ * Id
197
+ * Format: uuid
198
+ */
199
+ id: string; /** Is Current */
200
+ is_current?: boolean | null; /** Predicate */
201
+ predicate: string; /** Reasoning */
202
+ reasoning?: string | null; /** Resolved At */
203
+ resolved_at?: string | null; /** Source Nodegroup Ids */
204
+ source_nodegroup_ids?: string[]; /** Stability Confidence */
205
+ stability_confidence?: number | null; /** Subject */
206
+ subject: string; /** Temporal Precision */
207
+ temporal_precision?: string | null; /** Temporal Validity */
208
+ temporal_validity?: unknown | null; /** Truth Confidence */
209
+ truth_confidence?: number | null; /** Use Confidence */
210
+ use_confidence?: number | null; /** Value */
211
+ value: string;
212
+ };
213
+ /**
214
+ * ActivatedWorkflow
215
+ * @description A workflow template activated during memory traversal.
216
+ *
217
+ * Workflows are the most structured form of procedure: ordered step
218
+ * sequences derived from Stage 2B causal subgraphs, clustered by
219
+ * taxonomy-triple backbone signature, and canonicalized via LLM-backed
220
+ * template induction. They answer "walk me through how I do X" and
221
+ * "what comes after step Y" queries, as opposed to ActivatedProcedure
222
+ * which answers "what are my preferences about X".
223
+ */
224
+ ActivatedWorkflow: {
225
+ /**
226
+ * Activation Score
227
+ * @default 0
228
+ */
229
+ activation_score: number;
230
+ /**
231
+ * Active Instance Count
232
+ * @default 0
233
+ */
234
+ active_instance_count: number; /** Backbone Signature Hash */
235
+ backbone_signature_hash?: string | null; /** Branches */
236
+ branches?: {
237
+ [key: string]: unknown;
238
+ }[];
239
+ /**
240
+ * Confidence
241
+ * @default 0
242
+ */
243
+ confidence: number; /** Current Step Index */
244
+ current_step_index?: number | null; /** Goal */
245
+ goal: string;
246
+ /**
247
+ * Id
248
+ * Format: uuid
249
+ */
250
+ id: string;
251
+ /**
252
+ * Instance Count
253
+ * @default 0
254
+ */
255
+ instance_count: number; /** Last Observed At */
256
+ last_observed_at?: string | null; /** Metadata */
257
+ metadata?: {
258
+ [key: string]: unknown;
259
+ } | null; /** Name */
260
+ name: string;
261
+ predicted_next_step?: components["schemas"]["ActivatedWorkflowStep"] | null; /** Steps */
262
+ steps?: components["schemas"]["ActivatedWorkflowStep"][];
263
+ /**
264
+ * Taxonomy Version
265
+ * @default 1
266
+ */
267
+ taxonomy_version: number; /** Variable Slots */
268
+ variable_slots?: {
269
+ [key: string]: unknown;
270
+ };
271
+ };
272
+ /**
273
+ * ActivatedWorkflowStep
274
+ * @description A single canonical step inside an activated workflow template.
275
+ *
276
+ * Rich context fields (how_this_works, typical_entities, typical_tools,
277
+ * causes_next_because) are populated by the template inducer and carry
278
+ * forward the observational detail from the instances that built this
279
+ * template. They exist so an agent can understand *how* a step works,
280
+ * *what tools are used*, and *why* it causes the next step — not just
281
+ * *what* the step is.
282
+ */
283
+ ActivatedWorkflowStep: {
284
+ /** Canonical Description */canonical_description: string; /** Causes Next Because */
285
+ causes_next_because?: string | null; /** Entity Roles */
286
+ entity_roles?: string[]; /** Goal Category */
287
+ goal_category: string; /** How This Works */
288
+ how_this_works?: string | null; /** Index */
289
+ index: number; /** Object Type */
290
+ object_type: string;
291
+ /**
292
+ * Optional
293
+ * @default false
294
+ */
295
+ optional: boolean; /** Typical Entities */
296
+ typical_entities?: string[]; /** Typical Tools */
297
+ typical_tools?: string[]; /** Variable Slots */
298
+ variable_slots?: string[]; /** Verb Class */
299
+ verb_class: string;
300
+ }; /** AppendConversationMessage */
301
+ AppendConversationMessage: {
302
+ /**
303
+ * Authority
304
+ * @description Optional authority score
305
+ */
306
+ authority?: number | null;
307
+ /**
308
+ * Content
309
+ * @description Message content. Use a string for text-only messages or a list of content parts for multimodal content.
310
+ */
311
+ content: string | (components["schemas"]["TextContentRequest"] | components["schemas"]["FileContentRequest"] | components["schemas"]["S3FileReferenceRequest"])[];
312
+ /**
313
+ * Metadata
314
+ * @description Optional message-level metadata
315
+ */
316
+ metadata?: {
317
+ [key: string]: unknown;
318
+ } | null;
319
+ /**
320
+ * Parent Id
321
+ * @description Optional parent message ID
322
+ */
323
+ parent_id?: string | null;
324
+ /**
325
+ * Role
326
+ * @description Role: 'user', 'assistant', or 'system'
327
+ * @enum {string}
328
+ */
329
+ role: "user" | "assistant" | "system";
330
+ /**
331
+ * Source Role Id
332
+ * @description Optional SourceRole entity ID
333
+ */
334
+ source_role_id?: string | null;
335
+ /**
336
+ * Timestamp
337
+ * @description Semantic timestamp for when the message was authored. Drives chunk timestamps, the extraction LLM's temporal anchor, and episodic grouping. Without it, relative phrases ('this morning') resolve against ingestion wall-clock and episodes collapse.
338
+ */
339
+ timestamp?: string | null;
340
+ }; /** AppendMemoryRequest */
341
+ AppendMemoryRequest: {
342
+ /**
343
+ * Chunks
344
+ * @description Pre-processed text chunks to append for document memories.
345
+ */
346
+ chunks?: string[] | null;
347
+ /**
348
+ * Collection Id
349
+ * Format: uuid
350
+ * @description Target collection ID for the appended content.
351
+ */
352
+ collection_id: string; /** @description Optional ingestion configuration override. */
353
+ ingestion_config?: components["schemas"]["IngestionConfig"] | null;
354
+ /**
355
+ * @description Ingestion mode for document content.
356
+ * @default custom
357
+ */
358
+ ingestion_mode: components["schemas"]["IngestionMode"];
359
+ /**
360
+ * Messages
361
+ * @description Messages to append for conversation memories. Each message has content, role, and optional metadata.
362
+ */
363
+ messages?: components["schemas"]["AppendConversationMessage"][] | null;
364
+ /**
365
+ * Metadata
366
+ * @description Additional metadata for the appended content.
367
+ */
368
+ metadata?: {
369
+ [key: string]: unknown;
370
+ } | null;
371
+ /**
372
+ * Raw Text
373
+ * @description Raw text content to append for document memories.
374
+ */
375
+ raw_text?: string | null;
376
+ }; /** AppendMemoryResponse */
377
+ AppendMemoryResponse: {
378
+ /** Appended Messages */appended_messages?: components["schemas"]["AppendedMessageResponse"][];
379
+ /**
380
+ * Id
381
+ * Format: uuid
382
+ */
383
+ id: string;
384
+ message: components["schemas"]["Message"];
385
+ /**
386
+ * Metadata
387
+ * @default {}
388
+ */
389
+ metadata: {
390
+ [key: string]: unknown;
391
+ };
392
+ }; /** AppendedMessageResponse */
393
+ AppendedMessageResponse: {
394
+ /** Chunk Ids */chunk_ids?: string[]; /** Message Id */
395
+ message_id: string;
396
+ }; /** BatchDeleteResponse */
397
+ BatchDeleteResponse: {
398
+ /** Message */message: string;
399
+ results: components["schemas"]["BatchDeleteResult"];
400
+ }; /** BatchDeleteResult */
401
+ BatchDeleteResult: {
402
+ /** Failed */failed: {
403
+ [key: string]: unknown;
404
+ }[]; /** Successful */
405
+ successful: string[]; /** Summary */
406
+ summary: {
407
+ [key: string]: unknown;
408
+ };
409
+ };
410
+ /**
411
+ * BootstrapRecallRequest
412
+ * @description Top-K patterns by confidence with no anchor.
413
+ *
414
+ * Used when a caller has no current state but wants to see what
415
+ * patterns the collection knows about (onboarding, exploration).
416
+ */
417
+ BootstrapRecallRequest: {
418
+ /**
419
+ * Collection Id
420
+ * Format: uuid
421
+ * @description Collection containing the patterns to recall.
422
+ */
423
+ collection_id: string;
424
+ /**
425
+ * Intent
426
+ * @default bootstrap
427
+ * @constant
428
+ */
429
+ intent: "bootstrap";
430
+ /**
431
+ * Top K
432
+ * @description Maximum number of pattern hits to return.
433
+ * @default 10
434
+ */
435
+ top_k: number;
436
+ };
437
+ /**
438
+ * ChunkEnrichmentSettings
439
+ * @description Settings for chunk enrichment.
440
+ *
441
+ * Model selection for the enrichment LLM call lives in
442
+ * ``app.task_llms.chunk_enrichment``; the legacy ``generation_config``
443
+ * field was removed in the per-task LLM cleanup pass.
444
+ */
445
+ ChunkEnrichmentSettings: {
446
+ /**
447
+ * Chunk Enrichment Prompt
448
+ * @description The prompt to use for chunk enrichment
449
+ * @default chunk_enrichment
450
+ */
451
+ chunk_enrichment_prompt: string | null;
452
+ /**
453
+ * Enable Chunk Enrichment
454
+ * @description Whether to enable chunk enrichment or not
455
+ * @default false
456
+ */
457
+ enable_chunk_enrichment: boolean;
458
+ /**
459
+ * N Chunks
460
+ * @description The number of preceding and succeeding chunks to include. Defaults to 2.
461
+ * @default 2
462
+ */
463
+ n_chunks: number;
464
+ }; /** CollectionResponse */
465
+ CollectionResponse: {
466
+ /**
467
+ * Access Tier
468
+ * @default private
469
+ */
470
+ access_tier: string | null;
471
+ /**
472
+ * Cache Policy
473
+ * @default lazy
474
+ */
475
+ cache_policy: string | null; /** Chain Type */
476
+ chain_type?: string | null; /** Contract Address */
477
+ contract_address?: string | null;
478
+ /**
479
+ * Created At
480
+ * Format: date-time
481
+ */
482
+ created_at: string;
483
+ /**
484
+ * Creator Royalty Bps
485
+ * @default 250
486
+ */
487
+ creator_royalty_bps: number | null; /** Description */
488
+ description: string | null; /** Engram Count */
489
+ engram_count: number; /** Graph Collection Status */
490
+ graph_collection_status: string; /** Graph Sync Status */
491
+ graph_sync_status: string; /** Has Preview Access */
492
+ has_preview_access?: boolean | null;
493
+ /**
494
+ * Id
495
+ * Format: uuid
496
+ */
497
+ id: string; /** Is Forked */
498
+ is_forked?: boolean | null; /** Marketplace Metadata */
499
+ marketplace_metadata?: {
500
+ [key: string]: unknown;
501
+ } | null;
502
+ /**
503
+ * Memory Count
504
+ * @default 0
505
+ */
506
+ memory_count: number | null; /** Name */
507
+ name: string; /** Nft Collection Address */
508
+ nft_collection_address?: string | null; /** Owner Email */
509
+ owner_email?: string | null; /** Owner Id */
510
+ owner_id: string | null; /** Owner Name */
511
+ owner_name?: string | null;
512
+ /**
513
+ * Preview Query Limit
514
+ * @default 0
515
+ */
516
+ preview_query_limit: number | null; /** Purchase Price Usd */
517
+ purchase_price_usd?: string | null; /** Rental Price Monthly Usd */
518
+ rental_price_monthly_usd?: string | null;
519
+ /**
520
+ * Updated At
521
+ * Format: date-time
522
+ */
523
+ updated_at: string; /** User Count */
524
+ user_count: number;
525
+ /**
526
+ * Workflows Enabled
527
+ * @default false
528
+ */
529
+ workflows_enabled: boolean; /** Workspace Id */
530
+ workspace_id?: string | null;
531
+ };
532
+ /**
533
+ * CompactMemoryRecallResponse
534
+ * @description Default compact response from /v1/memories/search.
535
+ */
536
+ CompactMemoryRecallResponse: {
537
+ /** Episodic */episodic?: {
538
+ [key: string]: unknown;
539
+ }[]; /** Procedural */
540
+ procedural?: {
541
+ [key: string]: unknown;
542
+ }[]; /** Query */
543
+ query: string; /** Semantic */
544
+ semantic?: {
545
+ [key: string]: unknown;
546
+ }[]; /** Sources */
547
+ sources?: {
548
+ [key: string]: unknown;
549
+ }[];
550
+ /**
551
+ * Token Count
552
+ * @default 0
553
+ */
554
+ token_count: number;
555
+ }; /** ConnectRequest */
556
+ ConnectRequest: {
557
+ /**
558
+ * Collection Id
559
+ * Format: uuid
560
+ */
561
+ collection_id: string; /** Config */
562
+ config?: {
563
+ [key: string]: unknown;
564
+ } | null;
565
+ }; /** ConnectorConnectResponse */
566
+ ConnectorConnectResponse: {
567
+ /** Auth Url */auth_url: string; /** State */
568
+ state: string;
569
+ }; /** ConnectorConnectionResponse */
570
+ ConnectorConnectionResponse: {
571
+ /**
572
+ * Collection Id
573
+ * Format: uuid
574
+ */
575
+ collection_id: string; /** Config */
576
+ config?: {
577
+ [key: string]: unknown;
578
+ } | null;
579
+ /**
580
+ * Created At
581
+ * Format: date-time
582
+ */
583
+ created_at: string;
584
+ error_detail?: components["schemas"]["ConnectorErrorDetail"] | null; /** External Account Id */
585
+ external_account_id?: string | null; /** Health */
586
+ health?: ("ok" | "error") | null;
587
+ /**
588
+ * Id
589
+ * Format: uuid
590
+ */
591
+ id: string; /** Items Synced */
592
+ items_synced?: number | null; /** Last Error */
593
+ last_error?: string | null; /** Last Synced At */
594
+ last_synced_at?: string | null; /** Next Sync At */
595
+ next_sync_at?: string | null; /** Provider */
596
+ provider: string;
597
+ /**
598
+ * Status
599
+ * @enum {string}
600
+ */
601
+ status: "active" | "pending" | "revoked"; /** Sync Cursor */
602
+ sync_cursor?: {
603
+ [key: string]: unknown;
604
+ } | null; /** Token Expires At */
605
+ token_expires_at?: string | null;
606
+ /**
607
+ * Updated At
608
+ * Format: date-time
609
+ */
610
+ updated_at: string;
611
+ /**
612
+ * User Id
613
+ * Format: uuid
614
+ */
615
+ user_id: string;
616
+ }; /** ConnectorDisconnectResponse */
617
+ ConnectorDisconnectResponse: {
618
+ /** Message */message: string; /** Warnings */
619
+ warnings?: components["schemas"]["ConnectorWarning"][];
620
+ }; /** ConnectorErrorDetail */
621
+ ConnectorErrorDetail: {
622
+ /** Message */message: string; /** Retryable */
623
+ retryable: boolean;
624
+ }; /** ConnectorSyncResponse */
625
+ ConnectorSyncResponse: {
626
+ /** Message */message: string;
627
+ }; /** ConnectorWarning */
628
+ ConnectorWarning: {
629
+ /** Code */code: string; /** Message */
630
+ message: string;
631
+ };
632
+ /**
633
+ * ConversationFields
634
+ * @description Conversation-specific typed fields.
635
+ *
636
+ * Present iff ``Engram.kind == CONVERSATION``. Holds the platform-written
637
+ * fields that previously lived on ``metadata`` (``conversation_id``,
638
+ * ``episode_type``) so they have a typed home and are not co-mingled with
639
+ * user-supplied metadata.
640
+ */
641
+ ConversationFields: {
642
+ /** Conversation Id */conversation_id?: string | null; /** Episode Type */
643
+ episode_type?: string | null;
644
+ };
645
+ /**
646
+ * ConversationMessage
647
+ * @description A message in a conversation with multimodal support.
648
+ */
649
+ ConversationMessage: {
650
+ /**
651
+ * Authority
652
+ * @description Optional authority score
653
+ */
654
+ authority?: number | null;
655
+ /**
656
+ * Content
657
+ * @description Message content. Use a string for text-only messages or a list of content parts for multimodal content.
658
+ */
659
+ content: string | (components["schemas"]["TextContentRequest"] | components["schemas"]["FileContentRequest"] | components["schemas"]["S3FileReferenceRequest"])[];
660
+ /**
661
+ * Metadata
662
+ * @description Optional message-level metadata
663
+ */
664
+ metadata?: {
665
+ [key: string]: unknown;
666
+ } | null;
667
+ /**
668
+ * Role
669
+ * @description Role: 'user', 'assistant', or 'system'
670
+ * @enum {string}
671
+ */
672
+ role: "user" | "assistant" | "system";
673
+ /**
674
+ * Timestamp
675
+ * @description Semantic timestamp for when the message was authored. Drives chunk timestamps, the extraction LLM's temporal anchor, and episodic grouping. Without it, relative phrases ('this morning') resolve against ingestion wall-clock and episodes collapse.
676
+ */
677
+ timestamp?: string | null;
678
+ }; /** CreateCollectionRequest */
679
+ CreateCollectionRequest: {
680
+ /** Description */description?: string | null; /** Name */
681
+ name: string;
682
+ /**
683
+ * Workflows Enabled
684
+ * @default false
685
+ */
686
+ workflows_enabled: boolean; /** Workspace Id */
687
+ workspace_id?: string | null;
688
+ };
689
+ /**
690
+ * CreateMemoryRequest
691
+ * @description Request model for creating memories (conversations or documents).
692
+ *
693
+ * The canonical discriminator is ``kind`` (an :class:`EngramKind`).
694
+ * Typed substructures (``conversation`` / ``document``) live on the
695
+ * response :class:`Engram` and are populated server-side from inferred
696
+ * values (``conversation_id`` is derived deterministically;
697
+ * ``document_type`` and ``original_extension`` are inferred from the
698
+ * file's content or extension). The request shape carries only
699
+ * user-controllable inputs; ``metadata`` is reserved for user-supplied
700
+ * annotations and must not carry platform discriminators or routing
701
+ * markers. Unknown fields are rejected so a caller cannot accidentally
702
+ * smuggle server-owned substructure into the request.
703
+ */
704
+ CreateMemoryRequest: {
705
+ /**
706
+ * Chunks
707
+ * @description Pre-chunked text for document kind
708
+ */
709
+ chunks?: string[] | null;
710
+ /**
711
+ * Collection Id
712
+ * @description Collection UUID (mutually exclusive with snapshot)
713
+ */
714
+ collection_id?: string | null;
715
+ /**
716
+ * Content Parts
717
+ * @description Multimodal content parts (text, images, audio, documents) for document kind.
718
+ */
719
+ content_parts?: (components["schemas"]["TextContentRequest"] | components["schemas"]["FileContentRequest"] | components["schemas"]["S3FileReferenceRequest"])[] | null;
720
+ /**
721
+ * Contents
722
+ * @description Batch content strings for snapshot mode
723
+ */
724
+ contents?: string[] | null; /** @description Custom ingestion config for documents */
725
+ ingestion_config?: components["schemas"]["IngestionConfig"] | null;
726
+ /**
727
+ * @description Ingestion mode for documents
728
+ * @default fast
729
+ */
730
+ ingestion_mode: components["schemas"]["IngestionMode"] | null;
731
+ /**
732
+ * @description Engram discriminator: ``document`` or ``conversation``. When omitted, ``conversation`` is inferred if ``messages`` is present; otherwise defaults to ``document``.
733
+ * @default document
734
+ */
735
+ kind: components["schemas"]["EngramKind"];
736
+ /**
737
+ * Messages
738
+ * @description Messages for conversation kind
739
+ */
740
+ messages?: components["schemas"]["ConversationMessage"][] | null;
741
+ /**
742
+ * Metadata
743
+ * @description User-supplied metadata for the memory. Must not carry platform discriminators or routing markers — use the ``kind`` / ``conversation`` / ``document`` fields instead.
744
+ */
745
+ metadata?: {
746
+ [key: string]: unknown;
747
+ } | null;
748
+ /**
749
+ * Name
750
+ * @description Optional name for the memory
751
+ */
752
+ name?: string | null;
753
+ /**
754
+ * Raw Text
755
+ * @description Raw text content for document kind
756
+ */
757
+ raw_text?: string | null; /** @description Device-memory snapshot (mutually exclusive with collection_id). */
758
+ snapshot?: components["schemas"]["SnapshotEnvelope-Input"] | null;
759
+ /**
760
+ * Speaker Id
761
+ * @description UUID of the SourceRole entity creating this memory
762
+ */
763
+ speaker_id?: string | null;
764
+ /**
765
+ * Speaker Name
766
+ * @description Display name of the speaker/agent creating this memory
767
+ */
768
+ speaker_name?: string | null;
769
+ };
770
+ /**
771
+ * CursorRecallRequest
772
+ * @description Locate where the caller is in known workflows.
773
+ *
774
+ * Matches the caller's current state against pattern canonical
775
+ * instances' entry states; returns ranked pattern hits with
776
+ * pattern-side position metadata.
777
+ */
778
+ CursorRecallRequest: {
779
+ /**
780
+ * Collection Id
781
+ * Format: uuid
782
+ * @description Collection containing the patterns to recall.
783
+ */
784
+ collection_id: string;
785
+ /**
786
+ * Intent
787
+ * @default cursor
788
+ * @constant
789
+ */
790
+ intent: "cursor";
791
+ /**
792
+ * State Id
793
+ * @description Anchor: the user's current state nodegroup id.
794
+ */
795
+ state_id?: string | null;
796
+ /**
797
+ * Top K
798
+ * @description Maximum number of pattern hits to return.
799
+ * @default 10
800
+ */
801
+ top_k: number;
802
+ /**
803
+ * Trace Id
804
+ * @description Anchor: the user's most recent trace id. The handler resolves this trace's state_before automatically.
805
+ */
806
+ trace_id?: string | null;
807
+ }; /** DeleteMemoriesRequest */
808
+ DeleteMemoriesRequest: string | string[];
809
+ /**
810
+ * DocumentFields
811
+ * @description Document-specific typed fields.
812
+ *
813
+ * Present iff ``Engram.kind == DOCUMENT``. ``document_type`` is required
814
+ * because every document needs an extension/format classifier for parsing.
815
+ * ``original_extension`` records the source filename's extension when it
816
+ * differs from the canonical ``document_type`` (e.g. user uploaded ``.JPG``
817
+ * normalized to ``jpeg``).
818
+ */
819
+ DocumentFields: {
820
+ document_type: components["schemas"]["DocumentType"]; /** Original Extension */
821
+ original_extension?: string | null;
822
+ };
823
+ /**
824
+ * DocumentType
825
+ * @description Types of file formats that can be stored as engrams.
826
+ * @enum {string}
827
+ */
828
+ DocumentType: "mp3" | "csv" | "eml" | "msg" | "p7s" | "epub" | "xls" | "xlsx" | "html" | "htm" | "bmp" | "heic" | "jpeg" | "png" | "tiff" | "jpg" | "svg" | "md" | "org" | "odt" | "pdf" | "txt" | "json" | "ppt" | "pptx" | "rst" | "rtf" | "tsv" | "gif" | "doc" | "docx" | "py" | "js" | "ts" | "css";
829
+ /**
830
+ * EmbeddingBlock
831
+ * @description A positionally-aligned masked embedding matrix.
832
+ */
833
+ EmbeddingBlock: {
834
+ /**
835
+ * Dim
836
+ * @default 0
837
+ */
838
+ dim: number;
839
+ /**
840
+ * Encoding
841
+ * @default npy-base64
842
+ * @constant
843
+ */
844
+ encoding: "npy-base64";
845
+ /**
846
+ * Mask B64
847
+ * @default
848
+ */
849
+ mask_b64: string;
850
+ /**
851
+ * Values B64
852
+ * @default
853
+ */
854
+ values_b64: string;
855
+ };
856
+ /**
857
+ * Engram
858
+ * @description The unified engram model: typed kind + per-kind substructure.
859
+ *
860
+ * ``kind`` is the canonical discriminator. The per-kind ``conversation``
861
+ * and ``document`` substructures hold typed fields known to the
862
+ * platform; ``metadata`` is reserved for user-supplied annotations and
863
+ * must never carry platform-written discriminators or routing markers.
864
+ *
865
+ * Construction enforces shape consistency via a model validator:
866
+ * ``kind=conversation`` must not carry document fields, ``kind=document``
867
+ * must carry a ``DocumentFields`` substructure (``document_type`` is
868
+ * required), and vice versa.
869
+ * @example {
870
+ * "collection_ids": [
871
+ * "123e4567-e89b-12d3-a456-426614174000"
872
+ * ],
873
+ * "created_at": "2021-01-01T00:00:00",
874
+ * "document": {
875
+ * "document_type": "pdf"
876
+ * },
877
+ * "extraction_status": "pending",
878
+ * "id": "123e4567-e89b-12d3-a456-426614174000",
879
+ * "ingestion_attempt_number": 0,
880
+ * "ingestion_status": "pending",
881
+ * "kind": "document",
882
+ * "metadata": {},
883
+ * "owner_id": "123e4567-e89b-12d3-a456-426614174000",
884
+ * "size_in_bytes": 123456,
885
+ * "title": "Sample Document",
886
+ * "total_tokens": 1000,
887
+ * "updated_at": "2021-01-01T00:00:00",
888
+ * "version": "1.0"
889
+ * }
890
+ */
891
+ Engram: {
892
+ /** Chunks */chunks?: unknown[] | null; /** Collection Ids */
893
+ collection_ids?: string[];
894
+ conversation?: components["schemas"]["ConversationFields"] | null; /** Created At */
895
+ created_at?: string | null;
896
+ document?: components["schemas"]["DocumentFields"] | null; /** @default pending */
897
+ extraction_status: components["schemas"]["GraphExtractionStatus"];
898
+ /**
899
+ * Id
900
+ * Format: uuid
901
+ */
902
+ id?: string; /** Ingestion Attempt Number */
903
+ ingestion_attempt_number?: number | null; /** @default pending */
904
+ ingestion_status: components["schemas"]["IngestionStatus"];
905
+ kind: components["schemas"]["EngramKind"]; /** Merkle Root */
906
+ merkle_root?: string | null; /** Metadata */
907
+ metadata?: {
908
+ [key: string]: unknown;
909
+ };
910
+ /**
911
+ * Owner Id
912
+ * Format: uuid
913
+ */
914
+ owner_id: string; /** Search Ready Seq */
915
+ search_ready_seq?: number | null; /** Size In Bytes */
916
+ size_in_bytes?: number | null; /** Text */
917
+ text?: string | null; /** Title */
918
+ title?: string | null; /** Total Tokens */
919
+ total_tokens?: number | null; /** Updated At */
920
+ updated_at?: string | null; /** Version */
921
+ version?: string | null; /** Workflow Run Id */
922
+ workflow_run_id?: string | null;
923
+ };
924
+ /**
925
+ * EngramKind
926
+ * @description The canonical engram discriminator.
927
+ *
928
+ * A single source of truth: every engram is either a ``document`` or a
929
+ * ``conversation``. The kind drives which typed substructure
930
+ * (``Engram.document`` / ``Engram.conversation``) carries kind-specific
931
+ * fields. The free-form ``metadata`` dict is reserved for user-supplied
932
+ * annotations and is never inspected for routing.
933
+ * @enum {string}
934
+ */
935
+ EngramKind: "document" | "conversation";
936
+ /**
937
+ * EntityRecord
938
+ * @description Canonical entity record used in snapshots, WAL ops, and segments.
939
+ */
940
+ EntityRecord: {
941
+ /** Category */category?: string | null; /** Chunk Ids */
942
+ chunk_ids?: string[];
943
+ /**
944
+ * Collection Id
945
+ * @default
946
+ */
947
+ collection_id: string;
948
+ /**
949
+ * Created At
950
+ * Format: date-time
951
+ */
952
+ created_at: string; /** Description */
953
+ description?: string | null; /** Engram Id */
954
+ engram_id: string; /** Fts Terms */
955
+ fts_terms?: {
956
+ [key: string]: number;
957
+ } | null; /** Id */
958
+ id: string; /** Metadata */
959
+ metadata?: {
960
+ [key: string]: unknown;
961
+ }; /** Name */
962
+ name: string;
963
+ /**
964
+ * Relationship Count
965
+ * @default 0
966
+ */
967
+ relationship_count: number;
968
+ /**
969
+ * Updated At
970
+ * Format: date-time
971
+ */
972
+ updated_at: string;
973
+ };
974
+ /**
975
+ * Error
976
+ * @description Canonical error response envelope used across all public endpoints. SDK error classes are generated from this shape.
977
+ */
978
+ Error: {
979
+ /** @description Optional fine-grained error code within a category. */code?: string | null; /** @description Optional structured payload with context-specific diagnostic data. */
980
+ details?: unknown; /** @description Human-readable error description. */
981
+ message: string; /** @description Request correlation id for support-ticket lookups. */
982
+ request_id?: string | null; /** @description Stable machine-readable error category, e.g. 'validation_error', 'not_found', 'rate_limited'. */
983
+ type: string;
984
+ };
985
+ /**
986
+ * EvidenceRecallRequest
987
+ * @description Expand a specific pattern's canonical instance subgraph.
988
+ */
989
+ EvidenceRecallRequest: {
990
+ /**
991
+ * Collection Id
992
+ * Format: uuid
993
+ * @description Collection containing the patterns to recall.
994
+ */
995
+ collection_id: string;
996
+ /**
997
+ * Intent
998
+ * @default evidence
999
+ * @constant
1000
+ */
1001
+ intent: "evidence";
1002
+ /**
1003
+ * Pattern Id
1004
+ * Format: uuid
1005
+ * @description The pattern entity to hydrate.
1006
+ */
1007
+ pattern_id: string;
1008
+ /**
1009
+ * Top K
1010
+ * @description Maximum number of pattern hits to return.
1011
+ * @default 10
1012
+ */
1013
+ top_k: number;
1014
+ };
1015
+ /**
1016
+ * EvidenceRef
1017
+ * @description Tagged reference to a source of evidence.
1018
+ */
1019
+ EvidenceRef: {
1020
+ /** Artifact Id */artifact_id?: string | null; /** Chunk Id */
1021
+ chunk_id?: string | null; /** Collection Id */
1022
+ collection_id?: string | null; /** Column Names */
1023
+ column_names?: string[] | null;
1024
+ ref_type: components["schemas"]["EvidenceRefType"]; /** Row Indices */
1025
+ row_indices?: number[] | null; /** Table Name */
1026
+ table_name?: string | null;
1027
+ };
1028
+ /**
1029
+ * EvidenceRefType
1030
+ * @enum {string}
1031
+ */
1032
+ EvidenceRefType: "chunk" | "table_artifact";
1033
+ /**
1034
+ * FileContentRequest
1035
+ * @description Unified file content for multimodal messages.
1036
+ */
1037
+ FileContentRequest: {
1038
+ /**
1039
+ * Data
1040
+ * @description Base64 encoded file data
1041
+ */
1042
+ data: string;
1043
+ /**
1044
+ * Duration Seconds
1045
+ * @description Duration in seconds (for audio)
1046
+ */
1047
+ duration_seconds?: number | null;
1048
+ /**
1049
+ * Filename
1050
+ * @description Original filename
1051
+ */
1052
+ filename?: string | null;
1053
+ /**
1054
+ * Media Type
1055
+ * @description MIME type
1056
+ * @default application/octet-stream
1057
+ */
1058
+ media_type: string;
1059
+ /**
1060
+ * @description Content kind: file, image, audio, or document. (enum property replaced by openapi-typescript)
1061
+ * @enum {string}
1062
+ */
1063
+ type: "audio" | "document" | "file" | "image";
1064
+ }; /** GenericBooleanResponse */
1065
+ GenericBooleanResponse: {
1066
+ /** Success */success: boolean;
1067
+ }; /** GenericMessageResponse */
1068
+ GenericMessageResponse: {
1069
+ /** Id */id?: string | null; /** Memory Id */
1070
+ memory_id?: string | null; /** Message */
1071
+ message: string;
1072
+ };
1073
+ /**
1074
+ * GraphExtractionStatus
1075
+ * @description Status of graph creation per document.
1076
+ * @enum {string}
1077
+ */
1078
+ GraphExtractionStatus: "pending" | "processing" | "success" | "failed";
1079
+ /**
1080
+ * GraphPayload
1081
+ * @description A complete graph payload or a context subgraph payload.
1082
+ */
1083
+ GraphPayload: {
1084
+ /** Entities */entities?: components["schemas"]["EntityRecord"][];
1085
+ entity_description_embeddings?: components["schemas"]["EmbeddingBlock"];
1086
+ relationship_description_embeddings?: components["schemas"]["EmbeddingBlock"];
1087
+ relationship_relation_embeddings?: components["schemas"]["EmbeddingBlock"]; /** Relationships */
1088
+ relationships?: components["schemas"]["RelationshipRecord"][];
1089
+ };
1090
+ /**
1091
+ * GroundedSource
1092
+ * @description A source that grounds facts in episodic memory.
1093
+ *
1094
+ * This is the raw source material that supports the structured knowledge.
1095
+ * Provides the exact quotes and context for verification.
1096
+ *
1097
+ * ``evidence_ref`` carries typed provenance so the client can distinguish
1098
+ * chunk-backed sources from table-artifact-backed sources (or future
1099
+ * modalities) without parsing opaque metadata.
1100
+ */
1101
+ GroundedSource: {
1102
+ /**
1103
+ * Activation Score
1104
+ * @default 0
1105
+ */
1106
+ activation_score: number; /** Display Name */
1107
+ display_name?: string | null; /** Engram Id */
1108
+ engram_id?: string | null;
1109
+ evidence_ref?: components["schemas"]["EvidenceRef"] | null;
1110
+ /**
1111
+ * Id
1112
+ * Format: uuid
1113
+ */
1114
+ id: string; /** Metadata */
1115
+ metadata?: {
1116
+ [key: string]: unknown;
1117
+ } | null; /** Owner Id */
1118
+ owner_id?: string | null; /** Page Number */
1119
+ page_number?: number | null; /** Section Path */
1120
+ section_path?: string[] | null; /** Source Role */
1121
+ source_role?: string | null; /** Speaker */
1122
+ speaker?: string | null; /** Speaker Id */
1123
+ speaker_id?: string | null; /** Structure Label */
1124
+ structure_label?: string | null; /** Supporting Fact Ids */
1125
+ supporting_fact_ids?: string[]; /** Text */
1126
+ text: string; /** Timestamp */
1127
+ timestamp?: string | null;
1128
+ };
1129
+ /**
1130
+ * InferenceHint
1131
+ * @description A lightweight inference artifact returned alongside MemoryRecall.
1132
+ *
1133
+ * These are *not* asserted facts. They are "evidence + weak hints" that may have influenced
1134
+ * retrieval (e.g. query expansion) or may be useful for UI transparency.
1135
+ */
1136
+ InferenceHint: {
1137
+ /** Confidence */confidence?: number | null; /** Inference Metadata */
1138
+ inference_metadata?: {
1139
+ [key: string]: unknown;
1140
+ } | null;
1141
+ /**
1142
+ * Inferred
1143
+ * @default false
1144
+ */
1145
+ inferred: boolean; /** Ledger P Stable */
1146
+ ledger_p_stable?: number | null; /** Ledger P True */
1147
+ ledger_p_true?: number | null; /** Ledger P Use */
1148
+ ledger_p_use?: number | null; /** Metadata */
1149
+ metadata?: {
1150
+ [key: string]: unknown;
1151
+ } | null; /** Object */
1152
+ object: string; /** Object Id */
1153
+ object_id?: string | null; /** Predicate */
1154
+ predicate: string; /** Relationship Id */
1155
+ relationship_id?: string | null; /** Subject Id */
1156
+ subject_id?: string | null; /** Term */
1157
+ term: string;
1158
+ /**
1159
+ * Usable For Rewrite
1160
+ * @default false
1161
+ */
1162
+ usable_for_rewrite: boolean;
1163
+ /**
1164
+ * Used For Rewrite
1165
+ * @default false
1166
+ */
1167
+ used_for_rewrite: boolean;
1168
+ };
1169
+ /**
1170
+ * IngestionConfig
1171
+ * @description Public ingestion config accepted by memory-ingestion endpoints.
1172
+ *
1173
+ * This mirrors the supported request payload shape while staying independent
1174
+ * from the runtime provider config, which also carries internal-only fields
1175
+ * such as ``app`` and ``extra_fields``.
1176
+ */
1177
+ IngestionConfig: {
1178
+ /** Audio Transcription Model */audio_transcription_model?: string | null;
1179
+ /**
1180
+ * Automatic Extraction
1181
+ * @default false
1182
+ */
1183
+ automatic_extraction: boolean;
1184
+ chunk_enrichment_settings?: components["schemas"]["ChunkEnrichmentSettings"];
1185
+ /**
1186
+ * Chunk Overlap
1187
+ * @default 512
1188
+ */
1189
+ chunk_overlap: number;
1190
+ /**
1191
+ * Chunk Size
1192
+ * @default 1024
1193
+ */
1194
+ chunk_size: number;
1195
+ /**
1196
+ * Chunking Strategy
1197
+ * @default recursive
1198
+ */
1199
+ chunking_strategy: string; /** Excluded Parsers */
1200
+ excluded_parsers?: string[]; /** Extra Parsers */
1201
+ extra_parsers?: {
1202
+ [key: string]: unknown;
1203
+ };
1204
+ /**
1205
+ * Max Concurrent Vlm Tasks
1206
+ * @default 5
1207
+ */
1208
+ max_concurrent_vlm_tasks: number; /** Parser Overrides */
1209
+ parser_overrides?: {
1210
+ [key: string]: string;
1211
+ };
1212
+ /**
1213
+ * Provider
1214
+ * @default nebula
1215
+ */
1216
+ provider: string; /** Vlm */
1217
+ vlm?: string | null;
1218
+ /**
1219
+ * Vlm Batch Size
1220
+ * @default 5
1221
+ */
1222
+ vlm_batch_size: number;
1223
+ /**
1224
+ * Vlm Max Tokens To Sample
1225
+ * @default 1024
1226
+ */
1227
+ vlm_max_tokens_to_sample: number;
1228
+ /**
1229
+ * Vlm Ocr One Page Per Chunk
1230
+ * @default true
1231
+ */
1232
+ vlm_ocr_one_page_per_chunk: boolean;
1233
+ };
1234
+ /**
1235
+ * IngestionMode
1236
+ * @enum {string}
1237
+ */
1238
+ IngestionMode: "hi-res" | "ocr" | "fast" | "custom";
1239
+ /**
1240
+ * IngestionResponse
1241
+ * @example {
1242
+ * "engram_id": "9fbe403b-c11c-5aae-8ade-ef22980c3ad1",
1243
+ * "message": "Ingestion task queued successfully.",
1244
+ * "task_id": "c68dc72e-fc23-5452-8f49-d7bd46088a96"
1245
+ * }
1246
+ */
1247
+ IngestionResponse: {
1248
+ /**
1249
+ * Engram Id
1250
+ * Format: uuid
1251
+ * @description The ID of the engram that was ingested.
1252
+ */
1253
+ engram_id: string;
1254
+ /**
1255
+ * Message
1256
+ * @description A message describing the result of the ingestion request.
1257
+ */
1258
+ message: string;
1259
+ /**
1260
+ * Task Id
1261
+ * @description The task ID of the ingestion request.
1262
+ */
1263
+ task_id?: string | null;
1264
+ };
1265
+ /**
1266
+ * IngestionStatus
1267
+ * @description Status of document processing.
1268
+ * @enum {string}
1269
+ */
1270
+ IngestionStatus: "pending" | "parsing" | "extracting" | "chunking" | "embedding" | "augmenting" | "storing" | "failed" | "success";
1271
+ /**
1272
+ * ListedEngram
1273
+ * @description Engram as it appears in list responses, with per-row chunk-page metadata appended.
1274
+ */
1275
+ ListedEngram: {
1276
+ /** Chunks */chunks?: unknown[] | null; /** @description True when ``chunks`` carries a prefix of the engram's full chunk set; fetch ``/v1/memories/{id}/chunks`` for the rest. */
1277
+ chunks_truncated?: boolean; /** Collection Ids */
1278
+ collection_ids?: string[];
1279
+ conversation?: components["schemas"]["ConversationFields"] | null; /** Created At */
1280
+ created_at?: string | null;
1281
+ document?: components["schemas"]["DocumentFields"] | null; /** @default pending */
1282
+ extraction_status: components["schemas"]["GraphExtractionStatus"];
1283
+ /**
1284
+ * Id
1285
+ * Format: uuid
1286
+ */
1287
+ id?: string; /** Ingestion Attempt Number */
1288
+ ingestion_attempt_number?: number | null; /** @default pending */
1289
+ ingestion_status: components["schemas"]["IngestionStatus"];
1290
+ kind: components["schemas"]["EngramKind"]; /** Merkle Root */
1291
+ merkle_root?: string | null; /** Metadata */
1292
+ metadata?: {
1293
+ [key: string]: unknown;
1294
+ };
1295
+ /**
1296
+ * Owner Id
1297
+ * Format: uuid
1298
+ */
1299
+ owner_id: string; /** Search Ready Seq */
1300
+ search_ready_seq?: number | null; /** Size In Bytes */
1301
+ size_in_bytes?: number | null; /** Text */
1302
+ text?: string | null; /** Title */
1303
+ title?: string | null; /** @description Total chunks for this engram across the collection. */
1304
+ total_chunks?: number; /** Total Tokens */
1305
+ total_tokens?: number | null; /** Updated At */
1306
+ updated_at?: string | null; /** Version */
1307
+ version?: string | null; /** Workflow Run Id */
1308
+ workflow_run_id?: string | null;
1309
+ };
1310
+ /**
1311
+ * MemoryCreateAcceptedResponse
1312
+ * @description Accepted-response envelope for async memory ingestion.
1313
+ */
1314
+ MemoryCreateAcceptedResponse: {
1315
+ /**
1316
+ * Applied Wal Seq
1317
+ * @description WAL committed sequence number from this placeholder write, for read-your-writes assertions on the next collection-scoped list call. A non-zero value indicates the request appended a WAL entry; pass it back as `min_applied_wal_seq` on GET /v1/memories to wait for the entry's visibility before serving. Zero on idempotent observe-existing replays and on multi-shard collections (per-shard scalars are not comparable across shards) — clients should treat zero as 'no assertion to make.' Single-shard collections only.
1318
+ * @default 0
1319
+ */
1320
+ applied_wal_seq: number; /** Engram Id */
1321
+ engram_id?: string | null;
1322
+ /**
1323
+ * Id
1324
+ * Format: uuid
1325
+ */
1326
+ id: string; /** Memory Id */
1327
+ memory_id?: string | null; /** Message */
1328
+ message: string; /** Status */
1329
+ status?: ("parsing" | "processing" | "queued") | null; /** Task Id */
1330
+ task_id?: string | null;
1331
+ };
1332
+ /**
1333
+ * MemoryCreateResponse
1334
+ * @description Create-memory success response. Standard memory ingestion returns an accepted async-ingestion envelope; snapshot mode returns the updated snapshot synchronously.
1335
+ */
1336
+ MemoryCreateResponse: components["schemas"]["WrappedMemoryCreateAcceptedResponse"] | components["schemas"]["WrappedSnapshotMutationResult"];
1337
+ /**
1338
+ * MemoryRecall
1339
+ * @description Hierarchical memory response - all layers, weighted by activation.
1340
+ *
1341
+ * This is the primary response type for conceptual memory retrieval.
1342
+ * It contains all layers of the memory hierarchy:
1343
+ *
1344
+ * 1. **Entities (gestalt/schema layer)**: EntityProfiles that represent
1345
+ * the conceptual understanding of activated entities.
1346
+ *
1347
+ * 2. **Semantics (semantic layer)**: Structured assertions (facts,
1348
+ * inferences, tasks) scored by relevance and confidence.
1349
+ *
1350
+ * 3. **Episodes (temporal clusters)**: Episodic nodegroups that cluster
1351
+ * temporally related facts and events.
1352
+ *
1353
+ * 4. **Sources (episodic layer)**: The raw source material that
1354
+ * grounds the structured knowledge in actual moments/quotes.
1355
+ */
1356
+ MemoryRecall: {
1357
+ /** Entities */entities?: components["schemas"]["ActivatedEntity"][]; /** Episodic */
1358
+ episodic?: components["schemas"]["ActivatedEpisode"][]; /** Inference Hints */
1359
+ inference_hints?: components["schemas"]["InferenceHint"][]; /** Procedural */
1360
+ procedural?: components["schemas"]["ActivatedProcedure"][]; /** Query */
1361
+ query: string; /** Semantic */
1362
+ semantic?: components["schemas"]["ActivatedSemantic"][]; /** Sources */
1363
+ sources?: components["schemas"]["GroundedSource"][]; /** Total Traversal Time Ms */
1364
+ total_traversal_time_ms?: number | null; /** Workflows */
1365
+ workflows?: components["schemas"]["ActivatedWorkflow"][];
1366
+ };
1367
+ /**
1368
+ * MemorySearchRequest
1369
+ * @description Request model for memory search.
1370
+ *
1371
+ * Callers must supply exactly one of ``query`` or ``nql``. ``query``
1372
+ * takes the planner path; ``nql`` executes a hand-written script
1373
+ * directly for deterministic test/tooling use cases.
1374
+ */
1375
+ MemorySearchRequest: {
1376
+ /**
1377
+ * Collection Ids
1378
+ * @description Optional list of collection UUIDs or names to scope the search.
1379
+ */
1380
+ collection_ids?: string[] | null; /** @description Compute effort budget (auto/low/medium/high). Controls traversal compute, not MemoryRecall size. */
1381
+ effort?: components["schemas"]["SearchEffort"] | null;
1382
+ /**
1383
+ * Filters
1384
+ * @description Optional filters to apply to the search.
1385
+ */
1386
+ filters?: {
1387
+ [key: string]: unknown;
1388
+ } | null;
1389
+ /**
1390
+ * Nql
1391
+ * @description Pre-written NQL script. Executes directly without planner compilation. Mutually exclusive with ``query``.
1392
+ */
1393
+ nql?: string | null;
1394
+ /**
1395
+ * Query
1396
+ * @description Natural-language search query. Mutually exclusive with ``nql``.
1397
+ */
1398
+ query?: string | null; /** @description Advanced search settings. */
1399
+ search_settings?: components["schemas"]["SearchSettings"] | null; /** @description Device-memory snapshot for stateless search. */
1400
+ snapshot?: components["schemas"]["SnapshotEnvelope-Input"] | null;
1401
+ };
1402
+ /**
1403
+ * Message
1404
+ * @example {
1405
+ * "content": "This is a test message.",
1406
+ * "role": "user"
1407
+ * }
1408
+ */
1409
+ Message: {
1410
+ /** Content */content?: unknown | null; /** Function Call */
1411
+ function_call?: {
1412
+ [key: string]: unknown;
1413
+ } | null; /** Image Data */
1414
+ image_data?: {
1415
+ [key: string]: string;
1416
+ } | null; /** Image Url */
1417
+ image_url?: string | null; /** Metadata */
1418
+ metadata?: {
1419
+ [key: string]: unknown;
1420
+ } | null; /** Name */
1421
+ name?: string | null; /** Role */
1422
+ role: components["schemas"]["MessageType"] | string; /** Structured Content */
1423
+ structured_content?: {
1424
+ [key: string]: unknown;
1425
+ }[] | null; /** Tool Call Id */
1426
+ tool_call_id?: string | null; /** Tool Calls */
1427
+ tool_calls?: {
1428
+ [key: string]: unknown;
1429
+ }[] | null;
1430
+ };
1431
+ /**
1432
+ * MessageType
1433
+ * @enum {string}
1434
+ */
1435
+ MessageType: "system" | "user" | "assistant" | "function" | "tool";
1436
+ /**
1437
+ * PaginatedCollectionResponse
1438
+ * @description Cursor-paginated list of CollectionResponse entries. The wire envelope is ``{data, next_cursor, has_more}``.
1439
+ */
1440
+ PaginatedCollectionResponse: {
1441
+ data: components["schemas"]["CollectionResponse"][]; /** @description Whether another page is available after this one. */
1442
+ has_more: boolean; /** @description Opaque cursor for the next page. ``null`` when the caller has reached the end. */
1443
+ next_cursor?: string | null;
1444
+ };
1445
+ /**
1446
+ * PaginatedListedEngram
1447
+ * @description Cursor-paginated list of ListedEngram entries. The wire envelope is ``{data, next_cursor, has_more}``.
1448
+ */
1449
+ PaginatedListedEngram: {
1450
+ /**
1451
+ * @description Highest WAL committed sequence number reflected in this response. Non-zero only when the request was served via the WAL-tail fast path. Pair with ``min_applied_wal_seq`` on the request for read-your-writes assertions.
1452
+ * @default 0
1453
+ */
1454
+ applied_wal_seq: number;
1455
+ data: components["schemas"]["ListedEngram"][]; /** @description Whether another page is available after this one. */
1456
+ has_more: boolean; /** @description Opaque cursor for the next page. ``null`` when the caller has reached the end. */
1457
+ next_cursor?: string | null;
1458
+ };
1459
+ /**
1460
+ * PredictRecallRequest
1461
+ * @description Cursor-style match plus the predicted next trace per pattern.
1462
+ *
1463
+ * The "predicted next" is the canonical instance's first trace,
1464
+ * surfaced verbatim. This is correct for the matched-at-entry case
1465
+ * -- recall matches when the user's state aligns with a pattern's
1466
+ * entry state, so the canonical instance's first trace IS the next
1467
+ * step. Mid-instance prediction (advance past offset 1) is NOT
1468
+ * modelled in this version; callers that need it should follow up
1469
+ * on the returned pattern with a dedicated trace-chain walk.
1470
+ */
1471
+ PredictRecallRequest: {
1472
+ /**
1473
+ * Collection Id
1474
+ * Format: uuid
1475
+ * @description Collection containing the patterns to recall.
1476
+ */
1477
+ collection_id: string;
1478
+ /**
1479
+ * Intent
1480
+ * @default predict
1481
+ * @constant
1482
+ */
1483
+ intent: "predict";
1484
+ /**
1485
+ * State Id
1486
+ * @description Anchor: the user's current state nodegroup id.
1487
+ */
1488
+ state_id?: string | null;
1489
+ /**
1490
+ * Top K
1491
+ * @description Maximum number of pattern hits to return.
1492
+ * @default 10
1493
+ */
1494
+ top_k: number;
1495
+ /**
1496
+ * Trace Id
1497
+ * @description Anchor: the user's most recent trace id. The handler resolves this trace's state_before automatically.
1498
+ */
1499
+ trace_id?: string | null;
1500
+ }; /** PresignedUploadResponse */
1501
+ PresignedUploadResponse: {
1502
+ /** Bucket */bucket: string; /** Download Url */
1503
+ download_url: string; /** Expires In */
1504
+ expires_in: number; /** Max Size */
1505
+ max_size: number; /** S3 Key */
1506
+ s3_key: string; /** Upload Headers */
1507
+ upload_headers: {
1508
+ [key: string]: string;
1509
+ }; /** Upload Url */
1510
+ upload_url: string;
1511
+ };
1512
+ /**
1513
+ * RelationshipRecord
1514
+ * @description Canonical relationship record used in snapshots, WAL ops, and segments.
1515
+ */
1516
+ RelationshipRecord: {
1517
+ /** Category */category?: string | null; /** Chunk Ids */
1518
+ chunk_ids?: string[];
1519
+ /**
1520
+ * Collection Id
1521
+ * @default
1522
+ */
1523
+ collection_id: string;
1524
+ /**
1525
+ * Created At
1526
+ * Format: date-time
1527
+ */
1528
+ created_at: string; /** Description */
1529
+ description?: string | null; /** Engram Id */
1530
+ engram_id?: string | null; /** Id */
1531
+ id: string; /** Inference Metadata */
1532
+ inference_metadata?: {
1533
+ [key: string]: unknown;
1534
+ } | null; /** Metadata */
1535
+ metadata?: {
1536
+ [key: string]: unknown;
1537
+ }; /** Object */
1538
+ object?: string | null; /** Object Id */
1539
+ object_id: string;
1540
+ /**
1541
+ * Predicate
1542
+ * @default
1543
+ */
1544
+ predicate: string; /** Relationship Type */
1545
+ relationship_type?: string | null; /** Subject */
1546
+ subject?: string | null; /** Subject Id */
1547
+ subject_id: string; /** Temporal Precision */
1548
+ temporal_precision?: string | null;
1549
+ /**
1550
+ * Updated At
1551
+ * Format: date-time
1552
+ */
1553
+ updated_at: string; /** Valid Span */
1554
+ valid_span?: {
1555
+ [key: string]: unknown;
1556
+ } | null; /** Weight */
1557
+ weight?: number | null;
1558
+ };
1559
+ /**
1560
+ * ResumeRecallRequest
1561
+ * @description Cursor-style match biased toward deeper / further-along instances.
1562
+ */
1563
+ ResumeRecallRequest: {
1564
+ /**
1565
+ * Collection Id
1566
+ * Format: uuid
1567
+ * @description Collection containing the patterns to recall.
1568
+ */
1569
+ collection_id: string;
1570
+ /**
1571
+ * Intent
1572
+ * @default resume
1573
+ * @constant
1574
+ */
1575
+ intent: "resume";
1576
+ /**
1577
+ * State Id
1578
+ * @description Anchor: the user's current state nodegroup id.
1579
+ */
1580
+ state_id?: string | null;
1581
+ /**
1582
+ * Top K
1583
+ * @description Maximum number of pattern hits to return.
1584
+ * @default 10
1585
+ */
1586
+ top_k: number;
1587
+ /**
1588
+ * Trace Id
1589
+ * @description Anchor: the user's most recent trace id. The handler resolves this trace's state_before automatically.
1590
+ */
1591
+ trace_id?: string | null;
1592
+ };
1593
+ /**
1594
+ * S3FileReferenceRequest
1595
+ * @description Reference to a file uploaded to S3 (for large files).
1596
+ */
1597
+ S3FileReferenceRequest: {
1598
+ /**
1599
+ * Bucket
1600
+ * @description S3 bucket (uses default if not specified)
1601
+ */
1602
+ bucket?: string | null;
1603
+ /**
1604
+ * Filename
1605
+ * @description Original filename
1606
+ */
1607
+ filename?: string | null;
1608
+ /**
1609
+ * Media Type
1610
+ * @description MIME type
1611
+ * @default application/octet-stream
1612
+ */
1613
+ media_type: string;
1614
+ /**
1615
+ * S3 Key
1616
+ * @description S3 object key
1617
+ */
1618
+ s3_key: string;
1619
+ /**
1620
+ * Size Bytes
1621
+ * @description File size in bytes
1622
+ */
1623
+ size_bytes?: number | null;
1624
+ /**
1625
+ * @description discriminator enum property added by openapi-typescript
1626
+ * @enum {string}
1627
+ */
1628
+ type: "s3_ref";
1629
+ };
1630
+ /**
1631
+ * SearchEffort
1632
+ * @description Compute effort budget for memory search.
1633
+ *
1634
+ * Effort controls traversal compute (exploration budgets, depth, fanout), not the
1635
+ * size of the returned MemoryRecall projection.
1636
+ * @enum {string}
1637
+ */
1638
+ SearchEffort: "auto" | "low" | "medium" | "high";
1639
+ /**
1640
+ * SearchSettings
1641
+ * @description Advanced search settings for fine-tuning search behavior.
1642
+ *
1643
+ * Note: Core parameters (query, collection_ids, filters) are now top-level API parameters.
1644
+ * This class contains advanced tuning options plus internal fields used by the retrieval service.
1645
+ *
1646
+ * Memory search uses `effort` (auto/low/medium/high) to control compute.
1647
+ * @example {
1648
+ * "fulltext_weight": 0.2,
1649
+ * "include_scores": true,
1650
+ * "semantic_weight": 0.8,
1651
+ * "verbose": false
1652
+ * }
1653
+ */
1654
+ SearchSettings: {
1655
+ /**
1656
+ * @description Compute effort budget (auto/low/medium/high). Controls traversal compute for memory search, not MemoryRecall size.
1657
+ * @default auto
1658
+ */
1659
+ effort: components["schemas"]["SearchEffort"];
1660
+ /**
1661
+ * Enable Conceptual Expansion
1662
+ * @description Enable conceptual expansion for cross-domain discovery through overlapping concepts
1663
+ * @default false
1664
+ */
1665
+ enable_conceptual_expansion: boolean;
1666
+ /**
1667
+ * Filters
1668
+ * @description Internal: Filters populated by the API router
1669
+ */
1670
+ filters?: {
1671
+ [key: string]: unknown;
1672
+ };
1673
+ /**
1674
+ * Fulltext Weight
1675
+ * @description Weight for fulltext search in hybrid mode (0-1). Set to 0 for pure semantic search.
1676
+ * @default 0.2
1677
+ */
1678
+ fulltext_weight: number;
1679
+ /**
1680
+ * Graph Settings
1681
+ * @description Internal: Graph traversal settings (bfs_max_depth, semantic_threshold, etc.)
1682
+ */
1683
+ graph_settings?: {
1684
+ [key: string]: unknown;
1685
+ };
1686
+ /**
1687
+ * Has Pruning Gate
1688
+ * @description Internal: Set by select_search_filters when an owner_id $in partition-pruning wrapper has been added around the filter tree. Used by the in-memory graph read engine to strip the Postgres-only wrapper before evaluating delegation.
1689
+ * @default false
1690
+ */
1691
+ has_pruning_gate: boolean;
1692
+ /**
1693
+ * Include Scores
1694
+ * @description Whether to include search score values in the search results
1695
+ * @default true
1696
+ */
1697
+ include_scores: boolean;
1698
+ /**
1699
+ * Semantic Weight
1700
+ * @description Weight for semantic search in hybrid mode (0-1). Set to 0 for pure fulltext search.
1701
+ * @default 0.8
1702
+ */
1703
+ semantic_weight: number;
1704
+ /**
1705
+ * Verbose
1706
+ * @description Include full internal metadata, UUIDs, and confidence fields in MemoryRecall responses. When False, returns compact LLM-optimized format.
1707
+ * @default false
1708
+ */
1709
+ verbose: boolean;
1710
+ };
1711
+ /**
1712
+ * SnapshotEnvelope
1713
+ * @description Portable full snapshot owned by the client.
1714
+ */
1715
+ "SnapshotEnvelope-Input": {
1716
+ /**
1717
+ * Collection Id
1718
+ * Format: uuid
1719
+ */
1720
+ collection_id: string;
1721
+ /**
1722
+ * Created At
1723
+ * Format: date-time
1724
+ */
1725
+ created_at?: string;
1726
+ /**
1727
+ * Format Version
1728
+ * @default 3
1729
+ */
1730
+ format_version: number;
1731
+ /**
1732
+ * Generation
1733
+ * @default 0
1734
+ */
1735
+ generation: number;
1736
+ graph?: components["schemas"]["GraphPayload"]; /** Root Hash */
1737
+ root_hash: string;
1738
+ };
1739
+ /**
1740
+ * SnapshotEnvelope
1741
+ * @description Portable full snapshot owned by the client.
1742
+ */
1743
+ "SnapshotEnvelope-Output": {
1744
+ /**
1745
+ * Collection Id
1746
+ * Format: uuid
1747
+ */
1748
+ collection_id: string;
1749
+ /**
1750
+ * Created At
1751
+ * Format: date-time
1752
+ */
1753
+ created_at?: string;
1754
+ /**
1755
+ * Format Version
1756
+ * @default 3
1757
+ */
1758
+ format_version: number;
1759
+ /**
1760
+ * Generation
1761
+ * @default 0
1762
+ */
1763
+ generation: number;
1764
+ graph?: components["schemas"]["GraphPayload"]; /** Root Hash */
1765
+ root_hash: string;
1766
+ }; /** SnapshotExportRequest */
1767
+ SnapshotExportRequest: {
1768
+ /**
1769
+ * Collection Id
1770
+ * Format: uuid
1771
+ */
1772
+ collection_id: string;
1773
+ }; /** SnapshotImportRequest */
1774
+ SnapshotImportRequest: {
1775
+ snapshot: components["schemas"]["SnapshotEnvelope-Input"];
1776
+ };
1777
+ /**
1778
+ * SnapshotImportResult
1779
+ * @description Ephemeral collection handle returned after importing a snapshot.
1780
+ */
1781
+ SnapshotImportResult: {
1782
+ /**
1783
+ * Ephemeral Collection Id
1784
+ * Format: uuid
1785
+ */
1786
+ ephemeral_collection_id: string;
1787
+ };
1788
+ /**
1789
+ * SnapshotMutationResult
1790
+ * @description Updated snapshot returned by snapshot-mode memory writes.
1791
+ */
1792
+ SnapshotMutationResult: {
1793
+ snapshot: components["schemas"]["SnapshotEnvelope-Output"];
1794
+ }; /** SnapshotSearchEntityResponse */
1795
+ SnapshotSearchEntityResponse: {
1796
+ /** Category */category?: string | null; /** Description */
1797
+ description?: string | null;
1798
+ /**
1799
+ * Id
1800
+ * Format: uuid
1801
+ */
1802
+ id: string; /** Name */
1803
+ name: string; /** Score */
1804
+ score: number;
1805
+ }; /** SnapshotSearchRelationshipResponse */
1806
+ SnapshotSearchRelationshipResponse: {
1807
+ /** Description */description?: string | null;
1808
+ /**
1809
+ * Id
1810
+ * Format: uuid
1811
+ */
1812
+ id: string;
1813
+ /**
1814
+ * Object Id
1815
+ * Format: uuid
1816
+ */
1817
+ object_id: string; /** Predicate */
1818
+ predicate: string;
1819
+ /**
1820
+ * Subject Id
1821
+ * Format: uuid
1822
+ */
1823
+ subject_id: string; /** Weight */
1824
+ weight?: number | null;
1825
+ };
1826
+ /**
1827
+ * SnapshotSearchResult
1828
+ * @description Stateless snapshot-search response shape.
1829
+ */
1830
+ SnapshotSearchResult: {
1831
+ /** Entities */entities?: components["schemas"]["SnapshotSearchEntityResponse"][]; /** Relationships */
1832
+ relationships?: components["schemas"]["SnapshotSearchRelationshipResponse"][];
1833
+ };
1834
+ /**
1835
+ * TextContentRequest
1836
+ * @description Text content block.
1837
+ */
1838
+ TextContentRequest: {
1839
+ /**
1840
+ * Text
1841
+ * @description Text content
1842
+ */
1843
+ text: string;
1844
+ /**
1845
+ * @description discriminator enum property added by openapi-typescript
1846
+ * @enum {string}
1847
+ */
1848
+ type: "text";
1849
+ }; /** UpdateCollectionRequest */
1850
+ UpdateCollectionRequest: {
1851
+ /** Access Tier */access_tier?: string | null; /** Description */
1852
+ description?: string | null;
1853
+ /**
1854
+ * Generate Description
1855
+ * @default false
1856
+ */
1857
+ generate_description: boolean; /** Name */
1858
+ name?: string | null; /** Workflows Enabled */
1859
+ workflows_enabled?: boolean | null;
1860
+ }; /** UpdateMemoryRequest */
1861
+ UpdateMemoryRequest: {
1862
+ /**
1863
+ * Collection Ids
1864
+ * @description New collection associations
1865
+ */
1866
+ collection_ids?: string[] | null;
1867
+ /**
1868
+ * Merge Metadata
1869
+ * @description Merge with existing metadata
1870
+ * @default false
1871
+ */
1872
+ merge_metadata: boolean;
1873
+ /**
1874
+ * Metadata
1875
+ * @description Metadata to update
1876
+ */
1877
+ metadata?: {
1878
+ [key: string]: unknown;
1879
+ } | null;
1880
+ /**
1881
+ * Name
1882
+ * @description New name for the memory
1883
+ */
1884
+ name?: string | null;
1885
+ };
1886
+ /**
1887
+ * WorkflowRecallResponse
1888
+ * @description Wrapped response for the workflow recall endpoint.
1889
+ *
1890
+ * The ``results`` payload shape varies per ``intent``:
1891
+ *
1892
+ * * ``cursor`` / ``predict`` / ``resume`` -- ``{intent, hits[]}``
1893
+ * with ``hits`` containing pattern-match ranked entries.
1894
+ * ``predict`` additionally carries ``predicted_next_by_pattern``.
1895
+ * * ``evidence`` -- ``{intent, expanded}`` where ``expanded`` is the
1896
+ * hydrated canonical-instance subgraph.
1897
+ * * ``bootstrap`` -- ``{intent, hits[]}`` ranked by confidence with
1898
+ * no anchor.
1899
+ *
1900
+ * The OpenAPI schema is intentionally typed as a generic object;
1901
+ * consumers should branch on ``results.intent`` and read the keys
1902
+ * documented in the request variants above.
1903
+ */
1904
+ WorkflowRecallResponse: {
1905
+ /**
1906
+ * Results
1907
+ * @description Per-intent payload; see class docstring for shape.
1908
+ */
1909
+ results: {
1910
+ [key: string]: unknown;
1911
+ };
1912
+ }; /** NebulaResults[AppendMemoryResponse] */
1913
+ WrappedAppendMemoryResponse: {
1914
+ results: components["schemas"]["AppendMemoryResponse"];
1915
+ }; /** NebulaResults[CollectionResponse] */
1916
+ WrappedCollectionResponse: {
1917
+ results: components["schemas"]["CollectionResponse"];
1918
+ }; /** NebulaResults[CompactMemoryRecallResponse] */
1919
+ WrappedCompactMemoryRecallResponse: {
1920
+ results: components["schemas"]["CompactMemoryRecallResponse"];
1921
+ }; /** NebulaResults[ConnectorConnectResponse] */
1922
+ WrappedConnectorConnectResponse: {
1923
+ results: components["schemas"]["ConnectorConnectResponse"];
1924
+ }; /** NebulaResults[ConnectorConnectionResponse] */
1925
+ WrappedConnectorConnectionResponse: {
1926
+ results: components["schemas"]["ConnectorConnectionResponse"];
1927
+ }; /** NebulaResults[ConnectorDisconnectResponse] */
1928
+ WrappedConnectorDisconnectResponse: {
1929
+ results: components["schemas"]["ConnectorDisconnectResponse"];
1930
+ }; /** NebulaResults[ConnectorSyncResponse] */
1931
+ WrappedConnectorSyncResponse: {
1932
+ results: components["schemas"]["ConnectorSyncResponse"];
1933
+ }; /** NebulaResults[Engram] */
1934
+ WrappedEngram: {
1935
+ results: components["schemas"]["Engram"];
1936
+ }; /** NebulaResults[GenericBooleanResponse] */
1937
+ WrappedGenericBooleanResponse: {
1938
+ results: components["schemas"]["GenericBooleanResponse"];
1939
+ }; /** NebulaResults[GenericMessageResponse] */
1940
+ WrappedGenericMessageResponse: {
1941
+ results: components["schemas"]["GenericMessageResponse"];
1942
+ }; /** NebulaResults[IngestionResponse] */
1943
+ WrappedIngestionResponse: {
1944
+ results: components["schemas"]["IngestionResponse"];
1945
+ }; /** NebulaResults[list[ConnectorConnectionResponse]] */
1946
+ WrappedListOfConnectorConnectionResponse: {
1947
+ /** Results */results: components["schemas"]["ConnectorConnectionResponse"][];
1948
+ }; /** NebulaResults[list[str]] */
1949
+ WrappedListOfStr: {
1950
+ /** Results */results: string[];
1951
+ }; /** NebulaResults[MemoryCreateAcceptedResponse] */
1952
+ WrappedMemoryCreateAcceptedResponse: {
1953
+ results: components["schemas"]["MemoryCreateAcceptedResponse"];
1954
+ }; /** NebulaResults[MemoryRecall] */
1955
+ WrappedMemoryRecall: {
1956
+ results: components["schemas"]["MemoryRecall"];
1957
+ }; /** NebulaResults[PresignedUploadResponse] */
1958
+ WrappedPresignedUploadResponse: {
1959
+ results: components["schemas"]["PresignedUploadResponse"];
1960
+ }; /** NebulaResults[SnapshotEnvelope] */
1961
+ WrappedSnapshotEnvelope: {
1962
+ results: components["schemas"]["SnapshotEnvelope-Output"];
1963
+ }; /** NebulaResults[SnapshotImportResult] */
1964
+ WrappedSnapshotImportResult: {
1965
+ results: components["schemas"]["SnapshotImportResult"];
1966
+ }; /** NebulaResults[SnapshotMutationResult] */
1967
+ WrappedSnapshotMutationResult: {
1968
+ results: components["schemas"]["SnapshotMutationResult"];
1969
+ }; /** NebulaResults[SnapshotSearchResult] */
1970
+ WrappedSnapshotSearchResult: {
1971
+ results: components["schemas"]["SnapshotSearchResult"];
1972
+ };
1973
+ };
1974
+ responses: never;
1975
+ parameters: never;
1976
+ requestBodies: never;
1977
+ headers: never;
1978
+ pathItems: never;
1979
+ }
1980
+ //#endregion
1981
+ //#region src/resources/client.d.ts
1982
+ interface RequestOptions$4 {
1983
+ signal?: AbortSignal;
1984
+ }
1985
+ declare class ClientResource {
1986
+ private readonly core;
1987
+ constructor(core: NebulaCore);
1988
+ /**
1989
+ *
1990
+ * Health probe
1991
+ *
1992
+ * Lightweight liveness probe. Returns a 200 with a fixed message when the API process is up. Does not verify downstream dependencies (database, storage, workers) — use the internal status endpoints for those.
1993
+ * @operationId client.health
1994
+ * @endpoint GET /v1/health
1995
+ */
1996
+ health(options?: RequestOptions$4): Promise<components["schemas"]["WrappedGenericMessageResponse"]>;
1997
+ }
1998
+ //#endregion
1999
+ //#region src/resources/collections.d.ts
2000
+ interface RequestOptions$3 {
2001
+ signal?: AbortSignal;
2002
+ }
2003
+ declare class CollectionsResource {
2004
+ private readonly core;
2005
+ constructor(core: NebulaCore);
2006
+ /**
2007
+ *
2008
+ * Create a new collection
2009
+ *
2010
+ * Create a new collection and automatically add the creating user
2011
+ * to it.
2012
+ *
2013
+ * This endpoint allows authenticated users to create a new collection
2014
+ * with a specified name and optional description. The user creating
2015
+ * the collection is automatically added as a member.
2016
+ * @operationId collections.create
2017
+ * @endpoint POST /v1/collections
2018
+ */
2019
+ create(params: {
2020
+ body: components["schemas"]["CreateCollectionRequest"];
2021
+ }, options?: RequestOptions$3): Promise<components["schemas"]["WrappedCollectionResponse"]>;
2022
+ /**
2023
+ *
2024
+ * Delete collection
2025
+ *
2026
+ * Delete an existing collection.
2027
+ *
2028
+ * This endpoint allows deletion of a collection identified by its
2029
+ * UUID. The user must have appropriate permissions to delete the
2030
+ * collection. Deleting a collection removes all associations but does
2031
+ * not delete the engrams within it.
2032
+ * @operationId collections.delete
2033
+ * @endpoint DELETE /v1/collections/{id}
2034
+ */
2035
+ delete(id: string, options?: RequestOptions$3): Promise<components["schemas"]["WrappedGenericBooleanResponse"]>;
2036
+ /**
2037
+ *
2038
+ * List collections
2039
+ *
2040
+ * Returns a cursor-paginated list of collections the authenticated
2041
+ * user has access to.
2042
+ *
2043
+ * Results can be filtered by providing specific collection IDs.
2044
+ * Regular users will only see collections they own or have access to.
2045
+ * Superusers can see all collections.
2046
+ *
2047
+ * The collections are returned in order of last modification, with
2048
+ * most recent first.
2049
+ * @operationId collections.list
2050
+ * @endpoint GET /v1/collections
2051
+ */
2052
+ list(params?: {
2053
+ /** A list of collection IDs to retrieve. If not provided, all collections will be returned. */ids?: Array<string>; /** Filter collections by name (case-insensitive exact match). */
2054
+ name?: string | null; /** Opaque pagination cursor. Pass the ``next_cursor`` from a previous response to fetch the next page. */
2055
+ cursor?: string | null; /** Specifies a limit on the number of objects to return, ranging between 1 and 1000. Defaults to 100. */
2056
+ limit?: number; /** If true, only returns collections owned by the user, not all accessible collections. */
2057
+ ownerOnly?: boolean; /** Filter by workspace ID. Pass a UUID to scope to a workspace, or omit for all. */
2058
+ workspaceId?: string | null;
2059
+ }, options?: RequestOptions$3): Promise<components["schemas"]["PaginatedCollectionResponse"]>;
2060
+ /**
2061
+ *
2062
+ * Get collection details
2063
+ *
2064
+ * Get details of a specific collection.
2065
+ *
2066
+ * This endpoint retrieves detailed information about a single
2067
+ * collection identified by its UUID. The user must have access to the
2068
+ * collection to view its details.
2069
+ * @operationId collections.retrieve
2070
+ * @endpoint GET /v1/collections/{id}
2071
+ */
2072
+ retrieve(id: string, options?: RequestOptions$3): Promise<components["schemas"]["WrappedCollectionResponse"]>;
2073
+ /**
2074
+ *
2075
+ * Get a collection by name
2076
+ *
2077
+ * Retrieve a collection by its (owner_id, name) combination.
2078
+ *
2079
+ * The authenticated user can only fetch collections they own, or, if
2080
+ * superuser, from anyone.
2081
+ * @operationId collections.retrieveByName
2082
+ * @endpoint GET /v1/collections/name/{collection_name}
2083
+ */
2084
+ retrieveByName(params: {
2085
+ /** The name of the collection */collectionName: string; /** (Superuser only) Specify the owner_id to retrieve a collection by name */
2086
+ ownerId?: string | null;
2087
+ }, options?: RequestOptions$3): Promise<components["schemas"]["WrappedCollectionResponse"]>;
2088
+ /**
2089
+ *
2090
+ * Update collection
2091
+ *
2092
+ * Update an existing collection's configuration.
2093
+ *
2094
+ * This endpoint allows updating the name, description, and access settings of an
2095
+ * existing collection. The user must have appropriate permissions to
2096
+ * modify the collection.
2097
+ * @operationId collections.update
2098
+ * @endpoint POST /v1/collections/{id}
2099
+ */
2100
+ update(params: {
2101
+ /** The unique identifier of the collection to update */id: string;
2102
+ body: components["schemas"]["UpdateCollectionRequest"];
2103
+ }, options?: RequestOptions$3): Promise<components["schemas"]["WrappedCollectionResponse"]>;
2104
+ }
2105
+ //#endregion
2106
+ //#region src/resources/connectors.d.ts
2107
+ interface RequestOptions$2 {
2108
+ signal?: AbortSignal;
2109
+ }
2110
+ declare class ConnectorsResource {
2111
+ private readonly core;
2112
+ constructor(core: NebulaCore);
2113
+ /**
2114
+ *
2115
+ * Start OAuth connection flow
2116
+ *
2117
+ * Start the OAuth connection flow for the given external provider. Returns the authorization URL the user should visit to grant Nebula access. After consent the provider redirects back to Nebula and the connection becomes active.
2118
+ * @operationId connectors.connect
2119
+ * @endpoint POST /v1/connectors/{provider}/connect
2120
+ */
2121
+ connect(params: {
2122
+ provider: string;
2123
+ body: components["schemas"]["ConnectRequest"];
2124
+ }, options?: RequestOptions$2): Promise<components["schemas"]["WrappedConnectorConnectResponse"]>;
2125
+ /**
2126
+ *
2127
+ * Disconnect an external data source
2128
+ *
2129
+ * Disconnect the named connection, revoking the stored OAuth credentials and stopping future syncs. Optionally pass `delete_memories=true` to also remove every memory this connection had ingested.
2130
+ * @operationId connectors.disconnect
2131
+ * @endpoint DELETE /v1/connectors/{connection_id}
2132
+ */
2133
+ disconnect(params: {
2134
+ connectionId: string;
2135
+ deleteMemories?: boolean;
2136
+ }, options?: RequestOptions$2): Promise<components["schemas"]["WrappedConnectorDisconnectResponse"]>;
2137
+ /**
2138
+ *
2139
+ * List active connections for a collection
2140
+ *
2141
+ * Return every connector connection associated with the given collection, with encrypted credentials redacted. Useful for showing the user which third-party data sources are wired up to a collection.
2142
+ * @operationId connectors.list
2143
+ * @endpoint GET /v1/connectors
2144
+ */
2145
+ list(params: {
2146
+ collectionId: string;
2147
+ }, options?: RequestOptions$2): Promise<components["schemas"]["WrappedListOfConnectorConnectionResponse"]>;
2148
+ /**
2149
+ *
2150
+ * List available connector providers
2151
+ *
2152
+ * Return the set of connector provider identifiers (e.g. `google_drive`, `slack`) that this Nebula instance is configured to expose. Pass one of these to `POST /connectors/{provider}/connect` to start an OAuth flow.
2153
+ * @operationId connectors.listProviders
2154
+ * @endpoint GET /v1/connectors/providers
2155
+ */
2156
+ listProviders(options?: RequestOptions$2): Promise<components["schemas"]["WrappedListOfStr"]>;
2157
+ /**
2158
+ *
2159
+ * Get a single connection by ID
2160
+ *
2161
+ * Fetch a single connector connection by its UUID. Returns the connection metadata plus whether the underlying subscription is active. Encrypted credentials are never returned to clients.
2162
+ * @operationId connectors.retrieve
2163
+ * @endpoint GET /v1/connectors/{connection_id}
2164
+ */
2165
+ retrieve(connectionId: string, options?: RequestOptions$2): Promise<components["schemas"]["WrappedConnectorConnectionResponse"]>;
2166
+ /**
2167
+ *
2168
+ * Manually trigger a sync
2169
+ *
2170
+ * Schedule an immediate sync for an active connection, bypassing the normal cadence. Returns 409 if a sync is already in progress and 400 if the connection isn't in the `active` state.
2171
+ * @operationId connectors.sync
2172
+ * @endpoint POST /v1/connectors/{connection_id}/sync
2173
+ */
2174
+ sync(connectionId: string, options?: RequestOptions$2): Promise<components["schemas"]["WrappedConnectorSyncResponse"]>;
2175
+ }
2176
+ //#endregion
2177
+ //#region src/resources/memories.d.ts
2178
+ interface RequestOptions$1 {
2179
+ signal?: AbortSignal;
2180
+ }
2181
+ declare class MemoriesResource {
2182
+ private readonly core;
2183
+ constructor(core: NebulaCore);
2184
+ /**
2185
+ *
2186
+ * Append content to an engram
2187
+ *
2188
+ * Append content to an existing engram.
2189
+ *
2190
+ * **For conversation engrams:**
2191
+ * - Provide `messages` array with content, role, and optional metadata
2192
+ * - Works like `/conversations/{id}/messages` endpoint
2193
+ *
2194
+ * **For document engrams:**
2195
+ * - Provide either `raw_text` or `chunks` to append additional content
2196
+ * - Content will be processed and added to the engram
2197
+ * @operationId memories.append
2198
+ * @endpoint POST /v1/memories/{id}/append
2199
+ */
2200
+ append(params: {
2201
+ /** The unique identifier of the engram */id: string;
2202
+ body: components["schemas"]["AppendMemoryRequest"];
2203
+ }, options?: RequestOptions$1): Promise<unknown>;
2204
+ /**
2205
+ *
2206
+ * Create a new memory (conversation or document)
2207
+ *
2208
+ * Create a new memory (conversation or document) using clean JSON body.
2209
+ *
2210
+ * - Use `collection_id` (UUID)
2211
+ * - `kind` is optional and inferred from payload shape:
2212
+ * - If `messages` present -> conversation
2213
+ * - Otherwise -> document
2214
+ * - For conversations: provide `messages` array
2215
+ * - For documents: provide `raw_text` or `chunks`
2216
+ * - Use `snapshot` for device-memory mode (mutually exclusive with collection_id)
2217
+ * @operationId memories.create
2218
+ * @endpoint POST /v1/memories
2219
+ */
2220
+ create(params: {
2221
+ body: components["schemas"]["CreateMemoryRequest"];
2222
+ }, options?: RequestOptions$1): Promise<components["schemas"]["MemoryCreateResponse"]>;
2223
+ /**
2224
+ *
2225
+ * Get presigned URL for large file upload
2226
+ *
2227
+ * Get a presigned URL for uploading large files directly to S3.
2228
+ *
2229
+ * Use this for files larger than 5MB that cannot be sent inline as base64.
2230
+ * After uploading, reference the file in memory creation using S3FileReference.
2231
+ *
2232
+ * Args:
2233
+ * filename: Original filename (e.g., "image.jpg")
2234
+ * content_type: MIME type (e.g., "image/jpeg", "application/pdf")
2235
+ * file_size: Expected file size in bytes (max 100MB)
2236
+ *
2237
+ * Returns:
2238
+ * dict with:
2239
+ * - upload_url: Presigned URL for PUT request (expires in 1 hour)
2240
+ * - upload_headers: Headers that must be sent with the presigned PUT request
2241
+ * - s3_key: The S3 key to reference in memory creation
2242
+ * - bucket: S3 bucket name
2243
+ * - expires_in: Seconds until URL expires
2244
+ * - max_size: Maximum allowed file size
2245
+ * @operationId memories.createUpload
2246
+ * @endpoint POST /v1/memories/upload
2247
+ */
2248
+ createUpload(params: {
2249
+ /** Original filename (e.g., 'image.jpg') */filename: string; /** MIME type (e.g., 'image/jpeg', 'application/pdf') */
2250
+ contentType: string; /** Expected file size in bytes (max 100MB) */
2251
+ fileSize: number;
2252
+ }, options?: RequestOptions$1): Promise<components["schemas"]["WrappedPresignedUploadResponse"]>;
2253
+ /**
2254
+ *
2255
+ * Delete an engram
2256
+ *
2257
+ * Delete a specific engram with graph awareness. All chunks corresponding to the
2258
+ * engram are deleted, and graph components (entities/relationships) are updated
2259
+ * or deleted based on remaining chunk references from other engrams.
2260
+ *
2261
+ * This method now properly handles graph components and maintains graph integrity
2262
+ * for search operations.
2263
+ * @operationId memories.delete
2264
+ * @endpoint DELETE /v1/memories/{id}
2265
+ */
2266
+ delete(id: string, options?: RequestOptions$1): Promise<components["schemas"]["WrappedGenericBooleanResponse"]>;
2267
+ /**
2268
+ *
2269
+ * Delete one or more engrams
2270
+ *
2271
+ * Delete one or more engrams.
2272
+ *
2273
+ * This endpoint efficiently handles both single and batch deletions.
2274
+ * When multiple IDs are provided, it uses optimized batch operations.
2275
+ *
2276
+ * Args:
2277
+ * ids: Either a single UUID or a list of UUIDs to delete
2278
+ *
2279
+ * Returns:
2280
+ * For single deletion: boolean success response
2281
+ * For batch deletion: detailed results with successful and failed deletions
2282
+ * @operationId memories.deleteMany
2283
+ * @endpoint POST /v1/memories/delete
2284
+ */
2285
+ deleteMany(params: {
2286
+ body: components["schemas"]["DeleteMemoriesRequest"];
2287
+ }, options?: RequestOptions$1): Promise<unknown>;
2288
+ /**
2289
+ *
2290
+ * Delete a previously uploaded S3 file
2291
+ *
2292
+ * Delete a file from S3 that was uploaded via a presigned URL.
2293
+ * Verifies the caller owns the file via S3 object metadata.
2294
+ * @operationId memories.deleteUpload
2295
+ * @endpoint DELETE /v1/memories/upload
2296
+ */
2297
+ deleteUpload(params: {
2298
+ /** S3 key of the file to delete (returned by POST /memories/upload) */s3Key: string;
2299
+ }, options?: RequestOptions$1): Promise<components["schemas"]["WrappedGenericMessageResponse"]>;
2300
+ /**
2301
+ *
2302
+ * List engrams
2303
+ *
2304
+ * Returns a cursor-paginated list of engrams the authenticated user
2305
+ * has access to.
2306
+ *
2307
+ * Results can be filtered by providing specific engram IDs or collection IDs.
2308
+ * Regular users will only see engrams they own or have access to through
2309
+ * collections. Superusers can see all engrams.
2310
+ *
2311
+ * The engrams are returned in order of creation time, most recent
2312
+ * first. The response includes the engram's text field if available.
2313
+ * @operationId memories.list
2314
+ * @endpoint GET /v1/memories
2315
+ */
2316
+ list(params?: {
2317
+ /** A list of engram IDs to retrieve. If not provided, all engrams will be returned. */ids?: Array<string>; /** Opaque pagination cursor. Pass the ``next_cursor`` from a previous response to fetch the next page. */
2318
+ cursor?: string | null; /** Specifies a limit on the number of objects to return, ranging between 1 and 1000. Defaults to 100. */
2319
+ limit?: number; /** Maximum chunks to inline per engram. Defaults to all chunks for backwards compatibility; pass 0 to skip chunk hydration. */
2320
+ chunksLimit?: number | null; /** If true, only returns engrams owned by the user, not all accessible engrams. */
2321
+ ownerOnly?: boolean; /** Optional list of collection IDs to filter engrams by. If provided, exactly one collection ID must be specified. */
2322
+ collectionIds?: Array<string> | null; /** JSON string for metadata filtering. Example: '{"metadata.source": {"$eq": "playground"}}' */
2323
+ metadataFilters?: string | null; /** Read-your-writes assertion: the WAL-tail overlay path waits for at least this seq to be applied before serving (or returns 503 Unavailable on timeout). REQUIRES exactly one collection_ids entry — without a collection scope the request returns 422 (the per-WAL-shard scalar applied_wal_seq is meaningless across collections). When the served shard has not been migrated to wal_compaction_enabled, the field is accepted but the served path is the legacy overlay (the assertion has no effect — the response's applied_wal_seq will be 0). Pass back the value the matching upload response surfaced. */
2324
+ minAppliedWalSeq?: number | null;
2325
+ }, options?: RequestOptions$1): Promise<components["schemas"]["PaginatedListedEngram"]>;
2326
+ /**
2327
+ *
2328
+ * Recall workflow patterns by intent
2329
+ *
2330
+ * Workflow-pattern recall over 5 intents.
2331
+ *
2332
+ * * ``cursor`` -- match the caller's anchor against pattern
2333
+ * canonical states, return ranked patterns + position.
2334
+ * * ``predict`` -- like cursor but include the predicted next
2335
+ * trace from each pattern's canonical instance.
2336
+ * * ``resume`` -- like cursor, biased toward longer patterns.
2337
+ * * ``evidence`` -- expand a specific pattern via
2338
+ * ``hydrate_pattern``.
2339
+ * * ``bootstrap`` -- top-K patterns by confidence with no anchor.
2340
+ * @operationId memories.recallWorkflow
2341
+ * @endpoint POST /v1/memories/workflow/recall
2342
+ */
2343
+ recallWorkflow(params: {
2344
+ body: components["schemas"]["CursorRecallRequest"] | components["schemas"]["PredictRecallRequest"] | components["schemas"]["ResumeRecallRequest"] | components["schemas"]["EvidenceRecallRequest"] | components["schemas"]["BootstrapRecallRequest"];
2345
+ }, options?: RequestOptions$1): Promise<components["schemas"]["WorkflowRecallResponse"]>;
2346
+ /**
2347
+ *
2348
+ * Retrieve an engram
2349
+ *
2350
+ * Retrieves detailed information about a specific engram by its
2351
+ * ID.
2352
+ *
2353
+ * This endpoint returns the engram's metadata, status, and system information. It does not
2354
+ * return the engram's content - use the `/engrams/{id}/download` endpoint for that.
2355
+ *
2356
+ * Users can only retrieve engrams they own or have access to through collections.
2357
+ * Superusers can retrieve any engram.
2358
+ * @operationId memories.retrieve
2359
+ * @endpoint GET /v1/memories/{id}
2360
+ */
2361
+ retrieve(id: string, options?: RequestOptions$1): Promise<components["schemas"]["WrappedEngram"]>;
2362
+ /**
2363
+ *
2364
+ * Search memories
2365
+ *
2366
+ * Perform a search query across your memories.
2367
+ *
2368
+ * **Standard mode** (collection_ids or readable-scope search): returns hierarchical MemoryRecall
2369
+ * with semantics, episodes, procedures, and sources.
2370
+ *
2371
+ * **Snapshot mode** (snapshot field): returns graph-search results with
2372
+ * {entities, relationships} from stateless in-memory traversal.
2373
+ * @operationId memories.search
2374
+ * @endpoint POST /v1/memories/search
2375
+ */
2376
+ search(params: {
2377
+ body: components["schemas"]["MemorySearchRequest"];
2378
+ }, options?: RequestOptions$1): Promise<unknown>;
2379
+ /**
2380
+ *
2381
+ * Update a memory
2382
+ *
2383
+ * Update memory-level properties including name, metadata, and collection associations.
2384
+ *
2385
+ * This endpoint allows updating properties of an entire memory (document or conversation)
2386
+ * without modifying its content:
2387
+ * - **name**: Updates the authoritative engram title
2388
+ * - **metadata**: Can replace or merge with existing metadata
2389
+ * - **collection_ids**: Updates authoritative engram collection associations
2390
+ *
2391
+ * Users can only update memories they own or have access to through collections.
2392
+ * At least one collection association must be maintained.
2393
+ *
2394
+ * If collection_id is provided and the engram is shared across collections, a copy-on-write
2395
+ * will be performed to create a collection-specific copy before modification.
2396
+ * @operationId memories.update
2397
+ * @endpoint PATCH /v1/memories/{id}
2398
+ */
2399
+ update(params: {
2400
+ /** The unique identifier of the memory */id: string; /** Collection context for copy-on-write. If provided and engram is shared, creates a copy before modification. */
2401
+ collectionId?: string | null;
2402
+ body: components["schemas"]["UpdateMemoryRequest"];
2403
+ }, options?: RequestOptions$1): Promise<components["schemas"]["WrappedEngram"]>;
2404
+ }
2405
+ //#endregion
2406
+ //#region src/resources/snapshots.d.ts
2407
+ interface RequestOptions {
2408
+ signal?: AbortSignal;
2409
+ }
2410
+ declare class SnapshotsResource {
2411
+ private readonly core;
2412
+ constructor(core: NebulaCore);
2413
+ /**
2414
+ *
2415
+ * Export a collection snapshot
2416
+ *
2417
+ * Export a collection's full graph state as a
2418
+ * portable SnapshotEnvelope.
2419
+ * @operationId snapshots.export
2420
+ * @endpoint POST /v1/device-memory/snapshot/export
2421
+ */
2422
+ export(params: {
2423
+ body: components["schemas"]["SnapshotExportRequest"];
2424
+ }, options?: RequestOptions): Promise<components["schemas"]["WrappedSnapshotEnvelope"]>;
2425
+ /**
2426
+ *
2427
+ * Import a snapshot into an ephemeral collection
2428
+ *
2429
+ * Import a SnapshotEnvelope into an ephemeral
2430
+ * collection. Returns the ephemeral collection UUID.
2431
+ * @operationId snapshots.import
2432
+ * @endpoint POST /v1/device-memory/snapshot/import
2433
+ */
2434
+ import(params: {
2435
+ body: components["schemas"]["SnapshotImportRequest"];
2436
+ }, options?: RequestOptions): Promise<components["schemas"]["WrappedSnapshotImportResult"]>;
2437
+ }
2438
+ //#endregion
2439
+ //#region src/client.d.ts
2440
+ declare class NebulaClient {
2441
+ protected readonly core: NebulaCore;
2442
+ readonly client: ClientResource;
2443
+ readonly collections: CollectionsResource;
2444
+ readonly connectors: ConnectorsResource;
2445
+ readonly memories: MemoriesResource;
2446
+ readonly snapshots: SnapshotsResource;
2447
+ constructor(options?: ClientOptions);
2448
+ }
2449
+ //#endregion
2450
+ //#region src/runtime/errors.d.ts
2451
+ declare class NebulaError extends Error {
2452
+ readonly name: string;
2453
+ constructor(message: string, options?: {
2454
+ cause?: unknown;
2455
+ });
2456
+ }
2457
+ declare class NebulaConnectionError extends NebulaError {
2458
+ readonly name = "NebulaConnectionError";
2459
+ }
2460
+ declare class NebulaTimeoutError extends NebulaError {
2461
+ readonly name = "NebulaTimeoutError";
2462
+ }
2463
+ interface APIErrorPayload {
2464
+ readonly status: number;
2465
+ readonly requestId?: string;
2466
+ readonly body: unknown;
2467
+ }
2468
+ declare class NebulaAPIError extends NebulaError {
2469
+ readonly name: string;
2470
+ readonly status: number;
2471
+ readonly requestId?: string;
2472
+ readonly body: unknown;
2473
+ readonly type?: string;
2474
+ readonly code?: string;
2475
+ readonly details?: unknown;
2476
+ constructor(payload: APIErrorPayload, message?: string);
2477
+ }
2478
+ declare class NebulaBadRequestError extends NebulaAPIError {
2479
+ readonly name = "NebulaBadRequestError";
2480
+ }
2481
+ declare class NebulaUnauthorizedError extends NebulaAPIError {
2482
+ readonly name = "NebulaUnauthorizedError";
2483
+ }
2484
+ declare class NebulaForbiddenError extends NebulaAPIError {
2485
+ readonly name = "NebulaForbiddenError";
2486
+ }
2487
+ declare class NebulaNotFoundError extends NebulaAPIError {
2488
+ readonly name = "NebulaNotFoundError";
2489
+ }
2490
+ declare class NebulaConflictError extends NebulaAPIError {
2491
+ readonly name = "NebulaConflictError";
2492
+ }
2493
+ declare class NebulaValidationError extends NebulaAPIError {
2494
+ readonly name = "NebulaValidationError";
2495
+ }
2496
+ declare class NebulaRateLimitError extends NebulaAPIError {
2497
+ readonly name = "NebulaRateLimitError";
2498
+ readonly retryAfter?: number;
2499
+ constructor(payload: APIErrorPayload, retryAfter?: number);
2500
+ }
2501
+ declare class NebulaServerError extends NebulaAPIError {
2502
+ readonly name = "NebulaServerError";
2503
+ }
2504
+ declare function errorFromResponse(payload: APIErrorPayload, retryAfter?: number): NebulaAPIError;
2505
+ //#endregion
2506
+ //#region src/lib/_dx_generated.d.ts
2507
+ /**
2508
+ * Conditional type matching the runtime envelope-unwrap. If T has a
2509
+ * `results` field, narrow to it; otherwise pass through.
2510
+ */
2511
+ type Unwrapped<T> = T extends {
2512
+ results: infer R;
2513
+ } ? R : T;
2514
+ /**
2515
+ * Generated DX layer: simple unwrap/passthrough convenience methods.
2516
+ * Signatures are derived from the underlying resource methods so
2517
+ * callers see the same arg names + types in IDE hover.
2518
+ */
2519
+ declare class NebulaDX extends NebulaClient {
2520
+ /** Retrieve a single memory by id and return just the data. (generated from dx-extensions.yaml). */
2521
+ getMemory(...args: Parameters<NebulaClient["memories"]["retrieve"]>): Promise<Unwrapped<Awaited<ReturnType<NebulaClient["memories"]["retrieve"]>>>>;
2522
+ /** Update a memory by id; returns the updated record. (generated from dx-extensions.yaml). */
2523
+ updateMemory(...args: Parameters<NebulaClient["memories"]["update"]>): Promise<Unwrapped<Awaited<ReturnType<NebulaClient["memories"]["update"]>>>>;
2524
+ /** Liveness probe with the wire envelope unwrapped. (generated from dx-extensions.yaml). */
2525
+ healthCheck(...args: Parameters<NebulaClient["client"]["health"]>): Promise<Unwrapped<Awaited<ReturnType<NebulaClient["client"]["health"]>>>>;
2526
+ /** unwrap → collections.create (generated from dx-extensions.yaml). */
2527
+ createCollection(...args: Parameters<NebulaClient["collections"]["create"]>): Promise<Unwrapped<Awaited<ReturnType<NebulaClient["collections"]["create"]>>>>;
2528
+ /** unwrap → collections.retrieve (generated from dx-extensions.yaml). */
2529
+ getCollection(...args: Parameters<NebulaClient["collections"]["retrieve"]>): Promise<Unwrapped<Awaited<ReturnType<NebulaClient["collections"]["retrieve"]>>>>;
2530
+ /** unwrap → collections.retrieveByName (generated from dx-extensions.yaml). */
2531
+ getCollectionByName(...args: Parameters<NebulaClient["collections"]["retrieveByName"]>): Promise<Unwrapped<Awaited<ReturnType<NebulaClient["collections"]["retrieveByName"]>>>>;
2532
+ /** unwrap → collections.list (generated from dx-extensions.yaml). */
2533
+ listCollections(...args: Parameters<NebulaClient["collections"]["list"]>): Promise<Unwrapped<Awaited<ReturnType<NebulaClient["collections"]["list"]>>>>;
2534
+ /** unwrap → collections.update (generated from dx-extensions.yaml). */
2535
+ updateCollection(...args: Parameters<NebulaClient["collections"]["update"]>): Promise<Unwrapped<Awaited<ReturnType<NebulaClient["collections"]["update"]>>>>;
2536
+ /** unwrap → connectors.listProviders (generated from dx-extensions.yaml). */
2537
+ listProviders(...args: Parameters<NebulaClient["connectors"]["listProviders"]>): Promise<Unwrapped<Awaited<ReturnType<NebulaClient["connectors"]["listProviders"]>>>>;
2538
+ /** unwrap → connectors.retrieve (generated from dx-extensions.yaml). */
2539
+ getConnection(...args: Parameters<NebulaClient["connectors"]["retrieve"]>): Promise<Unwrapped<Awaited<ReturnType<NebulaClient["connectors"]["retrieve"]>>>>;
2540
+ /** unwrap → connectors.sync (generated from dx-extensions.yaml). */
2541
+ triggerSync(...args: Parameters<NebulaClient["connectors"]["sync"]>): Promise<Unwrapped<Awaited<ReturnType<NebulaClient["connectors"]["sync"]>>>>;
2542
+ /** unwrap → memories.createUpload (generated from dx-extensions.yaml). */
2543
+ getUploadUrl(...args: Parameters<NebulaClient["memories"]["createUpload"]>): Promise<Unwrapped<Awaited<ReturnType<NebulaClient["memories"]["createUpload"]>>>>;
2544
+ /** unwrap → snapshots.export (generated from dx-extensions.yaml). */
2545
+ exportSnapshot(...args: Parameters<NebulaClient["snapshots"]["export"]>): Promise<Unwrapped<Awaited<ReturnType<NebulaClient["snapshots"]["export"]>>>>;
2546
+ /** unwrap → snapshots.import (generated from dx-extensions.yaml). */
2547
+ importSnapshot(...args: Parameters<NebulaClient["snapshots"]["import"]>): Promise<Unwrapped<Awaited<ReturnType<NebulaClient["snapshots"]["import"]>>>>;
2548
+ }
2549
+ //#endregion
2550
+ //#region src/lib/dx.d.ts
2551
+ type Schemas = components["schemas"];
2552
+ type SnapshotEnvelopeInput = Schemas["SnapshotEnvelope-Input"];
2553
+ type SnapshotEnvelopeOutput = Schemas["SnapshotEnvelope-Output"];
2554
+ type RequestPath = `/${string}` | `http://${string}` | `https://${string}`;
2555
+ type CompatClientOptions = ClientOptions & {
2556
+ api_key?: string | null;
2557
+ apiKey?: string | null;
2558
+ baseUrl?: string | null;
2559
+ baseURL?: string | null;
2560
+ base_url?: string | null;
2561
+ timeout?: number | null;
2562
+ accessToken?: string | null;
2563
+ bearerToken?: string | null;
2564
+ bearer_token?: string | null;
2565
+ access_token?: string | null;
2566
+ };
2567
+ interface MemoryCommonInput {
2568
+ collection_id?: string | null;
2569
+ collectionId?: string | null;
2570
+ content?: string | string[] | unknown[] | null;
2571
+ raw_text?: string | null;
2572
+ chunks?: Array<string> | null;
2573
+ messages?: unknown[] | null;
2574
+ metadata?: {
2575
+ [key: string]: unknown;
2576
+ } | null;
2577
+ ingestion_config?: unknown;
2578
+ ingestion_mode?: string | null;
2579
+ }
2580
+ interface MemoryCreateInput extends MemoryCommonInput {
2581
+ name?: string | null;
2582
+ speaker_id?: string | null;
2583
+ speaker_name?: string | null;
2584
+ content_parts?: unknown[] | null;
2585
+ contents?: string[] | null;
2586
+ snapshot?: SnapshotEnvelopeInput | null;
2587
+ memory_id?: undefined | null;
2588
+ }
2589
+ interface MemoryAppendInput extends Omit<MemoryCommonInput, "ingestion_mode" | "messages"> {
2590
+ memory_id: string;
2591
+ ingestion_mode?: string | null;
2592
+ messages?: unknown[] | null;
2593
+ }
2594
+ type MemoryInput = MemoryCreateInput | MemoryAppendInput;
2595
+ declare class Nebula extends NebulaDX {
2596
+ constructor(options?: CompatClientOptions);
2597
+ /**
2598
+ * Polymorphic memory creator: dispatches to memories.create or memories.append
2599
+ * based on whether `memory_id` is set on the input. Returns the new memory's
2600
+ * id (string), or — when `snapshot` is set — the updated snapshot envelope.
2601
+ */
2602
+ storeMemory(memory: MemoryInput, options?: {
2603
+ signal?: AbortSignal;
2604
+ }): Promise<string | SnapshotEnvelopeOutput>;
2605
+ /**
2606
+ * Bulk parallel version of storeMemory with a concurrency cap.
2607
+ *
2608
+ * Default 8 concurrent in-flight requests matches the Python DX's
2609
+ * `asyncio.Semaphore(max_concurrency)` pattern. Use `maxConcurrency: 1`
2610
+ * for strictly serial submission; higher values risk overwhelming the
2611
+ * server when memories[] is large.
2612
+ */
2613
+ storeMemories(memories: MemoryInput[], options?: {
2614
+ signal?: AbortSignal;
2615
+ maxConcurrency?: number;
2616
+ }): Promise<(string | SnapshotEnvelopeOutput)[]>;
2617
+ /**
2618
+ * List memories scoped to one or more collection ids (string | string[])
2619
+ * or a full MemoryListParams object.
2620
+ */
2621
+ listMemories(query: string | string[] | Record<string, unknown>, options?: {
2622
+ signal?: AbortSignal;
2623
+ }): Promise<unknown>;
2624
+ /**
2625
+ * Memory search shortcut: unwraps `results`. (Affinity-header injection
2626
+ * is a planned enhancement; currently delegates straight to the resource.)
2627
+ */
2628
+ search(body: Schemas["MemorySearchRequest"], options?: {
2629
+ signal?: AbortSignal;
2630
+ }): Promise<unknown>;
2631
+ /**
2632
+ * deleteCollection coerces the wire {success: bool} envelope into a Python-
2633
+ * style boolean return.
2634
+ */
2635
+ deleteCollection(id: string, options?: {
2636
+ signal?: AbortSignal;
2637
+ }): Promise<boolean>;
2638
+ createCluster: (params: {
2639
+ body: components["schemas"]["CreateCollectionRequest"];
2640
+ }, options?: RequestOptions$3 | undefined) => Promise<{
2641
+ access_tier: string | null;
2642
+ cache_policy: string | null;
2643
+ chain_type?: string | null;
2644
+ contract_address?: string | null;
2645
+ created_at: string;
2646
+ creator_royalty_bps: number | null;
2647
+ description: string | null;
2648
+ engram_count: number;
2649
+ graph_collection_status: string;
2650
+ graph_sync_status: string;
2651
+ has_preview_access?: boolean | null;
2652
+ id: string;
2653
+ is_forked?: boolean | null;
2654
+ marketplace_metadata?: {
2655
+ [key: string]: unknown;
2656
+ } | null;
2657
+ memory_count: number | null;
2658
+ name: string;
2659
+ nft_collection_address?: string | null;
2660
+ owner_email?: string | null;
2661
+ owner_id: string | null;
2662
+ owner_name?: string | null;
2663
+ preview_query_limit: number | null;
2664
+ purchase_price_usd?: string | null;
2665
+ rental_price_monthly_usd?: string | null;
2666
+ updated_at: string;
2667
+ user_count: number;
2668
+ workflows_enabled: boolean;
2669
+ workspace_id?: string | null;
2670
+ }>;
2671
+ getCluster: (id: string, options?: RequestOptions$3 | undefined) => Promise<{
2672
+ access_tier: string | null;
2673
+ cache_policy: string | null;
2674
+ chain_type?: string | null;
2675
+ contract_address?: string | null;
2676
+ created_at: string;
2677
+ creator_royalty_bps: number | null;
2678
+ description: string | null;
2679
+ engram_count: number;
2680
+ graph_collection_status: string;
2681
+ graph_sync_status: string;
2682
+ has_preview_access?: boolean | null;
2683
+ id: string;
2684
+ is_forked?: boolean | null;
2685
+ marketplace_metadata?: {
2686
+ [key: string]: unknown;
2687
+ } | null;
2688
+ memory_count: number | null;
2689
+ name: string;
2690
+ nft_collection_address?: string | null;
2691
+ owner_email?: string | null;
2692
+ owner_id: string | null;
2693
+ owner_name?: string | null;
2694
+ preview_query_limit: number | null;
2695
+ purchase_price_usd?: string | null;
2696
+ rental_price_monthly_usd?: string | null;
2697
+ updated_at: string;
2698
+ user_count: number;
2699
+ workflows_enabled: boolean;
2700
+ workspace_id?: string | null;
2701
+ }>;
2702
+ getClusterByName: (params: {
2703
+ collectionName: string;
2704
+ ownerId?: string | null;
2705
+ }, options?: RequestOptions$3 | undefined) => Promise<{
2706
+ access_tier: string | null;
2707
+ cache_policy: string | null;
2708
+ chain_type?: string | null;
2709
+ contract_address?: string | null;
2710
+ created_at: string;
2711
+ creator_royalty_bps: number | null;
2712
+ description: string | null;
2713
+ engram_count: number;
2714
+ graph_collection_status: string;
2715
+ graph_sync_status: string;
2716
+ has_preview_access?: boolean | null;
2717
+ id: string;
2718
+ is_forked?: boolean | null;
2719
+ marketplace_metadata?: {
2720
+ [key: string]: unknown;
2721
+ } | null;
2722
+ memory_count: number | null;
2723
+ name: string;
2724
+ nft_collection_address?: string | null;
2725
+ owner_email?: string | null;
2726
+ owner_id: string | null;
2727
+ owner_name?: string | null;
2728
+ preview_query_limit: number | null;
2729
+ purchase_price_usd?: string | null;
2730
+ rental_price_monthly_usd?: string | null;
2731
+ updated_at: string;
2732
+ user_count: number;
2733
+ workflows_enabled: boolean;
2734
+ workspace_id?: string | null;
2735
+ }>;
2736
+ listClusters: (params?: {
2737
+ ids?: Array<string>;
2738
+ name?: string | null;
2739
+ cursor?: string | null;
2740
+ limit?: number;
2741
+ ownerOnly?: boolean;
2742
+ workspaceId?: string | null;
2743
+ } | undefined, options?: RequestOptions$3 | undefined) => Promise<{
2744
+ data: components["schemas"]["CollectionResponse"][];
2745
+ has_more: boolean;
2746
+ next_cursor?: string | null;
2747
+ }>;
2748
+ updateCluster: (params: {
2749
+ id: string;
2750
+ body: components["schemas"]["UpdateCollectionRequest"];
2751
+ }, options?: RequestOptions$3 | undefined) => Promise<{
2752
+ access_tier: string | null;
2753
+ cache_policy: string | null;
2754
+ chain_type?: string | null;
2755
+ contract_address?: string | null;
2756
+ created_at: string;
2757
+ creator_royalty_bps: number | null;
2758
+ description: string | null;
2759
+ engram_count: number;
2760
+ graph_collection_status: string;
2761
+ graph_sync_status: string;
2762
+ has_preview_access?: boolean | null;
2763
+ id: string;
2764
+ is_forked?: boolean | null;
2765
+ marketplace_metadata?: {
2766
+ [key: string]: unknown;
2767
+ } | null;
2768
+ memory_count: number | null;
2769
+ name: string;
2770
+ nft_collection_address?: string | null;
2771
+ owner_email?: string | null;
2772
+ owner_id: string | null;
2773
+ owner_name?: string | null;
2774
+ preview_query_limit: number | null;
2775
+ purchase_price_usd?: string | null;
2776
+ rental_price_monthly_usd?: string | null;
2777
+ updated_at: string;
2778
+ user_count: number;
2779
+ workflows_enabled: boolean;
2780
+ workspace_id?: string | null;
2781
+ }>;
2782
+ deleteCluster: (id: string, options?: {
2783
+ signal?: AbortSignal;
2784
+ }) => Promise<boolean>;
2785
+ /**
2786
+ * Positional `connectProvider(provider, collectionID, config?)` — wraps the
2787
+ * generated `connectors.connect({provider, body})` to build the body shape.
2788
+ */
2789
+ connectProvider(provider: string, collectionID: string, config?: Record<string, unknown>, options?: {
2790
+ signal?: AbortSignal;
2791
+ }): Promise<unknown>;
2792
+ /** Positional listConnections(collectionID) — wraps the query wrapper. */
2793
+ listConnections(collectionID: string, options?: {
2794
+ signal?: AbortSignal;
2795
+ }): Promise<unknown>;
2796
+ /** Positional disconnect(connectionID, deleteMemories?). */
2797
+ disconnectConnection(connectionID: string, deleteMemories?: boolean, options?: {
2798
+ signal?: AbortSignal;
2799
+ }): Promise<unknown>;
2800
+ /** Alias for disconnectConnection (same arg shape). */
2801
+ disconnect(connectionID: string, deleteMemories?: boolean, options?: {
2802
+ signal?: AbortSignal;
2803
+ }): Promise<unknown>;
2804
+ /** Single-id delete; coerces 204 to boolean true. */
2805
+ deleteMemory(memoryID: string, options?: {
2806
+ signal?: AbortSignal;
2807
+ }): Promise<boolean>;
2808
+ /** Bulk delete by ids. */
2809
+ deleteMemories(memoryIDs: string[], options?: {
2810
+ signal?: AbortSignal;
2811
+ }): Promise<unknown>;
2812
+ /**
2813
+ * Polymorphic delete: dispatches based on argument type.
2814
+ * - `delete("/some/path")` -> raw HTTP DELETE (escape hatch; not implemented)
2815
+ * - `delete("memory-id")` -> deleteMemory
2816
+ * - `delete(["id1", "id2"])` -> deleteMemories (bulk)
2817
+ */
2818
+ delete(pathOrMemoryIDs: RequestPath | string | string[], options?: {
2819
+ signal?: AbortSignal;
2820
+ }): Promise<unknown>;
2821
+ }
2822
+ //#endregion
2823
+ export { type APIErrorPayload, type ClientOptions, type CompatClientOptions, DEFAULT_RETRY, Nebula, Nebula as default, NebulaAPIError, NebulaBadRequestError, NebulaClient, NebulaConflictError, NebulaConnectionError, NebulaCore, NebulaError, NebulaForbiddenError, NebulaNotFoundError, NebulaRateLimitError, NebulaServerError, NebulaTimeoutError, NebulaUnauthorizedError, NebulaValidationError, type RequestArgs, type RetryPolicy, backoffMs, type components, errorFromResponse, isRetryableStatus, sleep };
2824
+ //# sourceMappingURL=index.d.cts.map