youmd 0.9.7 → 0.10.1

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 (149) hide show
  1. package/dist/commands/brain.d.ts +25 -0
  2. package/dist/commands/brain.d.ts.map +1 -0
  3. package/dist/commands/brain.js +683 -0
  4. package/dist/commands/brain.js.map +1 -0
  5. package/dist/commands/doctor.d.ts.map +1 -1
  6. package/dist/commands/doctor.js +4 -0
  7. package/dist/commands/doctor.js.map +1 -1
  8. package/dist/commands/machine.d.ts +1 -0
  9. package/dist/commands/machine.d.ts.map +1 -1
  10. package/dist/commands/machine.js +52 -4
  11. package/dist/commands/machine.js.map +1 -1
  12. package/dist/commands/mine.d.ts +46 -0
  13. package/dist/commands/mine.d.ts.map +1 -0
  14. package/dist/commands/mine.js +317 -0
  15. package/dist/commands/mine.js.map +1 -0
  16. package/dist/commands/orchestrate.d.ts.map +1 -1
  17. package/dist/commands/orchestrate.js +37 -3
  18. package/dist/commands/orchestrate.js.map +1 -1
  19. package/dist/commands/project.d.ts.map +1 -1
  20. package/dist/commands/project.js +24 -0
  21. package/dist/commands/project.js.map +1 -1
  22. package/dist/commands/prompts.d.ts.map +1 -1
  23. package/dist/commands/prompts.js +5 -2
  24. package/dist/commands/prompts.js.map +1 -1
  25. package/dist/commands/remote.d.ts.map +1 -1
  26. package/dist/commands/remote.js +42 -13
  27. package/dist/commands/remote.js.map +1 -1
  28. package/dist/commands/skill.d.ts.map +1 -1
  29. package/dist/commands/skill.js +2 -0
  30. package/dist/commands/skill.js.map +1 -1
  31. package/dist/commands/tasks.d.ts +54 -0
  32. package/dist/commands/tasks.d.ts.map +1 -0
  33. package/dist/commands/tasks.js +513 -0
  34. package/dist/commands/tasks.js.map +1 -0
  35. package/dist/generated/capability-registry.d.ts +1096 -0
  36. package/dist/generated/capability-registry.d.ts.map +1 -0
  37. package/dist/generated/capability-registry.js +1204 -0
  38. package/dist/generated/capability-registry.js.map +1 -0
  39. package/dist/index.js +68 -0
  40. package/dist/index.js.map +1 -1
  41. package/dist/lib/api.d.ts +76 -0
  42. package/dist/lib/api.d.ts.map +1 -1
  43. package/dist/lib/api.js +18 -0
  44. package/dist/lib/api.js.map +1 -1
  45. package/dist/lib/brain/adapters.d.ts +34 -0
  46. package/dist/lib/brain/adapters.d.ts.map +1 -0
  47. package/dist/lib/brain/adapters.js +362 -0
  48. package/dist/lib/brain/adapters.js.map +1 -0
  49. package/dist/lib/brain/apply-control-plane.d.ts +17 -0
  50. package/dist/lib/brain/apply-control-plane.d.ts.map +1 -0
  51. package/dist/lib/brain/apply-control-plane.js +117 -0
  52. package/dist/lib/brain/apply-control-plane.js.map +1 -0
  53. package/dist/lib/brain/cache.d.ts +25 -0
  54. package/dist/lib/brain/cache.d.ts.map +1 -0
  55. package/dist/lib/brain/cache.js +99 -0
  56. package/dist/lib/brain/cache.js.map +1 -0
  57. package/dist/lib/brain/canonical.d.ts +5 -0
  58. package/dist/lib/brain/canonical.d.ts.map +1 -0
  59. package/dist/lib/brain/canonical.js +38 -0
  60. package/dist/lib/brain/canonical.js.map +1 -0
  61. package/dist/lib/brain/discovery.d.ts +9 -0
  62. package/dist/lib/brain/discovery.d.ts.map +1 -0
  63. package/dist/lib/brain/discovery.js +560 -0
  64. package/dist/lib/brain/discovery.js.map +1 -0
  65. package/dist/lib/brain/index.d.ts +55 -0
  66. package/dist/lib/brain/index.d.ts.map +1 -0
  67. package/dist/lib/brain/index.js +384 -0
  68. package/dist/lib/brain/index.js.map +1 -0
  69. package/dist/lib/brain/proposal.d.ts +179 -0
  70. package/dist/lib/brain/proposal.d.ts.map +1 -0
  71. package/dist/lib/brain/proposal.js +694 -0
  72. package/dist/lib/brain/proposal.js.map +1 -0
  73. package/dist/lib/brain/render.d.ts +33 -0
  74. package/dist/lib/brain/render.d.ts.map +1 -0
  75. package/dist/lib/brain/render.js +515 -0
  76. package/dist/lib/brain/render.js.map +1 -0
  77. package/dist/lib/brain/safe-file.d.ts +110 -0
  78. package/dist/lib/brain/safe-file.d.ts.map +1 -0
  79. package/dist/lib/brain/safe-file.js +564 -0
  80. package/dist/lib/brain/safe-file.js.map +1 -0
  81. package/dist/lib/brain/safety.d.ts +8 -0
  82. package/dist/lib/brain/safety.d.ts.map +1 -0
  83. package/dist/lib/brain/safety.js +42 -0
  84. package/dist/lib/brain/safety.js.map +1 -0
  85. package/dist/lib/brain/staged-apply.d.ts +57 -0
  86. package/dist/lib/brain/staged-apply.d.ts.map +1 -0
  87. package/dist/lib/brain/staged-apply.js +336 -0
  88. package/dist/lib/brain/staged-apply.js.map +1 -0
  89. package/dist/lib/brain/store.d.ts +26 -0
  90. package/dist/lib/brain/store.d.ts.map +1 -0
  91. package/dist/lib/brain/store.js +504 -0
  92. package/dist/lib/brain/store.js.map +1 -0
  93. package/dist/lib/brain/types.d.ts +160 -0
  94. package/dist/lib/brain/types.d.ts.map +1 -0
  95. package/dist/lib/brain/types.js +24 -0
  96. package/dist/lib/brain/types.js.map +1 -0
  97. package/dist/lib/config.d.ts +22 -1
  98. package/dist/lib/config.d.ts.map +1 -1
  99. package/dist/lib/config.js +70 -14
  100. package/dist/lib/config.js.map +1 -1
  101. package/dist/lib/daemon.d.ts +27 -0
  102. package/dist/lib/daemon.d.ts.map +1 -1
  103. package/dist/lib/daemon.js +57 -0
  104. package/dist/lib/daemon.js.map +1 -1
  105. package/dist/lib/machine-identity.d.ts +16 -0
  106. package/dist/lib/machine-identity.d.ts.map +1 -0
  107. package/dist/lib/machine-identity.js +101 -0
  108. package/dist/lib/machine-identity.js.map +1 -0
  109. package/dist/lib/orchestrator/approvals.d.ts +21 -0
  110. package/dist/lib/orchestrator/approvals.d.ts.map +1 -0
  111. package/dist/lib/orchestrator/approvals.js +65 -0
  112. package/dist/lib/orchestrator/approvals.js.map +1 -0
  113. package/dist/lib/orchestrator/loop.d.ts +1 -0
  114. package/dist/lib/orchestrator/loop.d.ts.map +1 -1
  115. package/dist/lib/orchestrator/loop.js +16 -0
  116. package/dist/lib/orchestrator/loop.js.map +1 -1
  117. package/dist/lib/orchestrator/supervisor.d.ts +41 -0
  118. package/dist/lib/orchestrator/supervisor.d.ts.map +1 -1
  119. package/dist/lib/orchestrator/supervisor.js +49 -0
  120. package/dist/lib/orchestrator/supervisor.js.map +1 -1
  121. package/dist/lib/orchestrator/tools.d.ts +11 -0
  122. package/dist/lib/orchestrator/tools.d.ts.map +1 -1
  123. package/dist/lib/orchestrator/tools.js +143 -0
  124. package/dist/lib/orchestrator/tools.js.map +1 -1
  125. package/dist/lib/project-strategy.d.ts +38 -0
  126. package/dist/lib/project-strategy.d.ts.map +1 -1
  127. package/dist/lib/project-strategy.js +91 -0
  128. package/dist/lib/project-strategy.js.map +1 -1
  129. package/dist/lib/projectContext.d.ts +6 -4
  130. package/dist/lib/projectContext.d.ts.map +1 -1
  131. package/dist/lib/projectContext.js +19 -17
  132. package/dist/lib/projectContext.js.map +1 -1
  133. package/dist/lib/redact.d.ts +15 -0
  134. package/dist/lib/redact.d.ts.map +1 -0
  135. package/dist/lib/redact.js +62 -0
  136. package/dist/lib/redact.js.map +1 -0
  137. package/dist/lib/tasksFile.d.ts +74 -0
  138. package/dist/lib/tasksFile.d.ts.map +1 -0
  139. package/dist/lib/tasksFile.js +502 -0
  140. package/dist/lib/tasksFile.js.map +1 -0
  141. package/dist/mcp/registry.d.ts +8 -2
  142. package/dist/mcp/registry.d.ts.map +1 -1
  143. package/dist/mcp/registry.js +189 -2
  144. package/dist/mcp/registry.js.map +1 -1
  145. package/dist/mcp/server.d.ts +1 -0
  146. package/dist/mcp/server.d.ts.map +1 -1
  147. package/dist/mcp/server.js +3 -2
  148. package/dist/mcp/server.js.map +1 -1
  149. package/package.json +1 -1
