agentlaunch-templates 0.4.2 → 0.4.4

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 (51) hide show
  1. package/dist/__tests__/build.test.d.ts +1 -1
  2. package/dist/__tests__/build.test.js +5 -5
  3. package/dist/__tests__/build.test.js.map +1 -1
  4. package/dist/__tests__/consumer-commerce.test.d.ts +11 -0
  5. package/dist/__tests__/consumer-commerce.test.d.ts.map +1 -0
  6. package/dist/__tests__/consumer-commerce.test.js +118 -0
  7. package/dist/__tests__/consumer-commerce.test.js.map +1 -0
  8. package/dist/__tests__/swarm-starter-integration.test.d.ts +12 -0
  9. package/dist/__tests__/swarm-starter-integration.test.d.ts.map +1 -0
  10. package/dist/__tests__/swarm-starter-integration.test.js +143 -0
  11. package/dist/__tests__/swarm-starter-integration.test.js.map +1 -0
  12. package/dist/__tests__/swarm-starter.test.d.ts +16 -0
  13. package/dist/__tests__/swarm-starter.test.d.ts.map +1 -0
  14. package/dist/__tests__/swarm-starter.test.js +310 -0
  15. package/dist/__tests__/swarm-starter.test.js.map +1 -0
  16. package/dist/claude-context.d.ts +1 -1
  17. package/dist/claude-context.d.ts.map +1 -1
  18. package/dist/claude-context.js +55 -49
  19. package/dist/claude-context.js.map +1 -1
  20. package/dist/index.d.ts +2 -0
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +1 -0
  23. package/dist/index.js.map +1 -1
  24. package/dist/people.d.ts +108 -0
  25. package/dist/people.d.ts.map +1 -0
  26. package/dist/people.js +563 -0
  27. package/dist/people.js.map +1 -0
  28. package/dist/presets.d.ts +13 -13
  29. package/dist/presets.d.ts.map +1 -1
  30. package/dist/presets.js +331 -96
  31. package/dist/presets.js.map +1 -1
  32. package/dist/registry.d.ts +3 -8
  33. package/dist/registry.d.ts.map +1 -1
  34. package/dist/registry.js +8 -28
  35. package/dist/registry.js.map +1 -1
  36. package/dist/templates/chat-memory.d.ts +5 -14
  37. package/dist/templates/chat-memory.d.ts.map +1 -1
  38. package/dist/templates/chat-memory.js +142 -220
  39. package/dist/templates/chat-memory.js.map +1 -1
  40. package/dist/templates/consumer-commerce.d.ts +14 -0
  41. package/dist/templates/consumer-commerce.d.ts.map +1 -0
  42. package/dist/templates/consumer-commerce.js +439 -0
  43. package/dist/templates/consumer-commerce.js.map +1 -0
  44. package/dist/templates/genesis.d.ts.map +1 -1
  45. package/dist/templates/genesis.js +10 -0
  46. package/dist/templates/genesis.js.map +1 -1
  47. package/dist/templates/swarm-starter.d.ts +26 -0
  48. package/dist/templates/swarm-starter.d.ts.map +1 -0
  49. package/dist/templates/swarm-starter.js +1421 -0
  50. package/dist/templates/swarm-starter.js.map +1 -0
  51. package/package.json +3 -2
