@productbrain/cli 0.1.0-beta.9000 → 0.1.0-beta.9001

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.
@@ -14,7 +14,7 @@ function candidate(overrides = {}) {
14
14
  }
15
15
  const create = { kind: 'create', candidates: [], scanTruncated: false };
16
16
  afterEach(() => vi.restoreAllMocks());
17
- describe('capture verdict rendering (WP-755 C1a three verdicts)', () => {
17
+ describe('capture verdict rendering (WP-755 C1a; create and ask only, TASK-619)', () => {
18
18
  // TASK-608 (WP-802, DEC-1915): a create verdict names no candidates, so the reply carries no
19
19
  // "Related" line — only the coverage note when the scan was truncated.
20
20
  it.each([true, false])('create prints no related list; coverage note only when truncated=%s', (scanTruncated) => {
@@ -26,13 +26,6 @@ describe('capture verdict rendering (WP-755 C1a three verdicts)', () => {
26
26
  if (!scanTruncated)
27
27
  expect(output).not.toHaveBeenCalled();
28
28
  });
29
- // WP-755 C2 (TASK-216, DEC-1717): "an edit versions without a question" — capture.ts's own
30
- // version branch prints its own progress/receipt lines instead.
31
- it('version prints nothing — the write is silent, capture.ts owns its own progress line', () => {
32
- const output = vi.spyOn(process.stderr, 'write').mockReturnValue(true);
33
- printPossibleMatch({ kind: 'version', entryId: 'DEC-42', score: 0.95, name: 'An existing decision', collectionSlug: 'decisions', docId: 'doc-42', scanTruncated: false });
34
- expect(output).not.toHaveBeenCalled();
35
- });
36
29
  it('ask surfaces candidates for confirmation before creating, with the truncation caveat', () => {
37
30
  const output = vi.spyOn(process.stderr, 'write').mockReturnValue(true);
38
31
  printPossibleMatch({
@@ -50,10 +43,7 @@ describe('highestVerdictScore', () => {
50
43
  it('is 0 for a null verdict', () => {
51
44
  expect(highestVerdictScore(null)).toBe(0);
52
45
  });
53
- it('reads the version verdict\'s own score', () => {
54
- expect(highestVerdictScore({ kind: 'version', entryId: 'DEC-1', score: 0.8, name: 'a', collectionSlug: 'decisions', docId: 'doc-1', scanTruncated: false })).toBe(0.8);
55
- });
56
- it('reads the top candidate\'s score for ask', () => {
46
+ it('reads the highest candidate score for ask', () => {
57
47
  const verdict = {
58
48
  kind: 'ask',
59
49
  candidates: [
@@ -64,6 +54,19 @@ describe('highestVerdictScore', () => {
64
54
  };
65
55
  expect(highestVerdictScore(verdict)).toBe(0.75);
66
56
  });
57
+ // TASK-619: the judge lists a lifted (boosted / title-exact) candidate first for display, so the
58
+ // first row is not the highest raw score — telemetry reads the max, never the first row.
59
+ it('reads the max raw score when a lifted low-score candidate is listed first', () => {
60
+ const verdict = {
61
+ kind: 'ask',
62
+ candidates: [
63
+ candidate({ entryId: 'QUE-1', name: 'lifted', score: 0.3, boosted: true }),
64
+ candidate({ entryId: 'QUE-2', name: 'raw', score: 0.95 }),
65
+ ],
66
+ scanTruncated: false,
67
+ };
68
+ expect(highestVerdictScore(verdict)).toBe(0.95);
69
+ });
67
70
  it('is 0 for a create verdict', () => {
68
71
  expect(highestVerdictScore(create)).toBe(0);
69
72
  });
@@ -1 +1 @@
1
- {"version":3,"file":"captureGrounding.test.js","sourceRoot":"","sources":["../../src/lib/captureGrounding.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"captureGrounding.test.js","sourceRoot":"","sources":["../../src/lib/captureGrounding.test.ts"],"names":[],"mappings":"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"}
@@ -82,7 +82,7 @@ export function registerEntryCommands(program) {
82
82
  // TASK-382 (WP-770 K4): ticking a Done-when item records who/when and mints no version.
83
83
  entryCmd
84
84
  .command('tick <entry-id> <item-id>')
85
- .description('Tick a Done-when item — records who and when, no new version (the role that owns the record; the Team Lead only when it has no owner)')
85
+ .description('Tick a Done-when item — records who and when, not an edit (the role that owns the record; the Team Lead only when it has no owner)')
86
86
  .option('--undo', 'Untick the item instead')
87
87
  .action(async (entryId, itemId, opts) => {
88
88
  await runEntryTick({ entryId, itemId, undo: opts.undo });
@@ -1 +1 @@
1
- {"version":3,"file":"registerEntryCommands.js","sourceRoot":"","sources":["../src/registerEntryCommands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registerEntryCommands.js","sourceRoot":"","sources":["../src/registerEntryCommands.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@productbrain/cli",
3
- "version": "0.1.0-beta.9000",
3
+ "version": "0.1.0-beta.9001",
4
4
  "description": "Product Brain — Chain knowledge and write-back CLI",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,38 +0,0 @@
1
- import { type CaptureVerdict } from './captureGrounding.js';
2
- export interface VersionCaptureParams {
3
- groundingResult: Extract<CaptureVerdict, {
4
- kind: 'version';
5
- }>;
6
- /** A REAL title only — omit when the capture has none. Never a placeholder (kernel/capture/
7
- * versionWrite.ts's own contract: passing one would rename the target to it). */
8
- name?: string;
9
- prose: string;
10
- /** --field key=value, already parsed. */
11
- fields?: Record<string, unknown>;
12
- sourceRef?: string;
13
- sourceExcerpt?: string;
14
- sessionId: string;
15
- skipGrounding: boolean;
16
- groundingStart: number;
17
- groundingElapsed: number;
18
- }
19
- export interface VersionCaptureResult {
20
- entryId: string;
21
- name: string;
22
- warnings: string[];
23
- normalization: {
24
- remapped: Record<string, string>;
25
- rejected: string[];
26
- accepted: string[];
27
- } | null | undefined;
28
- }
29
- /**
30
- * Runs the version-verdict write. Throws a CLIError on refusal (delegation / organisational-
31
- * authority — returned, not thrown, by the door itself; requirePermission's ownership gate
32
- * throws directly) or NOT_FOUND (an unresolvable target, e.g. deleted/cross-workspace — fails
33
- * closed, no fallback create; a re-run re-decides against the current candidate pool). No
34
- * proposal is created on refusal — the relation-consent proposal system this comment used to
35
- * name (propose_change) is deleted outright (WP-776 S2a, DEC-1771), not merely absent here.
36
- */
37
- export declare function runVersionCapture(params: VersionCaptureParams): Promise<VersionCaptureResult>;
38
- //# sourceMappingURL=captureVersion.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"captureVersion.d.ts","sourceRoot":"","sources":["../../src/lib/captureVersion.ts"],"names":[],"mappings":"AAcA,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEjF,MAAM,WAAW,oBAAoB;IACnC,eAAe,EAAE,OAAO,CAAC,cAAc,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IAC9D;sFACkF;IAClF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI,GAAG,SAAS,CAAC;CAChH;AAgCD;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA0CnG"}
@@ -1,81 +0,0 @@
1
- import { kernelCallWithSession } from './client.js';
2
- import { CLIError, ErrorCode } from './errors.js';
3
- import { buildVersionPatch, readVersionWriteOutcome } from './versionWrite.js';
4
- import { highestVerdictScore } from './captureGrounding.js';
5
- /** The TARGET entry's collection prose key — never the CAPTURE's chosen collection (decide()
6
- * matches across every collection, so the target can be in a different one). chain.updateEntry
7
- * merges `data` verbatim; it does not remap a write onto the target's real field the way
8
- * createEntry's own TEN-1258 remap does for a brand-new entry — this resolution is the only
9
- * thing standing between a captured prose body and the wrong field. Fail-open to 'description'
10
- * only when the fetch itself fails, same posture as capture.ts's own WHY-contract fetch. */
11
- async function resolveTargetProseKey(collectionSlug) {
12
- try {
13
- const contract = await kernelCallWithSession('chain.getCollectionFields', { slug: collectionSlug });
14
- return contract?.descriptionFieldKey ?? 'description';
15
- }
16
- catch {
17
- return 'description';
18
- }
19
- }
20
- /** TASK-381: a capture that becomes a new version of an accepted entry carries its own text as the
21
- * Change reason (what the capturer wrote is why the entry changes). Empty text and no fields means
22
- * there is no change to justify, so nothing is sent. */
23
- function captureChangeReason(prose, fields) {
24
- const text = prose.trim() || Object.keys(fields ?? {}).map((k) => `${k} set`).join(', ');
25
- return text ? { changeReason: `Captured: ${text.slice(0, 300)}` } : {};
26
- }
27
- function refusalGuidance(refusal) {
28
- return refusal.requiredAction ?? 'Route this change to the accountable role, or run `pb get <id>` to see the entry\'s current state.';
29
- }
30
- /**
31
- * Runs the version-verdict write. Throws a CLIError on refusal (delegation / organisational-
32
- * authority — returned, not thrown, by the door itself; requirePermission's ownership gate
33
- * throws directly) or NOT_FOUND (an unresolvable target, e.g. deleted/cross-workspace — fails
34
- * closed, no fallback create; a re-run re-decides against the current candidate pool). No
35
- * proposal is created on refusal — the relation-consent proposal system this comment used to
36
- * name (propose_change) is deleted outright (WP-776 S2a, DEC-1771), not merely absent here.
37
- */
38
- export async function runVersionCapture(params) {
39
- const { groundingResult, name, prose, fields, sourceRef, sourceExcerpt, sessionId, skipGrounding, groundingStart, groundingElapsed } = params;
40
- const targetProseKey = await resolveTargetProseKey(groundingResult.collectionSlug);
41
- const patch = buildVersionPatch({ capture: { name, prose, fields }, targetProseKey });
42
- const rawResult = await kernelCallWithSession('chain.updateEntry', {
43
- entryId: groundingResult.entryId,
44
- ...patch,
45
- autoPublish: true,
46
- changeNote: 'Captured as a new version via CLI',
47
- ...captureChangeReason(prose, fields),
48
- changedBy: `agent:${sessionId}`,
49
- ...(sourceRef ? { sourceRef } : {}),
50
- ...(sourceExcerpt ? { sourceExcerpt } : {}),
51
- });
52
- // WP-319 S3 / STD-155: same observability this verdict would have fed via the create path's
53
- // own recordGroundingOutcome call — fires regardless of write outcome, matching that call's
54
- // own best-effort, never-blocks posture.
55
- if (!skipGrounding && groundingStart > 0) {
56
- void kernelCallWithSession('chain.recordGroundingOutcome', {
57
- surface: 'cli',
58
- promptShown: false,
59
- highestRatio: highestVerdictScore(groundingResult),
60
- hadGovernance: false,
61
- grounding_ms: groundingElapsed,
62
- }, { retryOnRateLimit: false }).catch(() => undefined);
63
- }
64
- const outcome = readVersionWriteOutcome(rawResult);
65
- if (!outcome.ok) {
66
- const authorityRefusal = outcome.refusal.category === 'auth';
67
- throw new CLIError(outcome.refusal.reason ?? `Version write on ${groundingResult.entryId} was refused.`, {
68
- code: authorityRefusal ? ErrorCode.AUTH_DENIED : ErrorCode.VALIDATION_FAILED,
69
- category: authorityRefusal ? 'auth' : 'validation',
70
- guidance: refusalGuidance(outcome.refusal),
71
- });
72
- }
73
- const typed = rawResult;
74
- return {
75
- entryId: groundingResult.entryId,
76
- name: groundingResult.name,
77
- warnings: typed.warnings ?? [],
78
- normalization: typed.normalization,
79
- };
80
- }
81
- //# sourceMappingURL=captureVersion.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"captureVersion.js","sourceRoot":"","sources":["../../src/lib/captureVersion.ts"],"names":[],"mappings":"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"}
@@ -1,65 +0,0 @@
1
- /**
2
- * WP-755 C2 (TASK-216, DEC-1717) — the version-write mapping, shared across all three
3
- * connectors via the existing embedded-copy generator (kernel/quality/spineVerdictRead.ts's
4
- * own precedent — connectors never import kernel/ at runtime; generated copies do. Run
5
- * `npm run mcp:embedded-copies` after editing this file). Pure: no Convex, no DB, no
6
- * inference. The caller resolves the TARGET entry's prose field key (glossary→'canonical',
7
- * assumptions→'belief', else 'description'/'body' —
8
- * convex/lib/proseField.ts's resolveProseFieldKey, or each connector's already-fetched
9
- * collection profile) and supplies exactly the fields it would have sent to create. Nothing
10
- * here infers a schema default, a date, or a full-collection replacement — a version write
11
- * only ever touches what the capture explicitly named (contrast the reuse-draft/commit-retry
12
- * UPDATE path, which legitimately does a full replacement because it owns the whole draft;
13
- * a version write edits someone else's already-accepted entry and must not wipe the rest).
14
- */
15
- export interface VersionWriteCapture {
16
- /** The capture's own explicit title, when the caller has a REAL one — omit (undefined)
17
- * otherwise. Never pass a placeholder ('Untitled', ''): a version write must not rename
18
- * the target to a placeholder just because the capture UI had no title yet. */
19
- name?: string;
20
- /** The capture's prose body, written to the TARGET's own prose field. */
21
- prose: string;
22
- /** Explicit structured fields the caller parsed (CLI's --field key=value / MCP's `data`
23
- * passthrough) — never schema defaults, never inferred dates. */
24
- fields?: Record<string, unknown>;
25
- }
26
- export interface VersionWritePatch {
27
- name?: string;
28
- data: Record<string, unknown>;
29
- }
30
- /** Build the `{name?, data}` patch chain.updateEntry / entries.update expects. An empty (or
31
- * whitespace-only) prose body is never written — a capture with no real body text must not
32
- * blank out the target's existing prose field. */
33
- export declare function buildVersionPatch(params: {
34
- capture: VersionWriteCapture;
35
- targetProseKey: string;
36
- }): VersionWritePatch;
37
- /** The update door's structured refusal shape — the union of every branch that can produce
38
- * one (delegation, organisational-authority, coherency). Fields are all optional because no
39
- * single branch sets every one; render only what is present, never assume a shape. */
40
- export interface VersionWriteRefusal {
41
- code?: string;
42
- reason?: string;
43
- category?: string;
44
- requiredAction?: string;
45
- disposition?: string;
46
- overridable?: boolean;
47
- mode?: string;
48
- routes?: Record<string, unknown>;
49
- }
50
- export type VersionWriteOutcome = {
51
- ok: true;
52
- id: string;
53
- } | {
54
- ok: false;
55
- refusal: VersionWriteRefusal;
56
- };
57
- /**
58
- * Read chain.updateEntry's (or api.entries.update's) return. A refusal is signalled by
59
- * RETURN VALUE (`{outcome:'refused', refusal}`) for delegation and organisational-authority
60
- * denials — NOT always a throw (only the ownership/stratum gate, requirePermission, throws).
61
- * A caller that reads `.id` without checking `outcome` first silently renders
62
- * "Saved as a new version of undefined" on a refused write that returned 200.
63
- */
64
- export declare function readVersionWriteOutcome(result: unknown): VersionWriteOutcome;
65
- //# sourceMappingURL=versionWrite.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"versionWrite.d.ts","sourceRoot":"","sources":["../../src/lib/versionWrite.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,mBAAmB;IACnC;;oFAEgF;IAChF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;IACd;sEACkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,iBAAiB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9B;AAED;;mDAEmD;AACnD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACzC,OAAO,EAAE,mBAAmB,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;CACvB,GAAG,iBAAiB,CAKpB;AAED;;uFAEuF;AACvF,MAAM,WAAW,mBAAmB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,MAAM,mBAAmB,GAC5B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACxB;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAE/C;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,OAAO,GAAG,mBAAmB,CAW5E"}
@@ -1,32 +0,0 @@
1
- // GENERATED by scripts/generate-mcp-embedded-copies.mjs from kernel/capture/versionWrite.ts.
2
- // DO NOT EDIT. Run `npm run mcp:embedded-copies` to regenerate.
3
- // Local runtime copy for the isolated connector build.
4
- /** Build the `{name?, data}` patch chain.updateEntry / entries.update expects. An empty (or
5
- * whitespace-only) prose body is never written — a capture with no real body text must not
6
- * blank out the target's existing prose field. */
7
- export function buildVersionPatch(params) {
8
- const { capture, targetProseKey } = params;
9
- const data = { ...(capture.fields ?? {}) };
10
- if (capture.prose.trim())
11
- data[targetProseKey] = capture.prose;
12
- return capture.name ? { name: capture.name, data } : { data };
13
- }
14
- /**
15
- * Read chain.updateEntry's (or api.entries.update's) return. A refusal is signalled by
16
- * RETURN VALUE (`{outcome:'refused', refusal}`) for delegation and organisational-authority
17
- * denials — NOT always a throw (only the ownership/stratum gate, requirePermission, throws).
18
- * A caller that reads `.id` without checking `outcome` first silently renders
19
- * "Saved as a new version of undefined" on a refused write that returned 200.
20
- */
21
- export function readVersionWriteOutcome(result) {
22
- if (result && typeof result === 'object' && result.outcome === 'refused') {
23
- const rawRefusal = result.refusal;
24
- const refusal = rawRefusal && typeof rawRefusal === 'object' ? rawRefusal : { reason: 'The workspace refused this update.' };
25
- return { ok: false, refusal };
26
- }
27
- if (result && typeof result === 'object' && typeof result.id === 'string') {
28
- return { ok: true, id: result.id };
29
- }
30
- return { ok: false, refusal: { reason: 'The workspace refused this update.' } };
31
- }
32
- //# sourceMappingURL=versionWrite.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"versionWrite.js","sourceRoot":"","sources":["../../src/lib/versionWrite.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,gEAAgE;AAChE,uDAAuD;AAkCvD;;mDAEmD;AACnD,MAAM,UAAU,iBAAiB,CAAC,MAGjC;IACA,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;IAC3C,MAAM,IAAI,GAA4B,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;IACpE,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,IAAI,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;IAC/D,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;AAC/D,CAAC;AAoBD;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAe;IACtD,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAK,MAAgC,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACrG,MAAM,UAAU,GAAI,MAAgC,CAAC,OAAO,CAAC;QAC7D,MAAM,OAAO,GACZ,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAE,UAAkC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,oCAAoC,EAAE,CAAC;QACvI,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC/B,CAAC;IACD,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAQ,MAA2B,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;QACjG,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAG,MAAyB,CAAC,EAAE,EAAE,CAAC;IACxD,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,oCAAoC,EAAE,EAAE,CAAC;AACjF,CAAC"}