@trustgraph/react-state 1.5.3 → 1.5.4

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.
@@ -2,5 +2,6 @@ export interface Message {
2
2
  role: string;
3
3
  text: string;
4
4
  type?: "normal" | "thinking" | "observation" | "answer";
5
+ explainSessionId?: string;
5
6
  }
6
7
  //# sourceMappingURL=message.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/model/message.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,aAAa,GAAG,QAAQ,CAAC;CACzD"}
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/model/message.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,aAAa,GAAG,QAAQ,CAAC;IACxD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B"}
@@ -21,6 +21,7 @@ export interface Settings {
21
21
  flowBlueprintEditor: boolean;
22
22
  structuredQuery: boolean;
23
23
  llmModels: boolean;
24
+ explainability: boolean;
24
25
  };
25
26
  }
26
27
  export declare const DEFAULT_SETTINGS: Settings;
@@ -1 +1 @@
1
- {"version":3,"file":"settings-types.d.ts","sourceRoot":"","sources":["../../src/model/settings-types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,eAAe,EAAE;QACf,cAAc,EAAE,OAAO,CAAC;QACxB,WAAW,EAAE,OAAO,CAAC;QACrB,UAAU,EAAE,OAAO,CAAC;QACpB,QAAQ,EAAE,OAAO,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,cAAc,EAAE,OAAO,CAAC;QACxB,mBAAmB,EAAE,OAAO,CAAC;QAC7B,eAAe,EAAE,OAAO,CAAC;QACzB,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;CACH;AAED,eAAO,MAAM,gBAAgB,EAAE,QAwB9B,CAAC;AAEF,eAAO,MAAM,oBAAoB,wBAAwB,CAAC"}
1
+ {"version":3,"file":"settings-types.d.ts","sourceRoot":"","sources":["../../src/model/settings-types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,eAAe,EAAE;QACf,cAAc,EAAE,OAAO,CAAC;QACxB,WAAW,EAAE,OAAO,CAAC;QACrB,UAAU,EAAE,OAAO,CAAC;QACpB,QAAQ,EAAE,OAAO,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,cAAc,EAAE,OAAO,CAAC;QACxB,mBAAmB,EAAE,OAAO,CAAC;QAC7B,eAAe,EAAE,OAAO,CAAC;QACzB,SAAS,EAAE,OAAO,CAAC;QACnB,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;CACH;AAED,eAAO,MAAM,gBAAgB,EAAE,QAyB9B,CAAC;AAEF,eAAO,MAAM,oBAAoB,wBAAwB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat-session.d.ts","sourceRoot":"","sources":["../../src/state/chat-session.ts"],"names":[],"mappings":"AAcA;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,WAAU;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO;;eAuOpB,MAAM;;;;CAoDhD,CAAC;AAGF,eAAO,MAAM,OAAO,cA9RqB;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE;;eAuOf,MAAM;;;;CAuDZ,CAAC"}
1
+ {"version":3,"file":"chat-session.d.ts","sourceRoot":"","sources":["../../src/state/chat-session.ts"],"names":[],"mappings":"AAiBA;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,WAAU;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO;;eAwRpB,MAAM;;;;CAoDhD,CAAC;AAGF,eAAO,MAAM,OAAO,cA/UqB;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE;;eAwRf,MAAM;;;;CAuDZ,CAAC"}
@@ -5,8 +5,8 @@ export interface ConversationState {
5
5
  input: string;
6
6
  chatMode: ChatMode;
7
7
  setMessages: (v: Message[]) => void;
8
- addMessage: (role: string, text: string, type?: "normal" | "thinking" | "observation" | "answer") => void;
9
- updateLastMessage: (text: string) => void;
8
+ addMessage: (role: string, text: string, type?: "normal" | "thinking" | "observation" | "answer", explainSessionId?: string) => void;
9
+ updateLastMessage: (text: string, explainSessionId?: string) => void;
10
10
  setInput: (v: string) => void;
11
11
  setChatMode: (mode: ChatMode) => void;
12
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/state/conversation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,OAAO,GAAG,WAAW,CAAC;AAE3D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IAEnB,WAAW,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACpC,UAAU,EAAE,CACV,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,aAAa,GAAG,QAAQ,KACpD,IAAI,CAAC;IACV,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,WAAW,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;CACvC;AAED,eAAO,MAAM,eAAe,gFAgDzB,CAAC"}
1
+ {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/state/conversation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,OAAO,GAAG,WAAW,CAAC;AAE3D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IAEnB,WAAW,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACpC,UAAU,EAAE,CACV,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,aAAa,GAAG,QAAQ,EACvD,gBAAgB,CAAC,EAAE,MAAM,KACtB,IAAI,CAAC;IACV,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACrE,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,WAAW,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;CACvC;AAED,eAAO,MAAM,eAAe,gFAmDzB,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Hook for fetching document metadata from the librarian service
3
+ */
4
+ import type { DocumentMetadata } from "@trustgraph/client";
5
+ export interface UseDocumentMetadataOptions {
6
+ /** Document ID to fetch */
7
+ documentId?: string;
8
+ /** Whether to enable the query (default: true if documentId is provided) */
9
+ enabled?: boolean;
10
+ }
11
+ export interface UseDocumentMetadataResult {
12
+ /** Document metadata if loaded */
13
+ metadata: DocumentMetadata | null;
14
+ /** Whether the query is loading */
15
+ isLoading: boolean;
16
+ /** Whether there was an error */
17
+ isError: boolean;
18
+ /** Error object if any */
19
+ error: Error | null;
20
+ /** Refetch the metadata */
21
+ refetch: () => void;
22
+ }
23
+ /**
24
+ * Hook for fetching a single document's metadata
25
+ */
26
+ export declare const useDocumentMetadata: (options?: UseDocumentMetadataOptions) => UseDocumentMetadataResult;
27
+ /**
28
+ * Hook for fetching multiple documents' metadata
29
+ */
30
+ export declare const useDocumentsMetadata: (documentIds?: string[]) => {
31
+ metadataMap: Record<string, DocumentMetadata>;
32
+ isLoading: boolean;
33
+ isError: boolean;
34
+ error: Error;
35
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<Record<string, DocumentMetadata>, Error>>;
36
+ };
37
+ //# sourceMappingURL=document-metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-metadata.d.ts","sourceRoot":"","sources":["../../src/state/document-metadata.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,MAAM,WAAW,0BAA0B;IACzC,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,kCAAkC;IAClC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAClC,mCAAmC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,iCAAiC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,0BAA0B;IAC1B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,2BAA2B;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAS,0BAA+B,KACvC,yBA0BF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,cAAa,MAAM,EAAO;;;;;;CAgD9D,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Zustand store for managing explainability sessions
3
+ * Sessions are keyed by ID and linked to messages via explainSessionId
4
+ */
5
+ import type { ExplainabilitySession } from "../utils/explainability";
6
+ export interface ExplainabilityStoreState {
7
+ /** Map of session ID to session data */
8
+ sessions: Record<string, ExplainabilitySession>;
9
+ /** Add or update a session */
10
+ addSession: (id: string, session: ExplainabilitySession) => void;
11
+ /** Update an existing session (merges with existing data) */
12
+ updateSession: (id: string, partial: Partial<ExplainabilitySession>) => void;
13
+ /** Get a session by ID */
14
+ getSession: (id: string) => ExplainabilitySession | undefined;
15
+ /** Remove a session */
16
+ removeSession: (id: string) => void;
17
+ /** Clear all sessions */
18
+ clearSessions: () => void;
19
+ }
20
+ export declare const useExplainabilityStore: import("zustand").UseBoundStore<import("zustand").StoreApi<ExplainabilityStoreState>>;
21
+ //# sourceMappingURL=explainability-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explainability-store.d.ts","sourceRoot":"","sources":["../../src/state/explainability-store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE,MAAM,WAAW,wBAAwB;IACvC,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAEhD,8BAA8B;IAC9B,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAEjE,6DAA6D;IAC7D,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,KAAK,IAAI,CAAC;IAE7E,0BAA0B;IAC1B,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,qBAAqB,GAAG,SAAS,CAAC;IAE9D,uBAAuB;IACvB,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAEpC,yBAAyB;IACzB,aAAa,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED,eAAO,MAAM,sBAAsB,uFAiClC,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Hook for managing explainability state during GraphRAG queries
3
+ * Unpacks explain events into structured data with provenance chains
4
+ *
5
+ * Processing strategy:
6
+ * - Events are processed immediately as they arrive
7
+ * - Main event nodes (question, exploration, focus, synthesis) use
8
+ * stability-based retry: fetch until count > 0 AND stable
9
+ * - Edge sub-objects use simple retry-until-non-empty (fast)
10
+ * - All edge fetching + label resolution + provenance runs in parallel
11
+ */
12
+ import type { ExplainEvent } from "@trustgraph/client";
13
+ import { type ExplainabilitySession } from "../utils/explainability";
14
+ export interface UseExplainabilityOptions {
15
+ flow?: string;
16
+ collection?: string;
17
+ /** Trace provenance for selected edges (default: true) */
18
+ traceProvenance?: boolean;
19
+ }
20
+ export interface UseExplainabilityResult {
21
+ /** Add an explain event (wire this to graphRag callbacks.onExplain) */
22
+ addEvent: (event: ExplainEvent) => void;
23
+ /** Current session data (React state - may lag behind ref) */
24
+ session: ExplainabilitySession;
25
+ /** Ref-backed session that's always immediately up-to-date (no render delay) */
26
+ sessionRef: React.RefObject<ExplainabilitySession>;
27
+ /** Raw events received */
28
+ events: ExplainEvent[];
29
+ /** Whether unpacking is in progress (React state) */
30
+ isUnpacking: boolean;
31
+ /** Ref-backed processing flag - always immediately up-to-date */
32
+ isProcessingRef: React.RefObject<boolean>;
33
+ /** Any error during unpacking */
34
+ error: string | null;
35
+ /** Reset the session */
36
+ reset: () => void;
37
+ }
38
+ /**
39
+ * Hook for managing explainability during inference
40
+ */
41
+ export declare const useExplainability: (options?: UseExplainabilityOptions) => UseExplainabilityResult;
42
+ export type { ExplainabilitySession, QuestionEvent, ExplorationEvent, FocusEvent, SynthesisEvent, SelectedEdge, ProvenanceChain, ProvenanceChainItem, } from "../utils/explainability";
43
+ //# sourceMappingURL=explainability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explainability.d.ts","sourceRoot":"","sources":["../../src/state/explainability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAU,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAKL,KAAK,qBAAqB,EAM3B,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAuB;IACtC,uEAAuE;IACvE,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACxC,8DAA8D;IAC9D,OAAO,EAAE,qBAAqB,CAAC;IAC/B,gFAAgF;IAChF,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACnD,0BAA0B;IAC1B,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,qDAAqD;IACrD,WAAW,EAAE,OAAO,CAAC;IACrB,iEAAiE;IACjE,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC1C,iCAAiC;IACjC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,wBAAwB;IACxB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,UAAS,wBAA6B,KACrC,uBA2TF,CAAC;AAGF,YAAY,EACV,qBAAqB,EACrB,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,YAAY,EACZ,eAAe,EACf,mBAAmB,GACpB,MAAM,yBAAyB,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { EntityMatch } from "@trustgraph/client";
1
+ import type { EntityMatch, ExplainEvent } from "@trustgraph/client";
2
2
  export interface GraphRagOptions {
3
3
  entityLimit?: number;
4
4
  tripleLimit?: number;
@@ -8,9 +8,11 @@ export interface GraphRagOptions {
8
8
  export interface GraphRagResult {
9
9
  response: string;
10
10
  entities: EntityMatch[];
11
+ explainEvents?: ExplainEvent[];
11
12
  }
12
13
  export interface GraphRagCallbacks {
13
14
  onChunk?: (chunk: string, complete: boolean) => void;
15
+ onExplain?: (event: ExplainEvent) => void;
14
16
  onError?: (error: string) => void;
15
17
  }
16
18
  export interface TextCompletionCallbacks {
@@ -1 +1 @@
1
- {"version":3,"file":"inference.d.ts","sourceRoot":"","sources":["../../src/state/inference.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACrD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACrD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACxD,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9D,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACxD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,WAAU;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO;;eAiBhD,MAAM;kBACH,eAAe;oBACb,MAAM;oBACN,iBAAiB;;;sBAoDf,MAAM;eACb,MAAM;oBACD,uBAAuB;;;eAoC5B,MAAM;oBACD,cAAc;;;CA0C/B,CAAC"}
1
+ {"version":3,"file":"inference.d.ts","sourceRoot":"","sources":["../../src/state/inference.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACrD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACrD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACxD,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9D,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACxD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,WAAU;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO;;eAkBhD,MAAM;kBACH,eAAe;oBACb,MAAM;oBACN,iBAAiB;;;sBAgEf,MAAM;eACb,MAAM;oBACD,uBAAuB;;;eAoC5B,MAAM;oBACD,cAAc;;;CA0C/B,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Hook for tracing provenance chains in the knowledge graph
3
+ * Follows prov:wasDerivedFrom relationships from any entity to its source documents
4
+ */
5
+ import type { ProvenanceChain } from "../utils/explainability";
6
+ export interface UseProvenanceOptions {
7
+ flow?: string;
8
+ collection?: string;
9
+ /** Maximum depth to trace (default: 10) */
10
+ maxDepth?: number;
11
+ }
12
+ export interface UseProvenanceResult {
13
+ /** Trace provenance chain from a URI to root */
14
+ traceChain: (uri: string) => Promise<ProvenanceChain>;
15
+ /** Trace provenance for an edge (s, p, o) - finds reifying statements first */
16
+ traceEdgeProvenance: (s: string, p: string, o: string) => Promise<ProvenanceChain[]>;
17
+ /** Resolve label for a URI (uses cache) */
18
+ resolveLabel: (uri: string) => Promise<string>;
19
+ /** Clear the label cache */
20
+ clearCache: () => void;
21
+ /** Whether any trace operation is in progress */
22
+ isTracing: boolean;
23
+ }
24
+ /**
25
+ * Hook for tracing provenance chains
26
+ */
27
+ export declare const useProvenance: (options?: UseProvenanceOptions) => UseProvenanceResult;
28
+ //# sourceMappingURL=provenance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../../src/state/provenance.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,OAAO,KAAK,EAAE,eAAe,EAAuB,MAAM,yBAAyB,CAAC;AAGpF,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,gDAAgD;IAChD,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IACtD,+EAA+E;IAC/E,mBAAmB,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IACrF,2CAA2C;IAC3C,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,4BAA4B;IAC5B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,iDAAiD;IACjD,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,UAAS,oBAAyB,KAAG,mBAuNlE,CAAC"}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Explainability utilities for parsing and structuring explain events
3
+ */
4
+ import type { Triple, Term } from "@trustgraph/client";
5
+ export type ExplainEventType = "question" | "exploration" | "focus" | "synthesis" | "unknown";
6
+ export interface QuestionEvent {
7
+ type: "question";
8
+ explainId: string;
9
+ explainGraph: string;
10
+ query?: string;
11
+ timestamp?: string;
12
+ }
13
+ export interface ExplorationEvent {
14
+ type: "exploration";
15
+ explainId: string;
16
+ explainGraph: string;
17
+ edgeCount?: number;
18
+ }
19
+ export interface SelectedEdge {
20
+ /** The actual edge as (s, p, o) URIs */
21
+ edge: {
22
+ s: string;
23
+ p: string;
24
+ o: string;
25
+ };
26
+ /** Human-readable labels for the edge */
27
+ labels?: {
28
+ s: string;
29
+ p: string;
30
+ o: string;
31
+ };
32
+ /** LLM's reasoning for selecting this edge */
33
+ reasoning?: string;
34
+ /** Provenance chain to source documents */
35
+ sources?: ProvenanceChainItem[];
36
+ }
37
+ export interface FocusEvent {
38
+ type: "focus";
39
+ explainId: string;
40
+ explainGraph: string;
41
+ /** URIs of edge selection entities */
42
+ edgeSelectionUris: string[];
43
+ /** Fully resolved selected edges (populated after unpacking) */
44
+ selectedEdges?: SelectedEdge[];
45
+ }
46
+ export interface SynthesisEvent {
47
+ type: "synthesis";
48
+ explainId: string;
49
+ explainGraph: string;
50
+ /** Content length (full content is streamed separately) */
51
+ contentLength?: number;
52
+ }
53
+ export type StructuredExplainEvent = QuestionEvent | ExplorationEvent | FocusEvent | SynthesisEvent;
54
+ export interface ProvenanceChainItem {
55
+ uri: string;
56
+ label: string;
57
+ }
58
+ export interface ProvenanceChain {
59
+ /** The chain from leaf to root (e.g., chunk → page → document) */
60
+ chain: ProvenanceChainItem[];
61
+ /** The root document URI */
62
+ documentUri?: string;
63
+ /** The root document label/title */
64
+ documentLabel?: string;
65
+ }
66
+ export interface ExplainabilitySession {
67
+ question?: QuestionEvent;
68
+ exploration?: ExplorationEvent;
69
+ focus?: FocusEvent;
70
+ synthesis?: SynthesisEvent;
71
+ }
72
+ /**
73
+ * Extract event type from explainId URI
74
+ * e.g., "urn:trustgraph:question:abc123" → "question"
75
+ */
76
+ export declare function getEventType(explainId: string): ExplainEventType;
77
+ /**
78
+ * Get term value from a Term object
79
+ */
80
+ export declare function getTermValue(term: Term): string;
81
+ /**
82
+ * Extract quoted triple from a Term
83
+ */
84
+ export declare function extractQuotedTriple(term: Term): {
85
+ s: string;
86
+ p: string;
87
+ o: string;
88
+ } | null;
89
+ /**
90
+ * Parse triples for a question event
91
+ */
92
+ export declare function parseQuestionTriples(explainId: string, explainGraph: string, triples: Triple[]): QuestionEvent;
93
+ /**
94
+ * Parse triples for an exploration event
95
+ */
96
+ export declare function parseExplorationTriples(explainId: string, explainGraph: string, triples: Triple[]): ExplorationEvent;
97
+ /**
98
+ * Parse triples for a focus event
99
+ */
100
+ export declare function parseFocusTriples(explainId: string, explainGraph: string, triples: Triple[]): FocusEvent;
101
+ /**
102
+ * Parse triples for a synthesis event
103
+ */
104
+ export declare function parseSynthesisTriples(explainId: string, explainGraph: string, triples: Triple[]): SynthesisEvent;
105
+ /**
106
+ * Parse triples for an edge selection entity
107
+ */
108
+ export declare function parseEdgeSelectionTriples(triples: Triple[]): {
109
+ edge: {
110
+ s: string;
111
+ p: string;
112
+ o: string;
113
+ } | null;
114
+ reasoning: string | null;
115
+ };
116
+ /**
117
+ * Parse triples based on event type
118
+ */
119
+ export declare function parseExplainTriples(explainId: string, explainGraph: string, triples: Triple[]): StructuredExplainEvent | null;
120
+ //# sourceMappingURL=explainability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explainability.d.ts","sourceRoot":"","sources":["../../src/utils/explainability.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAavD,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,aAAa,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC;AAI9F,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,wCAAwC;IACxC,IAAI,EAAE;QACJ,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;IACF,yCAAyC;IACzC,MAAM,CAAC,EAAE;QACP,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;IACF,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,gEAAgE;IAChE,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,sBAAsB,GAC9B,aAAa,GACb,gBAAgB,GAChB,UAAU,GACV,cAAc,CAAC;AAInB,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,kEAAkE;IAClE,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,4BAA4B;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAID,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAMhE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAY/C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAS1F;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EAAE,GAChB,aAAa,CAmBf;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EAAE,GAChB,gBAAgB,CAiBlB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EAAE,GAChB,UAAU,CAkBZ;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EAAE,GAChB,cAAc,CAiBhB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG;IAC5D,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACjD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAeA;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EAAE,GAChB,sBAAsB,GAAG,IAAI,CAe/B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trustgraph/react-state",
3
- "version": "1.5.3",
3
+ "version": "1.5.4",
4
4
  "description": "React state management hooks for TrustGraph applications",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",