crewly 1.8.13 → 1.10.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 (174) hide show
  1. package/config/roles/orchestrator/prompt.md +55 -2
  2. package/config/roles/product-manager/prompt.md +40 -0
  3. package/config/roles/team-leader/prompt.md +33 -0
  4. package/config/skills/agent/core/get-sops/SKILL.md +6 -2
  5. package/config/skills/agent/core/get-sops/execute.sh +26 -1
  6. package/config/skills/agent/core/get-team-norms/SKILL.md +69 -0
  7. package/config/skills/agent/core/update-sop/SKILL.md +73 -0
  8. package/config/skills/agent/core/update-sop/execute.sh +115 -0
  9. package/config/skills/agent/core/update-team-norm/SKILL.md +67 -0
  10. package/config/skills/orchestrator/decompose-okr/SKILL.md +107 -0
  11. package/config/skills/orchestrator/decompose-okr/execute.sh +142 -0
  12. package/config/skills/registry.json +52 -6
  13. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.d.ts +2 -0
  14. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.d.ts.map +1 -1
  15. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js +50 -1
  16. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js.map +1 -1
  17. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.d.ts +2 -0
  18. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.d.ts.map +1 -1
  19. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.js +6 -2
  20. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.js.map +1 -1
  21. package/dist/backend/backend/src/controllers/mission/kr.controller.d.ts +8 -0
  22. package/dist/backend/backend/src/controllers/mission/kr.controller.d.ts.map +1 -1
  23. package/dist/backend/backend/src/controllers/mission/kr.controller.js +17 -0
  24. package/dist/backend/backend/src/controllers/mission/kr.controller.js.map +1 -1
  25. package/dist/backend/backend/src/controllers/mission/mission-policy.routes.d.ts.map +1 -1
  26. package/dist/backend/backend/src/controllers/mission/mission-policy.routes.js +198 -26
  27. package/dist/backend/backend/src/controllers/mission/mission-policy.routes.js.map +1 -1
  28. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
  29. package/dist/backend/backend/src/controllers/slack/slack.controller.js +10 -0
  30. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  31. package/dist/backend/backend/src/controllers/system/system.controller.d.ts.map +1 -1
  32. package/dist/backend/backend/src/controllers/system/system.controller.js +2 -1
  33. package/dist/backend/backend/src/controllers/system/system.controller.js.map +1 -1
  34. package/dist/backend/backend/src/controllers/team/team.controller.d.ts +17 -0
  35. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  36. package/dist/backend/backend/src/controllers/team/team.controller.js +32 -0
  37. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  38. package/dist/backend/backend/src/controllers/wiki/wiki.controller.d.ts +45 -0
  39. package/dist/backend/backend/src/controllers/wiki/wiki.controller.d.ts.map +1 -1
  40. package/dist/backend/backend/src/controllers/wiki/wiki.controller.js +364 -46
  41. package/dist/backend/backend/src/controllers/wiki/wiki.controller.js.map +1 -1
  42. package/dist/backend/backend/src/controllers/wiki/wiki.routes.d.ts.map +1 -1
  43. package/dist/backend/backend/src/controllers/wiki/wiki.routes.js +9 -1
  44. package/dist/backend/backend/src/controllers/wiki/wiki.routes.js.map +1 -1
  45. package/dist/backend/backend/src/index.d.ts.map +1 -1
  46. package/dist/backend/backend/src/index.js +44 -70
  47. package/dist/backend/backend/src/index.js.map +1 -1
  48. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  49. package/dist/backend/backend/src/routes/api.routes.js +12 -6
  50. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  51. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +13 -4
  52. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  53. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +47 -11
  54. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  55. package/dist/backend/backend/src/services/chat-v2/chat-v2.providers.d.ts +28 -0
  56. package/dist/backend/backend/src/services/chat-v2/chat-v2.providers.d.ts.map +1 -1
  57. package/dist/backend/backend/src/services/chat-v2/chat-v2.providers.js +49 -0
  58. package/dist/backend/backend/src/services/chat-v2/chat-v2.providers.js.map +1 -1
  59. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts +60 -2
  60. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
  61. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js +93 -3
  62. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
  63. package/dist/backend/backend/src/services/chat-v2/legacy-dto.utils.d.ts +25 -0
  64. package/dist/backend/backend/src/services/chat-v2/legacy-dto.utils.d.ts.map +1 -1
  65. package/dist/backend/backend/src/services/chat-v2/legacy-dto.utils.js +33 -0
  66. package/dist/backend/backend/src/services/chat-v2/legacy-dto.utils.js.map +1 -1
  67. package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.d.ts +28 -0
  68. package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.d.ts.map +1 -1
  69. package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.js +48 -0
  70. package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.js.map +1 -1
  71. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts +21 -0
  72. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
  73. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js +30 -0
  74. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
  75. package/dist/backend/backend/src/services/chat-v2/types.d.ts +14 -0
  76. package/dist/backend/backend/src/services/chat-v2/types.d.ts.map +1 -1
  77. package/dist/backend/backend/src/services/chat-v2/types.js.map +1 -1
  78. package/dist/backend/backend/src/services/index.d.ts +0 -1
  79. package/dist/backend/backend/src/services/index.d.ts.map +1 -1
  80. package/dist/backend/backend/src/services/index.js +0 -1
  81. package/dist/backend/backend/src/services/index.js.map +1 -1
  82. package/dist/backend/backend/src/services/intent-task/intent-task-follow-up.service.d.ts +26 -108
  83. package/dist/backend/backend/src/services/intent-task/intent-task-follow-up.service.d.ts.map +1 -1
  84. package/dist/backend/backend/src/services/intent-task/intent-task-follow-up.service.js +26 -214
  85. package/dist/backend/backend/src/services/intent-task/intent-task-follow-up.service.js.map +1 -1
  86. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts +11 -0
  87. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts.map +1 -1
  88. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js +36 -0
  89. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -1
  90. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +10 -0
  91. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  92. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +21 -0
  93. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  94. package/dist/backend/backend/src/services/slack/slack.service.d.ts +12 -0
  95. package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
  96. package/dist/backend/backend/src/services/slack/slack.service.js +53 -1
  97. package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
  98. package/dist/backend/backend/src/services/sop/sop.service.d.ts +10 -0
  99. package/dist/backend/backend/src/services/sop/sop.service.d.ts.map +1 -1
  100. package/dist/backend/backend/src/services/sop/sop.service.js +71 -10
  101. package/dist/backend/backend/src/services/sop/sop.service.js.map +1 -1
  102. package/dist/backend/backend/src/services/v3/kr-tracking.service.d.ts +92 -1
  103. package/dist/backend/backend/src/services/v3/kr-tracking.service.d.ts.map +1 -1
  104. package/dist/backend/backend/src/services/v3/kr-tracking.service.js +169 -1
  105. package/dist/backend/backend/src/services/v3/kr-tracking.service.js.map +1 -1
  106. package/dist/backend/backend/src/services/v3/mission-period.service.d.ts.map +1 -1
  107. package/dist/backend/backend/src/services/v3/mission-period.service.js +7 -1
  108. package/dist/backend/backend/src/services/v3/mission-period.service.js.map +1 -1
  109. package/dist/backend/backend/src/services/v3/okr-cascade.service.d.ts +217 -0
  110. package/dist/backend/backend/src/services/v3/okr-cascade.service.d.ts.map +1 -0
  111. package/dist/backend/backend/src/services/v3/okr-cascade.service.js +417 -0
  112. package/dist/backend/backend/src/services/v3/okr-cascade.service.js.map +1 -0
  113. package/dist/backend/backend/src/services/v3/okr-review.service.d.ts +11 -0
  114. package/dist/backend/backend/src/services/v3/okr-review.service.d.ts.map +1 -1
  115. package/dist/backend/backend/src/services/v3/okr-review.service.js +50 -0
  116. package/dist/backend/backend/src/services/v3/okr-review.service.js.map +1 -1
  117. package/dist/backend/backend/src/services/wiki/sop-catalog.service.d.ts +83 -0
  118. package/dist/backend/backend/src/services/wiki/sop-catalog.service.d.ts.map +1 -0
  119. package/dist/backend/backend/src/services/wiki/sop-catalog.service.js +185 -0
  120. package/dist/backend/backend/src/services/wiki/sop-catalog.service.js.map +1 -0
  121. package/dist/backend/backend/src/services/wiki/wiki-cleanup.service.d.ts.map +1 -1
  122. package/dist/backend/backend/src/services/wiki/wiki-cleanup.service.js +12 -0
  123. package/dist/backend/backend/src/services/wiki/wiki-cleanup.service.js.map +1 -1
  124. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.d.ts +91 -0
  125. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.d.ts.map +1 -1
  126. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.js +180 -0
  127. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.js.map +1 -1
  128. package/dist/backend/backend/src/services/wiki/wiki-overlay.resolver.d.ts +43 -0
  129. package/dist/backend/backend/src/services/wiki/wiki-overlay.resolver.d.ts.map +1 -0
  130. package/dist/backend/backend/src/services/wiki/wiki-overlay.resolver.js +67 -0
  131. package/dist/backend/backend/src/services/wiki/wiki-overlay.resolver.js.map +1 -0
  132. package/dist/backend/backend/src/services/wiki/wiki-search.service.d.ts +79 -19
  133. package/dist/backend/backend/src/services/wiki/wiki-search.service.d.ts.map +1 -1
  134. package/dist/backend/backend/src/services/wiki/wiki-search.service.js +275 -106
  135. package/dist/backend/backend/src/services/wiki/wiki-search.service.js.map +1 -1
  136. package/dist/backend/backend/src/services/wiki/wiki-workitem-bridge.service.d.ts.map +1 -1
  137. package/dist/backend/backend/src/services/wiki/wiki-workitem-bridge.service.js +13 -0
  138. package/dist/backend/backend/src/services/wiki/wiki-workitem-bridge.service.js.map +1 -1
  139. package/dist/backend/backend/src/services/workflow/cron-task.service.d.ts +13 -0
  140. package/dist/backend/backend/src/services/workflow/cron-task.service.d.ts.map +1 -1
  141. package/dist/backend/backend/src/services/workflow/cron-task.service.js +43 -3
  142. package/dist/backend/backend/src/services/workflow/cron-task.service.js.map +1 -1
  143. package/dist/backend/backend/src/types/sop.types.d.ts +7 -0
  144. package/dist/backend/backend/src/types/sop.types.d.ts.map +1 -1
  145. package/dist/backend/backend/src/types/sop.types.js.map +1 -1
  146. package/dist/backend/backend/src/types/v2/index.d.ts +4 -4
  147. package/dist/backend/backend/src/types/v2/index.d.ts.map +1 -1
  148. package/dist/backend/backend/src/types/v2/index.js +2 -2
  149. package/dist/backend/backend/src/types/v2/index.js.map +1 -1
  150. package/dist/backend/backend/src/types/v2/key-result.types.d.ts +84 -0
  151. package/dist/backend/backend/src/types/v2/key-result.types.d.ts.map +1 -1
  152. package/dist/backend/backend/src/types/v2/key-result.types.js +73 -3
  153. package/dist/backend/backend/src/types/v2/key-result.types.js.map +1 -1
  154. package/dist/backend/backend/src/types/v2/mission.types.d.ts +235 -0
  155. package/dist/backend/backend/src/types/v2/mission.types.d.ts.map +1 -1
  156. package/dist/backend/backend/src/types/v2/mission.types.js +230 -0
  157. package/dist/backend/backend/src/types/v2/mission.types.js.map +1 -1
  158. package/dist/backend/backend/src/types/v2/work-item.types.d.ts +7 -0
  159. package/dist/backend/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  160. package/dist/backend/backend/src/types/v2/work-item.types.js +1 -1
  161. package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -1
  162. package/dist/cli/backend/src/types/sop.types.d.ts +7 -0
  163. package/dist/cli/backend/src/types/sop.types.d.ts.map +1 -1
  164. package/dist/cli/backend/src/types/sop.types.js.map +1 -1
  165. package/dist/cli/backend/src/types/v2/work-item.types.d.ts +7 -0
  166. package/dist/cli/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  167. package/dist/cli/backend/src/types/v2/work-item.types.js +1 -1
  168. package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -1
  169. package/frontend/dist/assets/index-4099a91c.js +4961 -0
  170. package/frontend/dist/assets/index-44266b5d.css +42 -0
  171. package/frontend/dist/index.html +2 -2
  172. package/package.json +1 -1
  173. package/frontend/dist/assets/index-068bb4f6.css +0 -42
  174. package/frontend/dist/assets/index-c24ceb15.js +0 -4960
