claude-mem 13.3.0 → 13.4.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.
@@ -0,0 +1,163 @@
1
+ {
2
+ "lockfileVersion": 1,
3
+ "configVersion": 1,
4
+ "workspaces": {
5
+ "": {
6
+ "name": "claude-mem-plugin",
7
+ "dependencies": {
8
+ "@derekstride/tree-sitter-sql": "^0.3.11",
9
+ "@tree-sitter-grammars/tree-sitter-lua": "^0.4.1",
10
+ "@tree-sitter-grammars/tree-sitter-markdown": "^0.3.2",
11
+ "@tree-sitter-grammars/tree-sitter-toml": "^0.7.0",
12
+ "@tree-sitter-grammars/tree-sitter-yaml": "^0.7.1",
13
+ "@tree-sitter-grammars/tree-sitter-zig": "^1.1.2",
14
+ "shell-quote": "^1.8.3",
15
+ "tree-sitter-bash": "^0.25.1",
16
+ "tree-sitter-c": "^0.24.1",
17
+ "tree-sitter-cli": "^0.26.5",
18
+ "tree-sitter-cpp": "^0.23.4",
19
+ "tree-sitter-css": "^0.25.0",
20
+ "tree-sitter-elixir": "^0.3.5",
21
+ "tree-sitter-go": "^0.25.0",
22
+ "tree-sitter-haskell": "^0.23.1",
23
+ "tree-sitter-java": "^0.23.5",
24
+ "tree-sitter-javascript": "^0.25.0",
25
+ "tree-sitter-kotlin": "^0.3.8",
26
+ "tree-sitter-php": "^0.24.2",
27
+ "tree-sitter-python": "^0.25.0",
28
+ "tree-sitter-ruby": "^0.23.1",
29
+ "tree-sitter-rust": "^0.24.0",
30
+ "tree-sitter-scala": "^0.24.0",
31
+ "tree-sitter-scss": "^1.0.0",
32
+ "tree-sitter-swift": "^0.7.1",
33
+ "tree-sitter-typescript": "^0.23.2",
34
+ "zod": "^4.4.3",
35
+ },
36
+ },
37
+ },
38
+ "trustedDependencies": [
39
+ "tree-sitter-cli",
40
+ ],
41
+ "overrides": {
42
+ "tree-sitter": "^0.25.0",
43
+ },
44
+ "packages": {
45
+ "@derekstride/tree-sitter-sql": ["@derekstride/tree-sitter-sql@0.3.11", "", { "dependencies": { "node-addon-api": "^7.1.0", "node-gyp-build": "^4.8.0" }, "peerDependencies": { "tree-sitter": "^0.21.0" } }, "sha512-YRtTXVWK4n7/3BUGchhGcW/IF1u2ldR2fd0t3Uw7ymbGXcRfiG3v1T6N43jQKXz2LwN+Nx+Ab96T0HtusBVH9g=="],
46
+
47
+ "@tree-sitter-grammars/tree-sitter-lua": ["@tree-sitter-grammars/tree-sitter-lua@0.4.1", "", { "dependencies": { "node-addon-api": "^8.5.0", "node-gyp-build": "^4.8.4" }, "peerDependencies": { "tree-sitter": "^0.22.4" }, "optionalPeers": ["tree-sitter"] }, "sha512-EwagFaU6ZveVk18/Y8qUhZkkiBKnQ7dSCHbm//TUroLVKy3i1rOYGy/cNHtSkAb1eDvS1HhCLybH2S541Cya/g=="],
48
+
49
+ "@tree-sitter-grammars/tree-sitter-markdown": ["@tree-sitter-grammars/tree-sitter-markdown@0.3.2", "", { "dependencies": { "node-addon-api": "^8.1.0", "node-gyp-build": "^4.8.1" }, "peerDependencies": { "tree-sitter": "^0.21.1" } }, "sha512-hQXCcDVvg2t4E8cn7zz6jjIBerzk9E9ZlHxJp5IrUOpY4s1YVpXJbMeWZks2/V7lmkPRnnkM8IrTbQ5ltwEOnA=="],
50
+
51
+ "@tree-sitter-grammars/tree-sitter-toml": ["@tree-sitter-grammars/tree-sitter-toml@0.7.0", "", { "dependencies": { "node-addon-api": "^8.3.0", "node-gyp-build": "^4.8.4" }, "peerDependencies": { "tree-sitter": "^0.22.1" }, "optionalPeers": ["tree-sitter"] }, "sha512-873Kl518Qm5ghbWadISY41rwFjee0v+2bU4twwvAw2VAJcWwj2vBo3F3hOCXfbqHaFiqc4qh6eLhkMl2YZJS0g=="],
52
+
53
+ "@tree-sitter-grammars/tree-sitter-yaml": ["@tree-sitter-grammars/tree-sitter-yaml@0.7.1", "", { "dependencies": { "node-addon-api": "^8.3.1", "node-gyp-build": "^4.8.4" }, "peerDependencies": { "tree-sitter": "^0.22.4" }, "optionalPeers": ["tree-sitter"] }, "sha512-AynBwkIoQCTgjDR33bDUp9Mqq+YTco0is3n5hRApMqG9of/6A4eQsfC1/uSEeHSUyMQSYawcAWamsexnVpIP4Q=="],
54
+
55
+ "@tree-sitter-grammars/tree-sitter-zig": ["@tree-sitter-grammars/tree-sitter-zig@1.1.2", "", { "dependencies": { "node-addon-api": "^8.3.0", "node-gyp-build": "^4.8.4" }, "peerDependencies": { "tree-sitter": "^0.22.1" }, "optionalPeers": ["tree-sitter"] }, "sha512-J0L31HZ2isy3F5zb2g5QWQOv2r/pbruQNL9ADhuQv2pn5BQOzxt80WcEJaYXBeuJ8GHxVT42slpCna8k1c8LOw=="],
56
+
57
+ "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="],
58
+
59
+ "nan": ["nan@2.27.0", "", {}, "sha512-hC+0LidcL3XE4rp1C4H54KujgXKzbfyTngZTwBByQxsOxCEKZT0MPQ4hOKUH2jU1OYstqdDH4onyHPDzcV0XdQ=="],
60
+
61
+ "node-addon-api": ["node-addon-api@7.1.1", "", {}, "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ=="],
62
+
63
+ "node-gyp-build": ["node-gyp-build@4.8.4", "", { "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", "node-gyp-build-test": "build-test.js" } }, "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ=="],
64
+
65
+ "shell-quote": ["shell-quote@1.8.4", "", {}, "sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ=="],
66
+
67
+ "tree-sitter": ["tree-sitter@0.25.0", "", { "dependencies": { "node-addon-api": "^8.3.0", "node-gyp-build": "^4.8.4" } }, "sha512-PGZZzFW63eElZJDe/b/R/LbsjDDYJa5UEjLZJB59RQsMX+fo0j54fqBPn1MGKav/QNa0JR0zBiVaikYDWCj5KQ=="],
68
+
69
+ "tree-sitter-bash": ["tree-sitter-bash@0.25.1", "", { "dependencies": { "node-addon-api": "^8.2.1", "node-gyp-build": "^4.8.2" }, "peerDependencies": { "tree-sitter": "^0.25.0" }, "optionalPeers": ["tree-sitter"] }, "sha512-7hMytuYIMoXOq24yRulgIxthE9YmggZIOHCyPTTuJcu6EU54tYD+4G39cUb28kxC6jMf/AbPfWGLQtgPTdh3xw=="],
70
+
71
+ "tree-sitter-c": ["tree-sitter-c@0.24.1", "", { "dependencies": { "node-addon-api": "^8.3.1", "node-gyp-build": "^4.8.4" }, "peerDependencies": { "tree-sitter": "^0.22.4" }, "optionalPeers": ["tree-sitter"] }, "sha512-lkYwWN3SRecpvaeqmFKkuPNR3ZbtnvHU+4XAEEkJdrp3JfSp2pBrhXOtvfsENUneye76g889Y0ddF2DM0gEDpA=="],
72
+
73
+ "tree-sitter-cli": ["tree-sitter-cli@0.26.9", "", { "bin": { "tree-sitter": "cli.js" } }, "sha512-7l+U1RmazPVe+yA/JiX80GFOILnL/j24GbawamIzNQC8UlINrcyECbaWGaG1wuq4j/m0DQTx7Uu4r0iW9Ao1BQ=="],
74
+
75
+ "tree-sitter-cpp": ["tree-sitter-cpp@0.23.4", "", { "dependencies": { "node-addon-api": "^8.2.1", "node-gyp-build": "^4.8.2", "tree-sitter-c": "^0.23.1" }, "peerDependencies": { "tree-sitter": "^0.21.1" }, "optionalPeers": ["tree-sitter"] }, "sha512-qR5qUDyhZ5jJ6V8/umiBxokRbe89bCGmcq/dk94wI4kN86qfdV8k0GHIUEKaqWgcu42wKal5E97LKpLeVW8sKw=="],
76
+
77
+ "tree-sitter-css": ["tree-sitter-css@0.25.0", "", { "dependencies": { "node-addon-api": "^8.5.0", "node-gyp-build": "^4.8.4" }, "peerDependencies": { "tree-sitter": "^0.25.0" }, "optionalPeers": ["tree-sitter"] }, "sha512-FRc9R8ePrwJiUhZsuZ/wcFQ3K8Z+9yCgDrrUjuYswGWlN89UvcB9vslTUGZElQWGwhS8sUw3/r2n4lpb2sxT4Q=="],
78
+
79
+ "tree-sitter-elixir": ["tree-sitter-elixir@0.3.5", "", { "dependencies": { "node-addon-api": "^7.1.0", "node-gyp-build": "^4.8.0" }, "peerDependencies": { "tree-sitter": "^0.21.0" } }, "sha512-xozQMvYK0aSolcQZAx2d84Xe/YMWFuRPYFlLVxO01bM2GITh5jyiIp0TqPCQa8754UzRAI7A83hZmfiYub5TZQ=="],
80
+
81
+ "tree-sitter-go": ["tree-sitter-go@0.25.0", "", { "dependencies": { "node-addon-api": "^8.3.1", "node-gyp-build": "^4.8.4" }, "peerDependencies": { "tree-sitter": "^0.25.0" }, "optionalPeers": ["tree-sitter"] }, "sha512-APBc/Dq3xz/e35Xpkhb1blu5UgW+2E3RyGWawZSCNcbGwa7jhSQPS8KsUupuzBla8PCo8+lz9W/JDJjmfRa2tw=="],
82
+
83
+ "tree-sitter-haskell": ["tree-sitter-haskell@0.23.1", "", { "dependencies": { "node-addon-api": "^8.2.2", "node-gyp-build": "^4.8.2" }, "peerDependencies": { "tree-sitter": "^0.21.1" }, "optionalPeers": ["tree-sitter"] }, "sha512-qG4CYhejveu9DLMLEGBz/n9/TTeGSFLC6wniwOgG6m8/v7Dng8qR0ob0EVG7+XH+9WiOxohpGA23EhceWuxY4w=="],
84
+
85
+ "tree-sitter-java": ["tree-sitter-java@0.23.5", "", { "dependencies": { "node-addon-api": "^8.2.2", "node-gyp-build": "^4.8.2" }, "peerDependencies": { "tree-sitter": "^0.21.1" }, "optionalPeers": ["tree-sitter"] }, "sha512-Yju7oQ0Xx7GcUT01mUglPP+bYfvqjNCGdxqigTnew9nLGoII42PNVP3bHrYeMxswiCRM0yubWmN5qk+zsg0zMA=="],
86
+
87
+ "tree-sitter-javascript": ["tree-sitter-javascript@0.25.0", "", { "dependencies": { "node-addon-api": "^8.3.1", "node-gyp-build": "^4.8.4" }, "peerDependencies": { "tree-sitter": "^0.25.0" }, "optionalPeers": ["tree-sitter"] }, "sha512-1fCbmzAskZkxcZzN41sFZ2br2iqTYP3tKls1b/HKGNPQUVOpsUxpmGxdN/wMqAk3jYZnYBR1dd/y/0avMeU7dw=="],
88
+
89
+ "tree-sitter-kotlin": ["tree-sitter-kotlin@0.3.8", "", { "dependencies": { "node-addon-api": "^7.1.0", "node-gyp-build": "^4.8.0" }, "peerDependencies": { "tree-sitter": "^0.21.0" } }, "sha512-A4obq6bjzmYrA+F0JLLoheFPcofFkctNaZSpnDd+GPn1SfVZLY4/GG4C0cYVBTOShuPBGGAOPLM1JWLZQV4m1g=="],
90
+
91
+ "tree-sitter-php": ["tree-sitter-php@0.24.2", "", { "dependencies": { "node-addon-api": "^8.2.2", "node-gyp-build": "^4.8.2" }, "peerDependencies": { "tree-sitter": "^0.22.4" }, "optionalPeers": ["tree-sitter"] }, "sha512-zwgAePc/HozNaWOOfwRAA+3p8yhuehRw8Fb7vn5qd2XjiIc93uJPryDTMYTSjBRjVIUg/KY6pM3rRzs8dSwKfw=="],
92
+
93
+ "tree-sitter-python": ["tree-sitter-python@0.25.0", "", { "dependencies": { "node-addon-api": "^8.5.0", "node-gyp-build": "^4.8.4" }, "peerDependencies": { "tree-sitter": "^0.25.0" }, "optionalPeers": ["tree-sitter"] }, "sha512-eCmJx6zQa35GxaCtQD+wXHOhYqBxEL+bp71W/s3fcDMu06MrtzkVXR437dRrCrbrDbyLuUDJpAgycs7ncngLXw=="],
94
+
95
+ "tree-sitter-ruby": ["tree-sitter-ruby@0.23.1", "", { "dependencies": { "node-addon-api": "^8.2.2", "node-gyp-build": "^4.8.2" }, "peerDependencies": { "tree-sitter": "^0.21.1" }, "optionalPeers": ["tree-sitter"] }, "sha512-d9/RXgWjR6HanN7wTYhS5bpBQLz1VkH048Vm3CodPGyJVnamXMGb8oEhDypVCBq4QnHui9sTXuJBBP3WtCw5RA=="],
96
+
97
+ "tree-sitter-rust": ["tree-sitter-rust@0.24.0", "", { "dependencies": { "node-addon-api": "^8.2.2", "node-gyp-build": "^4.8.4" }, "peerDependencies": { "tree-sitter": "^0.22.1" }, "optionalPeers": ["tree-sitter"] }, "sha512-NWemUDf629Tfc90Y0Z55zuwPCAHkLxWnMf2RznYu4iBkkrQl2o/CHGB7Cr52TyN5F1DAx8FmUnDtCy9iUkXZEQ=="],
98
+
99
+ "tree-sitter-scala": ["tree-sitter-scala@0.24.0", "", { "dependencies": { "node-addon-api": "^8.2.2", "node-gyp-build": "^4.8.2" }, "peerDependencies": { "tree-sitter": "^0.21.1" }, "optionalPeers": ["tree-sitter"] }, "sha512-vkMuAUrBZ1zZz2XcGDQk18Kz73JkpgaeXzbNVobPke0G35sd9jH32aUxG6OLRKM7et0TbsfqkWf4DeJoGk4K1g=="],
100
+
101
+ "tree-sitter-scss": ["tree-sitter-scss@1.0.0", "", { "dependencies": { "node-addon-api": "^8.0.0", "node-gyp-build": "^4.8.0", "tree-sitter-css": "^0.20.0" }, "peerDependencies": { "tree-sitter": "^0.21.0" }, "optionalPeers": ["tree-sitter"] }, "sha512-CYHEkSG4RTGHfwwQSXwsnagRUNr2Gh2jzrvNUXz95OfSzOdUAtPx4aM1zOGSprAzOPnwlBQfbYs0vVsklf3WWA=="],
102
+
103
+ "tree-sitter-swift": ["tree-sitter-swift@0.7.1", "", { "dependencies": { "node-addon-api": "^8.0.0", "node-gyp-build": "^4.8.0", "tree-sitter-cli": "^0.23", "which": "2.0.2" }, "peerDependencies": { "tree-sitter": "^0.22.1" } }, "sha512-pneKVTuGamaBsqqqfB9BvNQjktzh/0IVPR54jLB5Fq/JTDQwYHd0Wo6pVyZ5jAYpbztzq+rJ/rpL9ruxTmSoKw=="],
104
+
105
+ "tree-sitter-typescript": ["tree-sitter-typescript@0.23.2", "", { "dependencies": { "node-addon-api": "^8.2.2", "node-gyp-build": "^4.8.2", "tree-sitter-javascript": "^0.23.1" }, "peerDependencies": { "tree-sitter": "^0.21.0" }, "optionalPeers": ["tree-sitter"] }, "sha512-e04JUUKxTT53/x3Uq1zIL45DoYKVfHH4CZqwgZhPg5qYROl5nQjV+85ruFzFGZxu+QeFVbRTPDRnqL9UbU4VeA=="],
106
+
107
+ "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="],
108
+
109
+ "zod": ["zod@4.4.3", "", {}, "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ=="],
110
+
111
+ "@tree-sitter-grammars/tree-sitter-lua/node-addon-api": ["node-addon-api@8.8.0", "", {}, "sha512-c5Ko1fZJIJmzhFIkhRN76WTq+fC6tWnGy9CXA0fA+XygsWZmEwG8vmbkNqxMyoaa0Tin4djul49NzdVcJJcjeA=="],
112
+
113
+ "@tree-sitter-grammars/tree-sitter-markdown/node-addon-api": ["node-addon-api@8.8.0", "", {}, "sha512-c5Ko1fZJIJmzhFIkhRN76WTq+fC6tWnGy9CXA0fA+XygsWZmEwG8vmbkNqxMyoaa0Tin4djul49NzdVcJJcjeA=="],
114
+
115
+ "@tree-sitter-grammars/tree-sitter-toml/node-addon-api": ["node-addon-api@8.8.0", "", {}, "sha512-c5Ko1fZJIJmzhFIkhRN76WTq+fC6tWnGy9CXA0fA+XygsWZmEwG8vmbkNqxMyoaa0Tin4djul49NzdVcJJcjeA=="],
116
+
117
+ "@tree-sitter-grammars/tree-sitter-yaml/node-addon-api": ["node-addon-api@8.8.0", "", {}, "sha512-c5Ko1fZJIJmzhFIkhRN76WTq+fC6tWnGy9CXA0fA+XygsWZmEwG8vmbkNqxMyoaa0Tin4djul49NzdVcJJcjeA=="],
118
+
119
+ "@tree-sitter-grammars/tree-sitter-zig/node-addon-api": ["node-addon-api@8.8.0", "", {}, "sha512-c5Ko1fZJIJmzhFIkhRN76WTq+fC6tWnGy9CXA0fA+XygsWZmEwG8vmbkNqxMyoaa0Tin4djul49NzdVcJJcjeA=="],
120
+
121
+ "tree-sitter/node-addon-api": ["node-addon-api@8.8.0", "", {}, "sha512-c5Ko1fZJIJmzhFIkhRN76WTq+fC6tWnGy9CXA0fA+XygsWZmEwG8vmbkNqxMyoaa0Tin4djul49NzdVcJJcjeA=="],
122
+
123
+ "tree-sitter-bash/node-addon-api": ["node-addon-api@8.8.0", "", {}, "sha512-c5Ko1fZJIJmzhFIkhRN76WTq+fC6tWnGy9CXA0fA+XygsWZmEwG8vmbkNqxMyoaa0Tin4djul49NzdVcJJcjeA=="],
124
+
125
+ "tree-sitter-c/node-addon-api": ["node-addon-api@8.8.0", "", {}, "sha512-c5Ko1fZJIJmzhFIkhRN76WTq+fC6tWnGy9CXA0fA+XygsWZmEwG8vmbkNqxMyoaa0Tin4djul49NzdVcJJcjeA=="],
126
+
127
+ "tree-sitter-cpp/node-addon-api": ["node-addon-api@8.8.0", "", {}, "sha512-c5Ko1fZJIJmzhFIkhRN76WTq+fC6tWnGy9CXA0fA+XygsWZmEwG8vmbkNqxMyoaa0Tin4djul49NzdVcJJcjeA=="],
128
+
129
+ "tree-sitter-cpp/tree-sitter-c": ["tree-sitter-c@0.23.6", "", { "dependencies": { "node-addon-api": "^8.3.0", "node-gyp-build": "^4.8.4" }, "peerDependencies": { "tree-sitter": "^0.22.1" }, "optionalPeers": ["tree-sitter"] }, "sha512-0dxXKznVyUA0s6PjNolJNs2yF87O5aL538A/eR6njA5oqX3C3vH4vnx3QdOKwuUdpKEcFdHuiDpRKLLCA/tjvQ=="],
130
+
131
+ "tree-sitter-css/node-addon-api": ["node-addon-api@8.8.0", "", {}, "sha512-c5Ko1fZJIJmzhFIkhRN76WTq+fC6tWnGy9CXA0fA+XygsWZmEwG8vmbkNqxMyoaa0Tin4djul49NzdVcJJcjeA=="],
132
+
133
+ "tree-sitter-go/node-addon-api": ["node-addon-api@8.8.0", "", {}, "sha512-c5Ko1fZJIJmzhFIkhRN76WTq+fC6tWnGy9CXA0fA+XygsWZmEwG8vmbkNqxMyoaa0Tin4djul49NzdVcJJcjeA=="],
134
+
135
+ "tree-sitter-haskell/node-addon-api": ["node-addon-api@8.8.0", "", {}, "sha512-c5Ko1fZJIJmzhFIkhRN76WTq+fC6tWnGy9CXA0fA+XygsWZmEwG8vmbkNqxMyoaa0Tin4djul49NzdVcJJcjeA=="],
136
+
137
+ "tree-sitter-java/node-addon-api": ["node-addon-api@8.8.0", "", {}, "sha512-c5Ko1fZJIJmzhFIkhRN76WTq+fC6tWnGy9CXA0fA+XygsWZmEwG8vmbkNqxMyoaa0Tin4djul49NzdVcJJcjeA=="],
138
+
139
+ "tree-sitter-javascript/node-addon-api": ["node-addon-api@8.8.0", "", {}, "sha512-c5Ko1fZJIJmzhFIkhRN76WTq+fC6tWnGy9CXA0fA+XygsWZmEwG8vmbkNqxMyoaa0Tin4djul49NzdVcJJcjeA=="],
140
+
141
+ "tree-sitter-php/node-addon-api": ["node-addon-api@8.8.0", "", {}, "sha512-c5Ko1fZJIJmzhFIkhRN76WTq+fC6tWnGy9CXA0fA+XygsWZmEwG8vmbkNqxMyoaa0Tin4djul49NzdVcJJcjeA=="],
142
+
143
+ "tree-sitter-python/node-addon-api": ["node-addon-api@8.8.0", "", {}, "sha512-c5Ko1fZJIJmzhFIkhRN76WTq+fC6tWnGy9CXA0fA+XygsWZmEwG8vmbkNqxMyoaa0Tin4djul49NzdVcJJcjeA=="],
144
+
145
+ "tree-sitter-ruby/node-addon-api": ["node-addon-api@8.8.0", "", {}, "sha512-c5Ko1fZJIJmzhFIkhRN76WTq+fC6tWnGy9CXA0fA+XygsWZmEwG8vmbkNqxMyoaa0Tin4djul49NzdVcJJcjeA=="],
146
+
147
+ "tree-sitter-rust/node-addon-api": ["node-addon-api@8.8.0", "", {}, "sha512-c5Ko1fZJIJmzhFIkhRN76WTq+fC6tWnGy9CXA0fA+XygsWZmEwG8vmbkNqxMyoaa0Tin4djul49NzdVcJJcjeA=="],
148
+
149
+ "tree-sitter-scala/node-addon-api": ["node-addon-api@8.8.0", "", {}, "sha512-c5Ko1fZJIJmzhFIkhRN76WTq+fC6tWnGy9CXA0fA+XygsWZmEwG8vmbkNqxMyoaa0Tin4djul49NzdVcJJcjeA=="],
150
+
151
+ "tree-sitter-scss/node-addon-api": ["node-addon-api@8.8.0", "", {}, "sha512-c5Ko1fZJIJmzhFIkhRN76WTq+fC6tWnGy9CXA0fA+XygsWZmEwG8vmbkNqxMyoaa0Tin4djul49NzdVcJJcjeA=="],
152
+
153
+ "tree-sitter-scss/tree-sitter-css": ["tree-sitter-css@0.20.0", "", { "dependencies": { "nan": "^2.18.0" } }, "sha512-ammbs1bnIwHXPVtPGNc3T16rhPFRiK97pBgO4svlYWyt+fSEgGQzK3MSWB5vf3k3pSDWkpEFOTUxPPMR6k7N7Q=="],
154
+
155
+ "tree-sitter-swift/node-addon-api": ["node-addon-api@8.8.0", "", {}, "sha512-c5Ko1fZJIJmzhFIkhRN76WTq+fC6tWnGy9CXA0fA+XygsWZmEwG8vmbkNqxMyoaa0Tin4djul49NzdVcJJcjeA=="],
156
+
157
+ "tree-sitter-swift/tree-sitter-cli": ["tree-sitter-cli@0.23.2", "", { "bin": { "tree-sitter": "cli.js" } }, "sha512-kPPXprOqREX+C/FgUp2Qpt9jd0vSwn+hOgjzVv/7hapdoWpa+VeWId53rf4oNNd29ikheF12BYtGD/W90feMbA=="],
158
+
159
+ "tree-sitter-typescript/node-addon-api": ["node-addon-api@8.8.0", "", {}, "sha512-c5Ko1fZJIJmzhFIkhRN76WTq+fC6tWnGy9CXA0fA+XygsWZmEwG8vmbkNqxMyoaa0Tin4djul49NzdVcJJcjeA=="],
160
+
161
+ "tree-sitter-typescript/tree-sitter-javascript": ["tree-sitter-javascript@0.23.1", "", { "dependencies": { "node-addon-api": "^8.2.2", "node-gyp-build": "^4.8.2" }, "peerDependencies": { "tree-sitter": "^0.21.1" }, "optionalPeers": ["tree-sitter"] }, "sha512-/bnhbrTD9frUYHQTiYnPcxyHORIw157ERBa6dqzaKxvR/x3PC4Yzd+D1pZIMS6zNg2v3a8BZ0oK7jHqsQo9fWA=="],
162
+ }
163
+ }
@@ -7,57 +7,57 @@
7
7
  "id": "bugfix",
