wicked-crew 0.8.3 → 0.8.5

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 (136) hide show
  1. package/dist/api/ask-paths.d.ts +17 -0
  2. package/dist/api/ask-paths.d.ts.map +1 -1
  3. package/dist/api/ask-paths.js +13 -0
  4. package/dist/api/ask-paths.js.map +1 -1
  5. package/dist/api/ask-relay.d.ts +2 -0
  6. package/dist/api/ask-relay.d.ts.map +1 -1
  7. package/dist/api/ask-relay.js +35 -0
  8. package/dist/api/ask-relay.js.map +1 -1
  9. package/dist/api/chat-scope.d.ts +4 -4
  10. package/dist/api/chat-scope.d.ts.map +1 -1
  11. package/dist/api/chat-scope.js +1 -1
  12. package/dist/api/chat-turns.d.ts +12 -4
  13. package/dist/api/chat-turns.d.ts.map +1 -1
  14. package/dist/api/chat-turns.js +9 -4
  15. package/dist/api/chat-turns.js.map +1 -1
  16. package/dist/api/delivery-index.d.ts +53 -0
  17. package/dist/api/delivery-index.d.ts.map +1 -1
  18. package/dist/api/delivery-index.js +117 -0
  19. package/dist/api/delivery-index.js.map +1 -1
  20. package/dist/api/mcp.d.ts +4 -4
  21. package/dist/api/onboarding-capture.d.ts +58 -0
  22. package/dist/api/onboarding-capture.d.ts.map +1 -0
  23. package/dist/api/onboarding-capture.js +125 -0
  24. package/dist/api/onboarding-capture.js.map +1 -0
  25. package/dist/api/routes.d.ts +11 -3
  26. package/dist/api/routes.d.ts.map +1 -1
  27. package/dist/api/routes.js +84 -9
  28. package/dist/api/routes.js.map +1 -1
  29. package/dist/api/run-timing-index.d.ts +20 -0
  30. package/dist/api/run-timing-index.d.ts.map +1 -1
  31. package/dist/api/run-timing-index.js +46 -0
  32. package/dist/api/run-timing-index.js.map +1 -1
  33. package/dist/api/server.d.ts.map +1 -1
  34. package/dist/api/server.js +52 -37
  35. package/dist/api/server.js.map +1 -1
  36. package/dist/api/skills.d.ts.map +1 -1
  37. package/dist/api/skills.js +16 -8
  38. package/dist/api/skills.js.map +1 -1
  39. package/dist/api/watch-routes.d.ts +3 -1
  40. package/dist/api/watch-routes.d.ts.map +1 -1
  41. package/dist/api/watch-routes.js +3 -0
  42. package/dist/api/watch-routes.js.map +1 -1
  43. package/dist/core/adapter.d.ts +10 -36
  44. package/dist/core/adapter.d.ts.map +1 -1
  45. package/dist/core/adapter.js +81 -57
  46. package/dist/core/adapter.js.map +1 -1
  47. package/dist/core/deliver-exclusions.d.ts +15 -1
  48. package/dist/core/deliver-exclusions.d.ts.map +1 -1
  49. package/dist/core/deliver-exclusions.js +25 -3
  50. package/dist/core/deliver-exclusions.js.map +1 -1
  51. package/dist/core/deliver-text.d.ts +84 -10
  52. package/dist/core/deliver-text.d.ts.map +1 -1
  53. package/dist/core/deliver-text.js +279 -10
  54. package/dist/core/deliver-text.js.map +1 -1
  55. package/dist/core/deliver.d.ts +45 -0
  56. package/dist/core/deliver.d.ts.map +1 -1
  57. package/dist/core/deliver.js +136 -27
  58. package/dist/core/deliver.js.map +1 -1
  59. package/dist/core/types.d.ts.map +1 -1
  60. package/dist/core/types.js +3 -0
  61. package/dist/core/types.js.map +1 -1
  62. package/dist/interactive/bridge-pool.d.ts +17 -0
  63. package/dist/interactive/bridge-pool.d.ts.map +1 -1
  64. package/dist/interactive/bridge-pool.js +69 -3
  65. package/dist/interactive/bridge-pool.js.map +1 -1
  66. package/dist/interactive/bridge-root.d.ts +7 -0
  67. package/dist/interactive/bridge-root.d.ts.map +1 -1
  68. package/dist/interactive/bridge-root.js +11 -0
  69. package/dist/interactive/bridge-root.js.map +1 -1
  70. package/dist/projects/routes.d.ts +6 -2
  71. package/dist/projects/routes.d.ts.map +1 -1
  72. package/dist/projects/routes.js +6 -0
  73. package/dist/projects/routes.js.map +1 -1
  74. package/dist/projects/settings.d.ts +2 -0
  75. package/dist/projects/settings.d.ts.map +1 -1
  76. package/dist/projects/settings.js +4 -0
  77. package/dist/projects/settings.js.map +1 -1
  78. package/dist/skills/runtime.d.ts +13 -2
  79. package/dist/skills/runtime.d.ts.map +1 -1
  80. package/dist/skills/runtime.js +32 -5
  81. package/dist/skills/runtime.js.map +1 -1
  82. package/dist/skills/store.d.ts +57 -5
  83. package/dist/skills/store.d.ts.map +1 -1
  84. package/dist/skills/store.js +161 -42
  85. package/dist/skills/store.js.map +1 -1
  86. package/dist/skills/tree.d.ts +39 -0
  87. package/dist/skills/tree.d.ts.map +1 -1
  88. package/dist/skills/tree.js +102 -13
  89. package/dist/skills/tree.js.map +1 -1
  90. package/dist/standing-orders/parse.d.ts +9 -5
  91. package/dist/standing-orders/parse.d.ts.map +1 -1
  92. package/dist/standing-orders/parse.js +85 -37
  93. package/dist/standing-orders/parse.js.map +1 -1
  94. package/dist/standing-orders/routes.d.ts +21 -21
  95. package/dist/standing-orders/store.d.ts +9 -9
  96. package/dist/studio/assets/{index-BKkB4En4.js → index-CUNMURZ4.js} +123 -123
  97. package/dist/studio/assets/index-DPqNRzrT.css +32 -0
  98. package/dist/studio/editors/wicked-page/editor.json +1 -1
  99. package/dist/studio/editors/wicked-page/index.html +1 -1
  100. package/dist/studio/index.html +2 -2
  101. package/dist/studio/testid-inventory.json +234 -5
  102. package/dist/watch/checks/claim-vs-evidence.js +2 -2
  103. package/dist/watch/checks/claim-vs-evidence.js.map +1 -1
  104. package/dist/watch/checks/deliver-audit.js +2 -2
  105. package/dist/watch/checks/deliver-audit.js.map +1 -1
  106. package/dist/watch/checks/discovery.d.ts.map +1 -1
  107. package/dist/watch/checks/discovery.js +5 -3
  108. package/dist/watch/checks/discovery.js.map +1 -1
  109. package/dist/watch/checks/index.d.ts.map +1 -1
  110. package/dist/watch/checks/index.js +5 -0
  111. package/dist/watch/checks/index.js.map +1 -1
  112. package/dist/watch/checks/quiet-after-claim.js +2 -2
  113. package/dist/watch/checks/quiet-after-claim.js.map +1 -1
  114. package/dist/watch/checks/scope-drift.d.ts.map +1 -1
  115. package/dist/watch/checks/scope-drift.js +4 -3
  116. package/dist/watch/checks/scope-drift.js.map +1 -1
  117. package/dist/watch/checks/team-path.d.ts +38 -0
  118. package/dist/watch/checks/team-path.d.ts.map +1 -0
  119. package/dist/watch/checks/team-path.js +220 -0
  120. package/dist/watch/checks/team-path.js.map +1 -0
  121. package/dist/watch/checks/ungated.js +2 -2
  122. package/dist/watch/checks/ungated.js.map +1 -1
  123. package/dist/watch/checks/warned-rule.js +2 -2
  124. package/dist/watch/checks/warned-rule.js.map +1 -1
  125. package/dist/watch/registry.d.ts +18 -2
  126. package/dist/watch/registry.d.ts.map +1 -1
  127. package/dist/watch/registry.js +23 -4
  128. package/dist/watch/registry.js.map +1 -1
  129. package/dist/watch/types.d.ts +8 -2
  130. package/dist/watch/types.d.ts.map +1 -1
  131. package/endpoint-manifest.json +1 -1
  132. package/package.json +3 -3
  133. package/watch/entries/help-unanswered.json +16 -0
  134. package/watch/entries/path-repicked.json +13 -0
  135. package/watch/entries/reviewer-absent.json +13 -0
  136. package/dist/studio/assets/index-CGjbTpLl.css +0 -32
