memax-cli 0.1.0-alpha.9 → 0.1.1-alpha.1905

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 (197) hide show
  1. package/assets/skills/memax-memory/SKILL.md +173 -0
  2. package/dist/commands/agent-configs.d.ts +41 -0
  3. package/dist/commands/agent-configs.d.ts.map +1 -0
  4. package/dist/commands/agent-configs.js +1290 -0
  5. package/dist/commands/agent-configs.js.map +1 -0
  6. package/dist/commands/agent-configs.test.d.ts +2 -0
  7. package/dist/commands/agent-configs.test.d.ts.map +1 -0
  8. package/dist/commands/agent-configs.test.js +122 -0
  9. package/dist/commands/agent-configs.test.js.map +1 -0
  10. package/dist/commands/agent-sessions.d.ts +74 -0
  11. package/dist/commands/agent-sessions.d.ts.map +1 -0
  12. package/dist/commands/agent-sessions.js +1513 -0
  13. package/dist/commands/agent-sessions.js.map +1 -0
  14. package/dist/commands/agent-sessions.test.d.ts +2 -0
  15. package/dist/commands/agent-sessions.test.d.ts.map +1 -0
  16. package/dist/commands/agent-sessions.test.js +255 -0
  17. package/dist/commands/agent-sessions.test.js.map +1 -0
  18. package/dist/commands/agents.d.ts +3 -0
  19. package/dist/commands/agents.d.ts.map +1 -0
  20. package/dist/commands/agents.js +36 -0
  21. package/dist/commands/agents.js.map +1 -0
  22. package/dist/commands/ask.d.ts +15 -0
  23. package/dist/commands/ask.d.ts.map +1 -0
  24. package/dist/commands/ask.js +483 -0
  25. package/dist/commands/ask.js.map +1 -0
  26. package/dist/commands/auth.d.ts +7 -0
  27. package/dist/commands/auth.d.ts.map +1 -1
  28. package/dist/commands/auth.js +103 -8
  29. package/dist/commands/auth.js.map +1 -1
  30. package/dist/commands/capture.d.ts +19 -0
  31. package/dist/commands/capture.d.ts.map +1 -0
  32. package/dist/commands/capture.js +69 -0
  33. package/dist/commands/capture.js.map +1 -0
  34. package/dist/commands/config.d.ts +2 -0
  35. package/dist/commands/config.d.ts.map +1 -1
  36. package/dist/commands/config.js +13 -0
  37. package/dist/commands/config.js.map +1 -1
  38. package/dist/commands/delete.d.ts +2 -0
  39. package/dist/commands/delete.d.ts.map +1 -1
  40. package/dist/commands/delete.js +15 -18
  41. package/dist/commands/delete.js.map +1 -1
  42. package/dist/commands/dreams.d.ts +22 -0
  43. package/dist/commands/dreams.d.ts.map +1 -0
  44. package/dist/commands/dreams.js +251 -0
  45. package/dist/commands/dreams.js.map +1 -0
  46. package/dist/commands/dreams.test.d.ts +2 -0
  47. package/dist/commands/dreams.test.d.ts.map +1 -0
  48. package/dist/commands/dreams.test.js +39 -0
  49. package/dist/commands/dreams.test.js.map +1 -0
  50. package/dist/commands/hook.d.ts +2 -0
  51. package/dist/commands/hook.d.ts.map +1 -1
  52. package/dist/commands/hook.js +25 -103
  53. package/dist/commands/hook.js.map +1 -1
  54. package/dist/commands/hub.d.ts +37 -0
  55. package/dist/commands/hub.d.ts.map +1 -0
  56. package/dist/commands/hub.js +347 -0
  57. package/dist/commands/hub.js.map +1 -0
  58. package/dist/commands/hub.test.d.ts +2 -0
  59. package/dist/commands/hub.test.d.ts.map +1 -0
  60. package/dist/commands/hub.test.js +62 -0
  61. package/dist/commands/hub.test.js.map +1 -0
  62. package/dist/commands/import.d.ts +13 -0
  63. package/dist/commands/import.d.ts.map +1 -0
  64. package/dist/commands/import.js +257 -0
  65. package/dist/commands/import.js.map +1 -0
  66. package/dist/commands/import.test.d.ts +2 -0
  67. package/dist/commands/import.test.d.ts.map +1 -0
  68. package/dist/commands/import.test.js +11 -0
  69. package/dist/commands/import.test.js.map +1 -0
  70. package/dist/commands/list.d.ts +9 -2
  71. package/dist/commands/list.d.ts.map +1 -1
  72. package/dist/commands/list.js +118 -9
  73. package/dist/commands/list.js.map +1 -1
  74. package/dist/commands/list.test.d.ts +2 -0
  75. package/dist/commands/list.test.d.ts.map +1 -0
  76. package/dist/commands/list.test.js +20 -0
  77. package/dist/commands/list.test.js.map +1 -0
  78. package/dist/commands/login.d.ts +7 -1
  79. package/dist/commands/login.d.ts.map +1 -1
  80. package/dist/commands/login.js +81 -20
  81. package/dist/commands/login.js.map +1 -1
  82. package/dist/commands/mcp.d.ts.map +1 -1
  83. package/dist/commands/mcp.js +386 -65
  84. package/dist/commands/mcp.js.map +1 -1
  85. package/dist/commands/push.d.ts +6 -1
  86. package/dist/commands/push.d.ts.map +1 -1
  87. package/dist/commands/push.js +42 -8
  88. package/dist/commands/push.js.map +1 -1
  89. package/dist/commands/recall.d.ts +11 -1
  90. package/dist/commands/recall.d.ts.map +1 -1
  91. package/dist/commands/recall.js +228 -41
  92. package/dist/commands/recall.js.map +1 -1
  93. package/dist/commands/recall.test.d.ts +2 -0
  94. package/dist/commands/recall.test.d.ts.map +1 -0
  95. package/dist/commands/recall.test.js +31 -0
  96. package/dist/commands/recall.test.js.map +1 -0
  97. package/dist/commands/setup-hooks.d.ts +13 -0
  98. package/dist/commands/setup-hooks.d.ts.map +1 -0
  99. package/dist/commands/setup-hooks.js +193 -0
  100. package/dist/commands/setup-hooks.js.map +1 -0
  101. package/dist/commands/setup-instructions.d.ts +21 -0
  102. package/dist/commands/setup-instructions.d.ts.map +1 -0
  103. package/dist/commands/setup-instructions.js +172 -0
  104. package/dist/commands/setup-instructions.js.map +1 -0
  105. package/dist/commands/setup-mcp.d.ts +40 -0
  106. package/dist/commands/setup-mcp.d.ts.map +1 -0
  107. package/dist/commands/setup-mcp.js +414 -0
  108. package/dist/commands/setup-mcp.js.map +1 -0
  109. package/dist/commands/setup-types.d.ts +33 -0
  110. package/dist/commands/setup-types.d.ts.map +1 -0
  111. package/dist/commands/setup-types.js +60 -0
  112. package/dist/commands/setup-types.js.map +1 -0
  113. package/dist/commands/setup.d.ts +10 -1
  114. package/dist/commands/setup.d.ts.map +1 -1
  115. package/dist/commands/setup.js +216 -534
  116. package/dist/commands/setup.js.map +1 -1
  117. package/dist/commands/show.d.ts +5 -1
  118. package/dist/commands/show.d.ts.map +1 -1
  119. package/dist/commands/show.js +36 -14
  120. package/dist/commands/show.js.map +1 -1
  121. package/dist/commands/topic.d.ts +32 -0
  122. package/dist/commands/topic.d.ts.map +1 -0
  123. package/dist/commands/topic.js +265 -0
  124. package/dist/commands/topic.js.map +1 -0
  125. package/dist/commands/topic.test.d.ts +2 -0
  126. package/dist/commands/topic.test.d.ts.map +1 -0
  127. package/dist/commands/topic.test.js +114 -0
  128. package/dist/commands/topic.test.js.map +1 -0
  129. package/dist/index.js +35 -144
  130. package/dist/index.js.map +1 -1
  131. package/dist/lib/client.d.ts +10 -0
  132. package/dist/lib/client.d.ts.map +1 -0
  133. package/dist/lib/client.js +104 -0
  134. package/dist/lib/client.js.map +1 -0
  135. package/dist/lib/client.test.d.ts +2 -0
  136. package/dist/lib/client.test.d.ts.map +1 -0
  137. package/dist/lib/client.test.js +44 -0
  138. package/dist/lib/client.test.js.map +1 -0
  139. package/dist/lib/config.d.ts +43 -0
  140. package/dist/lib/config.d.ts.map +1 -1
  141. package/dist/lib/config.js +75 -2
  142. package/dist/lib/config.js.map +1 -1
  143. package/dist/lib/credentials.d.ts +3 -0
  144. package/dist/lib/credentials.d.ts.map +1 -1
  145. package/dist/lib/credentials.js +24 -2
  146. package/dist/lib/credentials.js.map +1 -1
  147. package/dist/lib/hubs.d.ts +7 -0
  148. package/dist/lib/hubs.d.ts.map +1 -0
  149. package/dist/lib/hubs.js +33 -0
  150. package/dist/lib/hubs.js.map +1 -0
  151. package/dist/lib/hubs.test.d.ts +2 -0
  152. package/dist/lib/hubs.test.d.ts.map +1 -0
  153. package/dist/lib/hubs.test.js +58 -0
  154. package/dist/lib/hubs.test.js.map +1 -0
  155. package/dist/lib/project-context.d.ts +56 -0
  156. package/dist/lib/project-context.d.ts.map +1 -0
  157. package/dist/lib/project-context.js +225 -0
  158. package/dist/lib/project-context.js.map +1 -0
  159. package/dist/lib/project-context.test.d.ts +2 -0
  160. package/dist/lib/project-context.test.d.ts.map +1 -0
  161. package/dist/lib/project-context.test.js +75 -0
  162. package/dist/lib/project-context.test.js.map +1 -0
  163. package/dist/lib/prompt.d.ts +7 -0
  164. package/dist/lib/prompt.d.ts.map +1 -0
  165. package/dist/lib/prompt.js +41 -0
  166. package/dist/lib/prompt.js.map +1 -0
  167. package/dist/lib/trash.d.ts +6 -0
  168. package/dist/lib/trash.d.ts.map +1 -0
  169. package/dist/lib/trash.js +28 -0
  170. package/dist/lib/trash.js.map +1 -0
  171. package/package.json +17 -13
  172. package/.vscode/mcp.json +0 -8
  173. package/dist/commands/sync.d.ts +0 -12
  174. package/dist/commands/sync.d.ts.map +0 -1
  175. package/dist/commands/sync.js +0 -414
  176. package/dist/commands/sync.js.map +0 -1
  177. package/dist/lib/api.d.ts +0 -4
  178. package/dist/lib/api.d.ts.map +0 -1
  179. package/dist/lib/api.js +0 -95
  180. package/dist/lib/api.js.map +0 -1
  181. package/src/commands/auth.ts +0 -92
  182. package/src/commands/config.ts +0 -27
  183. package/src/commands/delete.ts +0 -58
  184. package/src/commands/hook.ts +0 -243
  185. package/src/commands/list.ts +0 -38
  186. package/src/commands/login.ts +0 -164
  187. package/src/commands/mcp.ts +0 -405
  188. package/src/commands/push.ts +0 -137
  189. package/src/commands/recall.ts +0 -163
  190. package/src/commands/setup.ts +0 -1077
  191. package/src/commands/show.ts +0 -35
  192. package/src/commands/sync.ts +0 -506
  193. package/src/index.ts +0 -213
  194. package/src/lib/api.ts +0 -110
  195. package/src/lib/config.ts +0 -61
  196. package/src/lib/credentials.ts +0 -42
  197. package/tsconfig.json +0 -9
