salesprompter-cli 0.1.76 → 0.1.77

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
@@ -42,6 +42,8 @@ For headless or automation use, generate a CLI token in the app and run `salespr
42
42
 
43
43
  `leads:at-companies` researches Director, Head-of, VP and C-level contacts across functions. It exports a shortlist for review without starting email enrichment or outreach.
44
44
 
45
+ The checkpoint, shortlist and review exports refresh after every completed search, so long runs expose saved progress immediately. Company labels with punctuation, such as `(TKMS)`, are escaped safely in search queries.
46
+
45
47
  If LinkedIn rejects the saved session, the command tries a different local extension-synced session once and keeps completed searches. If none works, reconnect the extension or use `--browser-relay-port` with a signed-in browser worker. Rate limits stop the run without switching sessions.
46
48
 
47
49
  Create a JSON brief with verified numeric LinkedIn company IDs. Use each subsidiary's own ID; names alone are not an employer match. Missing IDs stay in the coverage report as unresolved.
@@ -204,6 +204,7 @@ async function runCompanyResearchLocked(input) {
204
204
  state.results[job.key] = await input.search(job);
205
205
  performed++;
206
206
  await save(checkpoint, JSON.stringify(state));
207
+ await publish();
207
208
  }
208
209
  }
209
210
  catch (e) {
@@ -423,7 +423,8 @@ function buildFilterBlock(filter) {
423
423
  if (typeof value.id === "string" && value.id.trim().length > 0) {
424
424
  segments.push(`id:${value.id}`);
425
425
  }
426
- segments.push(`text:${encodeURIComponent(value.text)}`);
426
+ // Parentheses are Rest.li delimiters but encodeURIComponent leaves them raw.
427
+ segments.push(`text:${encodeURIComponent(value.text).replace(/[!'()*]/g, char => `%${char.charCodeAt(0).toString(16).toUpperCase()}`)}`);
427
428
  segments.push(`selectionType:${selectionType}`);
428
429
  return `(${segments.join(",")})`;
429
430
  })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "salesprompter-cli",
3
- "version": "0.1.76",
3
+ "version": "0.1.77",
4
4
  "description": "Sales workflow CLI for guided lead generation, enrichment, scoring, and sync.",
5
5
  "author": "Daniel Sinewe <hello@danielsinewe.com>",
6
6
  "type": "module",