summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: e96cbd95c2ffe5481100b8ba7b2d230dcdda6e1e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
# Maintainer: Your Name <your.email@example.com>

_pkgname=opencode-codebase-index
pkgname=opencode-codebase-index-bin
pkgver=0.5.2
pkgrel=1
pkgdesc='Semantic codebase indexing and search for OpenCode with an MCP server'
arch=('x86_64')
url='https://github.com/Helweg/opencode-codebase-index'
license=('MIT')
depends=('nodejs>=18' 'gcc-libs' 'glibc')
makedepends=('npm' 'jq')
provides=("opencode-codebase-index=$pkgver")
conflicts=('opencode-codebase-index')

source=(
  "$_pkgname-$pkgver.tgz::https://registry.npmjs.org/$_pkgname/-/$_pkgname-$pkgver.tgz"
  "package-lock-v$pkgver.json::https://raw.githubusercontent.com/Helweg/opencode-codebase-index/v$pkgver/package-lock.json"
  'npm-hono-node-server-1.19.9.tgz::https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.9.tgz'
  'npm-modelcontextprotocol-sdk-1.26.0.tgz::https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.26.0.tgz'
  'npm-ajv-8.18.0.tgz::https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz'
  'npm-json-schema-traverse-1.0.0.tgz::https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz'
  'npm-opencode-ai-plugin-1.1.21.tgz::https://registry.npmjs.org/@opencode-ai/plugin/-/plugin-1.1.21.tgz'
  'npm-zod-4.1.8.tgz::https://registry.npmjs.org/zod/-/zod-4.1.8.tgz'
  'npm-opencode-ai-sdk-1.1.21.tgz::https://registry.npmjs.org/@opencode-ai/sdk/-/sdk-1.1.21.tgz'
  'npm-accepts-2.0.0.tgz::https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz'
  'npm-ajv-formats-3.0.1.tgz::https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz'
  'npm-ajv-8.18.0.tgz::https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz'
  'npm-json-schema-traverse-1.0.0.tgz::https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz'
  'npm-body-parser-2.2.2.tgz::https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz'
  'npm-bytes-3.1.2.tgz::https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz'
  'npm-call-bind-apply-helpers-1.0.2.tgz::https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz'
  'npm-call-bound-1.0.4.tgz::https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz'
  'npm-content-disposition-1.0.1.tgz::https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.1.tgz'
  'npm-content-type-1.0.5.tgz::https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz'
  'npm-cookie-0.7.2.tgz::https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz'
  'npm-cookie-signature-1.2.2.tgz::https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz'
  'npm-cors-2.8.6.tgz::https://registry.npmjs.org/cors/-/cors-2.8.6.tgz'
  'npm-cross-spawn-7.0.6.tgz::https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz'
  'npm-debug-4.4.3.tgz::https://registry.npmjs.org/debug/-/debug-4.4.3.tgz'
  'npm-depd-2.0.0.tgz::https://registry.npmjs.org/depd/-/depd-2.0.0.tgz'
  'npm-dunder-proto-1.0.1.tgz::https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz'
  'npm-ee-first-1.1.1.tgz::https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz'
  'npm-encodeurl-2.0.0.tgz::https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz'
  'npm-es-define-property-1.0.1.tgz::https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz'
  'npm-es-errors-1.3.0.tgz::https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz'
  'npm-es-object-atoms-1.1.1.tgz::https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz'
  'npm-escape-html-1.0.3.tgz::https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz'
  'npm-etag-1.8.1.tgz::https://registry.npmjs.org/etag/-/etag-1.8.1.tgz'
  'npm-eventemitter3-5.0.1.tgz::https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz'
  'npm-eventsource-3.0.7.tgz::https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz'
  'npm-eventsource-parser-3.0.6.tgz::https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.6.tgz'
  'npm-express-5.2.1.tgz::https://registry.npmjs.org/express/-/express-5.2.1.tgz'
  'npm-express-rate-limit-8.2.1.tgz::https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.2.1.tgz'
  'npm-fast-deep-equal-3.1.3.tgz::https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz'
  'npm-fast-uri-3.1.0.tgz::https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz'
  'npm-finalhandler-2.1.1.tgz::https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz'
  'npm-forwarded-0.2.0.tgz::https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz'
  'npm-fresh-2.0.0.tgz::https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz'
  'npm-function-bind-1.1.2.tgz::https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz'
  'npm-get-intrinsic-1.3.0.tgz::https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz'
  'npm-get-proto-1.0.1.tgz::https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz'
  'npm-gopd-1.2.0.tgz::https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz'
  'npm-has-symbols-1.1.0.tgz::https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz'
  'npm-hasown-2.0.2.tgz::https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz'
  'npm-hono-4.12.1.tgz::https://registry.npmjs.org/hono/-/hono-4.12.1.tgz'
  'npm-http-errors-2.0.1.tgz::https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz'
  'npm-iconv-lite-0.7.2.tgz::https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz'
  'npm-inherits-2.0.4.tgz::https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz'
  'npm-ip-address-10.0.1.tgz::https://registry.npmjs.org/ip-address/-/ip-address-10.0.1.tgz'
  'npm-ipaddr.js-1.9.1.tgz::https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz'
  'npm-is-promise-4.0.0.tgz::https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz'
  'npm-isexe-2.0.0.tgz::https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz'
  'npm-jose-6.1.3.tgz::https://registry.npmjs.org/jose/-/jose-6.1.3.tgz'
  'npm-json-schema-typed-8.0.2.tgz::https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.2.tgz'
  'npm-math-intrinsics-1.1.0.tgz::https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz'
  'npm-media-typer-1.1.0.tgz::https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz'
  'npm-merge-descriptors-2.0.0.tgz::https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz'
  'npm-mime-db-1.54.0.tgz::https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz'
  'npm-mime-types-3.0.2.tgz::https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz'
  'npm-ms-2.1.3.tgz::https://registry.npmjs.org/ms/-/ms-2.1.3.tgz'
  'npm-negotiator-1.0.0.tgz::https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz'
  'npm-object-assign-4.1.1.tgz::https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz'
  'npm-object-inspect-1.13.4.tgz::https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz'
  'npm-on-finished-2.4.1.tgz::https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz'
  'npm-once-1.4.0.tgz::https://registry.npmjs.org/once/-/once-1.4.0.tgz'
  'npm-p-queue-9.1.0.tgz::https://registry.npmjs.org/p-queue/-/p-queue-9.1.0.tgz'
  'npm-p-timeout-7.0.1.tgz::https://registry.npmjs.org/p-timeout/-/p-timeout-7.0.1.tgz'
  'npm-parseurl-1.3.3.tgz::https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz'
  'npm-path-key-3.1.1.tgz::https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz'
  'npm-path-to-regexp-8.3.0.tgz::https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.3.0.tgz'
  'npm-pkce-challenge-5.0.1.tgz::https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.1.tgz'
  'npm-proxy-addr-2.0.7.tgz::https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz'
  'npm-qs-6.15.0.tgz::https://registry.npmjs.org/qs/-/qs-6.15.0.tgz'
  'npm-range-parser-1.2.1.tgz::https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz'
  'npm-raw-body-3.0.2.tgz::https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz'
  'npm-require-from-string-2.0.2.tgz::https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz'
  'npm-router-2.2.0.tgz::https://registry.npmjs.org/router/-/router-2.2.0.tgz'
  'npm-safer-buffer-2.1.2.tgz::https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz'
  'npm-send-1.2.1.tgz::https://registry.npmjs.org/send/-/send-1.2.1.tgz'
  'npm-serve-static-2.2.1.tgz::https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz'
  'npm-setprototypeof-1.2.0.tgz::https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz'
  'npm-shebang-command-2.0.0.tgz::https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz'
  'npm-shebang-regex-3.0.0.tgz::https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz'
  'npm-side-channel-1.1.0.tgz::https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz'
  'npm-side-channel-list-1.0.0.tgz::https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz'
  'npm-side-channel-map-1.0.1.tgz::https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz'
  'npm-side-channel-weakmap-1.0.2.tgz::https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz'
  'npm-statuses-2.0.2.tgz::https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz'
  'npm-toidentifier-1.0.1.tgz::https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz'
  'npm-type-is-2.0.1.tgz::https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz'
  'npm-unpipe-1.0.0.tgz::https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz'
  'npm-vary-1.1.2.tgz::https://registry.npmjs.org/vary/-/vary-1.1.2.tgz'
  'npm-which-2.0.2.tgz::https://registry.npmjs.org/which/-/which-2.0.2.tgz'
  'npm-wrappy-1.0.2.tgz::https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz'
  'npm-zod-3.25.76.tgz::https://registry.npmjs.org/zod/-/zod-3.25.76.tgz'
  'npm-zod-to-json-schema-3.25.1.tgz::https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.1.tgz'
)

