@keyoku/openclaw 1.1.1 → 1.2.1
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/dist/init.d.ts.map +1 -1
- package/dist/init.js +241 -143
- package/dist/init.js.map +1 -1
- package/package.json +3 -3
package/dist/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAmjBH;;GAEG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAsL1C"}
|
package/dist/init.js
CHANGED
|
@@ -28,15 +28,49 @@ const OPENCLAW_CONFIG_PATH = join(HOME, '.openclaw', 'openclaw.json');
|
|
|
28
28
|
const KEYOKU_BIN_DIR = join(HOME, '.keyoku', 'bin');
|
|
29
29
|
const KEYOKU_BIN_PATH = join(KEYOKU_BIN_DIR, 'keyoku');
|
|
30
30
|
const OPENCLAW_MEMORY_DIR = join(HOME, '.openclaw', 'memory');
|
|
31
|
+
const OPENCLAW_EXTENSIONS_DIR = join(HOME, '.openclaw', 'extensions');
|
|
32
|
+
const PLUGIN_INSTALL_DIR = join(OPENCLAW_EXTENSIONS_DIR, 'keyoku-memory');
|
|
33
|
+
// ── ANSI Colors ──────────────────────────────────────────────────────────
|
|
34
|
+
const c = {
|
|
35
|
+
reset: '\x1b[0m',
|
|
36
|
+
bold: '\x1b[1m',
|
|
37
|
+
dim: '\x1b[2m',
|
|
38
|
+
// Indigo/purple brand palette
|
|
39
|
+
indigo: '\x1b[38;2;99;102;241m', // #6366f1
|
|
40
|
+
purple: '\x1b[38;2;167;139;250m', // #a78bfa
|
|
41
|
+
lilac: '\x1b[38;2;196;181;253m', // #c4b5fd
|
|
42
|
+
green: '\x1b[38;2;34;197;94m', // #22c55e
|
|
43
|
+
yellow: '\x1b[38;2;250;204;21m', // #facc15
|
|
44
|
+
red: '\x1b[38;2;239;68;68m', // #ef4444
|
|
45
|
+
gray: '\x1b[38;2;148;163;184m', // #94a3b8
|
|
46
|
+
white: '\x1b[38;2;241;245;249m', // #f1f5f9
|
|
47
|
+
cyan: '\x1b[38;2;34;211;238m', // #22d3ee
|
|
48
|
+
};
|
|
49
|
+
// ── Output Helpers ───────────────────────────────────────────────────────
|
|
50
|
+
let currentStep = 0;
|
|
51
|
+
const totalSteps = 10;
|
|
52
|
+
function stepHeader(label) {
|
|
53
|
+
currentStep++;
|
|
54
|
+
console.log('');
|
|
55
|
+
console.log(` ${c.indigo}${c.bold}[${currentStep}/${totalSteps}]${c.reset} ${c.white}${c.bold}${label}${c.reset}`);
|
|
56
|
+
console.log(` ${c.dim}${'─'.repeat(50)}${c.reset}`);
|
|
57
|
+
}
|
|
31
58
|
function log(msg) {
|
|
32
|
-
console.log(` ${msg}`);
|
|
59
|
+
console.log(` ${c.gray}${msg}${c.reset}`);
|
|
33
60
|
}
|
|
34
61
|
function success(msg) {
|
|
35
|
-
console.log(`
|
|
62
|
+
console.log(` ${c.green}✔${c.reset} ${msg}`);
|
|
36
63
|
}
|
|
37
64
|
function warn(msg) {
|
|
38
|
-
console.log(`
|
|
65
|
+
console.log(` ${c.yellow}⚠${c.reset} ${msg}`);
|
|
66
|
+
}
|
|
67
|
+
function info(msg) {
|
|
68
|
+
console.log(` ${c.indigo}▸${c.reset} ${msg}`);
|
|
39
69
|
}
|
|
70
|
+
function fail(msg) {
|
|
71
|
+
console.log(` ${c.red}✖${c.reset} ${msg}`);
|
|
72
|
+
}
|
|
73
|
+
// ── Stdin Buffering ──────────────────────────────────────────────────────
|
|
40
74
|
// Pre-buffered stdin lines for piped (non-TTY) input.
|
|
41
75
|
// When stdin is a pipe, readline only delivers the first line via question().
|
|
42
76
|
// We read all lines upfront and serve them from the buffer.
|
|
@@ -72,7 +106,7 @@ async function prompt(question) {
|
|
|
72
106
|
await ensureStdinBuffer();
|
|
73
107
|
// Piped mode — read from pre-buffered lines
|
|
74
108
|
if (stdinLines !== null) {
|
|
75
|
-
process.stdout.write(` ${question} `);
|
|
109
|
+
process.stdout.write(` ${c.purple}?${c.reset} ${question} `);
|
|
76
110
|
const answer = stdinLines.shift() ?? '';
|
|
77
111
|
console.log(answer);
|
|
78
112
|
return answer.trim();
|
|
@@ -82,7 +116,7 @@ async function prompt(question) {
|
|
|
82
116
|
ttyRl = createInterface({ input: process.stdin, output: process.stdout });
|
|
83
117
|
}
|
|
84
118
|
return new Promise((resolve) => {
|
|
85
|
-
ttyRl.question(` ${question} `, (answer) => {
|
|
119
|
+
ttyRl.question(` ${c.purple}?${c.reset} ${question} `, (answer) => {
|
|
86
120
|
resolve(answer.trim());
|
|
87
121
|
});
|
|
88
122
|
});
|
|
@@ -91,6 +125,27 @@ async function prompt(question) {
|
|
|
91
125
|
async function promptLower(question) {
|
|
92
126
|
return (await prompt(question)).toLowerCase();
|
|
93
127
|
}
|
|
128
|
+
/**
|
|
129
|
+
* Show numbered choices and return the selected option.
|
|
130
|
+
* Returns the value string (not the number).
|
|
131
|
+
*/
|
|
132
|
+
async function choose(question, options, defaultIndex = 0) {
|
|
133
|
+
console.log('');
|
|
134
|
+
for (let i = 0; i < options.length; i++) {
|
|
135
|
+
const marker = i === defaultIndex ? `${c.indigo}${c.bold}` : c.gray;
|
|
136
|
+
const tag = i === defaultIndex ? ` ${c.dim}(default)${c.reset}` : '';
|
|
137
|
+
const desc = options[i].desc ? ` ${c.dim}${options[i].desc}${c.reset}` : '';
|
|
138
|
+
console.log(` ${marker} ${i + 1}) ${options[i].label}${c.reset}${tag}${desc}`);
|
|
139
|
+
}
|
|
140
|
+
console.log('');
|
|
141
|
+
const answer = await prompt(`${question} [${options.map((_, i) => i + 1).join('/')}]:`);
|
|
142
|
+
const idx = parseInt(answer, 10) - 1;
|
|
143
|
+
if (idx >= 0 && idx < options.length) {
|
|
144
|
+
return options[idx].value;
|
|
145
|
+
}
|
|
146
|
+
return options[defaultIndex].value;
|
|
147
|
+
}
|
|
148
|
+
// ── Platform Detection ───────────────────────────────────────────────────
|
|
94
149
|
/**
|
|
95
150
|
* Detect platform and architecture for binary download.
|
|
96
151
|
*/
|
|
@@ -111,33 +166,33 @@ function getPlatformInfo() {
|
|
|
111
166
|
arch: archMap[arch] ?? arch,
|
|
112
167
|
};
|
|
113
168
|
}
|
|
169
|
+
// ── Binary Download ──────────────────────────────────────────────────────
|
|
114
170
|
/**
|
|
115
171
|
* Download the keyoku-engine binary from GitHub releases.
|
|
116
172
|
*/
|
|
117
173
|
async function downloadBinary() {
|
|
118
174
|
const { os, arch } = getPlatformInfo();
|
|
119
|
-
const binaryName = os === 'windows' ? 'keyoku-server.exe' : 'keyoku-server';
|
|
120
175
|
const assetName = `keyoku-server-${os}-${arch}${os === 'windows' ? '.exe' : ''}`;
|
|
121
|
-
|
|
176
|
+
info(`Downloading keyoku-engine for ${c.bold}${os}/${arch}${c.reset}...`);
|
|
122
177
|
try {
|
|
123
178
|
// Get latest release info from GitHub API
|
|
124
179
|
const releaseRes = await fetch('https://api.github.com/repos/keyoku-ai/keyoku-engine/releases/latest', { headers: { Accept: 'application/vnd.github.v3+json' } });
|
|
125
180
|
if (!releaseRes.ok) {
|
|
126
|
-
|
|
181
|
+
fail(`Could not fetch latest release: ${releaseRes.status} ${releaseRes.statusText}`);
|
|
127
182
|
return false;
|
|
128
183
|
}
|
|
129
184
|
const release = await releaseRes.json();
|
|
130
185
|
const asset = release.assets.find((a) => a.name === assetName);
|
|
131
186
|
if (!asset) {
|
|
132
|
-
|
|
133
|
-
|
|
187
|
+
fail(`No binary found for ${os}/${arch} in release ${release.tag_name}`);
|
|
188
|
+
log(`Available: ${release.assets.map((a) => a.name).join(', ')}`);
|
|
134
189
|
return false;
|
|
135
190
|
}
|
|
136
|
-
|
|
191
|
+
info(`Fetching ${c.bold}${asset.name}${c.reset} from ${c.dim}${release.tag_name}${c.reset}...`);
|
|
137
192
|
// Download the binary
|
|
138
193
|
const downloadRes = await fetch(asset.browser_download_url);
|
|
139
194
|
if (!downloadRes.ok || !downloadRes.body) {
|
|
140
|
-
|
|
195
|
+
fail(`Download failed: ${downloadRes.status}`);
|
|
141
196
|
return false;
|
|
142
197
|
}
|
|
143
198
|
// Ensure directory exists
|
|
@@ -151,14 +206,15 @@ async function downloadBinary() {
|
|
|
151
206
|
if (os !== 'windows') {
|
|
152
207
|
chmodSync(destPath, 0o755);
|
|
153
208
|
}
|
|
154
|
-
success(`Binary installed
|
|
209
|
+
success(`Binary installed → ${c.dim}${destPath}${c.reset}`);
|
|
155
210
|
return true;
|
|
156
211
|
}
|
|
157
212
|
catch (err) {
|
|
158
|
-
|
|
213
|
+
fail(`Failed to download binary: ${String(err)}`);
|
|
159
214
|
return false;
|
|
160
215
|
}
|
|
161
216
|
}
|
|
217
|
+
// ── Config Management ────────────────────────────────────────────────────
|
|
162
218
|
/**
|
|
163
219
|
* Read and parse the OpenClaw config file.
|
|
164
220
|
*/
|
|
@@ -178,6 +234,41 @@ function readOpenClawConfig() {
|
|
|
178
234
|
function writeOpenClawConfig(config) {
|
|
179
235
|
writeFileSync(OPENCLAW_CONFIG_PATH, JSON.stringify(config, null, 2) + '\n', 'utf-8');
|
|
180
236
|
}
|
|
237
|
+
// ── Plugin Installation ──────────────────────────────────────────────────
|
|
238
|
+
/**
|
|
239
|
+
* Install the @keyoku/openclaw plugin to ~/.openclaw/extensions/keyoku-memory/
|
|
240
|
+
* so OpenClaw can discover it on restart. When running via npx, the package
|
|
241
|
+
* lives in a temp cache that disappears — this copies it to a permanent location.
|
|
242
|
+
*/
|
|
243
|
+
function installPluginFiles() {
|
|
244
|
+
const packageRoot = join(__dirname, '..');
|
|
245
|
+
// Copy the entire package to the extensions directory
|
|
246
|
+
mkdirSync(PLUGIN_INSTALL_DIR, { recursive: true });
|
|
247
|
+
// Copy dist/
|
|
248
|
+
const distSrc = join(packageRoot, 'dist');
|
|
249
|
+
const distDest = join(PLUGIN_INSTALL_DIR, 'dist');
|
|
250
|
+
if (existsSync(distSrc)) {
|
|
251
|
+
cpSync(distSrc, distDest, { recursive: true });
|
|
252
|
+
}
|
|
253
|
+
// Copy skills/
|
|
254
|
+
const skillsSrc = join(packageRoot, 'skills');
|
|
255
|
+
const skillsDest = join(PLUGIN_INSTALL_DIR, 'skills');
|
|
256
|
+
if (existsSync(skillsSrc)) {
|
|
257
|
+
cpSync(skillsSrc, skillsDest, { recursive: true });
|
|
258
|
+
}
|
|
259
|
+
// Copy package.json
|
|
260
|
+
const pkgSrc = join(packageRoot, 'package.json');
|
|
261
|
+
if (existsSync(pkgSrc)) {
|
|
262
|
+
cpSync(pkgSrc, join(PLUGIN_INSTALL_DIR, 'package.json'));
|
|
263
|
+
}
|
|
264
|
+
// Install dependencies: copy node_modules from the npx cache
|
|
265
|
+
const nmSrc = join(packageRoot, 'node_modules');
|
|
266
|
+
const nmDest = join(PLUGIN_INSTALL_DIR, 'node_modules');
|
|
267
|
+
if (existsSync(nmSrc)) {
|
|
268
|
+
cpSync(nmSrc, nmDest, { recursive: true });
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
// ── Skill Installation ───────────────────────────────────────────────────
|
|
181
272
|
/**
|
|
182
273
|
* Install the SKILL.md guidebook to the workspace skills directory.
|
|
183
274
|
* This teaches the LLM how to interpret heartbeat signals, use memory naturally, etc.
|
|
@@ -189,7 +280,7 @@ function installSkill() {
|
|
|
189
280
|
// Install to workspace skills (highest precedence)
|
|
190
281
|
const workspaceSkillDir = join(HOME, '.openclaw', 'skills', 'keyoku-memory');
|
|
191
282
|
if (existsSync(join(workspaceSkillDir, 'SKILL.md'))) {
|
|
192
|
-
success('SKILL.md already installed
|
|
283
|
+
success('SKILL.md already installed');
|
|
193
284
|
return;
|
|
194
285
|
}
|
|
195
286
|
if (!existsSync(bundledSkillPath)) {
|
|
@@ -198,109 +289,86 @@ function installSkill() {
|
|
|
198
289
|
}
|
|
199
290
|
mkdirSync(workspaceSkillDir, { recursive: true });
|
|
200
291
|
cpSync(bundledSkillPath, join(workspaceSkillDir, 'SKILL.md'));
|
|
201
|
-
success(
|
|
292
|
+
success(`SKILL.md installed → ${c.dim}~/.openclaw/skills/keyoku-memory/${c.reset}`);
|
|
202
293
|
}
|
|
294
|
+
// ── LLM Provider Setup ──────────────────────────────────────────────────
|
|
203
295
|
/**
|
|
204
296
|
* Set up LLM provider and API keys.
|
|
205
297
|
* Embeddings auto-match the extraction provider (no separate key needed for Gemini).
|
|
206
298
|
*/
|
|
207
299
|
async function setupLlmProvider() {
|
|
208
|
-
console.log('');
|
|
209
|
-
log('LLM Provider Setup');
|
|
210
|
-
log('Keyoku needs an LLM for memory extraction and embeddings.');
|
|
211
|
-
log('Supported providers: OpenAI, Gemini, Anthropic (embeddings via OpenAI or Gemini).');
|
|
212
|
-
console.log('');
|
|
213
300
|
// Check existing env vars
|
|
214
301
|
const hasOpenAI = !!process.env.OPENAI_API_KEY;
|
|
215
|
-
const hasAnthropic = !!process.env.ANTHROPIC_API_KEY;
|
|
216
302
|
const hasGemini = !!process.env.GEMINI_API_KEY;
|
|
217
303
|
// Extraction provider
|
|
218
304
|
const currentProvider = process.env.KEYOKU_EXTRACTION_PROVIDER;
|
|
219
305
|
if (currentProvider) {
|
|
220
|
-
success(`Extraction
|
|
306
|
+
success(`Extraction: ${c.bold}${currentProvider}${c.reset} (${process.env.KEYOKU_EXTRACTION_MODEL || 'default model'})`);
|
|
221
307
|
}
|
|
222
308
|
else {
|
|
223
309
|
// Auto-detect best available provider
|
|
224
310
|
if (hasGemini) {
|
|
225
|
-
log('Using Gemini for extraction + embeddings (detected GEMINI_API_KEY)');
|
|
226
311
|
appendToEnvFile('KEYOKU_EXTRACTION_PROVIDER', 'gemini');
|
|
227
312
|
appendToEnvFile('KEYOKU_EXTRACTION_MODEL', 'gemini-2.5-flash');
|
|
228
313
|
appendToEnvFile('KEYOKU_EMBEDDING_PROVIDER', 'gemini');
|
|
229
314
|
appendToEnvFile('KEYOKU_EMBEDDING_MODEL', 'gemini-embedding-001');
|
|
315
|
+
success(`Auto-configured: ${c.bold}Gemini${c.reset} for extraction + embeddings`);
|
|
230
316
|
}
|
|
231
317
|
else if (hasOpenAI) {
|
|
232
|
-
log('Using OpenAI for extraction + embeddings (detected OPENAI_API_KEY)');
|
|
233
318
|
appendToEnvFile('KEYOKU_EXTRACTION_PROVIDER', 'openai');
|
|
234
319
|
appendToEnvFile('KEYOKU_EXTRACTION_MODEL', 'gpt-5-mini');
|
|
235
320
|
appendToEnvFile('KEYOKU_EMBEDDING_PROVIDER', 'openai');
|
|
236
321
|
appendToEnvFile('KEYOKU_EMBEDDING_MODEL', 'text-embedding-3-small');
|
|
237
|
-
|
|
238
|
-
else if (hasAnthropic) {
|
|
239
|
-
log('Using Anthropic for extraction (detected ANTHROPIC_API_KEY)');
|
|
240
|
-
appendToEnvFile('KEYOKU_EXTRACTION_PROVIDER', 'anthropic');
|
|
241
|
-
appendToEnvFile('KEYOKU_EXTRACTION_MODEL', 'claude-haiku-4-5-20251001');
|
|
242
|
-
warn('Anthropic does not provide embeddings — you\'ll need an OpenAI or Gemini key for embeddings');
|
|
322
|
+
success(`Auto-configured: ${c.bold}OpenAI${c.reset} for extraction + embeddings`);
|
|
243
323
|
}
|
|
244
324
|
else {
|
|
245
|
-
// No API key detected — prompt for
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
const choice = await prompt('Provider [1/2/3] (default: 1):');
|
|
253
|
-
if (choice === '2') {
|
|
254
|
-
const key = await prompt('Enter your OpenAI API key (sk-...):');
|
|
255
|
-
if (key && key.startsWith('sk-')) {
|
|
256
|
-
appendToEnvFile('OPENAI_API_KEY', key);
|
|
257
|
-
appendToEnvFile('KEYOKU_EXTRACTION_PROVIDER', 'openai');
|
|
258
|
-
appendToEnvFile('KEYOKU_EXTRACTION_MODEL', 'gpt-5-mini');
|
|
259
|
-
appendToEnvFile('KEYOKU_EMBEDDING_PROVIDER', 'openai');
|
|
260
|
-
appendToEnvFile('KEYOKU_EMBEDDING_MODEL', 'text-embedding-3-small');
|
|
261
|
-
success('OpenAI configured for extraction + embeddings');
|
|
262
|
-
}
|
|
263
|
-
else {
|
|
264
|
-
warn('Invalid key. You\'ll need to set OPENAI_API_KEY manually.');
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
else if (choice === '3') {
|
|
268
|
-
const key = await prompt('Enter your Anthropic API key (sk-ant-...):');
|
|
269
|
-
if (key) {
|
|
270
|
-
appendToEnvFile('ANTHROPIC_API_KEY', key);
|
|
271
|
-
appendToEnvFile('KEYOKU_EXTRACTION_PROVIDER', 'anthropic');
|
|
272
|
-
appendToEnvFile('KEYOKU_EXTRACTION_MODEL', 'claude-haiku-4-5-20251001');
|
|
273
|
-
warn('You\'ll also need an OpenAI or Gemini key for embeddings.');
|
|
274
|
-
}
|
|
275
|
-
else {
|
|
276
|
-
warn('No key provided. Set ANTHROPIC_API_KEY manually.');
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
else {
|
|
280
|
-
// Default: Gemini
|
|
281
|
-
const key = await prompt('Enter your Gemini API key:');
|
|
325
|
+
// No API key detected — prompt for provider
|
|
326
|
+
const provider = await choose('Which LLM provider?', [
|
|
327
|
+
{ label: 'OpenAI', value: 'openai', desc: 'extraction + embeddings' },
|
|
328
|
+
{ label: 'Gemini', value: 'gemini', desc: 'extraction + embeddings' },
|
|
329
|
+
]);
|
|
330
|
+
if (provider === 'gemini') {
|
|
331
|
+
const key = await prompt('Gemini API key:');
|
|
282
332
|
if (key) {
|
|
283
333
|
appendToEnvFile('GEMINI_API_KEY', key);
|
|
284
334
|
appendToEnvFile('KEYOKU_EXTRACTION_PROVIDER', 'gemini');
|
|
285
335
|
appendToEnvFile('KEYOKU_EXTRACTION_MODEL', 'gemini-2.5-flash');
|
|
286
336
|
appendToEnvFile('KEYOKU_EMBEDDING_PROVIDER', 'gemini');
|
|
287
337
|
appendToEnvFile('KEYOKU_EMBEDDING_MODEL', 'gemini-embedding-001');
|
|
288
|
-
success('Gemini configured
|
|
338
|
+
success('Gemini configured');
|
|
289
339
|
}
|
|
290
340
|
else {
|
|
291
|
-
warn('No key provided
|
|
341
|
+
warn('No key provided — set GEMINI_API_KEY manually');
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
else {
|
|
345
|
+
// Default: OpenAI
|
|
346
|
+
const key = await prompt('OpenAI API key (sk-...):');
|
|
347
|
+
if (key && key.startsWith('sk-')) {
|
|
348
|
+
appendToEnvFile('OPENAI_API_KEY', key);
|
|
349
|
+
appendToEnvFile('KEYOKU_EXTRACTION_PROVIDER', 'openai');
|
|
350
|
+
appendToEnvFile('KEYOKU_EXTRACTION_MODEL', 'gpt-5-mini');
|
|
351
|
+
appendToEnvFile('KEYOKU_EMBEDDING_PROVIDER', 'openai');
|
|
352
|
+
appendToEnvFile('KEYOKU_EMBEDDING_MODEL', 'text-embedding-3-small');
|
|
353
|
+
success('OpenAI configured');
|
|
354
|
+
}
|
|
355
|
+
else {
|
|
356
|
+
warn('Invalid key — set OPENAI_API_KEY manually');
|
|
292
357
|
}
|
|
293
358
|
}
|
|
294
359
|
}
|
|
295
360
|
}
|
|
296
361
|
// Show detected API keys
|
|
362
|
+
const detected = [];
|
|
297
363
|
if (hasOpenAI)
|
|
298
|
-
|
|
364
|
+
detected.push('OpenAI');
|
|
299
365
|
if (hasGemini)
|
|
300
|
-
|
|
301
|
-
if (
|
|
302
|
-
success(
|
|
366
|
+
detected.push('Gemini');
|
|
367
|
+
if (detected.length > 0) {
|
|
368
|
+
success(`API keys detected: ${c.bold}${detected.join(', ')}${c.reset}`);
|
|
369
|
+
}
|
|
303
370
|
}
|
|
371
|
+
// ── Environment File Management ──────────────────────────────────────────
|
|
304
372
|
/**
|
|
305
373
|
* Append a key=value to ~/.keyoku/.env (creates if needed).
|
|
306
374
|
* This file is sourced by the service when starting keyoku-engine.
|
|
@@ -324,6 +392,7 @@ function appendToEnvFile(key, value) {
|
|
|
324
392
|
const line = `${key}=${value}\n`;
|
|
325
393
|
writeFileSync(envPath, content + line, 'utf-8');
|
|
326
394
|
}
|
|
395
|
+
// ── System Configuration ─────────────────────────────────────────────────
|
|
327
396
|
/**
|
|
328
397
|
* Detect the system timezone (IANA format).
|
|
329
398
|
*/
|
|
@@ -339,16 +408,11 @@ function detectTimezone() {
|
|
|
339
408
|
* Set up autonomy level — controls how aggressively heartbeat acts on signals.
|
|
340
409
|
*/
|
|
341
410
|
async function setupAutonomy(config) {
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
log(' suggest — Mention important signals naturally in conversation (recommended)');
|
|
348
|
-
log(' act — Proactively execute actions (create reminders, follow up, etc.)');
|
|
349
|
-
console.log('');
|
|
350
|
-
const answer = await promptLower('Autonomy level [observe/suggest/act] (default: suggest):');
|
|
351
|
-
const level = ['observe', 'suggest', 'act'].includes(answer) ? answer : 'suggest';
|
|
411
|
+
const level = await choose('Autonomy level?', [
|
|
412
|
+
{ label: 'observe', value: 'observe', desc: 'note signals silently, only act when asked' },
|
|
413
|
+
{ label: 'suggest', value: 'suggest', desc: 'mention important signals in conversation' },
|
|
414
|
+
{ label: 'act', value: 'act', desc: 'proactively execute actions (reminders, follow-ups)' },
|
|
415
|
+
], 1);
|
|
352
416
|
// Save to plugin config in openclaw.json
|
|
353
417
|
const entry = config.plugins?.entries?.['keyoku-memory'];
|
|
354
418
|
if (entry) {
|
|
@@ -357,27 +421,28 @@ async function setupAutonomy(config) {
|
|
|
357
421
|
entry.config.autonomy = level;
|
|
358
422
|
writeOpenClawConfig(config);
|
|
359
423
|
}
|
|
360
|
-
success(`Autonomy
|
|
424
|
+
success(`Autonomy → ${c.bold}${level}${c.reset}`);
|
|
361
425
|
}
|
|
362
426
|
/**
|
|
363
427
|
* Set up timezone and quiet hours — controls when heartbeats are suppressed.
|
|
364
428
|
*/
|
|
365
429
|
async function setupTimezoneAndQuietHours() {
|
|
366
|
-
console.log('');
|
|
367
|
-
log('Timezone & Quiet Hours');
|
|
368
430
|
// Auto-detect timezone
|
|
369
431
|
const detected = detectTimezone();
|
|
370
|
-
const tzAnswer = await prompt(`Timezone? (detected: ${detected},
|
|
432
|
+
const tzAnswer = await prompt(`Timezone? (detected: ${c.bold}${detected}${c.reset}, Enter to accept):`);
|
|
371
433
|
const timezone = tzAnswer || detected;
|
|
372
434
|
appendToEnvFile('KEYOKU_QUIET_HOURS_TIMEZONE', timezone);
|
|
373
|
-
success(`Timezone
|
|
435
|
+
success(`Timezone → ${c.bold}${timezone}${c.reset}`);
|
|
374
436
|
// Quiet hours
|
|
375
437
|
console.log('');
|
|
376
438
|
log('Quiet hours suppress non-urgent heartbeat signals (e.g., 11pm–7am).');
|
|
377
|
-
const enableQuiet = await
|
|
378
|
-
|
|
439
|
+
const enableQuiet = await choose('Enable quiet hours?', [
|
|
440
|
+
{ label: 'Yes', value: 'yes', desc: '11pm–7am by default' },
|
|
441
|
+
{ label: 'No', value: 'no', desc: 'heartbeats can fire anytime' },
|
|
442
|
+
]);
|
|
443
|
+
if (enableQuiet === 'no') {
|
|
379
444
|
appendToEnvFile('KEYOKU_QUIET_HOURS_ENABLED', 'false');
|
|
380
|
-
|
|
445
|
+
success('Quiet hours → disabled');
|
|
381
446
|
return;
|
|
382
447
|
}
|
|
383
448
|
appendToEnvFile('KEYOKU_QUIET_HOURS_ENABLED', 'true');
|
|
@@ -391,14 +456,15 @@ async function setupTimezoneAndQuietHours() {
|
|
|
391
456
|
if (!isNaN(end) && end >= 0 && end <= 23) {
|
|
392
457
|
appendToEnvFile('KEYOKU_QUIET_HOUR_END', String(end));
|
|
393
458
|
}
|
|
394
|
-
success(`Quiet hours
|
|
459
|
+
success(`Quiet hours → ${c.bold}${isNaN(start) ? 23 : start}:00 – ${isNaN(end) ? 7 : end}:00${c.reset} (${timezone})`);
|
|
395
460
|
}
|
|
461
|
+
// ── Health Check ─────────────────────────────────────────────────────────
|
|
396
462
|
/**
|
|
397
463
|
* Run a health check against keyoku-engine to verify the install works.
|
|
398
464
|
*/
|
|
399
465
|
async function healthCheck() {
|
|
400
466
|
const url = 'http://localhost:18900';
|
|
401
|
-
|
|
467
|
+
info('Running health check...');
|
|
402
468
|
try {
|
|
403
469
|
const controller = new AbortController();
|
|
404
470
|
const timer = setTimeout(() => controller.abort(), 3000);
|
|
@@ -413,28 +479,28 @@ async function healthCheck() {
|
|
|
413
479
|
}
|
|
414
480
|
catch {
|
|
415
481
|
// Engine isn't running yet — that's fine, it auto-starts with OpenClaw
|
|
416
|
-
log('
|
|
482
|
+
log('Engine not running yet — it will auto-start when OpenClaw loads the plugin');
|
|
417
483
|
return false;
|
|
418
484
|
}
|
|
419
485
|
}
|
|
486
|
+
// ── Main ─────────────────────────────────────────────────────────────────
|
|
420
487
|
/**
|
|
421
488
|
* Main init function — orchestrates the full setup.
|
|
422
489
|
*/
|
|
423
490
|
export async function init() {
|
|
424
|
-
console.log(
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
╚══════════════════════════════════════════╝
|
|
432
|
-
`);
|
|
491
|
+
console.log('');
|
|
492
|
+
console.log(` ${c.indigo}${c.bold} █ █ █▀▀ █ █ █▀▀█ █ █ █ █${c.reset}`);
|
|
493
|
+
console.log(` ${c.indigo}${c.bold} █▄▀ █▀▀ █ █ █ █ █▀▄ █ █${c.reset}`);
|
|
494
|
+
console.log(` ${c.indigo}${c.bold} █ █ █▄▄ █ █▄▄█ █ █ █▄▄█${c.reset}`);
|
|
495
|
+
console.log('');
|
|
496
|
+
console.log(` ${c.gray}Memory engine for OpenClaw${c.reset} ${c.dim}v${getVersion()}${c.reset}`);
|
|
497
|
+
console.log(` ${c.indigo}${'━'.repeat(52)}${c.reset}`);
|
|
433
498
|
// Step 1: Detect OpenClaw
|
|
499
|
+
stepHeader('Detect OpenClaw');
|
|
434
500
|
const config = readOpenClawConfig();
|
|
435
501
|
if (!config) {
|
|
436
|
-
|
|
437
|
-
|
|
502
|
+
fail(`Config not found at ${OPENCLAW_CONFIG_PATH}`);
|
|
503
|
+
fail('Make sure OpenClaw is installed first: https://openclaw.dev');
|
|
438
504
|
process.exit(1);
|
|
439
505
|
}
|
|
440
506
|
success('OpenClaw config detected');
|
|
@@ -442,27 +508,30 @@ export async function init() {
|
|
|
442
508
|
const entries = config.plugins?.entries ?? {};
|
|
443
509
|
const alreadyRegistered = !!entries['keyoku-memory']?.enabled;
|
|
444
510
|
if (alreadyRegistered) {
|
|
445
|
-
|
|
511
|
+
stepHeader('Plugin Registration');
|
|
512
|
+
success('Keyoku plugin already registered');
|
|
446
513
|
}
|
|
447
514
|
else {
|
|
448
|
-
// Step
|
|
515
|
+
// Step 2: Binary
|
|
516
|
+
stepHeader('Install Engine Binary');
|
|
449
517
|
if (existsSync(KEYOKU_BIN_PATH)) {
|
|
450
|
-
success(`
|
|
518
|
+
success(`Binary found → ${c.dim}${KEYOKU_BIN_PATH}${c.reset}`);
|
|
451
519
|
}
|
|
452
520
|
else {
|
|
453
|
-
|
|
521
|
+
info('Binary not found — downloading...');
|
|
454
522
|
const downloaded = await downloadBinary();
|
|
455
523
|
if (!downloaded) {
|
|
456
|
-
warn('Could not download binary.
|
|
457
|
-
|
|
458
|
-
|
|
524
|
+
warn('Could not download binary. Install manually:');
|
|
525
|
+
log(` https://github.com/keyoku-ai/keyoku-engine/releases`);
|
|
526
|
+
log(` Place binary at: ${KEYOKU_BIN_PATH}`);
|
|
459
527
|
const proceed = await promptLower('Continue without binary? (y/n)');
|
|
460
528
|
if (proceed !== 'y') {
|
|
461
529
|
process.exit(1);
|
|
462
530
|
}
|
|
463
531
|
}
|
|
464
532
|
}
|
|
465
|
-
// Step
|
|
533
|
+
// Step 3: Register plugin
|
|
534
|
+
stepHeader('Register Plugin');
|
|
466
535
|
if (!config.plugins)
|
|
467
536
|
config.plugins = {};
|
|
468
537
|
if (!config.plugins.entries)
|
|
@@ -482,34 +551,45 @@ export async function init() {
|
|
|
482
551
|
config.plugins.slots['memory'] = 'keyoku-memory';
|
|
483
552
|
writeOpenClawConfig(config);
|
|
484
553
|
success('Plugin registered in openclaw.json');
|
|
554
|
+
// Install plugin files to extensions directory so OpenClaw can discover them
|
|
555
|
+
info('Installing plugin to extensions...');
|
|
556
|
+
installPluginFiles();
|
|
557
|
+
success(`Plugin installed → ${c.dim}${PLUGIN_INSTALL_DIR}${c.reset}`);
|
|
485
558
|
}
|
|
486
|
-
// Step
|
|
559
|
+
// Step 4: DB path
|
|
560
|
+
stepHeader('Configure Storage');
|
|
487
561
|
const dbPath = join(HOME, '.keyoku', 'data', 'keyoku.db');
|
|
488
562
|
appendToEnvFile('KEYOKU_DB_PATH', dbPath);
|
|
489
|
-
|
|
563
|
+
success(`Database → ${c.dim}${dbPath}${c.reset}`);
|
|
564
|
+
// Step 5: LLM provider
|
|
565
|
+
stepHeader('LLM Provider');
|
|
490
566
|
await setupLlmProvider();
|
|
491
|
-
// Step
|
|
567
|
+
// Step 6: Autonomy level
|
|
568
|
+
stepHeader('Autonomy');
|
|
492
569
|
await setupAutonomy(config);
|
|
493
|
-
// Step
|
|
570
|
+
// Step 7: Timezone & quiet hours
|
|
571
|
+
stepHeader('Timezone & Quiet Hours');
|
|
494
572
|
await setupTimezoneAndQuietHours();
|
|
495
|
-
// Step
|
|
496
|
-
|
|
573
|
+
// Step 8: SKILL.md
|
|
574
|
+
stepHeader('Install Skill Guide');
|
|
497
575
|
installSkill();
|
|
498
|
-
// Step
|
|
576
|
+
// Step 9: Migration
|
|
499
577
|
const memoryMdPath = join(HOME, '.openclaw', 'MEMORY.md');
|
|
500
578
|
const hasMemoryMd = existsSync(memoryMdPath);
|
|
501
579
|
const vectorDbs = discoverVectorDbs(OPENCLAW_MEMORY_DIR);
|
|
502
580
|
const hasVectorStores = vectorDbs.length > 0;
|
|
503
581
|
if (hasMemoryMd || hasVectorStores) {
|
|
504
|
-
|
|
505
|
-
log('Found existing OpenClaw memories:');
|
|
582
|
+
stepHeader('Migrate Memories');
|
|
506
583
|
if (hasMemoryMd)
|
|
507
|
-
|
|
584
|
+
info('Found MEMORY.md');
|
|
508
585
|
if (hasVectorStores)
|
|
509
|
-
|
|
510
|
-
const migrate = await
|
|
511
|
-
|
|
512
|
-
|
|
586
|
+
info(`Found ${vectorDbs.length} vector store(s)`);
|
|
587
|
+
const migrate = await choose('Migrate existing memories into Keyoku?', [
|
|
588
|
+
{ label: 'Yes', value: 'yes', desc: 'import everything now' },
|
|
589
|
+
{ label: 'No', value: 'no', desc: 'skip, migrate later with openclaw memory migrate' },
|
|
590
|
+
]);
|
|
591
|
+
if (migrate === 'yes') {
|
|
592
|
+
info('Starting migration...');
|
|
513
593
|
const client = new KeyokuClient({
|
|
514
594
|
baseUrl: 'http://localhost:18900',
|
|
515
595
|
token: process.env.KEYOKU_SESSION_TOKEN,
|
|
@@ -529,7 +609,7 @@ export async function init() {
|
|
|
529
609
|
}
|
|
530
610
|
catch (err) {
|
|
531
611
|
warn(`Markdown migration failed: ${String(err)}`);
|
|
532
|
-
|
|
612
|
+
log('Make sure Keyoku is running (it auto-starts when OpenClaw loads the plugin)');
|
|
533
613
|
}
|
|
534
614
|
}
|
|
535
615
|
// Migrate vector stores
|
|
@@ -541,7 +621,7 @@ export async function init() {
|
|
|
541
621
|
memoryDir: OPENCLAW_MEMORY_DIR,
|
|
542
622
|
logger: console,
|
|
543
623
|
});
|
|
544
|
-
success(`Vector
|
|
624
|
+
success(`Vector stores: ${vsResult.imported} imported, ${vsResult.skipped} skipped`);
|
|
545
625
|
}
|
|
546
626
|
catch (err) {
|
|
547
627
|
warn(`Vector store migration failed: ${String(err)}`);
|
|
@@ -549,25 +629,43 @@ export async function init() {
|
|
|
549
629
|
}
|
|
550
630
|
}
|
|
551
631
|
else {
|
|
552
|
-
log('Skipping
|
|
632
|
+
log('Skipping — run later with: openclaw memory migrate');
|
|
553
633
|
}
|
|
554
634
|
}
|
|
555
|
-
|
|
556
|
-
|
|
635
|
+
else {
|
|
636
|
+
stepHeader('Migrate Memories');
|
|
637
|
+
log('No existing memories found — nothing to migrate');
|
|
638
|
+
}
|
|
639
|
+
// Step 10: Health check
|
|
640
|
+
stepHeader('Health Check');
|
|
557
641
|
await healthCheck();
|
|
558
|
-
//
|
|
642
|
+
// Close readline before exiting
|
|
559
643
|
closeTtyReadline();
|
|
644
|
+
// ── Done ─────────────────────────────────────────────────────────────
|
|
560
645
|
console.log('');
|
|
561
|
-
console.log(
|
|
562
|
-
console.log(' ║ Setup complete! ║');
|
|
563
|
-
console.log(' ╚══════════════════════════════════════════╝');
|
|
646
|
+
console.log(` ${c.indigo}${'━'.repeat(52)}${c.reset}`);
|
|
564
647
|
console.log('');
|
|
565
|
-
log(
|
|
566
|
-
log(' openclaw restart (or close and reopen your editor)');
|
|
648
|
+
console.log(` ${c.green}${c.bold} Setup complete!${c.reset}`);
|
|
567
649
|
console.log('');
|
|
568
|
-
log(
|
|
569
|
-
log(
|
|
570
|
-
log(
|
|
571
|
-
log('
|
|
650
|
+
console.log(` ${c.white}Next steps:${c.reset}`);
|
|
651
|
+
console.log(` ${c.gray}1.${c.reset} Restart OpenClaw to load the plugin`);
|
|
652
|
+
console.log(` ${c.dim}openclaw restart${c.reset} ${c.dim}(or close and reopen your editor)${c.reset}`);
|
|
653
|
+
console.log('');
|
|
654
|
+
console.log(` ${c.gray}2.${c.reset} Your agent now has persistent memory + heartbeat awareness`);
|
|
655
|
+
console.log(` ${c.dim}openclaw memory stats${c.reset} ${c.dim}check memory status${c.reset}`);
|
|
656
|
+
console.log(` ${c.dim}openclaw memory migrate${c.reset} ${c.dim}migrate data later${c.reset}`);
|
|
657
|
+
console.log('');
|
|
658
|
+
console.log(` ${c.indigo}${'━'.repeat(52)}${c.reset}`);
|
|
659
|
+
console.log('');
|
|
660
|
+
}
|
|
661
|
+
// ── Helpers ──────────────────────────────────────────────────────────────
|
|
662
|
+
function getVersion() {
|
|
663
|
+
try {
|
|
664
|
+
const pkg = JSON.parse(readFileSync(join(__dirname, '..', 'package.json'), 'utf-8'));
|
|
665
|
+
return pkg.version ?? 'dev';
|
|
666
|
+
}
|
|
667
|
+
catch {
|
|
668
|
+
return 'dev';
|
|
669
|
+
}
|
|
572
670
|
}
|
|
573
671
|
//# sourceMappingURL=init.js.map
|
package/dist/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACnH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEtF,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;AACpC,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;AACtE,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AACpD,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;AACvD,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;AAU9D,SAAS,GAAG,CAAC,GAAW;IACtB,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,OAAO,CAAC,GAAW;IAC1B,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,IAAI,CAAC,GAAW;IACvB,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,sDAAsD;AACtD,8EAA8E;AAC9E,4DAA4D;AAC5D,IAAI,UAAU,GAAoB,IAAI,CAAC;AACvC,IAAI,UAAU,GAAyB,IAAI,CAAC;AAE5C,SAAS,iBAAiB;IACxB,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC;IAClC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACxB,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAC/B,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,UAAU,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACnC,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACrD,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAClB,UAAU,GAAG,KAAK,CAAC;YACnB,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,2CAA2C;AAC3C,IAAI,KAAK,GAA8C,IAAI,CAAC;AAE5D,SAAS,gBAAgB;IACvB,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,KAAK,GAAG,IAAI,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,QAAgB;IACpC,MAAM,iBAAiB,EAAE,CAAC;IAE1B,4CAA4C;IAC5C,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,GAAG,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAED,gCAAgC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,KAAM,CAAC,QAAQ,CAAC,KAAK,QAAQ,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE;YAC3C,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,oEAAoE;AACpE,KAAK,UAAU,WAAW,CAAC,QAAgB;IACzC,OAAO,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,SAAS,eAAe;IACtB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1B,MAAM,KAAK,GAA2B;QACpC,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,SAAS;KACjB,CAAC;IAEF,MAAM,OAAO,GAA2B;QACtC,GAAG,EAAE,OAAO;QACZ,KAAK,EAAE,OAAO;KACf,CAAC;IAEF,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ;QAC/B,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI;KAC5B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc;IAC3B,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,eAAe,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,eAAe,CAAC;IAC5E,MAAM,SAAS,GAAG,iBAAiB,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAEjF,GAAG,CAAC,iCAAiC,EAAE,IAAI,IAAI,KAAK,CAAC,CAAC;IAEtD,IAAI,CAAC;QACH,0CAA0C;QAC1C,MAAM,UAAU,GAAG,MAAM,KAAK,CAC5B,sEAAsE,EACtE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,gCAAgC,EAAE,EAAE,CAC1D,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;YACnB,IAAI,CAAC,mCAAmC,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;YACtF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,EAGpC,CAAC;QAEF,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAC/D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,uBAAuB,EAAE,IAAI,IAAI,eAAe,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YACzE,IAAI,CAAC,qBAAqB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1E,OAAO,KAAK,CAAC;QACf,CAAC;QAED,GAAG,CAAC,eAAe,KAAK,CAAC,IAAI,iBAAiB,OAAO,CAAC,QAAQ,KAAK,CAAC,CAAC;QAErE,sBAAsB;QACtB,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC5D,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YACzC,IAAI,CAAC,oBAAoB,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;YAC/C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,0BAA0B;QAC1B,SAAS,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE/C,iBAAiB;QACjB,MAAM,QAAQ,GAAG,eAAe,CAAC;QACjC,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC/C,8EAA8E;QAC9E,MAAM,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAE7C,kBAAkB;QAClB,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,8BAA8B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB;IACzB,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC;QAAE,OAAO,IAAI,CAAC;IACnD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAmB,CAAC;IACnF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,MAAsB;IACjD,aAAa,CAAC,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;AACvF,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY;IACnB,uEAAuE;IACvE,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;IACzE,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IAE3D,mDAAmD;IACnD,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;IAE7E,IAAI,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;QACpD,OAAO,CAAC,yCAAyC,CAAC,CAAC;QACnD,OAAO;IACT,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAClC,IAAI,CAAC,0EAA0E,CAAC,CAAC;QACjF,OAAO;IACT,CAAC;IAED,SAAS,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,yDAAyD,CAAC,CAAC;AACrE,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,gBAAgB;IAC7B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAC1B,GAAG,CAAC,2DAA2D,CAAC,CAAC;IACjE,GAAG,CAAC,mFAAmF,CAAC,CAAC;IACzF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,0BAA0B;IAC1B,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC/C,MAAM,YAAY,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACrD,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAE/C,sBAAsB;IACtB,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC;IAC/D,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,CAAC,wBAAwB,eAAe,KAAK,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,eAAe,GAAG,CAAC,CAAC;IACjH,CAAC;SAAM,CAAC;QACN,sCAAsC;QACtC,IAAI,SAAS,EAAE,CAAC;YACd,GAAG,CAAC,oEAAoE,CAAC,CAAC;YAC1E,eAAe,CAAC,4BAA4B,EAAE,QAAQ,CAAC,CAAC;YACxD,eAAe,CAAC,yBAAyB,EAAE,kBAAkB,CAAC,CAAC;YAC/D,eAAe,CAAC,2BAA2B,EAAE,QAAQ,CAAC,CAAC;YACvD,eAAe,CAAC,wBAAwB,EAAE,sBAAsB,CAAC,CAAC;QACpE,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACrB,GAAG,CAAC,oEAAoE,CAAC,CAAC;YAC1E,eAAe,CAAC,4BAA4B,EAAE,QAAQ,CAAC,CAAC;YACxD,eAAe,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAC;YACzD,eAAe,CAAC,2BAA2B,EAAE,QAAQ,CAAC,CAAC;YACvD,eAAe,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,CAAC;QACtE,CAAC;aAAM,IAAI,YAAY,EAAE,CAAC;YACxB,GAAG,CAAC,6DAA6D,CAAC,CAAC;YACnE,eAAe,CAAC,4BAA4B,EAAE,WAAW,CAAC,CAAC;YAC3D,eAAe,CAAC,yBAAyB,EAAE,2BAA2B,CAAC,CAAC;YACxE,IAAI,CAAC,6FAA6F,CAAC,CAAC;QACtG,CAAC;aAAM,CAAC;YACN,uCAAuC;YACvC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,GAAG,CAAC,4DAA4D,CAAC,CAAC;YAClE,GAAG,CAAC,yEAAyE,CAAC,CAAC;YAC/E,GAAG,CAAC,gDAAgD,CAAC,CAAC;YACtD,GAAG,CAAC,0EAA0E,CAAC,CAAC;YAChF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;YAE9D,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;gBACnB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,qCAAqC,CAAC,CAAC;gBAChE,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjC,eAAe,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;oBACvC,eAAe,CAAC,4BAA4B,EAAE,QAAQ,CAAC,CAAC;oBACxD,eAAe,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAC;oBACzD,eAAe,CAAC,2BAA2B,EAAE,QAAQ,CAAC,CAAC;oBACvD,eAAe,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,CAAC;oBACpE,OAAO,CAAC,+CAA+C,CAAC,CAAC;gBAC3D,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,2DAA2D,CAAC,CAAC;gBACpE,CAAC;YACH,CAAC;iBAAM,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC1B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,4CAA4C,CAAC,CAAC;gBACvE,IAAI,GAAG,EAAE,CAAC;oBACR,eAAe,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;oBAC1C,eAAe,CAAC,4BAA4B,EAAE,WAAW,CAAC,CAAC;oBAC3D,eAAe,CAAC,yBAAyB,EAAE,2BAA2B,CAAC,CAAC;oBACxE,IAAI,CAAC,2DAA2D,CAAC,CAAC;gBACpE,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,kDAAkD,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,kBAAkB;gBAClB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;gBACvD,IAAI,GAAG,EAAE,CAAC;oBACR,eAAe,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;oBACvC,eAAe,CAAC,4BAA4B,EAAE,QAAQ,CAAC,CAAC;oBACxD,eAAe,CAAC,yBAAyB,EAAE,kBAAkB,CAAC,CAAC;oBAC/D,eAAe,CAAC,2BAA2B,EAAE,QAAQ,CAAC,CAAC;oBACvD,eAAe,CAAC,wBAAwB,EAAE,sBAAsB,CAAC,CAAC;oBAClE,OAAO,CAAC,+CAA+C,CAAC,CAAC;gBAC3D,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,+CAA+C,CAAC,CAAC;gBACxD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,IAAI,SAAS;QAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAClD,IAAI,SAAS;QAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAClD,IAAI,YAAY;QAAE,OAAO,CAAC,4BAA4B,CAAC,CAAC;AAC1D,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,GAAW,EAAE,KAAa;IACjD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvC,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACzC,kCAAkC;QAClC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC;QAC7C,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;YACpD,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACzC,OAAO;QACT,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,KAAK,IAAI,CAAC;IACjC,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,qBAAqB,CAAC;IAC/B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAAC,MAAsB;IACjD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACtB,GAAG,CAAC,gFAAgF,CAAC,CAAC;IACtF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,GAAG,CAAC,iEAAiE,CAAC,CAAC;IACvE,GAAG,CAAC,gFAAgF,CAAC,CAAC;IACtF,GAAG,CAAC,8EAA8E,CAAC,CAAC;IACpF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,0DAA0D,CAAC,CAAC;IAC7F,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAElF,yCAAyC;IACzC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,CAAC;IACzD,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;QACrC,KAAK,CAAC,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC9B,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,CAAC,oBAAoB,KAAK,EAAE,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,0BAA0B;IACvC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAE9B,uBAAuB;IACvB,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,wBAAwB,QAAQ,2BAA2B,CAAC,CAAC;IAC3F,MAAM,QAAQ,GAAG,QAAQ,IAAI,QAAQ,CAAC;IAEtC,eAAe,CAAC,6BAA6B,EAAE,QAAQ,CAAC,CAAC;IACzD,OAAO,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC;IAEjC,cAAc;IACd,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,GAAG,CAAC,qEAAqE,CAAC,CAAC;IAC3E,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,wCAAwC,CAAC,CAAC;IAEhF,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC;QACxB,eAAe,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;QACvD,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAC1D,OAAO;IACT,CAAC;IAED,eAAe,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC;IAEtD,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,oCAAoC,CAAC,CAAC;IAErE,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QAC/C,eAAe,CAAC,yBAAyB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,EAAE,CAAC;QACzC,eAAe,CAAC,uBAAuB,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,CAAC,gBAAgB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,QAAQ,GAAG,CAAC,CAAC;AACrG,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,WAAW;IACxB,MAAM,GAAG,GAAG,wBAAwB,CAAC;IACrC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAE/B,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,GAAG,gBAAgB,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/E,YAAY,CAAC,KAAK,CAAC,CAAC;QAEpB,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;YACX,OAAO,CAAC,0BAA0B,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,yBAAyB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;QACvE,GAAG,CAAC,+EAA+E,CAAC,CAAC;QACrF,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI;IACxB,OAAO,CAAC,GAAG,CAAC;;;;;;;;CAQb,CAAC,CAAC;IAED,0BAA0B;IAC1B,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,IAAI,CAAC,gCAAgC,oBAAoB,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,6DAA6D,CAAC,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAEpC,qCAAqC;IACrC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;IAC9C,MAAM,iBAAiB,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IAE9D,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,CAAC,qDAAqD,CAAC,CAAC;IACjE,CAAC;SAAM,CAAC;QACN,+BAA+B;QAC/B,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,0BAA0B,eAAe,EAAE,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,0CAA0C,CAAC,CAAC;YAChD,MAAM,UAAU,GAAG,MAAM,cAAc,EAAE,CAAC;YAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,IAAI,CAAC,yDAAyD,CAAC,CAAC;gBAChE,IAAI,CAAC,8DAA8D,CAAC,CAAC;gBACrE,IAAI,CAAC,0BAA0B,eAAe,EAAE,CAAC,CAAC;gBAClD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,gCAAgC,CAAC,CAAC;gBACpE,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;oBACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;QACH,CAAC;QAED,oCAAoC;QACpC,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO;YAAE,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK;YAAE,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC;QAErD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG;YACxC,OAAO,EAAE,IAAI;YACb,MAAM,EAAE;gBACN,SAAS,EAAE,wBAAwB;gBACnC,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,IAAI;gBACjB,SAAS,EAAE,IAAI;gBACf,IAAI,EAAE,CAAC;aACR;SACF,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,eAAe,CAAC;QAEjD,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO,CAAC,oCAAoC,CAAC,CAAC;IAChD,CAAC;IAED,uCAAuC;IACvC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1D,eAAe,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAE1C,yCAAyC;IACzC,MAAM,gBAAgB,EAAE,CAAC;IAEzB,yBAAyB;IACzB,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;IAE5B,iCAAiC;IACjC,MAAM,0BAA0B,EAAE,CAAC;IAEnC,qCAAqC;IACrC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,YAAY,EAAE,CAAC;IAEf,kDAAkD;IAClD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;IACzD,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAE7C,IAAI,WAAW,IAAI,eAAe,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACzC,IAAI,WAAW;YAAE,GAAG,CAAC,eAAe,CAAC,CAAC;QACtC,IAAI,eAAe;YAAE,GAAG,CAAC,OAAO,SAAS,CAAC,MAAM,yCAAyC,CAAC,CAAC;QAE3F,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,8CAA8C,CAAC,CAAC;QAElF,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;YACpB,GAAG,CAAC,uBAAuB,CAAC,CAAC;YAE7B,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC;gBAC9B,OAAO,EAAE,wBAAwB;gBACjC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB;gBACvC,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,SAAS,CAAC;YAE3B,yBAAyB;YACzB,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC;wBACvC,MAAM;wBACN,QAAQ;wBACR,YAAY,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;wBACrC,MAAM,EAAE,OAAO;qBAChB,CAAC,CAAC;oBACH,OAAO,CAAC,aAAa,QAAQ,CAAC,QAAQ,cAAc,QAAQ,CAAC,OAAO,UAAU,CAAC,CAAC;gBAClF,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,8BAA8B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAClD,IAAI,CAAC,iFAAiF,CAAC,CAAC;gBAC1F,CAAC;YACH,CAAC;YAED,wBAAwB;YACxB,IAAI,eAAe,EAAE,CAAC;gBACpB,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC;wBAC5C,MAAM;wBACN,QAAQ;wBACR,SAAS,EAAE,mBAAmB;wBAC9B,MAAM,EAAE,OAAO;qBAChB,CAAC,CAAC;oBACH,OAAO,CAAC,iBAAiB,QAAQ,CAAC,QAAQ,cAAc,QAAQ,CAAC,OAAO,UAAU,CAAC,CAAC;gBACtF,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,kCAAkC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACxD,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,wEAAwE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,MAAM,WAAW,EAAE,CAAC;IAEpB,uCAAuC;IACvC,gBAAgB,EAAE,CAAC;IAEnB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,GAAG,CAAC,sCAAsC,CAAC,CAAC;IAC5C,GAAG,CAAC,yDAAyD,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,GAAG,CAAC,wDAAwD,CAAC,CAAC;IAC9D,GAAG,CAAC,+DAA+D,CAAC,CAAC;IACrE,GAAG,CAAC,0DAA0D,CAAC,CAAC;IAChE,GAAG,CAAC,wDAAwD,CAAC,CAAC;AAChE,CAAC"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keyoku/openclaw",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.1",
|
|
4
4
|
"description": "Keyoku memory plugin for OpenClaw — persistent memory, heartbeat enhancement, and scheduling",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
"build": "tsc"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@keyoku/memory": "1.
|
|
16
|
-
"@keyoku/types": "1.
|
|
15
|
+
"@keyoku/memory": "1.2.1",
|
|
16
|
+
"@keyoku/types": "1.2.1",
|
|
17
17
|
"@sinclair/typebox": "^0.34.0"
|
|
18
18
|
},
|
|
19
19
|
"peerDependencies": {
|