youmd 0.13.12 → 0.13.14

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.
Files changed (65) hide show
  1. package/dist/commands/chat.d.ts +5 -0
  2. package/dist/commands/chat.d.ts.map +1 -1
  3. package/dist/commands/chat.js +137 -21
  4. package/dist/commands/chat.js.map +1 -1
  5. package/dist/commands/doctor.d.ts +33 -2
  6. package/dist/commands/doctor.d.ts.map +1 -1
  7. package/dist/commands/doctor.js +69 -3
  8. package/dist/commands/doctor.js.map +1 -1
  9. package/dist/commands/founder.js +2 -2
  10. package/dist/commands/founder.js.map +1 -1
  11. package/dist/commands/push.d.ts +4 -1
  12. package/dist/commands/push.d.ts.map +1 -1
  13. package/dist/commands/push.js +30 -6
  14. package/dist/commands/push.js.map +1 -1
  15. package/dist/commands/stack.d.ts.map +1 -1
  16. package/dist/commands/stack.js +7 -2
  17. package/dist/commands/stack.js.map +1 -1
  18. package/dist/commands/sync.d.ts +5 -0
  19. package/dist/commands/sync.d.ts.map +1 -1
  20. package/dist/commands/sync.js +120 -19
  21. package/dist/commands/sync.js.map +1 -1
  22. package/dist/commands/tasks.d.ts.map +1 -1
  23. package/dist/commands/tasks.js +24 -1
  24. package/dist/commands/tasks.js.map +1 -1
  25. package/dist/index.js +3 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/lib/api-failure.d.ts +19 -0
  28. package/dist/lib/api-failure.d.ts.map +1 -0
  29. package/dist/lib/api-failure.js +67 -0
  30. package/dist/lib/api-failure.js.map +1 -0
  31. package/dist/lib/api.d.ts +22 -0
  32. package/dist/lib/api.d.ts.map +1 -1
  33. package/dist/lib/api.js +4 -0
  34. package/dist/lib/api.js.map +1 -1
  35. package/dist/lib/chat-errors.d.ts +47 -0
  36. package/dist/lib/chat-errors.d.ts.map +1 -0
  37. package/dist/lib/chat-errors.js +151 -0
  38. package/dist/lib/chat-errors.js.map +1 -0
  39. package/dist/lib/daemon.d.ts +13 -1
  40. package/dist/lib/daemon.d.ts.map +1 -1
  41. package/dist/lib/daemon.js +41 -2
  42. package/dist/lib/daemon.js.map +1 -1
  43. package/dist/lib/onboarding.d.ts.map +1 -1
  44. package/dist/lib/onboarding.js +53 -7
  45. package/dist/lib/onboarding.js.map +1 -1
  46. package/dist/lib/stream.d.ts.map +1 -1
  47. package/dist/lib/stream.js +2 -1
  48. package/dist/lib/stream.js.map +1 -1
  49. package/dist/lib/workspace-brief.d.ts +91 -0
  50. package/dist/lib/workspace-brief.d.ts.map +1 -0
  51. package/dist/lib/workspace-brief.js +402 -0
  52. package/dist/lib/workspace-brief.js.map +1 -0
  53. package/dist/mcp/server.d.ts +10 -0
  54. package/dist/mcp/server.d.ts.map +1 -1
  55. package/dist/mcp/server.js +125 -22
  56. package/dist/mcp/server.js.map +1 -1
  57. package/native/prebuilds/darwin-universal/youmd_safe_open.node +0 -0
  58. package/package.json +1 -1
  59. package/scripts/skillstack-sync/com.you.context-sync.plist +6 -6
  60. package/scripts/skillstack-sync/com.you.identity-sync.plist +6 -6
  61. package/scripts/skillstack-sync/com.you.orchestrator-watch.plist +7 -6
  62. package/scripts/skillstack-sync/com.you.realtime-sync.plist +7 -6
  63. package/scripts/skillstack-sync/com.you.skillstack-sync.plist +6 -6
  64. package/scripts/skillstack-sync/context-sync.sh +46 -6
  65. package/scripts/skillstack-sync/install-daemons.sh +42 -1
