zelari-code 0.7.5 → 0.7.8

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 (61) hide show
  1. package/bin/zelari-code.js +1 -1
  2. package/dist/agents/councilApi.js +7 -7
  3. package/dist/agents/councilApi.js.map +1 -1
  4. package/dist/agents/councilDirectives.js +3 -3
  5. package/dist/agents/promoteMember.js +2 -2
  6. package/dist/agents/roles.js +32 -50
  7. package/dist/agents/roles.js.map +1 -1
  8. package/dist/agents/skills/builtin/debugging.js +4 -4
  9. package/dist/agents/skills/builtin/debugging.js.map +1 -1
  10. package/dist/agents/skills/builtin/docs.js +13 -23
  11. package/dist/agents/skills/builtin/docs.js.map +1 -1
  12. package/dist/agents/skills/builtin/git-ops.js +3 -3
  13. package/dist/agents/skills/builtin/git-ops.js.map +1 -1
  14. package/dist/agents/skills/builtin/planning.js +4 -4
  15. package/dist/agents/skills/builtin/planning.js.map +1 -1
  16. package/dist/agents/skills/builtin/refactoring.js +3 -3
  17. package/dist/agents/skills/builtin/refactoring.js.map +1 -1
  18. package/dist/agents/skills/builtin/review.js +9 -9
  19. package/dist/agents/skills/builtin/review.js.map +1 -1
  20. package/dist/agents/skills/builtin/testing.js +3 -3
  21. package/dist/agents/skills/builtin/testing.js.map +1 -1
  22. package/dist/agents/tools.js +9 -2
  23. package/dist/agents/tools.js.map +1 -1
  24. package/dist/cli/app.js +2 -1
  25. package/dist/cli/app.js.map +1 -1
  26. package/dist/cli/components/CollapsibleToolOutput.js +26 -8
  27. package/dist/cli/components/CollapsibleToolOutput.js.map +1 -1
  28. package/dist/cli/components/Header.js +18 -6
  29. package/dist/cli/components/Header.js.map +1 -1
  30. package/dist/cli/components/Sidebar.js +31 -33
  31. package/dist/cli/components/Sidebar.js.map +1 -1
  32. package/dist/cli/components/SplashScreen.js +158 -0
  33. package/dist/cli/components/SplashScreen.js.map +1 -0
  34. package/dist/cli/councilDispatcher.js +20 -0
  35. package/dist/cli/councilDispatcher.js.map +1 -1
  36. package/dist/cli/main.bundled.js +983 -171
  37. package/dist/cli/main.bundled.js.map +4 -4
  38. package/dist/cli/main.js +9 -2
  39. package/dist/cli/main.js.map +1 -1
  40. package/dist/cli/mcp/mcpClient.js +1 -1
  41. package/dist/cli/oauthCallbackServer.js +207 -0
  42. package/dist/cli/oauthCallbackServer.js.map +1 -0
  43. package/dist/cli/wizard/index.js +1 -1
  44. package/dist/cli/wizard/index.js.map +1 -1
  45. package/dist/cli/workspace/completeDesign.js +128 -0
  46. package/dist/cli/workspace/completeDesign.js.map +1 -0
  47. package/dist/cli/workspace/postCouncilHook.js +146 -20
  48. package/dist/cli/workspace/postCouncilHook.js.map +1 -1
  49. package/dist/cli/workspace/stubs.js +231 -95
  50. package/dist/cli/workspace/stubs.js.map +1 -1
  51. package/dist/main/core/AgentHarness.js +7 -36
  52. package/dist/main/core/AgentHarness.js.map +1 -1
  53. package/dist/main/core/tools/builtin/_walk.js +129 -0
  54. package/dist/main/core/tools/builtin/_walk.js.map +1 -0
  55. package/dist/main/core/tools/builtin/diff.js +477 -0
  56. package/dist/main/core/tools/builtin/diff.js.map +1 -0
  57. package/dist/main/core/tools/builtin/listFiles.js +5 -43
  58. package/dist/main/core/tools/builtin/listFiles.js.map +1 -1
  59. package/dist/main/core/tools/builtin/search.js +120 -28
  60. package/dist/main/core/tools/builtin/search.js.map +1 -1
  61. package/package.json +2 -2
