@blockrun/franklin 3.5.0 → 3.5.1

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/README.md CHANGED
@@ -121,31 +121,20 @@ Franklin is **chat-first**. You do not wire a DAG, configure six API keys, or co
121
121
 
122
122
  Live data from CoinGecko. RSI, MACD, Bollinger, and volatility computed locally. No API key needed.
123
123
 
124
- ### 🎯 Social growth
124
+ ### 🎨 Image generation
125
125
 
126
126
  ```text
127
- > find X posts complaining about AI rate limits
127
+ > generate a logo for my AI startup — minimalist, dark background
128
128
 
129
- SearchX "AI rate limits"
130
-
131
- Found 8 candidates:
132
- 1. "Claude keeps throttling me in the middle of shipping..." — @buildermax (2h)
133
- 2. "I need an agent that can switch models automatically." — @indiedev (5h)
134
- ...
135
-
136
- > write a reply to #2 — mention Franklin uses a wallet instead of subscriptions
137
-
138
- Draft:
139
- "That was my pain too. Franklin routes across 55+ models,
140
- pays per action from a USDC wallet, and doesn't trap you
141
- inside a monthly seat. Better economics, better uptime."
129
+ ImageGen "minimalist AI startup logo, dark background..."
130
+ Saved: generated-logo-1713052800.png (1024x1024)
131
+ ```
142
132
 
143
- > looks good, post it
133
+ Generates images via DALL-E / GPT Image directly from the CLI. Paid from your wallet — no OpenAI API key needed.
144
134
 
145
- PostToX Reply posted to x.com/indiedev/status/...
146
- ```
135
+ ### 🎯 Social growth (with setup)
147
136
 
148
- Search X, generate contextual replies, and post with confirmation. Uses Playwright for browser automation, so there is no X API key, no OAuth maze, and no $100/month developer account.
137
+ After running `franklin social setup && franklin social login x`, Franklin can search X, draft replies, and post with your confirmation no X API key or developer account needed.
149
138
 
150
139
  ### 🔎 Research, code, anything with a budget
151
140
 
@@ -286,8 +275,8 @@ Franklin can decide what is worth paying for, route the call, sign the micropaym
286
275
  **📈 Trading signals**
287
276
  Ask "what's BTC looking like?" — Franklin fetches live price data, computes RSI/MACD/Bollinger/volatility, and synthesizes a signal.
288
277
 
289
- **🎯 Social growth**
290
- Ask "find X posts about my category" — Franklin searches X, drafts replies, and posts with your confirmation.
278
+ **🎨 AI image generation**
279
+ Ask "generate a logo" — Franklin calls DALL-E / GPT Image, saves the result locally, paid from your wallet.
291
280
 
292
281
  **🧠 55+ models via one wallet**
293
282
  Anthropic, OpenAI, Google, xAI, DeepSeek, GLM, Kimi, Minimax, NVIDIA free tier. One wallet, one interface, automatic fallback.
@@ -74,10 +74,9 @@ export async function startCommand(options) {
74
74
  // After the user's first session, the tip fades and they go straight to the prompt.
75
75
  console.log('');
76
76
  console.log(chalk.dim(' Try something only Franklin can do:'));
77
- console.log(chalk.dim(' ') + chalk.hex('#FFD700')('"what\'s BTC looking like today?"') + chalk.dim(' ← market signal'));
78
- console.log(chalk.dim(' ') + chalk.hex('#10B981')('"find X posts about ai agent"') + chalk.dim(' ← social growth'));
79
- console.log(chalk.dim(' ') + chalk.hex('#60A5FA')('"generate a hero image for my app"') + chalk.dim(' ← image gen'));
80
- console.log(chalk.dim(' Or just code — 55+ models, no API keys.'));
77
+ console.log(chalk.dim(' ') + chalk.hex('#FFD700')('"what\'s BTC looking like today?"') + chalk.dim(' ← live market data'));
78
+ console.log(chalk.dim(' ') + chalk.hex('#60A5FA')('"generate a logo for my startup"') + chalk.dim(' ← AI image gen'));
79
+ console.log(chalk.dim(' Code with 55+ models. No API keys. Pay per use.'));
81
80
  console.log('');
82
81
  // Balance fetcher — used at startup and after each turn
83
82
  const fetchBalance = async () => {
@@ -14,7 +14,7 @@ async function execute(input, ctx) {
14
14
  const chain = loadChain();
15
15
  const apiUrl = API_URLS[chain];
16
16
  const endpoint = `${apiUrl}/v1/images/generations`;
17
- const imageModel = model || 'dall-e-3';
17
+ const imageModel = model || 'openai/gpt-image-1';
18
18
  const imageSize = size || '1024x1024';
19
19
  // Default output path
20
20
  const outPath = output_path
@@ -162,7 +162,7 @@ export const imageGenCapability = {
162
162
  prompt: { type: 'string', description: 'Text description of the image to generate' },
163
163
  output_path: { type: 'string', description: 'Where to save the image. Default: generated-<timestamp>.png in working directory' },
164
164
  size: { type: 'string', description: 'Image size: 1024x1024, 1792x1024, or 1024x1792. Default: 1024x1024' },
165
- model: { type: 'string', description: 'Image model to use. Default: dall-e-3' },
165
+ model: { type: 'string', description: 'Image model to use. Default: openai/gpt-image-1' },
166
166
  },
167
167
  required: ['prompt'],
168
168
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blockrun/franklin",
3
- "version": "3.5.0",
3
+ "version": "3.5.1",
4
4
  "description": "Franklin — The AI agent with a wallet. Spends USDC autonomously to get real work done. Pay per action, no subscriptions.",
5
5
  "type": "module",
6
6
  "exports": {