diff --git a/registry-index.json b/registry-index.json index ba93b12..152dfd4 100644 --- a/registry-index.json +++ b/registry-index.json @@ -1 +1 @@ -{"packages":{"auth":[{"description":"Authentication for DAW projects -- API key auth, JWT (no cookies)","latest":{"openbookregister":true},"released":"2026-04-24","requires":{"system":{"openssl":{"min":3.0}}},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"0.2.0+bedb8476"},{"description":"Authentication for DAW projects -- API key auth, JWT (no cookies)","latest":{"openbookregister":false},"released":"2026-04-14","requires":{"system":{"openssl":{"min":3}}},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"0.1.0+a905842c"}],"federation-sync":[{"description":"Block-based federation sync protocol for DAW instances","latest":{"redan":true,"steurjan":true,"obr":true,"raidjan":true,"kaupapi":true},"released":"2026-05-03","requires":{"system":[]},"supports":{"redan":{"max":"<2.0.0","min":"0.1.0"},"steurjan":{"max":"<2.0.0","min":"0.1.0"},"obr":{"max":"<2.0.0","min":"0.1.0"},"raidjan":{"max":"<2.0.0","min":"0.1.0"},"kaupapi":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"0.1.0+56f7ba6d"}],"storage-pg":[{"description":"PostgreSQL storage backend for DAW projects","latest":{"openbookregister":true},"released":"2026-04-24","requires":{"system":{"pg-backend":{"one-of":{"pgmoon":{"min":1.12},"lua-sql-postgresql":{"min":2.6}}},"postgresql":{"min":17.0}}},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"0.3.0+833cfe38"},{"description":"PostgreSQL storage backend for DAW projects","latest":{"openbookregister":false},"released":"2026-04-24","requires":{"system":{"pg-backend":{"one-of":{"pgmoon":{"min":1.12},"lua-sql-postgresql":{"min":2.6}}},"postgresql":{"min":17.0}}},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"0.2.0+0531bc3c-dirty"},{"description":"PostgreSQL storage backend for DAW projects","latest":{"openbookregister":false},"released":"2026-04-13","requires":{"system":{"pg-backend":{"one-of":{"pgmoon":{"min":1.12},"lua-sql-postgresql":{"min":2.6}}},"postgresql":{"min":17}}},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"0.2.0+e6c1a475"},{"description":"PostgreSQL storage backend for DAW projects","latest":{"openbookregister":false},"released":"2026-04-12","requires":{"system":{"libpq":{"min":17},"psql":{"min":17}}},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"0.1.1+cd594238"},{"description":"PostgreSQL storage backend for DAW projects","latest":{"openbookregister":false},"released":"2026-04-12","requires":{"system":{}},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"0.1.0+e9622390-dirty"}],"tax-calc":[{"description":"Decimal-accurate net/gross price calculation for DAW systems","latest":{"kaupapi":true,"steurjan":true,"raidjan":true,"stapul":true},"released":"2026-05-01","requires":{"system":[]},"supports":{"kaupapi":{"max":"<2.0.0","min":"0.1.0"},"steurjan":{"max":"<2.0.0","min":"0.1.0"},"raidjan":{"max":"<2.0.0","min":"0.1.0"},"stapul":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"0.1.1+ace89389"},{"description":"One-line description","latest":{"steurjan":false},"released":"2026-05-01","requires":{"system":[]},"supports":{"steurjan":{"max":"<2.0.0","min":"1.0.0"}},"tier":"free","version":"0.1.0+3097a54a"}],"fragjan-check-markdown":[{"description":"fragjan primitive: extract structured content from Markdown files","latest":{"fragjan":true},"released":"2026-05-27","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}},"tier":"free","version":"0.1.1+1b35432c"},{"description":"fragjan primitive: extract structured content from Markdown files","latest":{"fragjan":false},"released":"2026-05-24","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}},"tier":"free","version":"0.1.0+4906b51e"}],"fragjan-check-linepattern":[{"description":"fragjan primitive: match pattern on a line, with optional line-level exclusion","latest":{"fragjan":true},"released":"2026-05-27","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.2.0"}},"tier":"free","version":"0.1.2+5920794a"},{"description":"fragjan primitive: match pattern on a line, with optional line-level exclusion","latest":{"fragjan":false},"released":"2026-05-26","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.2.0"}},"tier":"free","version":"0.1.1+09b9c01b"}],"daw-modul-product":[{"description":"Shared product module -- validation, category resolution, price lookup, bundle expansion","latest":{"redan":true,"steurjan":true,"stapul":true,"raidjan":true,"kaupapi":true},"released":"2026-05-01","requires":{"system":[]},"supports":{"redan":{"max":"<2.0.0","min":"0.1.0"},"steurjan":{"max":"<2.0.0","min":"0.1.0"},"stapul":{"max":"<2.0.0","min":"0.1.0"},"raidjan":{"max":"<2.0.0","min":"0.1.0"},"kaupapi":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"0.1.1+b7154039"}],"fragjan-check-list-values":[{"description":"Validate table literal values against allowed or forbidden list","latest":{"fragjan":true},"released":"2026-05-26","requires":{"system":[]},"supports":{"fragjan":{"min":"0.2.0"}},"tier":"free","version":"0.1.0+61e08ab6"}],"fragjan-check-linemultipattern":[{"description":"Check if a line contains all given patterns simultaneously (AND semantics)","latest":{"fragjan":true},"released":"2026-05-30","requires":{"system":[]},"supports":{"fragjan":{"min":"0.2.9"}},"tier":"free","version":"0.1.1+64c9de56"},{"description":"Check if a line contains all given patterns simultaneously (AND semantics)","latest":{"fragjan":false},"released":"2026-05-30","requires":{"system":[]},"supports":{"fragjan":{"min":"0.2.9"}},"tier":"free","version":"0.1.1+53fda3ce"}],"log-file":[{"description":"File log backend -- writes daw_log/v1 entries to a log file","latest":[],"released":"2026-06-04","requires":{"system":[]},"supports":[],"tier":"free","version":"0.1.3+9475f2e2"},{"description":"File log backend -- writes daw_log/v1 entries to a log file","latest":[],"released":"2026-06-04","requires":{"system":[]},"supports":[],"tier":"free","version":"0.1.2+9b5e04e4"},{"description":"File log backend -- writes daw_log/v1 entries to a log file","latest":[],"released":"2026-06-03","requires":{"system":[]},"supports":[],"tier":"free","version":"0.1.1+8631b81c"},{"description":"File log backend -- writes daw_log/v1 entries to a log file","latest":[],"released":"2026-06-03","requires":{"system":[]},"supports":[],"tier":"free","version":"0.1.0+c50286d0"},{"description":"File log backend -- writes daw_log/v1 entries to a log file","latest":[],"released":"2026-06-03","requires":{"system":[]},"supports":[],"tier":"free","version":"0.1.0+537ff816"}],"git":[{"description":"Git VCS adapter for DAW projects","latest":{"steurjan":true},"released":"2026-06-08","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"1.0.10+909c72d5"},{"description":"Git VCS adapter for DAW projects","latest":{"steurjan":false},"released":"2026-05-24","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"1.0.9+4a244af3"},{"description":"Git VCS adapter for DAW projects","latest":{"steurjan":false},"released":"2026-05-23","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"1.0.8+b1d364d6"},{"description":"Git VCS adapter for DAW projects","latest":{"steurjan":false},"released":"2026-05-22","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"1.0.7+ce04a3db"},{"description":"Git VCS adapter for DAW projects","latest":{"steurjan":false},"released":"2026-05-18","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"1.0.6+421b7bc3"},{"description":"Git VCS adapter for DAW projects","latest":{"steurjan":false},"released":"2026-05-18","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"1.0.5+f1f408ed"},{"description":"Git VCS adapter for DAW projects","latest":{"steurjan":false},"released":"2026-05-18","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"1.0.4+9d9dc1ba"},{"description":"Git VCS adapter for DAW projects","latest":{"steurjan":false},"released":"2026-05-16","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"1.0.3+8f74be4f"},{"description":"Git VCS adapter for DAW projects","latest":{"steurjan":false},"released":"2026-05-16","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"1.0.2+e9ea50cc"},{"description":"Git VCS adapter for DAW projects","latest":{"steurjan":false},"released":"2026-05-16","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"1.0.1+4b8784fb"},{"description":"Git VCS adapter for DAW projects","latest":{"steurjan":false},"released":"2026-05-16","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"1.0.0+e69ea947-dirty"},{"description":"Git VCS adapter for DAW projects","latest":{"steurjan":false},"released":"2026-05-11","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"0.2.4+20b37df9"},{"description":"Git VCS adapter for DAW projects","latest":{"steurjan":false},"released":"2026-05-10","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"0.2.3+9f0c258a"},{"description":"Git VCS adapter for DAW projects","latest":{"steurjan":false},"released":"2026-05-10","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"0.2.2+69947086"},{"description":"Git VCS adapter for DAW projects","latest":{"steurjan":false},"released":"2026-05-10","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"0.2.1+d72bb814"},{"description":"Git VCS adapter for DAW projects","latest":{"steurjan":false},"released":"2026-04-18","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"0.2.0+f7281c13"},{"description":"Git VCS adapter for DAW projects","latest":{"steurjan":false},"released":"2026-04-03","requires":{"system":{"git":{"min":2}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"0.1.6+b4f9258c"},{"description":"Git VCS adapter for DAW projects","latest":{"steurjan":false,"kaupapi":true},"released":"2026-03-24","requires":{"system":{"git":{"min":2}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"0.1.5+6fe653cc"}],"fragjan-check-exists":[{"description":"fragjan primitive: check if a file or directory exists in a project","latest":{"fragjan":true},"released":"2026-05-27","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.2"}},"tier":"free","version":"0.1.3+981615c3"},{"description":"fragjan primitive: check if a file or directory exists in a project","latest":{"fragjan":false},"released":"2026-05-27","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.2"}},"tier":"free","version":"0.1.2+89db1135"},{"description":"fragjan primitive: check if a file or directory exists in a project","latest":{"fragjan":false},"released":"2026-05-23","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.2"}},"tier":"free","version":"0.1.1+d6d3ba9a"},{"description":"fragjan primitive: check if a file or directory exists in a project","latest":{"fragjan":false},"released":"2026-05-19","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.2"}},"tier":"free","version":"0.1.0+6ea950a6"}],"fragjan-check-multi-exists":[{"description":"Check existence of multiple files or directories (any/all)","latest":{"fragjan":true},"released":"2026-05-28","requires":{"system":[]},"supports":{"fragjan":{"min":"0.2.5"}},"tier":"free","version":"0.1.1+a617a13b"}],"fragjan-check-listvalues":[{"description":"Validate table literal values against allowed or forbidden list","latest":{"fragjan":true},"released":"2026-05-26","requires":{"system":[]},"supports":{"fragjan":{"min":"0.2.0"}},"tier":"free","version":"0.1.3+4fda08f2"},{"description":"Validate table literal values against allowed or forbidden list","latest":{"fragjan":false},"released":"2026-05-26","requires":{"system":[]},"supports":{"fragjan":{"min":"0.2.0"}},"tier":"free","version":"0.1.2+5a1ea021"},{"description":"Validate table literal values against allowed or forbidden list","latest":{"fragjan":false},"released":"2026-05-26","requires":{"system":[]},"supports":{"fragjan":{"min":"0.2.0"}},"tier":"free","version":"0.1.1+2b52665d"}],"fragjan-check-filehassiblingdir":[{"description":"fragjan primitive: check if a file has a sibling directory with the same name","latest":{"fragjan":true},"released":"2026-05-31","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}},"tier":"free","version":"0.1.1+c7fe8ae0"}],"api":[{"description":"API layer for DAW HTTP services -- CORS, rate-limiting, JSON helpers, auth hook","latest":{"openbookregister":true},"released":"2026-04-24","requires":{"system":[]},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"0.2.0+f6586377"},{"description":"API layer for DAW HTTP services -- CORS, rate-limiting, JSON helpers, auth hook","latest":{"openbookregister":false},"released":"2026-04-14","requires":{"system":{}},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"0.1.0+7d291211"}],"product":[{"description":"Shared product module -- validation, category resolution, price lookup, bundle expansion","latest":{"redan":true,"steurjan":true,"stapul":true,"raidjan":true,"kaupapi":true},"released":"2026-05-03","requires":{"system":[]},"supports":{"redan":{"max":"<2.0.0","min":"0.1.0"},"steurjan":{"max":"<2.0.0","min":"0.1.0"},"stapul":{"max":"<2.0.0","min":"0.1.0"},"raidjan":{"max":"<2.0.0","min":"0.1.0"},"kaupapi":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"0.2.0+69bf06a6"},{"description":"Shared product module -- validation, category resolution, price lookup, bundle expansion","latest":{"redan":false,"steurjan":false,"stapul":false,"raidjan":false,"kaupapi":false},"released":"2026-05-03","requires":{"system":[]},"supports":{"redan":{"max":"<2.0.0","min":"0.1.0"},"steurjan":{"max":"<2.0.0","min":"0.1.0"},"stapul":{"max":"<2.0.0","min":"0.1.0"},"raidjan":{"max":"<2.0.0","min":"0.1.0"},"kaupapi":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"0.1.2+570bdf80"}],"http-server":[{"description":"Generic TCP-based HTTP server with URL param routing and static file serving","latest":{"openbookregister":true},"released":"2026-07-17","requires":{"system":{"socket":{"min":3.0}}},"supports":{"openbookregister":{"min":"0.1.0","max":"<2.0.0"}},"tier":"free","version":"0.3.0+3261aa6f"},{"description":"Generic TCP-based HTTP server with URL param routing and static file serving","latest":{"openbookregister":false},"released":"2026-04-22","requires":{"system":{"socket":{"min":3.0}}},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"0.2.0+77253d3d"},{"description":"Generic TCP-based HTTP server with URL param routing and static file serving","latest":{"openbookregister":false},"released":"2026-04-14","requires":{"system":{"socket":{"min":3}}},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"0.1.3+81faed66"},{"description":"Generic TCP-based HTTP server with URL param routing and static file serving","latest":{"openbookregister":false},"released":"2026-04-14","requires":{"system":{"socket":{"min":3}}},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"0.1.2+eb857c68"},{"description":"Generic TCP-based HTTP server with URL param routing and static file serving","latest":{"openbookregister":false},"released":"2026-04-14","requires":{"system":{"lua-socket":{"min":3}}},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"0.1.1+c696c6cf"},{"description":"Generic TCP-based HTTP server with URL param routing and static file serving","latest":{},"released":"2026-04-14","requires":{"system":{"lua-socket":{"min":3}}},"supports":{},"tier":"free","version":"0.1.0+ca749c8a"},{"description":"Generic TCP-based HTTP server with URL param routing and static file serving","latest":{},"released":"2026-04-14","requires":{"system":{"lua-socket":{"min":3}}},"supports":{},"tier":"free","version":"0.1.0+ca749c8a-dirty"}],"fragjan-check-filecorrelation":[{"description":"Correlate two patterns within a file (if A present, B must/must-not be present)","latest":{"fragjan":true},"released":"2026-05-31","requires":{"system":[]},"supports":{"fragjan":{"min":"0.2.10"}},"tier":"free","version":"0.1.0+ccc8b03a"}],"fragjan-check-linecount":[{"description":"fragjan primitive: count lines in a file","latest":{"fragjan":true},"released":"2026-05-27","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}},"tier":"free","version":"0.1.3+0338d557"},{"description":"fragjan primitive: count lines in a file","latest":{"fragjan":false},"released":"2026-05-19","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}},"tier":"free","version":"0.1.1+880e75e3"},{"description":"fragjan primitive: count lines in a file","latest":{"fragjan":false},"released":"2026-05-18","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}},"tier":"free","version":"0.1.0+e89ecf2d"}],"storage-sqlite":[{"description":"SQLite storage backend","latest":{"steurjan":true,"openbookregister":true},"released":"2026-04-22","requires":{"system":{"sqlite3-lua":{"one-of":{"lua-sql-sqlite3":{"min":"0.9.0"},"lsqlite3":{"min":"0.9.0"}}}}},"supports":{"steurjan":{"max":"<2.0.0","min":"1.0.0"},"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"0.2.0+de4d5c96"},{"description":"SQLite storage backend","latest":{"steurjan":false,"openbookregister":false},"released":"2026-04-17","requires":{"system":{"sqlite3-lua":{"one-of":{"lua-sql-sqlite3":{"min":"0.9.0"},"lsqlite3":{"min":"0.9.0"}}}}},"supports":{"steurjan":{"max":"<2.0.0","min":"1.0.0"},"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"0.1.3+b47cc6aa"},{"description":"SQLite storage backend","latest":{"openbookregister":false},"released":"2026-04-17","requires":{"system":{"lua-sql-sqlite3":{"min":"0.9.0"}}},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"0.1.2+2ea11433"},{"description":"SQLite storage backend","latest":{"openbookregister":false},"released":"2026-04-17","requires":{"system":{"luasqlite3":{"min":"0.9.0"}}},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"tier":"free","version":"0.1.1+243bf884"},{"description":"SQLite storage backend","latest":{"steurjan":false,"openbookregister":false},"released":"2026-04-17","requires":{"system":{"luasqlite3":{"min":"0.9.0"}}},"supports":{"steurjan":{"max":"<2.0.0","min":"1.0.0"},"openbookregister":{"max":"<2.0.0","min":"1.0.0"}},"tier":"free","version":"0.1.0+65568170"}],"fragjan-check-contains":[{"description":"fragjan primitive: check if a file contains or does not contain a pattern","latest":{"fragjan":true},"released":"2026-05-27","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.3"}},"tier":"free","version":"0.1.5+a223b94f"},{"description":"fragjan primitive: check if a file contains or does not contain a pattern","latest":{"fragjan":false},"released":"2026-05-27","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.3"}},"tier":"free","version":"0.1.4+0ba69437"},{"description":"fragjan primitive: check if a file contains or does not contain a pattern","latest":{"fragjan":false},"released":"2026-05-27","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.3"}},"tier":"free","version":"0.1.3+d80f1857"},{"description":"fragjan primitive: check if a file contains or does not contain a pattern","latest":{"fragjan":false},"released":"2026-05-19","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.3"}},"tier":"free","version":"0.1.2+60af72cd"},{"description":"fragjan primitive: check if a file contains or does not contain a pattern","latest":{"fragjan":false},"released":"2026-05-19","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.3"}},"tier":"free","version":"0.1.1+b61170f5"},{"description":"fragjan primitive: check if a file contains or does not contain a pattern","latest":{"fragjan":false},"released":"2026-05-19","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.3"}},"tier":"free","version":"0.1.0+4e20f780"}],"fragjan-check-pattern":[{"description":"fragjan primitive: search for a pattern in a file","latest":{"fragjan":true},"released":"2026-05-31","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}},"tier":"free","version":"0.1.8+30ca7614"},{"description":"fragjan primitive: search for a pattern in a file","latest":{"fragjan":false},"released":"2026-05-31","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}},"tier":"free","version":"0.1.7+cb860de3"},{"description":"fragjan primitive: search for a pattern in a file","latest":{"fragjan":false},"released":"2026-05-27","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}},"tier":"free","version":"0.1.6+f7bc85d1"},{"description":"fragjan primitive: search for a pattern in a file","latest":{"fragjan":false},"released":"2026-05-27","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}},"tier":"free","version":"0.1.5+a223b94f"},{"description":"fragjan primitive: search for a pattern in a file","latest":{"fragjan":false},"released":"2026-05-27","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}},"tier":"free","version":"0.1.3+d80f1857"},{"description":"fragjan primitive: search for a pattern in a file","latest":{"fragjan":false},"released":"2026-05-19","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}},"tier":"free","version":"0.1.2+ef98877a"},{"description":"fragjan primitive: search for a pattern in a file","latest":{"fragjan":false},"released":"2026-05-19","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}},"tier":"free","version":"0.1.1+0eaf02b0"},{"description":"fragjan primitive: search for a pattern in a file","latest":{"fragjan":false},"released":"2026-05-18","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}},"tier":"free","version":"0.1.0+b370900b"}]}} \ No newline at end of file +{"packages":{"git":[{"tier":"free","description":"Git VCS adapter for DAW projects","version":"1.0.10+909c72d5","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":true},"released":"2026-06-08"},{"tier":"free","description":"Git VCS adapter for DAW projects","version":"1.0.9+4a244af3","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":false},"released":"2026-05-24"},{"tier":"free","description":"Git VCS adapter for DAW projects","version":"1.0.8+b1d364d6","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":false},"released":"2026-05-23"},{"tier":"free","description":"Git VCS adapter for DAW projects","version":"1.0.7+ce04a3db","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":false},"released":"2026-05-22"},{"tier":"free","description":"Git VCS adapter for DAW projects","version":"1.0.6+421b7bc3","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":false},"released":"2026-05-18"},{"tier":"free","description":"Git VCS adapter for DAW projects","version":"1.0.5+f1f408ed","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":false},"released":"2026-05-18"},{"tier":"free","description":"Git VCS adapter for DAW projects","version":"1.0.4+9d9dc1ba","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":false},"released":"2026-05-18"},{"tier":"free","description":"Git VCS adapter for DAW projects","version":"1.0.3+8f74be4f","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":false},"released":"2026-05-16"},{"tier":"free","description":"Git VCS adapter for DAW projects","version":"1.0.2+e9ea50cc","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":false},"released":"2026-05-16"},{"tier":"free","description":"Git VCS adapter for DAW projects","version":"1.0.1+4b8784fb","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":false},"released":"2026-05-16"},{"tier":"free","description":"Git VCS adapter for DAW projects","version":"1.0.0+e69ea947-dirty","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":false},"released":"2026-05-16"},{"tier":"free","description":"Git VCS adapter for DAW projects","version":"0.2.4+20b37df9","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":false},"released":"2026-05-11"},{"tier":"free","description":"Git VCS adapter for DAW projects","version":"0.2.3+9f0c258a","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":false},"released":"2026-05-10"},{"tier":"free","description":"Git VCS adapter for DAW projects","version":"0.2.2+69947086","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":false},"released":"2026-05-10"},{"tier":"free","description":"Git VCS adapter for DAW projects","version":"0.2.1+d72bb814","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":false},"released":"2026-05-10"},{"tier":"free","description":"Git VCS adapter for DAW projects","version":"0.2.0+f7281c13","requires":{"system":{"git":{"min":2.0}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":false},"released":"2026-04-18"},{"tier":"free","description":"Git VCS adapter for DAW projects","version":"0.1.6+b4f9258c","requires":{"system":{"git":{"min":2}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"steurjan":false},"released":"2026-04-03"},{"tier":"free","description":"Git VCS adapter for DAW projects","version":"0.1.5+6fe653cc","requires":{"system":{"git":{"min":2}}},"supports":{"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"kaupapi":true,"steurjan":false},"released":"2026-03-24"}],"tax-calc":[{"tier":"free","description":"Decimal-accurate net/gross price calculation for DAW systems","version":"0.1.1+ace89389","requires":{"system":[]},"supports":{"kaupapi":{"max":"<2.0.0","min":"0.1.0"},"stapul":{"max":"<2.0.0","min":"0.1.0"},"raidjan":{"max":"<2.0.0","min":"0.1.0"},"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"kaupapi":true,"stapul":true,"raidjan":true,"steurjan":true},"released":"2026-05-01"},{"tier":"free","description":"One-line description","version":"0.1.0+3097a54a","requires":{"system":[]},"supports":{"steurjan":{"max":"<2.0.0","min":"1.0.0"}},"latest":{"steurjan":false},"released":"2026-05-01"}],"fragjan-check-markdown":[{"tier":"free","description":"fragjan primitive: extract structured content from Markdown files","version":"0.1.1+1b35432c","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}},"latest":{"fragjan":true},"released":"2026-05-27"},{"tier":"free","description":"fragjan primitive: extract structured content from Markdown files","version":"0.1.0+4906b51e","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}},"latest":{"fragjan":false},"released":"2026-05-24"}],"fragjan-check-listvalues":[{"tier":"free","description":"Validate table literal values against allowed or forbidden list","version":"0.1.3+4fda08f2","requires":{"system":[]},"supports":{"fragjan":{"min":"0.2.0"}},"latest":{"fragjan":true},"released":"2026-05-26"},{"tier":"free","description":"Validate table literal values against allowed or forbidden list","version":"0.1.2+5a1ea021","requires":{"system":[]},"supports":{"fragjan":{"min":"0.2.0"}},"latest":{"fragjan":false},"released":"2026-05-26"},{"tier":"free","description":"Validate table literal values against allowed or forbidden list","version":"0.1.1+2b52665d","requires":{"system":[]},"supports":{"fragjan":{"min":"0.2.0"}},"latest":{"fragjan":false},"released":"2026-05-26"}],"fragjan-check-list-values":[{"tier":"free","description":"Validate table literal values against allowed or forbidden list","version":"0.1.0+61e08ab6","requires":{"system":[]},"supports":{"fragjan":{"min":"0.2.0"}},"latest":{"fragjan":true},"released":"2026-05-26"}],"fragjan-check-multi-exists":[{"tier":"free","description":"Check existence of multiple files or directories (any/all)","version":"0.1.1+a617a13b","requires":{"system":[]},"supports":{"fragjan":{"min":"0.2.5"}},"latest":{"fragjan":true},"released":"2026-05-28"}],"api":[{"tier":"free","description":"API layer for DAW HTTP services -- CORS, rate-limiting, JSON helpers, auth hook","version":"0.2.0+f6586377","requires":{"system":[]},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"openbookregister":true},"released":"2026-04-24"},{"tier":"free","description":"API layer for DAW HTTP services -- CORS, rate-limiting, JSON helpers, auth hook","version":"0.1.0+7d291211","requires":{"system":{}},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"openbookregister":false},"released":"2026-04-14"}],"storage-pg":[{"tier":"free","description":"PostgreSQL storage backend for DAW projects","version":"0.3.0+833cfe38","requires":{"system":{"pg-backend":{"one-of":{"lua-sql-postgresql":{"min":2.6},"pgmoon":{"min":1.12}}},"postgresql":{"min":17.0}}},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"openbookregister":true},"released":"2026-04-24"},{"tier":"free","description":"PostgreSQL storage backend for DAW projects","version":"0.2.0+0531bc3c-dirty","requires":{"system":{"pg-backend":{"one-of":{"lua-sql-postgresql":{"min":2.6},"pgmoon":{"min":1.12}}},"postgresql":{"min":17.0}}},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"openbookregister":false},"released":"2026-04-24"},{"tier":"free","description":"PostgreSQL storage backend for DAW projects","version":"0.2.0+e6c1a475","requires":{"system":{"pg-backend":{"one-of":{"lua-sql-postgresql":{"min":2.6},"pgmoon":{"min":1.12}}},"postgresql":{"min":17}}},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"openbookregister":false},"released":"2026-04-13"},{"tier":"free","description":"PostgreSQL storage backend for DAW projects","version":"0.1.1+cd594238","requires":{"system":{"libpq":{"min":17},"psql":{"min":17}}},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"openbookregister":false},"released":"2026-04-12"},{"tier":"free","description":"PostgreSQL storage backend for DAW projects","version":"0.1.0+e9622390-dirty","requires":{"system":{}},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"openbookregister":false},"released":"2026-04-12"}],"fragjan-check-filecorrelation":[{"tier":"free","description":"Correlate two patterns within a file (if A present, B must/must-not be present)","version":"0.1.0+ccc8b03a","requires":{"system":[]},"supports":{"fragjan":{"min":"0.2.10"}},"latest":{"fragjan":true},"released":"2026-05-31"}],"fragjan-check-pattern":[{"tier":"free","description":"fragjan primitive: search for a pattern in a file","version":"0.1.8+30ca7614","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}},"latest":{"fragjan":true},"released":"2026-05-31"},{"tier":"free","description":"fragjan primitive: search for a pattern in a file","version":"0.1.7+cb860de3","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}},"latest":{"fragjan":false},"released":"2026-05-31"},{"tier":"free","description":"fragjan primitive: search for a pattern in a file","version":"0.1.6+f7bc85d1","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}},"latest":{"fragjan":false},"released":"2026-05-27"},{"tier":"free","description":"fragjan primitive: search for a pattern in a file","version":"0.1.5+a223b94f","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}},"latest":{"fragjan":false},"released":"2026-05-27"},{"tier":"free","description":"fragjan primitive: search for a pattern in a file","version":"0.1.3+d80f1857","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}},"latest":{"fragjan":false},"released":"2026-05-27"},{"tier":"free","description":"fragjan primitive: search for a pattern in a file","version":"0.1.2+ef98877a","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}},"latest":{"fragjan":false},"released":"2026-05-19"},{"tier":"free","description":"fragjan primitive: search for a pattern in a file","version":"0.1.1+0eaf02b0","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}},"latest":{"fragjan":false},"released":"2026-05-19"},{"tier":"free","description":"fragjan primitive: search for a pattern in a file","version":"0.1.0+b370900b","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}},"latest":{"fragjan":false},"released":"2026-05-18"}],"fragjan-check-contains":[{"tier":"free","description":"fragjan primitive: check if a file contains or does not contain a pattern","version":"0.1.5+a223b94f","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.3"}},"latest":{"fragjan":true},"released":"2026-05-27"},{"tier":"free","description":"fragjan primitive: check if a file contains or does not contain a pattern","version":"0.1.4+0ba69437","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.3"}},"latest":{"fragjan":false},"released":"2026-05-27"},{"tier":"free","description":"fragjan primitive: check if a file contains or does not contain a pattern","version":"0.1.3+d80f1857","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.3"}},"latest":{"fragjan":false},"released":"2026-05-27"},{"tier":"free","description":"fragjan primitive: check if a file contains or does not contain a pattern","version":"0.1.2+60af72cd","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.3"}},"latest":{"fragjan":false},"released":"2026-05-19"},{"tier":"free","description":"fragjan primitive: check if a file contains or does not contain a pattern","version":"0.1.1+b61170f5","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.3"}},"latest":{"fragjan":false},"released":"2026-05-19"},{"tier":"free","description":"fragjan primitive: check if a file contains or does not contain a pattern","version":"0.1.0+4e20f780","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.3"}},"latest":{"fragjan":false},"released":"2026-05-19"}],"fragjan-check-linecount":[{"tier":"free","description":"fragjan primitive: count lines in a file","version":"0.1.3+0338d557","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}},"latest":{"fragjan":true},"released":"2026-05-27"},{"tier":"free","description":"fragjan primitive: count lines in a file","version":"0.1.1+880e75e3","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}},"latest":{"fragjan":false},"released":"2026-05-19"},{"tier":"free","description":"fragjan primitive: count lines in a file","version":"0.1.0+e89ecf2d","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}},"latest":{"fragjan":false},"released":"2026-05-18"}],"fragjan-check-linepattern":[{"tier":"free","description":"fragjan primitive: match pattern on a line, with optional line-level exclusion","version":"0.1.2+5920794a","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.2.0"}},"latest":{"fragjan":true},"released":"2026-05-27"},{"tier":"free","description":"fragjan primitive: match pattern on a line, with optional line-level exclusion","version":"0.1.1+09b9c01b","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.2.0"}},"latest":{"fragjan":false},"released":"2026-05-26"}],"storage-sqlite":[{"tier":"free","description":"SQLite storage backend","version":"0.2.0+de4d5c96","requires":{"system":{"sqlite3-lua":{"one-of":{"lua-sql-sqlite3":{"min":"0.9.0"},"lsqlite3":{"min":"0.9.0"}}}}},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"},"steurjan":{"max":"<2.0.0","min":"1.0.0"}},"latest":{"openbookregister":true,"steurjan":true},"released":"2026-04-22"},{"tier":"free","description":"SQLite storage backend","version":"0.1.3+b47cc6aa","requires":{"system":{"sqlite3-lua":{"one-of":{"lua-sql-sqlite3":{"min":"0.9.0"},"lsqlite3":{"min":"0.9.0"}}}}},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"},"steurjan":{"max":"<2.0.0","min":"1.0.0"}},"latest":{"openbookregister":false,"steurjan":false},"released":"2026-04-17"},{"tier":"free","description":"SQLite storage backend","version":"0.1.2+2ea11433","requires":{"system":{"lua-sql-sqlite3":{"min":"0.9.0"}}},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"openbookregister":false},"released":"2026-04-17"},{"tier":"free","description":"SQLite storage backend","version":"0.1.1+243bf884","requires":{"system":{"luasqlite3":{"min":"0.9.0"}}},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"openbookregister":false},"released":"2026-04-17"},{"tier":"free","description":"SQLite storage backend","version":"0.1.0+65568170","requires":{"system":{"luasqlite3":{"min":"0.9.0"}}},"supports":{"openbookregister":{"max":"<2.0.0","min":"1.0.0"},"steurjan":{"max":"<2.0.0","min":"1.0.0"}},"latest":{"openbookregister":false,"steurjan":false},"released":"2026-04-17"}],"http-server":[{"version":"0.3.1+a4aa0a87","released":"2026-07-17","supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"requires":{"system":{"socket":{"min":3.0}}},"description":"Generic TCP-based HTTP server with URL param routing and static file serving","latest":{"openbookregister":true},"tier":"free"},{"tier":"free","description":"Generic TCP-based HTTP server with URL param routing and static file serving","version":"0.3.0+3261aa6f","requires":{"system":{"socket":{"min":3.0}}},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"openbookregister":false},"released":"2026-07-17"},{"tier":"free","description":"Generic TCP-based HTTP server with URL param routing and static file serving","version":"0.2.0+77253d3d","requires":{"system":{"socket":{"min":3.0}}},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"openbookregister":false},"released":"2026-04-22"},{"tier":"free","description":"Generic TCP-based HTTP server with URL param routing and static file serving","version":"0.1.3+81faed66","requires":{"system":{"socket":{"min":3}}},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"openbookregister":false},"released":"2026-04-14"},{"tier":"free","description":"Generic TCP-based HTTP server with URL param routing and static file serving","version":"0.1.2+eb857c68","requires":{"system":{"socket":{"min":3}}},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"openbookregister":false},"released":"2026-04-14"},{"tier":"free","description":"Generic TCP-based HTTP server with URL param routing and static file serving","version":"0.1.1+c696c6cf","requires":{"system":{"lua-socket":{"min":3}}},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"openbookregister":false},"released":"2026-04-14"},{"tier":"free","description":"Generic TCP-based HTTP server with URL param routing and static file serving","version":"0.1.0+ca749c8a","requires":{"system":{"lua-socket":{"min":3}}},"supports":{},"latest":{},"released":"2026-04-14"},{"tier":"free","description":"Generic TCP-based HTTP server with URL param routing and static file serving","version":"0.1.0+ca749c8a-dirty","requires":{"system":{"lua-socket":{"min":3}}},"supports":{},"latest":{},"released":"2026-04-14"}],"product":[{"tier":"free","description":"Shared product module -- validation, category resolution, price lookup, bundle expansion","version":"0.2.0+69bf06a6","requires":{"system":[]},"supports":{"redan":{"max":"<2.0.0","min":"0.1.0"},"raidjan":{"max":"<2.0.0","min":"0.1.0"},"kaupapi":{"max":"<2.0.0","min":"0.1.0"},"stapul":{"max":"<2.0.0","min":"0.1.0"},"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"redan":true,"raidjan":true,"kaupapi":true,"stapul":true,"steurjan":true},"released":"2026-05-03"},{"tier":"free","description":"Shared product module -- validation, category resolution, price lookup, bundle expansion","version":"0.1.2+570bdf80","requires":{"system":[]},"supports":{"redan":{"max":"<2.0.0","min":"0.1.0"},"raidjan":{"max":"<2.0.0","min":"0.1.0"},"kaupapi":{"max":"<2.0.0","min":"0.1.0"},"stapul":{"max":"<2.0.0","min":"0.1.0"},"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"redan":false,"raidjan":false,"kaupapi":false,"stapul":false,"steurjan":false},"released":"2026-05-03"}],"log-file":[{"tier":"free","description":"File log backend -- writes daw_log/v1 entries to a log file","version":"0.1.3+9475f2e2","requires":{"system":[]},"supports":[],"latest":[],"released":"2026-06-04"},{"tier":"free","description":"File log backend -- writes daw_log/v1 entries to a log file","version":"0.1.2+9b5e04e4","requires":{"system":[]},"supports":[],"latest":[],"released":"2026-06-04"},{"tier":"free","description":"File log backend -- writes daw_log/v1 entries to a log file","version":"0.1.1+8631b81c","requires":{"system":[]},"supports":[],"latest":[],"released":"2026-06-03"},{"tier":"free","description":"File log backend -- writes daw_log/v1 entries to a log file","version":"0.1.0+c50286d0","requires":{"system":[]},"supports":[],"latest":[],"released":"2026-06-03"},{"tier":"free","description":"File log backend -- writes daw_log/v1 entries to a log file","version":"0.1.0+537ff816","requires":{"system":[]},"supports":[],"latest":[],"released":"2026-06-03"}],"fragjan-check-filehassiblingdir":[{"tier":"free","description":"fragjan primitive: check if a file has a sibling directory with the same name","version":"0.1.1+c7fe8ae0","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.0"}},"latest":{"fragjan":true},"released":"2026-05-31"}],"federation-sync":[{"tier":"free","description":"Block-based federation sync protocol for DAW instances","version":"0.1.0+56f7ba6d","requires":{"system":[]},"supports":{"redan":{"max":"<2.0.0","min":"0.1.0"},"raidjan":{"max":"<2.0.0","min":"0.1.0"},"obr":{"max":"<2.0.0","min":"0.1.0"},"kaupapi":{"max":"<2.0.0","min":"0.1.0"},"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"redan":true,"raidjan":true,"obr":true,"kaupapi":true,"steurjan":true},"released":"2026-05-03"}],"fragjan-check-exists":[{"tier":"free","description":"fragjan primitive: check if a file or directory exists in a project","version":"0.1.3+981615c3","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.2"}},"latest":{"fragjan":true},"released":"2026-05-27"},{"tier":"free","description":"fragjan primitive: check if a file or directory exists in a project","version":"0.1.2+89db1135","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.2"}},"latest":{"fragjan":false},"released":"2026-05-27"},{"tier":"free","description":"fragjan primitive: check if a file or directory exists in a project","version":"0.1.1+d6d3ba9a","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.2"}},"latest":{"fragjan":false},"released":"2026-05-23"},{"tier":"free","description":"fragjan primitive: check if a file or directory exists in a project","version":"0.1.0+6ea950a6","requires":{"system":{"lua":{"min":5.1}}},"supports":{"fragjan":{"min":"0.1.2"}},"latest":{"fragjan":false},"released":"2026-05-19"}],"auth":[{"tier":"free","description":"Authentication for DAW projects -- API key auth, JWT (no cookies)","version":"0.2.0+bedb8476","requires":{"system":{"openssl":{"min":3.0}}},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"openbookregister":true},"released":"2026-04-24"},{"tier":"free","description":"Authentication for DAW projects -- API key auth, JWT (no cookies)","version":"0.1.0+a905842c","requires":{"system":{"openssl":{"min":3}}},"supports":{"openbookregister":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"openbookregister":false},"released":"2026-04-14"}],"fragjan-check-linemultipattern":[{"tier":"free","description":"Check if a line contains all given patterns simultaneously (AND semantics)","version":"0.1.1+64c9de56","requires":{"system":[]},"supports":{"fragjan":{"min":"0.2.9"}},"latest":{"fragjan":true},"released":"2026-05-30"},{"tier":"free","description":"Check if a line contains all given patterns simultaneously (AND semantics)","version":"0.1.1+53fda3ce","requires":{"system":[]},"supports":{"fragjan":{"min":"0.2.9"}},"latest":{"fragjan":false},"released":"2026-05-30"}],"daw-modul-product":[{"tier":"free","description":"Shared product module -- validation, category resolution, price lookup, bundle expansion","version":"0.1.1+b7154039","requires":{"system":[]},"supports":{"redan":{"max":"<2.0.0","min":"0.1.0"},"raidjan":{"max":"<2.0.0","min":"0.1.0"},"kaupapi":{"max":"<2.0.0","min":"0.1.0"},"stapul":{"max":"<2.0.0","min":"0.1.0"},"steurjan":{"max":"<2.0.0","min":"0.1.0"}},"latest":{"redan":true,"raidjan":true,"kaupapi":true,"stapul":true,"steurjan":true},"released":"2026-05-01"}]}} \ No newline at end of file diff --git a/registry-index.json.minisig b/registry-index.json.minisig index b08137e..7f11445 100644 --- a/registry-index.json.minisig +++ b/registry-index.json.minisig @@ -1,4 +1,4 @@ untrusted comment: signature from minisign secret key -RUQBsYbloFAfPkzHiBAfo25NI5vnJ+DQkfLjRQ1Qwug9eH0auZZfcBg7dYWSuQy7kiF0yA7o7qkNHMW1p2tI3HjBPr9f+sLr7gQ= -trusted comment: timestamp:1784310545 file:registry-index.json hashed -c+XWhtCwNeuO0fLY53RP29l9Z0ZKxad20IQmdjuzCKdqmZp0VFDYvdKvkNyTG0/qUmxLcD8BaDHL24OAAhySAA== +RUQBsYbloFAfPrTqNC7X/71AtSmoLg/lqZ+AYvIcph8vRz6sUPOexii+m6rcZUo0Frzj/eXKiz/NZ0hGxF8/z2iVZUPQxvzkhw0= +trusted comment: timestamp:1784312840 file:registry-index.json hashed +7SR1UAvRkLcOWbf6G5rbUJNHzGubqBKechWNcsMTeJ8p+ol/9WVGgm7rAtGZsPhR23AuQ/MsnNwZMB0AZXNfDQ==