@hasna/contacts 0.4.3 → 0.5.1

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 (42) hide show
  1. package/dist/cli/index.js +1176 -21
  2. package/dist/db/contacts.d.ts +4 -0
  3. package/dist/db/contacts.d.ts.map +1 -1
  4. package/dist/db/coordination.d.ts +30 -0
  5. package/dist/db/coordination.d.ts.map +1 -0
  6. package/dist/db/database.d.ts.map +1 -1
  7. package/dist/db/field-history.d.ts +17 -0
  8. package/dist/db/field-history.d.ts.map +1 -0
  9. package/dist/db/freshness.d.ts +24 -0
  10. package/dist/db/freshness.d.ts.map +1 -0
  11. package/dist/db/graph.d.ts +21 -0
  12. package/dist/db/graph.d.ts.map +1 -0
  13. package/dist/db/identity.d.ts +32 -0
  14. package/dist/db/identity.d.ts.map +1 -0
  15. package/dist/db/job-history.d.ts +29 -0
  16. package/dist/db/job-history.d.ts.map +1 -0
  17. package/dist/db/learnings.d.ts +43 -0
  18. package/dist/db/learnings.d.ts.map +1 -0
  19. package/dist/db/org-chart.d.ts +37 -0
  20. package/dist/db/org-chart.d.ts.map +1 -0
  21. package/dist/db/signals.d.ts +18 -0
  22. package/dist/db/signals.d.ts.map +1 -0
  23. package/dist/index.d.ts +24 -0
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +978 -85
  26. package/dist/lib/context.d.ts +5 -0
  27. package/dist/lib/context.d.ts.map +1 -0
  28. package/dist/lib/embeddings.d.ts +9 -0
  29. package/dist/lib/embeddings.d.ts.map +1 -0
  30. package/dist/lib/freshness.d.ts +19 -0
  31. package/dist/lib/freshness.d.ts.map +1 -0
  32. package/dist/lib/learning-maintenance.d.ts +8 -0
  33. package/dist/lib/learning-maintenance.d.ts.map +1 -0
  34. package/dist/lib/meeting-capture.d.ts +15 -0
  35. package/dist/lib/meeting-capture.d.ts.map +1 -0
  36. package/dist/lib/signals.d.ts +9 -0
  37. package/dist/lib/signals.d.ts.map +1 -0
  38. package/dist/lib/signature-parser.d.ts +36 -0
  39. package/dist/lib/signature-parser.d.ts.map +1 -0
  40. package/dist/mcp/index.js +1276 -94
  41. package/dist/server/index.js +136 -0
  42. package/package.json +1 -1