@@ -0,0 +1,402 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.GIT_FIELD_SEP = exports.defaultExec = void 0;
37
+ exports.collectRepoActivity = collectRepoActivity;
38
+ exports.readCurrentStateHeadline = readCurrentStateHeadline;
39
+ exports.readOpenItems = readOpenItems;
40
+ exports.describeAge = describeAge;
41
+ exports.buildProjectBrief = buildProjectBrief;
42
+ exports.readHomeAgentDocs = readHomeAgentDocs;
43
+ exports.buildWorkspaceBrief = buildWorkspaceBrief;
44
+ exports.buildStrongestMove = buildStrongestMove;
45
+ exports.formatProjectActivityForTool = formatProjectActivityForTool;
46
+ /**
47
+ * Fresh workspace brief — what is actually being worked on, right now.
48
+ *
49
+ * The You Agent used to open with a stored, weeks-old picture of each project
50
+ * ("bamf.ai heading to public beta") plus the first TODO line as the "next
51
+ * strongest move". This module reads the ground truth instead: git activity
52
+ * (branch, recent commits, dirty files), the current-state / TODO headlines,
53
+ * and the agent docs that steer every coding agent in that repo (AGENTS.md,
54
+ * CLAUDE.md, project-context/). It also surfaces the machine-level agent docs
55
+ * (~/.claude/CLAUDE.md, ~/AGENTS.md, ~/.codex/AGENTS.md) so the agent knows
56
+ * the operator's global directives, not just the ~/.you bundle.
57
+ *
58
+ * Everything here is read-only and best-effort: a missing git binary, a
59
+ * non-repo directory, or an unreadable file degrades to "unknown", never to a
60
+ * thrown error. `exec` is injectable so tests never shell out.
61
+ */
62
+ const fs = __importStar(require("fs"));
63
+ const os = __importStar(require("os"));
64
+ const path = __importStar(require("path"));
65
+ const child_process = __importStar(require("child_process"));
66
+ const DEFAULT_TIMEOUT_MS = 4000;
67
+ const defaultExec = (cmd, args, cwd) => {
68
+ try {
69
+ const result = child_process.spawnSync(cmd, args, {
70
+ cwd,
71
+ encoding: "utf-8",
72
+ timeout: DEFAULT_TIMEOUT_MS,
73
+ stdio: ["ignore", "pipe", "ignore"],
74
+ env: { ...process.env, GIT_TERMINAL_PROMPT: "0", LC_ALL: "C" },
75
+ });
76
+ if (result.error || result.status !== 0)
77
+ return { ok: false, stdout: "" };
78
+ return { ok: true, stdout: result.stdout ?? "" };
79
+ }
80
+ catch {
81
+ return { ok: false, stdout: "" };
82
+ }
83
+ };
84
+ exports.defaultExec = defaultExec;
85
+ /** Unit separator: never appears in commit subjects, so it is a safe field delimiter. */
86
+ exports.GIT_FIELD_SEP = "";
87
+ function collectRepoActivity(projectDir, opts = {}) {
88
+ const exec = opts.exec ?? exports.defaultExec;
89
+ const now = opts.now ?? Date.now();
90
+ const maxCommits = opts.maxCommits ?? 8;
91
+ const empty = { isRepo: false, commits: [], commitsLast7d: 0, dirtyFiles: 0, lastCommitFiles: [] };
92
+ if (!fs.existsSync(path.join(projectDir, ".git")))
93
+ return empty;
94
+ const branchRes = exec("git", ["rev-parse", "--abbrev-ref", "HEAD"], projectDir);
95
+ const branch = branchRes.ok ? branchRes.stdout.trim() || undefined : undefined;
96
+ const S = exports.GIT_FIELD_SEP;
97
+ const logRes = exec("git", ["log", `-n${Math.max(maxCommits, 20)}`, `--format=%h${S}%s${S}%cr${S}%an${S}%ct`, "--no-merges"], projectDir);
98
+ const commits = [];
99
+ if (logRes.ok) {
100
+ for (const line of logRes.stdout.split("\n")) {
101
+ const [hash, subject, age, author, ct] = line.split(S);
102
+ if (!hash || !subject)
103
+ continue;
104
+ const at = Number(ct) * 1000;
105
+ commits.push({
106
+ hash,
107
+ subject: subject.trim(),
108
+ age: (age || "").trim(),
109
+ author: (author || "").trim(),
110
+ at: Number.isFinite(at) ? at : 0,
111
+ });
112
+ }
113
+ }
114
+ const weekAgo = now - 7 * 24 * 60 * 60 * 1000;
115
+ const commitsLast7d = commits.filter((c) => c.at >= weekAgo).length;
116
+ const statusRes = exec("git", ["status", "--porcelain", "--untracked-files=normal"], projectDir);
117
+ const dirtyFiles = statusRes.ok ? statusRes.stdout.split("\n").filter((l) => l.trim()).length : 0;
118
+ let lastCommitFiles = [];
119
+ if (commits.length > 0) {
120
+ const showRes = exec("git", ["show", "--name-only", "--format=", commits[0].hash], projectDir);
121
+ if (showRes.ok) {
122
+ lastCommitFiles = showRes.stdout.split("\n").map((l) => l.trim()).filter(Boolean).slice(0, 8);
123
+ }
124
+ }
125
+ return {
126
+ isRepo: true,
127
+ branch,
128
+ commits: commits.slice(0, maxCommits),
129
+ commitsLast7d,
130
+ dirtyFiles,
131
+ lastCommitAt: commits[0]?.at,
132
+ lastCommitFiles,
133
+ };
134
+ }
135
+ function readHead(filePath, maxChars) {
136
+ try {
137
+ if (!fs.existsSync(filePath))
138
+ return null;
139
+ const raw = fs.readFileSync(filePath, "utf-8");
140
+ // Drop YAML frontmatter and leading blank lines so the excerpt starts on content.
141
+ const body = raw.replace(/^---[\s\S]*?---\s*/m, "").trim();
142
+ if (!body)
143
+ return null;
144
+ return body.length > maxChars ? `${body.slice(0, maxChars).trimEnd()}...` : body;
145
+ }
146
+ catch {
147
+ return null;
148
+ }
149
+ }
150
+ /** First meaningful lines of CURRENT_STATE.md, collapsed to one paragraph. */
151
+ function readCurrentStateHeadline(projectDir, maxChars = 420) {
152
+ const candidates = [
153
+ path.join(projectDir, "project-context", "CURRENT_STATE.md"),
154
+ path.join(projectDir, "project-context", "current-state.md"),
155
+ path.join(projectDir, ".you", "project-context", "CURRENT_STATE.md"),
156
+ ];
157
+ for (const file of candidates) {
158
+ const head = readHead(file, 4000);
159
+ if (!head)
160
+ continue;
161
+ const lines = head
162
+ .split("\n")
163
+ .map((l) => l.replace(/^#+\s*/, "").replace(/^[-*]\s+/, "").trim())
164
+ .filter((l) => l && !/^(current state|status)$/i.test(l));
165
+ const joined = lines.slice(0, 6).join(" ");
166
+ if (!joined)
167
+ continue;
168
+ return joined.length > maxChars ? `${joined.slice(0, maxChars).trimEnd()}...` : joined;
169
+ }
170
+ return undefined;
171
+ }
172
+ /** Open checkbox / TODO-style items from TODO.md and feature-requests-active.md. */
173
+ function readOpenItems(projectDir, maxItems = 4) {
174
+ const files = [
175
+ path.join(projectDir, "project-context", "TODO.md"),
176
+ path.join(projectDir, "project-context", "feature-requests-active.md"),
177
+ path.join(projectDir, "TODO.md"),
178
+ ];
179
+ const items = [];
180
+ const seen = new Set();
181
+ for (const file of files) {
182
+ const head = readHead(file, 12000);
183
+ if (!head)
184
+ continue;
185
+ for (const raw of head.split("\n")) {
186
+ const line = raw.trim();
187
+ const open = line.match(/^[-*]\s+\[[\s?~-]\]\s+(.+)$/);
188
+ const tagged = line.match(/^[-*]\s+(?:TODO|P0|P1|BLOCKED|OPEN|NEXT|IN PROGRESS|ACTIVE)[:\s-]+(.+)$/i);
189
+ const candidate = (open?.[1] || tagged?.[1] || "").replace(/\s+/g, " ").trim();
190
+ if (!candidate || candidate.length < 8)
191
+ continue;
192
+ const key = candidate.toLowerCase();
193
+ if (seen.has(key))
194
+ continue;
195
+ seen.add(key);
196
+ items.push(candidate.length > 160 ? `${candidate.slice(0, 157)}...` : candidate);
197
+ if (items.length >= maxItems)
198
+ return items;
199
+ }
200
+ }
201
+ return items;
202
+ }
203
+ function countMarkdown(dir) {
204
+ try {
205
+ if (!fs.existsSync(dir))
206
+ return 0;
207
+ return fs.readdirSync(dir).filter((f) => f.toLowerCase().endsWith(".md")).length;
208
+ }
209
+ catch {
210
+ return 0;
211
+ }
212
+ }
213
+ function describeAge(fromMs, now) {
214
+ if (!fromMs)
215
+ return "unknown";
216
+ const diff = Math.max(0, now - fromMs);
217
+ const m = Math.floor(diff / 60000);
218
+ if (m < 1)
219
+ return "just now";
220
+ if (m < 60)
221
+ return `${m}m ago`;
222
+ const h = Math.round(m / 60);
223
+ if (h < 48)
224
+ return `${h}h ago`;
225
+ const d = Math.round(h / 24);
226
+ if (d < 14)
227
+ return `${d}d ago`;
228
+ const w = Math.round(d / 7);
229
+ if (w < 9)
230
+ return `${w}w ago`;
231
+ return `${Math.round(d / 30)}mo ago`;
232
+ }
233
+ function buildProjectBrief(project, opts = {}) {
234
+ const now = opts.now ?? Date.now();
235
+ const activity = collectRepoActivity(project.projectDir, { exec: opts.exec, now });
236
+ const currentState = readCurrentStateHeadline(project.projectDir);
237
+ const openItems = readOpenItems(project.projectDir);
238
+ const agentDocs = ["AGENTS.md", "CLAUDE.md", ".cursorrules", "GEMINI.md"].filter((f) => fs.existsSync(path.join(project.projectDir, f)));
239
+ const projectContextFiles = countMarkdown(path.join(project.projectDir, "project-context"));
240
+ let headline;
241
+ if (activity.commits.length > 0) {
242
+ const c = activity.commits[0];
243
+ const dirty = activity.dirtyFiles > 0
244
+ ? `, ${activity.dirtyFiles} uncommitted file${activity.dirtyFiles === 1 ? "" : "s"}`
245
+ : "";
246
+ headline = `last commit ${describeAge(c.at, now)} on ${activity.branch ?? "?"}: "${c.subject}"${dirty}`;
247
+ }
248
+ else if (currentState) {
249
+ headline = currentState;
250
+ }
251
+ else if (activity.isRepo) {
252
+ headline = `git repo on ${activity.branch ?? "?"} with no commits yet`;
253
+ }
254
+ else {
255
+ headline = "not a git repo; no recent activity signal";
256
+ }
257
+ const freshness = Math.max(activity.lastCommitAt ?? 0, activity.dirtyFiles > 0 ? now - 60000 : 0);
258
+ return {
259
+ name: project.name,
260
+ projectDir: project.projectDir,
261
+ activity,
262
+ currentState,
263
+ openItems,
264
+ agentDocs,
265
+ projectContextFiles,
266
+ headline,
267
+ freshness,
268
+ };
269
+ }
270
+ const HOME_AGENT_DOC_CANDIDATES = [
271
+ { label: "~/.claude/CLAUDE.md (global Claude Code instructions)", rel: ".claude/CLAUDE.md" },
272
+ { label: "~/AGENTS.md (home agent instructions)", rel: "AGENTS.md" },
273
+ { label: "~/CLAUDE.md (home Claude instructions)", rel: "CLAUDE.md" },
274
+ { label: "~/.codex/AGENTS.md (global Codex instructions)", rel: ".codex/AGENTS.md" },
275
+ { label: "~/.codex/instructions.md (global Codex instructions)", rel: ".codex/instructions.md" },
276
+ ];
277
+ function readHomeAgentDocs(homeDir = os.homedir(), maxChars = 1200) {
278
+ const docs = [];
279
+ for (const cand of HOME_AGENT_DOC_CANDIDATES) {
280
+ const full = path.join(homeDir, cand.rel);
281
+ const excerpt = readHead(full, maxChars);
282
+ if (excerpt)
283
+ docs.push({ label: cand.label, path: full, excerpt });
284
+ }
285
+ return docs;
286
+ }
287
+ function formatCommitList(commits, max) {
288
+ return commits
289
+ .slice(0, max)
290
+ .map((c) => `${c.subject} (${c.age})`)
291
+ .join("; ");
292
+ }
293
+ function buildWorkspaceBrief(projects, opts = {}) {
294
+ const now = opts.now ?? Date.now();
295
+ const maxProjects = opts.maxProjects ?? 6;
296
+ const seen = new Set();
297
+ const briefs = [];
298
+ for (const p of projects) {
299
+ const key = path.resolve(p.projectDir);
300
+ if (seen.has(key) || !fs.existsSync(p.projectDir))
301
+ continue;
302
+ seen.add(key);
303
+ briefs.push(buildProjectBrief(p, { exec: opts.exec, now }));
304
+ }
305
+ briefs.sort((a, b) => b.freshness - a.freshness);
306
+ const ranked = briefs.slice(0, maxProjects);
307
+ const homeDocs = opts.includeHomeDocs === false ? [] : readHomeAgentDocs(opts.homeDir);
308
+ const lines = [];
309
+ if (ranked.length > 0) {
310
+ lines.push("--- fresh local workspace (read from disk and git just now; this is ground truth and beats anything stored in the profile) ---");
311
+ ranked.forEach((b, i) => {
312
+ const a = b.activity;
313
+ const meta = [];
314
+ if (a.isRepo) {
315
+ meta.push(`branch ${a.branch ?? "?"}`);
316
+ meta.push(`${a.commitsLast7d} commit${a.commitsLast7d === 1 ? "" : "s"} in the last 7d`);
317
+ meta.push(`last commit ${describeAge(a.lastCommitAt, now)}`);
318
+ if (a.dirtyFiles > 0)
319
+ meta.push(`${a.dirtyFiles} uncommitted file${a.dirtyFiles === 1 ? "" : "s"}`);
320
+ }
321
+ else {
322
+ meta.push("no git repo");
323
+ }
324
+ lines.push(`${i + 1}. ${b.name} — ${b.projectDir} — ${meta.join(", ")}`);
325
+ if (a.commits.length > 0)
326
+ lines.push(` recent commits: ${formatCommitList(a.commits, 6)}`);
327
+ if (a.lastCommitFiles.length > 0)
328
+ lines.push(` last commit touched: ${a.lastCommitFiles.join(", ")}`);
329
+ if (b.currentState)
330
+ lines.push(` current state: ${b.currentState}`);
331
+ if (b.openItems.length > 0)
332
+ lines.push(` open items: ${b.openItems.slice(0, 3).join(" | ")}`);
333
+ const docs = [
334
+ ...b.agentDocs,
335
+ b.projectContextFiles > 0 ? `project-context (${b.projectContextFiles} files)` : null,
336
+ ].filter(Boolean);
337
+ if (docs.length > 0)
338
+ lines.push(` agent docs: ${docs.join(", ")}`);
339
+ });
340
+ }
341
+ if (homeDocs.length > 0) {
342
+ lines.push("");
343
+ lines.push("--- machine-level agent directives (apply to every project on this computer) ---");
344
+ for (const doc of homeDocs) {
345
+ lines.push(`# ${doc.label}`);
346
+ lines.push(doc.excerpt);
347
+ lines.push("");
348
+ }
349
+ }
350
+ const strongestProject = ranked[0] ?? null;
351
+ const strongestMove = strongestProject ? buildStrongestMove(strongestProject, now) : null;
352
+ return {
353
+ generatedAt: now,
354
+ projects: ranked,
355
+ homeDocs,
356
+ text: lines.join("\n").trim(),
357
+ strongestMove,
358
+ strongestProject,
359
+ };
360
+ }
361
+ /**
362
+ * A "next strongest move" grounded in what the repo is doing, not the first
363
+ * unchecked TODO line.
364
+ */
365
+ function buildStrongestMove(b, now = Date.now()) {
366
+ const a = b.activity;
367
+ if (a.dirtyFiles > 0 && a.commits.length > 0) {
368
+ return `${b.name} has ${a.dirtyFiles} uncommitted file${a.dirtyFiles === 1 ? "" : "s"} on ${a.branch ?? "?"} after "${a.commits[0].subject}" (${describeAge(a.commits[0].at, now)}) — pick up that thread.`;
369
+ }
370
+ if (a.commits.length > 0) {
371
+ const c = a.commits[0];
372
+ const item = b.openItems[0] ? ` open next: ${b.openItems[0]}.` : "";
373
+ return `${b.name} last moved ${describeAge(c.at, now)} with "${c.subject}" on ${a.branch ?? "?"}.${item}`;
374
+ }
375
+ if (b.currentState)
376
+ return `${b.name}: ${b.currentState}`;
377
+ if (b.openItems[0])
378
+ return `${b.name}: ${b.openItems[0]}`;
379
+ return `${b.name} has no git activity or project-context yet — worth scaffolding before anything else.`;
380
+ }
381
+ /** Compact tool-result block for read_project_context. */
382
+ function formatProjectActivityForTool(b, now = Date.now()) {
383
+ const a = b.activity;
384
+ const lines = [];
385
+ if (!a.isRepo) {
386
+ lines.push("git: not a repository");
387
+ }
388
+ else {
389
+ lines.push(`git: branch ${a.branch ?? "?"}, ${a.commitsLast7d} commits in the last 7d, last commit ${describeAge(a.lastCommitAt, now)}, ${a.dirtyFiles} uncommitted files`);
390
+ for (const c of a.commits.slice(0, 8)) {
391
+ lines.push(` ${c.hash} ${c.subject} — ${c.age}${c.author ? ` — ${c.author}` : ""}`);
392
+ }
393
+ if (a.lastCommitFiles.length > 0)
394
+ lines.push(` last commit touched: ${a.lastCommitFiles.join(", ")}`);
395
+ }
396
+ if (b.currentState)
397
+ lines.push(`current_state: ${b.currentState}`);
398
+ if (b.openItems.length > 0)
399
+ lines.push(`open_items: ${b.openItems.join(" | ")}`);
400
+ return lines.join("\n");
401
+ }
402
+ //# sourceMappingURL=workspace-brief.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-brief.js","sourceRoot":"","sources":["../../src/lib/workspace-brief.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@
20
20
  * youmd mcp --json # output config JSON for claude_desktop_config
21
21
  */
22
22
  import { type PortfolioGraphBrief } from "../lib/portfolio-graph";
23
+ import { type TaskEntry } from "../lib/tasksFile";
23
24
  export declare function activeBundleExists(): boolean;
24
25
  export declare function getInstalledSkills(): Array<{
25
26
  name: string;
@@ -107,6 +108,15 @@ export interface AgentBrief {
107
108
  mcpVersion: string;
108
109
  };
109
110
  project: AgentBriefProject | null;
111
+ attention: {
112
+ currentTask: Pick<TaskEntry, "id" | "title" | "status" | "priority" | "goal"> | null;
113
+ infrastructure: {
114
+ residentJobs: number;
115
+ executionProven: number;
116
+ brainUpdatedAt: string | null;
117
+ };
118
+ exceptions: string[];
119
+ };
110
120
  skills: {
111
121
  installed: string[];
112
122
  recommended: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}