| name | aminet-index |
| description | Manages Aminet INDEX infrastructure: fetch, parse, cache, and incremental update of ~84,000-entry package database. Use when managing INDEX data, checking freshness, or parsing .readme files. |
| metadata | {"extensions":{"gsd-skill-creator":{"triggers":{"intents":["aminet.*index","aminet.*update","index.*fetch","readme.*parse"],"files":["src/aminet/index-fetcher.ts","src/aminet/index-parser.ts","src/aminet/index-freshness.ts","src/aminet/readme-parser.ts"],"contexts":["aminet index management","package database"],"threshold":0.7},"token_budget":"1.5%","version":1,"enabled":true,"plan_origin":"242-aminet-integration","phase_origin":"242"}}} |
Aminet Index
Purpose
Manages the complete lifecycle of the Aminet INDEX database: fetching INDEX.gz from mirrors, parsing ~84,000 package entries into structured data, caching results for offline use, checking freshness against 24-hour thresholds, and performing incremental updates via RECENT file diffing. Also handles .readme metadata extraction for individual package detail views.
Capabilities
- Fetch INDEX.gz from Aminet mirrors with gzip decompression
- Parse ~84,000 INDEX entries using token-based regex in ~114ms
- ISO-8859-1 decoding via TextDecoder for correct character handling
- JSON cache with INDEX + INDEX.meta.json sidecar for offline access
- K=1x and M=1000x size suffix normalization
- 24-hour freshness detection with configurable thresholds
- RECENT-based incremental merge by fullPath for efficient updates
- Parse .readme files extracting raw headers (lowercase keys, multi-value split on comma+semicolon)
- Barrel file exporting complete public API
Key Modules