@deskwork/studio 0.14.1 → 0.16.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 (86) hide show
  1. package/dist/components/scrapbook-item.d.ts +20 -0
  2. package/dist/components/scrapbook-item.d.ts.map +1 -1
  3. package/dist/components/scrapbook-item.js +21 -2
  4. package/dist/components/scrapbook-item.js.map +1 -1
  5. package/dist/pages/dashboard/affordances.d.ts.map +1 -1
  6. package/dist/pages/dashboard/affordances.js +13 -1
  7. package/dist/pages/dashboard/affordances.js.map +1 -1
  8. package/dist/pages/dashboard/affordances.ts +13 -1
  9. package/dist/pages/dashboard/press-queue.d.ts +16 -0
  10. package/dist/pages/dashboard/press-queue.d.ts.map +1 -0
  11. package/dist/pages/dashboard/press-queue.js +91 -0
  12. package/dist/pages/dashboard/press-queue.js.map +1 -0
  13. package/dist/pages/dashboard/press-queue.ts +112 -0
  14. package/dist/pages/dashboard.d.ts.map +1 -1
  15. package/dist/pages/dashboard.js +2 -0
  16. package/dist/pages/dashboard.js.map +1 -1
  17. package/dist/pages/dashboard.ts +2 -0
  18. package/dist/pages/entry-review/decision-strip.d.ts.map +1 -1
  19. package/dist/pages/entry-review/decision-strip.js +10 -2
  20. package/dist/pages/entry-review/decision-strip.js.map +1 -1
  21. package/dist/pages/entry-review/index.d.ts.map +1 -1
  22. package/dist/pages/entry-review/index.js +7 -4
  23. package/dist/pages/entry-review/index.js.map +1 -1
  24. package/dist/pages/help.js +11 -11
  25. package/dist/pages/help.js.map +1 -1
  26. package/dist/pages/help.ts +11 -11
  27. package/dist/pages/review-scrapbook-drawer.d.ts.map +1 -1
  28. package/dist/pages/review-scrapbook-drawer.js +10 -1
  29. package/dist/pages/review-scrapbook-drawer.js.map +1 -1
  30. package/dist/pages/review-scrapbook-drawer.ts +11 -1
  31. package/dist/pages/scrapbook/dispatch.d.ts +50 -0
  32. package/dist/pages/scrapbook/dispatch.d.ts.map +1 -0
  33. package/dist/pages/scrapbook/dispatch.js +104 -0
  34. package/dist/pages/scrapbook/dispatch.js.map +1 -0
  35. package/dist/pages/scrapbook/image-readers.d.ts +24 -0
  36. package/dist/pages/scrapbook/image-readers.d.ts.map +1 -0
  37. package/dist/pages/scrapbook/image-readers.js +135 -0
  38. package/dist/pages/scrapbook/image-readers.js.map +1 -0
  39. package/dist/pages/scrapbook/index.d.ts +21 -0
  40. package/dist/pages/scrapbook/index.d.ts.map +1 -0
  41. package/dist/pages/scrapbook/index.js +96 -0
  42. package/dist/pages/scrapbook/index.js.map +1 -0
  43. package/dist/pages/scrapbook/render.d.ts +68 -0
  44. package/dist/pages/scrapbook/render.d.ts.map +1 -0
  45. package/dist/pages/scrapbook/render.js +315 -0
  46. package/dist/pages/scrapbook/render.js.map +1 -0
  47. package/dist/pages/scrapbook/text-helpers.d.ts +40 -0
  48. package/dist/pages/scrapbook/text-helpers.d.ts.map +1 -0
  49. package/dist/pages/scrapbook/text-helpers.js +92 -0
  50. package/dist/pages/scrapbook/text-helpers.js.map +1 -0
  51. package/dist/pages/scrapbook/types.d.ts +26 -0
  52. package/dist/pages/scrapbook/types.d.ts.map +1 -0
  53. package/dist/pages/scrapbook/types.js +12 -0
  54. package/dist/pages/scrapbook/types.js.map +1 -0
  55. package/dist/pages/scrapbook.d.ts +8 -8
  56. package/dist/pages/scrapbook.d.ts.map +1 -1
  57. package/dist/pages/scrapbook.js +8 -600
  58. package/dist/pages/scrapbook.js.map +1 -1
  59. package/dist/pages/scrapbook.ts +11 -660
  60. package/dist/routes/api.d.ts.map +1 -1
  61. package/dist/routes/api.js +102 -140
  62. package/dist/routes/api.js.map +1 -1
  63. package/dist/routes/entry-annotation-body.d.ts +29 -0
  64. package/dist/routes/entry-annotation-body.d.ts.map +1 -1
  65. package/dist/routes/entry-annotation-body.js +80 -0
  66. package/dist/routes/entry-annotation-body.js.map +1 -1
  67. package/dist/routes/scrapbook-file.d.ts +17 -9
  68. package/dist/routes/scrapbook-file.d.ts.map +1 -1
  69. package/dist/routes/scrapbook-file.js +48 -15
  70. package/dist/routes/scrapbook-file.js.map +1 -1
  71. package/dist/routes/scrapbook-mutation-dispatch.d.ts +29 -0
  72. package/dist/routes/scrapbook-mutation-dispatch.d.ts.map +1 -0
  73. package/dist/routes/scrapbook-mutation-dispatch.js +63 -0
  74. package/dist/routes/scrapbook-mutation-dispatch.js.map +1 -0
  75. package/dist/routes/scrapbook-mutation-envelope.d.ts +93 -0
  76. package/dist/routes/scrapbook-mutation-envelope.d.ts.map +1 -0
  77. package/dist/routes/scrapbook-mutation-envelope.js +147 -0
  78. package/dist/routes/scrapbook-mutation-envelope.js.map +1 -0
  79. package/dist/routes/scrapbook-mutations.d.ts +25 -7
  80. package/dist/routes/scrapbook-mutations.d.ts.map +1 -1
  81. package/dist/routes/scrapbook-mutations.js +67 -92
  82. package/dist/routes/scrapbook-mutations.js.map +1 -1
  83. package/dist/server.d.ts.map +1 -1
  84. package/dist/server.js +16 -2
  85. package/dist/server.js.map +1 -1
  86. package/package.json +2 -2
