@thjodann/wk 1.0.0

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 (153) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +197 -0
  3. package/dist/cli/commands/article.d.ts +2 -0
  4. package/dist/cli/commands/article.js +47 -0
  5. package/dist/cli/commands/article.js.map +1 -0
  6. package/dist/cli/commands/closeout.d.ts +2 -0
  7. package/dist/cli/commands/closeout.js +37 -0
  8. package/dist/cli/commands/closeout.js.map +1 -0
  9. package/dist/cli/commands/compile.d.ts +2 -0
  10. package/dist/cli/commands/compile.js +50 -0
  11. package/dist/cli/commands/compile.js.map +1 -0
  12. package/dist/cli/commands/concept.d.ts +2 -0
  13. package/dist/cli/commands/concept.js +36 -0
  14. package/dist/cli/commands/concept.js.map +1 -0
  15. package/dist/cli/commands/decision.d.ts +2 -0
  16. package/dist/cli/commands/decision.js +38 -0
  17. package/dist/cli/commands/decision.js.map +1 -0
  18. package/dist/cli/commands/event.d.ts +2 -0
  19. package/dist/cli/commands/event.js +32 -0
  20. package/dist/cli/commands/event.js.map +1 -0
  21. package/dist/cli/commands/init.d.ts +2 -0
  22. package/dist/cli/commands/init.js +52 -0
  23. package/dist/cli/commands/init.js.map +1 -0
  24. package/dist/cli/commands/installAgent.d.ts +2 -0
  25. package/dist/cli/commands/installAgent.js +130 -0
  26. package/dist/cli/commands/installAgent.js.map +1 -0
  27. package/dist/cli/commands/link.d.ts +2 -0
  28. package/dist/cli/commands/link.js +36 -0
  29. package/dist/cli/commands/link.js.map +1 -0
  30. package/dist/cli/commands/note.d.ts +2 -0
  31. package/dist/cli/commands/note.js +34 -0
  32. package/dist/cli/commands/note.js.map +1 -0
  33. package/dist/cli/commands/pages.d.ts +2 -0
  34. package/dist/cli/commands/pages.js +46 -0
  35. package/dist/cli/commands/pages.js.map +1 -0
  36. package/dist/cli/commands/record.d.ts +2 -0
  37. package/dist/cli/commands/record.js +101 -0
  38. package/dist/cli/commands/record.js.map +1 -0
  39. package/dist/cli/commands/render.d.ts +2 -0
  40. package/dist/cli/commands/render.js +33 -0
  41. package/dist/cli/commands/render.js.map +1 -0
  42. package/dist/cli/commands/search.d.ts +2 -0
  43. package/dist/cli/commands/search.js +125 -0
  44. package/dist/cli/commands/search.js.map +1 -0
  45. package/dist/cli/commands/setup.d.ts +2 -0
  46. package/dist/cli/commands/setup.js +53 -0
  47. package/dist/cli/commands/setup.js.map +1 -0
  48. package/dist/cli/commands/site.d.ts +2 -0
  49. package/dist/cli/commands/site.js +47 -0
  50. package/dist/cli/commands/site.js.map +1 -0
  51. package/dist/cli/commands/spin.d.ts +2 -0
  52. package/dist/cli/commands/spin.js +43 -0
  53. package/dist/cli/commands/spin.js.map +1 -0
  54. package/dist/cli/commands/status.d.ts +2 -0
  55. package/dist/cli/commands/status.js +63 -0
  56. package/dist/cli/commands/status.js.map +1 -0
  57. package/dist/cli/commands/symbol.d.ts +2 -0
  58. package/dist/cli/commands/symbol.js +37 -0
  59. package/dist/cli/commands/symbol.js.map +1 -0
  60. package/dist/cli/commands/theme.d.ts +2 -0
  61. package/dist/cli/commands/theme.js +52 -0
  62. package/dist/cli/commands/theme.js.map +1 -0
  63. package/dist/cli/commands/validate.d.ts +2 -0
  64. package/dist/cli/commands/validate.js +44 -0
  65. package/dist/cli/commands/validate.js.map +1 -0
  66. package/dist/cli/helpers.d.ts +30 -0
  67. package/dist/cli/helpers.js +131 -0
  68. package/dist/cli/helpers.js.map +1 -0
  69. package/dist/core/articles.d.ts +5 -0
  70. package/dist/core/articles.js +25 -0
  71. package/dist/core/articles.js.map +1 -0
  72. package/dist/core/automation.d.ts +96 -0
  73. package/dist/core/automation.js +384 -0
  74. package/dist/core/automation.js.map +1 -0
  75. package/dist/core/beads.d.ts +43 -0
  76. package/dist/core/beads.js +358 -0
  77. package/dist/core/beads.js.map +1 -0
  78. package/dist/core/compiler.d.ts +45 -0
  79. package/dist/core/compiler.js +399 -0
  80. package/dist/core/compiler.js.map +1 -0
  81. package/dist/core/config.d.ts +59 -0
  82. package/dist/core/config.js +187 -0
  83. package/dist/core/config.js.map +1 -0
  84. package/dist/core/git.d.ts +21 -0
  85. package/dist/core/git.js +109 -0
  86. package/dist/core/git.js.map +1 -0
  87. package/dist/core/ids.d.ts +2 -0
  88. package/dist/core/ids.js +8 -0
  89. package/dist/core/ids.js.map +1 -0
  90. package/dist/core/pages.d.ts +34 -0
  91. package/dist/core/pages.js +233 -0
  92. package/dist/core/pages.js.map +1 -0
  93. package/dist/core/paths.d.ts +15 -0
  94. package/dist/core/paths.js +67 -0
  95. package/dist/core/paths.js.map +1 -0
  96. package/dist/core/profiles.d.ts +30 -0
  97. package/dist/core/profiles.js +243 -0
  98. package/dist/core/profiles.js.map +1 -0
  99. package/dist/core/renderer.d.ts +8 -0
  100. package/dist/core/renderer.js +106 -0
  101. package/dist/core/renderer.js.map +1 -0
  102. package/dist/core/schemas.d.ts +1039 -0
  103. package/dist/core/schemas.js +108 -0
  104. package/dist/core/schemas.js.map +1 -0
  105. package/dist/core/site.d.ts +20 -0
  106. package/dist/core/site.js +2684 -0
  107. package/dist/core/site.js.map +1 -0
  108. package/dist/core/spin.d.ts +42 -0
  109. package/dist/core/spin.js +265 -0
  110. package/dist/core/spin.js.map +1 -0
  111. package/dist/core/store.d.ts +29 -0
  112. package/dist/core/store.js +146 -0
  113. package/dist/core/store.js.map +1 -0
  114. package/dist/core/theme.d.ts +35 -0
  115. package/dist/core/theme.js +1086 -0
  116. package/dist/core/theme.js.map +1 -0
  117. package/dist/core/validator.d.ts +8 -0
  118. package/dist/core/validator.js +154 -0
  119. package/dist/core/validator.js.map +1 -0
  120. package/dist/index.d.ts +3 -0
  121. package/dist/index.js +61 -0
  122. package/dist/index.js.map +1 -0
  123. package/dist/templates/articlesPage.d.ts +3 -0
  124. package/dist/templates/articlesPage.js +46 -0
  125. package/dist/templates/articlesPage.js.map +1 -0
  126. package/dist/templates/conceptsPage.d.ts +2 -0
  127. package/dist/templates/conceptsPage.js +24 -0
  128. package/dist/templates/conceptsPage.js.map +1 -0
  129. package/dist/templates/decisionsPage.d.ts +2 -0
  130. package/dist/templates/decisionsPage.js +27 -0
  131. package/dist/templates/decisionsPage.js.map +1 -0
  132. package/dist/templates/devlogPage.d.ts +2 -0
  133. package/dist/templates/devlogPage.js +22 -0
  134. package/dist/templates/devlogPage.js.map +1 -0
  135. package/dist/templates/indexPage.d.ts +6 -0
  136. package/dist/templates/indexPage.js +33 -0
  137. package/dist/templates/indexPage.js.map +1 -0
  138. package/dist/templates/linksPage.d.ts +2 -0
  139. package/dist/templates/linksPage.js +26 -0
  140. package/dist/templates/linksPage.js.map +1 -0
  141. package/dist/templates/notesPage.d.ts +2 -0
  142. package/dist/templates/notesPage.js +26 -0
  143. package/dist/templates/notesPage.js.map +1 -0
  144. package/dist/templates/symbolsPage.d.ts +2 -0
  145. package/dist/templates/symbolsPage.js +25 -0
  146. package/dist/templates/symbolsPage.js.map +1 -0
  147. package/docs/concepts.md +249 -0
  148. package/docs/reference.md +356 -0
  149. package/docs/setup.md +331 -0
  150. package/docs/workflows.md +154 -0
  151. package/package.json +61 -0
  152. package/skills/wk/SKILL.md +251 -0
  153. package/skills/wk/agents/openai.yaml +4 -0
