pi-soly 0.5.7 → 0.5.9
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/package.json +13 -5
- package/switch/index.ts +11 -7
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-soly",
|
|
3
|
-
"version": "0.5.
|
|
4
|
-
"description": "Project management for pi
|
|
3
|
+
"version": "0.5.9",
|
|
4
|
+
"description": "Project management framework for pi-coding-agent. Workflows, planning, multi-question picker, agent switcher, live task list — one npm install, zero config.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.ts",
|
|
7
7
|
"scripts": {
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
"typescript": "^6.0.3"
|
|
23
23
|
},
|
|
24
24
|
"files": [
|
|
25
|
+
"README.md",
|
|
25
26
|
"commands.ts",
|
|
26
27
|
"config.ts",
|
|
27
28
|
"core.ts",
|
|
@@ -51,7 +52,10 @@
|
|
|
51
52
|
"planning",
|
|
52
53
|
"subagents",
|
|
53
54
|
"multi-question",
|
|
54
|
-
"agent-switcher"
|
|
55
|
+
"agent-switcher",
|
|
56
|
+
"task-list",
|
|
57
|
+
"workflow-engine",
|
|
58
|
+
"ai-coding"
|
|
55
59
|
],
|
|
56
60
|
"license": "MIT",
|
|
57
61
|
"pi": {
|
|
@@ -62,9 +66,13 @@
|
|
|
62
66
|
"publishConfig": {
|
|
63
67
|
"registry": "https://registry.npmjs.org/"
|
|
64
68
|
},
|
|
69
|
+
"homepage": "https://github.com/lowern1ght/pi-soly#readme",
|
|
70
|
+
"bugs": {
|
|
71
|
+
"url": "https://github.com/lowern1ght/pi-soly/issues"
|
|
72
|
+
},
|
|
65
73
|
"repository": {
|
|
66
74
|
"type": "git",
|
|
67
|
-
"url": "
|
|
68
|
-
"directory": "packages/soly"
|
|
75
|
+
"url": "https://github.com/lowern1ght/pi-soly.git",
|
|
76
|
+
"directory": "packages/pi-soly"
|
|
69
77
|
}
|
|
70
78
|
}
|
package/switch/index.ts
CHANGED
|
@@ -73,13 +73,8 @@ export default function piSwitchExtension(pi: ExtensionAPI) {
|
|
|
73
73
|
publish();
|
|
74
74
|
if (cwd) saveAgent(cwd, next);
|
|
75
75
|
rerender();
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
lastUi.notify(
|
|
79
|
-
`${m.emoji} ${next} · ${m.description}${m.writesFiles ? "" : " · read-only"}`,
|
|
80
|
-
"info",
|
|
81
|
-
);
|
|
82
|
-
}
|
|
76
|
+
// Footer pill is the only visible signal of the switch.
|
|
77
|
+
// Chat stays clean — agent is plumbing, not conversation content.
|
|
83
78
|
}
|
|
84
79
|
|
|
85
80
|
// ----- session_start: load persisted agent + set initial pill -----
|
|
@@ -106,7 +101,16 @@ export default function piSwitchExtension(pi: ExtensionAPI) {
|
|
|
106
101
|
// ----- Hot cycle (no popup, no confirmation) -----
|
|
107
102
|
// Ctrl+Tab is the primary shortcut (most terminals support it).
|
|
108
103
|
// F2 is kept as a backup for terminals that don't pass Ctrl+Tab through.
|
|
104
|
+
// Debounced: 180ms — terminal key auto-repeat can fire the same key 5+
|
|
105
|
+
// times per second, which would spam the chat with the same agent
|
|
106
|
+
// notification. The window covers auto-repeat but allows deliberate
|
|
107
|
+
// sequential presses.
|
|
108
|
+
let lastCycleTs = 0;
|
|
109
|
+
const CYCLE_DEBOUNCE_MS = 180;
|
|
109
110
|
const cycleShortcut = (sctx: { ui: ExtensionUIContext }): void => {
|
|
111
|
+
const now = Date.now();
|
|
112
|
+
if (now - lastCycleTs < CYCLE_DEBOUNCE_MS) return;
|
|
113
|
+
lastCycleTs = now;
|
|
110
114
|
lastUi = sctx.ui;
|
|
111
115
|
refreshCycle();
|
|
112
116
|
setAgent(nextAgent(currentAgent, cycle));
|