@hellolynk-ai/codex-plugin 0.2.101 → 0.2.102-macos.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 (46) hide show
  1. package/README.md +17 -17
  2. package/bin/hellolynk-client-setup.mjs +72 -11
  3. package/hellolynk-client-pack-manifest.json +109 -69
  4. package/hellolynk-client-pack-pin.json +1 -1
  5. package/package.json +8 -4
  6. package/plugins/hellolynk-codex/.codex-plugin/plugin.json +1 -1
  7. package/plugins/hellolynk-codex/.mcp.json +20 -19
  8. package/plugins/hellolynk-codex/package.json +1 -1
  9. package/plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-client-account.mjs +1 -1
  10. package/plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-client-profile.mjs +25 -2
  11. package/plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-darwin-host.mjs +256 -0
  12. package/plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-darwin-vault.mjs +153 -0
  13. package/plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-host-protected-store.mjs +20 -8
  14. package/plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-neutral-host-installation-store.mjs +3 -7
  15. package/plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-platform-credential-store.mjs +68 -14
  16. package/plugins/hellolynk-codex/runtime/bootstrap/platform/darwin/hellolynk-keychain-helper.bin +0 -0
  17. package/plugins/hellolynk-codex/runtime/bootstrap/platform/darwin/hellolynk-keychain-helper.swift +149 -0
  18. package/plugins/hellolynk-codex/runtime/connect-activate.mjs +5 -1
  19. package/plugins/hellolynk-codex/runtime/core/hellolynk-client-account.mjs +1 -1
  20. package/plugins/hellolynk-codex/runtime/core/hellolynk-client-profile.mjs +25 -2
  21. package/plugins/hellolynk-codex/runtime/core/hellolynk-client-update-entry.mjs +7 -3
  22. package/plugins/hellolynk-codex/runtime/core/hellolynk-client-update-runtime.mjs +24 -8
  23. package/plugins/hellolynk-codex/runtime/core/hellolynk-client-update.mjs +23 -9
  24. package/plugins/hellolynk-codex/runtime/core/hellolynk-darwin-host.mjs +256 -0
  25. package/plugins/hellolynk-codex/runtime/core/hellolynk-darwin-vault.mjs +153 -0
  26. package/plugins/hellolynk-codex/runtime/core/hellolynk-host-protected-store.mjs +20 -8
  27. package/plugins/hellolynk-codex/runtime/core/hellolynk-human-confirmation-ledger.mjs +53 -6
  28. package/plugins/hellolynk-codex/runtime/core/hellolynk-local-data-protection.mjs +22 -7
  29. package/plugins/hellolynk-codex/runtime/core/hellolynk-native-human-confirmation-broker.mjs +7 -5
  30. package/plugins/hellolynk-codex/runtime/core/hellolynk-neutral-host-installation-store.mjs +3 -7
  31. package/plugins/hellolynk-codex/runtime/core/hellolynk-neutral-host-launcher.mjs +9 -3
  32. package/plugins/hellolynk-codex/runtime/core/hellolynk-neutral-host-process.mjs +1 -1
  33. package/plugins/hellolynk-codex/runtime/core/hellolynk-platform-credential-store.mjs +68 -14
  34. package/plugins/hellolynk-codex/runtime/core/hellolynk-release-retention.mjs +78 -2
  35. package/plugins/hellolynk-codex/runtime/core/hellolynk-workbench-connection.mjs +5 -3
  36. package/plugins/hellolynk-codex/runtime/neutral-host-release-entry.mjs +1 -1
  37. package/plugins/hellolynk-codex/runtime/neutral-host-release-loader.mjs +1 -1
  38. package/plugins/hellolynk-codex/runtime/neutral-host-release-manifest.json +58 -26
  39. package/plugins/hellolynk-codex/runtime/neutral-host-release-pin.json +1 -1
  40. package/plugins/hellolynk-codex/runtime/platform/darwin/hellolynk-keychain-helper.bin +0 -0
  41. package/plugins/hellolynk-codex/runtime/platform/darwin/hellolynk-keychain-helper.swift +149 -0
  42. package/plugins/hellolynk-codex/server/codex-neutral-production.mjs +15 -9
  43. package/plugins/hellolynk-codex/server/mcp-server.mjs +1193 -1193
  44. package/plugins/hellolynk-codex/server/native-conversation-directory.mjs +33 -33
  45. package/plugins/hellolynk-codex/server/workbench-runtime.mjs +42 -42
  46. package/tools/hellolynk-activate-neutral-host-clients.mjs +5 -1
