wicked-crew 0.7.47 → 0.7.49

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 (131) hide show
  1. package/dist/api/chat-citations.d.ts +10 -1
  2. package/dist/api/chat-citations.d.ts.map +1 -1
  3. package/dist/api/chat-citations.js +28 -0
  4. package/dist/api/chat-citations.js.map +1 -1
  5. package/dist/api/chat-scope.d.ts +4 -2
  6. package/dist/api/chat-scope.d.ts.map +1 -1
  7. package/dist/api/chat-scope.js +35 -3
  8. package/dist/api/chat-scope.js.map +1 -1
  9. package/dist/api/chat-transcripts.d.ts +23 -1
  10. package/dist/api/chat-transcripts.d.ts.map +1 -1
  11. package/dist/api/chat-transcripts.js +61 -6
  12. package/dist/api/chat-transcripts.js.map +1 -1
  13. package/dist/api/eval-sample.d.ts +6 -6
  14. package/dist/api/routes.d.ts +15 -1
  15. package/dist/api/routes.d.ts.map +1 -1
  16. package/dist/api/routes.js +107 -4
  17. package/dist/api/routes.js.map +1 -1
  18. package/dist/api/server.d.ts +30 -0
  19. package/dist/api/server.d.ts.map +1 -1
  20. package/dist/api/server.js +149 -6
  21. package/dist/api/server.js.map +1 -1
  22. package/dist/cli/index.d.ts.map +1 -1
  23. package/dist/cli/index.js +31 -1
  24. package/dist/cli/index.js.map +1 -1
  25. package/dist/core/adapter.d.ts +16 -1
  26. package/dist/core/adapter.d.ts.map +1 -1
  27. package/dist/core/adapter.js +29 -0
  28. package/dist/core/adapter.js.map +1 -1
  29. package/dist/core/types.d.ts +7 -0
  30. package/dist/core/types.d.ts.map +1 -1
  31. package/dist/core/types.js.map +1 -1
  32. package/dist/decisions/chat-recorder.d.ts +129 -0
  33. package/dist/decisions/chat-recorder.d.ts.map +1 -0
  34. package/dist/decisions/chat-recorder.js +367 -0
  35. package/dist/decisions/chat-recorder.js.map +1 -0
  36. package/dist/decisions/consider.d.ts +102 -0
  37. package/dist/decisions/consider.d.ts.map +1 -0
  38. package/dist/decisions/consider.js +207 -0
  39. package/dist/decisions/consider.js.map +1 -0
  40. package/dist/decisions/events.d.ts +2 -0
  41. package/dist/decisions/events.d.ts.map +1 -1
  42. package/dist/decisions/events.js +2 -0
  43. package/dist/decisions/events.js.map +1 -1
  44. package/dist/decisions/ingest.d.ts +28 -5
  45. package/dist/decisions/ingest.d.ts.map +1 -1
  46. package/dist/decisions/ingest.js +14 -6
  47. package/dist/decisions/ingest.js.map +1 -1
  48. package/dist/decisions/rules-text.d.ts +21 -0
  49. package/dist/decisions/rules-text.d.ts.map +1 -0
  50. package/dist/decisions/rules-text.js +50 -0
  51. package/dist/decisions/rules-text.js.map +1 -0
  52. package/dist/editors/csp.d.ts +31 -0
  53. package/dist/editors/csp.d.ts.map +1 -0
  54. package/dist/editors/csp.js +46 -0
  55. package/dist/editors/csp.js.map +1 -0
  56. package/dist/editors/pack-install.d.ts +28 -0
  57. package/dist/editors/pack-install.d.ts.map +1 -0
  58. package/dist/editors/pack-install.js +153 -0
  59. package/dist/editors/pack-install.js.map +1 -0
  60. package/dist/editors/registry.d.ts +142 -0
  61. package/dist/editors/registry.d.ts.map +1 -0
  62. package/dist/editors/registry.js +255 -0
  63. package/dist/editors/registry.js.map +1 -0
  64. package/dist/editors/routes.d.ts +46 -0
  65. package/dist/editors/routes.d.ts.map +1 -0
  66. package/dist/editors/routes.js +166 -0
  67. package/dist/editors/routes.js.map +1 -0
  68. package/dist/interactive/bridge-pool.d.ts +7 -2
  69. package/dist/interactive/bridge-pool.d.ts.map +1 -1
  70. package/dist/interactive/bridge-pool.js +6 -1
  71. package/dist/interactive/bridge-pool.js.map +1 -1
  72. package/dist/interactive/doc-checks-routes.d.ts +38 -0
  73. package/dist/interactive/doc-checks-routes.d.ts.map +1 -0
  74. package/dist/interactive/doc-checks-routes.js +122 -0
  75. package/dist/interactive/doc-checks-routes.js.map +1 -0
  76. package/dist/interactive/doc-delete-routes.d.ts +1 -1
  77. package/dist/interactive/doc-delete-routes.d.ts.map +1 -1
  78. package/dist/interactive/doc-delete-routes.js +1 -1
  79. package/dist/interactive/doc-delete-routes.js.map +1 -1
  80. package/dist/interactive/doc-ledger-sweep.d.ts +3 -2
  81. package/dist/interactive/doc-ledger-sweep.d.ts.map +1 -1
  82. package/dist/interactive/doc-ledger-sweep.js +4 -3
  83. package/dist/interactive/doc-ledger-sweep.js.map +1 -1
  84. package/dist/interactive/ledger.d.ts +4 -1
  85. package/dist/interactive/ledger.d.ts.map +1 -1
  86. package/dist/interactive/ledger.js +5 -2
  87. package/dist/interactive/ledger.js.map +1 -1
  88. package/dist/interactive/review-events.d.ts +185 -0
  89. package/dist/interactive/review-events.d.ts.map +1 -0
  90. package/dist/interactive/review-events.js +856 -0
  91. package/dist/interactive/review-events.js.map +1 -0
  92. package/dist/interactive/review-ledger.d.ts +79 -0
  93. package/dist/interactive/review-ledger.d.ts.map +1 -0
  94. package/dist/interactive/review-ledger.js +131 -0
  95. package/dist/interactive/review-ledger.js.map +1 -0
  96. package/dist/interactive/theme-events.d.ts +119 -0
  97. package/dist/interactive/theme-events.d.ts.map +1 -0
  98. package/dist/interactive/theme-events.js +606 -0
  99. package/dist/interactive/theme-events.js.map +1 -0
  100. package/dist/interactive/ws-relay.d.ts +2 -1
  101. package/dist/interactive/ws-relay.d.ts.map +1 -1
  102. package/dist/interactive/ws-relay.js +2 -1
  103. package/dist/interactive/ws-relay.js.map +1 -1
  104. package/dist/projects/routes.d.ts +2 -2
  105. package/dist/qe/ledger.d.ts +35 -0
  106. package/dist/qe/ledger.d.ts.map +1 -1
  107. package/dist/qe/ledger.js +47 -0
  108. package/dist/qe/ledger.js.map +1 -1
  109. package/dist/standing-orders/routes.d.ts +21 -21
  110. package/dist/standing-orders/store.d.ts +9 -9
  111. package/dist/watch/checks/claim-vs-evidence.d.ts +30 -0
  112. package/dist/watch/checks/claim-vs-evidence.d.ts.map +1 -0
  113. package/dist/watch/checks/claim-vs-evidence.js +152 -0
  114. package/dist/watch/checks/claim-vs-evidence.js.map +1 -0
  115. package/dist/watch/checks/index.d.ts.map +1 -1
  116. package/dist/watch/checks/index.js +5 -0
  117. package/dist/watch/checks/index.js.map +1 -1
  118. package/dist/watch/checks/warned-rule.d.ts +26 -0
  119. package/dist/watch/checks/warned-rule.d.ts.map +1 -0
  120. package/dist/watch/checks/warned-rule.js +126 -0
  121. package/dist/watch/checks/warned-rule.js.map +1 -0
  122. package/dist/watch/registry.d.ts +29 -0
  123. package/dist/watch/registry.d.ts.map +1 -1
  124. package/dist/watch/registry.js +60 -1
  125. package/dist/watch/registry.js.map +1 -1
  126. package/dist/watch/types.d.ts +19 -0
  127. package/dist/watch/types.d.ts.map +1 -1
  128. package/endpoint-manifest.json +107 -1
  129. package/package.json +1 -1
  130. package/watch/entries/claim-vs-evidence.json +13 -0
  131. package/watch/entries/risky-call.json +12 -0
