@su-record/vibe 4.2.34 → 4.2.36

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 (225) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.codex-plugin/plugin.json +1 -1
  4. package/dist/cli/common.js +4 -1
  5. package/dist/cli/common.js.map +1 -1
  6. package/dist/cli/heldout.js +10 -4
  7. package/dist/cli/heldout.js.map +1 -1
  8. package/dist/cli/human.js +8 -4
  9. package/dist/cli/human.js.map +1 -1
  10. package/dist/cli/internal.js +37 -24
  11. package/dist/cli/internal.js.map +1 -1
  12. package/dist/cli/ledger.js +67 -0
  13. package/dist/cli/ledger.js.map +1 -0
  14. package/dist/cli/map.js +5 -3
  15. package/dist/cli/map.js.map +1 -1
  16. package/dist/cli/memory.js +104 -74
  17. package/dist/cli/memory.js.map +1 -1
  18. package/dist/cli/risks.js +20 -3
  19. package/dist/cli/risks.js.map +1 -1
  20. package/dist/cli/session.js +4 -2
  21. package/dist/cli/session.js.map +1 -1
  22. package/dist/cli/setup.js +44 -13
  23. package/dist/cli/setup.js.map +1 -1
  24. package/dist/cli/verification.js +1 -1
  25. package/dist/cli/verification.js.map +1 -1
  26. package/dist/cli/work.js +75 -22
  27. package/dist/cli/work.js.map +1 -1
  28. package/dist/cli.js +18 -6
  29. package/dist/cli.js.map +1 -1
  30. package/dist/core/analyze.js +21 -7
  31. package/dist/core/analyze.js.map +1 -1
  32. package/dist/core/artifact-paths.js +14 -3
  33. package/dist/core/artifact-paths.js.map +1 -1
  34. package/dist/core/capabilities.js +69 -15
  35. package/dist/core/capabilities.js.map +1 -1
  36. package/dist/core/check-authorization.js +37 -0
  37. package/dist/core/check-authorization.js.map +1 -0
  38. package/dist/core/check-process.js +12 -4
  39. package/dist/core/check-process.js.map +1 -1
  40. package/dist/core/check-report.js +66 -0
  41. package/dist/core/check-report.js.map +1 -0
  42. package/dist/core/check-selection.js +4 -2
  43. package/dist/core/check-selection.js.map +1 -1
  44. package/dist/core/check.js +66 -130
  45. package/dist/core/check.js.map +1 -1
  46. package/dist/core/checks/changed.js +20 -6
  47. package/dist/core/checks/changed.js.map +1 -1
  48. package/dist/core/checks/eval.js +35 -10
  49. package/dist/core/checks/eval.js.map +1 -1
  50. package/dist/core/checks/file.js +26 -23
  51. package/dist/core/checks/file.js.map +1 -1
  52. package/dist/core/checks/fileRules.js +42 -16
  53. package/dist/core/checks/fileRules.js.map +1 -1
  54. package/dist/core/checks/http.js +35 -34
  55. package/dist/core/checks/http.js.map +1 -1
  56. package/dist/core/checks/packs.js +1 -1
  57. package/dist/core/checks/packs.js.map +1 -1
  58. package/dist/core/checks/review.js +75 -40
  59. package/dist/core/checks/review.js.map +1 -1
  60. package/dist/core/checks/run.js +5 -2
  61. package/dist/core/checks/run.js.map +1 -1
  62. package/dist/core/checks/schema.js +25 -0
  63. package/dist/core/checks/schema.js.map +1 -0
  64. package/dist/core/checks/source.js +11 -6
  65. package/dist/core/checks/source.js.map +1 -1
  66. package/dist/core/config.js +9 -2
  67. package/dist/core/config.js.map +1 -1
  68. package/dist/core/consent.js +24 -16
  69. package/dist/core/consent.js.map +1 -1
  70. package/dist/core/context-notes.js +15 -7
  71. package/dist/core/context-notes.js.map +1 -1
  72. package/dist/core/context.js +24 -12
  73. package/dist/core/context.js.map +1 -1
  74. package/dist/core/conventions.js +22 -9
  75. package/dist/core/conventions.js.map +1 -1
  76. package/dist/core/docs/cfb.js +81 -45
  77. package/dist/core/docs/cfb.js.map +1 -1
  78. package/dist/core/docs/html.js +14 -3
  79. package/dist/core/docs/html.js.map +1 -1
  80. package/dist/core/docs/hwp.js +44 -22
  81. package/dist/core/docs/hwp.js.map +1 -1
  82. package/dist/core/docs/office.js +20 -10
  83. package/dist/core/docs/office.js.map +1 -1
  84. package/dist/core/docs/pdf.js +10 -4
  85. package/dist/core/docs/pdf.js.map +1 -1
  86. package/dist/core/docs/read.js +32 -24
  87. package/dist/core/docs/read.js.map +1 -1
  88. package/dist/core/docs/zip.js +32 -15
  89. package/dist/core/docs/zip.js.map +1 -1
  90. package/dist/core/evidence.js +17 -7
  91. package/dist/core/evidence.js.map +1 -1
  92. package/dist/core/failure-message.js +35 -13
  93. package/dist/core/failure-message.js.map +1 -1
  94. package/dist/core/failure.js +49 -14
  95. package/dist/core/failure.js.map +1 -1
  96. package/dist/core/github.js +3 -1
  97. package/dist/core/github.js.map +1 -1
  98. package/dist/core/handoff.js +20 -7
  99. package/dist/core/handoff.js.map +1 -1
  100. package/dist/core/heldout-run.js +6 -3
  101. package/dist/core/heldout-run.js.map +1 -1
  102. package/dist/core/heldout.js +24 -13
  103. package/dist/core/heldout.js.map +1 -1
  104. package/dist/core/inbox.js +3 -1
  105. package/dist/core/inbox.js.map +1 -1
  106. package/dist/core/inputs.js +76 -0
  107. package/dist/core/inputs.js.map +1 -0
  108. package/dist/core/inspect.js +61 -20
  109. package/dist/core/inspect.js.map +1 -1
  110. package/dist/core/intent.js +50 -12
  111. package/dist/core/intent.js.map +1 -1
  112. package/dist/core/knowledge-find.js +31 -12
  113. package/dist/core/knowledge-find.js.map +1 -1
  114. package/dist/core/knowledge.js +22 -12
  115. package/dist/core/knowledge.js.map +1 -1
  116. package/dist/core/lang.js +5 -2
  117. package/dist/core/lang.js.map +1 -1
  118. package/dist/core/ledger.js +44 -20
  119. package/dist/core/ledger.js.map +1 -1
  120. package/dist/core/locations.js +12 -0
  121. package/dist/core/locations.js.map +1 -0
  122. package/dist/core/map/imports.js +20 -9
  123. package/dist/core/map/imports.js.map +1 -1
  124. package/dist/core/map/index.js +28 -13
  125. package/dist/core/map/index.js.map +1 -1
  126. package/dist/core/map/symbols.js +27 -12
  127. package/dist/core/map/symbols.js.map +1 -1
  128. package/dist/core/output-capture.js +7 -4
  129. package/dist/core/output-capture.js.map +1 -1
  130. package/dist/core/paths.js +2 -1
  131. package/dist/core/paths.js.map +1 -1
  132. package/dist/core/performance.js +43 -17
  133. package/dist/core/performance.js.map +1 -1
  134. package/dist/core/profile.js +6 -3
  135. package/dist/core/profile.js.map +1 -1
  136. package/dist/core/reader.js +32 -16
  137. package/dist/core/reader.js.map +1 -1
  138. package/dist/core/readerSession.js +34 -14
  139. package/dist/core/readerSession.js.map +1 -1
  140. package/dist/core/recent.js +20 -6
  141. package/dist/core/recent.js.map +1 -1
  142. package/dist/core/regress.js +21 -12
  143. package/dist/core/regress.js.map +1 -1
  144. package/dist/core/repair.js +22 -4
  145. package/dist/core/repair.js.map +1 -1
  146. package/dist/core/research-queries.js +85 -0
  147. package/dist/core/research-queries.js.map +1 -0
  148. package/dist/core/research.js +89 -88
  149. package/dist/core/research.js.map +1 -1
  150. package/dist/core/results.js +89 -0
  151. package/dist/core/results.js.map +1 -0
  152. package/dist/core/risk-signals.js +55 -16
  153. package/dist/core/risk-signals.js.map +1 -1
  154. package/dist/core/run-id.js +10 -6
  155. package/dist/core/run-id.js.map +1 -1
  156. package/dist/core/scenarios.js +97 -57
  157. package/dist/core/scenarios.js.map +1 -1
  158. package/dist/core/session.js +3 -2
  159. package/dist/core/session.js.map +1 -1
  160. package/dist/core/size-gate.js +57 -0
  161. package/dist/core/size-gate.js.map +1 -0
  162. package/dist/core/size.js +32 -10
  163. package/dist/core/size.js.map +1 -1
  164. package/dist/core/skills.js +66 -28
  165. package/dist/core/skills.js.map +1 -1
  166. package/dist/core/skillsmp.js +26 -12
  167. package/dist/core/skillsmp.js.map +1 -1
  168. package/dist/core/source-basis.js +21 -9
  169. package/dist/core/source-basis.js.map +1 -1
  170. package/dist/core/status.js +26 -13
  171. package/dist/core/status.js.map +1 -1
  172. package/dist/core/table.js +8 -1
  173. package/dist/core/table.js.map +1 -1
  174. package/dist/core/tokens.js +20 -10
  175. package/dist/core/tokens.js.map +1 -1
  176. package/dist/core/tree.js +26 -16
  177. package/dist/core/tree.js.map +1 -1
  178. package/dist/core/verification-plan.js +26 -10
  179. package/dist/core/verification-plan.js.map +1 -1
  180. package/dist/core/verification.js +14 -7
  181. package/dist/core/verification.js.map +1 -1
  182. package/dist/core/view.js +93 -44
  183. package/dist/core/view.js.map +1 -1
  184. package/dist/install/global.js +37 -18
  185. package/dist/install/global.js.map +1 -1
  186. package/dist/install/hooks.js +17 -8
  187. package/dist/install/hooks.js.map +1 -1
  188. package/dist/install/manifest.js +11 -0
  189. package/dist/install/manifest.js.map +1 -0
  190. package/dist/install/mcpb.js +52 -23
  191. package/dist/install/mcpb.js.map +1 -1
  192. package/dist/install/plugin.js +73 -33
  193. package/dist/install/plugin.js.map +1 -1
  194. package/dist/install/project.js +8 -7
  195. package/dist/install/project.js.map +1 -1
  196. package/dist/install/register.js +83 -48
  197. package/dist/install/register.js.map +1 -1
  198. package/dist/install/tree.js +27 -11
  199. package/dist/install/tree.js.map +1 -1
  200. package/dist/install/update.js +46 -20
  201. package/dist/install/update.js.map +1 -1
  202. package/hooks/code-map.cjs +22 -9
  203. package/hooks/file-size.cjs +83 -0
  204. package/hooks/journal.cjs +28 -18
  205. package/hooks/knowledge-auto.cjs +55 -21
  206. package/hooks/knowledge-journal.cjs +47 -20
  207. package/hooks/knowledge-projects.cjs +50 -21
  208. package/hooks/knowledge-recall.cjs +16 -6
  209. package/hooks/knowledge-upkeep.cjs +22 -5
  210. package/hooks/locations.cjs +35 -0
  211. package/hooks/notify.js +52 -24
  212. package/hooks/obsidian.cjs +17 -7
  213. package/hooks/private-store.cjs +25 -10
  214. package/hooks/retest.cjs +39 -16
  215. package/hooks/session-context.cjs +30 -13
  216. package/hooks/session-files.cjs +44 -21
  217. package/hooks/session-repair.cjs +26 -11
  218. package/hooks/session-state.cjs +78 -38
  219. package/hooks/session.js +19 -8
  220. package/hooks/slice-command.cjs +38 -17
  221. package/hooks/slice-guard.cjs +20 -6
  222. package/hooks/slice-store.cjs +25 -12
  223. package/internal/guides/code.md +17 -0
  224. package/mcpb/server/index.js +40 -12
  225. package/package.json +1 -1
