@jclaw/core 0.1.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/auto-skill/generator.js +0 -1
  2. package/dist/auto-skill/index.js +0 -1
  3. package/dist/auto-skill/installer.js +0 -1
  4. package/dist/auto-skill/types.js +0 -1
  5. package/dist/cli/commands/config.js +0 -1
  6. package/dist/cli/commands/exec.js +0 -1
  7. package/dist/cli/index.js +0 -1
  8. package/dist/cli/jclaw.js +386 -0
  9. package/dist/cli/run.js +0 -1
  10. package/dist/context/index.js +0 -1
  11. package/dist/context/memsearch-client.js +0 -1
  12. package/dist/context/mock-client.js +0 -1
  13. package/dist/context/simple-memory-client.js +0 -1
  14. package/dist/evolution/engine.js +0 -1
  15. package/dist/evolution/evolver-adapter.js +0 -1
  16. package/dist/evolution/index.js +0 -1
  17. package/dist/evolution/mutation.js +0 -1
  18. package/dist/evolution/sandbox.js +0 -1
  19. package/dist/evolution/types.js +0 -1
  20. package/dist/executor/index.js +0 -1
  21. package/dist/executor/interface.js +0 -1
  22. package/dist/executor/local.js +0 -1
  23. package/dist/extension-system/capability-router.js +0 -1
  24. package/dist/extension-system/index.js +0 -1
  25. package/dist/extension-system/loader.js +0 -1
  26. package/dist/extension-system/registry.js +0 -1
  27. package/dist/index.js +0 -1
  28. package/dist/network/client.js +0 -1
  29. package/dist/network/index.js +0 -1
  30. package/dist/network/protocol.js +0 -1
  31. package/dist/runtime/agent.js +0 -1
  32. package/dist/runtime/index.js +0 -1
  33. package/dist/runtime/llm-client.js +0 -1
  34. package/dist/runtime/task-executor.js +0 -1
  35. package/dist/skill-sh/adapter.js +0 -1
  36. package/dist/skill-sh/converter.js +0 -1
  37. package/dist/skill-sh/discovery.d.ts +1 -1
  38. package/dist/skill-sh/discovery.d.ts.map +1 -1
  39. package/dist/skill-sh/discovery.js +0 -1
  40. package/dist/skill-sh/index.js +0 -1
  41. package/dist/skill-sh/quality.js +0 -1
  42. package/dist/skill-sh/registry.js +0 -1
  43. package/dist/skill-sh/types.js +0 -1
  44. package/dist/types.js +0 -1
  45. package/package.json +9 -28
@@ -259,4 +259,3 @@ export function addCodeTemplate(name, template) {
259
259
  export function getAvailableTemplates() {
260
260
  return Object.keys(CODE_TEMPLATES);
261
261
  }
262
- //# sourceMappingURL=generator.js.map
@@ -7,4 +7,3 @@
7
7
  */
8
8
  export { AutoSkillGenerator, createAutoSkillGenerator, } from './generator.js';
9
9
  export { AutoSkillInstaller, createAutoSkillInstaller, } from './installer.js';
10
- //# sourceMappingURL=index.js.map
@@ -198,4 +198,3 @@ export class AutoSkillInstaller {
198
198
  export function createAutoSkillInstaller(registry, storageDir) {
199
199
  return new AutoSkillInstaller(registry, storageDir);
200
200
  }
201
- //# sourceMappingURL=installer.js.map
@@ -6,4 +6,3 @@
6
6
  * @module @jclaw/core/auto-skill/types
7
7
  */
8
8
  export {};
9
- //# sourceMappingURL=types.js.map
@@ -116,4 +116,3 @@ Examples:
116
116
  `);
117
117
  }
118
118
  export { DEFAULT_CONFIG };
119
- //# sourceMappingURL=config.js.map
@@ -38,4 +38,3 @@ Examples:
38
38
  jclaw exec "Refactor UserService" --verbose
39
39
  `);
40
40
  }
41
- //# sourceMappingURL=exec.js.map
package/dist/cli/index.js CHANGED
@@ -88,4 +88,3 @@ if (isCliEntry) {
88
88
  });
89
89
  }
90
90
  export { VERSION };