@@ -5,16 +5,23 @@
5
5
  * per-file matches with line numbers + short snippets so the UI can render
6
6
  * a result list and let the user jump straight to a page.
7
7
  *
8
- * Phase 1: simple case-insensitive substring search. No tokenization,
9
- * stemming, or inverted index. The vaults here are O(100s) of pages so
10
- * walking + grepping per request is fine; we'll revisit when volumes
11
- * justify a real index.
8
+ * Ranking: Okapi **BM25** (term-frequency saturation via `k1`, length
9
+ * normalisation via `b`, inverse-document-frequency weighting) computed
10
+ * per request. No external index the vaults here are O(100s) of pages so
11
+ * a per-request scan + score is fine; revisit with a persisted index when
12
+ * volumes justify it. Tokenisation is Unicode-aware: Latin word tokens plus
13
+ * individual CJK characters, so Chinese/Japanese content is searchable.
14
+ *
15
+ * Scope: walks the vault directory AND the per-team overlay sources
16
+ * (`sop/` → installed/custom SOPs, `team-norm/` → team norms) so SOP and
17
+ * norm content is searchable even though it lives outside the vault.
12
18
  *
13
19
  * @module services/wiki/wiki-search.service
14
20
  */
15
21
  import * as fs from 'fs/promises';