@@ -3,23 +3,21 @@ import { readExams } from './heldout.js';
3
3
  import { HELDOUT_PREFIX, runHeldOut } from './heldout-run.js';
4
4
  import { artifactsFresh, captureArtifacts } from './artifacts.js';
5
5
  import { requireRiskCoverage, uncoveredRisks } from './risk-signals.js';
6
- import { createHash } from 'node:crypto';
7
- import { summarizeFailure, failureLine } from './failure.js';
6
+ import { summarizeFailure } from './failure.js';
8
7
  import { repairFailure, resumeRepair } from './repair.js';
9
8
  import { evalCheck } from './checks/eval.js';
10
9
  import { fileCheck } from './checks/file.js';
11
10
  import { httpCheck } from './checks/http.js';
12
11
  import { reviewCheck } from './checks/review.js';
13
- import { actionOf } from './checks/mutation.js';
14
12
  import { runCheck } from './checks/run.js';
15
- import { detectClient, detectHarness, detectModel, reportedCostUsd, reportedTurns } from './client.js';
13
+ import { detectClient, detectModel } from './client.js';
16
14
  import { invalidTransition } from './errors.js';
17
- import { ask, hasOpenQuestion, openQuestions, resolve as resolveQuestion } from './inbox.js';
18
- import { record, recentAuthorize } from './ledger.js';
15
+ import { ask, hasOpenQuestion } from './inbox.js';
16
+ import { record } from './ledger.js';
19
17
  import { vibePath } from './paths.js';