@@ -0,0 +1,310 @@
1
+ /**
2
+ * Tests for Swarm-starter template and Presets system — TST-01
3
+ *
4
+ * Verifies:
5
+ * - Swarm-starter template generates valid output with basic variables
6
+ * - All 7 presets generate valid code via generateFromTemplate("swarm-starter", ...)
7
+ * - Variable substitution replaces all expected placeholders
8
+ * - Generated code contains required markers and imports
9
+ * - Commerce layers (PaymentService, PricingTable, TierManager) present
10
+ * - Strict mode throws on missing required variables
11
+ * - Default values are used when only agent_name is provided
12
+ * - getTemplate("swarm-starter") returns the template metadata
13
+ * - listTemplates() includes swarm-starter and it is first in the list
14
+ */
15
+ import { describe, it } from 'node:test';
16
+ import assert from 'node:assert/strict';
17
+ import { generateFromTemplate } from '../generator.js';
18
+ import { getTemplate, listTemplates } from '../registry.js';
19
+ import { getPreset, listPresets } from '../presets.js';
20
+ // ---------------------------------------------------------------------------
21
+ // Constants
22
+ // ---------------------------------------------------------------------------
23
+ const PRESET_NAMES = [
24
+ 'writer',
25
+ 'social',
26
+ 'community',
27
+ 'analytics',
28
+ 'outreach',
29
+ 'ads',
30
+ 'strategy',
31
+ ];
32
+ // ---------------------------------------------------------------------------
33
+ // Swarm-starter template registration
34
+ // ---------------------------------------------------------------------------
35
+ describe('Swarm-starter template — registration', () => {
36
+ it('getTemplate("swarm-starter") returns a valid template object', () => {
37
+ const tpl = getTemplate('swarm-starter');
38
+ assert.ok(tpl, 'swarm-starter template should exist in the registry');
39
+ assert.equal(tpl.name, 'swarm-starter');
40
+ assert.ok(tpl.description, 'template should have a description');
41
+ assert.ok(tpl.category, 'template should have a category');
42
+ assert.ok(Array.isArray(tpl.variables), 'template should have variables array');
43
+ assert.ok(typeof tpl.code === 'string', 'template should have code string');
44
+ });
45
+ it('listTemplates() includes swarm-starter', () => {
46
+ const templates = listTemplates();
47
+ const names = templates.map((t) => t.name);
48
+ assert.ok(names.includes('swarm-starter'), `swarm-starter should be in list: ${names.join(', ')}`);
49
+ });
50
+ it('chat-memory is first in the template list (default)', () => {
51
+ const templates = listTemplates();
52
+ assert.equal(templates[0].name, 'chat-memory', `First template should be chat-memory (default), got: ${templates[0].name}`);
53
+ });
54
+ });
55
+ // ---------------------------------------------------------------------------
56
+ // Basic generation
57
+ // ---------------------------------------------------------------------------
58
+ describe('Swarm-starter template — basic generation', () => {
59
+ it('generates valid output with agent_name', () => {
60
+ const result = generateFromTemplate('swarm-starter', {
61
+ agent_name: 'TestAgent',
62
+ });
63
+ assert.ok(result.code, 'should produce code');
64
+ assert.ok(result.readme, 'should produce readme');
65
+ assert.ok(result.envExample, 'should produce envExample');
66
+ assert.ok(result.claudeMd, 'should produce claudeMd');
67
+ assert.ok(result.claudeSettings, 'should produce claudeSettings');
68
+ assert.ok(result.agentlaunchConfig, 'should produce agentlaunchConfig');
69
+ });
70
+ it('code output is non-empty Python', () => {
71
+ const result = generateFromTemplate('swarm-starter', {
72
+ agent_name: 'TestAgent',
73
+ });
74
+ assert.ok(result.code.length > 100, 'code should be substantial');
75
+ // Python import check
76
+ assert.ok(result.code.includes('from uagents import Agent, Context'), 'code should contain uagents import');
77
+ });
78
+ it('readme mentions the agent name', () => {
79
+ const result = generateFromTemplate('swarm-starter', {
80
+ agent_name: 'MySwarmBot',
81
+ });
82
+ assert.ok(result.readme.includes('MySwarmBot'), 'readme should mention agent_name');
83
+ });
84
+ it('envExample lists required environment variables', () => {
85
+ const result = generateFromTemplate('swarm-starter', {
86
+ agent_name: 'TestAgent',
87
+ });
88
+ assert.ok(result.envExample.includes('AGENTVERSE_API_KEY'), 'envExample should include AGENTVERSE_API_KEY');
89
+ });
90
+ it('agentlaunchConfig references the swarm-starter template', () => {
91
+ const result = generateFromTemplate('swarm-starter', {
92
+ agent_name: 'TestAgent',
93
+ });
94
+ const config = JSON.parse(result.agentlaunchConfig);
95
+ assert.equal(config.template, 'swarm-starter', 'config should reference swarm-starter template');
96
+ });
97
+ });
98
+ // ---------------------------------------------------------------------------
99
+ // Variable substitution
100
+ // ---------------------------------------------------------------------------
101
+ describe('Swarm-starter template — variable substitution', () => {
102
+ it('replaces {{agent_name}} in the code', () => {
103
+ const result = generateFromTemplate('swarm-starter', {
104
+ agent_name: 'AlphaWriter',
105
+ });
106
+ assert.ok(result.code.includes('AlphaWriter'), 'code should contain the agent name');
107
+ assert.ok(!result.code.includes('{{agent_name}}'), 'code should not contain raw {{agent_name}} placeholder');
108
+ });
109
+ it('replaces {{description}} in the code', () => {
110
+ const result = generateFromTemplate('swarm-starter', {
111
+ agent_name: 'TestBot',
112
+ description: 'A custom description for testing',
113
+ });
114
+ assert.ok(result.code.includes('A custom description for testing'), 'code should contain the description');
115
+ });
116
+ it('replaces {{role}} in the code', () => {
117
+ const result = generateFromTemplate('swarm-starter', {
118
+ agent_name: 'TestBot',
119
+ role: 'content-writer',
120
+ });
121
+ assert.ok(result.code.includes('content-writer'), 'code should contain the role');
122
+ });
123
+ it('replaces {{service_price_afet}} in the code', () => {
124
+ const result = generateFromTemplate('swarm-starter', {
125
+ agent_name: 'TestBot',
126
+ service_price_afet: '5000000000000000',
127
+ });
128
+ assert.ok(result.code.includes('5000000000000000'), 'code should contain the service price');
129
+ });
130
+ });
131
+ // ---------------------------------------------------------------------------
132
+ // Required code markers
133
+ // ---------------------------------------------------------------------------
134
+ describe('Swarm-starter template — required code markers', () => {
135
+ it('contains YOUR SWARM LOGIC marker', () => {
136
+ const result = generateFromTemplate('swarm-starter', {
137
+ agent_name: 'TestBot',
138
+ });
139
+ assert.ok(result.code.includes('YOUR SWARM LOGIC'), 'code should contain YOUR SWARM LOGIC marker for customization');
140
+ });
141
+ it('contains required uagents import', () => {
142
+ const result = generateFromTemplate('swarm-starter', {
143
+ agent_name: 'TestBot',
144
+ });
145
+ assert.ok(result.code.includes('from uagents import Agent, Context'), 'code should import Agent and Context from uagents');
146
+ });
147
+ it('contains ChatAcknowledgement handler', () => {
148
+ const result = generateFromTemplate('swarm-starter', {
149
+ agent_name: 'TestBot',
150
+ });
151
+ assert.ok(result.code.includes('ChatAcknowledgement'), 'code should include ChatAcknowledgement handler');
152
+ });
153
+ it('contains publish_manifest=True', () => {
154
+ const result = generateFromTemplate('swarm-starter', {
155
+ agent_name: 'TestBot',
156
+ });
157
+ assert.ok(result.code.includes('publish_manifest=True'), 'code should include publish_manifest=True in agent.include()');
158
+ });
159
+ it('uses datetime.now() not datetime.utcnow()', () => {
160
+ const result = generateFromTemplate('swarm-starter', {
161
+ agent_name: 'TestBot',
162
+ });
163
+ // Should use datetime.now()
164
+ assert.ok(result.code.includes('datetime.now()'), 'code should use datetime.now()');
165
+ // Should NOT use the deprecated datetime.utcnow()
166
+ assert.ok(!result.code.includes('datetime.utcnow()'), 'code should not use deprecated datetime.utcnow()');
167
+ });
168
+ });
169
+ // ---------------------------------------------------------------------------
170
+ // Commerce layers
171
+ // ---------------------------------------------------------------------------
172
+ describe('Swarm-starter template — commerce layers', () => {
173
+ it('contains PaymentService', () => {
174
+ const result = generateFromTemplate('swarm-starter', {
175
+ agent_name: 'TestBot',
176
+ });
177
+ assert.ok(result.code.includes('PaymentService'), 'code should include PaymentService class');
178
+ });
179
+ it('contains PricingTable', () => {
180
+ const result = generateFromTemplate('swarm-starter', {
181
+ agent_name: 'TestBot',
182
+ });
183
+ assert.ok(result.code.includes('PricingTable'), 'code should include PricingTable class');
184
+ });
185
+ it('contains TierManager', () => {
186
+ const result = generateFromTemplate('swarm-starter', {
187
+ agent_name: 'TestBot',
188
+ });
189
+ assert.ok(result.code.includes('TierManager'), 'code should include TierManager class');
190
+ });
191
+ it('contains RevenueTracker', () => {
192
+ const result = generateFromTemplate('swarm-starter', {
193
+ agent_name: 'TestBot',
194
+ });
195
+ assert.ok(result.code.includes('RevenueTracker'), 'code should include RevenueTracker for GDP tracking');
196
+ });
197
+ });
198
+ // ---------------------------------------------------------------------------
199
+ // Strict mode
200
+ // ---------------------------------------------------------------------------
201
+ describe('Swarm-starter template — strict mode', () => {
202
+ it('throws when strict is true and agent_name is missing', () => {
203
+ assert.throws(() => generateFromTemplate('swarm-starter', {}, { variables: {}, strict: true }), /agent_name/i, 'should throw mentioning agent_name');
204
+ });
205
+ it('does not throw when strict is false and agent_name is missing', () => {
206
+ assert.doesNotThrow(() => generateFromTemplate('swarm-starter', {}, { variables: {}, strict: false }), 'should not throw in non-strict mode');
207
+ });
208
+ it('leaves placeholder when strict is false and required var is missing', () => {
209
+ const result = generateFromTemplate('swarm-starter', {}, { variables: {}, strict: false });
210
+ // The unresolved placeholder should remain
211
+ assert.ok(result.code.includes('{{agent_name}}'), 'unresolved placeholder should remain in non-strict mode');
212
+ });
213
+ });
214
+ // ---------------------------------------------------------------------------
215
+ // Default values
216
+ // ---------------------------------------------------------------------------
217
+ describe('Swarm-starter template — default values', () => {
218
+ it('uses default values when only agent_name is provided', () => {
219
+ const result = generateFromTemplate('swarm-starter', {
220
+ agent_name: 'MinimalAgent',
221
+ });
222
+ // Code should be valid (no raw {{...}} placeholders for defaulted vars)
223
+ // agent_name is provided, all other vars should use defaults
224
+ assert.ok(result.code.includes('MinimalAgent'), 'agent_name should be substituted');
225
+ // The code should not have unresolved required placeholders
226
+ // (description may have a default, role may have a default, etc.)
227
+ // Check that most template variables with defaults are resolved
228
+ const unresolvedCount = (result.code.match(/\{\{\w+\}\}/g) || []).length;
229
+ // Some optional vars without defaults may remain, but required ones with defaults should be resolved
230
+ assert.ok(unresolvedCount === 0, `Should have no unresolved placeholders, found ${unresolvedCount}: ${(result.code.match(/\{\{\w+\}\}/g) || []).join(', ')}`);
231
+ });
232
+ });
233
+ // ---------------------------------------------------------------------------
234
+ // Presets
235
+ // ---------------------------------------------------------------------------
236
+ describe('Presets — listPresets()', () => {
237
+ it('returns an array of presets', () => {
238
+ const presets = listPresets();
239
+ assert.ok(Array.isArray(presets), 'listPresets() should return an array');
240
+ assert.ok(presets.length >= 7, `should have at least 7 presets, got ${presets.length}`);
241
+ });
242
+ it('each preset has required fields', () => {
243
+ const presets = listPresets();
244
+ for (const preset of presets) {
245
+ assert.ok(preset.name, `preset should have name`);
246
+ assert.ok(preset.displayName, `preset ${preset.name} should have displayName`);
247
+ assert.ok(preset.symbol, `preset ${preset.name} should have symbol`);
248
+ assert.ok(preset.description, `preset ${preset.name} should have description`);
249
+ assert.ok(preset.role, `preset ${preset.name} should have role`);
250
+ assert.ok(preset.variables, `preset ${preset.name} should have variables`);
251
+ assert.ok(typeof preset.variables === 'object', `preset ${preset.name} variables should be an object`);
252
+ }
253
+ });
254
+ it('includes all 7 marketing team presets', () => {
255
+ const presets = listPresets();
256
+ const presetNames = presets.map((p) => p.name);
257
+ for (const expected of PRESET_NAMES) {
258
+ assert.ok(presetNames.includes(expected), `should include "${expected}" preset. Available: ${presetNames.join(', ')}`);
259
+ }
260
+ });
261
+ });
262
+ describe('Presets — getPreset()', () => {
263
+ it('returns a preset for each known name', () => {
264
+ for (const name of PRESET_NAMES) {
265
+ const preset = getPreset(name);
266
+ assert.ok(preset, `getPreset("${name}") should return a preset`);
267
+ assert.equal(preset.name, name);
268
+ }
269
+ });
270
+ it('returns undefined for an unknown preset name', () => {
271
+ const preset = getPreset('nonexistent-preset-xyz');
272
+ assert.equal(preset, undefined, 'unknown preset should return undefined');
273
+ });
274
+ it('writer preset has expected structure', () => {
275
+ const writer = getPreset('writer');
276
+ assert.ok(writer, 'writer preset should exist');
277
+ assert.ok(writer.displayName, 'writer should have displayName');
278
+ assert.ok(writer.symbol, 'writer should have symbol');
279
+ assert.ok(writer.description, 'writer should have description');
280
+ assert.ok(writer.role, 'writer should have role');
281
+ assert.ok(writer.variables.role, 'writer variables should include role');
282
+ });
283
+ });
284
+ // ---------------------------------------------------------------------------
285
+ // All presets generate valid code
286
+ // ---------------------------------------------------------------------------
287
+ describe('Presets — all presets generate valid swarm-starter code', () => {
288
+ for (const presetName of PRESET_NAMES) {
289
+ it(`preset "${presetName}" generates valid code from swarm-starter template`, () => {
290
+ const preset = getPreset(presetName);
291
+ assert.ok(preset, `preset "${presetName}" should exist`);
292
+ const result = generateFromTemplate('swarm-starter', preset.variables);
293
+ // Basic validity checks
294
+ assert.ok(result.code, `${presetName}: should produce code`);
295
+ assert.ok(result.code.length > 100, `${presetName}: code should be substantial`);
296
+ // Should have required imports
297
+ assert.ok(result.code.includes('from uagents import'), `${presetName}: code should have uagents import`);
298
+ // No unresolved placeholders
299
+ const unresolved = result.code.match(/\{\{\w+\}\}/g) || [];
300
+ assert.equal(unresolved.length, 0, `${presetName}: should have no unresolved placeholders, found: ${unresolved.join(', ')}`);
301
+ // Should produce all expected files
302
+ assert.ok(result.readme, `${presetName}: should produce readme`);
303
+ assert.ok(result.envExample, `${presetName}: should produce envExample`);
304
+ assert.ok(result.claudeMd, `${presetName}: should produce claudeMd`);
305
+ assert.ok(result.claudeSettings, `${presetName}: should produce claudeSettings`);
306
+ assert.ok(result.agentlaunchConfig, `${presetName}: should produce agentlaunchConfig`);
307
+ });
308
+ }
309
+ });
310
+ //# sourceMappingURL=swarm-starter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swarm-starter.test.js","sourceRoot":"","sources":["../../src/__tests__/swarm-starter.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAExC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEvD,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,YAAY,GAAG;IACnB,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,WAAW;IACX,UAAU;IACV,KAAK;IACL,UAAU;CACX,CAAC;AAEF,8EAA8E;AAC9E,sCAAsC;AACtC,8EAA8E;AAE9E,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;IACrD,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,GAAG,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC;QACzC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,qDAAqD,CAAC,CAAC;QACtE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QACxC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,oCAAoC,CAAC,CAAC;QACjE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,iCAAiC,CAAC,CAAC;QAC3D,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,sCAAsC,CAAC,CAAC;QAChF,MAAM,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,kCAAkC,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,oCAAoC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;QAClC,MAAM,CAAC,KAAK,CACV,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EACjB,aAAa,EACb,wDAAwD,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAC5E,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,QAAQ,CAAC,2CAA2C,EAAE,GAAG,EAAE;IACzD,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,MAAM,GAAG,oBAAoB,CAAC,eAAe,EAAE;YACnD,UAAU,EAAE,WAAW;SACxB,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;QAC9C,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;QAClD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAC;QAC1D,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CAAC;QACtD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,+BAA+B,CAAC,CAAC;QAClE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,iBAAiB,EAAE,kCAAkC,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,MAAM,GAAG,oBAAoB,CAAC,eAAe,EAAE;YACnD,UAAU,EAAE,WAAW;SACxB,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,4BAA4B,CAAC,CAAC;QAClE,sBAAsB;QACtB,MAAM,CAAC,EAAE,CACP,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,oCAAoC,CAAC,EAC1D,oCAAoC,CACrC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,MAAM,GAAG,oBAAoB,CAAC,eAAe,EAAE;YACnD,UAAU,EAAE,YAAY;SACzB,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CACP,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EACpC,kCAAkC,CACnC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,MAAM,GAAG,oBAAoB,CAAC,eAAe,EAAE;YACnD,UAAU,EAAE,WAAW;SACxB,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CACP,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAChD,8CAA8C,CAC/C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,MAAM,GAAG,oBAAoB,CAAC,eAAe,EAAE;YACnD,UAAU,EAAE,WAAW;SACxB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACpD,MAAM,CAAC,KAAK,CACV,MAAM,CAAC,QAAQ,EACf,eAAe,EACf,gDAAgD,CACjD,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,QAAQ,CAAC,gDAAgD,EAAE,GAAG,EAAE;IAC9D,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,MAAM,GAAG,oBAAoB,CAAC,eAAe,EAAE;YACnD,UAAU,EAAE,aAAa;SAC1B,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CACP,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EACnC,oCAAoC,CACrC,CAAC;QACF,MAAM,CAAC,EAAE,CACP,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EACvC,wDAAwD,CACzD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,MAAM,GAAG,oBAAoB,CAAC,eAAe,EAAE;YACnD,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,kCAAkC;SAChD,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CACP,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,kCAAkC,CAAC,EACxD,qCAAqC,CACtC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,MAAM,GAAG,oBAAoB,CAAC,eAAe,EAAE;YACnD,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,gBAAgB;SACvB,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CACP,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EACtC,8BAA8B,CAC/B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,MAAM,GAAG,oBAAoB,CAAC,eAAe,EAAE;YACnD,UAAU,EAAE,SAAS;YACrB,kBAAkB,EAAE,kBAAkB;SACvC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CACP,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EACxC,uCAAuC,CACxC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,QAAQ,CAAC,gDAAgD,EAAE,GAAG,EAAE;IAC9D,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,MAAM,GAAG,oBAAoB,CAAC,eAAe,EAAE;YACnD,UAAU,EAAE,SAAS;SACtB,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CACP,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EACxC,+DAA+D,CAChE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,MAAM,GAAG,oBAAoB,CAAC,eAAe,EAAE;YACnD,UAAU,EAAE,SAAS;SACtB,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CACP,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,oCAAoC,CAAC,EAC1D,mDAAmD,CACpD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,MAAM,GAAG,oBAAoB,CAAC,eAAe,EAAE;YACnD,UAAU,EAAE,SAAS;SACtB,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CACP,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAC3C,iDAAiD,CAClD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,MAAM,GAAG,oBAAoB,CAAC,eAAe,EAAE;YACnD,UAAU,EAAE,SAAS;SACtB,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CACP,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAC7C,8DAA8D,CAC/D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,MAAM,GAAG,oBAAoB,CAAC,eAAe,EAAE;YACnD,UAAU,EAAE,SAAS;SACtB,CAAC,CAAC;QAEH,4BAA4B;QAC5B,MAAM,CAAC,EAAE,CACP,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EACtC,gCAAgC,CACjC,CAAC;QACF,kDAAkD;QAClD,MAAM,CAAC,EAAE,CACP,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAC1C,kDAAkD,CACnD,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;IACxD,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,MAAM,GAAG,oBAAoB,CAAC,eAAe,EAAE;YACnD,UAAU,EAAE,SAAS;SACtB,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CACP,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EACtC,0CAA0C,CAC3C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,MAAM,GAAG,oBAAoB,CAAC,eAAe,EAAE;YACnD,UAAU,EAAE,SAAS;SACtB,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CACP,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EACpC,wCAAwC,CACzC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,MAAM,MAAM,GAAG,oBAAoB,CAAC,eAAe,EAAE;YACnD,UAAU,EAAE,SAAS;SACtB,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CACP,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EACnC,uCAAuC,CACxC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,MAAM,GAAG,oBAAoB,CAAC,eAAe,EAAE;YACnD,UAAU,EAAE,SAAS;SACtB,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CACP,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EACtC,qDAAqD,CACtD,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;IACpD,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,CAAC,MAAM,CACX,GAAG,EAAE,CACH,oBAAoB,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAC5E,aAAa,EACb,oCAAoC,CACrC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,CAAC,YAAY,CACjB,GAAG,EAAE,CACH,oBAAoB,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAC7E,qCAAqC,CACtC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,MAAM,MAAM,GAAG,oBAAoB,CACjC,eAAe,EACf,EAAE,EACF,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CACjC,CAAC;QAEF,2CAA2C;QAC3C,MAAM,CAAC,EAAE,CACP,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EACtC,yDAAyD,CAC1D,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,QAAQ,CAAC,yCAAyC,EAAE,GAAG,EAAE;IACvD,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,MAAM,GAAG,oBAAoB,CAAC,eAAe,EAAE;YACnD,UAAU,EAAE,cAAc;SAC3B,CAAC,CAAC;QAEH,wEAAwE;QACxE,6DAA6D;QAC7D,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,kCAAkC,CAAC,CAAC;QAEpF,4DAA4D;QAC5D,kEAAkE;QAClE,gEAAgE;QAChE,MAAM,eAAe,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACzE,qGAAqG;QACrG,MAAM,CAAC,EAAE,CACP,eAAe,KAAK,CAAC,EACrB,iDAAiD,eAAe,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5H,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;QAC9B,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,sCAAsC,CAAC,CAAC;QAC1E,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,uCAAuC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;QAE9B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAC;YAClD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,MAAM,CAAC,IAAI,0BAA0B,CAAC,CAAC;YAC/E,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,MAAM,CAAC,IAAI,qBAAqB,CAAC,CAAC;YACrE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,MAAM,CAAC,IAAI,0BAA0B,CAAC,CAAC;YAC/E,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,MAAM,CAAC,IAAI,mBAAmB,CAAC,CAAC;YACjE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,MAAM,CAAC,IAAI,wBAAwB,CAAC,CAAC;YAC3E,MAAM,CAAC,EAAE,CACP,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,EACpC,UAAU,MAAM,CAAC,IAAI,gCAAgC,CACtD,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;QAC9B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAEjE,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;YACpC,MAAM,CAAC,EAAE,CACP,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAC9B,mBAAmB,QAAQ,wBAAwB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5E,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,IAAI,2BAA2B,CAAC,CAAC;YACjE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,MAAM,GAAG,SAAS,CAAC,wBAAwB,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,wCAAwC,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;QAChD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,gCAAgC,CAAC,CAAC;QAChE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;QACtD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,gCAAgC,CAAC,CAAC;QAChE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAC;QAClD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,sCAAsC,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,kCAAkC;AAClC,8EAA8E;AAE9E,QAAQ,CAAC,yDAAyD,EAAE,GAAG,EAAE;IACvE,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE,CAAC;QACtC,EAAE,CAAC,WAAW,UAAU,oDAAoD,EAAE,GAAG,EAAE;YACjF,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;YACrC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,UAAU,gBAAgB,CAAC,CAAC;YAEzD,MAAM,MAAM,GAAG,oBAAoB,CAAC,eAAe,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAEvE,wBAAwB;YACxB,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,uBAAuB,CAAC,CAAC;YAC7D,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,GAAG,UAAU,8BAA8B,CAAC,CAAC;YAEjF,+BAA+B;YAC/B,MAAM,CAAC,EAAE,CACP,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAC3C,GAAG,UAAU,mCAAmC,CACjD,CAAC;YAEF,6BAA6B;YAC7B,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAC3D,MAAM,CAAC,KAAK,CACV,UAAU,CAAC,MAAM,EACjB,CAAC,EACD,GAAG,UAAU,oDAAoD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACzF,CAAC;YAEF,oCAAoC;YACpC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,UAAU,yBAAyB,CAAC,CAAC;YACjE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,UAAU,6BAA6B,CAAC,CAAC;YACzE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,UAAU,2BAA2B,CAAC,CAAC;YACrE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,GAAG,UAAU,iCAAiC,CAAC,CAAC;YACjF,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,iBAAiB,EAAE,GAAG,UAAU,oCAAoC,CAAC,CAAC;QACzF,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -11,7 +11,7 @@ export declare const EXAMPLES: Record<string, string>;
11
11
  export declare function buildPackageJson(name: string): string;
