reeboot 1.3.2 → 1.3.4

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 (94) hide show
  1. package/container/entrypoint.sh +55 -3
  2. package/dist/agent-runner/index.d.ts.map +1 -1
  3. package/dist/agent-runner/index.js +3 -9
  4. package/dist/agent-runner/index.js.map +1 -1
  5. package/dist/agent-runner/pi-runner.d.ts +3 -1
  6. package/dist/agent-runner/pi-runner.d.ts.map +1 -1
  7. package/dist/agent-runner/pi-runner.js +81 -7
  8. package/dist/agent-runner/pi-runner.js.map +1 -1
  9. package/dist/channels/whatsapp.d.ts.map +1 -1
  10. package/dist/channels/whatsapp.js +10 -1
  11. package/dist/channels/whatsapp.js.map +1 -1
  12. package/dist/config.d.ts +7 -0
  13. package/dist/config.d.ts.map +1 -1
  14. package/dist/config.js +2 -1
  15. package/dist/config.js.map +1 -1
  16. package/dist/context.d.ts.map +1 -1
  17. package/dist/context.js +3 -0
  18. package/dist/context.js.map +1 -1
  19. package/dist/db/schema.d.ts.map +1 -1
  20. package/dist/db/schema.js +2 -2
  21. package/dist/db/schema.js.map +1 -1
  22. package/dist/extensions/confirm-destructive.d.ts +9 -0
  23. package/dist/extensions/confirm-destructive.d.ts.map +1 -0
  24. package/dist/extensions/confirm-destructive.js +43 -0
  25. package/dist/extensions/confirm-destructive.js.map +1 -0
  26. package/dist/extensions/custom-compaction.d.ts +17 -0
  27. package/dist/extensions/custom-compaction.d.ts.map +1 -0
  28. package/dist/extensions/custom-compaction.js +99 -0
  29. package/dist/extensions/custom-compaction.js.map +1 -0
  30. package/dist/extensions/loader.d.ts.map +1 -1
  31. package/dist/extensions/loader.js +24 -16
  32. package/dist/extensions/loader.js.map +1 -1
  33. package/dist/extensions/protected-paths.d.ts +9 -0
  34. package/dist/extensions/protected-paths.d.ts.map +1 -0
  35. package/dist/extensions/protected-paths.js +24 -0
  36. package/dist/extensions/protected-paths.js.map +1 -0
  37. package/dist/extensions/scheduler-tool.d.ts +31 -0
  38. package/dist/extensions/scheduler-tool.d.ts.map +1 -0
  39. package/dist/extensions/scheduler-tool.js +341 -0
  40. package/dist/extensions/scheduler-tool.js.map +1 -0
  41. package/dist/extensions/session-name.d.ts +11 -0
  42. package/dist/extensions/session-name.d.ts.map +1 -0
  43. package/dist/extensions/session-name.js +25 -0
  44. package/dist/extensions/session-name.js.map +1 -0
  45. package/dist/extensions/skill-manager.d.ts +49 -0
  46. package/dist/extensions/skill-manager.d.ts.map +1 -0
  47. package/dist/extensions/skill-manager.js +368 -0
  48. package/dist/extensions/skill-manager.js.map +1 -0
  49. package/dist/extensions/token-meter.d.ts +11 -0
  50. package/dist/extensions/token-meter.d.ts.map +1 -0
  51. package/dist/extensions/token-meter.js +46 -0
  52. package/dist/extensions/token-meter.js.map +1 -0
  53. package/dist/extensions/web-search.d.ts +39 -0
  54. package/dist/extensions/web-search.d.ts.map +1 -0
  55. package/dist/extensions/web-search.js +366 -0
  56. package/dist/extensions/web-search.js.map +1 -0
  57. package/dist/index.js +9 -2
  58. package/dist/index.js.map +1 -1
  59. package/dist/server.d.ts.map +1 -1
  60. package/dist/server.js +3 -3
  61. package/dist/server.js.map +1 -1
  62. package/dist/setup-wizard.d.ts +1 -0
  63. package/dist/setup-wizard.d.ts.map +1 -1
  64. package/dist/setup-wizard.js +4 -3
  65. package/dist/setup-wizard.js.map +1 -1
  66. package/dist/utils/agent-dir.d.ts +11 -0
  67. package/dist/utils/agent-dir.d.ts.map +1 -0
  68. package/dist/utils/agent-dir.js +26 -0
  69. package/dist/utils/agent-dir.js.map +1 -0
  70. package/dist/wizard/detect-pi-auth.d.ts +19 -0
  71. package/dist/wizard/detect-pi-auth.d.ts.map +1 -0
  72. package/dist/wizard/detect-pi-auth.js +36 -0
  73. package/dist/wizard/detect-pi-auth.js.map +1 -0
  74. package/dist/wizard/index.d.ts.map +1 -1
  75. package/dist/wizard/index.js +1 -0
  76. package/dist/wizard/index.js.map +1 -1
  77. package/dist/wizard/probe-searxng.d.ts +9 -0
  78. package/dist/wizard/probe-searxng.d.ts.map +1 -0
  79. package/dist/wizard/probe-searxng.js +30 -0
  80. package/dist/wizard/probe-searxng.js.map +1 -0
  81. package/dist/wizard/steps/channels.js +7 -35
  82. package/dist/wizard/steps/channels.js.map +1 -1
  83. package/dist/wizard/steps/launch.d.ts +1 -0
  84. package/dist/wizard/steps/launch.d.ts.map +1 -1
  85. package/dist/wizard/steps/launch.js +5 -4
  86. package/dist/wizard/steps/launch.js.map +1 -1
  87. package/dist/wizard/steps/provider.d.ts +1 -0
  88. package/dist/wizard/steps/provider.d.ts.map +1 -1
  89. package/dist/wizard/steps/provider.js +18 -1
  90. package/dist/wizard/steps/provider.js.map +1 -1
  91. package/dist/wizard/steps/web-search.js +33 -10
  92. package/dist/wizard/steps/web-search.js.map +1 -1
  93. package/extensions/web-search.ts +2 -3
  94. package/package.json +4 -2
