@moltium/world-cli 0.1.19 → 0.1.20

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 (2) hide show
  1. package/dist/index.js +37 -1
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -32,6 +32,19 @@ function generateWorldConfig(options) {
32
32
  tickIntervalMs: 5e3,
33
33
  autoStart: false
34
34
  },
35
+ orchestration: {
36
+ broadcastOnTick: true,
37
+ tickTimeout: 1e4
38
+ },
39
+ actions: [
40
+ {
41
+ name: "chat",
42
+ description: "Send a message to other agents in the world",
43
+ parameters: {
44
+ message: { type: "string", required: true, description: "The message to send" }
45
+ }
46
+ }
47
+ ],
35
48
  persistence: {
36
49
  type: options.persistenceType,
37
50
  ...options.persistenceType === "sqlite" && {
@@ -161,16 +174,37 @@ DB_PATH=${options.dbConfig?.path || "./data/leveldb"}
161
174
  function generateWorldTemplate(config3) {
162
175
  const files = {};
163
176
  files["src/index.ts"] = `import { World, startWorldServer } from '@moltium/world-core';
164
- import type { WorldConfig } from '@moltium/world-core';
177
+ import type { WorldConfig, WorldAction } from '@moltium/world-core';
165
178
  import dotenv from 'dotenv';
166
179
  import fs from 'fs';
167
180
 
168
181
  dotenv.config();
169
182
 
183
+ /**
184
+ * Define custom world actions that agents can execute during ticks.
185
+ * These are sent to agents as available options via A2A protocol.
186
+ * Add more actions here to extend what agents can do in your world.
187
+ */
188
+ const customActions: WorldAction[] = [
189
+ // Example: uncomment and customize
190
+ // {
191
+ // name: 'trade',
192
+ // description: 'Trade items with another agent',
193
+ // parameters: {
194
+ // targetAgent: { type: 'string', required: true, description: 'Agent to trade with' },
195
+ // item: { type: 'string', required: true, description: 'Item to trade' },
196
+ // amount: { type: 'number', required: true, description: 'Amount to trade' },
197
+ // },
198
+ // },
199
+ ];
200
+
170
201
  async function main() {
171
202
  // Load base configuration from JSON
172
203
  const config = JSON.parse(fs.readFileSync('./world.config.json', 'utf-8')) as WorldConfig;
173
204
 
205
+ // Add custom actions to config (merged with any defined in world.config.json)
206
+ config.actions = [...(config.actions || []), ...customActions];
207
+
174
208
  // Merge settings from environment variables
175
209
  if (config.blockchain) {
176
210
  if (process.env.MONAD_RPC_URL) config.blockchain.rpcUrl = process.env.MONAD_RPC_URL;
@@ -227,6 +261,8 @@ async function main() {
227
261
  console.log(\`\u{1F30D} \${config.name} is running!\`);
228
262
  console.log(\` Server: http://\${config.server?.host ?? 'localhost'}:\${config.server?.port ?? 3000}\`);
229
263
  console.log(\` Agents: \${world.getAgents().length}/\${config.admission?.maxAgents ?? 10}\`);
264
+ console.log(\` Actions: \${config.actions?.length ?? 0} world actions registered\`);
265
+ console.log(\` Orchestration: \${config.orchestration?.broadcastOnTick !== false ? 'enabled' : 'disabled'}\`);
230
266
 
231
267
  // Graceful shutdown
232
268
  process.on('SIGINT', async () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moltium/world-cli",
3
- "version": "0.1.19",
3
+ "version": "0.1.20",
4
4
  "description": "CLI tool for creating and managing Moltium World SDK projects",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -32,7 +32,7 @@
32
32
  "access": "public"
33
33
  },
34
34
  "dependencies": {
35
- "@moltium/world-core": "^0.1.0",
35
+ "@moltium/world-core": "^0.1.20",
36
36
  "chalk": "^5.3.0",
37
37
  "commander": "^12.1.0",
38
38
  "dotenv": "^16.4.0",