@analyticscli/growth-engineer 0.1.0-preview.15 → 0.1.0-preview.18

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 (40) hide show
  1. package/dist/config.d.ts +775 -22
  2. package/dist/config.js +39 -5
  3. package/dist/config.js.map +1 -1
  4. package/dist/index.js +131 -3
  5. package/dist/index.js.map +1 -1
  6. package/dist/runtime/export-asc-summary.mjs +1 -1
  7. package/dist/runtime/export-asc-summary.mjs.map +1 -1
  8. package/dist/runtime/export-coolify-summary.d.mts +2 -0
  9. package/dist/runtime/export-coolify-summary.mjs +230 -0
  10. package/dist/runtime/export-coolify-summary.mjs.map +1 -0
  11. package/dist/runtime/export-paddle-summary.d.mts +2 -0
  12. package/dist/runtime/export-paddle-summary.mjs +170 -0
  13. package/dist/runtime/export-paddle-summary.mjs.map +1 -0
  14. package/dist/runtime/export-sentry-summary.mjs +265 -38
  15. package/dist/runtime/export-sentry-summary.mjs.map +1 -1
  16. package/dist/runtime/export-seo-summary.d.mts +2 -0
  17. package/dist/runtime/export-seo-summary.mjs +503 -0
  18. package/dist/runtime/export-seo-summary.mjs.map +1 -0
  19. package/dist/runtime/openclaw-exporters-lib.d.mts +50 -0
  20. package/dist/runtime/openclaw-exporters-lib.mjs +761 -57
  21. package/dist/runtime/openclaw-exporters-lib.mjs.map +1 -1
  22. package/dist/runtime/openclaw-growth-engineer.mjs +163 -4
  23. package/dist/runtime/openclaw-growth-engineer.mjs.map +1 -1
  24. package/dist/runtime/openclaw-growth-env.mjs +5 -0
  25. package/dist/runtime/openclaw-growth-env.mjs.map +1 -1
  26. package/dist/runtime/openclaw-growth-preflight.mjs +399 -26
  27. package/dist/runtime/openclaw-growth-preflight.mjs.map +1 -1
  28. package/dist/runtime/openclaw-growth-runner.mjs +564 -69
  29. package/dist/runtime/openclaw-growth-runner.mjs.map +1 -1
  30. package/dist/runtime/openclaw-growth-shared.d.mts +150 -2
  31. package/dist/runtime/openclaw-growth-shared.mjs +489 -7
  32. package/dist/runtime/openclaw-growth-shared.mjs.map +1 -1
  33. package/dist/runtime/openclaw-growth-start.mjs +584 -48
  34. package/dist/runtime/openclaw-growth-start.mjs.map +1 -1
  35. package/dist/runtime/openclaw-growth-status.mjs +82 -6
  36. package/dist/runtime/openclaw-growth-status.mjs.map +1 -1
  37. package/dist/runtime/openclaw-growth-wizard.mjs +1501 -105
  38. package/dist/runtime/openclaw-growth-wizard.mjs.map +1 -1
  39. package/package.json +1 -1
  40. package/templates/config.example.json +120 -71
@@ -1,5 +1,5 @@
1
1
  import path from 'node:path';
2
- const BUILTIN_SOURCE_NAMES = ['analytics', 'revenuecat', 'sentry', 'feedback'];
2
+ const BUILTIN_SOURCE_NAMES = ['analytics', 'revenuecat', 'paddle', 'seo', 'sentry', 'coolify', 'feedback'];
3
3
  const DEFAULT_CONFIG_PATH = 'data/openclaw-growth-engineer/config.json';