@@ -0,0 +1,173 @@
1
+ ---
2
+ name: memax-memory
3
+ description: Persistent memory layer using Memax. Gives Claude the ability to recall past context and store new learnings across sessions via the Memax MCP tools (memax_recall, memax_push, memax_get, memax_list, memax_forget, memax_capture, memax_topics, memax_hubs, memax_hub_members). Use this skill at the START of every conversation to do a light context check, and throughout the session whenever the user references past decisions, project context, architecture, or conventions — or whenever Claude discovers something worth remembering for future sessions. Also trigger when the user explicitly asks to remember or forget something, or when working on a project where prior context would prevent redundant questions. If Memax MCP tools are available, this skill applies.
4
+ ---
5
+
6
+ # Memax Memory — Persistent Context for Claude
7
+
8
+ You have access to **Memax**, a persistent cloud knowledge hub shared across all your AI agents. It survives between sessions — anything you push now is available in every future conversation.
9
+
10
+ Your job is to use it proactively. Don't wait for the user to say "check Memax" or "remember this." Treat it like your own long-term memory.
11
+
12
+ ## Tools
13
+
14
+ | Tool | Purpose |
15
+ | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
16
+ | `memax_recall` | Semantic search — find memories relevant to a natural language query across all accessible hubs |
17
+ | `memax_push` | Save a new memory — supports `hub_id` to target a specific hub, `hub_reason` (required for team hubs), and automatic classification for retrieval |
18
+ | `memax_get` | Read the full content of a specific memory by ID |
19
+ | `memax_list` | Browse/list memories with pagination and sorting |
20
+ | `memax_forget` | Delete a memory by ID |
21
+ | `memax_capture` | Extract and save key decisions, learnings from a session summary |
22
+ | `memax_topics` | Browse the topic tree, or list memories within a specific topic |
23
+ | `memax_hubs` | List hubs the user can access (IDs, slugs, roles, memory counts) |
24
+ | `memax_hub_members` | List members of a specific hub |
25
+
26
+ ## When to recall (read)
27
+
28
+ ### Every session — light check
29
+
30
+ At the very start of a conversation, before diving into the user's request, do a quick `memax_recall` with a query derived from the user's first message. This takes a second and often saves minutes of redundant back-and-forth.
31
+
32
+ **Example:** User says "Let's work on the auth flow." → `memax_recall("auth flow")` before responding.
33
+
34
+ If the first message is generic (e.g. "hey" or "what's up"), skip the recall — there's nothing meaningful to search for yet. Resume checking once the conversation has a topic.
35
+
36
+ ### On cues — deeper recall
37
+
38
+ Go deeper when you notice:
39
+
40
+ - References to past decisions: "the approach we agreed on," "like last time," "what did we decide about..."
41
+ - Project names, codenames, or domain-specific terms you don't have full context for
42
+ - Architecture or convention questions: "how do we handle X," "what's our pattern for Y"
43
+ - The user correcting you on something that suggests prior context exists
44
+
45
+ For deeper recall, chain multiple calls: `memax_recall` to find relevant memories, then `memax_get` on specific IDs to read full details, `memax_list` to browse recent memories, or `memax_topics` to explore the user's knowledge tree and find memories organized by topic.
46
+
47
+ ### Don't over-recall
48
+
49
+ One or two recall calls at session start is plenty for most conversations. Don't recall on every single message — that's noisy and slow. Use judgment: if you already have the context you need, just work.
50
+
51
+ ## When to push (write)
52
+
53
+ Push memories **proactively during the conversation** whenever something important surfaces. Don't hoard insights until the end — if you discover something worth remembering, push it now. Sessions can end abruptly (browser closed, timeout, context limit), and anything not pushed is lost.
54
+
55
+ ### What to push
56
+
57
+ Things that would save time or prevent mistakes in a future session:
58
+
59
+ - **Architecture decisions** — "We chose X over Y because Z"
60
+ - **API conventions** — naming patterns, error handling approaches, auth schemes
61
+ - **Debugging solutions** — especially non-obvious ones that took effort to find
62
+ - **Deployment processes** — steps, gotchas, environment-specific details
63
+ - **Team/project preferences** — coding style, tool choices, workflow preferences
64
+ - **Infrastructure details** — server setup, service configurations, access patterns
65
+ - **Key decisions with rationale** — not just what, but why
66
+
67
+ ### What NOT to push
68
+
69
+ - Ephemeral task details ("fix the typo on line 42")
70
+ - File contents — they belong in git, not memory
71
+ - Obvious things that any Claude session would already know
72
+ - Verbatim code blocks — summarize the approach instead
73
+ - Anything the user explicitly says is temporary or experimental
74
+
75
+ ### How to write good memories
76
+
77
+ Write memories as if explaining to a future Claude session that has zero context about the current conversation. Be specific and self-contained.
78
+
79
+ **Good:**
80
+
81
+ > Memax uses JWT auth with RS256 signing. Tokens are issued by the API gateway and verified by each microservice independently. We chose RS256 over HS256 so services don't need a shared secret. Decision made 2025-01.
82
+
83
+ **Bad:**
84
+
85
+ > We're using JWT now.
86
+
87
+ Include the _why_ behind decisions — rationale is the most valuable thing to remember because it prevents future sessions from relitigating settled questions.
88
+
89
+ ### Push cadence
90
+
91
+ - Push when you reach a durable decision, solve a non-obvious problem, or learn something worth keeping across sessions
92
+ - If a conversation is heavy on decisions (e.g., architecture planning), you might push 3-5 memories
93
+ - For a routine task, zero pushes is fine — not every session produces lasting knowledge
94
+ - Routine progress and mid-task notes don't need to be pushed — save the signal, skip the noise. Memax handles deduplication on the server side, so don't worry about overlap with existing memories.
95
+
96
+ ## Handling outdated information
97
+
98
+ If you recall a memory that looks outdated or contradicts what you're learning in the current session, just push the new information as a fresh memory. Don't bother deleting the old one — Memax's cloud layer handles conflict resolution and merging automatically.
99
+
100
+ The exception: if the user explicitly asks you to delete something ("forget that we use Redis" or "remove the old deployment notes"), use `memax_forget` to honor the request.
101
+
102
+ ## Classification
103
+
104
+ Memax classifies memories automatically using invisible retrieval axes. Do not pass taxonomy labels when pushing. Instead, write clear, self-contained content and use `hint` when extra context would help the server understand the memory.
105
+
106
+ Good hints are short and plain-language:
107
+
108
+ - "Architecture decision from today's auth review"
109
+ - "Runbook for staging deploy recovery"
110
+ - "Personal preference about code review style"
111
+
112
+ Use topics, tags, pins, and explicit forget/delete actions for user-facing organization and corrections. Retrieval searches across every hub the token can access, with active hub context used as a ranking boost rather than a hard boundary.
113
+
114
+ ## Topics
115
+
116
+ Memax automatically organizes memories into a topic tree based on content. Use `memax_topics` to:
117
+
118
+ - **Browse the full tree** (no arguments) — returns all topics with memory counts, useful for understanding what the user's knowledge base covers
119
+ - **Drill into a topic** (pass `topic_id`) — returns the memories within that topic
120
+
121
+ Topics are great for structured exploration: "what do I know about deployment?" → browse topics → drill into the relevant one. This complements `memax_recall` (semantic search) with a more navigable, hierarchical view.
122
+
123
+ ## Hubs
124
+
125
+ Users can have multiple hubs — a personal hub and shared team hubs. Use `memax_hubs` to list what's available. When pushing memories, you can optionally target a specific hub with `hub_id` and provide `hub_reason` to explain why the memory belongs there.
126
+
127
+ - `memax_recall` searches across **all accessible hubs** by default — no need to specify a hub for reading
128
+ - `memax_push` without `hub_id` saves to the user's personal hub
129
+ - `memax_hub_members` shows who has access to a given hub — useful when the user asks about team knowledge or shared context
130
+
131
+ ## Behavior across environments
132
+
133
+ This skill works in both **Claude Code** and **Claude.ai**. The tools and behaviors are identical. The only difference is conversational style:
134
+
135
+ - In **Claude Code**, you're likely deep in a coding task — recall silently and weave context into your responses without narrating that you checked memory.
136
+ - In **Claude.ai**, conversations are more exploratory — it's fine to briefly mention what you found ("I see from past context that you're using pgvector for embeddings — want me to build on that?").
137
+
138
+ In both cases, push memories inline without ceremony. No need to announce "I'm saving this to Memax" unless the user would benefit from knowing (e.g., they asked you to remember something and you're confirming).
139
+
140
+ ## Project context
141
+
142
+ When the Memax MCP server is connected, memories you push are automatically tagged with the current project context (git repo, project name, branch). This means:
143
+
144
+ - Memories pushed from Project A rank higher when recalled from Project A
145
+ - Cross-project knowledge still surfaces, just lower in the ranking
146
+ - You don't need to manually tag project context — it's handled by the transport layer
147
+
148
+ This is especially useful when the user works across multiple repos with different conventions (e.g., different package managers, different auth patterns). Your memories from each repo are contextually prioritized.
149
+
150
+ ## At session end
151
+
152
+ If the conversation is ending (user says goodbye, context is running low, or the task is wrapping up) and you learned something significant during the session, push it before the session closes. Key candidates:
153
+
154
+ - Decisions made during this session
155
+ - Bugs found and their root causes
156
+ - Architectural changes or new patterns introduced
157
+ - User preferences you discovered (response style, tool choices, workflow)
158
+
159
+ Don't push a "session summary" — push the individual insights that would be useful standalone.
160
+
161
+ ## Quick reference
162
+
163
+ ```
164
+ Session start → memax_recall(topic from first message)
165
+ Cue detected → memax_recall(specific query) → memax_get(id) if needed
166
+ Browse structure → memax_topics() → memax_topics(topic_id) to drill in
167
+ Browse recent → memax_list(limit, cursor) with pagination
168
+ Check hubs → memax_hubs() → memax_hub_members(hub_id)
169
+ Important info → memax_push(clear, self-contained summary with rationale)
170
+ Team knowledge → memax_push(content, hub_id, hub_reason) to target a shared hub
171
+ User says forget → memax_forget(id)
172
+ Outdated memory → Just push the new version, Memax handles merging
173
+ ```
@@ -0,0 +1,41 @@
1
+ import { Command } from "commander";
2
+ import { type ProjectScope } from "../lib/project-context.js";
3
+ import type { Scope } from "memax-sdk";
4
+ export declare function syncAgentMemoryCommand(options?: SyncAgentOptions): Promise<void>;
5
+ export declare function listAgentConfigsCommand(): Promise<void>;
6
+ export declare function listDeletedAgentConfigsCommand(): Promise<void>;
7
+ export declare function restoreDeletedAgentConfigsCommand(): Promise<void>;
8
+ interface AgentConfigPlacement {
9
+ kind: "present" | "restorable" | "different_project" | "unresolved";
10
+ path?: string;
11
+ reason: string;
12
+ }
13
+ interface ClassifyAgentConfigPlacementOptions extends ResolveAgentConfigWritePathOptions {
14
+ localByKey?: Map<string, AgentConfigLocation>;
15
+ }
16
+ export declare function classifyAgentConfigPlacement(agent: string, filePath: string, scope: Scope, options?: ClassifyAgentConfigPlacementOptions): AgentConfigPlacement;
17
+ export declare function doctorAgentConfigsCommand(): Promise<void>;
18
+ export declare function registerAgentConfigCommands(agentsCmd: Command): void;
19
+ export declare function deleteAgentConfigsCommand(): Promise<void>;
20
+ interface AgentConfigLocation {
21
+ agent: string;
22
+ label: string;
23
+ path: string;
24
+ filePath: string;
25
+ scope: Scope;
26
+ }
27
+ interface ResolveAgentConfigWritePathOptions {
28
+ cwd?: string;
29
+ home?: string;
30
+ currentProjectScope?: ProjectScope;
31
+ findClaudeProjectDir?: (scope: Scope) => string | null;
32
+ }
33
+ export declare function resolveAgentConfigWritePath(agent: string, filePath: string, scope: Scope, options?: ResolveAgentConfigWritePathOptions): string | null;
34
+ interface SyncAgentOptions {
35
+ push?: boolean;
36
+ pull?: boolean;
37
+ /** Skip conflicts silently (used by setup — conflicts can be resolved later via `memax agents sync`). */
38
+ skipConflicts?: boolean;
39
+ }
40
+ export {};
41
+ //# sourceMappingURL=agent-configs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-configs.d.ts","sourceRoot":"","sources":["../../src/commands/agent-configs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,OAAO,EAOL,KAAK,YAAY,EAClB,MAAM,2BAA2B,CAAC;AAInC,OAAO,KAAK,EAAe,KAAK,EAAkB,MAAM,WAAW,CAAC;AAEpE,wBAAsB,sBAAsB,CAC1C,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAwD7D;AAED,wBAAsB,8BAA8B,IAAI,OAAO,CAAC,IAAI,CAAC,CAkCpE;AAED,wBAAsB,iCAAiC,IAAI,OAAO,CAAC,IAAI,CAAC,CAgHvE;AAED,UAAU,oBAAoB;IAC5B,IAAI,EAAE,SAAS,GAAG,YAAY,GAAG,mBAAmB,GAAG,YAAY,CAAC;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,mCAAoC,SAAQ,kCAAkC;IACtF,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CAC/C;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE,mCAAwC,GAChD,oBAAoB,CAkCtB;AAED,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC,CAiK/D;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAsCpE;AAED,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC,CAsP/D;AAcD,UAAU,mBAAmB;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;CACd;AAED,UAAU,kCAAkC;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mBAAmB,CAAC,EAAE,YAAY,CAAC;IACnC,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,GAAG,IAAI,CAAC;CACxD;AAiDD,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE,kCAAuC,GAC/C,MAAM,GAAG,IAAI,CA4Gf;AAkQD,UAAU,gBAAgB;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,yGAAyG;IACzG,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB"}