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/config.js
CHANGED
|
@@ -40,32 +40,37 @@ exports.getLocalBundleDir = getLocalBundleDir;
|
|
|
40
40
|
exports.getBundleConfigPath = getBundleConfigPath;
|
|
41
41
|
exports.bundleLooksInitialized = bundleLooksInitialized;
|
|
42
42
|
exports.resolveActiveBundleDir = resolveActiveBundleDir;
|
|
43
|
+
exports.getLocalBundleMarkerPath = getLocalBundleMarkerPath;
|
|
44
|
+
exports.hasLocalBundleMarker = hasLocalBundleMarker;
|
|
45
|
+
exports.isHomeBundleDir = isHomeBundleDir;
|
|
46
|
+
exports.markLocalBundle = markLocalBundle;
|
|
47
|
+
exports.resolveSyncBundleDir = resolveSyncBundleDir;
|
|
48
|
+
exports.bundleResolutionNotice = bundleResolutionNotice;
|
|
49
|
+
exports.findGitRoot = findGitRoot;
|
|
50
|
+
exports.ensureYoumdGitignored = ensureYoumdGitignored;
|
|
51
|
+
exports.getEnvApiKey = getEnvApiKey;
|
|
52
|
+
exports.getEnvApiUrl = getEnvApiUrl;
|
|
53
|
+
exports.getAuthToken = getAuthToken;
|
|
43
54
|
exports.getConvexSiteUrl = getConvexSiteUrl;
|
|
44
55
|
exports.getAppUrl = getAppUrl;
|
|
45
56
|
exports.getDefaultConvexSiteUrl = getDefaultConvexSiteUrl;
|
|
46
57
|
exports.getDefaultAppUrl = getDefaultAppUrl;
|
|
58
|
+
exports.writeJsonAtomic = writeJsonAtomic;
|
|
47
59
|
exports.readGlobalConfig = readGlobalConfig;
|
|
48
60
|
exports.writeGlobalConfig = writeGlobalConfig;
|
|
49
61
|
exports.clearGlobalAuth = clearGlobalAuth;
|
|
50
62
|
exports.readLocalConfig = readLocalConfig;
|
|
51
63
|
exports.readBundleConfig = readBundleConfig;
|
|
52
64
|
exports.writeLocalConfig = writeLocalConfig;
|
|
65
|
+
exports.writeBundleConfig = writeBundleConfig;
|
|
53
66
|
exports.localBundleExists = localBundleExists;
|
|
54
67
|
exports.isAuthenticated = isAuthenticated;
|
|
55
68
|
exports.detectProjectContext = detectProjectContext;
|
|
56
|
-
exports.getProjectBundleDir = getProjectBundleDir;
|
|
57
|
-
exports.getProjectPrivateDir = getProjectPrivateDir;
|
|
58
|
-
exports.ensureProjectDirs = ensureProjectDirs;
|
|
59
|
-
exports.readProjectPrivateNotes = readProjectPrivateNotes;
|
|
60
|
-
exports.writeProjectPrivateNotes = writeProjectPrivateNotes;
|
|
61
|
-
exports.readProjectContext = readProjectContext;
|
|
62
|
-
exports.writeProjectContext = writeProjectContext;
|
|
63
69
|
exports.getSkillsDir = getSkillsDir;
|
|
64
70
|
exports.getSkillCatalogPath = getSkillCatalogPath;
|
|
65
71
|
exports.getSkillMetricsPath = getSkillMetricsPath;
|
|
66
72
|
exports.getProjectSkillsDir = getProjectSkillsDir;
|
|
67
73
|
exports.ensureSkillsDir = ensureSkillsDir;
|
|
68
|
-
exports.listProjects = listProjects;
|
|
69
74
|
const fs = __importStar(require("fs"));
|
|
70
75
|
const path = __importStar(require("path"));
|
|
71
76
|
const os = __importStar(require("os"));
|
|
@@ -103,7 +108,163 @@ function resolveActiveBundleDir() {
|
|
|
103
108
|
return homeDir;
|
|
104
109
|
return null;
|
|
105
110
|
}
|
|
111
|
+
// ─── T7: home-first bundle resolution for identity sync ──────────────
|
|
112
|
+
//
|
|
113
|
+
// pull/push/sync are IDENTITY operations — they default to the home brain
|
|
114
|
+
// (~/.youmd/) ALWAYS. Operating on a project-local .youmd/ requires either
|
|
115
|
+
// the explicit --local flag or a deliberate marker file
|
|
116
|
+
// (.youmd/youmd.local.json) written by `youmd init` / a previous --local
|
|
117
|
+
// run. This stops `youmd pull` inside a random repo from scattering
|
|
118
|
+
// identity copies into project-local .youmd/ directories.
|
|
119
|
+
const LOCAL_BUNDLE_MARKER_FILE = "youmd.local.json";
|
|
120
|
+
function getLocalBundleMarkerPath(bundleDir) {
|
|
121
|
+
return path.join(bundleDir, LOCAL_BUNDLE_MARKER_FILE);
|
|
122
|
+
}
|
|
123
|
+
function hasLocalBundleMarker(bundleDir) {
|
|
124
|
+
return fs.existsSync(getLocalBundleMarkerPath(bundleDir));
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Canonicalize a path for comparison: resolve symlinks where possible
|
|
128
|
+
* (macOS tmp/home paths often traverse /var → /private/var) and fall back
|
|
129
|
+
* to plain resolution when the path doesn't exist yet.
|
|
130
|
+
*/
|
|
131
|
+
function canonicalPath(p) {
|
|
132
|
+
const resolved = path.resolve(p);
|
|
133
|
+
try {
|
|
134
|
+
return fs.realpathSync(resolved);
|
|
135
|
+
}
|
|
136
|
+
catch {
|
|
137
|
+
try {
|
|
138
|
+
return path.join(fs.realpathSync(path.dirname(resolved)), path.basename(resolved));
|
|
139
|
+
}
|
|
140
|
+
catch {
|
|
141
|
+
return resolved;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
function isHomeBundleDir(bundleDir) {
|
|
146
|
+
return canonicalPath(bundleDir) === canonicalPath(getHomeBundleDir());
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Mark a project-local .youmd/ as a deliberate local bundle. Idempotent.
|
|
150
|
+
* Never marks the home bundle dir — home needs no marker.
|
|
151
|
+
*/
|
|
152
|
+
function markLocalBundle(bundleDir) {
|
|
153
|
+
if (isHomeBundleDir(bundleDir))
|
|
154
|
+
return;
|
|
155
|
+
fs.mkdirSync(bundleDir, { recursive: true });
|
|
156
|
+
const markerPath = getLocalBundleMarkerPath(bundleDir);
|
|
157
|
+
if (!fs.existsSync(markerPath)) {
|
|
158
|
+
writeJsonAtomic(markerPath, { localBundle: true, createdAt: new Date().toISOString() }, 0o644);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Resolve the bundle dir for identity sync operations (pull/push/sync).
|
|
163
|
+
*
|
|
164
|
+
* Home-first: defaults to ~/.youmd/. A project-local .youmd/ is used only
|
|
165
|
+
* when explicitly requested (--local) or deliberately marked
|
|
166
|
+
* (.youmd/youmd.local.json). When cwd IS the home directory, local and home
|
|
167
|
+
* are the same dir.
|
|
168
|
+
*/
|
|
169
|
+
function resolveSyncBundleDir(options = {}) {
|
|
170
|
+
const localDir = getLocalBundleDir();
|
|
171
|
+
const homeDir = getHomeBundleDir();
|
|
172
|
+
if (isHomeBundleDir(localDir)) {
|
|
173
|
+
return { dir: homeDir, scope: "home", reason: "home-is-cwd", localBundlePresent: false };
|
|
174
|
+
}
|
|
175
|
+
const localBundlePresent = bundleLooksInitialized(localDir);
|
|
176
|
+
if (options.local) {
|
|
177
|
+
return { dir: localDir, scope: "local", reason: "flag", localBundlePresent };
|
|
178
|
+
}
|
|
179
|
+
if (hasLocalBundleMarker(localDir)) {
|
|
180
|
+
return { dir: localDir, scope: "local", reason: "marker", localBundlePresent };
|
|
181
|
+
}
|
|
182
|
+
return { dir: homeDir, scope: "home", reason: "default", localBundlePresent };
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* One-line notice explaining which bundle root is in use and how to target
|
|
186
|
+
* the other. Returns null when there is nothing ambiguous to explain.
|
|
187
|
+
* Callers print it dim — this stays plain text so it is unit-testable.
|
|
188
|
+
*/
|
|
189
|
+
function bundleResolutionNotice(res) {
|
|
190
|
+
if (res.scope === "home" && res.localBundlePresent) {
|
|
191
|
+
return `using home bundle ${res.dir} (project-local .youmd/ ignored — pass --local to target it)`;
|
|
192
|
+
}
|
|
193
|
+
if (res.scope === "local") {
|
|
194
|
+
const why = res.reason === "flag" ? "--local" : "youmd.local.json marker";
|
|
195
|
+
return `using project-local bundle ${res.dir} (${why}) — omit --local and remove the marker to target ~/.youmd`;
|
|
196
|
+
}
|
|
197
|
+
return null;
|
|
198
|
+
}
|
|
199
|
+
// ─── T7: auto-gitignore project-local .youmd/ ─────────────────────────
|
|
200
|
+
/** Walk up from startDir looking for a .git directory. */
|
|
201
|
+
function findGitRoot(startDir) {
|
|
202
|
+
let dir = path.resolve(startDir);
|
|
203
|
+
const root = path.parse(dir).root;
|
|
204
|
+
for (;;) {
|
|
205
|
+
if (fs.existsSync(path.join(dir, ".git")))
|
|
206
|
+
return dir;
|
|
207
|
+
if (dir === root)
|
|
208
|
+
return null;
|
|
209
|
+
dir = path.dirname(dir);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
const GITIGNORE_YOUMD_PATTERNS = new Set([
|
|
213
|
+
".youmd",
|
|
214
|
+
".youmd/",
|
|
215
|
+
"/.youmd",
|
|
216
|
+
"/.youmd/",
|
|
217
|
+
"**/.youmd",
|
|
218
|
+
"**/.youmd/",
|
|
219
|
+
]);
|
|
220
|
+
const GITIGNORE_YOUMD_BLOCK = "# You.md identity bundle — never commit identity data\n.youmd/\n";
|
|
221
|
+
/**
|
|
222
|
+
* Ensure the repo containing a project-local .youmd/ gitignores it, so
|
|
223
|
+
* identity data is never silently committed. Appends `.youmd/` when a
|
|
224
|
+
* .gitignore exists without coverage; creates one at the git root when the
|
|
225
|
+
* repo has none; no-ops outside a git repo or when already covered.
|
|
226
|
+
*/
|
|
227
|
+
function ensureYoumdGitignored(bundleDir) {
|
|
228
|
+
if (isHomeBundleDir(bundleDir))
|
|
229
|
+
return "no-repo";
|
|
230
|
+
const gitRoot = findGitRoot(path.dirname(path.resolve(bundleDir)));
|
|
231
|
+
if (!gitRoot)
|
|
232
|
+
return "no-repo";
|
|
233
|
+
const gitignorePath = path.join(gitRoot, ".gitignore");
|
|
234
|
+
if (!fs.existsSync(gitignorePath)) {
|
|
235
|
+
fs.writeFileSync(gitignorePath, GITIGNORE_YOUMD_BLOCK);
|
|
236
|
+
return "created";
|
|
237
|
+
}
|
|
238
|
+
const content = fs.readFileSync(gitignorePath, "utf-8");
|
|
239
|
+
const covered = content
|
|
240
|
+
.split("\n")
|
|
241
|
+
.some((line) => GITIGNORE_YOUMD_PATTERNS.has(line.trim()));
|
|
242
|
+
if (covered)
|
|
243
|
+
return "covered";
|
|
244
|
+
const sep = content.length === 0 || content.endsWith("\n") ? "" : "\n";
|
|
245
|
+
fs.appendFileSync(gitignorePath, `${sep}\n${GITIGNORE_YOUMD_BLOCK}`);
|
|
246
|
+
return "appended";
|
|
247
|
+
}
|
|
248
|
+
// ─── Headless auth env overrides ─────────────────────────────────────
|
|
249
|
+
// YOUMD_API_KEY / YOUMD_API_URL let agents and CI run authenticated
|
|
250
|
+
// commands with zero filesystem state (no ~/.youmd/config.json needed).
|
|
251
|
+
// Env always wins over the config file.
|
|
252
|
+
function getEnvApiKey() {
|
|
253
|
+
const key = process.env.YOUMD_API_KEY?.trim();
|
|
254
|
+
return key || undefined;
|
|
255
|
+
}
|
|
256
|
+
function getEnvApiUrl() {
|
|
257
|
+
const url = process.env.YOUMD_API_URL?.trim();
|
|
258
|
+
return url || undefined;
|
|
259
|
+
}
|
|
260
|
+
/** Resolve the auth token: YOUMD_API_KEY env var first, then config file. */
|
|
261
|
+
function getAuthToken() {
|
|
262
|
+
return getEnvApiKey() || readGlobalConfig().token || undefined;
|
|
263
|
+
}
|
|
106
264
|
function getConvexSiteUrl() {
|
|
265
|
+
const envUrl = getEnvApiUrl();
|
|
266
|
+
if (envUrl)
|
|
267
|
+
return envUrl;
|
|
107
268
|
const config = readGlobalConfig();
|
|
108
269
|
return config.apiUrl || DEFAULT_API_URL;
|
|
109
270
|
}
|
|
@@ -117,23 +278,129 @@ function getDefaultConvexSiteUrl() {
|
|
|
117
278
|
function getDefaultAppUrl() {
|
|
118
279
|
return DEFAULT_APP_URL;
|
|
119
280
|
}
|
|
281
|
+
// ─── Atomic, locked config writes ─────────────────────────────────────
|
|
282
|
+
/**
|
|
283
|
+
* Write JSON to a file atomically: write to a tmp file in the same
|
|
284
|
+
* directory, then rename over the target (atomic on the same volume).
|
|
285
|
+
* Prevents partial/corrupt files when parallel agents write concurrently.
|
|
286
|
+
*/
|
|
287
|
+
function writeJsonAtomic(file, data, mode = 0o600) {
|
|
288
|
+
const tmp = `${file}.${process.pid}.${Date.now()}.tmp`;
|
|
289
|
+
try {
|
|
290
|
+
fs.writeFileSync(tmp, JSON.stringify(data, null, 2) + "\n", { mode });
|
|
291
|
+
fs.renameSync(tmp, file);
|
|
292
|
+
}
|
|
293
|
+
catch (err) {
|
|
294
|
+
try {
|
|
295
|
+
fs.unlinkSync(tmp);
|
|
296
|
+
}
|
|
297
|
+
catch { /* tmp may not exist */ }
|
|
298
|
+
throw err;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
/** Synchronous sleep without busy-looping (Atomics.wait works on the Node main thread). */
|
|
302
|
+
function sleepSync(ms) {
|
|
303
|
+
try {
|
|
304
|
+
Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
|
|
305
|
+
}
|
|
306
|
+
catch {
|
|
307
|
+
// SharedArrayBuffer unavailable — skip the wait
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
const LOCK_STALE_MS = 5000;
|
|
311
|
+
/**
|
|
312
|
+
* Acquire a simple O_EXCL lockfile next to `file`. Retries 5x with ~50ms
|
|
313
|
+
* jitter. Returns a release function, or null if the lock could not be
|
|
314
|
+
* acquired (callers proceed anyway — the atomic rename still prevents
|
|
315
|
+
* corruption; the lock just narrows read-modify-write races).
|
|
316
|
+
*/
|
|
317
|
+
function acquireFileLock(file) {
|
|
318
|
+
const lockPath = `${file}.lock`;
|
|
319
|
+
for (let attempt = 0; attempt < 5; attempt++) {
|
|
320
|
+
try {
|
|
321
|
+
const fd = fs.openSync(lockPath, "wx"); // O_CREAT | O_EXCL
|
|
322
|
+
fs.writeSync(fd, String(process.pid));
|
|
323
|
+
fs.closeSync(fd);
|
|
324
|
+
return () => {
|
|
325
|
+
try {
|
|
326
|
+
fs.unlinkSync(lockPath);
|
|
327
|
+
}
|
|
328
|
+
catch { /* already gone */ }
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
catch {
|
|
332
|
+
// Lock held — clear it if stale (holder crashed), else wait + retry
|
|
333
|
+
try {
|
|
334
|
+
const stat = fs.statSync(lockPath);
|
|
335
|
+
if (Date.now() - stat.mtimeMs > LOCK_STALE_MS) {
|
|
336
|
+
fs.unlinkSync(lockPath);
|
|
337
|
+
continue;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
catch { /* lock vanished between attempts */ }
|
|
341
|
+
sleepSync(40 + Math.floor(Math.random() * 40));
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
return null;
|
|
345
|
+
}
|
|
346
|
+
/** Ensure ~/.youmd is 0700 and config.json is 0600 (fix on read if wrong). */
|
|
347
|
+
function enforceGlobalConfigPermissions() {
|
|
348
|
+
if (process.platform === "win32")
|
|
349
|
+
return;
|
|
350
|
+
try {
|
|
351
|
+
const dirMode = fs.statSync(GLOBAL_CONFIG_DIR).mode & 0o777;
|
|
352
|
+
if (dirMode !== 0o700)
|
|
353
|
+
fs.chmodSync(GLOBAL_CONFIG_DIR, 0o700);
|
|
354
|
+
}
|
|
355
|
+
catch { /* dir may not exist yet */ }
|
|
356
|
+
try {
|
|
357
|
+
const fileMode = fs.statSync(GLOBAL_CONFIG_FILE).mode & 0o777;
|
|
358
|
+
if (fileMode !== 0o600)
|
|
359
|
+
fs.chmodSync(GLOBAL_CONFIG_FILE, 0o600);
|
|
360
|
+
}
|
|
361
|
+
catch { /* file may not exist yet */ }
|
|
362
|
+
}
|
|
120
363
|
function readGlobalConfig() {
|
|
121
364
|
if (!fs.existsSync(GLOBAL_CONFIG_FILE)) {
|
|
122
365
|
return {};
|
|
123
366
|
}
|
|
367
|
+
let raw;
|
|
124
368
|
try {
|
|
125
|
-
|
|
126
|
-
return JSON.parse(raw);
|
|
369
|
+
raw = fs.readFileSync(GLOBAL_CONFIG_FILE, "utf-8");
|
|
127
370
|
}
|
|
128
371
|
catch {
|
|
129
372
|
return {};
|
|
130
373
|
}
|
|
374
|
+
try {
|
|
375
|
+
const parsed = JSON.parse(raw);
|
|
376
|
+
enforceGlobalConfigPermissions();
|
|
377
|
+
return parsed;
|
|
378
|
+
}
|
|
379
|
+
catch {
|
|
380
|
+
// Preserve evidence instead of silently logging the user out
|
|
381
|
+
try {
|
|
382
|
+
fs.copyFileSync(GLOBAL_CONFIG_FILE, GLOBAL_CONFIG_FILE + ".bak");
|
|
383
|
+
console.error(`warning: ${GLOBAL_CONFIG_FILE} is corrupt — saved a copy to config.json.bak`);
|
|
384
|
+
}
|
|
385
|
+
catch {
|
|
386
|
+
console.error(`warning: ${GLOBAL_CONFIG_FILE} is corrupt and could not be backed up`);
|
|
387
|
+
}
|
|
388
|
+
return {};
|
|
389
|
+
}
|
|
131
390
|
}
|
|
132
391
|
function writeGlobalConfig(config) {
|
|
133
392
|
if (!fs.existsSync(GLOBAL_CONFIG_DIR)) {
|
|
134
|
-
fs.mkdirSync(GLOBAL_CONFIG_DIR, { recursive: true });
|
|
393
|
+
fs.mkdirSync(GLOBAL_CONFIG_DIR, { recursive: true, mode: 0o700 });
|
|
394
|
+
}
|
|
395
|
+
const release = acquireFileLock(GLOBAL_CONFIG_FILE);
|
|
396
|
+
try {
|
|
397
|
+
writeJsonAtomic(GLOBAL_CONFIG_FILE, config, 0o600);
|
|
398
|
+
enforceGlobalConfigPermissions();
|
|
399
|
+
}
|
|
400
|
+
finally {
|
|
401
|
+
if (release)
|
|
402
|
+
release();
|
|
135
403
|
}
|
|
136
|
-
fs.writeFileSync(GLOBAL_CONFIG_FILE, JSON.stringify(config, null, 2) + "\n");
|
|
137
404
|
}
|
|
138
405
|
function clearGlobalAuth(options = {}) {
|
|
139
406
|
const config = readGlobalConfig();
|
|
@@ -174,15 +441,31 @@ function readBundleConfig(bundleDir) {
|
|
|
174
441
|
}
|
|
175
442
|
}
|
|
176
443
|
function writeLocalConfig(config) {
|
|
177
|
-
|
|
178
|
-
|
|
444
|
+
writeBundleConfig(getLocalBundleDir(), config);
|
|
445
|
+
}
|
|
446
|
+
/**
|
|
447
|
+
* Bundle-dir-aware twin of writeLocalConfig (T7). Same lock + atomic-rename
|
|
448
|
+
* write path; at the home bundle dir this file (~/.youmd/config.json) also
|
|
449
|
+
* carries GlobalConfig fields — callers must read-modify-write via
|
|
450
|
+
* readBundleConfig so those fields are preserved.
|
|
451
|
+
*/
|
|
452
|
+
function writeBundleConfig(bundleDir, config) {
|
|
453
|
+
fs.mkdirSync(bundleDir, { recursive: true });
|
|
454
|
+
const configPath = getBundleConfigPath(bundleDir);
|
|
455
|
+
const release = acquireFileLock(configPath);
|
|
456
|
+
try {
|
|
457
|
+
writeJsonAtomic(configPath, config);
|
|
458
|
+
}
|
|
459
|
+
finally {
|
|
460
|
+
if (release)
|
|
461
|
+
release();
|
|
462
|
+
}
|
|
179
463
|
}
|
|
180
464
|
function localBundleExists() {
|
|
181
465
|
return fs.existsSync(getLocalBundleDir());
|
|
182
466
|
}
|
|
183
467
|
function isAuthenticated() {
|
|
184
|
-
|
|
185
|
-
return !!config.token;
|
|
468
|
+
return !!getAuthToken();
|
|
186
469
|
}
|
|
187
470
|
const PROJECT_MARKERS = [
|
|
188
471
|
".youmd-project",
|
|
@@ -195,25 +478,47 @@ const PROJECT_MARKERS = [
|
|
|
195
478
|
];
|
|
196
479
|
/**
|
|
197
480
|
* Walk up from cwd looking for project markers.
|
|
481
|
+
*
|
|
482
|
+
* Nearest-marker-wins: the first directory (walking up from cwd) that
|
|
483
|
+
* contains ANY marker is the project root. Marker priority only breaks
|
|
484
|
+
* ties between markers at that same depth. This prevents a stray
|
|
485
|
+
* `.youmd-project` high in the tree (e.g. ~/Desktop) from outranking the
|
|
486
|
+
* nested repo the user is actually working in.
|
|
487
|
+
*
|
|
488
|
+
* The home directory itself is never treated as a project root — dotfiles
|
|
489
|
+
* and stray Makefiles in ~ are not a project.
|
|
490
|
+
*
|
|
198
491
|
* Returns project context if found, null otherwise.
|
|
199
492
|
*/
|
|
200
493
|
function detectProjectContext() {
|
|
201
494
|
let dir = process.cwd();
|
|
202
495
|
const root = path.parse(dir).root;
|
|
496
|
+
const home = os.homedir();
|
|
203
497
|
while (dir !== root) {
|
|
204
|
-
|
|
205
|
-
const
|
|
206
|
-
const
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
498
|
+
if (dir !== home) {
|
|
499
|
+
const found = [];
|
|
500
|
+
for (const marker of PROJECT_MARKERS) {
|
|
501
|
+
const markerPath = path.join(dir, marker);
|
|
502
|
+
const isDir = marker === ".git";
|
|
503
|
+
if (isDir) {
|
|
504
|
+
if (fs.existsSync(markerPath) && fs.statSync(markerPath).isDirectory()) {
|
|
505
|
+
found.push(buildProjectContext(dir, marker));
|
|
506
|
+
}
|
|
210
507
|
}
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
508
|
+
else {
|
|
509
|
+
if (fs.existsSync(markerPath) && fs.statSync(markerPath).isFile()) {
|
|
510
|
+
found.push(buildProjectContext(dir, marker));
|
|
511
|
+
}
|
|
215
512
|
}
|
|
216
513
|
}
|
|
514
|
+
if (found.length > 0) {
|
|
515
|
+
// Equal-depth tie-break preserves the original marker priorities.
|
|
516
|
+
return (found.find((candidate) => candidate.marker === ".youmd-project") ||
|
|
517
|
+
found.find((candidate) => candidate.marker === ".git") ||
|
|
518
|
+
found.find((candidate) => fs.existsSync(path.join(candidate.root, "AGENTS.md"))) ||
|
|
519
|
+
found.find((candidate) => fs.existsSync(path.join(candidate.root, "project-context"))) ||
|
|
520
|
+
found[0]);
|
|
521
|
+
}
|
|
217
522
|
}
|
|
218
523
|
dir = path.dirname(dir);
|
|
219
524
|
}
|
|
@@ -259,81 +564,9 @@ function buildProjectContext(projectRoot, marker) {
|
|
|
259
564
|
youmdProject,
|
|
260
565
|
};
|
|
261
566
|
}
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
function sanitizeProjectName(name) {
|
|
266
|
-
return name
|
|
267
|
-
.toLowerCase()
|
|
268
|
-
.replace(/[^a-z0-9_-]/g, "-")
|
|
269
|
-
.replace(/-+/g, "-")
|
|
270
|
-
.replace(/^-|-$/g, "");
|
|
271
|
-
}
|
|
272
|
-
/**
|
|
273
|
-
* Get the global .youmd/projects/{project-name}/ directory for project-specific files.
|
|
274
|
-
*/
|
|
275
|
-
function getProjectBundleDir(projectName) {
|
|
276
|
-
return path.join(GLOBAL_CONFIG_DIR, "projects", sanitizeProjectName(projectName));
|
|
277
|
-
}
|
|
278
|
-
/**
|
|
279
|
-
* Get the private context directory for a project.
|
|
280
|
-
*/
|
|
281
|
-
function getProjectPrivateDir(projectName) {
|
|
282
|
-
return path.join(getProjectBundleDir(projectName), "private");
|
|
283
|
-
}
|
|
284
|
-
/**
|
|
285
|
-
* Ensure the project bundle directory structure exists.
|
|
286
|
-
*/
|
|
287
|
-
function ensureProjectDirs(projectName) {
|
|
288
|
-
const projectDir = getProjectBundleDir(projectName);
|
|
289
|
-
const privateDir = path.join(projectDir, "private");
|
|
290
|
-
fs.mkdirSync(privateDir, { recursive: true });
|
|
291
|
-
return projectDir;
|
|
292
|
-
}
|
|
293
|
-
/**
|
|
294
|
-
* Read project-specific private notes from .youmd/projects/{name}/private/notes.md
|
|
295
|
-
*/
|
|
296
|
-
function readProjectPrivateNotes(projectName) {
|
|
297
|
-
const notesPath = path.join(getProjectPrivateDir(projectName), "notes.md");
|
|
298
|
-
if (!fs.existsSync(notesPath))
|
|
299
|
-
return null;
|
|
300
|
-
try {
|
|
301
|
-
return fs.readFileSync(notesPath, "utf-8");
|
|
302
|
-
}
|
|
303
|
-
catch {
|
|
304
|
-
return null;
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
/**
|
|
308
|
-
* Write project-specific private notes.
|
|
309
|
-
*/
|
|
310
|
-
function writeProjectPrivateNotes(projectName, content) {
|
|
311
|
-
const privateDir = getProjectPrivateDir(projectName);
|
|
312
|
-
fs.mkdirSync(privateDir, { recursive: true });
|
|
313
|
-
fs.writeFileSync(path.join(privateDir, "notes.md"), content);
|
|
314
|
-
}
|
|
315
|
-
/**
|
|
316
|
-
* Read project-specific config/context from .youmd/projects/{name}/context.json
|
|
317
|
-
*/
|
|
318
|
-
function readProjectContext(projectName) {
|
|
319
|
-
const contextPath = path.join(getProjectBundleDir(projectName), "context.json");
|
|
320
|
-
if (!fs.existsSync(contextPath))
|
|
321
|
-
return null;
|
|
322
|
-
try {
|
|
323
|
-
return JSON.parse(fs.readFileSync(contextPath, "utf-8"));
|
|
324
|
-
}
|
|
325
|
-
catch {
|
|
326
|
-
return null;
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
/**
|
|
330
|
-
* Write project-specific context.
|
|
331
|
-
*/
|
|
332
|
-
function writeProjectContext(projectName, context) {
|
|
333
|
-
const projectDir = getProjectBundleDir(projectName);
|
|
334
|
-
fs.mkdirSync(projectDir, { recursive: true });
|
|
335
|
-
fs.writeFileSync(path.join(projectDir, "context.json"), JSON.stringify(context, null, 2) + "\n");
|
|
336
|
-
}
|
|
567
|
+
// Project store path helpers (slug, ~/.youmd/projects/<name>/ dirs, private
|
|
568
|
+
// notes) live in lib/projectContext.ts — the single project-context engine.
|
|
569
|
+
// The duplicate copies that used to live here were removed (PRODUCT-AUDIT #14).
|
|
337
570
|
// ─── Skills Directories ──────────────────────────────────────────────
|
|
338
571
|
/**
|
|
339
572
|
* Global skills directory: ~/.youmd/skills/
|
|
@@ -369,27 +602,4 @@ function ensureSkillsDir() {
|
|
|
369
602
|
}
|
|
370
603
|
return dir;
|
|
371
604
|
}
|
|
372
|
-
/**
|
|
373
|
-
* List all known projects from .youmd/projects/
|
|
374
|
-
*/
|
|
375
|
-
function listProjects() {
|
|
376
|
-
const projectsDir = path.join(GLOBAL_CONFIG_DIR, "projects");
|
|
377
|
-
if (!fs.existsSync(projectsDir))
|
|
378
|
-
return [];
|
|
379
|
-
try {
|
|
380
|
-
return fs
|
|
381
|
-
.readdirSync(projectsDir)
|
|
382
|
-
.filter((entry) => {
|
|
383
|
-
const entryPath = path.join(projectsDir, entry);
|
|
384
|
-
return fs.statSync(entryPath).isDirectory();
|
|
385
|
-
})
|
|
386
|
-
.map((entry) => ({
|
|
387
|
-
name: entry,
|
|
388
|
-
dir: path.join(projectsDir, entry),
|
|
389
|
-
}));
|
|
390
|
-
}
|
|
391
|
-
catch {
|
|
392
|
-
return [];
|
|
393
|
-
}
|
|
394
|
-
}
|
|
395
605
|
//# sourceMappingURL=config.js.map
|
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/decompile.d.ts
CHANGED
|
@@ -16,6 +16,11 @@ export declare function detectFormat(youJson: Record<string, unknown>): BundleFo
|
|
|
16
16
|
* Decompile a youJson bundle to the filesystem.
|
|
17
17
|
* Creates all standard directories and writes markdown files.
|
|
18
18
|
* Returns the number of files written.
|
|
19
|
+
*
|
|
20
|
+
* If manifest.sha256.json is present in bundleDir, verifies each section hash
|
|
21
|
+
* and emits a dim warning (to stderr) for any mismatch — non-fatal.
|
|
19
22
|
*/
|
|
20
|
-
export declare function decompileToFilesystem(bundleDir: string, youJson: Record<string, unknown
|
|
23
|
+
export declare function decompileToFilesystem(bundleDir: string, youJson: Record<string, unknown>, options?: {
|
|
24
|
+
warnOnHashMismatch?: (msg: string) => void;
|
|
25
|
+
}): number;
|
|
21
26
|
//# sourceMappingURL=decompile.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decompile.d.ts","sourceRoot":"","sources":["../../src/lib/decompile.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"decompile.d.ts","sourceRoot":"","sources":["../../src/lib/decompile.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAE1D;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,YAAY,CAW3E;AAwVD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,CAAC,EAAE;IAAE,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,GACvD,MAAM,CA+BR"}
|