craftar 0.36.0 → 0.37.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.
@@ -111,6 +111,18 @@ export async function diffReport(ws, rows, opts) {
111
111
  }
112
112
  return out;
113
113
  }
114
+ /**
115
+ * What an `orphan-drift` file holds, for a surface that shows it before a discard (spec 40 §6.5, `drift show <path>`):
116
+ * the whole body read from disk, or — for EXAMPLE_SETTINGS, whose content is never shown — `{ body: null, note:
117
+ * EXAMPLE_CONTENT_HIDDEN }`. The one reader of such a body.
118
+ */
119
+ export async function orphanDriftBody(root, s) {
120
+ if (s.state !== "orphan-drift")
121
+ throw new Error("state must be orphan-drift");
122
+ if (s.path === EXAMPLE_SETTINGS)
123
+ return { body: null, note: EXAMPLE_CONTENT_HIDDEN };
124
+ return { body: (await readText(path.join(root, s.path))) ?? "", note: null };
125
+ }
114
126
  /** The planned file at `file`, compared as given (the caller normalizes); null when the Forge does not produce it. */
115
127
  export function explainFile(ws, p, file) {
116
128
  const f = p.files.find((x) => x.path === file);
@@ -1 +1 @@
1
- {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/core/report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/core/report.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,8 @@ import { editRecipesText, planRecipeEdit, recipeDiffLine } from "./recipe-edit.j
15
15
  import { apply, loadForgeFor, plan, readLock, status, unsetDeclared, unsetRefusal, orphanReason, WORKSPACE_FILE, LOCAL_FILE, } from "./sync.js";
16
16
  import { hashNormalized } from "./text.js";
17
17
  import { localKeys } from "./workspace-yaml.js";
18
+ /** The words for the orphan-drift a discard removes (`drift discard` and the page's). */
19
+ export const DISCARDED_ORPHAN = "hand-edited orphan: discarded";
18
20
  export async function syncWorkspace(ws, p, statuses, lock, opts) {
19
21
  const r = await apply(ws, p, statuses, opts);
20
22
  let registry = null;
@@ -115,6 +117,23 @@ export async function confirmWrites(io) {
115
117
  io.say("answer yes or no");
116
118
  }
117
119
  }
120
+ /** The `sync` result (spec 40 §5.6) — one builder, shared by `craftar mcp`'s `sync` tool and `craftar ui`'s write routes. */
121
+ export function syncToolResult(ws, p, statuses, outcome, registryOff, discarded) {
122
+ return {
123
+ profile: ws.config.profile,
124
+ recipes: [...p.resolution.recipes],
125
+ targets: [...p.resolution.targets],
126
+ forge: outcome.forgeLine,
127
+ written: outcome.result.written,
128
+ removed: outcome.result.removed.map((path) => ({
129
+ path,
130
+ reason: path === discarded ? DISCARDED_ORPHAN : orphanReason(p, statuses, path),
131
+ })),
132
+ skipped: outcome.result.skipped.map((s) => ({ path: s.path, state: s.state, reason: explainSkip(s) })),
133
+ warnings: p.warnings,
134
+ registry: registryOff ? "off" : outcome.registry ? "not updated" : "updated",
135
+ };
136
+ }
118
137
  /**
119
138
  * Build the `McpWriters` for `craftar mcp --allow-writes` (spec 40 §5.3).
120
139
  */
@@ -156,17 +175,7 @@ export function mcpWriters(home, registryOff) {
156
175
  const lock = await readLock(root);
157
176
  const statuses = await status(ws, p, lock);
158
177
  const outcome = await syncWorkspace(ws, p, statuses, lock, { home, registryOff });
159
- return {
160
- profile: ws.config.profile,
161
- recipes: [...p.resolution.recipes],
162
- targets: [...p.resolution.targets],
163
- forge: outcome.forgeLine,
164
- written: outcome.result.written,
165
- removed: outcome.result.removed.map((path) => ({ path, reason: orphanReason(p, statuses, path) })),
166
- skipped: outcome.result.skipped.map((s) => ({ path: s.path, state: s.state, reason: explainSkip(s) })),
167
- warnings: p.warnings,
168
- registry: registryOff ? "off" : outcome.registry ? "not updated" : "updated",
169
- };
178
+ return syncToolResult(ws, p, statuses, outcome, registryOff);
170
179
  },
171
180
  async editRecipes(root, merged, op, names, opts) {
172
181
  const ws = await loadForgeFor(root, merged, { home, git: opts.git, mode: opts.fetch ? "read" : "no-fetch" });
@@ -1 +1 @@
1
- {"version":3,"file":"write-actions.js","sourceRoot":"","sources":["../../src/core/write-actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"write-actions.js","sourceRoot":"","sources":["../../src/core/write-actions.ts"],"names":[],"mappings":"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"}
package/dist/ui/page.js CHANGED
@@ -6,6 +6,7 @@
6
6
  * is a by-hand run.
7
7
  */
8
8
  import { diffShows } from "../core/report.js";
9
+ import { EXAMPLE_SETTINGS } from "../emitters/shared.js";
9
10
  export const PAGE_HTML = `<!doctype html>
10
11
  <html lang="en">
11
12
  <head>
@@ -58,6 +59,17 @@ dd { margin: 0; overflow-wrap: anywhere; }
58
59
  ul { margin: 4px 0; padding-left: 18px; }
59
60
  code.cmd { background: var(--soft); border: 1px solid var(--line); border-radius: 4px; padding: 1px 6px; user-select: all; }
60
61
  `;
62
+ /** CSS rules for the confirmation overlay, added only when writes is true. */
63
+ const CONFIRM_CSS = `
64
+ .confirm-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.5); display: flex; align-items: center; justify-content: center; z-index: 1000; }
65
+ .confirm-box { background: var(--bg); border: 1px solid var(--line); border-radius: 8px; padding: 16px 20px; max-width: 500px; }
66
+ .confirm-box p { margin: 0 0 12px; }
67
+ .confirm-box button { margin-right: 8px; }
68
+ `;
69
+ /** Builds the page's stylesheet. When `writes` is false, the result is the read-only page; when true, it adds confirmation box styles. */
70
+ export function pageCss(writes) {
71
+ return writes ? PAGE_CSS + CONFIRM_CSS : PAGE_CSS;
72
+ }
61
73
  /**
62
74
  * How the page lists each file state — a `Record` over every `FileState`, so a new state does not compile until it is placed here,
63
75
  * as `FILE_STATE_ORDER_MAP` does for the CLI: `order` on the page, `syncActs` (sync writes or removes it without a flag, so the page
@@ -73,7 +85,98 @@ export const PAGE_STATES = {
73
85
  "orphan-drift": { order: 6, syncActs: false, diff: diffShows("orphan-drift") },
74
86
  unchanged: { order: 7, syncActs: false, diff: diffShows("unchanged") },
75
87
  };
76
- export const PAGE_JS = String.raw `"use strict";
88
+ /** Builds the page's script. When `writes` is false, the result is the read-only page; when true, it adds Sync and Discard edit. */
89
+ export function pageJs(writes) {
90
+ // Writing code interpolated only when `writes` is true; otherwise yields ""
91
+ const W_WRITES_VAR = writes ? `\n var writes = false;` : "";
92
+ const W_POST_FN = writes
93
+ ? `
94
+ function post(path, body) {
95
+ return fetch(path, { method: "POST", headers: { Authorization: "Bearer " + token, "Content-Type": "application/json" }, body: JSON.stringify(body), cache: "no-store" }).then(function (res) {
96
+ return res.json().then(
97
+ function (b) { return { status: res.status, body: b }; },
98
+ function () { return { status: res.status, body: null }; }
99
+ );
100
+ });
101
+ }`
102
+ : "";
103
+ const W_CONFIRM_FN = writes
104
+ ? `
105
+ function confirmBox(message, onConfirm) {
106
+ var overlay = el("div", "confirm-overlay");
107
+ var box = el("div", "confirm-box");
108
+ add(box, el("p", "", message));
109
+ add(box, button("Confirm", function () { overlay.parentNode.removeChild(overlay); onConfirm(); }));
110
+ add(box, button("Cancel", function () { overlay.parentNode.removeChild(overlay); }));
111
+ add(overlay, box);
112
+ add(document.body, overlay);
113
+ }`
114
+ : "";
115
+ const W_RESULT_FN = writes
116
+ ? `
117
+ function showWriteResult(into, w, answer) {
118
+ clear(into);
119
+ if (answer.status !== 200 || answer.body === null) return problem(into, answer);
120
+ var b = answer.body;
121
+ var wrote = (b.written || []).length;
122
+ var removed = (b.removed || []).length;
123
+ var skipped = (b.skipped || []).length;
124
+ var said = ["wrote " + wrote + ", removed " + removed + ", skipped " + skipped];
125
+ if (b.registry === "not updated") said.push("the registry was not updated");
126
+ showWorkspace(w, "files", said);
127
+ }`
128
+ : "";
129
+ const W_STORE_WRITES = writes ? `\n writes = doc.writes;` : "";
130
+ const W_SYNC_BTN = writes
131
+ ? `
132
+ /* Sync button: shown only when the workspace can be synced from the page. */
133
+ if (writes && doc.digest && !doc.unsetParams.length && doc.forge.kind !== "remote" && doc.statuses.some(function (s) { return SYNC_ACTS[s.state]; })) {
134
+ var countA = doc.statuses.filter(function (s) { return s.state === "new" || s.state === "update" || s.state === "adopt"; }).length;
135
+ var countR = doc.statuses.filter(function (s) { return s.state === "orphan"; }).length;
136
+ var countK = doc.statuses.filter(function (s) { return s.state === "drift" || s.state === "orphan-drift" || s.state === "collision"; }).length;
137
+ var syncMsg = "Sync writes " + countA + " and removes " + countR + "; " + countK + " hand-edited or colliding file(s) are kept.";
138
+ add(body, button("Sync", function () {
139
+ confirmBox(syncMsg, function () {
140
+ var result = el("div");
141
+ add(body, result);
142
+ add(clear(result), el("p", "dim", "syncing…"));
143
+ post("/api/workspaces/" + w.id + "/sync", { digest: doc.digest }).then(
144
+ function (answer) { showWriteResult(result, w, answer); },
145
+ function () { unreachable(result); }
146
+ );
147
+ });
148
+ }));
149
+ }`
150
+ : "";
151
+ // showDiff needs w, doc and f for the Discard edit button.
152
+ const W_SHOWDIFF_EXTRA_ARGS = writes ? ", w, doc, f" : "";
153
+ // showWorkspace takes an optional said array (lines to show after facts) only in writes mode.
154
+ const W_SHOWWORKSPACE_SAID_PARAM = writes ? ", said" : "";
155
+ const W_SHOWWORKSPACE_DRAW_SAID = writes
156
+ ? `
157
+ if (said && said.length) said.forEach(function (line) { add(body, note(line)); });`
158
+ : "";
159
+ const W_DISCARD_IN_DIFF = writes
160
+ ? `
161
+ /* Discard edit button: only for drift or orphan-drift, not the example file, and the same gates as Sync. */
162
+ if (writes && doc.digest && !doc.unsetParams.length && doc.forge.kind !== "remote" && (f.state === "drift" || f.state === "orphan-drift") && f.path !== ${JSON.stringify(EXAMPLE_SETTINGS)} && !d.hidden) {
163
+ var discardMsg = f.state === "drift"
164
+ ? "The hand edit of " + f.path + " is lost; the Forge's version is written."
165
+ : "The hand edit of " + f.path + " is lost; the file is removed.";
166
+ add(into, button("Discard edit", function () {
167
+ confirmBox(discardMsg, function () {
168
+ var result = el("div");
169
+ add(into, result);
170
+ add(clear(result), el("p", "dim", "discarding…"));
171
+ post("/api/workspaces/" + w.id + "/discard", { digest: doc.digest, path: f.path }).then(
172
+ function (answer) { showWriteResult(result, w, answer); },
173
+ function () { unreachable(result); }
174
+ );
175
+ });
176
+ }));
177
+ }`
178
+ : "";
179
+ return String.raw `"use strict";
77
180
  (function () {
78
181
  var NO_TOKEN = "open the address printed by craftar ui — this tab has no token";
79
182
  var KEY = "craftar-ui-token";
@@ -84,7 +187,7 @@ export const PAGE_JS = String.raw `"use strict";
84
187
  var SYNC_ACTS = ${JSON.stringify(Object.fromEntries(Object.entries(PAGE_STATES).filter(([, v]) => v.syncActs).map(([k]) => [k, true])))};
85
188
  var HAS_DIFF = ${JSON.stringify(Object.fromEntries(Object.entries(PAGE_STATES).map(([k, v]) => [k, v.diff])))};
86
189
  var app = document.getElementById("app");
87
- var table = null;
190
+ var table = null;${W_WRITES_VAR}
88
191
 
89
192
  var fromHash = location.hash.slice(1);
90
193
  var token = fromHash;
@@ -162,7 +265,7 @@ export const PAGE_JS = String.raw `"use strict";
162
265
  function () { return { status: res.status, body: null }; }
163
266
  );
164
267
  });
165
- }
268
+ }${W_POST_FN}${W_CONFIRM_FN}${W_RESULT_FN}
166
269
 
167
270
  /* What the page says for an answer that is not 200. asked: the file's path when the request named one. */
168
271
  function problem(into, answer, asked) {
@@ -205,7 +308,7 @@ export const PAGE_JS = String.raw `"use strict";
205
308
  add(app, head, add(el("div", "bar"), button("Refresh", showWorkspaces)), body);
206
309
  if (!token) return add(clear(body), note(NO_TOKEN, "bad"));
207
310
  load("/api/workspaces", body, undefined, function (doc) {
208
- table = doc;
311
+ table = doc;${W_STORE_WRITES}
209
312
  add(head, el("p", "dim", "craftar " + doc.version + " · registry " + doc.registry));
210
313
  if (!doc.workspaces.length) {
211
314
  add(body, note("no workspace is registered on this machine yet — run craftar sync in one"));
@@ -255,7 +358,7 @@ export const PAGE_JS = String.raw `"use strict";
255
358
  if (kind === "remote") add(into, el("p", "dim", "read from the cached copy of the Forge — not fetched"));
256
359
  }
257
360
 
258
- function showWorkspace(w, tab) {
361
+ function showWorkspace(w, tab${W_SHOWWORKSPACE_SAID_PARAM}) {
259
362
  var body = frame(w, tab);
260
363
  if (!token) return add(body, note(NO_TOKEN, "bad"));
261
364
  if (tab === "forge") return showForge(w, body);
@@ -269,7 +372,7 @@ export const PAGE_JS = String.raw `"use strict";
269
372
  ["forge", forgeLine(doc.forge)],
270
373
  ["lock", doc.forge.lockCommit ? "generated from " + short(doc.forge.lockCommit) : "records no commit"]
271
374
  ].forEach(function (pair) { add(facts, el("dt", "", pair[0]), el("dd", "", pair[1])); });
272
- add(body, facts);
375
+ add(body, facts);${W_SHOWWORKSPACE_DRAW_SAID}
273
376
  if (doc.unsetParams.length) {
274
377
  add(body, note(doc.refused, "bad"));
275
378
  add(body, list(doc.unsetParams.map(function (u) {
@@ -277,7 +380,7 @@ export const PAGE_JS = String.raw `"use strict";
277
380
  })));
278
381
  }
279
382
  if (doc.warnings.length) add(body, el("h3", "", "warnings"), list(doc.warnings));
280
- if (!doc.statuses.length) add(body, note("the Forge produces no file for this workspace"));
383
+ if (!doc.statuses.length) add(body, note("the Forge produces no file for this workspace"));${W_SYNC_BTN}
281
384
  STATES.concat(doc.statuses.map(function (s) { return s.state; }).filter(function (s, i, all) { return STATES.indexOf(s) === -1 && all.indexOf(s) === i; })).forEach(function (state) {
282
385
  var files = doc.statuses.filter(function (s) { return s.state === state; });
283
386
  if (!files.length) return;
@@ -301,7 +404,7 @@ export const PAGE_JS = String.raw `"use strict";
301
404
  if (HAS_DIFF[f.state] !== false) {
302
405
  add(bar, button("diff", function () {
303
406
  detail.hidden = false;
304
- load("/api/workspaces/" + w.id + "/diff" + query, detail, f.path, function (d) { showDiff(detail, d); });
407
+ load("/api/workspaces/" + w.id + "/diff" + query, detail, f.path, function (d) { showDiff(detail${W_SHOWDIFF_EXTRA_ARGS}, d); });
305
408
  }));
306
409
  }
307
410
  if (f.state !== "orphan" && f.state !== "orphan-drift") {
@@ -314,7 +417,7 @@ export const PAGE_JS = String.raw `"use strict";
314
417
  return add(box, bar, detail);
315
418
  }
316
419
 
317
- function showDiff(into, d) {
420
+ function showDiff(into${W_SHOWDIFF_EXTRA_ARGS}, d) {
318
421
  if (d.from) add(into, el("p", "mono dim", "--- " + d.from));
319
422
  if (d.to) add(into, el("p", "mono dim", "+++ " + d.to));
320
423
  if (d.note) add(into, note(d.note, d.hidden ? "warn" : ""));
@@ -330,7 +433,7 @@ export const PAGE_JS = String.raw `"use strict";
330
433
  add(pre, el("span", kind, line), document.createTextNode("\n"));
331
434
  });
332
435
  add(into, pre);
333
- if (lines.length > MAX_DIFF_LINES) add(into, el("p", "dim", "… " + (lines.length - MAX_DIFF_LINES) + " more lines"));
436
+ if (lines.length > MAX_DIFF_LINES) add(into, el("p", "dim", "… " + (lines.length - MAX_DIFF_LINES) + " more lines"));${W_DISCARD_IN_DIFF}
334
437
  }
335
438
 
336
439
  function showExplain(into, x) {
@@ -390,4 +493,6 @@ export const PAGE_JS = String.raw `"use strict";
390
493
  showWorkspaces();
391
494
  })();
392
495
  `;
496
+ }
497
+ export const PAGE_JS = pageJs(false);
393
498
  //# sourceMappingURL=page.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/ui/page.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;;;;;;;CAaxB,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCvB,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAA2E;IACjG,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE;IACzD,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE;IAC/D,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE;IAC7D,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE;IAC9D,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,WAAW,CAAC,EAAE;IACtE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE;IAC/D,cAAc,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,cAAc,CAAC,EAAE;IAC9E,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,WAAW,CAAC,EAAE;CACvE,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;cAKnB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;;;oBAGrB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;mBACtH,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmT9G,CAAC"}
1
+ {"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/ui/page.ts"],"names":[],"mappings":"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"}
package/dist/ui/routes.js CHANGED
@@ -3,12 +3,22 @@ import { renderDiff } from "../core/diff.js";
3
3
  import { oneLine } from "../core/doctor.js";
4
4
  import { isMissing, listWorkspaces, readRegistry } from "../core/registry.js";
5
5
  import { credentialFault, CREDENTIAL_HIDDEN, refHoldsCredentials } from "../core/remote.js";
6
- import { EXAMPLE_CONTENT_HIDDEN, diffReport, explainFile, statusReport } from "../core/report.js";
7
- import { loadWorkspace, plan, readLock, status, unsetSummary } from "../core/sync.js";
6
+ import { EXAMPLE_CONTENT_HIDDEN, diffReport, explainFile, orphanDriftBody, statusReport } from "../core/report.js";
7
+ import { statusDigest, syncToolResult, syncWorkspace } from "../core/write-actions.js";
8
+ import { EXAMPLE_SETTINGS } from "../emitters/shared.js";
9
+ import { loadWorkspace, plan, readLock, status, unsetDeclared, unsetSummary } from "../core/sync.js";
8
10
  import { hashNormalized } from "../core/text.js";
9
11
  export const NOT_FOUND = { error: "not found" };
10
12
  export const PATH_REQUIRED = { error: "path is required, once" };
11
13
  export const MISSING = "the directory or its craftar.yaml is gone — craftar workspaces prune";
14
+ /** The two write route patterns (spec 40 §6.2). */
15
+ export const WRITE_PATTERNS = ["/api/workspaces/<id>/sync", "/api/workspaces/<id>/discard"];
16
+ /** 409 for a remote Forge (spec 40 §6.4 step 2). */
17
+ export const REMOTE_FORGE = "writes from the page need a path Forge — run craftar sync";
18
+ /** 409 when the digest does not match (spec 40 §6.4 step 4). */
19
+ export const STALE_DIGEST = "the workspace changed since the page showed it — refresh";
20
+ /** 409 when the path is not a drift or orphan-drift file, or is the example settings file (spec 40 §6.4 step 5). */
21
+ export const NOT_HAND_EDITED = "not a hand-edited file";
12
22
  /** A workspace's id in a URL: 16 hex characters of the hash of its registered path — the path itself never travels. */
13
23
  export const workspaceId = (registeredPath) => hashNormalized(registeredPath).slice("sha256:".length, "sha256:".length + 16);
14
24
  /** Why a workspace cannot be shown, in one line — the wording `doctor` uses, so the table and a 409 agree. */
@@ -19,9 +29,40 @@ export function routeReason(e) {
19
29
  export function routePattern(path) {
20
30
  if (path === "/api/workspaces")
21
31
  return path;
22
- const m = /^\/api\/workspaces\/[0-9a-f]{16}(\/(diff|explain|recipes|ingredients))?$/.exec(path);
32
+ const m = /^\/api\/workspaces\/[0-9a-f]{16}(\/(diff|explain|recipes|ingredients|sync|discard))?$/.exec(path);
23
33
  return m ? `/api/workspaces/<id>${m[1] ?? ""}` : null;
24
34
  }
35
+ /**
36
+ * A write route's body, checked strictly: `digest` 64 lowercase hex; `path` a string, required for discard and
37
+ * refused for sync; no other key. Null when it does not read.
38
+ */
39
+ export function parseWriteBody(action, text) {
40
+ let parsed;
41
+ try {
42
+ parsed = JSON.parse(text);
43
+ }
44
+ catch {
45
+ return null;
46
+ }
47
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed))
48
+ return null;
49
+ const obj = parsed;
50
+ const allowed = action === "sync" ? ["digest"] : ["digest", "path"];
51
+ if (Object.keys(obj).some((k) => !allowed.includes(k)))
52
+ return null;
53
+ if (typeof obj.digest !== "string" || !/^[0-9a-f]{64}$/.test(obj.digest))
54
+ return null;
55
+ if (action === "sync") {
56
+ if ("path" in obj)
57
+ return null;
58
+ return { digest: obj.digest };
59
+ }
60
+ else {
61
+ if (!("path" in obj) || typeof obj.path !== "string")
62
+ return null;
63
+ return { digest: obj.digest, path: obj.path };
64
+ }
65
+ }
25
66
  /** The query's `path`, given exactly once and decoded once (`+` is not a space) — or null. */
26
67
  function onePath(query) {
27
68
  const given = query.split("&").filter((kv) => kv === "path" || kv.startsWith("path="));
@@ -52,12 +93,23 @@ export async function route(req, deps) {
52
93
  const pattern = routePattern(req.path);
53
94
  if (pattern === null)
54
95
  return { status: 404, body: NOT_FOUND };
96
+ const method = req.method;
97
+ const isWritePattern = WRITE_PATTERNS.includes(pattern);
98
+ // A POST to a reading route, a GET to a write route, or any POST without allowWrites → 404 (the server refuses earlier with 405)
99
+ if (method === "POST" && !isWritePattern)
100
+ return { status: 404, body: NOT_FOUND };
101
+ if (method === "GET" && isWritePattern)
102
+ return { status: 404, body: NOT_FOUND };
103
+ if (method === "POST" && !deps.allowWrites)
104
+ return { status: 404, body: NOT_FOUND };
105
+ if (isWritePattern && !req.body)
106
+ return { status: 400, body: { error: "bad request" } };
55
107
  if (pattern === "/api/workspaces") {
56
108
  const t = await listWorkspaces(deps.home, { fetch: false, reason: routeReason });
57
109
  const rows = t.rows.map(servedRow);
58
110
  return {
59
111
  status: 200,
60
- body: { version: deps.version, registry: t.registry, fetch: false, workspaces: rows, warnings: t.warnings },
112
+ body: { version: deps.version, registry: t.registry, fetch: false, writes: deps.allowWrites === true, workspaces: rows, warnings: t.warnings },
61
113
  };
62
114
  }
63
115
  const [, , , id, what] = req.path.split("/");
@@ -80,8 +132,14 @@ export async function route(req, deps) {
80
132
  let p;
81
133
  let lock;
82
134
  let st;
135
+ let digest;
83
136
  try {
84
- ws = await loadWorkspace(entry.path, { mode: "no-fetch", home: deps.home });
137
+ // A write refuses a remote Forge as the configuration names it, before anything is fetched (spec 40 §6.4).
138
+ ws = await loadWorkspace(entry.path, {
139
+ mode: "no-fetch",
140
+ home: deps.home,
141
+ ...(isWritePattern ? { refuseRemote: () => REMOTE_FORGE } : {}),
142
+ });
85
143
  if (what === "recipes" || what === "ingredients") {
86
144
  // The catalogue resolves and never plans; it does not read the lock either.
87
145
  const context = catalogueContext(ws.forge, { kind: "workspace", config: ws.config });
@@ -91,16 +149,61 @@ export async function route(req, deps) {
91
149
  p = await plan(ws);
92
150
  lock = await readLock(ws.root);
93
151
  st = await status(ws, p, lock);
152
+ // Read here so that a disk error is the workspace's state (409).
153
+ if (isWritePattern || (what === undefined && deps.allowWrites)) {
154
+ digest = await statusDigest(ws, st);
155
+ }
94
156
  }
95
157
  catch (e) {
158
+ // refuseRemote's own words, not doctor's.
159
+ if (e instanceof Error && e.message === REMOTE_FORGE) {
160
+ return { status: 409, body: { error: REMOTE_FORGE, warnings: [] } };
161
+ }
96
162
  return { status: 409, body: { error: routeReason(e), warnings: ws?.warnings ?? [] } };
97
163
  }
164
+ // Write routes: digest → (discard) path → unset → sync → answer (spec 40 §6.4).
165
+ if (isWritePattern) {
166
+ const body = req.body;
167
+ const action = what;
168
+ if (digest !== body.digest) {
169
+ return { status: 409, body: { error: STALE_DIGEST, warnings: [] } };
170
+ }
171
+ let row;
172
+ if (action === "discard") {
173
+ row = st.find((s) => s.path === body.path);
174
+ if (!row || (row.state !== "drift" && row.state !== "orphan-drift") || row.path === EXAMPLE_SETTINGS) {
175
+ return { status: 409, body: { error: NOT_HAND_EDITED, warnings: [] } };
176
+ }
177
+ }
178
+ const unset = unsetDeclared(p);
179
+ if (unset.length) {
180
+ return { status: 409, body: { error: unsetSummary(unset), warnings: [] } };
181
+ }
182
+ const outcome = await syncWorkspace(ws, p, st, lock, {
183
+ home: deps.home,
184
+ registryOff: false,
185
+ ...(action === "discard" && row ? { overwritePaths: new Set([row.path]) } : {}),
186
+ });
187
+ return { status: 200, body: syncToolResult(ws, p, st, outcome, false, action === "discard" && row ? row.path : undefined) };
188
+ }
98
189
  if (what === undefined) {
99
190
  const report = statusReport(ws, p, lock, st);
100
- return {
101
- status: 200,
102
- body: { id, path: entry.path, profile: ws.config.profile, recipes: p.resolution.recipes, targets: p.resolution.targets, ...report, refused: report.unsetParams.length ? unsetSummary(report.unsetParams) : null },
191
+ const base = {
192
+ id,
193
+ path: entry.path,
194
+ profile: ws.config.profile,
195
+ recipes: p.resolution.recipes,
196
+ targets: p.resolution.targets,
197
+ ...report,
198
+ refused: report.unsetParams.length ? unsetSummary(report.unsetParams) : null,
103
199
  };
200
+ if (deps.allowWrites) {
201
+ return {
202
+ status: 200,
203
+ body: { ...base, digest },
204
+ };
205
+ }
206
+ return { status: 200, body: base };
104
207
  }
105
208
  if (what === "explain") {
106
209
  // Never `notProduced`'s message: it quotes the path asked.
@@ -111,6 +214,24 @@ export async function route(req, deps) {
111
214
  const row = st.find((s) => s.path === wanted);
112
215
  if (!row)
113
216
  return { status: 404, body: NOT_FOUND };
217
+ // For orphan-drift, under allowWrites, return the file's body as a diff (spec 40 §6.5)
218
+ if (row.state === "orphan-drift" && deps.allowWrites) {
219
+ const { body: fileBody, note } = await orphanDriftBody(ws.root, row);
220
+ const from = `${row.path} (disk, ${row.state})`;
221
+ const to = `${row.path} (forge: no longer produced — discard removes it)`;
222
+ return {
223
+ status: 200,
224
+ body: {
225
+ path: row.path,
226
+ state: row.state,
227
+ from,
228
+ to,
229
+ hidden: note !== null,
230
+ note,
231
+ diff: fileBody === null ? null : renderDiff(fileBody, ""),
232
+ },
233
+ };
234
+ }
114
235
  const [d] = await diffReport(ws, [row], { withholdMcp: false });
115
236
  if (!d)
116
237
  return { status: 200, body: { path: row.path, state: row.state, from: null, to: null, hidden: false, note: null, diff: null } };
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/ui/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/ui/routes.ts"],"names":[],"mappings":"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"}