pi-messenger 0.8.2 → 0.9.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.
- package/CHANGELOG.md +12 -0
- package/README.md +9 -5
- package/install.mjs +97 -0
- package/package.json +29 -6
- package/banner.png +0 -0
- package/tsconfig.json +0 -19
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.9.0] - 2026-02-05
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
- **npm publishing** - Package now published to npm. Install with `pi install npm:pi-messenger`.
|
|
7
|
+
- **`install.mjs`** - `npx pi-messenger` copies the npm package contents to the extensions directory. No git dependency. Version-pinned to the npm release. `npx pi-messenger --remove` to uninstall.
|
|
8
|
+
- `repository`, `homepage`, `bugs` fields in package.json for npm/GitHub integration.
|
|
9
|
+
- `bin`, `files` fields in package.json for npm distribution.
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
- **Banner image** - README references `banner.png` via absolute GitHub URL (`raw.githubusercontent.com`) instead of relative path, so it renders on both GitHub and npmjs.com without shipping the 1.1MB image in the npm package.
|
|
13
|
+
- **Install section** - README now documents `pi install npm:pi-messenger` as the primary install method.
|
|
14
|
+
|
|
3
15
|
## [0.8.2] - 2026-02-01
|
|
4
16
|
|
|
5
17
|
### Fixed
|
package/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<p>
|
|
2
|
-
<img src="banner.png" alt="pi-messenger" width="1100">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/nicobailon/pi-messenger/main/banner.png" alt="pi-messenger" width="1100">
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
# Pi Messenger
|
|
@@ -45,12 +45,16 @@ pi_messenger({ action: "work", autonomous: true })
|
|
|
45
45
|
|
|
46
46
|
> **Note:** Crew agents (planner, workers, reviewers) automatically join the mesh as their first action.
|
|
47
47
|
|
|
48
|
-
##
|
|
49
|
-
|
|
50
|
-
Copy to your extensions directory and restart pi:
|
|
48
|
+
## Installation
|
|
51
49
|
|
|
50
|
+
```bash
|
|
51
|
+
pi install npm:pi-messenger
|
|
52
52
|
```
|
|
53
|
-
|
|
53
|
+
|
|
54
|
+
To remove:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
npx pi-messenger --remove
|
|
54
58
|
```
|
|
55
59
|
|
|
56
60
|
After joining, your agent name appears in the status bar:
|
package/install.mjs
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* pi-messenger installer
|
|
5
|
+
*
|
|
6
|
+
* Copies the npm package contents to ~/.pi/agent/extensions/pi-messenger.
|
|
7
|
+
* No git dependency — the npm package IS the source.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* npx pi-messenger # Install or update
|
|
11
|
+
* npx pi-messenger --remove # Remove the extension
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
import * as fs from "node:fs";
|
|
15
|
+
import * as path from "node:path";
|
|
16
|
+
import * as os from "node:os";
|
|
17
|
+
import { fileURLToPath } from "node:url";
|
|
18
|
+
|
|
19
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
20
|
+
const PACKAGE_DIR = path.dirname(__filename);
|
|
21
|
+
const EXTENSION_DIR = path.join(os.homedir(), ".pi", "agent", "extensions", "pi-messenger");
|
|
22
|
+
|
|
23
|
+
const pkg = JSON.parse(fs.readFileSync(path.join(PACKAGE_DIR, "package.json"), "utf-8"));
|
|
24
|
+
const VERSION = pkg.version;
|
|
25
|
+
|
|
26
|
+
const args = process.argv.slice(2);
|
|
27
|
+
const isRemove = args.includes("--remove") || args.includes("-r");
|
|
28
|
+
const isHelp = args.includes("--help") || args.includes("-h");
|
|
29
|
+
|
|
30
|
+
if (isHelp) {
|
|
31
|
+
console.log(`
|
|
32
|
+
pi-messenger v${VERSION} - Multi-agent coordination for pi
|
|
33
|
+
|
|
34
|
+
Usage:
|
|
35
|
+
npx pi-messenger Install or update
|
|
36
|
+
npx pi-messenger --remove Remove the extension
|
|
37
|
+
npx pi-messenger --help Show this help
|
|
38
|
+
|
|
39
|
+
Installation directory: ${EXTENSION_DIR}
|
|
40
|
+
`);
|
|
41
|
+
process.exit(0);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (isRemove) {
|
|
45
|
+
if (fs.existsSync(EXTENSION_DIR)) {
|
|
46
|
+
fs.rmSync(EXTENSION_DIR, { recursive: true });
|
|
47
|
+
console.log("Removed pi-messenger from " + EXTENSION_DIR);
|
|
48
|
+
} else {
|
|
49
|
+
console.log("pi-messenger is not installed");
|
|
50
|
+
}
|
|
51
|
+
process.exit(0);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Already running from the extension dir (e.g. local dev)
|
|
55
|
+
if (path.resolve(PACKAGE_DIR) === path.resolve(EXTENSION_DIR)) {
|
|
56
|
+
console.log(`Already installed at ${EXTENSION_DIR} (v${VERSION})`);
|
|
57
|
+
process.exit(0);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const isUpdate = fs.existsSync(EXTENSION_DIR);
|
|
61
|
+
|
|
62
|
+
// Warn if existing install is a git clone from the old installer
|
|
63
|
+
if (isUpdate && fs.existsSync(path.join(EXTENSION_DIR, ".git"))) {
|
|
64
|
+
console.log("Existing install is a git clone. Remove it first:\n");
|
|
65
|
+
console.log(" npx pi-messenger --remove && npx pi-messenger");
|
|
66
|
+
process.exit(1);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// Clean slate for updates so removed files don't linger between versions
|
|
70
|
+
if (isUpdate) {
|
|
71
|
+
fs.rmSync(EXTENSION_DIR, { recursive: true });
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const SKIP = new Set([".git", "node_modules", ".DS_Store"]);
|
|
75
|
+
|
|
76
|
+
function copyDir(src, dest) {
|
|
77
|
+
fs.mkdirSync(dest, { recursive: true });
|
|
78
|
+
for (const entry of fs.readdirSync(src, { withFileTypes: true })) {
|
|
79
|
+
if (SKIP.has(entry.name)) continue;
|
|
80
|
+
const srcPath = path.join(src, entry.name);
|
|
81
|
+
const destPath = path.join(dest, entry.name);
|
|
82
|
+
if (entry.isDirectory()) {
|
|
83
|
+
copyDir(srcPath, destPath);
|
|
84
|
+
} else {
|
|
85
|
+
fs.copyFileSync(srcPath, destPath);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
copyDir(PACKAGE_DIR, EXTENSION_DIR);
|
|
91
|
+
|
|
92
|
+
const action = isUpdate ? "Updated" : "Installed";
|
|
93
|
+
console.log(`${action} pi-messenger v${VERSION} → ${EXTENSION_DIR}
|
|
94
|
+
|
|
95
|
+
Tools: pi_messenger
|
|
96
|
+
Commands: /messenger, /messenger config
|
|
97
|
+
Docs: ${EXTENSION_DIR}/README.md`);
|
package/package.json
CHANGED
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-messenger",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "Inter-agent messaging and file reservation system for pi coding agent",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"
|
|
7
|
-
|
|
6
|
+
"author": "Nico Bailon",
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/nicobailon/pi-messenger.git"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "https://github.com/nicobailon/pi-messenger#readme",
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/nicobailon/pi-messenger/issues"
|
|
8
15
|
},
|
|
9
16
|
"keywords": [
|
|
10
17
|
"pi-package",
|
|
@@ -13,8 +20,24 @@
|
|
|
13
20
|
"extension",
|
|
14
21
|
"messaging",
|
|
15
22
|
"multi-agent",
|
|
16
|
-
"coordination"
|
|
23
|
+
"coordination",
|
|
24
|
+
"ai",
|
|
25
|
+
"agents",
|
|
26
|
+
"cli"
|
|
17
27
|
],
|
|
18
|
-
"
|
|
19
|
-
|
|
28
|
+
"bin": {
|
|
29
|
+
"pi-messenger": "install.mjs"
|
|
30
|
+
},
|
|
31
|
+
"files": [
|
|
32
|
+
"*.ts",
|
|
33
|
+
"*.mjs",
|
|
34
|
+
"crew/**",
|
|
35
|
+
"skills/**",
|
|
36
|
+
"README.md",
|
|
37
|
+
"CHANGELOG.md",
|
|
38
|
+
"ARCHITECTURE.md"
|
|
39
|
+
],
|
|
40
|
+
"pi": {
|
|
41
|
+
"extensions": ["./index.ts"]
|
|
42
|
+
}
|
|
20
43
|
}
|
package/banner.png
DELETED
|
Binary file
|
package/tsconfig.json
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "ES2022",
|
|
4
|
-
"module": "NodeNext",
|
|
5
|
-
"moduleResolution": "NodeNext",
|
|
6
|
-
"esModuleInterop": true,
|
|
7
|
-
"strict": false,
|
|
8
|
-
"skipLibCheck": true,
|
|
9
|
-
"noEmit": true,
|
|
10
|
-
"resolveJsonModule": true,
|
|
11
|
-
"paths": {
|
|
12
|
-
"@mariozechner/pi-coding-agent": ["/opt/homebrew/lib/node_modules/@mariozechner/pi-coding-agent/dist/index.d.ts"],
|
|
13
|
-
"@mariozechner/pi-tui": ["/opt/homebrew/lib/node_modules/@mariozechner/pi-coding-agent/node_modules/@mariozechner/pi-tui/dist/index.d.ts"],
|
|
14
|
-
"@sinclair/typebox": ["/opt/homebrew/lib/node_modules/@mariozechner/pi-coding-agent/node_modules/@sinclair/typebox/build/esm/index.d.mts"]
|
|
15
|
-
},
|
|
16
|
-
"baseUrl": "."
|
|
17
|
-
},
|
|
18
|
-
"include": ["*.ts"]
|
|
19
|
-
}
|