@join-pantheon/cli 0.28.0 → 0.29.1
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/dist/accounts.js +13 -2
- package/dist/agents.js +377 -9
- package/dist/cli.js +378 -192
- package/dist/client.js +73 -12
- package/dist/config.js +15 -0
- package/dist/doctor.js +13 -10
- package/dist/grants.js +16 -1
- package/dist/hooks-install.js +4 -2
- package/dist/host-env.js +51 -6
- package/dist/install.js +216 -16
- package/dist/kiro-files.js +23 -6
- package/dist/ledger.js +8 -2
- package/dist/machine.js +286 -60
- package/dist/mcp-supervisor.js +5 -0
- package/dist/mcp.js +33 -6
- package/dist/network.js +258 -57
- package/dist/pending.js +14 -7
- package/dist/quickstart.js +186 -22
- package/dist/refusal.js +29 -0
- package/dist/relay.js +738 -447
- package/dist/roster-file.js +19 -3
- package/dist/run-failure.js +18 -7
- package/dist/service.js +192 -40
- package/dist/setup-guide.js +21 -4
- package/dist/store.js +9 -3
- package/dist/which.js +66 -4
- package/dist/workdir.js +7 -1
- package/dist/worker.js +522 -101
- package/helper/macos/menubar.swift +11 -3
- package/package.json +1 -1
|
@@ -854,6 +854,7 @@ final class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate {
|
|
|
854
854
|
private var panelSendButton: NSButton?
|
|
855
855
|
private var panelRetract: NSButton? // the undo, for a minute after a send
|
|
856
856
|
private var panelLastSent: String = "" // act id of what was just sent
|
|
857
|
+
private var panelLastSpace: String = "" // the team it was sent in, for the undo
|
|
857
858
|
|
|
858
859
|
private func label(_ text: String, size: CGFloat, weight: NSFont.Weight, color: NSColor, width: CGFloat) -> NSTextField {
|
|
859
860
|
let l = NSTextField(labelWithString: text)
|
|
@@ -1308,6 +1309,9 @@ final class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate {
|
|
|
1308
1309
|
/// prints "sent KIND id=… seq=…" or "not sent: why" on stdout; both are shown.
|
|
1309
1310
|
@objc private func panelSend(_ sender: Any?) {
|
|
1310
1311
|
guard let item = panelItem, let tv = panelReply else { return }
|
|
1312
|
+
// Return is the send key: a second press while the first send is still in
|
|
1313
|
+
// flight must not send the same words twice.
|
|
1314
|
+
if panelSendButton?.isEnabled == false { return }
|
|
1311
1315
|
let text = tv.string.trimmingCharacters(in: .whitespacesAndNewlines)
|
|
1312
1316
|
if text.isEmpty { setStatus("Type your reply first."); return }
|
|
1313
1317
|
let kind = kindCode(panelReplyKind?.titleOfSelectedItem)
|
|
@@ -1324,6 +1328,7 @@ final class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate {
|
|
|
1324
1328
|
let out = (r?.out ?? "").trimmingCharacters(in: .whitespacesAndNewlines)
|
|
1325
1329
|
if r?.code == 0, let idTok = out.split(separator: " ").first(where: { $0.hasPrefix("id=") }) {
|
|
1326
1330
|
self.panelLastSent = String(idTok.dropFirst(3))
|
|
1331
|
+
self.panelLastSpace = item.space
|
|
1327
1332
|
tv.string = ""
|
|
1328
1333
|
let what = kind == "ANSWER" ? "Answered — it is no longer waiting on you." : kind == "ASK" ? "Asked — the agent that raised this owes you a reply." : "Noted — it stays waiting."
|
|
1329
1334
|
self.setStatus(what)
|
|
@@ -1343,7 +1348,9 @@ final class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate {
|
|
|
1343
1348
|
@objc private func panelRetractAction() {
|
|
1344
1349
|
guard !panelLastSent.isEmpty else { return }
|
|
1345
1350
|
let id = panelLastSent
|
|
1346
|
-
|
|
1351
|
+
var payload: [String: Any] = ["action": "retract", "act": id]
|
|
1352
|
+
if !panelLastSpace.isEmpty { payload["space"] = panelLastSpace }
|
|
1353
|
+
guard writeAction(payload) else { setStatus("Could not write the action."); return }
|
|
1347
1354
|
setStatus("Retracting…")
|
|
1348
1355
|
panelRetract?.isEnabled = false
|
|
1349
1356
|
DispatchQueue.global().async {
|
|
@@ -1376,7 +1383,7 @@ final class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate {
|
|
|
1376
1383
|
@objc private func panelDone() {
|
|
1377
1384
|
guard let item = panelItem, item.isDecision else { return }
|
|
1378
1385
|
setStatus("Marking it done…")
|
|
1379
|
-
var payload: [String: Any] = ["action": "done", "decision": item.id]
|
|
1386
|
+
var payload: [String: Any] = ["action": "done", "decision": item.id, "space": item.space]
|
|
1380
1387
|
if !item.ref.isEmpty { payload["act"] = item.ref }
|
|
1381
1388
|
guard writeAction(payload) else {
|
|
1382
1389
|
setStatus("Could not write the action. Use Show the thread instead.")
|
|
@@ -1420,8 +1427,9 @@ final class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate {
|
|
|
1420
1427
|
}
|
|
1421
1428
|
/// The act behind it, in Terminal, with the reply menu.
|
|
1422
1429
|
func showThread(_ item: Item) {
|
|
1423
|
-
var payload: [String: Any] = ["action": "details"]
|
|
1430
|
+
var payload: [String: Any] = ["action": "details", "space": item.space]
|
|
1424
1431
|
if !item.ref.isEmpty { payload["act"] = item.ref }
|
|
1432
|
+
if !item.goal.isEmpty { payload["goal"] = item.goal }
|
|
1425
1433
|
if item.isDecision { payload["decision"] = item.id }
|
|
1426
1434
|
if writeAction(payload) { openCommand("pantheon-details.command") }
|
|
1427
1435
|
else { reportFailure("Could not open Terminal. Run pantheon doctor to check your setup.") }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@join-pantheon/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.29.1",
|
|
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": {
|