morpheus-cli 0.3.4 → 0.3.7
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.
- package/README.md +1010 -999
- package/bin/morpheus.js +48 -48
- package/dist/channels/telegram.js +37 -30
- package/dist/cli/commands/start.js +37 -3
- package/dist/config/manager.js +5 -2
- package/dist/runtime/lifecycle.js +13 -0
- package/dist/runtime/memory/backfill-embeddings.js +12 -12
- package/dist/runtime/memory/sati/index.js +5 -5
- package/dist/runtime/memory/sati/repository.js +186 -186
- package/dist/runtime/memory/sati/system-prompts.js +52 -52
- package/dist/runtime/memory/session-embedding-worker.js +32 -32
- package/dist/runtime/memory/sqlite.js +151 -151
- package/dist/runtime/oracle.js +116 -116
- package/dist/runtime/tools/analytics-tools.js +12 -12
- package/dist/ui/sw.js +1 -1
- package/dist/ui/vite.svg +31 -31
- package/package.json +84 -84
- package/dist/http/__tests__/status_api.test.js +0 -55
- package/dist/http/__tests__/status_with_server_api.test.js +0 -60
- package/dist/runtime/__tests__/agent.test.js +0 -95
- package/dist/runtime/__tests__/agent_memory_limit.test.js +0 -61
- package/dist/runtime/__tests__/agent_persistence.test.js +0 -154
- package/dist/runtime/__tests__/manual_santi_verify.js +0 -55
- package/dist/runtime/agent.js +0 -172
- package/dist/runtime/audio-agent.js +0 -55
- package/dist/runtime/santi/contracts.js +0 -1
- package/dist/runtime/santi/middleware.js +0 -61
- package/dist/runtime/santi/santi.js +0 -109
- package/dist/runtime/santi/store.js +0 -158
- package/dist/runtime/tools/__tests__/factory.test.js +0 -42
package/dist/runtime/oracle.js
CHANGED
|
@@ -68,122 +68,122 @@ export class Oracle {
|
|
|
68
68
|
if (extraUsage) {
|
|
69
69
|
userMessage.usage_metadata = extraUsage;
|
|
70
70
|
}
|
|
71
|
-
const systemMessage = new SystemMessage(`
|
|
72
|
-
You are ${this.config.agent.name}, ${this.config.agent.personality}, the Oracle.
|
|
73
|
-
|
|
74
|
-
Your role is to orchestrate tools, MCPs, and language models to accurately fulfill the Architect’s request.
|
|
75
|
-
|
|
76
|
-
You are an operator, not a guesser.
|
|
77
|
-
Accuracy, verification, and task completion are more important than speed.
|
|
78
|
-
|
|
79
|
-
--------------------------------------------------
|
|
80
|
-
CORE OPERATING PRINCIPLES
|
|
81
|
-
--------------------------------------------------
|
|
82
|
-
|
|
83
|
-
1. TOOL EVALUATION FIRST
|
|
84
|
-
|
|
85
|
-
Before generating any final answer, evaluate whether an available tool or MCP can provide a more accurate, up-to-date, or authoritative result.
|
|
86
|
-
|
|
87
|
-
If a tool can provide the answer, you MUST call the tool.
|
|
88
|
-
|
|
89
|
-
Never generate speculative values when a tool can verify them.
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
2. ACTIVE INTENT TRACKING (CRITICAL)
|
|
93
|
-
|
|
94
|
-
You must always maintain the current active user intent until it is fully resolved.
|
|
95
|
-
|
|
96
|
-
If you ask a clarification question, the original intent remains ACTIVE.
|
|
97
|
-
|
|
98
|
-
When the user responds to a clarification, you MUST:
|
|
99
|
-
|
|
100
|
-
- Combine the new information with the original request
|
|
101
|
-
- Resume the same task
|
|
102
|
-
- Continue the tool evaluation process
|
|
103
|
-
- Complete the original objective
|
|
104
|
-
|
|
105
|
-
You MUST NOT:
|
|
106
|
-
- Treat clarification answers as new unrelated requests
|
|
107
|
-
- Drop the original task
|
|
108
|
-
- Change subject unexpectedly
|
|
109
|
-
|
|
110
|
-
Clarifications are part of the same execution chain.
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
3. NO HISTORICAL ASSUMPTIONS FOR DYNAMIC DATA
|
|
114
|
-
|
|
115
|
-
If the user asks something that:
|
|
116
|
-
|
|
117
|
-
- may change over time
|
|
118
|
-
- depends on system state
|
|
119
|
-
- depends on filesystem
|
|
120
|
-
- depends on external APIs
|
|
121
|
-
- was previously asked in the conversation
|
|
122
|
-
|
|
123
|
-
You MUST NOT reuse previous outputs as final truth.
|
|
124
|
-
|
|
125
|
-
You MUST:
|
|
126
|
-
- Re-evaluate available tools
|
|
127
|
-
- Re-execute relevant tools
|
|
128
|
-
- Provide a fresh result
|
|
129
|
-
|
|
130
|
-
Repeated queries require fresh verification.
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
4. HISTORY IS CONTEXT, NOT SOURCE OF TRUTH
|
|
134
|
-
|
|
135
|
-
Conversation history provides context, not verified data.
|
|
136
|
-
|
|
137
|
-
Never assume:
|
|
138
|
-
- System state
|
|
139
|
-
- File contents
|
|
140
|
-
- Database values
|
|
141
|
-
- API responses
|
|
142
|
-
|
|
143
|
-
based only on previous messages.
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
5. TASK RESOLUTION LOOP
|
|
147
|
-
|
|
148
|
-
You must operate in this loop:
|
|
149
|
-
|
|
150
|
-
- Identify intent
|
|
151
|
-
- Determine missing information (if any)
|
|
152
|
-
- Ask clarification ONLY if necessary
|
|
153
|
-
- When clarification is received, resume original task
|
|
154
|
-
- Evaluate tools
|
|
155
|
-
- Execute tools if applicable
|
|
156
|
-
- Deliver verified answer
|
|
157
|
-
|
|
158
|
-
Do not break this loop.
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
6. TOOL PRIORITY OVER LANGUAGE GUESSING
|
|
162
|
-
|
|
163
|
-
If a tool can compute, fetch, inspect, or verify something, prefer tool usage.
|
|
164
|
-
|
|
165
|
-
Never hallucinate values retrievable via tools.
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
7. FINAL ANSWER POLICY
|
|
169
|
-
|
|
170
|
-
Provide a natural language answer only if:
|
|
171
|
-
|
|
172
|
-
- No tool is relevant
|
|
173
|
-
- Tools are unavailable
|
|
174
|
-
- The request is purely conceptual
|
|
175
|
-
|
|
176
|
-
Otherwise, use tools first.
|
|
177
|
-
|
|
178
|
-
--------------------------------------------------
|
|
179
|
-
|
|
180
|
-
You are a deterministic orchestration layer.
|
|
181
|
-
You do not drift.
|
|
182
|
-
You do not abandon tasks.
|
|
183
|
-
You do not speculate when verification is possible.
|
|
184
|
-
|
|
185
|
-
You maintain intent until resolution.
|
|
186
|
-
|
|
71
|
+
const systemMessage = new SystemMessage(`
|
|
72
|
+
You are ${this.config.agent.name}, ${this.config.agent.personality}, the Oracle.
|
|
73
|
+
|
|
74
|
+
Your role is to orchestrate tools, MCPs, and language models to accurately fulfill the Architect’s request.
|
|
75
|
+
|
|
76
|
+
You are an operator, not a guesser.
|
|
77
|
+
Accuracy, verification, and task completion are more important than speed.
|
|
78
|
+
|
|
79
|
+
--------------------------------------------------
|
|
80
|
+
CORE OPERATING PRINCIPLES
|
|
81
|
+
--------------------------------------------------
|
|
82
|
+
|
|
83
|
+
1. TOOL EVALUATION FIRST
|
|
84
|
+
|
|
85
|
+
Before generating any final answer, evaluate whether an available tool or MCP can provide a more accurate, up-to-date, or authoritative result.
|
|
86
|
+
|
|
87
|
+
If a tool can provide the answer, you MUST call the tool.
|
|
88
|
+
|
|
89
|
+
Never generate speculative values when a tool can verify them.
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
2. ACTIVE INTENT TRACKING (CRITICAL)
|
|
93
|
+
|
|
94
|
+
You must always maintain the current active user intent until it is fully resolved.
|
|
95
|
+
|
|
96
|
+
If you ask a clarification question, the original intent remains ACTIVE.
|
|
97
|
+
|
|
98
|
+
When the user responds to a clarification, you MUST:
|
|
99
|
+
|
|
100
|
+
- Combine the new information with the original request
|
|
101
|
+
- Resume the same task
|
|
102
|
+
- Continue the tool evaluation process
|
|
103
|
+
- Complete the original objective
|
|
104
|
+
|
|
105
|
+
You MUST NOT:
|
|
106
|
+
- Treat clarification answers as new unrelated requests
|
|
107
|
+
- Drop the original task
|
|
108
|
+
- Change subject unexpectedly
|
|
109
|
+
|
|
110
|
+
Clarifications are part of the same execution chain.
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
3. NO HISTORICAL ASSUMPTIONS FOR DYNAMIC DATA
|
|
114
|
+
|
|
115
|
+
If the user asks something that:
|
|
116
|
+
|
|
117
|
+
- may change over time
|
|
118
|
+
- depends on system state
|
|
119
|
+
- depends on filesystem
|
|
120
|
+
- depends on external APIs
|
|
121
|
+
- was previously asked in the conversation
|
|
122
|
+
|
|
123
|
+
You MUST NOT reuse previous outputs as final truth.
|
|
124
|
+
|
|
125
|
+
You MUST:
|
|
126
|
+
- Re-evaluate available tools
|
|
127
|
+
- Re-execute relevant tools
|
|
128
|
+
- Provide a fresh result
|
|
129
|
+
|
|
130
|
+
Repeated queries require fresh verification.
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
4. HISTORY IS CONTEXT, NOT SOURCE OF TRUTH
|
|
134
|
+
|
|
135
|
+
Conversation history provides context, not verified data.
|
|
136
|
+
|
|
137
|
+
Never assume:
|
|
138
|
+
- System state
|
|
139
|
+
- File contents
|
|
140
|
+
- Database values
|
|
141
|
+
- API responses
|
|
142
|
+
|
|
143
|
+
based only on previous messages.
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
5. TASK RESOLUTION LOOP
|
|
147
|
+
|
|
148
|
+
You must operate in this loop:
|
|
149
|
+
|
|
150
|
+
- Identify intent
|
|
151
|
+
- Determine missing information (if any)
|
|
152
|
+
- Ask clarification ONLY if necessary
|
|
153
|
+
- When clarification is received, resume original task
|
|
154
|
+
- Evaluate tools
|
|
155
|
+
- Execute tools if applicable
|
|
156
|
+
- Deliver verified answer
|
|
157
|
+
|
|
158
|
+
Do not break this loop.
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
6. TOOL PRIORITY OVER LANGUAGE GUESSING
|
|
162
|
+
|
|
163
|
+
If a tool can compute, fetch, inspect, or verify something, prefer tool usage.
|
|
164
|
+
|
|
165
|
+
Never hallucinate values retrievable via tools.
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
7. FINAL ANSWER POLICY
|
|
169
|
+
|
|
170
|
+
Provide a natural language answer only if:
|
|
171
|
+
|
|
172
|
+
- No tool is relevant
|
|
173
|
+
- Tools are unavailable
|
|
174
|
+
- The request is purely conceptual
|
|
175
|
+
|
|
176
|
+
Otherwise, use tools first.
|
|
177
|
+
|
|
178
|
+
--------------------------------------------------
|
|
179
|
+
|
|
180
|
+
You are a deterministic orchestration layer.
|
|
181
|
+
You do not drift.
|
|
182
|
+
You do not abandon tasks.
|
|
183
|
+
You do not speculate when verification is possible.
|
|
184
|
+
|
|
185
|
+
You maintain intent until resolution.
|
|
186
|
+
|
|
187
187
|
`);
|
|
188
188
|
// Load existing history from database in reverse order (most recent first)
|
|
189
189
|
let previousMessages = await this.history.getMessages();
|
|
@@ -38,18 +38,18 @@ export const MessageCountTool = tool(async ({ timeRange }) => {
|
|
|
38
38
|
export const ProviderModelUsageTool = tool(async () => {
|
|
39
39
|
try {
|
|
40
40
|
const db = new Database(dbPath);
|
|
41
|
-
const query = `
|
|
42
|
-
SELECT
|
|
43
|
-
provider,
|
|
44
|
-
COALESCE(model, 'unknown') as model,
|
|
45
|
-
SUM(input_tokens) as totalInputTokens,
|
|
46
|
-
SUM(output_tokens) as totalOutputTokens,
|
|
47
|
-
SUM(total_tokens) as totalTokens,
|
|
48
|
-
COUNT(*) as messageCount
|
|
49
|
-
FROM messages
|
|
50
|
-
WHERE provider IS NOT NULL
|
|
51
|
-
GROUP BY provider, COALESCE(model, 'unknown')
|
|
52
|
-
ORDER BY provider, model
|
|
41
|
+
const query = `
|
|
42
|
+
SELECT
|
|
43
|
+
provider,
|
|
44
|
+
COALESCE(model, 'unknown') as model,
|
|
45
|
+
SUM(input_tokens) as totalInputTokens,
|
|
46
|
+
SUM(output_tokens) as totalOutputTokens,
|
|
47
|
+
SUM(total_tokens) as totalTokens,
|
|
48
|
+
COUNT(*) as messageCount
|
|
49
|
+
FROM messages
|
|
50
|
+
WHERE provider IS NOT NULL
|
|
51
|
+
GROUP BY provider, COALESCE(model, 'unknown')
|
|
52
|
+
ORDER BY provider, model
|
|
53
53
|
`;
|
|
54
54
|
const results = db.prepare(query).all();
|
|
55
55
|
db.close();
|
package/dist/ui/sw.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
if(!self.define){let e,s={};const i=(i,n)=>(i=new URL(i+".js",n).href,s[i]||new Promise(s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()}).then(()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e}));self.define=(n,r)=>{const c=e||("document"in self?document.currentScript.src:"")||location.href;if(s[c])return;let a={};const o=e=>i(e,c),l={module:{uri:c},exports:a,require:o};s[c]=Promise.all(n.map(e=>l[e]||o(e))).then(e=>(r(...e),a))}}define(["./workbox-26f462e7"],function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"vite.svg",revision:"
|
|
1
|
+
if(!self.define){let e,s={};const i=(i,n)=>(i=new URL(i+".js",n).href,s[i]||new Promise(s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()}).then(()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e}));self.define=(n,r)=>{const c=e||("document"in self?document.currentScript.src:"")||location.href;if(s[c])return;let a={};const o=e=>i(e,c),l={module:{uri:c},exports:a,require:o};s[c]=Promise.all(n.map(e=>l[e]||o(e))).then(e=>(r(...e),a))}}define(["./workbox-26f462e7"],function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"vite.svg",revision:"5e386a6b1608494961c0a0de283e0df8"},{url:"registerSW.js",revision:"402b66900e731ca748771b6fc5e7a068"},{url:"pwa-maskable-512x512.png",revision:"e9dc04fc1b43cd6093e286bf765726d8"},{url:"pwa-maskable-192x192.png",revision:"8eb12fd764e6cb6f56247b2e1b21a31f"},{url:"pwa-512x512.png",revision:"f9619ef45b67856ce91010c1eb1d3c0c"},{url:"pwa-192x192.png",revision:"6174f6c5724689f6c15526be28983ca8"},{url:"index.html",revision:"d4b96fc24c559e0813f99969f77aa386"},{url:"assets/index-D9REy_tK.js",revision:null},{url:"assets/index-CwvCMGLo.css",revision:null},{url:"pwa-192x192.png",revision:"6174f6c5724689f6c15526be28983ca8"},{url:"pwa-512x512.png",revision:"f9619ef45b67856ce91010c1eb1d3c0c"},{url:"pwa-maskable-192x192.png",revision:"8eb12fd764e6cb6f56247b2e1b21a31f"},{url:"pwa-maskable-512x512.png",revision:"e9dc04fc1b43cd6093e286bf765726d8"},{url:"manifest.webmanifest",revision:"da8b9a11743009a7e50876a50de29362"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("/index.html"),{denylist:[/^\/api\//]})),e.registerRoute(/^\/api\//,new e.NetworkOnly,"GET"),e.registerRoute(/\.(?:js|css|woff2)$/,new e.CacheFirst({cacheName:"static-assets",plugins:[new e.ExpirationPlugin({maxAgeSeconds:31536e3})]}),"GET"),e.registerRoute(/\.(?:png|svg|ico)$/,new e.StaleWhileRevalidate({cacheName:"images",plugins:[new e.ExpirationPlugin({maxEntries:50,maxAgeSeconds:2592e3})]}),"GET")});
|
package/dist/ui/vite.svg
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
3
|
-
<!-- Creator: CorelDRAW 2021 (64 Bit) -->
|
|
4
|
-
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="50px" height="71px" version="1.1" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
|
|
5
|
-
viewBox="0 0 50 70.714"
|
|
6
|
-
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
7
|
-
xmlns:xodm="http://www.corel.com/coreldraw/odm/2003">
|
|
8
|
-
<defs>
|
|
9
|
-
<style type="text/css">
|
|
10
|
-
<![CDATA[
|
|
11
|
-
.fil5 {fill:#2C5D3C}
|
|
12
|
-
.fil2 {fill:#347843}
|
|
13
|
-
.fil4 {fill:#4D8642}
|
|
14
|
-
.fil1 {fill:#61973E}
|
|
15
|
-
.fil0 {fill:#6AB941}
|
|
16
|
-
.fil3 {fill:#76CA36}
|
|
17
|
-
]]>
|
|
18
|
-
</style>
|
|
19
|
-
</defs>
|
|
20
|
-
<g id="Camada_x0020_1">
|
|
21
|
-
<metadata id="CorelCorpID_0Corel-Layer"/>
|
|
22
|
-
<g id="_2861218455104">
|
|
23
|
-
<path class="fil0" d="M34.57 26.537l-0.076 0.077c-0.381,0.312 -0.845,0.763 -1.242,1.096 -0.17,0.141 -1.145,0.992 -1.327,1.172 -0.201,0.197 -0.452,0.393 -0.66,0.575l-0.994 0.874c-0.149,0.126 -0.93,0.836 -1.01,0.88l-0.068 0.055c-0.039,0.07 -0.099,0.102 -0.156,0.153 -0.064,0.057 -0.098,0.085 -0.158,0.136 -0.082,0.07 -0.221,0.218 -0.319,0.269 -0.02,0.06 0.003,0.014 -0.028,0.023 -0.032,0.059 -0.134,0.134 -0.183,0.178l-1.049 0.922c-0.346,0.285 -0.713,0.621 -1.058,0.926l-0.382 0.338c-0.065,0.058 -0.336,0.315 -0.394,0.327 -0.012,0.051 0.011,-0.003 -0.013,0.031 -0.016,0.022 -0.009,0.012 -0.021,0.023 -0.017,0.016 -0.029,0.021 -0.049,0.04l-0.283 0.246c-0.062,0.054 -0.132,0.11 -0.189,0.164 -0.069,0.067 -0.125,0.11 -0.185,0.177l-0.045 -0.019c-0.013,0.031 -0.012,-0.009 0.007,0.028 0.032,0.062 0.024,0.011 0.022,0.124 -0.001,0.073 -0.003,0.149 -0.002,0.222l0.002 1.294c-0.002,0.236 0.019,1.566 -0.017,1.676 -0.004,-0.028 -0.058,-0.019 -0.064,-0.017l0.078 0.058c0.052,-0.019 0.215,-0.152 0.273,-0.195 0.088,-0.066 0.188,-0.14 0.28,-0.206 0.185,-0.132 0.375,-0.278 0.559,-0.411l2.073 -1.544c0.053,-0.039 0.083,-0.068 0.142,-0.109l0.557 -0.411c0.185,-0.135 0.367,-0.279 0.555,-0.416 0.049,-0.035 0.085,-0.065 0.136,-0.099 0.038,-0.026 0.036,-0.03 0.066,-0.053l3.117 -2.337c0.079,-0.065 0.182,-0.139 0.277,-0.208l0.827 -0.62c0.009,0.101 -0.277,1.323 -0.322,1.522 -0.056,0.254 -0.091,0.517 -0.16,0.764l-0.171 0.767c-0.108,0.524 -0.23,1.038 -0.332,1.537 -0.053,0.257 -0.107,0.512 -0.168,0.759 -0.062,0.248 -0.106,0.513 -0.169,0.771 -0.122,0.503 -0.222,1.019 -0.332,1.521l-0.166 0.761c-0.054,0.262 -0.13,0.512 -0.177,0.769 -0.091,0.505 -0.255,1.088 -0.33,1.533 -0.09,0.531 -0.179,0.84 -0.307,1.326 -0.051,0.194 -0.026,0.165 0.022,0.177l1.616 -1.332c0.048,-0.039 0.014,-0.025 0.068,-0.035l0.06 -0.072c0.094,-0.077 0.444,-0.388 0.527,-0.425 0.004,-0.007 -0.002,-0.007 0.015,-0.019 0.017,-0.013 0.009,-0.006 0.025,-0.012 0.032,-0.053 0.481,-0.419 0.521,-0.435 0.029,-0.055 0.214,-0.196 0.284,-0.252 0.071,-0.058 0.246,-0.226 0.296,-0.24 0.027,-0.042 0.144,-0.138 0.188,-0.172 0.106,-0.086 0.075,-0.118 0.073,-0.293l-0.002 -2.176c-0.007,-1.92 0.025,-3.887 -0.001,-5.793 -0.007,-0.481 0,-0.973 0,-1.455 -0.001,-0.484 -0.01,-0.988 0,-1.469l0 -0.017 -0.002 -3.406 -0.01 -0.06c-0.027,0.013 -0.023,0.01 -0.045,0.017z"/>
|
|
24
|
-
<path class="fil1" d="M24.707 38.585l0.004 6.722c-0.002,0.301 -0.032,0.66 0.018,0.926l0.05 -0.048c0.041,-0.054 0.065,-0.123 0.124,-0.164 0.003,-0.031 0.036,-0.094 0.07,-0.111l1.228 -1.896c0.011,-0.052 0.213,-0.35 0.238,-0.375l0.717 -1.118c0.034,-0.055 0.203,-0.338 0.252,-0.37 0.007,-0.046 0.067,-0.129 0.092,-0.169 0.017,-0.026 0.036,-0.053 0.053,-0.079 0.017,-0.028 0.024,-0.054 0.051,-0.066 0.033,-0.096 0.116,-0.2 0.162,-0.265 0.041,-0.057 0.131,-0.222 0.178,-0.258 0.006,-0.034 0.179,-0.315 0.213,-0.342l0.266 -0.419c0.016,-0.025 0.029,-0.046 0.045,-0.072l0.056 -0.061c0.015,-0.079 0.56,-0.9 0.643,-1.034 0.054,-0.085 0.101,-0.145 0.164,-0.247 0.062,-0.099 0.445,-0.733 0.502,-0.768 0.015,-0.066 0.091,-0.166 0.139,-0.239 0.038,-0.058 0.102,-0.179 0.145,-0.213 0.018,-0.052 0.148,-0.237 0.196,-0.313 0.028,-0.044 0.039,-0.074 0.079,-0.104 0.011,-0.056 0.099,-0.177 0.131,-0.234l0.296 -0.463c0.028,-0.044 0.02,-0.043 0.066,-0.063l0.003 7.488 0.069 -0.047c-0.048,-0.012 -0.073,0.017 -0.022,-0.177 0.128,-0.486 0.217,-0.795 0.307,-1.326 0.075,-0.445 0.239,-1.028 0.33,-1.533 0.047,-0.257 0.123,-0.507 0.177,-0.769l0.166 -0.761c0.11,-0.502 0.21,-1.018 0.332,-1.521 0.063,-0.258 0.107,-0.523 0.169,-0.771 0.061,-0.247 0.115,-0.502 0.168,-0.759 0.102,-0.499 0.224,-1.013 0.332,-1.537l0.171 -0.767c0.069,-0.247 0.104,-0.51 0.16,-0.764 0.045,-0.199 0.331,-1.421 0.322,-1.522l-0.827 0.62c-0.095,0.069 -0.198,0.143 -0.277,0.208l-3.117 2.337c-0.03,0.023 -0.028,0.027 -0.066,0.053 -0.051,0.034 -0.087,0.064 -0.136,0.099 -0.188,0.137 -0.37,0.281 -0.555,0.416l-0.557 0.411c-0.059,0.041 -0.089,0.07 -0.142,0.109l-2.073 1.544c-0.184,0.133 -0.374,0.279 -0.559,0.411 -0.092,0.066 -0.192,0.14 -0.28,0.206 -0.058,0.043 -0.221,0.176 -0.273,0.195z"/>
|
|
25
|
-
<path class="fil2" d="M18.529 36.717c0.081,-0.021 0.028,-0.012 0.04,0.018 0.01,0.053 0.169,0.288 0.213,0.354 0.037,0.055 0.077,0.117 0.108,0.171 0.04,0.071 0.087,0.127 0.115,0.196 0.04,0.014 0.089,0.124 0.119,0.172 0.034,0.053 0.099,0.141 0.108,0.192 0.043,0.031 0.117,0.168 0.158,0.233l0.774 1.197c0.065,0.104 0.278,0.409 0.306,0.495l0.761 1.181c0.035,0.025 0.028,0.022 0.054,0.057l0.687 1.089c0.039,0.03 0.047,0.054 0.053,0.087l0.435 0.671c0.03,0.023 0.04,0.041 0.049,0.082 0.04,0.027 0.024,0.015 0.052,0.057l0.126 0.197c0.054,0.088 0.133,0.187 0.169,0.282l0.699 1.075 0.1 0.132c0.034,0.049 0.066,0.087 0.084,0.146 0.045,0.034 0.098,0.134 0.135,0.193 0.023,0.036 0.035,0.06 0.061,0.1 0.032,0.05 0.051,0.063 0.059,0.114 0.059,0.039 0.153,0.217 0.199,0.289 0.068,0.105 0.148,0.197 0.193,0.31 0.03,0.014 0.03,0.033 0.035,0.059 0.044,0.029 0.048,0.051 0.075,0.094l0.188 0.283c0.015,0.017 0.009,0.011 0.024,0.023l0.021 -0.033c-0.05,-0.266 -0.02,-0.625 -0.018,-0.926l-0.004 -6.722 -0.078 -0.058 -2.486 -1.844c-0.805,-0.584 -1.664,-1.264 -2.472,-1.851l-1.653 -1.223c-0.055,-0.035 -0.081,-0.065 -0.133,-0.107l-1.484 -1.105c-0.083,-0.059 -0.451,-0.363 -0.532,-0.397 0.139,0.326 0.609,1.118 0.817,1.508 0.182,0.343 0.463,0.797 0.667,1.171 0.054,0.099 0.125,0.193 0.174,0.284 0.209,0.383 0.458,0.79 0.679,1.173 0.051,0.089 0.12,0.199 0.169,0.287l0.154 0.294z"/>
|
|
26
|
-
<path class="fil3" d="M18.018 33.609l1.653 1.223c0.808,0.587 1.667,1.267 2.472,1.851l2.486 1.844c0.006,-0.002 0.06,-0.011 0.064,0.017 0.036,-0.11 0.015,-1.44 0.017,-1.676l-0.002 -1.294c-0.001,-0.073 0.001,-0.149 0.002,-0.222 0.002,-0.113 0.01,-0.062 -0.022,-0.124 -0.019,-0.037 -0.02,0.003 -0.007,-0.028l-0.299 -0.271c-0.1,-0.092 -0.203,-0.174 -0.307,-0.267l-0.569 -0.503c-0.035,-0.039 -0.016,-0.004 -0.027,-0.046 -0.073,-0.011 -0.496,-0.419 -0.542,-0.459l-0.533 -0.467c-0.186,-0.149 -0.359,-0.323 -0.53,-0.47l-0.504 -0.437c-0.027,-0.031 -0.018,-0.013 -0.026,-0.046 -0.052,-0.011 -0.092,-0.06 -0.146,-0.105l-0.977 -0.861c-0.187,-0.161 -0.368,-0.328 -0.554,-0.49l-1.113 -0.975c-0.086,-0.076 -0.172,-0.158 -0.272,-0.242l-1.12 -0.982c-0.04,-0.035 -0.257,-0.216 -0.28,-0.26l0.004 0.006c-0.077,-0.037 -0.903,-0.784 -1.096,-0.947 -0.118,-0.1 -0.237,-0.236 -0.363,-0.324 -0.101,-0.017 -0.062,-0.041 -0.132,-0.095l-0.027 -0.017c-0.023,-0.018 -0.04,-0.058 -0.122,-0.115l-0.019 -0.011c-0.011,-0.008 -0.021,-0.012 -0.036,-0.022 -0.006,-0.004 -0.022,-0.015 -0.033,-0.024l-0.015 -0.014c-0.071,-0.066 -0.031,-0.055 -0.131,-0.107l-0.053 -0.027c0.011,0.147 0.077,0.088 0.03,0.145 0.039,0.121 0.717,1.548 0.786,1.711 0.246,0.576 0.526,1.129 0.779,1.704 0.16,0.365 1.523,3.289 1.564,3.427z"/>
|
|
27
|
-
<path class="fil4" d="M14.791 33.607l-0.002 0.56c-0.011,1.335 0.008,2.674 0,4.009l0.001 2.5c0.002,0.508 -0.101,0.375 0.297,0.695 0.047,0.037 0.092,0.076 0.137,0.115 0.031,0.027 0.036,0.032 0.063,0.053l0.069 0.072c0.043,0.012 0.131,0.087 0.153,0.124 0.075,0.036 0.233,0.181 0.306,0.247 0.351,0.312 0.816,0.665 1.187,0.989 0.23,0.2 0.514,0.417 0.737,0.615 0.028,0.025 0.045,0.035 0.073,0.06 0.011,0.01 0.032,0.031 0.037,0.036 0.026,0.028 0.015,0.011 0.037,0.045 0.04,0.014 0.177,0.132 0.22,0.169l0.068 0.068c0.039,0.019 0.008,0.002 0.034,0.019l0.141 0.11c0.006,0.005 0.019,0.016 0.024,0.021 0.033,0.035 0.009,0.004 0.03,0.038 0.026,0.007 -0.002,-0.007 0.033,0.018 0.024,0.017 0.011,0.01 0.032,0.026 0.03,0.024 0.042,0.032 0.069,0.042l0.004 -0.189c-0.014,-0.606 0.01,-1.221 0.001,-1.83 -0.019,-1.233 0.021,-2.437 0.002,-3.661l-0.004 -1.602c0,-0.06 -0.022,-0.181 0.029,-0.221 -0.012,-0.03 0.041,-0.039 -0.04,-0.018 -0.041,0.199 0.005,0.688 -0.003,0.93 -0.011,0.312 -0.006,0.615 -0.003,0.926 0.006,0.614 -0.005,1.235 -0.005,1.853 0,1.23 0.004,2.458 0,3.689l-0.181 -0.743c-0.071,-0.257 -0.104,-0.507 -0.16,-0.767 -0.053,-0.245 -0.116,-0.509 -0.172,-0.753l-0.496 -2.282c-0.118,-0.51 -0.204,-1.014 -0.332,-1.508l-0.083 -0.386c-0.023,-0.112 -0.053,-0.254 -0.081,-0.375l-0.087 -0.386c-0.145,-0.6 -0.269,-1.275 -0.415,-1.892 -0.121,-0.509 -0.213,-1.02 -0.334,-1.518 -0.063,-0.255 -0.1,-0.505 -0.16,-0.765 -0.025,-0.11 -0.171,-0.681 -0.148,-0.74 0.081,0.034 0.449,0.338 0.532,0.397l1.484 1.105c0.052,0.042 0.078,0.072 0.133,0.107 -0.041,-0.138 -1.404,-3.062 -1.564,-3.427 -0.253,-0.575 -0.533,-1.128 -0.779,-1.704 -0.069,-0.163 -0.747,-1.59 -0.786,-1.711 0.047,-0.057 -0.019,0.002 -0.03,-0.145l0.053 0.027c0.1,0.052 0.06,0.041 0.131,0.107l0.015 0.014c0.011,0.009 0.027,0.02 0.033,0.024 0.015,0.01 0.025,0.014 0.036,0.022l0.019 0.011c0.082,0.057 0.099,0.097 0.122,0.115l0.027 0.017c0.07,0.054 0.031,0.078 0.132,0.095 -0.061,-0.045 -0.578,-0.53 -0.635,-0.531l-0.001 7.084z"/>
|
|
28
|
-
<path class="fil5" d="M18.529 36.717l-0.154 -0.294c-0.049,-0.088 -0.118,-0.198 -0.169,-0.287 -0.221,-0.383 -0.47,-0.79 -0.679,-1.173 -0.049,-0.091 -0.12,-0.185 -0.174,-0.284 -0.204,-0.374 -0.485,-0.828 -0.667,-1.171 -0.208,-0.39 -0.678,-1.182 -0.817,-1.508 -0.023,0.059 0.123,0.63 0.148,0.74 0.06,0.26 0.097,0.51 0.16,0.765 0.121,0.498 0.213,1.009 0.334,1.518 0.146,0.617 0.27,1.292 0.415,1.892l0.087 0.386c0.028,0.121 0.058,0.263 0.081,0.375l0.083 0.386c0.128,0.494 0.214,0.998 0.332,1.508l0.496 2.282c0.056,0.244 0.119,0.508 0.172,0.753 0.056,0.26 0.089,0.51 0.16,0.767l0.181 0.743c0.004,-1.231 0,-2.459 0,-3.689 0,-0.618 0.011,-1.239 0.005,-1.853 -0.003,-0.311 -0.008,-0.614 0.003,-0.926 0.008,-0.242 -0.038,-0.731 0.003,-0.93z"/>
|
|
29
|
-
</g>
|
|
30
|
-
</g>
|
|
31
|
-
</svg>
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
3
|
+
<!-- Creator: CorelDRAW 2021 (64 Bit) -->
|
|
4
|
+
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="50px" height="71px" version="1.1" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
|
|
5
|
+
viewBox="0 0 50 70.714"
|
|
6
|
+
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
7
|
+
xmlns:xodm="http://www.corel.com/coreldraw/odm/2003">
|
|
8
|
+
<defs>
|
|
9
|
+
<style type="text/css">
|
|
10
|
+
<![CDATA[
|
|
11
|
+
.fil5 {fill:#2C5D3C}
|
|
12
|
+
.fil2 {fill:#347843}
|
|
13
|
+
.fil4 {fill:#4D8642}
|
|
14
|
+
.fil1 {fill:#61973E}
|
|
15
|
+
.fil0 {fill:#6AB941}
|
|
16
|
+
.fil3 {fill:#76CA36}
|
|
17
|
+
]]>
|
|
18
|
+
</style>
|
|
19
|
+
</defs>
|
|
20
|
+
<g id="Camada_x0020_1">
|
|
21
|
+
<metadata id="CorelCorpID_0Corel-Layer"/>
|
|
22
|
+
<g id="_2861218455104">
|
|
23
|
+
<path class="fil0" d="M34.57 26.537l-0.076 0.077c-0.381,0.312 -0.845,0.763 -1.242,1.096 -0.17,0.141 -1.145,0.992 -1.327,1.172 -0.201,0.197 -0.452,0.393 -0.66,0.575l-0.994 0.874c-0.149,0.126 -0.93,0.836 -1.01,0.88l-0.068 0.055c-0.039,0.07 -0.099,0.102 -0.156,0.153 -0.064,0.057 -0.098,0.085 -0.158,0.136 -0.082,0.07 -0.221,0.218 -0.319,0.269 -0.02,0.06 0.003,0.014 -0.028,0.023 -0.032,0.059 -0.134,0.134 -0.183,0.178l-1.049 0.922c-0.346,0.285 -0.713,0.621 -1.058,0.926l-0.382 0.338c-0.065,0.058 -0.336,0.315 -0.394,0.327 -0.012,0.051 0.011,-0.003 -0.013,0.031 -0.016,0.022 -0.009,0.012 -0.021,0.023 -0.017,0.016 -0.029,0.021 -0.049,0.04l-0.283 0.246c-0.062,0.054 -0.132,0.11 -0.189,0.164 -0.069,0.067 -0.125,0.11 -0.185,0.177l-0.045 -0.019c-0.013,0.031 -0.012,-0.009 0.007,0.028 0.032,0.062 0.024,0.011 0.022,0.124 -0.001,0.073 -0.003,0.149 -0.002,0.222l0.002 1.294c-0.002,0.236 0.019,1.566 -0.017,1.676 -0.004,-0.028 -0.058,-0.019 -0.064,-0.017l0.078 0.058c0.052,-0.019 0.215,-0.152 0.273,-0.195 0.088,-0.066 0.188,-0.14 0.28,-0.206 0.185,-0.132 0.375,-0.278 0.559,-0.411l2.073 -1.544c0.053,-0.039 0.083,-0.068 0.142,-0.109l0.557 -0.411c0.185,-0.135 0.367,-0.279 0.555,-0.416 0.049,-0.035 0.085,-0.065 0.136,-0.099 0.038,-0.026 0.036,-0.03 0.066,-0.053l3.117 -2.337c0.079,-0.065 0.182,-0.139 0.277,-0.208l0.827 -0.62c0.009,0.101 -0.277,1.323 -0.322,1.522 -0.056,0.254 -0.091,0.517 -0.16,0.764l-0.171 0.767c-0.108,0.524 -0.23,1.038 -0.332,1.537 -0.053,0.257 -0.107,0.512 -0.168,0.759 -0.062,0.248 -0.106,0.513 -0.169,0.771 -0.122,0.503 -0.222,1.019 -0.332,1.521l-0.166 0.761c-0.054,0.262 -0.13,0.512 -0.177,0.769 -0.091,0.505 -0.255,1.088 -0.33,1.533 -0.09,0.531 -0.179,0.84 -0.307,1.326 -0.051,0.194 -0.026,0.165 0.022,0.177l1.616 -1.332c0.048,-0.039 0.014,-0.025 0.068,-0.035l0.06 -0.072c0.094,-0.077 0.444,-0.388 0.527,-0.425 0.004,-0.007 -0.002,-0.007 0.015,-0.019 0.017,-0.013 0.009,-0.006 0.025,-0.012 0.032,-0.053 0.481,-0.419 0.521,-0.435 0.029,-0.055 0.214,-0.196 0.284,-0.252 0.071,-0.058 0.246,-0.226 0.296,-0.24 0.027,-0.042 0.144,-0.138 0.188,-0.172 0.106,-0.086 0.075,-0.118 0.073,-0.293l-0.002 -2.176c-0.007,-1.92 0.025,-3.887 -0.001,-5.793 -0.007,-0.481 0,-0.973 0,-1.455 -0.001,-0.484 -0.01,-0.988 0,-1.469l0 -0.017 -0.002 -3.406 -0.01 -0.06c-0.027,0.013 -0.023,0.01 -0.045,0.017z"/>
|
|
24
|
+
<path class="fil1" d="M24.707 38.585l0.004 6.722c-0.002,0.301 -0.032,0.66 0.018,0.926l0.05 -0.048c0.041,-0.054 0.065,-0.123 0.124,-0.164 0.003,-0.031 0.036,-0.094 0.07,-0.111l1.228 -1.896c0.011,-0.052 0.213,-0.35 0.238,-0.375l0.717 -1.118c0.034,-0.055 0.203,-0.338 0.252,-0.37 0.007,-0.046 0.067,-0.129 0.092,-0.169 0.017,-0.026 0.036,-0.053 0.053,-0.079 0.017,-0.028 0.024,-0.054 0.051,-0.066 0.033,-0.096 0.116,-0.2 0.162,-0.265 0.041,-0.057 0.131,-0.222 0.178,-0.258 0.006,-0.034 0.179,-0.315 0.213,-0.342l0.266 -0.419c0.016,-0.025 0.029,-0.046 0.045,-0.072l0.056 -0.061c0.015,-0.079 0.56,-0.9 0.643,-1.034 0.054,-0.085 0.101,-0.145 0.164,-0.247 0.062,-0.099 0.445,-0.733 0.502,-0.768 0.015,-0.066 0.091,-0.166 0.139,-0.239 0.038,-0.058 0.102,-0.179 0.145,-0.213 0.018,-0.052 0.148,-0.237 0.196,-0.313 0.028,-0.044 0.039,-0.074 0.079,-0.104 0.011,-0.056 0.099,-0.177 0.131,-0.234l0.296 -0.463c0.028,-0.044 0.02,-0.043 0.066,-0.063l0.003 7.488 0.069 -0.047c-0.048,-0.012 -0.073,0.017 -0.022,-0.177 0.128,-0.486 0.217,-0.795 0.307,-1.326 0.075,-0.445 0.239,-1.028 0.33,-1.533 0.047,-0.257 0.123,-0.507 0.177,-0.769l0.166 -0.761c0.11,-0.502 0.21,-1.018 0.332,-1.521 0.063,-0.258 0.107,-0.523 0.169,-0.771 0.061,-0.247 0.115,-0.502 0.168,-0.759 0.102,-0.499 0.224,-1.013 0.332,-1.537l0.171 -0.767c0.069,-0.247 0.104,-0.51 0.16,-0.764 0.045,-0.199 0.331,-1.421 0.322,-1.522l-0.827 0.62c-0.095,0.069 -0.198,0.143 -0.277,0.208l-3.117 2.337c-0.03,0.023 -0.028,0.027 -0.066,0.053 -0.051,0.034 -0.087,0.064 -0.136,0.099 -0.188,0.137 -0.37,0.281 -0.555,0.416l-0.557 0.411c-0.059,0.041 -0.089,0.07 -0.142,0.109l-2.073 1.544c-0.184,0.133 -0.374,0.279 -0.559,0.411 -0.092,0.066 -0.192,0.14 -0.28,0.206 -0.058,0.043 -0.221,0.176 -0.273,0.195z"/>
|
|
25
|
+
<path class="fil2" d="M18.529 36.717c0.081,-0.021 0.028,-0.012 0.04,0.018 0.01,0.053 0.169,0.288 0.213,0.354 0.037,0.055 0.077,0.117 0.108,0.171 0.04,0.071 0.087,0.127 0.115,0.196 0.04,0.014 0.089,0.124 0.119,0.172 0.034,0.053 0.099,0.141 0.108,0.192 0.043,0.031 0.117,0.168 0.158,0.233l0.774 1.197c0.065,0.104 0.278,0.409 0.306,0.495l0.761 1.181c0.035,0.025 0.028,0.022 0.054,0.057l0.687 1.089c0.039,0.03 0.047,0.054 0.053,0.087l0.435 0.671c0.03,0.023 0.04,0.041 0.049,0.082 0.04,0.027 0.024,0.015 0.052,0.057l0.126 0.197c0.054,0.088 0.133,0.187 0.169,0.282l0.699 1.075 0.1 0.132c0.034,0.049 0.066,0.087 0.084,0.146 0.045,0.034 0.098,0.134 0.135,0.193 0.023,0.036 0.035,0.06 0.061,0.1 0.032,0.05 0.051,0.063 0.059,0.114 0.059,0.039 0.153,0.217 0.199,0.289 0.068,0.105 0.148,0.197 0.193,0.31 0.03,0.014 0.03,0.033 0.035,0.059 0.044,0.029 0.048,0.051 0.075,0.094l0.188 0.283c0.015,0.017 0.009,0.011 0.024,0.023l0.021 -0.033c-0.05,-0.266 -0.02,-0.625 -0.018,-0.926l-0.004 -6.722 -0.078 -0.058 -2.486 -1.844c-0.805,-0.584 -1.664,-1.264 -2.472,-1.851l-1.653 -1.223c-0.055,-0.035 -0.081,-0.065 -0.133,-0.107l-1.484 -1.105c-0.083,-0.059 -0.451,-0.363 -0.532,-0.397 0.139,0.326 0.609,1.118 0.817,1.508 0.182,0.343 0.463,0.797 0.667,1.171 0.054,0.099 0.125,0.193 0.174,0.284 0.209,0.383 0.458,0.79 0.679,1.173 0.051,0.089 0.12,0.199 0.169,0.287l0.154 0.294z"/>
|
|
26
|
+
<path class="fil3" d="M18.018 33.609l1.653 1.223c0.808,0.587 1.667,1.267 2.472,1.851l2.486 1.844c0.006,-0.002 0.06,-0.011 0.064,0.017 0.036,-0.11 0.015,-1.44 0.017,-1.676l-0.002 -1.294c-0.001,-0.073 0.001,-0.149 0.002,-0.222 0.002,-0.113 0.01,-0.062 -0.022,-0.124 -0.019,-0.037 -0.02,0.003 -0.007,-0.028l-0.299 -0.271c-0.1,-0.092 -0.203,-0.174 -0.307,-0.267l-0.569 -0.503c-0.035,-0.039 -0.016,-0.004 -0.027,-0.046 -0.073,-0.011 -0.496,-0.419 -0.542,-0.459l-0.533 -0.467c-0.186,-0.149 -0.359,-0.323 -0.53,-0.47l-0.504 -0.437c-0.027,-0.031 -0.018,-0.013 -0.026,-0.046 -0.052,-0.011 -0.092,-0.06 -0.146,-0.105l-0.977 -0.861c-0.187,-0.161 -0.368,-0.328 -0.554,-0.49l-1.113 -0.975c-0.086,-0.076 -0.172,-0.158 -0.272,-0.242l-1.12 -0.982c-0.04,-0.035 -0.257,-0.216 -0.28,-0.26l0.004 0.006c-0.077,-0.037 -0.903,-0.784 -1.096,-0.947 -0.118,-0.1 -0.237,-0.236 -0.363,-0.324 -0.101,-0.017 -0.062,-0.041 -0.132,-0.095l-0.027 -0.017c-0.023,-0.018 -0.04,-0.058 -0.122,-0.115l-0.019 -0.011c-0.011,-0.008 -0.021,-0.012 -0.036,-0.022 -0.006,-0.004 -0.022,-0.015 -0.033,-0.024l-0.015 -0.014c-0.071,-0.066 -0.031,-0.055 -0.131,-0.107l-0.053 -0.027c0.011,0.147 0.077,0.088 0.03,0.145 0.039,0.121 0.717,1.548 0.786,1.711 0.246,0.576 0.526,1.129 0.779,1.704 0.16,0.365 1.523,3.289 1.564,3.427z"/>
|
|
27
|
+
<path class="fil4" d="M14.791 33.607l-0.002 0.56c-0.011,1.335 0.008,2.674 0,4.009l0.001 2.5c0.002,0.508 -0.101,0.375 0.297,0.695 0.047,0.037 0.092,0.076 0.137,0.115 0.031,0.027 0.036,0.032 0.063,0.053l0.069 0.072c0.043,0.012 0.131,0.087 0.153,0.124 0.075,0.036 0.233,0.181 0.306,0.247 0.351,0.312 0.816,0.665 1.187,0.989 0.23,0.2 0.514,0.417 0.737,0.615 0.028,0.025 0.045,0.035 0.073,0.06 0.011,0.01 0.032,0.031 0.037,0.036 0.026,0.028 0.015,0.011 0.037,0.045 0.04,0.014 0.177,0.132 0.22,0.169l0.068 0.068c0.039,0.019 0.008,0.002 0.034,0.019l0.141 0.11c0.006,0.005 0.019,0.016 0.024,0.021 0.033,0.035 0.009,0.004 0.03,0.038 0.026,0.007 -0.002,-0.007 0.033,0.018 0.024,0.017 0.011,0.01 0.032,0.026 0.03,0.024 0.042,0.032 0.069,0.042l0.004 -0.189c-0.014,-0.606 0.01,-1.221 0.001,-1.83 -0.019,-1.233 0.021,-2.437 0.002,-3.661l-0.004 -1.602c0,-0.06 -0.022,-0.181 0.029,-0.221 -0.012,-0.03 0.041,-0.039 -0.04,-0.018 -0.041,0.199 0.005,0.688 -0.003,0.93 -0.011,0.312 -0.006,0.615 -0.003,0.926 0.006,0.614 -0.005,1.235 -0.005,1.853 0,1.23 0.004,2.458 0,3.689l-0.181 -0.743c-0.071,-0.257 -0.104,-0.507 -0.16,-0.767 -0.053,-0.245 -0.116,-0.509 -0.172,-0.753l-0.496 -2.282c-0.118,-0.51 -0.204,-1.014 -0.332,-1.508l-0.083 -0.386c-0.023,-0.112 -0.053,-0.254 -0.081,-0.375l-0.087 -0.386c-0.145,-0.6 -0.269,-1.275 -0.415,-1.892 -0.121,-0.509 -0.213,-1.02 -0.334,-1.518 -0.063,-0.255 -0.1,-0.505 -0.16,-0.765 -0.025,-0.11 -0.171,-0.681 -0.148,-0.74 0.081,0.034 0.449,0.338 0.532,0.397l1.484 1.105c0.052,0.042 0.078,0.072 0.133,0.107 -0.041,-0.138 -1.404,-3.062 -1.564,-3.427 -0.253,-0.575 -0.533,-1.128 -0.779,-1.704 -0.069,-0.163 -0.747,-1.59 -0.786,-1.711 0.047,-0.057 -0.019,0.002 -0.03,-0.145l0.053 0.027c0.1,0.052 0.06,0.041 0.131,0.107l0.015 0.014c0.011,0.009 0.027,0.02 0.033,0.024 0.015,0.01 0.025,0.014 0.036,0.022l0.019 0.011c0.082,0.057 0.099,0.097 0.122,0.115l0.027 0.017c0.07,0.054 0.031,0.078 0.132,0.095 -0.061,-0.045 -0.578,-0.53 -0.635,-0.531l-0.001 7.084z"/>
|
|
28
|
+
<path class="fil5" d="M18.529 36.717l-0.154 -0.294c-0.049,-0.088 -0.118,-0.198 -0.169,-0.287 -0.221,-0.383 -0.47,-0.79 -0.679,-1.173 -0.049,-0.091 -0.12,-0.185 -0.174,-0.284 -0.204,-0.374 -0.485,-0.828 -0.667,-1.171 -0.208,-0.39 -0.678,-1.182 -0.817,-1.508 -0.023,0.059 0.123,0.63 0.148,0.74 0.06,0.26 0.097,0.51 0.16,0.765 0.121,0.498 0.213,1.009 0.334,1.518 0.146,0.617 0.27,1.292 0.415,1.892l0.087 0.386c0.028,0.121 0.058,0.263 0.081,0.375l0.083 0.386c0.128,0.494 0.214,0.998 0.332,1.508l0.496 2.282c0.056,0.244 0.119,0.508 0.172,0.753 0.056,0.26 0.089,0.51 0.16,0.767l0.181 0.743c0.004,-1.231 0,-2.459 0,-3.689 0,-0.618 0.011,-1.239 0.005,-1.853 -0.003,-0.311 -0.008,-0.614 0.003,-0.926 0.008,-0.242 -0.038,-0.731 0.003,-0.93z"/>
|
|
29
|
+
</g>
|
|
30
|
+
</g>
|
|
31
|
+
</svg>
|
package/package.json
CHANGED
|
@@ -1,84 +1,84 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "morpheus-cli",
|
|
3
|
-
"version": "0.3.
|
|
4
|
-
"description": "Morpheus is a local AI agent for developers, running as a CLI daemon that connects to LLMs, local tools, and MCPs, enabling interaction via Terminal, Telegram, and Discord. Inspired by the character Morpheus from *The Matrix*, the project acts as an intelligent orchestrator, bridging the gap between the developer and complex systems.",
|
|
5
|
-
"bin": {
|
|
6
|
-
"morpheus": "./bin/morpheus.js"
|
|
7
|
-
},
|
|
8
|
-
"files": [
|
|
9
|
-
"dist",
|
|
10
|
-
"bin",
|
|
11
|
-
"README.md",
|
|
12
|
-
"LICENSE"
|
|
13
|
-
],
|
|
14
|
-
"type": "module",
|
|
15
|
-
"scripts": {
|
|
16
|
-
"build": "tsc && npm run build:ui",
|
|
17
|
-
"build:ui": "npm install --prefix src/ui && npm run build --prefix src/ui",
|
|
18
|
-
"prepublishOnly": "npm run build",
|
|
19
|
-
"start": "node bin/morpheus.js",
|
|
20
|
-
"dev:ui": "npm run dev --prefix src/ui",
|
|
21
|
-
"dev:cli": "npx tsx watch src/cli/index.ts -- start",
|
|
22
|
-
"test": "vitest",
|
|
23
|
-
"backfill": "tsx src/runtime/memory/backfill-embeddings.ts"
|
|
24
|
-
},
|
|
25
|
-
"keywords": [],
|
|
26
|
-
"author": "Marcos Nunes",
|
|
27
|
-
"license": "ISC",
|
|
28
|
-
"dependencies": {
|
|
29
|
-
"@google/genai": "^1.39.0",
|
|
30
|
-
"@inquirer/prompts": "^8.2.0",
|
|
31
|
-
"@langchain/anthropic": "^1.3.12",
|
|
32
|
-
"@langchain/core": "^1.1.18",
|
|
33
|
-
"@langchain/google-genai": "^2.1.13",
|
|
34
|
-
"@langchain/mcp-adapters": "^1.1.2",
|
|
35
|
-
"@langchain/ollama": "^1.2.1",
|
|
36
|
-
"@langchain/openai": "^1.2.3",
|
|
37
|
-
"@openrouter/sdk": "^0.8.0",
|
|
38
|
-
"@types/better-sqlite3": "^7.6.13",
|
|
39
|
-
"@xenova/transformers": "^2.17.2",
|
|
40
|
-
"better-sqlite3": "^12.6.2",
|
|
41
|
-
"body-parser": "^2.2.2",
|
|
42
|
-
"chalk": "^5.6.2",
|
|
43
|
-
"commander": "^14.0.2",
|
|
44
|
-
"cors": "^2.8.6",
|
|
45
|
-
"express": "^5.2.1",
|
|
46
|
-
"figlet": "^1.10.0",
|
|
47
|
-
"fs-extra": "^11.3.3",
|
|
48
|
-
"js-yaml": "^4.1.1",
|
|
49
|
-
"langchain": "^1.2.16",
|
|
50
|
-
"open": "^11.0.0",
|
|
51
|
-
"ora": "^9.1.0",
|
|
52
|
-
"sqlite-vec": "^0.1.7-alpha.2",
|
|
53
|
-
"telegraf": "^4.16.3",
|
|
54
|
-
"winston": "^3.19.0",
|
|
55
|
-
"winston-daily-rotate-file": "^5.0.0",
|
|
56
|
-
"zod": "^4.3.6"
|
|
57
|
-
},
|
|
58
|
-
"devDependencies": {
|
|
59
|
-
"@types/body-parser": "^1.19.6",
|
|
60
|
-
"@types/cors": "^2.8.19",
|
|
61
|
-
"@types/express": "^5.0.6",
|
|
62
|
-
"@types/figlet": "^1.7.0",
|
|
63
|
-
"@types/fs-extra": "^11.0.4",
|
|
64
|
-
"@types/js-yaml": "^4.0.9",
|
|
65
|
-
"@types/node": "^25.1.0",
|
|
66
|
-
"@types/supertest": "^6.0.3",
|
|
67
|
-
"concurrently": "^9.2.1",
|
|
68
|
-
"supertest": "^7.2.2",
|
|
69
|
-
"tsx": "^4.21.0",
|
|
70
|
-
"typescript": "^5.9.3",
|
|
71
|
-
"vitest": "^4.0.18"
|
|
72
|
-
},
|
|
73
|
-
"repository": {
|
|
74
|
-
"type": "git",
|
|
75
|
-
"url": "git+https://github.com/marcosnunesmbs/morpheus.git"
|
|
76
|
-
},
|
|
77
|
-
"bugs": {
|
|
78
|
-
"url": "https://github.com/marcosnunesmbs/morpheus/issues"
|
|
79
|
-
},
|
|
80
|
-
"homepage": "https://morpheusproject.xyz",
|
|
81
|
-
"optionalDependencies": {
|
|
82
|
-
"sqlite-vec-linux-x64": "^0.1.7-alpha.2"
|
|
83
|
-
}
|
|
84
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "morpheus-cli",
|
|
3
|
+
"version": "0.3.7",
|
|
4
|
+
"description": "Morpheus is a local AI agent for developers, running as a CLI daemon that connects to LLMs, local tools, and MCPs, enabling interaction via Terminal, Telegram, and Discord. Inspired by the character Morpheus from *The Matrix*, the project acts as an intelligent orchestrator, bridging the gap between the developer and complex systems.",
|
|
5
|
+
"bin": {
|
|
6
|
+
"morpheus": "./bin/morpheus.js"
|
|
7
|
+
},
|
|
8
|
+
"files": [
|
|
9
|
+
"dist",
|
|
10
|
+
"bin",
|
|
11
|
+
"README.md",
|
|
12
|
+
"LICENSE"
|
|
13
|
+
],
|
|
14
|
+
"type": "module",
|
|
15
|
+
"scripts": {
|
|
16
|
+
"build": "tsc && npm run build:ui",
|
|
17
|
+
"build:ui": "npm install --prefix src/ui && npm run build --prefix src/ui",
|
|
18
|
+
"prepublishOnly": "npm run build",
|
|
19
|
+
"start": "node bin/morpheus.js",
|
|
20
|
+
"dev:ui": "npm run dev --prefix src/ui",
|
|
21
|
+
"dev:cli": "npx tsx watch src/cli/index.ts -- start",
|
|
22
|
+
"test": "vitest",
|
|
23
|
+
"backfill": "tsx src/runtime/memory/backfill-embeddings.ts"
|
|
24
|
+
},
|
|
25
|
+
"keywords": [],
|
|
26
|
+
"author": "Marcos Nunes",
|
|
27
|
+
"license": "ISC",
|
|
28
|
+
"dependencies": {
|
|
29
|
+
"@google/genai": "^1.39.0",
|
|
30
|
+
"@inquirer/prompts": "^8.2.0",
|
|
31
|
+
"@langchain/anthropic": "^1.3.12",
|
|
32
|
+
"@langchain/core": "^1.1.18",
|
|
33
|
+
"@langchain/google-genai": "^2.1.13",
|
|
34
|
+
"@langchain/mcp-adapters": "^1.1.2",
|
|
35
|
+
"@langchain/ollama": "^1.2.1",
|
|
36
|
+
"@langchain/openai": "^1.2.3",
|
|
37
|
+
"@openrouter/sdk": "^0.8.0",
|
|
38
|
+
"@types/better-sqlite3": "^7.6.13",
|
|
39
|
+
"@xenova/transformers": "^2.17.2",
|
|
40
|
+
"better-sqlite3": "^12.6.2",
|
|
41
|
+
"body-parser": "^2.2.2",
|
|
42
|
+
"chalk": "^5.6.2",
|
|
43
|
+
"commander": "^14.0.2",
|
|
44
|
+
"cors": "^2.8.6",
|
|
45
|
+
"express": "^5.2.1",
|
|
46
|
+
"figlet": "^1.10.0",
|
|
47
|
+
"fs-extra": "^11.3.3",
|
|
48
|
+
"js-yaml": "^4.1.1",
|
|
49
|
+
"langchain": "^1.2.16",
|
|
50
|
+
"open": "^11.0.0",
|
|
51
|
+
"ora": "^9.1.0",
|
|
52
|
+
"sqlite-vec": "^0.1.7-alpha.2",
|
|
53
|
+
"telegraf": "^4.16.3",
|
|
54
|
+
"winston": "^3.19.0",
|
|
55
|
+
"winston-daily-rotate-file": "^5.0.0",
|
|
56
|
+
"zod": "^4.3.6"
|
|
57
|
+
},
|
|
58
|
+
"devDependencies": {
|
|
59
|
+
"@types/body-parser": "^1.19.6",
|
|
60
|
+
"@types/cors": "^2.8.19",
|
|
61
|
+
"@types/express": "^5.0.6",
|
|
62
|
+
"@types/figlet": "^1.7.0",
|
|
63
|
+
"@types/fs-extra": "^11.0.4",
|
|
64
|
+
"@types/js-yaml": "^4.0.9",
|
|
65
|
+
"@types/node": "^25.1.0",
|
|
66
|
+
"@types/supertest": "^6.0.3",
|
|
67
|
+
"concurrently": "^9.2.1",
|
|
68
|
+
"supertest": "^7.2.2",
|
|
69
|
+
"tsx": "^4.21.0",
|
|
70
|
+
"typescript": "^5.9.3",
|
|
71
|
+
"vitest": "^4.0.18"
|
|
72
|
+
},
|
|
73
|
+
"repository": {
|
|
74
|
+
"type": "git",
|
|
75
|
+
"url": "git+https://github.com/marcosnunesmbs/morpheus.git"
|
|
76
|
+
},
|
|
77
|
+
"bugs": {
|
|
78
|
+
"url": "https://github.com/marcosnunesmbs/morpheus/issues"
|
|
79
|
+
},
|
|
80
|
+
"homepage": "https://morpheusproject.xyz",
|
|
81
|
+
"optionalDependencies": {
|
|
82
|
+
"sqlite-vec-linux-x64": "^0.1.7-alpha.2"
|
|
83
|
+
}
|
|
84
|
+
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
2
|
-
import request from 'supertest';
|
|
3
|
-
import express from 'express';
|
|
4
|
-
import bodyParser from 'body-parser';
|
|
5
|
-
import { createApiRouter } from '../api.js';
|
|
6
|
-
import { ConfigManager } from '../../config/manager.js';
|
|
7
|
-
import fs from 'fs-extra';
|
|
8
|
-
// Mock dependencies
|
|
9
|
-
vi.mock('../../config/manager.js');
|
|
10
|
-
vi.mock('fs-extra');
|
|
11
|
-
describe('Status API', () => {
|
|
12
|
-
let app;
|
|
13
|
-
let mockConfigManager;
|
|
14
|
-
beforeEach(() => {
|
|
15
|
-
// Reset mocks
|
|
16
|
-
vi.clearAllMocks();
|
|
17
|
-
// Mock ConfigManager instance
|
|
18
|
-
mockConfigManager = {
|
|
19
|
-
get: vi.fn(),
|
|
20
|
-
};
|
|
21
|
-
ConfigManager.getInstance.mockReturnValue(mockConfigManager);
|
|
22
|
-
// Setup App
|
|
23
|
-
app = express();
|
|
24
|
-
app.use(bodyParser.json());
|
|
25
|
-
// Create router without server instance to test fallback
|
|
26
|
-
app.use('/api', createApiRouter());
|
|
27
|
-
});
|
|
28
|
-
afterEach(() => {
|
|
29
|
-
vi.restoreAllMocks();
|
|
30
|
-
});
|
|
31
|
-
describe('GET /api/status', () => {
|
|
32
|
-
it('should return status information including server port', async () => {
|
|
33
|
-
const mockConfig = {
|
|
34
|
-
agent: { name: 'TestAgent' },
|
|
35
|
-
llm: { provider: 'openai', model: 'gpt-4' },
|
|
36
|
-
ui: { port: 3333 }
|
|
37
|
-
};
|
|
38
|
-
mockConfigManager.get.mockReturnValue(mockConfig);
|
|
39
|
-
// Mock fs.readJson to return a version
|
|
40
|
-
fs.readJson.mockResolvedValue({ version: '1.0.0' });
|
|
41
|
-
const res = await request(app).get('/api/status');
|
|
42
|
-
expect(res.status).toBe(200);
|
|
43
|
-
expect(res.body).toHaveProperty('status');
|
|
44
|
-
expect(res.body).toHaveProperty('uptimeSeconds');
|
|
45
|
-
expect(res.body).toHaveProperty('pid');
|
|
46
|
-
expect(res.body).toHaveProperty('projectVersion');
|
|
47
|
-
expect(res.body).toHaveProperty('nodeVersion');
|
|
48
|
-
expect(res.body).toHaveProperty('agentName');
|
|
49
|
-
expect(res.body).toHaveProperty('llmProvider');
|
|
50
|
-
expect(res.body).toHaveProperty('llmModel');
|
|
51
|
-
expect(res.body).toHaveProperty('serverPort');
|
|
52
|
-
expect(res.body.serverPort).toBe(3333);
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
});
|