@clawdactual/chitin 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 +318 -0
- package/dist/carapace/client.d.ts +41 -0
- package/dist/carapace/client.d.ts.map +1 -0
- package/dist/carapace/client.js +62 -0
- package/dist/carapace/client.js.map +1 -0
- package/dist/carapace/config.d.ts +9 -0
- package/dist/carapace/config.d.ts.map +1 -0
- package/dist/carapace/config.js +24 -0
- package/dist/carapace/config.js.map +1 -0
- package/dist/carapace/index.d.ts +5 -0
- package/dist/carapace/index.d.ts.map +1 -0
- package/dist/carapace/index.js +3 -0
- package/dist/carapace/index.js.map +1 -0
- package/dist/carapace/mapper.d.ts +71 -0
- package/dist/carapace/mapper.d.ts.map +1 -0
- package/dist/carapace/mapper.js +83 -0
- package/dist/carapace/mapper.js.map +1 -0
- package/dist/db/embeddings.d.ts +12 -0
- package/dist/db/embeddings.d.ts.map +1 -0
- package/dist/db/embeddings.js +58 -0
- package/dist/db/embeddings.js.map +1 -0
- package/dist/db/history.d.ts +52 -0
- package/dist/db/history.d.ts.map +1 -0
- package/dist/db/history.js +99 -0
- package/dist/db/history.js.map +1 -0
- package/dist/db/repository.d.ts +64 -0
- package/dist/db/repository.d.ts.map +1 -0
- package/dist/db/repository.js +298 -0
- package/dist/db/repository.js.map +1 -0
- package/dist/db/schema.d.ts +5 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/db/schema.js +68 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/engine/conflicts.d.ts +52 -0
- package/dist/engine/conflicts.d.ts.map +1 -0
- package/dist/engine/conflicts.js +232 -0
- package/dist/engine/conflicts.js.map +1 -0
- package/dist/engine/context-detect.d.ts +17 -0
- package/dist/engine/context-detect.d.ts.map +1 -0
- package/dist/engine/context-detect.js +132 -0
- package/dist/engine/context-detect.js.map +1 -0
- package/dist/engine/marshal.d.ts +19 -0
- package/dist/engine/marshal.d.ts.map +1 -0
- package/dist/engine/marshal.js +74 -0
- package/dist/engine/marshal.js.map +1 -0
- package/dist/engine/retrieve.d.ts +36 -0
- package/dist/engine/retrieve.d.ts.map +1 -0
- package/dist/engine/retrieve.js +45 -0
- package/dist/engine/retrieve.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +769 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +60 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +58 -0
- package/seed.json +45 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { Insight, InsightType } from '../types.js';
|
|
2
|
+
import type { InsightRepository } from '../db/repository.js';
|
|
3
|
+
import type { EmbeddingStore } from '../db/embeddings.js';
|
|
4
|
+
export interface RetrieveOptions {
|
|
5
|
+
maxResults?: number;
|
|
6
|
+
minConfidence?: number;
|
|
7
|
+
types?: InsightType[];
|
|
8
|
+
typeBoosts?: Partial<Record<InsightType, number>>;
|
|
9
|
+
}
|
|
10
|
+
export interface ScoredInsight {
|
|
11
|
+
insight: Insight;
|
|
12
|
+
similarity: number;
|
|
13
|
+
score: number;
|
|
14
|
+
}
|
|
15
|
+
export interface SessionContext {
|
|
16
|
+
query: string;
|
|
17
|
+
channel?: string;
|
|
18
|
+
userId?: string;
|
|
19
|
+
sessionType?: 'direct' | 'group' | 'subagent';
|
|
20
|
+
}
|
|
21
|
+
export declare class RetrievalEngine {
|
|
22
|
+
private repo;
|
|
23
|
+
private embeddingStore;
|
|
24
|
+
constructor(repo: InsightRepository, embeddingStore: EmbeddingStore);
|
|
25
|
+
/**
|
|
26
|
+
* Retrieve relevant insights for a given query embedding.
|
|
27
|
+
*
|
|
28
|
+
* Scoring formula:
|
|
29
|
+
* score = cosineSimilarity × confidence × log2(reinforcementCount + 2) × typeBoost
|
|
30
|
+
*
|
|
31
|
+
* The +2 in the log avoids log(1)=0 for unreinforced insights while still
|
|
32
|
+
* giving a meaningful boost to frequently-confirmed insights.
|
|
33
|
+
*/
|
|
34
|
+
retrieve(queryEmbedding: Float32Array, options?: RetrieveOptions): ScoredInsight[];
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=retrieve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retrieve.d.ts","sourceRoot":"","sources":["../../src/engine/retrieve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;CAC/C;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,IAAI,CAAoB;IAChC,OAAO,CAAC,cAAc,CAAiB;gBAE3B,IAAI,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc;IAKnE;;;;;;;;OAQG;IACH,QAAQ,CAAC,cAAc,EAAE,YAAY,EAAE,OAAO,GAAE,eAAoB,GAAG,aAAa,EAAE;CAsCvF"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export class RetrievalEngine {
|
|
2
|
+
repo;
|
|
3
|
+
embeddingStore;
|
|
4
|
+
constructor(repo, embeddingStore) {
|
|
5
|
+
this.repo = repo;
|
|
6
|
+
this.embeddingStore = embeddingStore;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Retrieve relevant insights for a given query embedding.
|
|
10
|
+
*
|
|
11
|
+
* Scoring formula:
|
|
12
|
+
* score = cosineSimilarity × confidence × log2(reinforcementCount + 2) × typeBoost
|
|
13
|
+
*
|
|
14
|
+
* The +2 in the log avoids log(1)=0 for unreinforced insights while still
|
|
15
|
+
* giving a meaningful boost to frequently-confirmed insights.
|
|
16
|
+
*/
|
|
17
|
+
retrieve(queryEmbedding, options = {}) {
|
|
18
|
+
const { maxResults = 15, minConfidence, types, typeBoosts = {}, } = options;
|
|
19
|
+
// Get all embeddings and compute similarities
|
|
20
|
+
const nearest = this.embeddingStore.findNearest(queryEmbedding, 100);
|
|
21
|
+
if (nearest.length === 0)
|
|
22
|
+
return [];
|
|
23
|
+
// Fetch the actual insights and score them
|
|
24
|
+
const scored = [];
|
|
25
|
+
for (const { insightId, similarity } of nearest) {
|
|
26
|
+
const insight = this.repo.get(insightId);
|
|
27
|
+
if (!insight)
|
|
28
|
+
continue;
|
|
29
|
+
// Apply filters
|
|
30
|
+
if (minConfidence !== undefined && insight.confidence < minConfidence)
|
|
31
|
+
continue;
|
|
32
|
+
if (types && types.length > 0 && !types.includes(insight.type))
|
|
33
|
+
continue;
|
|
34
|
+
// Compute composite score
|
|
35
|
+
const reinforcementFactor = Math.log2(insight.reinforcementCount + 2);
|
|
36
|
+
const typeBoost = typeBoosts[insight.type] ?? 1.0;
|
|
37
|
+
const score = similarity * insight.confidence * reinforcementFactor * typeBoost;
|
|
38
|
+
scored.push({ insight, similarity, score });
|
|
39
|
+
}
|
|
40
|
+
// Sort by score descending
|
|
41
|
+
scored.sort((a, b) => b.score - a.score);
|
|
42
|
+
return scored.slice(0, maxResults);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=retrieve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retrieve.js","sourceRoot":"","sources":["../../src/engine/retrieve.ts"],"names":[],"mappings":"AAwBA,MAAM,OAAO,eAAe;IAClB,IAAI,CAAoB;IACxB,cAAc,CAAiB;IAEvC,YAAY,IAAuB,EAAE,cAA8B;QACjE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED;;;;;;;;OAQG;IACH,QAAQ,CAAC,cAA4B,EAAE,UAA2B,EAAE;QAClE,MAAM,EACJ,UAAU,GAAG,EAAE,EACf,aAAa,EACb,KAAK,EACL,UAAU,GAAG,EAAE,GAChB,GAAG,OAAO,CAAC;QAEZ,8CAA8C;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAErE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEpC,2CAA2C;QAC3C,MAAM,MAAM,GAAoB,EAAE,CAAC;QAEnC,KAAK,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,OAAO,EAAE,CAAC;YAChD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,CAAC,OAAO;gBAAE,SAAS;YAEvB,gBAAgB;YAChB,IAAI,aAAa,KAAK,SAAS,IAAI,OAAO,CAAC,UAAU,GAAG,aAAa;gBAAE,SAAS;YAChF,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;gBAAE,SAAS;YAEzE,0BAA0B;YAC1B,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC;YACtE,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;YAElD,MAAM,KAAK,GAAG,UAAU,GAAG,OAAO,CAAC,UAAU,GAAG,mBAAmB,GAAG,SAAS,CAAC;YAEhF,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9C,CAAC;QAED,2BAA2B;QAC3B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAEzC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACrC,CAAC;CACF"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|