16
22
  import * as path from 'path';
17
23
  import { existsSync } from 'fs';
24
+ import { overlayRootFor } from './wiki-overlay.resolver.js';
18
25
  /** Cap on how many .md files are inspected per search. */
19
26
  export const WIKI_SEARCH_MAX_FILES = 500;
20
27
  /** Cap on how many results returned to the caller. */
@@ -25,10 +32,46 @@ export const WIKI_SEARCH_MAX_SNIPPETS_PER_FILE = 3;
25
32
  export const WIKI_SEARCH_MAX_QUERY_LENGTH = 200;
26
33
  /** Cap on per-file size we will read; larger files are skipped. */
27
34
  export const WIKI_SEARCH_MAX_FILE_BYTES = 256 * 1024;
35
+ /** BM25 term-frequency saturation parameter (standard default). */
36
+ const BM25_K1 = 1.2;
37
+ /** BM25 length-normalisation parameter (standard default). */
38
+ const BM25_B = 0.75;
39
+ /** Weight applied to filename/title tokens when folded into a doc's terms. */
40
+ const FILENAME_TOKEN_WEIGHT = 3;
41
+ /**
42
+ * Tokenise text into searchable terms: lowercase Latin word runs
43
+ * (`[a-z0-9]+`) plus individual CJK characters (Han, Hiragana, Katakana),
44
+ * so both English and Chinese/Japanese content is matched.
45
+ *
46
+ * @param text - Raw text to tokenise.
47
+ * @returns Array of lowercase tokens (order preserved, duplicates kept).
48
+ */
49
+ export function tokenize(text) {
50
+ const lower = text.toLowerCase();
51
+ const latin = lower.match(/[a-z0-9]+/g) ?? [];
52
+ const cjk = lower.match(/[\u3040-\u30ff\u3400-\u4dbf\u4e00-\u9fff\uf900-\ufaff]/g) ?? [];
53
+ return [...latin, ...cjk];
54
+ }
55
+ /** Whether a query term is a Latin word (eligible for prefix matching). */
56
+ function isLatin(term) {
57
+ return /^[a-z0-9]+$/.test(term);
58
+ }
28
59
  /**
29
- * Service exposing `search()`. Stateless singleton the constructor is
30
- * empty but we use the class pattern to match the rest of the wiki
31
- * services (`WikiBookkeepService.getInstance()`, etc.).
60
+ * Does a document token satisfy a query term? Exact match always; for Latin
61
+ * query terms of length 3 a prefix match also counts (so `deploy` finds
62
+ * `deployment`), preserving the leniency of the old substring search.
63
+ */
64
+ function tokenMatches(docToken, queryTerm) {
65
+ if (docToken === queryTerm)
66
+ return true;
67
+ if (queryTerm.length >= 3 && isLatin(queryTerm) && docToken.startsWith(queryTerm)) {
68
+ return true;
69
+ }
70
+ return false;
71
+ }
72
+ /**
73
+ * Service exposing `search()`. Stateless singleton — matches the pattern of
74
+ * the other wiki services (`WikiBookkeepService.getInstance()`, etc.).
32
75
  */