noextract=("${source[@]%%::*}")

sha256sums=('c1a915b43c2abf551c3d87978e72917b86db43cb35d1f1b8ddde4e1607b00ac9'
            '2d9f0e7a9a87e80103d22d878acd6b36e8028dcd41fefdb2a48f5ed9f2c29158'
            'a6c2c236d9a9a0191b4ec19f06b7cf20bc0578bbe6422ffd7eeebc92d1d136e9'
            'd932597ad68dabf54fc3899cb5afb74939443e36af65d50ea709c9bd0ea1e9a8'
            '522a6e330be5f537ca152618413b34e857ee8ff9e3f6a8ae17a2bffe788c9cc0'
            '023222622df29fc274bde5d3590e47aa1d4a8e3c1d6e2aba029948ed79799b21'
            '9ee15ffc9a4dc3af76999912351e98126d2c852854b4b970418cbae2b5ec4114'
            '193e3a33dc66d679d522c40e6a5138788646d3c6a5039d0c5c2b3bede83b6635'
            'e388e075b0f024421a03b1bb3bd1b975f9aa84894071e9ebf8a3eb4e5c38c126'
            '173d915f7d88df8cd4db2129a030c3b1c9cafd3b7aee5b89465bf3ad18372542'
            'f4d6980fd367381fd29199066911e863db8d97496613b6c2c5b91563a150acc5'
            '522a6e330be5f537ca152618413b34e857ee8ff9e3f6a8ae17a2bffe788c9cc0'
            '023222622df29fc274bde5d3590e47aa1d4a8e3c1d6e2aba029948ed79799b21'
            'c28d97347e805dacc05973a20ab0052b8c25cf2468f1a6da4ac03141da73a30b'
            '835e37ad5a40da45eaed6e32d99847627a15b2a4671741182521fe48dee3c581'
            '073e9ff9dbabedf5c128020a677381e9f92c90188d118830b30a7656a7c37d2c'
            '32086f492fedf1b9b34811f2ee50ca2cca53da5c783f7cd5f939d3f1e86bbd32'
            'ddd2e9efc936c376fe08d95a55fcb379c1f42dcc3dcd7a1f6ff34bdc3f782a19'
            'ac31d098405f0242dd712218f38a14a6202bd4eb01067db05db765d9a9bd12c8'
            '76b160f8251c630a116a2e0acf03557b0758975b2c0df800607248fc9aae9e20'
            '4d2bbaaf1c299e60ef0d7df952b52af95b20d56cbcbd4468d4210650083553d3'
            '32242124397140800e1238a252b4cd74669d58c81b655d9d3721789b56c1c1ff'
            '188c320cdc413adfec03098fda72af7a9b02152ba13d3a8f87f172d93ced38ea'
            '89c1ac9c946ee8905a875837114528e97eeae35e03be3190584b2216af43e4a7'
            '28a58a2056093441f1d00d677d95918d2e4b3e98bac86237159101cae315d4a7'
            'ed1342228c82c10df9921c59d684df516a0cd6ed25b61e5f9d6330895326cfdb'
            '5148e8eb7e222b2a09127618bbdb5033daf6262cfc735d3101ea98620128b99c'
            '9b2e418b8851b8f9e7a13d5ada3bd4d3c5ef042885867261f556347d4bbefb29'
            '5986b8b13121340a8b0d5c7d8f0f961aa80ef3a74515ca9cb7a78d86ed0385f7'
            'd14dd1c35b4bd3b8aca3219fd3627eb7f3eb49cf6b4c8a7ca58b91fd7a190993'
            '3e18e4d757818aee7bf1921686c6c3e7f9676d17c5c6fec560567c6beee579ce'
            'a101155c3cbdfb1e4f98f2f83c8b5e392db6accfa606df0eba8b87a5762b0366'
            'f6a96c78a973d2ab660c9efeee6aa74a399cd9e770625ba1ed95e1aca9fd0faf'
            '3188d3a05772c99cf0ccf44f6cd8530bcbaf02ce0addcc47c33f26daff0f952c'
            '7c62d4bb196e59b39c5af79e550d6fe4261649a74d9f5e605b071e1da6081c92'
            '445c647d0fe2228184a66b2bfbcea173aa758ebb606fb2f079ce9b328c9537e9'
            '1773a16c02b4422653479b9c4d211268f7022bdac0d817b5698535bb485dd005'
            '03a5c127d279bb56d8877d029f19b892ef61c0699520feeab1c3fb03f91a742c'
            'b019a0980f27638dc3f85836b0e478f188e00d7a6e5852c0819fa86f56e47b8f'
            '3ad33c6b4bd8cc1d5f867b7453cc783a96ffc89101a9ad3a8bcfe7905a83581d'
            '22949bfc51a620b3598bbe67d65619a9efd781d52704a38d7ba675e248a8b872'
            '9b5a5de95fb85fcb58db5e4fcd94ce8ab9f0476d02202e20a5225cec60431c99'
            'ad08397ab05f62b2b507682e23aad699cf8cc33922e0030be0cb640a23277ad7'
            '704402651b02a1454f17d445fc7dd716efc282d059407126d58ef30a47e807aa'
            '662e27e54e00fe46fbb08f9f4aacb054e3695dbe72cc14b436613fbcfb780544'
            'eb2cc52afb1f1fd82c5fc2a58c2380f0f16fdcdb5631538f3c66887435d70681'
            'd536d0de4dd285dc1468fbb7f39334a47ee0eec9c27f9b626a6e71466c9fda82'
            '4460c7532f28b8df2ddc9a1ec17816d43c24d4b9591dc6c5936b82f7f86ae7c5'
            '50cdc4d2cd11ae04b6ee29f328d09022244962e5dfab303c8fc223ff8dfa807d'
            'cb50d2cad8cb407b4db0ea9b84b63cca9dee44aaca07c7ab98f310b0d7ae8fcf'
            'ad62bbb11baf079699a3f269ed089efdb589be16083ceed94a1117801e1a6c61'
            '61d46769e71f9235ae4d2f5652e5742e3beb83fb096a9d84247103624e8da03e'
            'd94dbc6c1bb3c5ac0fb12a73ade187108fc60de273a1b754f55044eb5e24afaf'
            'd982f74562cf75298360feb59bdc49f81ce8a897599adbb16c301a01bffa286c'
            '7441d9623f67fe4160eccfd82ae9a404dcd55e1e4f1b68e06e2374dade4e8fee'
            '853891173876fa03b8762cf63e7f0c0d60e524947f4e4d5852d94c22acb445a7'
            '47cfe872e088e28c53b736fef305324b57cc1cfc9f72a9b0f769f92731cb8359'
            '52a8cf8404d8be32ce804bca1c5b0823861cf9c4e3df1324dd9b170b56e047e0'
            'e7dc4126e4fcf4c3073b3f7e99531eadc8633f7837b20ec97359a8d7add06bc9'
            'b8c2c35575493dc086df88cfc468a9e2651b6617336480ab3f00fcf853f443a7'
            'b5dc531e1d1efc92cfb659be11e74e7e697caef935c233e05016a7b2997c19be'
            'ae88322a5fc71952d3990ae999a7afc7a4bf7cba086b9ccc1c9482432b101dce'
            '2b21054e65d0eabd58c5002d2713e968dd47b15700bfed4b7281a344ded1c420'
            '2f9dd28353c303ff8750fbf68e474755b01c54a989883d227d605f7bfa3dd2ac'
            'f6616e15e530ed552f9daa2d3ce71963947c6bc7c98c9b64fd3e673fd02622c6'
            'b5a2dfee1dc0ac52c623cd5c0304be5a8a41cfad40e09f1a13606972cb2dbc04'
            '782d726a263ba7b26cced612af97b80035516df4b0cd788524e7b2cebc4e29ed'
            '8324967a3afd8a45b0401e3554aebc1843f493bec46a89a7ce8cf072e62e90bf'
            'f64d42f1049c386cdac5204737e09564271639b2b7d203a3ea07ec07d5ddbd0a'
            'cf51460ba370c698f68b976e514d113497339ba018b6003e8e8eb569c6fccfcf'
            '651ee0909da8e8988c3d83c3c6df9e39852990f9f55fb7df588068354b0d17be'
            '0a39ef5e2e147e571a668c47a1e8b33961ae6764379ce65bc523e6bc80b13c02'
            '56ef4bfa11e097ce8196b26fa04b42d6091c32498fcab4478e6dd298435f021a'
            '4b8999acb914830edcd3c5b8fec632b32c6bc759ac3edc86336f5a9e08ba7b92'
            '80ca8c4a6c57c1b6e19ec238b69b6fa75a43aa412fcc0cc7dc56faf0001dfa45'
            'd1fcbbae5bc05562d13de7c520c2951699e8262a8317fa6c8bbcd8dcff3bea70'
            'a0d1b6f34f6d4e733429ba95f7adb7833c8ceab916ba574a93f8a8476bee46d9'
            '6c4f1565a52098c5ae7b45d7bb7441778452fdaacb6a0a92ab97c116b832d5bf'
            '905266e2662590b009e38dc096d4e4e103aafda9cb67e658ca985b2d0ad2f926'
            '66de2a025036de58bbe50ab1d42a24ec6d33eda338b8115a3ebf942dae8419db'
            'cb694a4965908f7775a0c757f00cf4e624d193cd71d77988fbcca0f597b88d82'
            'b144af37b39a9517f7a89f1d867e9c2cf29f13f4147d3e80c499fe6ffab69461'
            '78812f65ae3b98071ce1c9bacbe0666f4220d0b2753c2a11530eb27df440a3b3'
            'fa254fb316dd23ddcb2beebd533b23788aec4cf6a3dba58af34150170435c472'
            '36d4f72bb59372eb18202fee25ff3d8bf46655f0121830fbe32e32cbdc625f43'
            'c83bcc6ea632567e3f6928a83a1c0c7073519aaca9b88b847a3b404417eadfe2'
            '9acba5bd18a51e9cdf5898380e4df63f803e1844def64ae1a46f88cff86d556e'
            'fedbabaa6db26c6be0183f82777dfa852d59a62f8885de93bd32ebc28758958f'
            '8493e77b990b242efebd824d0912df161bf640fc75071d5bc844ce0d7706a485'
            '58074eb0c2ebc8aca9945cdbe405dbed0b43106ae5265879b7049424b27d1ccd'
            '3b256b6421300bcc962d891b1588fd4b64e84e339b9c29f78c61b72f2a7116d6'
            '3b2a54f0c5e7ad898c8f0ffda2a6805fb2cc5d68f53addf0b4a9ec0db9d0d06e'
            'ca800a24710488b568f4e73e8f570dd6b911c122cbf42b06930dee7c25949fe0'
            '186fcc77488de327daf911d362d4e773bab9909f1df2a5f0c20b875205b92e08'
            '18bf29ba4ea8a544df6f4645284f26f4200480f5bdadfa46aa1526da784975dd'
            '2dfb5e06d1d4bf1fe9f0fa7f633c4a2fde04d8b41cf0b9bd249a42561d5edfb6'
            '7378860671377a35e7a443ecfdca0745cfd066f595c90d581b827defea246e71'
            'a13adf5fddeb769655edce551e81fbb11904b9c9be76d95e41da8c4c499d4edc'
            'aff3730d91b7b1e143822956d14608f563163cf11b9d0ae602df1fe1e430fdfb'
            '9e1f1a05f0dd0c1dab64ee91ceb9bf55cd44d35368c70edda80a2fdc70a88377'
            '765275304b344f7773309e7e8d975eff73335c8cc981c1b06ec5b0ccf87786d2')

