youmd 0.6.21 → 0.6.27
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/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +0 -1
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/chat.d.ts.map +1 -1
- package/dist/commands/chat.js +283 -184
- package/dist/commands/chat.js.map +1 -1
- package/dist/commands/export.d.ts +1 -0
- package/dist/commands/export.d.ts.map +1 -1
- package/dist/commands/export.js +5 -0
- package/dist/commands/export.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +21 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/keys.d.ts.map +1 -1
- package/dist/commands/keys.js +3 -3
- package/dist/commands/keys.js.map +1 -1
- package/dist/commands/link.d.ts.map +1 -1
- package/dist/commands/link.js +3 -3
- package/dist/commands/link.js.map +1 -1
- package/dist/commands/login.d.ts +29 -0
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +256 -127
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logs.js +0 -1
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/mcp.d.ts +14 -0
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +284 -28
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/okf.d.ts +12 -0
- package/dist/commands/okf.d.ts.map +1 -0
- package/dist/commands/okf.js +411 -0
- package/dist/commands/okf.js.map +1 -0
- package/dist/commands/private.d.ts.map +1 -1
- package/dist/commands/private.js +6 -5
- package/dist/commands/private.js.map +1 -1
- package/dist/commands/project.d.ts.map +1 -1
- package/dist/commands/project.js +9 -5
- package/dist/commands/project.js.map +1 -1
- package/dist/commands/publish.d.ts.map +1 -1
- package/dist/commands/publish.js +0 -1
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/pull.d.ts +24 -1
- package/dist/commands/pull.d.ts.map +1 -1
- package/dist/commands/pull.js +114 -14
- package/dist/commands/pull.js.map +1 -1
- package/dist/commands/push.d.ts +1 -0
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +33 -13
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/register.d.ts +6 -0
- package/dist/commands/register.d.ts.map +1 -1
- package/dist/commands/register.js +179 -79
- package/dist/commands/register.js.map +1 -1
- package/dist/commands/skill.d.ts.map +1 -1
- package/dist/commands/skill.js +121 -50
- package/dist/commands/skill.js.map +1 -1
- package/dist/commands/stack.d.ts +16 -0
- package/dist/commands/stack.d.ts.map +1 -0
- package/dist/commands/stack.js +863 -0
- package/dist/commands/stack.js.map +1 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +25 -5
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/sync.d.ts +23 -0
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +193 -12
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +21 -16
- package/dist/commands/whoami.js.map +1 -1
- package/dist/create.js +0 -0
- package/dist/index.js +64 -7
- package/dist/index.js.map +1 -1
- package/dist/lib/api.d.ts +127 -5
- package/dist/lib/api.d.ts.map +1 -1
- package/dist/lib/api.js +142 -5
- package/dist/lib/api.js.map +1 -1
- package/dist/lib/ascii.d.ts +1 -0
- package/dist/lib/ascii.d.ts.map +1 -1
- package/dist/lib/ascii.js +9 -26
- package/dist/lib/ascii.js.map +1 -1
- package/dist/lib/canonical-json.d.ts +8 -0
- package/dist/lib/canonical-json.d.ts.map +1 -0
- package/dist/lib/canonical-json.js +29 -0
- package/dist/lib/canonical-json.js.map +1 -0
- package/dist/lib/capability-router.d.ts +58 -0
- package/dist/lib/capability-router.d.ts.map +1 -0
- package/dist/lib/capability-router.js +54 -0
- package/dist/lib/capability-router.js.map +1 -0
- package/dist/lib/compiler.d.ts +32 -0
- package/dist/lib/compiler.d.ts.map +1 -1
- package/dist/lib/compiler.js +150 -0
- package/dist/lib/compiler.js.map +1 -1
- package/dist/lib/config.d.ts +71 -35
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +334 -124
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/decompile.d.ts +6 -1
- package/dist/lib/decompile.d.ts.map +1 -1
- package/dist/lib/decompile.js +120 -11
- package/dist/lib/decompile.js.map +1 -1
- package/dist/lib/hash.d.ts.map +1 -1
- package/dist/lib/hash.js +2 -19
- package/dist/lib/hash.js.map +1 -1
- package/dist/lib/heartbeat.d.ts +38 -0
- package/dist/lib/heartbeat.d.ts.map +1 -0
- package/dist/lib/heartbeat.js +70 -0
- package/dist/lib/heartbeat.js.map +1 -0
- package/dist/lib/host-link.d.ts +123 -0
- package/dist/lib/host-link.d.ts.map +1 -0
- package/dist/lib/host-link.js +350 -0
- package/dist/lib/host-link.js.map +1 -0
- package/dist/lib/merge.d.ts +50 -0
- package/dist/lib/merge.d.ts.map +1 -0
- package/dist/lib/merge.js +167 -0
- package/dist/lib/merge.js.map +1 -0
- package/dist/lib/okf-bundle.d.ts +104 -0
- package/dist/lib/okf-bundle.d.ts.map +1 -0
- package/dist/lib/okf-bundle.js +473 -0
- package/dist/lib/okf-bundle.js.map +1 -0
- package/dist/lib/okf-health.d.ts +40 -0
- package/dist/lib/okf-health.d.ts.map +1 -0
- package/dist/lib/okf-health.js +152 -0
- package/dist/lib/okf-health.js.map +1 -0
- package/dist/lib/okf-stack.d.ts +47 -0
- package/dist/lib/okf-stack.d.ts.map +1 -0
- package/dist/lib/okf-stack.js +331 -0
- package/dist/lib/okf-stack.js.map +1 -0
- package/dist/lib/okf-view.d.ts +49 -0
- package/dist/lib/okf-view.d.ts.map +1 -0
- package/dist/lib/okf-view.js +197 -0
- package/dist/lib/okf-view.js.map +1 -0
- package/dist/lib/okf.d.ts +130 -0
- package/dist/lib/okf.d.ts.map +1 -0
- package/dist/lib/okf.js +263 -0
- package/dist/lib/okf.js.map +1 -0
- package/dist/lib/onboarding.d.ts +17 -0
- package/dist/lib/onboarding.d.ts.map +1 -1
- package/dist/lib/onboarding.js +224 -207
- package/dist/lib/onboarding.js.map +1 -1
- package/dist/lib/project.d.ts +5 -0
- package/dist/lib/project.d.ts.map +1 -1
- package/dist/lib/project.js +8 -0
- package/dist/lib/project.js.map +1 -1
- package/dist/lib/projectContext.d.ts +201 -0
- package/dist/lib/projectContext.d.ts.map +1 -0
- package/dist/lib/projectContext.js +597 -0
- package/dist/lib/projectContext.js.map +1 -0
- package/dist/lib/render.d.ts +38 -1
- package/dist/lib/render.d.ts.map +1 -1
- package/dist/lib/render.js +83 -18
- package/dist/lib/render.js.map +1 -1
- package/dist/lib/skill-catalog.d.ts.map +1 -1
- package/dist/lib/skill-catalog.js +22 -2
- package/dist/lib/skill-catalog.js.map +1 -1
- package/dist/lib/skills.d.ts +20 -5
- package/dist/lib/skills.d.ts.map +1 -1
- package/dist/lib/skills.js +116 -58
- package/dist/lib/skills.js.map +1 -1
- package/dist/lib/stackEval.d.ts +87 -0
- package/dist/lib/stackEval.d.ts.map +1 -0
- package/dist/lib/stackEval.js +233 -0
- package/dist/lib/stackEval.js.map +1 -0
- package/dist/lib/stackImprove.d.ts +49 -0
- package/dist/lib/stackImprove.d.ts.map +1 -0
- package/dist/lib/stackImprove.js +313 -0
- package/dist/lib/stackImprove.js.map +1 -0
- package/dist/lib/stackInstall.d.ts +59 -0
- package/dist/lib/stackInstall.d.ts.map +1 -0
- package/dist/lib/stackInstall.js +162 -0
- package/dist/lib/stackInstall.js.map +1 -0
- package/dist/lib/stackSafety.d.ts +126 -0
- package/dist/lib/stackSafety.d.ts.map +1 -0
- package/dist/lib/stackSafety.js +486 -0
- package/dist/lib/stackSafety.js.map +1 -0
- package/dist/lib/stackUpdate.d.ts +44 -0
- package/dist/lib/stackUpdate.d.ts.map +1 -0
- package/dist/lib/stackUpdate.js +256 -0
- package/dist/lib/stackUpdate.js.map +1 -0
- package/dist/lib/stream.d.ts +116 -0
- package/dist/lib/stream.d.ts.map +1 -0
- package/dist/lib/stream.js +368 -0
- package/dist/lib/stream.js.map +1 -0
- package/dist/lib/youstack.d.ts +219 -0
- package/dist/lib/youstack.d.ts.map +1 -0
- package/dist/lib/youstack.js +1049 -0
- package/dist/lib/youstack.js.map +1 -0
- package/dist/mcp/registry.d.ts +133 -0
- package/dist/mcp/registry.d.ts.map +1 -0
- package/dist/mcp/registry.js +833 -0
- package/dist/mcp/registry.js.map +1 -0
- package/dist/mcp/server.d.ts +106 -5
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +851 -498
- package/dist/mcp/server.js.map +1 -1
- package/dist/postinstall.js +11 -2
- package/dist/postinstall.js.map +1 -1
- package/dist/you.d.ts +1 -0
- package/dist/you.js +40 -4
- package/dist/you.js.map +1 -1
- package/examples/youstack-bamfstack-public/docs/quickstart.md +34 -0
- package/examples/youstack-bamfstack-public/prompts/creator-draft-starter.md +15 -0
- package/examples/youstack-bamfstack-public/skills/bamfstack-start/SKILL.md +36 -0
- package/examples/youstack-bamfstack-public/tests/smoke.md +19 -0
- package/examples/youstack-bamfstack-public/workflows/creator-growth-workflow.md +22 -0
- package/examples/youstack-bamfstack-public/youstack.json +172 -0
- package/examples/youstack-personal/docs/quickstart.md +10 -0
- package/examples/youstack-personal/skills/youstack-start/SKILL.md +9 -0
- package/examples/youstack-personal/tests/smoke.md +9 -0
- package/examples/youstack-personal/workflows/startup.md +7 -0
- package/examples/youstack-personal/youstack.json +123 -0
- package/package.json +3 -3
- package/skills/claude-md-generator.md +1 -1
- package/skills/meta-improve.md +8 -3
- package/skills/proactive-context-fill.md +1 -1
- package/skills/youstack-maintainer.md +128 -0
- package/skills/youstack-start.md +78 -0
package/dist/lib/decompile.js
CHANGED
|
@@ -44,6 +44,8 @@ exports.detectFormat = detectFormat;
|
|
|
44
44
|
exports.decompileToFilesystem = decompileToFilesystem;
|
|
45
45
|
const fs = __importStar(require("fs"));
|
|
46
46
|
const path = __importStar(require("path"));
|
|
47
|
+
const node_crypto_1 = require("node:crypto");
|
|
48
|
+
const canonical_json_1 = require("./canonical-json");
|
|
47
49
|
/**
|
|
48
50
|
* Detect whether a youJson object uses the nested server format
|
|
49
51
|
* (identity.name, projects[], etc.) or the legacy CLI array format
|
|
@@ -89,7 +91,13 @@ function decompileNested(bundleDir, youJson) {
|
|
|
89
91
|
// profile/about.md
|
|
90
92
|
{
|
|
91
93
|
const lines = ['---', 'title: "About"', '---', ''];
|
|
92
|
-
|
|
94
|
+
const nameStr = identity.name || "";
|
|
95
|
+
// Only emit the # heading if we have a non-empty name — an empty `# ` would
|
|
96
|
+
// round-trip as `"#"` in bio.long because the compiler's parseAboutMd only
|
|
97
|
+
// matches `# <something>` (with a space and content after it).
|
|
98
|
+
if (nameStr) {
|
|
99
|
+
lines.push(`# ${nameStr}`);
|
|
100
|
+
}
|
|
93
101
|
if (identity.tagline)
|
|
94
102
|
lines.push(`\n${identity.tagline}`);
|
|
95
103
|
if (identity.location)
|
|
@@ -221,15 +229,18 @@ function decompileNested(bundleDir, youJson) {
|
|
|
221
229
|
filesWritten++;
|
|
222
230
|
}
|
|
223
231
|
}
|
|
224
|
-
// voice/voice.md
|
|
232
|
+
// voice/voice.md — only write if there is actual content
|
|
225
233
|
{
|
|
226
234
|
const rawMarkdown = typeof voice.markdown === "string" ? voice.markdown.trim() : "";
|
|
227
235
|
const overall = voice.overall || analysis.voice_summary || "";
|
|
228
|
-
const
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
236
|
+
const voiceContent = rawMarkdown || overall;
|
|
237
|
+
if (voiceContent) {
|
|
238
|
+
const lines = ['---', 'title: "Voice Profile"', '---', ''];
|
|
239
|
+
lines.push(voiceContent);
|
|
240
|
+
lines.push("");
|
|
241
|
+
fs.writeFileSync(path.join(voiceDir, "voice.md"), lines.join("\n"));
|
|
242
|
+
filesWritten++;
|
|
243
|
+
}
|
|
233
244
|
}
|
|
234
245
|
// voice/voice.{platform}.md
|
|
235
246
|
const platforms = voice.platforms || {};
|
|
@@ -301,23 +312,121 @@ function decompileArray(bundleDir, youJson) {
|
|
|
301
312
|
}
|
|
302
313
|
return filesWritten;
|
|
303
314
|
}
|
|
315
|
+
/**
|
|
316
|
+
* Load manifest.sha256.json from a bundle directory if present.
|
|
317
|
+
* Returns null when the file is absent or unparseable.
|
|
318
|
+
*/
|
|
319
|
+
function loadSha256Manifest(bundleDir) {
|
|
320
|
+
const manifestPath = path.join(bundleDir, "manifest.sha256.json");
|
|
321
|
+
if (!fs.existsSync(manifestPath))
|
|
322
|
+
return null;
|
|
323
|
+
try {
|
|
324
|
+
return JSON.parse(fs.readFileSync(manifestPath, "utf-8"));
|
|
325
|
+
}
|
|
326
|
+
catch {
|
|
327
|
+
return null;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Verify a single section hash from the manifest against the decompiled youJson.
|
|
332
|
+
* Returns a warning string if the hash mismatches, or null if it matches / cannot verify.
|
|
333
|
+
* Warnings are non-fatal — callers should print them dimly.
|
|
334
|
+
*/
|
|
335
|
+
function verifySectionHash(sectionKey, expectedHash, youJson) {
|
|
336
|
+
const [dir, slug] = sectionKey.split("/");
|
|
337
|
+
let value;
|
|
338
|
+
// Mirror extractSectionValue logic from compiler.ts
|
|
339
|
+
const identity = youJson.identity || {};
|
|
340
|
+
const now = youJson.now || {};
|
|
341
|
+
const prefs = youJson.preferences || {};
|
|
342
|
+
const voice = youJson.voice || {};
|
|
343
|
+
const directives = youJson.agent_directives || {};
|
|
344
|
+
if (dir === "profile") {
|
|
345
|
+
if (slug === "about")
|
|
346
|
+
value = identity;
|
|
347
|
+
else if (slug === "now")
|
|
348
|
+
value = now.focus;
|
|
349
|
+
else if (slug === "projects")
|
|
350
|
+
value = youJson.projects;
|
|
351
|
+
else if (slug === "values")
|
|
352
|
+
value = youJson.values;
|
|
353
|
+
else if (slug === "links")
|
|
354
|
+
value = youJson.links;
|
|
355
|
+
else {
|
|
356
|
+
const customs = youJson.custom_sections || [];
|
|
357
|
+
value = customs.find((s) => s.id === slug) ?? slug;
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
else if (dir === "preferences") {
|
|
361
|
+
if (slug === "agent")
|
|
362
|
+
value = prefs.agent;
|
|
363
|
+
else if (slug === "writing")
|
|
364
|
+
value = prefs.writing;
|
|
365
|
+
else
|
|
366
|
+
value = slug;
|
|
367
|
+
}
|
|
368
|
+
else if (dir === "voice") {
|
|
369
|
+
if (slug === "voice")
|
|
370
|
+
value = { overall: voice.overall, markdown: voice.markdown };
|
|
371
|
+
else {
|
|
372
|
+
const platforms = voice.platforms || {};
|
|
373
|
+
const platform = slug.startsWith("voice.") ? slug.slice("voice.".length) : slug;
|
|
374
|
+
value = platforms[platform] ?? slug;
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
else if (dir === "directives") {
|
|
378
|
+
if (slug === "agent")
|
|
379
|
+
value = directives;
|
|
380
|
+
else
|
|
381
|
+
value = slug;
|
|
382
|
+
}
|
|
383
|
+
else {
|
|
384
|
+
return null;
|
|
385
|
+
}
|
|
386
|
+
const actualHash = (0, node_crypto_1.createHash)("sha256")
|
|
387
|
+
.update((0, canonical_json_1.canonicalJsonString)(value), "utf-8")
|
|
388
|
+
.digest("hex");
|
|
389
|
+
if (actualHash !== expectedHash) {
|
|
390
|
+
return `manifest.sha256.json: section "${sectionKey}" hash mismatch (expected ${expectedHash.slice(0, 12)}… got ${actualHash.slice(0, 12)}…)`;
|
|
391
|
+
}
|
|
392
|
+
return null;
|
|
393
|
+
}
|
|
304
394
|
// ─── Public API ──────────────────────────────────────────────────────
|
|
305
395
|
/**
|
|
306
396
|
* Decompile a youJson bundle to the filesystem.
|
|
307
397
|
* Creates all standard directories and writes markdown files.
|
|
308
398
|
* Returns the number of files written.
|
|
399
|
+
*
|
|
400
|
+
* If manifest.sha256.json is present in bundleDir, verifies each section hash
|
|
401
|
+
* and emits a dim warning (to stderr) for any mismatch — non-fatal.
|
|
309
402
|
*/
|
|
310
|
-
function decompileToFilesystem(bundleDir, youJson) {
|
|
403
|
+
function decompileToFilesystem(bundleDir, youJson, options) {
|
|
311
404
|
ensureStandardDirs(bundleDir);
|
|
312
405
|
const format = detectFormat(youJson);
|
|
406
|
+
let filesWritten = 0;
|
|
313
407
|
switch (format) {
|
|
314
408
|
case "nested":
|
|
315
|
-
|
|
409
|
+
filesWritten = decompileNested(bundleDir, youJson);
|
|
410
|
+
break;
|
|
316
411
|
case "array":
|
|
317
|
-
|
|
412
|
+
filesWritten = decompileArray(bundleDir, youJson);
|
|
413
|
+
break;
|
|
318
414
|
default:
|
|
319
415
|
// Unknown format — still create scaffold files
|
|
320
|
-
|
|
416
|
+
filesWritten = 0;
|
|
417
|
+
}
|
|
418
|
+
// Verify manifest if present
|
|
419
|
+
const sha256Manifest = loadSha256Manifest(bundleDir);
|
|
420
|
+
if (sha256Manifest && typeof sha256Manifest.sections === "object") {
|
|
421
|
+
const warn = options?.warnOnHashMismatch ?? ((msg) => {
|
|
422
|
+
process.stderr.write("\x1b[2m" + msg + "\x1b[0m\n");
|
|
423
|
+
});
|
|
424
|
+
for (const [sectionKey, expectedHash] of Object.entries(sha256Manifest.sections)) {
|
|
425
|
+
const warning = verifySectionHash(sectionKey, expectedHash, youJson);
|
|
426
|
+
if (warning)
|
|
427
|
+
warn(warning);
|
|
428
|
+
}
|
|
321
429
|
}
|
|
430
|
+
return filesWritten;
|
|
322
431
|
}
|
|
323
432
|
//# sourceMappingURL=decompile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decompile.js","sourceRoot":"","sources":["../../src/lib/decompile.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"decompile.js","sourceRoot":"","sources":["../../src/lib/decompile.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/hash.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../src/lib/hash.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../src/lib/hash.ts"],"names":[],"mappings":"AAGA,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAG1E;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C"}
|
package/dist/lib/hash.js
CHANGED
|
@@ -3,26 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.computeContentHash = computeContentHash;
|
|
4
4
|
exports.shortHash = shortHash;
|
|
5
5
|
const node_crypto_1 = require("node:crypto");
|
|
6
|
-
|
|
7
|
-
function canonicalJsonString(obj) {
|
|
8
|
-
if (obj === null || obj === undefined)
|
|
9
|
-
return "null";
|
|
10
|
-
if (typeof obj === "string")
|
|
11
|
-
return JSON.stringify(obj);
|
|
12
|
-
if (typeof obj === "number" || typeof obj === "boolean")
|
|
13
|
-
return String(obj);
|
|
14
|
-
if (Array.isArray(obj)) {
|
|
15
|
-
return "[" + obj.map(canonicalJsonString).join(",") + "]";
|
|
16
|
-
}
|
|
17
|
-
if (typeof obj === "object") {
|
|
18
|
-
const keys = Object.keys(obj).sort();
|
|
19
|
-
const pairs = keys.map((k) => JSON.stringify(k) + ":" + canonicalJsonString(obj[k]));
|
|
20
|
-
return "{" + pairs.join(",") + "}";
|
|
21
|
-
}
|
|
22
|
-
return String(obj);
|
|
23
|
-
}
|
|
6
|
+
const canonical_json_1 = require("./canonical-json");
|
|
24
7
|
function computeContentHash(youJson, youMd) {
|
|
25
|
-
const content = canonicalJsonString(youJson) + "\n---\n" + youMd;
|
|
8
|
+
const content = (0, canonical_json_1.canonicalJsonString)(youJson) + "\n---\n" + youMd;
|
|
26
9
|
return (0, node_crypto_1.createHash)("sha256").update(content, "utf-8").digest("hex");
|
|
27
10
|
}
|
|
28
11
|
function shortHash(hash) {
|
package/dist/lib/hash.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hash.js","sourceRoot":"","sources":["../../src/lib/hash.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"hash.js","sourceRoot":"","sources":["../../src/lib/hash.ts"],"names":[],"mappings":";;AAGA,gDAGC;AAED,8BAEC;AAVD,6CAAyC;AACzC,qDAAuD;AAEvD,SAAgB,kBAAkB,CAAC,OAAgB,EAAE,KAAa;IAChE,MAAM,OAAO,GAAG,IAAA,oCAAmB,EAAC,OAAO,CAAC,GAAG,SAAS,GAAG,KAAK,CAAC;IACjE,OAAO,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACrE,CAAC;AAED,SAAgB,SAAS,CAAC,IAAY;IACpC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* heartbeat.ts — L15 visible heartbeat signal.
|
|
3
|
+
*
|
|
4
|
+
* Checks two conditions:
|
|
5
|
+
* 1. activityInsights returns any skills with successRate < 0.8 (low performers).
|
|
6
|
+
* 2. The consolidationRuns review-queue (via local cache or remote read) is
|
|
7
|
+
* non-empty.
|
|
8
|
+
*
|
|
9
|
+
* Returns a single dim "stack wants to improve" message when either condition
|
|
10
|
+
* is true. Callers surface this ONCE per command invocation — no spam.
|
|
11
|
+
*
|
|
12
|
+
* NOTE: This module performs read-only, non-blocking checks using already-cached
|
|
13
|
+
* local data where possible. Remote calls are attempted only when already
|
|
14
|
+
* authenticated; failures are silently suppressed (heartbeat is advisory, not
|
|
15
|
+
* blocking).
|
|
16
|
+
*/
|
|
17
|
+
export interface HeartbeatSignal {
|
|
18
|
+
/** True when at least one improvement trigger is detected. */
|
|
19
|
+
active: boolean;
|
|
20
|
+
/** Single human-readable dim line for status / doctor output. */
|
|
21
|
+
message: string;
|
|
22
|
+
/** Breakdown of what triggered the signal. */
|
|
23
|
+
reasons: string[];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Returns a heartbeat signal by checking live skill insights (if authenticated).
|
|
27
|
+
* The result is meant to be cached and shown once per command invocation.
|
|
28
|
+
*/
|
|
29
|
+
export declare function getHeartbeatSignal(): Promise<HeartbeatSignal>;
|
|
30
|
+
/**
|
|
31
|
+
* Synchronous version using only local data (no network calls).
|
|
32
|
+
* Checks whether any locally-tracked skill metrics show zero success events,
|
|
33
|
+
* which is a weak but fast proxy for low-performing skills.
|
|
34
|
+
*
|
|
35
|
+
* Returns null when there is no local signal to report.
|
|
36
|
+
*/
|
|
37
|
+
export declare function getLocalHeartbeatHint(): string | null;
|
|
38
|
+
//# sourceMappingURL=heartbeat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../../src/lib/heartbeat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AASH,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,MAAM,EAAE,OAAO,CAAC;IAChB,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAaD;;;GAGG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC,CA4BnE;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,IAAI,CAIrD"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* heartbeat.ts — L15 visible heartbeat signal.
|
|
4
|
+
*
|
|
5
|
+
* Checks two conditions:
|
|
6
|
+
* 1. activityInsights returns any skills with successRate < 0.8 (low performers).
|
|
7
|
+
* 2. The consolidationRuns review-queue (via local cache or remote read) is
|
|
8
|
+
* non-empty.
|
|
9
|
+
*
|
|
10
|
+
* Returns a single dim "stack wants to improve" message when either condition
|
|
11
|
+
* is true. Callers surface this ONCE per command invocation — no spam.
|
|
12
|
+
*
|
|
13
|
+
* NOTE: This module performs read-only, non-blocking checks using already-cached
|
|
14
|
+
* local data where possible. Remote calls are attempted only when already
|
|
15
|
+
* authenticated; failures are silently suppressed (heartbeat is advisory, not
|
|
16
|
+
* blocking).
|
|
17
|
+
*/
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.getHeartbeatSignal = getHeartbeatSignal;
|
|
20
|
+
exports.getLocalHeartbeatHint = getLocalHeartbeatHint;
|
|
21
|
+
const api_1 = require("./api");
|
|
22
|
+
const config_1 = require("./config");
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
24
|
+
// Thresholds
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
/** Skills with successRate below this threshold count as low-performers. */
|
|
27
|
+
const LOW_PERFORMER_THRESHOLD = 0.8;
|
|
28
|
+
// ---------------------------------------------------------------------------
|
|
29
|
+
// Main function
|
|
30
|
+
// ---------------------------------------------------------------------------
|
|
31
|
+
/**
|
|
32
|
+
* Returns a heartbeat signal by checking live skill insights (if authenticated).
|
|
33
|
+
* The result is meant to be cached and shown once per command invocation.
|
|
34
|
+
*/
|
|
35
|
+
async function getHeartbeatSignal() {
|
|
36
|
+
const reasons = [];
|
|
37
|
+
if ((0, config_1.isAuthenticated)()) {
|
|
38
|
+
try {
|
|
39
|
+
const res = await (0, api_1.getSkillInsights)();
|
|
40
|
+
if (res.ok && Array.isArray(res.data?.insights)) {
|
|
41
|
+
const lowPerformers = res.data.insights.filter((s) => s.successRate < LOW_PERFORMER_THRESHOLD && s.uses >= 2);
|
|
42
|
+
if (lowPerformers.length > 0) {
|
|
43
|
+
const names = lowPerformers.map((s) => s.skill).slice(0, 2).join(", ");
|
|
44
|
+
reasons.push(`${lowPerformers.length} skill${lowPerformers.length === 1 ? "" : "s"} with low success rate (${names})`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
// Network unavailable — heartbeat is advisory, never blocking.
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
const active = reasons.length > 0;
|
|
53
|
+
const message = active
|
|
54
|
+
? "stack wants to improve — run `youmd stack improve` to generate proposals"
|
|
55
|
+
: "";
|
|
56
|
+
return { active, message, reasons };
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Synchronous version using only local data (no network calls).
|
|
60
|
+
* Checks whether any locally-tracked skill metrics show zero success events,
|
|
61
|
+
* which is a weak but fast proxy for low-performing skills.
|
|
62
|
+
*
|
|
63
|
+
* Returns null when there is no local signal to report.
|
|
64
|
+
*/
|
|
65
|
+
function getLocalHeartbeatHint() {
|
|
66
|
+
// Local-only: always return null since local metrics don't track outcomes.
|
|
67
|
+
// Real signal comes from the async getHeartbeatSignal() call.
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=heartbeat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../../src/lib/heartbeat.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;AAiCH,gDA4BC;AASD,sDAIC;AAxED,+BAAyC;AACzC,qCAA2C;AAe3C,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,4EAA4E;AAC5E,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAEpC,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E;;;GAGG;AACI,KAAK,UAAU,kBAAkB;IACtC,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,IAAI,IAAA,wBAAe,GAAE,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAA,sBAAgB,GAAE,CAAC;YACrC,IAAI,GAAG,CAAC,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;gBAChD,MAAM,aAAa,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,GAAG,uBAAuB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAC9D,CAAC;gBACF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7B,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACvE,OAAO,CAAC,IAAI,CACV,GAAG,aAAa,CAAC,MAAM,SAAS,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,2BAA2B,KAAK,GAAG,CACzG,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,+DAA+D;QACjE,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,MAAM;QACpB,CAAC,CAAC,0EAA0E;QAC5E,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AACtC,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,qBAAqB;IACnC,2EAA2E;IAC3E,8DAA8D;IAC9D,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Host-link engine — the ONE implementation that links You.md skills and
|
|
3
|
+
* YouStack adapters into agent hosts (Claude Code, Codex, Cursor, fallback).
|
|
4
|
+
*
|
|
5
|
+
* P11 / PRODUCT-AUDIT #13 / FEATURE-ROADMAP 3.7: there used to be multiple
|
|
6
|
+
* drifting per-host link code paths (youstack.ts switch + skills.ts switch).
|
|
7
|
+
* They are consolidated here. Hosts differ ONLY by adapter config (target
|
|
8
|
+
* dir, file naming, frontmatter shape) — never by separate code paths.
|
|
9
|
+
*
|
|
10
|
+
* Claude Code discovery contract (the empirical release gate):
|
|
11
|
+
* - every linked skill lands at `.claude/skills/<skill-name>/SKILL.md`
|
|
12
|
+
* - SKILL.md frontmatter parses and has non-empty `name` + `description`
|
|
13
|
+
* - frontmatter `name` matches the skill directory name
|
|
14
|
+
* - the skill body is non-empty
|
|
15
|
+
*/
|
|
16
|
+
export type HostLinkLayout = "skill-dir" | "flat-file" | "concat-file";
|
|
17
|
+
export interface HostAdapterConfig {
|
|
18
|
+
/** Normalized host id (claude-code, codex, cursor, or a fallback id). */
|
|
19
|
+
host: string;
|
|
20
|
+
/**
|
|
21
|
+
* skill-dir → <root>/<name>/SKILL.md (Claude Code / Codex discovery layout)
|
|
22
|
+
* flat-file → <root>/<prefix><name>.md
|
|
23
|
+
* concat-file → single <root>/<concatFileName> with one section per skill
|
|
24
|
+
*/
|
|
25
|
+
layout: HostLinkLayout;
|
|
26
|
+
/** Path segments of the host's link root, relative to the target dir. */
|
|
27
|
+
rootSegments: string[];
|
|
28
|
+
/** flat-file only: filename prefix (e.g. "youstacks-"). */
|
|
29
|
+
filePrefix?: string;
|
|
30
|
+
/** concat-file only: output filename (e.g. "youmd.md"). */
|
|
31
|
+
concatFileName?: string;
|
|
32
|
+
/** concat-file only: header parts joined with "\n" before sections. */
|
|
33
|
+
concatHeaderParts?: string[];
|
|
34
|
+
/**
|
|
35
|
+
* ensure → guarantee parseable frontmatter with name (matching the skill
|
|
36
|
+
* dir) + description. none → emit content untouched.
|
|
37
|
+
*/
|
|
38
|
+
frontmatter: "ensure" | "none";
|
|
39
|
+
}
|
|
40
|
+
/** One linkable skill: name + rendered markdown (may include frontmatter). */
|
|
41
|
+
export interface HostSkillUnit {
|
|
42
|
+
name: string;
|
|
43
|
+
description?: string;
|
|
44
|
+
content: string;
|
|
45
|
+
}
|
|
46
|
+
export interface HostLinkPlanEntry {
|
|
47
|
+
host: string;
|
|
48
|
+
relativePath: string;
|
|
49
|
+
content: string;
|
|
50
|
+
}
|
|
51
|
+
export interface HostLinkWriteResult extends HostLinkPlanEntry {
|
|
52
|
+
targetPath: string;
|
|
53
|
+
wrote: boolean;
|
|
54
|
+
}
|
|
55
|
+
export interface SkillDiscoveryCheck {
|
|
56
|
+
/** Path of the checked SKILL.md (relative or absolute, as provided). */
|
|
57
|
+
path: string;
|
|
58
|
+
/** Frontmatter name, when parseable. */
|
|
59
|
+
name: string;
|
|
60
|
+
ok: boolean;
|
|
61
|
+
problems: string[];
|
|
62
|
+
}
|
|
63
|
+
export interface SkillDiscoveryReport {
|
|
64
|
+
ok: boolean;
|
|
65
|
+
checks: SkillDiscoveryCheck[];
|
|
66
|
+
}
|
|
67
|
+
/** Adapter configs for YouStack manifest links (`youmd stack link`). */
|
|
68
|
+
export declare function youStackHostAdapterConfig(host: string): HostAdapterConfig;
|
|
69
|
+
export type InstalledSkillsTarget = "claude" | "cursor" | "codex";
|
|
70
|
+
/** Adapter configs for installed-skill links (`youmd skill link`). */
|
|
71
|
+
export declare function installedSkillsHostAdapterConfig(target: InstalledSkillsTarget): HostAdapterConfig;
|
|
72
|
+
export declare function isSafeHostRelativePath(value: string): boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Guarantee that skill content carries parseable frontmatter with a `name`
|
|
75
|
+
* matching the skill's directory and a non-empty `description` — the
|
|
76
|
+
* conditions Claude Code requires for discovery.
|
|
77
|
+
*
|
|
78
|
+
* Content that already satisfies the contract passes through byte-identical.
|
|
79
|
+
*/
|
|
80
|
+
export declare function ensureSkillFrontmatter(content: string, name: string, fallbackDescription?: string): string;
|
|
81
|
+
/** Default relative path the engine emits for one skill on a host. */
|
|
82
|
+
export declare function hostLinkRelativePath(config: HostAdapterConfig, name: string): string;
|
|
83
|
+
/**
|
|
84
|
+
* Build the per-host link plan: paths + rendered content.
|
|
85
|
+
*
|
|
86
|
+
* `explicitRelativePaths` lets a manifest declare adapter output paths that
|
|
87
|
+
* override the host's default layout (existing youstack.json behavior).
|
|
88
|
+
*/
|
|
89
|
+
export declare function buildHostLinkPlan(units: HostSkillUnit[], config: HostAdapterConfig, options?: {
|
|
90
|
+
explicitRelativePaths?: string[];
|
|
91
|
+
}): HostLinkPlanEntry[];
|
|
92
|
+
/** Write a link plan under `targetDir` (or preview it with dryRun). */
|
|
93
|
+
export declare function writeHostLinkPlan(plan: HostLinkPlanEntry[], targetDir: string, options?: {
|
|
94
|
+
dryRun?: boolean;
|
|
95
|
+
}): HostLinkWriteResult[];
|
|
96
|
+
/**
|
|
97
|
+
* Verify one emitted SKILL.md against the Claude Code discovery contract:
|
|
98
|
+
* parseable frontmatter, non-empty name + description, name matching the
|
|
99
|
+
* parent directory, non-empty body.
|
|
100
|
+
*/
|
|
101
|
+
export declare function verifySkillDiscoveryEntry(filePath: string, content: string): SkillDiscoveryCheck;
|
|
102
|
+
/**
|
|
103
|
+
* Verify every SKILL.md in a set of emitted link entries (plan entries or
|
|
104
|
+
* write results). Non-SKILL.md outputs (cursor rules, fallback adapters)
|
|
105
|
+
* are not discovery surfaces and are skipped.
|
|
106
|
+
*/
|
|
107
|
+
export declare function verifySkillDiscovery(entries: Array<{
|
|
108
|
+
relativePath?: string;
|
|
109
|
+
targetPath?: string;
|
|
110
|
+
content: string;
|
|
111
|
+
}>): SkillDiscoveryReport;
|
|
112
|
+
/**
|
|
113
|
+
* CI helper: verify every `<skillsRoot>/<name>/SKILL.md` on disk (e.g.
|
|
114
|
+
* `.claude/skills/`) against the discovery contract.
|
|
115
|
+
*/
|
|
116
|
+
export declare function verifySkillFilesOnDisk(skillsRoot: string): SkillDiscoveryReport;
|
|
117
|
+
/**
|
|
118
|
+
* Detection helper: have any of the given skills been linked into the
|
|
119
|
+
* Claude Code discovery layout under `root`? Also recognizes the legacy
|
|
120
|
+
* `.claude/skills/youmd/` directory so older links still count.
|
|
121
|
+
*/
|
|
122
|
+
export declare function hasLinkedClaudeSkills(root: string, skillNames: string[]): boolean;
|
|
123
|
+
//# sourceMappingURL=host-link.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host-link.d.ts","sourceRoot":"","sources":["../../src/lib/host-link.ts"],"names":[],"mappings":"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"}
|