OverviewFilesCommitsIssuesDocsReleasesPeers

holepunchto-kb commits / 9685cae

Complete Phase 1B Tier 4 selective analysis: 150 additional repos
Deep code analysis completed for selective tier 4 (next 150 by stars): - Cloned and analyzed 150 repositories (star range: 12-4) - Successfully processed 76/150 repos (51% success rate) - Created 76 new api-extract.json files - Enhanced 76 skills.md files with real API data - Detected P2P patterns across all analyzed repos - Converted all 150 repos to git submodules Success rate lower than tier 3 (51% vs 90%): - Many bare-* module repos with non-standard structures - Build system repos (cmake-*) without JS entry points - Native libraries without JavaScript wrappers - Utility repos with minimal/no package.json exports Total Phase 1B progress: - Analyzed: 133/529 repos (25.1%) - Tier 1: 6/6 (100%) - Tier 2: 6/6 (100%) - Tier 3: 45/50 (90%) - Tier 4: 76/150 (51%) - API extracts: 133 files - Submodules: 213 repos (12 + 50 + 150 + pear-docs) - Disk usage: ~225MB with all submodules, ~5MB without Repository categories identified in Tier 4: - Bare runtime modules (bare-*): Standard library for Bare runtime - Build systems (cmake-*): Cross-platform build tools - Native libraries (lib*): C/C++ bindings for JavaScript - P2P utilities: blind-*, hyperswarm-*, hypercore-* - Development tools: pear-*, wasm-tools, etc. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
9685caebf4dcae7b35a49632b6419265eddc529b
by plankatron <fleeky@gmail.com> · 2026-01-17T00:12:22.000Z

Changed files (303) +6959 -133

