@palmyr/cli 1.9.1 → 1.10.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.
@@ -0,0 +1,37 @@
1
+ export interface MonitorOpts {
2
+ intervalSeconds: number;
3
+ accounts: string[];
4
+ }
5
+ export interface TickResult {
6
+ account: string;
7
+ ok: boolean;
8
+ error?: string;
9
+ }
10
+ /**
11
+ * One tick: run `tiktok analytics <acct>` for each account via our own CLI.
12
+ * Reuses the full tested path (auth, scrape, categorize, snapshot). Returns a
13
+ * per-account ok/error report.
14
+ */
15
+ export declare function monitorTick(cliPath: string, accounts: string[]): TickResult[];
16
+ export declare function isMonitorRunning(): {
17
+ pid: number | null;
18
+ running: boolean;
19
+ };
20
+ export declare function monitorStatus(): {
21
+ pid: number | null;
22
+ running: boolean;
23
+ lastTick: string | null;
24
+ opts: MonitorOpts | null;
25
+ lastResults?: TickResult[];
26
+ };
27
+ export declare function startMonitor(cliPath: string, opts: MonitorOpts): {
28
+ pid: number;
29
+ };
30
+ export declare function stopMonitor(): Promise<{
31
+ wasRunning: boolean;
32
+ pid: number | null;
33
+ }>;
34
+ /** The detached loop (invoked via `tiktok monitor _run`). NOT user-facing. */
35
+ export declare function runMonitorLoop(cliPath: string, opts: MonitorOpts): Promise<void>;
36
+ /** Parse "6h" / "30m" / "45s" / bare-seconds → seconds. */
37
+ export declare function parseInterval(s: string | undefined, fallback?: number): number;
@@ -0,0 +1,147 @@
1
+ /**
2
+ * Monitor-job — the unattended half of the self-learning loop. Periodically
3
+ * runs `tiktok analytics <acct>` (which scrapes + categorizes + snapshots) for
4
+ * the monitored accounts, so `tiktok review` always has fresh data + a trend.
5
+ *
6
+ * Mirrors the wallet daemon: one-shot `tick`, detached `start` (re-invokes the
7
+ * CLI in `_run` mode), `stop`, `status`. State lives under ~/.palmyr/social/monitor.
8
+ * Each tick reuses the tested analytics command (shelled out) so auth + the SDK
9
+ * path are identical — the daemon only owns the schedule + account list + state.
10
+ */
11
+ import { spawn, spawnSync } from 'child_process';
12
+ import { existsSync, mkdirSync, readFileSync, writeFileSync, unlinkSync, appendFileSync } from 'fs';
13
+ import { homedir } from 'os';
14
+ import { join } from 'path';
15
+ function socialDir() { return process.env.PALMYR_SOCIAL_PATH || join(homedir(), '.palmyr', 'social'); }
16
+ function monDir() { return join(socialDir(), 'monitor'); }
17
+ function pidFile() { return join(monDir(), 'daemon.pid'); }
18
+ function statusFile() { return join(monDir(), 'daemon.status.json'); }
19
+ function logFile() { return join(monDir(), 'daemon.log'); }
20
+ function ensureDirs() { const d = monDir(); if (!existsSync(d))
21
+ mkdirSync(d, { recursive: true }); }
22
+ /**
23
+ * One tick: run `tiktok analytics <acct>` for each account via our own CLI.
24
+ * Reuses the full tested path (auth, scrape, categorize, snapshot). Returns a
25
+ * per-account ok/error report.
26
+ */
27
+ export function monitorTick(cliPath, accounts) {
28
+ const results = [];
29
+ for (const account of accounts) {
30
+ const r = spawnSync(process.argv[0], [cliPath, 'tiktok', 'analytics', account, '--json'], { encoding: 'utf8', timeout: 180000, env: process.env });
31
+ const ok = r.status === 0;
32
+ results.push({ account, ok, error: ok ? undefined : String(r.stderr || r.stdout || `exit ${r.status}`).trim().slice(0, 200) });
33
+ }
34
+ return results;
35
+ }
36
+ export function isMonitorRunning() {
37
+ if (!existsSync(pidFile()))
38
+ return { pid: null, running: false };
39
+ const pid = Number(readFileSync(pidFile(), 'utf8').trim());
40
+ if (!pid || !Number.isFinite(pid))
41
+ return { pid: null, running: false };
42
+ try {
43
+ process.kill(pid, 0);
44
+ return { pid, running: true };
45
+ }
46
+ catch {
47
+ return { pid, running: false };
48
+ }
49
+ }
50
+ export function monitorStatus() {
51
+ const { pid, running } = isMonitorRunning();
52
+ let lastTick = null, opts = null, lastResults;
53
+ if (existsSync(statusFile())) {
54
+ try {
55
+ const d = JSON.parse(readFileSync(statusFile(), 'utf8'));
56
+ lastTick = d.lastTick ?? null;
57
+ opts = d.opts ?? null;
58
+ lastResults = d.lastResults;
59
+ }
60
+ catch { }
61
+ }
62
+ return { pid, running, lastTick, opts, lastResults };
63
+ }
64
+ export function startMonitor(cliPath, opts) {
65
+ const st = isMonitorRunning();
66
+ if (st.running)
67
+ throw new Error(`Monitor already running (PID ${st.pid}). Run \`palmyr tiktok monitor stop\` first.`);
68
+ if (existsSync(pidFile())) {
69
+ try {
70
+ unlinkSync(pidFile());
71
+ }
72
+ catch { }
73
+ }
74
+ ensureDirs();
75
+ const args = [cliPath, 'tiktok', 'monitor', '_run', '--interval', String(opts.intervalSeconds)];
76
+ if (opts.accounts.length)
77
+ args.push('--account', opts.accounts.join(','));
78
+ const child = spawn(process.argv[0], args, { detached: true, stdio: 'ignore', windowsHide: true, env: process.env });
79
+ if (!child.pid)
80
+ throw new Error('Failed to spawn monitor child process.');
81
+ child.unref();
82
+ writeFileSync(pidFile(), String(child.pid));
83
+ writeFileSync(statusFile(), JSON.stringify({ lastTick: null, opts, pid: child.pid }, null, 2));
84
+ return { pid: child.pid };
85
+ }
86
+ export async function stopMonitor() {
87
+ const st = isMonitorRunning();
88
+ if (!st.running) {
89
+ if (existsSync(pidFile())) {
90
+ try {
91
+ unlinkSync(pidFile());
92
+ }
93
+ catch { }
94
+ }
95
+ return { wasRunning: false, pid: st.pid ?? null };
96
+ }
97
+ try {
98
+ process.kill(st.pid, 'SIGTERM');
99
+ }
100
+ catch { }
101
+ for (let i = 0; i < 20; i++) {
102
+ await new Promise(r => setTimeout(r, 100));
103
+ if (!isMonitorRunning().running)
104
+ break;
105
+ }
106
+ if (existsSync(pidFile())) {
107
+ try {
108
+ unlinkSync(pidFile());
109
+ }
110
+ catch { }
111
+ }
112
+ return { wasRunning: true, pid: st.pid };
113
+ }
114
+ /** The detached loop (invoked via `tiktok monitor _run`). NOT user-facing. */
115
+ export async function runMonitorLoop(cliPath, opts) {
116
+ ensureDirs();
117
+ let exit = false;
118
+ const onExit = () => { exit = true; };
119
+ process.on('SIGTERM', onExit);
120
+ process.on('SIGINT', onExit);
121
+ writeFileSync(pidFile(), String(process.pid));
122
+ while (!exit) {
123
+ const start = Date.now();
124
+ try {
125
+ const lastResults = monitorTick(cliPath, opts.accounts);
126
+ writeFileSync(statusFile(), JSON.stringify({ lastTick: new Date().toISOString(), opts, pid: process.pid, lastResults }, null, 2));
127
+ }
128
+ catch (e) {
129
+ appendFileSync(logFile(), `[${new Date().toISOString()}] ERROR: ${e?.message ?? String(e)}\n`);
130
+ }
131
+ const sleepEnd = start + opts.intervalSeconds * 1000;
132
+ while (Date.now() < sleepEnd && !exit)
133
+ await new Promise(r => setTimeout(r, 200));
134
+ }
135
+ }
136
+ /** Parse "6h" / "30m" / "45s" / bare-seconds → seconds. */
137
+ export function parseInterval(s, fallback = 21600) {
138
+ if (!s)
139
+ return fallback;
140
+ const m = String(s).trim().match(/^(\d+(?:\.\d+)?)(s|m|h|d)?$/i);
141
+ if (!m)
142
+ return fallback;
143
+ const v = parseFloat(m[1]);
144
+ const u = (m[2] || 's').toLowerCase();
145
+ return Math.round(v * (u === 'd' ? 86400 : u === 'h' ? 3600 : u === 'm' ? 60 : 1));
146
+ }
147
+ //# sourceMappingURL=social-monitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"social-monitor.js","sourceRoot":"","sources":["../social-monitor.ts"],"names":[],"mappings":"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"}
@@ -51,6 +51,11 @@ export interface SocialAccountFile {
51
51
  * the server can read it without decrypting the vault blob.
52
52
  */
53
53
  country?: string;
54
+ /**
55
+ * Folder-like grouping tag for organizing many accounts under one label
56
+ * (e.g. a brand or cohort). Local-only metadata; mirrors wallet foldering.
57
+ */
58
+ tag?: string;
54
59
  meta: {
55
60
  acquired_at: string;
56
61
  acquisition_source: 'import' | 'accsmarket' | 'pool' | string;
@@ -71,17 +76,24 @@ export interface SocialAccountSummary {
71
76
  last_action_at: string | null;
72
77
  proxy_session_id?: string;
73
78
  country?: string;
79
+ tag?: string;
74
80
  }
75
81
  export declare function importAccount(platform: Platform, username: string, credentials: SocialCredentials, opts?: {
76
82
  source?: string;
77
83
  notes?: string;
78
84
  proxy_session_id?: string;
79
85
  country?: string;
86
+ tag?: string;
80
87
  }): SocialAccountSummary;
81
- export declare function listAccounts(platform?: Platform): SocialAccountSummary[];
88
+ export declare function listAccounts(platform?: Platform, tag?: string): SocialAccountSummary[];
82
89
  export declare function getAccount(platform: Platform, username: string): SocialAccountSummary | undefined;
83
90
  export declare function removeAccount(platform: Platform, username: string): void;
84
91
  export declare function renameAccount(platform: Platform, oldUsername: string, newUsername: string): SocialAccountSummary;
92
+ /**
93
+ * Assign / change / clear an account's folder-like grouping tag. Pass null to
94
+ * clear. Mirrors `wallet tag`. Local-only metadata — the server never sees it.
95
+ */
96
+ export declare function tagAccount(platform: Platform, username: string, tag: string | null): SocialAccountSummary;
85
97
  /**
86
98
  * Decrypt and return credentials. Requires the session secret to be present
87
99
  * in the OS credential store — i.e. the account must have been created on
@@ -80,7 +80,10 @@ function findById(id) {
80
80
  }
81
81
  function writeAccount(account) {
82
82
  ensureDirs();
83
- writeFileSync(accountPath(account.id), JSON.stringify(account, null, 2));
83
+ // 0o600 to match saveSession — the account blob carries the AES-GCM
84
+ // cred_crypto ciphertext plus username/proxy metadata; don't leave it
85
+ // world-readable.
86
+ writeFileSync(accountPath(account.id), JSON.stringify(account, null, 2), { mode: 0o600 });
84
87
  }
85
88
  // ─── Public API ────────────────────────────────────────────────────────────
86
89
  export function importAccount(platform, username, credentials, opts = {}) {
@@ -98,6 +101,7 @@ export function importAccount(platform, username, credentials, opts = {}) {
98
101
  cred_crypto: encrypt(JSON.stringify(credentials), sessionSecret),
99
102
  proxy_session_id: opts.proxy_session_id,
100
103
  country: opts.country ? opts.country.toLowerCase() : undefined,
104
+ tag: opts.tag || undefined,
101
105
  meta: {
102
106
  acquired_at: new Date().toISOString(),
103
107
  acquisition_source: opts.source || 'import',
@@ -120,11 +124,13 @@ function summarise(acc) {
120
124
  last_action_at: acc.meta.last_action_at,
121
125
  proxy_session_id: acc.proxy_session_id,
122
126
  country: acc.country,
127
+ tag: acc.tag,
123
128
  };
124
129
  }
125
- export function listAccounts(platform) {
130
+ export function listAccounts(platform, tag) {
126
131
  return readAllAccounts()
127
132
  .filter(a => !platform || a.platform === platform)
133
+ .filter(a => !tag || a.tag === tag)
128
134
  .map(summarise);
129
135
  }
130
136
  export function getAccount(platform, username) {
@@ -154,6 +160,18 @@ export function renameAccount(platform, oldUsername, newUsername) {
154
160
  writeAccount(acc);
155
161
  return summarise(acc);
156
162
  }
163
+ /**
164
+ * Assign / change / clear an account's folder-like grouping tag. Pass null to
165
+ * clear. Mirrors `wallet tag`. Local-only metadata — the server never sees it.
166
+ */
167
+ export function tagAccount(platform, username, tag) {
168
+ const acc = findByUsername(platform, username);
169
+ if (!acc)
170
+ throw new Error(`${platform} account "${username}" not found locally`);
171
+ acc.tag = tag || undefined;
172
+ writeAccount(acc);
173
+ return summarise(acc);
174
+ }
157
175
  /**
158
176
  * Decrypt and return credentials. Requires the session secret to be present
159
177
  * in the OS credential store — i.e. the account must have been created on
@@ -1 +1 @@
1
- {"version":3,"file":"social-vault.js","sourceRoot":"","sources":["../social-vault.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"social-vault.js","sourceRoot":"","sources":["../social-vault.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /** Cookie shape the server's `openAuthenticatedSession` expects (Playwright addCookies). */
2
+ export interface HarvestedCookie {
3
+ name: string;
4
+ value: string;
5
+ domain: string;
6
+ path: string;
7
+ expires?: number;
8
+ httpOnly?: boolean;
9
+ secure?: boolean;
10
+ sameSite?: "Strict" | "Lax" | "None";
11
+ }
12
+ export interface ConnectOptions {
13
+ /** ISO-3166 alpha-2 (informational here; the account already carries it). */
14
+ country?: string;
15
+ /** Hard ceiling on how long we wait for the human to finish login. */
16
+ timeoutMs?: number;
17
+ /** Explicit browser binary; overrides auto-detection and PALMYR_BROWSER_PATH. */
18
+ browserPath?: string;
19
+ /**
20
+ * Launch the browser with --no-sandbox. Auto-enabled when running as root on
21
+ * Linux (Chromium refuses to start the sandbox as root and exits instantly);
22
+ * set explicitly for other headless / CI environments.
23
+ */
24
+ noSandbox?: boolean;
25
+ /**
26
+ * Use TikTok's QR login instead of a typed login. Opens a real (headed)
27
+ * browser on the QR page — headed because TikTok refuses QR-auth into a
28
+ * headless session — extracts the QR (PNG + data-URL) for a human to scan with
29
+ * the TikTok app, then captures the session. No captcha, no password. On a
30
+ * headless server, run under a virtual display (xvfb).
31
+ */
32
+ qr?: boolean;
33
+ /**
34
+ * Called once with the QR data-URL the moment it's extracted (QR mode), so the
35
+ * caller can host it / relay a link while connect keeps waiting for the scan.
36
+ */
37
+ onQr?: (dataUrl: string) => void | Promise<void>;
38
+ /** Human-facing progress lines. Caller routes these to stderr so stdout stays clean JSON. */
39
+ onProgress?: (msg: string) => void;
40
+ }
41
+ export interface ConnectResult {
42
+ success: boolean;
43
+ cookies?: HarvestedCookie[];
44
+ cookiesCaptured?: number;
45
+ sessionidPresent?: boolean;
46
+ /** Which browser we drove (chrome/edge/brave/chromium/custom). */
47
+ browser?: string;
48
+ /** Country inferred from the real browser env — locale region, then timezone. Undefined if undetectable. */
49
+ detectedCountry?: string;
50
+ detectedLocale?: string;
51
+ detectedTimezone?: string;
52
+ /** QR-login mode: saved QR PNG path + its data-URL, for relaying to a human to scan. */
53
+ qrPngPath?: string;
54
+ qrDataUrl?: string;
55
+ reason?: "no_local_browser" | "launch_failed" | "cdp_failed" | "login_timeout" | "aborted";
56
+ error?: string;
57
+ }
58
+ export declare function connectTikTok(opts?: ConnectOptions): Promise<ConnectResult>;