4
4
  function quote(value) {
5
5
  const raw = String(value);
@@ -12,19 +12,36 @@ const SERVICE_KIND_ALIASES = {
12
12
  analytics: [
13
13
  'analytics',
14
14
  'analyticscli',
15
- 'mixpanel',
16
- 'amplitude',
17
- 'firebase',
18
- 'posthog',
19
15
  'telemetry',
20
16
  ],
21
- revenue: ['revenuecat', 'stripe', 'purchases', 'billing', 'adapty', 'superwall'],
17
+ revenue: [
18
+ 'revenuecat',
19
+ 'paddle',
20
+ 'stripe',
21
+ 'lemonsqueezy',
22
+ 'lemon-squeezy',
23
+ 'purchases',
24
+ 'billing',
25
+ 'adapty',
26
+ 'superwall',
27
+ ],
28
+ seo: [
29
+ 'seo',
30
+ 'gsc',
31
+ 'google-search-console',
32
+ 'search-console',
33
+ 'dataforseo',
34
+ 'organic-search',
35
+ 'search',
36
+ ],
22
37
  crash: ['sentry', 'glitchtip', 'crashlytics', 'bugsnag', 'datadog', 'rollbar'],
38
+ infrastructure: ['coolify', 'vercel', 'cloudflare', 'deployment', 'deployments', 'hosting', 'infrastructure', 'infra'],
23
39
  feedback: [
24
40
  'feedback',
25
41
  'support',
26
42
  'intercom',
27
43
  'zendesk',
44
+ 'linear',
28
45
  'app-store-reviews',
29
46
  'app_store_reviews',
30
47
  'play-store-reviews',
@@ -39,8 +56,25 @@ const SERVICE_KIND_ALIASES = {
39
56
  'play_console',
40
57
  'google-play',
41
58
  'google_play',
59
+ 'appfollow',
60
+ 'app-follow',
61
+ 'apptweak',
62
+ 'app-tweak',
42
63
  'aso',
43
64
  ],
65
+ acquisition: [
66
+ 'apple-search-ads',
67
+ 'apple-ads',
68
+ 'google-ads',
69
+ 'meta-ads',
70
+ 'facebook-ads',
71
+ 'tiktok-ads',
72
+ 'postiz',
73
+ 'postiz-api',
74
+ 'social-publishing',
75
+ 'social-scheduler',
76
+ ],
77
+ lifecycle: ['resend', 'customerio', 'customer-io', 'mailchimp'],
44
78
  };
45
79
  export function getBuiltinSourceNames() {
46
80
  return [...BUILTIN_SOURCE_NAMES];
@@ -76,15 +110,27 @@ export function getDefaultSourceHint(service) {
76
110
  if (kind === 'revenue') {
77
111
  return '- Revenue provider summary with monetization deltas, package/offering signals, and churn notes.\n- Command mode should output JSON in the shared signals[] shape.';
78
112
  }
113
+ if (kind === 'seo') {
114
+ return '- SEO/acquisition summary from Google Search Console, DataForSEO, or CSV exports.\n- Prefer GSC and cached CSVs; only use paid APIs with an explicit request cap.';
115
+ }
79
116
  if (kind === 'crash') {
80
117
  return '- Crash/error provider summary with top regressions, affected users, and issue evidence.\n- `issues[]` or shared `signals[]` payloads are both accepted.';
81
118
  }
119
+ if (kind === 'infrastructure') {
120
+ return '- Hosting/deployment summary with failed deploys, unhealthy resources, and health-check gaps.\n- Command mode should output JSON in the shared signals[] shape.';
121
+ }
82
122
  if (kind === 'feedback') {
83
123
  return '- Aggregate app reviews, support tickets, or in-app feedback into recurring themes.\n- `items[]` or shared `signals[]` payloads are both accepted.';
84
124
  }
85
125
  if (kind === 'store') {
86
126
  return '- Store/distribution summary from ASC CLI, Play Console exports, or release tooling.\n- Focus on review trends, release blockers, ratings, and ASO signals.';
87
127
  }
128
+ if (kind === 'acquisition') {
129
+ return '- Paid acquisition summary with spend, conversions, CAC, ROAS, campaign quality, and channel movement.\n- Keep campaign/ad/account IDs discoverable instead of hard-coded when possible.';
130
+ }
131
+ if (kind === 'lifecycle') {
132
+ return '- Lifecycle messaging summary with sends, opens/clicks where relevant, bounces, complaints, journeys, campaigns, and conversion signals.\n- Prefer account/workspace-level summaries over individual campaign pins.';
133
+ }
88
134
  return '- Any connector is supported when it can produce JSON in the shared `signals[]` shape.\n- Use `issues[]` for crash tools or `items[]` for feedback-like tools when that fits better.';
89
135
  }
90
136
  export function getDefaultSourceCommand(service) {
@@ -95,9 +141,22 @@ export function getDefaultSourceCommand(service) {
95
141
  if (normalized === 'revenuecat' || normalized === 'revenue-cat' || normalized === 'rc') {
96
142
  return 'node scripts/export-revenuecat-summary.mjs';
97
143
  }
144
+ if (normalized === 'paddle') {
145
+ return 'node scripts/export-paddle-summary.mjs';
146
+ }
147
+ if (normalized === 'seo' ||
148
+ normalized === 'gsc' ||
149
+ normalized === 'google-search-console' ||
150
+ normalized === 'search-console' ||
151
+ normalized === 'dataforseo') {
152
+ return 'node scripts/export-seo-summary.mjs';
153
+ }
98
154
  if (normalized === 'sentry') {
99
155
  return 'node scripts/export-sentry-summary.mjs';
100
156
  }
157
+ if (normalized === 'coolify') {
158
+ return 'node scripts/export-coolify-summary.mjs';
159
+ }
101
160
  if (normalized === 'feedback') {
102
161
  return 'analyticscli feedback summary --format json';
103
162
  }
@@ -112,6 +171,9 @@ export function getDefaultSourceCommand(service) {
112
171
  export function getAutomationConfig(config) {
113
172
  const automation = config?.automation && typeof config.automation === 'object' ? config.automation : {};
114
173
  const openclawCron = automation.openclawCron && typeof automation.openclawCron === 'object' ? automation.openclawCron : {};
174
+ const openclawCronDelivery = openclawCron.delivery && typeof openclawCron.delivery === 'object' ? openclawCron.delivery : {};
175
+ const openclawCronDeliveryMode = String(openclawCronDelivery.mode || 'announce').trim() || 'announce';
176
+ const hermesCron = automation.hermesCron && typeof automation.hermesCron === 'object' ? automation.hermesCron : {};
115
177
  return {
116
178
  ...automation,
117
179
  openclawCron: {
@@ -121,6 +183,21 @@ export function getAutomationConfig(config) {
121
183
  timezone: String(openclawCron.timezone || process.env.TZ || 'UTC').trim() || 'UTC',
122
184
  name: String(openclawCron.name || 'OpenClaw Growth Engineer scheduler').trim() ||
123
185
  'OpenClaw Growth Engineer scheduler',
186
+ delivery: {
187
+ enabled: openclawCronDelivery.enabled !== false && openclawCronDeliveryMode !== 'none',
188
+ mode: openclawCronDeliveryMode,
189
+ channel: String(openclawCronDelivery.channel || 'last').trim() || 'last',
190
+ to: String(openclawCronDelivery.to || '').trim(),
191
+ },
192
+ },
193
+ hermesCron: {
194
+ enabled: hermesCron.enabled !== false,
195
+ schedule: String(hermesCron.schedule || openclawCron.schedule || '*/30 * * * *').trim() || '*/30 * * * *',
196
+ name: String(hermesCron.name || 'Hermes Growth Engineer scheduler').trim() ||
197
+ 'Hermes Growth Engineer scheduler',
198
+ skill: String(hermesCron.skill || 'growth-engineer').trim() || 'growth-engineer',
199
+ deliver: String(hermesCron.deliver || 'local').trim() || 'local',
200
+ workdir: typeof hermesCron.workdir === 'string' ? hermesCron.workdir.trim() : '',
124
201
  },
125
202
  };
126
203
  }
@@ -148,12 +225,417 @@ export function buildOpenClawGrowthSystemEvent(configPath, config = {}) {
148
225
  return [
149
226
  'Run OpenClaw Growth Engineer for this workspace.',
150
227
  `Execute: ${command}`,
151
- 'The runner is the source of truth for connector health, daily, weekly, monthly, quarterly, six-month, and yearly cadence decisions.',
228
+ 'Execute only that runner command. Do not run sudo, setup, install, cron repair, or other shell commands from this scheduled event.',
229
+ 'If any dependency asks for sudo or a password, stop and report the blocked non-interactive command instead of prompting.',
230
+ 'The runner is the source of truth for connector health, 90-minute production healthchecks, daily, weekly, monthly, 3-month, six-month, and yearly cadence decisions.',
152
231
  `After the command finishes, inspect ${statePath} and ${proofPath}.`,
232
+ 'Always let the runner write state and proof logs. For social/chat output, only summarize new or changed findings, connector-health changes, delivery failures, or runner failures.',
233
+ 'If the runner completes with skippedReason cadence_not_due, issue_set_unchanged, or no_data_change, reply exactly HEARTBEAT_OK and do not repeat old findings.',
234
+ 'Persisted connectorHealth.lastStatusOk=false is not by itself a new event. If the latest proof says connector_health_not_due, connector_health_unchanged, or socialOutput HEARTBEAT_OK, reply exactly HEARTBEAT_OK.',
153
235
  'If connector health is healthy, no production issue is found, and no actionable growth finding was generated, reply HEARTBEAT_OK.',
154
236
  `Expected OpenClaw cron schedule: ${automation.openclawCron.schedule} ${automation.openclawCron.timezone}.`,
155
237
  ].join(' ');
156
238
  }
239
+ export function buildOpenClawCronAddCommand(configPath, config = {}) {
240
+ const automation = getAutomationConfig(config).openclawCron;
241
+ const eventText = buildOpenClawGrowthSystemEvent(configPath, config);
242
+ const command = [
243
+ 'openclaw cron add',
244
+ '--name',
245
+ quote(automation.name),
246
+ '--cron',
247
+ quote(automation.schedule),
248
+ '--tz',
249
+ quote(automation.timezone),
250
+ '--session',
251
+ automation.mode === 'isolated' ? 'isolated' : 'main',
252
+ automation.mode === 'isolated' ? '--message' : '--system-event',
253
+ quote(eventText),
254
+ ];
255
+ if (automation.delivery.enabled) {
256
+ command.push('--announce', '--channel', quote(automation.delivery.channel));
257
+ if (automation.delivery.to) {
258
+ command.push('--to', quote(automation.delivery.to));
259
+ }
260
+ }
261
+ else {
262
+ command.push('--no-deliver');
263
+ }
264
+ if (automation.mode !== 'isolated') {
265
+ command.push('--wake now');
266
+ }
267
+ return command.join(' ');
268
+ }
269
+ function getOpenClawCronJobId(job) {
270
+ if (!job || typeof job !== 'object')
271
+ return '';
272
+ for (const key of ['id', 'jobId', 'job_id', 'uuid']) {
273
+ const value = job[key];
274
+ if (typeof value === 'string' && value.trim())
275
+ return value.trim();
276
+ }
277
+ return '';
278
+ }
279
+ export function buildOpenClawCronEditDeliveryCommand(job, config = {}) {
280
+ const automation = getAutomationConfig(config).openclawCron;
281
+ const jobId = typeof job === 'string' ? job.trim() : getOpenClawCronJobId(job);
282
+ if (!jobId)
283
+ return '';
284
+ const command = ['openclaw cron edit', quote(jobId)];
285
+ if (automation.delivery.enabled) {
286
+ command.push('--announce', '--channel', quote(automation.delivery.channel));
287
+ if (automation.delivery.to) {
288
+ command.push('--to', quote(automation.delivery.to));
289
+ }
290
+ command.push('--best-effort-deliver');
291
+ }
292
+ else {
293
+ command.push('--no-deliver');
294
+ }
295
+ return command.join(' ');
296
+ }
297
+ export function getOpenClawCronEditDeliveryCommandFromInspection(inspection, config = {}) {
298
+ const jobs = Array.isArray(inspection?.jobs) ? inspection.jobs : [];
299
+ for (const job of jobs) {
300
+ const command = buildOpenClawCronEditDeliveryCommand(job, config);
301
+ if (command)
302
+ return command;
303
+ }
304
+ return '';
305
+ }
306
+ function normalizeCronComparable(value) {
307
+ return String(value || '')
308
+ .replace(/\\"/g, '"')
309
+ .replace(/\\'/g, "'")
310
+ .replace(/\s+/g, ' ')
311
+ .trim();
312
+ }
313
+ function collectObjects(value, result = []) {
314
+ if (!value || typeof value !== 'object')
315
+ return result;
316
+ if (Array.isArray(value)) {
317
+ for (const item of value)
318
+ collectObjects(item, result);
319
+ return result;
320
+ }
321
+ result.push(value);
322
+ for (const item of Object.values(value))
323
+ collectObjects(item, result);
324
+ return result;
325
+ }
326
+ function parseJsonMaybe(value) {
327
+ const text = String(value || '').trim();
328
+ if (!text)
329
+ return null;
330
+ try {
331
+ return JSON.parse(text);
332
+ }
333
+ catch {
334
+ const starts = [text.indexOf('{'), text.indexOf('[')].filter((index) => index >= 0);
335
+ if (starts.length === 0)
336
+ return null;
337
+ try {
338
+ return JSON.parse(text.slice(Math.min(...starts)));
339
+ }
340
+ catch {
341
+ return null;
342
+ }
343
+ }
344
+ }
345
+ export function buildOpenClawCronVerification(configPath, config = {}) {
346
+ const automation = getAutomationConfig(config).openclawCron;
347
+ const statePath = deriveStatePathFromConfigPath(configPath);
348
+ const proofPath = deriveSchedulerProofPathFromStatePath(statePath);
349
+ return {
350
+ name: automation.name,
351
+ schedule: automation.schedule,
352
+ timezone: automation.timezone,
353
+ delivery: automation.delivery,
354
+ statePath,
355
+ proofPath,
356
+ requiredFragments: [
357
+ automation.name,
358
+ automation.schedule,
359
+ automation.timezone,
360
+ 'Run OpenClaw Growth Engineer for this workspace',
361
+ 'openclaw-growth-runner.mjs',
362
+ '--config',
363
+ configPath,
364
+ '--state',
365
+ statePath,
366
+ proofPath,
367
+ 'HEARTBEAT_OK',
368
+ ],
369
+ };
370
+ }
371
+ function hasExpectedOpenClawCronDelivery(job, verification) {
372
+ const expected = verification?.delivery || {};
373
+ const delivery = job && typeof job === 'object' && job.delivery && typeof job.delivery === 'object'
374
+ ? job.delivery
375
+ : null;
376
+ if (!expected.enabled) {
377
+ if (!delivery)
378
+ return true;
379
+ const mode = String(delivery.mode || '').trim().toLowerCase();
380
+ return delivery.enabled === false || mode === 'none' || mode === 'disabled';
381
+ }
382
+ if (delivery) {
383
+ const mode = String(delivery.mode || '').trim().toLowerCase();
384
+ if (delivery.enabled === false || mode === 'none' || mode === 'disabled')
385
+ return false;
386
+ if (mode && mode !== 'announce')
387
+ return false;
388
+ const expectedChannel = String(expected.channel || '').trim();
389
+ const actualChannel = String(delivery.channel || '').trim();
390
+ if (expectedChannel && expectedChannel !== 'last' && actualChannel !== expectedChannel)
391
+ return false;
392
+ const expectedTo = String(expected.to || '').trim();
393
+ if (expectedTo && String(delivery.to || '').trim() !== expectedTo)
394
+ return false;
395
+ return true;
396
+ }
397
+ const blob = normalizeCronComparable(JSON.stringify(job || {}));
398
+ const required = ['announce'];
399
+ const expectedChannel = String(expected.channel || '').trim();
400
+ if (expectedChannel && expectedChannel !== 'last')
401
+ required.push(expectedChannel);
402
+ if (expected.to)
403
+ required.push(String(expected.to));
404
+ return required.every((fragment) => blob.includes(normalizeCronComparable(fragment)));
405
+ }
406
+ export function evaluateOpenClawCronRecords(records, verification) {
407
+ const objects = collectObjects(records);
408
+ const directJobs = objects.filter((job) => {
409
+ const directName = typeof job.name === 'string' ? job.name : typeof job.title === 'string' ? job.title : '';
410
+ return directName === verification.name;
411
+ });
412
+ const jobs = directJobs.length > 0 ? directJobs : objects.filter((job) => {
413
+ return normalizeCronComparable(JSON.stringify(job)).includes(normalizeCronComparable(verification.name));
414
+ });
415
+ if (jobs.length === 0) {
416
+ return { exists: false, verified: false, reason: 'not_found', jobs: [] };
417
+ }
418
+ let deliveryMismatch = false;
419
+ for (const job of jobs) {
420
+ const blob = normalizeCronComparable(JSON.stringify(job));
421
+ const missing = verification.requiredFragments.filter((fragment) => !blob.includes(normalizeCronComparable(fragment)));
422
+ if (missing.length === 0) {
423
+ if (hasExpectedOpenClawCronDelivery(job, verification)) {
424
+ return { exists: true, verified: true, reason: 'verified', jobs };
425
+ }
426
+ deliveryMismatch = true;
427
+ }
428
+ }
429
+ return { exists: true, verified: false, reason: deliveryMismatch ? 'delivery_mismatch' : 'missing_required_fragments', jobs };
430
+ }
431
+ export function evaluateOpenClawCronText(text, verification) {
432
+ const blob = normalizeCronComparable(text);
433
+ if (!blob.includes(normalizeCronComparable(verification.name))) {
434
+ return { exists: false, verified: false, reason: 'not_found' };
435
+ }
436
+ const missing = verification.requiredFragments.filter((fragment) => !blob.includes(normalizeCronComparable(fragment)));
437
+ return {
438
+ exists: true,
439
+ verified: missing.length === 0,
440
+ reason: missing.length === 0 ? 'verified' : 'text_listing_unverified',
441
+ };
442
+ }
443
+ export async function inspectOpenClawCronInstall({ configPath, config = {}, runCommand, readFile, home = process.env.HOME, }) {
444
+ const verification = buildOpenClawCronVerification(configPath, config);
445
+ for (const command of ['openclaw cron list --json', 'openclaw cron list --format json']) {
446
+ const result = await runCommand(command, 30_000);
447
+ if (!result?.ok)
448
+ continue;
449
+ const parsed = parseJsonMaybe(result.stdout);
450
+ if (!parsed)
451
+ continue;
452
+ const evaluated = evaluateOpenClawCronRecords(parsed, verification);
453
+ if (evaluated.exists) {
454
+ return { ...evaluated, source: command, verification };
455
+ }
456
+ }
457
+ if (readFile && home) {
458
+ const jobStorePaths = [
459
+ path.join(home, '.openclaw', 'cron', 'jobs.json'),
460
+ path.join(home, '.config', 'openclaw', 'cron', 'jobs.json'),
461
+ ];
462
+ for (const filePath of jobStorePaths) {
463
+ try {
464
+ const parsed = parseJsonMaybe(await readFile(filePath, 'utf8'));
465
+ if (!parsed)
466
+ continue;
467
+ const evaluated = evaluateOpenClawCronRecords(parsed, verification);
468
+ if (evaluated.exists) {
469
+ return { ...evaluated, source: filePath, verification };
470
+ }
471
+ }
472
+ catch {
473
+ // Ignore missing or unreadable implementation-specific stores.
474
+ }
475
+ }
476
+ }
477
+ const list = await runCommand('openclaw cron list', 30_000);
478
+ if (list?.ok) {
479
+ const evaluated = evaluateOpenClawCronText(list.stdout, verification);
480
+ if (evaluated.exists) {
481
+ return { ...evaluated, source: 'openclaw cron list', verification };
482
+ }
483
+ }
484
+ return { exists: false, verified: false, reason: 'not_found', source: 'openclaw cron list', verification };
485
+ }
486
+ function normalizeOpenClawCronDeliveryForStore(delivery) {
487
+ return {
488
+ mode: 'announce',
489
+ channel: String(delivery?.channel || 'last').trim() || 'last',
490
+ to: String(delivery?.to || '').trim(),
491
+ };
492
+ }
493
+ function repairOpenClawCronDeliveryRecords(records, verification) {
494
+ let repaired = 0;
495
+ const objects = collectObjects(records);
496
+ for (const job of objects) {
497
+ if (!job || typeof job !== 'object')
498
+ continue;
499
+ const directName = typeof job.name === 'string' ? job.name : typeof job.title === 'string' ? job.title : '';
500
+ if (directName !== verification.name)
501
+ continue;
502
+ const blob = normalizeCronComparable(JSON.stringify(job));
503
+ const missing = verification.requiredFragments.filter((fragment) => !blob.includes(normalizeCronComparable(fragment)));
504
+ if (missing.length > 0 || hasExpectedOpenClawCronDelivery(job, verification))
505
+ continue;
506
+ job.delivery = normalizeOpenClawCronDeliveryForStore(verification.delivery);
507
+ repaired += 1;
508
+ }
509
+ return repaired;
510
+ }
511
+ export async function repairOpenClawCronDeliveryStore({ configPath, config = {}, readFile, writeFile, home = process.env.HOME, }) {
512
+ if (!readFile || !writeFile || !home) {
513
+ return { ok: false, repaired: false, reason: 'missing_io' };
514
+ }
515
+ const verification = buildOpenClawCronVerification(configPath, config);
516
+ const jobStorePaths = [
517
+ path.join(home, '.openclaw', 'cron', 'jobs.json'),
518
+ path.join(home, '.config', 'openclaw', 'cron', 'jobs.json'),
519
+ ];
520
+ for (const filePath of jobStorePaths) {
521
+ let raw = '';
522
+ let parsed = null;
523
+ try {
524
+ raw = await readFile(filePath, 'utf8');
525
+ parsed = parseJsonMaybe(raw);
526
+ }
527
+ catch {
528
+ continue;
529
+ }
530
+ if (!parsed)
531
+ continue;
532
+ const repairedCount = repairOpenClawCronDeliveryRecords(parsed, verification);
533
+ if (repairedCount === 0)
534
+ continue;
535
+ await writeFile(filePath, `${JSON.stringify(parsed, null, 2)}\n`, 'utf8');
536
+ return { ok: true, repaired: true, repairedCount, path: filePath, verification };
537
+ }
538
+ return { ok: true, repaired: false, reason: 'not_found', verification };
539
+ }
540
+ export function buildHermesGrowthPrompt(configPath, config = {}) {
541
+ const statePath = deriveStatePathFromConfigPath(configPath);
542
+ const proofPath = deriveSchedulerProofPathFromStatePath(statePath);
543
+ const command = buildGrowthRunnerCommand(configPath, statePath);
544
+ const automation = getAutomationConfig(config);
545
+ return [
546
+ 'Run Growth Engineer for this workspace.',
547
+ `Execute: ${command}`,
548
+ 'The runner is the source of truth for connector health, daily, weekly, monthly, quarterly, six-month, and yearly cadence decisions.',
549
+ `After the command finishes, inspect ${statePath} and ${proofPath}.`,
550
+ 'For social/chat output, only summarize new or changed findings, connector-health changes, delivery failures, or runner failures.',
551
+ 'Persisted connectorHealth.lastStatusOk=false is not by itself a new event. If the latest proof says issue_set_unchanged, no_data_change, connector_health_not_due, connector_health_unchanged, or socialOutput HEARTBEAT_OK, reply exactly HEARTBEAT_OK.',
552
+ 'If connector health is healthy, no production issue is found, and no actionable growth finding was generated, reply HEARTBEAT_OK.',
553
+ `Expected Hermes cron schedule: ${automation.hermesCron.schedule}.`,
554
+ ].join(' ');
555
+ }
556
+ export function buildHermesCronCreateCommand(configPath, config = {}, options = {}) {
557
+ const automation = getAutomationConfig(config).hermesCron;
558
+ const workdir = path.resolve(options.workdir || automation.workdir || process.cwd());
559
+ const prompt = buildHermesGrowthPrompt(configPath, {
560
+ ...config,
561
+ automation: {
562
+ ...config?.automation,
563
+ hermesCron: automation,
564
+ },
565
+ });
566
+ return [
567
+ 'hermes cron create',
568
+ quote(automation.schedule),
569
+ quote(prompt),
570
+ '--name',
571
+ quote(automation.name),
572
+ '--skill',
573
+ quote(automation.skill),
574
+ '--deliver',
575
+ quote(automation.deliver),
576
+ '--workdir',
577
+ quote(workdir),
578
+ ].join(' ');
579
+ }
580
+ export function buildHermesCronVerification(configPath, config = {}, options = {}) {
581
+ const automation = getAutomationConfig(config).hermesCron;
582
+ const statePath = deriveStatePathFromConfigPath(configPath);
583
+ const proofPath = deriveSchedulerProofPathFromStatePath(statePath);
584
+ const workdir = path.resolve(options.workdir || automation.workdir || process.cwd());
585
+ return {
586
+ name: automation.name,
587
+ schedule: automation.schedule,
588
+ workdir,
589
+ statePath,
590
+ proofPath,
591
+ requiredFragments: [
592
+ automation.name,
593
+ automation.schedule,
594
+ automation.skill,
595
+ automation.deliver,
596
+ workdir,
597
+ 'Run Growth Engineer for this workspace',
598
+ 'openclaw-growth-runner.mjs',
599
+ '--config',
600
+ configPath,
601
+ '--state',
602
+ statePath,
603
+ proofPath,
604
+ 'HEARTBEAT_OK',
605
+ ],
606
+ };
607
+ }
608
+ export async function inspectHermesCronInstall({ configPath, config = {}, runCommand, readFile, home = process.env.HOME, workdir = process.cwd(), }) {
609
+ const verification = buildHermesCronVerification(configPath, config, { workdir });
610
+ if (readFile && home) {
611
+ const jobStorePaths = [
612
+ path.join(home, '.hermes', 'cron', 'jobs.json'),
613
+ path.join(home, '.config', 'hermes', 'cron', 'jobs.json'),
614
+ ];
615
+ for (const filePath of jobStorePaths) {
616
+ try {
617
+ const parsed = parseJsonMaybe(await readFile(filePath, 'utf8'));
618
+ if (!parsed)
619
+ continue;
620
+ const evaluated = evaluateOpenClawCronRecords(parsed, verification);
621
+ if (evaluated.exists) {
622
+ return { ...evaluated, source: filePath, verification };
623
+ }
624
+ }
625
+ catch {
626
+ // Ignore missing or unreadable implementation-specific stores.
627
+ }
628
+ }
629
+ }
630
+ const list = await runCommand('hermes cron list', 30_000);
631
+ if (list?.ok) {
632
+ const evaluated = evaluateOpenClawCronText(list.stdout, verification);
633
+ if (evaluated.exists) {
634
+ return { ...evaluated, source: 'hermes cron list', verification };
635
+ }
636
+ }
637
+ return { exists: false, verified: false, reason: 'not_found', source: 'hermes cron list', verification };
638
+ }
157
639
  export function buildExtraSourceConfig(service, options = {}) {
158
640
  const normalizedService = normalizeServiceType(service);
159
641
  const key = normalizeSourceKey(options.key || normalizedService || `extra_${Date.now()}`);
@@ -1 +1 @@
1
- {"version":3,"file":"openclaw-growth-shared.mjs","sourceRoot":"","sources":["../../src/runtime/openclaw-growth-shared.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openclaw-growth-shared.mjs","sourceRoot":"","sources":["../../src/runtime/openclaw-growth-shared.mts"],"names":[],"mappings":"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"}