33
76
  export class WikiSearchService {
34
77
  static instance = null;
@@ -42,149 +85,275 @@ export class WikiSearchService {
42
85
  static resetInstance() {
43
86
  this.instance = null;
44
87
  }
88
+ /** Validate + normalise a query, or return a structured failure. */
89
+ validateQuery(raw) {
90
+ const query = (raw ?? '').trim();
91
+ if (query.length === 0) {
92
+ return { ok: false, reason: 'invalid_query', message: 'query must be at least one non-whitespace character' };
93
+ }
94
+ if (query.length > WIKI_SEARCH_MAX_QUERY_LENGTH) {
95
+ return { ok: false, reason: 'invalid_query', message: `query exceeds ${WIKI_SEARCH_MAX_QUERY_LENGTH} characters` };
96
+ }
97
+ return { query };
98
+ }
45
99
  /**
46
- * Search a vault. Returns either `{ok:true, hits}` or a structured
47
- * failure. The handler never throws on filesystem read errors — they
48
- * are silently skipped so one bad file doesn't blank the whole result.
100
+ * Search a single vault and rank results with BM25. Returns either
101
+ * `{ok:true, hits}` or a structured failure. Filesystem read errors are
102
+ * silently skipped so one bad file doesn't blank the whole result.
49
103
  */
50
104
  async search(input) {
51
105
  const vaultPath = input.vaultPath;
52
- const rawQuery = input.query ?? '';
53
106
  if (!vaultPath || !path.isAbsolute(vaultPath)) {
54
- return {
55
- ok: false,
56
- reason: 'invalid_input',
57
- message: 'vaultPath must be an absolute path',
58
- };
107
+ return { ok: false, reason: 'invalid_input', message: 'vaultPath must be an absolute path' };
59
108
  }
60
109
  if (!existsSync(vaultPath)) {
61
110
  return { ok: false, reason: 'vault_missing', message: `vault not found: ${vaultPath}` };
62
111
  }
63
- const query = rawQuery.trim();
64
- if (query.length === 0) {
65
- return {
66
- ok: false,
67
- reason: 'invalid_query',
68
- message: 'query must be at least one non-whitespace character',
69
- };
112
+ const v = this.validateQuery(input.query);
113
+ if ('ok' in v)
114
+ return v;
115
+ const refs = (await this.collectDocs(vaultPath)).map((r) => ({ vaultPath, ...r }));
116
+ const { hits, truncated } = await this._searchCorpus(refs, v.query);
117
+ return { ok: true, vaultPath, query: v.query, hits, truncated };
118
+ }
119
+ /**
120
+ * Search across MANY vaults and return one merged BM25-ranked list. IDF is
121
+ * computed over the combined corpus so scores are comparable across vaults.
122
+ * Each hit carries its owning `vaultPath` (+ `vaultLabel` when provided).
123
+ */
124
+ async searchAllVaults(input) {
125
+ const v = this.validateQuery(input.query);
126
+ if ('ok' in v)
127
+ return v;
128
+ const labelByPath = new Map();
129
+ const refs = [];
130
+ for (const vault of input.vaults) {
131
+ if (!vault.vaultPath || !existsSync(vault.vaultPath))
132
+ continue;
133
+ if (vault.label)
134
+ labelByPath.set(vault.vaultPath, vault.label);
135
+ for (const r of await this.collectDocs(vault.vaultPath)) {
136
+ refs.push({ vaultPath: vault.vaultPath, ...r });
137
+ if (refs.length >= WIKI_SEARCH_MAX_FILES)
138
+ break;
139
+ }
140
+ if (refs.length >= WIKI_SEARCH_MAX_FILES)
141
+ break;
70
142
  }
71
- if (query.length > WIKI_SEARCH_MAX_QUERY_LENGTH) {
72
- return {
73
- ok: false,
74
- reason: 'invalid_query',
75
- message: `query exceeds ${WIKI_SEARCH_MAX_QUERY_LENGTH} characters`,
76
- };
77
- }
78
- const needle = query.toLowerCase();
79
- const allFiles = [];
80
- await this.collectMdFiles(vaultPath, vaultPath, allFiles);
81
- const truncatedFiles = allFiles.length >= WIKI_SEARCH_MAX_FILES;
82
- const slice = allFiles.slice(0, WIKI_SEARCH_MAX_FILES);
83
- const hits = [];
84
- for (const relativePath of slice) {
85
- const hit = await this.searchFile(vaultPath, relativePath, needle);
86
- if (hit)
87
- hits.push(hit);
88
- }
89
- // Rank: filename matches first, then matchCount desc, then path asc for stability.
90
- hits.sort((a, b) => {
91
- if (a.filenameMatch !== b.filenameMatch)
92
- return a.filenameMatch ? -1 : 1;
93
- if (a.matchCount !== b.matchCount)
94
- return b.matchCount - a.matchCount;
95
- return a.relativePath.localeCompare(b.relativePath);
143
+ const { hits, truncated } = await this._searchCorpus(refs, v.query);
144
+ for (const h of hits) {
145
+ if (h.vaultPath)
146
+ h.vaultLabel = labelByPath.get(h.vaultPath);
147
+ }
148
+ return { ok: true, vaultPath: '', query: v.query, hits, truncated };
149
+ }
150
+ /**
151
+ * Core BM25 search over an arbitrary corpus of doc refs (one or many vaults).
152
+ * Builds the combined corpus statistics, scores, ranks, and attaches snippets
153
+ * for the top results. Each hit carries its owning `vaultPath`.
154
+ */
155
+ async _searchCorpus(docRefs, query) {
156
+ const queryTerms = Array.from(new Set(tokenize(query)));
157
+ const needleLower = query.toLowerCase();
158
+ const truncatedFiles = docRefs.length >= WIKI_SEARCH_MAX_FILES;
159
+ const slice = docRefs.slice(0, WIKI_SEARCH_MAX_FILES);
160
+ // Pass 1: read + tokenise each doc, accumulate query-term frequencies + length.
161
+ const docs = [];
162
+ for (const ref of slice) {
163
+ const doc = await this.statDoc(ref, queryTerms);
164
+ if (doc)
165
+ docs.push(doc);
166
+ }
167
+ if (queryTerms.length === 0)
168
+ return { hits: [], truncated: truncatedFiles };
169
+ const N = docs.length || 1;
170
+ const avgdl = docs.reduce((s, d) => s + d.length, 0) / N || 1;
171
+ // Document frequency per query term, then IDF (always positive).
172
+ const idf = new Map();
173
+ for (const term of queryTerms) {
174
+ let n = 0;
175
+ for (const d of docs)
176
+ if ((d.termFreq.get(term) ?? 0) > 0)
177
+ n++;
178
+ idf.set(term, Math.log(1 + (N - n + 0.5) / (n + 0.5)));
179
+ }
180
+ const scored = docs
181
+ .map((d) => ({ doc: d, score: this.bm25Score(d, queryTerms, idf, avgdl) }))
182
+ .filter((s) => s.score > 0);
183
+ // Rank: filename/title matches first, then BM25 score, then path for stability.
184
+ scored.sort((a, b) => {
185
+ if (a.doc.filenameMatch !== b.doc.filenameMatch)
186
+ return a.doc.filenameMatch ? -1 : 1;
187
+ if (b.score !== a.score)
188
+ return b.score - a.score;
189
+ return a.doc.relativePath.localeCompare(b.doc.relativePath);
96
190
  });
97
- const truncatedResults = hits.length > WIKI_SEARCH_MAX_RESULTS;
98
- const capped = hits.slice(0, WIKI_SEARCH_MAX_RESULTS);
99
- const truncated = truncatedFiles || truncatedResults;
100
- return { ok: true, vaultPath, query, hits: capped, truncated };
191
+ const truncatedResults = scored.length > WIKI_SEARCH_MAX_RESULTS;
192
+ const top = scored.slice(0, WIKI_SEARCH_MAX_RESULTS);
193
+ // Pass 2: build snippets only for the top results (re-read those files).
194
+ const hits = [];
195
+ for (const { doc, score } of top) {
196
+ const { matchCount, snippets } = await this.buildSnippets(doc.absPath, queryTerms, needleLower);
197
+ hits.push({
198
+ relativePath: doc.relativePath,
199
+ filenameMatch: doc.filenameMatch,
200
+ matchCount,
201
+ score: Math.round(score * 1000) / 1000,
202
+ snippets,
203
+ vaultPath: doc.vaultPath,
204
+ });
205
+ }
206
+ return { hits, truncated: truncatedFiles || truncatedResults };
101
207
  }
102
208
  /**
103
- * Recursive walk collecting `.md` files. Skips dotfile dirs (e.g.
104
- * `.git`, `.queue`) and stops once `WIKI_SEARCH_MAX_FILES` is reached.
209
+ * Collect candidate `.md` documents: the vault tree plus the per-team
210
+ * overlay sources (`sop/`, `team-norm/`). Overlay paths are prefixed with
211
+ * the folder name so they resolve back through the page endpoint.
105
212
  *
106
- * @param rootDir - vault root (used to compute relativePath).
107
- * @param dir - current directory being walked.
108
- * @param acc - accumulator populated with relative paths.
213
+ * @param vaultPath - Absolute vault root.
214
+ * @returns Deduped list of `{ relativePath, absPath }`, capped at the limit.
109
215
  */
110
- async collectMdFiles(rootDir, dir, acc) {
111
- if (acc.length >= WIKI_SEARCH_MAX_FILES)
112
- return;
113
- let entries;
114
- try {
115
- entries = await fs.readdir(dir, { withFileTypes: true });
216
+ async collectDocs(vaultPath) {
217
+ const seen = new Set();
218
+ const out = [];
219
+ const add = (relativePath, absPath) => {
220
+ if (seen.has(relativePath))
221
+ return;
222
+ seen.add(relativePath);
223
+ out.push({ relativePath, absPath });
224
+ };
225
+ for (const rel of await this.walkMd(vaultPath)) {
226
+ if (out.length >= WIKI_SEARCH_MAX_FILES)
227
+ return out;
228
+ add(rel, path.join(vaultPath, rel));
116
229
  }
117
- catch {
118
- return;
230
+ for (const folder of ['sop', 'team-norm']) {
231
+ const root = overlayRootFor(vaultPath, folder);
232
+ if (!root || !existsSync(root))
233
+ continue;
234
+ for (const rel of await this.walkMd(root)) {
235
+ if (out.length >= WIKI_SEARCH_MAX_FILES)
236
+ return out;
237
+ add(`${folder}/${rel}`, path.join(root, rel));
238
+ }
119
239
  }
120
- for (const entry of entries) {
240
+ return out;
241
+ }
242
+ /**
243
+ * Recursively collect `.md` files under `root`, returned as root-relative
244
+ * POSIX paths. Skips dotfile dirs (`.git`, `.queue`) and stops at the cap.
245
+ */
246
+ async walkMd(root) {
247
+ const acc = [];
248
+ const walk = async (dir) => {
121
249
  if (acc.length >= WIKI_SEARCH_MAX_FILES)
122
250
  return;
123
- if (entry.name.startsWith('.'))
124
- continue;
125
- const abs = path.join(dir, entry.name);
126
- if (entry.isDirectory()) {
127
- await this.collectMdFiles(rootDir, abs, acc);
251
+ let entries;
252
+ try {
253
+ entries = await fs.readdir(dir, { withFileTypes: true });
128
254
  }
129
- else if (entry.isFile() && entry.name.endsWith('.md')) {
130
- const rel = path.relative(rootDir, abs).replace(/\\/g, '/');
131
- acc.push(rel);
255
+ catch {
256
+ return;
132
257
  }
133
- }
258
+ for (const entry of entries) {
259
+ if (acc.length >= WIKI_SEARCH_MAX_FILES)
260
+ return;
261
+ if (entry.name.startsWith('.'))
262
+ continue;
263
+ const abs = path.join(dir, entry.name);
264
+ if (entry.isDirectory()) {
265
+ await walk(abs);
266
+ }
267
+ else if (entry.isFile() && entry.name.endsWith('.md')) {
268
+ acc.push(path.relative(root, abs).replace(/\\/g, '/'));
269
+ }
270
+ }
271
+ };
272
+ await walk(root);
273
+ return acc;
134
274
  }
135
275
  /**
136
- * Read one file and accumulate up to `WIKI_SEARCH_MAX_SNIPPETS_PER_FILE`
137
- * snippets. Returns null when the file matches nothing.
276
+ * Read a doc and compute its length + per-query-term frequencies. Filename
277
+ * tokens are folded in (weighted) so title relevance contributes to BM25.
278
+ * Returns null only on unreadable/oversize files with no filename match.
138
279
  */
139
- async searchFile(vaultPath, relativePath, needle) {
140
- const absPath = path.join(vaultPath, relativePath);
141
- const filenameMatch = relativePath.toLowerCase().includes(needle);
142
- let stat;
280
+ async statDoc(ref, queryTerms) {
281
+ const { vaultPath, relativePath, absPath } = ref;
282
+ const filenameMatch = queryTerms.some((t) => relativePath.toLowerCase().includes(t));
283
+ // Filename/title tokens, folded in with a weight.
284
+ const nameTokens = tokenize(path.basename(relativePath, '.md'));
285
+ const termFreq = new Map();
286
+ let length = 0;
287
+ const tally = (tokens, weight) => {
288
+ for (const tok of tokens) {
289
+ length += weight;
290
+ for (const term of queryTerms) {
291
+ if (tokenMatches(tok, term)) {
292
+ termFreq.set(term, (termFreq.get(term) ?? 0) + weight);
293
+ }
294
+ }
295
+ }
296
+ };
297
+ tally(nameTokens, FILENAME_TOKEN_WEIGHT);
298
+ let content = '';
143
299
  try {
144
- stat = await fs.stat(absPath);
300
+ const stat = await fs.stat(absPath);
301
+ if (stat.size <= WIKI_SEARCH_MAX_FILE_BYTES) {
302
+ content = await fs.readFile(absPath, 'utf8');
303
+ }
145
304
  }
146
305
  catch {
147
- return filenameMatch
148
- ? { relativePath, filenameMatch: true, matchCount: 0, snippets: [] }
149
- : null;
306
+ // unreadable — fall through with filename tokens only
150
307
  }
151
- if (stat.size > WIKI_SEARCH_MAX_FILE_BYTES) {
152
- return filenameMatch
153
- ? { relativePath, filenameMatch: true, matchCount: 0, snippets: [] }
154
- : null;
308
+ if (content)
309
+ tally(tokenize(content), 1);
310
+ // Keep filename-only matches discoverable even with no body match.
311
+ if (length === 0) {
312
+ return filenameMatch ? { vaultPath, relativePath, absPath, filenameMatch, length: 1, termFreq } : null;
155
313
  }
314
+ return { vaultPath, relativePath, absPath, filenameMatch, length, termFreq };
315
+ }
316
+ /**
317
+ * Standard Okapi BM25 score for a doc against the query terms.
318
+ */
319
+ bm25Score(doc, queryTerms, idf, avgdl) {
320
+ let score = 0;
321
+ for (const term of queryTerms) {
322
+ const f = doc.termFreq.get(term) ?? 0;
323
+ if (f === 0)
324
+ continue;
325
+ const denom = f + BM25_K1 * (1 - BM25_B + (BM25_B * doc.length) / avgdl);
326
+ score += (idf.get(term) ?? 0) * ((f * (BM25_K1 + 1)) / denom);
327
+ }
328
+ return score;
329
+ }
330
+ /**
331
+ * Re-read a top-ranked file and extract matching-line snippets (a line
332
+ * matches when it contains any query term as a substring). Returns the
333
+ * total content match count + up to the snippet cap.
334
+ */
335
+ async buildSnippets(absPath, queryTerms, needleLower) {
156
336
  let content;
157
337
  try {
158
338
  content = await fs.readFile(absPath, 'utf8');
159
339
  }
160
340
  catch {
161
- return filenameMatch
162
- ? { relativePath, filenameMatch: true, matchCount: 0, snippets: [] }
163
- : null;
341
+ return { matchCount: 0, snippets: [] };
164
342
  }
165
343
  const lines = content.split(/\r?\n/);
166
344
  const snippets = [];
167
345
  let matchCount = 0;
168
346
  for (let i = 0; i < lines.length; i++) {
169
- const line = lines[i];
170
- if (line.toLowerCase().includes(needle)) {
347
+ const lineLower = lines[i].toLowerCase();
348
+ const matched = lineLower.includes(needleLower) || queryTerms.some((t) => lineLower.includes(t));
349
+ if (matched) {
171
350
  matchCount++;
172
351
  if (snippets.length < WIKI_SEARCH_MAX_SNIPPETS_PER_FILE) {
173
- snippets.push({
174
- lineNumber: i + 1,
175
- text: line.trim().slice(0, 300),
176
- });
352
+ snippets.push({ lineNumber: i + 1, text: lines[i].trim().slice(0, 300) });
177
353
  }
178
354
  }
179
355
  }
180
- if (matchCount === 0 && !filenameMatch)
181
- return null;
182
- return {
183
- relativePath,
184
- filenameMatch,
185
- matchCount,
186
- snippets,
187
- };
356
+ return { matchCount, snippets };
188
357
  }
189
358
  }
190
359
  //# sourceMappingURL=wiki-search.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wiki-search.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/wiki/wiki-search.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wiki-search.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/wiki/wiki-search.service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"wiki-workitem-bridge.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/wiki/wiki-workitem-bridge.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wiki-workitem-bridge.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/wiki/wiki-workitem-bridge.service.ts"],"names":[],"mappings":"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"}
@@ -262,6 +262,13 @@ export class WikiWorkItemBridgeService {
262
262
  start() {
263
263
  if (this.timer)
264
264
  return;
265
+ // Off-switch (ops kill-switch). Set WIKI_BRIDGE_ENABLED=false to pause all
266
+ // wiki maintenance dispatch (drain/migrate/cleanup) without a code change
267
+ // or losing the feature — e.g. to stop a runaway loop while a fix ships.
268
+ if (process.env['WIKI_BRIDGE_ENABLED'] === 'false') {
269
+ this.logger.warn('WikiWorkItemBridge disabled via WIKI_BRIDGE_ENABLED=false — not starting');
270
+ return;
271
+ }
265
272
  void this.tick();
266
273
  this.timer = setInterval(() => void this.tick(), this.intervalMs);
267
274
  this.logger.info('WikiWorkItemBridge started', {
@@ -452,6 +459,12 @@ export class WikiWorkItemBridgeService {
452
459
  const inflightCleanupVaults = new Set();
453
460
  const allItems = await this.pool.getAllItems();
454
461
  for (const wi of allItems) {
462
+ // Terminal WIs don't block re-creation here BY DESIGN (e.g. draining the
463
+ // next queue chunk after the prior drain completes). The per-key cooldown
464
+ // (default 30 min, persisted) is what spaces successive creates; the
465
+ // "terminal tasks reviving" the orc saw was the reconciler redeliver
466
+ // flood + the orc-notes self-loop, fixed separately (reconciler cooldown
467
+ // + cleanup author guard), not a gap here.
455
468
  if (TERMINAL_STATUSES.has(wi.status))
456
469
  continue;
457
470
  const meta = wi.metadata ?? {};
@@ -1 +1 @@
1
- {"version":3,"file":"wiki-workitem-bridge.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/wiki/wiki-workitem-bridge.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AAChD,OAAO,EAAE,aAAa,EAAwB,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC3C,MAAM,oBAAoB,GAAG,YAAY,CAAC;AAC1C;;;;;;;;GAQG;AACH,MAAM,4BAA4B,GAAG,CAAC,CAAC;AACvC;;;;;;;;;;;GAWG;AACH,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC3C;;;;;;GAMG;AACH,MAAM,eAAe,GAAG,wBAAwB,CAAC;AACjD,8EAA8E;AAC9E,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB;;;GAGG;AACH,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAQ/B,SAAS,UAAU;IACjB,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;AACvD,CAAC;AAED,sEAAsE;AACtE,MAAM,CAAC,MAAM,oBAAoB,GAAG,kBAA2B,CAAC;AAChE,2EAA2E;AAC3E,MAAM,CAAC,MAAM,sBAAsB,GAAG,qBAA8B,CAAC;AACrE,wFAAwF;AACxF,MAAM,CAAC,MAAM,sBAAsB,GAAG,sBAA+B,CAAC;AAEtE;;;;;;GAMG;AACH,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B;;;;GAIG;AACH,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAElC,MAAM,iBAAiB,GAAgC,IAAI,GAAG,CAAiB;IAC7E,MAAM;IACN,UAAU;IACV,WAAW;IACX,QAAQ;IACR,UAAU;CACX,CAAC,CAAC;AA4DH;;;GAGG;AACH,MAAM,OAAO,yBAAyB;IAC5B,MAAM,CAAC,QAAQ,GAAqC,IAAI,CAAC;IAChD,MAAM,CAAkB;IACxB,UAAU,CAAS;IACnB,WAAW,CAAS;IACpB,iBAAiB,CAAS;IAC1B,UAAU,CAAS;IACnB,KAAK,CAAe;IACpB,aAAa,CAA0B;IACvC,oBAAoB,CAA0B;IAC9C,KAAK,CAAmB;IACxB,OAAO,CAAqB;IAC5B,OAAO,CAAqB;IAC5B,IAAI,CAAkB;IAC/B,KAAK,GAA0B,IAAI,CAAC;IACpC,OAAO,GAAG,KAAK,CAAC;IACxB,0EAA0E;IACzD,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3D,wEAAwE;IACvD,SAAS,CAAgB;IAC1C,sEAAsE;IAC9D,WAAW,GAAG,KAAK,CAAC;IAE5B,YAAY,OAAkC,EAAE;QAC9C,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,CAAC;QACtF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,mBAAmB,CAAC;QACzD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,oBAAoB,CAAC;QAC5D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,iBAAiB,IAAI,4BAA4B,CAAC,CAAC;QAC7F,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,IAAI,mBAAmB,CAAC,CAAC;QACtE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,kBAAkB,CAAC;QAC9D,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,IAAI,mBAAmB,CAAC;QAC7E,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,IAAI,gBAAgB,CAAC,WAAW,EAAE,CAAC;QACjE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,IAAI,kBAAkB,CAAC,WAAW,EAAE,CAAC;QACvE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,IAAI,kBAAkB,CAAC,WAAW,EAAE,CAAC;QACvE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,IAAI,eAAe,CAAC,WAAW,EAAE,CAAC;QAC3D,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;aAAM,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,eAAe,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,iBAAiB;QAC7B,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAC5B,MAAM,KAAK,GAAG,MAAM,YAAY,CAC9B,IAAI,CAAC,SAAS,EACd,UAAU,EAAE,EACZ,IAAI,CAAC,MAAM,CACZ,CAAC;QACF,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,aAAa,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;YACzF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4DAA4D,EAAE;gBAC9E,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,aAAa,EAAE,KAAK,EAAE,OAAO;aAC9B,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;YAC5D,IAAI,OAAO,EAAE,KAAK,QAAQ;gBAAE,SAAS;YACrC,gEAAgE;YAChE,2BAA2B;YAC3B,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,CAAC,UAAU;gBAAE,SAAS;YAC1C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAChC,WAAW,EAAE,CAAC;QAChB,CAAC;QACD,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE;gBAC/C,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,eAAe,EAAE,WAAW;aAC7B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,eAAe;QAC3B,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAC5B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YACzB,MAAM,KAAK,GAA2B,EAAE,CAAC;YACzC,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC3C,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,CAAC,UAAU;oBAAE,SAAS;gBAC1C,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YAClB,CAAC;YACD,oEAAoE;YACpE,+DAA+D;YAC/D,sBAAsB;YACtB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,OAAO,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;gBACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpC,OAAO,CAAC,MAAM,GAAG,iBAAiB,CAAC;YACrC,CAAC;YACD,MAAM,OAAO,GAAyB;gBACpC,OAAO,EAAE,aAAa;gBACtB,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;aAC3C,CAAC;YACF,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YAC9C,MAAM,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yCAAyC,EAAE;gBAC1D,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,KAAK,EAAG,GAAa,CAAC,OAAO;aAC9B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,aAAa,CAAC,GAAW;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,IAAI,IAAI,IAAI;YAAE,OAAO,KAAK,CAAC;QAC/B,OAAO,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;IAC/C,CAAC;IAEO,WAAW,CAAC,GAAW;QAC7B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,8CAA8C;IAC9C,MAAM,CAAC,WAAW,CAAC,IAAsC;QACvD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI;YAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,oEAAoE;IACpE,KAAK;QACH,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO;QACvB,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE;YAC7C,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,KAAK,CAAC,IAAI;QACR,MAAM,MAAM,GAAyB;YACnC,aAAa,EAAE,EAAE;YACjB,eAAe,EAAE,EAAE;YACnB,qBAAqB,EAAE,EAAE;YACzB,eAAe,EAAE,EAAE;YACnB,iBAAiB,EAAE,EAAE;YACrB,uBAAuB,EAAE,EAAE;YAC3B,kBAAkB,EAAE,EAAE;YACtB,iBAAiB,EAAE,EAAE;YACrB,sBAAsB,EAAE,EAAE;SAC3B,CAAC;QAEF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,mEAAmE;YACnE,6CAA6C;YAC7C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;YACjE,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC/B,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAElG,qEAAqE;YACrE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC1C,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;gBAC/B,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACrC,IAAI,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBAClC,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC7C,SAAS;gBACX,CAAC;gBACD,MAAM,GAAG,GAAG,GAAG,oBAAoB,IAAI,SAAS,EAAE,CAAC;gBACnD,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC5B,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACzC,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;wBACpC,SAAS;wBACT,MAAM,EAAE,SAAS;wBACjB,KAAK,EAAE,GAAG;qBACX,CAAC,CAAC;oBACH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;wBAAE,SAAS;oBACnC,IAAI,eAAe,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBAC9C,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBAC1C,SAAS;oBACX,CAAC;oBACD,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;oBAC1D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;oBACtB,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACvC,eAAe,EAAE,CAAC;gBACpB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iDAAiD,EAAE;wBACnE,SAAS;wBACT,KAAK,EAAG,GAAa,CAAC,OAAO;qBAC9B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACnD,KAAK,MAAM,WAAW,IAAI,QAAQ,EAAE,CAAC;gBACnC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACzC,IAAI,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;oBACtC,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBACjD,SAAS;gBACX,CAAC;gBACD,MAAM,GAAG,GAAG,GAAG,sBAAsB,IAAI,WAAW,EAAE,CAAC;gBACvD,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC5B,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC3C,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;oBACtD,IAAI,CAAC,IAAI,CAAC,EAAE;wBAAE,SAAS;oBACvB,IAAI,CAAC,IAAI,CAAC,cAAc;wBAAE,SAAS;oBACnC,qEAAqE;oBACrE,wEAAwE;oBACxE,qEAAqE;oBACrE,4DAA4D;oBAC5D,wEAAwE;oBACxE,wEAAwE;oBACxE,kEAAkE;oBAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;oBACxE,IAAI,QAAQ,KAAK,CAAC;wBAAE,SAAS;oBAC7B,IAAI,eAAe,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBAC9C,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;wBAC5C,SAAS;oBACX,CAAC;oBACD,MAAM,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;oBACxD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;oBACtB,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC3C,eAAe,EAAE,CAAC;gBACpB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qDAAqD,EAAE;wBACvE,WAAW;wBACX,KAAK,EAAG,GAAa,CAAC,OAAO;qBAC9B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,oEAAoE;YACpE,qEAAqE;YACrE,mEAAmE;YACnE,iEAAiE;YACjE,gEAAgE;YAChE,+DAA+D;YAC/D,qBAAqB;YACrB,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;gBAC/B,IAAI,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC;oBAAE,SAAS;gBACnD,MAAM,UAAU,GAAG,GAAG,sBAAsB,IAAI,SAAS,EAAE,CAAC;gBAC5D,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;oBACnC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,SAAS,EAAE,CAAC,CAAC;oBACtD,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;oBACpD,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC;wBAAE,SAAS;oBAClD,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,sBAAsB;wBAAE,SAAS;oBAC9D,IAAI,eAAe,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBAC9C,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,SAAS,EAAE,CAAC,CAAC;wBACvD,SAAS;oBACX,CAAC;oBACD,MAAM,IAAI,CAAC,qBAAqB,CAC9B,SAAS,EACT,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,EAC5C,IAAI,CAAC,UAAU,CAAC,MAAM,CACvB,CAAC;oBACF,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;oBAC7B,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC9C,eAAe,EAAE,CAAC;gBACpB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qDAAqD,EAAE;wBACvE,SAAS;wBACT,KAAK,EAAG,GAAa,CAAC,OAAO;qBAC9B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,IAAI,MAAM,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sDAAsD,EAAE;oBACvE,eAAe;oBACf,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;oBACzC,aAAa,EAAE,MAAM,CAAC,kBAAkB,CAAC,MAAM;oBAC/C,YAAY,EAAE,IAAI,CAAC,UAAU;iBAC9B,CAAC,CAAC;YACL,CAAC;YACD,iEAAiE;YACjE,4DAA4D;YAC5D,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAC/B,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4CAA4C,EAAE;gBAC7D,KAAK,EAAG,GAAa,CAAC,OAAO;aAC9B,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACvB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,gBAAgB;QAK5B,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;QACzC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC3C,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAU,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/C,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC1B,IAAI,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC;gBAAE,SAAS;YAC/C,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1B,IAAI,IAAI,KAAK,oBAAoB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC3E,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACxC,CAAC;iBAAM,IAAI,IAAI,KAAK,sBAAsB,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACtF,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YAC5C,CAAC;iBAAM,IAAI,IAAI,KAAK,sBAAsB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACpF,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QACD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,CAAC;IACrE,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,SAAiB,EAAE,YAAoB;QACvE,MAAM,KAAK,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,EAAE,GAAa,cAAc,CAAC;YAClC,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,IAAI,CAAC,WAAW;YACxB,KAAK,EAAE,SAAS,YAAY,yBAAyB,KAAK,EAAE;YAC5D,WAAW,EAAE,WAAW,YAAY,gCAAgC,SAAS,GAAG;YAChF,aAAa,EAAE,UAAU,CAAC,SAAS,EAAE,YAAY,CAAC;YAClD,UAAU,EAAE,CAAC;YACb,QAAQ,EAAE;gBACR,IAAI,EAAE,oBAAoB;gBAC1B,SAAS;gBACT,YAAY;gBACZ,WAAW,EAAE,IAAI;aAClB;SACF,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE;YAC9C,UAAU,EAAE,EAAE,CAAC,EAAE;YACjB,SAAS;YACT,YAAY;YACZ,MAAM,EAAE,IAAI,CAAC,WAAW;SACzB,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,qBAAqB,CACjC,SAAiB,EACjB,KAAsG,EACtG,eAAuB;QAEvB,MAAM,KAAK,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,EAAE,GAAa,cAAc,CAAC;YAClC,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,IAAI,CAAC,WAAW;YACxB,KAAK,EAAE,WAAW,KAAK,CAAC,MAAM,OAAO,eAAe,+BAA+B,KAAK,EAAE;YAC1F,WAAW,EAAE,UAAU,KAAK,CAAC,MAAM,0BAA0B,SAAS,sEAAsE;YAC5I,aAAa,EAAE,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,eAAe,CAAC;YAC9D,UAAU,EAAE,CAAC;YACb,QAAQ,EAAE;gBACR,IAAI,EAAE,sBAAsB;gBAC5B,SAAS;gBACT,SAAS,EAAE,KAAK,CAAC,MAAM;gBACvB,eAAe;gBACf,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC5B,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,KAAK,EAAE,CAAC,CAAC,KAAK;iBACf,CAAC,CAAC;gBACH,WAAW,EAAE,IAAI;aAClB;SACF,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE;YAChD,UAAU,EAAE,EAAE,CAAC,EAAE;YACjB,SAAS;YACT,SAAS,EAAE,KAAK,CAAC,MAAM;YACvB,eAAe;YACf,MAAM,EAAE,IAAI,CAAC,WAAW;SACzB,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,WAAmB,EAAE,aAAqB;QAC5E,MAAM,EAAE,GAAa,cAAc,CAAC;YAClC,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,IAAI,CAAC,WAAW;YACxB,KAAK,EAAE,WAAW,aAAa,0BAA0B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;YACrF,WAAW,EAAE,0BAA0B,WAAW,KAAK,aAAa,cAAc;YAClF,aAAa,EAAE,YAAY,CAAC,WAAW,EAAE,aAAa,CAAC;YACvD,UAAU,EAAE,CAAC;YACb,QAAQ,EAAE;gBACR,IAAI,EAAE,sBAAsB;gBAC5B,WAAW;gBACX,aAAa;gBACb,WAAW,EAAE,IAAI;aAClB;SACF,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE;YAChD,UAAU,EAAE,EAAE,CAAC,EAAE;YACjB,WAAW;YACX,aAAa;YACb,MAAM,EAAE,IAAI,CAAC,WAAW;SACzB,CAAC,CAAC;IACL,CAAC;;AAGH,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,IAAI,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC;QAAE,OAAO,QAAQ,CAAC;IACvD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC;IAC3D,IAAI,SAAS,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;QACnD,OAAO,QAAQ,MAAM,EAAE,CAAC;IAC1B,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IACrD,OAAO,WAAW,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;AAC5C,CAAC;AAED,SAAS,UAAU,CAAC,SAAiB,EAAE,YAAoB;IACzD,OAAO;QACL,oBAAoB;QACpB,EAAE;QACF,sEAAsE;QACtE,wEAAwE;QACxE,EAAE;QACF,gBAAgB,SAAS,IAAI;QAC7B,sBAAsB,YAAY,EAAE;QACpC,EAAE;QACF,wEAAwE;QACxE,gEAAgE,YAAY,IAAI;QAChF,0EAA0E;QAC1E,uEAAuE;QACvE,yBAAyB;QACzB,EAAE;QACF,SAAS;QACT,2EAA2E,SAAS,EAAE;QACtF,KAAK;QACL,EAAE;QACF,+NAA+N;KAChO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CACnB,SAAiB,EACjB,KAAsG,EACtG,eAAuB;IAEvB,MAAM,KAAK,GAAa;QACtB,wBAAwB;QACxB,EAAE;QACF,sEAAsE;QACtE,wEAAwE;QACxE,EAAE;QACF,gBAAgB,SAAS,IAAI;QAC7B,8BAA8B,KAAK,CAAC,MAAM,EAAE;QAC5C,kCAAkC,eAAe,EAAE;QACnD,EAAE;QACF,iDAAiD,KAAK,CAAC,MAAM,0NAA0N,KAAK,CAAC,MAAM,+CAA+C;QAClV,EAAE;QACF,eAAe;QACf,EAAE;KACH,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACzE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,kBAAkB,IAAI,KAAK,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpG,CAAC;IACD,KAAK,CAAC,IAAI,CACR,EAAE,EACF,aAAa,EACb,EAAE,EACF,sNAAsN,EACtN,iEAAiE,EACjE,eAAe,EACf,EAAE,EACF,SAAS,EACT,qEAAqE,SAAS,sCAAsC,EACpH,KAAK,EACL,EAAE,EACF,6IAA6I,EAC7I,kFAAkF,GAAG,KAAK,CAAC,MAAM,GAAG,kCAAkC,CACvI,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,YAAY,CAAC,WAAmB,EAAE,aAAqB;IAC9D,OAAO;QACL,yBAAyB;QACzB,EAAE;QACF,sEAAsE;QACtE,wEAAwE;QACxE,EAAE;QACF,uBAAuB,WAAW,IAAI;QACtC,2BAA2B,aAAa,EAAE;QAC1C,EAAE;QACF,sCAAsC,aAAa,qBAAqB;QACxE,uEAAuE;QACvE,wEAAwE;QACxE,0EAA0E;QAC1E,wEAAwE;QACxE,2DAA2D;QAC3D,EAAE;QACF,gDAAgD;QAChD,SAAS;QACT,4EAA4E,WAAW,EAAE;QACzF,KAAK;QACL,8DAA8D;QAC9D,SAAS;QACT,4EAA4E,WAAW,UAAU;QACjG,KAAK;QACL,0IAA0I;KAC3I,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3D,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,uBAAuB,CAAC,CAAC;IAC1E,IAAI,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA6B,CAAC;YAC3D,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC3E,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,sDAAsD;QACxD,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"wiki-workitem-bridge.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/wiki/wiki-workitem-bridge.service.ts"],"names":[],"mappings":"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"}