@tenphi/akno 0.1.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 (147) hide show
  1. package/LICENSE +83 -0
  2. package/README.md +46 -0
  3. package/dist/args.d.ts +18 -0
  4. package/dist/args.d.ts.map +1 -0
  5. package/dist/args.js +92 -0
  6. package/dist/args.js.map +1 -0
  7. package/dist/bin.d.ts +3 -0
  8. package/dist/bin.d.ts.map +1 -0
  9. package/dist/bin.js +142 -0
  10. package/dist/bin.js.map +1 -0
  11. package/dist/commands/adopt-cmd.d.ts +2 -0
  12. package/dist/commands/adopt-cmd.d.ts.map +1 -0
  13. package/dist/commands/adopt-cmd.js +61 -0
  14. package/dist/commands/adopt-cmd.js.map +1 -0
  15. package/dist/commands/answer-cmd.d.ts +2 -0
  16. package/dist/commands/answer-cmd.d.ts.map +1 -0
  17. package/dist/commands/answer-cmd.js +150 -0
  18. package/dist/commands/answer-cmd.js.map +1 -0
  19. package/dist/commands/bench-cmd.d.ts +4 -0
  20. package/dist/commands/bench-cmd.d.ts.map +1 -0
  21. package/dist/commands/bench-cmd.js +1542 -0
  22. package/dist/commands/bench-cmd.js.map +1 -0
  23. package/dist/commands/config-cmd.d.ts +7 -0
  24. package/dist/commands/config-cmd.d.ts.map +1 -0
  25. package/dist/commands/config-cmd.js +80 -0
  26. package/dist/commands/config-cmd.js.map +1 -0
  27. package/dist/commands/context-cmd.d.ts +2 -0
  28. package/dist/commands/context-cmd.d.ts.map +1 -0
  29. package/dist/commands/context-cmd.js +130 -0
  30. package/dist/commands/context-cmd.js.map +1 -0
  31. package/dist/commands/doctor-cmd.d.ts +2 -0
  32. package/dist/commands/doctor-cmd.d.ts.map +1 -0
  33. package/dist/commands/doctor-cmd.js +198 -0
  34. package/dist/commands/doctor-cmd.js.map +1 -0
  35. package/dist/commands/dream-cmd.d.ts +26 -0
  36. package/dist/commands/dream-cmd.d.ts.map +1 -0
  37. package/dist/commands/dream-cmd.js +1167 -0
  38. package/dist/commands/dream-cmd.js.map +1 -0
  39. package/dist/commands/dream-model-status.d.ts +5 -0
  40. package/dist/commands/dream-model-status.d.ts.map +1 -0
  41. package/dist/commands/dream-model-status.js +33 -0
  42. package/dist/commands/dream-model-status.js.map +1 -0
  43. package/dist/commands/dream-notifications.d.ts +24 -0
  44. package/dist/commands/dream-notifications.d.ts.map +1 -0
  45. package/dist/commands/dream-notifications.js +168 -0
  46. package/dist/commands/dream-notifications.js.map +1 -0
  47. package/dist/commands/dream-schedule.d.ts +55 -0
  48. package/dist/commands/dream-schedule.d.ts.map +1 -0
  49. package/dist/commands/dream-schedule.js +160 -0
  50. package/dist/commands/dream-schedule.js.map +1 -0
  51. package/dist/commands/folder-cmd.d.ts +2 -0
  52. package/dist/commands/folder-cmd.d.ts.map +1 -0
  53. package/dist/commands/folder-cmd.js +84 -0
  54. package/dist/commands/folder-cmd.js.map +1 -0
  55. package/dist/commands/graph-cmd.d.ts +2 -0
  56. package/dist/commands/graph-cmd.d.ts.map +1 -0
  57. package/dist/commands/graph-cmd.js +126 -0
  58. package/dist/commands/graph-cmd.js.map +1 -0
  59. package/dist/commands/inbox-cmd.d.ts +2 -0
  60. package/dist/commands/inbox-cmd.d.ts.map +1 -0
  61. package/dist/commands/inbox-cmd.js +69 -0
  62. package/dist/commands/inbox-cmd.js.map +1 -0
  63. package/dist/commands/index-cmd.d.ts +2 -0
  64. package/dist/commands/index-cmd.d.ts.map +1 -0
  65. package/dist/commands/index-cmd.js +102 -0
  66. package/dist/commands/index-cmd.js.map +1 -0
  67. package/dist/commands/ingest-cmd.d.ts +2 -0
  68. package/dist/commands/ingest-cmd.d.ts.map +1 -0
  69. package/dist/commands/ingest-cmd.js +167 -0
  70. package/dist/commands/ingest-cmd.js.map +1 -0
  71. package/dist/commands/init-cmd.d.ts +292 -0
  72. package/dist/commands/init-cmd.d.ts.map +1 -0
  73. package/dist/commands/init-cmd.js +476 -0
  74. package/dist/commands/init-cmd.js.map +1 -0
  75. package/dist/commands/init-prompts.d.ts +51 -0
  76. package/dist/commands/init-prompts.d.ts.map +1 -0
  77. package/dist/commands/init-prompts.js +192 -0
  78. package/dist/commands/init-prompts.js.map +1 -0
  79. package/dist/commands/list-cmd.d.ts +2 -0
  80. package/dist/commands/list-cmd.d.ts.map +1 -0
  81. package/dist/commands/list-cmd.js +77 -0
  82. package/dist/commands/list-cmd.js.map +1 -0
  83. package/dist/commands/maintenance-policy-output.d.ts +4 -0
  84. package/dist/commands/maintenance-policy-output.d.ts.map +1 -0
  85. package/dist/commands/maintenance-policy-output.js +72 -0
  86. package/dist/commands/maintenance-policy-output.js.map +1 -0
  87. package/dist/commands/mutate-cmd.d.ts +5 -0
  88. package/dist/commands/mutate-cmd.d.ts.map +1 -0
  89. package/dist/commands/mutate-cmd.js +224 -0
  90. package/dist/commands/mutate-cmd.js.map +1 -0
  91. package/dist/commands/plan-cmd.d.ts +9 -0
  92. package/dist/commands/plan-cmd.d.ts.map +1 -0
  93. package/dist/commands/plan-cmd.js +411 -0
  94. package/dist/commands/plan-cmd.js.map +1 -0
  95. package/dist/commands/read-cmd.d.ts +2 -0
  96. package/dist/commands/read-cmd.d.ts.map +1 -0
  97. package/dist/commands/read-cmd.js +89 -0
  98. package/dist/commands/read-cmd.js.map +1 -0
  99. package/dist/commands/recall-cmd.d.ts +2 -0
  100. package/dist/commands/recall-cmd.d.ts.map +1 -0
  101. package/dist/commands/recall-cmd.js +176 -0
  102. package/dist/commands/recall-cmd.js.map +1 -0
  103. package/dist/commands/redeploy-cmd.d.ts +43 -0
  104. package/dist/commands/redeploy-cmd.d.ts.map +1 -0
  105. package/dist/commands/redeploy-cmd.js +270 -0
  106. package/dist/commands/redeploy-cmd.js.map +1 -0
  107. package/dist/commands/rules-cmd.d.ts +2 -0
  108. package/dist/commands/rules-cmd.d.ts.map +1 -0
  109. package/dist/commands/rules-cmd.js +72 -0
  110. package/dist/commands/rules-cmd.js.map +1 -0
  111. package/dist/commands/serve-cmd.d.ts +23 -0
  112. package/dist/commands/serve-cmd.d.ts.map +1 -0
  113. package/dist/commands/serve-cmd.js +415 -0
  114. package/dist/commands/serve-cmd.js.map +1 -0
  115. package/dist/commands/timeline-cmd.d.ts +2 -0
  116. package/dist/commands/timeline-cmd.d.ts.map +1 -0
  117. package/dist/commands/timeline-cmd.js +67 -0
  118. package/dist/commands/timeline-cmd.js.map +1 -0
  119. package/dist/commands/write-cmd.d.ts +49 -0
  120. package/dist/commands/write-cmd.d.ts.map +1 -0
  121. package/dist/commands/write-cmd.js +269 -0
  122. package/dist/commands/write-cmd.js.map +1 -0
  123. package/dist/ops-handle.d.ts +67 -0
  124. package/dist/ops-handle.d.ts.map +1 -0
  125. package/dist/ops-handle.js +196 -0
  126. package/dist/ops-handle.js.map +1 -0
  127. package/dist/output.d.ts +28 -0
  128. package/dist/output.d.ts.map +1 -0
  129. package/dist/output.js +87 -0
  130. package/dist/output.js.map +1 -0
  131. package/dist/serve/http.d.ts +19 -0
  132. package/dist/serve/http.d.ts.map +1 -0
  133. package/dist/serve/http.js +135 -0
  134. package/dist/serve/http.js.map +1 -0
  135. package/dist/serve/mcp.d.ts +21 -0
  136. package/dist/serve/mcp.d.ts.map +1 -0
  137. package/dist/serve/mcp.js +79 -0
  138. package/dist/serve/mcp.js.map +1 -0
  139. package/dist/serve/socket.d.ts +15 -0
  140. package/dist/serve/socket.d.ts.map +1 -0
  141. package/dist/serve/socket.js +311 -0
  142. package/dist/serve/socket.js.map +1 -0
  143. package/dist/version.d.ts +2 -0
  144. package/dist/version.d.ts.map +1 -0
  145. package/dist/version.js +15 -0
  146. package/dist/version.js.map +1 -0
  147. package/package.json +40 -0