@@ -20,23 +20,17 @@ import { Hono } from 'hono';
20
20
  import { handleAnnotate, handleListAnnotations, handleDecision, handleGetWorkflow, handleCreateVersion, handleStartLongform, } from '@deskwork/core/review/handlers';
21
21
  import { handleStartShortform } from '@deskwork/core/review/start-handlers';
22
22
  import { renderMarkdownToHtml } from '@deskwork/core/review/render';
23
- import { approveEntryStage } from '@deskwork/core/entry/approve';
24
- import { blockEntry } from '@deskwork/core/entry/block';
25
- import { cancelEntry } from '@deskwork/core/entry/cancel';
26
- import { inductEntry } from '@deskwork/core/entry/induct';
27
23
  import { addEntryAnnotation, listEntryAnnotations, mintEntryAnnotation, } from '@deskwork/core/entry/annotations';
28
24
  import { readSidecar } from '@deskwork/core/sidecar';
29
- import { iterateEntry } from '@deskwork/core/iterate';
30
- import { parseEntryAnnotationBody } from "./entry-annotation-body.js";
31
- const VALID_STAGES = new Set([
32
- 'Ideas', 'Planned', 'Outlining', 'Drafting', 'Final', 'Published',
33
- ]);
34
- function isStage(value) {
35
- return typeof value === 'string' && VALID_STAGES.has(value);
36
- }
37
- function isRecord(value) {
38
- return typeof value === 'object' && value !== null && !Array.isArray(value);
39
- }
25
+ import { parseEntryAnnotationBody, parseEditCommentFields, } from "./entry-annotation-body.js";
26
+ /**
27
+ * Mirrors the UUID regex enforced on entry creation and used by the
28
+ * scrapbook-* and entry-keyed page routes (commit `14ffbe7`). Reject
29
+ * malformed `entryId` / `commentId` before reaching the journal — both
30
+ * are persisted in `<projectRoot>/.deskwork/...` paths and an
31
+ * unvalidated id can probe arbitrary on-disk locations.
32
+ */
33
+ const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
40
34
  /**
41
35
  * Narrow a `HandlerResult.body` (typed as `unknown`) to extract the
42
36
  * workflow id. Returns null when the shape doesn't match — phase 21c's
@@ -195,85 +189,12 @@ export function createApiRouter(ctx) {
195
189
  return c.json({ error: `render failed: ${reason}` }, 500);
196
190
  }
197
191
  });
198
- // Phase 30 entry-stage actions (#146).
199
- // POST /api/dev/editorial-review/entry/:entryId/approve → Ideas Planned, etc.
200
- // POST /api/dev/editorial-review/entry/:entryId/block → currentStage → Blocked
201
- // POST /api/dev/editorial-review/entry/:entryId/cancel → currentStage Cancelled
202
- // POST /api/dev/editorial-review/entry/:entryId/induct → teleport to body.targetStage
203
- app.post('/entry/:entryId/approve', async (c) => {
204
- const entryId = c.req.param('entryId');
205
- try {
206
- const r = await approveEntryStage(ctx.projectRoot, { uuid: entryId });
207
- return c.json(r);
208
- }
209
- catch (err) {
210
- return c.json({ error: err instanceof Error ? err.message : String(err) }, 400);
211
- }
212
- });
213
- app.post('/entry/:entryId/block', async (c) => {
214
- const entryId = c.req.param('entryId');
215
- let body = {};
216
- try {
217
- const parsed = await c.req.json().catch(() => ({}));
218
- if (parsed && typeof parsed === 'object' && typeof parsed.reason === 'string') {
219
- body = { reason: parsed.reason };
220
- }
221
- }
222
- catch {
223
- // body optional
224
- }
225
- try {
226
- const r = await blockEntry(ctx.projectRoot, { uuid: entryId, ...body });
227
- return c.json(r);
228
- }
229
- catch (err) {
230
- return c.json({ error: err instanceof Error ? err.message : String(err) }, 400);
231
- }
232
- });
233
- app.post('/entry/:entryId/cancel', async (c) => {
234
- const entryId = c.req.param('entryId');
235
- let body = {};
236
- try {
237
- const parsed = await c.req.json().catch(() => ({}));
238
- if (parsed && typeof parsed === 'object' && typeof parsed.reason === 'string') {
239
- body = { reason: parsed.reason };
240
- }
241
- }
242
- catch {
243
- // body optional
244
- }
245
- try {
246
- const r = await cancelEntry(ctx.projectRoot, { uuid: entryId, ...body });
247
- return c.json(r);
248
- }
249
- catch (err) {
250
- return c.json({ error: err instanceof Error ? err.message : String(err) }, 400);
251
- }
252
- });
253
- app.post('/entry/:entryId/induct', async (c) => {
254
- const entryId = c.req.param('entryId');
255
- let parsed;
256
- try {
257
- parsed = await c.req.json();
258
- }
259
- catch {
260
- return c.json({ error: 'invalid JSON body' }, 400);
261
- }
262
- if (!parsed || typeof parsed !== 'object') {
263
- return c.json({ error: 'expected JSON object body' }, 400);
264
- }
265
- const targetStage = parsed.targetStage;
266
- if (!isStage(targetStage)) {
267
- return c.json({ error: 'targetStage must be one of Ideas|Planned|Outlining|Drafting|Final|Published' }, 400);
268
- }
269
- try {
270
- const r = await inductEntry(ctx.projectRoot, { uuid: entryId, targetStage });
271
- return c.json(r);
272
- }
273
- catch (err) {
274
- return c.json({ error: err instanceof Error ? err.message : String(err) }, 400);
275
- }
276
- });
192
+ // Phase 30 entry-stage action endpoints (approve / block / cancel / induct)
193
+ // were retired in #189: those mutations belong to skills, not to the
194
+ // studio's API surface. The studio's review-surface buttons now
195
+ // copy `/deskwork:<verb> <slug>` to the operator's clipboard via
196
+ // `copyOrShowFallback`; the operator pastes into Claude Code where
197
+ // the skill runs. See THESIS.md Consequence 2.
277
198
  // Phase 34a entry-keyed longform endpoints (#170 / #171).
278
199
  // These nest under the same `/entry/:entryId/` prefix as the stage
279
200
  // actions above; together they form the canonical longform surface.
@@ -300,7 +221,18 @@ export function createApiRouter(ctx) {
300
221
  return c.json({ error: `unknown entry: ${entryId}` }, status);
301
222
  }
302
223
  const minted = mintEntryAnnotation(parsed.draft);
303
- await addEntryAnnotation(ctx.projectRoot, entryId, minted);
224
+ try {
225
+ await addEntryAnnotation(ctx.projectRoot, entryId, minted);
226
+ }
227
+ catch (err) {
228
+ const msg = err instanceof Error ? err.message : String(err);
229
+ // edit-comment / delete-comment writes that reference an unknown
230
+ // commentId surface here as a 404; everything else is a 500.
231
+ if (msg.includes('unknown commentId')) {
232
+ return c.json({ error: msg }, 404);
233
+ }
234
+ return c.json({ error: msg }, 500);
235
+ }
304
236
  return c.json({ annotation: minted });
305
237
  });
306
238
  // GET /api/dev/editorial-review/entry/:entryId/annotations
@@ -309,71 +241,101 @@ export function createApiRouter(ctx) {
309
241
  const annotations = await listEntryAnnotations(ctx.projectRoot, entryId);
310
242
  return c.json({ annotations });
311
243
  });
312
- // POST /api/dev/editorial-review/entry/:entryId/decision
313
- // Accepts the stage-changing decisions only: approve, block, cancel.
314
- // Other decision values are explicitly rejected with 400 — see
315
- // https://github.com/audiocontrol-org/deskwork/issues/171 (Phase 34a
316
- // umbrella) for the contract scope.
317
- app.post('/entry/:entryId/decision', async (c) => {
244
+ // Phase 35 (issue #199) — append-only edit + delete journal for
245
+ // marginalia comments. PATCH appends an `edit-comment` annotation;
246
+ // DELETE appends a `delete-comment` annotation. Both fold into the
247
+ // active-comment view returned by the GET above; the original
248
+ // `comment` annotation is preserved on disk as audit trail.
249
+ // PATCH /api/dev/editorial-review/entry/:entryId/comments/:commentId
250
+ app.patch('/entry/:entryId/comments/:commentId', async (c) => {
318
251
  const entryId = c.req.param('entryId');
319
- let parsed;
252
+ const commentId = c.req.param('commentId');
253
+ if (!UUID_RE.test(entryId)) {
254
+ return c.json({ error: `malformed entryId: ${entryId}` }, 400);
255
+ }
256
+ if (!UUID_RE.test(commentId)) {
257
+ return c.json({ error: `malformed commentId: ${commentId}` }, 400);
258
+ }
259
+ let body;
320
260
  try {
321
- parsed = await c.req.json();
261
+ body = await c.req.json();
322
262
  }
323
263
  catch {
324
264
  return c.json({ error: 'invalid JSON body' }, 400);
325
265
  }
326
- if (!isRecord(parsed)) {
327
- return c.json({ error: 'expected JSON object body' }, 400);
266
+ const parsed = parseEditCommentFields(body);
267
+ if (parsed.kind === 'err') {
268
+ return c.json({ error: parsed.message }, parsed.status);
328
269
  }
329
- const decision = parsed.decision;
330
- if (typeof decision !== 'string') {
331
- return c.json({ error: "decision is required (one of 'approve' | 'block' | 'cancel')" }, 400);
270
+ try {
271
+ await readSidecar(ctx.projectRoot, entryId);
272
+ }
273
+ catch (err) {
274
+ const msg = err instanceof Error ? err.message : String(err);
275
+ const status = msg.startsWith('sidecar not found') ? 404 : 500;
276
+ return c.json({ error: `unknown entry: ${entryId}` }, status);
332
277
  }
333
- const reason = typeof parsed.reason === 'string' ? parsed.reason : undefined;
278
+ const minted = mintEntryAnnotation({
279
+ type: 'edit-comment',
280
+ workflowId: entryId,
281
+ commentId,
282
+ ...(parsed.fields.text !== undefined ? { text: parsed.fields.text } : {}),
283
+ ...(parsed.fields.range !== undefined ? { range: parsed.fields.range } : {}),
284
+ ...(parsed.fields.category !== undefined ? { category: parsed.fields.category } : {}),
285
+ ...(parsed.fields.anchor !== undefined ? { anchor: parsed.fields.anchor } : {}),
286
+ });
334
287
  try {
335
- switch (decision) {
336
- case 'approve': {
337
- const r = await approveEntryStage(ctx.projectRoot, { uuid: entryId });
338
- return c.json(r);
339
- }
340
- case 'block': {
341
- const r = await blockEntry(ctx.projectRoot, {
342
- uuid: entryId,
343
- ...(reason !== undefined ? { reason } : {}),
344
- });
345
- return c.json(r);
346
- }
347
- case 'cancel': {
348
- const r = await cancelEntry(ctx.projectRoot, {
349
- uuid: entryId,
350
- ...(reason !== undefined ? { reason } : {}),
351
- });
352
- return c.json(r);
353
- }
354
- default:
355
- return c.json({ error: `decision '${decision}' is not supported on this endpoint (valid: approve | block | cancel)` }, 400);
356
- }
288
+ await addEntryAnnotation(ctx.projectRoot, entryId, minted);
357
289
  }
358
290
  catch (err) {
359
- return c.json({ error: err instanceof Error ? err.message : String(err) }, 400);
291
+ const msg = err instanceof Error ? err.message : String(err);
292
+ if (msg.includes('unknown commentId')) {
293
+ return c.json({ error: msg }, 404);
294
+ }
295
+ return c.json({ error: msg }, 500);
360
296
  }
297
+ return c.json({ annotation: minted });
361
298
  });
362
- // POST /api/dev/editorial-review/entry/:entryId/version
363
- // Records a new iteration of the on-disk artifact for the entry's
364
- // current stage. Returns the IterateResult shape directly.
365
- app.post('/entry/:entryId/version', async (c) => {
299
+ // DELETE /api/dev/editorial-review/entry/:entryId/comments/:commentId
300
+ app.delete('/entry/:entryId/comments/:commentId', async (c) => {
366
301
  const entryId = c.req.param('entryId');
302
+ const commentId = c.req.param('commentId');
303
+ if (!UUID_RE.test(entryId)) {
304
+ return c.json({ error: `malformed entryId: ${entryId}` }, 400);
305
+ }
306
+ if (!UUID_RE.test(commentId)) {
307
+ return c.json({ error: `malformed commentId: ${commentId}` }, 400);
308
+ }
367
309
  try {
368
- const r = await iterateEntry(ctx.projectRoot, { uuid: entryId });
369
- return c.json(r);
310
+ await readSidecar(ctx.projectRoot, entryId);
370
311
  }
371
312
  catch (err) {
372
313
  const msg = err instanceof Error ? err.message : String(err);
373
- const status = msg.startsWith('sidecar not found') ? 404 : 400;
374
- return c.json({ error: msg }, status);
314
+ const status = msg.startsWith('sidecar not found') ? 404 : 500;
315
+ return c.json({ error: `unknown entry: ${entryId}` }, status);
316
+ }
317
+ const minted = mintEntryAnnotation({
318
+ type: 'delete-comment',
319
+ workflowId: entryId,
320
+ commentId,
321
+ });
322
+ try {
323
+ await addEntryAnnotation(ctx.projectRoot, entryId, minted);
375
324
  }
325
+ catch (err) {
326
+ const msg = err instanceof Error ? err.message : String(err);
327
+ if (msg.includes('unknown commentId')) {
328
+ return c.json({ error: msg }, 404);
329
+ }
330
+ return c.json({ error: msg }, 500);
331
+ }
332
+ return c.json({ annotation: minted });
376
333
  });
334
+ // The entry-keyed `/entry/:entryId/decision` and `/entry/:entryId/version`
335
+ // endpoints were retired alongside the verb endpoints above (#189). The
336
+ // studio's review-surface Approve / Iterate buttons now copy
337
+ // `/deskwork:approve <slug>` / `/deskwork:iterate <slug>` to the
338
+ // clipboard. State-machine mutation belongs to the skill.
377
339
  return app;
378
340
  }
379
341
  //# sourceMappingURL=api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/routes/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/routes/api.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,9 @@
13
13
  import type { DraftAnnotation } from '@deskwork/core/review/types';
14
14
  type DistributeOmit<T, K extends keyof T> = T extends unknown ? Omit<T, K> : never;
15
15
  export type AnnotationDraftFromBody = DistributeOmit<DraftAnnotation, 'id' | 'createdAt'>;
16
+ type CommentDraft = Extract<AnnotationDraftFromBody, {
17
+ type: 'comment';
18
+ }>;
16
19
  export type ParseResult = {
17
20
  kind: 'ok';
18
21
  draft: AnnotationDraftFromBody;
@@ -22,5 +25,31 @@ export type ParseResult = {
22
25
  message: string;
23
26
  };
24
27
  export declare function parseEntryAnnotationBody(body: unknown): ParseResult;
28
+ /**
29
+ * Parser for the PATCH /entry/:entryId/comments/:commentId body.
30
+ *
31
+ * Differs from `parseEntryAnnotationBody` for the `edit-comment` case
32
+ * because the route already binds `commentId` from the URL — the body
33
+ * carries only the editable fields. The route mints the `workflowId`
34
+ * field (= entryId) on the draft to satisfy the schema.
35
+ */
36
+ export interface ParseEditFieldsResult {
37
+ text?: string;
38
+ range?: {
39
+ start: number;
40
+ end: number;
41
+ };
42
+ category?: NonNullable<CommentDraft['category']>;
43
+ anchor?: string;
44
+ }
45
+ export type ParseEditFieldsOutcome = {
46
+ kind: 'ok';
47
+ fields: ParseEditFieldsResult;
48
+ } | {
49
+ kind: 'err';
50
+ status: 400;
51
+ message: string;
52
+ };
53
+ export declare function parseEditCommentFields(body: unknown): ParseEditFieldsOutcome;
25
54
  export {};
