@open-multi-agent/core 1.4.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 (207) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +373 -0
  3. package/dist/agent/agent.d.ts +153 -0
  4. package/dist/agent/agent.d.ts.map +1 -0
  5. package/dist/agent/agent.js +559 -0
  6. package/dist/agent/agent.js.map +1 -0
  7. package/dist/agent/loop-detector.d.ts +39 -0
  8. package/dist/agent/loop-detector.d.ts.map +1 -0
  9. package/dist/agent/loop-detector.js +122 -0
  10. package/dist/agent/loop-detector.js.map +1 -0
  11. package/dist/agent/pool.d.ts +158 -0
  12. package/dist/agent/pool.d.ts.map +1 -0
  13. package/dist/agent/pool.js +320 -0
  14. package/dist/agent/pool.js.map +1 -0
  15. package/dist/agent/runner.d.ts +242 -0
  16. package/dist/agent/runner.d.ts.map +1 -0
  17. package/dist/agent/runner.js +943 -0
  18. package/dist/agent/runner.js.map +1 -0
  19. package/dist/agent/structured-output.d.ts +33 -0
  20. package/dist/agent/structured-output.d.ts.map +1 -0
  21. package/dist/agent/structured-output.js +116 -0
  22. package/dist/agent/structured-output.js.map +1 -0
  23. package/dist/cli/oma.d.ts +30 -0
  24. package/dist/cli/oma.d.ts.map +1 -0
  25. package/dist/cli/oma.js +433 -0
  26. package/dist/cli/oma.js.map +1 -0
  27. package/dist/dashboard/layout-tasks.d.ts +23 -0
  28. package/dist/dashboard/layout-tasks.d.ts.map +1 -0
  29. package/dist/dashboard/layout-tasks.js +79 -0
  30. package/dist/dashboard/layout-tasks.js.map +1 -0
  31. package/dist/dashboard/render-team-run-dashboard.d.ts +11 -0
  32. package/dist/dashboard/render-team-run-dashboard.d.ts.map +1 -0
  33. package/dist/dashboard/render-team-run-dashboard.js +456 -0
  34. package/dist/dashboard/render-team-run-dashboard.js.map +1 -0
  35. package/dist/errors.d.ts +14 -0
  36. package/dist/errors.d.ts.map +1 -0
  37. package/dist/errors.js +20 -0
  38. package/dist/errors.js.map +1 -0
  39. package/dist/index.d.ts +79 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +92 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/llm/adapter.d.ts +54 -0
  44. package/dist/llm/adapter.d.ts.map +1 -0
  45. package/dist/llm/adapter.js +101 -0
  46. package/dist/llm/adapter.js.map +1 -0
  47. package/dist/llm/anthropic.d.ts +57 -0
  48. package/dist/llm/anthropic.d.ts.map +1 -0
  49. package/dist/llm/anthropic.js +432 -0
  50. package/dist/llm/anthropic.js.map +1 -0
  51. package/dist/llm/azure-openai.d.ts +74 -0
  52. package/dist/llm/azure-openai.d.ts.map +1 -0
  53. package/dist/llm/azure-openai.js +267 -0
  54. package/dist/llm/azure-openai.js.map +1 -0
  55. package/dist/llm/bedrock.d.ts +41 -0
  56. package/dist/llm/bedrock.d.ts.map +1 -0
  57. package/dist/llm/bedrock.js +345 -0
  58. package/dist/llm/bedrock.js.map +1 -0
  59. package/dist/llm/copilot.d.ts +92 -0
  60. package/dist/llm/copilot.d.ts.map +1 -0
  61. package/dist/llm/copilot.js +433 -0
  62. package/dist/llm/copilot.js.map +1 -0
  63. package/dist/llm/deepseek.d.ts +21 -0
  64. package/dist/llm/deepseek.d.ts.map +1 -0
  65. package/dist/llm/deepseek.js +24 -0
  66. package/dist/llm/deepseek.js.map +1 -0
  67. package/dist/llm/gemini.d.ts +65 -0
  68. package/dist/llm/gemini.d.ts.map +1 -0
  69. package/dist/llm/gemini.js +427 -0
  70. package/dist/llm/gemini.js.map +1 -0
  71. package/dist/llm/grok.d.ts +21 -0
  72. package/dist/llm/grok.d.ts.map +1 -0
  73. package/dist/llm/grok.js +24 -0
  74. package/dist/llm/grok.js.map +1 -0
  75. package/dist/llm/minimax.d.ts +21 -0
  76. package/dist/llm/minimax.d.ts.map +1 -0
  77. package/dist/llm/minimax.js +24 -0
  78. package/dist/llm/minimax.js.map +1 -0
  79. package/dist/llm/openai-common.d.ts +65 -0
  80. package/dist/llm/openai-common.d.ts.map +1 -0
  81. package/dist/llm/openai-common.js +286 -0
  82. package/dist/llm/openai-common.js.map +1 -0
  83. package/dist/llm/openai.d.ts +63 -0
  84. package/dist/llm/openai.d.ts.map +1 -0
  85. package/dist/llm/openai.js +256 -0
  86. package/dist/llm/openai.js.map +1 -0
  87. package/dist/llm/qiniu.d.ts +21 -0
  88. package/dist/llm/qiniu.d.ts.map +1 -0
  89. package/dist/llm/qiniu.js +24 -0
  90. package/dist/llm/qiniu.js.map +1 -0
  91. package/dist/mcp.d.ts +3 -0
  92. package/dist/mcp.d.ts.map +1 -0
  93. package/dist/mcp.js +2 -0
  94. package/dist/mcp.js.map +1 -0
  95. package/dist/memory/shared.d.ts +162 -0
  96. package/dist/memory/shared.d.ts.map +1 -0
  97. package/dist/memory/shared.js +294 -0
  98. package/dist/memory/shared.js.map +1 -0
  99. package/dist/memory/store.d.ts +72 -0
  100. package/dist/memory/store.d.ts.map +1 -0
  101. package/dist/memory/store.js +121 -0
  102. package/dist/memory/store.js.map +1 -0
  103. package/dist/orchestrator/orchestrator.d.ts +245 -0
  104. package/dist/orchestrator/orchestrator.d.ts.map +1 -0
  105. package/dist/orchestrator/orchestrator.js +1400 -0
  106. package/dist/orchestrator/orchestrator.js.map +1 -0
  107. package/dist/orchestrator/scheduler.d.ts +112 -0
  108. package/dist/orchestrator/scheduler.d.ts.map +1 -0
  109. package/dist/orchestrator/scheduler.js +256 -0
  110. package/dist/orchestrator/scheduler.js.map +1 -0
  111. package/dist/task/queue.d.ts +191 -0
  112. package/dist/task/queue.d.ts.map +1 -0
  113. package/dist/task/queue.js +408 -0
  114. package/dist/task/queue.js.map +1 -0
  115. package/dist/task/task.d.ts +90 -0
  116. package/dist/task/task.d.ts.map +1 -0
  117. package/dist/task/task.js +206 -0
  118. package/dist/task/task.js.map +1 -0
  119. package/dist/team/messaging.d.ts +106 -0
  120. package/dist/team/messaging.d.ts.map +1 -0
  121. package/dist/team/messaging.js +183 -0
  122. package/dist/team/messaging.js.map +1 -0
  123. package/dist/team/team.d.ts +141 -0
  124. package/dist/team/team.d.ts.map +1 -0
  125. package/dist/team/team.js +293 -0
  126. package/dist/team/team.js.map +1 -0
  127. package/dist/tool/built-in/bash.d.ts +12 -0
  128. package/dist/tool/built-in/bash.d.ts.map +1 -0
  129. package/dist/tool/built-in/bash.js +133 -0
  130. package/dist/tool/built-in/bash.js.map +1 -0
  131. package/dist/tool/built-in/delegate.d.ts +29 -0
  132. package/dist/tool/built-in/delegate.d.ts.map +1 -0
  133. package/dist/tool/built-in/delegate.js +92 -0
  134. package/dist/tool/built-in/delegate.js.map +1 -0
  135. package/dist/tool/built-in/file-edit.d.ts +14 -0
  136. package/dist/tool/built-in/file-edit.d.ts.map +1 -0
  137. package/dist/tool/built-in/file-edit.js +130 -0
  138. package/dist/tool/built-in/file-edit.js.map +1 -0
  139. package/dist/tool/built-in/file-read.d.ts +12 -0
  140. package/dist/tool/built-in/file-read.d.ts.map +1 -0
  141. package/dist/tool/built-in/file-read.js +82 -0
  142. package/dist/tool/built-in/file-read.js.map +1 -0
  143. package/dist/tool/built-in/file-write.d.ts +11 -0
  144. package/dist/tool/built-in/file-write.d.ts.map +1 -0
  145. package/dist/tool/built-in/file-write.js +70 -0
  146. package/dist/tool/built-in/file-write.js.map +1 -0
  147. package/dist/tool/built-in/fs-walk.d.ts +23 -0
  148. package/dist/tool/built-in/fs-walk.d.ts.map +1 -0
  149. package/dist/tool/built-in/fs-walk.js +78 -0
  150. package/dist/tool/built-in/fs-walk.js.map +1 -0
  151. package/dist/tool/built-in/glob.d.ts +12 -0
  152. package/dist/tool/built-in/glob.d.ts.map +1 -0
  153. package/dist/tool/built-in/glob.js +82 -0
  154. package/dist/tool/built-in/glob.js.map +1 -0
  155. package/dist/tool/built-in/grep.d.ts +15 -0
  156. package/dist/tool/built-in/grep.d.ts.map +1 -0
  157. package/dist/tool/built-in/grep.js +218 -0
  158. package/dist/tool/built-in/grep.js.map +1 -0
  159. package/dist/tool/built-in/index.d.ts +48 -0
  160. package/dist/tool/built-in/index.d.ts.map +1 -0
  161. package/dist/tool/built-in/index.js +56 -0
  162. package/dist/tool/built-in/index.js.map +1 -0
  163. package/dist/tool/executor.d.ts +100 -0
  164. package/dist/tool/executor.d.ts.map +1 -0
  165. package/dist/tool/executor.js +184 -0
  166. package/dist/tool/executor.js.map +1 -0
  167. package/dist/tool/framework.d.ts +167 -0
  168. package/dist/tool/framework.d.ts.map +1 -0
  169. package/dist/tool/framework.js +402 -0
  170. package/dist/tool/framework.js.map +1 -0
  171. package/dist/tool/mcp.d.ts +31 -0
  172. package/dist/tool/mcp.d.ts.map +1 -0
  173. package/dist/tool/mcp.js +175 -0
  174. package/dist/tool/mcp.js.map +1 -0
  175. package/dist/tool/text-tool-extractor.d.ts +32 -0
  176. package/dist/tool/text-tool-extractor.d.ts.map +1 -0
  177. package/dist/tool/text-tool-extractor.js +195 -0
  178. package/dist/tool/text-tool-extractor.js.map +1 -0
  179. package/dist/types.d.ts +916 -0
  180. package/dist/types.d.ts.map +1 -0
  181. package/dist/types.js +8 -0
  182. package/dist/types.js.map +1 -0
  183. package/dist/utils/keywords.d.ts +18 -0
  184. package/dist/utils/keywords.d.ts.map +1 -0
  185. package/dist/utils/keywords.js +32 -0
  186. package/dist/utils/keywords.js.map +1 -0
  187. package/dist/utils/semaphore.d.ts +49 -0
  188. package/dist/utils/semaphore.d.ts.map +1 -0
  189. package/dist/utils/semaphore.js +89 -0
  190. package/dist/utils/semaphore.js.map +1 -0
  191. package/dist/utils/tokens.d.ts +7 -0
  192. package/dist/utils/tokens.d.ts.map +1 -0
  193. package/dist/utils/tokens.js +30 -0
  194. package/dist/utils/tokens.js.map +1 -0
  195. package/dist/utils/trace.d.ts +12 -0
  196. package/dist/utils/trace.d.ts.map +1 -0
  197. package/dist/utils/trace.js +30 -0
  198. package/dist/utils/trace.js.map +1 -0
  199. package/docs/DECISIONS.md +49 -0
  200. package/docs/cli.md +265 -0
  201. package/docs/context-management.md +24 -0
  202. package/docs/featured-partner.md +28 -0
  203. package/docs/observability.md +56 -0
  204. package/docs/providers.md +78 -0
  205. package/docs/shared-memory.md +27 -0
  206. package/docs/tool-configuration.md +152 -0
  207. package/package.json +96 -0