prepare() {
  rm -rf "$srcdir/$_pkgname-$pkgver"
  rm -f "$srcdir/runtime-closure.tsv"
  mkdir -p "$srcdir/$_pkgname-$pkgver"

  bsdtar -xpf "$srcdir/$_pkgname-$pkgver.tgz" \
    -C "$srcdir/$_pkgname-$pkgver" \
    --no-same-owner \
    --no-same-permissions \
    --strip-components=1

  jq '
    .dependencies = {
      "@modelcontextprotocol/sdk": "1.26.0",
      "@opencode-ai/plugin": "1.1.21",
      "p-queue": "9.1.0",
      "zod": "3.25.76"
    }
    | del(.peerDependencies, .peerDependenciesMeta)
  ' "$srcdir/$_pkgname-$pkgver/package.json" > "$srcdir/$_pkgname-$pkgver/package.json.tmp"

  mv "$srcdir/$_pkgname-$pkgver/package.json.tmp" \
    "$srcdir/$_pkgname-$pkgver/package.json"
  chmod 644 "$srcdir/$_pkgname-$pkgver/package.json"

  python - <<PY
import json
from collections import deque

lock_path = "$srcdir/package-lock-v$pkgver.json"
out_path = "$srcdir/runtime-closure.tsv"
roots = [
    "node_modules/p-queue",
    "node_modules/@modelcontextprotocol/sdk",
    "node_modules/@opencode-ai/plugin",
    "node_modules/zod",
]

with open(lock_path, "r", encoding="utf-8") as fh:
    lock = json.load(fh)

pkgs = lock["packages"]
all_paths = set(pkgs)


def resolve_dep(from_path, dep_name):
    parts = from_path.split("/") if from_path else []
    while True:
        prefix = "/".join(parts)
        candidate = (prefix + "/" if prefix else "") + "node_modules/" + dep_name
        if candidate in all_paths:
            return candidate
        if not parts:
            return None
        parts = parts[:-1]


def alias(path, version):
    name = path.rsplit("node_modules/", 1)[-1].replace("/node_modules/", "/")
    return f"npm-{name.replace('@', '').replace('/', '-')}-{version}.tgz"


seen = set()
queue = deque(roots)

while queue:
    path = queue.popleft()
    if path in seen or path not in pkgs:
        continue
    seen.add(path)
    pkg = pkgs[path]
    for field in ("dependencies", "optionalDependencies"):
        for dep_name in (pkg.get(field) or {}):
            resolved = resolve_dep(path, dep_name)
            if resolved:
                queue.append(resolved)

with open(out_path, "w", encoding="utf-8") as fh:
    for path in sorted(seen):
        pkg = pkgs[path]
        fh.write(f"{path}\t{alias(path, pkg['version'])}\n")
PY
}