91
- //# sourceMappingURL=index.js.map
@@ -0,0 +1,386 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * JClaw CLI - Support flexible LLM configuration via environment variables
5
+ */
6
+
7
+ import { JClawAgent } from '../runtime/agent.js';
8
+ import { createSimpleMemoryClient } from '../context/simple-memory-client.js';
9
+ import { readFile, writeFile, mkdir } from 'fs/promises';
10
+ import { existsSync } from 'fs';
11
+
12
+ // 命令行参数
13
+ const args = process.argv.slice(2);
14
+ const command = args[0];
15
+
16
+ // 帮助信息
17
+ function showHelp() {
18
+ console.log(`
19
+ 🧬 JClaw - Universal Self-Evolving Agent Framework
20
+
21
+ 用法:
22
+ jclaw <command> [options]
23
+
24
+ 命令:
25
+ execute <prompt> 执行任务
26
+ chat 交互模式
27
+ init 初始化项目
28
+ help 显示帮助
29
+
30
+ 示例:
31
+ jclaw execute "分析我的简历,推荐公司和职位"
32
+ jclaw chat
33
+
34
+ 环境变量:
35
+ LLM_BASE_URL API 基础地址(可选,默认:https://api.openai.com/v1)
36
+ LLM_API_KEY API 密钥(必需)
37
+ LLM_MODEL_NAME 模型名称(可选,默认:gpt-4)
38
+
39
+ 或使用 provider 特定变量:
40
+ OPENAI_API_KEY, INFINI_API_KEY, AZURE_OPENAI_KEY, ANTHROPIC_API_KEY
41
+ LLM_PROVIDER provider 名称(openai, infini-openai, azure-openai, anthropic)
42
+ `);
43
+ }
44
+
45
+ // 从配置文件加载 LLM 设置
46
+ async function loadLLMConfig() {
47
+ const configFiles = ['./jclaw.config.js', './jclaw.config.mjs'];
48
+
49
+ for (const configFile of configFiles) {
50
+ if (existsSync(configFile)) {
51
+ try {
52
+ const config = await import(configFile);
53
+ const { llm, providers } = config.default || config;
54
+
55
+ if (llm && llm.provider && providers && providers[llm.provider]) {
56
+ const provider = providers[llm.provider];
57
+ const apiKey = process.env[provider.apiKeyEnv];
58
+
59
+ if (!apiKey) {
60
+ console.error(`❌ 错误:请设置 ${provider.apiKeyEnv} 环境变量`);
61
+ process.exit(1);
62
+ }
63
+
64
+ return {
65
+ apiBase: provider.baseURL,
66
+ apiKey: apiKey,
67
+ model: llm.model || provider.models[0]
68
+ };
69
+ }
70
+
71
+ if (llm && llm.apiKey) {
72
+ return {
73
+ apiBase: llm.apiBase || 'https://api.openai.com/v1',
74
+ apiKey: llm.apiKey,
75
+ model: llm.model || 'gpt-4'
76
+ };
77
+ }
78
+ } catch (e) {
79
+ // 配置文件加载失败,继续
80
+ }
81
+ }
82
+ }
83
+
84
+ return null;
85
+ }
86
+
87
+ // 获取 LLM 配置(支持多种环境变量组合)
88
+ async function getLLMConfig() {
89
+ // 1. 优先使用配置文件
90
+ const configFile = await loadLLMConfig();
91
+ if (configFile) return configFile;
92
+
93
+ // 2. 使用通用环境变量(最灵活)
94
+ if (process.env.LLM_API_KEY) {
95
+ return {
96
+ apiBase: process.env.LLM_BASE_URL || 'https://api.openai.com/v1',
97
+ apiKey: process.env.LLM_API_KEY,
98
+ model: process.env.LLM_MODEL_NAME || 'gpt-4'
99
+ };
100
+ }
101
+
102
+ // 3. 使用 LLM_PROVIDER 指定 provider
103
+ if (process.env.LLM_PROVIDER) {
104
+ const providerConfigs = {
105
+ 'openai': {
106
+ baseURL: 'https://api.openai.com/v1',
107
+ apiKeyEnv: 'OPENAI_API_KEY',
108
+ defaultModel: 'gpt-4'
109
+ },
110
+ 'infini-openai': {
111
+ baseURL: 'https://cloud.infini-ai.com/maas/coding/v1',
112
+ apiKeyEnv: 'INFINI_API_KEY',
113
+ defaultModel: 'kimi-k2.5'
114
+ },
115
+ 'azure-openai': {
116
+ baseURL: 'https://YOUR_RESOURCE.openai.azure.com',
117
+ apiKeyEnv: 'AZURE_OPENAI_KEY',
118
+ defaultModel: 'gpt-4'
119
+ },
120
+ 'anthropic': {
121
+ baseURL: 'https://api.anthropic.com',
122
+ apiKeyEnv: 'ANTHROPIC_API_KEY',
123
+ defaultModel: 'claude-3-opus'
124
+ }
125
+ };
126
+
127
+ const provider = providerConfigs[process.env.LLM_PROVIDER];
128
+ if (provider) {
129
+ const apiKey = process.env[provider.apiKeyEnv];
130
+ if (!apiKey) {
131
+ console.error(`❌ 错误:请设置 ${provider.apiKeyEnv} 环境变量`);
132
+ process.exit(1);
133
+ }
134
+
135
+ return {
136
+ apiBase: provider.baseURL,
137
+ apiKey: apiKey,
138
+ model: process.env.LLM_MODEL_NAME || provider.defaultModel
139
+ };
140
+ }
141
+ }
142
+
143
+ // 4. 使用默认 OpenAI 环境变量
144
+ if (process.env.OPENAI_API_KEY) {
145
+ return {
146
+ apiBase: process.env.LLM_BASE_URL || 'https://api.openai.com/v1',
147
+ apiKey: process.env.OPENAI_API_KEY,
148
+ model: process.env.LLM_MODEL_NAME || 'gpt-4'
149
+ };
150
+ }
151
+
152
+ // 5. 错误提示
153
+ console.error('❌ 错误:请设置 LLM 配置');
154
+ console.error('');
155
+ console.error('方式 1: 使用通用环境变量(推荐)');
156
+ console.error(' export LLM_API_KEY=sk-...');
157
+ console.error(' export LLM_BASE_URL=https://api.openai.com/v1');
158
+ console.error(' export LLM_MODEL_NAME=gpt-4');
159
+ console.error('');
160
+ console.error('方式 2: 使用 provider 特定变量');
161
+ console.error(' export LLM_PROVIDER=infini-openai');
162
+ console.error(' export INFINI_API_KEY=sk-cp-...');
163
+ console.error(' export LLM_MODEL_NAME=kimi-k2.5');
164
+ console.error('');
165
+ console.error('方式 3: 使用配置文件');
166
+ console.error(' 创建 jclaw.config.js');
167
+ process.exit(1);
168
+ }
169
+
170
+ // 执行命令
171
+ async function execute(prompt) {
172
+ const llmConfig = await getLLMConfig();
173
+
174
+ console.log('🧬 启动 JClaw...\n');
175
+ console.log(`📡 使用模型:${llmConfig.model}`);
176
+ console.log(`🔌 API 端点:${llmConfig.apiBase}\n`);
177
+
178
+ const agent = new JClawAgent({
179
+ enableAutoSkill: true,
180
+ skillShConfig: { enableCache: true },
181
+ llm: llmConfig,
182
+ contextManager: createSimpleMemoryClient({
183
+ enableSynonyms: true,
184
+ enableFuzzyMatch: true
185
+ })
186
+ });
187
+
188
+ await agent.start();
189
+ console.log('✅ JClaw 已启动\n');
190
+ console.log('📝 任务:', prompt, '\n');
191
+
192
+ const result = await agent.execute({
193
+ id: 'cli-task',
194
+ prompt
195
+ });
196
+
197
+ console.log('\n✅ 结果:\n');
198
+ console.log(result.output || result.error);
199
+
200
+ await agent.stop();
201
+ console.log('\n🎉 完成!\n');
202
+ }
203
+
204
+ // 交互模式
205
+ async function chat() {
206
+ const llmConfig = await getLLMConfig();
207
+
208
+ console.log('🧬 JClaw 交互模式 (输入 "exit" 退出)\n');
209
+ console.log(`📡 使用模型:${llmConfig.model}\n`);
210
+
211
+ const agent = new JClawAgent({
212
+ enableAutoSkill: true,
213
+ llm: llmConfig
214
+ });
215
+
216
+ await agent.start();
217
+
218
+ const readline = await import('readline');
219
+ const rl = readline.createInterface({
220
+ input: process.stdin,
221
+ output: process.stdout
222
+ });
223
+
224
+ const ask = () => {
225
+ rl.question('你:', async (input) => {
226
+ if (input.toLowerCase() === 'exit') {
227
+ await agent.stop();
228
+ rl.close();
229
+ console.log('\n👋 再见!\n');
230
+ return;
231
+ }
232
+
233
+ console.log('\n🤖 JClaw:\n');
234
+ const result = await agent.execute({
235
+ id: 'chat',
236
+ prompt: input
237
+ });
238
+ console.log(result.output || result.error);
239
+ console.log('');
240
+ ask();
241
+ });
242
+ };
243
+
244
+ ask();
245
+ }
246
+
247
+ // 初始化项目
248
+ async function init() {
249
+ console.log('🧬 初始化 JClaw 项目...\n');
250
+
251
+ const configTemplate = `// JClaw 配置文件 - 支持多种 LLM provider
252
+ export default {
253
+ enableAutoSkill: true,
254
+ skillShConfig: { enableCache: true },
255
+
256
+ llm: {
257
+ provider: 'openai', // 或 'infini-openai', 'azure-openai', 'anthropic'
258
+ model: 'gpt-4' // 具体模型
259
+ },
260
+
261
+ providers: {
262
+ 'openai': {
263
+ baseURL: 'https://api.openai.com/v1',
264
+ apiKeyEnv: 'OPENAI_API_KEY',
265
+ models: ['gpt-4', 'gpt-4o', 'gpt-3.5-turbo']
266
+ },
267
+ 'infini-openai': {
268
+ baseURL: 'https://cloud.infini-ai.com/maas/coding/v1',
269
+ apiKeyEnv: 'INFINI_API_KEY',
270
+ models: ['kimi-k2.5', 'other-model']
271
+ }
272
+ },
273
+
274
+ contextManager: {
275
+ enableSynonyms: true,
276
+ enableFuzzyMatch: true,
277
+ memoryPath: './.jclaw/memory'
278
+ }
279
+ };
280
+ `;
281
+
282
+ const files = {
283
+ 'jclaw.config.js': configTemplate,
284
+ 'README.md': `# JClaw Project
285
+
286
+ ## 使用环境变量
287
+
288
+ ### 方式 1: 通用环境变量(推荐)
289
+ export LLM_API_KEY=sk-...
290
+ export LLM_BASE_URL=https://api.openai.com/v1
291
+ export LLM_MODEL_NAME=gpt-4
292
+ jclaw "你的任务"
293
+
294
+ ### 方式 2: Provider 特定变量
295
+ export LLM_PROVIDER=infini-openai
296
+ export INFINI_API_KEY=sk-cp-...
297
+ export LLM_MODEL_NAME=kimi-k2.5
298
+ jclaw "你的任务"
299
+
300
+ ## 或使用配置文件
301
+ jclaw "你的任务"
302
+ `
303
+ };
304
+
305
+ for (const [name, content] of Object.entries(files)) {
306
+ if (!existsSync(name)) {
307
+ await writeFile(name, content);
308
+ console.log('✅ 创建:', name);
309
+ }
310
+ }
311
+
312
+ console.log('\n🎉 初始化完成!\n');
313
+ }
314
+
315
+ // 主逻辑
316
+ switch (command) {
317
+ case 'execute':
318
+ case 'exec':
319
+ case 'e':
320
+ const prompt = args.slice(1).join(' ');
321
+ if (!prompt) {
322
+ console.error('❌ 错误:请提供任务描述');
323
+ console.error('示例:jclaw execute "分析我的简历"');
324
+ process.exit(1);
325
+ }
326
+ execute(prompt);
327
+ break;
328
+
329
+ case 'chat':
330
+ case 'c':
331
+ chat();
332
+ break;
333
+
334
+ case 'init':
335
+ case 'i':
336
+ init();
337
+ break;
338
+
339
+ case 'help':
340
+ case 'h':
341
+ case '--help':
342
+ case '-h':
343
+ showHelp();
344
+ break;
345
+
346
+ default:
347
+ if (command)
348
+
349
+ // 主逻辑
350
+ switch (command) {
351
+ case 'execute':
352
+ case 'exec':
353
+ case 'e':
354
+ const prompt = args.slice(1).join(' ');
355
+ if (!prompt) {
356
+ console.error('❌ 错误:请提供任务描述');
357
+ console.error('示例:jclaw execute "分析我的简历"');
358
+ process.exit(1);
359
+ }
360
+ execute(prompt);
361
+ break;
362
+
363
+ case 'chat':
364
+ case 'c':
365
+ chat();
366
+ break;
367
+
368
+ case 'init':
369
+ case 'i':
370
+ init();
371
+ break;
372
+
373
+ case 'help':
374
+ case 'h':
375
+ case '--help':
376
+ case '-h':
377
+ showHelp();
378
+ break;
379
+
380
+ default:
381
+ if (command) {
382
+ execute(args.join(' '));
383
+ } else {
384
+ showHelp();
385
+ }
386
+ }
package/dist/cli/run.js CHANGED
@@ -10,4 +10,3 @@ main().catch((err) => {
10
10
  console.error(err.message);
11
11
  process.exit(1);
12
12
  });
13
- //# sourceMappingURL=run.js.map
@@ -9,4 +9,3 @@ export { SimpleMemoryClient, createSimpleMemoryClient } from './simple-memory-cl
9
9
  // export { OpenVikingClient, type OpenVikingConfig } from './openviking-client.js';
10
10
  // export { OpenVikingMCPClient, type OpenVikingMCPConfig, createOpenVikingMCPClient } from './openviking-mcp-client.js';
11
11
  export { MockClient } from './mock-client.js';
12
- //# sourceMappingURL=index.js.map
@@ -179,4 +179,3 @@ asyncio.run(main())
179
179
  export function createMemSearchClient(config) {
180
180
  return new MemSearchClient(config);
181
181
  }
182
- //# sourceMappingURL=memsearch-client.js.map
@@ -147,4 +147,3 @@ export class MockClient {
147
147
  this.queryResponses.clear();
148
148
  }
149
149
  }
