@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.
Files changed (60) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +318 -0
  3. package/dist/carapace/client.d.ts +41 -0
  4. package/dist/carapace/client.d.ts.map +1 -0
  5. package/dist/carapace/client.js +62 -0
  6. package/dist/carapace/client.js.map +1 -0
  7. package/dist/carapace/config.d.ts +9 -0
  8. package/dist/carapace/config.d.ts.map +1 -0
  9. package/dist/carapace/config.js +24 -0
  10. package/dist/carapace/config.js.map +1 -0
  11. package/dist/carapace/index.d.ts +5 -0
  12. package/dist/carapace/index.d.ts.map +1 -0
  13. package/dist/carapace/index.js +3 -0
  14. package/dist/carapace/index.js.map +1 -0
  15. package/dist/carapace/mapper.d.ts +71 -0
  16. package/dist/carapace/mapper.d.ts.map +1 -0
  17. package/dist/carapace/mapper.js +83 -0
  18. package/dist/carapace/mapper.js.map +1 -0
  19. package/dist/db/embeddings.d.ts +12 -0
  20. package/dist/db/embeddings.d.ts.map +1 -0
  21. package/dist/db/embeddings.js +58 -0
  22. package/dist/db/embeddings.js.map +1 -0
  23. package/dist/db/history.d.ts +52 -0
  24. package/dist/db/history.d.ts.map +1 -0
  25. package/dist/db/history.js +99 -0
  26. package/dist/db/history.js.map +1 -0
  27. package/dist/db/repository.d.ts +64 -0
  28. package/dist/db/repository.d.ts.map +1 -0
  29. package/dist/db/repository.js +298 -0
  30. package/dist/db/repository.js.map +1 -0
  31. package/dist/db/schema.d.ts +5 -0
  32. package/dist/db/schema.d.ts.map +1 -0
  33. package/dist/db/schema.js +68 -0
  34. package/dist/db/schema.js.map +1 -0
  35. package/dist/engine/conflicts.d.ts +52 -0
  36. package/dist/engine/conflicts.d.ts.map +1 -0
  37. package/dist/engine/conflicts.js +232 -0
  38. package/dist/engine/conflicts.js.map +1 -0
  39. package/dist/engine/context-detect.d.ts +17 -0
  40. package/dist/engine/context-detect.d.ts.map +1 -0
  41. package/dist/engine/context-detect.js +132 -0
  42. package/dist/engine/context-detect.js.map +1 -0
  43. package/dist/engine/marshal.d.ts +19 -0
  44. package/dist/engine/marshal.d.ts.map +1 -0
  45. package/dist/engine/marshal.js +74 -0
  46. package/dist/engine/marshal.js.map +1 -0
  47. package/dist/engine/retrieve.d.ts +36 -0
  48. package/dist/engine/retrieve.d.ts.map +1 -0
  49. package/dist/engine/retrieve.js +45 -0
  50. package/dist/engine/retrieve.js.map +1 -0
  51. package/dist/index.d.ts +3 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +769 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/types.d.ts +60 -0
  56. package/dist/types.d.ts.map +1 -0
  57. package/dist/types.js +2 -0
  58. package/dist/types.js.map +1 -0
  59. package/package.json +58 -0
  60. 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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}