@jclaw/core 0.1.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.
- package/dist/auto-skill/generator.d.ts +30 -0
- package/dist/auto-skill/generator.d.ts.map +1 -0
- package/dist/auto-skill/generator.js +262 -0
- package/dist/auto-skill/generator.js.map +1 -0
- package/dist/auto-skill/index.d.ts +11 -0
- package/dist/auto-skill/index.d.ts.map +1 -0
- package/dist/auto-skill/index.js +10 -0
- package/dist/auto-skill/index.js.map +1 -0
- package/dist/auto-skill/installer.d.ts +44 -0
- package/dist/auto-skill/installer.d.ts.map +1 -0
- package/dist/auto-skill/installer.js +201 -0
- package/dist/auto-skill/installer.js.map +1 -0
- package/dist/auto-skill/types.d.ts +179 -0
- package/dist/auto-skill/types.d.ts.map +1 -0
- package/dist/auto-skill/types.js +9 -0
- package/dist/auto-skill/types.js.map +1 -0
- package/dist/cli/commands/config.d.ts +16 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +119 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/exec.d.ts +12 -0
- package/dist/cli/commands/exec.d.ts.map +1 -0
- package/dist/cli/commands/exec.js +41 -0
- package/dist/cli/commands/exec.js.map +1 -0
- package/dist/cli/index.d.ts +10 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +91 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/run.d.ts +9 -0
- package/dist/cli/run.d.ts.map +1 -0
- package/dist/cli/run.js +13 -0
- package/dist/cli/run.js.map +1 -0
- package/dist/context/index.d.ts +6 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +12 -0
- package/dist/context/index.js.map +1 -0
- package/dist/context/memsearch-client.d.ts +34 -0
- package/dist/context/memsearch-client.d.ts.map +1 -0
- package/dist/context/memsearch-client.js +182 -0
- package/dist/context/memsearch-client.js.map +1 -0
- package/dist/context/mock-client.d.ts +116 -0
- package/dist/context/mock-client.d.ts.map +1 -0
- package/dist/context/mock-client.js +150 -0
- package/dist/context/mock-client.js.map +1 -0
- package/dist/context/openviking-client.d.ts +87 -0
- package/dist/context/openviking-client.d.ts.map +1 -0
- package/dist/context/openviking-client.js +166 -0
- package/dist/context/openviking-client.js.map +1 -0
- package/dist/context/openviking-mcp-client.d.ts +29 -0
- package/dist/context/openviking-mcp-client.d.ts.map +1 -0
- package/dist/context/openviking-mcp-client.js +81 -0
- package/dist/context/openviking-mcp-client.js.map +1 -0
- package/dist/context/simple-memory-client.d.ts +43 -0
- package/dist/context/simple-memory-client.d.ts.map +1 -0
- package/dist/context/simple-memory-client.enhanced.d.ts +39 -0
- package/dist/context/simple-memory-client.enhanced.d.ts.map +1 -0
- package/dist/context/simple-memory-client.enhanced.js +207 -0
- package/dist/context/simple-memory-client.enhanced.js.map +1 -0
- package/dist/context/simple-memory-client.js +270 -0
- package/dist/context/simple-memory-client.js.map +1 -0
- package/dist/evolution/continuous.d.ts +127 -0
- package/dist/evolution/continuous.d.ts.map +1 -0
- package/dist/evolution/continuous.js +238 -0
- package/dist/evolution/continuous.js.map +1 -0
- package/dist/evolution/engine.d.ts +97 -0
- package/dist/evolution/engine.d.ts.map +1 -0
- package/dist/evolution/engine.js +187 -0
- package/dist/evolution/engine.js.map +1 -0
- package/dist/evolution/evolver-adapter.d.ts +104 -0
- package/dist/evolution/evolver-adapter.d.ts.map +1 -0
- package/dist/evolution/evolver-adapter.js +227 -0
- package/dist/evolution/evolver-adapter.js.map +1 -0
- package/dist/evolution/index.d.ts +9 -0
- package/dist/evolution/index.d.ts.map +1 -0
- package/dist/evolution/index.js +8 -0
- package/dist/evolution/index.js.map +1 -0
- package/dist/evolution/memory.d.ts +106 -0
- package/dist/evolution/memory.d.ts.map +1 -0
- package/dist/evolution/memory.js +232 -0
- package/dist/evolution/memory.js.map +1 -0
- package/dist/evolution/mutation.d.ts +66 -0
- package/dist/evolution/mutation.d.ts.map +1 -0
- package/dist/evolution/mutation.js +139 -0
- package/dist/evolution/mutation.js.map +1 -0
- package/dist/evolution/sandbox.d.ts +96 -0
- package/dist/evolution/sandbox.d.ts.map +1 -0
- package/dist/evolution/sandbox.js +194 -0
- package/dist/evolution/sandbox.js.map +1 -0
- package/dist/evolution/types.d.ts +93 -0
- package/dist/evolution/types.d.ts.map +1 -0
- package/dist/evolution/types.js +9 -0
- package/dist/evolution/types.js.map +1 -0
- package/dist/executor/index.d.ts +10 -0
- package/dist/executor/index.d.ts.map +1 -0
- package/dist/executor/index.js +10 -0
- package/dist/executor/index.js.map +1 -0
- package/dist/executor/interface.d.ts +9 -0
- package/dist/executor/interface.d.ts.map +1 -0
- package/dist/executor/interface.js +9 -0
- package/dist/executor/interface.js.map +1 -0
- package/dist/executor/local.d.ts +36 -0
- package/dist/executor/local.d.ts.map +1 -0
- package/dist/executor/local.js +95 -0
- package/dist/executor/local.js.map +1 -0
- package/dist/extension-system/capability-router.d.ts +106 -0
- package/dist/extension-system/capability-router.d.ts.map +1 -0
- package/dist/extension-system/capability-router.js +167 -0
- package/dist/extension-system/capability-router.js.map +1 -0
- package/dist/extension-system/index.d.ts +11 -0
- package/dist/extension-system/index.d.ts.map +1 -0
- package/dist/extension-system/index.js +11 -0
- package/dist/extension-system/index.js.map +1 -0
- package/dist/extension-system/loader.d.ts +93 -0
- package/dist/extension-system/loader.d.ts.map +1 -0
- package/dist/extension-system/loader.js +245 -0
- package/dist/extension-system/loader.js.map +1 -0
- package/dist/extension-system/registry.d.ts +112 -0
- package/dist/extension-system/registry.d.ts.map +1 -0
- package/dist/extension-system/registry.js +161 -0
- package/dist/extension-system/registry.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/network/client.d.ts +130 -0
- package/dist/network/client.d.ts.map +1 -0
- package/dist/network/client.js +230 -0
- package/dist/network/client.js.map +1 -0
- package/dist/network/index.d.ts +10 -0
- package/dist/network/index.d.ts.map +1 -0
- package/dist/network/index.js +10 -0
- package/dist/network/index.js.map +1 -0
- package/dist/network/protocol.d.ts +159 -0
- package/dist/network/protocol.d.ts.map +1 -0
- package/dist/network/protocol.js +118 -0
- package/dist/network/protocol.js.map +1 -0
- package/dist/runtime/agent.d.ts +124 -0
- package/dist/runtime/agent.d.ts.map +1 -0
- package/dist/runtime/agent.js +286 -0
- package/dist/runtime/agent.js.map +1 -0
- package/dist/runtime/agent_fixed.d.ts +39 -0
- package/dist/runtime/agent_fixed.d.ts.map +1 -0
- package/dist/runtime/agent_fixed.js +193 -0
- package/dist/runtime/agent_fixed.js.map +1 -0
- package/dist/runtime/index.d.ts +11 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +11 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/llm-client.d.ts +108 -0
- package/dist/runtime/llm-client.d.ts.map +1 -0
- package/dist/runtime/llm-client.js +125 -0
- package/dist/runtime/llm-client.js.map +1 -0
- package/dist/runtime/task-executor.d.ts +92 -0
- package/dist/runtime/task-executor.d.ts.map +1 -0
- package/dist/runtime/task-executor.js +203 -0
- package/dist/runtime/task-executor.js.map +1 -0
- package/dist/skill-sh/adapter.d.ts +40 -0
- package/dist/skill-sh/adapter.d.ts.map +1 -0
- package/dist/skill-sh/adapter.js +258 -0
- package/dist/skill-sh/adapter.js.map +1 -0
- package/dist/skill-sh/converter.d.ts +37 -0
- package/dist/skill-sh/converter.d.ts.map +1 -0
- package/dist/skill-sh/converter.js +175 -0
- package/dist/skill-sh/converter.js.map +1 -0
- package/dist/skill-sh/discovery.d.ts +29 -0
- package/dist/skill-sh/discovery.d.ts.map +1 -0
- package/dist/skill-sh/discovery.js +189 -0
- package/dist/skill-sh/discovery.js.map +1 -0
- package/dist/skill-sh/index.d.ts +19 -0
- package/dist/skill-sh/index.d.ts.map +1 -0
- package/dist/skill-sh/index.js +20 -0
- package/dist/skill-sh/index.js.map +1 -0
- package/dist/skill-sh/quality.d.ts +51 -0
- package/dist/skill-sh/quality.d.ts.map +1 -0
- package/dist/skill-sh/quality.js +146 -0
- package/dist/skill-sh/quality.js.map +1 -0
- package/dist/skill-sh/registry.d.ts +58 -0
- package/dist/skill-sh/registry.d.ts.map +1 -0
- package/dist/skill-sh/registry.js +118 -0
- package/dist/skill-sh/registry.js.map +1 -0
- package/dist/skill-sh/types.d.ts +228 -0
- package/dist/skill-sh/types.d.ts.map +1 -0
- package/dist/skill-sh/types.js +9 -0
- package/dist/skill-sh/types.js.map +1 -0
- package/dist/types.d.ts +199 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +10 -0
- package/dist/types.js.map +1 -0
- package/package.json +41 -0
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extension Registry
|
|
3
|
+
*
|
|
4
|
+
* Manages registration and lookup of extensions and their capabilities.
|
|
5
|
+
*
|
|
6
|
+
* @module @jclaw/core/extension-system/registry
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Extension Registry
|
|
10
|
+
*
|
|
11
|
+
* Central registry for managing extensions and their capabilities.
|
|
12
|
+
* Provides O(1) lookup for both extensions and capabilities.
|
|
13
|
+
*/
|
|
14
|
+
export class ExtensionRegistry {
|
|
15
|
+
extensions = new Map();
|
|
16
|
+
capabilities = new Map();
|
|
17
|
+
/**
|
|
18
|
+
* Register an extension and all its capabilities
|
|
19
|
+
*
|
|
20
|
+
* @param extension - The extension to register
|
|
21
|
+
* @throws Error if extension with same name is already registered
|
|
22
|
+
*/
|
|
23
|
+
register(extension) {
|
|
24
|
+
if (this.extensions.has(extension.name)) {
|
|
25
|
+
throw new Error(`Extension "${extension.name}" is already registered`);
|
|
26
|
+
}
|
|
27
|
+
// Register the extension
|
|
28
|
+
this.extensions.set(extension.name, extension);
|
|
29
|
+
// Register all capabilities
|
|
30
|
+
for (const capability of extension.capabilities) {
|
|
31
|
+
if (this.capabilities.has(capability.name)) {
|
|
32
|
+
// Rollback on conflict
|
|
33
|
+
for (const cap of extension.capabilities) {
|
|
34
|
+
if (cap === capability)
|
|
35
|
+
break;
|
|
36
|
+
this.capabilities.delete(cap.name);
|
|
37
|
+
}
|
|
38
|
+
this.extensions.delete(extension.name);
|
|
39
|
+
throw new Error(`Capability "${capability.name}" is already registered by another extension`);
|
|
40
|
+
}
|
|
41
|
+
this.capabilities.set(capability.name, {
|
|
42
|
+
extension: extension.name,
|
|
43
|
+
capability,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Unregister an extension and all its capabilities
|
|
49
|
+
*
|
|
50
|
+
* @param name - Name of the extension to unregister
|
|
51
|
+
*/
|
|
52
|
+
unregister(name) {
|
|
53
|
+
const extension = this.extensions.get(name);
|
|
54
|
+
if (!extension)
|
|
55
|
+
return;
|
|
56
|
+
// Remove all capabilities
|
|
57
|
+
for (const capability of extension.capabilities) {
|
|
58
|
+
this.capabilities.delete(capability.name);
|
|
59
|
+
}
|
|
60
|
+
// Remove the extension
|
|
61
|
+
this.extensions.delete(name);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Get an extension by name
|
|
65
|
+
*
|
|
66
|
+
* @param name - Extension name
|
|
67
|
+
* @returns The extension or undefined if not found
|
|
68
|
+
*/
|
|
69
|
+
get(name) {
|
|
70
|
+
return this.extensions.get(name);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Check if an extension is registered
|
|
74
|
+
*
|
|
75
|
+
* @param name - Extension name
|
|
76
|
+
* @returns True if extension is registered
|
|
77
|
+
*/
|
|
78
|
+
has(name) {
|
|
79
|
+
return this.extensions.has(name);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Get all registered extensions
|
|
83
|
+
*
|
|
84
|
+
* @returns Array of all extensions
|
|
85
|
+
*/
|
|
86
|
+
getAll() {
|
|
87
|
+
return Array.from(this.extensions.values());
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Get all extension names
|
|
91
|
+
*
|
|
92
|
+
* @returns Array of extension names
|
|
93
|
+
*/
|
|
94
|
+
getNames() {
|
|
95
|
+
return Array.from(this.extensions.keys());
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Get a registered capability by name
|
|
99
|
+
*
|
|
100
|
+
* @param name - Capability name
|
|
101
|
+
* @returns The registered capability or undefined if not found
|
|
102
|
+
*/
|
|
103
|
+
getCapability(name) {
|
|
104
|
+
return this.capabilities.get(name);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Check if a capability is registered
|
|
108
|
+
*
|
|
109
|
+
* @param name - Capability name
|
|
110
|
+
* @returns True if capability is registered
|
|
111
|
+
*/
|
|
112
|
+
hasCapability(name) {
|
|
113
|
+
return this.capabilities.has(name);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Get all registered capabilities
|
|
117
|
+
*
|
|
118
|
+
* @returns Array of all registered capabilities
|
|
119
|
+
*/
|
|
120
|
+
getAllCapabilities() {
|
|
121
|
+
return Array.from(this.capabilities.values());
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Get all capability names
|
|
125
|
+
*
|
|
126
|
+
* @returns Array of capability names
|
|
127
|
+
*/
|
|
128
|
+
getCapabilityNames() {
|
|
129
|
+
return Array.from(this.capabilities.keys());
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Get capabilities provided by a specific extension
|
|
133
|
+
*
|
|
134
|
+
* @param extensionName - Name of the extension
|
|
135
|
+
* @returns Array of capabilities or empty array if extension not found
|
|
136
|
+
*/
|
|
137
|
+
getCapabilitiesByExtension(extensionName) {
|
|
138
|
+
const extension = this.extensions.get(extensionName);
|
|
139
|
+
return extension ? [...extension.capabilities] : [];
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Clear all registered extensions and capabilities
|
|
143
|
+
*/
|
|
144
|
+
clear() {
|
|
145
|
+
this.capabilities.clear();
|
|
146
|
+
this.extensions.clear();
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Get the number of registered extensions
|
|
150
|
+
*/
|
|
151
|
+
get size() {
|
|
152
|
+
return this.extensions.size;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Get the number of registered capabilities
|
|
156
|
+
*/
|
|
157
|
+
get capabilityCount() {
|
|
158
|
+
return this.capabilities.size;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/extension-system/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JClaw Core
|
|
3
|
+
*/
|
|
4
|
+
export type { Task, TaskResult, ExecuteOptions, ExecuteResult, Executor, ContextManager, Capability, Extension, AgentRuntime, } from './types.js';
|
|
5
|
+
export { LocalExecutor, createLocalExecutor } from './executor/local.js';
|
|
6
|
+
export { SimpleMemoryClient, type SimpleMemoryConfig, createSimpleMemoryClient, MockClient, } from './context/index.js';
|
|
7
|
+
export { ExtensionRegistry } from './extension-system/registry.js';
|
|
8
|
+
export { ExtensionLoader } from './extension-system/loader.js';
|
|
9
|
+
export { CapabilityRouter } from './extension-system/capability-router.js';
|
|
10
|
+
export { LLMClient, createLLMClient, type LLMClientConfig, type ChatMessage, type LLMResponse, TaskExecutor, createTaskExecutor, type TaskExecutorConfig, JClawAgent, createAgent, type AgentConfig, } from './runtime/index.js';
|
|
11
|
+
export { MutationGenerator, createMutationGenerator, type MutationGeneratorConfig, SandboxValidator, createSandbox, type SandboxConfig, EvolutionEngine, createEvolutionEngine, type EvolutionStrategy, type Mutation, type ValidationResult, type EvolutionConfig, type Gene, type EvolutionResult, EvolverAdapter, createEvolverAdapter, type EvolverAdapterConfig, type EvolverResult, } from './evolution/index.js';
|
|
12
|
+
export { AutoSkillGenerator, createAutoSkillGenerator, AutoSkillInstaller, createAutoSkillInstaller, type AutoSkillConfig, type CapabilityGap, type DiscoveryResult, type GeneratedExtension, type GenerationResult, type GenerationStep, type InstallationResult, type SkillUsageStats, type AutoSkillMetadata, type SkillVersion, } from './auto-skill/index.js';
|
|
13
|
+
export { A2AProtocol, GEPProtocol, type A2AMessage, type A2AMessageType, type GEPPacket, type NodeInfo, type GeneSharePayload, type GeneRequestPayload, type TaskDelegatePayload, EvoMapClient, createEvoMapClient, type EvoMapConfig, type GeneResponse, } from './network/index.js';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,IAAI,EACJ,UAAU,EACV,cAAc,EACd,aAAa,EACb,QAAQ,EACR,cAAc,EACd,UAAU,EACV,SAAS,EACT,YAAY,GACb,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAGzE,OAAO,EACL,kBAAkB,EAClB,KAAK,kBAAkB,EACvB,wBAAwB,EACxB,UAAU,GACX,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAG3E,OAAO,EACL,SAAS,EACT,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,YAAY,EACZ,kBAAkB,EAClB,KAAK,kBAAkB,EACvB,UAAU,EACV,WAAW,EACX,KAAK,WAAW,GACjB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,KAAK,uBAAuB,EAC5B,gBAAgB,EAChB,aAAa,EACb,KAAK,aAAa,EAClB,eAAe,EACf,qBAAqB,EACrB,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,IAAI,EACT,KAAK,eAAe,EACpB,cAAc,EACd,oBAAoB,EACpB,KAAK,oBAAoB,EACzB,KAAK,aAAa,GACnB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,wBAAwB,EACxB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,YAAY,GAClB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,WAAW,EACX,WAAW,EACX,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,YAAY,EACZ,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,oBAAoB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JClaw Core
|
|
3
|
+
*/
|
|
4
|
+
// Executor
|
|
5
|
+
export { LocalExecutor, createLocalExecutor } from './executor/local.js';
|
|
6
|
+
// Context (使用 SimpleMemory,纯 JavaScript,零依赖)
|
|
7
|
+
export { SimpleMemoryClient, createSimpleMemoryClient, MockClient, } from './context/index.js';
|
|
8
|
+
// Extension system
|
|
9
|
+
export { ExtensionRegistry } from './extension-system/registry.js';
|
|
10
|
+
export { ExtensionLoader } from './extension-system/loader.js';
|
|
11
|
+
export { CapabilityRouter } from './extension-system/capability-router.js';
|
|
12
|
+
// Runtime
|
|
13
|
+
export { LLMClient, createLLMClient, TaskExecutor, createTaskExecutor, JClawAgent, createAgent, } from './runtime/index.js';
|
|
14
|
+
// Evolution
|
|
15
|
+
export { MutationGenerator, createMutationGenerator, SandboxValidator, createSandbox, EvolutionEngine, createEvolutionEngine, EvolverAdapter, createEvolverAdapter, } from './evolution/index.js';
|
|
16
|
+
// AutoSkill (自生成技能系统)
|
|
17
|
+
export { AutoSkillGenerator, createAutoSkillGenerator, AutoSkillInstaller, createAutoSkillInstaller, } from './auto-skill/index.js';
|
|
18
|
+
// Network
|
|
19
|
+
export { A2AProtocol, GEPProtocol, EvoMapClient, createEvoMapClient, } from './network/index.js';
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAeH,WAAW;AACX,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,6CAA6C;AAC7C,OAAO,EACL,kBAAkB,EAElB,wBAAwB,EACxB,UAAU,GACX,MAAM,oBAAoB,CAAC;AAE5B,mBAAmB;AACnB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAE3E,UAAU;AACV,OAAO,EACL,SAAS,EACT,eAAe,EAIf,YAAY,EACZ,kBAAkB,EAElB,UAAU,EACV,WAAW,GAEZ,MAAM,oBAAoB,CAAC;AAE5B,YAAY;AACZ,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EAEvB,gBAAgB,EAChB,aAAa,EAEb,eAAe,EACf,qBAAqB,EAOrB,cAAc,EACd,oBAAoB,GAGrB,MAAM,sBAAsB,CAAC;AAE9B,sBAAsB;AACtB,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,wBAAwB,GAWzB,MAAM,uBAAuB,CAAC;AAE/B,UAAU;AACV,OAAO,EACL,WAAW,EACX,WAAW,EAQX,YAAY,EACZ,kBAAkB,GAGnB,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EvoMap Client
|
|
3
|
+
*
|
|
4
|
+
* HTTP client for EvoMap Hub integration.
|
|
5
|
+
*
|
|
6
|
+
* @module @jclaw/core/network/client
|
|
7
|
+
*/
|
|
8
|
+
import type { Gene } from '../evolution/types.js';
|
|
9
|
+
import { type GEPPacket, type NodeInfo, type GeneRequestPayload } from './protocol.js';
|
|
10
|
+
/**
|
|
11
|
+
* Configuration for EvoMap client
|
|
12
|
+
*/
|
|
13
|
+
export interface EvoMapConfig {
|
|
14
|
+
/** EvoMap Hub URL */
|
|
15
|
+
hubUrl: string;
|
|
16
|
+
/** Agent/node ID */
|
|
17
|
+
nodeId: string;
|
|
18
|
+
/** Node name */
|
|
19
|
+
nodeName?: string;
|
|
20
|
+
/** Node version */
|
|
21
|
+
nodeVersion?: string;
|
|
22
|
+
/** Node capabilities */
|
|
23
|
+
capabilities?: string[];
|
|
24
|
+
/** Request timeout in milliseconds (default: 30000) */
|
|
25
|
+
timeout?: number;
|
|
26
|
+
/** Heartbeat interval in milliseconds (default: 60000) */
|
|
27
|
+
heartbeatInterval?: number;
|
|
28
|
+
/** Enable verbose logging */
|
|
29
|
+
verbose?: boolean;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Gene response from EvoMap
|
|
33
|
+
*/
|
|
34
|
+
export interface GeneResponse {
|
|
35
|
+
/** Whether the request was successful */
|
|
36
|
+
success: boolean;
|
|
37
|
+
/** Retrieved genes */
|
|
38
|
+
genes: GEPPacket[];
|
|
39
|
+
/** Total available genes */
|
|
40
|
+
total: number;
|
|
41
|
+
/** Response message */
|
|
42
|
+
message?: string;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* EvoMap Client
|
|
46
|
+
*
|
|
47
|
+
* Connects to EvoMap Hub for gene sharing and discovery.
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```typescript
|
|
51
|
+
* const client = new EvoMapClient({
|
|
52
|
+
* hubUrl: 'https://evomap.ai/api',
|
|
53
|
+
* nodeId: 'my-agent-1',
|
|
54
|
+
* nodeName: 'My Agent'
|
|
55
|
+
* });
|
|
56
|
+
*
|
|
57
|
+
* // Register with the hub
|
|
58
|
+
* await client.register();
|
|
59
|
+
*
|
|
60
|
+
* // Share genes
|
|
61
|
+
* await client.shareGenes(genes);
|
|
62
|
+
*
|
|
63
|
+
* // Request genes
|
|
64
|
+
* const response = await client.requestGenes({ minFitness: 0.8 });
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
export declare class EvoMapClient {
|
|
68
|
+
private readonly config;
|
|
69
|
+
private registered;
|
|
70
|
+
private heartbeatTimer?;
|
|
71
|
+
/**
|
|
72
|
+
* Create a new EvoMap client.
|
|
73
|
+
*
|
|
74
|
+
* @param config - Configuration options
|
|
75
|
+
*/
|
|
76
|
+
constructor(config: EvoMapConfig);
|
|
77
|
+
/**
|
|
78
|
+
* Get node info.
|
|
79
|
+
*/
|
|
80
|
+
get nodeInfo(): NodeInfo;
|
|
81
|
+
/**
|
|
82
|
+
* Register this node with the EvoMap Hub.
|
|
83
|
+
*/
|
|
84
|
+
register(): Promise<void>;
|
|
85
|
+
/**
|
|
86
|
+
* Unregister from the EvoMap Hub.
|
|
87
|
+
*/
|
|
88
|
+
unregister(): Promise<void>;
|
|
89
|
+
/**
|
|
90
|
+
* Share genes with the EvoMap network.
|
|
91
|
+
*
|
|
92
|
+
* @param genes - Genes to share
|
|
93
|
+
*/
|
|
94
|
+
shareGenes(genes: Gene[]): Promise<void>;
|
|
95
|
+
/**
|
|
96
|
+
* Request genes from the EvoMap network.
|
|
97
|
+
*
|
|
98
|
+
* @param request - Gene request parameters
|
|
99
|
+
* @returns Gene response
|
|
100
|
+
*/
|
|
101
|
+
requestGenes(request?: GeneRequestPayload): Promise<GeneResponse>;
|
|
102
|
+
/**
|
|
103
|
+
* Check if the client is registered.
|
|
104
|
+
*/
|
|
105
|
+
isRegistered(): boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Send an HTTP request to the EvoMap Hub.
|
|
108
|
+
*/
|
|
109
|
+
private sendRequest;
|
|
110
|
+
/**
|
|
111
|
+
* Start heartbeat timer.
|
|
112
|
+
*/
|
|
113
|
+
private startHeartbeat;
|
|
114
|
+
/**
|
|
115
|
+
* Stop heartbeat timer.
|
|
116
|
+
*/
|
|
117
|
+
private stopHeartbeat;
|
|
118
|
+
/**
|
|
119
|
+
* Log message if verbose mode is enabled.
|
|
120
|
+
*/
|
|
121
|
+
private log;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Create a new EvoMap client.
|
|
125
|
+
*
|
|
126
|
+
* @param config - Configuration options
|
|
127
|
+
* @returns New EvoMapClient instance
|
|
128
|
+
*/
|
|
129
|
+
export declare function createEvoMapClient(config: EvoMapConfig): EvoMapClient;
|
|
130
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/network/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,kBAAkB,EACxB,MAAM,eAAe,CAAC;AAEvB;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wBAAwB;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,yCAAyC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,sBAAsB;IACtB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAErB;IACF,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,cAAc,CAAC,CAAiC;IAExD;;;;OAIG;gBACS,MAAM,EAAE,YAAY;IAYhC;;OAEG;IACH,IAAI,QAAQ,IAAI,QAAQ,CASvB;IAED;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB/B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBjC;;;;OAIG;IACG,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC9C;;;;;OAKG;IACG,YAAY,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,YAAY,CAAC;IA8C3E;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;YACW,WAAW;IAWzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAYtB;;OAEG;IACH,OAAO,CAAC,aAAa;IAOrB;;OAEG;IACH,OAAO,CAAC,GAAG;CAKZ;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAErE"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EvoMap Client
|
|
3
|
+
*
|
|
4
|
+
* HTTP client for EvoMap Hub integration.
|
|
5
|
+
*
|
|
6
|
+
* @module @jclaw/core/network/client
|
|
7
|
+
*/
|
|
8
|
+
import { A2AProtocol, GEPProtocol, } from './protocol.js';
|
|
9
|
+
/**
|
|
10
|
+
* EvoMap Client
|
|
11
|
+
*
|
|
12
|
+
* Connects to EvoMap Hub for gene sharing and discovery.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* const client = new EvoMapClient({
|
|
17
|
+
* hubUrl: 'https://evomap.ai/api',
|
|
18
|
+
* nodeId: 'my-agent-1',
|
|
19
|
+
* nodeName: 'My Agent'
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* // Register with the hub
|
|
23
|
+
* await client.register();
|
|
24
|
+
*
|
|
25
|
+
* // Share genes
|
|
26
|
+
* await client.shareGenes(genes);
|
|
27
|
+
*
|
|
28
|
+
* // Request genes
|
|
29
|
+
* const response = await client.requestGenes({ minFitness: 0.8 });
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export class EvoMapClient {
|
|
33
|
+
config;
|
|
34
|
+
registered = false;
|
|
35
|
+
heartbeatTimer;
|
|
36
|
+
/**
|
|
37
|
+
* Create a new EvoMap client.
|
|
38
|
+
*
|
|
39
|
+
* @param config - Configuration options
|
|
40
|
+
*/
|
|
41
|
+
constructor(config) {
|
|
42
|
+
this.config = {
|
|
43
|
+
nodeName: 'JClaw-Agent',
|
|
44
|
+
nodeVersion: '0.1.0',
|
|
45
|
+
capabilities: [],
|
|
46
|
+
timeout: 30000,
|
|
47
|
+
heartbeatInterval: 60000,
|
|
48
|
+
verbose: false,
|
|
49
|
+
...config,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Get node info.
|
|
54
|
+
*/
|
|
55
|
+
get nodeInfo() {
|
|
56
|
+
return {
|
|
57
|
+
id: this.config.nodeId,
|
|
58
|
+
name: this.config.nodeName,
|
|
59
|
+
version: this.config.nodeVersion,
|
|
60
|
+
capabilities: this.config.capabilities,
|
|
61
|
+
endpoint: '', // Would be set for server mode
|
|
62
|
+
lastSeen: Date.now(),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Register this node with the EvoMap Hub.
|
|
67
|
+
*/
|
|
68
|
+
async register() {
|
|
69
|
+
const message = A2AProtocol.createGreeting(this.config.nodeId, 'hub', this.nodeInfo);
|
|
70
|
+
try {
|
|
71
|
+
const response = await this.sendRequest('/register', message);
|
|
72
|
+
if (response.ok) {
|
|
73
|
+
this.registered = true;
|
|
74
|
+
this.startHeartbeat();
|
|
75
|
+
this.log('Registered with EvoMap Hub');
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
throw new Error(`Registration failed: ${response.status}`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
83
|
+
throw new Error(`Failed to register with EvoMap Hub: ${message}`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Unregister from the EvoMap Hub.
|
|
88
|
+
*/
|
|
89
|
+
async unregister() {
|
|
90
|
+
if (!this.registered) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
this.stopHeartbeat();
|
|
94
|
+
const message = A2AProtocol.createMessage('goodbye', this.config.nodeId, 'hub', { reason: 'shutdown' });
|
|
95
|
+
try {
|
|
96
|
+
await this.sendRequest('/unregister', message);
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
// Ignore errors during unregister
|
|
100
|
+
}
|
|
101
|
+
this.registered = false;
|
|
102
|
+
this.log('Unregistered from EvoMap Hub');
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Share genes with the EvoMap network.
|
|
106
|
+
*
|
|
107
|
+
* @param genes - Genes to share
|
|
108
|
+
*/
|
|
109
|
+
async shareGenes(genes) {
|
|
110
|
+
if (!this.registered) {
|
|
111
|
+
throw new Error('Not registered with EvoMap Hub');
|
|
112
|
+
}
|
|
113
|
+
const packets = genes.map((gene) => GEPProtocol.createPacket(gene.id, gene.type, gene.content, {
|
|
114
|
+
fitness: gene.fitness,
|
|
115
|
+
generation: gene.generation,
|
|
116
|
+
parents: gene.parents,
|
|
117
|
+
}));
|
|
118
|
+
const message = A2AProtocol.createGeneShare(this.config.nodeId, 'hub', packets, false);
|
|
119
|
+
try {
|
|
120
|
+
const response = await this.sendRequest('/genes/share', message);
|
|
121
|
+
if (!response.ok) {
|
|
122
|
+
throw new Error(`Share failed: ${response.status}`);
|
|
123
|
+
}
|
|
124
|
+
this.log(`Shared ${genes.length} genes`);
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
128
|
+
throw new Error(`Failed to share genes: ${message}`);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Request genes from the EvoMap network.
|
|
133
|
+
*
|
|
134
|
+
* @param request - Gene request parameters
|
|
135
|
+
* @returns Gene response
|
|
136
|
+
*/
|
|
137
|
+
async requestGenes(request = {}) {
|
|
138
|
+
if (!this.registered) {
|
|
139
|
+
throw new Error('Not registered with EvoMap Hub');
|
|
140
|
+
}
|
|
141
|
+
const message = A2AProtocol.createGeneRequest(this.config.nodeId, 'hub', request);
|
|
142
|
+
try {
|
|
143
|
+
const response = await this.sendRequest('/genes/request', message);
|
|
144
|
+
if (!response.ok) {
|
|
145
|
+
return {
|
|
146
|
+
success: false,
|
|
147
|
+
genes: [],
|
|
148
|
+
total: 0,
|
|
149
|
+
message: `Request failed: ${response.status}`,
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
const data = (await response.json());
|
|
153
|
+
return {
|
|
154
|
+
success: true,
|
|
155
|
+
genes: data.genes ?? [],
|
|
156
|
+
total: data.total ?? 0,
|
|
157
|
+
message: data.message,
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
162
|
+
return {
|
|
163
|
+
success: false,
|
|
164
|
+
genes: [],
|
|
165
|
+
total: 0,
|
|
166
|
+
message,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Check if the client is registered.
|
|
172
|
+
*/
|
|
173
|
+
isRegistered() {
|
|
174
|
+
return this.registered;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Send an HTTP request to the EvoMap Hub.
|
|
178
|
+
*/
|
|
179
|
+
async sendRequest(path, message) {
|
|
180
|
+
const url = `${this.config.hubUrl}${path}`;
|
|
181
|
+
return fetch(url, {
|
|
182
|
+
method: 'POST',
|
|
183
|
+
headers: { 'Content-Type': 'application/json' },
|
|
184
|
+
body: JSON.stringify(message),
|
|
185
|
+
signal: AbortSignal.timeout(this.config.timeout),
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Start heartbeat timer.
|
|
190
|
+
*/
|
|
191
|
+
startHeartbeat() {
|
|
192
|
+
this.heartbeatTimer = setInterval(async () => {
|
|
193
|
+
try {
|
|
194
|
+
const message = A2AProtocol.createHeartbeat(this.config.nodeId, 'hub');
|
|
195
|
+
await this.sendRequest('/heartbeat', message);
|
|
196
|
+
this.log('Heartbeat sent');
|
|
197
|
+
}
|
|
198
|
+
catch (error) {
|
|
199
|
+
this.log(`Heartbeat failed: ${error}`);
|
|
200
|
+
}
|
|
201
|
+
}, this.config.heartbeatInterval);
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Stop heartbeat timer.
|
|
205
|
+
*/
|
|
206
|
+
stopHeartbeat() {
|
|
207
|
+
if (this.heartbeatTimer) {
|
|
208
|
+
clearInterval(this.heartbeatTimer);
|
|
209
|
+
this.heartbeatTimer = undefined;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Log message if verbose mode is enabled.
|
|
214
|
+
*/
|
|
215
|
+
log(message) {
|
|
216
|
+
if (this.config.verbose) {
|
|
217
|
+
console.log(`[EvoMapClient] ${message}`);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Create a new EvoMap client.
|
|
223
|
+
*
|
|
224
|
+
* @param config - Configuration options
|
|
225
|
+
* @returns New EvoMapClient instance
|
|
226
|
+
*/
|
|
227
|
+
export function createEvoMapClient(config) {
|
|
228
|
+
return new EvoMapClient(config);
|
|
229
|
+
}
|
|
230
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/network/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Network Module
|
|
3
|
+
*
|
|
4
|
+
* Provides networking capabilities for EvoMap integration.
|
|
5
|
+
*
|
|
6
|
+
* @module @jclaw/core/network
|
|
7
|
+
*/
|
|
8
|
+
export { A2AProtocol, GEPProtocol, type A2AMessage, type A2AMessageType, type GEPPacket, type NodeInfo, type GeneSharePayload, type GeneRequestPayload, type TaskDelegatePayload, } from './protocol.js';
|
|
9
|
+
export { EvoMapClient, createEvoMapClient, type EvoMapConfig, type GeneResponse } from './client.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/network/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,WAAW,EACX,WAAW,EACX,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GACzB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Network Module
|
|
3
|
+
*
|
|
4
|
+
* Provides networking capabilities for EvoMap integration.
|
|
5
|
+
*
|
|
6
|
+
* @module @jclaw/core/network
|
|
7
|
+
*/
|
|
8
|
+
export { A2AProtocol, GEPProtocol, } from './protocol.js';
|
|
9
|
+
export { EvoMapClient, createEvoMapClient } from './client.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/network/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,WAAW,EACX,WAAW,GAQZ,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAwC,MAAM,aAAa,CAAC"}
|