26
55
  //# sourceMappingURL=entry-annotation-body.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"entry-annotation-body.d.ts","sourceRoot":"","sources":["../../src/routes/entry-annotation-body.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEnE,KAAK,cAAc,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,SAAS,OAAO,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;AACnF,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAAC,eAAe,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC;AA2B1F,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,uBAAuB,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAclD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAuGnE"}
1
+ {"version":3,"file":"entry-annotation-body.d.ts","sourceRoot":"","sources":["../../src/routes/entry-annotation-body.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEnE,KAAK,cAAc,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,SAAS,OAAO,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;AACnF,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAAC,eAAe,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC;AAE1F,KAAK,YAAY,GAAG,OAAO,CAAC,uBAAuB,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AAyB1E,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,uBAAuB,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAclD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAmInE;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,QAAQ,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,sBAAsB,GAC9B;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,qBAAqB,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAElD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,OAAO,GAAG,sBAAsB,CA0D5E"}
@@ -145,8 +145,88 @@ export function parseEntryAnnotationBody(body) {
145
145
  };
146
146
  return { kind: 'ok', draft };
147
147
  }
148
+ case 'edit-comment': {
149
+ const commentId = obj.commentId;
150
+ if (typeof commentId !== 'string' || commentId.length === 0) {
151
+ return err('edit-comment.commentId is required');
152
+ }
153
+ const fields = parseEditCommentFields(obj);
154
+ if (fields.kind === 'err')
155
+ return err(`edit-comment: ${fields.message}`);
156
+ const draft = {
157
+ type: 'edit-comment',
158
+ workflowId,
159
+ commentId,
160
+ ...(fields.fields.text !== undefined ? { text: fields.fields.text } : {}),
161
+ ...(fields.fields.range !== undefined ? { range: fields.fields.range } : {}),
162
+ ...(fields.fields.category !== undefined ? { category: fields.fields.category } : {}),
163
+ ...(fields.fields.anchor !== undefined ? { anchor: fields.fields.anchor } : {}),
164
+ };
165
+ return { kind: 'ok', draft };
166
+ }
167
+ case 'delete-comment': {
168
+ const commentId = obj.commentId;
169
+ if (typeof commentId !== 'string' || commentId.length === 0) {
170
+ return err('delete-comment.commentId is required');
171
+ }
172
+ return {
173
+ kind: 'ok',
174
+ draft: { type: 'delete-comment', workflowId, commentId },
175
+ };
176
+ }
148
177
  default:
149
178
  return err(`unknown annotation type: ${type}`);
150
179
  }
151
180
  }
181
+ export function parseEditCommentFields(body) {
182
+ const obj = asObject(body);
183
+ if (!obj)
184
+ return { kind: 'err', status: 400, message: 'expected JSON object body' };
185
+ const out = {};
186
+ if (obj.text !== undefined) {
187
+ if (typeof obj.text !== 'string') {
188
+ return { kind: 'err', status: 400, message: 'text must be a string' };
189
+ }
190
+ out.text = obj.text;
191
+ }
192
+ if (obj.range !== undefined) {
193
+ const range = asObject(obj.range);
194
+ if (!range || typeof range.start !== 'number' || typeof range.end !== 'number') {
195
+ return {
196
+ kind: 'err',
197
+ status: 400,
198
+ message: 'range must have numeric start/end',
199
+ };
200
+ }
201
+ out.range = { start: range.start, end: range.end };
202
+ }
203
+ if (obj.category !== undefined) {
204
+ const category = asCategory(obj.category);
205
+ if (category === null) {
206
+ return {
207
+ kind: 'err',
208
+ status: 400,
209
+ message: 'category must be a known category',
210
+ };
211
+ }
212
+ out.category = category;
213
+ }
214
+ if (obj.anchor !== undefined) {
215
+ if (typeof obj.anchor !== 'string') {
216
+ return { kind: 'err', status: 400, message: 'anchor must be a string' };
217
+ }
218
+ out.anchor = obj.anchor;
219
+ }
220
+ if (out.text === undefined &&
221
+ out.range === undefined &&
222
+ out.category === undefined &&
223
+ out.anchor === undefined) {
224
+ return {
225
+ kind: 'err',
226
+ status: 400,
227
+ message: 'at least one of text / range / category / anchor is required',
228
+ };
229
+ }
230
+ return { kind: 'ok', fields: out };
231
+ }
152
232
  //# sourceMappingURL=entry-annotation-body.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"entry-annotation-body.js","sourceRoot":"","sources":["../../src/routes/entry-annotation-body.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entry-annotation-body.js","sourceRoot":"","sources":["../../src/routes/entry-annotation-body.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,25 @@