8
8
  "label": "Bug Fix",
9
9
  "description": "Something was broken, now fixed",
10
- "emoji": "🔴",
11
- "work_emoji": "🛠️"
10
+ "emoji": "",
11
+ "work_emoji": ""
12
12
  },
13
13
  {
14
14
  "id": "feature",
15
15
  "label": "Feature",
16
16
  "description": "New capability or functionality added",
17
- "emoji": "🟣",
18
- "work_emoji": "🛠️"
17
+ "emoji": "",
18
+ "work_emoji": ""
19
19
  },
20
20
  {
21
21
  "id": "refactor",
22
22
  "label": "Refactor",
23
23
  "description": "Code restructured, behavior unchanged",
24
- "emoji": "🔄",
25
- "work_emoji": "🛠️"
24
+ "emoji": "",
25
+ "work_emoji": ""
26
26
  },
27
27
  {
28
28
  "id": "change",
29
29
  "label": "Change",
30
30
  "description": "Generic modification (docs, config, misc)",
31
- "emoji": "",
32
- "work_emoji": "🛠️"
31
+ "emoji": "",
32
+ "work_emoji": ""
33
33
  },
34
34
  {
35
35
  "id": "discovery",
36
36
  "label": "Discovery",
37
37
  "description": "Learning about existing system",
38
- "emoji": "🔵",
39
- "work_emoji": "🔍"
38
+ "emoji": "",
39
+ "work_emoji": ""
40
40
  },