@@ -2,7 +2,7 @@
2
2
  "contract": "hellolynk-client-npm-pack-manifest-v1",
3
3
  "client": "codex",
4
4
  "packageName": "@hellolynk-ai/codex-plugin",
5
- "version": "0.2.101",
5
+ "version": "0.2.102-macos.1",
6
6
  "workbench": {
7
7
  "path": "plugins/hellolynk-codex/runtime/workbench/hellolynk-workbench-build.json",
8
8
  "contract": "hellolynk-shared-workbench-build-v1",
@@ -17,8 +17,8 @@
17
17
  },
18
18
  {
19
19
  "path": "bin/hellolynk-client-setup.mjs",
20
- "bytes": 141769,
21
- "sha256": "0bb0706c06bd193cfa37007dd95e3107b52aacb0a7ebaec2249b153ff7dd772b"
20
+ "bytes": 145198,
21
+ "sha256": "d7ab5068d7c88f4cdcd056db0074431ea33811a538c2ede4a420d1ee15f4452c"
22
22
  },
23
23
  {
24
24
  "path": "bin/hellolynk-mcp-config-shape.mjs",
@@ -32,8 +32,8 @@
32
32
  },
33
33
  {
34
34
  "path": "package.json",
35
- "bytes": 1713,
36
- "sha256": "3cd83c41e8536877505bf043a77b15fed01a0a7be18978c9835898fb690dfc8e"
35
+ "bytes": 1776,
36
+ "sha256": "8b20a1dc094f4e846029478dfb1d4f11b827c0e6edd1d5646eea02459b6480c0"
37
37
  },
