@indexnetwork/protocol 0.1.0 → 0.2.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.
- package/README.md +113 -0
- package/dist/agents/chat.agent.js +2 -2
- package/dist/agents/chat.agent.js.map +1 -1
- package/dist/agents/chat.prompt.d.ts.map +1 -1
- package/dist/agents/chat.prompt.js +44 -32
- package/dist/agents/chat.prompt.js.map +1 -1
- package/dist/agents/chat.prompt.modules.js +16 -16
- package/dist/agents/chat.prompt.modules.js.map +1 -1
- package/dist/agents/negotiation.proposer.d.ts +1 -1
- package/dist/agents/negotiation.proposer.d.ts.map +1 -1
- package/dist/agents/negotiation.responder.d.ts +1 -1
- package/dist/agents/negotiation.responder.d.ts.map +1 -1
- package/dist/agents/opportunity.evaluator.d.ts +1 -1
- package/dist/agents/opportunity.evaluator.d.ts.map +1 -1
- package/dist/agents/opportunity.evaluator.js +2 -2
- package/dist/agents/opportunity.evaluator.js.map +1 -1
- package/dist/agents/opportunity.presenter.js +1 -1
- package/dist/agents/opportunity.presenter.js.map +1 -1
- package/dist/graphs/chat.graph.d.ts +9 -9
- package/dist/graphs/chat.graph.d.ts.map +1 -1
- package/dist/graphs/chat.graph.js +2 -2
- package/dist/graphs/chat.graph.js.map +1 -1
- package/dist/graphs/home.graph.d.ts +5 -5
- package/dist/graphs/home.graph.d.ts.map +1 -1
- package/dist/graphs/home.graph.js +2 -2
- package/dist/graphs/home.graph.js.map +1 -1
- package/dist/graphs/intent.graph.d.ts +21 -21
- package/dist/graphs/intent.graph.d.ts.map +1 -1
- package/dist/graphs/intent.graph.js +8 -8
- package/dist/graphs/intent.graph.js.map +1 -1
- package/dist/graphs/intent_network.graph.d.ts +398 -0
- package/dist/graphs/intent_network.graph.d.ts.map +1 -0
- package/dist/graphs/intent_network.graph.js +345 -0
- package/dist/graphs/intent_network.graph.js.map +1 -0
- package/dist/graphs/negotiation.graph.d.ts +27 -27
- package/dist/graphs/negotiation.graph.d.ts.map +1 -1
- package/dist/graphs/negotiation.graph.js +2 -2
- package/dist/graphs/negotiation.graph.js.map +1 -1
- package/dist/graphs/network.graph.d.ts +620 -0
- package/dist/graphs/network.graph.d.ts.map +1 -0
- package/dist/graphs/network.graph.js +226 -0
- package/dist/graphs/network.graph.js.map +1 -0
- package/dist/graphs/network_membership.graph.d.ts +250 -0
- package/dist/graphs/network_membership.graph.d.ts.map +1 -0
- package/dist/graphs/network_membership.graph.js +204 -0
- package/dist/graphs/network_membership.graph.js.map +1 -0
- package/dist/graphs/opportunity.graph.d.ts +33 -33
- package/dist/graphs/opportunity.graph.d.ts.map +1 -1
- package/dist/graphs/opportunity.graph.js +155 -138
- package/dist/graphs/opportunity.graph.js.map +1 -1
- package/dist/graphs/profile.graph.js +4 -4
- package/dist/graphs/profile.graph.js.map +1 -1
- package/dist/graphs/tests/chat.graph.mocks.d.ts +14 -14
- package/dist/graphs/tests/chat.graph.mocks.d.ts.map +1 -1
- package/dist/graphs/tests/chat.graph.mocks.js +20 -20
- package/dist/graphs/tests/chat.graph.mocks.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/interfaces/database.interface.d.ts +93 -93
- package/dist/interfaces/database.interface.d.ts.map +1 -1
- package/dist/interfaces/embedder.interface.d.ts +1 -1
- package/dist/interfaces/embedder.interface.d.ts.map +1 -1
- package/dist/mcp/mcp.server.js +1 -1
- package/dist/mcp/mcp.server.js.map +1 -1
- package/dist/states/chat.state.d.ts +2 -2
- package/dist/states/chat.state.js +2 -2
- package/dist/states/chat.state.js.map +1 -1
- package/dist/states/home.state.d.ts +1 -1
- package/dist/states/home.state.js +1 -1
- package/dist/states/home.state.js.map +1 -1
- package/dist/states/intent.state.d.ts +4 -4
- package/dist/states/intent.state.d.ts.map +1 -1
- package/dist/states/intent.state.js +1 -1
- package/dist/states/intent.state.js.map +1 -1
- package/dist/states/intent_network.state.d.ts +148 -0
- package/dist/states/intent_network.state.d.ts.map +1 -0
- package/dist/states/intent_network.state.js +100 -0
- package/dist/states/intent_network.state.js.map +1 -0
- package/dist/states/negotiation.state.d.ts +4 -4
- package/dist/states/negotiation.state.d.ts.map +1 -1
- package/dist/states/negotiation.state.js +1 -1
- package/dist/states/negotiation.state.js.map +1 -1
- package/dist/states/network.state.d.ts +179 -0
- package/dist/states/network.state.d.ts.map +1 -0
- package/dist/states/network.state.js +56 -0
- package/dist/states/network.state.js.map +1 -0
- package/dist/states/network_membership.state.d.ts +77 -0
- package/dist/states/network_membership.state.d.ts.map +1 -0
- package/dist/states/network_membership.state.js +43 -0
- package/dist/states/network_membership.state.js.map +1 -0
- package/dist/states/opportunity.state.d.ts +15 -15
- package/dist/states/opportunity.state.d.ts.map +1 -1
- package/dist/states/opportunity.state.js +6 -6
- package/dist/states/opportunity.state.js.map +1 -1
- package/dist/streamers/chat.streamer.d.ts +2 -2
- package/dist/streamers/chat.streamer.d.ts.map +1 -1
- package/dist/streamers/chat.streamer.js +6 -6
- package/dist/streamers/chat.streamer.js.map +1 -1
- package/dist/support/opportunity.discover.js +2 -2
- package/dist/support/opportunity.discover.js.map +1 -1
- package/dist/support/opportunity.enricher.js +2 -2
- package/dist/support/opportunity.enricher.js.map +1 -1
- package/dist/support/protocol.logger.d.ts +1 -1
- package/dist/support/protocol.logger.d.ts.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +21 -17
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/intent.tools.js +67 -67
- package/dist/tools/intent.tools.js.map +1 -1
- package/dist/tools/network.tools.d.ts +3 -0
- package/dist/tools/network.tools.d.ts.map +1 -0
- package/dist/tools/network.tools.js +423 -0
- package/dist/tools/network.tools.js.map +1 -0
- package/dist/tools/opportunity.tools.d.ts.map +1 -1
- package/dist/tools/opportunity.tools.js +51 -44
- package/dist/tools/opportunity.tools.js.map +1 -1
- package/dist/tools/profile.tools.js +17 -17
- package/dist/tools/profile.tools.js.map +1 -1
- package/dist/tools/tool.helpers.d.ts +7 -7
- package/dist/tools/tool.helpers.d.ts.map +1 -1
- package/dist/tools/tool.helpers.js +11 -11
- package/dist/tools/tool.helpers.js.map +1 -1
- package/dist/tools/tool.registry.js +3 -3
- package/dist/tools/tool.registry.js.map +1 -1
- package/dist/tools/utility.tools.js +3 -3
- package/package.json +1 -1
|
@@ -7,8 +7,8 @@ export type Id<T extends string = string> = string & {
|
|
|
7
7
|
export interface OnboardingState {
|
|
8
8
|
completedAt?: string;
|
|
9
9
|
flow?: 1 | 2 | 3;
|
|
10
|
-
currentStep?: 'profile' | 'summary' | 'connections' | '
|
|
11
|
-
|
|
10
|
+
currentStep?: 'profile' | 'summary' | 'connections' | 'create_network' | 'invite_members' | 'join_networks';
|
|
11
|
+
networkId?: string;
|
|
12
12
|
invitationCode?: string;
|
|
13
13
|
}
|
|
14
14
|
/** Social-media handles stored as JSON on the user record. */
|
|
@@ -27,9 +27,9 @@ export interface OpportunityDetection {
|
|
|
27
27
|
timestamp: string;
|
|
28
28
|
enrichedFrom?: string[];
|
|
29
29
|
}
|
|
30
|
-
/** A participant (user +
|
|
30
|
+
/** A participant (user + network) involved in an opportunity. */
|
|
31
31
|
export interface OpportunityActor {
|
|
32
|
-
|
|
32
|
+
networkId: Id<'networks'>;
|
|
33
33
|
userId: Id<'users'>;
|
|
34
34
|
intent?: Id<'intents'>;
|
|
35
35
|
role: string;
|
|
@@ -47,9 +47,9 @@ export interface OpportunityInterpretation {
|
|
|
47
47
|
confidence: number;
|
|
48
48
|
signals?: OpportunitySignal[];
|
|
49
49
|
}
|
|
50
|
-
/** Optional scoping context (
|
|
50
|
+
/** Optional scoping context (network / conversation) for an opportunity. */
|
|
51
51
|
export interface OpportunityContext {
|
|
52
|
-
|
|
52
|
+
networkId?: Id<'networks'>;
|
|
53
53
|
conversationId?: Id<'conversations'>;
|
|
54
54
|
}
|
|
55
55
|
/** User record returned by getUser (minimal fields plus optional profile fields). */
|
|
@@ -95,7 +95,7 @@ export interface CreateIntentData {
|
|
|
95
95
|
/** Whether the intent should be hidden from public views */
|
|
96
96
|
isIncognito?: boolean;
|
|
97
97
|
/** Index IDs to associate with (optional, uses dynamic scoping if empty) */
|
|
98
|
-
|
|
98
|
+
networkIds?: string[];
|
|
99
99
|
/** Source type for provenance tracking */
|
|
100
100
|
sourceType?: 'file' | 'integration' | 'link' | 'discovery_form' | 'enrichment';
|
|
101
101
|
/** Source ID for provenance tracking */
|
|
@@ -131,7 +131,7 @@ export interface UpdateIntentData {
|
|
|
131
131
|
/** Updated incognito status */
|
|
132
132
|
isIncognito?: boolean;
|
|
133
133
|
/** Updated index associations (replaces existing) */
|
|
134
|
-
|
|
134
|
+
networkIds?: string[];
|
|
135
135
|
/** Semantic entropy from verifier (0 specific -> 1 vague) */
|
|
136
136
|
semanticEntropy?: number | null;
|
|
137
137
|
/** Referential anchor extracted by verifier (if any) */
|
|
@@ -207,11 +207,11 @@ export interface SimilarIntentSearchOptions {
|
|
|
207
207
|
* Represents a user's membership in an index with full details.
|
|
208
208
|
* Used for displaying index memberships in chat (index_query).
|
|
209
209
|
*/
|
|
210
|
-
export interface
|
|
210
|
+
export interface NetworkMembership {
|
|
211
211
|
/** Unique identifier of the index */
|
|
212
|
-
|
|
212
|
+
networkId: string;
|
|
213
213
|
/** Display title of the index */
|
|
214
|
-
|
|
214
|
+
networkTitle: string;
|
|
215
215
|
/** Index description/prompt (what the community is about) */
|
|
216
216
|
indexPrompt: string | null;
|
|
217
217
|
/** Member's permissions in this index */
|
|
@@ -372,7 +372,7 @@ export interface CreateOpportunityData {
|
|
|
372
372
|
}
|
|
373
373
|
export interface OpportunityQueryOptions {
|
|
374
374
|
status?: OpportunityStatus;
|
|
375
|
-
|
|
375
|
+
networkId?: string;
|
|
376
376
|
role?: string;
|
|
377
377
|
limit?: number;
|
|
378
378
|
offset?: number;
|
|
@@ -569,27 +569,27 @@ export interface Database {
|
|
|
569
569
|
* @param userId - The unique identifier of the user
|
|
570
570
|
* @returns Array of index memberships with details
|
|
571
571
|
*/
|
|
572
|
-
|
|
572
|
+
getNetworkMemberships(userId: string): Promise<NetworkMembership[]>;
|
|
573
573
|
/**
|
|
574
574
|
* Get a single index membership by index and user.
|
|
575
|
-
* Used when the preloaded memberships list may not contain this index (e.g. after
|
|
575
|
+
* Used when the preloaded memberships list may not contain this index (e.g. after isNetworkMember check).
|
|
576
576
|
*
|
|
577
|
-
* @param
|
|
577
|
+
* @param networkId - The index ID
|
|
578
578
|
* @param userId - The user ID
|
|
579
579
|
* @returns The membership or null if not found
|
|
580
580
|
*/
|
|
581
|
-
|
|
581
|
+
getNetworkMembership(networkId: string, userId: string): Promise<NetworkMembership | null>;
|
|
582
582
|
/**
|
|
583
583
|
* Get index by ID (id and title only). Used for opportunity presentation.
|
|
584
584
|
*/
|
|
585
|
-
getIndex(
|
|
585
|
+
getIndex(networkId: string): Promise<{
|
|
586
586
|
id: string;
|
|
587
587
|
title: string;
|
|
588
588
|
} | null>;
|
|
589
589
|
/**
|
|
590
590
|
* Get index by ID with permissions (e.g. joinPolicy). Used by chat tools for create_index_membership.
|
|
591
591
|
*/
|
|
592
|
-
getIndexWithPermissions(
|
|
592
|
+
getIndexWithPermissions(networkId: string): Promise<{
|
|
593
593
|
id: string;
|
|
594
594
|
title: string;
|
|
595
595
|
permissions: {
|
|
@@ -598,7 +598,7 @@ export interface Database {
|
|
|
598
598
|
} | null>;
|
|
599
599
|
/**
|
|
600
600
|
* Associates an intent with one or more indexes.
|
|
601
|
-
* Creates entries in the
|
|
601
|
+
* Creates entries in the intentNetworks join table.
|
|
602
602
|
*
|
|
603
603
|
* @param intentId - The intent to associate
|
|
604
604
|
* @param indexIds - Array of index IDs to associate with
|
|
@@ -649,30 +649,30 @@ export interface Database {
|
|
|
649
649
|
* Index + member prompts for a user in an index (only when member has autoAssign).
|
|
650
650
|
* Returns null if user is not a member or autoAssign is false.
|
|
651
651
|
*/
|
|
652
|
-
getIndexMemberContext(
|
|
653
|
-
|
|
652
|
+
getIndexMemberContext(networkId: string, userId: string): Promise<{
|
|
653
|
+
networkId: string;
|
|
654
654
|
indexPrompt: string | null;
|
|
655
655
|
memberPrompt: string | null;
|
|
656
656
|
} | null>;
|
|
657
657
|
/**
|
|
658
658
|
* Whether the intent is currently assigned to the index.
|
|
659
659
|
*/
|
|
660
|
-
isIntentAssignedToIndex(intentId: string,
|
|
660
|
+
isIntentAssignedToIndex(intentId: string, networkId: string): Promise<boolean>;
|
|
661
661
|
/**
|
|
662
662
|
* Assigns an intent to an index (inserts intent_indexes row).
|
|
663
663
|
*/
|
|
664
|
-
|
|
664
|
+
assignIntentToNetwork(intentId: string, networkId: string, relevancyScore?: number): Promise<void>;
|
|
665
665
|
/**
|
|
666
666
|
* Returns per-index relevancy scores for an intent's index assignments.
|
|
667
667
|
*/
|
|
668
668
|
getIntentIndexScores(intentId: string): Promise<Array<{
|
|
669
|
-
|
|
669
|
+
networkId: string;
|
|
670
670
|
relevancyScore: number | null;
|
|
671
671
|
}>>;
|
|
672
672
|
/**
|
|
673
673
|
* Removes an intent from an index (deletes intent_indexes row).
|
|
674
674
|
*/
|
|
675
|
-
unassignIntentFromIndex(intentId: string,
|
|
675
|
+
unassignIntentFromIndex(intentId: string, networkId: string): Promise<void>;
|
|
676
676
|
/**
|
|
677
677
|
* Returns all index IDs that an intent is registered to.
|
|
678
678
|
*/
|
|
@@ -693,7 +693,7 @@ export interface Database {
|
|
|
693
693
|
* @returns Object containing array of public indexes with owner info
|
|
694
694
|
*/
|
|
695
695
|
getPublicIndexesNotJoined(userId: string): Promise<{
|
|
696
|
-
|
|
696
|
+
networks: Array<{
|
|
697
697
|
id: string;
|
|
698
698
|
title: string;
|
|
699
699
|
prompt: string | null;
|
|
@@ -708,40 +708,40 @@ export interface Database {
|
|
|
708
708
|
/**
|
|
709
709
|
* Check if user is an owner of a specific index.
|
|
710
710
|
*
|
|
711
|
-
* @param
|
|
711
|
+
* @param networkId - The index to check
|
|
712
712
|
* @param userId - The user to verify ownership for
|
|
713
713
|
* @returns True if user is an owner
|
|
714
714
|
*/
|
|
715
|
-
isIndexOwner(
|
|
715
|
+
isIndexOwner(networkId: string, userId: string): Promise<boolean>;
|
|
716
716
|
/**
|
|
717
717
|
* Check if user is a member of a specific index.
|
|
718
718
|
*
|
|
719
|
-
* @param
|
|
719
|
+
* @param networkId - The index to check
|
|
720
720
|
* @param userId - The user to verify membership for
|
|
721
721
|
* @returns True if user is a member
|
|
722
722
|
*/
|
|
723
|
-
|
|
723
|
+
isNetworkMember(networkId: string, userId: string): Promise<boolean>;
|
|
724
724
|
/**
|
|
725
725
|
* Get all members of an index with their details.
|
|
726
726
|
* **OWNER ONLY** - throws if user is not an owner.
|
|
727
727
|
*
|
|
728
|
-
* @param
|
|
728
|
+
* @param networkId - The index to get members for
|
|
729
729
|
* @param requestingUserId - The user requesting (must be owner)
|
|
730
730
|
* @returns Array of member details with intent counts
|
|
731
731
|
* @throws Error if requestingUserId is not an owner
|
|
732
732
|
*/
|
|
733
|
-
getIndexMembersForOwner(
|
|
733
|
+
getIndexMembersForOwner(networkId: string, requestingUserId: string): Promise<IndexMemberDetails[]>;
|
|
734
734
|
/**
|
|
735
735
|
* Get all members of an index with their details.
|
|
736
736
|
* **MEMBER ONLY** - any member of the index can list members (not just owners).
|
|
737
737
|
* Returns same shape as getIndexMembersForOwner; email may be omitted for privacy.
|
|
738
738
|
*
|
|
739
|
-
* @param
|
|
739
|
+
* @param networkId - The index to get members for
|
|
740
740
|
* @param requestingUserId - The user requesting (must be a member of the index)
|
|
741
741
|
* @returns Array of member details with intent counts
|
|
742
742
|
* @throws Error if requestingUserId is not a member of the index
|
|
743
743
|
*/
|
|
744
|
-
getIndexMembersForMember(
|
|
744
|
+
getIndexMembersForMember(networkId: string, requestingUserId: string): Promise<IndexMemberDetails[]>;
|
|
745
745
|
/**
|
|
746
746
|
* Get all members from every index the user is a member of (deduplicated).
|
|
747
747
|
* Used for mentionable-users: anyone who shares at least one index with the requesting user.
|
|
@@ -758,13 +758,13 @@ export interface Database {
|
|
|
758
758
|
* Get all indexed intents for an index.
|
|
759
759
|
* **OWNER ONLY** - throws if user is not an owner.
|
|
760
760
|
*
|
|
761
|
-
* @param
|
|
761
|
+
* @param networkId - The index to get intents for
|
|
762
762
|
* @param requestingUserId - The user requesting (must be owner)
|
|
763
763
|
* @param options - Pagination options
|
|
764
764
|
* @returns Array of intent details with owner info
|
|
765
765
|
* @throws Error if requestingUserId is not an owner
|
|
766
766
|
*/
|
|
767
|
-
getIndexIntentsForOwner(
|
|
767
|
+
getIndexIntentsForOwner(networkId: string, requestingUserId: string, options?: {
|
|
768
768
|
limit?: number;
|
|
769
769
|
offset?: number;
|
|
770
770
|
}): Promise<IndexedIntentDetails[]>;
|
|
@@ -772,13 +772,13 @@ export interface Database {
|
|
|
772
772
|
* Get all indexed intents for an index.
|
|
773
773
|
* **MEMBER ONLY** - any member of the index can list intents (not just owners).
|
|
774
774
|
*
|
|
775
|
-
* @param
|
|
775
|
+
* @param networkId - The index to get intents for
|
|
776
776
|
* @param requestingUserId - The user requesting (must be a member of the index)
|
|
777
777
|
* @param options - Pagination options
|
|
778
778
|
* @returns Array of intent details with owner info
|
|
779
779
|
* @throws Error if requestingUserId is not a member of the index
|
|
780
780
|
*/
|
|
781
|
-
getIndexIntentsForMember(
|
|
781
|
+
getIndexIntentsForMember(networkId: string, requestingUserId: string, options?: {
|
|
782
782
|
limit?: number;
|
|
783
783
|
offset?: number;
|
|
784
784
|
}): Promise<IndexedIntentDetails[]>;
|
|
@@ -786,20 +786,20 @@ export interface Database {
|
|
|
786
786
|
* Update index settings.
|
|
787
787
|
* **OWNER ONLY** - throws if user is not an owner.
|
|
788
788
|
*
|
|
789
|
-
* @param
|
|
789
|
+
* @param networkId - The index to update
|
|
790
790
|
* @param requestingUserId - The user requesting (must be owner)
|
|
791
791
|
* @param data - The settings to update
|
|
792
792
|
* @returns The updated index
|
|
793
793
|
* @throws Error if requestingUserId is not an owner
|
|
794
794
|
*/
|
|
795
|
-
updateIndexSettings(
|
|
795
|
+
updateIndexSettings(networkId: string, requestingUserId: string, data: UpdateIndexSettingsData): Promise<OwnedIndex>;
|
|
796
796
|
/**
|
|
797
797
|
* Soft-delete an index (set deletedAt).
|
|
798
798
|
* Caller must ensure index is not personal and has no other members.
|
|
799
799
|
*
|
|
800
|
-
* @param
|
|
800
|
+
* @param networkId - The index to soft-delete
|
|
801
801
|
*/
|
|
802
|
-
softDeleteIndex(
|
|
802
|
+
softDeleteIndex(networkId: string): Promise<void>;
|
|
803
803
|
/**
|
|
804
804
|
* Delete a user's profile (removes profile row).
|
|
805
805
|
* Used after confirmation in chat tools.
|
|
@@ -822,7 +822,7 @@ export interface Database {
|
|
|
822
822
|
* @param data - Title, optional prompt, optional imageUrl, optional joinPolicy
|
|
823
823
|
* @returns The created index with id, title, prompt, imageUrl, permissions
|
|
824
824
|
*/
|
|
825
|
-
|
|
825
|
+
createNetwork(data: {
|
|
826
826
|
title: string;
|
|
827
827
|
prompt?: string | null;
|
|
828
828
|
imageUrl?: string | null;
|
|
@@ -843,19 +843,19 @@ export interface Database {
|
|
|
843
843
|
/**
|
|
844
844
|
* Count members in an index (for delete guard).
|
|
845
845
|
*
|
|
846
|
-
* @param
|
|
846
|
+
* @param networkId - The index to count
|
|
847
847
|
* @returns Number of members
|
|
848
848
|
*/
|
|
849
|
-
getIndexMemberCount(
|
|
849
|
+
getIndexMemberCount(networkId: string): Promise<number>;
|
|
850
850
|
/**
|
|
851
851
|
* Add a user as a member of an index (replaces deprecated lib/index-members.ts).
|
|
852
852
|
*
|
|
853
|
-
* @param
|
|
853
|
+
* @param networkId - The index to add to
|
|
854
854
|
* @param userId - The user to add
|
|
855
855
|
* @param role - owner | admin | member
|
|
856
856
|
* @returns success and optionally alreadyMember if they were already in the index
|
|
857
857
|
*/
|
|
858
|
-
addMemberToIndex(
|
|
858
|
+
addMemberToIndex(networkId: string, userId: string, role: 'owner' | 'admin' | 'member'): Promise<{
|
|
859
859
|
success: boolean;
|
|
860
860
|
alreadyMember?: boolean;
|
|
861
861
|
}>;
|
|
@@ -863,11 +863,11 @@ export interface Database {
|
|
|
863
863
|
* Removes a user from an index.
|
|
864
864
|
* Only the index owner can remove members. Cannot remove the owner.
|
|
865
865
|
*
|
|
866
|
-
* @param
|
|
866
|
+
* @param networkId - The index to remove from
|
|
867
867
|
* @param userId - The user to remove
|
|
868
868
|
* @returns success, or wasOwner/notMember if removal failed
|
|
869
869
|
*/
|
|
870
|
-
removeMemberFromIndex(
|
|
870
|
+
removeMemberFromIndex(networkId: string, userId: string): Promise<{
|
|
871
871
|
success: boolean;
|
|
872
872
|
wasOwner?: boolean;
|
|
873
873
|
notMember?: boolean;
|
|
@@ -954,11 +954,11 @@ export interface Database {
|
|
|
954
954
|
/**
|
|
955
955
|
* Get opportunities in an index (for index admins).
|
|
956
956
|
*
|
|
957
|
-
* @param
|
|
957
|
+
* @param networkId - Index ID
|
|
958
958
|
* @param options - Optional filters and pagination
|
|
959
959
|
* @returns Array of opportunities
|
|
960
960
|
*/
|
|
961
|
-
|
|
961
|
+
getOpportunitiesForNetwork(networkId: string, options?: OpportunityQueryOptions): Promise<Opportunity[]>;
|
|
962
962
|
/**
|
|
963
963
|
* Update an opportunity's status.
|
|
964
964
|
*
|
|
@@ -984,19 +984,19 @@ export interface Database {
|
|
|
984
984
|
* Check if an opportunity already exists between the given actors in the index (deduplication).
|
|
985
985
|
*
|
|
986
986
|
* @param actorIds - Array of user IDs that would be actors
|
|
987
|
-
* @param
|
|
987
|
+
* @param networkId - Index ID
|
|
988
988
|
* @returns True if a non-expired opportunity exists with exactly these actors in this index
|
|
989
989
|
*/
|
|
990
|
-
opportunityExistsBetweenActors(actorIds: string[],
|
|
990
|
+
opportunityExistsBetweenActors(actorIds: string[], networkId: string): Promise<boolean>;
|
|
991
991
|
/**
|
|
992
992
|
* Return one non-expired opportunity between the given actors in the index, if any.
|
|
993
993
|
* Used to avoid creating a duplicate and to surface existing opportunity id/status.
|
|
994
994
|
*
|
|
995
995
|
* @param actorIds - Array of user IDs that would be actors
|
|
996
|
-
* @param
|
|
996
|
+
* @param networkId - Index ID
|
|
997
997
|
* @returns The first matching opportunity's id and status, or null
|
|
998
998
|
*/
|
|
999
|
-
getOpportunityBetweenActors(actorIds: string[],
|
|
999
|
+
getOpportunityBetweenActors(actorIds: string[], networkId: string): Promise<{
|
|
1000
1000
|
id: Id<'opportunities'>;
|
|
1001
1001
|
status: OpportunityStatus;
|
|
1002
1002
|
} | null>;
|
|
@@ -1023,11 +1023,11 @@ export interface Database {
|
|
|
1023
1023
|
/**
|
|
1024
1024
|
* Expire opportunities for a user removed from an index.
|
|
1025
1025
|
*
|
|
1026
|
-
* @param
|
|
1026
|
+
* @param networkId - Index ID
|
|
1027
1027
|
* @param userId - User ID that was removed
|
|
1028
1028
|
* @returns Number of opportunities updated to expired
|
|
1029
1029
|
*/
|
|
1030
|
-
expireOpportunitiesForRemovedMember(
|
|
1030
|
+
expireOpportunitiesForRemovedMember(networkId: string, userId: string): Promise<number>;
|
|
1031
1031
|
/**
|
|
1032
1032
|
* Expire opportunities whose expires_at <= now. Used by maintenance cron.
|
|
1033
1033
|
*
|
|
@@ -1089,7 +1089,7 @@ export interface Database {
|
|
|
1089
1089
|
* @returns Array of personal index IDs
|
|
1090
1090
|
*/
|
|
1091
1091
|
getPersonalIndexesForContact(userId: string): Promise<{
|
|
1092
|
-
|
|
1092
|
+
networkId: string;
|
|
1093
1093
|
}[]>;
|
|
1094
1094
|
/** Find a user by email. */
|
|
1095
1095
|
getUserByEmail(email: string): Promise<{
|
|
@@ -1154,29 +1154,29 @@ export interface UserDatabase {
|
|
|
1154
1154
|
/** Associate an intent with indexes. */
|
|
1155
1155
|
associateIntentWithIndexes(intentId: string, indexIds: string[]): Promise<void>;
|
|
1156
1156
|
/** Assign an intent to an index. */
|
|
1157
|
-
|
|
1157
|
+
assignIntentToNetwork(intentId: string, networkId: string, relevancyScore?: number): Promise<void>;
|
|
1158
1158
|
/** Unassign an intent from an index. */
|
|
1159
|
-
unassignIntentFromIndex(intentId: string,
|
|
1159
|
+
unassignIntentFromIndex(intentId: string, networkId: string): Promise<void>;
|
|
1160
1160
|
/** Get index IDs for an intent. */
|
|
1161
1161
|
getIndexIdsForIntent(intentId: string): Promise<string[]>;
|
|
1162
1162
|
/** Check if intent is assigned to index. */
|
|
1163
|
-
isIntentAssignedToIndex(intentId: string,
|
|
1163
|
+
isIntentAssignedToIndex(intentId: string, networkId: string): Promise<boolean>;
|
|
1164
1164
|
/** Get all index memberships for the authenticated user. */
|
|
1165
|
-
|
|
1165
|
+
getNetworkMemberships(): Promise<NetworkMembership[]>;
|
|
1166
1166
|
/** Get index IDs with auto-assign enabled for the authenticated user. */
|
|
1167
1167
|
getUserIndexIds(): Promise<string[]>;
|
|
1168
1168
|
/** Get indexes owned by the authenticated user. */
|
|
1169
1169
|
getOwnedIndexes(): Promise<OwnedIndex[]>;
|
|
1170
1170
|
/** Get a specific index membership for the authenticated user. */
|
|
1171
|
-
|
|
1171
|
+
getNetworkMembership(networkId: string): Promise<NetworkMembership | null>;
|
|
1172
1172
|
/** Get index + member context for the authenticated user (for auto-assign). */
|
|
1173
|
-
getIndexMemberContext(
|
|
1174
|
-
|
|
1173
|
+
getIndexMemberContext(networkId: string): Promise<{
|
|
1174
|
+
networkId: string;
|
|
1175
1175
|
indexPrompt: string | null;
|
|
1176
1176
|
memberPrompt: string | null;
|
|
1177
1177
|
} | null>;
|
|
1178
1178
|
/** Create a new index (user becomes owner). */
|
|
1179
|
-
|
|
1179
|
+
createNetwork(data: {
|
|
1180
1180
|
title: string;
|
|
1181
1181
|
prompt?: string | null;
|
|
1182
1182
|
imageUrl?: string | null;
|
|
@@ -1195,12 +1195,12 @@ export interface UserDatabase {
|
|
|
1195
1195
|
};
|
|
1196
1196
|
}>;
|
|
1197
1197
|
/** Update index settings (owner only). */
|
|
1198
|
-
updateIndexSettings(
|
|
1198
|
+
updateIndexSettings(networkId: string, data: UpdateIndexSettingsData): Promise<OwnedIndex>;
|
|
1199
1199
|
/** Soft-delete an index (owner only). */
|
|
1200
|
-
softDeleteIndex(
|
|
1200
|
+
softDeleteIndex(networkId: string): Promise<void>;
|
|
1201
1201
|
/** Get public indexes (joinPolicy 'anyone') that the user has not joined. */
|
|
1202
1202
|
getPublicIndexesNotJoined(): Promise<{
|
|
1203
|
-
|
|
1203
|
+
networks: Array<{
|
|
1204
1204
|
id: string;
|
|
1205
1205
|
title: string;
|
|
1206
1206
|
prompt: string | null;
|
|
@@ -1213,7 +1213,7 @@ export interface UserDatabase {
|
|
|
1213
1213
|
}>;
|
|
1214
1214
|
}>;
|
|
1215
1215
|
/** Join a public index (validates joinPolicy === 'anyone'). */
|
|
1216
|
-
|
|
1216
|
+
joinPublicNetwork(networkId: string): Promise<{
|
|
1217
1217
|
success: boolean;
|
|
1218
1218
|
alreadyMember?: boolean;
|
|
1219
1219
|
}>;
|
|
@@ -1255,22 +1255,22 @@ export interface SystemDatabase {
|
|
|
1255
1255
|
/** Get a user's basic record (requires shared index membership). */
|
|
1256
1256
|
getUser(userId: string): Promise<UserRecord | null>;
|
|
1257
1257
|
/** Get all intents in an index (cross-user, requires membership). */
|
|
1258
|
-
getIntentsInIndex(
|
|
1258
|
+
getIntentsInIndex(networkId: string, options?: {
|
|
1259
1259
|
limit?: number;
|
|
1260
1260
|
offset?: number;
|
|
1261
1261
|
}): Promise<IndexedIntentDetails[]>;
|
|
1262
1262
|
/** Get a specific user's intents in an index (requires shared membership). */
|
|
1263
|
-
getUserIntentsInIndex(userId: string,
|
|
1263
|
+
getUserIntentsInIndex(userId: string, networkId: string): Promise<ActiveIntent[]>;
|
|
1264
1264
|
/** Get a single intent by ID (if in scope). */
|
|
1265
1265
|
getIntent(intentId: string): Promise<IntentRecord | null>;
|
|
1266
1266
|
/** Find similar intents across users within the index scope. */
|
|
1267
1267
|
findSimilarIntentsInScope(embedding: number[], options?: SimilarIntentSearchOptions): Promise<SimilarIntent[]>;
|
|
1268
1268
|
/** Check if a user is a member of an index. */
|
|
1269
|
-
|
|
1269
|
+
isNetworkMember(networkId: string, userId: string): Promise<boolean>;
|
|
1270
1270
|
/** Check if a user is an owner of an index. */
|
|
1271
|
-
isIndexOwner(
|
|
1271
|
+
isIndexOwner(networkId: string, userId: string): Promise<boolean>;
|
|
1272
1272
|
/** Get all members of an index (requires membership). */
|
|
1273
|
-
getIndexMembers(
|
|
1273
|
+
getIndexMembers(networkId: string): Promise<IndexMemberDetails[]>;
|
|
1274
1274
|
/** Get all members across all indexes in scope (deduplicated). */
|
|
1275
1275
|
getMembersFromScope(): Promise<{
|
|
1276
1276
|
userId: Id<'users'>;
|
|
@@ -1278,23 +1278,23 @@ export interface SystemDatabase {
|
|
|
1278
1278
|
avatar: string | null;
|
|
1279
1279
|
}[]>;
|
|
1280
1280
|
/** Add a user to an index (requires ownership or 'anyone' policy). */
|
|
1281
|
-
addMemberToIndex(
|
|
1281
|
+
addMemberToIndex(networkId: string, userId: string, role: 'owner' | 'admin' | 'member'): Promise<{
|
|
1282
1282
|
success: boolean;
|
|
1283
1283
|
alreadyMember?: boolean;
|
|
1284
1284
|
}>;
|
|
1285
1285
|
/** Remove a user from an index (requires ownership). Cannot remove the owner. */
|
|
1286
|
-
removeMemberFromIndex(
|
|
1286
|
+
removeMemberFromIndex(networkId: string, userId: string): Promise<{
|
|
1287
1287
|
success: boolean;
|
|
1288
1288
|
wasOwner?: boolean;
|
|
1289
1289
|
notMember?: boolean;
|
|
1290
1290
|
}>;
|
|
1291
1291
|
/** Get index info by ID (requires scope). */
|
|
1292
|
-
getIndex(
|
|
1292
|
+
getIndex(networkId: string): Promise<{
|
|
1293
1293
|
id: string;
|
|
1294
1294
|
title: string;
|
|
1295
1295
|
} | null>;
|
|
1296
1296
|
/** Get index with permissions (requires scope). */
|
|
1297
|
-
getIndexWithPermissions(
|
|
1297
|
+
getIndexWithPermissions(networkId: string): Promise<{
|
|
1298
1298
|
id: string;
|
|
1299
1299
|
title: string;
|
|
1300
1300
|
permissions: {
|
|
@@ -1302,7 +1302,7 @@ export interface SystemDatabase {
|
|
|
1302
1302
|
};
|
|
1303
1303
|
} | null>;
|
|
1304
1304
|
/** Get member count for an index (requires scope). */
|
|
1305
|
-
getIndexMemberCount(
|
|
1305
|
+
getIndexMemberCount(networkId: string): Promise<number>;
|
|
1306
1306
|
/** Create an opportunity (cross-user). */
|
|
1307
1307
|
createOpportunity(data: CreateOpportunityData): Promise<Opportunity>;
|
|
1308
1308
|
/** Create opportunity and expire overlapping ones atomically. */
|
|
@@ -1313,13 +1313,13 @@ export interface SystemDatabase {
|
|
|
1313
1313
|
/** Get an opportunity by ID (for system processing). */
|
|
1314
1314
|
getOpportunity(id: string): Promise<Opportunity | null>;
|
|
1315
1315
|
/** Get opportunities for an index (requires membership). */
|
|
1316
|
-
|
|
1316
|
+
getOpportunitiesForNetwork(networkId: string, options?: OpportunityQueryOptions): Promise<Opportunity[]>;
|
|
1317
1317
|
/** Update an opportunity's status (system-level). */
|
|
1318
1318
|
updateOpportunityStatus(id: string, status: OpportunityStatus): Promise<Opportunity | null>;
|
|
1319
1319
|
/** Check if opportunity exists between actors in an index. */
|
|
1320
|
-
opportunityExistsBetweenActors(actorIds: string[],
|
|
1320
|
+
opportunityExistsBetweenActors(actorIds: string[], networkId: string): Promise<boolean>;
|
|
1321
1321
|
/** Return one opportunity between actors in the index (id + status), or null. */
|
|
1322
|
-
getOpportunityBetweenActors(actorIds: string[],
|
|
1322
|
+
getOpportunityBetweenActors(actorIds: string[], networkId: string): Promise<{
|
|
1323
1323
|
id: Id<'opportunities'>;
|
|
1324
1324
|
status: OpportunityStatus;
|
|
1325
1325
|
} | null>;
|
|
@@ -1330,7 +1330,7 @@ export interface SystemDatabase {
|
|
|
1330
1330
|
/** Expire opportunities referencing an intent. */
|
|
1331
1331
|
expireOpportunitiesByIntent(intentId: string): Promise<number>;
|
|
1332
1332
|
/** Expire opportunities for a removed member. */
|
|
1333
|
-
expireOpportunitiesForRemovedMember(
|
|
1333
|
+
expireOpportunitiesForRemovedMember(networkId: string, userId: string): Promise<number>;
|
|
1334
1334
|
/** Expire stale opportunities (maintenance). */
|
|
1335
1335
|
expireStaleOpportunities(): Promise<number>;
|
|
1336
1336
|
/** Get a HyDE document (cross-user for matching). */
|
|
@@ -1354,13 +1354,13 @@ export type ProfileGraphDatabase = Pick<Database, 'getProfile' | 'getUser' | 'up
|
|
|
1354
1354
|
/**
|
|
1355
1355
|
* Composite database interface for Chat Graph.
|
|
1356
1356
|
* Includes direct ChatGraph operations plus all methods needed by
|
|
1357
|
-
* internally composed subgraphs (ProfileGraph, OpportunityGraph, IntentGraph,
|
|
1357
|
+
* internally composed subgraphs (ProfileGraph, OpportunityGraph, IntentGraph, NetworkGraph).
|
|
1358
1358
|
*
|
|
1359
1359
|
* Use this type when ChatGraph orchestrates subgraphs internally.
|
|
1360
1360
|
*
|
|
1361
1361
|
* Access layer: Both UserDatabase + SystemDatabase (orchestrates all operations)
|
|
1362
1362
|
*/
|
|
1363
|
-
export type ChatGraphCompositeDatabase = Pick<Database, 'getProfile' | 'getActiveIntents' | 'getIntentsInIndexForMember' | 'getUser' | 'updateUser' | 'saveProfile' | 'softDeleteGhost' | 'createIntent' | 'updateIntent' | 'archiveIntent' | 'createOpportunity' | 'getOpportunity' | 'opportunityExistsBetweenActors' | 'getOpportunityBetweenActors' | 'findOverlappingOpportunities' | 'getOpportunitiesForUser' | 'updateOpportunityStatus' | 'getHydeDocument' | 'getHydeDocumentsForSource' | 'saveHydeDocument' | 'getIntent' | 'getPublicIndexesNotJoined' | 'getUserIndexIds' | '
|
|
1363
|
+
export type ChatGraphCompositeDatabase = Pick<Database, 'getProfile' | 'getActiveIntents' | 'getIntentsInIndexForMember' | 'getUser' | 'updateUser' | 'saveProfile' | 'softDeleteGhost' | 'createIntent' | 'updateIntent' | 'archiveIntent' | 'createOpportunity' | 'getOpportunity' | 'opportunityExistsBetweenActors' | 'getOpportunityBetweenActors' | 'findOverlappingOpportunities' | 'getOpportunitiesForUser' | 'updateOpportunityStatus' | 'getHydeDocument' | 'getHydeDocumentsForSource' | 'saveHydeDocument' | 'getIntent' | 'getPublicIndexesNotJoined' | 'getUserIndexIds' | 'getNetworkMemberships' | 'getNetworkMembership' | 'getIndex' | 'getIndexWithPermissions' | 'getIntentForIndexing' | 'getIndexMemberContext' | 'isIntentAssignedToIndex' | 'assignIntentToNetwork' | 'unassignIntentFromIndex' | 'getIndexIdsForIntent' | 'getIntentIndexScores' | 'getPersonalIndexesForContact' | 'getOwnedIndexes' | 'isIndexOwner' | 'isNetworkMember' | 'getIndexMembersForOwner' | 'getIndexMembersForMember' | 'getMembersFromUserIndexes' | 'getIndexIntentsForOwner' | 'getIndexIntentsForMember' | 'updateIndexSettings' | 'softDeleteIndex' | 'deleteProfile' | 'getProfileByUserId' | 'createNetwork' | 'getIndexMemberCount' | 'addMemberToIndex' | 'removeMemberFromIndex'>;
|
|
1364
1364
|
/**
|
|
1365
1365
|
* Database interface for Opportunity Graph operations.
|
|
1366
1366
|
* Includes prep/scope (index membership, intents, index details), persist (create, dedupe),
|
|
@@ -1368,7 +1368,7 @@ export type ChatGraphCompositeDatabase = Pick<Database, 'getProfile' | 'getActiv
|
|
|
1368
1368
|
*
|
|
1369
1369
|
* Access layer: SystemDatabase (cross-user opportunity operations)
|
|
1370
1370
|
*/
|
|
1371
|
-
export type OpportunityGraphDatabase = Pick<Database, 'getProfile' | 'createOpportunity' | 'opportunityExistsBetweenActors' | 'getOpportunityBetweenActors' | 'findOverlappingOpportunities' | 'getUserIndexIds' | '
|
|
1371
|
+
export type OpportunityGraphDatabase = Pick<Database, 'getProfile' | 'createOpportunity' | 'opportunityExistsBetweenActors' | 'getOpportunityBetweenActors' | 'findOverlappingOpportunities' | 'getUserIndexIds' | 'getNetworkMemberships' | 'getActiveIntents' | 'getIndexIdsForIntent' | 'getIndex' | 'getIndexMemberCount' | 'getIntentIndexScores' | 'getIndexMemberContext' | 'getOpportunity' | 'getOpportunitiesForUser' | 'updateOpportunityStatus' | 'isNetworkMember' | 'isIndexOwner' | 'getUser' | 'getIntent'>;
|
|
1372
1372
|
/**
|
|
1373
1373
|
* Database interface for the negotiation graph (A2A conversation/task/artifact persistence).
|
|
1374
1374
|
*
|
|
@@ -1447,7 +1447,7 @@ export interface NegotiationDatabase {
|
|
|
1447
1447
|
*
|
|
1448
1448
|
* Access layer: Both UserDatabase + SystemDatabase (API handles auth)
|
|
1449
1449
|
*/
|
|
1450
|
-
export type OpportunityControllerDatabase = Pick<Database, 'getOpportunity' | 'getOpportunitiesForUser' | '
|
|
1450
|
+
export type OpportunityControllerDatabase = Pick<Database, 'getOpportunity' | 'getOpportunitiesForUser' | 'getOpportunitiesForNetwork' | 'resolveOpportunityId' | 'updateOpportunityStatus' | 'createOpportunity' | 'createOpportunityAndExpireIds' | 'opportunityExistsBetweenActors' | 'findOverlappingOpportunities' | 'getAcceptedOpportunitiesBetweenActors' | 'acceptSiblingOpportunities' | 'isIndexOwner' | 'isNetworkMember' | 'getUser' | 'getIndex' | 'getNetworkMemberships' | 'getProfile' | 'getActiveIntents' | 'upsertContactMembership'>;
|
|
1451
1451
|
/**
|
|
1452
1452
|
* Database interface narrowed for Intent Graph operations.
|
|
1453
1453
|
* Provides state population (getActiveIntents), action execution (create/update/archive),
|
|
@@ -1455,29 +1455,29 @@ export type OpportunityControllerDatabase = Pick<Database, 'getOpportunity' | 'g
|
|
|
1455
1455
|
*
|
|
1456
1456
|
* Access layer: UserDatabase (mutations on own intents) + SystemDatabase (index-scoped reads)
|
|
1457
1457
|
*/
|
|
1458
|
-
export type IntentGraphDatabase = Pick<Database, 'getActiveIntents' | 'getIntentsInIndexForMember' | 'createIntent' | 'updateIntent' | 'archiveIntent' | '
|
|
1458
|
+
export type IntentGraphDatabase = Pick<Database, 'getActiveIntents' | 'getIntentsInIndexForMember' | 'createIntent' | 'updateIntent' | 'archiveIntent' | 'isNetworkMember' | 'getIndexIntentsForMember' | 'getUser' | 'getProfile' | 'getPersonalIndexesForContact' | 'assignIntentToNetwork'>;
|
|
1459
1459
|
/**
|
|
1460
1460
|
* Database interface narrowed for Index Graph CRUD operations.
|
|
1461
1461
|
* Handles create, read, update, delete of indexes (communities).
|
|
1462
1462
|
*
|
|
1463
1463
|
* Access layer: UserDatabase (CRUD on own indexes and memberships)
|
|
1464
1464
|
*/
|
|
1465
|
-
export type
|
|
1465
|
+
export type NetworkGraphDatabase = Pick<Database, 'getNetworkMemberships' | 'getOwnedIndexes' | 'getPublicIndexesNotJoined' | 'isIndexOwner' | 'isNetworkMember' | 'getIndex' | 'createNetwork' | 'addMemberToIndex' | 'updateIndexSettings' | 'softDeleteIndex' | 'getIndexMemberCount'>;
|
|
1466
1466
|
/**
|
|
1467
1467
|
* Database interface narrowed for Intent Index Graph operations.
|
|
1468
1468
|
* Provides intent/index context and assignment for intent–index evaluation.
|
|
1469
|
-
* (Migrated from the old
|
|
1469
|
+
* (Migrated from the old NetworkGraphDatabase.)
|
|
1470
1470
|
*
|
|
1471
1471
|
* Access layer: UserDatabase (own intent assignment) + SystemDatabase (index context)
|
|
1472
1472
|
*/
|
|
1473
|
-
export type
|
|
1473
|
+
export type IntentNetworkGraphDatabase = Pick<Database, 'getIntentForIndexing' | 'getIndexMemberContext' | 'isIntentAssignedToIndex' | 'assignIntentToNetwork' | 'unassignIntentFromIndex' | 'getIntent' | 'isNetworkMember' | 'isIndexOwner' | 'getIndexIdsForIntent' | 'getIndexIntentsForMember' | 'getIntentsInIndexForMember'>;
|
|
1474
1474
|
/**
|
|
1475
1475
|
* Database interface narrowed for Index Membership Graph operations.
|
|
1476
1476
|
* Handles CRUD for index memberships (add, list, remove members).
|
|
1477
1477
|
*
|
|
1478
1478
|
* Access layer: SystemDatabase (cross-user membership operations)
|
|
1479
1479
|
*/
|
|
1480
|
-
export type
|
|
1480
|
+
export type NetworkMembershipGraphDatabase = Pick<Database, 'isNetworkMember' | 'isIndexOwner' | 'getIndexWithPermissions' | 'addMemberToIndex' | 'removeMemberFromIndex' | 'getIndexMembersForMember'>;
|
|
1481
1481
|
/**
|
|
1482
1482
|
* Database interface narrowed for HyDE Graph operations.
|
|
1483
1483
|
* Provides HyDE document CRUD and intent lookup for refresh.
|