41
41
  {
42
42
  "id": "decision",
43
43
  "label": "Decision",
44
44
  "description": "Architectural/design choice with rationale",
45
- "emoji": "⚖️",
46
- "work_emoji": "⚖️"
45
+ "emoji": "",
46
+ "work_emoji": ""
47
47
  },
48
48
  {
49
49
  "id": "security_alert",
50
50
  "label": "Security Alert",
51
51
  "description": "A security issue that needs attention before continuing.",
52
- "emoji": "🚨",
53
- "work_emoji": "🚨"
52
+ "emoji": "",
53
+ "work_emoji": ""
54
54
  },
55
55
  {
56
56
  "id": "security_note",
57
57
  "label": "Security Note",
58
58
  "description": "A security-relevant observation worth recording, but not urgent.",
59
- "emoji": "🔐",
60
- "work_emoji": "🔐"
59
+ "emoji": "",
60
+ "work_emoji": ""
61
61
  }
62
62
  ],
63
63
  "observation_concepts": [
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "claude-mem-plugin",
3
- "version": "13.3.0",
3
+ "version": "13.4.1",
4
4
  "private": true,
5
5
  "description": "Runtime dependencies for claude-mem bundled hooks",
6
6
  "type": "module",
7
7
  "dependencies": {
8
- "zod": "^4.3.6",
8
+ "zod": "^4.4.3",
9
9
  "tree-sitter-cli": "^0.26.5",
10
10
  "tree-sitter-c": "^0.24.1",
11
11
  "tree-sitter-cpp": "^0.23.4",
@@ -66,7 +66,15 @@ function isPluginDisabledInClaudeSettings() {
66
66
  const settingsPath = join(configDir, 'settings.json');
67
67
  if (!existsSync(settingsPath)) return false;
68
68
  const settings = JSON.parse(readFileSync(settingsPath, 'utf-8'));
69
- return settings?.enabledPlugins?.['claude-mem@thedotmack'] === false;
69
+ // No optional chaining (?.) here: this launcher must parse on the oldest
70
+ // Node that any host might invoke it with. Some Claude Code installs run
71
+ // hooks under a bundled pre-ES2020 Node whose ESM loader throws
72
+ // "SyntaxError: Unexpected token '.'" on `?.` (issue #2791).
73
+ return Boolean(
74
+ settings &&
75
+ settings.enabledPlugins &&
76
+ settings.enabledPlugins['claude-mem@thedotmack'] === false
77
+ );
70
78
  } catch {
71
79
  return false;
72
80
  }
@@ -142,57 +150,82 @@ if (child.stdin) {
142
150
  child.stdin.write(stdinData);
143
151
  child.stdin.end();
144
152
  } else {
145
- // Issue #2188: empty/missing stdin previously masked by `|| '{}'` fallback,
146
- // which silently hid WSL bash failures (e.g. hooks invoked under a broken
147
- // shell that never piped a payload). Surface the failure mode instead.
148
- const dataDir = process.env.CLAUDE_MEM_DATA_DIR || join(homedir(), '.claude-mem');
149
- const payloadType = stdinData === null
150
- ? 'null (no data event or stream error)'
151
- : stdinData === undefined
152
- ? 'undefined'
153
- : Buffer.isBuffer(stdinData) && stdinData.length === 0
154
- ? 'empty Buffer (zero bytes received)'
155
- : `unexpected (${typeof stdinData})`;
156
- const payloadByteLength = (stdinData && typeof stdinData.length === 'number')
157
- ? stdinData.length
158
- : 0;
159
- const diagnostic = [
160
- `[bun-runner] empty stdin payload received — issue #2188`,
161
- ` script: ${args[0]}`,
162
- ` payload byte length: ${payloadByteLength}`,
163
- ` payload type: ${payloadType}`,
164
- ` platform: ${process.platform}`,
165
- ` shell: ${process.env.SHELL || 'n/a'}`,
166
- ` stdin TTY: ${process.stdin.isTTY === true ? 'true' : process.stdin.isTTY === false ? 'false' : 'undefined'}`,
167
- ` timestamp: ${new Date().toISOString()}`,
168
- ` CLAUDE_PLUGIN_ROOT: ${RESOLVED_PLUGIN_ROOT}`,
169
- ].join('\n');
170
-
171
- // Write to stderr so Claude Code surfaces the diagnostic.
172
- console.error(diagnostic);
173
-
174
- // Persist diagnostic to the runner-errors log and drop a CAPTURE_BROKEN marker
175
- // file so the next session-start hint can surface the failure. We exit 0 to
176
- // honor the project's exit-code strategy (worker/hook errors exit 0 to
177
- // prevent Windows Terminal tab pileup) the marker file is the durable
178
- // signal that something is wrong, not the exit code.
179
- try {
180
- const logsDir = join(dataDir, 'logs');
181
- mkdirSync(logsDir, { recursive: true });
182
- appendFileSync(join(logsDir, 'runner-errors.log'), diagnostic + '\n\n');
183
- mkdirSync(dataDir, { recursive: true });
184
- writeFileSync(join(dataDir, 'CAPTURE_BROKEN'), diagnostic + '\n');
185
- } catch (writeErr) {
186
- console.error(`[bun-runner] failed to persist diagnostic: ${writeErr && writeErr.message ? writeErr.message : writeErr}`);
187
- }
153
+ // Lifecycle subcommands (start, stop, restart, status) never consume stdin
154
+ // they manage the worker daemon, not hook payloads. Killing the child here
155
+ // prevents the daemon from starting/stopping on platforms where Claude Code
156
+ // doesn't pipe a payload for SessionStart (e.g. Windows CC ≤ 2.1.145).
157
+ const lifecycleCommands = ['start', 'stop', 'restart', 'status'];
158
+ const isLifecycle = lifecycleCommands.some(cmd => args.includes(cmd));
159
+
160
+ if (isLifecycle) {
161
+ // Lifecycle commands don't need stdin — close pipe and let child run.
162
+ try { child.stdin.end(); } catch {}
163
+ } else {
164
+ // Issue #2188: empty/missing stdin previously masked by `|| '{}'` fallback,
165
+ // which silently hid WSL bash failures (e.g. hooks invoked under a broken
166
+ // shell that never piped a payload). Surface the failure mode instead.
167
+ const dataDir = process.env.CLAUDE_MEM_DATA_DIR || join(homedir(), '.claude-mem');
168
+ const payloadType = stdinData === null
169
+ ? 'null (no data event or stream error)'
170
+ : stdinData === undefined
171
+ ? 'undefined'
172
+ : Buffer.isBuffer(stdinData) && stdinData.length === 0
173
+ ? 'empty Buffer (zero bytes received)'
174
+ : `unexpected (${typeof stdinData})`;
175
+ const payloadByteLength = (stdinData && typeof stdinData.length === 'number')
176
+ ? stdinData.length
177
+ : 0;
178
+ const diagnostic = [
179
+ `[bun-runner] empty stdin payload received issue #2188`,
180
+ ` script: ${args[0]}`,
181
+ ` payload byte length: ${payloadByteLength}`,
182
+ ` payload type: ${payloadType}`,
183
+ ` platform: ${process.platform}`,
184
+ ` shell: ${process.env.SHELL || 'n/a'}`,
185
+ ` stdin TTY: ${process.stdin.isTTY === true ? 'true' : process.stdin.isTTY === false ? 'false' : 'undefined'}`,
186
+ ` timestamp: ${new Date().toISOString()}`,
187
+ ` CLAUDE_PLUGIN_ROOT: ${RESOLVED_PLUGIN_ROOT}`,
188
+ ].join('\n');
189
+
190
+ // IO discipline (see src/shared/hook-io.ts intent vocabulary):
191
+ // - this stderr write is a USER_HINT (Claude Code surfaces it inline).
192
+ // - the CAPTURE_BROKEN marker file below is a DIAGNOSTIC durable signal for
193
+ // the next session-start hint.
194
+ // - exit 0 below is the EXIT_SIGNAL per CLAUDE.md (Windows Terminal tab
195
+ // management); the marker file, not the exit code, is the durable failure
196
+ // signal. bun-runner runs in its own node process BEFORE hookCommand's
197
+ // stderr buffer is installed, so this write is never swallowed.
198
+
199
+ // Write to stderr so Claude Code surfaces the diagnostic.
200
+ console.error(diagnostic);
201
+
202
+ // Persist diagnostic to the runner-errors log and drop a CAPTURE_BROKEN marker
203
+ // file so the next session-start hint can surface the failure. We exit 0 to
204
+ // honor the project's exit-code strategy (worker/hook errors exit 0 to
205
+ // prevent Windows Terminal tab pileup) — the marker file is the durable
206
+ // signal that something is wrong, not the exit code.
207
+ try {
208
+ const logsDir = join(dataDir, 'logs');
209
+ mkdirSync(logsDir, { recursive: true });
210
+ appendFileSync(join(logsDir, 'runner-errors.log'), diagnostic + '\n\n');
211
+ mkdirSync(dataDir, { recursive: true });
212
+ writeFileSync(join(dataDir, 'CAPTURE_BROKEN'), diagnostic + '\n');
213
+ } catch (writeErr) {
214
+ console.error(`[bun-runner] failed to persist diagnostic: ${writeErr && writeErr.message ? writeErr.message : writeErr}`);
215
+ }
188
216
 
189
- try { child.stdin.end(); } catch {}
190
- try { child.kill(); } catch {}
191
- process.exit(0);
217
+ try { child.stdin.end(); } catch {}
218
+ try { child.kill(); } catch {}
219
+ process.exit(0);
220
+ }
192
221
  }
193
222
  }
194
223
 
195
224
  child.on('error', (err) => {
225
+ // EXCEPTION to CLAUDE.md exit-0-on-error: Bun-not-found is a user environment
226
+ // problem, not a hook execution failure. Surfacing exit 1 here forces Claude
227
+ // Code to display the stderr message rather than silently retrying. This runs
228
+ // before any hook handler, so the exit-0 tab-management rationale doesn't apply.
196
229
  console.error(`Failed to start Bun: ${err.message}`);
197
230
  process.exit(1);
198
231
  });