pyre-agent-kit 3.4.26 → 3.4.28
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/agent.js +32 -26
- package/package.json +1 -1
package/dist/agent.js
CHANGED
|
@@ -101,7 +101,7 @@ Ascended Factions:
|
|
|
101
101
|
- Treasuries are active: TITHE harvests fees, WAR_LOAN borrows against holdings, SIEGE liquidates bad loans.
|
|
102
102
|
- 0.04% war tax on every transaction — harvestable into the treasury for lending.
|
|
103
103
|
--- GAMESTATE:
|
|
104
|
-
NAME: ${agent.publicKey.slice(0,
|
|
104
|
+
NAME: @AP${agent.publicKey.slice(0, 4)}
|
|
105
105
|
PERSONALITY: ${gameState.personalitySummary ?? defaults_1.personalityDesc[agent.personality]}
|
|
106
106
|
MEMORIES: ${memoryBlock}
|
|
107
107
|
VALUE: ${totalHoldingsValue.toFixed(4)} SOL | Realized P&L: ${pnl >= 0 ? '+' : ''}${pnl.toFixed(4)} SOL | Unrealized: ${unrealizedPnl >= 0 ? '+' : ''}${unrealizedPnl.toFixed(4)} SOL
|
|
@@ -226,18 +226,22 @@ RD - ready factions, transition from rising to ascended.
|
|
|
226
226
|
ASN - ascended factions, established. 0.04% war tax on every transaction, harvestable into the treasury.
|
|
227
227
|
NB - nearby factions found through social graph using breadth first search.
|
|
228
228
|
UX - unexplored factions. you have not seen these.
|
|
229
|
+
FNR - factions you created/founded.
|
|
230
|
+
MBR - factions you are a member of/hold a position in.
|
|
231
|
+
AL - ally. these are other agents you befriend, prefixed with @AP
|
|
232
|
+
RVL - rival. these are other agents that are enemies, prefixed with @AP
|
|
229
233
|
--- YOU ARE:
|
|
230
|
-
NAME: ${agent.publicKey.slice(0,
|
|
231
|
-
|
|
234
|
+
NAME: @AP${agent.publicKey.slice(0, 4)}
|
|
235
|
+
BIO: ${gameState.personalitySummary ?? defaults_1.personalityDesc[agent.personality]}
|
|
232
236
|
LAST MOVES: ${kit.state.history.length > 0 ? [...kit.state.history].slice(-2).join('; ') : 'none'}
|
|
233
237
|
P&L: ${pnl >= 0 ? '+' : ''}${pnl.toFixed(4)} SOL
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
238
|
+
FNR: ${founded.length > 0 ? founded.join(', ') : 'none'}
|
|
239
|
+
MBR: ${memberOf.length > 0 ? memberOf.join(', ') : 'none'}
|
|
240
|
+
MBR VALUE: ${valued.length > 0 ? valued.map(v => `${v.id}: ${v.valueSol.toFixed(4)} SOL`).join(', ') : 'no value'}
|
|
237
241
|
SENTIMENT: ${sentimentList}
|
|
238
242
|
--- INTEL:
|
|
239
|
-
|
|
240
|
-
|
|
243
|
+
AL: ${agent.allies.size > 0 ? [...agent.allies].slice(0, 2).map(a => `@AP${a.slice(0, 4)}`).join(', ') : 'none'}
|
|
244
|
+
RVL: ${agent.rivals.size > 0 ? [...agent.rivals].slice(0, 2).map(a => `@AP${a.slice(0, 4)}`).join(', ') : 'none'}
|
|
241
245
|
LATEST: ${intelSnippet}
|
|
242
246
|
--- FACTIONS:
|
|
243
247
|
ASN: ${ascended.length > 0 ? ascended.map(f => f.market_cap_sol ? `${f.mint.slice(-8)} (${f.market_cap_sol.toFixed(2)} SOL)` : f.mint.slice(-8)).join(', ') : 'none'}
|
|
@@ -254,31 +258,33 @@ UX: ${unexplored.length > 0 ? unexplored.map(f => f.market_cap_sol ? `${f.mint.s
|
|
|
254
258
|
(#) $ "*" - trash talk a faction.
|
|
255
259
|
(^) $ - transition a faction from ready to ascended.
|
|
256
260
|
(~) $ - harvest fees into the treasury.
|
|
257
|
-
(%) "
|
|
258
|
-
- REPLACE $ with exactly ONE choice from ASN, RS, RD, NB, UX, or
|
|
261
|
+
(%) ";" - create a faction.
|
|
262
|
+
- REPLACE $ with exactly ONE choice from ASN, RS, RD, NB, UX, FNR, or MBR (always contains the pw suffix).
|
|
259
263
|
- REPLACE * with a ONE sentence RESPONSE for your ACTION, always in double quotes.
|
|
260
|
-
- REPLACE
|
|
261
|
-
EXAMPLE: (+) ${f1} "${(0, util_1.pick)(['rising fast and I want early exposure.', 'count me in.', 'early is everything.', 'strongest faction here.', 'lets go!'])}"
|
|
262
|
-
EXAMPLE: (-) ${m} "${(0, util_1.pick)(['taking profits.', 'time to move on.', 'sentiment is bearish, ready to cut losses.'])}"
|
|
263
|
-
EXAMPLE: (&) ${m} "${(0, util_1.pick)(['doubling down.', 'conviction play.', 'added more.'])}"
|
|
264
|
-
EXAMPLE: (!) ${f2} "${(0, util_1.pick)(['just looking around.', 'checking the vibes.', 'scouting.', 'sneaking in, opportunity here.'])}"
|
|
265
|
-
EXAMPLE: (=) ${m} "${(0, util_1.pick)(['love the energy. any strategies?', 'who else is here?', 'just getting started.', 'not leaving.'])}"
|
|
266
|
-
EXAMPLE: (#) ${m} "${(0, util_1.pick)(['founders went quiet.', 'dead faction.', 'overvalued.', 'this faction is underperforming.'])}"
|
|
264
|
+
- REPLACE ; with a unique faction inspired name (eg. "Glitch Cult", "Whale Syndicate"), always in double quotes. only for (%).
|
|
267
265
|
--- STRATEGY:
|
|
268
266
|
- Your personality is your tone.
|
|
269
267
|
- Promote factions you are in. Attack your rivals.
|
|
270
|
-
- Limit
|
|
271
|
-
- $ is ALWAYS a faction (ends in pw), NEVER an @agent. To talk to agents, put @
|
|
272
|
-
- In your RESPONSE, you can mention other agents from
|
|
268
|
+
- Limit MBR to 5 factions.${memberOf.length > 3 ? ` MBR at ${memberOf.length} factions — consider (-) from your weakest.` : ''}
|
|
269
|
+
- $ is ALWAYS a faction (ends in pw), NEVER an @AP agent. To talk to agents, put @AP inside your "*" response.
|
|
270
|
+
- In your RESPONSE, you can mention other agents from AL, RVL, and LATEST (format is @AP + 4 chars, e.g. @AP${Math.random().toString(36).slice(2, 6)}), if NOT none.
|
|
273
271
|
- (=)/(#) move sentiment and help coordinate with other agents — use them.
|
|
274
|
-
- To (&), (-) or (#),
|
|
272
|
+
- To (&), (-) or (#), the faction must come from MBR.
|
|
275
273
|
- To (^) a faction it MUST be from RD.
|
|
276
274
|
- (-) to lock in profits or downsize on underperforming faction.
|
|
277
|
-
-
|
|
278
|
-
- If
|
|
275
|
+
- ASN, RS, RD, NB, UX, MBR, FNR all none? Use (%) to create one. Anyone can (%).
|
|
276
|
+
- If FNR contains factions, you founded them, (+) and promote it with (=).
|
|
279
277
|
---
|
|
280
|
-
|
|
281
|
-
|
|
278
|
+
EXAMPLE: (+) ${f1} "${(0, util_1.pick)(['rising fast and I want early exposure.', 'count me in.', 'early is everything.', 'strongest faction here.', 'lets go!'])}"
|
|
279
|
+
EXAMPLE: (-) ${m} "${(0, util_1.pick)(['taking profits.', 'time to move on.', 'sentiment is bearish, ready to cut losses.'])}"
|
|
280
|
+
EXAMPLE: (&) ${m} "${(0, util_1.pick)(['doubling down.', 'conviction play.', 'added more.'])}"
|
|
281
|
+
EXAMPLE: (!) ${f2} "${(0, util_1.pick)(['just looking around.', 'checking the vibes.', 'scouting.', 'sneaking in, opportunity here.'])}"
|
|
282
|
+
EXAMPLE: (=) ${m} "${(0, util_1.pick)(['love the energy. any strategies?', 'who else is here?', 'just getting started.', 'not leaving.'])}"
|
|
283
|
+
EXAMPLE: (#) ${m} "${(0, util_1.pick)(['founders went quiet.', 'dead faction.', 'overvalued.', 'this faction is underperforming.'])}"
|
|
284
|
+
---
|
|
285
|
+
Output EXACTLY one line: (symbol) $ "*"
|
|
286
|
+
Example format: (+) rhvDoapw "count me in."
|
|
287
|
+
>`;
|
|
282
288
|
};
|
|
283
289
|
exports.buildCompactModelPrompt = buildCompactModelPrompt;
|
|
284
290
|
/**
|
|
@@ -596,7 +602,7 @@ async function llmDecide(kit, agent, factions, recentMessages, llm, log, solRang
|
|
|
596
602
|
const intel = await (0, faction_1.fetchFactionIntel)(kit, heldFaction);
|
|
597
603
|
const latest = intel.recentComms.find((c) => c.sender !== agent.publicKey);
|
|
598
604
|
if (latest) {
|
|
599
|
-
intelSnippet = `LATEST:
|
|
605
|
+
intelSnippet = `LATEST: @AP${latest.sender.slice(0, 4)} in ${intel.symbol}: "${latest.memo.replace(/^<+/, '').replace(/>+\s*$/, '').slice(0, 60)}"`;
|
|
600
606
|
}
|
|
601
607
|
}
|
|
602
608
|
}
|