1
1
  /**
2
2
  * Read-only binary endpoint for scrapbook files.
3
3
  *
4
- * `GET /api/dev/scrapbook-file?site=<slug>&path=<scrapbook path>&name=<filename>[&secret=1]`
4
+ * Two addressing modes:
5
5
  *
6
- * Returns the raw bytes of a single scrapbook file with a sensible
7
- * Content-Type header. Read-only no write/rename/delete here. The
8
- * shared scrapbook-item renderer uses this for image thumbnails,
9
- * PDF iframes, and download links on the review-drawer + content-view
10
- * surfaces.
6
+ * `GET /api/dev/scrapbook-file?site=<slug>&path=<scrapbook path>&name=<filename>[&secret=1]`
7
+ * slug-shape addressing. `path` is the directory under `contentDir`
8
+ * whose `scrapbook/` subdir holds the file. Validated through
9
+ * `assertSlug` (kebab-case-only); rejects paths with dots / uppercase
10
+ * / non-slug characters.
11
11
  *
12
- * Validation runs through `@deskwork/core/scrapbook`'s own
13
- * `assertSlug` / `assertFilename` (via `readScrapbookFile`), so path
14
- * traversal attempts are caught at the core boundary, not here.
12
+ * `GET /api/dev/scrapbook-file?site=<slug>&entryId=<uuid>&name=<filename>[&secret=1]`
13
+ * entry-id addressing. The route reads the entry's sidecar to find
14
+ * its on-disk artifactPath, derives the scrapbook dir from the
15
+ * artifact's parent directory, and serves the file. No slug-shape
16
+ * validation — works for projects whose feature-doc layout doesn't
17
+ * match the kebab-case slug template (e.g. `docs/<version>/<status>/<feature>/`).
18
+ *
19
+ * Both modes return the raw bytes of a single scrapbook file with a
20
+ * sensible Content-Type header. Filename + path-traversal guards apply
21
+ * in both modes (via `assertFilename` + the containment check in
22
+ * `scrapbookFilePathAtDir`).
15
23
  */
16
24
  import type { Context } from 'hono';
17
25
  import type { StudioContext } from './api.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"scrapbook-file.d.ts","sourceRoot":"","sources":["../../src/routes/scrapbook-file.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAwB9C,wBAAsB,kBAAkB,CACtC,CAAC,EAAE,OAAO,EACV,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,QAAQ,CAAC,CA2CnB"}
1
+ {"version":3,"file":"scrapbook-file.d.ts","sourceRoot":"","sources":["../../src/routes/scrapbook-file.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAOpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAwB9C,wBAAsB,kBAAkB,CACtC,CAAC,EAAE,OAAO,EACV,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,QAAQ,CAAC,CA4EnB"}