@@ -31,7 +31,7 @@ export async function runWebSearchStep(opts) {
31
31
  return { provider: 'none', apiKey: '', searxngBaseUrl: '' };
32
32
  }
33
33
  if (provider === 'searxng') {
34
- return await runSearXNGSubflow();
34
+ return await runSearXNGSubflow(prompter);
35
35
  }
36
36
  // API-key providers: Brave, Tavily, Serper, Exa
37
37
  const envVar = SEARCH_ENV_VARS[provider] ?? 'API_KEY';
@@ -43,7 +43,9 @@ export async function runWebSearchStep(opts) {
43
43
  return { provider, apiKey, searxngBaseUrl: '' };
44
44
  }
45
45
  // ─── SearXNG sub-flow ─────────────────────────────────────────────────────────
46
- async function runSearXNGSubflow() {
46
+ const SEARXNG_PORT = 8888;
47
+ const SEARXNG_DEFAULT_URL = `http://localhost:${SEARXNG_PORT}`;
48
+ async function runSearXNGSubflow(prompter) {
47
49
  const { checkDockerStatus } = await import('../../utils/docker.js');
48
50
  const dockerStatus = await checkDockerStatus();
49
51
  if (dockerStatus === 'not-installed') {
@@ -57,10 +59,35 @@ async function runSearXNGSubflow() {
57
59
  console.log(' ℹ Using DuckDuckGo as fallback. Run `reeboot search setup searxng` later.\n');
58
60
  return { provider: 'duckduckgo', apiKey: '', searxngBaseUrl: '' };
59
61
  }
60
- // Docker is running — start the SearXNG container
62
+ // Probe for an already-running SearXNG instance
63
+ const { probeSearXNG } = await import('../probe-searxng.js');
64
+ const detected = await probeSearXNG();
65
+ // Ask user to confirm or edit the URL
66
+ const urlMessage = detected
67
+ ? ' SearXNG URL (confirm or edit):'
68
+ : ' SearXNG URL:';
69
+ const defaultUrl = detected ?? SEARXNG_DEFAULT_URL;
70
+ const searxngUrl = await prompter.input({
71
+ message: urlMessage,
72
+ default: defaultUrl,
73
+ validate: (val) => val.trim().length > 0 ? true : 'URL cannot be empty',
74
+ });
75
+ // Ask whether to use URL directly or start a new container
76
+ const action = await prompter.select({
77
+ message: ' What would you like to do?',
78
+ choices: [
79
+ { name: 'Use this URL directly', value: 'use-url' },
80
+ { name: `Start new reeboot-searxng container on port ${SEARXNG_PORT}`, value: 'start-new' },
81
+ ],
82
+ default: 'use-url',
83
+ });
84
+ if (action === 'use-url') {
85
+ console.log(` ✓ Using SearXNG at ${searxngUrl}\n`);
86
+ return { provider: 'searxng', apiKey: '', searxngBaseUrl: searxngUrl };
87
+ }
88
+ // Start new container
61
89
  console.log(' Starting reeboot-searxng container...');
62
90
  const { spawnSync } = await import('child_process');
63
- const SEARXNG_PORT = 8888;
64
91
  // Remove any existing container
65
92
  spawnSync('docker', ['rm', '-f', 'reeboot-searxng'], { stdio: 'pipe' });
66
93
  const start = spawnSync('docker', [
@@ -74,11 +101,7 @@ async function runSearXNGSubflow() {
74
101
  console.log(' ✗ SearXNG failed to start — using DuckDuckGo instead.\n');
75
102
  return { provider: 'duckduckgo', apiKey: '', searxngBaseUrl: '' };
76
103
  }
77
- console.log(` ✓ SearXNG running at http://localhost:${SEARXNG_PORT}\n`);
78
- return {
79
- provider: 'searxng',
80
- apiKey: '',
81
- searxngBaseUrl: `http://localhost:${SEARXNG_PORT}`,
82
- };
104
+ console.log(` ✓ SearXNG running at ${SEARXNG_DEFAULT_URL}\n`);
105
+ return { provider: 'searxng', apiKey: '', searxngBaseUrl: SEARXNG_DEFAULT_URL };
83
106
  }
84
107
  //# sourceMappingURL=web-search.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"web-search.js","sourceRoot":"","sources":["../../../src/wizard/steps/web-search.ts"],"names":[],"mappings":"AAUA,iFAAiF;AAEjF,MAAM,eAAe,GAA2B;IAC9C,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,gBAAgB;IACxB,GAAG,EAAE,aAAa;CACnB,CAAA;AAED,iFAAiF;AAEjF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAEtC;IACC,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;IAEzB,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAA;IAEpF,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QACrC,OAAO,EAAE,+BAA+B;QACxC,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,6CAA6C,EAAE,KAAK,EAAE,YAAY,EAAE;YAC5E,EAAE,IAAI,EAAE,iCAAiC,EAAE,KAAK,EAAE,OAAO,EAAE;YAC3D,EAAE,IAAI,EAAE,2BAA2B,EAAE,KAAK,EAAE,QAAQ,EAAE;YACtD,EAAE,IAAI,EAAE,2BAA2B,EAAE,KAAK,EAAE,QAAQ,EAAE;YACtD,EAAE,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,KAAK,EAAE;YAChD,EAAE,IAAI,EAAE,wCAAwC,EAAE,KAAK,EAAE,SAAS,EAAE;YACpE,EAAE,IAAI,EAAE,2CAA2C,EAAE,KAAK,EAAE,MAAM,EAAE;SACrE;QACD,OAAO,EAAE,YAAY;KACtB,CAAC,CAAA;IAEF,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAA;QAC3E,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,CAAA;IACnE,CAAC;IAED,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,0FAA0F,CAAC,CAAA;QACvG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,CAAA;IAC7D,CAAC;IAED,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,MAAM,iBAAiB,EAAE,CAAA;IAClC,CAAC;IAED,gDAAgD;IAChD,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAA;IACrD,OAAO,CAAC,GAAG,CAAC,wBAAwB,MAAM,wCAAwC,CAAC,CAAA;IAEnF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC;QACrC,OAAO,EAAE,cAAc,QAAQ,WAAW;QAC1C,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAyB;KAC5E,CAAC,CAAA;IAEF,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,EAAE,CAAA;AACjD,CAAC;AAED,iFAAiF;AAEjF,KAAK,UAAU,iBAAiB;IAC9B,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAA;IACnE,MAAM,YAAY,GAAG,MAAM,iBAAiB,EAAE,CAAA;IAE9C,IAAI,YAAY,KAAK,eAAe,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAA;QACrE,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAA;QACrF,OAAO,CAAC,GAAG,CAAC,+EAA+E,CAAC,CAAA;QAC5F,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,CAAA;IACnE,CAAC;IAED,IAAI,YAAY,KAAK,aAAa,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAA;QACnE,OAAO,CAAC,GAAG,CAAC,+EAA+E,CAAC,CAAA;QAC5F,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,CAAA;IACnE,CAAC;IAED,kDAAkD;IAClD,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAA;IAEtD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAA;IAEnD,MAAM,YAAY,GAAG,IAAI,CAAA;IAEzB,gCAAgC;IAChC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,iBAAiB,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;IAEvE,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAE;QAChC,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,iBAAiB;QAC3B,IAAI,EAAE,GAAG,YAAY,OAAO;QAC5B,WAAW,EAAE,QAAQ;QACrB,wBAAwB;KACzB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;IAErB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAA;QACxE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,CAAA;IACnE,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,2CAA2C,YAAY,IAAI,CAAC,CAAA;IACxE,OAAO;QACL,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,EAAE;QACV,cAAc,EAAE,oBAAoB,YAAY,EAAE;KACnD,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"web-search.js","sourceRoot":"","sources":["../../../src/wizard/steps/web-search.ts"],"names":[],"mappings":"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"}
@@ -392,9 +392,8 @@ export async function searchBackend(
392
392
 
393
393
  // ─── Extension Default Export ─────────────────────────────────────────────────
394
394
 
395
- export default async function webSearchExtension(pi: ExtensionAPI): Promise<void> {
396
- const config = (pi.getConfig() as any);
397
- const searchConfig: SearchConfig = config?.search ?? {};
395
+ export default async function webSearchExtension(pi: ExtensionAPI, reebotConfig?: any): Promise<void> {
396
+ const searchConfig: SearchConfig = reebotConfig?.search ?? {};
398
397
  const rawProvider: string = searchConfig.provider ?? 'none';
399
398
 
400
399
  // SearXNG startup health-check — fall back to DDG if unreachable
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "reeboot",
3
- "version": "1.3.2",
3
+ "version": "1.3.4",
4
4
  "description": "Personal AI agent running locally, reachable via WhatsApp, Signal, or WebChat",
5
5
  "author": "Bogdan Nenu",
6
6
  "license": "MIT",
@@ -36,7 +36,9 @@
36
36
  "build": "tsc",
37
37
  "dev": "tsx src/index.ts",
38
38
  "test": "vitest",
39
- "test:ui": "vitest --ui"
39
+ "test:ui": "vitest --ui",
40
+ "test:run": "vitest run",
41
+ "check": "npm run build && npm run test:run"
40
42
  },
41
43
  "dependencies": {
42
44
  "@fastify/static": "^9.0.0",