@hasna/contacts 0.6.21 → 0.6.23

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 (102) hide show
  1. package/README.md +30 -5
  2. package/dist/cli/commands/core.d.ts.map +1 -1
  3. package/dist/cli/index.js +2728 -11458
  4. package/dist/cli/storage.d.ts +3 -0
  5. package/dist/cli/storage.d.ts.map +1 -0
  6. package/dist/db/database.d.ts +2 -2
  7. package/dist/db/database.d.ts.map +1 -1
  8. package/dist/db/feedback.d.ts +15 -0
  9. package/dist/db/feedback.d.ts.map +1 -0
  10. package/dist/db/pg-migrations.d.ts +1 -1
  11. package/dist/db/remote-storage.d.ts +14 -0
  12. package/dist/db/remote-storage.d.ts.map +1 -0
  13. package/dist/db/remote-sync.d.ts +49 -0
  14. package/dist/db/remote-sync.d.ts.map +1 -0
  15. package/dist/db/sqlite-adapter.d.ts +15 -0
  16. package/dist/db/sqlite-adapter.d.ts.map +1 -0
  17. package/dist/db/storage.d.ts +15 -0
  18. package/dist/db/storage.d.ts.map +1 -0
  19. package/dist/index.d.ts +8 -0
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +1825 -10067
  22. package/dist/mcp/index.js +2638 -11449
  23. package/dist/mcp/storage-tools.d.ts +3 -0
  24. package/dist/mcp/storage-tools.d.ts.map +1 -0
  25. package/dist/server/index.js +2887 -11700
  26. package/package.json +10 -7
  27. package/dist/db/activity.test.d.ts +0 -2
  28. package/dist/db/activity.test.d.ts.map +0 -1
  29. package/dist/db/applications.test.d.ts +0 -2
  30. package/dist/db/applications.test.d.ts.map +0 -1
  31. package/dist/db/companies.test.d.ts +0 -2
  32. package/dist/db/companies.test.d.ts.map +0 -1
  33. package/dist/db/contact-tasks.test.d.ts +0 -2
  34. package/dist/db/contact-tasks.test.d.ts.map +0 -1
  35. package/dist/db/contacts.test.d.ts +0 -2
  36. package/dist/db/contacts.test.d.ts.map +0 -1
  37. package/dist/db/coordination.test.d.ts +0 -2
  38. package/dist/db/coordination.test.d.ts.map +0 -1
  39. package/dist/db/deals.test.d.ts +0 -2
  40. package/dist/db/deals.test.d.ts.map +0 -1
  41. package/dist/db/documents.test.d.ts +0 -2
  42. package/dist/db/documents.test.d.ts.map +0 -1
  43. package/dist/db/events.test.d.ts +0 -2
  44. package/dist/db/events.test.d.ts.map +0 -1
  45. package/dist/db/field-history.test.d.ts +0 -2
  46. package/dist/db/field-history.test.d.ts.map +0 -1
  47. package/dist/db/freshness.test.d.ts +0 -2
  48. package/dist/db/freshness.test.d.ts.map +0 -1
  49. package/dist/db/graph.test.d.ts +0 -2
  50. package/dist/db/graph.test.d.ts.map +0 -1
  51. package/dist/db/groups.test.d.ts +0 -2
  52. package/dist/db/groups.test.d.ts.map +0 -1
  53. package/dist/db/health.test.d.ts +0 -2
  54. package/dist/db/health.test.d.ts.map +0 -1
  55. package/dist/db/identity.test.d.ts +0 -2
  56. package/dist/db/identity.test.d.ts.map +0 -1
  57. package/dist/db/job-history.test.d.ts +0 -2
  58. package/dist/db/job-history.test.d.ts.map +0 -1
  59. package/dist/db/learnings.test.d.ts +0 -2
  60. package/dist/db/learnings.test.d.ts.map +0 -1
  61. package/dist/db/notes.test.d.ts +0 -2
  62. package/dist/db/notes.test.d.ts.map +0 -1
  63. package/dist/db/org-chart.test.d.ts +0 -2
  64. package/dist/db/org-chart.test.d.ts.map +0 -1
  65. package/dist/db/org-members.test.d.ts +0 -2
  66. package/dist/db/org-members.test.d.ts.map +0 -1
  67. package/dist/db/relationships.test.d.ts +0 -2
  68. package/dist/db/relationships.test.d.ts.map +0 -1
  69. package/dist/db/signals.test.d.ts +0 -2
  70. package/dist/db/signals.test.d.ts.map +0 -1
  71. package/dist/db/tags.test.d.ts +0 -2
  72. package/dist/db/tags.test.d.ts.map +0 -1
  73. package/dist/db/vendor-comms.test.d.ts +0 -2
  74. package/dist/db/vendor-comms.test.d.ts.map +0 -1
  75. package/dist/lib/audit.test.d.ts +0 -2
  76. package/dist/lib/audit.test.d.ts.map +0 -1
  77. package/dist/lib/brief.test.d.ts +0 -2
  78. package/dist/lib/brief.test.d.ts.map +0 -1
  79. package/dist/lib/config.test.d.ts +0 -2
  80. package/dist/lib/config.test.d.ts.map +0 -1
  81. package/dist/lib/dedup.test.d.ts +0 -2
  82. package/dist/lib/dedup.test.d.ts.map +0 -1
  83. package/dist/lib/export.test.d.ts +0 -2
  84. package/dist/lib/export.test.d.ts.map +0 -1
  85. package/dist/lib/gmail-import.test.d.ts +0 -2
  86. package/dist/lib/gmail-import.test.d.ts.map +0 -1
  87. package/dist/lib/google-contacts.test.d.ts +0 -2
  88. package/dist/lib/google-contacts.test.d.ts.map +0 -1
  89. package/dist/lib/import.test.d.ts +0 -2
  90. package/dist/lib/import.test.d.ts.map +0 -1
  91. package/dist/lib/signature-parser.test.d.ts +0 -2
  92. package/dist/lib/signature-parser.test.d.ts.map +0 -1
  93. package/dist/lib/stats.test.d.ts +0 -2
  94. package/dist/lib/stats.test.d.ts.map +0 -1
  95. package/dist/lib/timeline.test.d.ts +0 -2
  96. package/dist/lib/timeline.test.d.ts.map +0 -1
  97. package/dist/lib/upcoming.test.d.ts +0 -2
  98. package/dist/lib/upcoming.test.d.ts.map +0 -1
  99. package/dist/mcp/http.test.d.ts +0 -2
  100. package/dist/mcp/http.test.d.ts.map +0 -1
  101. package/dist/mcp/mcp.test.d.ts +0 -2
  102. package/dist/mcp/mcp.test.d.ts.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hasna/contacts",