@@ -0,0 +1,5 @@
1
+ import type { Database } from "bun:sqlite";
2
+ export declare function getContactCard(contactId: string, db?: Database): object;
3
+ export declare function getContactBrief(contactId: string, taskContext?: string, db?: Database): object;
4
+ export declare function assembleContext(contactIds: string[], format?: 'meeting_prep' | 'deal_review' | 'outreach' | 'research', db?: Database): Promise<object>;
5
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/lib/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAK3C,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAcvE;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAkC9F;AAED,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,MAAM,GAAE,cAAc,GAAG,aAAa,GAAG,UAAU,GAAG,UAA2B,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAO7K"}
@@ -0,0 +1,9 @@
1
+ import type { Database } from "bun:sqlite";
2
+ export declare function buildContactEmbeddingText(contact: Record<string, unknown>): string;
3
+ export declare function embedContact(contactId: string, db?: Database): Promise<void>;
4
+ export declare function embedAllContacts(db?: Database): Promise<number>;
5
+ export declare function semanticSearch(query: string, limit?: number, db?: Database): Array<{
6
+ contact_id: string;
7
+ score: number;
8
+ }>;
9
+ //# sourceMappingURL=embeddings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../../src/lib/embeddings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAuB3C,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAclF;AAED,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAWlF;AAED,wBAAsB,gBAAgB,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAOrE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAgBrH"}
@@ -0,0 +1,19 @@
1
+ import { Database } from "bun:sqlite";
2
+ export interface FreshnessResult {
3
+ contact_id: string;
4
+ score: number;
5
+ breakdown: Record<string, {
6
+ confidence: string;
7
+ last_verified?: string;
8
+ days_ago?: number;
9
+ }>;
10
+ needs_enrichment: boolean;
11
+ }
12
+ export declare function getFreshnessScore(contactId: string, db?: Database): FreshnessResult;
13
+ export declare function getStaleContacts(_threshold?: number, db?: Database): Array<{
14
+ id: string;
15
+ display_name: string;
16
+ score: number;
17
+ }>;
18
+ export declare function markFieldVerified(contactId: string, fieldName: string, source: string, db?: Database): void;
19
+ //# sourceMappingURL=freshness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"freshness.d.ts","sourceRoot":"","sources":["../../src/lib/freshness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7F,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,eAAe,CAoDnF;AAED,wBAAgB,gBAAgB,CAC9B,UAAU,SAAK,EACf,EAAE,CAAC,EAAE,QAAQ,GACZ,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAW5D;AAED,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,EAAE,CAAC,EAAE,QAAQ,GACZ,IAAI,CAON"}
@@ -0,0 +1,8 @@
1
+ import { Database } from "bun:sqlite";
2
+ import { type ContactLearning } from "../db/learnings.js";
3
+ export declare function runMaintenance(db?: Database): {
4
+ decayed: number;
5
+ stale_learnings: number;
6
+ };
7
+ export declare function getStaleLearnings(daysOld?: number, minConfidence?: number, db?: Database): ContactLearning[];
8
+ //# sourceMappingURL=learning-maintenance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"learning-maintenance.d.ts","sourceRoot":"","sources":["../../src/lib/learning-maintenance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAmC,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG3F,wBAAgB,cAAc,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAK1F;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,SAAK,EACZ,aAAa,SAAK,EAClB,EAAE,CAAC,EAAE,QAAQ,GACZ,eAAe,EAAE,CAUnB"}
@@ -0,0 +1,15 @@
1
+ import type { Database } from "bun:sqlite";
2
+ export declare function ingestMeetingParticipants(event: {
3
+ title: string;
4
+ event_date: string;
5
+ attendees: Array<{
6
+ name: string;
7
+ email: string;
8
+ }>;
9
+ context?: string;
10
+ }, db?: Database): Promise<{
11
+ created: number;
12
+ updated: number;
13
+ contact_ids: string[];
14
+ }>;
15
+ //# sourceMappingURL=meeting-capture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meeting-capture.d.ts","sourceRoot":"","sources":["../../src/lib/meeting-capture.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE;IACL,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,EACD,EAAE,CAAC,EAAE,QAAQ,GACZ,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAwCtE"}
@@ -0,0 +1,9 @@
1
+ import { Database } from "bun:sqlite";
2
+ export declare function computeRelationshipSignals(contactId: string, db?: Database): {
3
+ health: number;
4
+ engagement_status: string;
5
+ interaction_count_30d: number;
6
+ interaction_count_90d: number;
7
+ };
8
+ export declare function recomputeAllSignals(db?: Database): number;
9
+ //# sourceMappingURL=signals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signals.d.ts","sourceRoot":"","sources":["../../src/lib/signals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,MAAM,EACjB,EAAE,CAAC,EAAE,QAAQ,GACZ;IACD,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;CAC/B,CA+DA;AAED,wBAAgB,mBAAmB,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAmBzD"}
@@ -0,0 +1,36 @@
1
+ export interface ParsedSignature {
2
+ name?: string;
3
+ title?: string;
4
+ company?: string;
5
+ phone?: string;
6
+ email?: string;
7
+ linkedin?: string;
8
+ website?: string;
9
+ }
10
+ export declare function parseEmailSignature(text: string): ParsedSignature;
11
+ export declare function extractContactsFromEmailThread(participants: Array<{
12
+ name?: string;
13
+ email: string;
14
+ signature?: string;
15
+ }>): Array<{
16
+ display_name: string;
17
+ emails: Array<{
18
+ address: string;
19
+ type: string;
20
+ is_primary: boolean;
21
+ }>;
22
+ job_title?: string;
23
+ social_profiles?: Array<{
24
+ platform: string;
25
+ url: string;
26
+ is_primary: boolean;
27
+ }>;
28
+ phones?: Array<{
29
+ number: string;
30
+ type: string;
31
+ is_primary: boolean;
32
+ }>;
33
+ website?: string;
34
+ source: string;
35
+ }>;
36
+ //# sourceMappingURL=signature-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signature-parser.d.ts","sourceRoot":"","sources":["../../src/lib/signature-parser.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAqBjE;AAED,wBAAgB,8BAA8B,CAC5C,YAAY,EAAE,KAAK,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GACxE,KAAK,CAAC;IACP,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAChF,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAuBD"}