@@ -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;;;GAGG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,cAAc,CAe9F"}
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;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkB,EAAE,OAA0B;IAC5E,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,CAAC,CAAC,CAAC;QAChD,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"}
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"}
@@ -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;;;;;;;;;;;;;;;;;;OAkBG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;IAavC,OAAO,CAAC,OAAO;CAMhB"}
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":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,MAAM,OAAO,wBAAwB;IAClB,IAAI,CAAS;IACtB,OAAO,CAAqC;IAEpD,YAAY,IAAY;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC;YACH,wFAAwF;YACxF,qFAAqF;YACrF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAA2C,CAAC;YAChG,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3F,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;oBACvD,sFAAsF;oBACtF,sFAAsF;oBACtF,sFAAsF;oBACtF,+EAA+E;oBAC/E,IACE,OAAO,KAAK,KAAK,QAAQ;wBACzB,KAAK,KAAK,IAAI;wBACd,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;wBAC/B,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;wBACxB,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,EACpC,CAAC;wBACD,SAAS;oBACX,CAAC;oBACD,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;oBAC1C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG;wBAClB,GAAG,IAAI;wBACP,wDAAwD;wBACxD,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS;4BAC9D,CAAC,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE;4BAC/B,CAAC,CAAC,EAAE,CAAC;qBACR,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,oFAAoF;YACpF,uFAAuF;YACvF,mEAAmE;QACrE,CAAC;IACH,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACjE,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,YAAY,CAAC,GAAW,EAAE,KAAa;QACrC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QACpE,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,aAAa,CAAC,GAAW;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED,aAAa,CAAC,GAAW;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED,IAAI;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IAC1C,CAAC;IAED,kGAAkG;IAClG,IAAI;QACF,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;IACjF,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,SAAS,CAAC,UAAkB,EAAE,IAA+B;QAC3D,MAAM,MAAM,GAAG,GAAG,UAAU,GAAG,CAAC;QAChC,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,GAAG,KAAK,UAAU,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC3E,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QACvC,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,OAAO;QACb,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,QAAQ,OAAO,CAAC,GAAG,EAAE,CAAC;QAC9C,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC5E,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;CACF"}
@@ -0,0 +1,185 @@
1
+ /**
2
+ * The interactive-review seam (DES-artifact-editor-plugins §7.6 "Reviews", EP-C2) — the sibling of
3
+ * `edit-events.ts` and `theme-events.ts`, same subscriber shape, ledger and filter pattern.
4
+ *
5
+ * 1. The page / document editor's "Review this page" makes the host post
6
+ * `wicked.interactive.review.requested {document_id, version, reviewers:[…]}`.
7
+ * 2. Crew answers with ONE governed `interactive-review` run — one read-only phase that reviews the
8
+ * saved version once per requested reviewer (Intent, A11y, Copy, Quality) and reports per
9
+ * reviewer. One council per review, not four. The request is deduped on
10
+ * `<doc>:review:<project>:v<version>:<reviewers sorted>`: an answered request is re-announced from the
11
+ * record, a running one is left alone, a failed one may be asked again.
12
+ * 3. NOT THE AUTHOR'S SEAT. The seats that wrote the document (the creator units of its draft,
13
+ * edit and chat runs) are removed from the review run's roster AND passed as the launch's
14
+ * `excludeSeats` (EP-K3), which the engine unions into its judge exclusion — so neither the
15
+ * reviewer nor its judge is a seat that wrote what is under review. When no authoring run is
16
+ * on record (the operator typed the version), nothing is excluded and every verdict says so.
17
+ * 4. The phase is READ-ONLY (the engine gives a non-creator, non-code phase no write tools), so it
18
+ * cannot write its own verdict rows: it ends with one `REVIEW-REPORT-<nonce> {json}` line in its
19
+ * engine-captured output, and crew records ONE wicked-ledger verdict row per reviewer, stamped
20
+ * with `crew_run_id`, in the document's review root (`review-ledger.ts`) — there is no crew
21
+ * review ledger. The rows are READ BACK, and only what was read back is announced:
22
+ * `wicked.interactive.review.completed {document_id, version, reviewer, verdict, passed, findings}`.
23
+ * 5. A finding never edits the document. Fixing one is the operator's choice (rule 2).
24
+ *
25
+ * Replay dedup and the handoff directory ride the edit seam's ledger and `interactive-edits` root
26
+ * (keys `<doc>:review:…` beside `<doc>:v<n>` and `<doc>:theme:<ts>`), so no new state-home entry is
27
+ * introduced — the worker fence is unchanged.
28
+ */
29
+ import type { CoreAdapter } from '../core/adapter.js';
30
+ import type { SessionView, WorkflowDef } from '../core/types.js';
31
+ import type { InteractiveBridgePool } from './bridge-pool.js';
32
+ import { InteractiveHandoffLedger } from './ledger.js';
33
+ import { type ReviewFinding, type ReviewVerdict } from './review-ledger.js';
34
+ export declare const REVIEW_REQUESTED = "wicked.interactive.review.requested";
35
+ export declare const REVIEW_COMPLETED = "wicked.interactive.review.completed";
36
+ export declare const INTERACTIVE_REVIEW_BUS_FILTER = "wicked.interactive.review.requested@wicked-interactive";
37
+ export declare const INTERACTIVE_REVIEW_WORKFLOW = "interactive-review";
38
+ /** The reviewers, by the `review.requested` schema id (interactive's enum). */
39
+ export type ReviewerId = 'match' | 'a11y' | 'copy' | 'qe';
40
+ export interface ReviewerSpec {
41
+ /** What the operator calls it. */
42
+ title: string;
43
+ /** The garden skill the phase loads for it, when the published snapshot holds it. */
44
+ skill: string;
45
+ /** What to look for when the skill is not installed — one line. */
46
+ rubric: string;
47
+ }
48
+ /** DES §7.6's table. Order = the order results are announced in. */
49
+ export declare const REVIEWERS: Readonly<Record<ReviewerId, ReviewerSpec>>;
50
+ export declare const REVIEWER_IDS: ReviewerId[];
51
+ /**
52
+ * The line the phase ends with: `<marker> {json}`, where the marker is `REVIEW-REPORT-<nonce>` — a
53
+ * per-run nonce minted AFTER the version was saved and handed to the reviewer in the handoff only.
54
+ * The reviewed page is attacker-influenced; a report it carries (and the reviewer quotes) cannot
55
+ * know the nonce, so it is never this run's report.
56
+ */
57
+ export declare const REPORT_MARKER_PREFIX = "REVIEW-REPORT-";
58
+ export declare const reportMarker: () => string;
59
+ /**
60
+ * The review run's def. One phase, read-only by the engine's own posture rule (not a creator, not a
61
+ * code phase). It is `neutral`, not `evaluator`: an engine Evaluator must end `VERDICT: PASS|FAIL`
62
+ * and a FAIL parks the run at a human gate — but a review that finds problems is a FINISHED review,
63
+ * not a failed gate. The verdicts are the per-reviewer rows, not the run's status.
64
+ */
65
+ export declare function interactiveReviewWorkflowDef(allowedSkills?: string[]): WorkflowDef;
66
+ export interface ReviewRequest {
67
+ documentId: string;
68
+ version: number;
69
+ /** Deduped, in {@link REVIEWER_IDS} order. */
70
+ reviewers: ReviewerId[];
71
+ projectId?: string;
72
+ }
73
+ /**
74
+ * Parse a bus frame into a {@link ReviewRequest}, or `null` when it is not an actionable request:
75
+ * wrong type, malformed payload, slug-invalid `document_id`, no integer `version` (interactive
76
+ * stamps the head when the browser omits it, EP-I1), or a `reviewers` list naming none of the four.
77
+ * An ABSENT `reviewers` means all four.
78
+ */
79
+ export declare function parseReviewRequested(eventType: string, payload: unknown): ReviewRequest | null;
80
+ /**
81
+ * The dedupe unit: one review per document version per reviewer set — per project, because two
82
+ * projects may each hold a document of the same name (docs roots are partitioned per project).
83
+ * It starts `<doc>:` like every handoff key, so the doc↔run index and the delete sweep see it.
84
+ */
85
+ export declare function reviewHandoffKey(documentId: string, version: number, reviewers: readonly ReviewerId[], projectId?: string): string;
86
+ /**
87
+ * Is `key` a review row of `documentId` in a project OTHER than `projectId`? The delete sweep keeps
88
+ * those (codex r2): deleting one project's document must not make the same-named document of
89
+ * another project forget that it was reviewed.
90
+ */
91
+ export declare function isAnotherProjectsReviewKey(key: string, documentId: string, projectId: string | undefined): boolean;
92
+ export declare function reviewProblem(req: ReviewRequest, handoffPath: string): string;
93
+ /**
94
+ * This run's report: the object after the LAST occurrence of `marker` in a unit's output. `null` when
95
+ * the marker is absent, or when what follows its last occurrence is not one JSON object — an
96
+ * earlier occurrence is never revived (the last word of the reviewer decides, and a broken last
97
+ * word is no report).
98
+ */
99
+ export declare function extractReviewReport(output: string | null, marker: string): Record<string, unknown> | null;
100
+ export interface ReviewerResult {
101
+ reviewer: ReviewerId;
102
+ verdict: ReviewVerdict;
103
+ findings: ReviewFinding[];
104
+ reason: string;
105
+ }
106
+ /**
107
+ * One result per REQUESTED reviewer, in request order. A reviewer the report leaves out, whose
108
+ * verdict is neither `pass` nor `changes`, or whose findings cannot be read, reads `error` — never a
109
+ * guessed pass. A `pass` that still
110
+ * lists findings is recorded as `changes`: "nothing needs changing" and a list of changes cannot both
111
+ * be true, and the stricter one is kept.
112
+ */
113
+ export declare function resultsFromReport(report: Record<string, unknown> | null, requested: readonly ReviewerId[]): ReviewerResult[];
114
+ /** The same result for every requested reviewer when the run itself did not finish. */
115
+ export declare function errorResults(requested: readonly ReviewerId[], reason: string): ReviewerResult[];
116
+ export type ReadDocVersion = (documentId: string, projectId: string | undefined, version: number) => Promise<string>;
117
+ /** The default reader: the doc's bridge ← `GET /d/:doc/doc/:version` (interactive stays the reader of its files). */
118
+ export declare function readDocVersionViaBridge(pool: Pick<InteractiveBridgePool, 'ensure'>, resolveDocsRoot: (projectId: string | undefined) => string): ReadDocVersion;
119
+ /** `claude#2` → `claude`: the cli key of a seat instance. */
120
+ export declare const seatKey: (seat: string) => string;
121
+ /**
122
+ * The seats that wrote in `runIds`: every creator unit's assigned seat, as cli keys, sorted. A run
123
+ * that is not in `views`, or has no assigned creator unit, contributes nothing.
124
+ */
125
+ export declare function authorSeatsOf(views: readonly SessionView[], runIds: readonly string[]): string[];
126
+ /**
127
+ * The edit runs on record that produced a version at or below `version`: a `<doc>:v<n>` row names
128
+ * the PARENT of the version its run made, so `n < version` is the only row that can have written
129
+ * what is under review. The default {@link InteractiveReviewOptions.authoringRuns} (the edit ledger
130
+ * alone); the daemon passes one that also reads the draft and chat ledgers.
131
+ */
132
+ export declare function editRunsBefore(ledger: InteractiveHandoffLedger, documentId: string, version: number): string[];
133
+ /** One seam's ledger, as the doc-delete sweep and the doc↔run index name it. */
134
+ export interface AuthoringLedgerSource {
135
+ /** `draft` | `edit` | `chat`. */
136
+ name: string;
137
+ ledger?: InteractiveHandoffLedger | undefined;
138
+ path: string;
139
+ }
140
+ /**
141
+ * Every run on record that can have written what is under review: the document's draft run
142
+ * (`<doc>`), its edit runs whose parent version is below `version` (`<doc>:v<n>`), and its chat
143
+ * revisions (`<doc>:m:…` / `<doc>:e:…` — a chat ask carries no version, so all of them count: the
144
+ * list is a SUPERSET on purpose, because it can only narrow who reviews). Throws when a ledger
145
+ * cannot be read — the caller then refuses to pick a reviewer blindly.
146
+ */
147
+ export declare function authoringRunsFromLedgers(sources: readonly AuthoringLedgerSource[], documentId: string, version: number): string[];
148
+ /** `roster` without the seats in `excluded` (by cli key). Entries with no string `key` are kept. */
149
+ export declare function rosterWithout(roster: readonly unknown[], excluded: readonly string[]): unknown[];
150
+ export interface InteractiveReviewOptions {
151
+ dbPath?: string;
152
+ pollIntervalMs?: number;
153
+ heartbeatMs?: number;
154
+ /** Shared with the edit seam (one file, one instance); default: the edit ledger path. */
155
+ ledger?: InteractiveHandoffLedger;
156
+ ledgerPath?: string;
157
+ /** Handoff root (default `<state home>/interactive-edits`, shared with the edit seam). Reviews are recorded under `<editDir>/_reviews/<doc>/`. */
158
+ editDir?: string;
159
+ clisJson?: string;
160
+ roster?: () => unknown[];
161
+ /** Reads one saved version through interactive. Required: without it there is nothing to review. */
162
+ readDocVersion: ReadDocVersion;
163
+ /** The runs that wrote this document up to `version` (default: the edit ledger's rows below it). */
164
+ authoringRuns?: (documentId: string, version: number) => string[];
165
+ /** Does the published skills snapshot hold (and enable) this skill? Absent = none are held. */
166
+ skillHeld?: (name: string) => boolean;
167
+ onRunFiled?: (runId: string, projectId: string) => void;
168
+ log?: (message: string) => void;
169
+ logError?: (message: string) => void;
170
+ }
171
+ export interface InteractiveReviewSubscription {
172
+ stop(): Promise<void> | void;
173
+ ledger: InteractiveHandoffLedger;
174
+ /** Where every document's review root lives (`<editDir>/_reviews`). */
175
+ reviewsDir: string;
176
+ inFlightDocs(): string[];
177
+ }
178
+ /** "Intent passed · A11y asks for 2 changes · Copy could not run". */
179
+ export declare function summaryLine(rows: ReadonlyArray<{
180
+ reviewer: string;
181
+ reviewVerdict: string;
182
+ findings: unknown[];
183
+ }>): string;
184
+ export declare function startInteractiveReviewSubscriber(adapter: CoreAdapter, opts: InteractiveReviewOptions): Promise<InteractiveReviewSubscription | null>;
185
+ //# sourceMappingURL=review-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-events.d.ts","sourceRoot":"","sources":["../../src/interactive/review-events.ts"],"names":[],"mappings":"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"}