@100xprompt/chitta 0.1.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/LICENSE +21 -0
- package/README.md +203 -0
- package/assets/rules/claude-md.md +9 -0
- package/assets/skill/SKILL.md +47 -0
- package/package.json +48 -0
- package/src/README.md +124 -0
- package/src/arango-client.ts +67 -0
- package/src/arango-graph-provider.ts +364 -0
- package/src/bin.ts +27 -0
- package/src/config-env.ts +53 -0
- package/src/embedded/authorizer.ts +89 -0
- package/src/embedded/cli.ts +86 -0
- package/src/embedded/code-extractor.ts +9 -0
- package/src/embedded/demo.ts +36 -0
- package/src/embedded/extract.ts +12 -0
- package/src/embedded/extractors/code.ts +308 -0
- package/src/embedded/extractors/deterministic.ts +63 -0
- package/src/embedded/extractors/llm.ts +151 -0
- package/src/embedded/extractors/text-hygiene.ts +54 -0
- package/src/embedded/extractors/types.ts +34 -0
- package/src/embedded/graph/acl-paths.ts +96 -0
- package/src/embedded/graph/adjacency.ts +61 -0
- package/src/embedded/graph/centrality.ts +23 -0
- package/src/embedded/graph/communities.ts +46 -0
- package/src/embedded/graph/cypher.ts +17 -0
- package/src/embedded/graph/impact.ts +24 -0
- package/src/embedded/graph/knowledge-graph.ts +108 -0
- package/src/embedded/graph/pagerank.ts +57 -0
- package/src/embedded/graph/sql-access.ts +13 -0
- package/src/embedded/graph/traversal.ts +73 -0
- package/src/embedded/graph/types.ts +35 -0
- package/src/embedded/graph-query.ts +126 -0
- package/src/embedded/index.ts +171 -0
- package/src/embedded/ingest.ts +262 -0
- package/src/embedded/kgqa/answer-paths.ts +197 -0
- package/src/embedded/kgqa/entity-link.ts +13 -0
- package/src/embedded/kgqa/intent.ts +14 -0
- package/src/embedded/kgqa/predicates.ts +9 -0
- package/src/embedded/kgqa/preference.ts +20 -0
- package/src/embedded/kgqa/select.ts +99 -0
- package/src/embedded/kgqa/text.ts +16 -0
- package/src/embedded/kgqa/types.ts +6 -0
- package/src/embedded/kgqa-service.ts +122 -0
- package/src/embedded/llm-extractor.ts +10 -0
- package/src/embedded/local-embeddings.ts +36 -0
- package/src/embedded/personal.ts +100 -0
- package/src/embedded/reranker.ts +62 -0
- package/src/embedded/retrieval/decay-stage.ts +59 -0
- package/src/embedded/retrieval/diversity.ts +37 -0
- package/src/embedded/retrieval/fuse.ts +52 -0
- package/src/embedded/retrieval/graph-stage.ts +45 -0
- package/src/embedded/retrieval/hybrid-retriever.ts +80 -0
- package/src/embedded/retrieval/keyword-stage.ts +27 -0
- package/src/embedded/retrieval/passage.ts +44 -0
- package/src/embedded/retrieval/rerank-stage.ts +31 -0
- package/src/embedded/retrieval/trace.ts +31 -0
- package/src/embedded/retrieval/vector-stage.ts +15 -0
- package/src/embedded/sqlite-graph-provider.ts +119 -0
- package/src/embedded/sqlite-store.ts +95 -0
- package/src/embedded/sqlite-vec-service.ts +122 -0
- package/src/embedded/store/chunks.ts +61 -0
- package/src/embedded/store/fts.ts +50 -0
- package/src/embedded/store/nodes-edges.ts +112 -0
- package/src/embedded/store/salience.ts +37 -0
- package/src/embedded/store/schema.ts +109 -0
- package/src/embedded/transformers-embeddings.ts +100 -0
- package/src/embeddings.ts +51 -0
- package/src/eval/goldset.ts +46 -0
- package/src/eval/harness.ts +65 -0
- package/src/eval/metrics.ts +38 -0
- package/src/http/server.ts +93 -0
- package/src/index.ts +44 -0
- package/src/install/index.ts +139 -0
- package/src/install/platforms.ts +126 -0
- package/src/install/skill.ts +46 -0
- package/src/install/writers.ts +82 -0
- package/src/mcp/backend.ts +129 -0
- package/src/mcp/server.ts +83 -0
- package/src/mcp/tools/context-about.ts +69 -0
- package/src/mcp/tools/context-graph.ts +23 -0
- package/src/mcp/tools/context-ingest.ts +88 -0
- package/src/mcp/tools/context-rebuild.ts +22 -0
- package/src/mcp/tools/context-relate.ts +88 -0
- package/src/mcp/tools/get-context.ts +52 -0
- package/src/mcp/tools/index.ts +40 -0
- package/src/mcp/tools/types.ts +33 -0
- package/src/permission.ts +72 -0
- package/src/provider.ts +65 -0
- package/src/qdrant-vector.ts +76 -0
- package/src/retrieval.ts +218 -0
- package/src/service.ts +40 -0
- package/src/types.ts +91 -0
package/src/service.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// Wires config → fetch-based adapters → the native ACL/retrieval moat. This is
|
|
2
|
+
// the only place that knows about concrete backends; everything above depends on
|
|
3
|
+
// the interfaces in provider.ts. No Python, no SDKs - direct HTTP to Arango/Qdrant
|
|
4
|
+
// and the embedding server.
|
|
5
|
+
|
|
6
|
+
import { ArangoHttpClient, type ArangoConfig } from "./arango-client"
|
|
7
|
+
import { QdrantVectorService, type QdrantConfig } from "./qdrant-vector"
|
|
8
|
+
import { HttpEmbeddingProvider, type EmbeddingConfig } from "./embeddings"
|
|
9
|
+
import { ArangoGraphProvider } from "./arango-graph-provider"
|
|
10
|
+
import { RetrievalService } from "./retrieval"
|
|
11
|
+
|
|
12
|
+
export interface ContextConfig {
|
|
13
|
+
arango: ArangoConfig
|
|
14
|
+
qdrant: QdrantConfig
|
|
15
|
+
embeddings: EmbeddingConfig
|
|
16
|
+
collectionName: string
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface ContextLog {
|
|
20
|
+
info: (m: string) => void
|
|
21
|
+
debug: (m: string) => void
|
|
22
|
+
error: (m: string, ...a: unknown[]) => void
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/** Build a fully-wired retrieval service from config. */
|
|
26
|
+
export function buildContextService(cfg: ContextConfig, log?: ContextLog) {
|
|
27
|
+
const graph = new ArangoGraphProvider(new ArangoHttpClient(cfg.arango), log)
|
|
28
|
+
const vector = new QdrantVectorService(cfg.qdrant)
|
|
29
|
+
const embeddings = new HttpEmbeddingProvider(cfg.embeddings)
|
|
30
|
+
const retrieval = new RetrievalService({
|
|
31
|
+
graph,
|
|
32
|
+
vector,
|
|
33
|
+
embeddings,
|
|
34
|
+
collectionName: cfg.collectionName,
|
|
35
|
+
log,
|
|
36
|
+
})
|
|
37
|
+
return { graph, vector, embeddings, retrieval }
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export type ContextService = ReturnType<typeof buildContextService>
|
package/src/types.ts
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
// Shared types for the context-retrieval layer. Ported from the data shapes used
|
|
2
|
+
// across PipesHub's Query service (`retrieval_service.py`) and Arango provider.
|
|
3
|
+
|
|
4
|
+
/** virtualRecordId -> recordId. Each virtual id maps to the ONE record the user
|
|
5
|
+
* is actually permitted to see (the cross-connector leak guard lives here). */
|
|
6
|
+
export type AccessibleMap = Record<string, string>
|
|
7
|
+
|
|
8
|
+
/** Optional retrieval filters. `kb`/`apps` scope the corpus; the rest are
|
|
9
|
+
* metadata facets resolved against graph edges. */
|
|
10
|
+
export interface RetrievalFilters {
|
|
11
|
+
kb?: string[]
|
|
12
|
+
apps?: string[]
|
|
13
|
+
departments?: string[]
|
|
14
|
+
categories?: string[]
|
|
15
|
+
subcategories1?: string[]
|
|
16
|
+
subcategories2?: string[]
|
|
17
|
+
subcategories3?: string[]
|
|
18
|
+
languages?: string[]
|
|
19
|
+
topics?: string[]
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/** Metadata filters = everything except kb/apps. */
|
|
23
|
+
export type MetadataFilters = Omit<RetrievalFilters, "kb" | "apps">
|
|
24
|
+
|
|
25
|
+
export interface RecordDoc {
|
|
26
|
+
_key: string
|
|
27
|
+
virtualRecordId?: string
|
|
28
|
+
origin?: string
|
|
29
|
+
connectorName?: string
|
|
30
|
+
connectorId?: string
|
|
31
|
+
kbId?: string
|
|
32
|
+
webUrl?: string
|
|
33
|
+
recordName?: string
|
|
34
|
+
recordType?: string
|
|
35
|
+
mimeType?: string
|
|
36
|
+
previewRenderable?: boolean
|
|
37
|
+
hideWeburl?: boolean
|
|
38
|
+
[k: string]: unknown
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export interface UserDoc {
|
|
42
|
+
_key?: string
|
|
43
|
+
id?: string
|
|
44
|
+
userId?: string
|
|
45
|
+
email?: string
|
|
46
|
+
[k: string]: unknown
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export interface SearchResultMeta {
|
|
50
|
+
virtualRecordId?: string
|
|
51
|
+
recordId?: string
|
|
52
|
+
orgId?: string
|
|
53
|
+
origin?: string
|
|
54
|
+
connector?: string | null
|
|
55
|
+
connectorId?: string | null
|
|
56
|
+
kbId?: string | null
|
|
57
|
+
webUrl?: string
|
|
58
|
+
recordName?: string
|
|
59
|
+
mimeType?: string
|
|
60
|
+
extension?: string
|
|
61
|
+
point_id?: string | number
|
|
62
|
+
[k: string]: unknown
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export interface SearchResult {
|
|
66
|
+
score: number
|
|
67
|
+
citationType: string
|
|
68
|
+
metadata: SearchResultMeta
|
|
69
|
+
content: string
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export enum RetrievalStatus {
|
|
73
|
+
SUCCESS = "SUCCESS",
|
|
74
|
+
ERROR = "ERROR",
|
|
75
|
+
EMPTY_RESPONSE = "EMPTY_RESPONSE",
|
|
76
|
+
ACCESSIBLE_RECORDS_NOT_FOUND = "ACCESSIBLE_RECORDS_NOT_FOUND",
|
|
77
|
+
VECTOR_DB_EMPTY = "VECTOR_DB_EMPTY",
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export interface RetrievalResponse {
|
|
81
|
+
searchResults: SearchResult[]
|
|
82
|
+
records: RecordDoc[]
|
|
83
|
+
status: RetrievalStatus
|
|
84
|
+
statusCode: number
|
|
85
|
+
message: string
|
|
86
|
+
appliedFilters?: { kb: string[]; kb_count: number }
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export const ACCESSIBLE_RECORDS_NOT_FOUND_MESSAGE =
|
|
90
|
+
"No documents are available for you to search yet. Upload files in Collections " +
|
|
91
|
+
"and/or connect a data source under Connectors so content can be indexed."
|