@@ -0,0 +1,502 @@
1
+ "use strict";
2
+ /**
3
+ * Canonical task ledger: strict project-context/tasks.json plus a deterministic
4
+ * generated tasks.md companion. tasks.json is the only editable truth.
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.TasksFileError = exports.TASK_PRIORITIES = exports.TASK_STATUSES = exports.TASKS_SCHEMA = void 0;
41
+ exports.generateTaskId = generateTaskId;
42
+ exports.tasksJsonPath = tasksJsonPath;
43
+ exports.tasksMdPath = tasksMdPath;
44
+ exports.parseTasksJson = parseTasksJson;
45
+ exports.parseLegacyTasksMd = parseLegacyTasksMd;
46
+ exports.renderTasksMd = renderTasksMd;
47
+ exports.assertTasksMdMatches = assertTasksMdMatches;
48
+ exports.reconcileMdCheckboxes = reconcileMdCheckboxes;
49
+ exports.resolveTaskWriteGrant = resolveTaskWriteGrant;
50
+ exports.readTasksDoc = readTasksDoc;
51
+ exports.writeTasksDoc = writeTasksDoc;
52
+ exports.addTask = addTask;
53
+ exports.findTask = findTask;
54
+ exports.openTasks = openTasks;
55
+ const fs = __importStar(require("fs"));
56
+ const path = __importStar(require("path"));
57
+ const crypto = __importStar(require("crypto"));
58
+ exports.TASKS_SCHEMA = "you-md/tasks/v1";
59
+ exports.TASK_STATUSES = ["proposed", "open", "in_progress", "done", "snoozed", "cancelled"];
60
+ exports.TASK_PRIORITIES = ["low", "normal", "high", "urgent"];
61
+ class TasksFileError extends Error {
62
+ constructor(code, message) {
63
+ super(`${code}: ${message}`);
64
+ this.code = code;
65
+ this.name = "TasksFileError";
66
+ }
67
+ }
68
+ exports.TasksFileError = TasksFileError;
69
+ const NOTES_START = "<!-- notes:start -->";
70
+ const NOTES_END = "<!-- notes:end -->";
71
+ const GENERATED_MARKER = "<!-- generated from tasks.json (you-md/tasks/v1). Do not edit;";
72
+ const ID_COMMENT = /<!--\s*id:([A-Za-z0-9_-]+)\s*-->/;
73
+ const TASK_ID = /^t-[A-Za-z0-9][A-Za-z0-9_-]{0,94}$/;
74
+ const PROJECT_NAME = /^[A-Za-z0-9][A-Za-z0-9._-]{0,99}$/;
75
+ const PROJECT_REF = /^project:[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$/;
76
+ const ARTIFACT_REF = /^artifact:[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?\/[a-z0-9][a-z0-9._-]{0,95}$/;
77
+ const SAFE_RELATIVE_PATH = /^(?!\/)(?![A-Za-z]:)(?!.*\\)(?!.*\/\/)(?!.*(?:^|\/)(?:\.{1,2})(?:\/|$))(?!.*[\u0000-\u001f\u007f])(?!.*\/$)[^/]+(?:\/[^/]+)*$/;
78
+ const OPEN_STATUSES = ["proposed", "open", "in_progress", "snoozed"];
79
+ const DOC_KEYS = new Set(["$schema", "project", "updatedAt", "tasks", "notes"]);
80
+ const TASK_KEYS = new Set([
81
+ "id", "title", "description", "status", "priority", "owner", "ownerLabel", "tags",
82
+ "source", "verify", "createdAt", "updatedAt", "completedAt",
83
+ ]);
84
+ function nowIso(now = new Date()) { return now.toISOString(); }
85
+ function isRecord(value) {
86
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
87
+ }
88
+ function exactIso(value) {
89
+ return typeof value === "string" && /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{3})?Z$/.test(value)
90
+ && Number.isFinite(Date.parse(value));
91
+ }
92
+ function boundedText(value, max, optional = false) {
93
+ if (value === undefined && optional)
94
+ return undefined;
95
+ if (typeof value !== "string" || !value.trim() || value.length > max || /[\u0000-\u0008\u000b\u000c\u000e-\u001f\u007f]/.test(value))
96
+ return undefined;
97
+ return value;
98
+ }
99
+ function assertNoUnknown(record, allowed, code, where) {
100
+ const unknown = Object.keys(record).filter((key) => !allowed.has(key));
101
+ if (unknown.includes("remoteId"))
102
+ throw new TasksFileError("TASKS_REMOTE_ID_FORBIDDEN", `${where} contains remoteId`);
103
+ if (unknown.length)
104
+ throw new TasksFileError(code, `${where} contains unknown fields: ${unknown.join(", ")}`);
105
+ }
106
+ function generateTaskId(now = new Date()) {
107
+ return `t-${now.toISOString().slice(0, 10).replace(/-/g, "")}-${crypto.randomBytes(3).toString("hex")}`;
108
+ }
109
+ function tasksJsonPath(contextDir) { return path.join(contextDir, "tasks.json"); }
110
+ function tasksMdPath(contextDir) { return path.join(contextDir, "tasks.md"); }
111
+ function parseTask(value, index) {
112
+ if (!isRecord(value))
113
+ throw new TasksFileError("TASKS_INVALID_TASK", `tasks[${index}] must be an object`);
114
+ assertNoUnknown(value, TASK_KEYS, "TASKS_INVALID_TASK", `tasks[${index}]`);
115
+ if (typeof value.id !== "string" || !TASK_ID.test(value.id))
116
+ throw new TasksFileError("TASKS_INVALID_TASK", `tasks[${index}].id is invalid`);
117
+ const title = boundedText(value.title, 240);
118
+ if (!title)
119
+ throw new TasksFileError("TASKS_INVALID_TASK", `tasks[${index}].title is invalid`);
120
+ if (!exports.TASK_STATUSES.includes(value.status))
121
+ throw new TasksFileError("TASKS_INVALID_TASK", `tasks[${index}].status is invalid`);
122
+ if (!exports.TASK_PRIORITIES.includes(value.priority))
123
+ throw new TasksFileError("TASKS_INVALID_TASK", `tasks[${index}].priority is invalid`);
124
+ if (value.owner !== "human" && value.owner !== "agent")
125
+ throw new TasksFileError("TASKS_INVALID_TASK", `tasks[${index}].owner is invalid`);
126
+ if (!Array.isArray(value.tags) || value.tags.length > 32 || value.tags.some((tag) => typeof tag !== "string" || !/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/.test(tag))) {
127
+ throw new TasksFileError("TASKS_INVALID_TASK", `tasks[${index}].tags are invalid`);
128
+ }
129
+ if (new Set(value.tags).size !== value.tags.length)
130
+ throw new TasksFileError("TASKS_INVALID_TASK", `tasks[${index}].tags must be unique`);
131
+ if (!exactIso(value.createdAt) || !exactIso(value.updatedAt))
132
+ throw new TasksFileError("TASKS_INVALID_TASK", `tasks[${index}] timestamps are invalid`);
133
+ if (value.completedAt !== undefined && !exactIso(value.completedAt))
134
+ throw new TasksFileError("TASKS_INVALID_TASK", `tasks[${index}].completedAt is invalid`);
135
+ if (value.status === "done" && value.completedAt === undefined)
136
+ throw new TasksFileError("TASKS_INVALID_TASK", `tasks[${index}] done status requires completedAt`);
137
+ if (value.status !== "done" && value.completedAt !== undefined)
138
+ throw new TasksFileError("TASKS_INVALID_TASK", `tasks[${index}] non-done status forbids completedAt`);
139
+ for (const [field, max] of [["description", 10000], ["ownerLabel", 120], ["source", 120], ["verify", 2000]]) {
140
+ if (value[field] !== undefined && !boundedText(value[field], max, true))
141
+ throw new TasksFileError("TASKS_INVALID_TASK", `tasks[${index}].${field} is invalid`);
142
+ }
143
+ return {
144
+ id: value.id,
145
+ title,
146
+ ...(value.description !== undefined ? { description: value.description } : {}),
147
+ status: value.status,
148
+ priority: value.priority,
149
+ owner: value.owner,
150
+ ...(value.ownerLabel !== undefined ? { ownerLabel: value.ownerLabel } : {}),
151
+ tags: [...value.tags],
152
+ ...(value.source !== undefined ? { source: value.source } : {}),
153
+ ...(value.verify !== undefined ? { verify: value.verify } : {}),
154
+ createdAt: value.createdAt,
155
+ updatedAt: value.updatedAt,
156
+ ...(value.completedAt !== undefined ? { completedAt: value.completedAt } : {}),
157
+ };
158
+ }
159
+ function parseTasksJson(content, expectedProject) {
160
+ let value;
161
+ try {
162
+ value = JSON.parse(content);
163
+ }
164
+ catch {
165
+ throw new TasksFileError("TASKS_INVALID_JSON", "tasks.json is not valid JSON");
166
+ }
167
+ if (!isRecord(value))
168
+ throw new TasksFileError("TASKS_INVALID_DOCUMENT", "tasks.json must be an object");
169
+ assertNoUnknown(value, DOC_KEYS, "TASKS_INVALID_DOCUMENT", "tasks.json");
170
+ if (value.$schema !== exports.TASKS_SCHEMA)
171
+ throw new TasksFileError("TASKS_INVALID_SCHEMA", `expected ${exports.TASKS_SCHEMA}`);
172
+ if (typeof value.project !== "string" || !PROJECT_NAME.test(value.project))
173
+ throw new TasksFileError("TASKS_INVALID_DOCUMENT", "project is invalid");
174
+ if (expectedProject && value.project !== expectedProject)
175
+ throw new TasksFileError("TASKS_INVALID_DOCUMENT", `project must equal ${expectedProject}`);
176
+ if (!exactIso(value.updatedAt))
177
+ throw new TasksFileError("TASKS_INVALID_DOCUMENT", "updatedAt is invalid");
178
+ if (!Array.isArray(value.tasks) || value.tasks.length > 10000)
179
+ throw new TasksFileError("TASKS_INVALID_DOCUMENT", "tasks must be an array with at most 10000 rows");
180
+ if (value.notes !== undefined && !boundedText(value.notes, 100000, true))
181
+ throw new TasksFileError("TASKS_INVALID_DOCUMENT", "notes is invalid");
182
+ const tasks = value.tasks.map(parseTask);
183
+ const ids = tasks.map((task) => task.id);
184
+ if (new Set(ids).size !== ids.length)
185
+ throw new TasksFileError("TASKS_DUPLICATE_ID", "task ids must be unique");
186
+ return {
187
+ $schema: exports.TASKS_SCHEMA,
188
+ project: value.project,
189
+ updatedAt: value.updatedAt,
190
+ tasks,
191
+ ...(value.notes !== undefined ? { notes: value.notes } : {}),
192
+ };
193
+ }
194
+ /** Legacy import is reviewable in memory; persistence still requires task_write. */
195
+ function parseLegacyTasksMd(content, project) {
196
+ if (content.includes(GENERATED_MARKER) || ID_COMMENT.test(content)) {
197
+ throw new TasksFileError("TASKS_JSON_MISSING", "generated tasks.md exists without canonical tasks.json");
198
+ }
199
+ const tasks = [];
200
+ const timestamp = nowIso();
201
+ const notes = [];
202
+ let inNotes = false;
203
+ for (const line of content.split(/\r?\n/)) {
204
+ const heading = line.match(/^##\s+(.+)$/);
205
+ if (heading) {
206
+ inNotes = /watchpoint|note/i.test(heading[1]);
207
+ if (inNotes)
208
+ notes.push(`### ${heading[1].trim()}`);
209
+ continue;
210
+ }
211
+ if (inNotes) {
212
+ if (line.trim())
213
+ notes.push(line);
214
+ continue;
215
+ }
216
+ const bullet = line.match(/^\s*-\s*\[([ xX])\]\s+(.+)$/);
217
+ if (!bullet)
218
+ continue;
219
+ const done = bullet[1].toLowerCase() === "x";
220
+ const text = bullet[2].trim();
221
+ const splitAt = text.length > 160 ? text.indexOf(". ") : -1;
222
+ tasks.push({
223
+ id: generateTaskId(), title: splitAt > 0 ? text.slice(0, splitAt + 1) : text,
224
+ ...(splitAt > 0 ? { description: text.slice(splitAt + 2) } : {}),
225
+ status: done ? "done" : "open", priority: "normal", owner: "human", tags: [], source: "legacy-md",
226
+ createdAt: timestamp, updatedAt: timestamp, ...(done ? { completedAt: timestamp } : {}),
227
+ });
228
+ }
229
+ return { $schema: exports.TASKS_SCHEMA, project, updatedAt: timestamp, tasks, ...(notes.length ? { notes: notes.join("\n") } : {}) };
230
+ }
231
+ function compareTask(a, b) {
232
+ return a.createdAt.localeCompare(b.createdAt) || a.id.localeCompare(b.id);
233
+ }
234
+ function statusLabel(task) {
235
+ const bits = [task.status];
236
+ if (task.priority !== "normal")
237
+ bits.push(task.priority);
238
+ if (task.owner === "agent")
239
+ bits.push(task.ownerLabel ? `agent:${task.ownerLabel}` : "agent");
240
+ if (task.tags.length)
241
+ bits.push(task.tags.map((tag) => `#${tag}`).join(" "));
242
+ return bits.join(" · ");
243
+ }
244
+ function renderTasksMd(doc) {
245
+ const active = doc.tasks.filter((task) => OPEN_STATUSES.includes(task.status)).sort(compareTask);
246
+ const closed = doc.tasks.filter((task) => !OPEN_STATUSES.includes(task.status)).sort(compareTask);
247
+ const lines = [`# Tasks — ${doc.project}`, "", GENERATED_MARKER, " regenerate with `you tasks`; manual changes are rejected. -->", "", `## Active (${active.length})`, ""];
248
+ for (const task of active) {
249
+ lines.push(`- [ ] ${task.title} <!-- id:${task.id} -->`, ` ${statusLabel(task)}`);
250
+ if (task.verify)
251
+ lines.push(` verify: ${task.verify}`);
252
+ if (task.description)
253
+ lines.push(` ${task.description}`);
254
+ }
255
+ lines.push("", `## Done (${closed.length})`, "");
256
+ for (const task of closed)
257
+ lines.push(`- [${task.status === "done" ? "x" : " "}] ${task.title}${task.status === "done" ? "" : ` (${task.status})`} <!-- id:${task.id} -->`);
258
+ lines.push("", NOTES_START, doc.notes || "", NOTES_END, "");
259
+ return lines.join("\n");
260
+ }
261
+ function assertTasksMdMatches(doc, content) {
262
+ if (content !== renderTasksMd(doc))
263
+ throw new TasksFileError("TASKS_MD_DRIFT", "tasks.md differs from deterministic tasks.json rendering");
264
+ }
265
+ /**
266
+ * Pure migration utility retained for callers that explicitly review a legacy
267
+ * checkbox diff. Canonical reads never call this automatically: generated
268
+ * tasks.md drift is rejected until an approved tasks.json change is written.
269
+ */
270
+ function reconcileMdCheckboxes(doc, mdContent, now = new Date()) {
271
+ const byId = new Map(doc.tasks.map((task) => [task.id, task]));
272
+ let changed = 0;
273
+ for (const line of mdContent.split(/\r?\n/)) {
274
+ const bullet = line.match(/^\s*-\s*\[([ xX])\]\s+(.+)$/);
275
+ const id = bullet?.[2].match(ID_COMMENT)?.[1];
276
+ const task = id ? byId.get(id) : undefined;
277
+ if (!bullet || !task)
278
+ continue;
279
+ const checked = bullet[1].toLowerCase() === "x";
280
+ if (checked && OPEN_STATUSES.includes(task.status)) {
281
+ task.status = "done";
282
+ task.completedAt = nowIso(now);
283
+ task.updatedAt = nowIso(now);
284
+ changed += 1;
285
+ }
286
+ else if (!checked && task.status === "done") {
287
+ task.status = "open";
288
+ task.completedAt = undefined;
289
+ task.updatedAt = nowIso(now);
290
+ changed += 1;
291
+ }
292
+ }
293
+ return changed;
294
+ }
295
+ function findGitRoot(start) {
296
+ let current = path.resolve(start);
297
+ while (true) {
298
+ const marker = path.join(current, ".git");
299
+ if (fs.existsSync(marker))
300
+ return current;
301
+ const parent = path.dirname(current);
302
+ if (parent === current)
303
+ return null;
304
+ current = parent;
305
+ }
306
+ }
307
+ function assertNoSymlink(root, candidate) {
308
+ const relative = path.relative(root, candidate);
309
+ if (relative.startsWith("..") || path.isAbsolute(relative))
310
+ throw new TasksFileError("TASKS_SYMLINK_REFUSED", "path escapes repository root");
311
+ let current = root;
312
+ for (const segment of relative.split(path.sep).filter(Boolean)) {
313
+ current = path.join(current, segment);
314
+ let stat;
315
+ try {
316
+ stat = fs.lstatSync(current);
317
+ }
318
+ catch (error) {
319
+ if (error.code === "ENOENT")
320
+ continue;
321
+ throw error;
322
+ }
323
+ if (stat.isSymbolicLink())
324
+ throw new TasksFileError("TASKS_SYMLINK_REFUSED", `${path.relative(root, current)} is a symlink`);
325
+ }
326
+ }
327
+ function resolveTaskWriteGrant(contextDir) {
328
+ const repoRoot = findGitRoot(contextDir);
329
+ if (!repoRoot)
330
+ throw new TasksFileError("TASKS_WRITE_NOT_GRANTED", "task writes require a Git repository");
331
+ assertNoSymlink(repoRoot, contextDir);
332
+ const descriptorPath = path.join(repoRoot, ".you-project");
333
+ assertNoSymlink(repoRoot, descriptorPath);
334
+ let descriptor;
335
+ try {
336
+ descriptor = JSON.parse(fs.readFileSync(descriptorPath, "utf8"));
337
+ }
338
+ catch {
339
+ throw new TasksFileError("TASKS_WRITE_NOT_GRANTED", "a valid .you-project descriptor is required");
340
+ }
341
+ const writePolicy = isRecord(descriptor) && isRecord(descriptor.writePolicy) ? descriptor.writePolicy : null;
342
+ const taskWrite = writePolicy && isRecord(writePolicy.taskWrite) ? writePolicy.taskWrite : null;
343
+ if (!isRecord(descriptor) || descriptor.schemaVersion !== "you-md/project-brain/v1" || descriptor.kind !== "project"
344
+ || typeof descriptor.projectRef !== "string" || !PROJECT_REF.test(descriptor.projectRef)
345
+ || !taskWrite || taskWrite.enabled !== true || typeof taskWrite.artifactRef !== "string"
346
+ || !ARTIFACT_REF.test(taskWrite.artifactRef) || !Array.isArray(descriptor.artifacts)) {
347
+ throw new TasksFileError("TASKS_WRITE_NOT_GRANTED", ".you-project does not grant task_write");
348
+ }
349
+ const artifact = descriptor.artifacts.find((item) => isRecord(item) && item.artifactRef === taskWrite.artifactRef);
350
+ const artifactPath = path.relative(repoRoot, tasksJsonPath(contextDir)).split(path.sep).join("/");
351
+ if (!isRecord(artifact) || artifact.kind !== "tasks" || artifact.path !== artifactPath || artifact.writePolicy !== "task_write"
352
+ || artifact.owner !== "repository" || artifact.authority !== "canonical" || !SAFE_RELATIVE_PATH.test(artifactPath)) {
353
+ throw new TasksFileError("TASKS_WRITE_NOT_GRANTED", "task_write is not bound to this canonical tasks.json artifact");
354
+ }
355
+ return { projectRef: descriptor.projectRef, artifactRef: artifact.artifactRef, artifactPath, repoRoot };
356
+ }
357
+ function assertRegularOrMissing(root, filePath) {
358
+ assertNoSymlink(root, filePath);
359
+ try {
360
+ if (!fs.lstatSync(filePath).isFile())
361
+ throw new TasksFileError("TASKS_SYMLINK_REFUSED", `${path.basename(filePath)} is not a regular file`);
362
+ }
363
+ catch (error) {
364
+ if (error.code !== "ENOENT")
365
+ throw error;
366
+ }
367
+ }
368
+ function writeSynced(filePath, content) {
369
+ const fd = fs.openSync(filePath, "wx", 0o600);
370
+ try {
371
+ fs.writeFileSync(fd, content, "utf8");
372
+ fs.fsyncSync(fd);
373
+ }
374
+ finally {
375
+ fs.closeSync(fd);
376
+ }
377
+ }
378
+ function readTasksDoc(contextDir, project) {
379
+ const jsonPath = tasksJsonPath(contextDir);
380
+ const mdPath = tasksMdPath(contextDir);
381
+ const repoRoot = findGitRoot(contextDir) ?? path.resolve(contextDir);
382
+ assertNoSymlink(repoRoot, contextDir);
383
+ assertRegularOrMissing(repoRoot, jsonPath);
384
+ assertRegularOrMissing(repoRoot, mdPath);
385
+ const tmpRoot = path.join(contextDir, ".tmp");
386
+ if (fs.existsSync(tmpRoot) && fs.readdirSync(tmpRoot).some((name) => name.startsWith("youmd-tasks-"))) {
387
+ throw new TasksFileError("TASKS_WRITE_INCOMPLETE", "an interrupted task-ledger transaction requires recovery by the next granted write");
388
+ }
389
+ if (fs.existsSync(jsonPath)) {
390
+ const doc = parseTasksJson(fs.readFileSync(jsonPath, "utf8"), project);
391
+ if (!fs.existsSync(mdPath))
392
+ throw new TasksFileError("TASKS_MD_MISSING", "tasks.md is missing");
393
+ assertTasksMdMatches(doc, fs.readFileSync(mdPath, "utf8"));
394
+ return { doc, migrated: false, reconciled: 0 };
395
+ }
396
+ if (fs.existsSync(mdPath))
397
+ return { doc: parseLegacyTasksMd(fs.readFileSync(mdPath, "utf8"), project), migrated: true, reconciled: 0 };
398
+ return { doc: { $schema: exports.TASKS_SCHEMA, project, updatedAt: nowIso(), tasks: [] }, migrated: false, reconciled: 0 };
399
+ }
400
+ function writeTasksDoc(contextDir, input, options = {}) {
401
+ const grant = resolveTaskWriteGrant(contextDir);
402
+ fs.mkdirSync(contextDir, { recursive: true, mode: 0o755 });
403
+ assertNoSymlink(grant.repoRoot, contextDir);
404
+ const jsonPath = tasksJsonPath(contextDir);
405
+ const mdPath = tasksMdPath(contextDir);
406
+ assertRegularOrMissing(grant.repoRoot, jsonPath);
407
+ assertRegularOrMissing(grant.repoRoot, mdPath);
408
+ const doc = { ...input, updatedAt: nowIso(options.now), tasks: input.tasks.map((task) => ({ ...task, tags: [...task.tags] })) };
409
+ const json = JSON.stringify(doc, null, 2) + "\n";
410
+ const validated = parseTasksJson(json, input.project);
411
+ const markdown = renderTasksMd(validated);
412
+ const tmpRoot = path.join(contextDir, ".tmp");
413
+ assertNoSymlink(grant.repoRoot, tmpRoot);
414
+ fs.mkdirSync(tmpRoot, { recursive: true, mode: 0o700 });
415
+ const lockPath = path.join(tmpRoot, "youmd-tasks-write.lock");
416
+ let lockFd;
417
+ try {
418
+ lockFd = fs.openSync(lockPath, "wx", 0o600);
419
+ }
420
+ catch {
421
+ throw new TasksFileError("TASKS_WRITE_BUSY", "another task-ledger write is active");
422
+ }
423
+ const txn = path.join(tmpRoot, `youmd-tasks-${crypto.randomBytes(8).toString("hex")}`);
424
+ fs.mkdirSync(txn, { mode: 0o700 });
425
+ const newJson = path.join(txn, "tasks.json.new");
426
+ const newMd = path.join(txn, "tasks.md.new");
427
+ const oldJson = path.join(txn, "tasks.json.old");
428
+ const oldMd = path.join(txn, "tasks.md.old");
429
+ const hadJson = fs.existsSync(jsonPath);
430
+ const hadMd = fs.existsSync(mdPath);
431
+ try {
432
+ writeSynced(newJson, json);
433
+ writeSynced(newMd, markdown);
434
+ if (hadJson)
435
+ fs.copyFileSync(jsonPath, oldJson, fs.constants.COPYFILE_EXCL);
436
+ if (hadMd)
437
+ fs.copyFileSync(mdPath, oldMd, fs.constants.COPYFILE_EXCL);
438
+ assertRegularOrMissing(grant.repoRoot, jsonPath);
439
+ assertRegularOrMissing(grant.repoRoot, mdPath);
440
+ fs.renameSync(newJson, jsonPath);
441
+ if (options.faultAfterJson)
442
+ throw new Error("faultAfterJson");
443
+ fs.renameSync(newMd, mdPath);
444
+ fs.chmodSync(jsonPath, 0o644);
445
+ fs.chmodSync(mdPath, 0o644);
446
+ input.updatedAt = validated.updatedAt;
447
+ }
448
+ catch (error) {
449
+ try {
450
+ if (hadJson && fs.existsSync(oldJson))
451
+ fs.copyFileSync(oldJson, jsonPath);
452
+ else if (!hadJson && fs.existsSync(jsonPath))
453
+ fs.unlinkSync(jsonPath);
454
+ if (hadMd && fs.existsSync(oldMd))
455
+ fs.copyFileSync(oldMd, mdPath);
456
+ else if (!hadMd && fs.existsSync(mdPath))
457
+ fs.unlinkSync(mdPath);
458
+ }
459
+ catch {
460
+ throw new TasksFileError("TASKS_WRITE_INCOMPLETE", "task-ledger rollback failed; manual recovery required");
461
+ }
462
+ throw error;
463
+ }
464
+ finally {
465
+ try {
466
+ fs.rmSync(txn, { recursive: true, force: true });
467
+ }
468
+ catch { /* surfaced on next read */ }
469
+ try {
470
+ fs.closeSync(lockFd);
471
+ }
472
+ catch { /* no-op */ }
473
+ try {
474
+ fs.unlinkSync(lockPath);
475
+ }
476
+ catch { /* no-op */ }
477
+ }
478
+ }
479
+ function addTask(doc, input) {
480
+ const timestamp = nowIso();
481
+ const status = input.status ?? "open";
482
+ const task = {
483
+ id: input.id ?? generateTaskId(), title: input.title.trim(), ...(input.description ? { description: input.description } : {}),
484
+ status, priority: input.priority ?? "normal", owner: input.owner ?? "human", ...(input.ownerLabel ? { ownerLabel: input.ownerLabel } : {}),
485
+ tags: [...(input.tags ?? [])], ...(input.source ? { source: input.source } : {}), ...(input.verify ? { verify: input.verify } : {}),
486
+ createdAt: input.createdAt ?? timestamp, updatedAt: timestamp,
487
+ ...(status === "done" ? { completedAt: input.completedAt ?? timestamp } : {}),
488
+ };
489
+ parseTask(task, doc.tasks.length);
490
+ if (doc.tasks.some((existing) => existing.id === task.id))
491
+ throw new TasksFileError("TASKS_DUPLICATE_ID", `duplicate task id ${task.id}`);
492
+ doc.tasks.push(task);
493
+ return task;
494
+ }
495
+ function findTask(doc, idOrTitle) {
496
+ const needle = idOrTitle.trim().toLowerCase();
497
+ return doc.tasks.find((task) => task.id.toLowerCase() === needle)
498
+ || doc.tasks.find((task) => task.title.toLowerCase() === needle)
499
+ || doc.tasks.find((task) => task.title.toLowerCase().includes(needle));
500
+ }
501
+ function openTasks(doc) { return doc.tasks.filter((task) => OPEN_STATUSES.includes(task.status)); }
502
+ //# sourceMappingURL=tasksFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tasksFile.js","sourceRoot":"","sources":["../../src/lib/tasksFile.ts"],"names":[],"mappings":"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"}
@@ -11,13 +11,14 @@
11
11
  *
12
12
  * ─── MIGRATION STATUS ───────────────────────────────────────────────────────
13
13
  *
14
- * MIGRATED (23 tools):
14
+ * MIGRATED (29 tools):
15
15
  * whoami — local bundle read, no auth required
16
16
  * get_identity — local bundle read, compact/full/json/markdown
17
17
  * list_skills — pure local dir scan
18
18
  * list_projects — pure local dir scan
19
19
  * get_section — local bundle file read
20
20
  * get_project_context — local project-context engine, no network
21
+ * get_project_brain — provenance-aware local/synced project brain read
21
22
  * get_stack_manifest — local youstack.json parse
22
23
  * get_stack_capabilities — local youstack.json capability map
23
24
  * route_stack_request — local routing algorithm, no network
@@ -34,9 +35,14 @@
34
35
  * upsert_portfolio_task — authenticated write via ctx.apiRequest
35
36
  * update_portfolio_task — authenticated task triage via ctx.apiRequest
36
37
  * hydrate_portfolio_graph — authenticated portfolio hydration via ctx.apiRequest
38
+ * upsert_portfolio_project — authenticated project catalog write via ctx.apiRequest
37
39
  * record_brain_dump — authenticated write via ctx.apiRequest
40
+ * remote_machine_status — trusted-device machine status read
41
+ * remote_machine_run — whitelisted trusted-device command dispatch
42
+ * store_media — folder.md-backed media upload
43
+ * get_media — folder.md-backed media download
38
44
  *
39
- * DEFERRED (4 tools — write-ops and dynamic-import tools):
45
+ * DEFERRED (6 tools — write-ops and dynamic-import tools):
40
46
  * get_agent_brief — >50 lines; delegates to buildAgentBrief() in server.ts
41
47
  * which has a deep async call-tree; keep in switch.
42
48
  * update_section — fs write; intentionally deferred (write-ops last)
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/mcp/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/mcp/registry.ts"],"names":[],"mappings":"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"}