chat-recall 0.0.1 → 0.4.8

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 (94) hide show
  1. package/LICENSE +93 -0
  2. package/dist/auto-update.d.ts +52 -0
  3. package/dist/auto-update.d.ts.map +1 -0
  4. package/dist/auto-update.js +157 -0
  5. package/dist/auto-update.js.map +1 -0
  6. package/dist/cli.d.ts +6 -0
  7. package/dist/cli.d.ts.map +1 -0
  8. package/dist/cli.js +26102 -0
  9. package/dist/cli.js.map +1 -0
  10. package/dist/client-events.d.ts +11 -0
  11. package/dist/client-events.d.ts.map +1 -0
  12. package/dist/client-events.js +77 -0
  13. package/dist/client-events.js.map +1 -0
  14. package/dist/collector-migrate.d.ts +27 -0
  15. package/dist/collector-migrate.d.ts.map +1 -0
  16. package/dist/collector-migrate.js +60 -0
  17. package/dist/collector-migrate.js.map +1 -0
  18. package/dist/device-auth.d.ts +37 -0
  19. package/dist/device-auth.d.ts.map +1 -0
  20. package/dist/device-auth.js +161 -0
  21. package/dist/device-auth.js.map +1 -0
  22. package/dist/escalate.d.ts +99 -0
  23. package/dist/escalate.d.ts.map +1 -0
  24. package/dist/escalate.js +219 -0
  25. package/dist/escalate.js.map +1 -0
  26. package/dist/http.d.ts +14 -0
  27. package/dist/http.d.ts.map +1 -0
  28. package/dist/http.js +49 -0
  29. package/dist/http.js.map +1 -0
  30. package/dist/install-skills.d.ts +51 -0
  31. package/dist/install-skills.d.ts.map +1 -0
  32. package/dist/install-skills.js +223 -0
  33. package/dist/install-skills.js.map +1 -0
  34. package/dist/intent-drain.d.ts +25 -0
  35. package/dist/intent-drain.d.ts.map +1 -0
  36. package/dist/intent-drain.js +189 -0
  37. package/dist/intent-drain.js.map +1 -0
  38. package/dist/keyring.d.ts +28 -0
  39. package/dist/keyring.d.ts.map +1 -0
  40. package/dist/keyring.js +163 -0
  41. package/dist/keyring.js.map +1 -0
  42. package/dist/mcp.d.ts +8 -0
  43. package/dist/mcp.d.ts.map +1 -0
  44. package/dist/mcp.js +23665 -0
  45. package/dist/mcp.js.map +1 -0
  46. package/dist/project-tasks.d.ts +54 -0
  47. package/dist/project-tasks.d.ts.map +1 -0
  48. package/dist/project-tasks.js +204 -0
  49. package/dist/project-tasks.js.map +1 -0
  50. package/dist/repair.d.ts +73 -0
  51. package/dist/repair.d.ts.map +1 -0
  52. package/dist/repair.js +267 -0
  53. package/dist/repair.js.map +1 -0
  54. package/dist/self-restart.d.ts +91 -0
  55. package/dist/self-restart.d.ts.map +1 -0
  56. package/dist/self-restart.js +137 -0
  57. package/dist/self-restart.js.map +1 -0
  58. package/dist/service-installer.d.ts +32 -0
  59. package/dist/service-installer.d.ts.map +1 -0
  60. package/dist/service-installer.js +231 -0
  61. package/dist/service-installer.js.map +1 -0
  62. package/dist/sync-client.d.ts +234 -0
  63. package/dist/sync-client.d.ts.map +1 -0
  64. package/dist/sync-client.js +1985 -0
  65. package/dist/sync-client.js.map +1 -0
  66. package/dist/sync-ledger.d.ts +131 -0
  67. package/dist/sync-ledger.d.ts.map +1 -0
  68. package/dist/sync-ledger.js +366 -0
  69. package/dist/sync-ledger.js.map +1 -0
  70. package/dist/update-notice.d.ts +16 -0
  71. package/dist/update-notice.d.ts.map +1 -0
  72. package/dist/update-notice.js +107 -0
  73. package/dist/update-notice.js.map +1 -0
  74. package/dist/verify-deep.d.ts +79 -0
  75. package/dist/verify-deep.d.ts.map +1 -0
  76. package/dist/verify-deep.js +97 -0
  77. package/dist/verify-deep.js.map +1 -0
  78. package/dist/verify-repair.d.ts +21 -0
  79. package/dist/verify-repair.d.ts.map +1 -0
  80. package/dist/verify-repair.js +58 -0
  81. package/dist/verify-repair.js.map +1 -0
  82. package/dist/watch.js +21550 -0
  83. package/hooks/chat_recall_escalate_hook.sh +51 -0
  84. package/hooks/chat_recall_resume_hook.sh +69 -0
  85. package/hooks/chat_recall_save_hook.sh +254 -0
  86. package/hooks/chat_recall_wakeup_hook.sh +39 -0
  87. package/package.json +38 -4
  88. package/skills/chat-recall/SKILL.md +76 -0
  89. package/skills/chat-recall-changes/SKILL.md +50 -0
  90. package/skills/chat-recall-find/SKILL.md +64 -0
  91. package/skills/chat-recall-memory/SKILL.md +55 -0
  92. package/skills/chat-recall-project/SKILL.md +75 -0
  93. package/skills/chat-recall-resume/SKILL.md +62 -0
  94. package/README.md +0 -7
