wicked-crew 0.7.48 → 0.8.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.
- package/dist/api/discovery-source.d.ts +51 -0
- package/dist/api/discovery-source.d.ts.map +1 -0
- package/dist/api/discovery-source.js +176 -0
- package/dist/api/discovery-source.js.map +1 -0
- package/dist/api/governance-steering.d.ts +4 -5
- package/dist/api/governance-steering.d.ts.map +1 -1
- package/dist/api/governance-steering.js +11 -16
- package/dist/api/governance-steering.js.map +1 -1
- package/dist/api/recording.d.ts +23 -0
- package/dist/api/recording.d.ts.map +1 -1
- package/dist/api/recording.js +151 -4
- package/dist/api/recording.js.map +1 -1
- package/dist/api/routes.d.ts +4 -1
- package/dist/api/routes.d.ts.map +1 -1
- package/dist/api/routes.js +36 -4
- package/dist/api/routes.js.map +1 -1
- package/dist/api/run-files.d.ts +13 -1
- package/dist/api/run-files.d.ts.map +1 -1
- package/dist/api/run-files.js +30 -6
- package/dist/api/run-files.js.map +1 -1
- package/dist/api/seat-standing.d.ts +16 -0
- package/dist/api/seat-standing.d.ts.map +1 -1
- package/dist/api/seat-standing.js +54 -4
- package/dist/api/seat-standing.js.map +1 -1
- package/dist/api/server.d.ts +15 -0
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +67 -3
- package/dist/api/server.js.map +1 -1
- package/dist/api/steering-landing.d.ts +7 -7
- package/dist/api/steering-landing.js +7 -7
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +16 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/core/adapter.d.ts +16 -1
- package/dist/core/adapter.d.ts.map +1 -1
- package/dist/core/adapter.js +48 -10
- package/dist/core/adapter.js.map +1 -1
- package/dist/core/types.d.ts +7 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/interactive/doc-checks-routes.d.ts +38 -0
- package/dist/interactive/doc-checks-routes.d.ts.map +1 -0
- package/dist/interactive/doc-checks-routes.js +122 -0
- package/dist/interactive/doc-checks-routes.js.map +1 -0
- package/dist/interactive/doc-delete-routes.d.ts +1 -1
- package/dist/interactive/doc-delete-routes.d.ts.map +1 -1
- package/dist/interactive/doc-delete-routes.js +1 -1
- package/dist/interactive/doc-delete-routes.js.map +1 -1
- package/dist/interactive/doc-ledger-sweep.d.ts +3 -2
- package/dist/interactive/doc-ledger-sweep.d.ts.map +1 -1
- package/dist/interactive/doc-ledger-sweep.js +4 -3
- package/dist/interactive/doc-ledger-sweep.js.map +1 -1
- package/dist/interactive/doc-run-index.d.ts +10 -2
- package/dist/interactive/doc-run-index.d.ts.map +1 -1
- package/dist/interactive/doc-run-index.js +16 -3
- package/dist/interactive/doc-run-index.js.map +1 -1
- package/dist/interactive/ledger.d.ts +4 -1
- package/dist/interactive/ledger.d.ts.map +1 -1
- package/dist/interactive/ledger.js +5 -2
- package/dist/interactive/ledger.js.map +1 -1
- package/dist/interactive/review-events.d.ts +185 -0
- package/dist/interactive/review-events.d.ts.map +1 -0
- package/dist/interactive/review-events.js +856 -0
- package/dist/interactive/review-events.js.map +1 -0
- package/dist/interactive/review-ledger.d.ts +79 -0
- package/dist/interactive/review-ledger.d.ts.map +1 -0
- package/dist/interactive/review-ledger.js +131 -0
- package/dist/interactive/review-ledger.js.map +1 -0
- package/dist/interactive/ws-relay.d.ts +2 -1
- package/dist/interactive/ws-relay.d.ts.map +1 -1
- package/dist/interactive/ws-relay.js +2 -1
- package/dist/interactive/ws-relay.js.map +1 -1
- package/dist/projects/graph.d.ts.map +1 -1
- package/dist/projects/graph.js +10 -0
- package/dist/projects/graph.js.map +1 -1
- package/dist/projects/membership-index.d.ts +2 -0
- package/dist/projects/membership-index.d.ts.map +1 -1
- package/dist/projects/membership-index.js +8 -0
- package/dist/projects/membership-index.js.map +1 -1
- package/dist/qe/acceptance.d.ts +6 -1
- package/dist/qe/acceptance.d.ts.map +1 -1
- package/dist/qe/acceptance.js +11 -9
- package/dist/qe/acceptance.js.map +1 -1
- package/dist/qe/ledger.d.ts +35 -0
- package/dist/qe/ledger.d.ts.map +1 -1
- package/dist/qe/ledger.js +47 -0
- package/dist/qe/ledger.js.map +1 -1
- package/dist/qe/walkthrough-acceptance.d.ts +6 -0
- package/dist/qe/walkthrough-acceptance.d.ts.map +1 -1
- package/dist/qe/walkthrough-acceptance.js +12 -4
- package/dist/qe/walkthrough-acceptance.js.map +1 -1
- package/dist/studio/assets/archivo-latin-ext-wght-normal-C4zznr8T.woff2 +0 -0
- package/dist/studio/assets/archivo-latin-wght-normal-E0tuGl4L.woff2 +0 -0
- package/dist/studio/assets/index-BnJlrMxp.css +32 -0
- package/dist/studio/assets/index-DG0nwF7c.js +582 -0
- package/dist/studio/assets/inter-latin-ext-opsz-italic-BLMf5All.woff2 +0 -0
- package/dist/studio/assets/inter-latin-ext-opsz-normal-DpK-iCPk.woff2 +0 -0
- package/dist/studio/assets/inter-latin-opsz-italic-BbqH_2Ar.woff2 +0 -0
- package/dist/studio/assets/inter-latin-opsz-normal-BwkfbSeq.woff2 +0 -0
- package/dist/studio/assets/jetbrains-mono-latin-ext-wght-italic-BrDczivE.woff2 +0 -0
- package/dist/studio/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
- package/dist/studio/assets/jetbrains-mono-latin-wght-italic-B2M6KQje.woff2 +0 -0
- package/dist/studio/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
- package/dist/studio/editors/wicked-page/editor.json +35 -0
- package/dist/studio/editors/wicked-page/index.html +144 -0
- package/dist/studio/fonts/LICENSE-Archivo.txt +93 -0
- package/dist/studio/fonts/LICENSE-Inter.txt +93 -0
- package/dist/studio/fonts/LICENSE-JetBrainsMono.txt +93 -0
- package/dist/studio/index.html +3 -8
- package/dist/studio/testid-inventory.json +5801 -2440
- package/dist/watch/bounded-read.d.ts +26 -0
- package/dist/watch/bounded-read.d.ts.map +1 -0
- package/dist/watch/bounded-read.js +59 -0
- package/dist/watch/bounded-read.js.map +1 -0
- package/dist/watch/checks/discovery.d.ts +65 -0
- package/dist/watch/checks/discovery.d.ts.map +1 -0
- package/dist/watch/checks/discovery.js +168 -0
- package/dist/watch/checks/discovery.js.map +1 -0
- package/dist/watch/checks/index.d.ts.map +1 -1
- package/dist/watch/checks/index.js +7 -0
- package/dist/watch/checks/index.js.map +1 -1
- package/dist/watch/checks/scope-drift.d.ts +47 -0
- package/dist/watch/checks/scope-drift.d.ts.map +1 -0
- package/dist/watch/checks/scope-drift.js +212 -0
- package/dist/watch/checks/scope-drift.js.map +1 -0
- package/dist/watch/emit.d.ts +19 -0
- package/dist/watch/emit.d.ts.map +1 -1
- package/dist/watch/emit.js +144 -18
- package/dist/watch/emit.js.map +1 -1
- package/dist/watch/registry.d.ts +20 -11
- package/dist/watch/registry.d.ts.map +1 -1
- package/dist/watch/registry.js +50 -42
- package/dist/watch/registry.js.map +1 -1
- package/dist/watch/sources.d.ts +2 -1
- package/dist/watch/sources.d.ts.map +1 -1
- package/dist/watch/sources.js +2 -1
- package/dist/watch/sources.js.map +1 -1
- package/dist/watch/types.d.ts +42 -0
- package/dist/watch/types.d.ts.map +1 -1
- package/endpoint-manifest.json +26 -1
- package/package.json +3 -3
- package/watch/entries/added-by-hand.json +16 -0
- package/watch/entries/scope-drift.json +13 -0
- package/watch/entries/what-catches.json +16 -0
- package/dist/studio/assets/index-CvV5qITf.css +0 -32
- package/dist/studio/assets/index-jCOy6Ns7.js +0 -568
package/dist/core/types.d.ts
CHANGED
|
@@ -156,6 +156,13 @@ export interface LaunchRunInput {
|
|
|
156
156
|
* Omit for runs whose evidence is the worktree diff — those are the engine's to floor.
|
|
157
157
|
*/
|
|
158
158
|
requireDeliverables?: string[];
|
|
159
|
+
/**
|
|
160
|
+
* (EP-K3, wicked-core-ts >= 0.7.35) Seats never to convene as a JUDGE on this run — cli keys or
|
|
161
|
+
* seat instances (`claude#2`). The engine UNIONS them into its own computed exclusion (the work
|
|
162
|
+
* author, the team monitors), so the list can only narrow the judge choice, never widen it. The
|
|
163
|
+
* interactive-review seam fills it with the seats that wrote the document under review (EP-C2).
|
|
164
|
+
*/
|
|
165
|
+
excludeSeats?: string[];
|
|
159
166
|
}
|
|
160
167
|
/** Default `workerStallMinutes` (crew#287): silent minutes before the stall watchdog fires. */
|
|
161
168
|
export declare const DEFAULT_WORKER_STALL_MINUTES = 15;
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,mBAAmB,uBAAuB,CAAC;AAE3C,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE1F;6DAC6D;AAC7D,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC,GAAG;IAC3F,SAAS,EAAE,WAAW,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;IACrD,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;CACpD,CAAC;AAEF,OAAO,EAA0B,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEvF,2EAA2E;AAC3E,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,8FAA8F;AAC9F,MAAM,WAAW,cAAc;IAC7B,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,SAAS,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,sFAAsF;IACtF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,OAAO,uBAAuB,EAAE,UAAU,CAAC;IAClD;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,YAAY,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,EAAE,IAAI,CAAC;IACf;;;;;;;;;;;;;;OAcG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,mBAAmB,uBAAuB,CAAC;AAE3C,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE1F;6DAC6D;AAC7D,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC,GAAG;IAC3F,SAAS,EAAE,WAAW,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;IACrD,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;CACpD,CAAC;AAEF,OAAO,EAA0B,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEvF,2EAA2E;AAC3E,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,8FAA8F;AAC9F,MAAM,WAAW,cAAc;IAC7B,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,SAAS,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,sFAAsF;IACtF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,OAAO,uBAAuB,EAAE,UAAU,CAAC;IAClD;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,YAAY,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,EAAE,IAAI,CAAC;IACf;;;;;;;;;;;;;;OAcG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,+FAA+F;AAC/F,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,qCAAqC,KAAK,CAAC;AAExD;;;;GAIG;AACH,eAAO,MAAM,oCAAoC,EAAG,UAAmB,CAAC;AAExE;;;GAGG;AACH,eAAO,MAAM,oCAAoC,IAAI,CAAC;AAEtD;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD;;;;;;;;;OASG;IACH,CAAC,GAAG,EAAE,UAAU,MAAM,EAAE,GAAG,OAAO,CAAC;IACnC;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,eAAO,MAAM,gBAAgB,EAAE,kBAqB9B,CAAC"}
|
package/dist/core/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAaH,OAAO,EAAE,sBAAsB,EAAwB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAaH,OAAO,EAAE,sBAAsB,EAAwB,MAAM,yBAAyB,CAAC;AAsIvF,+FAA+F;AAC/F,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAE/C;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,qCAAqC,GAAG,EAAE,CAAC;AAExD;;;;GAIG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,UAAmB,CAAC;AAExE;;;GAGG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC,CAAC;AAkCtD,MAAM,CAAC,MAAM,gBAAgB,GAAuB;IAClD,cAAc,EAAE,GAAG;IACnB,kBAAkB,EAAE,4BAA4B;IAChD,8FAA8F;IAC9F,+FAA+F;IAC/F,0BAA0B,EAAE,qCAAqC;IACjE,6FAA6F;IAC7F,gFAAgF;IAChF,8DAA8D;IAC9D,cAAc,EAAE,IAAI;IACpB,+FAA+F;IAC/F,8FAA8F;IAC9F,6FAA6F;IAC7F,6FAA6F;IAC7F,wFAAwF;IACxF,YAAY,EAAE,sBAAsB;IACpC,eAAe,EAAE,SAAS;IAC1B,2FAA2F;IAC3F,8FAA8F;IAC9F,6EAA6E;IAC7E,oBAAoB,EAAE,EAAE;CACzB,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `GET /api/v1/projects/:projectId/interactive/docs/:doc/checks?version=` — the ONE checks read of
|
|
3
|
+
* a document (DES-artifact-editor-plugins §4, §5.8, §7.6; EP-C2).
|
|
4
|
+
*
|
|
5
|
+
* Every verdict behind it is a wicked-ledger row stamped with the crew run that produced it: the
|
|
6
|
+
* rows the interactive-review seam records in the document's review root (`review-ledger.ts`),
|
|
7
|
+
* read here as canonical JSON, read-only, exactly as the seam read them back before it announced
|
|
8
|
+
* them. There is no second verdict store, and nothing here writes.
|
|
9
|
+
*
|
|
10
|
+
* Per reviewer the answer is the newest verdict AT OR BELOW the version asked for (every version
|
|
11
|
+
* when the query names none): a newer review replaces an older one, and an older one stays visible
|
|
12
|
+
* — "on version N" — until then. A ledger that cannot be read is a 500 naming why, never an empty
|
|
13
|
+
* list pretending the document was never reviewed.
|
|
14
|
+
*
|
|
15
|
+
* `demo-review` is not served here: a demo run is not bound to a document any more (demos are made
|
|
16
|
+
* by the `demo` preset), and its reviewer's verdict already reads from `GET /runs/:id/demo`
|
|
17
|
+
* (`DemoView.review`).
|
|
18
|
+
*/
|
|
19
|
+
import type { FastifyInstance } from 'fastify';
|
|
20
|
+
import type { DocCheck, DocReviewerId } from 'wicked-crew-api-types';
|
|
21
|
+
import { type CoreAdapter } from '../core/adapter.js';
|
|
22
|
+
import { type DocReviewLedgerRow } from '../qe/ledger.js';
|
|
23
|
+
/** A recorded review verdict as the checks panel shows it. */
|
|
24
|
+
export declare function docCheckOf(row: DocReviewLedgerRow & {
|
|
25
|
+
reviewer: DocReviewerId;
|
|
26
|
+
}): DocCheck;
|
|
27
|
+
/**
|
|
28
|
+
* Per reviewer, the verdict of the HIGHEST version at or below `version` (any version when `null`),
|
|
29
|
+
* newest first within a version; in the reviewers' display order.
|
|
30
|
+
*/
|
|
31
|
+
export declare function newestPerReviewer(rows: readonly DocReviewLedgerRow[], version: number | null): DocCheck[];
|
|
32
|
+
export interface DocChecksDeps {
|
|
33
|
+
/** Where every document's review root lives (`<handoff root>/_reviews`), read at request time. */
|
|
34
|
+
reviewsDir: () => string;
|
|
35
|
+
log?: (msg: string) => void;
|
|
36
|
+
}
|
|
37
|
+
export declare function registerInteractiveDocChecks(app: FastifyInstance, adapter: CoreAdapter, deps: DocChecksDeps): void;
|
|
38
|
+
//# sourceMappingURL=doc-checks-routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc-checks-routes.d.ts","sourceRoot":"","sources":["../../src/interactive/doc-checks-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAsD,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEzH,OAAO,EAA4B,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEhF,OAAO,EAAyB,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AA0BjF,8DAA8D;AAC9D,wBAAgB,UAAU,CAAC,GAAG,EAAE,kBAAkB,GAAG;IAAE,QAAQ,EAAE,aAAa,CAAA;CAAE,GAAG,QAAQ,CAmB1F;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,kBAAkB,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,QAAQ,EAAE,CAczG;AAED,MAAM,WAAW,aAAa;IAC5B,kGAAkG;IAClG,UAAU,EAAE,MAAM,MAAM,CAAC;IACzB,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,CAgClH"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `GET /api/v1/projects/:projectId/interactive/docs/:doc/checks?version=` — the ONE checks read of
|
|
3
|
+
* a document (DES-artifact-editor-plugins §4, §5.8, §7.6; EP-C2).
|
|
4
|
+
*
|
|
5
|
+
* Every verdict behind it is a wicked-ledger row stamped with the crew run that produced it: the
|
|
6
|
+
* rows the interactive-review seam records in the document's review root (`review-ledger.ts`),
|
|
7
|
+
* read here as canonical JSON, read-only, exactly as the seam read them back before it announced
|
|
8
|
+
* them. There is no second verdict store, and nothing here writes.
|
|
9
|
+
*
|
|
10
|
+
* Per reviewer the answer is the newest verdict AT OR BELOW the version asked for (every version
|
|
11
|
+
* when the query names none): a newer review replaces an older one, and an older one stays visible
|
|
12
|
+
* — "on version N" — until then. A ledger that cannot be read is a 500 naming why, never an empty
|
|
13
|
+
* list pretending the document was never reviewed.
|
|
14
|
+
*
|
|
15
|
+
* `demo-review` is not served here: a demo run is not bound to a document any more (demos are made
|
|
16
|
+
* by the `demo` preset), and its reviewer's verdict already reads from `GET /runs/:id/demo`
|
|
17
|
+
* (`DemoView.review`).
|
|
18
|
+
*/
|
|
19
|
+
import { API_PREFIX } from '../api/api-prefix.js';
|
|
20
|
+
import { ProjectsUnsupportedError } from '../core/adapter.js';
|
|
21
|
+
import { DEFAULT_PROJECT_ID } from '../projects/default-project.js';
|
|
22
|
+
import { readDocReviewVerdicts } from '../qe/ledger.js';
|
|
23
|
+
import { DOC_NAME } from './draft-events.js';
|
|
24
|
+
import { reviewRootOf } from './review-ledger.js';
|
|
25
|
+
const V = API_PREFIX;
|
|
26
|
+
const SOURCE = { match: 'review:intent', a11y: 'review:a11y', copy: 'review:copy', qe: 'review:quality' };
|
|
27
|
+
const ORDER = ['match', 'a11y', 'copy', 'qe'];
|
|
28
|
+
const isReviewer = (v) => Object.hasOwn(SOURCE, v);
|
|
29
|
+
const cliKey = (seat) => (seat.includes('#') ? seat.slice(0, seat.indexOf('#')) : seat);
|
|
30
|
+
function findingsOf(raw) {
|
|
31
|
+
const out = [];
|
|
32
|
+
for (const f of raw) {
|
|
33
|
+
if (typeof f !== 'object' || f === null)
|
|
34
|
+
continue;
|
|
35
|
+
const r = f;
|
|
36
|
+
if (typeof r['sentence'] !== 'string' || r['sentence'] === '')
|
|
37
|
+
continue;
|
|
38
|
+
out.push({
|
|
39
|
+
wid: typeof r['wid'] === 'string' && r['wid'] !== '' ? r['wid'] : null,
|
|
40
|
+
severity: r['severity'] === 'low' || r['severity'] === 'high' ? r['severity'] : 'medium',
|
|
41
|
+
sentence: r['sentence'],
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
return out;
|
|
45
|
+
}
|
|
46
|
+
/** A recorded review verdict as the checks panel shows it. */
|
|
47
|
+
export function docCheckOf(row) {
|
|
48
|
+
return {
|
|
49
|
+
id: row.id,
|
|
50
|
+
source: SOURCE[row.reviewer],
|
|
51
|
+
reviewer: row.reviewer,
|
|
52
|
+
version: row.version,
|
|
53
|
+
state: row.reviewVerdict === 'pass' ? 'pass' : row.reviewVerdict === 'changes' ? 'fail' : 'inconclusive',
|
|
54
|
+
sentence: row.reason ?? '',
|
|
55
|
+
findings: findingsOf(row.findings),
|
|
56
|
+
by: {
|
|
57
|
+
seat: row.seat,
|
|
58
|
+
evaluator: row.authorKnown && row.seat !== null && !row.excludedSeats.map(cliKey).includes(cliKey(row.seat)),
|
|
59
|
+
excluded_seats: row.excludedSeats,
|
|
60
|
+
author_known: row.authorKnown,
|
|
61
|
+
},
|
|
62
|
+
skill: row.skill,
|
|
63
|
+
run_id: row.runId,
|
|
64
|
+
at: row.createdAt,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Per reviewer, the verdict of the HIGHEST version at or below `version` (any version when `null`),
|
|
69
|
+
* newest first within a version; in the reviewers' display order.
|
|
70
|
+
*/
|
|
71
|
+
export function newestPerReviewer(rows, version) {
|
|
72
|
+
const best = new Map();
|
|
73
|
+
for (const row of rows) {
|
|
74
|
+
if (!isReviewer(row.reviewer))
|
|
75
|
+
continue;
|
|
76
|
+
if (version !== null && row.version > version)
|
|
77
|
+
continue;
|
|
78
|
+
const cur = best.get(row.reviewer);
|
|
79
|
+
if (cur === undefined || row.version > cur.version || (row.version === cur.version && row.createdAt > cur.createdAt)) {
|
|
80
|
+
best.set(row.reviewer, row);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return ORDER.flatMap((id) => {
|
|
84
|
+
const row = best.get(id);
|
|
85
|
+
return row !== undefined ? [docCheckOf(row)] : [];
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
export function registerInteractiveDocChecks(app, adapter, deps) {
|
|
89
|
+
const log = deps.log ?? (() => undefined);
|
|
90
|
+
app.get(`${V}/projects/:projectId/interactive/docs/:doc/checks`, { config: { manifest: { responseType: 'DocChecksResponse', statusCodes: [200, 400, 404, 500] } } }, async (req, reply) => {
|
|
91
|
+
const { projectId, doc } = req.params;
|
|
92
|
+
if (!DOC_NAME.test(doc))
|
|
93
|
+
return reply.code(400).send({ error: `"${doc}" is not a document name` });
|
|
94
|
+
const rawVersion = req.query.version;
|
|
95
|
+
let version = null;
|
|
96
|
+
if (rawVersion !== undefined) {
|
|
97
|
+
const n = typeof rawVersion === 'string' && /^\d{1,9}$/u.test(rawVersion) ? Number(rawVersion) : NaN;
|
|
98
|
+
if (!Number.isInteger(n))
|
|
99
|
+
return reply.code(400).send({ error: 'version must be a whole number, 0 or above' });
|
|
100
|
+
version = n;
|
|
101
|
+
}
|
|
102
|
+
if (projectId !== DEFAULT_PROJECT_ID) {
|
|
103
|
+
try {
|
|
104
|
+
if ((await adapter.projectGet(projectId)) === null)
|
|
105
|
+
return reply.code(404).send({ error: `Project ${projectId} not found` });
|
|
106
|
+
}
|
|
107
|
+
catch (err) {
|
|
108
|
+
// An engine without projects files every document under Unfiled: the default partition answers.
|
|
109
|
+
if (!(err instanceof ProjectsUnsupportedError))
|
|
110
|
+
throw err;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
const read = readDocReviewVerdicts(reviewRootOf(deps.reviewsDir(), projectId, doc));
|
|
114
|
+
if (read.error !== undefined) {
|
|
115
|
+
log(`[doc-checks] the review record of ${doc} (project ${projectId}) could not be read: ${read.error}`);
|
|
116
|
+
return reply.code(500).send({ error: 'The recorded reviews of this document could not be read', detail: read.error });
|
|
117
|
+
}
|
|
118
|
+
const body = { document_id: doc, version, checks: newestPerReviewer(read.rows, version) };
|
|
119
|
+
return reply.send(body);
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=doc-checks-routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc-checks-routes.js","sourceRoot":"","sources":["../../src/interactive/doc-checks-routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,7 +58,7 @@ export interface DocDeleteDeps {
|
|
|
58
58
|
}) => Actor;
|
|
59
59
|
/** The four-ledger sweep (`server.ts` wires the real one over the armed seams + their files;
|
|
60
60
|
* a directly-driven route set gets an inert default so unit tests never touch ~/.wicked-crew). */
|
|
61
|
-
dropDocLedgerRows: (documentId: string) => DocLedgerSweep;
|
|
61
|
+
dropDocLedgerRows: (documentId: string, projectId?: string) => DocLedgerSweep;
|
|
62
62
|
env?: NodeJS.ProcessEnv;
|
|
63
63
|
/** The daemon state home the DEFAULT docs root hangs off (crew ≥ 0.7.35, D-L7-1; tests point it at a scratch dir). */
|
|
64
64
|
stateHome?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doc-delete-routes.d.ts","sourceRoot":"","sources":["../../src/interactive/doc-delete-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAA0B,KAAK,qBAAqB,EAAmB,MAAM,kBAAkB,CAAC;AAEvG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAW5D,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE,CAAC,GAAG,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,KAAK,KAAK,CAAC;IAC3C;uGACmG;IACnG,iBAAiB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"doc-delete-routes.d.ts","sourceRoot":"","sources":["../../src/interactive/doc-delete-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAA0B,KAAK,qBAAqB,EAAmB,MAAM,kBAAkB,CAAC;AAEvG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAW5D,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE,CAAC,GAAG,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,KAAK,KAAK,CAAC;IAC3C;uGACmG;IACnG,iBAAiB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,cAAc,CAAC;IAC9E,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,sHAAsH;IACtH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B;gFAC4E;IAC5E,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AASD,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,aAAa,GAClB,IAAI,CA6LN"}
|
|
@@ -174,7 +174,7 @@ export function registerInteractiveDocDelete(app, adapter, deps) {
|
|
|
174
174
|
// Interactive's half is settled (retired now, already retired, or nothing there to
|
|
175
175
|
// retire). Crew's half runs in EVERY one of those cases — a 404 with ghost rows is
|
|
176
176
|
// precisely the hand-deleted-workspace mess this route exists to clean up.
|
|
177
|
-
const sweep = dropDocLedgerRows(doc);
|
|
177
|
+
const sweep = dropDocLedgerRows(doc, projectId);
|
|
178
178
|
const retiredNow = upstream.status === 200 && upstream.body['already_retired'] !== true;
|
|
179
179
|
if (upstream.status === 200 || sweep.removed_keys.length > 0) {
|
|
180
180
|
audit.record('interactive.doc.deleted', actorOf(req), {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doc-delete-routes.js","sourceRoot":"","sources":["../../src/interactive/doc-delete-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAKlD,OAAO,EAAE,sBAAsB,EAA+C,MAAM,kBAAkB,CAAC;AACvG,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,GAAG,UAAU,CAAC;AA2BrB,+FAA+F;AAC/F,MAAM,aAAa,GAAuC,MAAM,CAAC,MAAM,CAAC;IACtE,EAAE,EAAE,KAAK;IACT,YAAY,EAAE,EAAE;IAChB,OAAO,EAAE,IAAI;CACd,CAAC,CAAC;AAEH,MAAM,UAAU,4BAA4B,CAC1C,GAAoB,EACpB,OAAoB,EACpB,IAAmB;IAEnB,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;IACnE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,IAAI,MAAM,CAAC;IAEnD;0EACsE;IACtE,MAAM,OAAO,GAAG,CAAC,SAAiB,EAA0B,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAEnH,wFAAwF;IACxF,KAAK,UAAU,cAAc,CAAC,MAAkB,EAAE,GAAW;QAC3D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,UAAU,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,aAAa,GAAG,EAAE,EAAE;YAC9E,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;SACvC,CAAC,CAAC;QACH,IAAI,IAAI,GAA4B,EAAE,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,MAAM,GAAY,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YACzC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;gBAAE,IAAI,GAAG,MAAiC,CAAC;QAC9F,CAAC;QAAC,MAAM,CAAC;YACP,yFAAyF;YACzF,8DAA8D;QAChE,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;IACtC,CAAC;IAED,GAAG,CAAC,MAAM,CACR,GAAG,CAAC,4CAA4C,EAChD;QACE,MAAM,EAAE;YACN,QAAQ,EAAE;gBACR,YAAY,EAAE,8BAA8B;gBAC5C,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;aAC5C;SACF;KACF,EACD,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnB,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,MAA4C,CAAC;QAE5E,wFAAwF;QACxF,2FAA2F;QAC3F,sEAAsE;QACtE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK;iBACT,IAAI,CAAC,GAAG,CAAC;iBACT,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACvF,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,SAAS,YAAY,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,MAAkB,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,CAAC,GAAG,YAAY,sBAAsB,CAAC;gBAAE,MAAM,GAAG,CAAC;YACxD,GAAG,CAAC,gDAAgD,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACnE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9E,CAAC;QAED,uFAAuF;QACvF,4EAA4E;QAC5E,IAAI,QAAwB,CAAC;QAC7B,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACtB,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACjC,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC/C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChE,GAAG,CAAC,qDAAqD,GAAG,KAAK,MAAM,EAAE,CAAC,CAAC;gBAC3E,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBAC1B,KAAK,EACH,uDAAuD,GAAG,wBAAwB;wBAClF,+EAA+E;oBACjF,IAAI,EAAE,GAAG;oBACT,MAAM;oBACN,aAAa,EAAE,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;oBAC9E,MAAM,EAAE,aAAa;iBACtB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,2FAA2F;QAC3F,oEAAoE;QACpE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;QAED,2FAA2F;QAC3F,6FAA6F;QAC7F,gHAAgH;QAChH,4FAA4F;QAC5F,yFAAyF;QACzF,yFAAyF;QACzF,mFAAmF;QACnF,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,aAAa,CAAC;QAEpF,qFAAqF;QACrF,uFAAuF;QACvF,uFAAuF;QACvF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC;YACvC,IAAI,MAAM,EAAE,CAAC;gBACX,GAAG,CACD,kCAAkC,GAAG,8CAA8C;oBACjF,mEAAmE,CACtE,CAAC;YACJ,CAAC;YACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,KAAK,EAAE,MAAM;oBACX,CAAC,CAAC,+EAA+E;wBAC/E,gFAAgF;wBAChF,kFAAkF;wBAClF,gFAAgF;wBAChF,qDAAqD;oBACvD,CAAC,CAAC,sCAAsC,GAAG,WAAW,QAAQ,CAAC,MAAM,aAAa;wBAChF,wEAAwE;gBAC5E,IAAI,EAAE,GAAG;gBACT,eAAe,EAAE,QAAQ,CAAC,MAAM;gBAChC,QAAQ,EAAE,QAAQ,CAAC,IAAI;gBACvB,MAAM,EAAE,aAAa;aACtB,CAAC,CAAC;QACL,CAAC;QAED,mFAAmF;QACnF,mFAAmF;QACnF,2EAA2E;QAC3E,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"doc-delete-routes.js","sourceRoot":"","sources":["../../src/interactive/doc-delete-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAKlD,OAAO,EAAE,sBAAsB,EAA+C,MAAM,kBAAkB,CAAC;AACvG,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,GAAG,UAAU,CAAC;AA2BrB,+FAA+F;AAC/F,MAAM,aAAa,GAAuC,MAAM,CAAC,MAAM,CAAC;IACtE,EAAE,EAAE,KAAK;IACT,YAAY,EAAE,EAAE;IAChB,OAAO,EAAE,IAAI;CACd,CAAC,CAAC;AAEH,MAAM,UAAU,4BAA4B,CAC1C,GAAoB,EACpB,OAAoB,EACpB,IAAmB;IAEnB,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;IACnE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,IAAI,MAAM,CAAC;IAEnD;0EACsE;IACtE,MAAM,OAAO,GAAG,CAAC,SAAiB,EAA0B,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAEnH,wFAAwF;IACxF,KAAK,UAAU,cAAc,CAAC,MAAkB,EAAE,GAAW;QAC3D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,UAAU,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,aAAa,GAAG,EAAE,EAAE;YAC9E,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;SACvC,CAAC,CAAC;QACH,IAAI,IAAI,GAA4B,EAAE,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,MAAM,GAAY,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YACzC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;gBAAE,IAAI,GAAG,MAAiC,CAAC;QAC9F,CAAC;QAAC,MAAM,CAAC;YACP,yFAAyF;YACzF,8DAA8D;QAChE,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;IACtC,CAAC;IAED,GAAG,CAAC,MAAM,CACR,GAAG,CAAC,4CAA4C,EAChD;QACE,MAAM,EAAE;YACN,QAAQ,EAAE;gBACR,YAAY,EAAE,8BAA8B;gBAC5C,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;aAC5C;SACF;KACF,EACD,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnB,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,MAA4C,CAAC;QAE5E,wFAAwF;QACxF,2FAA2F;QAC3F,sEAAsE;QACtE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK;iBACT,IAAI,CAAC,GAAG,CAAC;iBACT,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACvF,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,SAAS,YAAY,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,MAAkB,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,CAAC,GAAG,YAAY,sBAAsB,CAAC;gBAAE,MAAM,GAAG,CAAC;YACxD,GAAG,CAAC,gDAAgD,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACnE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9E,CAAC;QAED,uFAAuF;QACvF,4EAA4E;QAC5E,IAAI,QAAwB,CAAC;QAC7B,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACtB,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACjC,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC/C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChE,GAAG,CAAC,qDAAqD,GAAG,KAAK,MAAM,EAAE,CAAC,CAAC;gBAC3E,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBAC1B,KAAK,EACH,uDAAuD,GAAG,wBAAwB;wBAClF,+EAA+E;oBACjF,IAAI,EAAE,GAAG;oBACT,MAAM;oBACN,aAAa,EAAE,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;oBAC9E,MAAM,EAAE,aAAa;iBACtB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,2FAA2F;QAC3F,oEAAoE;QACpE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;QAED,2FAA2F;QAC3F,6FAA6F;QAC7F,gHAAgH;QAChH,4FAA4F;QAC5F,yFAAyF;QACzF,yFAAyF;QACzF,mFAAmF;QACnF,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,aAAa,CAAC;QAEpF,qFAAqF;QACrF,uFAAuF;QACvF,uFAAuF;QACvF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC;YACvC,IAAI,MAAM,EAAE,CAAC;gBACX,GAAG,CACD,kCAAkC,GAAG,8CAA8C;oBACjF,mEAAmE,CACtE,CAAC;YACJ,CAAC;YACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,KAAK,EAAE,MAAM;oBACX,CAAC,CAAC,+EAA+E;wBAC/E,gFAAgF;wBAChF,kFAAkF;wBAClF,gFAAgF;wBAChF,qDAAqD;oBACvD,CAAC,CAAC,sCAAsC,GAAG,WAAW,QAAQ,CAAC,MAAM,aAAa;wBAChF,wEAAwE;gBAC5E,IAAI,EAAE,GAAG;gBACT,eAAe,EAAE,QAAQ,CAAC,MAAM;gBAChC,QAAQ,EAAE,QAAQ,CAAC,IAAI;gBACvB,MAAM,EAAE,aAAa;aACtB,CAAC,CAAC;QACL,CAAC;QAED,mFAAmF;QACnF,mFAAmF;QACnF,2EAA2E;QAC3E,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;QAExF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7D,KAAK,CAAC,MAAM,CAAC,yBAAyB,EAAE,OAAO,CAAC,GAAwB,CAAC,EAAE;gBACzE,MAAM,EAAE;oBACN,SAAS;oBACT,GAAG;oBACH,OAAO,EACL,QAAQ,CAAC,MAAM,KAAK,GAAG;wBACrB,CAAC,CAAC,aAAa;wBACf,CAAC,CAAC,KAAK,CAAC,EAAE;4BACR,CAAC,CAAC,UAAU;gCACV,CAAC,CAAC,SAAS;gCACX,CAAC,CAAC,iBAAiB;4BACrB,CAAC,CAAC,SAAS;oBACjB,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;oBAC1D,GAAG,CAAC,OAAO,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,QAAQ;wBAC/C,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;wBACzC,CAAC,CAAC,EAAE,CAAC;iBACR;aACF,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACd,uFAAuF;YACvF,MAAM,eAAe,GACnB,QAAQ,CAAC,MAAM,KAAK,GAAG;gBACrB,CAAC,CAAC,+BAA+B,GAAG,GAAG;gBACvC,CAAC,CAAC,IAAI,GAAG,8DAA8D,CAAC;YAC5E,GAAG,CACD,yBAAyB,eAAe,yCAAyC;gBAC/E,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7E,CAAC;YACF,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,KAAK,EACH,mBAAmB,eAAe,+CAA+C;oBACjF,gFAAgF;oBAChF,gFAAgF;oBAChF,wCAAwC;gBAC1C,IAAI,EAAE,GAAG;gBACT,WAAW,EAAE,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE;gBAC/E,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;QACL,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,iFAAiF;YACjF,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAClF,CAAC;QAED,yFAAyF;QACzF,4FAA4F;QAC5F,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACnE,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -47,7 +47,8 @@ export interface DocLedgerSweep {
|
|
|
47
47
|
}
|
|
48
48
|
/**
|
|
49
49
|
* Sweep one document's rows out of every given ledger. Never throws; see the module doc for the
|
|
50
|
-
* per-ledger isolation and live-instance-first rules.
|
|
50
|
+
* per-ledger isolation and live-instance-first rules. `keep` spares rows of the name that belong
|
|
51
|
+
* to another project's document (EP-C2: review rows carry their project).
|
|
51
52
|
*/
|
|
52
|
-
export declare function sweepDocLedgers(documentId: string, sources: DocLedgerSource[]): DocLedgerSweep;
|
|
53
|
+
export declare function sweepDocLedgers(documentId: string, sources: DocLedgerSource[], keep?: (key: string) => boolean): DocLedgerSweep;
|
|
53
54
|
//# sourceMappingURL=doc-ledger-sweep.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doc-ledger-sweep.d.ts","sourceRoot":"","sources":["../../src/interactive/doc-ledger-sweep.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,wFAAwF;AACxF,MAAM,WAAW,eAAe;IAC9B,0FAA0F;IAC1F,IAAI,EAAE,MAAM,CAAC;IACb;yDACqD;IACrD,MAAM,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAC9C,2FAA2F;IAC3F,IAAI,EAAE,MAAM,CAAC;CACd;AAED;2CAC2C;AAC3C,MAAM,WAAW,cAAc;IAC7B,iGAAiG;IACjG,EAAE,EAAE,OAAO,CAAC;IACZ,2FAA2F;IAC3F,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB;2DACuD;IACvD,MAAM,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC9C;AAED
|
|
1
|
+
{"version":3,"file":"doc-ledger-sweep.d.ts","sourceRoot":"","sources":["../../src/interactive/doc-ledger-sweep.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,wFAAwF;AACxF,MAAM,WAAW,eAAe;IAC9B,0FAA0F;IAC1F,IAAI,EAAE,MAAM,CAAC;IACb;yDACqD;IACrD,MAAM,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAC9C,2FAA2F;IAC3F,IAAI,EAAE,MAAM,CAAC;CACd;AAED;2CAC2C;AAC3C,MAAM,WAAW,cAAc;IAC7B,iGAAiG;IACjG,EAAE,EAAE,OAAO,CAAC;IACZ,2FAA2F;IAC3F,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB;2DACuD;IACvD,MAAM,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC9C;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,cAAc,CAe/H"}
|
|
@@ -23,15 +23,16 @@
|
|
|
23
23
|
import { InteractiveHandoffLedger } from './ledger.js';
|
|
24
24
|
/**
|
|
25
25
|
* Sweep one document's rows out of every given ledger. Never throws; see the module doc for the
|
|
26
|
-
* per-ledger isolation and live-instance-first rules.
|
|
26
|
+
* per-ledger isolation and live-instance-first rules. `keep` spares rows of the name that belong
|
|
27
|
+
* to another project's document (EP-C2: review rows carry their project).
|
|
27
28
|
*/
|
|
28
|
-
export function sweepDocLedgers(documentId, sources) {
|
|
29
|
+
export function sweepDocLedgers(documentId, sources, keep) {
|
|
29
30
|
const removed = [];
|
|
30
31
|
const errors = [];
|
|
31
32
|
for (const source of sources) {
|
|
32
33
|
try {
|
|
33
34
|
const ledger = source.ledger ?? new InteractiveHandoffLedger(source.path);
|
|
34
|
-
removed.push(...ledger.removeDoc(documentId));
|
|
35
|
+
removed.push(...ledger.removeDoc(documentId, keep));
|
|
35
36
|
}
|
|
36
37
|
catch (err) {
|
|
37
38
|
errors.push({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doc-ledger-sweep.js","sourceRoot":"","sources":["../../src/interactive/doc-ledger-sweep.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAyBvD
|
|
1
|
+
{"version":3,"file":"doc-ledger-sweep.js","sourceRoot":"","sources":["../../src/interactive/doc-ledger-sweep.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAyBvD;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkB,EAAE,OAA0B,EAAE,IAA+B;IAC7G,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAwC,EAAE,CAAC;IACvD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,wBAAwB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC;gBACV,MAAM,EAAE,MAAM,CAAC,IAAI;gBACnB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACtG,CAAC"}
|
|
@@ -27,6 +27,14 @@ export interface DocRunSource {
|
|
|
27
27
|
}
|
|
28
28
|
/** The document id a handoff-ledger key names (see the module doc). */
|
|
29
29
|
export declare function documentIdOfKey(key: string): string;
|
|
30
|
+
/**
|
|
31
|
+
* The kind a ledger row names (#785): two seams keep their rows in the EDIT seam's ledger on purpose
|
|
32
|
+
* (no new state-home entry) — theme learning (`<doc>:theme:<ts>`, EP-C4) and reviews
|
|
33
|
+
* (`<doc>:review:<project>:v<n>:<reviewers>`, EP-C2) — so the key's shape decides, not the file:
|
|
34
|
+
* a document that was only reviewed must not read as structurally edited. Any other key is the
|
|
35
|
+
* seam's own kind.
|
|
36
|
+
*/
|
|
37
|
+
export declare function kindOfKey(seam: string, key: string): string;
|
|
30
38
|
/** Default freshness of one ledger read; the ledgers are small JSON files. */
|
|
31
39
|
export declare const DOC_RUN_INDEX_TTL_MS = 2000;
|
|
32
40
|
export declare class DocRunIndex {
|
|
@@ -49,8 +57,8 @@ export declare class DocRunIndex {
|
|
|
49
57
|
documentOf(runId: string): string | undefined;
|
|
50
58
|
/** Every run launched for this document (ledger order; `[]` when none). */
|
|
51
59
|
runsOf(documentId: string): string[];
|
|
52
|
-
/** The
|
|
53
|
-
* when none) — the `kinds` a daemon-wide docs listing shows
|
|
60
|
+
/** The kinds that answered this document (`draft` | `edit` | `chat` | `demo` | `theme` | `review`,
|
|
61
|
+
* first-seen order; `[]` when none; {@link kindOfKey}) — the `kinds` a daemon-wide docs listing shows. */
|
|
54
62
|
kindsOf(documentId: string): string[];
|
|
55
63
|
}
|
|
56
64
|
//# sourceMappingURL=doc-run-index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doc-run-index.d.ts","sourceRoot":"","sources":["../../src/interactive/doc-run-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,mFAAmF;AACnF,MAAM,WAAW,YAAY;IAC3B,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAC9C,IAAI,EAAE,MAAM,CAAC;CACd;AAED,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED,8EAA8E;AAC9E,eAAO,MAAM,oBAAoB,OAAQ,CAAC;AAE1C,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAsC;IAC1D,iFAAiF;IACjF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6B;IAClD,OAAO,CAAC,KAAK,CAMG;gBAGd,OAAO,EAAE,MAAM,YAAY,EAAE,EAC7B,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KAAO;IAQhF,qFAAqF;IACrF,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAK5C,OAAO,CAAC,OAAO;IAqCf,6FAA6F;IAC7F,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI7C,2EAA2E;IAC3E,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;IAIpC;
|
|
1
|
+
{"version":3,"file":"doc-run-index.d.ts","sourceRoot":"","sources":["../../src/interactive/doc-run-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,mFAAmF;AACnF,MAAM,WAAW,YAAY;IAC3B,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAC9C,IAAI,EAAE,MAAM,CAAC;CACd;AAED,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAI3D;AAED,8EAA8E;AAC9E,eAAO,MAAM,oBAAoB,OAAQ,CAAC;AAE1C,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAsC;IAC1D,iFAAiF;IACjF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6B;IAClD,OAAO,CAAC,KAAK,CAMG;gBAGd,OAAO,EAAE,MAAM,YAAY,EAAE,EAC7B,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KAAO;IAQhF,qFAAqF;IACrF,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAK5C,OAAO,CAAC,OAAO;IAqCf,6FAA6F;IAC7F,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI7C,2EAA2E;IAC3E,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;IAIpC;+GAC2G;IAC3G,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;CAGtC"}
|
|
@@ -23,6 +23,19 @@ export function documentIdOfKey(key) {
|
|
|
23
23
|
const i = key.indexOf(':');
|
|
24
24
|
return i === -1 ? key : key.slice(0, i);
|
|
25
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* The kind a ledger row names (#785): two seams keep their rows in the EDIT seam's ledger on purpose
|
|
28
|
+
* (no new state-home entry) — theme learning (`<doc>:theme:<ts>`, EP-C4) and reviews
|
|
29
|
+
* (`<doc>:review:<project>:v<n>:<reviewers>`, EP-C2) — so the key's shape decides, not the file:
|
|
30
|
+
* a document that was only reviewed must not read as structurally edited. Any other key is the
|
|
31
|
+
* seam's own kind.
|
|
32
|
+
*/
|
|
33
|
+
export function kindOfKey(seam, key) {
|
|
34
|
+
const second = key.split(':', 2)[1];
|
|
35
|
+
if (second === 'theme' || second === 'review')
|
|
36
|
+
return second;
|
|
37
|
+
return seam;
|
|
38
|
+
}
|
|
26
39
|
/** Default freshness of one ledger read; the ledgers are small JSON files. */
|
|
27
40
|
export const DOC_RUN_INDEX_TTL_MS = 2_000;
|
|
28
41
|
export class DocRunIndex {
|
|
@@ -62,7 +75,7 @@ export class DocRunIndex {
|
|
|
62
75
|
if (!byRun.has(entry.runId))
|
|
63
76
|
byRun.set(entry.runId, doc);
|
|
64
77
|
const set = kinds.get(doc) ?? new Set();
|
|
65
|
-
set.add(source.name);
|
|
78
|
+
set.add(kindOfKey(source.name, key));
|
|
66
79
|
kinds.set(doc, set);
|
|
67
80
|
}
|
|
68
81
|
}
|
|
@@ -91,8 +104,8 @@ export class DocRunIndex {
|
|
|
91
104
|
runsOf(documentId) {
|
|
92
105
|
return [...(this.refresh().byDoc.get(documentId) ?? [])];
|
|
93
106
|
}
|
|
94
|
-
/** The
|
|
95
|
-
* when none) — the `kinds` a daemon-wide docs listing shows
|
|
107
|
+
/** The kinds that answered this document (`draft` | `edit` | `chat` | `demo` | `theme` | `review`,
|
|
108
|
+
* first-seen order; `[]` when none; {@link kindOfKey}) — the `kinds` a daemon-wide docs listing shows. */
|
|
96
109
|
kindsOf(documentId) {
|
|
97
110
|
return [...(this.refresh().kinds.get(documentId) ?? [])];
|
|
98
111
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doc-run-index.js","sourceRoot":"","sources":["../../src/interactive/doc-run-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAUvD,uEAAuE;AACvE,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,8EAA8E;AAC9E,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAE1C,MAAM,OAAO,WAAW;IACL,OAAO,CAAuB;IAC9B,KAAK,CAAS;IACd,GAAG,CAAe;IAClB,GAAG,CAAsC;IAC1D,iFAAiF;IAChE,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,KAAK,GAMF,IAAI,CAAC;IAEhB,YACE,OAA6B,EAC7B,OAA4E,EAAE;QAE9E,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,oBAAoB,CAAC;QAChD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;QAChC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IACtB,CAAC;IAED,qFAAqF;IACrF,GAAG,CAAC,KAAa,EAAE,UAAkB;QACnC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAEO,OAAO;QACb,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC;QAC9E,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;QACxC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAC;QAC7C,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,wBAAwB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC1E,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;oBACzC,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE;wBAAE,SAAS;oBACpE,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;oBACjC,IAAI,GAAG,KAAK,EAAE;wBAAE,SAAS;oBACzB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;wBAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBACzD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;oBAChD,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"doc-run-index.js","sourceRoot":"","sources":["../../src/interactive/doc-run-index.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,9 +53,12 @@ export declare class InteractiveHandoffLedger {
|
|
|
53
53
|
* (tmp + rename, like every other write) and ONLY when something was actually removed, so a
|
|
54
54
|
* sweep of a doc this ledger never answered does not create or rewrite the file.
|
|
55
55
|
*
|
|
56
|
+
* `keep` (EP-C2): rows of the name that are NOT this document's — a review row of the same-named
|
|
57
|
+
* document in another project (`<doc>:review:<project partition>:…` carries its project) — stay.
|
|
58
|
+
*
|
|
56
59
|
* @returns the removed keys (empty = nothing to remove).
|
|
57
60
|
*/
|
|
58
|
-
removeDoc(documentId: string): string[];
|
|
61
|
+
removeDoc(documentId: string, keep?: (key: string) => boolean): string[];
|
|
59
62
|
private persist;
|
|
60
63
|
}
|
|
61
64
|
//# sourceMappingURL=ledger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ledger.d.ts","sourceRoot":"","sources":["../../src/interactive/ledger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,mEAAmE;AACnE,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;6EACyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAOD,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,OAAO,CAAqC;gBAExC,IAAI,EAAE,MAAM;IAuCxB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAIhD,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK9C,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAQhC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAQhC,IAAI,IAAI,MAAM;IAId,kGAAkG;IAClG,IAAI,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAI3C
|
|
1
|
+
{"version":3,"file":"ledger.d.ts","sourceRoot":"","sources":["../../src/interactive/ledger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,mEAAmE;AACnE,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;6EACyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAOD,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,OAAO,CAAqC;gBAExC,IAAI,EAAE,MAAM;IAuCxB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAIhD,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK9C,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAQhC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAQhC,IAAI,IAAI,MAAM;IAId,kGAAkG;IAClG,IAAI,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAI3C;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,EAAE;IAaxE,OAAO,CAAC,OAAO;CAMhB"}
|
|
@@ -104,13 +104,16 @@ export class InteractiveHandoffLedger {
|
|
|
104
104
|
* (tmp + rename, like every other write) and ONLY when something was actually removed, so a
|
|
105
105
|
* sweep of a doc this ledger never answered does not create or rewrite the file.
|
|
106
106
|
*
|
|
107
|
+
* `keep` (EP-C2): rows of the name that are NOT this document's — a review row of the same-named
|
|
108
|
+
* document in another project (`<doc>:review:<project partition>:…` carries its project) — stay.
|
|
109
|
+
*
|
|
107
110
|
* @returns the removed keys (empty = nothing to remove).
|
|
108
111
|
*/
|
|
109
|
-
removeDoc(documentId) {
|
|
112
|
+
removeDoc(documentId, keep) {
|
|
110
113
|
const prefix = `${documentId}:`;
|
|
111
114
|
const removed = [];
|
|
112
115
|
for (const key of Object.keys(this.entries)) {
|
|
113
|
-
if (key === documentId || key.startsWith(prefix)) {
|
|
116
|
+
if ((key === documentId || key.startsWith(prefix)) && keep?.(key) !== true) {
|
|
114
117
|
delete this.entries[key];
|
|
115
118
|
removed.push(key);
|
|
116
119
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../src/interactive/ledger.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../src/interactive/ledger.ts"],"names":[],"mappings":"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"}
|