20
18
  import { intentHash, intentPath, loadScenarios, scenariosPath } from './intent.js';
21
19
  import { listRegressions } from './regress.js';
22
- import { ancestorsOf, isHuman } from './scenarios.js';
20
+ import { isHuman } from './scenarios.js';
23
21
  import { readState, writeState } from './state.js';
24
22
  import { nowIso, readJson, readText, writeJson } from './store.js';
25
23
  import { readSourceBasis, sourceValidity } from './source-basis.js';
@@ -27,41 +25,23 @@ import { changedBlobs, changedSince, treeHash } from './tree.js';
27
25
  import { consentStatus, requireConsent } from './consent.js';
28
26
  import { fingerprint } from './inspect.js';
29
27
  import { diagnosticFile } from './evidence.js';
30
- import { foldHandoffResults } from './handoff-results.js';
31
28
  import { readHandoffs } from './handoff.js';
32
29
  import { outputCapture } from './output-capture.js';
33
- import { reserveRun, writeRunEvidence } from './run-id.js';
30
+ import { reserveRun } from './run-id.js';
34
31
  import { recordStopEvidence } from './session.js';
32
+ import { unauthorized } from './check-authorization.js';
33
+ import { failHashOf, recordReport, scenarioSetHash } from './check-report.js';
34
+ import { foldOutcomes, readResults, resultsPath } from './results.js';
35
+ import { SIZE_GATE, sizeGate } from './size-gate.js';
35
36
  /** Checks that may run at the same time — independent scenarios only, never a dependent before its parent. */
36
37
  export const MAX_PARALLEL = 4;
