@analyticscli/growth-engineer 0.1.0-preview.14 → 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.
- package/dist/config.d.ts +775 -22
- package/dist/config.js +39 -5
- package/dist/config.js.map +1 -1
- package/dist/index.js +134 -21
- package/dist/index.js.map +1 -1
- package/dist/runtime/export-asc-summary.mjs +1 -1
- package/dist/runtime/export-asc-summary.mjs.map +1 -1
- package/dist/runtime/export-coolify-summary.d.mts +2 -0
- package/dist/runtime/export-coolify-summary.mjs +230 -0
- package/dist/runtime/export-coolify-summary.mjs.map +1 -0
- package/dist/runtime/export-paddle-summary.d.mts +2 -0
- package/dist/runtime/export-paddle-summary.mjs +170 -0
- package/dist/runtime/export-paddle-summary.mjs.map +1 -0
- package/dist/runtime/export-sentry-summary.mjs +265 -38
- package/dist/runtime/export-sentry-summary.mjs.map +1 -1
- package/dist/runtime/export-seo-summary.d.mts +2 -0
- package/dist/runtime/export-seo-summary.mjs +503 -0
- package/dist/runtime/export-seo-summary.mjs.map +1 -0
- package/dist/runtime/openclaw-exporters-lib.d.mts +50 -0
- package/dist/runtime/openclaw-exporters-lib.mjs +761 -57
- package/dist/runtime/openclaw-exporters-lib.mjs.map +1 -1
- package/dist/runtime/openclaw-growth-engineer.mjs +163 -4
- package/dist/runtime/openclaw-growth-engineer.mjs.map +1 -1
- package/dist/runtime/openclaw-growth-env.mjs +5 -0
- package/dist/runtime/openclaw-growth-env.mjs.map +1 -1
- package/dist/runtime/openclaw-growth-preflight.mjs +399 -26
- package/dist/runtime/openclaw-growth-preflight.mjs.map +1 -1
- package/dist/runtime/openclaw-growth-runner.mjs +564 -69
- package/dist/runtime/openclaw-growth-runner.mjs.map +1 -1
- package/dist/runtime/openclaw-growth-shared.d.mts +150 -2
- package/dist/runtime/openclaw-growth-shared.mjs +489 -7
- package/dist/runtime/openclaw-growth-shared.mjs.map +1 -1
- package/dist/runtime/openclaw-growth-start.mjs +584 -48
- package/dist/runtime/openclaw-growth-start.mjs.map +1 -1
- package/dist/runtime/openclaw-growth-status.mjs +82 -6
- package/dist/runtime/openclaw-growth-status.mjs.map +1 -1
- package/dist/runtime/openclaw-growth-wizard.mjs +1501 -105
- package/dist/runtime/openclaw-growth-wizard.mjs.map +1 -1
- package/package.json +3 -1
- 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: [
|
|
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
|
-
'
|
|
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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"}
|