@@ -0,0 +1,158 @@
1
+ /**
2
+ * SplashScreen — one-shot startup splash (v0.7.8).
3
+ *
4
+ * Shows the N-THEM / Zelari emblem (downscaled from the original 400-col
5
+ * ASCII art) centered in the terminal for ~2 seconds — or until any key is
6
+ * pressed — then unmounts and gives way to the normal App.
7
+ *
8
+ * Sizing: two pre-rendered variants (64 and 44 columns wide) are embedded
9
+ * as constants; `pickSplashArt` chooses the largest one that fits the
10
+ * current terminal, or returns null when even the small one doesn't fit
11
+ * (the splash is then skipped entirely).
12
+ *
13
+ * Skipped when stdout is not a TTY (pipes, CI) or `ZELARI_NO_SPLASH=1`.
14
+ */
15
+ // NOTE: no import from '../main.js' here — main.ts executes `main()` at
16
+ // module scope, so importing it from a component (or a unit test that
17
+ // imports this component) would boot the whole CLI. The version string is
18
+ // passed in as a prop instead.
19
+ import React, { useEffect, useState } from 'react';
20
+ import { Box, Text, useInput, useStdin } from 'ink';
21
+ /** How long the splash stays up before auto-dismissing (ms). */
22
+ export const SPLASH_DURATION_MS = 2000;
23
+ // Downscaled from the source emblem (142×79) by block-averaging glyph
24
+ // density — see docs/plans/2026-07-03-cli-splash-screen.md.
25
+ const EMBLEM_LARGE = ` =%@*-
26
+ =%@@@@@#:
27
+ *%%%%%%@@%-
28
+ :#%%%%%%%%%@@*
29
+ :*%%%%%%%%%%%%%@%*.
30
+ =%%%%%%%%%%%%%%%%@@%.
31
+ =%%%%%%%%%%%%%%%%%%%@%-
32
+ *%%%%%%%%%%%%%%%%%%%%%@@=
33
+ .#%%%%%%%%@@@@@@@@%%%%%%@@@+
34
+ :#%%%%%%@@@@@@@@@@@@@@@%%%%@@+
35
+ -%%%%%@@@@@@@@@@@@@@@@@@@@@%%@@#.
36
+ -%%%%%@@@@@@@@@@@@@@@@@@@@@@@%%@@%:
37
+ =%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@%.
38
+ +%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@%:
39
+ =%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-
40
+ -%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%:
41
+ :%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
42
+ #%%%%%@@@@@@@@@@@@@@@%--#%@@@@@@@@@@@@@%%@@@=
43
+ #@@%%%%@@@@@@@@@@@@@@%: -*@@@@@@@@@@@%%@@@@=
44
+ #@@%%%%@@@@@@@@@@@@@%: .. -#@@@@@@@%%%%@@@=
45
+ +@@@%%%@@@@@@@@@@@@%: :#= =%@@@@%%%@@@%-
46
+ =@@@@%%%@@@@@@@@@@%: -%%*: +%@@%%@@@#
47
+ +%@@@@%%@@@@@@@@@%: -%@@%*=.:+#@@@@#:
48
+ .+*@@@@@@@@@%%%@@@@@@%: -%@@@@@#- +@@@@@@*=
49
+ =*%%%%@@@@@@@@@@@%%@@@@%: -#@@@@@@@*: :*@@@@@@%+=
50
+ -*%%%%%%%%%%@@@@@@@@@@@@@@@: -%@@@@@@@@#- -#@@@@@@@@*
51
+ #%%%%%%%%%%%%%@@@@@@@@@@@@@: -#@@@@@%+-::. *@@@@@@@@=
52
+ =%%%%%%%%%%%%%%%@@@@@@@@@@@@: :*+--=%#. :+++++*@@@@@@@@%
53
+ #@%%%%%%%%%%%%%@@@@@@@@@@@@%: .. - -## *@@@@@@@@@@@@@@=
54
+ :@@%%%%%%%%%%%%@@@@@@@@@@@@@%: .**= *%= :%@@@@@@@@@@@@@%
55
+ #@@@%%%%%%%%%%%@@@@@@@@@@@@@@- =#@@%- :**: =%@@@@@@@@@@@@@+
56
+ =@@@@@%%%@@%%%%@@@@@@@@@@@@@@@@@@@@@@%- :: .-#@@@@@@@@@@@@@%.
57
+ :@@@@@@%%@@@%%@@@@@@@@@@@@@@@@@@@@@@@@@%==*%%@@@@@@@@@@@@@@@@#
58
+ *@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:
59
+ :@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+
60
+ =##########*######**##**#*********##**#*#######################*`;
61
+ const EMBLEM_SMALL = ` =%%*:
62
+ :#%%@@@+
63
+ =%%%%%%%@#.
64
+ .*%%%%%%%%%@%-
65
+ =%%%%%%%%%%%%%@*.
66
+ +%%%%%%@@@@@%%%%@%:
67
+ *%%%%@@@@@@@@@@@%%@%:
68
+ *%%%@@@@@@@@@@@@@@@%@%-
69
+ :#%%@@@@@@@@@@@@@@@@@@@@@+
70
+ :%%%@@@@@@@@@@@@@@@@@@@@@@@+
71
+ #%%@@@@@@@@@@@@@@@@@@@@@@@@@-
72
+ +%%@@@@@@@@@@@@#@@@@@@@@@@@@@%:
73
+ %%%%@@@@@@@@@@%::*@@@@@@@@@%@@=
74
+ -%@%%@@@@@@@@@%:.::*@@@@@%%@@*.
75
+ :%@@%%@@@@@@@%.:%#::*@@%@@@-
76
+ :#@@@%@@@@@@%.:%@%+.-#@@@=
77
+ :+#@@@@@@@%@@@@%.:%@@@%=.+@@@%*-
78
+ .*#%%%%%%@@@@@@@@@@.:%@@@@@*:.+%@@@@#-
79
+ +%%%%%%%%%%@@@@@@@@::##*%* :----%@@@@%.
80
+ .@%%%%%%%%%@@@@@@@@@:.-..-#=:%@@@@@@@@@+
81
+ *@@%%%%%%%%@@@@@@@@@: =#+ +#.-@@@@@@@@@@.
82
+ -@@@%%%%%%%@@@@@@@@@@#%@@@- -.:*@@@@@@@@@*
83
+ %@@@@%@@%@@@@@@@@@@@@@@@@@%**%@@@@@@@@@@@@:
84
+ =@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*`;
85
+ /** Rows the footer (wordmark + version + hint + margins) needs below the art. */
86
+ const FOOTER_ROWS = 5;
87
+ function measure(art) {
88
+ const lines = art.split('\n');
89
+ return {
90
+ art,
91
+ width: Math.max(...lines.map((l) => l.length)),
92
+ height: lines.length,
93
+ };
94
+ }
95
+ const VARIANTS = [measure(EMBLEM_LARGE), measure(EMBLEM_SMALL)];
96
+ /**
97
+ * Pure helper: pick the largest emblem variant that fits `columns`×`rows`
98
+ * (leaving room for the wordmark footer), or null when none fits.
99
+ */
100
+ export function pickSplashArt(columns, rows) {
101
+ for (const v of VARIANTS) {
102
+ if (v.width <= columns - 2 && v.height + FOOTER_ROWS <= rows)
103
+ return v;
104
+ }
105
+ return null;
106
+ }
107
+ /**
108
+ * Pure helper: should the splash be shown at all?
109
+ * Skipped for non-TTY stdout (pipes/CI), when ZELARI_NO_SPLASH=1, or when
110
+ * the terminal is too small for even the small variant.
111
+ */
112
+ export function shouldShowSplash(opts) {
113
+ if (!opts.isTTY)
114
+ return false;
115
+ if (opts.env['ZELARI_NO_SPLASH'] === '1')
116
+ return false;
117
+ return pickSplashArt(opts.columns, opts.rows) !== null;
118
+ }
119
+ function Splash({ onDone, version }) {
120
+ const { isRawModeSupported } = useStdin();
121
+ const columns = process.stdout.columns ?? 80;
122
+ const rows = process.stdout.rows ?? 24;
123
+ const picked = pickSplashArt(columns, rows);
124
+ useEffect(() => {
125
+ const t = setTimeout(onDone, SPLASH_DURATION_MS);
126
+ return () => clearTimeout(t);
127
+ }, [onDone]);
128
+ // Any key skips the splash. Guarded: useInput throws without raw mode.
129
+ useInput(() => {
130
+ onDone();
131
+ }, { isActive: isRawModeSupported === true });
132
+ if (!picked)
133
+ return null;
134
+ return (React.createElement(Box, { flexDirection: "column", alignItems: "center", justifyContent: "center", width: columns, height: rows - 1 },
135
+ React.createElement(Text, { color: "cyan" }, picked.art),
136
+ React.createElement(Box, { marginTop: 1 },
137
+ React.createElement(Text, { bold: true, color: "white" }, 'Z E L A R I C O D E')),
138
+ React.createElement(Text, { dimColor: true }, `${version ? `v${version} — ` : ''}N-THEM Studio`),
139
+ React.createElement(Text, { dimColor: true, italic: true }, "press any key to skip")));
140
+ }
141
+ /**
142
+ * SplashGate — renders the splash first, then swaps in `children` (the
143
+ * real App). The App therefore mounts only after the splash dismisses,
144
+ * so its <Static> banner and raw-mode input never fight the splash.
145
+ */
146
+ export function SplashGate({ children, version, }) {
147
+ const [show, setShow] = useState(() => shouldShowSplash({
148
+ isTTY: process.stdout.isTTY === true,
149
+ env: process.env,
150
+ columns: process.stdout.columns ?? 80,
151
+ rows: process.stdout.rows ?? 24,
152
+ }));
153
+ if (show) {
154
+ return React.createElement(Splash, { onDone: () => setShow(false), version: version });
155
+ }
156
+ return React.createElement(React.Fragment, null, children);
157
+ }
158
+ //# sourceMappingURL=SplashScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SplashScreen.js","sourceRoot":"","sources":["../../../src/cli/components/SplashScreen.tsx"],"names":[],"mappings":"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"}
@@ -59,6 +59,26 @@ export async function* dispatchCouncil(userMessage, options) {
59
59
  maxToolCallsPerTurn: options.maxToolCallsPerTurn,
60
60
  feedbackStore: options.feedbackStore,
61
61
  };
