unoverse 0.1.197 → 0.1.198
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/skills.mjs +10 -2
- package/package.json +1 -1
package/lib/skills.mjs
CHANGED
|
@@ -80,11 +80,19 @@ export function skillFileText(skill, rel, text) {
|
|
|
80
80
|
return `---\nname: ${skill}\ndescription: ${desc}\n---\n\n${body}`;
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
+
/**
|
|
84
|
+
* The site sits behind a CDN that serves llms.txt and pages from cache for a while after
|
|
85
|
+
* a release (observed 2026-09-05: ninety minutes, and the new skill pages absent from the
|
|
86
|
+
* listing throughout). An installer that read the cache would install last release's
|
|
87
|
+
* skills right after this one. A fresh query string is a fresh cache key.
|
|
88
|
+
*/
|
|
89
|
+
const fresh = (url) => `${url}?t=${Date.now()}`;
|
|
90
|
+
|
|
83
91
|
export async function installSkills() {
|
|
84
92
|
const target = join(homedir(), ".claude", "skills");
|
|
85
93
|
let files;
|
|
86
94
|
try {
|
|
87
|
-
const res = await fetch(`${DOCS}/llms.txt`);
|
|
95
|
+
const res = await fetch(fresh(`${DOCS}/llms.txt`));
|
|
88
96
|
if (!res.ok) throw new Error(`HTTP ${res.status}`);
|
|
89
97
|
files = skillFilesFromLlms(await res.text());
|
|
90
98
|
} catch {
|
|
@@ -101,7 +109,7 @@ export async function installSkills() {
|
|
|
101
109
|
const tmp = mkdtempSync(join(tmpdir(), "unoverse-skills-"));
|
|
102
110
|
try {
|
|
103
111
|
for (const f of files) {
|
|
104
|
-
const res = await fetch(f.url);
|
|
112
|
+
const res = await fetch(fresh(f.url));
|
|
105
113
|
if (!res.ok) throw new Error(`${f.url}: HTTP ${res.status}`);
|
|
106
114
|
const p = join(tmp, f.skill, f.rel);
|
|
107
115
|
mkdirSync(dirname(p), { recursive: true });
|
package/package.json
CHANGED