38
38
  {
39
39
  "path": "plugins/hellolynk-codex/.app.json",
@@ -43,12 +43,12 @@
43
43
  {
44
44
  "path": "plugins/hellolynk-codex/.codex-plugin/plugin.json",
45
45
  "bytes": 1669,
46
- "sha256": "dfe2ede67b747c94a7485ecc6150286e3ac73f0fd1cae93357f473feae9ae5e3"
46
+ "sha256": "38d2a5204b66ec57368494e69ed71de655f798f9d37ab2af966b59c3ab07d0f2"
47
47
  },
48
48
  {
49
49
  "path": "plugins/hellolynk-codex/.mcp.json",
50
- "bytes": 373,
51
- "sha256": "c349aeb9545e8ed97f2eb5b7f4809880dae2c545b01ec049057d8ebd3a2221cc"
50
+ "bytes": 438,
51
+ "sha256": "510ae3b6f417c1cd8e4712704d9e76643d30e7b3d1a8d3363dda19eb30fe4580"
52
52
  },
53
53
  {
54
54
  "path": "plugins/hellolynk-codex/assets/hellolynk-mark.png",
@@ -58,12 +58,12 @@
58
58
  {
59
59
  "path": "plugins/hellolynk-codex/package.json",
60
60
  "bytes": 1030,
61
- "sha256": "5875df8d4163c0a84b3dc30265b1a5e7b977a7c92250aae013d3b513b3640c40"
61
+ "sha256": "befbca064334e8ff7f9d192f095ac1bd786a3882385a450fc2c2d2a5c9b2b7dd"
62
62
  },
63
63
  {
64
64
  "path": "plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-client-account.mjs",
65
- "bytes": 8414,
66
- "sha256": "ab7ec5dda92e510e7deb14f900fd2df4c6c3373fbeb4af4fb2b6c1a72aa41a99"
65
+ "bytes": 8423,
66
+ "sha256": "6e03a05127d4dc86be6391567b51a956d1a987acf4e23f5699ce0e00c3187b7e"
67
67
  },
68
68
  {
69
69
  "path": "plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-client-core.mjs",
@@ -72,8 +72,18 @@
72
72
  },
73
73
  {
74
74
  "path": "plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-client-profile.mjs",
75
- "bytes": 8282,
76
- "sha256": "4b45a78b4d6c4794a1f494bd95777579c32c56a68321a1d3b484048942ae4742"
75
+ "bytes": 9359,
76
+ "sha256": "8be37831c96610e3d0a64848ada86488970cc6079e49764b47d8a8b2ba852269"
77
+ },
78
+ {
79
+ "path": "plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-darwin-host.mjs",
80
+ "bytes": 14704,
81
+ "sha256": "0772d7a23280b18d5bc59383a6a14fd2ecfd9de1ec53b351be0250770e3e2e70"
82
+ },
83
+ {
84
+ "path": "plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-darwin-vault.mjs",
85
+ "bytes": 7506,
86
+ "sha256": "b6094d856af016e674e4a0183a4e474397bbe92e66638743fa62fe085b554d30"
77
87
  },
78
88
  {
79
89
  "path": "plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-host-auth.mjs",
@@ -82,8 +92,8 @@
82
92
  },
83
93
  {
84
94
  "path": "plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-host-protected-store.mjs",
85
- "bytes": 126836,
86
- "sha256": "89b6e6c4ce9c6ba2984f8c301de4251da6004bdd402cc44d578a4505c21b75b1"
95
+ "bytes": 127785,
96
+ "sha256": "10f81f4f6a5dd2fe9a742e847b2eb47dbf20f802f4414f46a05ccbc3505148e2"
87
97
  },
88
98
  {
89
99
  "path": "plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-local-process-lock.mjs",
@@ -92,19 +102,29 @@
92
102
  },
93
103
  {
94
104
  "path": "plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-neutral-host-installation-store.mjs",
95
- "bytes": 33525,
96
- "sha256": "b5f6288732af6f9b9c0c750f6002eae657dde9513fc97674f6e59200f3cc9dc6"
105
+ "bytes": 33232,
106
+ "sha256": "42ae1e7deb876a8308b7bfed6a7b891d1834117b62504fc5befe3f91a0b4c740"
97
107
  },
98
108
  {
99
109
  "path": "plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-platform-credential-store.mjs",
100
- "bytes": 34521,
101
- "sha256": "f27f5f377cc4d6d2b5664212cf8fcc4c98d910064c1677ff9c1f776df1a59dba"
110
+ "bytes": 38559,
111
+ "sha256": "3969708bafefc3b267bb34a9dcc115804c874ad14f4a036426d727c02ff70d42"
102
112
  },
103
113
  {
104
114
  "path": "plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-runtime-safety.cjs",
105
115
  "bytes": 24643,
106
116
  "sha256": "43d576d9f774409f4a735793c1503a6f397e787b10c59a4ac9cc9257299f5efe"
107
117
  },
118
+ {
119
+ "path": "plugins/hellolynk-codex/runtime/bootstrap/platform/darwin/hellolynk-keychain-helper.bin",
120
+ "bytes": 110784,
121
+ "sha256": "f1a782c08229ebc0e8d1704b6390e91c5695e084b4df0a1a6dc043f6b23700ab"
122
+ },
123
+ {
124
+ "path": "plugins/hellolynk-codex/runtime/bootstrap/platform/darwin/hellolynk-keychain-helper.swift",
125
+ "bytes": 7771,
126
+ "sha256": "5d933589a1d739217bc164f73ab9afadc9e27cc512e1c00c0be4b38975fb6d5b"
127
+ },
108
128
  {
109
129
  "path": "plugins/hellolynk-codex/runtime/bootstrap/platform/windows/hellolynk-host-protected-store.ps1",
110
130
  "bytes": 152700,
@@ -112,8 +132,8 @@
112
132
  },
113
133
  {
114
134
  "path": "plugins/hellolynk-codex/runtime/connect-activate.mjs",
115
- "bytes": 33499,
116
- "sha256": "50ec8b0a58ac5b099a653722b0946acb23d0a29a054bfb3856dc963db6f84bee"
135
+ "bytes": 33789,
136
+ "sha256": "93c68c23ed2d18e87766ecd8dae6c3d8e757eca6ad7569477c8ec994402a8b0e"
117
137
  },
118
138
  {
119
139
  "path": "plugins/hellolynk-codex/runtime/core/hellolynk-agent-configurator.mjs",
@@ -122,8 +142,8 @@
122
142
  },
123
143
  {
124
144
  "path": "plugins/hellolynk-codex/runtime/core/hellolynk-client-account.mjs",
125
- "bytes": 8414,
126
- "sha256": "ab7ec5dda92e510e7deb14f900fd2df4c6c3373fbeb4af4fb2b6c1a72aa41a99"
145
+ "bytes": 8423,
146
+ "sha256": "6e03a05127d4dc86be6391567b51a956d1a987acf4e23f5699ce0e00c3187b7e"
127
147
  },
128
148
  {
129
149
  "path": "plugins/hellolynk-codex/runtime/core/hellolynk-client-core.mjs",
@@ -132,29 +152,39 @@
132
152
  },
133
153
  {
134
154
  "path": "plugins/hellolynk-codex/runtime/core/hellolynk-client-profile.mjs",
135
- "bytes": 8282,
136
- "sha256": "4b45a78b4d6c4794a1f494bd95777579c32c56a68321a1d3b484048942ae4742"
155
+ "bytes": 9359,
156
+ "sha256": "8be37831c96610e3d0a64848ada86488970cc6079e49764b47d8a8b2ba852269"
137
157
  },
138
158
  {
139
159
  "path": "plugins/hellolynk-codex/runtime/core/hellolynk-client-update-entry.mjs",
140
- "bytes": 1581,
141
- "sha256": "b2740406d79d0fa129c3bd1b5e6a07c3f52eed5e35a91ffea40b099ddc708936"
160
+ "bytes": 1935,
161
+ "sha256": "1e513a4a98437dc60b49f9f39fc3958808c3acfaeb6c5bb638efea2e61d4b1ee"
142
162
  },
143
163
  {
144
164
  "path": "plugins/hellolynk-codex/runtime/core/hellolynk-client-update-runtime.mjs",
145
- "bytes": 39709,
146
- "sha256": "3ed31f0cea704c3ad26481126a78a7d39c21df69a5c52d1074a096a2b7b3e32f"
165
+ "bytes": 40918,
166
+ "sha256": "96aa12ba21619a0cd78ef61c63be6f43fdb61f892201ce923ee35e0912ae2e52"
147
167
  },
148
168
  {
149
169
  "path": "plugins/hellolynk-codex/runtime/core/hellolynk-client-update.mjs",
150
- "bytes": 27932,
151
- "sha256": "8f0d6f54313c91bd2ffb4643859a91dd1e122bb5f1da9143fe2851a3370d7fbf"
170
+ "bytes": 28747,
171
+ "sha256": "93bf5f2ecc72731d70367306989fa18c82fa7bf9e4b5f785a1376f0d55239428"
152
172
  },
153
173
  {
154
174
  "path": "plugins/hellolynk-codex/runtime/core/hellolynk-contact-request-e2ee.mjs",
155
175
  "bytes": 34163,
156
176
  "sha256": "657664c6250d2738061e1ec2680eda6b36063c357d9e2d9c743e4218ece50895"
157
177
  },
178
+ {
179
+ "path": "plugins/hellolynk-codex/runtime/core/hellolynk-darwin-host.mjs",
180
+ "bytes": 14704,
181
+ "sha256": "0772d7a23280b18d5bc59383a6a14fd2ecfd9de1ec53b351be0250770e3e2e70"
182
+ },
183
+ {
184
+ "path": "plugins/hellolynk-codex/runtime/core/hellolynk-darwin-vault.mjs",
185
+ "bytes": 7506,
186
+ "sha256": "b6094d856af016e674e4a0183a4e474397bbe92e66638743fa62fe085b554d30"
187
+ },
158
188
  {
159
189
  "path": "plugins/hellolynk-codex/runtime/core/hellolynk-device-enrollment.mjs",
160
190
  "bytes": 26664,
@@ -177,8 +207,8 @@
177
207
  },
178
208
  {
179
209
  "path": "plugins/hellolynk-codex/runtime/core/hellolynk-host-protected-store.mjs",
180
- "bytes": 126836,
181
- "sha256": "89b6e6c4ce9c6ba2984f8c301de4251da6004bdd402cc44d578a4505c21b75b1"
210
+ "bytes": 127785,
211
+ "sha256": "10f81f4f6a5dd2fe9a742e847b2eb47dbf20f802f4414f46a05ccbc3505148e2"
182
212
  },
183
213
  {
184
214
  "path": "plugins/hellolynk-codex/runtime/core/hellolynk-host-transport-client.mjs",
@@ -192,8 +222,8 @@
192
222
  },
193
223
  {
194
224
  "path": "plugins/hellolynk-codex/runtime/core/hellolynk-human-confirmation-ledger.mjs",
195
- "bytes": 11071,
196
- "sha256": "63bcbbb0870ad83fc031636d74ce77fc070d5f4d1d4c10297f8b3ec9ad85bbf6"
225
+ "bytes": 14416,
226
+ "sha256": "43b6b6baea422eb226c850f15966c907d834bc2f5aadbab6ee0c9e05445f182f"
197
227
  },
198
228
  {
199
229
  "path": "plugins/hellolynk-codex/runtime/core/hellolynk-human-relationship-controller.mjs",
@@ -232,8 +262,8 @@
232
262
  },
233
263
  {
234
264
  "path": "plugins/hellolynk-codex/runtime/core/hellolynk-local-data-protection.mjs",
235
- "bytes": 25720,
236
- "sha256": "1bda879aa0bdf46700a63374e82cc7bc639385656b1463a75a49e8510971066c"
265
+ "bytes": 26663,
266
+ "sha256": "cea4f73ec5a31918c48bd8234e28d38ff1bb8028d2591f542b15ee12b2238e1f"
237
267
  },
238
268
  {
239
269
  "path": "plugins/hellolynk-codex/runtime/core/hellolynk-local-identity-trust.mjs",
@@ -277,8 +307,8 @@
277
307
  },
278
308
  {
279
309
  "path": "plugins/hellolynk-codex/runtime/core/hellolynk-native-human-confirmation-broker.mjs",
280
- "bytes": 39491,
281
- "sha256": "2fb2d3b40869362be3e40a1ec55947021319af5315cbf8fdc5ed59df717cceb3"
310
+ "bytes": 39735,
311
+ "sha256": "f190c28af2703b58a685a57213b2789df7eda35d7699d718f9420cd1dddd1b65"
282
312
  },
283
313
  {
284
314
  "path": "plugins/hellolynk-codex/runtime/core/hellolynk-native-inbox-runtime.mjs",
@@ -307,18 +337,18 @@
307
337
  },
308
338
  {
309
339
  "path": "plugins/hellolynk-codex/runtime/core/hellolynk-neutral-host-installation-store.mjs",
310
- "bytes": 33525,
311
- "sha256": "b5f6288732af6f9b9c0c750f6002eae657dde9513fc97674f6e59200f3cc9dc6"
340
+ "bytes": 33232,
341
+ "sha256": "42ae1e7deb876a8308b7bfed6a7b891d1834117b62504fc5befe3f91a0b4c740"
312
342
  },
313
343
  {
314
344
  "path": "plugins/hellolynk-codex/runtime/core/hellolynk-neutral-host-launcher.mjs",
315
- "bytes": 29457,
316
- "sha256": "789b2531cdbde6e6d8f91f2a40746372e903e9e48e8aa6846b9abf2d28150780"
345
+ "bytes": 29655,
346
+ "sha256": "d94b853a7ed1ebc9c7e9bd7c37e2405e39849fb6d4ddf3d697e17ba169eda6d2"
317
347
  },
318
348
  {
319
349
  "path": "plugins/hellolynk-codex/runtime/core/hellolynk-neutral-host-process.mjs",
320
350
  "bytes": 225161,
321
- "sha256": "af6cb6585baae477f87ee880bd044dffb4c7f71667bfa78bcbf0d4d20e7483af"
351
+ "sha256": "e744bacf65f7b86cbcf7d654189c0e07e09401083e2b6f9053b17c1c3bacd1b4"
322
352
  },
323
353
  {
324
354
  "path": "plugins/hellolynk-codex/runtime/core/hellolynk-neutral-host-store-adapters.mjs",
@@ -332,8 +362,8 @@
332
362
  },
333
363
  {
334
364
  "path": "plugins/hellolynk-codex/runtime/core/hellolynk-platform-credential-store.mjs",
335
- "bytes": 34521,
336
- "sha256": "f27f5f377cc4d6d2b5664212cf8fcc4c98d910064c1677ff9c1f776df1a59dba"
365
+ "bytes": 38559,
366
+ "sha256": "3969708bafefc3b267bb34a9dcc115804c874ad14f4a036426d727c02ff70d42"
337
367
  },
338
368
  {
339
369
  "path": "plugins/hellolynk-codex/runtime/core/hellolynk-relay-client-cli.mjs",
@@ -342,8 +372,8 @@
342
372
  },
343
373
  {
344
374
  "path": "plugins/hellolynk-codex/runtime/core/hellolynk-release-retention.mjs",
345
- "bytes": 20624,
346
- "sha256": "9b02a42a510fa5ef4a251b6e675f9ccc60f20b718d17c1617027cd048c5634dd"
375
+ "bytes": 24519,
376
+ "sha256": "7cfd7e20c37ac1479f2472cc5fba8e830dcd1b83b91a86c340749cf145f0d661"
347
377
  },
348
378
  {
349
379
  "path": "plugins/hellolynk-codex/runtime/core/hellolynk-runtime-safety.cjs",
@@ -357,8 +387,8 @@
357
387
  },
358
388
  {
359
389
  "path": "plugins/hellolynk-codex/runtime/core/hellolynk-workbench-connection.mjs",
360
- "bytes": 14252,
361
- "sha256": "d3396350fd75af78e60772e021cf6dfb643d9eee41894c5461c959a56650cb60"
390
+ "bytes": 14339,
391
+ "sha256": "6ce8e75025d31ed81c39150df2766231fc871ef18c234de986dc910bab79d639"
362
392
  },
363
393
  {
364
394
  "path": "plugins/hellolynk-codex/runtime/neutral-host-bootstrap.mjs",
@@ -367,23 +397,33 @@
367
397
  },
368
398
  {
369
399
  "path": "plugins/hellolynk-codex/runtime/neutral-host-release-entry.mjs",
370
- "bytes": 3432,
371
- "sha256": "23e88d39362fe556eb96f86b2ac9740c0390f33f01edee5c89d708c80c4f8fa6"
400
+ "bytes": 3441,
401
+ "sha256": "698d7e80d38353d56c7f1c337fbc676e8649d08afc726ffcb31215dc11fc8455"
372
402
  },
373
403
  {
374
404
  "path": "plugins/hellolynk-codex/runtime/neutral-host-release-loader.mjs",
375
- "bytes": 7567,
376
- "sha256": "15593e237fd5cbd765b65e60efe7a1c87e24a5390ad932c8a23d2c03b8da9770"
405
+ "bytes": 7577,
406
+ "sha256": "283a20c6a9b90481bc03c143ab51d5289abf7b7a86fbe51fba7ea2ae1e6d2c60"
377
407
  },
378
408
  {
379
409
  "path": "plugins/hellolynk-codex/runtime/neutral-host-release-manifest.json",
380
- "bytes": 13440,
381
- "sha256": "5b035cb2d82e7543b801ca9d3b35a36e3f54a7b9aff9afcdf9f479926c537f56"
410
+ "bytes": 14698,
411
+ "sha256": "2cc4af5084d836c44b30aa3f747ab0562980991edf78aba149aaded974d32b3c"
382
412
  },
383
413
  {
384
414
  "path": "plugins/hellolynk-codex/runtime/neutral-host-release-pin.json",
385
415
  "bytes": 146,
386
- "sha256": "af12ef2162ae5cddfda9707d919e4c7008478da434c581bcc26c8ed01738be11"
416
+ "sha256": "ea352aec41635ec6e187bc3cfb76a0c35d0100a5628293b40c25ef049aa50650"
417
+ },
418
+ {
419
+ "path": "plugins/hellolynk-codex/runtime/platform/darwin/hellolynk-keychain-helper.bin",
420
+ "bytes": 110784,
421
+ "sha256": "f1a782c08229ebc0e8d1704b6390e91c5695e084b4df0a1a6dc043f6b23700ab"
422
+ },
423
+ {
424
+ "path": "plugins/hellolynk-codex/runtime/platform/darwin/hellolynk-keychain-helper.swift",
425
+ "bytes": 7771,
426
+ "sha256": "5d933589a1d739217bc164f73ab9afadc9e27cc512e1c00c0be4b38975fb6d5b"
387
427
  },
388
428
  {
389
429
  "path": "plugins/hellolynk-codex/runtime/platform/windows/configure-agent.ps1",
@@ -552,8 +592,8 @@
552
592
  },
553
593
  {
554
594
  "path": "plugins/hellolynk-codex/server/codex-neutral-production.mjs",
555
- "bytes": 26960,
556
- "sha256": "ffb8e689df1b600bcca85159af8d59f0fad819827f48ba9a218a63dfd7a3daa2"
595
+ "bytes": 27551,
596
+ "sha256": "2e09f95b8c15ac307d3be0e5b29fecd00e5eae95fd816e885c51484990e703cb"
557
597
  },
558
598
  {
559
599
  "path": "plugins/hellolynk-codex/server/mcp-proxy.mjs",
@@ -562,13 +602,13 @@
562
602
  },
563
603
  {
564
604
  "path": "plugins/hellolynk-codex/server/mcp-server.mjs",
565
- "bytes": 60463,
566
- "sha256": "d20e041d6ce63c52bbdf7faac7e7c2ed288444fca014f861f1a8eb15d8067497"
605
+ "bytes": 59270,
606
+ "sha256": "2333f154c55b629a4a789b640be7099bbb8a84e90a17f84b77830210b527387a"
567
607
  },
568
608
  {
569
609
  "path": "plugins/hellolynk-codex/server/native-conversation-directory.mjs",
570
- "bytes": 2352,
571
- "sha256": "d6e3c1bd6e338bb13518760e0d2a350d3c9a28ef0a493bcbd53b44c610bfd56d"
610
+ "bytes": 2319,
611
+ "sha256": "382ca445887ef518d9fd58c7fdf18c55e8865623102396822d73df5f987b1b3d"
572
612
  },
573
613
  {
574
614
  "path": "plugins/hellolynk-codex/server/native-reply-routes.mjs",
@@ -592,8 +632,8 @@
592
632
  },
593
633
  {
594
634
  "path": "plugins/hellolynk-codex/server/workbench-runtime.mjs",
595
- "bytes": 8902,
596
- "sha256": "1136c7ea50cc73065fe04094c5b5c19cb676c40a0a189979015766a9c4e908d8"
635
+ "bytes": 8860,
636
+ "sha256": "99e069a72a0be3e73a993b2092d55470fcb481eb381841a156b2756415a0a0a9"
597
637
  },
598
638
  {
599
639
  "path": "plugins/hellolynk-codex/skills/hellolynk-open/agents/openai.yaml",
@@ -607,13 +647,13 @@
607
647
  },
608
648
  {
609
649
  "path": "README.md",
610
- "bytes": 4536,
611
- "sha256": "6876323b3a86b6cce25b84f6c49232553ca4f8b9abd0c12f595a9b3b971f4e76"
650
+ "bytes": 4578,
651
+ "sha256": "95cd3887026e6a275dce26e50667c1422fad356b59409ce15d6f84ef2207ed92"
612
652
  },
613
653
  {
614
654
  "path": "tools/hellolynk-activate-neutral-host-clients.mjs",
615
- "bytes": 33697,
616
- "sha256": "7f344d823851e267000aa7640472ad19943e1f162caa0820f8c8e9473c4ce2b5"
655
+ "bytes": 34020,
656
+ "sha256": "6d838bd1a53a0567ff451adb8b46c3002b3ef092f1af4062b2b8c2b16eaa19cf"
617
657
  }
618
658
  ]
619
659
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "contract": "hellolynk-client-npm-pack-pin-v1",
3
- "manifestSha256": "91fc0e4ecf1d6af962f1b81f193d2898f26f0d7dd71882990cd5b2b829c8e336"
3
+ "manifestSha256": "20c169b5149efb01cd3ac7d550b61f2959a491fe9e5c5d44f6106643aefdf65d"
4
4
  }
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@hellolynk-ai/codex-plugin",
3
- "version": "0.2.101",
3
+ "version": "0.2.102-macos.1",
4
4
  "description": "HelloLynk Messaging for Codex: open conversations and let your AI message other people's AI assistants.",
