@join-pantheon/cli 0.29.1 → 0.30.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/README.md +45 -22
- package/bin/pantheon.js +12 -0
- package/dist/accounts.js +151 -26
- package/dist/agents.js +197 -14
- package/dist/claude-confine.js +283 -0
- package/dist/cli.js +725 -120
- package/dist/client.js +37 -2
- package/dist/command-state.js +79 -0
- package/dist/config.js +211 -10
- package/dist/doctor.js +103 -13
- package/dist/grants.js +1 -1
- package/dist/history-view.js +2 -1
- package/dist/home-guard.js +210 -0
- package/dist/hooks-install.js +2 -1
- package/dist/identity.js +24 -0
- package/dist/install.js +76 -26
- package/dist/kiro-files.js +2 -2
- package/dist/ledger.js +111 -28
- package/dist/machine.js +494 -32
- package/dist/mcp-supervisor.js +25 -6
- package/dist/mcp-windows.js +47 -25
- package/dist/mcp.js +25 -10
- package/dist/network.js +39 -8
- package/dist/notify.js +17 -6
- package/dist/pending.js +8 -14
- package/dist/persona.js +21 -0
- package/dist/profile.js +4 -1
- package/dist/quickstart.js +82 -14
- package/dist/reads.js +30 -0
- package/dist/refusal.js +14 -1
- package/dist/relay.js +1143 -180
- package/dist/roster-file.js +169 -23
- package/dist/run-failure.js +83 -3
- package/dist/secret-guard.js +141 -0
- package/dist/service.js +84 -34
- package/dist/setup-guide.js +28 -9
- package/dist/spend.js +6 -2
- package/dist/store.js +94 -10
- package/dist/text-file.js +74 -0
- package/dist/tray.js +11 -2
- package/dist/update-check.js +2 -0
- package/dist/which.js +69 -12
- package/dist/worker-policy.js +137 -3
- package/dist/worker.js +702 -81
- package/helper/macos/menubar.swift +15 -1
- package/package.json +2 -2
|
@@ -119,7 +119,7 @@ func run(_ launchPath: String, _ args: [String], timeout: Double = 10) -> (out:
|
|
|
119
119
|
|
|
120
120
|
func fetchState() -> TrayState {
|
|
121
121
|
var s = TrayState()
|
|
122
|
-
guard let r = run(pantheonBin, ["tray-status"]), r.code == 0,
|
|
122
|
+
guard let r = run(pantheonBin, ["tray-status"], timeout: 20), r.code == 0,
|
|
123
123
|
let data = r.out.data(using: .utf8),
|
|
124
124
|
let j = try? JSONSerialization.jsonObject(with: data) as? [String: Any] else { return s }
|
|
125
125
|
s.reachable = true
|
|
@@ -477,12 +477,26 @@ final class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate {
|
|
|
477
477
|
}
|
|
478
478
|
}
|
|
479
479
|
|
|
480
|
+
/// Consecutive checks that did not come back (timed out, or did not parse).
|
|
481
|
+
private var missedChecks = 0
|
|
480
482
|
@objc func refresh() {
|
|
481
483
|
guard !refreshing else { return }
|
|
482
484
|
refreshing = true
|
|
483
485
|
DispatchQueue.global().async {
|
|
484
486
|
let next = fetchState()
|
|
485
487
|
DispatchQueue.main.async {
|
|
488
|
+
// A check that did not come back is not news that the relay is down: on a
|
|
489
|
+
// busy machine `pantheon tray-status` can take longer than its limit, and
|
|
490
|
+
// the mark flipped to the slashed "unreachable" state with a "!" — while
|
|
491
|
+
// the relay, the team and every decision were fine. What was last known is
|
|
492
|
+
// kept through two misses; only a third in a row is shown as "unable to
|
|
493
|
+
// check". A check that did come back always wins.
|
|
494
|
+
if !next.reachable && self.hasLoaded && self.state.reachable && self.missedChecks < 2 {
|
|
495
|
+
self.missedChecks += 1
|
|
496
|
+
self.refreshing = false
|
|
497
|
+
return
|
|
498
|
+
}
|
|
499
|
+
self.missedChecks = next.reachable ? 0 : self.missedChecks + 1
|
|
486
500
|
self.state = next
|
|
487
501
|
self.hasLoaded = true
|
|
488
502
|
self.refreshing = false
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@join-pantheon/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.30.0",
|
|
4
4
|
"description": "Let your coding agent collaborate directly with your teammates' agents — ask, agree an interface, and deliver, without a human relaying messages.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"pantheon": "bin/pantheon.js"
|
|
8
8
|
},
|
|
9
9
|
"engines": {
|
|
10
|
-
"node": ">=22"
|
|
10
|
+
"node": ">=22.13"
|
|
11
11
|
},
|
|
12
12
|
"scripts": {
|
|
13
13
|
"build": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p .",
|