3
- "version": "0.6.21",
3
+ "version": "0.6.23",
4
4
  "description": "Contact management for AI coding agents — CLI + MCP + Web",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -23,15 +23,17 @@
23
23
  "README.md"
24
24
  ],
25
25
  "scripts": {
26
- "build": "cd dashboard && bun run build && cd .. && bun build src/cli/index.tsx --outdir dist/cli --target bun --external ink --external react --external chalk --external @modelcontextprotocol/sdk && bun build src/mcp/index.ts --outdir dist/mcp --target bun --external @modelcontextprotocol/sdk && bun build src/server/index.ts --outdir dist/server --target bun && bun build src/index.ts --outdir dist --target bun && tsc --emitDeclarationOnly --outDir dist",
27
- "build:core": "bun build src/cli/index.tsx --outdir dist/cli --target bun --external ink --external react --external chalk --external @modelcontextprotocol/sdk && bun build src/mcp/index.ts --outdir dist/mcp --target bun --external @modelcontextprotocol/sdk && bun build src/server/index.ts --outdir dist/server --target bun && bun build src/index.ts --outdir dist --target bun && tsc --emitDeclarationOnly --outDir dist",
26
+ "clean": "rm -rf dist dashboard/dist",
27
+ "clean:core": "rm -rf dist",
28
+ "build": "bun run clean && cd dashboard && bun run build && cd .. && bun build src/cli/index.tsx --outdir dist/cli --target bun --external ink --external react --external chalk --external pg --external @modelcontextprotocol/sdk && bun build src/mcp/index.ts --outdir dist/mcp --target bun --external pg --external @modelcontextprotocol/sdk && bun build src/server/index.ts --outdir dist/server --target bun --external pg && bun build src/index.ts --outdir dist --target bun --external pg && tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist",
29
+ "build:core": "bun run clean:core && bun build src/cli/index.tsx --outdir dist/cli --target bun --external ink --external react --external chalk --external pg --external @modelcontextprotocol/sdk && bun build src/mcp/index.ts --outdir dist/mcp --target bun --external pg --external @modelcontextprotocol/sdk && bun build src/server/index.ts --outdir dist/server --target bun --external pg && bun build src/index.ts --outdir dist --target bun --external pg && tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist",
28
30
  "typecheck": "tsc --noEmit",
29
31
  "test": "bun test",
30
32
  "dev:cli": "bun run src/cli/index.tsx",
31
33
  "dev:mcp": "bun run src/mcp/index.ts",
32
34
  "dev:serve": "bun run src/server/index.ts",
33
- "prepublishOnly": "bun run build",
34
- "postinstall": "mkdir -p $HOME/.hasna/contacts/{backups,images,documents} 2>/dev/null || true"
35
+ "prepublishOnly": "bun run typecheck && bun test && bun run build",
36
+ "postinstall": "install -d -m 700 \"$HOME/.hasna/contacts\" \"$HOME/.hasna/contacts/backups\" \"$HOME/.hasna/contacts/images\" \"$HOME/.hasna/contacts/documents\" 2>/dev/null || mkdir -p $HOME/.hasna/contacts/{backups,images,documents} 2>/dev/null || true"
35
37
  },
36
38
  "keywords": [
37
39
  "contacts",
@@ -49,7 +51,7 @@
49
51
  },