@@ -0,0 +1,245 @@
1
+ /**
2
+ * @fileoverview OpenMultiAgent — the top-level multi-agent orchestration class.
3
+ *
4
+ * {@link OpenMultiAgent} is the primary public API of the open-multi-agent framework.
5
+ * It ties together every subsystem:
6
+ *
7
+ * - {@link Team} — Agent roster, shared memory, inter-agent messaging
8
+ * - {@link TaskQueue} — Dependency-aware work queue
9
+ * - {@link Scheduler} — Task-to-agent assignment strategies
10
+ * - {@link AgentPool} — Concurrency-controlled execution pool
11
+ * - {@link Agent} — Conversation + tool-execution loop
12
+ *
13
+ * ## Quick start
14
+ *
15
+ * ```ts
16
+ * const orchestrator = new OpenMultiAgent({ defaultModel: 'claude-opus-4-6' })
17
+ *
18
+ * const team = orchestrator.createTeam('research', {
19
+ * name: 'research',
20
+ * agents: [
21
+ * { name: 'researcher', model: 'claude-opus-4-6', systemPrompt: 'You are a researcher.' },
22
+ * { name: 'writer', model: 'claude-opus-4-6', systemPrompt: 'You are a technical writer.' },
23
+ * ],
24
+ * sharedMemory: true,
25
+ * })
26
+ *
27
+ * const result = await orchestrator.runTeam(team, 'Produce a report on TypeScript 5.5.')
28
+ * console.log(result.agentResults.get('coordinator')?.output)
29
+ * ```
30
+ *
31
+ * ## Key design decisions
32
+ *
33
+ * - **Coordinator pattern** — `runTeam()` spins up a temporary "coordinator" agent
34
+ * that breaks the high-level goal into tasks, assigns them, and synthesises the
35
+ * final answer. This is the framework's killer feature.
36
+ * - **Parallel-by-default** — Independent tasks (no shared dependency) run in
37
+ * parallel up to `maxConcurrency`.
38
+ * - **Graceful failure** — A failed task marks itself `'failed'` and its direct
39
+ * dependents remain `'blocked'` indefinitely; all non-dependent tasks continue.
40
+ * - **Progress callbacks** — Callers can pass `onProgress` in the config to receive
41
+ * structured {@link OrchestratorEvent}s without polling.
42
+ */
43
+ import type { AgentConfig, AgentRunResult, RunTeamOptions, OrchestratorConfig, Task, TeamConfig, TeamRunResult } from '../types.js';
44
+ import { Team } from '../team/team.js';
45
+ /**
46
+ * Determine whether a goal is simple enough to skip coordinator decomposition.
47
+ *
48
+ * A goal is considered "simple" when ALL of the following hold:
49
+ * 1. Its length is ≤ {@link SIMPLE_GOAL_MAX_LENGTH}.
50
+ * 2. It does not match any {@link COMPLEXITY_PATTERNS}.
51
+ *
52
+ * The complexity patterns are deliberately conservative — they only fire on
53
+ * imperative coordination directives (e.g. "collaborate with the team",
54
+ * "coordinate the workers"), so descriptive uses ("how do pods coordinate
55
+ * state", "explain microservice collaboration") remain classified as simple.
56
+ *
57
+ * Exported for unit testing.
58
+ */
59
+ export declare function isSimpleGoal(goal: string): boolean;
60
+ /**
61
+ * Select the best-matching agent for a goal using keyword affinity scoring.
62
+ *
63
+ * The scoring logic mirrors {@link Scheduler}'s `capability-match` strategy
64
+ * exactly, including its asymmetric use of the agent's `model` field:
65
+ *
66
+ * - `agentKeywords` is computed from `name + systemPrompt + model` so that
67
+ * a goal which mentions a model name (e.g. "haiku") can boost an agent
68
+ * bound to that model.
69
+ * - `agentText` (used for the reverse direction) is computed from
70
+ * `name + systemPrompt` only — model names should not bias the
71
+ * text-vs-goal-keywords match.
72
+ *
73
+ * The two-direction sum (`scoreA + scoreB`) ensures both "agent describes
74
+ * goal" and "goal mentions agent capability" contribute to the final score.
75
+ *
76
+ * Exported for unit testing.
77
+ */
78
+ export declare function selectBestAgent(goal: string, agents: AgentConfig[]): AgentConfig;
79
+ /**
80
+ * Compute the retry delay for a given attempt, capped at {@link MAX_RETRY_DELAY_MS}.
81
+ */
82
+ export declare function computeRetryDelay(baseDelay: number, backoff: number, attempt: number): number;
83
+ /**
84
+ * Execute an agent task with optional retry and exponential backoff.
85
+ *
86
+ * Exported for testability — called internally by {@link executeQueue}.
87
+ *
88
+ * @param run - The function that executes the task (typically `pool.run`).
89
+ * @param task - The task to execute (retry config read from its fields).
90
+ * @param onRetry - Called before each retry sleep with event data.
91
+ * @param delayFn - Injectable delay function (defaults to real `sleep`).
92
+ * @returns The final {@link AgentRunResult} from the last attempt.
93
+ */
94
+ export declare function executeWithRetry(run: () => Promise<AgentRunResult>, task: Task, onRetry?: (data: {
95
+ attempt: number;
96
+ maxAttempts: number;
97
+ error: string;
98
+ nextDelayMs: number;
99
+ }) => void, delayFn?: (ms: number) => Promise<void>): Promise<AgentRunResult>;
100
+ /**
101
+ * Top-level orchestrator for the open-multi-agent framework.
102
+ *
103
+ * Manages teams, coordinates task execution, and surfaces progress events.
104
+ * Most users will interact with this class exclusively.
105
+ */
106
+ export declare class OpenMultiAgent {
107
+ private readonly config;
108
+ private readonly teams;
109
+ private completedTaskCount;
110
+ /**
111
+ * @param config - Optional top-level configuration.
112
+ *
113
+ * Sensible defaults:
114
+ * - `maxConcurrency`: 5
115
+ * - `maxDelegationDepth`: 3
116
+ * - `defaultModel`: `'claude-opus-4-6'`
117
+ * - `defaultProvider`: `'anthropic'`
118
+ */
119
+ constructor(config?: OrchestratorConfig);
120
+ /**
121
+ * Create and register a {@link Team} with the orchestrator.
122
+ *
123
+ * The team is stored internally so {@link getStatus} can report aggregate
124
+ * agent counts. Returns the new {@link Team} for further configuration.
125
+ *
126
+ * @param name - Unique team identifier. Throws if already registered.
127
+ * @param config - Team configuration (agents, shared memory, concurrency).
128
+ */
129
+ createTeam(name: string, config: TeamConfig): Team;
130
+ /**
131
+ * Run a single prompt with a one-off agent.
132
+ *
133
+ * Constructs a fresh agent from `config`, runs `prompt` in a single turn,
134
+ * and returns the result. The agent is not registered with any pool or team.
135
+ *
136
+ * Useful for simple one-shot queries that do not need team orchestration.
137
+ *
138
+ * @param config - Agent configuration.
139
+ * @param prompt - The user prompt to send.
140
+ */
141
+ runAgent(config: AgentConfig, prompt: string, options?: {
142
+ abortSignal?: AbortSignal;
143
+ }): Promise<AgentRunResult>;
144
+ /**
145
+ * Run a team on a high-level goal with full automatic orchestration.
146
+ *
147
+ * This is the flagship method of the framework. It works as follows:
148
+ *
149
+ * 1. A temporary "coordinator" agent receives the goal and the team's agent
150
+ * roster, and is asked to decompose it into an ordered list of tasks with
151
+ * JSON output.
152
+ * 2. The tasks are loaded into a {@link TaskQueue}. Title-based dependency
153
+ * tokens in the coordinator's output are resolved to task IDs.
154
+ * 3. The {@link Scheduler} assigns unassigned tasks to team agents.
155
+ * 4. Tasks are executed in dependency order, with independent tasks running
156
+ * in parallel up to `maxConcurrency`.
157
+ * 5. Results are persisted to shared memory after each task so subsequent
158
+ * agents can read them.
159
+ * 6. The coordinator synthesises a final answer from all task outputs.
160
+ * 7. A {@link TeamRunResult} is returned.
161
+ *
162
+ * @param team - A team created via {@link createTeam} (or `new Team(...)`).
163
+ * @param goal - High-level natural-language goal for the team.
164
+ */
165
+ runTeam(team: Team, goal: string, options?: RunTeamOptions): Promise<TeamRunResult>;
166
+ /**
167
+ * Run a team with an explicitly provided task list.
168
+ *
169
+ * Simpler than {@link runTeam}: no coordinator agent is involved. Tasks are
170
+ * loaded directly into the queue, unassigned tasks are auto-assigned via the
171
+ * {@link Scheduler}, and execution proceeds in dependency order.
172
+ *
173
+ * @param team - A team created via {@link createTeam}.
174
+ * @param tasks - Array of task descriptors.
175
+ */
176
+ runTasks(team: Team, tasks: ReadonlyArray<{
177
+ title: string;
178
+ description: string;
179
+ assignee?: string;
180
+ dependsOn?: string[];
181
+ memoryScope?: 'dependencies' | 'all';
182
+ maxRetries?: number;
183
+ retryDelayMs?: number;
184
+ retryBackoff?: number;
185
+ }>, options?: {
186
+ abortSignal?: AbortSignal;
187
+ }): Promise<TeamRunResult>;
188
+ /**
189
+ * Returns a lightweight status snapshot.
190
+ *
191
+ * - `teams` — Number of teams registered with this orchestrator.
192
+ * - `activeAgents` — Total agents currently in `running` state.
193
+ * - `completedTasks` — Cumulative count of successfully completed tasks
194
+ * (coordinator meta-steps excluded).
195
+ */
196
+ getStatus(): {
197
+ teams: number;
198
+ activeAgents: number;
199
+ completedTasks: number;
200
+ };
201
+ /**
202
+ * Deregister all teams and reset internal counters.
203
+ *
204
+ * Does not cancel in-flight runs. Call this when you want to reuse the
205
+ * orchestrator instance for a fresh set of teams.
206
+ *
207
+ * Async for forward compatibility — shutdown may need to perform async
208
+ * cleanup (e.g. graceful agent drain) in future versions.
209
+ */
210
+ shutdown(): Promise<void>;
211
+ /** Build the system prompt given to the coordinator agent. */
212
+ private buildCoordinatorSystemPrompt;
213
+ /** Build coordinator system prompt with optional caller overrides. */
214
+ private buildCoordinatorPrompt;
215
+ /** Build the coordinator team roster section. */
216
+ private buildCoordinatorRosterSection;
217
+ /** Build the coordinator JSON output-format section. */
218
+ private buildCoordinatorOutputFormatSection;
219
+ /** Build the coordinator synthesis guidance section. */
220
+ private buildCoordinatorSynthesisSection;
221
+ /** Build the decomposition prompt for the coordinator. */
222
+ private buildDecompositionPrompt;
223
+ /** Build the synthesis prompt shown to the coordinator after all tasks complete. */
224
+ private buildSynthesisPrompt;
225
+ /**
226
+ * Load a list of task specs into a queue.
227
+ *
228
+ * Handles title-based `dependsOn` references by building a title→id map first,
229
+ * then resolving them to real IDs before adding tasks to the queue.
230
+ */
231
+ private loadSpecsIntoQueue;
232
+ /** Build an {@link AgentPool} from a list of agent configurations. */
233
+ private buildPool;
234
+ /**
235
+ * Aggregate the per-run `agentResults` map into a {@link TeamRunResult}.
236
+ *
237
+ * Merges results keyed as `agentName:taskId` back into a per-agent map
238
+ * by agent name for the public result surface.
239
+ *
240
+ * Only non-coordinator entries are counted toward `completedTaskCount` to
241
+ * avoid double-counting the coordinator's internal decompose/synthesis steps.
242
+ */
243
+ private buildTeamRunResult;
244
+ }
245
+ //# sourceMappingURL=orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"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"}