@@ -0,0 +1,358 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.readIntegrations = readIntegrations;
7
+ exports.readBeadsIntegration = readBeadsIntegration;
8
+ exports.shouldReportIntegrations = shouldReportIntegrations;
9
+ exports.shouldReportBeadsIntegration = shouldReportBeadsIntegration;
10
+ const child_process_1 = require("child_process");
11
+ const fs_1 = __importDefault(require("fs"));
12
+ const path_1 = __importDefault(require("path"));
13
+ const git_1 = require("./git");
14
+ const paths_1 = require("./paths");
15
+ function readIntegrations(root, config = {}) {
16
+ const beads = readBeadsIntegration(root, config.integrations?.beads);
17
+ return shouldReportBeadsIntegration(beads) ? { beads } : {};
18
+ }
19
+ function readBeadsIntegration(root, config = {}) {
20
+ const detected = fs_1.default.existsSync(path_1.default.join(root, ".beads"));
21
+ const configured = config.enabled === false
22
+ ? "disabled"
23
+ : config.enabled === true
24
+ ? "enabled"
25
+ : "auto";
26
+ const enabled = configured === "disabled" ? false : detected || configured === "enabled";
27
+ const base = emptySummary({
28
+ detected,
29
+ enabled,
30
+ configured,
31
+ beadsPath: detected ? (0, paths_1.reportPath)(path_1.default.join(root, ".beads")) : undefined
32
+ });
33
+ if (!enabled) {
34
+ return base;
35
+ }
36
+ if (!detected) {
37
+ return {
38
+ ...base,
39
+ error: "no_beads_directory"
40
+ };
41
+ }
42
+ if (configured === "auto") {
43
+ return {
44
+ ...base,
45
+ error: "beads_auto_read_skipped",
46
+ warnings: [
47
+ "Beads workspace detected; detailed bd reads are skipped in auto mode to avoid dirtying .beads. Set integrations.beads.enabled to true to opt in."
48
+ ]
49
+ };
50
+ }
51
+ const before = beadsGitStatusSnapshot(root);
52
+ const where = runBdJson(root, ["where"]);
53
+ if (!where.ok) {
54
+ return {
55
+ ...base,
56
+ error: where.error ?? "bd_unavailable"
57
+ };
58
+ }
59
+ const status = runBdJson(root, ["status", "--no-activity"]);
60
+ const ready = runBdJson(root, ["ready", "--limit", "10"]);
61
+ const inProgress = runBdJson(root, ["list", "--status", "in_progress", "--limit", "10"]);
62
+ const recentClosed = runBdJson(root, ["list", "--status", "closed", "--limit", "10", "--sort", "updated", "--reverse"]);
63
+ const mutation = resolveBeadsMutation(root, before, beadsGitStatusSnapshot(root));
64
+ if (mutation) {
65
+ return {
66
+ ...base,
67
+ error: "beads_read_mutated_worktree",
68
+ warnings: [
69
+ "bd read commands changed .beads; Wikiwiki ignored Beads details for this run.",
70
+ ...mutation.warnings,
71
+ `Changed .beads entries: ${summarizeEntries(mutation.changed_entries)}`
72
+ ]
73
+ };
74
+ }
75
+ const readyIssues = extractIssues(ready.value);
76
+ const inProgressIssues = extractIssues(inProgress.value);
77
+ const recentClosedIssues = extractIssues(recentClosed.value);
78
+ const warnings = [status, ready, inProgress, recentClosed]
79
+ .flatMap((result) => result.ok ? [] : [result.error ?? "bd command failed"]);
80
+ const issueIds = unique([
81
+ ...readyIssues.map((issue) => issue.id),
82
+ ...inProgressIssues.map((issue) => issue.id),
83
+ ...recentClosedIssues.map((issue) => issue.id)
84
+ ]);
85
+ return {
86
+ detected,
87
+ enabled,
88
+ available: true,
89
+ configured,
90
+ beads_path: beadsPathFromWhere(where.value) ?? base.beads_path,
91
+ warnings,
92
+ counts: {
93
+ total: numberAt(status.value, ["total", "total_issues", "counts.total"]),
94
+ open: numberAt(status.value, ["open", "open_issues", "counts.open", "status.open", "statuses.open"]),
95
+ closed: numberAt(status.value, ["closed", "closed_issues", "counts.closed", "status.closed", "statuses.closed"]),
96
+ ready: numberAt(status.value, ["ready", "ready_issues", "counts.ready"]) ?? readyIssues.length,
97
+ in_progress: numberAt(status.value, ["in_progress", "inProgress", "counts.in_progress", "status.in_progress", "statuses.in_progress"]) ?? inProgressIssues.length,
98
+ recent_closed: recentClosedIssues.length
99
+ },
100
+ issue_ids: issueIds,
101
+ ready: readyIssues,
102
+ in_progress: inProgressIssues,
103
+ recent_closed: recentClosedIssues
104
+ };
105
+ }
106
+ function shouldReportIntegrations(integrations) {
107
+ return Boolean(integrations.beads && shouldReportBeadsIntegration(integrations.beads));
108
+ }
109
+ function shouldReportBeadsIntegration(beads) {
110
+ return beads.detected || beads.configured !== "auto";
111
+ }
112
+ function emptySummary(options) {
113
+ return {
114
+ detected: options.detected,
115
+ enabled: options.enabled,
116
+ available: false,
117
+ configured: options.configured,
118
+ beads_path: options.beadsPath,
119
+ warnings: [],
120
+ counts: {
121
+ ready: 0,
122
+ in_progress: 0,
123
+ recent_closed: 0
124
+ },
125
+ issue_ids: [],
126
+ ready: [],
127
+ in_progress: [],
128
+ recent_closed: []
129
+ };
130
+ }
131
+ function runBdJson(root, args) {
132
+ try {
133
+ const output = (0, child_process_1.execFileSync)("bd", ["--readonly", "--json", "--dolt-auto-commit", "off", ...args], {
134
+ cwd: root,
135
+ encoding: "utf8",
136
+ stdio: ["ignore", "pipe", "pipe"]
137
+ }).trim();
138
+ return {
139
+ ok: true,
140
+ value: output ? JSON.parse(output) : null
141
+ };
142
+ }
143
+ catch (error) {
144
+ return {
145
+ ok: false,
146
+ error: commandError(error)
147
+ };
148
+ }
149
+ }
150
+ function commandError(error) {
151
+ if (isObject(error)) {
152
+ const stdout = error.stdout;
153
+ if (typeof stdout === "string" && stdout.trim()) {
154
+ try {
155
+ const parsed = JSON.parse(stdout);
156
+ const message = stringAt(parsed, ["message", "error", "hint"]);
157
+ if (message) {
158
+ return message;
159
+ }
160
+ }
161
+ catch {
162
+ return stdout.trim();
163
+ }
164
+ }
165
+ const stderr = error.stderr;
166
+ if (typeof stderr === "string" && stderr.trim()) {
167
+ return stderr.trim().split(/\r?\n/)[0];
168
+ }
169
+ const message = error.message;
170
+ if (typeof message === "string" && message.trim()) {
171
+ return message.trim();
172
+ }
173
+ }
174
+ return String(error);
175
+ }
176
+ function beadsGitStatusSnapshot(root) {
177
+ return (0, git_1.readGitStatus)(root, [".beads"]).sort((left, right) => entryKey(left).localeCompare(entryKey(right)));
178
+ }
179
+ function resolveBeadsMutation(root, before, after) {
180
+ const changedEntries = changedSnapshotEntries(before, after);
181
+ if (changedEntries.length === 0) {
182
+ return undefined;
183
+ }
184
+ if (before.length > 0) {
185
+ return {
186
+ changed_entries: changedEntries,
187
+ warnings: ["Pre-existing .beads changes were present; automatic restore was skipped."]
188
+ };
189
+ }
190
+ const restoreWarnings = restoreBeadsChanges(root, after);
191
+ const restored = snapshotsEqual(before, beadsGitStatusSnapshot(root));
192
+ return {
193
+ changed_entries: changedEntries,
194
+ warnings: restored
195
+ ? ["Restored .beads to its pre-read state after rejecting Beads details.", ...restoreWarnings]
196
+ : ["Automatic .beads restore was incomplete; inspect git status before continuing.", ...restoreWarnings]
197
+ };
198
+ }
199
+ function restoreBeadsChanges(root, changed) {
200
+ const warnings = [];
201
+ const trackedPaths = changed
202
+ .filter((entry) => entry.status !== "??")
203
+ .map((entry) => entry.path)
204
+ .filter((file) => isSafeBeadsPath(root, file));
205
+ const untrackedPaths = changed
206
+ .filter((entry) => entry.status === "??")
207
+ .map((entry) => entry.path)
208
+ .filter((file) => isSafeBeadsPath(root, file) && file !== ".beads");
209
+ if (trackedPaths.length > 0) {
210
+ try {
211
+ (0, git_1.runGit)(root, ["restore", "--staged", "--worktree", "--", ...trackedPaths]);
212
+ }
213
+ catch (error) {
214
+ warnings.push(`Could not restore tracked .beads paths: ${commandError(error)}`);
215
+ }
216
+ }
217
+ for (const file of untrackedPaths) {
218
+ try {
219
+ fs_1.default.rmSync(path_1.default.join(root, file), { force: true, recursive: true });
220
+ }
221
+ catch (error) {
222
+ warnings.push(`Could not remove untracked .beads path ${file}: ${commandError(error)}`);
223
+ }
224
+ }
225
+ const skipped = changed
226
+ .map((entry) => entry.path)
227
+ .filter((file) => !isSafeBeadsPath(root, file) || file === ".beads");
228
+ if (skipped.length > 0) {
229
+ warnings.push(`Skipped unsafe .beads restore paths: ${summarizeEntries(skipped)}`);
230
+ }
231
+ return warnings;
232
+ }
233
+ function changedSnapshotEntries(before, after) {
234
+ const beforeSet = new Set(before.map(entryKey));
235
+ const afterSet = new Set(after.map(entryKey));
236
+ return [
237
+ ...after.map(entryKey).filter((entry) => !beforeSet.has(entry)),
238
+ ...before.map(entryKey).filter((entry) => !afterSet.has(entry))
239
+ ].sort();
240
+ }
241
+ function snapshotsEqual(left, right) {
242
+ const leftKeys = left.map(entryKey);
243
+ const rightKeys = right.map(entryKey);
244
+ return leftKeys.length === rightKeys.length && leftKeys.every((entry, index) => entry === rightKeys[index]);
245
+ }
246
+ function entryKey(entry) {
247
+ return `${entry.status} ${entry.path}`;
248
+ }
249
+ function summarizeEntries(entries) {
250
+ return `${entries.slice(0, 5).join(", ")}${entries.length > 5 ? `, and ${entries.length - 5} more` : ""}`;
251
+ }
252
+ function isSafeBeadsPath(root, file) {
253
+ const beadsRoot = path_1.default.resolve(root, ".beads");
254
+ const fullPath = path_1.default.resolve(root, file);
255
+ const relative = path_1.default.relative(beadsRoot, fullPath);
256
+ return relative === "" || (!relative.startsWith("..") && !path_1.default.isAbsolute(relative));
257
+ }
258
+ function beadsPathFromWhere(value) {
259
+ const found = stringAt(value, ["beads_dir", "beads_path", "path", "workspace", "workspace_path"]);
260
+ return found ? (0, paths_1.toPosixPath)(found) : undefined;
261
+ }
262
+ function extractIssues(value) {
263
+ return issueArray(value)
264
+ .map(normalizeIssue)
265
+ .filter((issue) => Boolean(issue));
266
+ }
267
+ function issueArray(value) {
268
+ if (Array.isArray(value)) {
269
+ return value;
270
+ }
271
+ if (!isObject(value)) {
272
+ return [];
273
+ }
274
+ for (const key of ["issues", "items", "results", "data", "ready", "work"]) {
275
+ const nested = value[key];
276
+ if (Array.isArray(nested)) {
277
+ return nested;
278
+ }
279
+ }
280
+ return [];
281
+ }
282
+ function normalizeIssue(value) {
283
+ if (!isObject(value)) {
284
+ return undefined;
285
+ }
286
+ const id = stringAt(value, ["id", "issue_id", "key"]);
287
+ if (!id) {
288
+ return undefined;
289
+ }
290
+ return {
291
+ id,
292
+ title: stringAt(value, ["title", "summary", "name"]) ?? id,
293
+ status: stringAt(value, ["status", "state"]),
294
+ type: stringAt(value, ["type", "issue_type"]),
295
+ priority: priorityString(value["priority"] ?? value["priority_label"]),
296
+ assignee: stringAt(value, ["assignee", "owner", "claimed_by"]),
297
+ updated_at: stringAt(value, ["updated_at", "updated", "modified_at"]),
298
+ closed_at: stringAt(value, ["closed_at", "closed"]),
299
+ labels: stringArray(value["labels"] ?? value["tags"])
300
+ };
301
+ }
302
+ function numberAt(value, paths) {
303
+ for (const itemPath of paths) {
304
+ const found = valueAtPath(value, itemPath);
305
+ if (typeof found === "number" && Number.isFinite(found)) {
306
+ return found;
307
+ }
308
+ if (typeof found === "string" && found.trim() && Number.isFinite(Number(found))) {
309
+ return Number(found);
310
+ }
311
+ }
312
+ return undefined;
313
+ }
314
+ function stringAt(value, paths) {
315
+ for (const itemPath of paths) {
316
+ const found = valueAtPath(value, itemPath);
317
+ if (typeof found === "string" && found.trim()) {
318
+ return (0, paths_1.toPosixPath)(found.trim());
319
+ }
320
+ if (typeof found === "number" && Number.isFinite(found)) {
321
+ return String(found);
322
+ }
323
+ }
324
+ return undefined;
325
+ }
326
+ function valueAtPath(value, itemPath) {
327
+ return itemPath.split(".").reduce((current, key) => {
328
+ if (!isObject(current)) {
329
+ return undefined;
330
+ }
331
+ return current[key];
332
+ }, value);
333
+ }
334
+ function priorityString(value) {
335
+ if (typeof value === "string" && value.trim()) {
336
+ return value.trim();
337
+ }
338
+ if (typeof value === "number" && Number.isFinite(value)) {
339
+ return `P${value}`;
340
+ }
341
+ return undefined;
342
+ }
343
+ function stringArray(value) {
344
+ if (!Array.isArray(value)) {
345
+ return [];
346
+ }
347
+ return value
348
+ .filter((item) => typeof item === "string")
349
+ .map((item) => item.trim())
350
+ .filter(Boolean);
351
+ }
352
+ function unique(values) {
353
+ return [...new Set(values)].sort();
354
+ }
355
+ function isObject(value) {
356
+ return typeof value === "object" && value !== null && !Array.isArray(value);
357
+ }
358
+ //# sourceMappingURL=beads.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"beads.js","sourceRoot":"","sources":["../../src/core/beads.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import { type AnyRecord, type RecordType } from "./schemas";
2
+ export declare const compileRoles: readonly ["ux", "dx"];
3
+ export type CompileRole = (typeof compileRoles)[number];
4
+ export type CompileRoleOption = CompileRole | "all";
5
+ export type CompilePageRole = CompileRole | "home";
6
+ export type CompilePageManifest = {
7
+ role: CompilePageRole;
8
+ id: string;
9
+ title: string;
10
+ description: string;
11
+ draft_path: string;
12
+ output_path: string;
13
+ prompt: string;
14
+ source_record_ids: string[];
15
+ source_files: string[];
16
+ };
17
+ export type CompileDraftManifest = {
18
+ type: "compile-draft";
19
+ id: string;
20
+ status: "draft";
21
+ roles: CompileRole[];
22
+ created_at: string;
23
+ output_root: string;
24
+ pages: CompilePageManifest[];
25
+ };
26
+ export type CompileDraftResult = {
27
+ draft_id: string;
28
+ draft_path: string;
29
+ manifest_path: string;
30
+ roles: CompileRole[];
31
+ pages: CompilePageManifest[];
32
+ };
33
+ export type CompileApplyResult = {
34
+ ok: true;
35
+ draft_id: string;
36
+ applied_at: string;
37
+ rendered_files: string[];
38
+ };
39
+ type RecordsByType = Record<RecordType, AnyRecord[]>;
40
+ export declare function createCompileDraft(root: string, roleOption?: CompileRoleOption): CompileDraftResult;
41
+ export declare function applyCompileDraft(root: string, draftId: string): CompileApplyResult;
42
+ export declare function readCompileDraftManifest(root: string, draftId: string): CompileDraftManifest;
43
+ export declare function routeRecordsForRole(records: RecordsByType, role: CompileRole): AnyRecord[];
44
+ export declare function validateHumanWiki(root: string): string[];
45
+ export {};