50
52
  "repository": {
51
53
  "type": "git",
52
- "url": "https://github.com/hasna/contacts.git"
54
+ "url": "git+https://github.com/hasna/contacts.git"
53
55
  },
54
56
  "homepage": "https://github.com/hasna/contacts",
55
57
  "bugs": {
@@ -61,17 +63,18 @@
61
63
  "author": "Andrei Hasna <andrei@hasna.com>",
62
64
  "license": "Apache-2.0",
63
65
  "dependencies": {
64
- "@hasna/cloud": "0.1.24",
65
66
  "@hasna/events": "^0.1.6",
66
67
  "@modelcontextprotocol/sdk": "^1.12.1",
67
68
  "chalk": "^5.4.1",
68
69
  "commander": "^13.1.0",
69
70
  "ink": "^5.2.0",
71
+ "pg": "^8.13.3",
70
72
  "react": "^18.3.1",
71
73
  "zod": "^3.24.2"
72
74
  },
73
75
  "devDependencies": {
74
76
  "@types/bun": "^1.2.4",
77
+ "@types/pg": "^8.11.11",
75
78
  "@types/react": "^18.3.18",
76
79
  "typescript": "^5.7.3"
77
80
  }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=activity.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"activity.test.d.ts","sourceRoot":"","sources":["../../src/db/activity.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=applications.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"applications.test.d.ts","sourceRoot":"","sources":["../../src/db/applications.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=companies.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"companies.test.d.ts","sourceRoot":"","sources":["../../src/db/companies.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=contact-tasks.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contact-tasks.test.d.ts","sourceRoot":"","sources":["../../src/db/contact-tasks.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=contacts.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contacts.test.d.ts","sourceRoot":"","sources":["../../src/db/contacts.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=coordination.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"coordination.test.d.ts","sourceRoot":"","sources":["../../src/db/coordination.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=deals.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deals.test.d.ts","sourceRoot":"","sources":["../../src/db/deals.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=documents.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"documents.test.d.ts","sourceRoot":"","sources":["../../src/db/documents.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=events.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.test.d.ts","sourceRoot":"","sources":["../../src/db/events.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=field-history.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"field-history.test.d.ts","sourceRoot":"","sources":["../../src/db/field-history.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=freshness.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"freshness.test.d.ts","sourceRoot":"","sources":["../../src/db/freshness.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=graph.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"graph.test.d.ts","sourceRoot":"","sources":["../../src/db/graph.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=groups.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"groups.test.d.ts","sourceRoot":"","sources":["../../src/db/groups.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=health.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"health.test.d.ts","sourceRoot":"","sources":["../../src/db/health.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=identity.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"identity.test.d.ts","sourceRoot":"","sources":["../../src/db/identity.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=job-history.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"job-history.test.d.ts","sourceRoot":"","sources":["../../src/db/job-history.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=learnings.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"learnings.test.d.ts","sourceRoot":"","sources":["../../src/db/learnings.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=notes.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"notes.test.d.ts","sourceRoot":"","sources":["../../src/db/notes.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=org-chart.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"org-chart.test.d.ts","sourceRoot":"","sources":["../../src/db/org-chart.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=org-members.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"org-members.test.d.ts","sourceRoot":"","sources":["../../src/db/org-members.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=relationships.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"relationships.test.d.ts","sourceRoot":"","sources":["../../src/db/relationships.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=signals.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signals.test.d.ts","sourceRoot":"","sources":["../../src/db/signals.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=tags.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tags.test.d.ts","sourceRoot":"","sources":["../../src/db/tags.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=vendor-comms.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vendor-comms.test.d.ts","sourceRoot":"","sources":["../../src/db/vendor-comms.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=audit.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audit.test.d.ts","sourceRoot":"","sources":["../../src/lib/audit.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=brief.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"brief.test.d.ts","sourceRoot":"","sources":["../../src/lib/brief.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=config.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.test.d.ts","sourceRoot":"","sources":["../../src/lib/config.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=dedup.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dedup.test.d.ts","sourceRoot":"","sources":["../../src/lib/dedup.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=export.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"export.test.d.ts","sourceRoot":"","sources":["../../src/lib/export.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=gmail-import.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gmail-import.test.d.ts","sourceRoot":"","sources":["../../src/lib/gmail-import.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=google-contacts.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"google-contacts.test.d.ts","sourceRoot":"","sources":["../../src/lib/google-contacts.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=import.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"import.test.d.ts","sourceRoot":"","sources":["../../src/lib/import.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=signature-parser.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signature-parser.test.d.ts","sourceRoot":"","sources":["../../src/lib/signature-parser.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=stats.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stats.test.d.ts","sourceRoot":"","sources":["../../src/lib/stats.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=timeline.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"timeline.test.d.ts","sourceRoot":"","sources":["../../src/lib/timeline.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=upcoming.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"upcoming.test.d.ts","sourceRoot":"","sources":["../../src/lib/upcoming.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=http.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http.test.d.ts","sourceRoot":"","sources":["../../src/mcp/http.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=mcp.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp.test.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp.test.ts"],"names":[],"mappings":""}