5
5
  "homepage": "https://hellolynk.com",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "git+https://github.com/haoyun18881-beep/HelloLynk.git",
9
- "directory": "clients/codex"
9
+ "directory": "clients/codex-macos"
10
10
  },
11
11
  "bugs": {
12
12
  "url": "https://github.com/haoyun18881-beep/HelloLynk/issues"
@@ -20,7 +20,10 @@
20
20
  "license": "SEE LICENSE IN LICENSE",
21
21
  "type": "module",
22
22
  "os": [
23
- "win32"
23
+ "darwin"
24
+ ],
25
+ "cpu": [
26
+ "arm64"
24
27
  ],
25
28
  "engines": {
26
29
  "node": ">=22.16.0"
@@ -47,7 +50,8 @@
47
50
  },
48
51
  "publishConfig": {
49
52
  "access": "public",
50
- "registry": "https://registry.npmjs.org/"
53
+ "registry": "https://registry.npmjs.org/",
54
+ "tag": "macos"
51
55
  },
52
56
  "hellolynkClient": {
53
57
  "client": "codex",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hellolynk-codex",
3
- "version": "0.2.101",
3
+ "version": "0.2.102",
4
4
  "description": "HelloLynk 通讯、本地未读提醒与安全文字收发的 Codex 插件。",
5
5
  "author": {
6
6
  "name": "HelloLynk local project"
@@ -1,19 +1,20 @@
1
- {
2
- "mcpServers": {
3
- "hellolynk-codex": {
4
- "command": "node",
5
- "args": [
6
- "./server/mcp-proxy.mjs"
7
- ],
8
- "cwd": ".",
9
- "env": {
10
- "HELLOLYNK_HOST_MODE": "neutral"
11
- },
12
- "env_vars": [
13
- "HELLOLYNK_NEUTRAL_STORE_ROOT",
14
- "CODEX_APP_TOOLS_PIPE_PATH",
15
- "CODEX_THREAD_ID"
16
- ]
17
- }
18
- }
19
- }
1
+ {
2
+ "mcpServers": {
3
+ "hellolynk-codex": {
4
+ "command": "/Applications/ChatGPT.app/Contents/Resources/cua_node/bin/node",
5
+ "args": [
6
+ "./server/mcp-proxy.mjs"
7
+ ],
8
+ "cwd": ".",
9
+ "env": {
10
+ "HELLOLYNK_HOST_MODE": "neutral",
11
+ "TMPDIR": "/tmp"
12
+ },
13
+ "env_vars": [
14
+ "HELLOLYNK_NEUTRAL_STORE_ROOT",
15
+ "CODEX_APP_TOOLS_PIPE_PATH",
16
+ "CODEX_THREAD_ID"
17
+ ]
18
+ }
19
+ }
20
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hellolynk-ai/codex-plugin",
3
- "version": "0.2.101",
3
+ "version": "0.2.102",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "Project-local HelloLynk Messaging, unread notification, and secure messaging plugin for Codex.",
@@ -68,7 +68,7 @@ export function withClientAccountLock(client, root, operation) {
68
68
 
69
69
  export function createClientAccountActions(options) {
70
70
  const client = options?.client;
71
- const root = options?.storeRoot || defaultNeutralHostStoreRoot("win32", options?.env || process.env);
71
+ const root = options?.storeRoot || defaultNeutralHostStoreRoot(process.platform, options?.env || process.env);
72
72
  statePath(client, clientAccountBaseRoot(root));
73
73
  const readAccountState = () => {
74
74
  const state = readClientAccount(client, root);
@@ -1,4 +1,5 @@
1
1
  import { lstat, mkdir, open, readFile, rename, rm, stat } from "node:fs/promises";
2
+ import { readdirSync } from "node:fs";
2
3
  import { homedir } from "node:os";
3
4
  import { basename, dirname, isAbsolute, join, resolve } from "node:path";
4
5
  import { randomUUID } from "node:crypto";
@@ -19,12 +20,34 @@ const SAFE_SCOPE = /^[a-z][a-z0-9_.:-]{0,127}$/;
19
20
  const MAX_PROFILE_BYTES = 64 * 1024;
20
21
 
21
22
  export function defaultHelloLynkClientRoot(platform = process.platform, env = process.env) {
22
- const home = resolve(String(env.HOME || env.USERPROFILE || homedir()));
23
- if (platform === "win32") return resolve(String(env.LOCALAPPDATA || join(home, "AppData", "Local")), "HelloLynk");
23
+ const home = resolve(String((platform === "win32" ? env.USERPROFILE || env.HOME : env.HOME || env.USERPROFILE) || homedir()));
24
+ if (platform === "win32") {
25
+ const current = join(home, ".hellolynk", "hellolynk-v2");
26
+ // Once selected, another client's older installer must not move us back.
27
+ if (hasWindowsClientInstallation(current)) return current;
28
+ const existing = resolve(String(env.LOCALAPPDATA || join(home, "AppData", "Local")), "HelloLynk");
29
+ // AppData created from a packaged desktop app can be private to that app.
30
+ // Keep an existing installation; an empty failed setup is not an account.
31
+ if (hasWindowsClientInstallation(existing)) return existing;
32
+ return current;
33
+ }
24
34
  if (platform === "darwin") return join(home, "Library", "Application Support", "HelloLynk");
25
35
  return resolve(String(env.XDG_DATA_HOME || join(home, ".local", "share")), "hellolynk");
26
36
  }
27
37
 
38
+ function hasWindowsClientInstallation(root) {
39
+ for (const directory of ["profiles", "releases", "host", "credentials", "e2ee-private-keys"]) {
40
+ try {
41
+ const entries = readdirSync(join(root, directory), { withFileTypes: true });
42
+ if (entries.some((entry) => directory !== "host" || entry.name !== "runtime")) return true;
43
+ } catch (error) {
44
+ // An unreadable existing location must not silently become a fresh account.
45
+ if (error.code !== "ENOENT") return true;
46
+ }
47
+ }
48
+ return false;
49
+ }
50
+
28
51
  function safeId(value, code) {
29
52
  const normalized = String(value || "").trim();
30
53
  if (!SAFE_ID.test(normalized)) throw new Error(code);