@@ -0,0 +1,163 @@
1
+ /**
2
+ * OS keyring access for the vault passphrase — the only way the unattended
3
+ * daemon can decrypt cross-device artifacts without a secret sitting on disk.
4
+ *
5
+ * No new dependency: we shell out to the platform's own tool, exactly as this
6
+ * codebase already does for services (systemctl / launchctl / schtasks in
7
+ * service-installer.ts). A native addon (keytar, @napi-rs/keyring) would trip
8
+ * the bundle's native-free guard and reintroduce prebuilt-binary pain to a
9
+ * package deliberately built without any.
10
+ *
11
+ * macOS `security` built in
12
+ * Linux `secret-tool` needs libsecret-tools (the gap — see probe())
13
+ * Windows PowerShell + DPAPI, encrypting under the user's own key
14
+ *
15
+ * SECRETS NEVER GO IN ARGV. /proc/<pid>/cmdline is world-readable on Linux and
16
+ * `ps` shows arguments to every local user, so a passphrase passed as a flag
17
+ * would leak to any process on the box for the lifetime of the call. Every
18
+ * backend below writes the secret to the child's STDIN instead:
19
+ * - secret-tool store reads the secret from stdin by design
20
+ * - security -i reads *commands* from stdin (batch mode)
21
+ * - powershell -Command - reads the script from stdin
22
+ *
23
+ * There is deliberately NO plaintext fallback. A machine with no keyring does
24
+ * not get cross-device artifacts, and is told exactly how to fix that — a
25
+ * silent downgrade to a file on disk would quietly defeat the entire point.
26
+ */
27
+ import { execFileSync } from 'node:child_process';
28
+ const SERVICE = 'chat-recall';
29
+ const ACCOUNT = 'vault-passphrase';
30
+ const realRunner = {
31
+ run(file, args, input) {
32
+ return execFileSync(file, args, {
33
+ input,
34
+ encoding: 'utf-8',
35
+ stdio: input === undefined ? ['ignore', 'pipe', 'pipe'] : ['pipe', 'pipe', 'pipe'],
36
+ });
37
+ },
38
+ platform: process.platform,
39
+ };
40
+ /** Which backend this platform uses, and whether it's actually usable here. */
41
+ export function probeKeyring(r = realRunner) {
42
+ if (r.platform === 'darwin') {
43
+ // `security` ships with macOS; if it's missing the install is broken.
44
+ try {
45
+ r.run('security', ['help']);
46
+ return { backend: 'macos-keychain', available: true };
47
+ }
48
+ catch {
49
+ return { backend: 'macos-keychain', available: false, hint: '`security` not found — is this really macOS?' };
50
+ }
51
+ }
52
+ if (r.platform === 'win32') {
53
+ try {
54
+ r.run('powershell', ['-NoProfile', '-Command', '$PSVersionTable.PSVersion.Major']);
55
+ return { backend: 'windows-dpapi', available: true };
56
+ }
57
+ catch {
58
+ return { backend: 'windows-dpapi', available: false, hint: 'PowerShell not found — required for DPAPI-protected storage.' };
59
+ }
60
+ }
61
+ if (r.platform === 'linux') {
62
+ try {
63
+ r.run('secret-tool', ['--version']);
64
+ return { backend: 'libsecret', available: true };
65
+ }
66
+ catch {
67
+ return {
68
+ backend: 'libsecret',
69
+ available: false,
70
+ // The common case is a running keyring daemon with the CLI absent —
71
+ // observed on a desktop with gnome-keyring-daemon up and no secret-tool.
72
+ hint: 'No keyring access: install libsecret-tools (Debian/Ubuntu: `sudo apt install libsecret-tools`, '
73
+ + 'Fedora: `sudo dnf install libsecret`). Headless machines have no keyring at all — '
74
+ + 'cross-device artifacts will not apply there.',
75
+ };
76
+ }
77
+ }
78
+ return { backend: 'none', available: false, hint: `No keyring backend for platform ${r.platform}.` };
79
+ }
80
+ /** Thrown when the keyring is unusable. Callers surface .message as-is. */
81
+ export class KeyringUnavailableError extends Error {
82
+ }
83
+ function requireBackend(r) {
84
+ const p = probeKeyring(r);
85
+ if (!p.available)
86
+ throw new KeyringUnavailableError(p.hint || 'No OS keyring available on this machine.');
87
+ return p.backend;
88
+ }
89
+ /**
90
+ * Windows has no credential store we can READ from the shell (cmdkey stores
91
+ * but cannot retrieve), so we use DPAPI: the ciphertext is decryptable only by
92
+ * this user on this machine, which is the same trust boundary as a keyring
93
+ * entry. Stored in the user profile, not in our data dir, to keep it out of
94
+ * anything that gets synced or archived.
95
+ */
96
+ const WIN_BLOB = '$env:USERPROFILE\\.chat-recall-vault.dpapi';
97
+ export function keyringSet(secret, r = realRunner) {
98
+ const backend = requireBackend(r);
99
+ if (backend === 'macos-keychain') {
100
+ // Batch mode: the command line (with -w and the secret) goes over stdin,
101
+ // so it never appears in argv. -U updates an existing item in place.
102
+ r.run('security', ['-i'], `add-generic-password -U -a ${ACCOUNT} -s ${SERVICE} -w ${shQuote(secret)}\n`);
103
+ return;
104
+ }
105
+ if (backend === 'libsecret') {
106
+ r.run('secret-tool', ['store', '--label=chat-recall vault passphrase', 'service', SERVICE, 'account', ACCOUNT], secret);
107
+ return;
108
+ }
109
+ // windows-dpapi — script on stdin; the secret is interpolated into the
110
+ // script text, which is piped, never argv.
111
+ r.run('powershell', ['-NoProfile', '-Command', '-'], `$s = ${psQuote(secret)}\n`
112
+ + `ConvertTo-SecureString -String $s -AsPlainText -Force | ConvertFrom-SecureString | Set-Content -Path ${WIN_BLOB} -Encoding ascii\n`);
113
+ }
114
+ /** The stored passphrase, or null when absent. Throws only if unusable. */
115
+ export function keyringGet(r = realRunner) {
116
+ const backend = requireBackend(r);
117
+ try {
118
+ if (backend === 'macos-keychain') {
119
+ return r.run('security', ['find-generic-password', '-a', ACCOUNT, '-s', SERVICE, '-w']).replace(/\n$/, '') || null;
120
+ }
121
+ if (backend === 'libsecret') {
122
+ // secret-tool prints the secret with NO trailing newline; empty = absent.
123
+ return r.run('secret-tool', ['lookup', 'service', SERVICE, 'account', ACCOUNT]) || null;
124
+ }
125
+ const out = r.run('powershell', ['-NoProfile', '-Command', '-'], `if (!(Test-Path ${WIN_BLOB})) { exit 1 }\n`
126
+ + `$sec = Get-Content ${WIN_BLOB} | ConvertTo-SecureString\n`
127
+ + `[Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($sec))\n`);
128
+ return out.replace(/\r?\n$/, '') || null;
129
+ }
130
+ catch {
131
+ // Every backend exits non-zero for "no such entry"; that is not an error.
132
+ return null;
133
+ }
134
+ }
135
+ /** Remove the stored passphrase. True if something was removed. */
136
+ export function keyringDelete(r = realRunner) {
137
+ const backend = requireBackend(r);
138
+ try {
139
+ if (backend === 'macos-keychain') {
140
+ r.run('security', ['delete-generic-password', '-a', ACCOUNT, '-s', SERVICE]);
141
+ return true;
142
+ }
143
+ if (backend === 'libsecret') {
144
+ r.run('secret-tool', ['clear', 'service', SERVICE, 'account', ACCOUNT]);
145
+ return true;
146
+ }
147
+ r.run('powershell', ['-NoProfile', '-Command', '-'], `Remove-Item -Force -ErrorAction Stop ${WIN_BLOB}\n`);
148
+ return true;
149
+ }
150
+ catch {
151
+ return false;
152
+ }
153
+ }
154
+ /* ── quoting ──────────────────────────────────────────────────────── */
155
+ /** Single-quote for the `security -i` command line (POSIX-ish tokenizer). */
156
+ export function shQuote(s) {
157
+ return `'${s.replace(/'/g, `'\\''`)}'`;
158
+ }
159
+ /** Single-quote for PowerShell, where '' is the escaped quote. */
160
+ export function psQuote(s) {
161
+ return `'${s.replace(/'/g, "''")}'`;
162
+ }
163
+ //# sourceMappingURL=keyring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyring.js","sourceRoot":"","sources":["../src/keyring.ts"],"names":[],"mappings":"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"}
package/dist/mcp.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * MCP server for chat-recall.
4
+ *
5
+ * Exposes chat recall as tools that can be used by Claude Code.
6
+ */
7
+ import '@chat-recall/engine/core/backends/index.js';
8
+ //# sourceMappingURL=mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":";AACA;;;;GAIG;AA0BH,OAAO,4CAA4C,CAAC"}