@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.
- package/dist/index.cjs +877 -20
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +12 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +765 -21
- package/dist/index.esm.js.map +1 -1
- package/dist/model/message.d.ts +1 -0
- package/dist/model/message.d.ts.map +1 -1
- package/dist/model/settings-types.d.ts +1 -0
- package/dist/model/settings-types.d.ts.map +1 -1
- package/dist/state/chat-session.d.ts.map +1 -1
- package/dist/state/conversation.d.ts +2 -2
- package/dist/state/conversation.d.ts.map +1 -1
- package/dist/state/document-metadata.d.ts +37 -0
- package/dist/state/document-metadata.d.ts.map +1 -0
- package/dist/state/explainability-store.d.ts +21 -0
- package/dist/state/explainability-store.d.ts.map +1 -0
- package/dist/state/explainability.d.ts +43 -0
- package/dist/state/explainability.d.ts.map +1 -0
- package/dist/state/inference.d.ts +3 -1
- package/dist/state/inference.d.ts.map +1 -1
- package/dist/state/provenance.d.ts +28 -0
- package/dist/state/provenance.d.ts.map +1 -0
- package/dist/utils/explainability.d.ts +120 -0
- package/dist/utils/explainability.d.ts.map +1 -0
- package/package.json +1 -1
package/dist/model/message.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
|
@@ -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;
|
|
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":"
|
|
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,
|
|
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;
|
|
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":"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"}
|