.gitmodules +900 -0
……@@ -187,3 +187,903 @@
187187[submodule "repos/tier3/udx-native"]
188188 path = repos/tier3/udx-native
189189 url = https://github.com/holepunchto/udx-native.git
190[submodule "repos/tier4/repos/tier4/autobase-discovery"]
191 path = repos/tier4/repos/tier4/autobase-discovery
192 url = https://github.com/holepunchto/autobase-discovery.git
193[submodule "repos/tier4/repos/tier4/autobase-example"]
194 path = repos/tier4/repos/tier4/autobase-example
195 url = https://github.com/holepunchto/autobase-example.git
196[submodule "repos/tier4/repos/tier4/autobase-test-helpers"]
197 path = repos/tier4/repos/tier4/autobase-test-helpers
198 url = https://github.com/holepunchto/autobase-test-helpers.git
199[submodule "repos/tier4/repos/tier4/autopass-mobile-example"]
200 path = repos/tier4/repos/tier4/autopass-mobile-example
201 url = https://github.com/holepunchto/autopass-mobile-example.git
202[submodule "repos/tier4/repos/tier4/bare-abort"]
203 path = repos/tier4/repos/tier4/bare-abort
204 url = https://github.com/holepunchto/bare-abort.git
205[submodule "repos/tier4/repos/tier4/bare-addon"]
206 path = repos/tier4/repos/tier4/bare-addon
207 url = https://github.com/holepunchto/bare-addon.git
208[submodule "repos/tier4/repos/tier4/bare-ansi-escapes"]
209 path = repos/tier4/repos/tier4/bare-ansi-escapes
210 url = https://github.com/holepunchto/bare-ansi-escapes.git
211[submodule "repos/tier4/repos/tier4/bare-assert"]
212 path = repos/tier4/repos/tier4/bare-assert
213 url = https://github.com/holepunchto/bare-assert.git
214[submodule "repos/tier4/repos/tier4/bare-async-hooks"]
215 path = repos/tier4/repos/tier4/bare-async-hooks
216 url = https://github.com/holepunchto/bare-async-hooks.git
217[submodule "repos/tier4/repos/tier4/bare-atomics"]
218 path = repos/tier4/repos/tier4/bare-atomics
219 url = https://github.com/holepunchto/bare-atomics.git
220[submodule "repos/tier4/repos/tier4/bare-boot"]
221 path = repos/tier4/repos/tier4/bare-boot
222 url = https://github.com/holepunchto/bare-boot.git
223[submodule "repos/tier4/repos/tier4/bare-buffer"]
224 path = repos/tier4/repos/tier4/bare-buffer
225 url = https://github.com/holepunchto/bare-buffer.git
226[submodule "repos/tier4/repos/tier4/bare-build"]
227 path = repos/tier4/repos/tier4/bare-build
228 url = https://github.com/holepunchto/bare-build.git
229[submodule "repos/tier4/repos/tier4/bare-bundle"]
230 path = repos/tier4/repos/tier4/bare-bundle
231 url = https://github.com/holepunchto/bare-bundle.git
232[submodule "repos/tier4/repos/tier4/bare-bundle-compile"]
233 path = repos/tier4/repos/tier4/bare-bundle-compile
234 url = https://github.com/holepunchto/bare-bundle-compile.git
235[submodule "repos/tier4/repos/tier4/bare-channel"]
236 path = repos/tier4/repos/tier4/bare-channel
237 url = https://github.com/holepunchto/bare-channel.git
238[submodule "repos/tier4/repos/tier4/bare-console"]
239 path = repos/tier4/repos/tier4/bare-console
240 url = https://github.com/holepunchto/bare-console.git
241[submodule "repos/tier4/repos/tier4/bare-crypto"]
242 path = repos/tier4/repos/tier4/bare-crypto
243 url = https://github.com/holepunchto/bare-crypto.git
244[submodule "repos/tier4/repos/tier4/bare-dev"]
245 path = repos/tier4/repos/tier4/bare-dev
246 url = https://github.com/holepunchto/bare-dev.git
247[submodule "repos/tier4/repos/tier4/bare-dgram"]
248 path = repos/tier4/repos/tier4/bare-dgram
249 url = https://github.com/holepunchto/bare-dgram.git
250[submodule "repos/tier4/repos/tier4/bare-diagnostics-channel"]
251 path = repos/tier4/repos/tier4/bare-diagnostics-channel
252 url = https://github.com/holepunchto/bare-diagnostics-channel.git
253[submodule "repos/tier4/repos/tier4/bare-dns"]
254 path = repos/tier4/repos/tier4/bare-dns
255 url = https://github.com/holepunchto/bare-dns.git
256[submodule "repos/tier4/repos/tier4/bare-encoding"]
257 path = repos/tier4/repos/tier4/bare-encoding
258 url = https://github.com/holepunchto/bare-encoding.git
259[submodule "repos/tier4/repos/tier4/bare-env"]
260 path = repos/tier4/repos/tier4/bare-env
261 url = https://github.com/holepunchto/bare-env.git
262[submodule "repos/tier4/repos/tier4/bare-events"]
263 path = repos/tier4/repos/tier4/bare-events
264 url = https://github.com/holepunchto/bare-events.git
265[submodule "repos/tier4/repos/tier4/bare-fetch"]
266 path = repos/tier4/repos/tier4/bare-fetch
267 url = https://github.com/holepunchto/bare-fetch.git
268[submodule "repos/tier4/repos/tier4/bare-ffmpeg"]
269 path = repos/tier4/repos/tier4/bare-ffmpeg
270 url = https://github.com/holepunchto/bare-ffmpeg.git
271[submodule "repos/tier4/repos/tier4/bare-gif"]
272 path = repos/tier4/repos/tier4/bare-gif
273 url = https://github.com/holepunchto/bare-gif.git
274[submodule "repos/tier4/repos/tier4/bare-heif"]
275 path = repos/tier4/repos/tier4/bare-heif
276 url = https://github.com/holepunchto/bare-heif.git
277[submodule "repos/tier4/repos/tier4/bare-hrtime"]
278 path = repos/tier4/repos/tier4/bare-hrtime
279 url = https://github.com/holepunchto/bare-hrtime.git
280[submodule "repos/tier4/repos/tier4/bare-http1"]
281 path = repos/tier4/repos/tier4/bare-http1
282 url = https://github.com/holepunchto/bare-http1.git
283[submodule "repos/tier4/repos/tier4/bare-https"]
284 path = repos/tier4/repos/tier4/bare-https
285 url = https://github.com/holepunchto/bare-https.git
286[submodule "repos/tier4/repos/tier4/bare-image-resample"]
287 path = repos/tier4/repos/tier4/bare-image-resample
288 url = https://github.com/holepunchto/bare-image-resample.git
289[submodule "repos/tier4/repos/tier4/bare-inspect"]
290 path = repos/tier4/repos/tier4/bare-inspect
291 url = https://github.com/holepunchto/bare-inspect.git
292[submodule "repos/tier4/repos/tier4/bare-inspector"]
293 path = repos/tier4/repos/tier4/bare-inspector
294 url = https://github.com/holepunchto/bare-inspector.git
295[submodule "repos/tier4/repos/tier4/bare-link"]
296 path = repos/tier4/repos/tier4/bare-link
297 url = https://github.com/holepunchto/bare-link.git
298[submodule "repos/tier4/repos/tier4/bare-logger"]
299 path = repos/tier4/repos/tier4/bare-logger
300 url = https://github.com/holepunchto/bare-logger.git
301[submodule "repos/tier4/repos/tier4/bare-make"]
302 path = repos/tier4/repos/tier4/bare-make
303 url = https://github.com/holepunchto/bare-make.git
304[submodule "repos/tier4/repos/tier4/bare-media"]
305 path = repos/tier4/repos/tier4/bare-media
306 url = https://github.com/holepunchto/bare-media.git
307[submodule "repos/tier4/repos/tier4/bare-module"]
308 path = repos/tier4/repos/tier4/bare-module
309 url = https://github.com/holepunchto/bare-module.git
310[submodule "repos/tier4/repos/tier4/bare-module-lexer"]
311 path = repos/tier4/repos/tier4/bare-module-lexer
312 url = https://github.com/holepunchto/bare-module-lexer.git
313[submodule "repos/tier4/repos/tier4/bare-module-traverse"]
314 path = repos/tier4/repos/tier4/bare-module-traverse
315 url = https://github.com/holepunchto/bare-module-traverse.git
316[submodule "repos/tier4/repos/tier4/bare-native"]
317 path = repos/tier4/repos/tier4/bare-native
318 url = https://github.com/holepunchto/bare-native.git
319[submodule "repos/tier4/repos/tier4/bare-net"]
320 path = repos/tier4/repos/tier4/bare-net
321 url = https://github.com/holepunchto/bare-net.git
322[submodule "repos/tier4/repos/tier4/bare-node"]
323 path = repos/tier4/repos/tier4/bare-node
324 url = https://github.com/holepunchto/bare-node.git
325[submodule "repos/tier4/repos/tier4/bare-os"]
326 path = repos/tier4/repos/tier4/bare-os
327 url = https://github.com/holepunchto/bare-os.git
328[submodule "repos/tier4/repos/tier4/bare-pack"]
329 path = repos/tier4/repos/tier4/bare-pack
330 url = https://github.com/holepunchto/bare-pack.git
331[submodule "repos/tier4/repos/tier4/bare-pack-drive"]
332 path = repos/tier4/repos/tier4/bare-pack-drive
333 url = https://github.com/holepunchto/bare-pack-drive.git
334[submodule "repos/tier4/repos/tier4/bare-path"]
335 path = repos/tier4/repos/tier4/bare-path
336 url = https://github.com/holepunchto/bare-path.git
337[submodule "repos/tier4/repos/tier4/bare-pipe"]
338 path = repos/tier4/repos/tier4/bare-pipe
339 url = https://github.com/holepunchto/bare-pipe.git
340[submodule "repos/tier4/repos/tier4/bare-png"]
341 path = repos/tier4/repos/tier4/bare-png
342 url = https://github.com/holepunchto/bare-png.git
343[submodule "repos/tier4/repos/tier4/bare-process"]
344 path = repos/tier4/repos/tier4/bare-process
345 url = https://github.com/holepunchto/bare-process.git
346[submodule "repos/tier4/repos/tier4/bare-readline"]
347 path = repos/tier4/repos/tier4/bare-readline
348 url = https://github.com/holepunchto/bare-readline.git
349[submodule "repos/tier4/repos/tier4/bare-realm"]
350 path = repos/tier4/repos/tier4/bare-realm
351 url = https://github.com/holepunchto/bare-realm.git
352[submodule "repos/tier4/repos/tier4/bare-repl"]
353 path = repos/tier4/repos/tier4/bare-repl
354 url = https://github.com/holepunchto/bare-repl.git
355[submodule "repos/tier4/repos/tier4/bare-rpc"]
356 path = repos/tier4/repos/tier4/bare-rpc
357 url = https://github.com/holepunchto/bare-rpc.git
358[submodule "repos/tier4/repos/tier4/bare-run"]
359 path = repos/tier4/repos/tier4/bare-run
360 url = https://github.com/holepunchto/bare-run.git
361[submodule "repos/tier4/repos/tier4/bare-runtime"]
362 path = repos/tier4/repos/tier4/bare-runtime
363 url = https://github.com/holepunchto/bare-runtime.git
364[submodule "repos/tier4/repos/tier4/bare-rust"]
365 path = repos/tier4/repos/tier4/bare-rust
366 url = https://github.com/holepunchto/bare-rust.git
367[submodule "repos/tier4/repos/tier4/bare-sdl"]
368 path = repos/tier4/repos/tier4/bare-sdl
369 url = https://github.com/holepunchto/bare-sdl.git
370[submodule "repos/tier4/repos/tier4/bare-signals"]
371 path = repos/tier4/repos/tier4/bare-signals
372 url = https://github.com/holepunchto/bare-signals.git
373[submodule "repos/tier4/repos/tier4/bare-snippets"]
374 path = repos/tier4/repos/tier4/bare-snippets
375 url = https://github.com/holepunchto/bare-snippets.git
376[submodule "repos/tier4/repos/tier4/bare-stream"]
377 path = repos/tier4/repos/tier4/bare-stream
378 url = https://github.com/holepunchto/bare-stream.git
379[submodule "repos/tier4/repos/tier4/bare-subprocess"]
380 path = repos/tier4/repos/tier4/bare-subprocess
381 url = https://github.com/holepunchto/bare-subprocess.git
382[submodule "repos/tier4/repos/tier4/bare-tcp"]
383 path = repos/tier4/repos/tier4/bare-tcp
384 url = https://github.com/holepunchto/bare-tcp.git
385[submodule "repos/tier4/repos/tier4/bare-thread"]
386 path = repos/tier4/repos/tier4/bare-thread
387 url = https://github.com/holepunchto/bare-thread.git
388[submodule "repos/tier4/repos/tier4/bare-tiff"]
389 path = repos/tier4/repos/tier4/bare-tiff
390 url = https://github.com/holepunchto/bare-tiff.git
391[submodule "repos/tier4/repos/tier4/bare-timers"]
392 path = repos/tier4/repos/tier4/bare-timers
393 url = https://github.com/holepunchto/bare-timers.git
394[submodule "repos/tier4/repos/tier4/bare-tty"]
395 path = repos/tier4/repos/tier4/bare-tty
396 url = https://github.com/holepunchto/bare-tty.git
397[submodule "repos/tier4/repos/tier4/bare-type"]
398 path = repos/tier4/repos/tier4/bare-type
399 url = https://github.com/holepunchto/bare-type.git
400[submodule "repos/tier4/repos/tier4/bare-url"]
401 path = repos/tier4/repos/tier4/bare-url
402 url = https://github.com/holepunchto/bare-url.git
403[submodule "repos/tier4/repos/tier4/bare-vm"]
404 path = repos/tier4/repos/tier4/bare-vm
405 url = https://github.com/holepunchto/bare-vm.git
406[submodule "repos/tier4/repos/tier4/bare-webp"]
407 path = repos/tier4/repos/tier4/bare-webp
408 url = https://github.com/holepunchto/bare-webp.git
409[submodule "repos/tier4/repos/tier4/bare-worker"]
410 path = repos/tier4/repos/tier4/bare-worker
411 url = https://github.com/holepunchto/bare-worker.git
412[submodule "repos/tier4/repos/tier4/bare-ws"]
413 path = repos/tier4/repos/tier4/bare-ws
414 url = https://github.com/holepunchto/bare-ws.git
415[submodule "repos/tier4/repos/tier4/blind-pairing"]
416 path = repos/tier4/repos/tier4/blind-pairing
417 url = https://github.com/holepunchto/blind-pairing.git
418[submodule "repos/tier4/repos/tier4/blind-pairing-core"]
419 path = repos/tier4/repos/tier4/blind-pairing-core
420 url = https://github.com/holepunchto/blind-pairing-core.git
421[submodule "repos/tier4/repos/tier4/blind-peer"]
422 path = repos/tier4/repos/tier4/blind-peer
423 url = https://github.com/holepunchto/blind-peer.git
424[submodule "repos/tier4/repos/tier4/blind-peering"]
425 path = repos/tier4/repos/tier4/blind-peering
426 url = https://github.com/holepunchto/blind-peering.git
427[submodule "repos/tier4/repos/tier4/blind-relay"]
428 path = repos/tier4/repos/tier4/blind-relay
429 url = https://github.com/holepunchto/blind-relay.git
430[submodule "repos/tier4/repos/tier4/chromium-prebuilds"]
431 path = repos/tier4/repos/tier4/chromium-prebuilds
432 url = https://github.com/holepunchto/chromium-prebuilds.git
433[submodule "repos/tier4/repos/tier4/cmake-bare-bundle"]
434 path = repos/tier4/repos/tier4/cmake-bare-bundle
435 url = https://github.com/holepunchto/cmake-bare-bundle.git
436[submodule "repos/tier4/repos/tier4/cmake-gn"]
437 path = repos/tier4/repos/tier4/cmake-gn
438 url = https://github.com/holepunchto/cmake-gn.git
439[submodule "repos/tier4/repos/tier4/cmake-macos"]
440 path = repos/tier4/repos/tier4/cmake-macos
441 url = https://github.com/holepunchto/cmake-macos.git
442[submodule "repos/tier4/repos/tier4/cmake-meson"]
443 path = repos/tier4/repos/tier4/cmake-meson
444 url = https://github.com/holepunchto/cmake-meson.git
445[submodule "repos/tier4/repos/tier4/cmake-msix"]
446 path = repos/tier4/repos/tier4/cmake-msix
447 url = https://github.com/holepunchto/cmake-msix.git
448[submodule "repos/tier4/repos/tier4/cmake-runtime"]
449 path = repos/tier4/repos/tier4/cmake-runtime
450 url = https://github.com/holepunchto/cmake-runtime.git
451[submodule "repos/tier4/repos/tier4/db-lock"]
452 path = repos/tier4/repos/tier4/db-lock
453 url = https://github.com/holepunchto/db-lock.git
454[submodule "repos/tier4/repos/tier4/fifofile"]
455 path = repos/tier4/repos/tier4/fifofile
456 url = https://github.com/holepunchto/fifofile.git
457[submodule "repos/tier4/repos/tier4/git-remote-punch-transport"]
458 path = repos/tier4/repos/tier4/git-remote-punch-transport
459 url = https://github.com/holepunchto/git-remote-punch-transport.git
460[submodule "repos/tier4/repos/tier4/hrpc"]
461 path = repos/tier4/repos/tier4/hrpc
462 url = https://github.com/holepunchto/hrpc.git
463[submodule "repos/tier4/repos/tier4/hyperbee2"]
464 path = repos/tier4/repos/tier4/hyperbee2
465 url = https://github.com/holepunchto/hyperbee2.git
466[submodule "repos/tier4/repos/tier4/hyperbee-diff-stream"]
467 path = repos/tier4/repos/tier4/hyperbee-diff-stream
468 url = https://github.com/holepunchto/hyperbee-diff-stream.git
469[submodule "repos/tier4/repos/tier4/hypercore-blob-server"]
470 path = repos/tier4/repos/tier4/hypercore-blob-server
471 url = https://github.com/holepunchto/hypercore-blob-server.git
472[submodule "repos/tier4/repos/tier4/hypercore-id-encoding"]
473 path = repos/tier4/repos/tier4/hypercore-id-encoding
474 url = https://github.com/holepunchto/hypercore-id-encoding.git
475[submodule "repos/tier4/repos/tier4/hypercore-logger"]
476 path = repos/tier4/repos/tier4/hypercore-logger
477 url = https://github.com/holepunchto/hypercore-logger.git
478[submodule "repos/tier4/repos/tier4/hypercore-storage"]
479 path = repos/tier4/repos/tier4/hypercore-storage
480 url = https://github.com/holepunchto/hypercore-storage.git
481[submodule "repos/tier4/repos/tier4/hyperdispatch"]
482 path = repos/tier4/repos/tier4/hyperdispatch
483 url = https://github.com/holepunchto/hyperdispatch.git
484[submodule "repos/tier4/repos/tier4/hyper-instrument"]
485 path = repos/tier4/repos/tier4/hyper-instrument
486 url = https://github.com/holepunchto/hyper-instrument.git
487[submodule "repos/tier4/repos/tier4/hyperswarm-doctor"]
488 path = repos/tier4/repos/tier4/hyperswarm-doctor
489 url = https://github.com/holepunchto/hyperswarm-doctor.git
490[submodule "repos/tier4/repos/tier4/hyperswarm-testnet"]
491 path = repos/tier4/repos/tier4/hyperswarm-testnet
492 url = https://github.com/holepunchto/hyperswarm-testnet.git
493[submodule "repos/tier4/repos/tier4/hypertrace"]
494 path = repos/tier4/repos/tier4/hypertrace
495 url = https://github.com/holepunchto/hypertrace.git
496[submodule "repos/tier4/repos/tier4/index-encoder"]
497 path = repos/tier4/repos/tier4/index-encoder
498 url = https://github.com/holepunchto/index-encoder.git
499[submodule "repos/tier4/repos/tier4/libappling"]
500 path = repos/tier4/repos/tier4/libappling
501 url = https://github.com/holepunchto/libappling.git
502[submodule "repos/tier4/repos/tier4/libcrc"]
503 path = repos/tier4/repos/tier4/libcrc
504 url = https://github.com/holepunchto/libcrc.git
505[submodule "repos/tier4/repos/tier4/libfs"]
506 path = repos/tier4/repos/tier4/libfs
507 url = https://github.com/holepunchto/libfs.git
508[submodule "repos/tier4/repos/tier4/libfx"]
509 path = repos/tier4/repos/tier4/libfx
510 url = https://github.com/holepunchto/libfx.git
511[submodule "repos/tier4/repos/tier4/libjerry"]
512 path = repos/tier4/repos/tier4/libjerry
513 url = https://github.com/holepunchto/libjerry.git
514[submodule "repos/tier4/repos/tier4/libjsc"]
515 path = repos/tier4/repos/tier4/libjsc
516 url = https://github.com/holepunchto/libjsc.git
517[submodule "repos/tier4/repos/tier4/libjstl"]
518 path = repos/tier4/repos/tier4/libjstl
519 url = https://github.com/holepunchto/libjstl.git
520[submodule "repos/tier4/repos/tier4/liblog"]
521 path = repos/tier4/repos/tier4/liblog
522 url = https://github.com/holepunchto/liblog.git
523[submodule "repos/tier4/repos/tier4/libmem"]
524 path = repos/tier4/repos/tier4/libmem
525 url = https://github.com/holepunchto/libmem.git
526[submodule "repos/tier4/repos/tier4/libparseline"]
527 path = repos/tier4/repos/tier4/libparseline
528 url = https://github.com/holepunchto/libparseline.git
529[submodule "repos/tier4/repos/tier4/libpearsync"]
530 path = repos/tier4/repos/tier4/libpearsync
531 url = https://github.com/holepunchto/libpearsync.git
532[submodule "repos/tier4/repos/tier4/librocksdb"]
533 path = repos/tier4/repos/tier4/librocksdb
534 url = https://github.com/holepunchto/librocksdb.git
535[submodule "repos/tier4/repos/tier4/librpc"]
536 path = repos/tier4/repos/tier4/librpc
537 url = https://github.com/holepunchto/librpc.git
538[submodule "repos/tier4/repos/tier4/libsimdle"]
539 path = repos/tier4/repos/tier4/libsimdle
540 url = https://github.com/holepunchto/libsimdle.git
541[submodule "repos/tier4/repos/tier4/libtt"]
542 path = repos/tier4/repos/tier4/libtt
543 url = https://github.com/holepunchto/libtt.git
544[submodule "repos/tier4/repos/tier4/liburl"]
545 path = repos/tier4/repos/tier4/liburl
546 url = https://github.com/holepunchto/liburl.git
547[submodule "repos/tier4/repos/tier4/libutf"]
548 path = repos/tier4/repos/tier4/libutf
549 url = https://github.com/holepunchto/libutf.git
550[submodule "repos/tier4/repos/tier4/localwatch"]
551 path = repos/tier4/repos/tier4/localwatch
552 url = https://github.com/holepunchto/localwatch.git
553[submodule "repos/tier4/repos/tier4/nanodebug"]
554 path = repos/tier4/repos/tier4/nanodebug
555 url = https://github.com/holepunchto/nanodebug.git
556[submodule "repos/tier4/repos/tier4/netpaste"]
557 path = repos/tier4/repos/tier4/netpaste
558 url = https://github.com/holepunchto/netpaste.git
559[submodule "repos/tier4/repos/tier4/network-block-device"]
560 path = repos/tier4/repos/tier4/network-block-device
561 url = https://github.com/holepunchto/network-block-device.git
562[submodule "repos/tier4/repos/tier4/paparam"]
563 path = repos/tier4/repos/tier4/paparam
564 url = https://github.com/holepunchto/paparam.git
565[submodule "repos/tier4/repos/tier4/pear-api"]
566 path = repos/tier4/repos/tier4/pear-api
567 url = https://github.com/holepunchto/pear-api.git
568[submodule "repos/tier4/repos/tier4/pear-appling"]
569 path = repos/tier4/repos/tier4/pear-appling
570 url = https://github.com/holepunchto/pear-appling.git
571[submodule "repos/tier4/repos/tier4/pear-desktop"]
572 path = repos/tier4/repos/tier4/pear-desktop
573 url = https://github.com/holepunchto/pear-desktop.git
574[submodule "repos/tier4/repos/tier4/pear-electron"]
575 path = repos/tier4/repos/tier4/pear-electron
576 url = https://github.com/holepunchto/pear-electron.git
577[submodule "repos/tier4/repos/tier4/pear-runtime-bare"]
578 path = repos/tier4/repos/tier4/pear-runtime-bare
579 url = https://github.com/holepunchto/pear-runtime-bare.git
580[submodule "repos/tier4/repos/tier4/pear-workshop"]
581 path = repos/tier4/repos/tier4/pear-workshop
582 url = https://github.com/holepunchto/pear-workshop.git
583[submodule "repos/tier4/repos/tier4/protomux-rpc"]
584 path = repos/tier4/repos/tier4/protomux-rpc
585 url = https://github.com/holepunchto/protomux-rpc.git
586[submodule "repos/tier4/repos/tier4/quickbit-universal"]
587 path = repos/tier4/repos/tier4/quickbit-universal
588 url = https://github.com/holepunchto/quickbit-universal.git
589[submodule "repos/tier4/repos/tier4/require-addon"]
590 path = repos/tier4/repos/tier4/require-addon
591 url = https://github.com/holepunchto/require-addon.git
592[submodule "repos/tier4/repos/tier4/same-object"]
593 path = repos/tier4/repos/tier4/same-object
594 url = https://github.com/holepunchto/same-object.git
595[submodule "repos/tier4/repos/tier4/scope-lock"]
596 path = repos/tier4/repos/tier4/scope-lock
597 url = https://github.com/holepunchto/scope-lock.git
598[submodule "repos/tier4/repos/tier4/secure-prompt"]
599 path = repos/tier4/repos/tier4/secure-prompt
600 url = https://github.com/holepunchto/secure-prompt.git
601[submodule "repos/tier4/repos/tier4/semifies"]
602 path = repos/tier4/repos/tier4/semifies
603 url = https://github.com/holepunchto/semifies.git
604[submodule "repos/tier4/repos/tier4/sentry-bare"]
605 path = repos/tier4/repos/tier4/sentry-bare
606 url = https://github.com/holepunchto/sentry-bare.git
607[submodule "repos/tier4/repos/tier4/serve-drive"]
608 path = repos/tier4/repos/tier4/serve-drive
609 url = https://github.com/holepunchto/serve-drive.git
610[submodule "repos/tier4/repos/tier4/slab-hunter"]
611 path = repos/tier4/repos/tier4/slab-hunter
612 url = https://github.com/holepunchto/slab-hunter.git
613[submodule "repos/tier4/repos/tier4/sloppy-module-parser"]
614 path = repos/tier4/repos/tier4/sloppy-module-parser
615 url = https://github.com/holepunchto/sloppy-module-parser.git
616[submodule "repos/tier4/repos/tier4/sqlite3-native"]
617 path = repos/tier4/repos/tier4/sqlite3-native
618 url = https://github.com/holepunchto/sqlite3-native.git
619[submodule "repos/tier4/repos/tier4/task-backoff"]
620 path = repos/tier4/repos/tier4/task-backoff
621 url = https://github.com/holepunchto/task-backoff.git
622[submodule "repos/tier4/repos/tier4/tiny-timers-native"]
623 path = repos/tier4/repos/tier4/tiny-timers-native
624 url = https://github.com/holepunchto/tiny-timers-native.git
625[submodule "repos/tier4/repos/tier4/tt-native"]
626 path = repos/tier4/repos/tier4/tt-native
627 url = https://github.com/holepunchto/tt-native.git
628[submodule "repos/tier4/repos/tier4/utun"]
629 path = repos/tier4/repos/tier4/utun
630 url = https://github.com/holepunchto/utun.git
631[submodule "repos/tier4/repos/tier4/wasm-tools"]
632 path = repos/tier4/repos/tier4/wasm-tools
633 url = https://github.com/holepunchto/wasm-tools.git
634[submodule "repos/tier4/repos/tier4/watch-drive"]
635 path = repos/tier4/repos/tier4/watch-drive
636 url = https://github.com/holepunchto/watch-drive.git
637[submodule "repos/tier4/repos/tier4/which-runtime"]
638 path = repos/tier4/repos/tier4/which-runtime
639 url = https://github.com/holepunchto/which-runtime.git
640[submodule "repos/tier4/bare-ffmpeg"]
641 path = repos/tier4/bare-ffmpeg
642 url = https://github.com/holepunchto/bare-ffmpeg.git
643[submodule "repos/tier4/bare-media"]
644 path = repos/tier4/bare-media
645 url = https://github.com/holepunchto/bare-media.git
646[submodule "repos/tier4/bare-module"]
647 path = repos/tier4/bare-module
648 url = https://github.com/holepunchto/bare-module.git
649[submodule "repos/tier4/bare-node"]
650 path = repos/tier4/bare-node
651 url = https://github.com/holepunchto/bare-node.git
652[submodule "repos/tier4/bare-snippets"]
653 path = repos/tier4/bare-snippets
654 url = https://github.com/holepunchto/bare-snippets.git
655[submodule "repos/tier4/pear-appling"]
656 path = repos/tier4/pear-appling
657 url = https://github.com/holepunchto/pear-appling.git
658[submodule "repos/tier4/hypercore-storage"]
659 path = repos/tier4/hypercore-storage
660 url = https://github.com/holepunchto/hypercore-storage.git
661[submodule "repos/tier4/localwatch"]
662 path = repos/tier4/localwatch
663 url = https://github.com/holepunchto/localwatch.git
664[submodule "repos/tier4/bare-repl"]
665 path = repos/tier4/bare-repl
666 url = https://github.com/holepunchto/bare-repl.git
667[submodule "repos/tier4/bare-runtime"]
668 path = repos/tier4/bare-runtime
669 url = https://github.com/holepunchto/bare-runtime.git
670[submodule "repos/tier4/bare-worker"]
671 path = repos/tier4/bare-worker
672 url = https://github.com/holepunchto/bare-worker.git
673[submodule "repos/tier4/libjsc"]
674 path = repos/tier4/libjsc
675 url = https://github.com/holepunchto/libjsc.git
676[submodule "repos/tier4/bare-events"]
677 path = repos/tier4/bare-events
678 url = https://github.com/holepunchto/bare-events.git
679[submodule "repos/tier4/bare-module-lexer"]
680 path = repos/tier4/bare-module-lexer
681 url = https://github.com/holepunchto/bare-module-lexer.git
682[submodule "repos/tier4/bare-tcp"]
683 path = repos/tier4/bare-tcp
684 url = https://github.com/holepunchto/bare-tcp.git
685[submodule "repos/tier4/bare-ws"]
686 path = repos/tier4/bare-ws
687 url = https://github.com/holepunchto/bare-ws.git
688[submodule "repos/tier4/cmake-runtime"]
689 path = repos/tier4/cmake-runtime
690 url = https://github.com/holepunchto/cmake-runtime.git
691[submodule "repos/tier4/hyperswarm-doctor"]
692 path = repos/tier4/hyperswarm-doctor
693 url = https://github.com/holepunchto/hyperswarm-doctor.git
694[submodule "repos/tier4/libjerry"]
695 path = repos/tier4/libjerry
696 url = https://github.com/holepunchto/libjerry.git
697[submodule "repos/tier4/libpearsync"]
698 path = repos/tier4/libpearsync
699 url = https://github.com/holepunchto/libpearsync.git
700[submodule "repos/tier4/scope-lock"]
701 path = repos/tier4/scope-lock
702 url = https://github.com/holepunchto/scope-lock.git
703[submodule "repos/tier4/serve-drive"]
704 path = repos/tier4/serve-drive
705 url = https://github.com/holepunchto/serve-drive.git
706[submodule "repos/tier4/slab-hunter"]
707 path = repos/tier4/slab-hunter
708 url = https://github.com/holepunchto/slab-hunter.git
709[submodule "repos/tier4/tiny-timers-native"]
710 path = repos/tier4/tiny-timers-native
711 url = https://github.com/holepunchto/tiny-timers-native.git
712[submodule "repos/tier4/watch-drive"]
713 path = repos/tier4/watch-drive
714 url = https://github.com/holepunchto/watch-drive.git
715[submodule "repos/tier4/bare-fetch"]
716 path = repos/tier4/bare-fetch
717 url = https://github.com/holepunchto/bare-fetch.git
718[submodule "repos/tier4/bare-make"]
719 path = repos/tier4/bare-make
720 url = https://github.com/holepunchto/bare-make.git
721[submodule "repos/tier4/bare-rpc"]
722 path = repos/tier4/bare-rpc
723 url = https://github.com/holepunchto/bare-rpc.git
724[submodule "repos/tier4/blind-pairing"]
725 path = repos/tier4/blind-pairing
726 url = https://github.com/holepunchto/blind-pairing.git
727[submodule "repos/tier4/blind-relay"]
728 path = repos/tier4/blind-relay
729 url = https://github.com/holepunchto/blind-relay.git
730[submodule "repos/tier4/hrpc"]
731 path = repos/tier4/hrpc
732 url = https://github.com/holepunchto/hrpc.git
733[submodule "repos/tier4/netpaste"]
734 path = repos/tier4/netpaste
735 url = https://github.com/holepunchto/netpaste.git
736[submodule "repos/tier4/pear-desktop"]
737 path = repos/tier4/pear-desktop
738 url = https://github.com/holepunchto/pear-desktop.git
739[submodule "repos/tier4/utun"]
740 path = repos/tier4/utun
741 url = https://github.com/holepunchto/utun.git
742[submodule "repos/tier4/bare-bundle"]
743 path = repos/tier4/bare-bundle
744 url = https://github.com/holepunchto/bare-bundle.git
745[submodule "repos/tier4/bare-channel"]
746 path = repos/tier4/bare-channel
747 url = https://github.com/holepunchto/bare-channel.git
748[submodule "repos/tier4/bare-crypto"]
749 path = repos/tier4/bare-crypto
750 url = https://github.com/holepunchto/bare-crypto.git
751[submodule "repos/tier4/bare-os"]
752 path = repos/tier4/bare-os
753 url = https://github.com/holepunchto/bare-os.git
754[submodule "repos/tier4/bare-realm"]
755 path = repos/tier4/bare-realm
756 url = https://github.com/holepunchto/bare-realm.git
757[submodule "repos/tier4/blind-pairing-core"]
758 path = repos/tier4/blind-pairing-core
759 url = https://github.com/holepunchto/blind-pairing-core.git
760[submodule "repos/tier4/blind-peer"]
761 path = repos/tier4/blind-peer
762 url = https://github.com/holepunchto/blind-peer.git
763[submodule "repos/tier4/blind-peering"]
764 path = repos/tier4/blind-peering
765 url = https://github.com/holepunchto/blind-peering.git
766[submodule "repos/tier4/git-remote-punch-transport"]
767 path = repos/tier4/git-remote-punch-transport
768 url = https://github.com/holepunchto/git-remote-punch-transport.git
769[submodule "repos/tier4/hyperbee2"]
770 path = repos/tier4/hyperbee2
771 url = https://github.com/holepunchto/hyperbee2.git
772[submodule "repos/tier4/hypertrace"]
773 path = repos/tier4/hypertrace
774 url = https://github.com/holepunchto/hypertrace.git
775[submodule "repos/tier4/index-encoder"]
776 path = repos/tier4/index-encoder
777 url = https://github.com/holepunchto/index-encoder.git
778[submodule "repos/tier4/libfx"]
779 path = repos/tier4/libfx
780 url = https://github.com/holepunchto/libfx.git
781[submodule "repos/tier4/semifies"]
782 path = repos/tier4/semifies
783 url = https://github.com/holepunchto/semifies.git
784[submodule "repos/tier4/wasm-tools"]
785 path = repos/tier4/wasm-tools
786 url = https://github.com/holepunchto/wasm-tools.git
787[submodule "repos/tier4/which-runtime"]
788 path = repos/tier4/which-runtime
789 url = https://github.com/holepunchto/which-runtime.git
790[submodule "repos/tier4/autopass-mobile-example"]
791 path = repos/tier4/autopass-mobile-example
792 url = https://github.com/holepunchto/autopass-mobile-example.git
793[submodule "repos/tier4/bare-abort"]
794 path = repos/tier4/bare-abort
795 url = https://github.com/holepunchto/bare-abort.git
796[submodule "repos/tier4/bare-atomics"]
797 path = repos/tier4/bare-atomics
798 url = https://github.com/holepunchto/bare-atomics.git
799[submodule "repos/tier4/bare-buffer"]
800 path = repos/tier4/bare-buffer
801 url = https://github.com/holepunchto/bare-buffer.git
802[submodule "repos/tier4/bare-dev"]
803 path = repos/tier4/bare-dev
804 url = https://github.com/holepunchto/bare-dev.git
805[submodule "repos/tier4/bare-http1"]
806 path = repos/tier4/bare-http1
807 url = https://github.com/holepunchto/bare-http1.git
808[submodule "repos/tier4/bare-pack"]
809 path = repos/tier4/bare-pack
810 url = https://github.com/holepunchto/bare-pack.git
811[submodule "repos/tier4/bare-pipe"]
812 path = repos/tier4/bare-pipe
813 url = https://github.com/holepunchto/bare-pipe.git
814[submodule "repos/tier4/bare-process"]
815 path = repos/tier4/bare-process
816 url = https://github.com/holepunchto/bare-process.git
817[submodule "repos/tier4/bare-signals"]
818 path = repos/tier4/bare-signals
819 url = https://github.com/holepunchto/bare-signals.git
820[submodule "repos/tier4/bare-stream"]
821 path = repos/tier4/bare-stream
822 url = https://github.com/holepunchto/bare-stream.git
823[submodule "repos/tier4/bare-subprocess"]
824 path = repos/tier4/bare-subprocess
825 url = https://github.com/holepunchto/bare-subprocess.git
826[submodule "repos/tier4/cmake-macos"]
827 path = repos/tier4/cmake-macos
828 url = https://github.com/holepunchto/cmake-macos.git
829[submodule "repos/tier4/db-lock"]
830 path = repos/tier4/db-lock
831 url = https://github.com/holepunchto/db-lock.git
832[submodule "repos/tier4/hypercore-blob-server"]
833 path = repos/tier4/hypercore-blob-server
834 url = https://github.com/holepunchto/hypercore-blob-server.git
835[submodule "repos/tier4/hyperdispatch"]
836 path = repos/tier4/hyperdispatch
837 url = https://github.com/holepunchto/hyperdispatch.git
838[submodule "repos/tier4/hyperswarm-testnet"]
839 path = repos/tier4/hyperswarm-testnet
840 url = https://github.com/holepunchto/hyperswarm-testnet.git
841[submodule "repos/tier4/libcrc"]
842 path = repos/tier4/libcrc
843 url = https://github.com/holepunchto/libcrc.git
844[submodule "repos/tier4/librocksdb"]
845 path = repos/tier4/librocksdb
846 url = https://github.com/holepunchto/librocksdb.git
847[submodule "repos/tier4/libtt"]
848 path = repos/tier4/libtt
849 url = https://github.com/holepunchto/libtt.git
850[submodule "repos/tier4/libutf"]
851 path = repos/tier4/libutf
852 url = https://github.com/holepunchto/libutf.git
853[submodule "repos/tier4/paparam"]
854 path = repos/tier4/paparam
855 url = https://github.com/holepunchto/paparam.git
856[submodule "repos/tier4/pear-electron"]
857 path = repos/tier4/pear-electron
858 url = https://github.com/holepunchto/pear-electron.git
859[submodule "repos/tier4/pear-workshop"]
860 path = repos/tier4/pear-workshop
861 url = https://github.com/holepunchto/pear-workshop.git
862[submodule "repos/tier4/protomux-rpc"]
863 path = repos/tier4/protomux-rpc
864 url = https://github.com/holepunchto/protomux-rpc.git
865[submodule "repos/tier4/quickbit-universal"]
866 path = repos/tier4/quickbit-universal
867 url = https://github.com/holepunchto/quickbit-universal.git
868[submodule "repos/tier4/require-addon"]
869 path = repos/tier4/require-addon
870 url = https://github.com/holepunchto/require-addon.git
871[submodule "repos/tier4/sentry-bare"]
872 path = repos/tier4/sentry-bare
873 url = https://github.com/holepunchto/sentry-bare.git
874[submodule "repos/tier4/sloppy-module-parser"]
875 path = repos/tier4/sloppy-module-parser
876 url = https://github.com/holepunchto/sloppy-module-parser.git
877[submodule "repos/tier4/task-backoff"]
878 path = repos/tier4/task-backoff
879 url = https://github.com/holepunchto/task-backoff.git
880[submodule "repos/tier4/tt-native"]
881 path = repos/tier4/tt-native
882 url = https://github.com/holepunchto/tt-native.git
883[submodule "repos/tier4/autobase-example"]
884 path = repos/tier4/autobase-example
885 url = https://github.com/holepunchto/autobase-example.git
886[submodule "repos/tier4/bare-addon"]
887 path = repos/tier4/bare-addon
888 url = https://github.com/holepunchto/bare-addon.git
889[submodule "repos/tier4/bare-ansi-escapes"]
890 path = repos/tier4/bare-ansi-escapes
891 url = https://github.com/holepunchto/bare-ansi-escapes.git
892[submodule "repos/tier4/bare-assert"]
893 path = repos/tier4/bare-assert
894 url = https://github.com/holepunchto/bare-assert.git
895[submodule "repos/tier4/bare-build"]
896 path = repos/tier4/bare-build
897 url = https://github.com/holepunchto/bare-build.git
898[submodule "repos/tier4/bare-bundle-compile"]
899 path = repos/tier4/bare-bundle-compile
900 url = https://github.com/holepunchto/bare-bundle-compile.git
901[submodule "repos/tier4/bare-diagnostics-channel"]
902 path = repos/tier4/bare-diagnostics-channel
903 url = https://github.com/holepunchto/bare-diagnostics-channel.git
904[submodule "repos/tier4/bare-dns"]
905 path = repos/tier4/bare-dns
906 url = https://github.com/holepunchto/bare-dns.git
907[submodule "repos/tier4/bare-encoding"]
908 path = repos/tier4/bare-encoding
909 url = https://github.com/holepunchto/bare-encoding.git
910[submodule "repos/tier4/bare-https"]
911 path = repos/tier4/bare-https
912 url = https://github.com/holepunchto/bare-https.git
913[submodule "repos/tier4/bare-link"]
914 path = repos/tier4/bare-link
915 url = https://github.com/holepunchto/bare-link.git
916[submodule "repos/tier4/bare-net"]
917 path = repos/tier4/bare-net
918 url = https://github.com/holepunchto/bare-net.git
919[submodule "repos/tier4/bare-pack-drive"]
920 path = repos/tier4/bare-pack-drive
921 url = https://github.com/holepunchto/bare-pack-drive.git
922[submodule "repos/tier4/bare-path"]
923 path = repos/tier4/bare-path
924 url = https://github.com/holepunchto/bare-path.git
925[submodule "repos/tier4/bare-png"]
926 path = repos/tier4/bare-png
927 url = https://github.com/holepunchto/bare-png.git
928[submodule "repos/tier4/bare-readline"]
929 path = repos/tier4/bare-readline
930 url = https://github.com/holepunchto/bare-readline.git
931[submodule "repos/tier4/bare-thread"]
932 path = repos/tier4/bare-thread
933 url = https://github.com/holepunchto/bare-thread.git
934[submodule "repos/tier4/bare-tty"]
935 path = repos/tier4/bare-tty
936 url = https://github.com/holepunchto/bare-tty.git
937[submodule "repos/tier4/chromium-prebuilds"]
938 path = repos/tier4/chromium-prebuilds
939 url = https://github.com/holepunchto/chromium-prebuilds.git
940[submodule "repos/tier4/cmake-gn"]
941 path = repos/tier4/cmake-gn
942 url = https://github.com/holepunchto/cmake-gn.git
943[submodule "repos/tier4/cmake-msix"]
944 path = repos/tier4/cmake-msix
945 url = https://github.com/holepunchto/cmake-msix.git
946[submodule "repos/tier4/fifofile"]
947 path = repos/tier4/fifofile
948 url = https://github.com/holepunchto/fifofile.git
949[submodule "repos/tier4/hyper-instrument"]
950 path = repos/tier4/hyper-instrument
951 url = https://github.com/holepunchto/hyper-instrument.git
952[submodule "repos/tier4/libappling"]
953 path = repos/tier4/libappling
954 url = https://github.com/holepunchto/libappling.git
955[submodule "repos/tier4/libjstl"]
956 path = repos/tier4/libjstl
957 url = https://github.com/holepunchto/libjstl.git
958[submodule "repos/tier4/liblog"]
959 path = repos/tier4/liblog
960 url = https://github.com/holepunchto/liblog.git
961[submodule "repos/tier4/libmem"]
962 path = repos/tier4/libmem
963 url = https://github.com/holepunchto/libmem.git
964[submodule "repos/tier4/libsimdle"]
965 path = repos/tier4/libsimdle
966 url = https://github.com/holepunchto/libsimdle.git
967[submodule "repos/tier4/liburl"]
968 path = repos/tier4/liburl
969 url = https://github.com/holepunchto/liburl.git
970[submodule "repos/tier4/network-block-device"]
971 path = repos/tier4/network-block-device
972 url = https://github.com/holepunchto/network-block-device.git
973[submodule "repos/tier4/pear-runtime-bare"]
974 path = repos/tier4/pear-runtime-bare
975 url = https://github.com/holepunchto/pear-runtime-bare.git
976[submodule "repos/tier4/same-object"]
977 path = repos/tier4/same-object
978 url = https://github.com/holepunchto/same-object.git
979[submodule "repos/tier4/secure-prompt"]
980 path = repos/tier4/secure-prompt
981 url = https://github.com/holepunchto/secure-prompt.git
982[submodule "repos/tier4/sqlite3-native"]
983 path = repos/tier4/sqlite3-native
984 url = https://github.com/holepunchto/sqlite3-native.git
985[submodule "repos/tier4/autobase-discovery"]
986 path = repos/tier4/autobase-discovery
987 url = https://github.com/holepunchto/autobase-discovery.git
988[submodule "repos/tier4/autobase-test-helpers"]
989 path = repos/tier4/autobase-test-helpers
990 url = https://github.com/holepunchto/autobase-test-helpers.git
991[submodule "repos/tier4/bare-async-hooks"]
992 path = repos/tier4/bare-async-hooks
993 url = https://github.com/holepunchto/bare-async-hooks.git
994[submodule "repos/tier4/bare-boot"]
995 path = repos/tier4/bare-boot
996 url = https://github.com/holepunchto/bare-boot.git
997[submodule "repos/tier4/bare-console"]
998 path = repos/tier4/bare-console
999 url = https://github.com/holepunchto/bare-console.git
1000[submodule "repos/tier4/bare-dgram"]
1001 path = repos/tier4/bare-dgram
1002 url = https://github.com/holepunchto/bare-dgram.git
1003[submodule "repos/tier4/bare-env"]
1004 path = repos/tier4/bare-env
1005 url = https://github.com/holepunchto/bare-env.git
1006[submodule "repos/tier4/bare-gif"]
1007 path = repos/tier4/bare-gif
1008 url = https://github.com/holepunchto/bare-gif.git
1009[submodule "repos/tier4/bare-heif"]
1010 path = repos/tier4/bare-heif
1011 url = https://github.com/holepunchto/bare-heif.git
1012[submodule "repos/tier4/bare-hrtime"]
1013 path = repos/tier4/bare-hrtime
1014 url = https://github.com/holepunchto/bare-hrtime.git
1015[submodule "repos/tier4/bare-image-resample"]
1016 path = repos/tier4/bare-image-resample
1017 url = https://github.com/holepunchto/bare-image-resample.git
1018[submodule "repos/tier4/bare-inspect"]
1019 path = repos/tier4/bare-inspect
1020 url = https://github.com/holepunchto/bare-inspect.git
1021[submodule "repos/tier4/bare-inspector"]
1022 path = repos/tier4/bare-inspector
1023 url = https://github.com/holepunchto/bare-inspector.git
1024[submodule "repos/tier4/bare-logger"]
1025 path = repos/tier4/bare-logger
1026 url = https://github.com/holepunchto/bare-logger.git
1027[submodule "repos/tier4/bare-module-traverse"]
1028 path = repos/tier4/bare-module-traverse
1029 url = https://github.com/holepunchto/bare-module-traverse.git
1030[submodule "repos/tier4/bare-native"]
1031 path = repos/tier4/bare-native
1032 url = https://github.com/holepunchto/bare-native.git
1033[submodule "repos/tier4/bare-run"]
1034 path = repos/tier4/bare-run
1035 url = https://github.com/holepunchto/bare-run.git
1036[submodule "repos/tier4/bare-rust"]
1037 path = repos/tier4/bare-rust
1038 url = https://github.com/holepunchto/bare-rust.git
1039[submodule "repos/tier4/bare-sdl"]
1040 path = repos/tier4/bare-sdl
1041 url = https://github.com/holepunchto/bare-sdl.git
1042[submodule "repos/tier4/bare-tiff"]
1043 path = repos/tier4/bare-tiff
1044 url = https://github.com/holepunchto/bare-tiff.git
1045[submodule "repos/tier4/bare-timers"]
1046 path = repos/tier4/bare-timers
1047 url = https://github.com/holepunchto/bare-timers.git
1048[submodule "repos/tier4/bare-type"]
1049 path = repos/tier4/bare-type
1050 url = https://github.com/holepunchto/bare-type.git
1051[submodule "repos/tier4/bare-url"]
1052 path = repos/tier4/bare-url
1053 url = https://github.com/holepunchto/bare-url.git
1054[submodule "repos/tier4/bare-vm"]
1055 path = repos/tier4/bare-vm
1056 url = https://github.com/holepunchto/bare-vm.git
1057[submodule "repos/tier4/bare-webp"]
1058 path = repos/tier4/bare-webp
1059 url = https://github.com/holepunchto/bare-webp.git
1060[submodule "repos/tier4/cmake-bare-bundle"]
1061 path = repos/tier4/cmake-bare-bundle
1062 url = https://github.com/holepunchto/cmake-bare-bundle.git
1063[submodule "repos/tier4/cmake-meson"]
1064 path = repos/tier4/cmake-meson
1065 url = https://github.com/holepunchto/cmake-meson.git
1066[submodule "repos/tier4/hyperbee-diff-stream"]
1067 path = repos/tier4/hyperbee-diff-stream
1068 url = https://github.com/holepunchto/hyperbee-diff-stream.git
1069[submodule "repos/tier4/hypercore-id-encoding"]
1070 path = repos/tier4/hypercore-id-encoding
1071 url = https://github.com/holepunchto/hypercore-id-encoding.git
1072[submodule "repos/tier4/hypercore-logger"]
1073 path = repos/tier4/hypercore-logger
1074 url = https://github.com/holepunchto/hypercore-logger.git
1075[submodule "repos/tier4/libfs"]
1076 path = repos/tier4/libfs
1077 url = https://github.com/holepunchto/libfs.git
1078[submodule "repos/tier4/libparseline"]
1079 path = repos/tier4/libparseline
1080 url = https://github.com/holepunchto/libparseline.git
1081[submodule "repos/tier4/librpc"]
1082 path = repos/tier4/librpc
1083 url = https://github.com/holepunchto/librpc.git
1084[submodule "repos/tier4/nanodebug"]
1085 path = repos/tier4/nanodebug
1086 url = https://github.com/holepunchto/nanodebug.git
1087[submodule "repos/tier4/pear-api"]
1088 path = repos/tier4/pear-api
1089 url = https://github.com/holepunchto/pear-api.git
repos/tier4/autobase-discovery +1 -0
……@@ -0,0 +1 @@
1Subproject commit 2f947ea265e922d6e6f04a312604544b717fe158
repos/tier4/autobase-example +1 -0
……@@ -0,0 +1 @@
1Subproject commit e758ac5f83bc9ff45e13ecfe65bd61f15e17704f
repos/tier4/autobase-test-helpers +1 -0
……@@ -0,0 +1 @@
1Subproject commit 5a4f3ed7ee03274ba0636bb5ab004017e5a18471
repos/tier4/autopass-mobile-example +1 -0
……@@ -0,0 +1 @@
1Subproject commit 6c030e395accb7677f9a33ee4f0c497539c25cac
repos/tier4/bare-abort +1 -0
……@@ -0,0 +1 @@
1Subproject commit 6bbd4af47a42b3d3c11a59c7f3c18276c9af17b7
repos/tier4/bare-addon +1 -0
……@@ -0,0 +1 @@
1Subproject commit f07d25b7fea1f15ee41972d5a9cf239827d8fcfc
repos/tier4/bare-ansi-escapes +1 -0
……@@ -0,0 +1 @@
1Subproject commit cd0be5a4254a1b5a2a12b0ab95d79834f2d44a06
repos/tier4/bare-assert +1 -0
……@@ -0,0 +1 @@
1Subproject commit 216b9ea70756d1b2ca70fa2ebceb074c8d7522c9
repos/tier4/bare-async-hooks +1 -0
……@@ -0,0 +1 @@
1Subproject commit a7dcffa51044eebb18ebd65b1675c60206e8cd7a
repos/tier4/bare-atomics +1 -0
……@@ -0,0 +1 @@
1Subproject commit 8339ec6c3c1872820bf3fd8cb998283d528fe865
repos/tier4/bare-boot +1 -0
……@@ -0,0 +1 @@
1Subproject commit b3434ffaab5ef6ee3e573c6cd5a046ed23555526
repos/tier4/bare-buffer +1 -0
……@@ -0,0 +1 @@
1Subproject commit ba4452a390ece4fd3896378aca06e20628ce3981
repos/tier4/bare-build +1 -0
……@@ -0,0 +1 @@
1Subproject commit ea25b9c1b30df4b17b8d35f553252197b4a62957
repos/tier4/bare-bundle +1 -0
……@@ -0,0 +1 @@
1Subproject commit 63a05ae39ddd7c3948b6c4669a94108f71d68249
repos/tier4/bare-bundle-compile +1 -0
……@@ -0,0 +1 @@
1Subproject commit 4afb0d0048d52b33ed0640836a65ed499a62952d
repos/tier4/bare-channel +1 -0
……@@ -0,0 +1 @@
1Subproject commit 49e2970722edc9c02c888b22d97a1d4ed4c85c1d
repos/tier4/bare-console +1 -0
……@@ -0,0 +1 @@
1Subproject commit 127486940ba855f7bad96c3c477adc0ced7e8e4b
repos/tier4/bare-crypto +1 -0
……@@ -0,0 +1 @@
1Subproject commit f3a4bbbc54ff0fdac2585cefd58adf469895672d
repos/tier4/bare-dev +1 -0
……@@ -0,0 +1 @@
1Subproject commit d853017ef950182c4e49fd82bf07b4f0be2fe38c
repos/tier4/bare-dgram +1 -0
……@@ -0,0 +1 @@
1Subproject commit 5156a7a1b329bf19d09d6dab3c28800adbd01ead
repos/tier4/bare-diagnostics-channel +1 -0
……@@ -0,0 +1 @@
1Subproject commit e6aeb8fea58d5f0dab4074b167317c0ec63d780a
repos/tier4/bare-dns +1 -0
……@@ -0,0 +1 @@
1Subproject commit c95e4e7564dffb8ca9d3ccc8fb3cb7a5e5349f85
repos/tier4/bare-encoding +1 -0
……@@ -0,0 +1 @@
1Subproject commit b00bc0f9e4efbf2a0a6b9915e9f1a6c2543d5d74
repos/tier4/bare-env +1 -0
……@@ -0,0 +1 @@
1Subproject commit 54401eec2b31eb912d50f5bb8c2963363b7055ba
repos/tier4/bare-events +1 -0
……@@ -0,0 +1 @@
1Subproject commit 0f9e0e8dcc52b3970a9e72ab54032cb559927e51
repos/tier4/bare-fetch +1 -0
……@@ -0,0 +1 @@
1Subproject commit 450f8916d085265c843461f4d3760a6e7aadc536
repos/tier4/bare-ffmpeg +1 -0
……@@ -0,0 +1 @@
1Subproject commit ccc45179e442f14297de210358d190999b0d57ac
repos/tier4/bare-gif +1 -0
……@@ -0,0 +1 @@
1Subproject commit 9ae0b1496d8ff11ac4533abb51ee420363dff951
repos/tier4/bare-heif +1 -0
……@@ -0,0 +1 @@
1Subproject commit f49a75ff11e7f085a67e46c17a504a6551b02ae4
repos/tier4/bare-hrtime +1 -0
……@@ -0,0 +1 @@
1Subproject commit fa79efb81b456565a5f1e6136ab709f424e789b5
repos/tier4/bare-http1 +1 -0
……@@ -0,0 +1 @@
1Subproject commit 238021b7d3bf4749d2dbfdcca06558637a797431
repos/tier4/bare-https +1 -0
……@@ -0,0 +1 @@
1Subproject commit 0e3d932a6058b8c2a3521630f101750e456f28ee
repos/tier4/bare-image-resample +1 -0
……@@ -0,0 +1 @@
1Subproject commit 4cec2ecd1d1de1ccb0ac37d75d6a6f0a081bb566
repos/tier4/bare-inspect +1 -0
……@@ -0,0 +1 @@
1Subproject commit 1bd68a53fcb9dcbeed59bd4037f9588416cece32
repos/tier4/bare-inspector +1 -0
……@@ -0,0 +1 @@
1Subproject commit f95462b17396f15b5e4328ce85e8c0d72d98c44b
repos/tier4/bare-link +1 -0
……@@ -0,0 +1 @@
1Subproject commit a9a95f98aa1463bbf8833d9042ebd6bba7547c58
repos/tier4/bare-logger +1 -0
……@@ -0,0 +1 @@
1Subproject commit 43496fba7175bd2349e42ea3f25c59da8ad203f1
repos/tier4/bare-make +1 -0
……@@ -0,0 +1 @@
1Subproject commit eda4f65060ccb7307a2565933860604d9397df88
repos/tier4/bare-media +1 -0
……@@ -0,0 +1 @@
1Subproject commit 13850e97d5ce93ea4772bff76b655a35950349b4
repos/tier4/bare-module +1 -0
……@@ -0,0 +1 @@
1Subproject commit 543f72b42f4a68164cfc9fbe20f3297e2f9fad59
repos/tier4/bare-module-lexer +1 -0
……@@ -0,0 +1 @@
1Subproject commit 6ab0e3dd4d19aaa9458a0205110d628a68c9320e
repos/tier4/bare-module-traverse +1 -0
……@@ -0,0 +1 @@
1Subproject commit c733522447cdbda9cd312fd16e7c4c695ac8377d
repos/tier4/bare-native +1 -0
……@@ -0,0 +1 @@
1Subproject commit b14529f06e2ffab00662a9cffd6e624557e4993b
repos/tier4/bare-net +1 -0
……@@ -0,0 +1 @@
1Subproject commit 005cbe9507fbba21cbc389001e430a4f28a371dc
repos/tier4/bare-node +1 -0
……@@ -0,0 +1 @@
1Subproject commit c7950446a03c3de372faefca1d6e7d6bb34b582f
repos/tier4/bare-os +1 -0
……@@ -0,0 +1 @@
1Subproject commit ef2bdabf4e69cacef589bcc6650a2015e499bdb1
repos/tier4/bare-pack +1 -0
……@@ -0,0 +1 @@
1Subproject commit 4c312b33276ca9b9c2a0dc1e04ba7d1e78335f25
repos/tier4/bare-pack-drive +1 -0
……@@ -0,0 +1 @@
1Subproject commit c253a8e22363c10b113b3f55ffffe14b95c8a43f
repos/tier4/bare-path +1 -0
……@@ -0,0 +1 @@
1Subproject commit 06a351a0f7e739341bfa4aafb9d008243cae3ddf
repos/tier4/bare-pipe +1 -0
……@@ -0,0 +1 @@
1Subproject commit 5dad406ecd0952ae5e317f6737d81797dfadd433
repos/tier4/bare-png +1 -0
……@@ -0,0 +1 @@
1Subproject commit 52ff5969205938e66d4fefa7affbe1f451a5b2cd
repos/tier4/bare-process +1 -0
……@@ -0,0 +1 @@
1Subproject commit 2fc3fbb332e85aa12e7f5bb1031eb6855973962b
repos/tier4/bare-readline +1 -0
……@@ -0,0 +1 @@
1Subproject commit c8b95191dba23e9a0352ac62ab8ff4a2e57f88ae
repos/tier4/bare-realm +1 -0
……@@ -0,0 +1 @@
1Subproject commit 8af844bc57ed9d1a82a1ff935a5dc68019b81538
repos/tier4/bare-repl +1 -0
……@@ -0,0 +1 @@
1Subproject commit 1129dd614775afb3e77a37218187c0d2970089f8
repos/tier4/bare-rpc +1 -0
……@@ -0,0 +1 @@
1Subproject commit 9b0b45a9c9373d442fecd55e444928abbbaeb0e5
repos/tier4/bare-run +1 -0
……@@ -0,0 +1 @@
1Subproject commit f4f1dd6c63224ee9880186fdc7e52780739d3cea
repos/tier4/bare-runtime +1 -0
……@@ -0,0 +1 @@
1Subproject commit 4a044cc1c7fb048eca362387442753d526c36a25
repos/tier4/bare-rust +1 -0
……@@ -0,0 +1 @@
1Subproject commit ef4ebba1cb52b57306caf63ef827210e152c9a96
repos/tier4/bare-sdl +1 -0
……@@ -0,0 +1 @@
1Subproject commit 549d834cbefc79db3ebaa390c46ff8fa5325fa30
repos/tier4/bare-signals +1 -0
……@@ -0,0 +1 @@
1Subproject commit c1e800a5020c6879b0003355ae79f179466ab46c
repos/tier4/bare-snippets +1 -0
……@@ -0,0 +1 @@
1Subproject commit a32d5dacff34a17576f8d7156118c09c99a427ec
repos/tier4/bare-stream +1 -0
……@@ -0,0 +1 @@
1Subproject commit a156047560d74a717f959350b6b560444fb44fb9
repos/tier4/bare-subprocess +1 -0
……@@ -0,0 +1 @@
1Subproject commit 3273726245a39eb669fa97bd49f2293b1b0dcef4
repos/tier4/bare-tcp +1 -0
……@@ -0,0 +1 @@
1Subproject commit 210b90b397507a6d0ed1d158a3aef88962e12c30
repos/tier4/bare-thread +1 -0
……@@ -0,0 +1 @@
1Subproject commit 28234aa4eeb4b058a93d6c715903b945e457b288
repos/tier4/bare-tiff +1 -0
……@@ -0,0 +1 @@
1Subproject commit eaf893950b09553d71009de92f263ff608758b1d
repos/tier4/bare-timers +1 -0
……@@ -0,0 +1 @@
1Subproject commit 5ac6aaf6965a5e15538ac6994e87cea5785a7da4
repos/tier4/bare-tty +1 -0
……@@ -0,0 +1 @@
1Subproject commit cbf720f56368a1ef2d588710f82fa84f10177ada
repos/tier4/bare-type +1 -0
……@@ -0,0 +1 @@
1Subproject commit bf53ddb94330138483a1aa991bdc4fdb628d1d6f
repos/tier4/bare-url +1 -0
……@@ -0,0 +1 @@
1Subproject commit 6270387132af16d098d7e854d1fac9a0f65577b1
repos/tier4/bare-vm +1 -0
……@@ -0,0 +1 @@
1Subproject commit 2c679a85629ef26e303c7872ad862892f0468f4e
repos/tier4/bare-webp +1 -0
……@@ -0,0 +1 @@
1Subproject commit 59c602c1c29891ae315c73deb4c5b21936cb6f88
repos/tier4/bare-worker +1 -0
……@@ -0,0 +1 @@
1Subproject commit 14068e35678a77b6020582b90cec460e256c5dbc
repos/tier4/bare-ws +1 -0
……@@ -0,0 +1 @@
1Subproject commit a29ab163b7c460963f913442181680812844e9fc
repos/tier4/blind-pairing +1 -0
……@@ -0,0 +1 @@
1Subproject commit c421d80cc59aad8ad2b6fe717d11344d70d305f3
repos/tier4/blind-pairing-core +1 -0
……@@ -0,0 +1 @@
1Subproject commit 90337ef2014c069a6be1da02e64af230215e361c
repos/tier4/blind-peer +1 -0
……@@ -0,0 +1 @@
1Subproject commit 746a478b6946932585fe4df91f399fb73f2ba973
repos/tier4/blind-peering +1 -0
……@@ -0,0 +1 @@
1Subproject commit 4d5bb05eb9e52e3dccae95a999deb8ebb537e94a
repos/tier4/blind-relay +1 -0
……@@ -0,0 +1 @@
1Subproject commit 8e9a86e143b3b4ec5516215f6659951ac3e67de4
repos/tier4/chromium-prebuilds +1 -0
……@@ -0,0 +1 @@
1Subproject commit 03e8148914464276c08afdc5786247666b755546
repos/tier4/cmake-bare-bundle +1 -0
……@@ -0,0 +1 @@
1Subproject commit b0b516df6ec86894684df3f712ecbeb7f3cad9fa
repos/tier4/cmake-gn +1 -0
……@@ -0,0 +1 @@
1Subproject commit ce5da2c77e6666f0af2fcf47d069c73bf4259313
repos/tier4/cmake-macos +1 -0
……@@ -0,0 +1 @@
1Subproject commit 0807abd88e499cc467a94244ac95ac82fedc5eec
repos/tier4/cmake-meson +1 -0
……@@ -0,0 +1 @@
1Subproject commit fc1b33307cb363422bd39a71252120f287189d06
repos/tier4/cmake-msix +1 -0
……@@ -0,0 +1 @@
1Subproject commit cc36bac9dbb8316dff48f6667ca732f9bef68763
repos/tier4/cmake-runtime +1 -0
……@@ -0,0 +1 @@
1Subproject commit e4504b1e0d5e19793b84ce4da918dca8b0aa61d2
repos/tier4/db-lock +1 -0
……@@ -0,0 +1 @@
1Subproject commit 74dcdb3aab410f2874f43747f39e09200cb806e6
repos/tier4/fifofile +1 -0
……@@ -0,0 +1 @@
1Subproject commit 322355ef563c90ae9f7789d336b1a93ca65248bb
repos/tier4/git-remote-punch-transport +1 -0
……@@ -0,0 +1 @@
1Subproject commit 767b86d49bee679d68a710b59cddd002fc6a0b89
repos/tier4/hrpc +1 -0
……@@ -0,0 +1 @@
1Subproject commit 82085745e4b321332b05841cf922753e8cacbfe5
repos/tier4/hyper-instrument +1 -0
……@@ -0,0 +1 @@
1Subproject commit 7870918d8e479ba74f314d3dcc8a2ebfef5e528b
repos/tier4/hyperbee-diff-stream +1 -0
……@@ -0,0 +1 @@
1Subproject commit a093048b99b04e8fae27ed267f35d3a8fdd3cff7
repos/tier4/hyperbee2 +1 -0
……@@ -0,0 +1 @@
1Subproject commit 12605d6945481f5915d02a19ef4e848a7970ad13
repos/tier4/hypercore-blob-server +1 -0
……@@ -0,0 +1 @@
1Subproject commit 4edefe55b5a5993817dae4f4dca1e2f85e72db86
repos/tier4/hypercore-id-encoding +1 -0
……@@ -0,0 +1 @@
1Subproject commit 9a3821fa307d01ccc86c2bd9bf7ba99dceec43d6
repos/tier4/hypercore-logger +1 -0
……@@ -0,0 +1 @@
1Subproject commit 516b700dbacb48164a3b71bceb48a18bb9711bcd
repos/tier4/hypercore-storage +1 -0
……@@ -0,0 +1 @@
1Subproject commit 4e8262299837a588a58c160ca943350a4c41bf97
repos/tier4/hyperdispatch +1 -0
……@@ -0,0 +1 @@
1Subproject commit 4140e84fb80c93139bfc359c4d90a64e846c7b3b
repos/tier4/hyperswarm-doctor +1 -0
……@@ -0,0 +1 @@
1Subproject commit 40cc0dccd46cc832de9c40250ad0a463bed707b5
repos/tier4/hyperswarm-testnet +1 -0
……@@ -0,0 +1 @@
1Subproject commit c301fb808735caeebf711c0bc6de79b7c1036bfa
repos/tier4/hypertrace +1 -0
……@@ -0,0 +1 @@
1Subproject commit 09271e19417acdddf85bbc7a22d3965d354a3f7b
repos/tier4/index-encoder +1 -0
……@@ -0,0 +1 @@
1Subproject commit e1b7def4d3101b0f83019a3801d2cbcdd63552a5
repos/tier4/libappling +1 -0
……@@ -0,0 +1 @@
1Subproject commit 7fab08b1d2a760a481570be814499f6a76b37396
repos/tier4/libcrc +1 -0
……@@ -0,0 +1 @@
1Subproject commit 9a0c969126725517de39da4b92bbc53c87bbb7ad
repos/tier4/libfs +1 -0
……@@ -0,0 +1 @@
1Subproject commit 0933d52a56796853c3c0b5dda171807fa31931be
repos/tier4/libfx +1 -0
……@@ -0,0 +1 @@
1Subproject commit 463da548f21040841ee6f85b5ea855b0cff573e4
repos/tier4/libjerry +1 -0
……@@ -0,0 +1 @@
1Subproject commit eb04362bc779eab1c7c42a39a7e07bc5ec25a7fc
repos/tier4/libjsc +1 -0
……@@ -0,0 +1 @@
1Subproject commit 10b6784ed1eb1e4b4ec93eb6097d88420726e207
repos/tier4/libjstl +1 -0
……@@ -0,0 +1 @@
1Subproject commit 1da29456a9d8ec54a8ac41ffc20311704e501060
repos/tier4/liblog +1 -0
……@@ -0,0 +1 @@
1Subproject commit edcfd8f4294819953c323838e903ad19d51a2ac5
repos/tier4/libmem +1 -0
……@@ -0,0 +1 @@
1Subproject commit a53806c928bb6e10cf5dc3189e89dd5d8ac81a93
repos/tier4/libparseline +1 -0
……@@ -0,0 +1 @@
1Subproject commit c56b1ca67df2b1b44dcb6c7dd9b724a0dd65f196
repos/tier4/libpearsync +1 -0
……@@ -0,0 +1 @@
1Subproject commit 7b1808cd60a605dd327af0a9f440e05d7f7449d3
repos/tier4/librocksdb +1 -0
……@@ -0,0 +1 @@
1Subproject commit 5edf625eefe0105e6a9b2510ab7c3ade9b28059f
repos/tier4/librpc +1 -0
……@@ -0,0 +1 @@
1Subproject commit f6510376a28663363afd5bdc8f5e33cd26d6a132
repos/tier4/libsimdle +1 -0
……@@ -0,0 +1 @@
1Subproject commit ce57d0ff7af020a33de6c498aff097354309fee9
repos/tier4/libtt +1 -0
……@@ -0,0 +1 @@
1Subproject commit bfcf3b3617af3c230be28c79dc4d3c8e952eda53
repos/tier4/liburl +1 -0
……@@ -0,0 +1 @@
1Subproject commit 03f148832a957e7ac3a5a3520ccb6cd88e86eee3
repos/tier4/libutf +1 -0
……@@ -0,0 +1 @@
1Subproject commit 6b1a36f32697756e36d7acca82c2cb3bf8713168
repos/tier4/localwatch +1 -0
……@@ -0,0 +1 @@
1Subproject commit 885136ea96cff4f92133850e59a8e29a2ec45bf1
repos/tier4/nanodebug +1 -0
……@@ -0,0 +1 @@
1Subproject commit 8abdf9d92ef8f7521ccfde9d3d760ac55b22d3b9
repos/tier4/netpaste +1 -0
……@@ -0,0 +1 @@
1Subproject commit 27deedc243c00ff4f140bdaacec70dd622c882ef
repos/tier4/network-block-device +1 -0
……@@ -0,0 +1 @@
1Subproject commit dcea170cdd56f41497fb546af27c8f58f35889de
repos/tier4/paparam +1 -0
……@@ -0,0 +1 @@
1Subproject commit 7b62bba7bbe5d4e5ae7aa3bc1db52f7ab77b66e7
repos/tier4/pear-api +1 -0
……@@ -0,0 +1 @@
1Subproject commit ef91105ef57e2adf09ebd71db7495c22ac19a770
repos/tier4/pear-appling +1 -0
……@@ -0,0 +1 @@
1Subproject commit 1477e6646609b66f2798875d6e312c36e1fcf04d
repos/tier4/pear-desktop +1 -0
……@@ -0,0 +1 @@
1Subproject commit f0a5978ef599eb7704932255e1c6e8e8ff753ae4
repos/tier4/pear-electron +1 -0
……@@ -0,0 +1 @@
1Subproject commit 19267e5e8a77112baf1327632b5228f4c15dcb0f
repos/tier4/pear-runtime-bare +1 -0
……@@ -0,0 +1 @@
1Subproject commit aa59a1933d1ed54075a7fe3f80f3ded3c21313cf
repos/tier4/pear-workshop +1 -0
……@@ -0,0 +1 @@
1Subproject commit 091070d51faa807ce3a4e59bd8976d4db661a843
repos/tier4/protomux-rpc +1 -0
……@@ -0,0 +1 @@
1Subproject commit 3d604db6ef235340749b8017802cf2526b91d04b
repos/tier4/quickbit-universal +1 -0
……@@ -0,0 +1 @@
1Subproject commit 01412e3da04aba14a02e8cfb466babd0794c483d
repos/tier4/require-addon +1 -0
……@@ -0,0 +1 @@
1Subproject commit 6ee3cf613cad0e52682def12fe6e5c1a947efb79
repos/tier4/same-object +1 -0
……@@ -0,0 +1 @@
1Subproject commit 531e966068bf4fe78330a5f304205261a9755054
repos/tier4/scope-lock +1 -0
……@@ -0,0 +1 @@
1Subproject commit 27682e2c21985ae4c2654e9f722b8dd9b565d898
repos/tier4/secure-prompt +1 -0
……@@ -0,0 +1 @@
1Subproject commit b2139652c8cc6a6f8267e4f556f244f2fb9036f9
repos/tier4/semifies +1 -0
……@@ -0,0 +1 @@
1Subproject commit 4ac62196edf695ba95fdf2a49c27edd27dc9398c
repos/tier4/sentry-bare +1 -0
……@@ -0,0 +1 @@
1Subproject commit d51e860de37f920c98a1f35ac23eb29d19f9f023
repos/tier4/serve-drive +1 -0
……@@ -0,0 +1 @@
1Subproject commit 546132418c0af1bdc6690441625b1e89f23bc67b
repos/tier4/slab-hunter +1 -0
……@@ -0,0 +1 @@
1Subproject commit 080e1700e825a5e96247c50d05e32fbc520d5248
repos/tier4/sloppy-module-parser +1 -0
……@@ -0,0 +1 @@
1Subproject commit f4d550c2e1e566745a8f0907d7af6c910d40a4df
repos/tier4/sqlite3-native +1 -0
……@@ -0,0 +1 @@
1Subproject commit 99e09c81758af5de9163ddf83bd19b410d3cd215
repos/tier4/task-backoff +1 -0
……@@ -0,0 +1 @@
1Subproject commit 308c00ac8fe344496a8b47fcd5e2b1896bc247bf
repos/tier4/tiny-timers-native +1 -0
……@@ -0,0 +1 @@
1Subproject commit fc159e8719d83a5e430f9bff6e3e7248eae039b0
repos/tier4/tt-native +1 -0
……@@ -0,0 +1 @@
1Subproject commit caad68b00b029419e88ffb3a55967a825a123cff
repos/tier4/utun +1 -0
……@@ -0,0 +1 @@
1Subproject commit 7fa7f0d2b1a8ca85fd43a0463971962dc458b16f
repos/tier4/wasm-tools +1 -0
……@@ -0,0 +1 @@
1Subproject commit 819741ca24a355798f79bd8b3e69f2dd774a9631
repos/tier4/watch-drive +1 -0
……@@ -0,0 +1 @@
1Subproject commit 0cbd44844bfd7c8a22e37bf2f25e5be861eb7106
repos/tier4/which-runtime +1 -0
……@@ -0,0 +1 @@
1Subproject commit db5e85cc880012a97c50012dc382e727c391b867
skills/autobase-discovery/api-extract.json +45 -0
……@@ -0,0 +1,45 @@
1{
2 "repo": "autobase-discovery",
3 "timestamp": "2026-01-16T23:56:28.717Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [
13 {
14 "type": "default",
15 "name": "Autodiscovery"
16 }
17 ],
18 "classes": [
19 {
20 "name": "Autodiscovery"
21 }
22 ],
23 "functions": []
24 },
25 "readme": {
26 "content": "# Autobase Discovery\n\nAutomatic service discovery with self-registering services, using [autobase](https://github.com/holepunchto/autobase). Works well with [protomux-rpc](https://github.com/holepunchto/protomux-rpc) services.\n\nClients discover the RPC services by querying the autodiscovery's [hyperdb](https://github.com/holepunchto/hyperdb), which is an autobase view.\n\nSee [autobase-discovery-cli](https://github.com/holepunchto/autobase-discovery-cli) for running as a CLI.\n\n## Install\n\n```\nnpm i autobase-discovery\n```\n\n## Usage\n\n### Security\n\nAutodiscovery uses a simple security model, taking advantage of the authentication mechanism of HyperDHT.\n\nAll clients who wish to register to the autodiscovery service know a shared secret seed (64 bytes). This seed is passed to the autodiscovery clients, which deterministically generate a DHT keyPair. This keyPair is then used to open a connection to the autodiscovery RPC server.\n\nThe autodiscovery service is passed the public key corresponding",
27 "sections": [
28 "intro",
29 "install",
30 "usage"
31 ],
32 "hasApi": true,
33 "hasExamples": true,
34 "exampleCount": 2,
35 "examples": [
36 "npm i autobase-discovery",
37 "HyperDHT.keyPair(Buffer.from(seed, 'hex')).publicKey.toString('hex')"
38 ]
39 },
40 "patterns": [
41 "dht-discovery",
42 "stream-multiplexing",
43 "binary-encoding"
44 ]
45}
skills/autobase-discovery/skills.md +34 -2
……@@ -60,11 +60,43 @@ Autodiscovery uses a simple security model, taking advantage of the authenticati
6060
6161## API Documentation
6262
63_To be enriched in Phase 1B with deep code analysis_
63_Extracted from README and code analysis_
64
65### Classes
66
67- `Autodiscovery`
68
69### Exports
70
71- default: `Autodiscovery`
72
73
74_See [api-extract.json](./api-extract.json) for detailed API information._
75
6476
6577## Usage Examples
6678
67_To be added in Phase 1B_
79_Extracted from README_
80
81### Example 1
82
83```javascript
84npm i autobase-discovery
85```
86
87### Example 2
88
89```javascript
90HyperDHT.keyPair(Buffer.from(seed, 'hex')).publicKey.toString('hex')
91```
92
93
94
95## P2P Patterns
96
97- dht-discovery
98- stream-multiplexing
99- binary-encoding
68100
69101## Semantic Type
70102
skills/autobase-example/api-extract.json +46 -0
……@@ -0,0 +1,46 @@
1{
2 "repo": "autobase-example",
3 "timestamp": "2026-01-16T23:56:15.900Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [],
13 "classes": [
14 {
15 "name": "View"
16 }
17 ],
18 "functions": [
19 {
20 "name": "onwritable"
21 },
22 {
23 "name": "append"
24 }
25 ]
26 },
27 "readme": {
28 "content": "# autobase-example\n\nJust a full E2E simple autobase example\n\n```\nnpm install autobase-example\n```\n\nSee other examples of using `autobase` in [`autobase/examples`](https://github.com/holepunchto/autobase/tree/main/examples).\n\n## Usage\n\n```\nnpm install -g autobase-example\nautobase-example -h # prints help\n```\n\n### Walkthrough\n\n1. Run the bootstrap peer with swarming enabled:\n\n ```console\n autobase-example --swarm\n ```\n\n You will see the following:\n ```\n Base key <base key>\n Local key <base key>\n ```\n Note that the local key will be the same for the bootstrap.\n2. In another shell, run another peer, named `b`, that will write messages to\n the autobase via the `--spam` flag. Replace the `<base key>` with the Base\n key from the bootstrap:\n\n ```\n autobase-example --name b --key <base key> --spam 1 --swarm\n ```\n\n Similarly this will output a Base key and Local key with the Local key being\n different this time since it is not the bootstrap node. Following the key",
29 "sections": [
30 "intro",
31 "usage",
32 "license"
33 ],
34 "hasApi": true,
35 "hasExamples": true,
36 "exampleCount": 6,
37 "examples": [
38 "npm install autobase-example",
39 "npm install -g autobase-example\nautobase-example -h # prints help",
40 "You will see the following:"
41 ]
42 },
43 "patterns": [
44 "peer-discovery"
45 ]
46}
skills/autobase-example/skills.md +40 -2
……@@ -54,11 +54,49 @@ autobase-example -h # prints help
5454
5555## API Documentation
5656
57_To be enriched in Phase 1B with deep code analysis_
57_Extracted from README and code analysis_
58
59### Classes
60
61- `View`
62
63### Functions
64
65- `onwritable()`
66- `append()`
67
68
69_See [api-extract.json](./api-extract.json) for detailed API information._
70
5871
5972## Usage Examples
6073
61_To be added in Phase 1B_
74_Extracted from README_
75
76### Example 1
77
78```javascript
79npm install autobase-example
80```
81
82### Example 2
83
84```javascript
85npm install -g autobase-example
86autobase-example -h # prints help
87```
88
89### Example 3
90
91```javascript
92You will see the following:
93```
94
95
96
97## P2P Patterns
98
99- peer-discovery
62100
63101## Semantic Type
64102
skills/autobase-test-helpers/api-extract.json +70 -0
……@@ -0,0 +1,70 @@
1{
2 "repo": "autobase-test-helpers",
3 "timestamp": "2026-01-16T23:56:29.085Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [],
13 "classes": [],
14 "functions": [
15 {
16 "name": "eventFlush"
17 },
18 {
19 "name": "replicateAndSync"
20 },
21 {
22 "name": "sync"
23 },
24 {
25 "name": "check"
26 },
27 {
28 "name": "mbShutdown"
29 },
30 {
31 "name": "same"
32 },
33 {
34 "name": "shutdown"
35 },
36 {
37 "name": "sameHash"
38 },
39 {
40 "name": "synced"
41 },
42 {
43 "name": "same"
44 },
45 {
46 "name": "replicate"
47 },
48 {
49 "name": "close"
50 }
51 ]
52 },
53 "readme": {
54 "content": "# autobase-test-helpers\n\nHelpers when writing tests for an Autobased application\n\n```\nnpm install autobase-test-helpers\n```\n\n## Usage\n\n``` js\nconst { sync } = require('autobase-test-helpers')\n\nawait sync(bases) // expects replication to have been set up\n```\n\n## License\n\nMIT\n",
55 "sections": [
56 "intro",
57 "usage",
58 "license"
59 ],
60 "hasApi": true,
61 "hasExamples": true,
62 "exampleCount": 1,
63 "examples": [
64 "npm install autobase-test-helpers"
65 ]
66 },
67 "patterns": [
68 "replication"
69 ]
70}
skills/autobase-test-helpers/skills.md +33 -2
……@@ -51,11 +51,42 @@ MIT
5151
5252## API Documentation
5353
54_To be enriched in Phase 1B with deep code analysis_
54_Extracted from README and code analysis_
55
56### Functions
57
58- `eventFlush()`
59- `replicateAndSync()`
60- `sync()`
61- `check()`
62- `mbShutdown()`
63- `same()`
64- `shutdown()`
65- `sameHash()`
66- `synced()`
67- `same()`
68- `replicate()`
69- `close()`
70
71
72_See [api-extract.json](./api-extract.json) for detailed API information._
73
5574
5675## Usage Examples
5776
58_To be added in Phase 1B_
77_Extracted from README_
78
79### Example 1
80
81```javascript
82npm install autobase-test-helpers
83```
84
85
86
87## P2P Patterns
88
89- replication
5990
6091## Semantic Type
6192
skills/autopass-mobile-example/api-extract.json +28 -0
……@@ -0,0 +1,28 @@
1{
2 "repo": "autopass-mobile-example",
3 "timestamp": "2026-01-16T23:56:04.339Z",
4 "entryPoint": "expo-router/entry",
5 "exports": {
6 "packageJson": {
7 "main": "expo-router/entry"
8 }
9 },
10 "api": {},
11 "readme": {
12 "content": "# Autopass-example\n\nExample of using [Autopass](https://github.com/holepunchto/autopass) in an Expo application using <https://github.com/holepunchto/react-native-bare-kit>.\n\nWorks with [Pearpass-example](https://github.com/holepunchto/pearpass-example/)\n\n## Usage\n\nStart by installing the dependencies:\n\n```sh\nnpm install\n```\n\nGenerate a bundle\n\n```sh\n npx bare-pack --target ios --target android --linked --out app/app.bundle.mjs backend/backend.mjs\n```\n\nWhen finished, you can run the app on either iOS or Android.\n\n### iOS\n\n```sh\nnpm run ios\n```\n\n### Android\n\n> [!IMPORTANT] \n> You may experience problems running the app on an emulated Android device under QEMU due to https://github.com/holepunchto/libjs/issues/4. If you encounter crashes, try running the app on a real Android device instead.\n\n```sh\nnpm run android\n```\n\n## License\n\nApache-2.0\n",
13 "sections": [
14 "intro",
15 "usage",
16 "license"
17 ],
18 "hasApi": true,
19 "hasExamples": true,
20 "exampleCount": 3,
21 "examples": [
22 "Generate a bundle",
23 "When finished, you can run the app on either iOS or Android.\n\n### iOS",
24 "### Android\n\n> [!IMPORTANT] \n> You may experience problems running the app on an emulated Android device under QEMU due to https://github.com/holepunchto/libjs/issues/4. If you encounter crashes, try running the app on a real Android device instead."
25 ]
26 },
27 "patterns": []
28}
skills/autopass-mobile-example/skills.md +31 -2
……@@ -69,11 +69,40 @@ Generate a bundle
6969
7070## API Documentation
7171
72_To be enriched in Phase 1B with deep code analysis_
72_Extracted from README and code analysis_
73
74
75_See [api-extract.json](./api-extract.json) for detailed API information._
76
7377
7478## Usage Examples
7579
76_To be added in Phase 1B_
80_Extracted from README_
81
82### Example 1
83
84```javascript
85Generate a bundle
86```
87
88### Example 2
89
90```javascript
91When finished, you can run the app on either iOS or Android.
92
93### iOS
94```
95
96### Example 3
97
98```javascript
99### Android
100
101> [!IMPORTANT]
102> You may experience problems running the app on an emulated Android device under QEMU due to https://github.com/holepunchto/libjs/issues/4. If you encounter crashes, try running the app on a real Android device instead.
103```
104
105
77106
78107## Semantic Type
79108
skills/bare-dev/api-extract.json +46 -0
……@@ -0,0 +1,46 @@
1{
2 "repo": "bare-dev",
3 "timestamp": "2026-01-16T23:56:05.885Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js",
8 "exports": {
9 ".": "./index.js",
10 "./android": "./lib/android.js",
11 "./build": "./lib/build.js",
12 "./bundle": "./lib/bundle.js",
13 "./clean": "./lib/clean.js",
14 "./configure": "./lib/configure.js",
15 "./dependencies": "./lib/dependencies.js",
16 "./drive": "./lib/drive.js",
17 "./init": "./lib/init.js",
18 "./install": "./lib/install.js",
19 "./ios": "./lib/ios.js",
20 "./paths": "./lib/paths.js",
21 "./test": "./lib/test.js",
22 "./vendor": "./lib/vendor.js"
23 }
24 }
25 },
26 "api": {
27 "file": "index.js",
28 "exports": [],
29 "classes": [],
30 "functions": []
31 },
32 "readme": {
33 "content": "# bare-dev\n\nDevelopment tooling for Bare.\n\n## License\n\nApache-2.0\n",
34 "sections": [
35 "intro",
36 "license"
37 ],
38 "hasApi": false,
39 "hasExamples": false,
40 "exampleCount": 0,
41 "examples": []
42 },
43 "patterns": [
44 "peer-discovery"
45 ]
46}
skills/bare-dev/skills.md +9 -1
……@@ -73,12 +73,20 @@ Apache-2.0
7373
7474## API Documentation
7575
76_To be enriched in Phase 1B with deep code analysis_
76_Extracted from code analysis_
77
78
79_See [api-extract.json](./api-extract.json) for detailed API information._
80
7781
7882## Usage Examples
7983
8084_To be added in Phase 1B_
8185
86## P2P Patterns
87
88- peer-discovery
89
8290## Semantic Type
8391
8492_To be classified in Phase 2_
skills/bare-media/api-extract.json +36 -0
……@@ -0,0 +1,36 @@
1{
2 "repo": "bare-media",
3 "timestamp": "2026-01-16T23:55:43.255Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js",
8 "type": "module"
9 }
10 },
11 "api": {
12 "file": "index.js",
13 "exports": [],
14 "classes": [],
15 "functions": []
16 },
17 "readme": {
18 "content": "# bare-media\n\nA set of media apis for Bare\n\n## Install\n\n```\nnpm i bare-media\n```\n\n## Usage\n\n```js\nimport { WorkerClient } from 'bare-media'\nimport { spawn } from 'cross-worker-pear' // or 'cross-worker-bare-kit'\n\nconst worker = new WorkerClient({ spawn })\nconst data = await worker.createImagePreview({ path, maxWidth, maxHeight })\n```\n\n> NOTE: A worker spawns when an operation is requested and it stays running until the parent process is killed.\n\nTerminate the worker:\n\n```js\nworker.close()\n\nworker.onClose = () => {\n // worker terminated\n}\n```\n\nCall the methods directly without a worker:\n\n```js\nimport { createImagePreview } from 'bare-media/worker/media.js'\n\nconst data = await createImagePreview({ path, maxWidth, maxHeight })\n```\n\n## API\n\n> See [schema.js](shared/spec/schema.js) for the complete reference of parameters\n\n### createImagePreview()\n\nCreate a preview from a media file\n\n| Property | Type | Description |\n| ----",
19 "sections": [
20 "intro",
21 "install",
22 "usage",
23 "api",
24 "license"
25 ],
26 "hasApi": true,
27 "hasExamples": true,
28 "exampleCount": 4,
29 "examples": [
30 "npm i bare-media",
31 "import { WorkerClient } from 'bare-media'\nimport { spawn } from 'cross-worker-pear' // or 'cross-worker-bare-kit'\n\nconst worker = new WorkerClient({ spawn })\nconst data = await worker.createImagePreview({ path, maxWidth, maxHeight })",
32 "worker.close()\n\nworker.onClose = () => {\n // worker terminated\n}"
33 ]
34 },
35 "patterns": []
36}
skills/bare-media/skills.md +34 -2
……@@ -69,11 +69,43 @@ const data = await worker.createImagePreview({ path, maxWidth, maxHeight })
6969
7070## API Documentation
7171
72_To be enriched in Phase 1B with deep code analysis_
72_Extracted from README and code analysis_
73
74
75_See [api-extract.json](./api-extract.json) for detailed API information._
76
7377
7478## Usage Examples
7579
76_To be added in Phase 1B_
80_Extracted from README_
81
82### Example 1
83
84```javascript
85npm i bare-media
86```
87
88### Example 2
89
90```javascript
91import { WorkerClient } from 'bare-media'
92import { spawn } from 'cross-worker-pear' // or 'cross-worker-bare-kit'
93
94const worker = new WorkerClient({ spawn })
95const data = await worker.createImagePreview({ path, maxWidth, maxHeight })
96```
97
98### Example 3
99
100```javascript
101worker.close()
102
103worker.onClose = () => {
104 // worker terminated
105}
106```
107
108
77109
78110## Semantic Type
79111
skills/bare-node/api-extract.json +26 -0
……@@ -0,0 +1,26 @@
1{
2 "repo": "bare-node",
3 "timestamp": "2026-01-16T23:55:44.082Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {}
7 },
8 "api": {},
9 "readme": {
10 "content": "# bare-node\n\nCompatibility modules for Bare that try to behave like their Node.js counterparts. Not meant to cover 100% of all APIs but the 95% that everyone uses.\n\n## Usage\n\nTo use any of the supported Node.js builtins, such as `fs`, in a Bare application run the following:\n\n```\nnpm i bare-fs fs@npm:bare-node-fs\n```\n\nThis will add something like the following to your `package.json`:\n\n```json\n{\n \"dependencies\": {\n \"bare-fs\": \"^2.1.5\",\n \"fs\": \"npm:bare-node-fs\"\n }\n}\n```\n\nThe only thing the wrapper does is `module.exports = require('bare-fs')` and at version `*`, meaning the version you specify is the one that wins. Using the wrapper saves you space as it means npm will only include `bare-fs` once even if multiple modules depend on it.\n\n### Import maps\n\nWhen writing a module that uses a Node.js builtin, such as `fs`, you can also choose to specify directly in that module what builtin should map to instead of relying on the compatibility layer. You would do that using an import ma",
11 "sections": [
12 "intro",
13 "usage",
14 "modules",
15 "license"
16 ],
17 "hasApi": true,
18 "hasExamples": true,
19 "exampleCount": 2,
20 "examples": [
21 "npm i bare-fs fs@npm:bare-node-fs",
22 "The only thing the wrapper does is `module.exports = require('bare-fs')` and at version `*`, meaning the version you specify is the one that wins. Using the wrapper saves you space as it means npm will only include `bare-fs` once even if multiple modules depend on it.\n\n### Import maps\n\nWhen writing a module that uses a Node.js builtin, such as `fs`, you can also choose to specify directly in that module what builtin should map to instead of relying on the compatibility layer. You would do that using an import map by adding the following to your `package.json`:"
23 ]
24 },
25 "patterns": []
26}
skills/bare-node/skills.md +24 -2
……@@ -43,11 +43,33 @@ This will add something like the following to your `package.json`:
4343
4444## API Documentation
4545
46_To be enriched in Phase 1B with deep code analysis_
46_Extracted from README and code analysis_
47
48
49_See [api-extract.json](./api-extract.json) for detailed API information._
50
4751
4852## Usage Examples
4953
50_To be added in Phase 1B_
54_Extracted from README_
55
56### Example 1
57
58```javascript
59npm i bare-fs fs@npm:bare-node-fs
60```
61
62### Example 2
63
64```javascript
65The only thing the wrapper does is `module.exports = require('bare-fs')` and at version `*`, meaning the version you specify is the one that wins. Using the wrapper saves you space as it means npm will only include `bare-fs` once even if multiple modules depend on it.
66
67### Import maps
68
69When writing a module that uses a Node.js builtin, such as `fs`, you can also choose to specify directly in that module what builtin should map to instead of relying on the compatibility layer. You would do that using an import map by adding the following to your `package.json`:
70```
71
72
5173
5274## Semantic Type
5375
skills/bare-rust/api-extract.json +22 -0
……@@ -0,0 +1,22 @@
1{
2 "repo": "bare-rust",
3 "timestamp": "2026-01-16T23:56:35.126Z",
4 "entryPoint": null,
5 "exports": {},
6 "api": {},
7 "readme": {
8 "content": "# bare-rust\n\nRust and Bare, sitting in a tree.\n\n```\ncargo add bare-rust\n```\n\n## Usage\n\nSee <https://github.com/holepunchto/bare-addon-rust> for an example of using the Rust bindings to create a Bare addon.\n\n## License\n\nApache-2.0\n",
9 "sections": [
10 "intro",
11 "usage",
12 "license"
13 ],
14 "hasApi": true,
15 "hasExamples": true,
16 "exampleCount": 1,
17 "examples": [
18 "cargo add bare-rust"
19 ]
20 },
21 "patterns": []
22}
skills/bare-rust/skills.md +14 -2
……@@ -32,11 +32,23 @@ Apache-2.0
3232
3333## API Documentation
3434
35_To be enriched in Phase 1B with deep code analysis_
35_Extracted from README and code analysis_
36
37
38_See [api-extract.json](./api-extract.json) for detailed API information._
39
3640
3741## Usage Examples
3842
39_To be added in Phase 1B_
43_Extracted from README_
44
45### Example 1
46
47```javascript
48cargo add bare-rust
49```
50
51
4052
4153## Semantic Type
4254
skills/bare-snippets/api-extract.json +21 -0
……@@ -0,0 +1,21 @@
1{
2 "repo": "bare-snippets",
3 "timestamp": "2026-01-16T23:55:44.459Z",
4 "entryPoint": null,
5 "exports": {},
6 "api": {},
7 "readme": {
8 "content": "# Bare Snippets\n\nReady to run examples of how Bare makes running Javascript everywhere easy.\n\n- [ESM & CommonJS Interop Support](./esm-cjs-interop)\n- [Forget Upgrade Anxiety](./upgrade-anxiety)\n- [Simple Native Addon Support](./addon-support)\n- [Built for Mobile](./mobile)\n\n## Setup\n\nTo run any of the snippets, you will need to install `bare` first:\n\n```\nnpm i -g bare\n```\n\nThen follow the instructions in the README.md for the given snippet.\n",
9 "sections": [
10 "intro",
11 "setup"
12 ],
13 "hasApi": false,
14 "hasExamples": true,
15 "exampleCount": 1,
16 "examples": [
17 "npm i -g bare"
18 ]
19 },
20 "patterns": []
21}
skills/bare-snippets/skills.md +14 -2
……@@ -35,11 +35,23 @@ Then follow the instructions in the README.md for the given snippet.
3535
3636## API Documentation
3737
38_To be enriched in Phase 1B with deep code analysis_
38_Extracted from code analysis_
39
40
41_See [api-extract.json](./api-extract.json) for detailed API information._
42
3943
4044## Usage Examples
4145
42_To be added in Phase 1B_
46_Extracted from README_
47
48### Example 1
49
50```javascript
51npm i -g bare
52```
53
54
4355
4456## Semantic Type
4557
skills/blind-pairing-core/api-extract.json +98 -0
……@@ -0,0 +1,98 @@
1{
2 "repo": "blind-pairing-core",
3 "timestamp": "2026-01-16T23:56:00.047Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [],
13 "classes": [
14 {
15 "name": "CandidateRequest"
16 },
17 {
18 "name": "MemberRequest"
19 }
20 ],
21 "functions": [
22 {
23 "name": "createReceipt"
24 },
25 {
26 "name": "verifyReceipt"
27 },
28 {
29 "name": "deriveInviteId"
30 },
31 {
32 "name": "deriveKey"
33 },
34 {
35 "name": "deriveNonce"
36 },
37 {
38 "name": "deriveToken"
39 },
40 {
41 "name": "createSessionToken"
42 },
43 {
44 "name": "deriveRequestId"
45 },
46 {
47 "name": "createInvite"
48 },
49 {
50 "name": "decodeInvite"
51 },
52 {
53 "name": "encrypt"
54 },
55 {
56 "name": "decrypt"
57 },
58 {
59 "name": "createAuth"
60 },
61 {
62 "name": "openAuth"
63 },
64 {
65 "name": "createReply"
66 },
67 {
68 "name": "openReply"
69 },
70 {
71 "name": "createSignature"
72 },
73 {
74 "name": "verifySignature"
75 }
76 ]
77 },
78 "readme": {
79 "content": "# blind-pairing-core\n\n### Pairing Flow\n\nThe pairing flow proceeds as follows:\n\n1. The member (inviter) creates an invitation (a new signing keypair) and shares `{ discoveryKey, seed }` with a candidate (invitee). `publicKey` is set aside for later use.\n2. The candidate produces a request with arbitrary `userData` signed by the invitation keyPair, this is encrypted to a key derived from the invite `publicKey`.\n3. Upon receiving the request, the member decrypts the payload and verifies the signature against the invitation `publicKey`, proving that the invitee has `secretKey`.\n4. The member can evaluate `userData` and either confirm or deny the request. A response is returned to the candidate which may contain the `{ key, encryptionKey }` needed to join the room.\n5. The candidate verifies that `key` corresponds to `discoveryKey`, confirming that the remote peer has read-access to `key` (is a valid member).\n\n## Usage\n\n```js\nimport {\n CandidateRequest,\n MemberRequest,\n createInvite\n} fro",
80 "sections": [
81 "intro",
82 "usage",
83 "api",
84 "license"
85 ],
86 "hasApi": true,
87 "hasExamples": true,
88 "exampleCount": 2,
89 "examples": [
90 "import {\n CandidateRequest,\n MemberRequest,\n createInvite\n} from 'blind-pairing-core'\n\nconst { invite, publicKey } = createInvite(key) // key is a Hypercore or Autobase key\n\n// candidate\n\nconst candidate = new CandidateRequest(invite, { userData: 'hello world' })\ncandidate.on('accepted', () => console.log('accepted!'))\n\nconst transport = candidate.encode()\n\n// member\n\nconst request = MemberRequest.from(transport)\n\nconst userData = request.open(publicKey)\nconsole.log(userData) // hello world\n\nrequest.confirm({ key })\n\n// candidate\n\ncandidate.handleResponse(request.response)\n// candidate accepted event will fire\n\nconsole.log(candidate.auth) // { key }",
91 "{\n CandidateRequest,\n MemberRequest,\n createInvite,\n decodeInvite,\n verifyReceipt\n}"
92 ]
93 },
94 "patterns": [
95 "binary-encoding",
96 "cryptography"
97 ]
98}
skills/blind-pairing-core/skills.md +86 -2
……@@ -57,11 +57,95 @@ import {
5757
5858## API Documentation
5959
60_To be enriched in Phase 1B with deep code analysis_
60_Extracted from README and code analysis_
61
62### Classes
63
64- `CandidateRequest`
65- `MemberRequest`
66
67### Functions
68
69- `createReceipt()`
70- `verifyReceipt()`
71- `deriveInviteId()`
72- `deriveKey()`
73- `deriveNonce()`
74- `deriveToken()`
75- `createSessionToken()`
76- `deriveRequestId()`
77- `createInvite()`
78- `decodeInvite()`
79- `encrypt()`
80- `decrypt()`
81- `createAuth()`
82- `openAuth()`
83- `createReply()`
84- `openReply()`
85- `createSignature()`
86- `verifySignature()`
87
88
89_See [api-extract.json](./api-extract.json) for detailed API information._
90
6191
6292## Usage Examples
6393
64_To be added in Phase 1B_
94_Extracted from README_
95
96### Example 1
97
98```javascript
99import {
100 CandidateRequest,
101 MemberRequest,
102 createInvite
103} from 'blind-pairing-core'
104
105const { invite, publicKey } = createInvite(key) // key is a Hypercore or Autobase key
106
107// candidate
108
109const candidate = new CandidateRequest(invite, { userData: 'hello world' })
110candidate.on('accepted', () => console.log('accepted!'))
111
112const transport = candidate.encode()
113
114// member
115
116const request = MemberRequest.from(transport)
117
118const userData = request.open(publicKey)
119console.log(userData) // hello world
120
121request.confirm({ key })
122
123// candidate
124
125candidate.handleResponse(request.response)
126// candidate accepted event will fire
127
128console.log(candidate.auth) // { key }
129```
130
131### Example 2
132
133```javascript
134{
135 CandidateRequest,
136 MemberRequest,
137 createInvite,
138 decodeInvite,
139 verifyReceipt
140}
141```
142
143
144
145## P2P Patterns
146
147- binary-encoding
148- cryptography
65149
66150## Semantic Type
67151
skills/blind-pairing/api-extract.json +72 -0
……@@ -0,0 +1,72 @@
1{
2 "repo": "blind-pairing",
3 "timestamp": "2026-01-16T23:55:54.545Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [
13 {
14 "type": "default",
15 "name": "BlindPairing"
16 }
17 ],
18 "classes": [
19 {
20 "name": "TimeoutPromise"
21 },
22 {
23 "name": "BlindPairing"
24 },
25 {
26 "name": "Member"
27 },
28 {
29 "name": "Candidate"
30 }
31 ],
32 "functions": [
33 {
34 "name": "noop"
35 },
36 {
37 "name": "deriveReplyKeyPair"
38 },
39 {
40 "name": "deriveEphemeralKeyPair"
41 },
42 {
43 "name": "deriveDiscoveryKey"
44 },
45 {
46 "name": "getMuxer"
47 },
48 {
49 "name": "randomInterval"
50 }
51 ]
52 },
53 "readme": {
54 "content": "# blind-pairing\n\nBlind pairing over HyperDHT\n\n```\nnpm install blind-pairing\n```\n\n## Usage\n\n``` js\nimport createTestnet from 'hyperdht/testnet.js'\nimport Hyperswarm from 'hyperswarm'\nimport BlindPairing from './index.js'\n\nconst t = await createTestnet()\nconst autobaseKey = Buffer.alloc(32).fill('the-autobase-key')\n\n// Create an invite to share\nconst { invite, publicKey, discoveryKey } = BlindPairing.createInvite(autobaseKey)\n\nconst a = new BlindPairing(new Hyperswarm({ bootstrap: t.bootstrap }), { poll: 5000 })\n\n// Prepare to receive candidates with invites\nconst m = a.addMember({\n discoveryKey,\n async onadd (candidate) {\n console.log('candiate id is', candidate.inviteId)\n candidate.open(publicKey)\n console.log('add candidate:', candidate.userData)\n\n // Confirm the candidate is good\n candidate.confirm({ key: autobaseKey })\n }\n})\n\nawait m.flushed()\n\n// Candidate (aka using the invite)\nconst userData = Buffer.alloc(32).fill('i am a candidate')\n\nconst b = new BlindPairing",
55 "sections": [
56 "intro",
57 "usage",
58 "license"
59 ],
60 "hasApi": true,
61 "hasExamples": true,
62 "exampleCount": 2,
63 "examples": [
64 "npm install blind-pairing",
65 "### Usage with Additional Nodes provided\n\nInvites may contain additional nodes for you to use. These are known Peers allowing you to connect without DHT connectivity being required."
66 ]
67 },
68 "patterns": [
69 "peer-discovery",
70 "dht-discovery"
71 ]
72}
skills/blind-pairing/skills.md +47 -2
……@@ -58,11 +58,56 @@ const { invite, publicKey, discoveryKey } = BlindPairing.createInvite(autobaseKe
5858
5959## API Documentation
6060
61_To be enriched in Phase 1B with deep code analysis_
61_Extracted from README and code analysis_
62
63### Classes
64
65- `TimeoutPromise`
66- `BlindPairing`
67- `Member`
68- `Candidate`
69
70### Functions
71
72- `noop()`
73- `deriveReplyKeyPair()`
74- `deriveEphemeralKeyPair()`
75- `deriveDiscoveryKey()`
76- `getMuxer()`
77- `randomInterval()`
78
79### Exports
80
81- default: `BlindPairing`
82
83
84_See [api-extract.json](./api-extract.json) for detailed API information._
85
6286
6387## Usage Examples
6488
65_To be added in Phase 1B_
89_Extracted from README_
90
91### Example 1
92
93```javascript
94npm install blind-pairing
95```
96
97### Example 2
98
99```javascript
100### Usage with Additional Nodes provided
101
102Invites may contain additional nodes for you to use. These are known Peers allowing you to connect without DHT connectivity being required.
103```
104
105
106
107## P2P Patterns
108
109- peer-discovery
110- dht-discovery
66111
67112## Semantic Type
68113
skills/blind-peer/api-extract.json +55 -0
……@@ -0,0 +1,55 @@
1{
2 "repo": "blind-peer",
3 "timestamp": "2026-01-16T23:56:00.456Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [
13 {
14 "type": "default",
15 "name": "BlindPeer"
16 }
17 ],
18 "classes": [
19 {
20 "name": "CoreTracker"
21 },
22 {
23 "name": "WakeupHandler"
24 },
25 {
26 "name": "BlindPeer"
27 }
28 ],
29 "functions": []
30 },
31 "readme": {
32 "content": "# blind-peer\n\nBlind peers help keep hypercores available.\n\nFor the client side responsible for requesting cores be kept by Blind Peers, see [blind-peering](https://github.com/holepunchto/blind-peering).\n\nTo run the server as a CLI, see [blind-peer-cli](https://github.com/holepunchto/blind-peer-cli).\n\n## Installation\n\n```\nnpm install blind-peer\n```\n\n## Usage\n\nto run a blind-peer server, use [blind-peer-cli](https://github.com/holepunchto/blind-peer-cli).\n\n### Using a Blind Peer\n\nTo talk to a blind peer, use [blind-peering](https://github.com/holepunchto/blind-peering)\n\nHere is an example:\n\n```js\nimport BlindPeering from 'blind-peering'\nimport Hyperswarm from 'hyperswarm'\nimport Corestore from 'corestore'\nimport Wakeup from 'protomux-wakeup'\n\nconst store = new Corestore(Pear.config.storage)\nconst swarm = new Hyperswarm()\nconst wakeup = new Wakeup()\n\nconst DEFAULT_BLIND_PEER_KEYS = ['es4n7ty45odd1udfqyi9xz58mrbheuhdnxgdufsn9gz6e5uhsqco'] // replace with your own key\nconst blind = new Blin",
33 "sections": [
34 "intro",
35 "installation",
36 "usage",
37 "programmatic usage",
38 "license"
39 ],
40 "hasApi": true,
41 "hasExamples": true,
42 "exampleCount": 3,
43 "examples": [
44 "npm install blind-peer",
45 "import BlindPeering from 'blind-peering'\nimport Hyperswarm from 'hyperswarm'\nimport Corestore from 'corestore'\nimport Wakeup from 'protomux-wakeup'\n\nconst store = new Corestore(Pear.config.storage)\nconst swarm = new Hyperswarm()\nconst wakeup = new Wakeup()\n\nconst DEFAULT_BLIND_PEER_KEYS = ['es4n7ty45odd1udfqyi9xz58mrbheuhdnxgdufsn9gz6e5uhsqco'] // replace with your own key\nconst blind = new BlindPeering(swarm, store, { wakeup, mirrors: DEFAULT_BLIND_PEER_KEYS })\n\n// Add your autobase\nblind.addAutobaseBackground(autobase1)\n\n// Add another core\nblind.addCore(core1, autobase1.wakeupCapability.key)",
46 "const BlindPeer = require('blind-peer')"
47 ]
48 },
49 "patterns": [
50 "append-only-log",
51 "peer-discovery",
52 "stream-multiplexing",
53 "binary-encoding"
54 ]
55}
skills/blind-peer/skills.md +59 -2
……@@ -68,11 +68,68 @@ to run a blind-peer server, use [blind-peer-cli](https://github.com/holepunchto/
6868
6969## API Documentation
7070
71_To be enriched in Phase 1B with deep code analysis_
71_Extracted from README and code analysis_
72
73### Classes
74
75- `CoreTracker`
76- `WakeupHandler`
77- `BlindPeer`
78
79### Exports
80
81- default: `BlindPeer`
82
83
84_See [api-extract.json](./api-extract.json) for detailed API information._
85
7286
7387## Usage Examples
7488
75_To be added in Phase 1B_
89_Extracted from README_
90
91### Example 1
92
93```javascript
94npm install blind-peer
95```
96
97### Example 2
98
99```javascript
100import BlindPeering from 'blind-peering'
101import Hyperswarm from 'hyperswarm'
102import Corestore from 'corestore'
103import Wakeup from 'protomux-wakeup'
104
105const store = new Corestore(Pear.config.storage)
106const swarm = new Hyperswarm()
107const wakeup = new Wakeup()
108
109const DEFAULT_BLIND_PEER_KEYS = ['es4n7ty45odd1udfqyi9xz58mrbheuhdnxgdufsn9gz6e5uhsqco'] // replace with your own key
110const blind = new BlindPeering(swarm, store, { wakeup, mirrors: DEFAULT_BLIND_PEER_KEYS })
111
112// Add your autobase
113blind.addAutobaseBackground(autobase1)
114
115// Add another core
116blind.addCore(core1, autobase1.wakeupCapability.key)
117```
118
119### Example 3
120
121```javascript
122const BlindPeer = require('blind-peer')
123```
124
125
126
127## P2P Patterns
128
129- append-only-log
130- peer-discovery
131- stream-multiplexing
132- binary-encoding
76133
77134## Semantic Type
78135
skills/blind-peering/api-extract.json +60 -0
……@@ -0,0 +1,60 @@
1{
2 "repo": "blind-peering",
3 "timestamp": "2026-01-16T23:56:00.809Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [
13 {
14 "type": "default",
15 "name": "class"
16 }
17 ],
18 "classes": [
19 {
20 "name": "BlindPeering"
21 }
22 ],
23 "functions": [
24 {
25 "name": "getBlocksUploadedTo"
26 },
27 {
28 "name": "getClosestMirrorList"
29 },
30 {
31 "name": "getClosestMirror"
32 },
33 {
34 "name": "isStaticCore"
35 },
36 {
37 "name": "noop"
38 }
39 ]
40 },
41 "readme": {
42 "content": "# Blind Peering\n\nClient for interacting with [blind peers](https://github.com/holepunchto/blind-peer), sending RPC requests to keep hypercores and autobases available.\n\n## Installl\n\n```\nnpm install blind-peering\n```\n\n## API\n\n#### `const blindPeering = new BlindPeering(swarm, store, opts)`\n\nCreate a new Blind Peering instance. `swarm` is a hyperswarm instance and `store` is a Corestore instance.\n\n`opts` include:\n\n- `mirrors`: a list of blind peer keys (mirrors) to use. You should always set this, otherwise there are no mirrors to contact.\n- `suspended`: whether to start in suspended state (default `false`)\n- `wakeup`: a Wakeup object\n\n#### `await blindPeering.addCore(core, target = core.key, opts)`\n\nAdd a Hypercore to a blind peer.\n\n`target` is an optional key. It looks for blind peers 'close' (using XOR distance) to that key. It defaults to the key of the hypercore, thereby load balancing among the available blind peers. To use a specific blind peer, set `target` to its key.\n\n`opts` in",
43 "sections": [
44 "intro",
45 "installl",
46 "api"
47 ],
48 "hasApi": true,
49 "hasExamples": true,
50 "exampleCount": 1,
51 "examples": [
52 "npm install blind-peering"
53 ]
54 },
55 "patterns": [
56 "append-only-log",
57 "peer-discovery",
58 "binary-encoding"
59 ]
60}
skills/blind-peering/skills.md +36 -2
……@@ -59,11 +59,45 @@ Create a new Blind Peering instance. `swarm` is a hyperswarm instance and `store
5959
6060## API Documentation
6161
62_To be enriched in Phase 1B with deep code analysis_
62_Extracted from README and code analysis_
63
64### Classes
65
66- `BlindPeering`
67
68### Functions
69
70- `getBlocksUploadedTo()`
71- `getClosestMirrorList()`
72- `getClosestMirror()`
73- `isStaticCore()`
74- `noop()`
75
76### Exports
77
78- default: `class`
79
80
81_See [api-extract.json](./api-extract.json) for detailed API information._
82
6383
6484## Usage Examples
6585
66_To be added in Phase 1B_
86_Extracted from README_
87
88### Example 1
89
90```javascript
91npm install blind-peering
92```
93
94
95
96## P2P Patterns
97
98- append-only-log
99- peer-discovery
100- binary-encoding
67101
68102## Semantic Type
69103
skills/blind-relay/api-extract.json +62 -0
……@@ -0,0 +1,62 @@
1{
2 "repo": "blind-relay",
3 "timestamp": "2026-01-16T23:55:54.934Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [],
13 "classes": [
14 {
15 "name": "BlindRelayServer"
16 },
17 {
18 "name": "BlindRelaySession"
19 },
20 {
21 "name": "BlindRelayPair"
22 },
23 {
24 "name": "BlindRelayLink"
25 },
26 {
27 "name": "BlindRelayClient"
28 },
29 {
30 "name": "BlindRelayRequest"
31 }
32 ],
33 "functions": [
34 {
35 "name": "token"
36 },
37 {
38 "name": "noop"
39 }
40 ]
41 },
42 "readme": {
43 "content": "# blind-relay\n\nBlind relay for [UDX](https://github.com/holepunchto/udx-native) over [Protomux](https://github.com/mafintosh/protomux) channels. By acting as a blind relay, a host may accept pairing requests from other hosts and relay UDX stream messages between them, similar to Traversal Using Relays around NAT (TURN).\n\n```sh\nnpm i blind-relay\n```\n\n## Protocol\n\n```mermaid\nsequenceDiagram\n actor a as peer a\n actor r as relay\n actor b as peer b\n\n par\n a ->> r: pair { isInitiator: true, token, id, seq }\n and\n b ->> r: pair { isInitiator: false, token, id, seq }\n end\n\n note over r: The relay pairs peers a and b based on the token, allocates a new stream for both peers, and sends back the stream info\n\n par\n r -->> a: pair { isInitiator: true, token, id, seq }\n and\n r -->> b: pair { isInitiator: false, token, id, seq }\n end\n\n par\n a ->> r: unpair { token }\n\n note left of r: The relay deallocates the stream previously",
44 "sections": [
45 "intro",
46 "protocol",
47 "license"
48 ],
49 "hasApi": false,
50 "hasExamples": true,
51 "exampleCount": 1,
52 "examples": [
53 "## Protocol"
54 ]
55 },
56 "patterns": [
57 "stream-multiplexing",
58 "binary-encoding",
59 "cryptography",
60 "streaming"
61 ]
62}
skills/blind-relay/skills.md +35 -2
……@@ -58,11 +58,44 @@ sequenceDiagram
5858
5959## API Documentation
6060
61_To be enriched in Phase 1B with deep code analysis_
61_Extracted from code analysis_
62
63### Classes
64
65- `BlindRelayServer`
66- `BlindRelaySession`
67- `BlindRelayPair`
68- `BlindRelayLink`
69- `BlindRelayClient`
70- `BlindRelayRequest`
71
72### Functions
73
74- `token()`
75- `noop()`
76
77
78_See [api-extract.json](./api-extract.json) for detailed API information._
79
6280
6381## Usage Examples
6482
65_To be added in Phase 1B_
83_Extracted from README_
84
85### Example 1
86
87```javascript
88## Protocol
89```
90
91
92
93## P2P Patterns
94
95- stream-multiplexing
96- binary-encoding
97- cryptography
98- streaming
6699
67100## Semantic Type
68101
skills/chromium-prebuilds/api-extract.json +26 -0
……@@ -0,0 +1,26 @@
1{
2 "repo": "chromium-prebuilds",
3 "timestamp": "2026-01-16T23:56:22.679Z",
4 "entryPoint": null,
5 "exports": {},
6 "api": {},
7 "readme": {
8 "content": "# chromium-prebuilds\n\nBuild definitions for making prebuilds of Chromium modules.\n\n## Setup\n\nLike Chromium itself, this repository is not intended for checkout using `git clone`. Instead, start by installing [`depot_tools`](https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up) which is a toolset used for fetching and managing the Chromium source repositories. Next, create a new directory that will contain the Chromium sources and change into it:\n\n```sh\nmkdir chromium && cd chromium\n```\n\nThen, create a `.gclient` configuration file that will fetch this repository and its dependencies:\n\n```sh\ngclient config --name src/prebuilds [--cache-dir <path>] --unmanaged git@github.com:holepunchto/chromium-prebuilds.git\n```\n\nThe `--cache-dir` argument, if provided, should point to a path, such as `~/.git_cache/`, that will be used for caching all cloned git repositories. When finished, fetch the repository and its dependencies:\n",
9 "sections": [
10 "intro",
11 "setup",
12 "patching",
13 "building",
14 "license"
15 ],
16 "hasApi": false,
17 "hasExamples": true,
18 "exampleCount": 12,
19 "examples": [
20 "Then, create a `.gclient` configuration file that will fetch this repository and its dependencies:",
21 "The `--cache-dir` argument, if provided, should point to a path, such as `~/.git_cache/`, that will be used for caching all cloned git repositories. When finished, fetch the repository and its dependencies:",
22 "This will take a while depending on the speed of your connection. When completed, create a link to the fetched build tools to mark the root of the build tree:"
23 ]
24 },
25 "patterns": []
26}
skills/chromium-prebuilds/skills.md +26 -2
……@@ -36,11 +36,35 @@ The `--cache-dir` argument, if provided, should point to a path, such as `~/.git
3636
3737## API Documentation
3838
39_To be enriched in Phase 1B with deep code analysis_
39_Extracted from code analysis_
40
41
42_See [api-extract.json](./api-extract.json) for detailed API information._
43
4044
4145## Usage Examples
4246
43_To be added in Phase 1B_
47_Extracted from README_
48
49### Example 1
50
51```javascript
52Then, create a `.gclient` configuration file that will fetch this repository and its dependencies:
53```
54
55### Example 2
56
57```javascript
58The `--cache-dir` argument, if provided, should point to a path, such as `~/.git_cache/`, that will be used for caching all cloned git repositories. When finished, fetch the repository and its dependencies:
59```
60
61### Example 3
62
63```javascript
64This will take a while depending on the speed of your connection. When completed, create a link to the fetched build tools to mark the root of the build tree:
65```
66
67
4468
4569## Semantic Type
4670
skills/cmake-bare-bundle/api-extract.json +24 -0
……@@ -0,0 +1,24 @@
1{
2 "repo": "cmake-bare-bundle",
3 "timestamp": "2026-01-16T23:56:38.317Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {}
7 },
8 "api": {},
9 "readme": {
10 "content": "# cmake-bare-bundle\n\n```\nnpm i cmake-bare-bundle\n```\n\n```cmake\nfind_package(cmake-bare-bundle REQUIRED PATHS node_modules/cmake-bare-bundle)\n```\n\n## API\n\n#### `add_bare_bundle(<target> ENTRY <path> OUT <path> [BUILTINS <path>] [LINKED] [HOST <string>] [WORKING_DIRECTORY <path>] [DEPENDS <path...>])`\n\n## License\n\nApache-2.0\n",
11 "sections": [
12 "intro",
13 "api",
14 "license"
15 ],
16 "hasApi": true,
17 "hasExamples": true,
18 "exampleCount": 1,
19 "examples": [
20 "npm i cmake-bare-bundle"
21 ]
22 },
23 "patterns": []
24}
skills/cmake-bare-bundle/skills.md +14 -2
……@@ -50,11 +50,23 @@ Apache-2.0
5050
5151## API Documentation
5252
53_To be enriched in Phase 1B with deep code analysis_
53_Extracted from README and code analysis_
54
55
56_See [api-extract.json](./api-extract.json) for detailed API information._
57
5458
5559## Usage Examples
5660
57_To be added in Phase 1B_
61_Extracted from README_
62
63### Example 1
64
65```javascript
66npm i cmake-bare-bundle
67```
68
69
5870
5971## Semantic Type
6072
skills/cmake-gn/api-extract.json +23 -0
……@@ -0,0 +1,23 @@
1{
2 "repo": "cmake-gn",
3 "timestamp": "2026-01-16T23:56:23.054Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {}
7 },
8 "api": {},
9 "readme": {
10 "content": "# cmake-gn\n\nBridging CMake and GN, the meta-build system from Google.\n\n```\nnpm i cmake-gn\n```\n\n```cmake\nfind_package(cmake-gn REQUIRED PATHS node_modules/cmake-gn)\n```\n\n## License\n\nApache-2.0\n",
11 "sections": [
12 "intro",
13 "license"
14 ],
15 "hasApi": false,
16 "hasExamples": true,
17 "exampleCount": 1,
18 "examples": [
19 "npm i cmake-gn"
20 ]
21 },
22 "patterns": []
23}
skills/cmake-gn/skills.md +14 -2
……@@ -39,11 +39,23 @@ Apache-2.0
3939
4040## API Documentation
4141
42_To be enriched in Phase 1B with deep code analysis_
42_Extracted from code analysis_
43
44
45_See [api-extract.json](./api-extract.json) for detailed API information._
46
4347
4448## Usage Examples
4549
46_To be added in Phase 1B_
50_Extracted from README_
51
52### Example 1
53
54```javascript
55npm i cmake-gn
56```
57
58
4759
4860## Semantic Type
4961
skills/cmake-macos/api-extract.json +26 -0
……@@ -0,0 +1,26 @@
1{
2 "repo": "cmake-macos",
3 "timestamp": "2026-01-16T23:56:08.807Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {}
7 },
8 "api": {},
9 "readme": {
10 "content": "# cmake-macos\n\nFunctions for streamlining the creation of macOS application bundles (`.app` files), including icon management, code signing, and more.\n\n## API\n\n#### `find_codesign`\n\nLocates the `codesign` command-line utility required for code signing macOS applications.\n\n```cmake\nfind_codesign(<result>)\n```\n\n##### `<result>`\nAn output variable where the path to the codesign tool will be stored.\n\n#### `find_iconutil`\n\nLocates the `iconutil` command-line utility used for manipulating macOS icon sets (`.icns` \nfiles).\n\n```cmake\nfind_iconutil(<result>)\n```\n\n##### `<result>`\nAn output variable where the path to the iconutil tool will be stored.\n\n#### `add_macos_entitlements`\n\nGenerates a macOS `Entitlements.plist` file for specifying special permissions required by the application.\n\n```cmake\nadd_macos_entitlements(\n <target>\n [DESTINATION <path>]\n ENTITLEMENTS <entitlement...>\n)\n```\n\n##### `<target>` \nThe name of the CMake target to create.\n\n##### `DESTINATION <path>`\nThe location to sa",
11 "sections": [
12 "intro",
13 "api",
14 "license"
15 ],
16 "hasApi": true,
17 "hasExamples": true,
18 "exampleCount": 6,
19 "examples": [
20 "##### `<result>`\nAn output variable where the path to the codesign tool will be stored.\n\n#### `find_iconutil`\n\nLocates the `iconutil` command-line utility used for manipulating macOS icon sets (`.icns` \nfiles).",
21 "##### `<result>`\nAn output variable where the path to the iconutil tool will be stored.\n\n#### `add_macos_entitlements`\n\nGenerates a macOS `Entitlements.plist` file for specifying special permissions required by the application.",
22 "##### `<target>` \nThe name of the CMake target to create.\n\n##### `DESTINATION <path>`\nThe location to save the generated `Entitlements.plist`. Defaults to `\"Entitlements.plist\"` in the build directory.\n\n##### `ENTITLEMENTS <entitlement...>`\nA list of entitlement keys to be included.\n\n#### `add_macos_iconset`\n\nCreates a macOS icon set (`.icns` file) from a collection of image files."
23 ]
24 },
25 "patterns": []
26}
skills/cmake-macos/skills.md +48 -2
……@@ -43,11 +43,57 @@ Locates the `iconutil` command-line utility used for manipulating macOS icon set
4343
4444## API Documentation
4545
46_To be enriched in Phase 1B with deep code analysis_
46_Extracted from README and code analysis_
47
48
49_See [api-extract.json](./api-extract.json) for detailed API information._
50
4751
4852## Usage Examples
4953
50_To be added in Phase 1B_
54_Extracted from README_
55
56### Example 1
57
58```javascript
59##### `<result>`
60An output variable where the path to the codesign tool will be stored.
61
62#### `find_iconutil`
63
64Locates the `iconutil` command-line utility used for manipulating macOS icon sets (`.icns`
65files).
66```
67
68### Example 2
69
70```javascript
71##### `<result>`
72An output variable where the path to the iconutil tool will be stored.
73
74#### `add_macos_entitlements`
75
76Generates a macOS `Entitlements.plist` file for specifying special permissions required by the application.
77```
78
79### Example 3
80
81```javascript
82##### `<target>`
83The name of the CMake target to create.
84
85##### `DESTINATION <path>`
86The location to save the generated `Entitlements.plist`. Defaults to `"Entitlements.plist"` in the build directory.
87
88##### `ENTITLEMENTS <entitlement...>`
89A list of entitlement keys to be included.
90
91#### `add_macos_iconset`
92
93Creates a macOS icon set (`.icns` file) from a collection of image files.
94```
95
96
5197
5298## Semantic Type
5399
skills/cmake-meson/api-extract.json +23 -0
……@@ -0,0 +1,23 @@
1{
2 "repo": "cmake-meson",
3 "timestamp": "2026-01-16T23:56:38.679Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {}
7 },
8 "api": {},
9 "readme": {
10 "content": "# cmake-meson\n\nMeson bridge for CMake.\n\n```\nnpm i cmake-meson\n```\n\n```cmake\nfind_package(cmake-meson REQUIRED PATHS node_modules/cmake-meson)\n```\n\n## License\n\nApache-2.0\n",
11 "sections": [
12 "intro",
13 "license"
14 ],
15 "hasApi": false,
16 "hasExamples": true,
17 "exampleCount": 1,
18 "examples": [
19 "npm i cmake-meson"
20 ]
21 },
22 "patterns": []
23}
skills/cmake-meson/skills.md +14 -2
……@@ -39,11 +39,23 @@ Apache-2.0
3939
4040## API Documentation
4141
42_To be enriched in Phase 1B with deep code analysis_
42_Extracted from code analysis_
43
44
45_See [api-extract.json](./api-extract.json) for detailed API information._
46
4347
4448## Usage Examples
4549
46_To be added in Phase 1B_
50_Extracted from README_
51
52### Example 1
53
54```javascript
55npm i cmake-meson
56```
57
58
4759
4860## Semantic Type
4961
skills/cmake-msix/api-extract.json +26 -0
……@@ -0,0 +1,26 @@
1{
2 "repo": "cmake-msix",
3 "timestamp": "2026-01-16T23:56:23.411Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {}
7 },
8 "api": {},
9 "readme": {
10 "content": "# cmake-msix\n\nFunctions to simplify the creation of MSIX packages for distributing Windows applications.\n\n## API\n\n#### `find_make_appx`\n\nLocates the `MakeAppx.exe` tool from the Windows SDK, required for building MSIX packages.\n\n```cmake\nfind_make_appx(<result>)\n```\n\n##### `<result>`\nAn output variable where the path to the `MakeAppx.exe` executable will be stored.\n\n#### `add_app_manifest`\n\nGenerates the core `AppxManifest.xml` file, which defines essential metadata for the MSIX package.\n\n```cmake\nadd_appx_manifest(\n <target>\n [DESTINATION <path>]\n NAME <string>\n VERSION <string>\n PUBLISHER <string>\n [DISPLAY_NAME <string>]\n PUBLISHER_DISPLAY_NAME <string>\n DESCRIPTION <string>\n [UNVIRTUALIZED_PATHS <path...>]\n)\n```\n\n##### `<target>`\nThe name of the CMake target to create.\n\n##### `DESTINATION <path>`\nThe output file path for the `AppxManifest.xml`. Defaults to `\"AppxManifest.xml\"` in the build directory.\n\n##### `NAME <string>`\nThe name of the application.\n\n##### `VERSION <stri",
11 "sections": [
12 "intro",
13 "api",
14 "license"
15 ],
16 "hasApi": true,
17 "hasExamples": true,
18 "exampleCount": 3,
19 "examples": [
20 "##### `<result>`\nAn output variable where the path to the `MakeAppx.exe` executable will be stored.\n\n#### `add_app_manifest`\n\nGenerates the core `AppxManifest.xml` file, which defines essential metadata for the MSIX package.",
21 "##### `<target>`\nThe name of the CMake target to create.\n\n##### `DESTINATION <path>`\nThe output file path for the `AppxManifest.xml`. Defaults to `\"AppxManifest.xml\"` in the build directory.\n\n##### `NAME <string>`\nThe name of the application.\n\n##### `VERSION <string>`\nThe semantic version of the application.\n\n##### `PUBLISHER <string>`\nThe publisher of the application.\n\n##### `DISPLAY_NAME <string>`\nThe name displayed to users. Defaults to `\"${NAME}\"`.\n\n##### `PUBLISHER_DISPLAY_NAME <string>`\nThe publisher's display name.\n\n##### `DESCRIPTION <string>`\nA description of the application.\n\n##### `UNVIRTUALIZED_PATHS <path...>`\nA list of paths that should remain unvirtualized within the MSIX package.\n\n#### `add_appx_mapping`\n\nCreates a `Mapping.txt` file that specifies the file structure within the MSIX package.",
22 "##### `<target>`\nThe name of the CMake target to create.\n\n##### `DESTINATION <path>`\nThe output file path for the `Mapping.txt`. Defaults to `\"Mapping.txt\"` in the build directory.\n\n##### `ICON <path>`\nPath to the application icon.\n\n##### `TARGET <target>`\nAn existing CMake target representing the core executable of your application.\n\n##### `EXECUTABLE <path>`\nDirect path to the application executable. Use if not providing `TARGET`.\n\n##### `RESOURCES [FILE|DIR <from> <to>]...`\nA list of additional files or directories to include.\n\n###### `FILE <from> <to>`\nCopies a file from `<from>` to `<to>` within the MSIX package.\n\n###### `DIR <from> <to>`\nCopies an entire directory from `<from>` to `<to>` within the MSIX package.\n\n#### `add_msix_package`\n\nThe central function to generate the final MSIX package."
23 ]
24 },
25 "patterns": []
26}
skills/cmake-msix/skills.md +86 -2
……@@ -47,11 +47,95 @@ Generates the core `AppxManifest.xml` file, which defines essential metadata for
4747
4848## API Documentation
4949
50_To be enriched in Phase 1B with deep code analysis_
50_Extracted from README and code analysis_
51
52
53_See [api-extract.json](./api-extract.json) for detailed API information._
54
5155
5256## Usage Examples
5357
54_To be added in Phase 1B_
58_Extracted from README_
59
60### Example 1
61
62```javascript
63##### `<result>`
64An output variable where the path to the `MakeAppx.exe` executable will be stored.
65
66#### `add_app_manifest`
67
68Generates the core `AppxManifest.xml` file, which defines essential metadata for the MSIX package.
69```
70
71### Example 2
72
73```javascript
74##### `<target>`
75The name of the CMake target to create.
76
77##### `DESTINATION <path>`
78The output file path for the `AppxManifest.xml`. Defaults to `"AppxManifest.xml"` in the build directory.
79
80##### `NAME <string>`
81The name of the application.
82
83##### `VERSION <string>`
84The semantic version of the application.
85
86##### `PUBLISHER <string>`
87The publisher of the application.
88
89##### `DISPLAY_NAME <string>`
90The name displayed to users. Defaults to `"${NAME}"`.
91
92##### `PUBLISHER_DISPLAY_NAME <string>`
93The publisher's display name.
94
95##### `DESCRIPTION <string>`
96A description of the application.
97
98##### `UNVIRTUALIZED_PATHS <path...>`
99A list of paths that should remain unvirtualized within the MSIX package.
100
101#### `add_appx_mapping`
102
103Creates a `Mapping.txt` file that specifies the file structure within the MSIX package.
104```
105
106### Example 3
107
108```javascript
109##### `<target>`
110The name of the CMake target to create.
111
112##### `DESTINATION <path>`
113The output file path for the `Mapping.txt`. Defaults to `"Mapping.txt"` in the build directory.
114
115##### `ICON <path>`
116Path to the application icon.
117
118##### `TARGET <target>`
119An existing CMake target representing the core executable of your application.
120
121##### `EXECUTABLE <path>`
122Direct path to the application executable. Use if not providing `TARGET`.
123
124##### `RESOURCES [FILE|DIR <from> <to>]...`
125A list of additional files or directories to include.
126
127###### `FILE <from> <to>`
128Copies a file from `<from>` to `<to>` within the MSIX package.
129
130###### `DIR <from> <to>`
131Copies an entire directory from `<from>` to `<to>` within the MSIX package.
132
133#### `add_msix_package`
134
135The central function to generate the final MSIX package.
136```
137
138
55139
56140## Semantic Type
57141
skills/db-lock/api-extract.json +41 -0
……@@ -0,0 +1,41 @@
1{
2 "repo": "db-lock",
3 "timestamp": "2026-01-16T23:56:09.164Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [
13 {
14 "type": "default",
15 "name": "class"
16 }
17 ],
18 "classes": [
19 {
20 "name": "DBLock"
21 }
22 ],
23 "functions": []
24 },
25 "readme": {
26 "content": "# db-lock\n\nSimple concurrent lock for DB patterns\n\n```\nnpm install db-lock\n```\n\n## Usage\n\n```js\nconst DBLock = require('db-lock')\n\nconst l = new DBLock({\n async enter() {\n return db.transaction()\n },\n async exit(tx) {\n await tx.flush()\n }\n})\n\nconst tx = await l.enter() // opens the tx on first enter\n// ... do stuff\nawait l.exit() // flushes the tx on last exit\n```\n\n## License\n\nApache-2.0\n",
27 "sections": [
28 "intro",
29 "usage",
30 "license"
31 ],
32 "hasApi": true,
33 "hasExamples": true,
34 "exampleCount": 2,
35 "examples": [
36 "npm install db-lock",
37 "const DBLock = require('db-lock')\n\nconst l = new DBLock({\n async enter() {\n return db.transaction()\n },\n async exit(tx) {\n await tx.flush()\n }\n})\n\nconst tx = await l.enter() // opens the tx on first enter\n// ... do stuff\nawait l.exit() // flushes the tx on last exit"
38 ]
39 },
40 "patterns": []
41}
skills/db-lock/skills.md +41 -2
……@@ -47,11 +47,50 @@ const l = new DBLock({
4747
4848## API Documentation
4949
50_To be enriched in Phase 1B with deep code analysis_
50_Extracted from README and code analysis_
51
52### Classes
53
54- `DBLock`
55
56### Exports
57
58- default: `class`
59
60
61_See [api-extract.json](./api-extract.json) for detailed API information._
62
5163
5264## Usage Examples
5365
54_To be added in Phase 1B_
66_Extracted from README_
67
68### Example 1
69
70```javascript
71npm install db-lock
72```
73
74### Example 2
75
76```javascript
77const DBLock = require('db-lock')
78
79const l = new DBLock({
80 async enter() {
81 return db.transaction()
82 },
83 async exit(tx) {
84 await tx.flush()
85 }
86})
87
88const tx = await l.enter() // opens the tx on first enter
89// ... do stuff
90await l.exit() // flushes the tx on last exit
91```
92
93
5594
5695## Semantic Type
5796
skills/fifofile/api-extract.json +78 -0
……@@ -0,0 +1,78 @@
1{
2 "repo": "fifofile",
3 "timestamp": "2026-01-16T23:56:23.780Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [
13 {
14 "type": "default",
15 "name": "class"
16 }
17 ],
18 "classes": [
19 {
20 "name": "FIFOFile"
21 }
22 ],
23 "functions": [
24 {
25 "name": "waitForLock"
26 },
27 {
28 "name": "writeMessages"
29 },
30 {
31 "name": "loop"
32 },
33 {
34 "name": "readMessages"
35 },
36 {
37 "name": "ontruncate"
38 },
39 {
40 "name": "loop"
41 },
42 {
43 "name": "defaultMapWritable"
44 },
45 {
46 "name": "createMapWritable"
47 },
48 {
49 "name": "createMapReadable"
50 },
51 {
52 "name": "dummyFree"
53 },
54 {
55 "name": "closeSync"
56 }
57 ]
58 },
59 "readme": {
60 "content": "# fifofile\n\nUserland FIFO file.\n\n```\nnpm install fifofile\n```\n\n## Usage\n\nTo consume, in any process\n\n```js\nconst FIFOFile = require('fifofile')\n\nfor await (const msg of new FIFOFile('/tmp/my-fifo')) {\n console.log('incoming:', msg)\n}\n```\n\nTo produce, in any process\n\n```js\nconst FIFOFile = require('fifofile')\n\nconst fifo = new FIFOFile('/tmp/my-fifo')\n\nfifo.write(Buffer.from('a msg'))\n```\n\n## License\n\nApache-2.0\n",
61 "sections": [
62 "intro",
63 "usage",
64 "license"
65 ],
66 "hasApi": true,
67 "hasExamples": true,
68 "exampleCount": 3,
69 "examples": [
70 "npm install fifofile",
71 "const FIFOFile = require('fifofile')\n\nfor await (const msg of new FIFOFile('/tmp/my-fifo')) {\n console.log('incoming:', msg)\n}",
72 "const FIFOFile = require('fifofile')\n\nconst fifo = new FIFOFile('/tmp/my-fifo')\n\nfifo.write(Buffer.from('a msg'))"
73 ]
74 },
75 "patterns": [
76 "streaming"
77 ]
78}
skills/fifofile/skills.md +60 -2
……@@ -55,11 +55,69 @@ for await (const msg of new FIFOFile('/tmp/my-fifo')) {
5555
5656## API Documentation
5757
58_To be enriched in Phase 1B with deep code analysis_
58_Extracted from README and code analysis_
59
60### Classes
61
62- `FIFOFile`
63
64### Functions
65
66- `waitForLock()`
67- `writeMessages()`
68- `loop()`
69- `readMessages()`
70- `ontruncate()`
71- `loop()`
72- `defaultMapWritable()`
73- `createMapWritable()`
74- `createMapReadable()`
75- `dummyFree()`
76- `closeSync()`
77
78### Exports
79
80- default: `class`
81
82
83_See [api-extract.json](./api-extract.json) for detailed API information._
84
5985
6086## Usage Examples
6187
62_To be added in Phase 1B_
88_Extracted from README_
89
90### Example 1
91
92```javascript
93npm install fifofile
94```
95
96### Example 2
97
98```javascript
99const FIFOFile = require('fifofile')
100
101for await (const msg of new FIFOFile('/tmp/my-fifo')) {
102 console.log('incoming:', msg)
103}
104```
105
106### Example 3
107
108```javascript
109const FIFOFile = require('fifofile')
110
111const fifo = new FIFOFile('/tmp/my-fifo')
112
113fifo.write(Buffer.from('a msg'))
114```
115
116
117
118## P2P Patterns
119
120- streaming
63121
64122## Semantic Type
65123
skills/git-remote-punch-transport/api-extract.json +51 -0
……@@ -0,0 +1,51 @@
1{
2 "repo": "git-remote-punch-transport",
3 "timestamp": "2026-01-16T23:56:01.171Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [],
13 "classes": [],
14 "functions": [
15 {
16 "name": "list"
17 },
18 {
19 "name": "listForPush"
20 },
21 {
22 "name": "push"
23 },
24 {
25 "name": "fetch"
26 }
27 ]
28 },
29 "readme": {
30 "content": "# Git-Remote-Punch transport\n\nGit remote helper for hyperswarm git transport.\n\n``` bash\nnpm install -g https://github.com/holepunchto/git-remote-punch-transport\ngit clone punch://public-key:repository\n```\n\n## Server\n\nThe client of this remote helper depends on the repository server running git-punch-server. This server is responsible for packet negotiation and Git daemon forwarding.\n\nTo start the server, run:\n\n``` bash\n git-punch-server start [--seed=<key-pair-seed>] [--bootstrap=<bootstrap-url>] [--basedir=<directory>]\n # Listening on key: 3f9b09e0831b13e755d4b0af079a5b56f38efed122d561af5069e1e35cf2a1c2\n\n```\n\n## Example\n\n``` bash\n npm install -g https://github.com/holepunchto/git-remote-punch-transport\n cd /tmp\n mkdir test-repository\n cd test-repository\n git init --bare\n touch git-daemon-export-ok\n git-punch-server start --basedir=/tmp\n # Listening on key: <public-key>\n git clone punch://<public-key>/test-repository\n```\n\n",
31 "sections": [
32 "intro",
33 "server",
34 "example"
35 ],
36 "hasApi": false,
37 "hasExamples": true,
38 "exampleCount": 2,
39 "examples": [
40 "## Server\n\nThe client of this remote helper depends on the repository server running git-punch-server. This server is responsible for packet negotiation and Git daemon forwarding.\n\nTo start the server, run:",
41 "## Example"
42 ]
43 },
44 "patterns": [
45 "peer-discovery",
46 "dht-discovery",
47 "binary-encoding",
48 "cryptography",
49 "streaming"
50 ]
51}
skills/git-remote-punch-transport/skills.md +39 -2
……@@ -61,11 +61,48 @@ To start the server, run:
6161
6262## API Documentation
6363
64_To be enriched in Phase 1B with deep code analysis_
64_Extracted from code analysis_
65
66### Functions
67
68- `list()`
69- `listForPush()`
70- `push()`
71- `fetch()`
72
73
74_See [api-extract.json](./api-extract.json) for detailed API information._
75
6576
6677## Usage Examples
6778
68_To be added in Phase 1B_
79_Extracted from README_
80
81### Example 1
82
83```javascript
84## Server
85
86The client of this remote helper depends on the repository server running git-punch-server. This server is responsible for packet negotiation and Git daemon forwarding.
87
88To start the server, run:
89```
90
91### Example 2
92
93```javascript
94## Example
95```
96
97
98
99## P2P Patterns
100
101- peer-discovery
102- dht-discovery
103- binary-encoding
104- cryptography
105- streaming
69106
70107## Semantic Type
71108
skills/hyper-instrument/api-extract.json +57 -0
……@@ -0,0 +1,57 @@
1{
2 "repo": "hyper-instrument",
3 "timestamp": "2026-01-16T23:56:24.154Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [
13 {
14 "type": "default",
15 "name": "HyperInstrumentation"
16 }
17 ],
18 "classes": [
19 {
20 "name": "HyperInstrumentation"
21 }
22 ],
23 "functions": [
24 {
25 "name": "registerPackageVersion"
26 },
27 {
28 "name": "registerModuleVersions"
29 },
30 {
31 "name": "registerProcessId"
32 }
33 ]
34 },
35 "readme": {
36 "content": "# Hyper Instrument\n\nInstrument services in the Hypercore ecosystem.\n\nSupports both the Node.js and [bare](https://github.com/holepunchto/bare) runtimes.\n\nSupports the metrics of\n\n- [hypercore-stats](https://github.com/holepunchto/hypercore-stats)\n- [hyperswarm-stats](https://github.com/holepunchto/hyperswarm-stats)\n- [hyperdht-stats](https://github.com/holepunchto/hyperdht-stats)\n\nThe service registers itself with a [DHT Prometheus](https://gitlab.com/dcent-tech/dht-prometheus) instance, which scrapes the metrics at regular intervals.\n\nA [Grafana dashboard](https://grafana.com/grafana/dashboards/22313-hypercore-hyperswarm/) visualising all metrics is available ([source](https://github.com/holepunchto/Grafana-hypercore-stats)).\n\n## Install\n\n```\nnpm i hyper-instrument\n```\n\n## Versions\n\n- V1 works for Hypercore V10 and Corestore V6. It has a different API, so make sure to look at the V1 README.\n- V2 works for Hypercore v11 and Corestore v7\n\n## Usage\n\n```\nconst HyperInstrument = require('h",
37 "sections": [
38 "intro",
39 "install",
40 "versions",
41 "usage",
42 "api"
43 ],
44 "hasApi": true,
45 "hasExamples": true,
46 "exampleCount": 2,
47 "examples": [
48 "npm i hyper-instrument",
49 "const HyperInstrument = require('hyper-instrument')\nconst Hyperdht = require('hyperdht')\nconst { version } = require('./package.json') // version of your own module\n\nconst scraperPublicKey = // Public key of the metrics scraper\nconst scraperSecret = // Secret of the metrics scraper\nconst prometheusAlias = // unique alias identifying this instance\nconst prometheusServiceName = // the name of the service\n\nconst dht = new Hyperdht()\n\nconst instrumentation = new HyperInstrument({\n dht,\n scraperPublicKey,\n scraperSecret,\n prometheusAlias,\n prometheusServiceName,\n version\n})\n\n// You can add additional metrics\nnew instrumentation.promClient.Gauge({\n name: 'my_custom_metric',\n help: 'my custom metric help',\n collect () {\n return 1 // dummy metric\n }\n})\n\n// If you want to see instrumentation-related logs:\ninstrumentation.registerLogger()\n\n// start the scraping\nawait instrumentation.ready()"
50 ]
51 },
52 "patterns": [
53 "append-only-log",
54 "peer-discovery",
55 "dht-discovery"
56 ]
57}
skills/hyper-instrument/skills.md +73 -2
……@@ -69,11 +69,82 @@ npm i hyper-instrument
6969
7070## API Documentation
7171
72_To be enriched in Phase 1B with deep code analysis_
72_Extracted from README and code analysis_
73
74### Classes
75
76- `HyperInstrumentation`
77
78### Functions
79
80- `registerPackageVersion()`
81- `registerModuleVersions()`
82- `registerProcessId()`
83
84### Exports
85
86- default: `HyperInstrumentation`
87
88
89_See [api-extract.json](./api-extract.json) for detailed API information._
90
7391
7492## Usage Examples
7593
76_To be added in Phase 1B_
94_Extracted from README_
95
96### Example 1
97
98```javascript
99npm i hyper-instrument
100```
101
102### Example 2
103
104```javascript
105const HyperInstrument = require('hyper-instrument')
106const Hyperdht = require('hyperdht')
107const { version } = require('./package.json') // version of your own module
108
109const scraperPublicKey = // Public key of the metrics scraper
110const scraperSecret = // Secret of the metrics scraper
111const prometheusAlias = // unique alias identifying this instance
112const prometheusServiceName = // the name of the service
113
114const dht = new Hyperdht()
115
116const instrumentation = new HyperInstrument({
117 dht,
118 scraperPublicKey,
119 scraperSecret,
120 prometheusAlias,
121 prometheusServiceName,
122 version
123})
124
125// You can add additional metrics
126new instrumentation.promClient.Gauge({
127 name: 'my_custom_metric',
128 help: 'my custom metric help',
129 collect () {
130 return 1 // dummy metric
131 }
132})
133
134// If you want to see instrumentation-related logs:
135instrumentation.registerLogger()
136
137// start the scraping
138await instrumentation.ready()
139```
140
141
142
143## P2P Patterns
144
145- append-only-log
146- peer-discovery
147- dht-discovery
77148
78149## Semantic Type
79150
skills/hyperbee-diff-stream/api-extract.json +65 -0
……@@ -0,0 +1,65 @@
1{
2 "repo": "hyperbee-diff-stream",
3 "timestamp": "2026-01-16T23:56:39.030Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [
13 {
14 "type": "default",
15 "name": "BeeDiffStream"
16 }
17 ],
18 "classes": [
19 {
20 "name": "BeeDiffStream"
21 }
22 ],
23 "functions": [
24 {
25 "name": "getKey"
26 },
27 {
28 "name": "areEqual"
29 },
30 {
31 "name": "unionCompare"
32 },
33 {
34 "name": "decodeEntry"
35 },
36 {
37 "name": "createUnionMap"
38 },
39 {
40 "name": "unionMap"
41 },
42 {
43 "name": "encodeKey"
44 }
45 ]
46 },
47 "readme": {
48 "content": "# Hyperbee Diff Stream\n\nGet the diff stream between two snapshots of a hyperbee. Ideal for autobase views.\n\nFor example, when reconnecting after having worked locally for a while,\nit can get the diff stream between a snapshot from just before and from just after the autobase linearisation.\nEven if several peers (including you in your local fork) made a lot of changes to a particular key, the diff stream will still yield only a single change for it.\n\n## Install\n`npm i hyperbee-diff-stream`\n\n## Versioning and Compatibility\nV1 uses features introduced in Hyperbee ^2.5.0, Hypercore ^10.8.1 and autobase^6.0.0\n\nV2 works with Hypercore V11, Autobase V7 and Corestore V7.\n\n## Usage\nSee [example.js](./example.js)\n\n## API\n\n#### `const diffStream = new BeeDiffStream(leftSnapshot, rightSnapshot, [options])`\n\nMake a new `BeeDiffStream` instance, which is the stream of changes to get from the state of `leftSnapshot` to that of `rightSnapshot`.\n\nThe stream is ordered by key.\n\n`leftSnapshot` and `right",
49 "sections": [
50 "intro",
51 "install",
52 "versioning and compatibility",
53 "usage",
54 "api"
55 ],
56 "hasApi": true,
57 "hasExamples": true,
58 "exampleCount": 2,
59 "examples": [
60 "{\n gt: 'only consider keys > than this',\n gte: 'only consider keys >= than this',\n lt: 'only consider keys < than this',\n lte: 'only consider keys <= than this',\n keyEncoding: 'utf-8', // a key encoding\n valueEncoding: 'json' // a value encoding,\n closeSnapshots: true // set to false if you wish to use the passed-in snapshots after the diffStream is fully yielded.\n}",
61 "{\n left: { seq, key, value },\n right: { seq, key, value }\n}"
62 ]
63 },
64 "patterns": []
65}
skills/hyperbee-diff-stream/skills.md +49 -2
……@@ -53,11 +53,58 @@ See [example.js](./example.js)
5353
5454## API Documentation
5555
56_To be enriched in Phase 1B with deep code analysis_
56_Extracted from README and code analysis_
57
58### Classes
59
60- `BeeDiffStream`
61
62### Functions
63
64- `getKey()`
65- `areEqual()`
66- `unionCompare()`
67- `decodeEntry()`
68- `createUnionMap()`
69- `unionMap()`
70- `encodeKey()`
71
72### Exports
73
74- default: `BeeDiffStream`
75
76
77_See [api-extract.json](./api-extract.json) for detailed API information._
78
5779
5880## Usage Examples
5981
60_To be added in Phase 1B_
82_Extracted from README_
83
84### Example 1
85
86```javascript
87{
88 gt: 'only consider keys > than this',
89 gte: 'only consider keys >= than this',
90 lt: 'only consider keys < than this',
91 lte: 'only consider keys <= than this',
92 keyEncoding: 'utf-8', // a key encoding
93 valueEncoding: 'json' // a value encoding,
94 closeSnapshots: true // set to false if you wish to use the passed-in snapshots after the diffStream is fully yielded.
95}
96```
97
98### Example 2
99
100```javascript
101{
102 left: { seq, key, value },
103 right: { seq, key, value }
104}
105```
106
107
61108
62109## Semantic Type
63110
skills/hyperbee2/api-extract.json +67 -0
……@@ -0,0 +1,67 @@
1{
2 "repo": "hyperbee2",
3 "timestamp": "2026-01-16T23:56:01.556Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [
13 {
14 "type": "default",
15 "name": "Hyperbee"
16 }
17 ],
18 "classes": [
19 {
20 "name": "Hyperbee"
21 }
22 ],
23 "functions": [
24 {
25 "name": "noop"
26 },
27 {
28 "name": "inflateKey"
29 },
30 {
31 "name": "inflateKeyDelta"
32 },
33 {
34 "name": "inflateKeyCohort"
35 },
36 {
37 "name": "inflateChild"
38 },
39 {
40 "name": "inflateChildDelta"
41 },
42 {
43 "name": "inflateChildCohort"
44 }
45 ]
46 },
47 "readme": {
48 "content": "# hyperbee2\n\n```\nnpm install hyperbee2\n```\n\nNext major version for [hyperbee](https://github.com/holepunchto/hyperbee).\nWill be merged in there and released a new major when fully done.\n\n## Usage\n\n```js\nconst Hyperbee2 = require('hyperbee2')\n\nconst db = new Hyperbee2(store)\n\n// see tests for more\n```\n\n## License\n\nApache-2.0\n",
49 "sections": [
50 "intro",
51 "usage",
52 "license"
53 ],
54 "hasApi": true,
55 "hasExamples": true,
56 "exampleCount": 2,
57 "examples": [
58 "npm install hyperbee2",
59 "const Hyperbee2 = require('hyperbee2')\n\nconst db = new Hyperbee2(store)\n\n// see tests for more"
60 ]
61 },
62 "patterns": [
63 "append-only-log",
64 "binary-encoding",
65 "streaming"
66 ]
67}
skills/hyperbee2/skills.md +48 -2
……@@ -57,11 +57,57 @@ const db = new Hyperbee2(store)
5757
5858## API Documentation
5959
60_To be enriched in Phase 1B with deep code analysis_
60_Extracted from README and code analysis_
61
62### Classes
63
64- `Hyperbee`
65
66### Functions
67
68- `noop()`
69- `inflateKey()`
70- `inflateKeyDelta()`
71- `inflateKeyCohort()`
72- `inflateChild()`
73- `inflateChildDelta()`
74- `inflateChildCohort()`
75
76### Exports
77
78- default: `Hyperbee`
79
80
81_See [api-extract.json](./api-extract.json) for detailed API information._
82
6183
6284## Usage Examples
6385
64_To be added in Phase 1B_
86_Extracted from README_
87
88### Example 1
89
90```javascript
91npm install hyperbee2
92```
93
94### Example 2
95
96```javascript
97const Hyperbee2 = require('hyperbee2')
98
99const db = new Hyperbee2(store)
100
101// see tests for more
102```
103
104
105
106## P2P Patterns
107
108- append-only-log
109- binary-encoding
110- streaming
65111
66112## Semantic Type
67113
skills/hypercore-blob-server/api-extract.json +84 -0
……@@ -0,0 +1,84 @@
1{
2 "repo": "hypercore-blob-server",
3 "timestamp": "2026-01-16T23:56:09.531Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [
13 {
14 "type": "default",
15 "name": "class"
16 }
17 ],
18 "classes": [
19 {
20 "name": "BlobCache"
21 },
22 {
23 "name": "BlobRef"
24 },
25 {
26 "name": "BlobDownloader"
27 },
28 {
29 "name": "BlobMonitor"
30 },
31 {
32 "name": "HypercoreBlobServer"
33 }
34 ],
35 "functions": [
36 {
37 "name": "teardown"
38 },
39 {
40 "name": "onclose"
41 },
42 {
43 "name": "toInfo"
44 },
45 {
46 "name": "decodeRequest"
47 },
48 {
49 "name": "defaultResolve"
50 },
51 {
52 "name": "parseRange"
53 },
54 {
55 "name": "isWithinRange"
56 },
57 {
58 "name": "noop"
59 }
60 ]
61 },
62 "readme": {
63 "content": "# hypercore-blob-server\n\nHTTP server for streaming hypercore blobs\n\n```\nnpm install hypercore-blob-server\n```\n\nMore flexible successor to [serve-drive](https://github.com/holepunchto/serve-drive)\n\n## Usage\n\n``` js\nconst BlobServer = require('hypercore-blob-server')\n\n// store should be a corestore\nconst server = new BlobServer(store, options)\n\nawait server.listen()\n\n// To get a link to a blob to\nconst link = server.getLink(key, {\n blob: blobId,\n type: 'image/jpeg'\n})\n\n// supports drive lookups also\nconst link = server.getLink(key, {\n filename: '/foo.js'\n})\n```\n\n## API\n\n#### `const server = new BlobServer(store, options)`\n\n`store` - Corestore instance\n\n`options`:\n```js\n{\n port // defaults to 49833,\n host // defaults to '127.0.0.1',\n token // server token\n protocol // 'http' | 'https'\n}\n```\n\n#### `await server.listen()`\nListen to requests\n\n#### `const link = server.getLink(key, options)`\n\nGenerates the url used to fetch data\n\n`key` - hypercore or hyperdrive key\n\n`options`:\n```js\n{\n",
64 "sections": [
65 "intro",
66 "usage",
67 "api",
68 "license"
69 ],
70 "hasApi": true,
71 "hasExamples": true,
72 "exampleCount": 4,
73 "examples": [
74 "npm install hypercore-blob-server",
75 "## API\n\n#### `const server = new BlobServer(store, options)`\n\n`store` - Corestore instance\n\n`options`:",
76 "#### `await server.listen()`\nListen to requests\n\n#### `const link = server.getLink(key, options)`\n\nGenerates the url used to fetch data\n\n`key` - hypercore or hyperdrive key\n\n`options`:"
77 ]
78 },
79 "patterns": [
80 "append-only-log",
81 "binary-encoding",
82 "streaming"
83 ]
84}
skills/hypercore-blob-server/skills.md +70 -2
……@@ -66,11 +66,79 @@ await server.listen()
6666
6767## API Documentation
6868
69_To be enriched in Phase 1B with deep code analysis_
69_Extracted from README and code analysis_
70
71### Classes
72
73- `BlobCache`
74- `BlobRef`
75- `BlobDownloader`
76- `BlobMonitor`
77- `HypercoreBlobServer`
78
79### Functions
80
81- `teardown()`
82- `onclose()`
83- `toInfo()`
84- `decodeRequest()`
85- `defaultResolve()`
86- `parseRange()`
87- `isWithinRange()`
88- `noop()`
89
90### Exports
91
92- default: `class`
93
94
95_See [api-extract.json](./api-extract.json) for detailed API information._
96
7097
7198## Usage Examples
7299
73_To be added in Phase 1B_
100_Extracted from README_
101
102### Example 1
103
104```javascript
105npm install hypercore-blob-server
106```
107
108### Example 2
109
110```javascript
111## API
112
113#### `const server = new BlobServer(store, options)`
114
115`store` - Corestore instance
116
117`options`:
118```
119
120### Example 3
121
122```javascript
123#### `await server.listen()`
124Listen to requests
125
126#### `const link = server.getLink(key, options)`
127
128Generates the url used to fetch data
129
130`key` - hypercore or hyperdrive key
131
132`options`:
133```
134
135
136
137## P2P Patterns
138
139- append-only-log
140- binary-encoding
141- streaming
74142
75143## Semantic Type
76144
skills/hypercore-id-encoding/api-extract.json +48 -0
……@@ -0,0 +1,48 @@
1{
2 "repo": "hypercore-id-encoding",
3 "timestamp": "2026-01-16T23:56:39.407Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [],
13 "classes": [],
14 "functions": [
15 {
16 "name": "encode"
17 },
18 {
19 "name": "decode"
20 },
21 {
22 "name": "normalize"
23 },
24 {
25 "name": "isValid"
26 }
27 ]
28 },
29 "readme": {
30 "content": "# hypercore-id-encoding\n\nEncodes Hypercore keys into z-base32 ids, and decodes both hex/z-base32 strings.\n\n```\nnpm install hypercore-id-encoding\n```\n\n## Usage\n\n```js\nconst { encode, decode, normalize } = require('hypercore-id-encoding')\n\nconst id = encode(core.key) // (z-base32 String)\nconst hexEncoded = core.key.toString('hex')\n\nconst core = new Hypercore(ram, decode(id))\nconst core2 = new Hypercore(ram, decode(hexEncoded)) // Will also work with hex\n\nconst id2 = normalize(id)\nconst id3 = normalize(hexEncoded)\n```\n\n## API\n\n#### `const id = encode(hypercoreKey)`\n\nEncodes a 32-byte Hypercore key into a z-base32 id.\n\n`hypercoreKey` must be a Buffer or an ArrayBuffer.\n\n#### `const buf = decode(hypercoreId)`\n\nDecodes an id or pear link into a Hypercore key.\n\nIf `hypercoreId` is a 52-character String, it will be decoded as z-base32.\n\nIf `hypercoreId` is a 64-character String, it will be decoded as hex.\n\nIf `hypercoreId` is already a Buffer and is a valid id, it will be returned as-is.\n\n####",
31 "sections": [
32 "intro",
33 "usage",
34 "api",
35 "license"
36 ],
37 "hasApi": true,
38 "hasExamples": true,
39 "exampleCount": 2,
40 "examples": [
41 "npm install hypercore-id-encoding",
42 "const { encode, decode, normalize } = require('hypercore-id-encoding')\n\nconst id = encode(core.key) // (z-base32 String)\nconst hexEncoded = core.key.toString('hex')\n\nconst core = new Hypercore(ram, decode(id))\nconst core2 = new Hypercore(ram, decode(hexEncoded)) // Will also work with hex\n\nconst id2 = normalize(id)\nconst id3 = normalize(hexEncoded)"
43 ]
44 },
45 "patterns": [
46 "append-only-log"
47 ]
48}
skills/hypercore-id-encoding/skills.md +40 -2
……@@ -52,11 +52,49 @@ const id2 = normalize(id)
5252
5353## API Documentation
5454
55_To be enriched in Phase 1B with deep code analysis_
55_Extracted from README and code analysis_
56
57### Functions
58
59- `encode()`
60- `decode()`
61- `normalize()`
62- `isValid()`
63
64
65_See [api-extract.json](./api-extract.json) for detailed API information._
66
5667
5768## Usage Examples
5869
59_To be added in Phase 1B_
70_Extracted from README_
71
72### Example 1
73
74```javascript
75npm install hypercore-id-encoding
76```
77
78### Example 2
79
80```javascript
81const { encode, decode, normalize } = require('hypercore-id-encoding')
82
83const id = encode(core.key) // (z-base32 String)
84const hexEncoded = core.key.toString('hex')
85
86const core = new Hypercore(ram, decode(id))
87const core2 = new Hypercore(ram, decode(hexEncoded)) // Will also work with hex
88
89const id2 = normalize(id)
90const id3 = normalize(hexEncoded)
91```
92
93
94
95## P2P Patterns
96
97- append-only-log
6098
6199## Semantic Type
62100
skills/hypercore-logger/api-extract.json +47 -0
……@@ -0,0 +1,47 @@
1{
2 "repo": "hypercore-logger",
3 "timestamp": "2026-01-16T23:56:41.124Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [
13 {
14 "type": "default",
15 "name": "class"
16 }
17 ],
18 "classes": [
19 {
20 "name": "HypercoreLogger"
21 }
22 ],
23 "functions": []
24 },
25 "readme": {
26 "content": "# hypercore-logger\n\nDistributed logger\n\n```\nnpm install hypercore-logger\n```\n\n## Usage\n\n``` js\nconst Logger = require('hypercore-logger')\n\n// pass backing hypercore\nconst log = new Logger(core)\n\n// add a log message\nawait log.log({ hello: 'world' })\n```\n\nSetup swarming with Hyperswarm on the core and somewhere else\n\n```js\nconst log = new Logger(core)\n\nfor await (const { timestamp, stats, message } of log.tail()) {\n console.log(timestamp, stats, message)\n}\n```\n\n## API\n\n### `Logger`\n\n#### `const log = new Logger(core)`\n\nCreate a new logger backed by a [Hypercore](https://github.com/holepunchto/hypercore) (`core`).\n\n#### `log.discoveryKey`\n\nThe [`discoverKey`](https://github.com/holepunchto/hypercore#corediscoverykey) of the Hypercore backing the log.\n\n#### `log.key`\n\nThe [`key`](https://github.com/holepunchto/hypercore#corekey) of the Hypercore backing the log.\n\n#### `await log.ready()`\n\nWait for the log to fully open.\n\n#### `await log.log(...msg)`\n\nLog the `msg` arguments as a string r",
27 "sections": [
28 "intro",
29 "usage",
30 "api",
31 "cli",
32 "license"
33 ],
34 "hasApi": true,
35 "hasExamples": true,
36 "exampleCount": 7,
37 "examples": [
38 "npm install hypercore-logger",
39 "Setup swarming with Hyperswarm on the core and somewhere else",
40 "## API\n\n### `Logger`\n\n#### `const log = new Logger(core)`\n\nCreate a new logger backed by a [Hypercore](https://github.com/holepunchto/hypercore) (`core`).\n\n#### `log.discoveryKey`\n\nThe [`discoverKey`](https://github.com/holepunchto/hypercore#corediscoverykey) of the Hypercore backing the log.\n\n#### `log.key`\n\nThe [`key`](https://github.com/holepunchto/hypercore#corekey) of the Hypercore backing the log.\n\n#### `await log.ready()`\n\nWait for the log to fully open.\n\n#### `await log.log(...msg)`\n\nLog the `msg` arguments as a string representation intended for debugging, like `console.log()`'s output.\n\nIn addition to the string representation, metadata is automatically added to each log. Each appended to the backing Hypercore will look like:"
41 ]
42 },
43 "patterns": [
44 "append-only-log",
45 "peer-discovery"
46 ]
47}
skills/hypercore-logger/skills.md +63 -2
……@@ -61,11 +61,72 @@ await log.log({ hello: 'world' })
6161
6262## API Documentation
6363
64_To be enriched in Phase 1B with deep code analysis_
64_Extracted from README and code analysis_
65
66### Classes
67
68- `HypercoreLogger`
69
70### Exports
71
72- default: `class`
73
74
75_See [api-extract.json](./api-extract.json) for detailed API information._
76
6577
6678## Usage Examples
6779
68_To be added in Phase 1B_
80_Extracted from README_
81
82### Example 1
83
84```javascript
85npm install hypercore-logger
86```
87
88### Example 2
89
90```javascript
91Setup swarming with Hyperswarm on the core and somewhere else
92```
93
94### Example 3
95
96```javascript
97## API
98
99### `Logger`
100
101#### `const log = new Logger(core)`
102
103Create a new logger backed by a [Hypercore](https://github.com/holepunchto/hypercore) (`core`).
104
105#### `log.discoveryKey`
106
107The [`discoverKey`](https://github.com/holepunchto/hypercore#corediscoverykey) of the Hypercore backing the log.
108
109#### `log.key`
110
111The [`key`](https://github.com/holepunchto/hypercore#corekey) of the Hypercore backing the log.
112
113#### `await log.ready()`
114
115Wait for the log to fully open.
116
117#### `await log.log(...msg)`
118
119Log the `msg` arguments as a string representation intended for debugging, like `console.log()`'s output.
120
121In addition to the string representation, metadata is automatically added to each log. Each appended to the backing Hypercore will look like:
122```
123
124
125
126## P2P Patterns
127
128- append-only-log
129- peer-discovery
69130
70131## Semantic Type
71132
skills/hypercore-storage/api-extract.json +80 -0
……@@ -0,0 +1,80 @@
1{
2 "repo": "hypercore-storage",
3 "timestamp": "2026-01-16T23:55:45.520Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [
13 {
14 "type": "default",
15 "name": "CorestoreStorage"
16 }
17 ],
18 "classes": [
19 {
20 "name": "Atom"
21 },
22 {
23 "name": "HypercoreStorage"
24 },
25 {
26 "name": "CorestoreStorage"
27 }
28 ],
29 "functions": [
30 {
31 "name": "initStoreHead"
32 },
33 {
34 "name": "getBatch"
35 },
36 {
37 "name": "isCorestoreStorage"
38 },
39 {
40 "name": "createColumnFamily"
41 },
42 {
43 "name": "tmpFixStorage"
44 },
45 {
46 "name": "exportData"
47 },
48 {
49 "name": "toArray"
50 },
51 {
52 "name": "noop"
53 },
54 {
55 "name": "getInfoFromBatch"
56 }
57 ]
58 },
59 "readme": {
60 "content": "# hypercore-storage\n\nThe storage engine for Hypercore. Built on RocksDB.\n\n```\nnpm install hypercore-storage\n```\n\n## API\n\nThe following API is what Hypercore 11 binds to to do I/O.\n\n```js\nconst Storage = require('hypercore-storage')\n```\n\n#### `store = new Storage(dbOrPath)`\n\nMake a new storage engine.\n\n#### `core = await store.createCore({ key, discoveyKey, manifest?, keyPair?, encryptionKey?, userData? })`\n\nCreate a new core, returns a storage instance for that core.\n\n#### `core = await store.resumeCore(discoveryKey)`\n\nResume a previously make core. If it doesn't exist it returns `null`.\n\n#### `atom = store.createAtom()`\n\nPrimitive for making atomic batches across ops. See below for `core.atomize` on how to use it.\nWhen you wanna flush your changes to the underlying storage, use `await atom.flush()`.\n\nInternally to \"listen\" for when that happens you can add an sync hook with `atom.onflush(fn)`\n\n#### `bool = await store.hasCore(discoveryKey)`\n\nCheck if a core exists.\n\n#### `stream = sto",
61 "sections": [
62 "intro",
63 "api",
64 "license"
65 ],
66 "hasApi": true,
67 "hasExamples": true,
68 "exampleCount": 3,
69 "examples": [
70 "npm install hypercore-storage",
71 "const Storage = require('hypercore-storage')",
72 "{\n gt: 'only return keys > than this', // Not currently supported\n gte: 'only return keys >= than this',\n lt: 'only return keys < than this',\n lte: 'only return keys <= than this', // Not currently supported\n reverse: false // reverse results. Not currently supported\n}"
73 ]
74 },
75 "patterns": [
76 "append-only-log",
77 "binary-encoding",
78 "streaming"
79 ]
80}
skills/hypercore-storage/skills.md +60 -2
……@@ -63,11 +63,69 @@ Make a new storage engine.
6363
6464## API Documentation
6565
66_To be enriched in Phase 1B with deep code analysis_
66_Extracted from README and code analysis_
67
68### Classes
69
70- `Atom`
71- `HypercoreStorage`
72- `CorestoreStorage`
73
74### Functions
75
76- `initStoreHead()`
77- `getBatch()`
78- `isCorestoreStorage()`
79- `createColumnFamily()`
80- `tmpFixStorage()`
81- `exportData()`
82- `toArray()`
83- `noop()`
84- `getInfoFromBatch()`
85
86### Exports
87
88- default: `CorestoreStorage`
89
90
91_See [api-extract.json](./api-extract.json) for detailed API information._
92
6793
6894## Usage Examples
6995
70_To be added in Phase 1B_
96_Extracted from README_
97
98### Example 1
99
100```javascript
101npm install hypercore-storage
102```
103
104### Example 2
105
106```javascript
107const Storage = require('hypercore-storage')
108```
109
110### Example 3
111
112```javascript
113{
114 gt: 'only return keys > than this', // Not currently supported
115 gte: 'only return keys >= than this',
116 lt: 'only return keys < than this',
117 lte: 'only return keys <= than this', // Not currently supported
118 reverse: false // reverse results. Not currently supported
119}
120```
121
122
123
124## P2P Patterns
125
126- append-only-log
127- binary-encoding
128- streaming
71129
72130## Semantic Type
73131
skills/hyperdispatch/api-extract.json +35 -0
……@@ -0,0 +1,35 @@
1{
2 "repo": "hyperdispatch",
3 "timestamp": "2026-01-16T23:56:09.889Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js",
8 "exports": {
9 "./package": "./package.json",
10 ".": {
11 "import": "./builder.mjs",
12 "require": "./builder.cjs"
13 },
14 "./runtime": {
15 "import": "./runtime.mjs",
16 "require": "./runtime.cjs"
17 }
18 }
19 }
20 },
21 "api": {},
22 "readme": {
23 "content": "# hyperdispatch\n\nGenerate operations/endpoints using Hyperschema\n",
24 "sections": [
25 "intro"
26 ],
27 "hasApi": false,
28 "hasExamples": false,
29 "exampleCount": 0,
30 "examples": []
31 },
32 "patterns": [
33 "binary-encoding"
34 ]
35}
skills/hyperdispatch/skills.md +9 -1
……@@ -52,12 +52,20 @@ Generate operations/endpoints using Hyperschema
5252
5353## API Documentation
5454
55_To be enriched in Phase 1B with deep code analysis_
55_Extracted from code analysis_
56
57
58_See [api-extract.json](./api-extract.json) for detailed API information._
59
5660
5761## Usage Examples
5862
5963_To be added in Phase 1B_
6064
65## P2P Patterns
66
67- binary-encoding
68
6169## Semantic Type
6270
6371_To be classified in Phase 2_
skills/hyperswarm-doctor/api-extract.json +44 -0
……@@ -0,0 +1,44 @@
1{
2 "repo": "hyperswarm-doctor",
3 "timestamp": "2026-01-16T23:55:50.477Z",
4 "entryPoint": "index.mjs",
5 "exports": {
6 "packageJson": {
7 "main": "index.mjs"
8 }
9 },
10 "api": {
11 "file": "index.mjs",
12 "exports": [],
13 "classes": [],
14 "functions": [
15 {
16 "name": "testClient"
17 },
18 {
19 "name": "write"
20 },
21 {
22 "name": "testServer"
23 }
24 ]
25 },
26 "readme": {
27 "content": "# @hyperswarm/doctor\n\nDebugging tool for the swarm\n\n```\nnpm install -g @hyperswarm/doctor\n```\n\n## Usage\n\n``` sh\nhyperswarm-doctor # prints initial info\nhyperswarm-doctor --server # spin up a test server\nhyperswarm-doctor --client=pubkey # connect to a test server and test transfer\n```\n\n## License\n\nApache-2.0\n",
28 "sections": [
29 "intro",
30 "usage",
31 "license"
32 ],
33 "hasApi": true,
34 "hasExamples": true,
35 "exampleCount": 1,
36 "examples": [
37 "npm install -g @hyperswarm/doctor"
38 ]
39 },
40 "patterns": [
41 "peer-discovery",
42 "dht-discovery"
43 ]
44}
skills/hyperswarm-doctor/skills.md +25 -2
……@@ -52,11 +52,34 @@ Apache-2.0
5252
5353## API Documentation
5454
55_To be enriched in Phase 1B with deep code analysis_
55_Extracted from README and code analysis_
56
57### Functions
58
59- `testClient()`
60- `write()`
61- `testServer()`
62
63
64_See [api-extract.json](./api-extract.json) for detailed API information._
65
5666
5767## Usage Examples
5868
59_To be added in Phase 1B_
69_Extracted from README_
70
71### Example 1
72
73```javascript
74npm install -g @hyperswarm/doctor
75```
76
77
78
79## P2P Patterns
80
81- peer-discovery
82- dht-discovery
6083
6184## Semantic Type
6285
skills/hyperswarm-testnet/api-extract.json +42 -0
……@@ -0,0 +1,42 @@
1{
2 "repo": "hyperswarm-testnet",
3 "timestamp": "2026-01-16T23:56:10.266Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [
13 {
14 "type": "default",
15 "name": "require"
16 }
17 ],
18 "classes": [],
19 "functions": []
20 },
21 "readme": {
22 "content": "# @hyperswarm/testnet\n\nSmall module to help you spin up a local Hyperswarm testnet.\n\n```\nnpm install @hyperswarm/testnet\n```\n\nUse this if you want to use the swarm in tests, etc.\n\n## Usage\n\n```js\nconst createTestnet = require('@hyperswarm/testnet')\n\nconst testnet = await createTestnet(10) // create a local testnet with 10 dht nodes\n```\n\n## API\n\n#### `const testnet = await createTestnet(size = 10, [options])`\n\nCreate a new testnet. `size` is how many DHT nodes you want in it. Options include:\n\n```js\n{\n port: preferredLocalPort, // defaults to ANY (0)\n host: preferredLocalHost, // defaults to 127.0.0.1\n teardown // optional async teardown helper ie, t.teardown in brittle/tap etc\n}\n```\n\n#### `testnet.nodes`\n\nAn array of nodes in the testnet.\n\n#### `testnet.bootstrap`\n\nAn array of bootstrap addresses of the testnet.\n\n#### `const node = testnet.createNode([options])`\n\nCreate an additional ephemeral node and add it to the testnet. Options are the same as [`new DHT()`](https://github.com/h",
23 "sections": [
24 "intro",
25 "usage",
26 "api",
27 "license"
28 ],
29 "hasApi": true,
30 "hasExamples": true,
31 "exampleCount": 3,
32 "examples": [
33 "npm install @hyperswarm/testnet",
34 "const createTestnet = require('@hyperswarm/testnet')\n\nconst testnet = await createTestnet(10) // create a local testnet with 10 dht nodes",
35 "{\n port: preferredLocalPort, // defaults to ANY (0)\n host: preferredLocalHost, // defaults to 127.0.0.1\n teardown // optional async teardown helper ie, t.teardown in brittle/tap etc\n}"
36 ]
37 },
38 "patterns": [
39 "peer-discovery",
40 "dht-discovery"
41 ]
42}
skills/hyperswarm-testnet/skills.md +41 -2
……@@ -51,11 +51,50 @@ const testnet = await createTestnet(10) // create a local testnet with 10 dht no
5151
5252## API Documentation
5353
54_To be enriched in Phase 1B with deep code analysis_
54_Extracted from README and code analysis_
55
56### Exports
57
58- default: `require`
59
60
61_See [api-extract.json](./api-extract.json) for detailed API information._
62
5563
5664## Usage Examples
5765
58_To be added in Phase 1B_
66_Extracted from README_
67
68### Example 1
69
70```javascript
71npm install @hyperswarm/testnet
72```
73
74### Example 2
75
76```javascript
77const createTestnet = require('@hyperswarm/testnet')
78
79const testnet = await createTestnet(10) // create a local testnet with 10 dht nodes
80```
81
82### Example 3
83
84```javascript
85{
86 port: preferredLocalPort, // defaults to ANY (0)
87 host: preferredLocalHost, // defaults to 127.0.0.1
88 teardown // optional async teardown helper ie, t.teardown in brittle/tap etc
89}
90```
91
92
93
94## P2P Patterns
95
96- peer-discovery
97- dht-discovery
5998
6099## Semantic Type
61100
skills/hypertrace/api-extract.json +48 -0
……@@ -0,0 +1,48 @@
1{
2 "repo": "hypertrace",
3 "timestamp": "2026-01-16T23:56:01.934Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [],
13 "classes": [
14 {
15 "name": "Hypertrace"
16 },
17 {
18 "name": "NoTracingClass"
19 },
20 {
21 "name": "cannot"
22 }
23 ],
24 "functions": [
25 {
26 "name": "is"
27 }
28 ]
29 },
30 "readme": {
31 "content": "# hypertrace\n\nAdd tracing and insights to classes. One of the goals of the module is that there is close to zero overhead when tracing is not enabled. This is achieved by not enabling tracing on objects created before tracing was enabled.\n\nSimilarly if caching is enabled then there is almost zero overhead while tracing.\n\nThere is support for Prometheus/Grafana through [hypertrace-prometheus](https://github.com/holepunchto/hypertrace-prometheus) to get better visual insights into an application's behavior.\n\n## Installation\n\n```\n$ npm i hypertrace\n```\n\n## Usage / instrumentation\n\nFirst create tracers in the classes where insights are needed\n\n`some-module.js`\n``` js\nimport { createTracer } from 'hypertrace'\n\nexport default class SomeModule {\n constructor () {\n this.tracer = createTracer(this, {\n props: {\n some: 'property'\n }\n })\n }\n\n createChild () {\n const child = new Child(this.tracer)\n return child\n }\n}\n\nclass Child {\n constructor (parentTracer) {\n ",
32 "sections": [
33 "intro",
34 "installation",
35 "usage / instrumentation",
36 "methods"
37 ],
38 "hasApi": false,
39 "hasExamples": true,
40 "exampleCount": 4,
41 "examples": [
42 "$ npm i hypertrace",
43 "Then add `.setTraceFunction()` when traces are needed. It's important that this happens **before** classes that use Hypertrace are instantiated. Otherwise the tracer will not be enabled for those objects.\n\n`app.js`",
44 "## Methods\n\n### createTracer(context, { parent, props })\n\nCreate a new Hypertrace instance inside a class. Often used in the `constructor`.\n\n_If_ this is called before `setTraceFunction` then it will return a cummy class. This means that there will be close to zero overhead when tracing is not needed.\n\n- **props**: (optional) Some properties that are passed along to the trace function\n- **parent**: (optional) A parent hypertrace instance to allow deeper understanding of structure. This is pased to the trace function."
45 ]
46 },
47 "patterns": []
48}
skills/hypertrace/skills.md +47 -2
……@@ -47,11 +47,56 @@ First create tracers in the classes where insights are needed
4747
4848## API Documentation
4949
50_To be enriched in Phase 1B with deep code analysis_
50_Extracted from code analysis_
51
52### Classes
53
54- `Hypertrace`
55- `NoTracingClass`
56- `cannot`
57
58### Functions
59
60- `is()`
61
62
63_See [api-extract.json](./api-extract.json) for detailed API information._
64
5165
5266## Usage Examples
5367
54_To be added in Phase 1B_
68_Extracted from README_
69
70### Example 1
71
72```javascript
73$ npm i hypertrace
74```
75
76### Example 2
77
78```javascript
79Then add `.setTraceFunction()` when traces are needed. It's important that this happens **before** classes that use Hypertrace are instantiated. Otherwise the tracer will not be enabled for those objects.
80
81`app.js`
82```
83
84### Example 3
85
86```javascript
87## Methods
88
89### createTracer(context, { parent, props })
90
91Create a new Hypertrace instance inside a class. Often used in the `constructor`.
92
93_If_ this is called before `setTraceFunction` then it will return a cummy class. This means that there will be close to zero overhead when tracing is not needed.
94
95- **props**: (optional) Some properties that are passed along to the trace function
96- **parent**: (optional) A parent hypertrace instance to allow deeper understanding of structure. This is pased to the trace function.
97```
98
99
55100
56101## Semantic Type
57102
skills/index-encoder/api-extract.json +54 -0
……@@ -0,0 +1,54 @@
1{
2 "repo": "index-encoder",
3 "timestamp": "2026-01-16T23:56:02.311Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [
13 {
14 "type": "default",
15 "name": "class"
16 }
17 ],
18 "classes": [
19 {
20 "name": "IndexEncoder"
21 }
22 ],
23 "functions": [
24 {
25 "name": "encodeUint"
26 },
27 {
28 "name": "encodeUint32"
29 },
30 {
31 "name": "decodeUint32"
32 }
33 ]
34 },
35 "readme": {
36 "content": "# index-encoder\n\nEncode multiple values into sorted keys\n\n```\nnpm install index-encoder\n```\n\n## Usage\n\n```js\nconst IndexEncoder = require('index-encoder')\n\nconst idx = new IndexEncoder([IndexEncoder.STRING, IndexEncoder.UINT])\n\nconst buf = idx.encode(['foo', 42])\nconsole.log(idx.decode(buf)) // ['foo', 42]\n\n// pass any compact encoding name to map it to the relevant encoding\nconst uintType = IndexEncoder.lookup('uint')\nconst bufferType = IndexEncoder.lookup('buffer')\nconst alsoBufferType = IndexEncoder.lookup('fixed32')\n```\n\n## API\n\n#### `const idx = new IndexEncoder(encodings, { prefix = -1 })`\n\nCreate an index encoder using the array of `encodings`. The index encoder will produce a buffer encoding in the same order as `encodings`. A `prefix` can be defined to differentiate encoded buffers with the same `encodings`.\n\n#### `const buf = idx.encode(keys)`\n\nEncode the provided `keys` as a buffer. `keys` must be in the same order as the `encodings` when constructing the index encoder. `key",
37 "sections": [
38 "intro",
39 "usage",
40 "api",
41 "encoding types",
42 "license"
43 ],
44 "hasApi": true,
45 "hasExamples": true,
46 "exampleCount": 4,
47 "examples": [
48 "npm install index-encoder",
49 "const IndexEncoder = require('index-encoder')\n\nconst idx = new IndexEncoder([IndexEncoder.STRING, IndexEncoder.UINT])\n\nconst buf = idx.encode(['foo', 42])\nconsole.log(idx.decode(buf)) // ['foo', 42]\n\n// pass any compact encoding name to map it to the relevant encoding\nconst uintType = IndexEncoder.lookup('uint')\nconst bufferType = IndexEncoder.lookup('buffer')\nconst alsoBufferType = IndexEncoder.lookup('fixed32')",
50 "{\n gt, // Return values only > than this\n gte, // Return values >= than this\n lt, // Return values < than this\n lte: // Return values <= than this\n}"
51 ]
52 },
53 "patterns": []
54}
skills/index-encoder/skills.md +55 -2
……@@ -51,11 +51,64 @@ const uintType = IndexEncoder.lookup('uint')
5151
5252## API Documentation
5353
54_To be enriched in Phase 1B with deep code analysis_
54_Extracted from README and code analysis_
55
56### Classes
57
58- `IndexEncoder`
59
60### Functions
61
62- `encodeUint()`
63- `encodeUint32()`
64- `decodeUint32()`
65
66### Exports
67
68- default: `class`
69
70
71_See [api-extract.json](./api-extract.json) for detailed API information._
72
5573
5674## Usage Examples
5775
58_To be added in Phase 1B_
76_Extracted from README_
77
78### Example 1
79
80```javascript
81npm install index-encoder
82```
83
84### Example 2
85
86```javascript
87const IndexEncoder = require('index-encoder')
88
89const idx = new IndexEncoder([IndexEncoder.STRING, IndexEncoder.UINT])
90
91const buf = idx.encode(['foo', 42])
92console.log(idx.decode(buf)) // ['foo', 42]
93
94// pass any compact encoding name to map it to the relevant encoding
95const uintType = IndexEncoder.lookup('uint')
96const bufferType = IndexEncoder.lookup('buffer')
97const alsoBufferType = IndexEncoder.lookup('fixed32')
98```
99
100### Example 3
101
102```javascript
103{
104 gt, // Return values only > than this
105 gte, // Return values >= than this
106 lt, // Return values < than this
107 lte: // Return values <= than this
108}
109```
110
111
59112
60113## Semantic Type
61114
skills/libappling/api-extract.json +23 -0
……@@ -0,0 +1,23 @@
1{
2 "repo": "libappling",
3 "timestamp": "2026-01-16T23:56:24.561Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {}
7 },
8 "api": {},
9 "readme": {
10 "content": "# libappling\n\nLow-level plumbing for Pear application shells. Application shells, referred to as _applings_, are small, native applications that bundle the public key of their associated Pear application in addition to the discovery key of the Pear platform. At a glance, an appling goes through the following steps to launch its associated application:\n\n1. **Resolve:** Determine the path to the current platform installation, if available.\n2. **Bootstrap:** If no platform is available, download and install the most recent platform.\n3. **Launch:** With the platform either already available or just installed, launch the platform with the application.\n\nOnce created and distributed, an appling never needs to be recreated and redistributed as the Pear platform and application are themselves fully self updating.\n\n## API\n\nSee [`include/appling.h`](include/appling.h) for the public API.\n\n## Building\n\n```console\nnpm i -g bare-make\nnpm i\nbare-make generate\nbare-make build\n```\n\n## License\n\nApache-2",
11 "sections": [
12 "intro",
13 "api",
14 "building",
15 "license"
16 ],
17 "hasApi": true,
18 "hasExamples": false,
19 "exampleCount": 0,
20 "examples": []
21 },
22 "patterns": []
23}
skills/libappling/skills.md +5 -1
……@@ -43,7 +43,11 @@ bare-make generate
4343
4444## API Documentation
4545
46_To be enriched in Phase 1B with deep code analysis_
46_Extracted from README and code analysis_
47
48
49_See [api-extract.json](./api-extract.json) for detailed API information._
50
4751
4852## Usage Examples
4953
skills/libcrc/api-extract.json +22 -0
……@@ -0,0 +1,22 @@
1{
2 "repo": "libcrc",
3 "timestamp": "2026-01-16T23:56:10.639Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {}
7 },
8 "api": {},
9 "readme": {
10 "content": "# libcrc\n\nCross-platform implementation of CRC32 with hardware acceleration for ARM processors. Uses a portable, generic implementation when hardware acceleration is not possible.\n\n## API\n\nSee [`include/crc.h`](include/crc.h) for the public API.\n\n## License\n\nApache 2.0\n",
11 "sections": [
12 "intro",
13 "api",
14 "license"
15 ],
16 "hasApi": true,
17 "hasExamples": false,
18 "exampleCount": 0,
19 "examples": []
20 },
21 "patterns": []
22}
skills/libcrc/skills.md +5 -1
……@@ -35,7 +35,11 @@ Apache 2.0
3535
3636## API Documentation
3737
38_To be enriched in Phase 1B with deep code analysis_
38_Extracted from README and code analysis_
39
40
41_See [api-extract.json](./api-extract.json) for detailed API information._
42
3943
4044## Usage Examples
4145
skills/libfs/api-extract.json +22 -0
……@@ -0,0 +1,22 @@
1{
2 "repo": "libfs",
3 "timestamp": "2026-01-16T23:56:41.512Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {}
7 },
8 "api": {},
9 "readme": {
10 "content": "# libfs\n\nA simple but extensive file system library built on libuv.\n\n## API\n\nSee [`include/fs.h`](include/fs.h) for the public API.\n\n## License\n\nApache-2.0\n",
11 "sections": [
12 "intro",
13 "api",
14 "license"
15 ],
16 "hasApi": true,
17 "hasExamples": false,
18 "exampleCount": 0,
19 "examples": []
20 },
21 "patterns": []
22}
skills/libfs/skills.md +5 -1
……@@ -35,7 +35,11 @@ Apache-2.0
3535
3636## API Documentation
3737
38_To be enriched in Phase 1B with deep code analysis_
38_Extracted from README and code analysis_
39
40
41_See [api-extract.json](./api-extract.json) for detailed API information._
42
3943
4044## Usage Examples
4145
skills/libfx/api-extract.json +22 -0
……@@ -0,0 +1,22 @@
1{
2 "repo": "libfx",
3 "timestamp": "2026-01-16T23:56:02.889Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {}
7 },
8 "api": {},
9 "readme": {
10 "content": "# libfx\n\nLow-level, cross-platform GUI library for native desktop and mobile.\n\n## API\n\nSee [`include/fx.h`](include/fx.h) for the public API.\n\n## License\n\nApache-2.0\n",
11 "sections": [
12 "intro",
13 "api",
14 "license"
15 ],
16 "hasApi": true,
17 "hasExamples": false,
18 "exampleCount": 0,
19 "examples": []
20 },
21 "patterns": []
22}
skills/libfx/skills.md +5 -1
……@@ -35,7 +35,11 @@ Apache-2.0
3535
3636## API Documentation
3737
38_To be enriched in Phase 1B with deep code analysis_
38_Extracted from README and code analysis_
39
40
41_See [api-extract.json](./api-extract.json) for detailed API information._
42
3943
4044## Usage Examples
4145
skills/libjerry/api-extract.json +21 -0
……@@ -0,0 +1,21 @@
1{
2 "repo": "libjerry",
3 "timestamp": "2026-01-16T23:55:50.891Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {}
7 },
8 "api": {},
9 "readme": {
10 "content": "# libjerry\n\nABI compatible replacement for <https://github.com/holepunchto/libjs> built on JerryScript. Useful for IoT, embedded, or otherwise constrained systems where the requirements of V8 can become problematic.\n\n## License\n\nApache-2.0\n",
11 "sections": [
12 "intro",
13 "license"
14 ],
15 "hasApi": false,
16 "hasExamples": false,
17 "exampleCount": 0,
18 "examples": []
19 },
20 "patterns": []
21}
skills/libjerry/skills.md +5 -1
……@@ -31,7 +31,11 @@ Apache-2.0
3131
3232## API Documentation
3333
34_To be enriched in Phase 1B with deep code analysis_
34_Extracted from code analysis_
35
36
37_See [api-extract.json](./api-extract.json) for detailed API information._
38
3539
3640## Usage Examples
3741
skills/libjsc/api-extract.json +21 -0
……@@ -0,0 +1,21 @@
1{
2 "repo": "libjsc",
3 "timestamp": "2026-01-16T23:55:48.151Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {}
7 },
8 "api": {},
9 "readme": {
10 "content": "# libjsc\n\nABI compatible replacement for <https://github.com/holepunchto/libjs> built on JavaScriptCore.\n\n## License\n\nApache-2.0\n",
11 "sections": [
12 "intro",
13 "license"
14 ],
15 "hasApi": false,
16 "hasExamples": false,
17 "exampleCount": 0,
18 "examples": []
19 },
20 "patterns": []
21}
skills/libjsc/skills.md +5 -1
……@@ -31,7 +31,11 @@ Apache-2.0
3131
3232## API Documentation
3333
34_To be enriched in Phase 1B with deep code analysis_
34_Extracted from code analysis_
35
36
37_See [api-extract.json](./api-extract.json) for detailed API information._
38
3539
3640## Usage Examples
3741
skills/libjstl/api-extract.json +26 -0
……@@ -0,0 +1,26 @@
1{
2 "repo": "libjstl",
3 "timestamp": "2026-01-16T23:56:24.954Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {}
7 },
8 "api": {},
9 "readme": {
10 "content": "# libjstl\n\nC++ template library for <https://github.com/holepunchto/libjs>. It aims to make interacting with the low-level API safer and more efficient without making callers feel too much like they're writing C++.\n\n## API\n\n### Handle types\n\nTo improve type safety and ergonomics `libjstl` wraps the `js_value_t *` ABI handle type in a type hierarchy that mirrors the JavaScript type hierarchy. All handle types support conversion to plain `js_value_t *` ABI handles by means of explicit casts:\n\n```cpp\njs_boolean_t boolean;\n\njs_value_t *handle = static_cast<js_value_t *>(boolean);\n```\n\nFor cases where an ABI handle output variable is expected, cast to `js_value_t **` instead:\n\n```cpp\njs_boolean_t boolean;\n\njs_value_t **handle = static_cast<js_value_t **>(boolean);\n```\n\n#### `js_handle_t`\n\n#### `js_primitive_t`\n\n#### `js_boolean_t`\n\n#### `js_numeric_t`\n\n#### `js_number_t`\n\n#### `js_integer_t`\n\n#### `js_bigint_t`\n\n#### `js_name_t`\n\n#### `js_string_t`\n\n#### `js_symbol_t`\n\n#### `js_object_t`\n\n#",
11 "sections": [
12 "intro",
13 "api",
14 "license"
15 ],
16 "hasApi": true,
17 "hasExamples": true,
18 "exampleCount": 6,
19 "examples": [
20 "For cases where an ABI handle output variable is expected, cast to `js_value_t **` instead:",
21 "#### `js_handle_t`\n\n#### `js_primitive_t`\n\n#### `js_boolean_t`\n\n#### `js_numeric_t`\n\n#### `js_number_t`\n\n#### `js_integer_t`\n\n#### `js_bigint_t`\n\n#### `js_name_t`\n\n#### `js_string_t`\n\n#### `js_symbol_t`\n\n#### `js_object_t`\n\n#### `js_array_t`\n\n#### `js_arraybuffer_t`\n\n#### `js_typedarray_t<T>`\n\n#### `js_typedarray_t<>`\n\n#### `js_function_t<R, A...>`\n\n#### `js_external_t<T>`\n\n### Type marshalling\n\nAt the core of `libjstl` is a type marshalling system responsible for converting between ABI types, such as `js_value_t *` handles, and native C/C++ types. Type marshalling is accessed through `js_type_info_t<T>` which describes the type `T` and implements the marshalling and unmarshalling methods responsible for converting `T` to and from its associated ABI type.\n\n#### `js_type_info_t<T>`",
22 "##### `js_type_info_t<T>::type`\n\nThe ABI type used to represent `T`. Must be `js_value_t *` unless otherwise stated."
23 ]
24 },
25 "patterns": []
26}
skills/libjstl/skills.md +66 -2
……@@ -43,11 +43,75 @@ js_boolean_t boolean;
4343
4444## API Documentation
4545
46_To be enriched in Phase 1B with deep code analysis_
46_Extracted from README and code analysis_
47
48
49_See [api-extract.json](./api-extract.json) for detailed API information._
50
4751
4852## Usage Examples
4953
50_To be added in Phase 1B_
54_Extracted from README_
55
56### Example 1
57
58```javascript
59For cases where an ABI handle output variable is expected, cast to `js_value_t **` instead:
60```
61
62### Example 2
63
64```javascript
65#### `js_handle_t`
66
67#### `js_primitive_t`
68
69#### `js_boolean_t`
70
71#### `js_numeric_t`
72
73#### `js_number_t`
74
75#### `js_integer_t`
76
77#### `js_bigint_t`
78
79#### `js_name_t`
80
81#### `js_string_t`
82
83#### `js_symbol_t`
84
85#### `js_object_t`
86
87#### `js_array_t`
88
89#### `js_arraybuffer_t`
90
91#### `js_typedarray_t<T>`
92
93#### `js_typedarray_t<>`
94
95#### `js_function_t<R, A...>`
96
97#### `js_external_t<T>`
98
99### Type marshalling
100
101At the core of `libjstl` is a type marshalling system responsible for converting between ABI types, such as `js_value_t *` handles, and native C/C++ types. Type marshalling is accessed through `js_type_info_t<T>` which describes the type `T` and implements the marshalling and unmarshalling methods responsible for converting `T` to and from its associated ABI type.
102
103#### `js_type_info_t<T>`
104```
105
106### Example 3
107
108```javascript
109##### `js_type_info_t<T>::type`
110
111The ABI type used to represent `T`. Must be `js_value_t *` unless otherwise stated.
112```
113
114
51115
52116## Semantic Type
53117
skills/liblog/api-extract.json +27 -0
……@@ -0,0 +1,27 @@
1{
2 "repo": "liblog",
3 "timestamp": "2026-01-16T23:56:25.351Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {}
7 },
8 "api": {},
9 "readme": {
10 "content": "## liblog\n\nSimple logging library with a unified interface to [os_log](https://developer.apple.com/documentation/os/logging?language=objc), [syslog](https://www.man7.org/linux/man-pages/man3/syslog.3.html), [Logcat](https://developer.android.com/tools/logcat), and [TraceLogging](https://learn.microsoft.com/en-us/windows/win32/tracelogging/).\n\n## Usage\n\n```c\n#include <log.h>\n\nlog_debug(\"Current pid: %u\", getpid());\n```\n\n### Consuming logs\n\n#### macOS\n\nOn macOS, [Console.app](https://support.apple.com/en-gb/guide/console/welcome/mac) and the `log` tool can be used to consume logs. To show only messages for a given binary, such as `my-app`, pass the `--predicate` flag:\n\n```sh\nlog stream --predicate \"process == 'my-app'\"\n```\n\n#### Linux\n\nOn Linux, [`journalctl`](https://www.man7.org/linux/man-pages/man1/journalctl.1.html) can be used to consume logs. To show only messages for a given binary, such as `my-app`, pass the `--identifier` flag:\n\n```sh\njournalctl --identifier my-app\n```\n\n#### And",
11 "sections": [
12 "liblog",
13 "usage",
14 "api",
15 "license"
16 ],
17 "hasApi": true,
18 "hasExamples": true,
19 "exampleCount": 6,
20 "examples": [
21 "### Consuming logs\n\n#### macOS\n\nOn macOS, [Console.app](https://support.apple.com/en-gb/guide/console/welcome/mac) and the `log` tool can be used to consume logs. To show only messages for a given binary, such as `my-app`, pass the `--predicate` flag:",
22 "#### Linux\n\nOn Linux, [`journalctl`](https://www.man7.org/linux/man-pages/man1/journalctl.1.html) can be used to consume logs. To show only messages for a given binary, such as `my-app`, pass the `--identifier` flag:",
23 "#### Android\n\nOn Android, [`logcat`](https://developer.android.com/tools/logcat) can be used to consume logs. To show only messages for a given binary, such as `my-app`, pass a filterspec:"
24 ]
25 },
26 "patterns": []
27}
skills/liblog/skills.md +34 -2
……@@ -43,11 +43,43 @@ log stream --predicate "process == 'my-app'"
4343
4444## API Documentation
4545
46_To be enriched in Phase 1B with deep code analysis_
46_Extracted from README and code analysis_
47
48
49_See [api-extract.json](./api-extract.json) for detailed API information._
50
4751
4852## Usage Examples
4953
50_To be added in Phase 1B_
54_Extracted from README_
55
56### Example 1
57
58```javascript
59### Consuming logs
60
61#### macOS
62
63On macOS, [Console.app](https://support.apple.com/en-gb/guide/console/welcome/mac) and the `log` tool can be used to consume logs. To show only messages for a given binary, such as `my-app`, pass the `--predicate` flag:
64```
65
66### Example 2
67
68```javascript
69#### Linux
70
71On Linux, [`journalctl`](https://www.man7.org/linux/man-pages/man1/journalctl.1.html) can be used to consume logs. To show only messages for a given binary, such as `my-app`, pass the `--identifier` flag:
72```
73
74### Example 3
75
76```javascript
77#### Android
78
79On Android, [`logcat`](https://developer.android.com/tools/logcat) can be used to consume logs. To show only messages for a given binary, such as `my-app`, pass a filterspec:
80```
81
82
5183
5284## Semantic Type
5385
skills/libmem/api-extract.json +22 -0
……@@ -0,0 +1,22 @@
1{
2 "repo": "libmem",
3 "timestamp": "2026-01-16T23:56:25.702Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {}
7 },
8 "api": {},
9 "readme": {
10 "content": "# libmem\n\nGeneral purpose memory allocator for C built on <https://github.com/microsoft/mimalloc>. It's built around explicit heaps and provides no global allocation.\n\n## API\n\nSee [`include/mem.h`](include/mem.h) for the public API.\n\n## License\n\nApache-2.0\n",
11 "sections": [
12 "intro",
13 "api",
14 "license"
15 ],
16 "hasApi": true,
17 "hasExamples": false,
18 "exampleCount": 0,
19 "examples": []
20 },
21 "patterns": []
22}
skills/libmem/skills.md +5 -1
……@@ -35,7 +35,11 @@ Apache-2.0
3535
3636## API Documentation
3737
38_To be enriched in Phase 1B with deep code analysis_
38_Extracted from README and code analysis_
39
40
41_See [api-extract.json](./api-extract.json) for detailed API information._
42
3943
4044## Usage Examples
4145
skills/libparseline/api-extract.json +20 -0
……@@ -0,0 +1,20 @@
1{
2 "repo": "libparseline",
3 "timestamp": "2026-01-16T23:56:41.863Z",
4 "entryPoint": null,
5 "exports": {},
6 "api": {},
7 "readme": {
8 "content": "# libparseline\n\nParse streaming lines in C.\n\n## API\n\nSee [`include/parseline.h`](include/parseline.h) for the public API.\n\n## License\n\nApache-2.0\n",
9 "sections": [
10 "intro",
11 "api",
12 "license"
13 ],
14 "hasApi": true,
15 "hasExamples": false,
16 "exampleCount": 0,
17 "examples": []
18 },
19 "patterns": []
20}
skills/libparseline/skills.md +5 -1
……@@ -28,7 +28,11 @@ Apache-2.0
2828
2929## API Documentation
3030
31_To be enriched in Phase 1B with deep code analysis_
31_Extracted from README and code analysis_
32
33
34_See [api-extract.json](./api-extract.json) for detailed API information._
35
3236
3337## Usage Examples
3438
skills/libpearsync/api-extract.json +20 -0
……@@ -0,0 +1,20 @@
1{
2 "repo": "libpearsync",
3 "timestamp": "2026-01-16T23:55:51.256Z",
4 "entryPoint": null,
5 "exports": {},
6 "api": {},
7 "readme": {
8 "content": "# libpearsync\n\nSimple message passing between a libuv thread and something else.\n\n* No locks.\n* No allocs (*)\n* No fuzz\n\n*... unless you send > 1024 messages in one tick, at which stage an extra buffer is allocated*\n\n## Usage\n\nSee `example.c` for a fully runnable example\n\n``` c\n// somewhere (but only in one place), init it\npearsync_t sync;\npearsync_init(&sync);\n\n// then pass it to the libuv thread somehow and call\npearsync_port_t *uv_port = pearsync_open_uv(&sync, uv_loop, on_recv_uv);\n\n// then in the other thread call\npearsync_port_t *port = pearsync_open_thread(&sync, signal_thread, on_recv_thread);\n\n// pearsync doesnt know how to signal your other thread, so you need to pass a function\n// signal_thread that does this for it, the signature of it is\n\nvoid signal_thread (pearsync_port_t *port) {\n // ... somehow signal the other thread, and when so do\n pearsync_wakeup(port);\n}\n\n// note that these two open calls are threadsafe!\n// the wakeup function is called when there is something t",
9 "sections": [
10 "intro",
11 "usage",
12 "license"
13 ],
14 "hasApi": true,
15 "hasExamples": false,
16 "exampleCount": 0,
17 "examples": []
18 },
19 "patterns": []
20}
skills/libpearsync/skills.md +5 -1
……@@ -36,7 +36,11 @@ pearsync_init(&sync);
3636
3737## API Documentation
3838
39_To be enriched in Phase 1B with deep code analysis_
39_Extracted from README and code analysis_
40
41
42_See [api-extract.json](./api-extract.json) for detailed API information._
43
4044
4145## Usage Examples
4246
skills/librocksdb/api-extract.json +22 -0
……@@ -0,0 +1,22 @@
1{
2 "repo": "librocksdb",
3 "timestamp": "2026-01-16T23:56:11.036Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {}
7 },
8 "api": {},
9 "readme": {
10 "content": "# librocksdb\n\nAsynchronous C bindings to RocksDB with support for batch operations.\n\n## API\n\nSee [`include/rocksdb.h`](include/rocksdb.h) for the public API.\n\n## License\n\nApache-2.0\n",
11 "sections": [
12 "intro",
13 "api",
14 "license"
15 ],
16 "hasApi": true,
17 "hasExamples": false,
18 "exampleCount": 0,
19 "examples": []
20 },
21 "patterns": []
22}
skills/librocksdb/skills.md +5 -1
……@@ -35,7 +35,11 @@ Apache-2.0
3535
3636## API Documentation
3737
38_To be enriched in Phase 1B with deep code analysis_
38_Extracted from README and code analysis_
39
40
41_See [api-extract.json](./api-extract.json) for detailed API information._
42
3943
4044## Usage Examples
4145
skills/librpc/api-extract.json +22 -0
……@@ -0,0 +1,22 @@
1{
2 "repo": "librpc",
3 "timestamp": "2026-01-16T23:56:42.233Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {}
7 },
8 "api": {},
9 "readme": {
10 "content": "# librpc\n\nLow-level RPC codec implemented in C for wide language support.\n\n## API\n\nSee [`include/rpc.h`](include/rpc.h) for the public API.\n\n## License\n\nApache-2.0\n",
11 "sections": [
12 "intro",
13 "api",
14 "license"
15 ],
16 "hasApi": true,
17 "hasExamples": false,
18 "exampleCount": 0,
19 "examples": []
20 },
21 "patterns": []
22}
skills/librpc/skills.md +5 -1
……@@ -35,7 +35,11 @@ Apache-2.0
3535
3636## API Documentation
3737
38_To be enriched in Phase 1B with deep code analysis_
38_Extracted from README and code analysis_
39
40
41_See [api-extract.json](./api-extract.json) for detailed API information._
42
3943
4044## Usage Examples
4145
skills/libsimdle/api-extract.json +22 -0
……@@ -0,0 +1,22 @@
1{
2 "repo": "libsimdle",
3 "timestamp": "2026-01-16T23:56:26.069Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {}
7 },
8 "api": {},
9 "readme": {
10 "content": "# libsimdle\n\nSimple and portable SIMD instructions for 128 bit vectors, inspired by the WASM SIMD specification. Designed for seamless interoperability with JavaScript typed arrays.\n\n## API\n\nSee [`include/simdle.h`](include/simdle.h) for the public API.\n\n## License\n\nApache 2.0\n",
11 "sections": [
12 "intro",
13 "api",
14 "license"
15 ],
16 "hasApi": true,
17 "hasExamples": false,
18 "exampleCount": 0,
19 "examples": []
20 },
21 "patterns": []
22}
skills/libsimdle/skills.md +5 -1
……@@ -35,7 +35,11 @@ Apache 2.0
3535
3636## API Documentation
3737
38_To be enriched in Phase 1B with deep code analysis_
38_Extracted from README and code analysis_
39
40
41_See [api-extract.json](./api-extract.json) for detailed API information._
42
3943
4044## Usage Examples
4145
skills/libtt/api-extract.json +22 -0
……@@ -0,0 +1,22 @@
1{
2 "repo": "libtt",
3 "timestamp": "2026-01-16T23:56:11.419Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {}
7 },
8 "api": {},
9 "readme": {
10 "content": "# libtt\n\nVirtual console extensions built on libuv.\n\n## API\n\nSee [`include/tt.h`](include/tt.h) for the public API.\n\n## License\n\nApache 2.0\n",
11 "sections": [
12 "intro",
13 "api",
14 "license"
15 ],
16 "hasApi": true,
17 "hasExamples": false,
18 "exampleCount": 0,
19 "examples": []
20 },
21 "patterns": []
22}
skills/libtt/skills.md +5 -1
……@@ -35,7 +35,11 @@ Apache 2.0
3535
3636## API Documentation
3737
38_To be enriched in Phase 1B with deep code analysis_
38_Extracted from README and code analysis_
39
40
41_See [api-extract.json](./api-extract.json) for detailed API information._
42
3943
4044## Usage Examples
4145
skills/liburl/api-extract.json +23 -0
……@@ -0,0 +1,23 @@
1{
2 "repo": "liburl",
3 "timestamp": "2026-01-16T23:56:26.456Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {}
7 },
8 "api": {},
9 "readme": {
10 "content": "# liburl\n\nWHATWG URL parser in C. Provides a memory efficient URL representation with immutable views over the various URL components, inspired by [WebKit](https://github.com/WebKit/WebKit) and [Ada](https://github.com/ada-url/ada).\n\n## Usage\n\n```c\n#include <url.h>\n#include <utf.h>\n\nurl_t url\nurl_init(&url);\n\nurl_parse(&url, \"https://example.com/foo/bar?baz\", -1, NULL);\n\nutf8_string_view_t href = url_get_href(&url);\n\nurl_destroy(&url);\n```\n\n## API\n\nSee [`include/url.h`](include/url.h) for the public API.\n\n## License\n\nApache-2.0\n",
11 "sections": [
12 "intro",
13 "usage",
14 "api",
15 "license"
16 ],
17 "hasApi": true,
18 "hasExamples": false,
19 "exampleCount": 0,
20 "examples": []
21 },
22 "patterns": []
23}
skills/liburl/skills.md +5 -1
……@@ -43,7 +43,11 @@ url_destroy(&url);
4343
4444## API Documentation
4545
46_To be enriched in Phase 1B with deep code analysis_
46_Extracted from README and code analysis_
47
48
49_See [api-extract.json](./api-extract.json) for detailed API information._
50
4751
4852## Usage Examples
4953
skills/libutf/api-extract.json +22 -0
……@@ -0,0 +1,22 @@
1{
2 "repo": "libutf",
3 "timestamp": "2026-01-16T23:56:11.766Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {}
7 },
8 "api": {},
9 "readme": {
10 "content": "# libutf\n\nSmall library for working with Unicode in C. Based on <https://github.com/simdutf/simdutf>, but without the `libc++` requirement.\n\n## API\n\nSee [`include/utf.h`](include/utf.h) for the public API.\n\n## License\n\nApache-2.0\n",
11 "sections": [
12 "intro",
13 "api",
14 "license"
15 ],
16 "hasApi": true,
17 "hasExamples": false,
18 "exampleCount": 0,
19 "examples": []
20 },
21 "patterns": []
22}
skills/libutf/skills.md +5 -1
……@@ -35,7 +35,11 @@ Apache-2.0
3535
3636## API Documentation
3737
38_To be enriched in Phase 1B with deep code analysis_
38_Extracted from README and code analysis_
39
40
41_See [api-extract.json](./api-extract.json) for detailed API information._
42
3943
4044## Usage Examples
4145
skills/localwatch/api-extract.json +61 -0
……@@ -0,0 +1,61 @@
1{
2 "repo": "localwatch",
3 "timestamp": "2026-01-16T23:55:45.870Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [
13 {
14 "type": "default",
15 "name": "class"
16 }
17 ],
18 "classes": [
19 {
20 "name": "TreeEntry"
21 },
22 {
23 "name": "Localwatch"
24 }
25 ],
26 "functions": [
27 {
28 "name": "readdir"
29 },
30 {
31 "name": "lstat"
32 },
33 {
34 "name": "isRooted"
35 },
36 {
37 "name": "defaultFilter"
38 }
39 ]
40 },
41 "readme": {
42 "content": "# localwatch\n\nWatch a directory and get a diff of changes\n\n```\nnpm install localwatch\n```\n\n## Usage\n\n```js\nconst Localwatch = require('localwatch')\n\n// watch a dir\nconst watch = new Localwatch('./my/dir')\n\n// watch is a readable stream\n\nfor await (const diff of watch) {\n // diff is the next batch of changes\n // [{ type: update|delete, filename }, ...]\n}\n```\n\n## API\n\n#### `stream = new Localwatch(dir, [options])`\n\nMake a watch stream.\n\nOptions include\n\n```js\n{\n // function that returns true if it should watch it\n // defaults to ignoring .git and corestores\n filter (filename, stream) { ... },\n // optionally map the diff entries\n map (entry) { return ... },\n // use relative paths in the diff\n relative: false,\n // include hidden files (.something)\n hidden: false,\n // wait for the watched folder to be idle for 100ms\n // before triggering the batch after a change has happened.\n // disable this if you the watcher to be fully interactive\n settle: true\n}\n```\n\nThe stream yields di",
43 "sections": [
44 "intro",
45 "usage",
46 "api",
47 "license"
48 ],
49 "hasApi": true,
50 "hasExamples": true,
51 "exampleCount": 4,
52 "examples": [
53 "npm install localwatch",
54 "const Localwatch = require('localwatch')\n\n// watch a dir\nconst watch = new Localwatch('./my/dir')\n\n// watch is a readable stream\n\nfor await (const diff of watch) {\n // diff is the next batch of changes\n // [{ type: update|delete, filename }, ...]\n}",
55 "{\n // function that returns true if it should watch it\n // defaults to ignoring .git and corestores\n filter (filename, stream) { ... },\n // optionally map the diff entries\n map (entry) { return ... },\n // use relative paths in the diff\n relative: false,\n // include hidden files (.something)\n hidden: false,\n // wait for the watched folder to be idle for 100ms\n // before triggering the batch after a change has happened.\n // disable this if you the watcher to be fully interactive\n settle: true\n}"
56 ]
57 },
58 "patterns": [
59 "streaming"
60 ]
61}
skills/localwatch/skills.md +70 -2
……@@ -54,11 +54,79 @@ for await (const diff of watch) {
5454
5555## API Documentation
5656
57_To be enriched in Phase 1B with deep code analysis_
57_Extracted from README and code analysis_
58
59### Classes
60
61- `TreeEntry`
62- `Localwatch`
63
64### Functions
65
66- `readdir()`
67- `lstat()`
68- `isRooted()`
69- `defaultFilter()`
70
71### Exports
72
73- default: `class`
74
75
76_See [api-extract.json](./api-extract.json) for detailed API information._
77
5878
5979## Usage Examples
6080
61_To be added in Phase 1B_
81_Extracted from README_
82
83### Example 1
84
85```javascript
86npm install localwatch
87```
88
89### Example 2
90
91```javascript
92const Localwatch = require('localwatch')
93
94// watch a dir
95const watch = new Localwatch('./my/dir')
96
97// watch is a readable stream
98
99for await (const diff of watch) {
100 // diff is the next batch of changes
101 // [{ type: update|delete, filename }, ...]
102}
103```
104
105### Example 3
106
107```javascript
108{
109 // function that returns true if it should watch it
110 // defaults to ignoring .git and corestores
111 filter (filename, stream) { ... },
112 // optionally map the diff entries
113 map (entry) { return ... },
114 // use relative paths in the diff
115 relative: false,
116 // include hidden files (.something)
117 hidden: false,
118 // wait for the watched folder to be idle for 100ms
119 // before triggering the batch after a change has happened.
120 // disable this if you the watcher to be fully interactive
121 settle: true
122}
123```
124
125
126
127## P2P Patterns
128
129- streaming
62130
63131## Semantic Type
64132
skills/nanodebug/api-extract.json +34 -0
……@@ -0,0 +1,34 @@
1{
2 "repo": "nanodebug",
3 "timestamp": "2026-01-16T23:56:42.590Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [],
13 "classes": [],
14 "functions": []
15 },
16 "readme": {
17 "content": "# nanodebug\n\nA tiny, zero overhead debugging utility.\n\n## Installation\n\n```sh\nnpm install nanodebug\n```\n\n## Usage\n\nBy default, nanodebug is completely noop:\n\n```js\nconst debug = require('nanodebug')()\n\n// Does nothing!\ndebug('You encountered a %s!', '🐛')\n\n// Also does nothing!\ndebug(() => { debug('It accepts functions as well') })\n\n// This... does nothing!\nawait debug(async () => { debug('They can even be async!') })\n```\n\nGo ahead and put some `debug`s in your code and enable nanodebug when :bug: hits the fan:\n\n```js\nconst debug = require('nanodebug')({ enabled: true })\n```\n\nBy default, `debug` will log to stderr using `console.error`, which is also why we were able to specify a formatting string in the examples above. To change this, pass a `log` function in the options:\n\n```js\nconst debug = require('nanodebug')({ log: console.log.bind(console) })\n```\n\nNow, `debug` will instead log to stdout using `console.log`.\n\n## License\n\nApache 2.0\n",
18 "sections": [
19 "intro",
20 "installation",
21 "usage",
22 "license"
23 ],
24 "hasApi": true,
25 "hasExamples": true,
26 "exampleCount": 3,
27 "examples": [
28 "## Usage\n\nBy default, nanodebug is completely noop:",
29 "Go ahead and put some `debug`s in your code and enable nanodebug when :bug: hits the fan:",
30 "By default, `debug` will log to stderr using `console.error`, which is also why we were able to specify a formatting string in the examples above. To change this, pass a `log` function in the options:"
31 ]
32 },
33 "patterns": []
34}
skills/nanodebug/skills.md +28 -2
……@@ -47,11 +47,37 @@ debug('You encountered a %s!', '🐛')
4747
4848## API Documentation
4949
50_To be enriched in Phase 1B with deep code analysis_
50_Extracted from README and code analysis_
51
52
53_See [api-extract.json](./api-extract.json) for detailed API information._
54
5155
5256## Usage Examples
5357
54_To be added in Phase 1B_
58_Extracted from README_
59
60### Example 1
61
62```javascript
63## Usage
64
65By default, nanodebug is completely noop:
66```
67
68### Example 2
69
70```javascript
71Go ahead and put some `debug`s in your code and enable nanodebug when :bug: hits the fan:
72```
73
74### Example 3
75
76```javascript
77By default, `debug` will log to stderr using `console.error`, which is also why we were able to specify a formatting string in the examples above. To change this, pass a `log` function in the options:
78```
79
80
5581
5682## Semantic Type
5783
skills/netpaste/api-extract.json +50 -0
……@@ -0,0 +1,50 @@
1{
2 "repo": "netpaste",
3 "timestamp": "2026-01-16T23:55:55.637Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js",
8 "type": "module"
9 }
10 },
11 "api": {
12 "file": "lib/index.mjs",
13 "exports": [],
14 "classes": [],
15 "functions": [
16 {
17 "name": "seed"
18 },
19 {
20 "name": "copy"
21 },
22 {
23 "name": "clear"
24 },
25 {
26 "name": "paste"
27 },
28 {
29 "name": "generateKeys"
30 }
31 ]
32 },
33 "readme": {
34 "content": "# netpaste\n\nCopy and paste over the DHT.\n\n## Usage\n\n```\n# generate a seed\nnetpaate seed\n\n# export default key\nnetpaste export\n> default: abc..123\n\n# import a key under test profile\nnetpaste import test 123..abc\n\n# copy to default profile\nnetpaste copy 'hello, world!'\n\n# paste from another profile\nnetpaste paste --profile test\n> 'some other text...'\n```\n\n## API\n\n#### `netpaste copy <data>`\n\nCopy data to the DHT.\n\n#### `netpaste paste`\n\nPaste data from the DHT.\n\n#### `netpaste seed`\n\nGenerate a seed.\n\n#### `netpaste import <profile> <key>`\n\nImport a key to a given profile.\n\n#### `netpaste export [profile]`\n\nExport a key.\n\n#### Options:\n\n`--profile | -p` -- specify a profile to use. defaults to `default`\n\nProfile keys are stored to `~/.netpaste/<profile>`.\n",
35 "sections": [
36 "intro",
37 "usage",
38 "api"
39 ],
40 "hasApi": true,
41 "hasExamples": true,
42 "exampleCount": 1,
43 "examples": [
44 "# generate a seed\nnetpaate seed\n\n# export default key\nnetpaste export\n> default: abc..123\n\n# import a key under test profile\nnetpaste import test 123..abc\n\n# copy to default profile\nnetpaste copy 'hello, world!'\n\n# paste from another profile\nnetpaste paste --profile test\n> 'some other text...'"
45 ]
46 },
47 "patterns": [
48 "cryptography"
49 ]
50}
skills/netpaste/skills.md +41 -2
……@@ -54,11 +54,50 @@ netpaste copy 'hello, world!'
5454
5555## API Documentation
5656
57_To be enriched in Phase 1B with deep code analysis_
57_Extracted from README and code analysis_
58
59### Functions
60
61- `seed()`
62- `copy()`
63- `clear()`
64- `paste()`
65- `generateKeys()`
66
67
68_See [api-extract.json](./api-extract.json) for detailed API information._
69
5870
5971## Usage Examples
6072
61_To be added in Phase 1B_
73_Extracted from README_
74
75### Example 1
76
77```javascript
78# generate a seed
79netpaate seed
80
81# export default key
82netpaste export
83> default: abc..123
84
85# import a key under test profile
86netpaste import test 123..abc
87
88# copy to default profile
89netpaste copy 'hello, world!'
90
91# paste from another profile
92netpaste paste --profile test
93> 'some other text...'
94```
95
96
97
98## P2P Patterns
99
100- cryptography
62101
63102## Semantic Type
64103
skills/network-block-device/api-extract.json +58 -0
……@@ -0,0 +1,58 @@
1{
2 "repo": "network-block-device",
3 "timestamp": "2026-01-16T23:56:26.840Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [
13 {
14 "type": "default",
15 "name": "class"
16 }
17 ],
18 "classes": [
19 {
20 "name": "NBDServer"
21 },
22 {
23 "name": "NBDProtocol"
24 }
25 ],
26 "functions": [
27 {
28 "name": "writeUint64BE"
29 },
30 {
31 "name": "readUint64BE"
32 },
33 {
34 "name": "noop"
35 },
36 {
37 "name": "noopPromise"
38 }
39 ]
40 },
41 "readme": {
42 "content": "# network-block-device\n\nNBD server implemention in JS focused around providing an API for implementing virtual block devices\n\n```\nnpm install -g network-block-device\n```\n\n## Usage\n\n```js\nconst NBDServer = require('network-block-device')\n\nconst blocks = new Map()\n\nconst server = new NBDServer({\n blockSize: 1024, // 1KB\n size: 16 * 1024 * 1024 * 1024, // 16GB block size\n async read (blockIndex) {\n // called when someone wants to read a block, you should return it\n // if no block exists for this index, return null/undefined\n return blocks.get(blockIndex)\n },\n async write (blockIndex, block) {\n // called when someone wants to write a block, you should store it\n blocks.set(blockIndex, block)\n },\n async del (blockIndex) {\n // called when someone wants to delete a block\n blocks.delete(blockIndex)\n }\n})\n\nserver.listen('/tmp/nbd')\n```\n\n# Example\n\n**1. Installation**\n\nFirst of all, you need to install the nbd package, I compiled the version from sourceforge: https://",
43 "sections": [
44 "intro",
45 "usage",
46 "dependencies"
47 ],
48 "hasApi": true,
49 "hasExamples": true,
50 "exampleCount": 8,
51 "examples": [
52 "npm install -g network-block-device",
53 "const NBDServer = require('network-block-device')\n\nconst blocks = new Map()\n\nconst server = new NBDServer({\n blockSize: 1024, // 1KB\n size: 16 * 1024 * 1024 * 1024, // 16GB block size\n async read (blockIndex) {\n // called when someone wants to read a block, you should return it\n // if no block exists for this index, return null/undefined\n return blocks.get(blockIndex)\n },\n async write (blockIndex, block) {\n // called when someone wants to write a block, you should store it\n blocks.set(blockIndex, block)\n },\n async del (blockIndex) {\n // called when someone wants to delete a block\n blocks.delete(blockIndex)\n }\n})\n\nserver.listen('/tmp/nbd')",
54 "npm install -g network-block-device"
55 ]
56 },
57 "patterns": []
58}
skills/network-block-device/skills.md +64 -2
……@@ -47,11 +47,73 @@ const server = new NBDServer({
4747
4848## API Documentation
4949
50_To be enriched in Phase 1B with deep code analysis_
50_Extracted from README and code analysis_
51
52### Classes
53
54- `NBDServer`
55- `NBDProtocol`
56
57### Functions
58
59- `writeUint64BE()`
60- `readUint64BE()`
61- `noop()`
62- `noopPromise()`
63
64### Exports
65
66- default: `class`
67
68
69_See [api-extract.json](./api-extract.json) for detailed API information._
70
5171
5272## Usage Examples
5373
54_To be added in Phase 1B_
74_Extracted from README_
75
76### Example 1
77
78```javascript
79npm install -g network-block-device
80```
81
82### Example 2
83
84```javascript
85const NBDServer = require('network-block-device')
86
87const blocks = new Map()
88
89const server = new NBDServer({
90 blockSize: 1024, // 1KB
91 size: 16 * 1024 * 1024 * 1024, // 16GB block size
92 async read (blockIndex) {
93 // called when someone wants to read a block, you should return it
94 // if no block exists for this index, return null/undefined
95 return blocks.get(blockIndex)
96 },
97 async write (blockIndex, block) {
98 // called when someone wants to write a block, you should store it
99 blocks.set(blockIndex, block)
100 },
101 async del (blockIndex) {
102 // called when someone wants to delete a block
103 blocks.delete(blockIndex)
104 }
105})
106
107server.listen('/tmp/nbd')
108```
109
110### Example 3
111
112```javascript
113npm install -g network-block-device
114```
115
116
55117
56118## Semantic Type
57119
skills/paparam/api-extract.json +135 -0
……@@ -0,0 +1,135 @@
1{
2 "repo": "paparam",
3 "timestamp": "2026-01-16T23:56:12.129Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [],
13 "classes": [
14 {
15 "name": "Parser"
16 },
17 {
18 "name": "Command"
19 },
20 {
21 "name": "Flag"
22 },
23 {
24 "name": "Arg"
25 },
26 {
27 "name": "Rest"
28 },
29 {
30 "name": "Data"
31 },
32 {
33 "name": "Validation"
34 },
35 {
36 "name": "Bail"
37 }
38 ],
39 "functions": [
40 {
41 "name": "argv"
42 },
43 {
44 "name": "command"
45 },
46 {
47 "name": "hiddenCommand"
48 },
49 {
50 "name": "bail"
51 },
52 {
53 "name": "sloppy"
54 },
55 {
56 "name": "summary"
57 },
58 {
59 "name": "description"
60 },
61 {
62 "name": "header"
63 },
64 {
65 "name": "footer"
66 },
67 {
68 "name": "hiddenFlag"
69 },
70 {
71 "name": "flag"
72 },
73 {
74 "name": "rest"
75 },
76 {
77 "name": "arg"
78 },
79 {
80 "name": "validate"
81 },
82 {
83 "name": "unindent"
84 },
85 {
86 "name": "trimLine"
87 },
88 {
89 "name": "snakeToCamel"
90 },
91 {
92 "name": "parseFlag"
93 },
94 {
95 "name": "trimFlag"
96 },
97 {
98 "name": "createBail"
99 },
100 {
101 "name": "defaultFlag"
102 },
103 {
104 "name": "dedent"
105 },
106 {
107 "name": "runValidation"
108 },
109 {
110 "name": "runSync"
111 },
112 {
113 "name": "runAsync"
114 }
115 ]
116 },
117 "readme": {
118 "content": "# paparam\n\nStrict and fair parameter papa\n\n```\nnpm install paparam\n```\n\n## Usage\n\n### Simple Command\n\nUse `paparam` to build a simple cli parser. Here is an example app invocation from the command line:\n\n```bash\n> app -i uuid-284h43j -b peer1 -b peer2 --storage /tmp/file/place link-32832uifsdjsfda\n```\n\nTo handle this invocation, here is the `paparam` code\n\n```js\nimport { header, summary, command, flag, arg } from 'paparam'\nconst cmd = command(\n 'run',\n header('A simple example app'),\n summary('Example app that uses a roomLink to join a room and do work.'),\n arg('<roomLink>', 'the room link key'),\n flag('--uuid|-i [uuid]', 'The specific schema uuid to use'),\n flag('--user|-u [user]', 'The user name associated with the entry'),\n flag('--storage|-s [storage]', 'Path to storage directory'),\n flag('--blind|-b [blind]', 'Blind peer keys (can be specified multiple times)').multiple()\n)\nconst program = cmd.parse() // default args: process.argv.slice(2)\nif (program === null) throw new E",
119 "sections": [
120 "intro",
121 "usage",
122 "api",
123 "license"
124 ],
125 "hasApi": true,
126 "hasExamples": true,
127 "exampleCount": 6,
128 "examples": [
129 "npm install paparam",
130 "To handle this invocation, here is the `paparam` code",
131 "### Composed Commands\n\nUse `paparam` exports to compose commands together:"
132 ]
133 },
134 "patterns": []
135}
skills/paparam/skills.md +67 -2
……@@ -47,11 +47,76 @@ To handle this invocation, here is the `paparam` code
4747
4848## API Documentation
4949
50_To be enriched in Phase 1B with deep code analysis_
50_Extracted from README and code analysis_
51
52### Classes
53
54- `Parser`
55- `Command`
56- `Flag`
57- `Arg`
58- `Rest`
59- `Data`
60- `Validation`
61- `Bail`
62
63### Functions
64
65- `argv()`
66- `command()`
67- `hiddenCommand()`
68- `bail()`
69- `sloppy()`
70- `summary()`
71- `description()`
72- `header()`
73- `footer()`
74- `hiddenFlag()`
75- `flag()`
76- `rest()`
77- `arg()`
78- `validate()`
79- `unindent()`
80- `trimLine()`
81- `snakeToCamel()`
82- `parseFlag()`
83- `trimFlag()`
84- `createBail()`
85- `defaultFlag()`
86- `dedent()`
87- `runValidation()`
88- `runSync()`
89- `runAsync()`
90
91
92_See [api-extract.json](./api-extract.json) for detailed API information._
93
5194
5295## Usage Examples
5396
54_To be added in Phase 1B_
97_Extracted from README_
98
99### Example 1
100
101```javascript
102npm install paparam
103```
104
105### Example 2
106
107```javascript
108To handle this invocation, here is the `paparam` code
109```
110
111### Example 3
112
113```javascript
114### Composed Commands
115
116Use `paparam` exports to compose commands together:
117```
118
119
55120
56121## Semantic Type
57122
skills/pear-api/api-extract.json +44 -0
……@@ -0,0 +1,44 @@
1{
2 "repo": "pear-api",
3 "timestamp": "2026-01-16T23:56:42.974Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [
13 {
14 "type": "default",
15 "name": "API"
16 }
17 ],
18 "classes": [
19 {
20 "name": "API"
21 },
22 {
23 "name": "DeprecatedWorker"
24 }
25 ],
26 "functions": [
27 {
28 "name": "noop"
29 }
30 ]
31 },
32 "readme": {
33 "content": "# pear-api\n\n> Pear API Base Class\n\n## `pear-api`\n\nSupplies the API base for the Pear API (https://docs.pears.com/reference/api).\n\nFor extending from for User Interface integrations.\n\n# LICENSE\n\nApache 2.0\n",
34 "sections": [
35 "intro",
36 "`pear-api`"
37 ],
38 "hasApi": false,
39 "hasExamples": false,
40 "exampleCount": 0,
41 "examples": []
42 },
43 "patterns": []
44}
skills/pear-api/skills.md +18 -1
……@@ -55,7 +55,24 @@ Apache 2.0
5555
5656## API Documentation
5757
58_To be enriched in Phase 1B with deep code analysis_
58_Extracted from code analysis_
59
60### Classes
61
62- `API`
63- `DeprecatedWorker`
64
65### Functions
66
67- `noop()`
68
69### Exports
70
71- default: `API`
72
73
74_See [api-extract.json](./api-extract.json) for detailed API information._
75
5976
6077## Usage Examples
6178
skills/pear-appling/api-extract.json +22 -0
……@@ -0,0 +1,22 @@
1{
2 "repo": "pear-appling",
3 "timestamp": "2026-01-16T23:55:44.990Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {}
7 },
8 "api": {},
9 "readme": {
10 "content": "# pear-appling\n\nTemplate repository for creating Pear applings.\n\n## Building\n\nReplace the placeholders in [`CMakeLists.txt`](CMakeLists.txt) with appropriate values and then build the appling:\n\n```console\nnpm i -g bare-make\nnpm i\nbare-make generate\nbare-make build\n```\n\n## License\n\nApache-2.0\n",
11 "sections": [
12 "intro",
13 "building",
14 "license"
15 ],
16 "hasApi": false,
17 "hasExamples": false,
18 "exampleCount": 0,
19 "examples": []
20 },
21 "patterns": []
22}
skills/pear-appling/skills.md +5 -1
……@@ -42,7 +42,11 @@ Apache-2.0
4242
4343## API Documentation
4444
45_To be enriched in Phase 1B with deep code analysis_
45_Extracted from code analysis_
46
47
48_See [api-extract.json](./api-extract.json) for detailed API information._
49
4650
4751## Usage Examples
4852
skills/pear-desktop/api-extract.json +33 -0
……@@ -0,0 +1,33 @@
1{
2 "repo": "pear-desktop",
3 "timestamp": "2026-01-16T23:55:57.339Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "type": "module"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [],
13 "classes": [],
14 "functions": []
15 },
16 "readme": {
17 "content": "# Pear Desktop\n\n> The Pear Runtime Pear Desktop Application\n\nPear Desktop is the [pear://runtime](pear://runtime) Application.\n\n## Usage\n\n```\npear run pear://runtime\n```\n\n## Development\n\n```\ngit clone https://github.com/holepunchto/pear-desktop\ncd pear-desktop\npear run --dev .\n```\n\n## License\n\nApache-2.0\n",
18 "sections": [
19 "intro",
20 "usage",
21 "development",
22 "license"
23 ],
24 "hasApi": true,
25 "hasExamples": true,
26 "exampleCount": 2,
27 "examples": [
28 "pear run pear://runtime",
29 "git clone https://github.com/holepunchto/pear-desktop\ncd pear-desktop\npear run --dev ."
30 ]
31 },
32 "patterns": []
33}
skills/pear-desktop/skills.md +22 -2
……@@ -58,11 +58,31 @@ pear run --dev .
5858
5959## API Documentation
6060
61_To be enriched in Phase 1B with deep code analysis_
61_Extracted from README and code analysis_
62
63
64_See [api-extract.json](./api-extract.json) for detailed API information._
65
6266
6367## Usage Examples
6468
65_To be added in Phase 1B_
69_Extracted from README_
70
71### Example 1
72
73```javascript
74pear run pear://runtime
75```
76
77### Example 2
78
79```javascript
80git clone https://github.com/holepunchto/pear-desktop
81cd pear-desktop
82pear run --dev .
83```
84
85
6686
6787## Semantic Type
6888
skills/pear-electron/api-extract.json +47 -0
……@@ -0,0 +1,47 @@
1{
2 "repo": "pear-electron",
3 "timestamp": "2026-01-16T23:56:12.528Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [
13 {
14 "type": "default",
15 "name": "Pear"
16 }
17 ],
18 "classes": [],
19 "functions": []
20 },
21 "readme": {
22 "content": "# pear-electron\n\n> Pear User-Interface Library for Electron\n\n## Installation <a name=\"installation\"></a>\n\n```sh\nnpm install pear-electron\n```\n\n## Usage\n\nEnsure the `package.json` `pear` configuration object contains a `pre` field pointing to `pear-electron/pre`.\n\n```js\n{\n \"pear\": {\n \"pre\": \"pear-electron/pre\"\n }\n}\n```\n\nInstantiate a `pear-electron` runtime instance from a Pear Application's entrypoint JavaScript file:\n\n```js\nimport Runtime from 'pear-electron'\nimport Bridge from 'pear-bridge'\n\nconst runtime = new Runtime()\n\nconst bridge = new Bridge()\nawait bridge.ready()\n\nconst pipe = runtime.start({ bridge })\nPear.teardown(() => pipe.end())\n```\n\nCall `runtime.start` to open the UI.\n\n> NOTE: naming the import `Runtime` instead of `PearElectron` is intentional, for two reasons. The `pear-electron` import resolves to a runtime start library or a User Interface library depending on environment and using `Runtime` and `ui` as assigned names means switching out `pear-electron` with an",
23 "sections": [
24 "intro",
25 "installation <a name=\"installation\"></a>",
26 "usage",
27 "application configuration <a name=\"application-configuration\"></a>",
28 "initialization api <a name=\"initialization-api\"></a>",
29 "user-interface api <a name=\"user-interface-api\"></a>",
30 "graphical user interface options <a name=\"pear-gui\"></a>",
31 "web apis <a name=\"web-apis\"></a>",
32 "development <a name=\"development\"></a>"
33 ],
34 "hasApi": true,
35 "hasExamples": true,
36 "exampleCount": 16,
37 "examples": [
38 "## Usage\n\nEnsure the `package.json` `pear` configuration object contains a `pre` field pointing to `pear-electron/pre`.",
39 "Instantiate a `pear-electron` runtime instance from a Pear Application's entrypoint JavaScript file:",
40 "Call `runtime.start` to open the UI.\n\n> NOTE: naming the import `Runtime` instead of `PearElectron` is intentional, for two reasons. The `pear-electron` import resolves to a runtime start library or a User Interface library depending on environment and using `Runtime` and `ui` as assigned names means switching out `pear-electron` with an equivalent alternative only involves changing the two `pear-electron` import specifiers.\n\nGiven an `index.html` containing `<script src=\"./app.js\"></script>` in `app.js` import `pear-electron` User Interface API:"
41 ]
42 },
43 "patterns": [
44 "binary-encoding",
45 "streaming"
46 ]
47}
skills/pear-electron/skills.md +41 -2
……@@ -78,11 +78,50 @@ Ensure the `package.json` `pear` configuration object contains a `pre` field poi
7878
7979## API Documentation
8080
81_To be enriched in Phase 1B with deep code analysis_
81_Extracted from README and code analysis_
82
83### Exports
84
85- default: `Pear`
86
87
88_See [api-extract.json](./api-extract.json) for detailed API information._
89
8290
8391## Usage Examples
8492
85_To be added in Phase 1B_
93_Extracted from README_
94
95### Example 1
96
97```javascript
98## Usage
99
100Ensure the `package.json` `pear` configuration object contains a `pre` field pointing to `pear-electron/pre`.
101```
102
103### Example 2
104
105```javascript
106Instantiate a `pear-electron` runtime instance from a Pear Application's entrypoint JavaScript file:
107```
108
109### Example 3
110
111```javascript
112Call `runtime.start` to open the UI.
113
114> NOTE: naming the import `Runtime` instead of `PearElectron` is intentional, for two reasons. The `pear-electron` import resolves to a runtime start library or a User Interface library depending on environment and using `Runtime` and `ui` as assigned names means switching out `pear-electron` with an equivalent alternative only involves changing the two `pear-electron` import specifiers.
115
116Given an `index.html` containing `<script src="./app.js"></script>` in `app.js` import `pear-electron` User Interface API:
117```
118
119
120
121## P2P Patterns
122
123- binary-encoding
124- streaming
86125
87126## Semantic Type
88127
skills/protomux-rpc/api-extract.json +52 -0
……@@ -0,0 +1,52 @@
1{
2 "repo": "protomux-rpc",
3 "timestamp": "2026-01-16T23:56:13.429Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js",
8 "exports": {
9 "./package": "./package.json",
10 ".": "./index.js",
11 "./errors": "./lib/errors.js"
12 }
13 }
14 },
15 "api": {
16 "file": "index.js",
17 "exports": [
18 {
19 "type": "default",
20 "name": "class"
21 }
22 ],
23 "classes": [
24 {
25 "name": "ProtomuxRPC"
26 }
27 ],
28 "functions": []
29 },
30 "readme": {
31 "content": "# Protomux RPC\n\nSimple RPC over [Protomux](https://github.com/mafintosh/protomux) channels.\n\n```sh\nnpm install protomux-rpc\n```\n\n## Usage\n\nOn the server side:\n\n```js\nconst ProtomuxRPC = require('protomux-rpc')\n\nconst rpc = new ProtomuxRPC(stream)\n\nrpc.respond('echo', (req) => req)\n```\n\nOn the client side:\n\n```js\nconst ProtomuxRPC = require('protomux-rpc')\n\nconst rpc = new ProtomuxRPC(stream)\n\nawait rpc.request('echo', Buffer.from('hello world')))\n// <Buffer 'hello world'>\n```\n\n## API\n\n#### `const rpc = new ProtomuxRPC(stream[, options])`\n\nConstruct a new RPC channel from a framed stream.\n\nOptions include:\n\n```js\n{\n // Optional binary ID to identify this RPC channel\n id: buffer,\n // Optional protocol name\n protocol: 'protomux-rpc',\n // Optional default value encoding\n valueEncoding: encoding,\n // Optional handshake\n handshake: buffer,\n // Optional encoding for the handshake\n handshakeEncoding: encoding\n}\n```\n\n#### `const rpc = new ProtomuxRPC(mux[, options])`\n\nConstruct a new ",
32 "sections": [
33 "intro",
34 "usage",
35 "api",
36 "protocol",
37 "license"
38 ],
39 "hasApi": true,
40 "hasExamples": true,
41 "exampleCount": 5,
42 "examples": [
43 "## Usage\n\nOn the server side:",
44 "On the client side:",
45 "## API\n\n#### `const rpc = new ProtomuxRPC(stream[, options])`\n\nConstruct a new RPC channel from a framed stream.\n\nOptions include:"
46 ]
47 },
48 "patterns": [
49 "stream-multiplexing",
50 "binary-encoding"
51 ]
52}
skills/protomux-rpc/skills.md +47 -2
……@@ -60,11 +60,56 @@ rpc.respond('echo', (req) => req)
6060
6161## API Documentation
6262
63_To be enriched in Phase 1B with deep code analysis_
63_Extracted from README and code analysis_
64
65### Classes
66
67- `ProtomuxRPC`
68
69### Exports
70
71- default: `class`
72
73
74_See [api-extract.json](./api-extract.json) for detailed API information._
75
6476
6577## Usage Examples
6678
67_To be added in Phase 1B_
79_Extracted from README_
80
81### Example 1
82
83```javascript
84## Usage
85
86On the server side:
87```
88
89### Example 2
90
91```javascript
92On the client side:
93```
94
95### Example 3
96
97```javascript
98## API
99
100#### `const rpc = new ProtomuxRPC(stream[, options])`
101
102Construct a new RPC channel from a framed stream.
103
104Options include:
105```
106
107
108
109## P2P Patterns
110
111- stream-multiplexing
112- binary-encoding
68113
69114## Semantic Type
70115
skills/quickbit-universal/api-extract.json +37 -0
……@@ -0,0 +1,37 @@
1{
2 "repo": "quickbit-universal",
3 "timestamp": "2026-01-16T23:56:13.803Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [
13 {
14 "type": "default",
15 "name": "fallback"
16 }
17 ],
18 "classes": [],
19 "functions": []
20 },
21 "readme": {
22 "content": "# quickbit-universal\n\nUniversal wrapper for https://github.com/holepunchto/libquickbit with a JavaScript fallback.\n\n```sh\nnpm install quickbit-universal\n```\n\n## Usage\n\n```js\nconst { get, set, findFirst } = require('quickbit-native')\n\nconst field = Buffer.alloc(256) // 2048 bits\n\nconst changed = set(field, 1000)\n// true\n\nget(field, 1000)\n// true\n\nfindFirst(field, true)\n// 1000\n```\n\n## API\n\n#### `const b = get(field, bit)`\n\nGet the given bit, which will either be `true` (set) or `false` (unset).\n\n#### `const changed = set(field, bit[, value])`\n\nSet the given bit to `value`, which defaults to `true`. Returns `true` if the bit changed, otherwise `false`.\n\n#### `field = fill(field, value[, start[, end]])`\n\nFill the given bit range with `value`. `start` defaults to `0` and `end` defaults to the bit length of the field. Returns the modified field.\n\n#### `clear(field, chunk)`\n\nClear the bits from `field` that are set in the `{ field, offset }` chunk.\n\n#### `const i = findFirst(field, value[, p",
23 "sections": [
24 "intro",
25 "usage",
26 "api",
27 "license"
28 ],
29 "hasApi": true,
30 "hasExamples": true,
31 "exampleCount": 1,
32 "examples": [
33 "## Usage"
34 ]
35 },
36 "patterns": []
37}
skills/quickbit-universal/skills.md +18 -2
……@@ -52,11 +52,27 @@ get(field, 1000)
5252
5353## API Documentation
5454
55_To be enriched in Phase 1B with deep code analysis_
55_Extracted from README and code analysis_
56
57### Exports
58
59- default: `fallback`
60
61
62_See [api-extract.json](./api-extract.json) for detailed API information._
63
5664
5765## Usage Examples
5866
59_To be added in Phase 1B_
67_Extracted from README_
68
69### Example 1
70
71```javascript
72## Usage
73```
74
75
6076
6177## Semantic Type
6278
skills/same-object/api-extract.json +50 -0
……@@ -0,0 +1,50 @@
1{
2 "repo": "same-object",
3 "timestamp": "2026-01-16T23:56:27.629Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [
13 {
14 "type": "default",
15 "name": "same"
16 }
17 ],
18 "classes": [],
19 "functions": [
20 {
21 "name": "same"
22 },
23 {
24 "name": "sameObject"
25 },
26 {
27 "name": "getType"
28 }
29 ]
30 },
31 "readme": {
32 "content": "# same-object\n\nDetermine if two objects are deeply equal\n\n```\nnpm install same-object\n```\n\nSupports circular references, Maps, Symbols, etc.\n\nAims for ~99% compatibility with `deep-equal` or `assert.deepEqual` without requiring native dependencies.\\\nUseful for JavaScript runtimes without native Node modules like `util`, etc.\n\n## Usage\n\n```js\nconst sameObject = require('same-object')\n\nconsole.log(sameObject(1, '1')) // true\nconsole.log(sameObject(1, '1', { strict: true })) // false\n\nconsole.log(sameObject({ a: 1 }, { a: 1 })) // true\nconsole.log(sameObject({ a: 1 }, { a: 1, b: 2 })) // false\n\nconsole.log(sameObject(new Set(['a', 1, 'b', 2]), new Set(['b', 2, 'a', 1]))) // true\n```\n\n## API\n\n#### `const bool = sameObject(a, b, [options])`\n\nCompares `a` and `b`, returning whether they are equal or not.\n\nAvailable `options`:\n\n```js\n{\n strict: false\n}\n```\n\nLoosely comparison (`==`) by default.\\\nUse `{ strict: true }` for a stronger equality check (`===`).\n\n## References\n\nThe source code is ",
33 "sections": [
34 "intro",
35 "usage",
36 "api",
37 "references",
38 "license"
39 ],
40 "hasApi": true,
41 "hasExamples": true,
42 "exampleCount": 3,
43 "examples": [
44 "npm install same-object",
45 "const sameObject = require('same-object')\n\nconsole.log(sameObject(1, '1')) // true\nconsole.log(sameObject(1, '1', { strict: true })) // false\n\nconsole.log(sameObject({ a: 1 }, { a: 1 })) // true\nconsole.log(sameObject({ a: 1 }, { a: 1, b: 2 })) // false\n\nconsole.log(sameObject(new Set(['a', 1, 'b', 2]), new Set(['b', 2, 'a', 1]))) // true",
46 "{\n strict: false\n}"
47 ]
48 },
49 "patterns": []
50}
skills/same-object/skills.md +46 -2
……@@ -47,11 +47,55 @@ console.log(sameObject(1, '1', { strict: true })) // false
4747
4848## API Documentation
4949
50_To be enriched in Phase 1B with deep code analysis_
50_Extracted from README and code analysis_
51
52### Functions
53
54- `same()`
55- `sameObject()`
56- `getType()`
57
58### Exports
59
60- default: `same`
61
62
63_See [api-extract.json](./api-extract.json) for detailed API information._
64
5165
5266## Usage Examples
5367
54_To be added in Phase 1B_
68_Extracted from README_
69
70### Example 1
71
72```javascript
73npm install same-object
74```
75
76### Example 2
77
78```javascript
79const sameObject = require('same-object')
80
81console.log(sameObject(1, '1')) // true
82console.log(sameObject(1, '1', { strict: true })) // false
83
84console.log(sameObject({ a: 1 }, { a: 1 })) // true
85console.log(sameObject({ a: 1 }, { a: 1, b: 2 })) // false
86
87console.log(sameObject(new Set(['a', 1, 'b', 2]), new Set(['b', 2, 'a', 1]))) // true
88```
89
90### Example 3
91
92```javascript
93{
94 strict: false
95}
96```
97
98
5599
56100## Semantic Type
57101
skills/scope-lock/api-extract.json +45 -0
……@@ -0,0 +1,45 @@
1{
2 "repo": "scope-lock",
3 "timestamp": "2026-01-16T23:55:51.638Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [
13 {
14 "type": "default",
15 "name": "class"
16 }
17 ],
18 "classes": [
19 {
20 "name": "ScopeLock"
21 }
22 ],
23 "functions": [
24 {
25 "name": "setTmpResolve"
26 }
27 ]
28 },
29 "readme": {
30 "content": "# scope-lock\n\nSome concurrency semantics around entering scopes\n\n```\nnpm install scope-lock\n```\n\n## Usage\n\n```js\nconst ScopeLock = require('scope-lock')\n\n// normal lock runs all entries in the lock list\nconst l = new ScopeLock()\n\nawait l.lock()\n// ... do your thing\nl.unlock()\n\n// debounced lock runs first and last entry in the lock list\nconst d = new ScopeLock({ debounce: true }) // debounced lock\n\nif (await d.lock()) {\n // if we get lock do our thing\n}\n\n// wait for all current work to drain\nawait d.flush()\n```\n\n## License\n\nApache-2.0\n",
31 "sections": [
32 "intro",
33 "usage",
34 "license"
35 ],
36 "hasApi": true,
37 "hasExamples": true,
38 "exampleCount": 2,
39 "examples": [
40 "npm install scope-lock",
41 "const ScopeLock = require('scope-lock')\n\n// normal lock runs all entries in the lock list\nconst l = new ScopeLock()\n\nawait l.lock()\n// ... do your thing\nl.unlock()\n\n// debounced lock runs first and last entry in the lock list\nconst d = new ScopeLock({ debounce: true }) // debounced lock\n\nif (await d.lock()) {\n // if we get lock do our thing\n}\n\n// wait for all current work to drain\nawait d.flush()"
42 ]
43 },
44 "patterns": []
45}
skills/scope-lock/skills.md +49 -2
……@@ -47,11 +47,58 @@ l.unlock()
4747
4848## API Documentation
4949
50_To be enriched in Phase 1B with deep code analysis_
50_Extracted from README and code analysis_
51
52### Classes
53
54- `ScopeLock`
55
56### Functions
57
58- `setTmpResolve()`
59
60### Exports
61
62- default: `class`
63
64
65_See [api-extract.json](./api-extract.json) for detailed API information._
66
5167
5268## Usage Examples
5369
54_To be added in Phase 1B_
70_Extracted from README_
71
72### Example 1
73
74```javascript
75npm install scope-lock
76```
77
78### Example 2
79
80```javascript
81const ScopeLock = require('scope-lock')
82
83// normal lock runs all entries in the lock list
84const l = new ScopeLock()
85
86await l.lock()
87// ... do your thing
88l.unlock()
89
90// debounced lock runs first and last entry in the lock list
91const d = new ScopeLock({ debounce: true }) // debounced lock
92
93if (await d.lock()) {
94 // if we get lock do our thing
95}
96
97// wait for all current work to drain
98await d.flush()
99```
100
101
55102
56103## Semantic Type
57104
skills/secure-prompt/api-extract.json +51 -0
……@@ -0,0 +1,51 @@
1{
2 "repo": "secure-prompt",
3 "timestamp": "2026-01-16T23:56:27.978Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [
13 {
14 "type": "default",
15 "name": "function"
16 }
17 ],
18 "classes": [],
19 "functions": [
20 {
21 "name": "prompt"
22 },
23 {
24 "name": "init"
25 },
26 {
27 "name": "doPrompt"
28 },
29 {
30 "name": "done"
31 }
32 ]
33 },
34 "readme": {
35 "content": "# secure-prompt\n\nSecurely prompt stdio using secure buffers\n\n```\nnpm install secure-prompt\n```\n\n## Usage\n\n``` js\nconst prompt = require('secure-prompt')\nconst buffer = await prompt() // user input in buffer\n\nconsole.log(buffer) // will crash\nsodium.sodium_mprotect_readonly(buffer)\nconsole.log(buffer) // prints the buffer\n```\n\n## License\n\nApache-2.0\n",
36 "sections": [
37 "intro",
38 "usage",
39 "license"
40 ],
41 "hasApi": true,
42 "hasExamples": true,
43 "exampleCount": 1,
44 "examples": [
45 "npm install secure-prompt"
46 ]
47 },
48 "patterns": [
49 "cryptography"
50 ]
51}
skills/secure-prompt/skills.md +29 -2
……@@ -51,11 +51,38 @@ console.log(buffer) // prints the buffer
5151
5252## API Documentation
5353
54_To be enriched in Phase 1B with deep code analysis_
54_Extracted from README and code analysis_
55
56### Functions
57
58- `prompt()`
59- `init()`
60- `doPrompt()`
61- `done()`
62
63### Exports
64
65- default: `function`
66
67
68_See [api-extract.json](./api-extract.json) for detailed API information._
69
5570
5671## Usage Examples
5772
58_To be added in Phase 1B_
73_Extracted from README_
74
75### Example 1
76
77```javascript
78npm install secure-prompt
79```
80
81
82
83## P2P Patterns
84
85- cryptography
5986
6087## Semantic Type
6188
skills/semifies/api-extract.json +67 -0
……@@ -0,0 +1,67 @@
1{
2 "repo": "semifies",
3 "timestamp": "2026-01-16T23:56:03.220Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [
13 {
14 "type": "default",
15 "name": "satisfies"
16 }
17 ],
18 "classes": [],
19 "functions": [
20 {
21 "name": "satisfies"
22 },
23 {
24 "name": "checkAll"
25 },
26 {
27 "name": "match"
28 },
29 {
30 "name": "compile"
31 },
32 {
33 "name": "inc"
34 },
35 {
36 "name": "num"
37 },
38 {
39 "name": "numOrString"
40 },
41 {
42 "name": "ok"
43 },
44 {
45 "name": "parse"
46 },
47 {
48 "name": "test"
49 }
50 ]
51 },
52 "readme": {
53 "content": "# semifies\n\nSlimmed down satisfies from semver\n\n```\nnpm install semifies\n```\n\n## Usage\n\n``` js\nconst semifies = require('semifies')\n\n// same-ish as semver.satisfies\n\nconsole.log(semifies('1.5.0', '^1.3.0')) // true\nconsole.log(semifies('2.0.0', '^1.3.0')) // false\nconsole.log(semifies('2.0.0', '^1.3.0 || ~2.0.0')) // true\n```\n\nPasses the test fixtures from semver\n\n## License\n\nApache-2.0\n",
54 "sections": [
55 "intro",
56 "usage",
57 "license"
58 ],
59 "hasApi": true,
60 "hasExamples": true,
61 "exampleCount": 1,
62 "examples": [
63 "npm install semifies"
64 ]
65 },
66 "patterns": []
67}
skills/semifies/skills.md +31 -2
……@@ -47,11 +47,40 @@ console.log(semifies('2.0.0', '^1.3.0 || ~2.0.0')) // true
4747
4848## API Documentation
4949
50_To be enriched in Phase 1B with deep code analysis_
50_Extracted from README and code analysis_
51
52### Functions
53
54- `satisfies()`
55- `checkAll()`
56- `match()`
57- `compile()`
58- `inc()`
59- `num()`
60- `numOrString()`
61- `ok()`
62- `parse()`
63- `test()`
64
65### Exports
66
67- default: `satisfies`
68
69
70_See [api-extract.json](./api-extract.json) for detailed API information._
71
5172
5273## Usage Examples
5374
54_To be added in Phase 1B_
75_Extracted from README_
76
77### Example 1
78
79```javascript
80npm install semifies
81```
82
83
5584
5685## Semantic Type
5786
skills/serve-drive/api-extract.json +73 -0
……@@ -0,0 +1,73 @@
1{
2 "repo": "serve-drive",
3 "timestamp": "2026-01-16T23:55:51.984Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [
13 {
14 "type": "default",
15 "name": "class"
16 }
17 ],
18 "classes": [
19 {
20 "name": "ServeDrive"
21 }
22 ],
23 "functions": [
24 {
25 "name": "onclose"
26 },
27 {
28 "name": "listen"
29 },
30 {
31 "name": "done"
32 },
33 {
34 "name": "nool"
35 },
36 {
37 "name": "noop"
38 },
39 {
40 "name": "getHost"
41 },
42 {
43 "name": "parseURL"
44 },
45 {
46 "name": "encodePathName"
47 },
48 {
49 "name": "decodePathName"
50 }
51 ]
52 },
53 "readme": {
54 "content": "# serve-drive\n\nHTTP drive server for entries delivery. Auto detects types like video, images, etc\n\n```\nnpm i serve-drive\n```\n\n## Usage\n\nSingle drive:\n```js\nconst ServeDrive = require('serve-drive')\nconst Localdrive = require('localdrive')\n\nconst drive = new Localdrive('./my-folder')\nawait drive.put('/index.html', Buffer.from('hi'))\n\nconst serve = new ServeDrive({ get: ({ key, filename, version }) => drive })\nawait serve.ready()\nconsole.log('Listening on http://localhost:' + serve.address().port)\n\n// Try visiting http://localhost:49833/index.html\n```\n\nMultiple drives:\n```js\nconst Localdrive = require('localdrive')\nconst Hyperdrive = require('hyperdrive')\nconst Corestore = require('corestore')\n\nconst drive1 = new Localdrive('./my-folder-a')\nconst drive2 = new Hyperdrive(new Corestore('./store1'))\n\nawait drive1.put('/index.html', Buffer.from('a'))\nawait drive2.put('/index.html', Buffer.from('b'))\n\nconst serve = new ServeDrive({\n get ({ key, filename, version }) {\n if (key === null) re",
55 "sections": [
56 "intro",
57 "usage",
58 "api",
59 "license"
60 ],
61 "hasApi": true,
62 "hasExamples": true,
63 "exampleCount": 5,
64 "examples": [
65 "npm i serve-drive",
66 "const ServeDrive = require('serve-drive')\nconst Localdrive = require('localdrive')\n\nconst drive = new Localdrive('./my-folder')\nawait drive.put('/index.html', Buffer.from('hi'))\n\nconst serve = new ServeDrive({ get: ({ key, filename, version }) => drive })\nawait serve.ready()\nconsole.log('Listening on http://localhost:' + serve.address().port)\n\n// Try visiting http://localhost:49833/index.html",
67 "const Localdrive = require('localdrive')\nconst Hyperdrive = require('hyperdrive')\nconst Corestore = require('corestore')\n\nconst drive1 = new Localdrive('./my-folder-a')\nconst drive2 = new Hyperdrive(new Corestore('./store1'))\n\nawait drive1.put('/index.html', Buffer.from('a'))\nawait drive2.put('/index.html', Buffer.from('b'))\n\nconst serve = new ServeDrive({\n get ({ key, filename, version }) {\n if (key === null) return drive1 // Default\n if (key.equals(drive2.key)) return drive2\n return null\n }\n})\n\nawait serve.ready()\nconsole.log('Listening on http://localhost:' + serve.address().port)\n\n// Try visiting http://localhost:49833/index.html?key=<id-or-key>"
68 ]
69 },
70 "patterns": [
71 "streaming"
72 ]
73}
skills/serve-drive/skills.md +81 -2
……@@ -60,11 +60,90 @@ await serve.ready()
6060
6161## API Documentation
6262
63_To be enriched in Phase 1B with deep code analysis_
63_Extracted from README and code analysis_
64
65### Classes
66
67- `ServeDrive`
68
69### Functions
70
71- `onclose()`
72- `listen()`
73- `done()`
74- `nool()`
75- `noop()`
76- `getHost()`
77- `parseURL()`
78- `encodePathName()`
79- `decodePathName()`
80
81### Exports
82
83- default: `class`
84
85
86_See [api-extract.json](./api-extract.json) for detailed API information._
87
6488
6589## Usage Examples
6690
67_To be added in Phase 1B_
91_Extracted from README_
92
93### Example 1
94
95```javascript
96npm i serve-drive
97```
98
99### Example 2
100
101```javascript
102const ServeDrive = require('serve-drive')
103const Localdrive = require('localdrive')
104
105const drive = new Localdrive('./my-folder')
106await drive.put('/index.html', Buffer.from('hi'))
107
108const serve = new ServeDrive({ get: ({ key, filename, version }) => drive })
109await serve.ready()
110console.log('Listening on http://localhost:' + serve.address().port)
111
112// Try visiting http://localhost:49833/index.html
113```
114
115### Example 3
116
117```javascript
118const Localdrive = require('localdrive')
119const Hyperdrive = require('hyperdrive')
120const Corestore = require('corestore')
121
122const drive1 = new Localdrive('./my-folder-a')
123const drive2 = new Hyperdrive(new Corestore('./store1'))
124
125await drive1.put('/index.html', Buffer.from('a'))
126await drive2.put('/index.html', Buffer.from('b'))
127
128const serve = new ServeDrive({
129 get ({ key, filename, version }) {
130 if (key === null) return drive1 // Default
131 if (key.equals(drive2.key)) return drive2
132 return null
133 }
134})
135
136await serve.ready()
137console.log('Listening on http://localhost:' + serve.address().port)
138
139// Try visiting http://localhost:49833/index.html?key=<id-or-key>
140```
141
142
143
144## P2P Patterns
145
146- streaming
68147
69148## Semantic Type
70149
skills/slab-hunter/api-extract.json +55 -0
……@@ -0,0 +1,55 @@
1{
2 "repo": "slab-hunter",
3 "timestamp": "2026-01-16T23:55:52.323Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [
13 {
14 "type": "default",
15 "name": "setupSlabHunter"
16 }
17 ],
18 "classes": [
19 {
20 "name": "LeakOverview"
21 }
22 ],
23 "functions": [
24 {
25 "name": "monkeyPatchBuffer"
26 },
27 {
28 "name": "allocUnsafeMonkeyPatch"
29 },
30 {
31 "name": "getLeakOverview"
32 },
33 {
34 "name": "setupSlabHunter"
35 }
36 ]
37 },
38 "readme": {
39 "content": "# Slab Hunter\n\nHunt down Buffer slabs which are retaining more memory than they should.\n\nWarning: this is a debugging tool, do not use it in production code.\n\nIt detects two behaviours indicative of potential memory leaks:\n- Slab retainers: long-lived buffers which are part of a slab.\n - A typical leak here is caused by using `Buffer.allocUnsafe()` or `Buffer.from()` for long-lived buffers.\n - The solution is to [unslab](https://github.com/holepunchto/unslab) the buffers, or to use `b4a.allocUnsafeSlow()` instead.\n- Big buffers which are long-lived\n - A typical leak here is data being loaded from a networked stream or file-system stream, where the data of a single data-event is all loaded on a shared slab, and some long-lived data is defined using `Buffer.subarray()` or similar, which does not copy out the data.\n - The solution for such a leak is to take a heap snapshot, based on which you can figure out which buffers are retaining the overall slab, and to explicitly [unsla",
40 "sections": [
41 "intro",
42 "usage",
43 "api"
44 ],
45 "hasApi": true,
46 "hasExamples": true,
47 "exampleCount": 6,
48 "examples": [
49 "npm i -g slab-hunter\nslab-hunter <entrypoint>",
50 "slab-hunter index.js",
51 "const setupSlabHunter = require('slab-hunter')\n\nconst getLeakStats = setupSlabHunter()\nsetInterval(() => {\n console.log(getLeakStats())\n}, 1000 * 60 * 2)"
52 ]
53 },
54 "patterns": []
55}
skills/slab-hunter/skills.md +47 -2
……@@ -51,11 +51,56 @@ Note: this tool works by monkey-patching `Buffer.allocUnsafe` to keep track of t
5151
5252## API Documentation
5353
54_To be enriched in Phase 1B with deep code analysis_
54_Extracted from README and code analysis_
55
56### Classes
57
58- `LeakOverview`
59
60### Functions
61
62- `monkeyPatchBuffer()`
63- `allocUnsafeMonkeyPatch()`
64- `getLeakOverview()`
65- `setupSlabHunter()`
66
67### Exports
68
69- default: `setupSlabHunter`
70
71
72_See [api-extract.json](./api-extract.json) for detailed API information._
73
5574
5675## Usage Examples
5776
58_To be added in Phase 1B_
77_Extracted from README_
78
79### Example 1
80
81```javascript
82npm i -g slab-hunter
83slab-hunter <entrypoint>
84```
85
86### Example 2
87
88```javascript
89slab-hunter index.js
90```
91
92### Example 3
93
94```javascript
95const setupSlabHunter = require('slab-hunter')
96
97const getLeakStats = setupSlabHunter()
98setInterval(() => {
99 console.log(getLeakStats())
100}, 1000 * 60 * 2)
101```
102
103
59104
60105## Semantic Type
61106
skills/sloppy-module-parser/api-extract.json +50 -0
……@@ -0,0 +1,50 @@
1{
2 "repo": "sloppy-module-parser",
3 "timestamp": "2026-01-16T23:56:14.856Z",
4 "entryPoint": "parse.js",
5 "exports": {
6 "packageJson": {
7 "main": "parse.js"
8 }
9 },
10 "api": {
11 "file": "parse.js",
12 "exports": [],
13 "classes": [],
14 "functions": [
15 {
16 "name": "init"
17 },
18 {
19 "name": "parse"
20 },
21 {
22 "name": "exports"
23 },
24 {
25 "name": "mjsParse"
26 },
27 {
28 "name": "parseNames"
29 }
30 ]
31 },
32 "readme": {
33 "content": "# sloppy-module-parser\n\nParse imports/exports/requires with a focus on speed over 100% correctness\n\n```\nnpm install sloppy-module-parser\n```\n\nSometimes it might report requires that are indeed not requires but tries to not miss any.\nThis limitation gives it a massive speed boost compared to other parsers.\n\n## Usage\n\n```js\nconst { init, parse } = require('sloppy-module-parser')\n\nawait init() // needed to init the async esm parser used\n\nconsole.log(parse(src))\n```\n\n## API\n\n#### `async parser.init()`\n\nInit the async esm parser. Call this before using the module.\n\n#### `const res = parser.parse(src, type = 'module', strictMode = true)`\n\nParses imports/requires from the source. `type` helps it understand what it should parse for.\n\nType should be one of the following: `module` / `script` / `json`.\n\nIf strict mode is false, and type is not `module`, it autodetects if any `import` / `export` statements\nare used and if so auto corrects the type. This is useful for module interop.\n\nThe returned ",
34 "sections": [
35 "intro",
36 "usage",
37 "api",
38 "license"
39 ],
40 "hasApi": true,
41 "hasExamples": true,
42 "exampleCount": 3,
43 "examples": [
44 "npm install sloppy-module-parser",
45 "const { init, parse } = require('sloppy-module-parser')\n\nawait init() // needed to init the async esm parser used\n\nconsole.log(parse(src))",
46 "{\n type: 'module',\n resolutions: [\n {\n isImport: boolean, // is it an import or a require\n isAddon: boolean, // is this import / require pointing to a native addon\n position: [statementStart, inputStart, inputEnd], // where is the statement, might be null\n input: string, // the input to import / require, `null` is if it is unknown at parse time\n output: null // what it should resolve to, just set for conveinience\n },\n ...\n ],\n namedImports: [\n {\n isWildcard: boolean, // is it a wildcard import\n isExport: boolean, // reexports the import\n names: [string, ...], // the named imports,\n from: referenceToRelevantResolution\n }\n ],\n exports: [string, ...] // only default populated for esm\n}"
47 ]
48 },
49 "patterns": []
50}
skills/sloppy-module-parser/skills.md +59 -2
……@@ -52,11 +52,68 @@ console.log(parse(src))
5252
5353## API Documentation
5454
55_To be enriched in Phase 1B with deep code analysis_
55_Extracted from README and code analysis_
56
57### Functions
58
59- `init()`
60- `parse()`
61- `exports()`
62- `mjsParse()`
63- `parseNames()`
64
65
66_See [api-extract.json](./api-extract.json) for detailed API information._
67
5668
5769## Usage Examples
5870
59_To be added in Phase 1B_
71_Extracted from README_
72
73### Example 1
74
75```javascript
76npm install sloppy-module-parser
77```
78
79### Example 2
80
81```javascript
82const { init, parse } = require('sloppy-module-parser')
83
84await init() // needed to init the async esm parser used
85
86console.log(parse(src))
87```
88
89### Example 3
90
91```javascript
92{
93 type: 'module',
94 resolutions: [
95 {
96 isImport: boolean, // is it an import or a require
97 isAddon: boolean, // is this import / require pointing to a native addon
98 position: [statementStart, inputStart, inputEnd], // where is the statement, might be null
99 input: string, // the input to import / require, `null` is if it is unknown at parse time
100 output: null // what it should resolve to, just set for conveinience
101 },
102 ...
103 ],
104 namedImports: [
105 {
106 isWildcard: boolean, // is it a wildcard import
107 isExport: boolean, // reexports the import
108 names: [string, ...], // the named imports,
109 from: referenceToRelevantResolution
110 }
111 ],
112 exports: [string, ...] // only default populated for esm
113}
114```
115
116
60117
61118## Semantic Type
62119
skills/task-backoff/api-extract.json +40 -0
……@@ -0,0 +1,40 @@
1{
2 "repo": "task-backoff",
3 "timestamp": "2026-01-16T23:56:15.188Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [
13 {
14 "type": "default",
15 "name": "class"
16 }
17 ],
18 "classes": [
19 {
20 "name": "TaskBackoff"
21 }
22 ],
23 "functions": []
24 },
25 "readme": {
26 "content": "# task-backoff\n\nSmall module to do smart delays in tight loops to maintain a certain event loop delay\n\n```\nnpm install task-backoff\n```\n\n## Usage\n\n``` js\nconst TaskBackoff = require('task-backoff')\n\nconst t = new TaskBackoff({ maxDelay: 100 })\n\nlet i = 0\nwhile (true) {\n if (t.backoff()) await t.wait()\n console.log('gogo', i++, t.delay())\n}\n```\n\n## License\n\nApache-2.0\n",
27 "sections": [
28 "intro",
29 "usage",
30 "license"
31 ],
32 "hasApi": true,
33 "hasExamples": true,
34 "exampleCount": 1,
35 "examples": [
36 "npm install task-backoff"
37 ]
38 },
39 "patterns": []
40}
skills/task-backoff/skills.md +22 -2
……@@ -52,11 +52,31 @@ while (true) {
5252
5353## API Documentation
5454
55_To be enriched in Phase 1B with deep code analysis_
55_Extracted from README and code analysis_
56
57### Classes
58
59- `TaskBackoff`
60
61### Exports
62
63- default: `class`
64
65
66_See [api-extract.json](./api-extract.json) for detailed API information._
67
5668
5769## Usage Examples
5870
59_To be added in Phase 1B_
71_Extracted from README_
72
73### Example 1
74
75```javascript
76npm install task-backoff
77```
78
79
6080
6181## Semantic Type
6282
skills/tiny-timers-native/api-extract.json +105 -0
……@@ -0,0 +1,105 @@
1{
2 "repo": "tiny-timers-native",
3 "timestamp": "2026-01-16T23:55:52.683Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [],
13 "classes": [
14 {
15 "name": "Timer"
16 },
17 {
18 "name": "TimerList"
19 }
20 ],
21 "functions": [
22 {
23 "name": "pause"
24 },
25 {
26 "name": "resume"
27 },
28 {
29 "name": "incRef"
30 },
31 {
32 "name": "decRef"
33 },
34 {
35 "name": "trace"
36 },
37 {
38 "name": "tick"
39 },
40 {
41 "name": "cancelTimer"
42 },
43 {
44 "name": "updateTimer"
45 },
46 {
47 "name": "ontimer"
48 },
49 {
50 "name": "maybeUpdateTimer"
51 },
52 {
53 "name": "deleteTimerList"
54 },
55 {
56 "name": "queueTimer"
57 },
58 {
59 "name": "clearTimer"
60 },
61 {
62 "name": "setTimeout"
63 },
64 {
65 "name": "clearTimeout"
66 },
67 {
68 "name": "setInterval"
69 },
70 {
71 "name": "clearInterval"
72 },
73 {
74 "name": "setImmediate"
75 },
76 {
77 "name": "clearImmediate"
78 },
79 {
80 "name": "cmp"
81 },
82 {
83 "name": "alive"
84 },
85 {
86 "name": "typeError"
87 }
88 ]
89 },
90 "readme": {
91 "content": "# tiny-timers-native\n\nNative timers for Javascript\n\n```\nnpm install tiny-timers-native\n```\n\n## Usage\n\n``` js\nconst { setTimeout, clearTimeout } = require('tiny-timers-native')\n```\n\n## License\n\nApache-2.0\n",
92 "sections": [
93 "intro",
94 "usage",
95 "license"
96 ],
97 "hasApi": true,
98 "hasExamples": true,
99 "exampleCount": 1,
100 "examples": [
101 "npm install tiny-timers-native"
102 ]
103 },
104 "patterns": []
105}
skills/tiny-timers-native/skills.md +44 -2
……@@ -52,11 +52,53 @@ Apache-2.0
5252
5353## API Documentation
5454
55_To be enriched in Phase 1B with deep code analysis_
55_Extracted from README and code analysis_
56
57### Classes
58
59- `Timer`
60- `TimerList`
61
62### Functions
63
64- `pause()`
65- `resume()`
66- `incRef()`
67- `decRef()`
68- `trace()`
69- `tick()`
70- `cancelTimer()`
71- `updateTimer()`
72- `ontimer()`
73- `maybeUpdateTimer()`
74- `deleteTimerList()`
75- `queueTimer()`
76- `clearTimer()`
77- `setTimeout()`
78- `clearTimeout()`
79- `setInterval()`
80- `clearInterval()`
81- `setImmediate()`
82- `clearImmediate()`
83- `cmp()`
84- `alive()`
85- `typeError()`
86
87
88_See [api-extract.json](./api-extract.json) for detailed API information._
89
5690
5791## Usage Examples
5892
59_To be added in Phase 1B_
93_Extracted from README_
94
95### Example 1
96
97```javascript
98npm install tiny-timers-native
99```
100
101
60102
61103## Semantic Type
62104
skills/tt-native/api-extract.json +46 -0
……@@ -0,0 +1,46 @@
1{
2 "repo": "tt-native",
3 "timestamp": "2026-01-16T23:56:15.560Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [],
13 "classes": [
14 {
15 "name": "PTY"
16 }
17 ],
18 "functions": [
19 {
20 "name": "spawn"
21 },
22 {
23 "name": "toBuffer"
24 }
25 ]
26 },
27 "readme": {
28 "content": "# tt-native\n\nhttps://github.com/holepunchto/libtt JavaScript bindings for Node.js.\n\n```sh\nnpm install tt-native\n```\n\n## Usage\n\n```js\nconst { spawn } = require('tt-native')\n\nconst pty = spawn('node', ['script.js'])\n```\n\n## API\n\n#### `const pty = spawn(file[, args][, options])`\n\nSpawn a process attached to a pseudo TTY. The returned PTY is a [duplex stream](https://github.com/streamxorg/streamx#duplex-stream).\n\nOptions include:\n\n```js\n{\n width: 80,\n height: 60,\n env: process.env,\n cwd: process.cwd()\n}\n```\n\n#### `pty.width`\n\nThe current width of the PTY.\n\n#### `pty.height`\n\nThe current height of the PTY.\n\n#### `pty.pid`\n\nThe process ID of the spawned process.\n\n#### `pty.on('exit', code[, signal])`\n\nEmitted when the process exit.\n\n#### `pty.resize(width, height)`\n\nResize the PTY.\n\n#### `pty.kill([signal])`\n\nKill the process with the specified signal, which defaults to `SIGINT`. The following signals may be used:\n\n- `SIGINT`\n- `SIGKILL`\n- `SIGTERM`\n\n## License\n\nApache 2.0\n",
29 "sections": [
30 "intro",
31 "usage",
32 "api",
33 "license"
34 ],
35 "hasApi": true,
36 "hasExamples": true,
37 "exampleCount": 2,
38 "examples": [
39 "## Usage",
40 "## API\n\n#### `const pty = spawn(file[, args][, options])`\n\nSpawn a process attached to a pseudo TTY. The returned PTY is a [duplex stream](https://github.com/streamxorg/streamx#duplex-stream).\n\nOptions include:"
41 ]
42 },
43 "patterns": [
44 "streaming"
45 ]
46}
skills/tt-native/skills.md +39 -2
……@@ -53,11 +53,48 @@ const pty = spawn('node', ['script.js'])
5353
5454## API Documentation
5555
56_To be enriched in Phase 1B with deep code analysis_
56_Extracted from README and code analysis_
57
58### Classes
59
60- `PTY`
61
62### Functions
63
64- `spawn()`
65- `toBuffer()`
66
67
68_See [api-extract.json](./api-extract.json) for detailed API information._
69
5770
5871## Usage Examples
5972
60_To be added in Phase 1B_
73_Extracted from README_
74
75### Example 1
76
77```javascript
78## Usage
79```
80
81### Example 2
82
83```javascript
84## API
85
86#### `const pty = spawn(file[, args][, options])`
87
88Spawn a process attached to a pseudo TTY. The returned PTY is a [duplex stream](https://github.com/streamxorg/streamx#duplex-stream).
89
90Options include:
91```
92
93
94
95## P2P Patterns
96
97- streaming
6198
6299## Semantic Type
63100
skills/wasm-tools/api-extract.json +28 -0
……@@ -0,0 +1,28 @@
1{
2 "repo": "wasm-tools",
3 "timestamp": "2026-01-16T23:56:03.590Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {},
11 "readme": {
12 "content": "# WASM Tools\n\nWASM Tools is a collection of useful tools for working with WASM and its accompanying text format, WAT, in JavaScript. The tools are based on [esbuild](https://esbuild.github.io) and [wabt](https://github.com/WebAssembly/wabt).\n\n## Installation\n\n```sh\nnpm install wasm-tools\n```\n\n## Tools\n\n### `wasm-to-js` (alias `wat-to-js`)\n\nConvert a WASM or WAT module to a JavaScript module.\n\n#### Usage\n\n```sh\nUsage: wasm-to-js [options] <input>\n\nArguments:\n input the WASM or WAT module to convert to a JavaScript\n module\n\nOptions:\n -V, --version output the version number\n -f, --format <format> the module format to use (choices: \"esm\", \"cjs\",\n \"iife\", default: \"esm\")\n -p, --platform <platform> the platform to bundle for (choices: \"browser\",\n \"node\", \"neutral\", default: \"browser\")\n -s, --sync synchronously load the WASM in the resulting\n ",
13 "sections": [
14 "intro",
15 "installation",
16 "tools"
17 ],
18 "hasApi": false,
19 "hasExamples": true,
20 "exampleCount": 3,
21 "examples": [
22 "## Tools\n\n### `wasm-to-js` (alias `wat-to-js`)\n\nConvert a WASM or WAT module to a JavaScript module.\n\n#### Usage",
23 "### `wasm-to-wat`\n\nConvert a WASM module to a WAT module.\n\n#### Usage",
24 "### `wat-to-wasm`\n\nConvert a WAT module to a WASM module.\n\n#### Usage"
25 ]
26 },
27 "patterns": []
28}
skills/wasm-tools/skills.md +40 -2
……@@ -53,11 +53,49 @@ Usage: wasm-to-js [options] <input>
5353
5454## API Documentation
5555
56_To be enriched in Phase 1B with deep code analysis_
56_Extracted from code analysis_
57
58
59_See [api-extract.json](./api-extract.json) for detailed API information._
60
5761
5862## Usage Examples
5963
60_To be added in Phase 1B_
64_Extracted from README_
65
66### Example 1
67
68```javascript
69## Tools
70
71### `wasm-to-js` (alias `wat-to-js`)
72
73Convert a WASM or WAT module to a JavaScript module.
74
75#### Usage
76```
77
78### Example 2
79
80```javascript
81### `wasm-to-wat`
82
83Convert a WASM module to a WAT module.
84
85#### Usage
86```
87
88### Example 3
89
90```javascript
91### `wat-to-wasm`
92
93Convert a WAT module to a WASM module.
94
95#### Usage
96```
97
98
6199
62100## Semantic Type
63101
skills/watch-drive/api-extract.json +56 -0
……@@ -0,0 +1,56 @@
1{
2 "repo": "watch-drive",
3 "timestamp": "2026-01-16T23:55:53.025Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [
13 {
14 "type": "default",
15 "name": "watch"
16 }
17 ],
18 "classes": [
19 {
20 "name": "HyperdriveWatcher"
21 }
22 ],
23 "functions": [
24 {
25 "name": "watch"
26 },
27 {
28 "name": "createLocalWatch"
29 },
30 {
31 "name": "mapReadable"
32 },
33 {
34 "name": "toKey"
35 }
36 ]
37 },
38 "readme": {
39 "content": "# watch-drive\n\nWatch a Hyperdrive or a Localdrive and get the diff\n\n```\nnpm install watch-drive\n```\n\n## Usage\n\n```js\nconst watch = require('watch-drive')\n\n// returns a readable stream\nconst w = watch(drive, prefix)\n\nfor await (const { diff } of w) {\n for (const { type, key } of diff) {\n // type is either 'update' or 'delete'\n // key is the key that changed\n console.log(type, key)\n }\n}\n```\n\n## License\n\nApache-2.0\n",
40 "sections": [
41 "intro",
42 "usage",
43 "license"
44 ],
45 "hasApi": true,
46 "hasExamples": true,
47 "exampleCount": 2,
48 "examples": [
49 "npm install watch-drive",
50 "const watch = require('watch-drive')\n\n// returns a readable stream\nconst w = watch(drive, prefix)\n\nfor await (const { diff } of w) {\n for (const { type, key } of diff) {\n // type is either 'update' or 'delete'\n // key is the key that changed\n console.log(type, key)\n }\n}"
51 ]
52 },
53 "patterns": [
54 "streaming"
55 ]
56}
skills/watch-drive/skills.md +50 -2
……@@ -53,11 +53,59 @@ for await (const { diff } of w) {
5353
5454## API Documentation
5555
56_To be enriched in Phase 1B with deep code analysis_
56_Extracted from README and code analysis_
57
58### Classes
59
60- `HyperdriveWatcher`
61
62### Functions
63
64- `watch()`
65- `createLocalWatch()`
66- `mapReadable()`
67- `toKey()`
68
69### Exports
70
71- default: `watch`
72
73
74_See [api-extract.json](./api-extract.json) for detailed API information._
75
5776
5877## Usage Examples
5978
60_To be added in Phase 1B_
79_Extracted from README_
80
81### Example 1
82
83```javascript
84npm install watch-drive
85```
86
87### Example 2
88
89```javascript
90const watch = require('watch-drive')
91
92// returns a readable stream
93const w = watch(drive, prefix)
94
95for await (const { diff } of w) {
96 for (const { type, key } of diff) {
97 // type is either 'update' or 'delete'
98 // key is the key that changed
99 console.log(type, key)
100 }
101}
102```
103
104
105
106## P2P Patterns
107
108- streaming
61109
62110## Semantic Type
63111
skills/which-runtime/api-extract.json +32 -0
……@@ -0,0 +1,32 @@
1{
2 "repo": "which-runtime",
3 "timestamp": "2026-01-16T23:56:03.935Z",
4 "entryPoint": "index.js",
5 "exports": {
6 "packageJson": {
7 "main": "index.js"
8 }
9 },
10 "api": {
11 "file": "index.js",
12 "exports": [],
13 "classes": [],
14 "functions": []
15 },
16 "readme": {
17 "content": "# which-runtime\n\nDetect if you are in Bare or Node and which os etc\n\n```\nnpm install which-runtime\n```\n\n## Usage\n\n```js\nimport {\n runtime, // bare, node, or browser\n platform, // the platform string, ie darwin, win32, etc\n arch, // which arch, arm64, ia32, x64 etc\n isBrowser,\n isBare,\n isNode,\n isLinux,\n isWindows,\n isMac,\n isIOS,\n isAndroid\n} from 'which-runtime'\n```\n\n## License\n\nApache-2.0\n",
18 "sections": [
19 "intro",
20 "usage",
21 "license"
22 ],
23 "hasApi": true,
24 "hasExamples": true,
25 "exampleCount": 2,
26 "examples": [
27 "npm install which-runtime",
28 "import {\n runtime, // bare, node, or browser\n platform, // the platform string, ie darwin, win32, etc\n arch, // which arch, arm64, ia32, x64 etc\n isBrowser,\n isBare,\n isNode,\n isLinux,\n isWindows,\n isMac,\n isIOS,\n isAndroid\n} from 'which-runtime'"
29 ]
30 },
31 "patterns": []
32}
skills/which-runtime/skills.md +32 -2
……@@ -47,11 +47,41 @@ import {
4747
4848## API Documentation
4949
50_To be enriched in Phase 1B with deep code analysis_
50_Extracted from README and code analysis_
51
52
53_See [api-extract.json](./api-extract.json) for detailed API information._
54
5155
5256## Usage Examples
5357
54_To be added in Phase 1B_
58_Extracted from README_
59
60### Example 1
61
62```javascript
63npm install which-runtime
64```
65
66### Example 2
67
68```javascript
69import {
70 runtime, // bare, node, or browser
71 platform, // the platform string, ie darwin, win32, etc
72 arch, // which arch, arm64, ia32, x64 etc
73 isBrowser,
74 isBare,
75 isNode,
76 isLinux,
77 isWindows,
78 isMac,
79 isIOS,
80 isAndroid
81} from 'which-runtime'
82```
83
84
5585
5686## Semantic Type
5787