@@ -1 +1 @@
1
- {"version":3,"file":"scope-drift.js","sourceRoot":"","sources":["../../../src/watch/checks/scope-drift.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scope-drift.js","sourceRoot":"","sources":["../../../src/watch/checks/scope-drift.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * The ask path's Watchtower rows (DES-ASK-TEAM-CHAT-001 §4.1, §4.5, §4.6; slice ASK-C3): three
3
+ * deterministic checks, each a projection of ONE `wicked.team.*` fact the engine already owns — the
4
+ * registry PULLS the rows off the bus (the `teamEvent` relay's rows; `scope-drift` was the first
5
+ * bus entry). Advisory by construction (TR §4.5): a row is a flag on the feed, never a gate input.
6
+ *
7
+ * - `deterministic:path_repicked` (entry `path-repicked`, `problem`): a PA step's attempt ended
8
+ * for a seat cause and the engine re-pinned the PA — `path.repicked{from, to, reason, pick_seq}`.
9
+ * One row per `pick_seq` (the engine's per-run re-pick counter).
10
+ * - `deterministic:reviewer_absent` (entry `reviewer-absent`, `quiet`): the supervisor could not
11
+ * seat a member — `member.joined{status:"failed"}`, `seat:null` when no distinct signed-in seat
12
+ * exists (§4.6 "absent, and said so"). The engine publishes that row once per attempt; the
13
+ * Watchtower keeps ONE open row per member slot (`member_id`), keyed by the first failure's
14
+ * producer identity (`ord:attempt:member_id:open_seq`), so a one-seat machine does not grow a
15
+ * row per answer step. It clears when that slot attaches (`member.joined{status:"attached"}`).
16
+ * - `deterministic:help_unanswered` (entry `help-unanswered`, `quiet`): a help request's terminal
17
+ * outcome was not `answered` — `help.answered{outcome: timed_out | failed | no_member}` (§4.5:
18
+ * the outcome is a fact on S's row, never inferred from a missing one). One row per
19
+ * `help_id:answer_id`; the question comes from the joined `help.requested`. It clears when a
20
+ * later help on the run is `answered` (the helpers are answering again).
21
+ *
22
+ * Every row of the three clears when the path ends (`path.ended`). Nothing here tests for "is this
23
+ * an ask": any team path that re-picks, cannot seat its reviewer, or loses a help turn is shown the
24
+ * same way. A path that ended while the daemon was down is not a live run at boot, so its replay
25
+ * does not run and its open rows clear only by dismissal (the same rule as `scope-drift`).
26
+ */
27
+ import type { WatchCheck } from '../types.js';
28
+ export declare const PATH_REPICKED_TYPE = "wicked.team.path.repicked";
29
+ export declare const PATH_ENDED_TYPE = "wicked.team.path.ended";
30
+ export declare const MEMBER_JOINED_TYPE = "wicked.team.member.joined";
31
+ export declare const HELP_REQUESTED_TYPE = "wicked.team.help.requested";
32
+ export declare const HELP_ANSWERED_TYPE = "wicked.team.help.answered";
33
+ type Empty = Record<string, never>;
34
+ export declare const pathRepickedCheck: WatchCheck<Empty, Empty>;
35
+ export declare const reviewerAbsentCheck: WatchCheck<Empty, Empty>;
36
+ export declare const helpUnansweredCheck: WatchCheck<Empty, Empty>;
37
+ export {};
38
+ //# sourceMappingURL=team-path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team-path.d.ts","sourceRoot":"","sources":["../../../src/watch/checks/team-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,KAAK,EAA6C,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzF,eAAO,MAAM,kBAAkB,8BAA8B,CAAC;AAC9D,eAAO,MAAM,eAAe,2BAA2B,CAAC;AACxD,eAAO,MAAM,kBAAkB,8BAA8B,CAAC;AAC9D,eAAO,MAAM,mBAAmB,+BAA+B,CAAC;AAChE,eAAO,MAAM,kBAAkB,8BAA8B,CAAC;AAI9D,KAAK,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AA2CnC,eAAO,MAAM,iBAAiB,EAAE,UAAU,CAAC,KAAK,EAAE,KAAK,CAiCtD,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,UAAU,CAAC,KAAK,EAAE,KAAK,CAkDxD,CAAC;AAQF,eAAO,MAAM,mBAAmB,EAAE,UAAU,CAAC,KAAK,EAAE,KAAK,CAoDxD,CAAC"}
@@ -0,0 +1,220 @@
1
+ /**
2
+ * The ask path's Watchtower rows (DES-ASK-TEAM-CHAT-001 §4.1, §4.5, §4.6; slice ASK-C3): three
3
+ * deterministic checks, each a projection of ONE `wicked.team.*` fact the engine already owns — the
4
+ * registry PULLS the rows off the bus (the `teamEvent` relay's rows; `scope-drift` was the first
5
+ * bus entry). Advisory by construction (TR §4.5): a row is a flag on the feed, never a gate input.
6
+ *
7
+ * - `deterministic:path_repicked` (entry `path-repicked`, `problem`): a PA step's attempt ended
8
+ * for a seat cause and the engine re-pinned the PA — `path.repicked{from, to, reason, pick_seq}`.
9
+ * One row per `pick_seq` (the engine's per-run re-pick counter).
10
+ * - `deterministic:reviewer_absent` (entry `reviewer-absent`, `quiet`): the supervisor could not
11
+ * seat a member — `member.joined{status:"failed"}`, `seat:null` when no distinct signed-in seat
12
+ * exists (§4.6 "absent, and said so"). The engine publishes that row once per attempt; the
13
+ * Watchtower keeps ONE open row per member slot (`member_id`), keyed by the first failure's
14
+ * producer identity (`ord:attempt:member_id:open_seq`), so a one-seat machine does not grow a
15
+ * row per answer step. It clears when that slot attaches (`member.joined{status:"attached"}`).
16
+ * - `deterministic:help_unanswered` (entry `help-unanswered`, `quiet`): a help request's terminal
17
+ * outcome was not `answered` — `help.answered{outcome: timed_out | failed | no_member}` (§4.5:
18
+ * the outcome is a fact on S's row, never inferred from a missing one). One row per
19
+ * `help_id:answer_id`; the question comes from the joined `help.requested`. It clears when a
20
+ * later help on the run is `answered` (the helpers are answering again).
21
+ *
22
+ * Every row of the three clears when the path ends (`path.ended`). Nothing here tests for "is this
23
+ * an ask": any team path that re-picks, cannot seat its reviewer, or loses a help turn is shown the
24
+ * same way. A path that ended while the daemon was down is not a live run at boot, so its replay
25
+ * does not run and its open rows clear only by dismissal (the same rule as `scope-drift`).
26
+ */
27
+ import { z } from 'zod';
28
+ export const PATH_REPICKED_TYPE = 'wicked.team.path.repicked';
29
+ export const PATH_ENDED_TYPE = 'wicked.team.path.ended';
30
+ export const MEMBER_JOINED_TYPE = 'wicked.team.member.joined';
31
+ export const HELP_REQUESTED_TYPE = 'wicked.team.help.requested';
32
+ export const HELP_ANSWERED_TYPE = 'wicked.team.help.answered';
33
+ const TEXT_MAX = 160;
34
+ const empty = z.object({}).strict();
35
+ /** The team envelope + payload of a pulled bus row (`{…, payload:{run_id, ord, attempt, by, …}}`). */
36
+ function payloadOf(input) {
37
+ const p = input.event['payload'];
38
+ return p !== null && typeof p === 'object' ? p : {};
39
+ }
40
+ const str = (v) => (typeof v === 'string' && v.trim() !== '' ? v.trim() : null);
41
+ const num = (v) => (typeof v === 'number' && Number.isFinite(v) ? v : null);
42
+ const cap = (s) => (s.length > TEXT_MAX ? `${s.slice(0, TEXT_MAX - 1)}…` : s);
43
+ function bagOf(state, key) {
44
+ let bag = state.bag.get(key);
45
+ if (bag === undefined) {
46
+ bag = { seen: 0, open: new Map(), ended: false };
47
+ state.bag.set(key, bag);
48
+ }
49
+ return bag;
50
+ }
51
+ /** `path.ended`: every open row of this check clears, and nothing raises after it. */
52
+ function endPath(bag) {
53
+ bag.ended = true;
54
+ const out = [...bag.open.keys()].map((subject) => ({ op: 'clear', subject }));
55
+ bag.open.clear();
56
+ return out;
57
+ }
58
+ function coverageOf(bag, what, run) {
59
+ if (bag !== undefined && bag.seen > 0)
60
+ return { state: 'checked' };
61
+ return { state: 'not_checked', reason: run?.ended === true ? `nothing to check: no ${what} on this run` : `no ${what} on this run yet` };
62
+ }
63
+ export const pathRepickedCheck = {
64
+ name: 'deterministic:path_repicked',
65
+ lane: 'deterministic',
66
+ paramsSchema: empty,
67
+ thresholdSchema: empty,
68
+ evaluate(input, state) {
69
+ const bag = bagOf(state, 'repicked');
70
+ bag.seen++;
71
+ if (input.type === PATH_ENDED_TYPE)
72
+ return endPath(bag);
73
+ if (input.type !== PATH_REPICKED_TYPE || bag.ended)
74
+ return [];
75
+ const p = payloadOf(input);
76
+ const pickSeq = num(p['pick_seq']);
77
+ if (pickSeq === null)
78
+ return [];
79
+ const subject = `repick:${pickSeq}`;
80
+ if (bag.open.has(subject))
81
+ return [];
82
+ bag.open.set(subject, { slot: null });
83
+ const from = str(p['from']) ?? 'the answering seat';
84
+ const to = str(p['to']) ?? 'another seat';
85
+ const reason = str(p['reason']);
86
+ return [
87
+ {
88
+ op: 'raise',
89
+ subject,
90
+ sentence: `${to} takes over — ${from} stopped answering${reason !== null ? ` (${cap(reason)})` : ''}.`,
91
+ facts: { from, to, reason, pick_seq: pickSeq },
92
+ ord: num(p['ord']),
93
+ attempt: num(p['attempt']),
94
+ re: `path.repicked#${pickSeq}`,
95
+ },
96
+ ];
97
+ },
98
+ coverage: (state, run) => coverageOf(state.bag.get('repicked'), 'team path row', run),
99
+ describe: () => 'When the answering seat stops and another seat takes over the path',
100
+ };
101
+ export const reviewerAbsentCheck = {
102
+ name: 'deterministic:reviewer_absent',
103
+ lane: 'deterministic',
104
+ paramsSchema: empty,
105
+ thresholdSchema: empty,
106
+ evaluate(input, state) {
107
+ const bag = bagOf(state, 'reviewer');
108
+ bag.seen++;
109
+ if (input.type === PATH_ENDED_TYPE)
110
+ return endPath(bag);
111
+ if (input.type !== MEMBER_JOINED_TYPE)
112
+ return [];
113
+ const p = payloadOf(input);
114
+ const slot = str(p['member_id']);
115
+ if (slot === null)
116
+ return [];
117
+ const status = p['status'];
118
+ if (status === 'attached') {
119
+ const out = [];
120
+ for (const [subject, o] of bag.open) {
121
+ if (o.slot === slot) {
122
+ bag.open.delete(subject);
123
+ out.push({ op: 'clear', subject });
124
+ }
125
+ }
126
+ return out;
127
+ }
128
+ if (status !== 'failed' || bag.ended)
129
+ return [];
130
+ // One open row per slot: a later attempt's failure is the same absence.
131
+ for (const o of bag.open.values())
132
+ if (o.slot === slot)
133
+ return [];
134
+ const ord = num(p['ord']);
135
+ const attempt = num(p['attempt']);
136
+ const subject = `${ord ?? '-'}:${attempt ?? '-'}:${slot}:${num(p['open_seq']) ?? '-'}`;
137
+ bag.open.set(subject, { slot });
138
+ const seat = str(p['seat']);
139
+ const reason = str(p['reason']) ?? str(p['error']);
140
+ return [
141
+ {
142
+ op: 'raise',
143
+ subject,
144
+ sentence: seat === null
145
+ ? `No reviewer — ${reason !== null ? cap(reason) : 'no distinct signed-in seat'}. Sign in another helper to get one.`
146
+ : `The reviewer could not join on ${seat}${reason !== null ? `: ${cap(reason)}` : ''}.`,
147
+ facts: { member_id: slot, seat, reason },
148
+ ord,
149
+ attempt,
150
+ re: `member.joined#${slot}`,
151
+ },
152
+ ];
153
+ },
154
+ coverage: (state, run) => coverageOf(state.bag.get('reviewer'), 'team member row', run),
155
+ describe: () => 'When a team path has no reviewer: no distinct signed-in seat, or the reviewer could not join',
156
+ };
157
+ const NOT_ANSWERED = {
158
+ timed_out: 'timed out',
159
+ failed: 'failed',
160
+ no_member: 'no other helper is signed in',
161
+ };
162
+ export const helpUnansweredCheck = {
163
+ name: 'deterministic:help_unanswered',
164
+ lane: 'deterministic',
165
+ paramsSchema: empty,
166
+ thresholdSchema: empty,
167
+ evaluate(input, state) {
168
+ const bag = bagOf(state, 'help');
169
+ const questions = state.bag.get('help.questions') ?? new Map();
170
+ state.bag.set('help.questions', questions);
171
+ bag.seen++;
172
+ if (input.type === PATH_ENDED_TYPE)
173
+ return endPath(bag);
174
+ const p = payloadOf(input);
175
+ const helpId = str(p['help_id']);
176
+ if (helpId === null)
177
+ return [];
178
+ if (input.type === HELP_REQUESTED_TYPE) {
179
+ const q = str(p['question']);
180
+ if (q !== null)
181
+ questions.set(helpId, cap(q));
182
+ return [];
183
+ }
184
+ if (input.type !== HELP_ANSWERED_TYPE)
185
+ return [];
186
+ // An absent outcome is an old row: `answered` (ASK-K3a, `#[serde(default)]`).
187
+ const outcome = str(p['outcome']) ?? 'answered';
188
+ if (outcome === 'answered') {
189
+ const out = [...bag.open.keys()].map((subject) => ({ op: 'clear', subject }));
190
+ bag.open.clear();
191
+ return out;
192
+ }
193
+ if (bag.ended)
194
+ return [];
195
+ const subject = `help:${helpId}:${str(p['answer_id']) ?? '-'}`;
196
+ if (bag.open.has(subject))
197
+ return [];
198
+ bag.open.set(subject, { slot: null });
199
+ const by = str(p['by']);
200
+ const why = NOT_ANSWERED[outcome] ?? outcome;
201
+ const question = questions.get(helpId) ?? null;
202
+ const who = by !== null && by !== 'engine' ? by : 'the helper';
203
+ return [
204
+ {
205
+ op: 'raise',
206
+ subject,
207
+ sentence: outcome === 'no_member'
208
+ ? `Asked for help; ${why}${question !== null ? `: "${question}"` : '.'}`
209
+ : `Asked for help; ${who} did not answer (${why})${question !== null ? `: "${question}"` : '.'}`,
210
+ facts: { help_id: helpId, outcome, question, error: str(p['error']) },
211
+ ord: num(p['ord']),
212
+ attempt: num(p['attempt']),
213
+ re: `help.answered#${helpId}`,
214
+ },
215
+ ];
216
+ },
217
+ coverage: (state, run) => coverageOf(state.bag.get('help'), 'team help row', run),
218
+ describe: () => 'When a help request on a team path ends without an answer (timed out, failed, or no helper)',
219
+ };
220
+ //# sourceMappingURL=team-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team-path.js","sourceRoot":"","sources":["../../../src/watch/checks/team-path.ts"],"names":[],"mappings":"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"}
@@ -50,14 +50,14 @@ export const ungatedCheck = {
50
50
  },
51
51
  ];
52
52
  },
53
- coverage(state) {
53
+ coverage(state, run) {
54
54
  const bag = state.bag.get('ungated');
55
55
  if (bag !== undefined && bag.gates > 0)
56
56
  return { state: 'checked' };
57
57
  if (bag !== undefined && bag.silent > 0) {
58
58
  return { state: 'not_checked', reason: 'the engine is too old to say whether a step was checked' };
59
59
  }
60
- return { state: 'not_checked', reason: 'no step has reached its gate yet' };
60
+ return { state: 'not_checked', reason: run?.ended === true ? 'nothing to check: no step reached its gate on this run' : 'no step has reached its gate yet' };
61
61
  },
62
62
  describe: () => 'When a step finishes with nothing checking it: no checks, no judge, no policy',
63
63
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ungated.js","sourceRoot":"","sources":["../../../src/watch/checks/ungated.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,MAAM,UAAU,GAAG,GAAG,CAAC;AAEvB,MAAM,CAAC,MAAM,YAAY,GAA6D;IACpF,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,eAAe;IACrB,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAiD;IAClF,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAiD;IACrF,QAAQ,CAAC,KAAK,EAAE,KAAK;QACnB,MAAM,GAAG,GAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAqB,IAAI,EAAE,YAAY,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAC9G,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC9B,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QACtB,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3D,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;YACxC,IAAI,OAAO,CAAC,CAAC,SAAS,CAAC,KAAK,QAAQ;gBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YAC9E,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe;YAAE,OAAO,EAAE,CAAC;QAC9C,IAAI,OAAO,CAAC,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;YACtC,GAAG,CAAC,MAAM,EAAE,CAAC;YACb,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI;YAAE,OAAO,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;QAClD,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,eAAe,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAClF,OAAO;YACL;gBACE,EAAE,EAAE,OAAO;gBACX,OAAO,EAAE,GAAG,GAAG,IAAI,OAAO,IAAI,GAAG,UAAU;gBAC3C,QAAQ,EAAE,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,8BAA8B,MAAM,EAAE,CAAC,CAAC,CAAC,4BAA4B;gBAC/F,KAAK,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE;gBACjC,GAAG;gBACH,OAAO;gBACP,EAAE,EAAE,iBAAiB,GAAG,EAAE;aAC3B;SACF,CAAC;IACJ,CAAC;IACD,QAAQ,CAAC,KAAK;QACZ,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAoB,CAAC;QACxD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACpE,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,yDAAyD,EAAE,CAAC;QACrG,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,kCAAkC,EAAE,CAAC;IAC9E,CAAC;IACD,QAAQ,EAAE,GAAG,EAAE,CAAC,+EAA+E;CAChG,CAAC"}
1
+ {"version":3,"file":"ungated.js","sourceRoot":"","sources":["../../../src/watch/checks/ungated.ts"],"names":[],"mappings":"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"}
@@ -109,7 +109,7 @@ export const warnedRuleCheck = {
109
109
  }
110
110
  return out;
111
111
  },
112
- coverage(state) {
112
+ coverage(state, run) {
113
113
  const bag = state.bag.get('warned');
114
114
  if (bag !== undefined && bag.hooks > 0) {
115
115
  if (bag.waiting.length > 0 || bag.lost > 0)
@@ -119,7 +119,7 @@ export const warnedRuleCheck = {
119
119
  if (bag !== undefined && bag.silent > 0) {
120
120
  return { state: 'not_checked', reason: 'the engine is too old to carry the fired rules (needs wicked-core-ts >= 0.7.35)' };
121
121
  }
122
- return { state: 'not_checked', reason: 'no governed tool call has reached a gate yet' };
122
+ return { state: 'not_checked', reason: run?.ended === true ? 'nothing to check: no governed tool call reached a gate on this run' : 'no governed tool call has reached a gate yet' };
123
123
  },
124
124
  describe: () => 'When a governed tool call fires a steering rule the operator asked to be warned about (effect: warn)',
125
125
  };
@@ -1 +1 @@
1
- {"version":3,"file":"warned-rule.js","sourceRoot":"","sources":["../../../src/watch/checks/warned-rule.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA2BxB,oGAAoG;AACpG,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB,MAAM,GAAG,GAAG,CAAC,CAAU,EAAiB,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAEpG,uFAAuF;AACvF,MAAM,UAAU,eAAe,CAAC,YAAgC;IAC9D,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,UAAU,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,MAAM,CAAC;QAChB,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC;QAClB;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAA6D;IACvF,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,eAAe;IACrB,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAiD;IAClF,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAiD;IACrF,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG;QACnD,MAAM,GAAG,GAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAqB,IAAK,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAiB,CAAC;QAC7I,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB;YAAE,OAAO,EAAE,CAAC;QACpD,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QACtB,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,UAAU,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,IAAI,QAAQ,KAAK,MAAM;YAAE,OAAO,EAAE,CAAC,CAAC,kEAAkE;QACtG,MAAM,KAAK,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,GAAG,CAAC,MAAM,EAAE,CAAC;YACb,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9F,MAAM,KAAK,GACT,GAAG,CAAC,MAAM,KAAK,CAAC;YACd,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,UAAU,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QACjN,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAC1D,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,KAAK,KAAK,IAAI;gBAAE,GAAG,CAAC,IAAI,EAAE,CAAC;YAC/B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,KAA0C,CAAC;QAC/C,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,gGAAgG;YAChG,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,WAAW;oBAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;oBACzD,GAAG,CAAC,IAAI,EAAE,CAAC;YAClB,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;QACpE,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;QACjB,MAAM,GAAG,GAAkB,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;gBACvB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC3B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;oBAAE,SAAS;gBAC3D,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,IAAI,GAAG,WAAW,EAAE,EAAE,CAAC;gBACnE,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;oBAAE,SAAS;gBACtC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACxB,GAAG,CAAC,IAAI,CAAC;oBACP,EAAE,EAAE,OAAO;oBACX,OAAO;oBACP,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;oBACxC,QAAQ,EAAE,gDAAgD,CAAC,CAAC,IAAI,KAAK,EAAE,GAAG;oBAC1E,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;oBACxG,GAAG,EAAE,CAAC,CAAC,GAAG;oBACV,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,EAAE,EAAE,uBAAuB,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,IAAI,GAAG,EAAE;oBAC7D,6EAA6E;oBAC7E,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACvD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,QAAQ,CAAC,KAAK;QACZ,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAoB,CAAC;QACvD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YACvC,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC;gBAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,0EAA0E,EAAE,CAAC;YAChK,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAC9B,CAAC;QACD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,iFAAiF,EAAE,CAAC;QAC7H,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,8CAA8C,EAAE,CAAC;IAC1F,CAAC;IACD,QAAQ,EAAE,GAAG,EAAE,CAAC,sGAAsG;CACvH,CAAC"}
1
+ {"version":3,"file":"warned-rule.js","sourceRoot":"","sources":["../../../src/watch/checks/warned-rule.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA2BxB,oGAAoG;AACpG,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB,MAAM,GAAG,GAAG,CAAC,CAAU,EAAiB,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAEpG,uFAAuF;AACvF,MAAM,UAAU,eAAe,CAAC,YAAgC;IAC9D,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,UAAU,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,MAAM,CAAC;QAChB,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC;QAClB;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAA6D;IACvF,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,eAAe;IACrB,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAiD;IAClF,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAiD;IACrF,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG;QACnD,MAAM,GAAG,GAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAqB,IAAK,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAiB,CAAC;QAC7I,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB;YAAE,OAAO,EAAE,CAAC;QACpD,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QACtB,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,UAAU,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,IAAI,QAAQ,KAAK,MAAM;YAAE,OAAO,EAAE,CAAC,CAAC,kEAAkE;QACtG,MAAM,KAAK,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,GAAG,CAAC,MAAM,EAAE,CAAC;YACb,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9F,MAAM,KAAK,GACT,GAAG,CAAC,MAAM,KAAK,CAAC;YACd,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,UAAU,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QACjN,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAC1D,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,KAAK,KAAK,IAAI;gBAAE,GAAG,CAAC,IAAI,EAAE,CAAC;YAC/B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,KAA0C,CAAC;QAC/C,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,gGAAgG;YAChG,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,WAAW;oBAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;oBACzD,GAAG,CAAC,IAAI,EAAE,CAAC;YAClB,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;QACpE,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;QACjB,MAAM,GAAG,GAAkB,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;gBACvB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC3B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;oBAAE,SAAS;gBAC3D,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,IAAI,GAAG,WAAW,EAAE,EAAE,CAAC;gBACnE,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;oBAAE,SAAS;gBACtC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACxB,GAAG,CAAC,IAAI,CAAC;oBACP,EAAE,EAAE,OAAO;oBACX,OAAO;oBACP,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;oBACxC,QAAQ,EAAE,gDAAgD,CAAC,CAAC,IAAI,KAAK,EAAE,GAAG;oBAC1E,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;oBACxG,GAAG,EAAE,CAAC,CAAC,GAAG;oBACV,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,EAAE,EAAE,uBAAuB,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,IAAI,GAAG,EAAE;oBAC7D,6EAA6E;oBAC7E,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACvD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,QAAQ,CAAC,KAAK,EAAE,GAAG;QACjB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAoB,CAAC;QACvD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YACvC,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC;gBAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,0EAA0E,EAAE,CAAC;YAChK,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAC9B,CAAC;QACD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,iFAAiF,EAAE,CAAC;QAC7H,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,oEAAoE,CAAC,CAAC,CAAC,8CAA8C,EAAE,CAAC;IACvL,CAAC;IACD,QAAQ,EAAE,GAAG,EAAE,CAAC,sGAAsG;CACvH,CAAC"}
@@ -20,6 +20,15 @@
20
20
  import type { RecordedEvent, WatchCoverage, WatchEntry, WatchEntrySource, WatchFeedResponse, WatchFinding, WatchHealth, WatchKind, WatchSettings } from 'wicked-crew-api-types';
21
21
  import type { CoreEvent } from '../core/types.js';
22
22
  import type { DiscoverySnapshot, WatchCheck } from './types.js';
23
+ /** crew#828: the one coverage line for an ended run that recorded no events (pre-registry, or ungoverned). */
24
+ export declare const NO_EVIDENCE_REASON = "this run recorded no governance evidence (it ran before the checks existed, or ungoverned)";
25
+ /** What the route read about a run for its coverage (crew#828). */
26
+ export interface WatchRunFacts {
27
+ /** The run is completed, failed or cancelled. */
28
+ ended: boolean;
29
+ /** How many events the run recorded; `null` when the engine cannot say. */
30
+ events: number | null;
31
+ }
23
32
  export interface WatchRegistryOptions {
24
33
  /**
25
34
  * TR-W6: the daemon's steering rules, read for `warned_rule` and cached for {@link RULES_SNAPSHOT_TTL_MS}.
@@ -157,16 +166,23 @@ export declare class WatchRegistry {
157
166
  health(): WatchHealth;
158
167
  /** `GET /watch/entries`: the effective entries, each threshold in plain words. */
159
168
  entries(): WatchEntry[];
160
- /** `GET /watch`: the feed, newest first; with `run`, the run's coverage too. */
169
+ /**
170
+ * `GET /watch`: the feed, newest first; with `run`, the run's coverage too. `runFacts` (crew#828):
171
+ * what the route read about the run — whether it has ENDED, and how many events it recorded
172
+ * (`null` = unknown) — so an ended run's coverage never reads "not yet".
173
+ */
161
174
  feed(q: {
162
175
  project?: string;
163
176
  kind?: WatchKind;
164
177
  run?: string;
165
178
  since?: number;
166
179
  limit?: number;
180
+ runFacts?: WatchRunFacts | null;
167
181
  }): WatchFeedResponse;
182
+ /** crew#828: the run ENDED having recorded no events at all, and the registry saw nothing of it. */
183
+ private noEvidence;
168
184
  /** G7: per run, which entries checked and which did not (and why). Run-less entries have none. */
169
- coverage(runId: string): WatchCoverage[];
185
+ coverage(runId: string, facts?: WatchRunFacts | null): WatchCoverage[];
170
186
  /** "Seen, not a problem": publishes `cleared{reason:"dismissed"}` for the row. */
171
187
  dismiss(watchId: string, actorId: string): Promise<DismissResult>;
172
188
  /** The sources an entry can name (for the routes' validation and the docs). */
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/watch/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/watch/registry.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,8 @@ const RUN_STATE_CAP = 500;
31
31
  const FEED_LIMIT_DEFAULT = 100;
32
32
  const FEED_LIMIT_MAX = 500;
33
33
  const CHECK_FAILED_ENTRY = 'registry-check-failed';
34
+ /** crew#828: the one coverage line for an ended run that recorded no events (pre-registry, or ungoverned). */
35
+ export const NO_EVIDENCE_REASON = 'this run recorded no governance evidence (it ran before the checks existed, or ungoverned)';
34
36
  /** TR-W6: how long one `listConformanceRules` read serves the warned-rule check. */
35
37
  export const RULES_SNAPSHOT_TTL_MS = 30_000;
36
38
  /** TR-W6: how long a check waits on that read — well below the deterministic lane's 1 s timeout. */
@@ -527,7 +529,11 @@ export class WatchRegistry {
527
529
  threshold_text: this.checks.get(e.check)?.describe(e.threshold) ?? '',
528
530
  }));
529
531
  }
530
- /** `GET /watch`: the feed, newest first; with `run`, the run's coverage too. */
532
+ /**
533
+ * `GET /watch`: the feed, newest first; with `run`, the run's coverage too. `runFacts` (crew#828):
534
+ * what the route read about the run — whether it has ENDED, and how many events it recorded
535
+ * (`null` = unknown) — so an ended run's coverage never reads "not yet".
536
+ */
531
537
  feed(q) {
532
538
  const limit = Math.min(Math.max(1, q.limit ?? FEED_LIMIT_DEFAULT), FEED_LIMIT_MAX);
533
539
  const rows = [...(this.emitter?.feed.rows.values() ?? [])]
@@ -539,15 +545,23 @@ export class WatchRegistry {
539
545
  .slice(0, limit);
540
546
  const findings = rows.map((r) => r.raised);
541
547
  const cleared = rows.flatMap((r) => (r.cleared !== null ? [r.cleared] : []));
548
+ const noEvidence = q.run !== undefined && this.noEvidence(q.run, q.runFacts ?? null);
542
549
  return {
543
550
  findings,
544
551
  cleared,
545
- ...(q.run !== undefined ? { coverage: this.coverage(q.run) } : {}),
552
+ ...(q.run !== undefined ? { coverage: this.coverage(q.run, q.runFacts ?? null) } : {}),
553
+ ...(noEvidence ? { coverage_summary: { state: 'no_evidence', reason: NO_EVIDENCE_REASON } } : {}),
546
554
  };
547
555
  }
556
+ /** crew#828: the run ENDED having recorded no events at all, and the registry saw nothing of it. */
557
+ noEvidence(runId, facts) {
558
+ return facts !== null && facts.ended && facts.events === 0 && this.runStates.get(runId) === undefined;
559
+ }
548
560
  /** G7: per run, which entries checked and which did not (and why). Run-less entries have none. */
549
- coverage(runId) {
561
+ coverage(runId, facts = null) {
550
562
  const out = [];
563
+ const noEvidence = this.noEvidence(runId, facts);
564
+ const run = facts !== null ? { ended: facts.ended } : undefined;
551
565
  for (const e of this.effective) {
552
566
  if (e.on.source === 'internal')
553
567
  continue;
@@ -562,12 +576,17 @@ export class WatchRegistry {
562
576
  out.push({ entry_id: e.id, state: 'not_checked', reason: 'turned off' });
563
577
  continue;
564
578
  }
579
+ if (noEvidence) {
580
+ // One honest reason for the whole block, never eight "not yet"s on a finished run.
581
+ out.push({ entry_id: e.id, state: 'not_checked', reason: NO_EVIDENCE_REASON });
582
+ continue;
583
+ }
565
584
  const state = this.runStates.get(runId)?.get(e.id);
566
585
  if (state === undefined && (this.listGap || this.gapRuns.has(runId))) {
567
586
  out.push({ entry_id: e.id, state: 'not_checked', reason: 'the daemon was down' });
568
587
  continue;
569
588
  }
570
- const c = check.coverage(state ?? { runId, seen: new Set(), bag: new Map() });
589
+ const c = check.coverage(state ?? { runId, seen: new Set(), bag: new Map() }, run);
571
590
  if (c !== null)
572
591
  out.push({ entry_id: e.id, ...c });
573
592
  }