12
12
  export declare function buildClaudeMd(name: string): string;
13
13
  export declare const CURSOR_MCP_CONFIG: string;
14
- export declare const CURSOR_RULES = "# AgentLaunch Agent Project\n\nThis is an AgentLaunch agent project. Use the MCP tools to build, deploy, and tokenize.\n\n## Quick Commands\n\n- `npm run deploy` - Deploy to Agentverse\n- `npm run tokenize` - Create token + handoff link\n- `npm run status` - Check status\n\n## Key Files\n\n- `agent.py` - Your agent code (edit this!)\n- `CLAUDE.md` - Full context for Claude\n- `docs/` - SDK, CLI, MCP documentation\n- `examples/` - Working code samples\n\n## Genesis Template (Recommended)\n\nUse the genesis template for agents with a full commerce stack:\n- Payment handling, pricing tables, revenue tracking\n- Token-gated tiers, wallet management\n- 7 presets: oracle, brain, analyst, coordinator, sentinel, launcher, scout\n\n## Platform Constants\n\n- Deploy fee: 120 FET\n- Graduation: 30,000 FET liquidity\n- Trading fee: 2% to protocol treasury (NO creator fee)\n";
14
+ export declare const CURSOR_RULES = "# AgentLaunch Agent Project\n\nThis is an AgentLaunch agent project. Use the MCP tools to build, deploy, and tokenize.\n\n## Quick Commands\n\n- `npm run deploy` - Deploy to Agentverse\n- `npm run tokenize` - Create token + handoff link\n- `npm run status` - Check status\n\n## Key Files\n\n- `agent.py` - Your agent code (edit this!)\n- `CLAUDE.md` - Full context for Claude\n- `docs/` - SDK, CLI, MCP documentation\n- `examples/` - Working code samples\n\n## Swarm-Starter Template (Recommended)\n\nUse the swarm-starter template for agents with a full commerce stack:\n- Payment handling, pricing tables, revenue tracking\n- Token-gated tiers, wallet management\n- 7 presets: writer, social, community, analytics, outreach, ads, strategy\n\n## Platform Constants\n\n- Deploy fee: 120 FET\n- Graduation: 30,000 FET liquidity\n- Trading fee: 2% to protocol treasury (NO creator fee)\n";
15
15
  export interface SwarmAgent {
16
16
  name: string;
17
17
  preset: string;
@@ -1 +1 @@
1
- {"version":3,"file":"claude-context.d.ts","sourceRoot":"","sources":["../src/claude-context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA6RxC,CAAC;AAMF,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAoGzC,CAAC;AAMF,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAkJvC,CAAC;AAMF,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAkQ3C,CAAC;AAMF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAsBrD;AAMD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAgGlD;AAMD,eAAO,MAAM,iBAAiB,QActB,CAAC;AAET,eAAO,MAAM,YAAY,+2BA6BxB,CAAC;AAMF,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAsQ5D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAkB1D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAqB/D;AAMD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CA2CnE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAkCjE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,OAAO,GAAG,MAAM,CAuC3F;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,iBAAiB,EAAE,EAC3B,aAAa,EAAE,OAAO,GACrB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAWxB"}
1
+ {"version":3,"file":"claude-context.d.ts","sourceRoot":"","sources":["../src/claude-context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAkSxC,CAAC;AAMF,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAqGzC,CAAC;AAMF,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAkJvC,CAAC;AAMF,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAkQ3C,CAAC;AAMF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAsBrD;AAMD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAgGlD;AAMD,eAAO,MAAM,iBAAiB,QActB,CAAC;AAET,eAAO,MAAM,YAAY,03BA6BxB,CAAC;AAMF,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAsQ5D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAkB1D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAqB/D;AAMD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CA2CnE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAkCjE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,OAAO,GAAG,MAAM,CAuC3F;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,iBAAiB,EAAE,EAC3B,aAAa,EAAE,OAAO,GACrB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAWxB"}
@@ -143,9 +143,9 @@ seller_proto = Protocol(spec=payment_protocol_spec)
143
143
  buyer_proto = Protocol(spec=payment_protocol_spec)
144
144
  \`\`\`
145
145
 
146
- ## Commerce Layer (Genesis Template)
146
+ ## Commerce Layer (Swarm-Starter Template)
147
147
 
148
- The genesis template includes inline commerce classes:
148
+ The swarm-starter template includes inline commerce classes:
149
149
  - PaymentService: Charge callers, pay other agents
150
150
  - PricingTable: Per-service pricing from ctx.storage
151
151
  - TierManager: Token-gated access (free/premium)
@@ -196,40 +196,45 @@ Buyer sends ChatMessage -> Seller sends RequestPayment -> Buyer sends CommitPaym
196
196
  - Verify tx_hash on-chain before delivering service
197
197
  - Store transaction log in ctx.storage
198
198
 
199
- ## Genesis Template Commerce Layers
199
+ ## Swarm-Starter Template Commerce Layers
200
200
 
201
- The genesis template includes these commerce classes inline:
201
+ The swarm-starter template includes these commerce classes inline:
202
202
  - PaymentService, PricingTable, TierManager
203
203
  - WalletManager, RevenueTracker, SelfAwareMixin, HoldingsManager
204
204
  `,
205
- "genesis-network.md": `# Genesis Network Rules
205
+ "marketing-swarm.md": `# Marketing Team Rules
206
206
 
207
207
  ## The 7 Roles
208
208
 
209
209
  | Role | Token | Services | Price/call |
210
210
  |------|-------|----------|-----------|
211
- | Oracle | $DATA | price_feed, ohlc_history, market_summary | 0.001 FET |
212
- | Brain | $THINK | reason, classify, summarize | 0.01 FET |
213
- | Analyst | $RANK | score_token, evaluate_quality, rank_tokens | 0.005 FET |
214
- | Coordinator | $COORD | route_query, discover_agents | 0.0005 FET |
215
- | Sentinel | $WATCH | monitor, alert, anomaly_report | 0.002 FET |
216
- | Launcher | $BUILD | find_gap, scaffold_agent, deploy_recommendation | 0.02 FET |
217
- | Scout | $FIND | discover_agents, evaluate_agent, tokenize_recommendation | 0.01 FET |
211
+ | Writer | $WRITE | blog_post, tweet_thread, newsletter, ad_copy | 0.01 FET |
212
+ | Social | $POST | post_tweet, schedule_thread, reply_mentions | 0.005 FET |
213
+ | Community | $COMM | moderate, answer_faq, run_poll | 0.002 FET |
214
+ | Analytics | $STATS | engagement_report, audience_insights, content_performance | 0.005 FET |
215
+ | Outreach | $REACH | find_partners, draft_pitch, send_email | 0.01 FET |
216
+ | Ads | $ADS | create_ad, ab_test, campaign_report | 0.01 FET |
217
+ | Strategy | $PLAN | content_calendar, brand_audit, competitor_analysis, campaign_plan | 0.02 FET |
218
218
 
219
219
  ## Build Order
220
220
 
221
- Oracle -> Coordinator -> Analyst -> Sentinel -> Brain -> Launcher -> Scout
221
+ Writer -> Community -> Social -> Analytics -> Outreach -> Ads -> Strategy
222
+
223
+ Writer first (everyone needs content), Community second (standalone engagement).
222
224
 
223
225
  ## Starter Configurations
224
226
 
225
- - Minimum viable: Oracle + Coordinator (2 agents)
226
- - Intelligence: Oracle + Brain + Coordinator (3 agents)
227
- - Monitoring: Oracle + Analyst + Sentinel + Coordinator (4 agents)
228
- - Full Genesis: All 7
227
+ - Content only: Writer (1 agent)
228
+ - Social presence: Writer + Social (2 agents)
229
+ - Community: Writer + Community + Social (3 agents)
230
+ - Analytics stack: Writer + Social + Analytics (3 agents)
231
+ - Full team: All 7
229
232
 
230
233
  ## Cross-Holdings
231
234
 
232
235
  Agents buy each other's tokens for economic alignment.
236
+ - Strategy buys Writer tokens (values its content)
237
+ - Writer buys Analytics tokens (values its performance data)
233
238
 
234
239
  ## Token Lifecycle
235
240
 
@@ -309,25 +314,26 @@ Build, deploy, and tokenize an agent in one guided flow.
309
314
  `,
310
315
  "build-swarm/SKILL.md": `# /build-swarm — Deploy Agent Swarm
311
316
 
312
- Scaffold, deploy, and tokenize a multi-agent swarm with the genesis template.
317
+ Scaffold, deploy, and tokenize a multi-agent swarm with the swarm-starter template.
313
318
 
314
319
  ## Steps
315
320
 
316
321
  1. Ask user what swarm they want (name, roles, purpose)
317
- 2. Show the 7 available presets: oracle, brain, analyst, coordinator, sentinel, launcher, scout
322
+ 2. Show the 7 available presets: writer, social, community, analytics, outreach, ads, strategy
318
323
  3. Let user pick roles (or suggest a starter configuration)
319
324
  4. For each role:
320
- a. Scaffold from genesis template with preset variables
325
+ a. Scaffold from swarm-starter template with preset variables
321
326
  b. Deploy to Agentverse
322
327
  c. Tokenize on AgentLaunch
323
328
  5. Return handoff links for each agent
324
329
 
325
330
  ## Starter Configurations
326
331
 
327
- - Minimum viable: Oracle + Coordinator (2 agents)
328
- - Intelligence: Oracle + Brain + Coordinator (3 agents)
329
- - Monitoring: Oracle + Analyst + Sentinel + Coordinator (4 agents)
330
- - Full Genesis: All 7
332
+ - Content only: Writer (1 agent)
333
+ - Social presence: Writer + Social (2 agents)
334
+ - Community: Writer + Community + Social (3 agents)
335
+ - Analytics stack: Writer + Social + Analytics (3 agents)
336
+ - Full team: All 7
331
337
 
332
338
  ## Platform Fees
333
339
  - Deploy: 120 FET per agent (paid by human signer)
@@ -510,7 +516,7 @@ Already configured in \`.claude/settings.json\`.
510
516
  | Tool | Description |
511
517
  |------|-------------|
512
518
  | \`scaffold_agent\` | Generate agent code from template |
513
- | \`scaffold_genesis\` | Scaffold agent from genesis preset |
519
+ | \`scaffold_swarm\` | Scaffold agent from swarm-starter preset |
514
520
  | \`deploy_to_agentverse\` | Deploy agent |
515
521
  | \`create_token_record\` | Create token |
516
522
  | \`list_tokens\` | Browse tokens |
@@ -528,7 +534,7 @@ Already configured in \`.claude/settings.json\`.
528
534
  - "Deploy my agent to Agentverse"
529
535
  - "Tokenize my agent as $MYTOKEN"
530
536
  - "Show trending tokens"
531
- - "Deploy an Oracle + Brain + Analyst swarm"
537
+ - "Deploy a Writer + Social + Analytics swarm"
532
538
  - "Check my swarm's GDP"
533
539
  `,
534
540
  };
@@ -773,7 +779,7 @@ async function main() {
773
779
  agentAddress: 'agent1q...', // Your Agentverse agent
774
780
  name: 'My Agent',
775
781
  symbol: 'MYAG',
776
- description: 'Does amazing things',
782
+ description: 'AI research assistant for on-chain analysis',
777
783
  chainId: 97, // BSC Testnet
778
784
  });
779
785
 
@@ -833,7 +839,7 @@ To deploy or tokenize, simply run the commands below. The SDK and CLI read from
833
839
 
834
840
  | Template | Description | Use Case |
835
841
  |----------|-------------|----------|
836
- | \`genesis\` | **Full commerce stack** (recommended) | Any agent that charges for services |
842
+ | \`swarm-starter\` | **Full commerce stack** (recommended) | Any agent that charges for services |
837
843
  | \`custom\` | Blank Chat Protocol boilerplate | Start from scratch |
838
844
  | \`price-monitor\` | Watch token prices, send alerts | Monitoring service |
839
845
  | \`trading-bot\` | Buy/sell signal generation | Trading service |
@@ -843,14 +849,14 @@ To deploy or tokenize, simply run the commands below. The SDK and CLI read from
843
849
 
844
850
  ## Agent Swarms
845
851
 
846
- The genesis template generates agents with a complete commerce stack:
852
+ The swarm-starter template generates agents with a complete commerce stack:
847
853
  - PaymentService, PricingTable, TierManager (charge for services)
848
854
  - WalletManager, RevenueTracker (track revenue)
849
855
  - SelfAwareMixin (token price awareness)
850
856
  - HoldingsManager (buy/sell other tokens)
851
857
 
852
858
  ### Presets
853
- 7 pre-configured roles: oracle, brain, analyst, coordinator, sentinel, launcher, scout.
859
+ 7 pre-configured roles: writer, social, community, analytics, outreach, ads, strategy.
854
860
  Use presets for instant configuration.
855
861
 
856
862
  ## Quick Commands
@@ -894,7 +900,7 @@ import {
894
900
  | Tool | Description |
895
901
  |------|-------------|
896
902
  | \`scaffold_agent\` | Generate agent code from template |
897
- | \`scaffold_genesis\` | Scaffold agent from genesis preset |
903
+ | \`scaffold_swarm\` | Scaffold agent from swarm-starter preset |
898
904
  | \`deploy_to_agentverse\` | Deploy agent |
899
905
  | \`create_token_record\` | Create token |
900
906
  | \`list_tokens\` | Browse tokens |
@@ -944,12 +950,12 @@ This is an AgentLaunch agent project. Use the MCP tools to build, deploy, and to
944
950
  - \`docs/\` - SDK, CLI, MCP documentation
945
951
  - \`examples/\` - Working code samples
946
952
 
947
- ## Genesis Template (Recommended)
953
+ ## Swarm-Starter Template (Recommended)
948
954
 
949
- Use the genesis template for agents with a full commerce stack:
955
+ Use the swarm-starter template for agents with a full commerce stack:
950
956
  - Payment handling, pricing tables, revenue tracking
951
957
  - Token-gated tiers, wallet management
952
- - 7 presets: oracle, brain, analyst, coordinator, sentinel, launcher, scout
958
+ - 7 presets: writer, social, community, analytics, outreach, ads, strategy
953
959
 
954
960
  ## Platform Constants
955
961
 
@@ -964,13 +970,13 @@ Use the genesis template for agents with a full commerce stack:
964
970
  export function buildSwarmClaudeMd(ctx) {
965
971
  const isSingleAgent = ctx.agents.length === 1;
966
972
  const presetDescriptions = {
967
- oracle: "Market data provider price feeds, OHLC history, market summaries (0.001 FET/call)",
968
- brain: "LLM reasoning enginequery classification, summarization, deep analysis (0.01 FET/call)",
969
- analyst: "Token scoring engine quality evaluation, risk assessment, ranking (0.005 FET/call)",
970
- coordinator: "Query routerdiscovers agents, routes queries to specialists (0.0005 FET/call)",
971
- sentinel: "Real-time watchdogmonitors tokens, detects anomalies, sends alerts (0.002 FET/call)",
972
- launcher: "Gap finderdiscovers unmet needs, scaffolds new agents (0.02 FET/call)",
973
- scout: "Agent scoutdiscovers promising agents, evaluates quality (0.01 FET/call)",
973
+ writer: "Content creatorblog posts, tweet threads, newsletters, ad copy (0.01 FET/call)",
974
+ social: "Social media managerpost tweets, schedule threads, reply to mentions (0.005 FET/call)",
975
+ community: "Community managermoderate, answer FAQs, run polls (0.002 FET/call)",
976
+ analytics: "Analytics engineengagement reports, audience insights, content performance (0.005 FET/call)",
977
+ outreach: "Partnership outreachfind partners, draft pitches, send emails (0.01 FET/call)",
978
+ ads: "Ad campaign manager create ads, A/B test, campaign reports (0.01 FET/call)",
979
+ strategy: "Marketing strategistcontent calendars, brand audits, competitor analysis, campaign plans (0.02 FET/call)",
974
980
  };
975
981
  if (isSingleAgent) {
976
982
  const agent = ctx.agents[0];
@@ -1025,12 +1031,12 @@ agentlaunch status ${agent.address}
1025
1031
  ## What Makes an Agent Valuable?
1026
1032
 
1027
1033
  Agents earn fees when they provide **real value**:
1028
- - **Data providers** (Oracle): Sell accurate, timely market data
1029
- - **AI services** (Brain): Sell quality reasoning and analysis
1030
- - **Infrastructure** (Coordinator): Become the routing layer other agents depend on
1034
+ - **Content creators** (Writer): Produce blog posts, threads, newsletters that other agents consume
1035
+ - **Data analysts** (Analytics): Sell engagement reports and audience insights
1036
+ - **Strategists** (Strategy): Become the planning layer other agents depend on
1031
1037
 
1032
1038
  The more agents that depend on yours, the more fees you earn. Consider:
1033
- 1. What unique data or capability do you have?
1039
+ 1. What unique content or capability do you have?
1034
1040
  2. Who would pay for it?
1035
1041
  3. How can you make other agents need your service?
1036
1042
 
@@ -1155,7 +1161,7 @@ You'll receive a handoff link. Share it with someone who has a wallet to deploy
1155
1161
  ### 3. Customize agent behavior
1156
1162
  Edit the code in \`agents/<role>.py\` and redeploy:
1157
1163
  \`\`\`bash
1158
- agentlaunch deploy --code agents/oracle.py --address ${ctx.agents.find((a) => a.preset === "oracle")?.address || "<oracle-address>"}
1164
+ agentlaunch deploy --code agents/writer.py --address ${ctx.agents.find((a) => a.preset === "writer")?.address || "<writer-address>"}
1159
1165
  \`\`\`
1160
1166
 
1161
1167
  ### 4. Monitor the swarm
@@ -1179,9 +1185,9 @@ agentlaunch list
1179
1185
  ## What Makes a Swarm Valuable?
1180
1186
 
1181
1187
  Swarms earn fees when agents **depend on each other**:
1182
- - **Oracle** sells dataBrain, Analyst, Sentinel buy it
1183
- - **Brain** sells reasoningCoordinator, Launcher buy it
1184
- - **Coordinator** routes queries → Everyone pays routing fees
1188
+ - **Writer** produces contentSocial, Ads, Outreach consume it
1189
+ - **Analytics** sells insightsStrategy, Ads buy them
1190
+ - **Strategy** creates plans → Everyone follows the campaign plan
1185
1191
 
1186
1192
  The more interconnections, the more fees flow. Your agents should:
1187
1193
  1. Provide unique, high-quality services