62
+ // Bug A fix (v0.7.5): also register workspace stubs in the global static
63
+ // (setWorkspaceStubs from @zelari/core/skills) so that getAllTools() —
64
+ // called by buildSystemPrompt when constructing the AVAILABLE TOOLS block —
65
+ // exposes them to the model. Without this, the per-call ToolRegistry can
66
+ // execute workspace tool calls, but the model never sees the names in its
67
+ // system prompt and either guesses them or skips them.
68
+ //
69
+ // Mirrors the pattern in src/cli/runHeadless.ts:141-152 and
70
+ // src/cli/hooks/useChatTurn.ts:572-586. Dynamic import avoids the load-
71
+ // order cycle that a static import would create (councilDispatcher is
72
+ // imported by hooks/runHeadless, and @zelari/core/skills is consumed by
73
+ // those same modules — see Gotcha #9 of zelari-code-headless-driver).
74
+ if (!options.disableWorkspaceTools) {
75
+ const { setWorkspaceStubs } = await import('@zelari/core/skills');
76
+ const { createWorkspaceContext: buildCtx, createWorkspaceStubs: buildStubs } = await import('./workspace/stubs.js');
77
+ const wsCtx = options.workspaceRoot
78
+ ? buildCtx(options.workspaceRoot)
79
+ : buildCtx();
80
+ setWorkspaceStubs(buildStubs(wsCtx));
81
+ }
62
82
  yield* runCouncilPure(userMessage, config, {});
