@clawnch/clawtomaton 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.
Files changed (91) hide show
  1. package/README.md +231 -0
  2. package/constitution.md +15 -0
  3. package/dist/agent/index.d.ts +43 -0
  4. package/dist/agent/index.d.ts.map +1 -0
  5. package/dist/agent/index.js +315 -0
  6. package/dist/agent/index.js.map +1 -0
  7. package/dist/agent/prompt.d.ts +24 -0
  8. package/dist/agent/prompt.d.ts.map +1 -0
  9. package/dist/agent/prompt.js +137 -0
  10. package/dist/agent/prompt.js.map +1 -0
  11. package/dist/cli.d.ts +15 -0
  12. package/dist/cli.d.ts.map +1 -0
  13. package/dist/cli.js +303 -0
  14. package/dist/cli.js.map +1 -0
  15. package/dist/constants.d.ts +18 -0
  16. package/dist/constants.d.ts.map +1 -0
  17. package/dist/constants.js +18 -0
  18. package/dist/constants.js.map +1 -0
  19. package/dist/heartbeat/index.d.ts +38 -0
  20. package/dist/heartbeat/index.d.ts.map +1 -0
  21. package/dist/heartbeat/index.js +127 -0
  22. package/dist/heartbeat/index.js.map +1 -0
  23. package/dist/identity/index.d.ts +39 -0
  24. package/dist/identity/index.d.ts.map +1 -0
  25. package/dist/identity/index.js +134 -0
  26. package/dist/identity/index.js.map +1 -0
  27. package/dist/index.d.ts +33 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +36 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/market/index.d.ts +73 -0
  32. package/dist/market/index.d.ts.map +1 -0
  33. package/dist/market/index.js +205 -0
  34. package/dist/market/index.js.map +1 -0
  35. package/dist/self-mod/index.d.ts +30 -0
  36. package/dist/self-mod/index.d.ts.map +1 -0
  37. package/dist/self-mod/index.js +83 -0
  38. package/dist/self-mod/index.js.map +1 -0
  39. package/dist/skills/check-balance.d.ts +7 -0
  40. package/dist/skills/check-balance.d.ts.map +1 -0
  41. package/dist/skills/check-balance.js +46 -0
  42. package/dist/skills/check-balance.js.map +1 -0
  43. package/dist/skills/check-stats.d.ts +6 -0
  44. package/dist/skills/check-stats.d.ts.map +1 -0
  45. package/dist/skills/check-stats.js +49 -0
  46. package/dist/skills/check-stats.js.map +1 -0
  47. package/dist/skills/claim-fees.d.ts +14 -0
  48. package/dist/skills/claim-fees.d.ts.map +1 -0
  49. package/dist/skills/claim-fees.js +109 -0
  50. package/dist/skills/claim-fees.js.map +1 -0
  51. package/dist/skills/conway.d.ts +16 -0
  52. package/dist/skills/conway.d.ts.map +1 -0
  53. package/dist/skills/conway.js +97 -0
  54. package/dist/skills/conway.js.map +1 -0
  55. package/dist/skills/deploy.d.ts +19 -0
  56. package/dist/skills/deploy.d.ts.map +1 -0
  57. package/dist/skills/deploy.js +167 -0
  58. package/dist/skills/deploy.js.map +1 -0
  59. package/dist/skills/edit-soul.d.ts +10 -0
  60. package/dist/skills/edit-soul.d.ts.map +1 -0
  61. package/dist/skills/edit-soul.js +68 -0
  62. package/dist/skills/edit-soul.js.map +1 -0
  63. package/dist/skills/index.d.ts +21 -0
  64. package/dist/skills/index.d.ts.map +1 -0
  65. package/dist/skills/index.js +59 -0
  66. package/dist/skills/index.js.map +1 -0
  67. package/dist/skills/shell.d.ts +12 -0
  68. package/dist/skills/shell.d.ts.map +1 -0
  69. package/dist/skills/shell.js +66 -0
  70. package/dist/skills/shell.js.map +1 -0
  71. package/dist/skills/swap.d.ts +6 -0
  72. package/dist/skills/swap.d.ts.map +1 -0
  73. package/dist/skills/swap.js +87 -0
  74. package/dist/skills/swap.js.map +1 -0
  75. package/dist/skills/transfer.d.ts +7 -0
  76. package/dist/skills/transfer.d.ts.map +1 -0
  77. package/dist/skills/transfer.js +82 -0
  78. package/dist/skills/transfer.js.map +1 -0
  79. package/dist/state/index.d.ts +44 -0
  80. package/dist/state/index.d.ts.map +1 -0
  81. package/dist/state/index.js +266 -0
  82. package/dist/state/index.js.map +1 -0
  83. package/dist/survival/index.d.ts +49 -0
  84. package/dist/survival/index.d.ts.map +1 -0
  85. package/dist/survival/index.js +151 -0
  86. package/dist/survival/index.js.map +1 -0
  87. package/dist/types.d.ts +132 -0
  88. package/dist/types.d.ts.map +1 -0
  89. package/dist/types.js +17 -0
  90. package/dist/types.js.map +1 -0
  91. package/package.json +60 -0
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Heartbeat — condition-driven wake scheduler.
3
+ *
4
+ * NOT a dumb timer that tells the agent to "maybe do something."
5
+ * Instead: periodically checks on-chain conditions and only wakes
6
+ * the agent when there's something genuinely actionable.
7
+ *
8
+ * The check itself is cheap (a few RPC reads, no txs). The agent
9
+ * run is expensive (inference + potential txs). So we gate the
10
+ * expensive part behind the cheap check.
11
+ *
12
+ * Wake conditions:
13
+ * - Fees are profitable to claim (WETH fees > gas cost + threshold)
14
+ * - Survival danger (ETH low, but fees exist to claim)
15
+ * - Operational runway < 24h
16
+ * - Scheduled: periodic self-reflection (every 24h)
17
+ */
18
+ import { MarketIntelligence, formatSnapshot } from '../market/index.js';
19
+ import { buildClients } from '../identity/index.js';
20
+ /** Minimum time between agent runs even if conditions are met (5 min) */
21
+ const MIN_RUN_INTERVAL_MS = 5 * 60 * 1000;
22
+ /** How often to do a full self-reflection run regardless of conditions (24h) */
23
+ const REFLECTION_INTERVAL_MS = 24 * 60 * 60 * 1000;
24
+ export class Heartbeat {
25
+ timer = null;
26
+ agent;
27
+ config;
28
+ market;
29
+ lastRunTime = 0;
30
+ lastReflectionTime = 0;
31
+ constructor(agent, config) {
32
+ this.agent = agent;
33
+ this.config = config;
34
+ const identity = agent.getIdentity();
35
+ const { publicClient } = buildClients(identity, config.rpcUrl);
36
+ this.market = new MarketIntelligence(publicClient, identity.address, agent.getState());
37
+ }
38
+ /**
39
+ * Start the heartbeat loop.
40
+ */
41
+ start() {
42
+ if (this.timer)
43
+ throw new Error('Heartbeat already running.');
44
+ const intervalMs = this.config.heartbeatIntervalMs;
45
+ console.log(`[heartbeat] Checking conditions every ${Math.round(intervalMs / 60000)}min`);
46
+ // Run first check immediately
47
+ this.check();
48
+ this.timer = setInterval(() => this.check(), intervalMs);
49
+ }
50
+ stop() {
51
+ if (this.timer) {
52
+ clearInterval(this.timer);
53
+ this.timer = null;
54
+ console.log('[heartbeat] Stopped.');
55
+ }
56
+ }
57
+ /**
58
+ * Check conditions. Only wake the agent if something is actionable.
59
+ */
60
+ async check() {
61
+ // Don't interrupt a running agent
62
+ if (this.agent.isRunning())
63
+ return;
64
+ // Respect minimum interval between runs
65
+ if (Date.now() - this.lastRunTime < MIN_RUN_INTERVAL_MS)
66
+ return;
67
+ const identity = this.agent.getIdentity();
68
+ const tokenAddress = identity.tokenAddress;
69
+ try {
70
+ // Cheap check: read on-chain state
71
+ const { wake, reason } = await this.market.shouldWake(tokenAddress);
72
+ // Also check if it's time for periodic self-reflection
73
+ const reflectionDue = Date.now() - this.lastReflectionTime > REFLECTION_INTERVAL_MS;
74
+ if (!wake && !reflectionDue) {
75
+ // Nothing to do. Silence is golden.
76
+ return;
77
+ }
78
+ // Build context for the agent
79
+ const snap = await this.market.snapshot(tokenAddress);
80
+ const conditions = this.market.evaluate(snap);
81
+ const snapshotText = formatSnapshot(snap);
82
+ let prompt;
83
+ if (wake) {
84
+ console.log(`[heartbeat] Waking agent: ${reason}`);
85
+ prompt = [
86
+ `[HEARTBEAT — CONDITION TRIGGERED]`,
87
+ `Trigger: ${reason}`,
88
+ ``,
89
+ snapshotText,
90
+ ``,
91
+ `Conditions:`,
92
+ conditions.summary,
93
+ ``,
94
+ conditions.survivalClaimNeeded
95
+ ? `ACTION REQUIRED: Claim fees now to survive. Use claim_fees skill.`
96
+ : conditions.feesWorthClaiming
97
+ ? `Fees are profitable to claim. Consider using claim_fees.`
98
+ : `Review situation and decide on next action.`,
99
+ ].join('\n');
100
+ }
101
+ else {
102
+ // Reflection run
103
+ console.log(`[heartbeat] Periodic reflection`);
104
+ this.lastReflectionTime = Date.now();
105
+ prompt = [
106
+ `[HEARTBEAT — PERIODIC REFLECTION]`,
107
+ `It's been 24 hours. Review your situation, update your SOUL.md if needed.`,
108
+ ``,
109
+ snapshotText,
110
+ ``,
111
+ `Conditions:`,
112
+ conditions.summary,
113
+ ``,
114
+ `Reflect on: What's working? What should change? Any strategic adjustments?`,
115
+ ].join('\n');
116
+ }
117
+ this.lastRunTime = Date.now();
118
+ await this.agent.run(prompt);
119
+ }
120
+ catch (err) {
121
+ const msg = err instanceof Error ? err.message : String(err);
122
+ console.error(`[heartbeat] Check failed: ${msg}`);
123
+ this.agent.getState().audit('heartbeat_error', msg);
124
+ }
125
+ }
126
+ }
127
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/heartbeat/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Identity module — wallet generation, Clawncher registration, $CLAWNCH burn activation.
3
+ *
4
+ * Each Clawtomaton has a unique Ethereum wallet. Registration on Clawncher gives
5
+ * it an API key. Activation requires burning 1,000,000 $CLAWNCH to the dead address.
6
+ */
7
+ import { privateKeyToAccount } from 'viem/accounts';
8
+ import { type Address, type PublicClient, type WalletClient } from 'viem';
9
+ import type { StateStore } from '../state/index.js';
10
+ import type { ClawtomatonIdentity, ActivationResult } from '../types.js';
11
+ export interface GenerateIdentityParams {
12
+ name: string;
13
+ genesisPrompt: string;
14
+ creatorAddress: Address;
15
+ rpcUrl: string;
16
+ apiBaseUrl?: string;
17
+ }
18
+ /**
19
+ * Generate a fresh wallet and register with Clawncher to get an API key.
20
+ * Does NOT activate (burn $CLAWNCH) — call `activate()` separately after funding.
21
+ */
22
+ export declare function generateIdentity(params: GenerateIdentityParams, state: StateStore): Promise<ClawtomatonIdentity>;
23
+ /**
24
+ * Activate a Clawtomaton by burning 1,000,000 $CLAWNCH.
25
+ * The agent's wallet must hold >= 1M $CLAWNCH before calling this.
26
+ *
27
+ * Burns by transferring to 0x...dEaD.
28
+ */
29
+ export declare function activate(identity: ClawtomatonIdentity, rpcUrl: string, state: StateStore): Promise<ActivationResult>;
30
+ export interface ClawtomatonClients {
31
+ publicClient: PublicClient;
32
+ walletClient: WalletClient;
33
+ account: ReturnType<typeof privateKeyToAccount>;
34
+ }
35
+ /**
36
+ * Build viem clients from a persisted identity + config.
37
+ */
38
+ export declare function buildClients(identity: ClawtomatonIdentity, rpcUrl: string): ClawtomatonClients;
39
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/identity/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAEL,mBAAmB,EACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EAKL,KAAK,OAAO,EAEZ,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,MAAM,CAAC;AAGd,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAWzE,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,sBAAsB,EAC9B,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,mBAAmB,CAAC,CAgD9B;AAQD;;;;;GAKG;AACH,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,mBAAmB,EAC7B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,gBAAgB,CAAC,CAqD3B;AAMD,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;CACjD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAmB9F"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Identity module — wallet generation, Clawncher registration, $CLAWNCH burn activation.
3
+ *
4
+ * Each Clawtomaton has a unique Ethereum wallet. Registration on Clawncher gives
5
+ * it an API key. Activation requires burning 1,000,000 $CLAWNCH to the dead address.
6
+ */
7
+ import { generatePrivateKey, privateKeyToAccount, } from 'viem/accounts';
8
+ import { createPublicClient, createWalletClient, http, erc20Abi, } from 'viem';
9
+ import { base } from 'viem/chains';
10
+ import { ClawnchApiDeployer } from '@clawnch/clawncher-sdk';
11
+ import { CLAWTOMATON_ACTIVATION_COST, CLAWNCH_TOKEN_ADDRESS, CLAWNCH_BURN_ADDRESS, } from '../types.js';
12
+ /**
13
+ * Generate a fresh wallet and register with Clawncher to get an API key.
14
+ * Does NOT activate (burn $CLAWNCH) — call `activate()` separately after funding.
15
+ */
16
+ export async function generateIdentity(params, state) {
17
+ const { name, genesisPrompt, creatorAddress, rpcUrl, apiBaseUrl } = params;
18
+ // Generate fresh keypair
19
+ const privateKey = generatePrivateKey();
20
+ const account = privateKeyToAccount(privateKey);
21
+ const publicClient = createPublicClient({
22
+ chain: base,
23
+ transport: http(rpcUrl, { retryCount: 0 }),
24
+ });
25
+ const walletClient = createWalletClient({
26
+ account,
27
+ chain: base,
28
+ transport: http(rpcUrl, { retryCount: 0 }),
29
+ });
30
+ // Register with Clawncher API — sign challenge, get API key
31
+ // Cast through `any` because viem's OP Stack chain types don't match
32
+ // the SDK's generic PublicClient/WalletClient types.
33
+ const registration = await ClawnchApiDeployer.register({
34
+ wallet: walletClient,
35
+ publicClient: publicClient,
36
+ apiBaseUrl,
37
+ }, {
38
+ name,
39
+ wallet: account.address,
40
+ description: `Clawtomaton: ${genesisPrompt.slice(0, 100)}`,
41
+ });
42
+ const identity = {
43
+ name,
44
+ address: account.address,
45
+ privateKey,
46
+ apiKey: registration.apiKey,
47
+ creatorAddress,
48
+ genesisPrompt,
49
+ };
50
+ // Persist
51
+ state.saveIdentity(identity);
52
+ state.audit('identity_created', `Agent "${name}" created at ${account.address}`);
53
+ return identity;
54
+ }
55
+ // ============================================================================
56
+ // Activation ($CLAWNCH Burn)
57
+ // ============================================================================
58
+ // Use viem's built-in erc20Abi which includes transfer, balanceOf, approve, etc.
59
+ /**
60
+ * Activate a Clawtomaton by burning 1,000,000 $CLAWNCH.
61
+ * The agent's wallet must hold >= 1M $CLAWNCH before calling this.
62
+ *
63
+ * Burns by transferring to 0x...dEaD.
64
+ */
65
+ export async function activate(identity, rpcUrl, state) {
66
+ const account = privateKeyToAccount(identity.privateKey);
67
+ const publicClient = createPublicClient({
68
+ chain: base,
69
+ transport: http(rpcUrl, { retryCount: 0 }),
70
+ });
71
+ const walletClient = createWalletClient({
72
+ account,
73
+ chain: base,
74
+ transport: http(rpcUrl, { retryCount: 0 }),
75
+ });
76
+ // Check $CLAWNCH balance
77
+ const balance = await publicClient.readContract({
78
+ address: CLAWNCH_TOKEN_ADDRESS,
79
+ abi: erc20Abi,
80
+ functionName: 'balanceOf',
81
+ args: [account.address],
82
+ });
83
+ if (balance < CLAWTOMATON_ACTIVATION_COST) {
84
+ const deficit = CLAWTOMATON_ACTIVATION_COST - balance;
85
+ throw new Error(`Insufficient $CLAWNCH for activation. Need ${formatClawnch(CLAWTOMATON_ACTIVATION_COST)}, have ${formatClawnch(balance)}. Need ${formatClawnch(deficit)} more.`);
86
+ }
87
+ // Burn by transferring to dead address — single attempt, no retry
88
+ const txHash = await walletClient.writeContract({
89
+ address: CLAWNCH_TOKEN_ADDRESS,
90
+ abi: erc20Abi,
91
+ functionName: 'transfer',
92
+ args: [CLAWNCH_BURN_ADDRESS, CLAWTOMATON_ACTIVATION_COST],
93
+ });
94
+ // Wait for confirmation
95
+ const receipt = await publicClient.waitForTransactionReceipt({ hash: txHash });
96
+ if (receipt.status === 'reverted') {
97
+ throw new Error(`Activation burn tx reverted: ${txHash}`);
98
+ }
99
+ const result = {
100
+ burnTxHash: txHash,
101
+ amountBurned: CLAWTOMATON_ACTIVATION_COST,
102
+ activatedAt: Date.now(),
103
+ };
104
+ state.saveActivation(result);
105
+ state.audit('activation', `Burned ${formatClawnch(CLAWTOMATON_ACTIVATION_COST)} $CLAWNCH`, txHash);
106
+ return result;
107
+ }
108
+ /**
109
+ * Build viem clients from a persisted identity + config.
110
+ */
111
+ export function buildClients(identity, rpcUrl) {
112
+ const account = privateKeyToAccount(identity.privateKey);
113
+ const publicClient = createPublicClient({
114
+ chain: base,
115
+ transport: http(rpcUrl, { retryCount: 0 }),
116
+ });
117
+ const walletClient = createWalletClient({
118
+ account,
119
+ chain: base,
120
+ transport: http(rpcUrl, { retryCount: 0 }),
121
+ });
122
+ return {
123
+ publicClient: publicClient,
124
+ walletClient: walletClient,
125
+ account,
126
+ };
127
+ }
128
+ // ============================================================================
129
+ // Helpers
130
+ // ============================================================================
131
+ function formatClawnch(amount) {
132
+ return (Number(amount) / 1e18).toLocaleString('en-US', { maximumFractionDigits: 0 });
133
+ }
134
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/identity/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @clawnch/clawtomaton — Autonomous AI agents that launch and manage crypto projects on Base.
3
+ *
4
+ * @example
5
+ * ```ts
6
+ * import { ClawtomatonAgent, generateIdentity, activate } from '@clawnch/clawtomaton';
7
+ *
8
+ * // Setup
9
+ * const identity = await generateIdentity({ name: 'my-agent', ... }, state);
10
+ * await activate(identity, rpcUrl, state);
11
+ *
12
+ * // Run
13
+ * const agent = new ClawtomatonAgent(config);
14
+ * await agent.run();
15
+ * ```
16
+ */
17
+ export { ClawtomatonAgent } from './agent/index.js';
18
+ export { buildSystemPrompt } from './agent/prompt.js';
19
+ export { generateIdentity, activate, buildClients } from './identity/index.js';
20
+ export type { GenerateIdentityParams, ClawtomatonClients } from './identity/index.js';
21
+ export { StateStore } from './state/index.js';
22
+ export type { AuditEntry } from './state/index.js';
23
+ export { SurvivalMonitor, determineTier, formatSurvivalStatus } from './survival/index.js';
24
+ export { ALL_SKILLS, getSkillsForTier } from './skills/index.js';
25
+ export { checkBalanceSkill, checkStatsSkill, claimFeesSkill, deployTokenSkill, swapSkill, transferSkill, shellSkill, conwaySkill, editSoulSkill, } from './skills/index.js';
26
+ export { Heartbeat } from './heartbeat/index.js';
27
+ export { MarketIntelligence, formatSnapshot } from './market/index.js';
28
+ export type { MarketSnapshot, MarketConditions, OwnTokenStats } from './market/index.js';
29
+ export type { PromptContext } from './agent/prompt.js';
30
+ export { SelfModAuditor } from './self-mod/index.js';
31
+ export type { ClawtomatonIdentity, SurvivalTier, SurvivalState, AgentContext, ConversationTurn, ToolCall, ToolResult, SkillDefinition, SkillParameter, HeartbeatTask, ClawtomatonConfig, ActivationResult, } from './types.js';
32
+ export { SURVIVAL_THRESHOLDS, CLAWTOMATON_ACTIVATION_COST, CLAWNCH_TOKEN_ADDRESS, CLAWNCH_BURN_ADDRESS, } from './types.js';
33
+ //# 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,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC/E,YAAY,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGtF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAG3F,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,UAAU,EACV,WAAW,EACX,aAAa,GACd,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACvE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGzF,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,YAAY,EACV,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,QAAQ,EACR,UAAU,EACV,eAAe,EACf,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,mBAAmB,EACnB,2BAA2B,EAC3B,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @clawnch/clawtomaton — Autonomous AI agents that launch and manage crypto projects on Base.
3
+ *
4
+ * @example
5
+ * ```ts
6
+ * import { ClawtomatonAgent, generateIdentity, activate } from '@clawnch/clawtomaton';
7
+ *
8
+ * // Setup
9
+ * const identity = await generateIdentity({ name: 'my-agent', ... }, state);
10
+ * await activate(identity, rpcUrl, state);
11
+ *
12
+ * // Run
13
+ * const agent = new ClawtomatonAgent(config);
14
+ * await agent.run();
15
+ * ```
16
+ */
17
+ // Core agent
18
+ export { ClawtomatonAgent } from './agent/index.js';
19
+ export { buildSystemPrompt } from './agent/prompt.js';
20
+ // Identity
21
+ export { generateIdentity, activate, buildClients } from './identity/index.js';
22
+ // State
23
+ export { StateStore } from './state/index.js';
24
+ // Survival
25
+ export { SurvivalMonitor, determineTier, formatSurvivalStatus } from './survival/index.js';
26
+ // Skills
27
+ export { ALL_SKILLS, getSkillsForTier } from './skills/index.js';
28
+ export { checkBalanceSkill, checkStatsSkill, claimFeesSkill, deployTokenSkill, swapSkill, transferSkill, shellSkill, conwaySkill, editSoulSkill, } from './skills/index.js';
29
+ // Heartbeat
30
+ export { Heartbeat } from './heartbeat/index.js';
31
+ // Market intelligence
32
+ export { MarketIntelligence, formatSnapshot } from './market/index.js';
33
+ // Self-modification audit
34
+ export { SelfModAuditor } from './self-mod/index.js';
35
+ export { SURVIVAL_THRESHOLDS, CLAWTOMATON_ACTIVATION_COST, CLAWNCH_TOKEN_ADDRESS, CLAWNCH_BURN_ADDRESS, } from './types.js';
36
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,aAAa;AACb,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,WAAW;AACX,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAG/E,QAAQ;AACR,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,WAAW;AACX,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3F,SAAS;AACT,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,UAAU,EACV,WAAW,EACX,aAAa,GACd,MAAM,mBAAmB,CAAC;AAE3B,YAAY;AACZ,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,sBAAsB;AACtB,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMvE,0BAA0B;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAkBrD,OAAO,EACL,mBAAmB,EACnB,2BAA2B,EAC3B,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Market intelligence — the agent's eyes on-chain.
3
+ *
4
+ * Reads real state: gas prices, fee balances, token stats, ETH balance.
5
+ * Uses the Clawncher SDK for all on-chain reads — no local ABI duplication.
6
+ */
7
+ import { type Address, type PublicClient } from 'viem';
8
+ import { type NetworkName } from '@clawnch/clawncher-sdk';
9
+ import type { StateStore } from '../state/index.js';
10
+ /** Everything the agent needs to know about its current financial state */
11
+ export interface MarketSnapshot {
12
+ timestamp: number;
13
+ ethBalance: bigint;
14
+ ethFormatted: string;
15
+ gasPrice: bigint;
16
+ estimatedTxCostWei: bigint;
17
+ estimatedClaimCostWei: bigint;
18
+ estimatedClaimCostEth: string;
19
+ unclaimedFeesWeth: bigint;
20
+ unclaimedFeesWethFormatted: string;
21
+ unclaimedFeesToken: bigint;
22
+ unclaimedFeesTokenFormatted: string;
23
+ claimProfitWei: bigint;
24
+ claimProfitEth: string;
25
+ claimIsProfitable: boolean;
26
+ ownToken: OwnTokenStats | null;
27
+ txBudget: number;
28
+ }
29
+ export interface OwnTokenStats {
30
+ address: Address;
31
+ symbol: string;
32
+ balance: bigint;
33
+ balanceFormatted: string;
34
+ totalSupply: bigint;
35
+ holdingPct: number;
36
+ }
37
+ export interface MarketConditions {
38
+ feesWorthClaiming: boolean;
39
+ survivalClaimNeeded: boolean;
40
+ operationallyHealthy: boolean;
41
+ estimatedHoursRemaining: number;
42
+ needsToken: boolean;
43
+ summary: string;
44
+ }
45
+ export declare class MarketIntelligence {
46
+ private publicClient;
47
+ private address;
48
+ private state;
49
+ private reader;
50
+ constructor(publicClient: PublicClient, address: Address, state: StateStore, network?: NetworkName);
51
+ /**
52
+ * Take a full market snapshot — all data from chain, no caching.
53
+ */
54
+ snapshot(tokenAddress?: Address): Promise<MarketSnapshot>;
55
+ /**
56
+ * Evaluate conditions from a snapshot — actionable signals.
57
+ */
58
+ evaluate(snap: MarketSnapshot): MarketConditions;
59
+ /**
60
+ * Quick check: should the agent wake up?
61
+ */
62
+ shouldWake(tokenAddress?: Address): Promise<{
63
+ wake: boolean;
64
+ reason: string;
65
+ }>;
66
+ private fetchFees;
67
+ /**
68
+ * Fetch own token stats using the SDK's ClawnchReader + ERC20ABI.
69
+ */
70
+ private fetchOwnTokenStats;
71
+ }
72
+ export declare function formatSnapshot(snap: MarketSnapshot): string;
73
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/market/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,YAAY,EAClB,MAAM,MAAM,CAAC;AACd,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAapD,2EAA2E;AAC3E,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAElB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IAErB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAE9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,0BAA0B,EAAE,MAAM,CAAC;IACnC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,2BAA2B,EAAE,MAAM,CAAC;IAEpC,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,OAAO,CAAC;IAE3B,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAE/B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,uBAAuB,EAAE,MAAM,CAAC;IAChC,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,MAAM,CAAgB;gBAG5B,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,EACjB,OAAO,GAAE,WAAuB;IAQlC;;OAEG;IACG,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;IA8C/D;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,gBAAgB;IA0ChD;;OAEG;IACG,UAAU,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;YAyBtE,SAAS;IAyBvB;;OAEG;YACW,kBAAkB;CA6BjC;AAUD,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAmB3D"}