acstack 0.50.1 → 0.50.2
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.
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "acstack",
|
|
3
3
|
"description": "Agentic coding stack where planning grows only as far as needed: a map of decisions, tasks, checks, and handoffs behind a pluggable tracker.",
|
|
4
|
-
"version": "0.50.
|
|
4
|
+
"version": "0.50.2",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "ac8318740"
|
|
7
7
|
},
|
package/README.md
CHANGED
|
@@ -91,6 +91,9 @@ Then, in your project, run `/acstack:setup`.
|
|
|
91
91
|
- Freshness uses `/acstack:handoff` when a fresh window or independent read helps more
|
|
92
92
|
- With no thresholds set, the first nudge comes at 200k tokens or half the window, whichever is lower
|
|
93
93
|
- The urgent nudge comes at 500k tokens or 80% of the window, whichever is lower
|
|
94
|
+
- ACStack includes the question-status bridge automatically
|
|
95
|
+
- With `@juicesharp/rpiv-ask-user-question` and Herdr's Pi integration installed, Herdr shows blocked while Pi waits for an answer
|
|
96
|
+
- Existing setup-installed bridges can stay installed without counting the same wait twice
|
|
94
97
|
- Both subagent packages find the four agents through the `pi.subagents` field in `package.json`
|
|
95
98
|
- `@tintinweb/pi-subagents` exposes `Agent`; `pi-subagents` exposes `subagent`
|
|
96
99
|
- The agents use your subagent package's default model
|
|
@@ -1,31 +1,19 @@
|
|
|
1
1
|
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
let pending: { active: boolean; native: boolean } | undefined;
|
|
5
|
-
let forwarding = false;
|
|
6
|
-
|
|
7
|
-
pi.events.on("herdr:blocked", (event: unknown) => {
|
|
8
|
-
if (!forwarding && pending && (event as { active?: unknown } | null)?.active === pending.active) {
|
|
9
|
-
pending.native = true;
|
|
10
|
-
pending = undefined;
|
|
11
|
-
}
|
|
12
|
-
});
|
|
3
|
+
const TAKEOVER = "acstack:question-blocked:takeover";
|
|
13
4
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
if (
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
} finally {
|
|
27
|
-
forwarding = false;
|
|
28
|
-
}
|
|
5
|
+
export default function (pi: ExtensionAPI) {
|
|
6
|
+
pi.on("session_start", () => {
|
|
7
|
+
pi.events.emit(TAKEOVER, {});
|
|
8
|
+
// Register after legacy factories so our synchronous relay suppresses their queued copy.
|
|
9
|
+
// shortcut: legacy compatibility excludes recursively emitted public events; remove the legacy copy if needed
|
|
10
|
+
const stopRelay = pi.events.on("rpiv:ask-user:blocked", (event: unknown) => {
|
|
11
|
+
const active = (event as { active?: unknown } | null)?.active;
|
|
12
|
+
if (typeof active === "boolean") pi.events.emit("herdr:blocked", { active });
|
|
13
|
+
});
|
|
14
|
+
const stopTakeover = pi.events.on(TAKEOVER, () => {
|
|
15
|
+
stopRelay();
|
|
16
|
+
stopTakeover();
|
|
29
17
|
});
|
|
30
18
|
});
|
|
31
19
|
}
|
package/cli/package.json
CHANGED
|
@@ -365,11 +365,14 @@ What `apply` does:
|
|
|
365
365
|
- ACStack uses it because decisions can include markdown, code and artifact previews
|
|
366
366
|
- It accepts freeform answers and notes, and needs no full-event telemetry environment variable
|
|
367
367
|
- This setup still keeps pi's install telemetry disabled through `pi.settings.install_telemetry: false`
|
|
368
|
-
-
|
|
368
|
+
- ACStack's Pi package loads the question bridge automatically, including installations made without terminal-workspace setup
|
|
369
|
+
- Setup also installs a fallback copy under pi's agent directory, honoring `PI_CODING_AGENT_DIR`
|
|
370
|
+
- The packaged bridge and fallback copy count each wait once when both load
|
|
369
371
|
- The bridge translates `rpiv:ask-user:blocked` into `herdr:blocked`, so herdr shows the question's input wait
|
|
370
372
|
- Answer, cancellation, and error completion release the question's blocker while other herdr blockers stay active
|
|
371
|
-
-
|
|
372
|
-
-
|
|
373
|
+
- Anonymous native Herdr events remain independent from question events, including simultaneous waits
|
|
374
|
+
- A producer emitting both event types contributes two balanced blockers, which clear when both sources finish
|
|
375
|
+
- Older fallback copies work unless another extension recursively emits public question events; remove the older copy in that case
|
|
373
376
|
- Reapply refreshes the owned bridge, but preserves a pre-existing file at the same path
|
|
374
377
|
- `pi.question_tool: false`, `disable pi`, and `uninstall` remove only the owned bridge and leave user workarounds alone
|
|
375
378
|
- Set `pi.question_tool: false` to leave the package out, or remove it later if this setup installed it
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "acstack",
|
|
3
|
-
"version": "0.50.
|
|
3
|
+
"version": "0.50.2",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Agentic coding stack with first-class Claude Code and pi support: skills, orchestrator instructions, and verification agents.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -38,7 +38,8 @@
|
|
|
38
38
|
],
|
|
39
39
|
"pi": {
|
|
40
40
|
"extensions": [
|
|
41
|
-
"./pi/extension.ts"
|
|
41
|
+
"./pi/extension.ts",
|
|
42
|
+
"./assets/terminal-workspace/pi/acstack-question-blocked.ts"
|
|
42
43
|
],
|
|
43
44
|
"subagents": {
|
|
44
45
|
"agents": [
|