37
- export function resultsPath(root) {
38
- return vibePath(root, 'results.json');
39
- }
40
- export function readResults(root) {
41
- const stored = readJson(resultsPath(root)) ?? {};
42
- const tree = treeHash(root);
43
- const live = {};
44
- // A pass is bound to the tree it was taken on: any other tree makes it stale, never DONE
45
- for (const [id, r] of Object.entries(stored))
46
- live[id] = r.last === 'pass' && (r.tree !== tree || !artifactsFresh(root, r.artifacts)) ? { ...r, last: 'stale' } : r;
47
- const results = foldHandoffResults(root, live);
48
- if (Object.values(results).some(r => r.last === 'stale'))
49
- invalidateDependents(results, [...loadScenarios(root), ...listRegressions(root)]);
50
- return results;
51
- }
52
- function invalidateDependents(results, scenarios) {
53
- let changed = Object.values(results).some(r => r.last === 'stale');
54
- while (changed) {
55
- changed = false;
56
- for (const s of scenarios) {
57
- const result = results[s.id];
58
- if (result?.last !== 'pass' || !s.needs?.some(id => results[id]?.last === 'stale'))
59
- continue;
60
- result.last = 'stale';
61
- changed = true;
62
- }
63
- }
64
- }
38
+ /** States in which `check` may run. */
39
+ const CHECKABLE_STATES = ['APPROVED', 'RUNNING', 'DONE', 'STUCK'];
40
+ const CODE_ADAPTER_ERROR = 'adapter-error';
41
+ const CODE_ARTIFACT_UNAVAILABLE = 'artifact-unavailable';
42
+ const HANDOFF_REASON = 'required work handed off; not passed';
43
+ export { readResults, resultsPath } from './results.js';
44
+ export { scenarioSetHash };
65
45
  async function execute(scenario, root) {
66
46
  const check = scenario.check;
67
47
  switch (check.type) {
@@ -78,24 +58,9 @@ async function execute(scenario, root) {
78
58
  case 'human':
79
59
  return { pass: false, exit: null, ms: 0, tail: check.question, reason: 'human — not judged by the harness' };
80
60
  default:
81
- return { pass: false, exit: null, ms: 0, tail: '', reason: `unknown check type` };
61
+ return { pass: false, exit: null, ms: 0, tail: '', reason: 'unknown check type' };
82
62
  }
83
63
  }
84
- function failHashOf(outcomes) {
85
- const failed = outcomes.filter((o) => o.status === 'fail').sort((a, b) => a.id.localeCompare(b.id));
86
- if (failed.length === 0)
87
- return null;
88
- const hash = createHash('sha256');
89
- for (const o of failed)
90
- hash.update(`${o.id}|${o.type}|${o.exit}|${o.signal ?? ''}|${o.failureCode ?? 'check-failed'}|${o.failure?.diagnosticCode ?? ''}|${o.failure?.locations[0]?.file ?? ''}\n`);
91
- return hash.digest('hex').slice(0, 8);
92
- }
93
- export function scenarioSetHash(scenarios) {
94
- const hash = createHash('sha256');
95
- for (const s of [...scenarios].sort((a, b) => a.id.localeCompare(b.id)))
96
- hash.update(`${s.id}|${JSON.stringify({ check: s.check, needs: s.needs, risk: s.risk, artifacts: s.artifacts })}\n`);
97
- return hash.digest('hex').slice(0, 12);
98
- }
99
64
  function askHumanOnce(root, scenario) {
100
65
  if (scenario.check.type !== 'human')
101
66
  return;
@@ -104,30 +69,10 @@ function askHumanOnce(root, scenario) {
104
69
  return;
105
70
  ask(root, { question, scenario: scenario.id });
106
71
  }
107
- /** An irreversible scenario runs only behind an authorize record: the harness never re-executes a mutation on its own. */
108
- function unauthorized(root, scenario) {
109
- if (!scenario.irreversible)
110
- return null;
111
- const action = actionOf(scenario.irreversible);
112
- if (recentAuthorize(root, action)) {
113
- for (const q of openQuestions(root))
114
- if (q.scenario === scenario.id && q.question.startsWith('Outside authority:'))
115
- resolveQuestion(root, q.id);
116
- return null;
117
- }
118
- const outcome = { id: scenario.id, type: scenario.check.type, status: 'blocked', exit: null, ms: 0, tail: '', reason: `irreversible (${action}) — vibe authorize --action ${action} first; check --all never runs it on its own` };
119
- outcome.failureCode = 'authorization-required';
120
- outcome.failure = summarizeFailure(root, scenario, { pass: false, exit: null, ms: 0, tail: '', failureCode: 'authorization-required' });
121
- if (!hasOpenQuestion(root, (q) => q.scenario === scenario.id && q.question.startsWith('Outside authority:'))) {
122
- ask(root, { scenario: scenario.id, question: `Outside authority: ${failureLine(outcome.failure)}. Irreversible action ${action} needs authorization; no action was attempted. Will you authorize it or revise the scope?`, options: ['authorize the action', 'revise scope', 'handoff'] });
123
- }
124
- if (scenario.regression)
125
- outcome.regression = true;
126
- return outcome;
127
- }
128
72
  async function runOne(root, scenario, options) {
129
- if (readHandoffs(root)[scenario.id])
130
- return { id: scenario.id, type: scenario.check.type, status: 'handoff', exit: null, ms: 0, tail: '', reason: 'required work handed off; not passed' };
73
+ if (readHandoffs(root)[scenario.id]) {
74
+ return { id: scenario.id, type: scenario.check.type, status: 'handoff', exit: null, ms: 0, tail: '', reason: HANDOFF_REASON };
75
+ }
131
76
  const held = unauthorized(root, scenario);
132
77
  if (held)
133
78
  return held;
@@ -137,7 +82,7 @@ async function runOne(root, scenario, options) {
137
82
  result = await execute(scenario, root);
138
83
  }
139
84
  catch {
140
- result = { pass: false, exit: null, ms: 0, tail: '', failureCode: 'adapter-error' };
85
+ result = { pass: false, exit: null, ms: 0, tail: '', failureCode: CODE_ADAPTER_ERROR };
141
86
  }
142
87
  let artifacts;
143
88
  if (result.pass && scenario.artifacts) {
@@ -145,7 +90,7 @@ async function runOne(root, scenario, options) {
145
90
  artifacts = captureArtifacts(root, scenario.artifacts);
146
91
  }
147
92
  catch {
148
- result = { ...result, pass: false, failureCode: 'artifact-unavailable' };
93
+ result = { ...result, pass: false, failureCode: CODE_ARTIFACT_UNAVAILABLE };
149
94
  }
150
95
  }
151
96
  const status = isHuman(scenario) ? 'pending' : result.pass ? 'pass' : 'fail';
@@ -159,12 +104,12 @@ async function runOne(root, scenario, options) {
159
104
  outcome.reason = outcome.failureCode;
160
105
  outcome.failure = summarizeFailure(root, scenario, result);
161
106
  }
162
- outcome.capture = result.capture ?? outputCapture().finish(result.failureCode !== 'adapter-error').capture;
107
+ outcome.capture = result.capture ?? outputCapture().finish(result.failureCode !== CODE_ADAPTER_ERROR).capture;
163
108
  if (result.signal !== undefined)
164
109
  outcome.signal = result.signal;
165
110
  if (result.cleanupUncertain)
166
111
  outcome.cleanupUncertain = true;
167
- outcome.sources = [...(scenario.verifiers ?? []), ...('path' in scenario.check ? [scenario.check.path] : []), ...(scenario.check.type === 'eval' ? [scenario.check.cases] : [])];
112
+ outcome.sources = checkSources(scenario);
168
113
  if (options.diagnostics)
169
114
  outcome.diagnostic = diagnosticFile(root, options.run, scenario.id, result);
170
115
  if (result.usage)
@@ -173,8 +118,14 @@ async function runOne(root, scenario, options) {
173
118
  outcome.regression = true;
174
119
  return outcome;
175
120
  }
121
+ /** The files a result stands on: declared verifiers, the check's own path, an eval's cases. */
122
+ function checkSources(scenario) {
123
+ const check = scenario.check;
124
+ return [...(scenario.verifiers ?? []), ...('path' in check ? [check.path] : []), ...(check.type === 'eval' ? [check.cases] : [])];
125
+ }
176
126
  function blocked(scenario, by) {
177
- const outcome = { id: scenario.id, type: scenario.check.type, status: 'blocked', exit: null, ms: 0, tail: '', reason: `blocked — needs ${by.join(', ')}`, blockedBy: by };
127
+ const reason = `blocked — needs ${by.join(', ')}`;
128
+ const outcome = { id: scenario.id, type: scenario.check.type, status: 'blocked', exit: null, ms: 0, tail: '', reason, blockedBy: by };
178
129
  if (scenario.regression)
179
130
  outcome.regression = true;
180
131
  return outcome;
@@ -268,43 +219,26 @@ function settleState(root, current, failHash, remaining, outcomes, at, approach)
268
219
  next.state = 'RUNNING';
269
220
  return { next, stuck: false, done: false };
270
221
  }
222
+ /** Scenario ids, sealed exams and the size gate that have not passed yet. */
223
+ function remainingIds(gated, heldOutGates, results) {
224
+ return [
225
+ ...gated.filter((s) => results[s.id]?.last !== 'pass').map((s) => s.id),
226
+ ...heldOutGates.filter((id) => results[id]?.last !== 'pass'),
227
+ ...(results[SIZE_GATE]?.last === 'fail' ? [SIZE_GATE] : []),
228
+ ];
229
+ }
271
230
  export function validateApproval(root, state) {
272
231
  const basis = readSourceBasis(root);
273
232
  const currentHash = intentHash(readText(intentPath(root)) ?? '', readText(scenariosPath(root)) ?? '', basis);
274
- if (currentHash !== state.intentHash)
275
- throw invalidTransition(`approval void — the intent or scenarios changed since ${state.intentHash ?? 'the approval'}; run vibe intent draft and approve again`);
233
+ if (currentHash !== state.intentHash) {
234
+ const since = state.intentHash ?? 'the approval';
235
+ throw invalidTransition(`approval void — the intent or scenarios changed since ${since}; run vibe intent draft and approve again`);
236
+ }
276
237
  const sources = sourceValidity(root, basis);
277
- if (sources && !sources.valid)
278
- throw invalidTransition(`approval void — source changed or missing: ${[...sources.changed, ...sources.missing, ...sources.unreadable].join(', ')}; re-evaluate affected findings, run vibe intent draft and approve again`);
279
- }
280
- /** Results after a run: its outcomes over the earlier ones; a pass whose artifact or prerequisite changed turns stale. */
281
- function foldOutcomes(root, previous, outcomes, universe, at, run) {
282
- const results = { ...previous };
283
- const tree = treeHash(root); // after the checks ran: a check that writes build output is part of the tree it passed on
284
- for (const o of outcomes)
285
- results[o.id] = { last: o.status, at, run, tree, ...(o.failure ? { failure: o.failure } : {}), ...(o.artifacts ? { artifacts: o.artifacts } : {}) };
286
- for (const [id, r] of Object.entries(results)) {
287
- if (r.last !== 'pass' || artifactsFresh(root, r.artifacts))
288
- continue;
289
- r.last = 'stale';
290
- const outcome = outcomes.find(o => o.id === id);
291
- if (outcome) {
292
- outcome.status = 'stale';
293
- outcome.reason = 'artifact-changed';
294
- }
238
+ if (sources && !sources.valid) {
239
+ const files = [...sources.changed, ...sources.missing, ...sources.unreadable].join(', ');
240
+ throw invalidTransition(`approval void — source changed or missing: ${files}; re-evaluate affected findings, run vibe intent draft and approve again`);
295
241
  }
296
- const executed = new Set(outcomes.map(o => o.id));
297
- const changedOutputs = new Set(Object.entries(previous).filter(([, r]) => r.artifacts && !artifactsFresh(root, r.artifacts)).map(([id]) => id));
298
- for (const s of universe)
299
- if (!executed.has(s.id) && results[s.id]?.last === 'pass' && ancestorsOf(universe, [s.id]).some(id => changedOutputs.has(id)))
300
- results[s.id].last = 'stale';
301
- invalidateDependents(results, universe);
302
- for (const o of outcomes)
303
- if (o.status === 'pass' && results[o.id]?.last === 'stale') {
304
- o.status = 'stale';
305
- o.reason = 'prerequisite-stale';
306
- }
307
- return results;
308
242
  }
309
243
  /**
310
244
  * The only verdict path. The harness runs the checks and writes the evidence.
@@ -313,7 +247,7 @@ function foldOutcomes(root, previous, outcomes, universe, at, run) {
313
247
  */
314
248
  export async function runChecks(root, options = {}) {
315
249
  let state = readState(root);
316
- if (!['APPROVED', 'RUNNING', 'DONE', 'STUCK'].includes(state.state)) {
250
+ if (!CHECKABLE_STATES.includes(state.state)) {
317
251
  throw invalidTransition(`check runs only after approval (current state ${state.state})`);
318
252
  }
319
253
  validateApproval(root, state);
@@ -333,6 +267,8 @@ export async function runChecks(root, options = {}) {
333
267
  const exams = readExams(root);
334
268
  if (exams.length > 0 && !(options.ids && options.ids.length > 0))
335
269
  outcomes.push(...await runHeldOut(root, exams, outcomes));
270
+ if (!options.ids?.length)
271
+ outcomes.push(...sizeGate(root, previous[SIZE_GATE]?.last));
336
272
  for (const outcome of outcomes) {
337
273
  outcome.executionContext = executionContext;
338
274
  outcome.evidenceId = `${run}#${outcome.id}`;
@@ -344,31 +280,24 @@ export async function runChecks(root, options = {}) {
344
280
  const edges = implementsEdges(root, implemented);
345
281
  const gated = universe.filter((s) => !isHuman(s));
346
282
  const heldOutGates = exams.map((exam) => `${HELDOUT_PREFIX}${exam.id}`);
347
- const remaining = [...gated.filter((s) => results[s.id]?.last !== 'pass').map((s) => s.id),
348
- ...heldOutGates.filter((id) => results[id]?.last !== 'pass')];
283
+ const remaining = remainingIds(gated, heldOutGates, results);
349
284
  const passed = outcomes.filter((o) => o.status === 'pass').length;
350
285
  const failed = outcomes.filter((o) => o.status === 'fail').length;
351
286
  const pending = outcomes.filter((o) => o.status === 'pending').length;
352
287
  const failHash = failHashOf(outcomes);
353
288
  const { next, stuck, done } = settleState(root, readState(root), failHash, remaining, outcomes, at, options.approach);
354
- const report = { run, at, state: next.state, outcomes, passed, failed, pending, failHash, stuck, done, remaining };
289
+ const reused = gated.filter((s) => !selected.includes(s) && results[s.id]?.last === 'pass').map((s) => s.id);
290
+ const report = { run, at, state: next.state, outcomes, passed, failed, pending, failHash, stuck, done, remaining, reused };
355
291
  recordReport(root, report, scenarios, edges);
356
- recordStopEvidence(root, { run, done, executionPlan, repair: next.repair ?? null, failures: outcomes.flatMap((outcome) => outcome.failure ? [outcome.failure] : []), intentHash: state.intentHash, scenarios: [...gated.map((scenario) => scenario.id), ...heldOutGates].map((id) => ({ id, status: results[id]?.last ?? 'pending' })) });
292
+ const stopScenarios = [...gated.map((scenario) => scenario.id), ...heldOutGates].map((id) => ({ id, status: results[id]?.last ?? 'pending' }));
293
+ const failures = outcomes.flatMap((outcome) => outcome.failure ? [outcome.failure] : []);
294
+ recordStopEvidence(root, { run, done, executionPlan, repair: next.repair ?? null, failures, intentHash: state.intentHash, scenarios: stopScenarios });
357
295
  writeState(root, next);
358
- for (const event of [...(stuck ? ['stuck'] : []), ...(done ? ['done'] : [])])
296
+ const events = [...(stuck ? ['stuck'] : []), ...(done ? ['done'] : [])];
297
+ for (const event of events)
359
298
  record(root, { event, client: detectClient(), model: detectModel(), run, failHash });
360
299
  return report;
361
300
  }
362
- function recordReport(root, report, scenarios, edges) {
363
- const { run, at, outcomes, passed, failed, failHash } = report;
364
- const evidence = { schemaVersion: 2, run, at, intentHash: readState(root).intentHash, client: detectClient(), model: detectModel(), scenarioSet: scenarioSetHash(scenarios), results: outcomes.map(({ diagnostic: _private, ...outcome }) => outcome) };
365
- writeRunEvidence(root, run, evidence);
366
- const scenarioMap = {};
367
- for (const o of outcomes)
368
- scenarioMap[o.id] = o.status;
369
- const harness = detectHarness();
370
- record(root, { event: 'check', client: evidence.client, model: evidence.model, ...(harness ? { harness } : {}), run, scenarioSet: evidence.scenarioSet, scenarios: scenarioMap, passed, failed, failHash, turns: reportedTurns(), costUsd: reportedCostUsd(), ms: outcomes.reduce((a, o) => a + o.ms, 0), edges });
371
- }
372
301
  /** DONE with a changed tree goes back to RUNNING. `state` calls this every time. */
373
302
  export function invalidateDoneIfEdited(root) {
374
303
  const state = readState(root);
@@ -376,7 +305,14 @@ export function invalidateDoneIfEdited(root) {
376
305
  return false;
377
306
  const basis = readSourceBasis(root);
378
307
  const currentHash = intentHash(readText(intentPath(root)) ?? '', readText(scenariosPath(root)) ?? '', basis);
379
- if (uncoveredRisks(root, loadScenarios(root)).length === 0 && treeHash(root) === state.doneTree && currentHash === state.intentHash && (sourceValidity(root, basis)?.valid ?? true) && consentStatus(root).valid && Object.values(readJson(resultsPath(root)) ?? {}).every(r => r.last !== 'pass' || artifactsFresh(root, r.artifacts)))
308
+ const results = Object.values(readJson(resultsPath(root)) ?? {});
309
+ const unchanged = uncoveredRisks(root, loadScenarios(root)).length === 0
310
+ && treeHash(root) === state.doneTree
311
+ && currentHash === state.intentHash
312
+ && (sourceValidity(root, basis)?.valid ?? true)
313
+ && consentStatus(root).valid
314
+ && results.every((r) => r.last !== 'pass' || artifactsFresh(root, r.artifacts));
315
+ if (unchanged)
380
316
  return false;
381
317
  writeState(root, { ...state, state: 'RUNNING', doneAt: null, doneTree: null });
382
318
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/core/check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/core/check.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,16 @@ import fs from 'node:fs';
3
3
  import path from 'node:path';
4
4
  import { relPosix } from '../paths.js';
5
5
  import { usage } from '../errors.js';
6
- import { blast } from '../map/index.js';
6
+ import { blast, DEFAULT_CALLER_DEPTH } from '../map/index.js';
7
7
  import { blastSummary } from '../map/format.js';
8
8
  import { isSourceOf, listSource, renderSource } from './source.js';
9
+ const GIT_TIMEOUT_MS = 30_000;
9
10
  function git(root, args) {
10
- const r = spawnSync('git', ['-C', root, ...args], { encoding: 'utf-8', timeout: 30_000, shell: process.platform === 'win32' });
11
+ const r = spawnSync('git', ['-C', root, ...args], {
12
+ encoding: 'utf-8',
13
+ timeout: GIT_TIMEOUT_MS,
14
+ shell: process.platform === 'win32',
15
+ });
11
16
  return { ok: r.status === 0, out: r.stdout ?? '' };
12
17
  }
13
18
  /** Modified, added and untracked source files under `target` against `ref` (`true` = HEAD); deleted ones cannot be reviewed and are dropped. */
@@ -92,20 +97,29 @@ export function dependentsOf(root, target, changed, kind) {
92
97
  function blastDependents(root, target, kind) {
93
98
  if (kind !== 'code')
94
99
  return null;
95
- const result = blast(root, 2, target);
100
+ const result = blast(root, DEFAULT_CALLER_DEPTH, target);
96
101
  if (result.callers.length === 0)
97
102
  return null;
98
103
  const summary = blastSummary(result);
99
104
  return { head: `${summary.changedLine}\n${summary.affectedLine}`, dependents: summary.files };
100
105
  }
106
+ function dependentsFor(root, target, changed, kind, viaBlast) {
107
+ if (viaBlast)
108
+ return viaBlast.dependents.map((d) => path.resolve(root, d));
109
+ return changed.length ? dependentsOf(root, target, changed, kind) : [];
110
+ }
101
111
  export function collectChanged(root, target, maxChars, kind, ref) {
102
112
  const { ref: against, files: changed } = changedFiles(root, target, ref, kind);
103
113
  const rel = (f) => relPosix(root, f);
104
114
  const viaBlast = changed.length ? blastDependents(root, target, kind) : null;
105
- const dependents = viaBlast ? viaBlast.dependents.map((d) => path.resolve(root, d)) : changed.length ? dependentsOf(root, target, changed, kind) : [];
106
- const head = viaBlast?.head ?? `Changed since ${against}: ${changed.map(rel).join(', ') || 'none'}\nDependents (one hop): ${dependents.map(rel).join(', ') || 'none'}`;
115
+ const dependents = dependentsFor(root, target, changed, kind, viaBlast);
116
+ const head = viaBlast?.head ?? [
117
+ `Changed since ${against}: ${changed.map(rel).join(', ') || 'none'}`,
118
+ `Dependents (one hop): ${dependents.map(rel).join(', ') || 'none'}`,
119
+ ].join('\n');
107
120
  const roles = new Map([...changed.map((f) => [f, 'changed']), ...dependents.map((f) => [f, 'dependent'])]);
108
121
  const rendered = renderSource(root, [...changed, ...dependents], maxChars, roles);
109
- return { selection: { ref: against, changed: changed.map(rel), dependents: dependents.map(rel) }, files: rendered.files, text: `${head}\n\n${rendered.text}` };
122
+ const selection = { ref: against, changed: changed.map(rel), dependents: dependents.map(rel) };
123
+ return { selection, files: rendered.files, text: `${head}\n\n${rendered.text}` };
110
124
  }
111
125
  //# sourceMappingURL=changed.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"changed.js","sourceRoot":"","sources":["../../../src/core/checks/changed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"changed.js","sourceRoot":"","sources":["../../../src/core/checks/changed.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,8 @@ import { outputCapture } from '../output-capture.js';
4
4
  import { boundedFile } from '../inspect.js';
5
5
  const DEFAULT_CASE_TIMEOUT_MS = 60_000;
6
6
  const MAX_MISMATCHES_SHOWN = 5;
7
+ /** How much of a got/expected value a mismatch line quotes. */
8
+ const MISMATCH_PREVIEW_CHARS = 80;
7
9
  function matches(out, expected) {
8
10
  const text = out.trim();
9
11
  if (typeof expected === 'string')
@@ -15,6 +17,16 @@ function matches(out, expected) {
15
17
  return false;
16
18
  }
17
19
  }
20
+ function loadCases(file) {
21
+ const lines = boundedFile(file).toString('utf8').split('\n').filter((l) => l.trim());
22
+ return lines.map((line, i) => {
23
+ const item = JSON.parse(line);
24
+ return { id: item.id ?? `#${i + 1}`, input: item.input, expected: item.expected };
25
+ });
26
+ }
27
+ function preview(value) {
28
+ return JSON.stringify(value).slice(0, MISMATCH_PREVIEW_CHARS);
29
+ }
18
30
  /**
19
31
  * `eval` check — a labelled case set against a runner. The verdict is a count of matching cases
20
32
  * (never a ratio): pass when at least `expect.pass` cases match. Each case is one line of JSONL
@@ -24,11 +36,7 @@ export async function evalCheck(check, root) {
24
36
  const started = Date.now();
25
37
  let cases;
26
38
  try {
27
- const lines = boundedFile(path.resolve(root, check.cases)).toString('utf8').split('\n').filter((l) => l.trim());
28
- cases = lines.map((line, i) => {
29
- const item = JSON.parse(line);
30
- return { id: item.id ?? `#${i + 1}`, input: item.input, expected: item.expected };
31
- });
39
+ cases = loadCases(path.resolve(root, check.cases));
32
40
  }
33
41
  catch (error) {
34
42
  return { pass: false, exit: null, ms: Date.now() - started, tail: '', reason: `cases unreadable: ${error.message}` };
@@ -38,18 +46,35 @@ export async function evalCheck(check, root) {
38
46
  let matched = 0;
39
47
  for (const c of cases) {
40
48
  const input = typeof c.input === 'string' ? c.input : JSON.stringify(c.input);
41
- const processResult = await checkProcess(check.runner, { cwd: root, input, timeoutMs: check.timeoutMs ?? DEFAULT_CASE_TIMEOUT_MS, onOutput: streams.add });
42
- if (processResult.failureCode || processResult.exit !== 0)
43
- return { ...streams.finish(processResult.failureCode === null), pass: false, exit: processResult.exit, ms: Date.now() - started, tail: '', failureCode: processResult.failureCode ?? 'runner-exit', cleanupUncertain: processResult.cleanupUncertain };
49
+ const timeoutMs = check.timeoutMs ?? DEFAULT_CASE_TIMEOUT_MS;
50
+ const processResult = await checkProcess(check.runner, { cwd: root, input, timeoutMs, onOutput: streams.add });
51
+ if (processResult.failureCode || processResult.exit !== 0) {
52
+ return {
53
+ ...streams.finish(processResult.failureCode === null),
54
+ pass: false,
55
+ exit: processResult.exit,
56
+ ms: Date.now() - started,
57
+ tail: '',
58
+ failureCode: processResult.failureCode ?? 'runner-exit',
59
+ cleanupUncertain: processResult.cleanupUncertain,
60
+ };
61
+ }
44
62
  const out = processResult.raw.stdout.toString('utf8');
45
63
  if (matches(out, c.expected))
46
64
  matched += 1;
47
65
  else if (mismatches.length < MAX_MISMATCHES_SHOWN)
48
- mismatches.push(`${c.id}: got ${JSON.stringify(out.trim()).slice(0, 80)} · expected ${JSON.stringify(c.expected).slice(0, 80)}`);
66
+ mismatches.push(`${c.id}: got ${preview(out.trim())} · expected ${preview(c.expected)}`);
49
67
  }
50
68
  const pass = matched >= check.expect.pass;
51
69
  const summary = `${matched} of ${cases.length} cases matched (need ${check.expect.pass})`;
52
- const result = { ...streams.finish(true), pass, exit: pass ? 0 : 1, ms: Date.now() - started, tail: [summary, ...mismatches].join('\n'), ...(pass ? {} : { failureCode: 'eval-mismatch' }) };
70
+ const result = {
71
+ ...streams.finish(true),
72
+ pass,
73
+ exit: pass ? 0 : 1,
74
+ ms: Date.now() - started,
75
+ tail: [summary, ...mismatches].join('\n'),
76
+ ...(pass ? {} : { failureCode: 'eval-mismatch' }),
77
+ };
53
78
  if (!pass)
54
79
  result.reason = summary;
55
80
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"eval.js","sourceRoot":"","sources":["../../../src/core/checks/eval.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eval.js","sourceRoot":"","sources":["../../../src/core/checks/eval.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,uBAAuB,GAAG,MAAM,CAAC;AACvC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAC/B,+DAA+D;AAC/D,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAQlC,SAAS,OAAO,CAAC,GAAW,EAAE,QAAiB;IAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACxB,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;IAClE,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACrF,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAyD,CAAC;QACtF,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IACpF,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;AAChE,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAgB,EAAE,IAAY;IAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,IAAI,KAAa,CAAC;IAClB,IAAI,CAAC;QACH,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,qBAAsB,KAAe,CAAC,OAAO,EAAE,EAAE,CAAC;IAClI,CAAC;IACD,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9E,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,uBAAuB,CAAC;QAC7D,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC/G,IAAI,aAAa,CAAC,WAAW,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC1D,OAAO;gBACL,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,KAAK,IAAI,CAAC;gBACrD,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,aAAa,CAAC,IAAI;gBACxB,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;gBACxB,IAAI,EAAE,EAAE;gBACR,WAAW,EAAE,aAAa,CAAC,WAAW,IAAI,aAAa;gBACvD,gBAAgB,EAAE,aAAa,CAAC,gBAAgB;aACjD,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC,CAAC;aACtC,IAAI,UAAU,CAAC,MAAM,GAAG,oBAAoB;YAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,eAAe,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC9I,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1C,MAAM,OAAO,GAAG,GAAG,OAAO,OAAO,KAAK,CAAC,MAAM,wBAAwB,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC;IAC1F,MAAM,MAAM,GAAgB;QAC1B,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QACvB,IAAI;QACJ,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClB,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;QACxB,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACzC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;KAClD,CAAC;IACF,IAAI,CAAC,IAAI;QAAE,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC;IACnC,OAAO,MAAM,CAAC;AAChB,CAAC"}