@lincoln504/pi-research 0.1.7 → 0.1.10

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
@@ -67,9 +67,25 @@ pi install .
67
67
 
68
68
  ## Platform Setup
69
69
 
70
- **macOS/Linux** — Install and start Docker. Ensure your user is in the `docker` group on Linux.
70
+ **macOS** — Install Docker Desktop and start it from Applications.
71
+
72
+ **Linux** — Install Docker and add your user to the docker group:
73
+ ```bash
74
+ # Install Docker
75
+ sudo apt-get update && sudo apt-get install -y docker.io
76
+
77
+ # Start Docker
78
+ sudo systemctl start docker
79
+ sudo systemctl enable docker
80
+
81
+ # Add your user to docker group (then log out and back in)
82
+ sudo usermod -aG docker $USER
83
+ ```
84
+
71
85
  **Windows** — Install Docker Desktop (Linux containers). Detecting named pipes is automatic.
72
86
 
87
+ > **Note**: The first time you use `pi install` on a fresh system, Docker may not be running yet. The extension will check Docker when you actually use the research tool, not during install.
88
+
73
89
  ---
74
90
 
75
91
  ## Usage
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lincoln504/pi-research",
3
- "version": "0.1.7",
4
- "description": "Multi-agent research Deep Mode orchestration for pi. State-driven parallel researchers with web search, scraping, security databases, and Stack Exchange integration.",
3
+ "version": "0.1.10",
4
+ "description": "A set of web research tools (search, scrape, and others) and research agent system that uses them safely and efficiently.",
5
5
  "type": "module",
6
6
  "private": false,
7
7
  "main": "src/index.ts",
@@ -24,10 +24,9 @@
24
24
  },
25
25
  "keywords": [
26
26
  "pi",
27
- "pi-package",
27
+ "pi-extension",
28
28
  "research",
29
29
  "agent",
30
- "orchestration",
31
30
  "web-search",
32
31
  "scraping",
33
32
  "security",
package/src/index.ts CHANGED
@@ -45,10 +45,13 @@ export default function (pi: ExtensionAPI) {
45
45
 
46
46
  // Notify user of Docker status and log file location when starting a new session
47
47
  pi.on('session_start', async (_event, ctx) => {
48
- // Check Docker availability on startup
49
- const dockerCheck = await checkDockerAvailability();
50
- if (!dockerCheck.running) {
51
- ctx.ui.notify(`pi-research: ${dockerCheck.error}`, 'warning');
48
+ // Skip Docker check during install to avoid errors on fresh systems
49
+ // Docker will be checked when research tool is first used
50
+ if (!process.env['PI_INSTALL_MODE']) {
51
+ const dockerCheck = await checkDockerAvailability();
52
+ if (!dockerCheck.running) {
53
+ ctx.ui.notify(`pi-research: ${dockerCheck.error}`, 'warning');
54
+ }
52
55
  }
53
56
 
54
57
  if (isVerboseFromEnv()) {
@@ -285,9 +285,19 @@ export async function verifyDockerInstalled(): Promise<{ installed: boolean; run
285
285
  if (
286
286
  lastError.includes('ENOENT') ||
287
287
  lastError.includes('ECONNREFUSED') ||
288
- lastError.includes('The system cannot find the file specified')
288
+ lastError.includes('The system cannot find the file specified') ||
289
+ lastError.includes('EACCES') ||
290
+ lastError.includes('permission')
289
291
  ) {
290
- return { installed: true, running: false, error: 'Docker daemon is not running. Please start Docker.' };
292
+ let errorMsg = 'Docker daemon is not running or inaccessible.';
293
+ if (process.platform === 'linux') {
294
+ errorMsg += ' On Linux, run: sudo systemctl start docker && sudo usermod -aG docker $USER. Then log out and back in.';
295
+ } else if (process.platform === 'darwin') {
296
+ errorMsg += ' Start Docker Desktop from Applications.';
297
+ } else if (process.platform === 'win32') {
298
+ errorMsg += ' Start Docker Desktop from the Start menu.';
299
+ }
300
+ return { installed: true, running: false, error: errorMsg };
291
301
  }
292
302
 
293
303
  return { installed: false, running: false, error: `Docker not found or inaccessible: ${lastError}` };