openads-ai 0.2.2 → 0.2.5

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
@@ -188,6 +188,19 @@ openads schedule remove # Remove a schedule
188
188
 
189
189
  Uses your OS scheduler (macOS `launchd` / Linux `crontab`) — works even when your terminal is closed.
190
190
 
191
+ ---
192
+
193
+ ## 🛡️ Dual-Mode Safety (Audit vs. Launch)
194
+
195
+ To align with our **Radical Simplicity & Safety by Default** principles, OpenAds operates in two visual modes to give you total control and peace of mind over your ad accounts:
196
+
197
+ * **Audit Mode (Safe / Read-only — Recommended)**: Strict read-only guidelines. The AI can pull live campaign statistics, analyze keywords, find budget waste, and recommend landing page optimizations, but is entirely blocked from making active changes.
198
+ * **Launch Mode (Read-Write)**: Active campaign changes. Authorizes write modifications (e.g. pausing campaigns, scaling bids, altering budgets, or testing ad creative) but strictly mandates a clear visual preview card and an explicit **confirmation prompt (Y/N)** before executing.
199
+
200
+ Configure your default mode anytime by running `openads setup`.
201
+
202
+ ---
203
+
191
204
  ## 🔒 Security & Privacy
192
205
 
193
206
  - **Runs 100% locally.** OpenAds is not a cloud service. Nothing leaves your machine except the API calls you authorize.
@@ -242,8 +255,14 @@ Read [CONTRIBUTING.md](CONTRIBUTING.md) to get started.
242
255
 
243
256
  ---
244
257
 
258
+ ## 👥 Core Team
259
+
260
+ * **Luiz Amorim** — Creator & Maintainer ([lamorim.net](https://lamorim.net) | [LinkedIn](https://www.linkedin.com/in/luizamorim/))
261
+
262
+ ---
263
+
245
264
  ## License
246
265
 
247
266
  MIT.
248
267
 
249
- *Built on [Pi](https://github.com/earendil-works/pi) (MIT). Includes tools derived from [adloop](https://github.com/kLOsk/adloop) (MIT) by kLOsk. Marketing skills inspired by [marketingskills](https://github.com/coreyhaines31/marketingskills) (MIT) by Corey Haines. Memory and background automation concepts inspired by [Hermes Agent](https://github.com/NousResearch/hermes-agent) by Nous Research.*
268
+ *Built on [Pi](https://github.com/earendil-works/pi) (MIT). Includes tools derived from [adloop](https://github.com/kLOsk/adloop) (MIT) by kLOsk. Marketing skills inspired by [marketingskills](https://github.com/coreyhaines31/marketingskills) (MIT) by Corey Haines. Memory and background automation concepts inspired by [Hermes Agent](https://github.com/NousResearch/hermes-agent) by Nous Research. Token optimization proxy concepts inspired by [RTK](https://github.com/rtk-ai/rtk) by rtk-ai.*
package/dist/cli.js CHANGED
@@ -350,6 +350,7 @@ async function main() {
350
350
  }
351
351
  if (config.localBaseUrl) {
352
352
  env.OPENAI_BASE_URL = config.localBaseUrl;
353
+ env.OPENAI_API_KEY = env.OPENAI_API_KEY || 'sk-local-ai-key-placeholder';
353
354
  }
354
355
  // ─── White-Label Patch ──────────────────────────────────────────
355
356
  const agentDir = path.join(CONFIG_DIR, 'agent');
package/dist/schedule.js CHANGED
@@ -243,8 +243,10 @@ export async function runScheduledTask(name) {
243
243
  else
244
244
  env.OPENAI_API_KEY = config.apiKey;
245
245
  }
246
- if (config.localBaseUrl)
246
+ if (config.localBaseUrl) {
247
247
  env.OPENAI_BASE_URL = config.localBaseUrl;
248
+ env.OPENAI_API_KEY = env.OPENAI_API_KEY || 'sk-local-ai-key-placeholder';
249
+ }
248
250
  const skillsDir = path.resolve(pkgDir, 'skills');
249
251
  const contextDir = path.join(CONFIG_DIR, 'context');
250
252
  const args = [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openads-ai",
3
- "version": "0.2.2",
3
+ "version": "0.2.5",
4
4
  "description": "Open-source AI command center for digital marketers. Audit campaigns, write ad copy, and build strategies — from your terminal.",
5
5
  "main": "dist/cli.js",
6
6
  "bin": {