reviewflow 3.28.0 → 3.29.0

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 (123) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/dashboard/index.html +61 -0
  3. package/dist/dashboard/modules/emberChat.d.ts +77 -0
  4. package/dist/dashboard/modules/emberChat.d.ts.map +1 -0
  5. package/dist/dashboard/modules/emberChat.js +175 -0
  6. package/dist/dashboard/modules/emberChat.js.map +1 -0
  7. package/dist/dashboard/styles.css +85 -0
  8. package/dist/main/routes.d.ts.map +1 -1
  9. package/dist/main/routes.js +32 -0
  10. package/dist/main/routes.js.map +1 -1
  11. package/dist/modules/ember-chat/entities/emberMessage/emberMessage.guard.d.ts +4 -0
  12. package/dist/modules/ember-chat/entities/emberMessage/emberMessage.guard.d.ts.map +1 -0
  13. package/dist/modules/ember-chat/entities/emberMessage/emberMessage.guard.js +4 -0
  14. package/dist/modules/ember-chat/entities/emberMessage/emberMessage.guard.js.map +1 -0
  15. package/dist/modules/ember-chat/entities/emberMessage/emberMessage.schema.d.ts +6 -0
  16. package/dist/modules/ember-chat/entities/emberMessage/emberMessage.schema.d.ts.map +1 -0
  17. package/dist/modules/ember-chat/entities/emberMessage/emberMessage.schema.js +5 -0
  18. package/dist/modules/ember-chat/entities/emberMessage/emberMessage.schema.js.map +1 -0
  19. package/dist/modules/ember-chat/entities/emberSession/emberSession.schema.d.ts +7 -0
  20. package/dist/modules/ember-chat/entities/emberSession/emberSession.schema.d.ts.map +1 -0
  21. package/dist/modules/ember-chat/entities/emberSession/emberSession.schema.js +3 -0
  22. package/dist/modules/ember-chat/entities/emberSession/emberSession.schema.js.map +1 -0
  23. package/dist/modules/ember-chat/entities/emberSession/emberSessionState.d.ts +13 -0
  24. package/dist/modules/ember-chat/entities/emberSession/emberSessionState.d.ts.map +1 -0
  25. package/dist/modules/ember-chat/entities/emberSession/emberSessionState.js +35 -0
  26. package/dist/modules/ember-chat/entities/emberSession/emberSessionState.js.map +1 -0
  27. package/dist/modules/ember-chat/entities/emberSession/emberSessionTransport.gateway.d.ts +26 -0
  28. package/dist/modules/ember-chat/entities/emberSession/emberSessionTransport.gateway.d.ts.map +1 -0
  29. package/dist/modules/ember-chat/entities/emberSession/emberSessionTransport.gateway.js +2 -0
  30. package/dist/modules/ember-chat/entities/emberSession/emberSessionTransport.gateway.js.map +1 -0
  31. package/dist/modules/ember-chat/entities/emberTool/emberTool.gateway.d.ts +11 -0
  32. package/dist/modules/ember-chat/entities/emberTool/emberTool.gateway.d.ts.map +1 -0
  33. package/dist/modules/ember-chat/entities/emberTool/emberTool.gateway.js +2 -0
  34. package/dist/modules/ember-chat/entities/emberTool/emberTool.gateway.js.map +1 -0
  35. package/dist/modules/ember-chat/interface-adapters/controllers/http/emberChat.routes.d.ts +15 -0
  36. package/dist/modules/ember-chat/interface-adapters/controllers/http/emberChat.routes.d.ts.map +1 -0
  37. package/dist/modules/ember-chat/interface-adapters/controllers/http/emberChat.routes.js +61 -0
  38. package/dist/modules/ember-chat/interface-adapters/controllers/http/emberChat.routes.js.map +1 -0
  39. package/dist/modules/ember-chat/interface-adapters/gateways/emberReadData.composite.gateway.d.ts +24 -0
  40. package/dist/modules/ember-chat/interface-adapters/gateways/emberReadData.composite.gateway.d.ts.map +1 -0
  41. package/dist/modules/ember-chat/interface-adapters/gateways/emberReadData.composite.gateway.js +19 -0
  42. package/dist/modules/ember-chat/interface-adapters/gateways/emberReadData.composite.gateway.js.map +1 -0
  43. package/dist/modules/ember-chat/interface-adapters/gateways/emberSessionTransport.claude.gateway.d.ts +13 -0
  44. package/dist/modules/ember-chat/interface-adapters/gateways/emberSessionTransport.claude.gateway.d.ts.map +1 -0
  45. package/dist/modules/ember-chat/interface-adapters/gateways/emberSessionTransport.claude.gateway.js +130 -0
  46. package/dist/modules/ember-chat/interface-adapters/gateways/emberSessionTransport.claude.gateway.js.map +1 -0
  47. package/dist/modules/ember-chat/interface-adapters/gateways/emberStreamJson.parser.d.ts +18 -0
  48. package/dist/modules/ember-chat/interface-adapters/gateways/emberStreamJson.parser.d.ts.map +1 -0
  49. package/dist/modules/ember-chat/interface-adapters/gateways/emberStreamJson.parser.js +33 -0
  50. package/dist/modules/ember-chat/interface-adapters/gateways/emberStreamJson.parser.js.map +1 -0
  51. package/dist/modules/ember-chat/interface-adapters/presenters/emberStatus.presenter.d.ts +20 -0
  52. package/dist/modules/ember-chat/interface-adapters/presenters/emberStatus.presenter.d.ts.map +1 -0
  53. package/dist/modules/ember-chat/interface-adapters/presenters/emberStatus.presenter.js +28 -0
  54. package/dist/modules/ember-chat/interface-adapters/presenters/emberStatus.presenter.js.map +1 -0
  55. package/dist/modules/ember-chat/services/emberSystemPrompt.d.ts +12 -0
  56. package/dist/modules/ember-chat/services/emberSystemPrompt.d.ts.map +1 -0
  57. package/dist/modules/ember-chat/services/emberSystemPrompt.js +29 -0
  58. package/dist/modules/ember-chat/services/emberSystemPrompt.js.map +1 -0
  59. package/dist/modules/ember-chat/usecases/askEmber/askEmber.usecase.d.ts +23 -0
  60. package/dist/modules/ember-chat/usecases/askEmber/askEmber.usecase.d.ts.map +1 -0
  61. package/dist/modules/ember-chat/usecases/askEmber/askEmber.usecase.js +23 -0
  62. package/dist/modules/ember-chat/usecases/askEmber/askEmber.usecase.js.map +1 -0
  63. package/dist/modules/ember-chat/usecases/emberSession/emberSessionRegistry.d.ts +36 -0
  64. package/dist/modules/ember-chat/usecases/emberSession/emberSessionRegistry.d.ts.map +1 -0
  65. package/dist/modules/ember-chat/usecases/emberSession/emberSessionRegistry.js +59 -0
  66. package/dist/modules/ember-chat/usecases/emberSession/emberSessionRegistry.js.map +1 -0
  67. package/dist/tests/acceptance/189-ember-readonly-review-chat.acceptance.test.d.ts +2 -0
  68. package/dist/tests/acceptance/189-ember-readonly-review-chat.acceptance.test.d.ts.map +1 -0
  69. package/dist/tests/acceptance/189-ember-readonly-review-chat.acceptance.test.js +124 -0
  70. package/dist/tests/acceptance/189-ember-readonly-review-chat.acceptance.test.js.map +1 -0
  71. package/dist/tests/factories/emberMessage.factory.d.ts +5 -0
  72. package/dist/tests/factories/emberMessage.factory.d.ts.map +1 -0
  73. package/dist/tests/factories/emberMessage.factory.js +9 -0
  74. package/dist/tests/factories/emberMessage.factory.js.map +1 -0
  75. package/dist/tests/stubs/emberReadData.stub.d.ts +20 -0
  76. package/dist/tests/stubs/emberReadData.stub.d.ts.map +1 -0
  77. package/dist/tests/stubs/emberReadData.stub.js +31 -0
  78. package/dist/tests/stubs/emberReadData.stub.js.map +1 -0
  79. package/dist/tests/stubs/emberSessionTransport.stub.d.ts +18 -0
  80. package/dist/tests/stubs/emberSessionTransport.stub.d.ts.map +1 -0
  81. package/dist/tests/stubs/emberSessionTransport.stub.js +75 -0
  82. package/dist/tests/stubs/emberSessionTransport.stub.js.map +1 -0
  83. package/dist/tests/units/dashboard/modules/emberChat.test.d.ts +2 -0
  84. package/dist/tests/units/dashboard/modules/emberChat.test.d.ts.map +1 -0
  85. package/dist/tests/units/dashboard/modules/emberChat.test.js +59 -0
  86. package/dist/tests/units/dashboard/modules/emberChat.test.js.map +1 -0
  87. package/dist/tests/units/modules/ember-chat/controllers/emberChat.routes.test.d.ts +2 -0
  88. package/dist/tests/units/modules/ember-chat/controllers/emberChat.routes.test.d.ts.map +1 -0
  89. package/dist/tests/units/modules/ember-chat/controllers/emberChat.routes.test.js +101 -0
  90. package/dist/tests/units/modules/ember-chat/controllers/emberChat.routes.test.js.map +1 -0
  91. package/dist/tests/units/modules/ember-chat/entities/emberMessage.guard.test.d.ts +2 -0
  92. package/dist/tests/units/modules/ember-chat/entities/emberMessage.guard.test.d.ts.map +1 -0
  93. package/dist/tests/units/modules/ember-chat/entities/emberMessage.guard.test.js +24 -0
  94. package/dist/tests/units/modules/ember-chat/entities/emberMessage.guard.test.js.map +1 -0
  95. package/dist/tests/units/modules/ember-chat/entities/emberSessionState.test.d.ts +2 -0
  96. package/dist/tests/units/modules/ember-chat/entities/emberSessionState.test.d.ts.map +1 -0
  97. package/dist/tests/units/modules/ember-chat/entities/emberSessionState.test.js +42 -0
  98. package/dist/tests/units/modules/ember-chat/entities/emberSessionState.test.js.map +1 -0
  99. package/dist/tests/units/modules/ember-chat/gateways/emberReadData.composite.gateway.test.d.ts +2 -0
  100. package/dist/tests/units/modules/ember-chat/gateways/emberReadData.composite.gateway.test.d.ts.map +1 -0
  101. package/dist/tests/units/modules/ember-chat/gateways/emberReadData.composite.gateway.test.js +75 -0
  102. package/dist/tests/units/modules/ember-chat/gateways/emberReadData.composite.gateway.test.js.map +1 -0
  103. package/dist/tests/units/modules/ember-chat/gateways/emberStreamJson.parser.test.d.ts +2 -0
  104. package/dist/tests/units/modules/ember-chat/gateways/emberStreamJson.parser.test.d.ts.map +1 -0
  105. package/dist/tests/units/modules/ember-chat/gateways/emberStreamJson.parser.test.js +52 -0
  106. package/dist/tests/units/modules/ember-chat/gateways/emberStreamJson.parser.test.js.map +1 -0
  107. package/dist/tests/units/modules/ember-chat/presenters/emberStatus.presenter.test.d.ts +2 -0
  108. package/dist/tests/units/modules/ember-chat/presenters/emberStatus.presenter.test.d.ts.map +1 -0
  109. package/dist/tests/units/modules/ember-chat/presenters/emberStatus.presenter.test.js +27 -0
  110. package/dist/tests/units/modules/ember-chat/presenters/emberStatus.presenter.test.js.map +1 -0
  111. package/dist/tests/units/modules/ember-chat/services/emberSystemPrompt.test.d.ts +2 -0
  112. package/dist/tests/units/modules/ember-chat/services/emberSystemPrompt.test.d.ts.map +1 -0
  113. package/dist/tests/units/modules/ember-chat/services/emberSystemPrompt.test.js +41 -0
  114. package/dist/tests/units/modules/ember-chat/services/emberSystemPrompt.test.js.map +1 -0
  115. package/dist/tests/units/modules/ember-chat/usecases/askEmber.usecase.test.d.ts +2 -0
  116. package/dist/tests/units/modules/ember-chat/usecases/askEmber.usecase.test.d.ts.map +1 -0
  117. package/dist/tests/units/modules/ember-chat/usecases/askEmber.usecase.test.js +46 -0
  118. package/dist/tests/units/modules/ember-chat/usecases/askEmber.usecase.test.js.map +1 -0
  119. package/dist/tests/units/modules/ember-chat/usecases/emberSessionRegistry.test.d.ts +2 -0
  120. package/dist/tests/units/modules/ember-chat/usecases/emberSessionRegistry.test.d.ts.map +1 -0
  121. package/dist/tests/units/modules/ember-chat/usecases/emberSessionRegistry.test.js +88 -0
  122. package/dist/tests/units/modules/ember-chat/usecases/emberSessionRegistry.test.js.map +1 -0
  123. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -5,6 +5,19 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [3.29.0](https://github.com/DGouron/review-flow/compare/reviewflow-v3.28.0...reviewflow-v3.29.0) (2026-05-28)
9
+
10
+
11
+ ### Added
12
+
13
+ * **dashboard:** SPEC-189 Ember read-only review chat (Phase A) ([#244](https://github.com/DGouron/review-flow/issues/244)) ([4e0d5b9](https://github.com/DGouron/review-flow/commit/4e0d5b9bb37a68cc2c91454412a35ce34107f1ed))
14
+
15
+
16
+ ### Fixed
17
+
18
+ * **docs:** unblock vitepress build and refresh setup-wizard docs ([83ce3bb](https://github.com/DGouron/review-flow/commit/83ce3bbbea6e80851742c8af08cfbb912bdc66d5))
19
+ * **docs:** unblock vitepress build and refresh setup-wizard docs ([fc5896d](https://github.com/DGouron/review-flow/commit/fc5896d14cc378d51bf17c9f51ebc01360cbc6bb))
20
+
8
21
  ## [3.28.0](https://github.com/DGouron/review-flow/compare/reviewflow-v3.27.0...reviewflow-v3.28.0) (2026-05-28)
9
22
 
10
23
 
@@ -16,6 +29,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
16
29
  * **setup-wizard:** SPEC-184 Iteration B — dashboard wizard interactive forms ([#238](https://github.com/DGouron/review-flow/issues/238)) ([806515b](https://github.com/DGouron/review-flow/commit/806515b4a69efbfaf8022185e545393dc7525623))
17
30
  * **setup-wizard:** SPEC-187 read wizard answers from stdin in JSON mode ([#237](https://github.com/DGouron/review-flow/issues/237)) ([8476550](https://github.com/DGouron/review-flow/commit/8476550edbfce72743e882e2c4a907d60c5ab9a4))
18
31
 
32
+
33
+ ### Fixed
34
+
35
+ * **worktree:** drop false-positive missing-build-artifacts signal ([#239](https://github.com/DGouron/review-flow/issues/239)) ([41a3a79](https://github.com/DGouron/review-flow/commit/41a3a79b5bec924f895ebfa35197d003fde95dd3))
36
+
19
37
  ## [3.27.0](https://github.com/DGouron/review-flow/compare/reviewflow-v3.26.0...reviewflow-v3.27.0) (2026-05-27)
20
38
 
21
39
 
@@ -114,6 +114,25 @@
114
114
  <span id="config-status" class="config-status hidden"></span>
115
115
 
116
116
  <section id="worktree-section" aria-label="Worktree pool"></section>
117
+
118
+ <section id="ember-chat-panel" class="ember-chat-panel" aria-label="Ember">
119
+ <div class="ember-chat-panel__header">
120
+ <span class="ember-chat-panel__prefix">// EMBER</span>
121
+ <canvas id="ember-avatar" class="ember-chat-panel__avatar" width="72" height="72" aria-hidden="true"></canvas>
122
+ </div>
123
+ <output id="ember-answer" class="ember-chat-panel__answer" aria-live="polite"></output>
124
+ <div id="ember-status" class="ember-chat-panel__status" role="status" aria-live="polite"></div>
125
+ <button type="button" id="ember-retry" class="ember-chat-panel__retry" hidden>// RÉESSAYER</button>
126
+ <form id="ember-form" class="ember-chat-panel__form" autocomplete="off">
127
+ <label class="visually-hidden" for="ember-question">Posez une question à Ember</label>
128
+ <input
129
+ type="text"
130
+ id="ember-question"
131
+ class="ember-chat-panel__input"
132
+ placeholder="Posez une question sur vos reviews…"
133
+ />
134
+ </form>
135
+ </section>
117
136
  </aside>
118
137
 
119
138
  <main class="dashboard-main">
@@ -429,6 +448,8 @@
429
448
  buildHeaderCapacityViewModel,
430
449
  renderHeaderCapacityBadgeHtml,
431
450
  } from './modules/headerCapacityBadge.js';
451
+ import { connectEmberStream, shouldSendQuestion } from './modules/emberChat.js';
452
+ import { mountSetupWizardAvatar } from './modules/setupWizardAvatarRenderer.js';
432
453
 
433
454
  const API_URL = window.location.origin;
434
455
  const WS_URL = `ws://${window.location.host}/ws`;
@@ -3838,6 +3859,45 @@
3838
3859
  }).catch(() => {});
3839
3860
  });
3840
3861
 
3862
+ // Ember read-only chat (SPEC-189). The pure decisions + SSE fold live in
3863
+ // emberChat.js; this humble init just binds DOM and the reused avatar.
3864
+ function initEmberChat() {
3865
+ const form = document.getElementById('ember-form');
3866
+ const input = document.getElementById('ember-question');
3867
+ const answer = document.getElementById('ember-answer');
3868
+ const status = document.getElementById('ember-status');
3869
+ const retry = document.getElementById('ember-retry');
3870
+ const canvas = document.getElementById('ember-avatar');
3871
+ if (!form || !input || !answer || !status || !canvas) return;
3872
+
3873
+ const avatar = mountSetupWizardAvatar({ canvas, initialState: 'idle' });
3874
+
3875
+ const ask = async () => {
3876
+ const question = input.value;
3877
+ if (!shouldSendQuestion(question)) {
3878
+ input.focus();
3879
+ return;
3880
+ }
3881
+ answer.textContent = '';
3882
+ status.textContent = '';
3883
+ retry.hidden = true;
3884
+ await connectEmberStream({
3885
+ question,
3886
+ onAnswer: (text) => { answer.textContent = text; },
3887
+ onAvatarState: (state) => avatar.setState(state),
3888
+ onAnnounce: (text) => { status.textContent = text; },
3889
+ onRetryVisible: (visible) => { retry.hidden = !visible; },
3890
+ });
3891
+ input.focus();
3892
+ };
3893
+
3894
+ form.addEventListener('submit', (event) => {
3895
+ event.preventDefault();
3896
+ void ask();
3897
+ });
3898
+ retry.addEventListener('click', () => { void ask(); });
3899
+ }
3900
+
3841
3901
  // Boot animations & observers exactly once, regardless of readyState timing
3842
3902
  let __animationsBooted = false;
3843
3903
  function bootOnce() {
@@ -3845,6 +3905,7 @@
3845
3905
  __animationsBooted = true;
3846
3906
  bootAnimations();
3847
3907
  observeCounters();
3908
+ initEmberChat();
3848
3909
  }
3849
3910
  if (document.readyState !== 'loading') {
3850
3911
  bootOnce();
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Dashboard module — Ember read-only chat client (SPEC-189, Phase A).
3
+ * Splits into pure decision functions (unit-tested) and a thin wiring function
4
+ * `connectEmberStream` that binds them to injected browser globals (fetch,
5
+ * document). The pure half holds all the logic — chunk fold for the progressively
6
+ * streamed answer, avatar-state mapping, retry visibility, empty-input guard;
7
+ * the wiring half is humble glue with no branching of its own and is not
8
+ * unit-tested, mirroring the connectSetupWizardStream precedent.
9
+ *
10
+ * Transport: POST /api/ember/ask streaming a text/event-stream body back.
11
+ * Read-only: the chat only asks questions and folds the streamed answer.
12
+ *
13
+ * Visual DNA: "Agentic OS" — see project_agentic_os_design_dna.md.
14
+ */
15
+ /**
16
+ * @typedef {{ type: string } & Record<string, unknown>} EmberEvent
17
+ */
18
+ /**
19
+ * @param {string} data
20
+ * @returns {EmberEvent | null}
21
+ */
22
+ export function parseEmberEvent(data: string): EmberEvent | null;
23
+ /**
24
+ * Folds a streamed chunk into the accumulated answer. Non-chunk events leave the
25
+ * answer untouched, so the caller can fold the whole stream blindly.
26
+ *
27
+ * @param {string} answer
28
+ * @param {EmberEvent} event
29
+ * @returns {string}
30
+ */
31
+ export function foldAnswer(answer: string, event: EmberEvent): string;
32
+ /**
33
+ * Maps a single stream event to the avatar state it drives. Returns null for an
34
+ * event the avatar does not react to, so the caller keeps the previous state.
35
+ *
36
+ * @param {EmberEvent} event
37
+ * @returns {'idle' | 'working' | 'error' | null}
38
+ */
39
+ export function avatarStateFromEvent(event: EmberEvent): "idle" | "working" | "error" | null;
40
+ /**
41
+ * @param {EmberEvent[]} events
42
+ * @returns {boolean}
43
+ */
44
+ export function shouldShowRetry(events: EmberEvent[]): boolean;
45
+ /**
46
+ * Empty-input rule (R: empty input → nothing sent, field stays focused).
47
+ *
48
+ * @param {string} question
49
+ * @returns {boolean}
50
+ */
51
+ export function shouldSendQuestion(question: string): boolean;
52
+ /**
53
+ * Thin wiring: streams a question to POST /api/ember/ask, folds the SSE body,
54
+ * drives the reused avatar and the aria-live region. Not unit-tested (humble
55
+ * glue) — exercised in the browser only.
56
+ *
57
+ * @param {Object} options
58
+ * @param {string} options.question
59
+ * @param {(answer: string) => void} options.onAnswer
60
+ * @param {(state: 'idle' | 'working' | 'error') => void} options.onAvatarState
61
+ * @param {(text: string) => void} options.onAnnounce
62
+ * @param {(visible: boolean) => void} options.onRetryVisible
63
+ * @param {typeof fetch} [options.fetchImplementation]
64
+ * @returns {Promise<void>}
65
+ */
66
+ export function connectEmberStream(options: {
67
+ question: string;
68
+ onAnswer: (answer: string) => void;
69
+ onAvatarState: (state: "idle" | "working" | "error") => void;
70
+ onAnnounce: (text: string) => void;
71
+ onRetryVisible: (visible: boolean) => void;
72
+ fetchImplementation?: typeof fetch | undefined;
73
+ }): Promise<void>;
74
+ export type EmberEvent = {
75
+ type: string;
76
+ } & Record<string, unknown>;
77
+ //# sourceMappingURL=emberChat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emberChat.d.ts","sourceRoot":"","sources":["../../../src/dashboard/modules/emberChat.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH;;GAEG;AAEH;;;GAGG;AACH,sCAHW,MAAM,GACJ,UAAU,GAAG,IAAI,CAY7B;AAED;;;;;;;GAOG;AACH,mCAJW,MAAM,SACN,UAAU,GACR,MAAM,CAOlB;AAED;;;;;;GAMG;AACH,4CAHW,UAAU,GACR,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,IAAI,CAe/C;AAED;;;GAGG;AACH,wCAHW,UAAU,EAAE,GACV,OAAO,CAInB;AAED;;;;;GAKG;AACH,6CAHW,MAAM,GACJ,OAAO,CAInB;AAED;;;;;;;;;;;;;GAaG;AACH,4CARG;IAAwB,QAAQ,EAAxB,MAAM;IAC4B,QAAQ,EAA1C,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;IAC+B,aAAa,EAApE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,KAAK,IAAI;IACb,UAAU,EAA1C,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI;IACc,cAAc,EAAlD,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI;IACH,mBAAmB;CAClD,GAAU,OAAO,CAAC,IAAI,CAAC,CAwEzB;yBA9JY;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC"}
@@ -0,0 +1,175 @@
1
+ /**
2
+ * Dashboard module — Ember read-only chat client (SPEC-189, Phase A).
3
+ * Splits into pure decision functions (unit-tested) and a thin wiring function
4
+ * `connectEmberStream` that binds them to injected browser globals (fetch,
5
+ * document). The pure half holds all the logic — chunk fold for the progressively
6
+ * streamed answer, avatar-state mapping, retry visibility, empty-input guard;
7
+ * the wiring half is humble glue with no branching of its own and is not
8
+ * unit-tested, mirroring the connectSetupWizardStream precedent.
9
+ *
10
+ * Transport: POST /api/ember/ask streaming a text/event-stream body back.
11
+ * Read-only: the chat only asks questions and folds the streamed answer.
12
+ *
13
+ * Visual DNA: "Agentic OS" — see project_agentic_os_design_dna.md.
14
+ */
15
+
16
+ /**
17
+ * @typedef {{ type: string } & Record<string, unknown>} EmberEvent
18
+ */
19
+
20
+ /**
21
+ * @param {string} data
22
+ * @returns {EmberEvent | null}
23
+ */
24
+ export function parseEmberEvent(data) {
25
+ try {
26
+ const parsed = JSON.parse(data);
27
+ if (parsed && typeof parsed === 'object' && typeof parsed.type === 'string') {
28
+ return parsed;
29
+ }
30
+ return null;
31
+ } catch {
32
+ return null;
33
+ }
34
+ }
35
+
36
+ /**
37
+ * Folds a streamed chunk into the accumulated answer. Non-chunk events leave the
38
+ * answer untouched, so the caller can fold the whole stream blindly.
39
+ *
40
+ * @param {string} answer
41
+ * @param {EmberEvent} event
42
+ * @returns {string}
43
+ */
44
+ export function foldAnswer(answer, event) {
45
+ if (event.type === 'chunk' && typeof event.text === 'string') {
46
+ return answer + event.text;
47
+ }
48
+ return answer;
49
+ }
50
+
51
+ /**
52
+ * Maps a single stream event to the avatar state it drives. Returns null for an
53
+ * event the avatar does not react to, so the caller keeps the previous state.
54
+ *
55
+ * @param {EmberEvent} event
56
+ * @returns {'idle' | 'working' | 'error' | null}
57
+ */
58
+ export function avatarStateFromEvent(event) {
59
+ if (event.type === 'error') {
60
+ return 'error';
61
+ }
62
+ if (event.type === 'status') {
63
+ if (event.state === 'working') {
64
+ return 'working';
65
+ }
66
+ if (event.state === 'idle') {
67
+ return 'idle';
68
+ }
69
+ }
70
+ return null;
71
+ }
72
+
73
+ /**
74
+ * @param {EmberEvent[]} events
75
+ * @returns {boolean}
76
+ */
77
+ export function shouldShowRetry(events) {
78
+ return events.some((event) => event.type === 'error');
79
+ }
80
+
81
+ /**
82
+ * Empty-input rule (R: empty input → nothing sent, field stays focused).
83
+ *
84
+ * @param {string} question
85
+ * @returns {boolean}
86
+ */
87
+ export function shouldSendQuestion(question) {
88
+ return question.trim().length > 0;
89
+ }
90
+
91
+ /**
92
+ * Thin wiring: streams a question to POST /api/ember/ask, folds the SSE body,
93
+ * drives the reused avatar and the aria-live region. Not unit-tested (humble
94
+ * glue) — exercised in the browser only.
95
+ *
96
+ * @param {Object} options
97
+ * @param {string} options.question
98
+ * @param {(answer: string) => void} options.onAnswer
99
+ * @param {(state: 'idle' | 'working' | 'error') => void} options.onAvatarState
100
+ * @param {(text: string) => void} options.onAnnounce
101
+ * @param {(visible: boolean) => void} options.onRetryVisible
102
+ * @param {typeof fetch} [options.fetchImplementation]
103
+ * @returns {Promise<void>}
104
+ */
105
+ export async function connectEmberStream(options) {
106
+ const fetchImplementation = options.fetchImplementation ?? globalThis.fetch;
107
+
108
+ if (!shouldSendQuestion(options.question)) {
109
+ return;
110
+ }
111
+
112
+ const response = await fetchImplementation('/api/ember/ask', {
113
+ method: 'POST',
114
+ headers: { 'Content-Type': 'application/json' },
115
+ body: JSON.stringify({ question: options.question }),
116
+ });
117
+
118
+ const body = response.body;
119
+ if (body === null) {
120
+ options.onAvatarState('error');
121
+ options.onAnnounce('// EMBER INDISPONIBLE — réessayer');
122
+ options.onRetryVisible(true);
123
+ return;
124
+ }
125
+
126
+ const reader = body.getReader();
127
+ const decoder = new TextDecoder();
128
+ /** @type {EmberEvent[]} */
129
+ const events = [];
130
+ let answer = '';
131
+ let buffer = '';
132
+
133
+ const consumeLine = (line) => {
134
+ if (!line.startsWith('data: ')) {
135
+ return;
136
+ }
137
+ const event = parseEmberEvent(line.slice('data: '.length));
138
+ if (event === null) {
139
+ return;
140
+ }
141
+ events.push(event);
142
+ answer = foldAnswer(answer, event);
143
+ const avatarState = avatarStateFromEvent(event);
144
+ if (avatarState !== null) {
145
+ options.onAvatarState(avatarState);
146
+ }
147
+ if (event.type === 'chunk') {
148
+ options.onAnswer(answer);
149
+ }
150
+ if (event.type === 'error') {
151
+ options.onAnnounce(typeof event.message === 'string' ? event.message : '// EMBER INDISPONIBLE — réessayer');
152
+ }
153
+ options.onRetryVisible(shouldShowRetry(events));
154
+ };
155
+
156
+ for (;;) {
157
+ const { done, value } = await reader.read();
158
+ if (done) {
159
+ break;
160
+ }
161
+ buffer += decoder.decode(value, { stream: true });
162
+ const lines = buffer.split('\n');
163
+ buffer = lines.pop() ?? '';
164
+ for (const line of lines) {
165
+ consumeLine(line);
166
+ }
167
+ }
168
+ if (buffer.length > 0) {
169
+ consumeLine(buffer);
170
+ }
171
+
172
+ if (answer.length > 0) {
173
+ options.onAnnounce(answer);
174
+ }
175
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emberChat.js","sourceRoot":"","sources":["../../../src/dashboard/modules/emberChat.js"],"names":[],"mappings":"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"}
@@ -6363,3 +6363,88 @@ input:focus-visible,
6363
6363
  animation: none;
6364
6364
  }
6365
6365
  }
6366
+
6367
+ .visually-hidden {
6368
+ position: absolute;
6369
+ width: 1px;
6370
+ height: 1px;
6371
+ padding: 0;
6372
+ margin: -1px;
6373
+ overflow: hidden;
6374
+ clip: rect(0, 0, 0, 0);
6375
+ white-space: nowrap;
6376
+ border: 0;
6377
+ }
6378
+
6379
+ .ember-chat-panel {
6380
+ margin-top: 16px;
6381
+ padding: 12px;
6382
+ background: var(--bg-1);
6383
+ border: 1px solid var(--ink-4);
6384
+ border-radius: 8px;
6385
+ font-family: var(--font-mono);
6386
+ color: var(--ink-1);
6387
+ }
6388
+
6389
+ .ember-chat-panel__header {
6390
+ display: flex;
6391
+ align-items: center;
6392
+ justify-content: space-between;
6393
+ margin-bottom: 8px;
6394
+ }
6395
+
6396
+ .ember-chat-panel__prefix {
6397
+ color: var(--accent);
6398
+ font-size: 12px;
6399
+ letter-spacing: 0.04em;
6400
+ }
6401
+
6402
+ .ember-chat-panel__avatar {
6403
+ width: 48px;
6404
+ height: 48px;
6405
+ }
6406
+
6407
+ .ember-chat-panel__answer {
6408
+ display: block;
6409
+ min-height: 1.2em;
6410
+ margin-bottom: 8px;
6411
+ color: var(--ink-0);
6412
+ font-size: 13px;
6413
+ line-height: 1.5;
6414
+ white-space: pre-wrap;
6415
+ }
6416
+
6417
+ .ember-chat-panel__status {
6418
+ min-height: 1em;
6419
+ margin-bottom: 8px;
6420
+ color: var(--success);
6421
+ font-size: 11px;
6422
+ }
6423
+
6424
+ .ember-chat-panel__retry {
6425
+ margin-bottom: 8px;
6426
+ padding: 4px 8px;
6427
+ background: var(--accent-ghost);
6428
+ border: 1px solid var(--accent);
6429
+ border-radius: 4px;
6430
+ color: var(--accent);
6431
+ font-family: var(--font-mono);
6432
+ font-size: 11px;
6433
+ cursor: pointer;
6434
+ }
6435
+
6436
+ .ember-chat-panel__input {
6437
+ width: 100%;
6438
+ padding: 8px;
6439
+ background: var(--bg-0);
6440
+ border: 1px solid var(--ink-4);
6441
+ border-radius: 4px;
6442
+ color: var(--ink-0);
6443
+ font-family: var(--font-mono);
6444
+ font-size: 13px;
6445
+ }
6446
+
6447
+ .ember-chat-panel__input:focus {
6448
+ outline: none;
6449
+ border-color: var(--accent);
6450
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/main/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAI/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAuH3D,wBAAsB,cAAc,CAClC,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC,CAmYf"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/main/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAI/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AA6H3D,wBAAsB,cAAc,CAClC,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC,CA+Zf"}
@@ -31,6 +31,12 @@ import { setupWizardRoutes } from '../modules/setup-wizard/interface-adapters/co
31
31
  import { SetupRunRegistry } from '../modules/setup-wizard/usecases/streamSetupRun.usecase.js';
32
32
  import { SetupProcessChildProcessGateway } from '../modules/setup-wizard/interface-adapters/gateways/setupProcess.childProcess.gateway.js';
33
33
  import { SetupStateFileSystemGateway } from '../modules/setup-wizard/interface-adapters/gateways/setupState.fileSystem.gateway.js';
34
+ import { emberChatRoutes } from '../modules/ember-chat/interface-adapters/controllers/http/emberChat.routes.js';
35
+ import { EmberSessionRegistry } from '../modules/ember-chat/usecases/emberSession/emberSessionRegistry.js';
36
+ import { EmberSessionTransportClaudeGateway } from '../modules/ember-chat/interface-adapters/gateways/emberSessionTransport.claude.gateway.js';
37
+ import { EmberReadDataCompositeGateway } from '../modules/ember-chat/interface-adapters/gateways/emberReadData.composite.gateway.js';
38
+ import { ProcessEnvironmentGateway } from '../modules/claude-invocation/interface-adapters/gateways/environment.process.gateway.js';
39
+ import { resolveClaudePath } from '../shared/services/claudePathResolver.js';
34
40
  import { getConfigDir } from '../shared/services/configDir.js';
35
41
  import { handleGitLabWebhook } from '../modules/platform-integration/interface-adapters/controllers/webhook/gitlab.controller.js';
36
42
  import { handleGitHubWebhook } from '../modules/platform-integration/interface-adapters/controllers/webhook/github.controller.js';
@@ -380,6 +386,32 @@ export async function registerRoutes(app, deps) {
380
386
  app.get('/setup', async (_request, reply) => {
381
387
  reply.redirect('/dashboard/setup.html');
382
388
  });
389
+ const emberGroundingProjectPath = deps.config.repositories.find((repository) => repository.enabled)?.localPath ?? '';
390
+ const emberReadData = new EmberReadDataCompositeGateway({
391
+ statsGateway: deps.statsGateway,
392
+ insightsGateway: deps.insightsGateway,
393
+ trackingGateway: deps.reviewRequestTrackingGateway,
394
+ worktreeGateway: deps.worktreeGateway,
395
+ });
396
+ const emberSessionRegistry = new EmberSessionRegistry({
397
+ transport: new EmberSessionTransportClaudeGateway({
398
+ claudePath: resolveClaudePath(),
399
+ mcpConfigJson: JSON.stringify({ mcpServers: {} }),
400
+ allowedTools: '',
401
+ model: 'sonnet',
402
+ }),
403
+ now: () => new Date(),
404
+ idleTimeoutMs: 5 * 60 * 1000,
405
+ });
406
+ setInterval(() => emberSessionRegistry.onIdle(new Date()), 30_000).unref();
407
+ await app.register(emberChatRoutes, {
408
+ registry: emberSessionRegistry,
409
+ environment: new ProcessEnvironmentGateway(),
410
+ readData: emberReadData,
411
+ projectPath: emberGroundingProjectPath,
412
+ now: () => new Date(),
413
+ logger: deps.logger,
414
+ });
383
415
  const repositoryConfigDeps = { readFileSync, writeFileSync, existsSync };
384
416
  const addRepositoriesToConfig = new AddRepositoriesToConfigUseCase(repositoryConfigDeps);
385
417
  const removeRepositoryFromConfig = new RemoveRepositoryFromConfigUseCase(repositoryConfigDeps);
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/main/routes.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,kFAAkF,CAAC;AAChH,OAAO,EAAE,cAAc,EAAE,MAAM,oFAAoF,CAAC;AACpH,OAAO,EAAE,YAAY,EAAE,MAAM,kFAAkF,CAAC;AAChH,OAAO,EAAE,WAAW,EAAE,MAAM,mFAAmF,CAAC;AAChH,OAAO,EAAE,cAAc,EAAE,MAAM,sFAAsF,CAAC;AACtH,OAAO,EAAE,gBAAgB,EAAE,MAAM,6EAA6E,CAAC;AAC/G,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,qFAAqF,CAAC;AAC/H,OAAO,EAAE,UAAU,EAAE,MAAM,gFAAgF,CAAC;AAC5G,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AACtH,OAAO,EAAE,mBAAmB,EAAE,MAAM,yFAAyF,CAAC;AAC9H,OAAO,EAAE,8BAA8B,EAAE,MAAM,6FAA6F,CAAC;AAC7I,OAAO,EAAE,0BAA0B,EAAE,MAAM,mFAAmF,CAAC;AAC/H,OAAO,EAAE,kBAAkB,EAAE,MAAM,wFAAwF,CAAC;AAC5H,OAAO,EAAE,8BAA8B,EAAE,MAAM,6EAA6E,CAAC;AAC7H,OAAO,EAAE,iCAAiC,EAAE,MAAM,gFAAgF,CAAC;AACnI,OAAO,EAAE,8BAA8B,EAAE,MAAM,6EAA6E,CAAC;AAC7H,OAAO,EAAE,iCAAiC,EAAE,MAAM,kGAAkG,CAAC;AACrJ,OAAO,EAAE,oCAAoC,EAAE,MAAM,qGAAqG,CAAC;AAC3J,OAAO,EAAE,2CAA2C,EAAE,MAAM,4GAA4G,CAAC;AACzK,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AACtG,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,gFAAgF,CAAC;AAC/G,OAAO,EAAE,aAAa,EAAE,MAAM,mFAAmF,CAAC;AAClH,OAAO,EAAE,cAAc,EAAE,MAAM,sFAAsF,CAAC;AACtH,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kFAAkF,CAAC;AACrH,OAAO,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAC7F,OAAO,EAAE,+BAA+B,EAAE,MAAM,yFAAyF,CAAC;AAC1I,OAAO,EAAE,2BAA2B,EAAE,MAAM,qFAAqF,CAAC;AAClI,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4FAA4F,CAAC;AACjI,OAAO,EAAE,mBAAmB,EAAE,MAAM,4FAA4F,CAAC;AACjI,OAAO,EACL,SAAS,EACT,YAAY,EACZ,aAAa,EACb,aAAa,EACb,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,GACjB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,iCAAiC,EAAE,MAAM,0FAA0F,CAAC;AAC7I,OAAO,EAAE,oCAAoC,EAAE,MAAM,mGAAmG,CAAC;AACzJ,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,0FAA0F,CAAC;AAC3J,OAAO,EAAE,8BAA8B,EAAE,MAAM,gGAAgG,CAAC;AAChJ,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,0FAA0F,CAAC;AAC3J,OAAO,EAAE,8BAA8B,EAAE,MAAM,gGAAgG,CAAC;AAChJ,OAAO,EAAE,2BAA2B,EAAE,MAAM,4FAA4F,CAAC;AACzI,OAAO,EAAE,2BAA2B,EAAE,MAAM,4FAA4F,CAAC;AACzI,OAAO,EAAE,sBAAsB,EAAE,MAAM,iEAAiE,CAAC;AACzG,OAAO,EAAE,6BAA6B,EAAE,MAAM,wEAAwE,CAAC;AACvH,OAAO,EAAE,iBAAiB,EAAE,MAAM,4DAA4D,CAAC;AAC/F,OAAO,EAAE,sBAAsB,EAAE,MAAM,iEAAiE,CAAC;AACzG,OAAO,EAAE,0BAA0B,EAAE,MAAM,qEAAqE,CAAC;AACjH,OAAO,EAAE,kBAAkB,EAAE,MAAM,6DAA6D,CAAC;AACjG,OAAO,EAAE,mBAAmB,EAAE,MAAM,8DAA8D,CAAC;AACnG,OAAO,EAAE,6BAA6B,EAAE,MAAM,wEAAwE,CAAC;AACvH,OAAO,EAAE,+BAA+B,EAAE,MAAM,sGAAsG,CAAC;AACvJ,OAAO,EAAE,+BAA+B,EAAE,MAAM,sGAAsG,CAAC;AACvJ,OAAO,EAAE,kCAAkC,EAAE,MAAM,yGAAyG,CAAC;AAC7J,OAAO,EAAE,kCAAkC,EAAE,MAAM,yGAAyG,CAAC;AAC7J,OAAO,EAAE,8BAA8B,EAAE,MAAM,4FAA4F,CAAC;AAC5I,OAAO,EAAE,gBAAgB,EAAE,MAAM,qFAAqF,CAAC;AACvH,OAAO,EAAE,sBAAsB,EAAE,MAAM,8FAA8F,CAAC;AACtI,OAAO,EAAE,0BAA0B,EAAE,MAAM,wFAAwF,CAAC;AACpI,OAAO,EAAE,0BAA0B,EAAE,MAAM,yFAAyF,CAAC;AACrI,OAAO,EAAE,2BAA2B,EAAE,MAAM,oGAAoG,CAAC;AACjJ,OAAO,EAAE,YAAY,EAAE,MAAM,iFAAiF,CAAC;AAC/G,OAAO,EAAE,uBAAuB,EAAE,MAAM,4FAA4F,CAAC;AACrI,OAAO,EAAE,sBAAsB,EAAE,MAAM,gFAAgF,CAAC;AACxH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0EAA0E,CAAC;AAC/G,OAAO,EAAE,oBAAoB,EAAE,MAAM,4EAA4E,CAAC;AAClH,OAAO,EAAE,qBAAqB,EAAE,MAAM,oFAAoF,CAAC;AAC3H,OAAO,EAAE,kBAAkB,EAAE,MAAM,mEAAmE,CAAC;AACvG,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9G,OAAO,EAAE,qCAAqC,EAAE,MAAM,mGAAmG,CAAC;AAC1J,OAAO,EAAE,yBAAyB,EAAE,MAAM,mEAAmE,CAAC;AAC9G,OAAO,EAAE,2BAA2B,EAAE,MAAM,qEAAqE,CAAC;AAClH,OAAO,EAAE,2BAA2B,EAAE,MAAM,qEAAqE,CAAC;AAClH,OAAO,EAAE,2BAA2B,EAAE,MAAM,qEAAqE,CAAC;AAClH,OAAO,EAAE,sBAAsB,EAAE,MAAM,qFAAqF,CAAC;AAC7H,OAAO,EAAE,oBAAoB,EAAE,MAAM,yFAAyF,CAAC;AAC/H,OAAO,EACL,sCAAsC,GAEvC,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,sEAAsE,CAAC;AACpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,2EAA2E,CAAC;AAC9G,OAAO,EAAE,wBAAwB,EAAE,MAAM,uFAAuF,CAAC;AACjI,OAAO,EAAE,yBAAyB,EAAE,MAAM,wFAAwF,CAAC;AACnI,OAAO,EAAE,oBAAoB,EAAE,MAAM,mFAAmF,CAAC;AACzH,OAAO,EAAE,4BAA4B,EAAE,MAAM,2FAA2F,CAAC;AACzI,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAC3F,OAAO,EAAE,kBAAkB,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAC9G,OAAO,EAAE,uBAAuB,EAAE,MAAM,2EAA2E,CAAC;AAMpH,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,SAAS,WAAW;IAClB,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IACpE,MAAM,GAAG,GAAG,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IACnD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;AACjC,CAAC;AAED,MAAM,cAAc,GAAG,WAAW,EAAE,CAAC;AACrC,MAAM,qBAAqB,GAAG,IAAI,wBAAwB,EAAE,CAAC;AAC7D,MAAM,YAAY,GAAG,IAAI,yBAAyB,EAAE,CAAC;AACrD,MAAM,iBAAiB,GAAG,IAAI,oBAAoB,EAAE,CAAC;AACrD,MAAM,mBAAmB,GAAG,IAAI,4BAA4B,EAAE,CAAC;AAE/D,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAoB,EACpB,IAAkB;IAElB,MAAM,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE;QAChC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC;QACxC,MAAM,EAAE,aAAa;KACtB,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE;QAC/B,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;QAC9C,YAAY;QACZ,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;KAClD,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAEnC,MAAM,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE;QAC/B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,4BAA4B,EAAE,IAAI,CAAC,4BAA4B;QAC/D,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY;QAC/C,SAAS,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE;QACtC,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE;QAC9B,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY;QAC/C,sBAAsB,EAAE;YACtB,MAAM,EAAE,IAAI,2BAA2B,CAAC,qBAAqB,CAAC;YAC9D,MAAM,EAAE,IAAI,2BAA2B,CAAC,qBAAqB,CAAC;SAC/D;QACD,yBAAyB;QACzB,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CAAC;IAEH,MAAM,oBAAoB,GAAG,IAAI,8BAA8B,EAAE,CAAC;IAClE,MAAM,mBAAmB,GAAG,IAAI,0BAA0B,CAAC,oBAAoB,CAAC,CAAC;IAEjF,MAAM,0BAA0B,GAAG,IAAI,iCAAiC,CAAC;QACvE,uBAAuB,EAAE,IAAI,oCAAoC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QACjG,oBAAoB;QACpB,iBAAiB,EAAE;YACjB,oBAAoB;YACpB,wBAAwB;SACzB;KACF,CAAC,CAAC;IACH,0BAA0B,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAEvC,MAAM,GAAG,CAAC,QAAQ,CAAC,cAAc,EAAE;QACjC,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY;QAC/C,aAAa,EAAE,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxD,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,IAAI;YAChC,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,OAAO,EAAE,GAAG,CAAC,OAAO;SACrB,CAAC,CAAC;QACH,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,oBAAoB;QACpB,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE,EAAE,CAAC;KAC7E,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,QAAQ,CAAC,gBAAgB,EAAE;QACnC,4BAA4B,EAAE,IAAI,CAAC,4BAA4B;QAC/D,mBAAmB,EAAE,CAAC,WAAmB,EAAE,EAAE,CAC3C,iBAAiB,CAAC,WAAW,CAAC,EAAE,gBAAgB,IAAI,IAAI;KAC3D,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,IAAI,2BAA2B,EAAE,CAAC;IAC5D,MAAM,GAAG,CAAC,QAAQ,CAAC,gBAAgB,EAAE;QACnC,mBAAmB,EAAE,IAAI,0BAA0B,CAAC,iBAAiB,CAAC;QACtE,SAAS,EAAE,IAAI,0BAA0B,EAAE;KAC5C,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,QAAQ,CAAC,sBAAsB,EAAE;QACzC,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,SAAS,EAAE,IAAI,CAAC,sBAAsB;QACtC,iBAAiB,EAAE,IAAI,CAAC,sBAAsB;QAC9C,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,uBAAuB,EAAE,CAAC,OAAO,EAAE,EAAE,CACnC,uBAAuB,CACrB;YACE,OAAO;YACP,gBAAgB,EAAE,8BAA8B,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;YACnE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE;SACtB,EACD,EAAE,WAAW,EAAE,IAAI,CAAC,0BAA0B,EAAE,CACjD;QACH,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,wBAAwB,EAAE,CAAC,QAAQ,EAAE,EAAE;YACrC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACvF,MAAM,kBAAkB,GAAG,YAAY,EAAE,SAAS,IAAI,EAAE,CAAC;YACzD,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpF,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,IAAI,uBAAuB,EAAE,CAAC;IACpD,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;IAClD,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;QAC5B,MAAM,aAAa,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,eAAe,GAAG,IAAI,sBAAsB,CAAC,EAAE,aAAa,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACzF,MAAM,YAAY,GAAG,IAAI,mBAAmB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;IAChE,MAAM,aAAa,GAAG,IAAI,oBAAoB,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;IACpE,MAAM,qBAAqB,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAC1D,MAAM,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE;QAC/B,eAAe;QACf,YAAY;QACZ,aAAa;QACb,SAAS,EAAE,qBAAqB;QAChC,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY;KAChD,CAAC,CAAC;IAEH,MAAM,2BAA2B,GAAG,IAAI,qCAAqC,EAAE,CAAC;IAChF,MAAM,kBAAkB,GAAG,IAAI,yBAAyB,CAAC,EAAE,2BAA2B,EAAE,CAAC,CAAC;IAC1F,MAAM,oBAAoB,GAAG,IAAI,2BAA2B,CAAC;QAC3D,2BAA2B;QAC3B,SAAS,EAAE;YACT,YAAY,EAAE,CAAC,KAAa,EAAE,EAAE;gBAC9B,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;gBACnC,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,SAAS,CAAC;YACrD,CAAC;YACD,YAAY;SACb;QACD,OAAO,EAAE,aAAa;QACtB,2EAA2E;QAC3E,yEAAyE;QACzE,sEAAsE;QACtE,2EAA2E;QAC3E,2EAA2E;QAC3E,gBAAgB,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE;YACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,oGAAoG,CACrG,CAAC;QACJ,CAAC;QACD,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CAAC;IACH,MAAM,oBAAoB,GAAG,IAAI,2BAA2B,CAAC;QAC3D,2BAA2B;QAC3B,SAAS,EAAE;YACT,YAAY,EAAE,CAAC,KAAa,EAAE,EAAE;gBAC9B,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;gBACnC,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,SAAS,CAAC;YACrD,CAAC;SACF;QACD,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CAAC;IACH,MAAM,oBAAoB,GAAG,IAAI,2BAA2B,CAAC;QAC3D,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;QACpC,2BAA2B;QAC3B,OAAO,EAAE,aAAa;QACtB,uBAAuB,EAAE,GAAG,EAAE,CAAC,uBAAuB,EAAE;QACxD,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,QAAQ,CAAC,oBAAoB,EAAE;QACvC,kBAAkB;QAClB,oBAAoB;QACpB,oBAAoB;QACpB,SAAS,EAAE,IAAI,sBAAsB,EAAE;KACxC,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAA8B;QACnD,GAAG,sCAAsC,EAAE;QAC3C,eAAe;QACf,qBAAqB;QACrB,qBAAqB;QACrB,oBAAoB,EAAE,GAAG,EAAE,CACzB,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QAC/G,yEAAyE;QACzE,oEAAoE;QACpE,UAAU,EAAE,IAAI,CAAC,oBAAoB;KACtC,CAAC;IAEF,MAAM,yBAAyB,GAAG,CAAC,QAA6B,EAAE,EAAE,CAClE,QAAQ,KAAK,QAAQ;QACnB,CAAC,CAAC,IAAI,wBAAwB,CAAC,qBAAqB,CAAC;QACrD,CAAC,CAAC,IAAI,wBAAwB,CAAC,qBAAqB,CAAC,CAAC;IAC1D,MAAM,GAAG,CAAC,QAAQ,CAAC,wBAAwB,EAAE;QAC3C,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY;QAC/C,4BAA4B,EAAE,IAAI,CAAC,4BAA4B;QAC/D,oBAAoB,EAAE,IAAI,8BAA8B,EAAE;QAC1D,yBAAyB;QACzB,+BAA+B,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC5C,QAAQ,KAAK,QAAQ;YACnB,CAAC,CAAC,IAAI,8BAA8B,CAAC,qBAAqB,CAAC;YAC3D,CAAC,CAAC,IAAI,8BAA8B,CAAC,qBAAqB,CAAC;QAC/D,4BAA4B,EAAE,CAAC,QAAQ,EAAE,EAAE,CACzC,QAAQ,KAAK,QAAQ;YACnB,CAAC,CAAC,IAAI,2BAA2B,CAAC,qBAAqB,CAAC;YACxD,CAAC,CAAC,IAAI,2BAA2B,CAAC,qBAAqB,CAAC;QAC5D,wBAAwB,EAAE,CAAC,QAAQ,EAAE,EAAE,CACrC,IAAI,kBAAkB,CAAC,IAAI,CAAC,4BAA4B,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC;QAChG,sBAAsB,EAAE,IAAI,6BAA6B,CAAC,IAAI,CAAC,4BAA4B,CAAC;QAC5F,aAAa;QACb,uBAAuB;QACvB,iBAAiB;QACjB,oBAAoB;QACpB,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE;QAChC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;QAC/C,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY;QAC/C,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE;QAChC,YAAY;QACZ,iBAAiB;QACjB,cAAc;QACd,qBAAqB;QACrB,YAAY;QACZ,iBAAiB;QACjB,mBAAmB;QACnB,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI;KACpC,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,QAAQ,CAAC,cAAc,EAAE;QACjC,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,4BAA4B,EAAE,IAAI,CAAC,4BAA4B;QAC/D,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,aAAa,EAAE,2BAA2B,EAAE;QAC5C,QAAQ,EAAE,kBAAkB,EAAE;KAC/B,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC/B,MAAM,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACpC,MAAM,GAAG,CAAC,QAAQ,CAAC,mBAAmB,EAAE;QACtC,mBAAmB;QACnB,OAAO,EAAE,GAAG,EAAE;YACZ,0BAA0B,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,uBAAuB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAEzC,MAAM,UAAU,GAAG,IAAI,CAAC,4BAA4B,CAAC;IACrD,MAAM,aAAa,GAAG,IAAI,wBAAwB,CAAC,qBAAqB,CAAC,CAAC;IAE1E,MAAM,oBAAoB,GAAG,CAAC,KAG7B,EAAyB,EAAE,CAC1B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;QAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;KAC7C,CAAC,CAAC;IAEL,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACpD,MAAM,mBAAmB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE;YACjE,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,kBAAkB,EAAE,aAAa;YACjC,wBAAwB,EAAE,IAAI,8BAA8B,CAAC,qBAAqB,CAAC;YACnF,qBAAqB,EAAE,IAAI,2BAA2B,CAAC,qBAAqB,CAAC;YAC7E,eAAe,EAAE,IAAI,sBAAsB,CAAC,UAAU,CAAC;YACvD,gBAAgB,EAAE,IAAI,6BAA6B,CAAC,UAAU,CAAC;YAC/D,UAAU,EAAE,IAAI,iBAAiB,CAAC,UAAU,CAAC;YAC7C,eAAe,EAAE,IAAI,sBAAsB,CAAC,UAAU,CAAC;YACvD,mBAAmB,EAAE,IAAI,0BAA0B,CAAC,UAAU,CAAC;YAC/D,WAAW,EAAE,IAAI,kBAAkB,CAAC,UAAU,EAAE,aAAa,CAAC;YAC9D,aAAa;YACb,uBAAuB;YACvB,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY;YAC/C,iBAAiB;YACjB,oBAAoB;YACpB,cAAc,EAAE,oBAAoB;YACpC,YAAY,EAAE,IAAI,mBAAmB,CAAC,UAAU,CAAC;YACjD,sBAAsB,EAAE,IAAI,+BAA+B,CAAC,qBAAqB,CAAC;YAClF,sBAAsB,EAAE,IAAI,6BAA6B,CAAC,UAAU,CAAC;YACrE,yBAAyB,EAAE,IAAI,kCAAkC,CAAC,qBAAqB,CAAC;YACxF,mBAAmB,EAAE,CAAC,WAAmB,EAAE,EAAE,CAC3C,iBAAiB,CAAC,WAAW,CAAC,EAAE,gBAAgB,IAAI,IAAI;YAC1D,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,mBAAmB,GAAG,IAAI,wBAAwB,CAAC,qBAAqB,CAAC,CAAC;IAEhF,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACpD,MAAM,mBAAmB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE;YACjE,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,kBAAkB,EAAE,mBAAmB;YACvC,wBAAwB,EAAE,IAAI,8BAA8B,CAAC,qBAAqB,CAAC;YACnF,qBAAqB,EAAE,IAAI,2BAA2B,CAAC,qBAAqB,CAAC;YAC7E,eAAe,EAAE,IAAI,sBAAsB,CAAC,UAAU,CAAC;YACvD,gBAAgB,EAAE,IAAI,6BAA6B,CAAC,UAAU,CAAC;YAC/D,UAAU,EAAE,IAAI,iBAAiB,CAAC,UAAU,CAAC;YAC7C,eAAe,EAAE,IAAI,sBAAsB,CAAC,UAAU,CAAC;YACvD,mBAAmB,EAAE,IAAI,0BAA0B,CAAC,UAAU,CAAC;YAC/D,WAAW,EAAE,IAAI,kBAAkB,CAAC,UAAU,EAAE,mBAAmB,CAAC;YACpE,aAAa;YACb,uBAAuB;YACvB,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY;YAC/C,iBAAiB;YACjB,oBAAoB;YACpB,cAAc,EAAE,oBAAoB;YACpC,YAAY,EAAE,IAAI,mBAAmB,CAAC,UAAU,CAAC;YACjD,sBAAsB,EAAE,IAAI,+BAA+B,CAAC,qBAAqB,CAAC;YAClF,sBAAsB,EAAE,IAAI,6BAA6B,CAAC,UAAU,CAAC;YACrE,yBAAyB,EAAE,IAAI,kCAAkC,CAAC,qBAAqB,CAAC;YACxF,mBAAmB,EAAE,CAAC,WAAmB,EAAE,EAAE,CAC3C,iBAAiB,CAAC,WAAW,CAAC,EAAE,gBAAgB,IAAI,IAAI;YAC1D,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;QACrC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,QAAQ,CAAC,iBAAiB,EAAE;QACpC,QAAQ,EAAE,IAAI,gBAAgB,CAC5B,IAAI,+BAA+B,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC,CAC5E;QACD,iBAAiB,EAAE,IAAI,2BAA2B,CAAC;YACjD,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,kBAAkB,CAAC;SACnD,CAAC;QACF,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;QAC1C,KAAK,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,MAAM,oBAAoB,GAAG,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;IACzE,MAAM,uBAAuB,GAAG,IAAI,8BAA8B,CAAC,oBAAoB,CAAC,CAAC;IACzF,MAAM,0BAA0B,GAAG,IAAI,iCAAiC,CAAC,oBAAoB,CAAC,CAAC;IAC/F,MAAM,uBAAuB,GAAG,IAAI,8BAA8B,CAAC,oBAAoB,CAAC,CAAC;IACzF,MAAM,sBAAsB,GAAG,uBAAuB,EAAE,CAAC;IAEzD,SAAS,mBAAmB,CAAC,IAAY;QACvC,IAAI,CAAC;YACH,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,MAAM,0BAA0B,GAAG,IAAI,iCAAiC,CAAC;QACvE,WAAW,EAAE,mBAAmB;QAChC,uBAAuB;QACvB,sBAAsB;QACtB,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;QACtC,UAAU,EAAE,sBAAsB;KACnC,CAAC,CAAC;IACH,MAAM,6BAA6B,GAAG,IAAI,oCAAoC,CAAC;QAC7E,0BAA0B;QAC1B,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;QACtC,UAAU,EAAE,sBAAsB;KACnC,CAAC,CAAC;IACH,MAAM,oCAAoC,GAAG,IAAI,2CAA2C,CAAC;QAC3F,uBAAuB;QACvB,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;QACtC,UAAU,EAAE,sBAAsB;KACnC,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,QAAQ,CAAC,kBAAkB,EAAE;QACrC,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY;QAC/C,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,0BAA0B,CAAC,OAAO,CAAC,KAAK,CAAC;QACnE,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,6BAA6B,CAAC,OAAO,CAAC,KAAK,CAAC;QACzE,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,oCAAoC,CAAC,OAAO,CAAC,KAAK,CAAC;KAChF,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;QACzB,OAAO;YACL,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,cAAc;YACvB,SAAS,EAAE;gBACT,SAAS,EAAE,aAAa;gBACxB,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,kBAAkB;gBAC1B,MAAM,EAAE,kBAAkB;aAC3B;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,YAAY,CACV,EAAE,cAAc,EAAE,YAAY,EAAE,KAAK,EAAE,EACvC,EAAE,qBAAqB,EAAE,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,CACpE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/main/routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const emberMessageGuard: import("../../../../shared/foundation/guard.base.js").Guard<{
2
+ question: string;
3
+ }>;
4
+ //# sourceMappingURL=emberMessage.guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emberMessage.guard.d.ts","sourceRoot":"","sources":["../../../../../src/modules/ember-chat/entities/emberMessage/emberMessage.guard.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,iBAAiB;;EAAkD,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { createGuard } from '../../../../shared/foundation/guard.base.js';
2
+ import { emberMessageSchema } from '../../../../modules/ember-chat/entities/emberMessage/emberMessage.schema.js';
3
+ export const emberMessageGuard = createGuard(emberMessageSchema, 'emberMessage');
4
+ //# sourceMappingURL=emberMessage.guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emberMessage.guard.js","sourceRoot":"","sources":["../../../../../src/modules/ember-chat/entities/emberMessage/emberMessage.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mEAAmE,CAAC;AAEvG,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { z } from 'zod';
2
+ export declare const emberMessageSchema: z.ZodObject<{
3
+ question: z.ZodString;
4
+ }, z.core.$strip>;
5
+ export type EmberMessage = z.infer<typeof emberMessageSchema>;
6
+ //# sourceMappingURL=emberMessage.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emberMessage.schema.d.ts","sourceRoot":"","sources":["../../../../../src/modules/ember-chat/entities/emberMessage/emberMessage.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB;;iBAE7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { z } from 'zod';
2
+ export const emberMessageSchema = z.object({
3
+ question: z.string().trim().min(1),
4
+ });
5
+ //# sourceMappingURL=emberMessage.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emberMessage.schema.js","sourceRoot":"","sources":["../../../../../src/modules/ember-chat/entities/emberMessage/emberMessage.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACnC,CAAC,CAAC"}