@danhachuel/leadmaster 0.1.12 → 0.1.14

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 (24) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/backend/__pycache__/main.cpython-311.pyc +0 -0
  3. package/backend/main.py +47 -0
  4. package/backend/services/__pycache__/__init__.cpython-311.pyc +0 -0
  5. package/backend/services/__pycache__/agents.cpython-311.pyc +0 -0
  6. package/backend/services/__pycache__/crm_agent.cpython-311.pyc +0 -0
  7. package/backend/services/__pycache__/extractors.cpython-311.pyc +0 -0
  8. package/backend/services/__pycache__/flags.cpython-311.pyc +0 -0
  9. package/backend/services/__pycache__/llm.cpython-311.pyc +0 -0
  10. package/backend/services/__pycache__/storage.cpython-311.pyc +0 -0
  11. package/backend/services/extractors.py +68 -1
  12. package/backend/tests/__pycache__/conftest.cpython-311-pytest-8.4.2.pyc +0 -0
  13. package/backend/tests/__pycache__/test_cnpj_extractor.cpython-311-pytest-8.4.2.pyc +0 -0
  14. package/backend/tests/__pycache__/test_crm_routes.cpython-311-pytest-8.4.2.pyc +0 -0
  15. package/backend/tests/__pycache__/test_instagram_extractor.cpython-311-pytest-8.4.2.pyc +0 -0
  16. package/backend/tests/__pycache__/test_launcher_protections.cpython-311-pytest-8.4.2.pyc +0 -0
  17. package/backend/tests/__pycache__/test_maps_extractor.cpython-311-pytest-8.4.2.pyc +0 -0
  18. package/backend/tests/__pycache__/test_process_flags.cpython-311-pytest-8.4.2.pyc +0 -0
  19. package/backend/tests/test_cnpj_extractor.py +64 -0
  20. package/frontend/dist/assets/{index-D6u6-7Rs.css → index-Bf28IekR.css} +1 -1
  21. package/frontend/dist/assets/{index-CLRV7oRl.js → index-DgsUzQ92.js} +18 -18
  22. package/frontend/dist/index.html +2 -2
  23. package/package.json +1 -1
  24. package/scripts/cli.mjs +5 -13
@@ -5,8 +5,8 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
7
7
  <title>LeadMaster — Painel</title>
8
- <script type="module" crossorigin src="/assets/index-CLRV7oRl.js"></script>
9
- <link rel="stylesheet" crossorigin href="/assets/index-D6u6-7Rs.css">
8
+ <script type="module" crossorigin src="/assets/index-DgsUzQ92.js"></script>
9
+ <link rel="stylesheet" crossorigin href="/assets/index-Bf28IekR.css">
10
10
  </head>
11
11
  <body class="bg-gray-100 min-h-screen">
12
12
  <div id="root"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@danhachuel/leadmaster",
3
- "version": "0.1.12",
3
+ "version": "0.1.14",
4
4
  "description": "SaaS local de prospecção e automação: CRM, extratores de leads e agentes de IA — 100% local.",
5
5
  "license": "MIT",
6
6
  "author": "Dan Hachuel",
package/scripts/cli.mjs CHANGED
@@ -466,9 +466,11 @@ function cmdStart(args) {
466
466
  process.exit(code === null ? 1 : code);
467
467
  });
468
468
 
469
- // Launcher morrendo encerra o worker e vice-versa (regra inviolável):
470
- // qualquer caminho de saída (erro inesperado, falha de health, sinais)
471
- // leva o worker Python junto — nada de processos órfãos na máquina.
469
+ // Launcher morrendo encerra o worker (e vice-versa, via close acima) —
470
+ // handler ÚNICO de saída (regra inviolável): qualquer caminho de saída
471
+ // (erro inesperado, falha de health, sinais) leva o worker Python junto
472
+ // — nada de processos órfãos na máquina. No Windows, taskkill /T /F
473
+ // derruba a árvore inteira do uvicorn.
472
474
  process.on('exit', () => {
473
475
  if (child && child.pid) {
474
476
  if (platform() === 'win32') {
@@ -488,16 +490,6 @@ function cmdStart(args) {
488
490
  }
489
491
  };
490
492
 
491
- // Morte do launcher → morte do filho (e vice-versa, via close acima):
492
- // o uvicorn nunca fica órfão no terminal quando o Node é encerrado.
493
- process.on('exit', () => {
494
- try {
495
- child.kill('SIGTERM');
496
- } catch {
497
- /* filho já encerrou — nada a fazer */
498
- }
499
- });
500
-
501
493
  console.log(`→ Subindo servidor local em ${url} ...`);
502
494
  const health = await waitForHealth(porta, 120000);
503
495
  if (!health) {