@@ -0,0 +1,292 @@
1
+ import { openAiLunaPreset, type OpenAiLunaPreflightReport, type SetupConfigWritePlan, type SetupMaintenanceMode } from '@tenphi/akno-core';
2
+ import { type InitPromptSession, type InitSetupChoice } from './init-prompts.ts';
3
+ interface InitFollowUpCommands {
4
+ index(argv: string[]): Promise<number>;
5
+ recall(argv: string[]): Promise<number>;
6
+ service(argv: string[]): Promise<number>;
7
+ }
8
+ interface InitCommandOptions {
9
+ prompt?: InitPromptSession;
10
+ interactive?: boolean;
11
+ followUps?: InitFollowUpCommands;
12
+ platform?: NodeJS.Platform;
13
+ }
14
+ export declare function initCommand(argv: string[], options?: InitCommandOptions): Promise<number>;
15
+ export declare function openAiInitPreview(aknoPath: string, maintenance: SetupMaintenanceMode, config: ReturnType<typeof openAiLunaPreset>, preflight: OpenAiLunaPreflightReport | null, writePlan?: SetupConfigWritePlan | null): {
16
+ kind: "setup_preview";
17
+ preset: InitSetupChoice;
18
+ presetStatus: string;
19
+ writable: boolean;
20
+ writeBlocker: string | null;
21
+ applied: boolean;
22
+ knowledgeBase: {
23
+ path: string;
24
+ readable: boolean;
25
+ willModify: boolean;
26
+ };
27
+ maintenance: SetupMaintenanceMode;
28
+ maintenanceAuthority: string;
29
+ folderPolicy: {
30
+ fallbackPage: string | null;
31
+ managed: number;
32
+ readOnly: number;
33
+ source: number;
34
+ status: "configured";
35
+ } | {
36
+ status: "unchanged";
37
+ };
38
+ endpointCount: number | null;
39
+ modelCount: number | null;
40
+ credential: {
41
+ env: string;
42
+ present: boolean | null;
43
+ } | null;
44
+ preflight: OpenAiLunaPreflightReport | null;
45
+ write: {
46
+ path: string;
47
+ exists: boolean;
48
+ changed: boolean;
49
+ requiresForce: boolean;
50
+ preservesUnknownKeys: boolean;
51
+ changes: import("@tenphi/akno-core").SetupConfigChange[];
52
+ } | null;
53
+ config: {
54
+ akno_path?: string | null | undefined;
55
+ state_dir?: string | undefined;
56
+ paths?: {
57
+ timeline?: string | undefined;
58
+ inbox?: string | undefined;
59
+ observations?: string | undefined;
60
+ journal?: string | undefined;
61
+ } | undefined;
62
+ create_reserved_paths?: boolean | undefined;
63
+ write_ids?: boolean | undefined;
64
+ ignore?: string[] | undefined;
65
+ page_extensions?: string[] | undefined;
66
+ max_page_bytes?: number | undefined;
67
+ gate?: "none" | "top-level" | "all" | undefined;
68
+ route_threshold?: number | undefined;
69
+ loose_events?: "ledger" | "daily" | undefined;
70
+ derived_in_frontmatter?: "none" | "summary" | "all" | undefined;
71
+ providers?: Record<string, {
72
+ base_url?: string | null | undefined;
73
+ api_key?: {
74
+ env: string;
75
+ } | null | undefined;
76
+ api?: "auto" | "chat_completions" | "responses" | undefined;
77
+ headers?: Record<string, string | {
78
+ env: string;
79
+ }> | undefined;
80
+ max_retries?: number | undefined;
81
+ }> | undefined;
82
+ models?: {
83
+ embedding?: {
84
+ dimensions?: number | undefined;
85
+ batch?: number | undefined;
86
+ provider?: string | undefined;
87
+ id?: string | null | undefined;
88
+ enabled?: boolean | undefined;
89
+ timeout_ms?: number | undefined;
90
+ } | undefined;
91
+ reranker?: {
92
+ mode?: "llm" | "endpoint" | undefined;
93
+ exclude_irrelevant?: boolean | undefined;
94
+ top_k?: number | undefined;
95
+ max_chars?: number | undefined;
96
+ max_output_tokens?: number | undefined;
97
+ reasoning_effort?: "none" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
98
+ score_offset?: number | "auto" | undefined;
99
+ provider?: string | undefined;
100
+ id?: string | null | undefined;
101
+ enabled?: boolean | undefined;
102
+ timeout_ms?: number | undefined;
103
+ } | undefined;
104
+ derive?: {
105
+ max_output_tokens?: number | undefined;
106
+ concurrency?: number | undefined;
107
+ reasoning_effort?: "none" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
108
+ provider?: string | undefined;
109
+ id?: string | null | undefined;
110
+ enabled?: boolean | undefined;
111
+ timeout_ms?: number | undefined;
112
+ } | undefined;
113
+ expansion?: {
114
+ max_output_tokens?: number | undefined;
115
+ concurrency?: number | undefined;
116
+ reasoning_effort?: "none" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
117
+ provider?: string | undefined;
118
+ id?: string | null | undefined;
119
+ enabled?: boolean | undefined;
120
+ timeout_ms?: number | undefined;
121
+ } | undefined;
122
+ answer?: {
123
+ max_output_tokens?: number | undefined;
124
+ concurrency?: number | undefined;
125
+ reasoning_effort?: "none" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
126
+ provider?: string | undefined;
127
+ id?: string | null | undefined;
128
+ enabled?: boolean | undefined;
129
+ timeout_ms?: number | undefined;
130
+ } | undefined;
131
+ vision?: {
132
+ reasoning_effort?: "none" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
133
+ provider?: string | undefined;
134
+ id?: string | null | undefined;
135
+ enabled?: boolean | undefined;
136
+ timeout_ms?: number | undefined;
137
+ } | undefined;
138
+ } | undefined;
139
+ index?: {
140
+ chunk_target_chars?: number | undefined;
141
+ chunk_max_chars?: number | undefined;
142
+ chunk_overlap_chars?: number | undefined;
143
+ summaries?: boolean | undefined;
144
+ facts?: boolean | undefined;
145
+ hash_concurrency?: number | undefined;
146
+ ann_threshold_chunks?: number | undefined;
147
+ } | undefined;
148
+ recall?: {
149
+ default_budget?: number | undefined;
150
+ default_limit?: number | undefined;
151
+ candidates_per_arm?: number | undefined;
152
+ line_window?: number | undefined;
153
+ source_quote_lines?: number | undefined;
154
+ expansion?: boolean | undefined;
155
+ expansion_timeout_ms?: number | undefined;
156
+ graph?: boolean | undefined;
157
+ rank?: {
158
+ knowledge?: number | undefined;
159
+ source?: number | undefined;
160
+ inference?: number | undefined;
161
+ } | undefined;
162
+ } | undefined;
163
+ graph?: {
164
+ contextual_resolution?: {
165
+ enabled?: boolean | undefined;
166
+ max_candidates?: number | undefined;
167
+ max_mentions_per_index?: number | undefined;
168
+ reasoning_effort?: "none" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
169
+ } | undefined;
170
+ } | undefined;
171
+ watch?: {
172
+ enabled?: boolean | undefined;
173
+ debounce_ms?: number | undefined;
174
+ sweep_interval_ms?: number | undefined;
175
+ verify_interval_ms?: number | undefined;
176
+ } | undefined;
177
+ server?: {
178
+ socket?: string | undefined;
179
+ http?: string | null | undefined;
180
+ mcp_allow?: string[] | undefined;
181
+ } | undefined;
182
+ ingest?: {
183
+ max_file_mb?: number | undefined;
184
+ max_ocr_pages?: number | undefined;
185
+ name_confidence?: number | undefined;
186
+ blocked_extensions?: string[] | undefined;
187
+ text_rendition?: boolean | undefined;
188
+ text_rendition_min_chars?: number | undefined;
189
+ } | undefined;
190
+ maintenance?: {
191
+ profile?: "audit" | "review" | "autonomous" | undefined;
192
+ policies?: {
193
+ observe?: "auto" | "audit" | "review" | "off" | undefined;
194
+ reflect?: "auto" | "audit" | "review" | "off" | undefined;
195
+ hygiene?: "auto" | "audit" | "review" | "off" | undefined;
196
+ managed_item?: "auto" | "audit" | "review" | "off" | undefined;
197
+ synthesis?: "auto" | "audit" | "review" | "off" | undefined;
198
+ split?: "auto" | "audit" | "review" | "off" | undefined;
199
+ extract?: "auto" | "audit" | "review" | "off" | undefined;
200
+ merge?: "auto" | "audit" | "review" | "off" | undefined;
201
+ contradiction?: "auto" | "audit" | "review" | "off" | undefined;
202
+ broken_link?: "auto" | "audit" | "review" | "off" | undefined;
203
+ rule_drift?: "auto" | "audit" | "review" | "off" | undefined;
204
+ adopt?: "auto" | "audit" | "review" | "off" | undefined;
205
+ } | undefined;
206
+ limits?: {
207
+ max_items?: number | undefined;
208
+ max_files_changed?: number | undefined;
209
+ max_bytes_written?: number | undefined;
210
+ max_high_risk_items?: number | undefined;
211
+ } | undefined;
212
+ plan_retention?: {
213
+ payload_days?: number | undefined;
214
+ receipt_days?: number | undefined;
215
+ } | undefined;
216
+ max_revision_attempts?: number | undefined;
217
+ model?: {
218
+ max_output_tokens?: number | undefined;
219
+ concurrency?: number | undefined;
220
+ reasoning_effort?: "none" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
221
+ provider?: string | undefined;
222
+ id?: string | null | undefined;
223
+ enabled?: boolean | undefined;
224
+ timeout_ms?: number | undefined;
225
+ } | null | undefined;
226
+ notifications?: "off" | "all" | "actionable" | undefined;
227
+ log_changes?: boolean | undefined;
228
+ retain?: {
229
+ enabled?: boolean | undefined;
230
+ mission?: string | null | undefined;
231
+ fallback_page?: string | null | undefined;
232
+ } | undefined;
233
+ observe?: {
234
+ enabled?: boolean | undefined;
235
+ mission?: string | null | undefined;
236
+ min_evidence?: number | undefined;
237
+ max_subjects?: number | undefined;
238
+ } | undefined;
239
+ reflect?: {
240
+ enabled?: boolean | undefined;
241
+ mission?: string | null | undefined;
242
+ } | undefined;
243
+ curate?: {
244
+ verify?: boolean | undefined;
245
+ max_pages?: number | undefined;
246
+ max_splits?: number | undefined;
247
+ max_extracts?: number | undefined;
248
+ max_merges?: number | undefined;
249
+ max_rule_drifts?: number | undefined;
250
+ merge_folders?: string[] | undefined;
251
+ merge_discovery?: "exact" | "semantic" | undefined;
252
+ max_children_per_page?: number | undefined;
253
+ split_after_bytes?: number | undefined;
254
+ split_section_bytes?: number | undefined;
255
+ extract_after_bytes?: number | undefined;
256
+ extract_section_bytes?: number | undefined;
257
+ } | undefined;
258
+ adopt?: {
259
+ max_pages?: number | undefined;
260
+ } | undefined;
261
+ repair?: {
262
+ enabled?: boolean | undefined;
263
+ links?: boolean | undefined;
264
+ conflicts?: boolean | undefined;
265
+ max_changes?: number | undefined;
266
+ } | undefined;
267
+ conflicts?: {
268
+ enabled?: boolean | undefined;
269
+ verify?: boolean | undefined;
270
+ resolve?: boolean | undefined;
271
+ max_pairs?: number | undefined;
272
+ } | undefined;
273
+ } | undefined;
274
+ trash_retention_days?: number | undefined;
275
+ folders?: Record<string, {
276
+ description?: string | undefined;
277
+ role?: "knowledge" | "source" | "inference" | "ignored" | undefined;
278
+ remember?: "deny" | "integrate" | undefined;
279
+ about?: string[] | undefined;
280
+ type?: string | undefined;
281
+ ingest?: "file" | "page" | "document" | "auto" | "ignore" | undefined;
282
+ rank?: number | undefined;
283
+ route?: boolean | undefined;
284
+ max_depth?: number | undefined;
285
+ relocate_to?: string | undefined;
286
+ slug_pattern?: string | undefined;
287
+ }> | undefined;
288
+ };
289
+ };
290
+ export declare function readableKnowledgeBasePath(target: string): boolean;
291
+ export {};
292
+ //# sourceMappingURL=init-cmd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-cmd.d.ts","sourceRoot":"","sources":["../../src/commands/init-cmd.ts"],"names":[],"mappings":"AAGA,OAAO,EAOL,gBAAgB,EAIhB,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EAC1B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAKL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAC;AA8B3B,UAAU,oBAAoB;IAC5B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1C;AAED,UAAU,kBAAkB;IAC1B,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;CAC5B;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CAiLnG;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,oBAAoB,EACjC,MAAM,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,EAC3C,SAAS,EAAE,yBAAyB,GAAG,IAAI,EAC3C,SAAS,GAAE,oBAAoB,GAAG,IAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG9C;AAuVD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAajE"}