63
83
  }
64
84
  //# sourceMappingURL=councilDispatcher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"councilDispatcher.js","sourceRoot":"","sources":["../../src/cli/councilDispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,cAAc,GAEf,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAoD1E,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,eAAe,CACpC,WAAmB,EACnB,OAA+B;IAE/B,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,oBAAoB,CAC5B,oFAAoF,CACrF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,oBAAoB,CAAC,0DAA0D,CAAC,CAAC;IAC7F,CAAC;IAED,MAAM,MAAM,GAAsB;QAChC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,mBAAmB;QACjD,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,CAAC;QACrC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,KAAK;QACvC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;QACpC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,EAAE;QAChD,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,gEAAgE;QAChE,mEAAmE;QACnE,4CAA4C;QAC5C,KAAK,EAAE,OAAO,CAAC,KAAK;eACf,CAAC,OAAO,CAAC,qBAAqB;gBAC/B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,2BAA2B,CAAC,sBAAsB,EAAE,CAAC,CAAC;QAC5D,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;QAChD,aAAa,EAAE,OAAO,CAAC,aAAa;KACrC,CAAC;IAEF,KAAK,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"councilDispatcher.js","sourceRoot":"","sources":["../../src/cli/councilDispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,cAAc,GAEf,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AA4D1E,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,eAAe,CACpC,WAAmB,EACnB,OAA+B;IAE/B,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,oBAAoB,CAC5B,oFAAoF,CACrF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,oBAAoB,CAAC,0DAA0D,CAAC,CAAC;IAC7F,CAAC;IAED,MAAM,MAAM,GAAsB;QAChC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,mBAAmB;QACjD,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,CAAC;QACrC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,KAAK;QACvC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;QACpC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,EAAE;QAChD,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,gEAAgE;QAChE,mEAAmE;QACnE,4CAA4C;QAC5C,KAAK,EAAE,OAAO,CAAC,KAAK;eACf,CAAC,OAAO,CAAC,qBAAqB;gBAC/B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,2BAA2B,CAAC,sBAAsB,EAAE,CAAC,CAAC;QAC5D,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;QAChD,aAAa,EAAE,OAAO,CAAC,aAAa;KACrC,CAAC;IAEF,yEAAyE;IACzE,uEAAuE;IACvE,4EAA4E;IAC5E,yEAAyE;IACzE,0EAA0E;IAC1E,uDAAuD;IACvD,EAAE;IACF,4DAA4D;IAC5D,wEAAwE;IACxE,sEAAsE;IACtE,wEAAwE;IACxE,sEAAsE;IACtE,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;QACnC,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAClE,MAAM,EAAE,sBAAsB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACpH,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa;YACjC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC;YACjC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACf,iBAAiB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;AACjD,CAAC"}