package() {
  install -dm755 "$pkgdir/usr/lib/node_modules"
  cp -a "$srcdir/$_pkgname-$pkgver" "$pkgdir/usr/lib/node_modules/$_pkgname"

  while IFS=$'\t' read -r _pkgpath _tarball; do
    _dest="$pkgdir/usr/lib/node_modules/$_pkgname/$_pkgpath"
    mkdir -p "$_dest"
    bsdtar -xpf "$srcdir/$_tarball" \
      -C "$_dest" \
      --no-same-owner \
      --no-same-permissions \
      --strip-components=1
  done < "$srcdir/runtime-closure.tsv"

  ln -sf tool.js \
    "$pkgdir/usr/lib/node_modules/$_pkgname/node_modules/@opencode-ai/plugin/dist/tool"

  find "$pkgdir/usr/lib/node_modules/$_pkgname" -type d -exec chmod 755 {} +
  find "$pkgdir/usr/lib/node_modules/$_pkgname" -type f -exec chmod 644 {} +
  find "$pkgdir/usr/lib/node_modules/$_pkgname" -name '*.node' -exec chmod 755 {} +

  install -dm755 "$pkgdir/usr/bin"
  ln -s "../lib/node_modules/$_pkgname/dist/cli.js" \
    "$pkgdir/usr/bin/opencode-codebase-index-mcp"
  chmod 755 "$pkgdir/usr/lib/node_modules/$_pkgname/dist/cli.js"

  rm -f "$pkgdir/usr/lib/node_modules/$_pkgname/native/codebase-index-native.darwin-arm64.node"
  rm -f "$pkgdir/usr/lib/node_modules/$_pkgname/native/codebase-index-native.darwin-x64.node"
  rm -f "$pkgdir/usr/lib/node_modules/$_pkgname/native/codebase-index-native.linux-arm64-gnu.node"
  rm -f "$pkgdir/usr/lib/node_modules/$_pkgname/native/codebase-index-native.win32-x64-msvc.node"

  find "$pkgdir/usr/lib/node_modules/$_pkgname" \
    \( -name 'package-lock.json' -o -name '.package-lock.json' \) \
    -delete

  while IFS= read -r -d '' _pkgjson; do
    jq 'with_entries(select(.key | startswith("_") | not)) | del(.man)' \
      "$_pkgjson" > "$_pkgjson.tmp"
    mv "$_pkgjson.tmp" "$_pkgjson"
    chmod 644 "$_pkgjson"
  done < <(find "$pkgdir/usr/lib/node_modules/$_pkgname" -name package.json -print0)

  install -Dm644 "$srcdir/$_pkgname-$pkgver/LICENSE" \
    "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}