150
- //# sourceMappingURL=mock-client.js.map
@@ -267,4 +267,3 @@ export class SimpleMemoryClient {
267
267
  export function createSimpleMemoryClient(config) {
268
268
  return new SimpleMemoryClient(config);
269
269
  }
270
- //# sourceMappingURL=simple-memory-client.js.map
@@ -184,4 +184,3 @@ export class EvolutionEngine {
184
184
  export function createEvolutionEngine(options) {
185
185
  return new EvolutionEngine(options);
186
186
  }
187
- //# sourceMappingURL=engine.js.map
@@ -224,4 +224,3 @@ export class EvolverAdapter {
224
224
  export function createEvolverAdapter(config) {
225
225
  return new EvolverAdapter(config);
226
226
  }
227
- //# sourceMappingURL=evolver-adapter.js.map
@@ -5,4 +5,3 @@ export { MutationGenerator, createMutationGenerator } from './mutation.js';
5
5
  export { SandboxValidator, createSandbox } from './sandbox.js';
6
6
  export { EvolutionEngine, createEvolutionEngine } from './engine.js';
7
7
  export { EvolverAdapter, createEvolverAdapter } from './evolver-adapter.js';
8
- //# sourceMappingURL=index.js.map
@@ -136,4 +136,3 @@ export class MutationGenerator {
136
136
  export function createMutationGenerator(config) {
137
137
  return new MutationGenerator(config);
138
138
  }
139
- //# sourceMappingURL=mutation.js.map
@@ -191,4 +191,3 @@ export class SandboxValidator {
191
191
  export function createSandbox(config) {
192
192
  return new SandboxValidator(config);
193
193
  }
194
- //# sourceMappingURL=sandbox.js.map
@@ -6,4 +6,3 @@
6
6
  * @module @jclaw/core/evolution/types
7
7
  */
8
8
  export {};
9
- //# sourceMappingURL=types.js.map
@@ -7,4 +7,3 @@
7
7
  */
8
8
  // Implementations
9
9
  export { LocalExecutor, createLocalExecutor } from './local.js';
10
- //# sourceMappingURL=index.js.map
@@ -6,4 +6,3 @@
6
6
  * @module @jclaw/core/executor/interface
7
7
  */
8
8
  export {};
9
- //# sourceMappingURL=interface.js.map
@@ -92,4 +92,3 @@ export class LocalExecutor {
92
92
  export function createLocalExecutor() {
93
93
  return new LocalExecutor();
94
94
  }
95
- //# sourceMappingURL=local.js.map
@@ -164,4 +164,3 @@ export class CapabilityRouter {
164
164
  };
165
165
  }
166
166
  }
167
- //# sourceMappingURL=capability-router.js.map
@@ -8,4 +8,3 @@
8
8
  export { ExtensionRegistry } from './registry.js';
9
9
  export { ExtensionLoader, } from './loader.js';
10
10
  export { CapabilityRouter, } from './capability-router.js';
11
- //# sourceMappingURL=index.js.map
@@ -242,4 +242,3 @@ export class ExtensionLoader {
242
242
  return sorted;
243
243
  }
244
244
  }
245
- //# sourceMappingURL=loader.js.map
@@ -158,4 +158,3 @@ export class ExtensionRegistry {
158
158
  return this.capabilities.size;
159
159
  }
160
160
  }
161
- //# sourceMappingURL=registry.js.map
package/dist/index.js CHANGED
@@ -17,4 +17,3 @@ export { MutationGenerator, createMutationGenerator, SandboxValidator, createSan
17
17
  export { AutoSkillGenerator, createAutoSkillGenerator, AutoSkillInstaller, createAutoSkillInstaller, } from './auto-skill/index.js';
18
18
  // Network
19
19
  export { A2AProtocol, GEPProtocol, EvoMapClient, createEvoMapClient, } from './network/index.js';
20
- //# sourceMappingURL=index.js.map
@@ -227,4 +227,3 @@ export class EvoMapClient {
227
227
  export function createEvoMapClient(config) {
228
228
  return new EvoMapClient(config);
229
229
  }
230
- //# sourceMappingURL=client.js.map
@@ -7,4 +7,3 @@
7
7
  */
8
8
  export { A2AProtocol, GEPProtocol, } from './protocol.js';
9
9
  export { EvoMapClient, createEvoMapClient } from './client.js';
10
- //# sourceMappingURL=index.js.map
@@ -115,4 +115,3 @@ export class GEPProtocol {
115
115
  return Math.abs(hash).toString(16);
116
116
  }
117
117
  }
118
- //# sourceMappingURL=protocol.js.map
@@ -283,4 +283,3 @@ Remember: You have access to persistent memory and can evolve your own capabilit
283
283
  export function createAgent(config) {
284
284
  return new JClawAgent(config);
285
285
  }
286
- //# sourceMappingURL=agent.js.map
@@ -8,4 +8,3 @@
8
8
  export { LLMClient, createLLMClient } from './llm-client.js';
9
9
  export { TaskExecutor, createTaskExecutor } from './task-executor.js';
10
10
  export { JClawAgent, createAgent } from './agent.js';
11
- //# sourceMappingURL=index.js.map
@@ -122,4 +122,3 @@ export class LLMClient {
122
122
  export function createLLMClient(config) {
123
123
  return new LLMClient(config);
124
124
  }
125
- //# sourceMappingURL=llm-client.js.map
@@ -200,4 +200,3 @@ export class TaskExecutor {
200
200
  export function createTaskExecutor(config) {
201
201
  return new TaskExecutor(config);
202
202
  }
203
- //# sourceMappingURL=task-executor.js.map
@@ -255,4 +255,3 @@ export function getCacheStats() {
255
255
  }
256
256
  return { size: validKeys.length, keys: validKeys };
257
257
  }
258
- //# sourceMappingURL=adapter.js.map
@@ -172,4 +172,3 @@ If no clear capabilities found, return empty array.`;
172
172
  export function createSkillConverter(llmClient) {
173
173
  return new SkillConverter(llmClient);
174
174
  }
175
- //# sourceMappingURL=converter.js.map
@@ -15,7 +15,7 @@ export declare class SkillDiscoveryEngine {
15
15
  private skillShAdapter;
16
16
  private skillConverter;
17
17
  private autoSkillGenerator?;
18
- constructor(llmClient: LLMClient, registry: ExtensionRegistry, skillShAdapter: SkillShAdapter, skillConverter: SkillConverter, autoSkillGenerator?: AutoSkillGenerator | undefined);
18
+ constructor(llmClient: LLMClient, registry: ExtensionRegistry, skillShAdapter: SkillShAdapter, skillConverter: SkillConverter, autoSkillGenerator?: AutoSkillGenerator);
19
19
  discover(query: string): Promise<SkillDiscoveryResult>;
20
20
  private searchSkillSh;
21
21
  private searchLocal;
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/skill-sh/discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EAErB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,qBAAa,oBAAoB;IAE7B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,kBAAkB,CAAC;gBAJnB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,iBAAiB,EAC3B,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,kBAAkB,CAAC,EAAE,kBAAkB,YAAA;IAG3C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;YA8B9C,aAAa;YAkBb,WAAW;IAuCzB,OAAO,CAAC,UAAU;IAiClB,OAAO,CAAC,gBAAgB;IA8BxB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,kBAAkB;IAgBpB,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;CAoB3D;AAED,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,iBAAiB,EAC3B,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,kBAAkB,CAAC,EAAE,kBAAkB,GACtC,oBAAoB,CAQtB"}
1
+ {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/skill-sh/discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EAErB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,qBAAa,oBAAoB;IAE7B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,kBAAkB,CAAC;gBAJnB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,iBAAiB,EAC3B,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,kBAAkB,CAAC,EAAE,kBAAkB;IAG3C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;YA8B9C,aAAa;YAkBb,WAAW;IAuCzB,OAAO,CAAC,UAAU;IAiClB,OAAO,CAAC,gBAAgB;IA8BxB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,kBAAkB;IAgBpB,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;CAoB3D;AAED,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,iBAAiB,EAC3B,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,kBAAkB,CAAC,EAAE,kBAAkB,GACtC,oBAAoB,CAQtB"}
@@ -186,4 +186,3 @@ export class SkillDiscoveryEngine {
186
186
  export function createSkillDiscoveryEngine(llmClient, registry, skillShAdapter, skillConverter, autoSkillGenerator) {
187
187
  return new SkillDiscoveryEngine(llmClient, registry, skillShAdapter, skillConverter, autoSkillGenerator);
188
188
  }
189
- //# sourceMappingURL=discovery.js.map
@@ -17,4 +17,3 @@ export { createSkillConverter, } from './converter.js';
17
17
  export { createSkillDiscoveryEngine, } from './discovery.js';
18
18
  export { createQualityAssessor, } from './quality.js';
19
19
  export { createSkillRegistry, } from './registry.js';
20
- //# sourceMappingURL=index.js.map
@@ -143,4 +143,3 @@ export class QualityAssessor {
143
143
  export function createQualityAssessor() {
144
144
  return new QualityAssessor();
145
145
  }
146
- //# sourceMappingURL=quality.js.map
@@ -115,4 +115,3 @@ export class SkillRegistry {
115
115
  export function createSkillRegistry(storageDir) {
116
116
  return new SkillRegistry(storageDir);
117
117
  }
118
- //# sourceMappingURL=registry.js.map
@@ -6,4 +6,3 @@
6
6
  * @module @jclaw/core/skill-sh/types
7
7
  */
8
8
  export {};
9
- //# sourceMappingURL=types.js.map
package/dist/types.js CHANGED
@@ -7,4 +7,3 @@
7
7
  * @module @jclaw/core/types
8
8
  */
9
9
  export {};
10
- //# sourceMappingURL=types.js.map
package/package.json CHANGED
@@ -1,41 +1,22 @@
1
1
  {
2
2
  "name": "@jclaw/core",
3
- "version": "0.1.0",
4
- "description": "Universal self-evolving Agent framework with persistent memory and AutoSkill",
3
+ "version": "0.4.0",
4
+ "description": "Universal self-evolving Agent framework with flexible LLM config",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
8
+ "bin": {
9
+ "jclaw": "./dist/cli/jclaw.js"
10
+ },
8
11
  "exports": {
9
12
  ".": {
10
13
  "types": "./dist/index.d.ts",
11
14
  "import": "./dist/index.js"
12
15
  }
13
16
  },
14
- "files": [
15
- "dist",
16
- "README.md"
17
- ],
18
- "scripts": {
19
- "build": "tsc"
20
- },
21
- "keywords": [
22
- "ai",
23
- "agent",
24
- "self-evolving",
25
- "typescript",
26
- "llm"
27
- ],
17
+ "files": ["dist", "README.md"],
18
+ "scripts": {"build": "tsc"},
19
+ "keywords": ["ai", "agent", "cli", "llm"],
28
20
  "author": "JClaw Team",
29
- "license": "MIT",
30
- "repository": {
31
- "type": "git",
32
- "url": "git+https://github.com/jabing/jclaw.git"
33
- },
34
- "bugs": {
35
- "url": "https://github.com/jabing/jclaw/issues"
36
- },
37
- "homepage": "https://github.com/jabing/jclaw#readme",
38
- "engines": {
39
- "node": ">=18.0.0"
40
- }
21
+ "license": "MIT"
41
22
  }