pi-goal-list-loop-audit 0.27.8 → 0.28.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.
|
@@ -104,6 +104,7 @@ function buildGoalAuditorPrompt(goal: Goal, completionSummary: string | null | u
|
|
|
104
104
|
"You are the independent completion auditor for pi-goal-list-loop-audit.",
|
|
105
105
|
"The executor claims the goal is complete. Your job is to decide whether the user's objective is actually satisfied.",
|
|
106
106
|
"Be skeptical and semantic. Do not approve from paperwork, intent, file count, word count, build success, or a plausible summary alone.",
|
|
107
|
+
"Chunk output near context-full: prefer focused, evidence-quote-first replies (one tool call at a time, raw output inline) over mega-replies that hit the output-token cap. The orchestrator's auto-continue fires on stop_reason=\"length\" but pre-empting by chunking is cheaper than recovering from the cap.",
|
|
107
108
|
"Use read/grep/find/ls/bash as needed to inspect real artifacts. Do not mutate files or run destructive commands.",
|
|
108
109
|
"If the work is only an alpha scaffold, generated template, shallow draft, proxy milestone, or lacks the user-facing value requested, disapprove.",
|
|
109
110
|
"If any explicit requirement is missing, weakly verified, contradicted, or not inspectable with the available evidence, disapprove.",
|
|
@@ -231,12 +231,19 @@ function goalLines(g: Goal, state: State, audit: AuditDisplayProgress | null | u
|
|
|
231
231
|
});
|
|
232
232
|
// v0.27.1: what survives the pause — the first question at a pause is
|
|
233
233
|
// "did I lose the work?". Answer it on the card.
|
|
234
|
+
// v0.27.9: when the goal has no telemetry yet (restored-in-fresh-session
|
|
235
|
+
// before the first turn), render "awaiting first turn" instead of "saved"
|
|
236
|
+
// — the latter was misleading because no work was ever "saved" before the
|
|
237
|
+
// session ended.
|
|
234
238
|
const spent: string[] = [];
|
|
235
239
|
const tokUsed = g.usage?.tokensUsed ?? 0;
|
|
236
|
-
if (tokUsed > 0) spent.push(`${fmtTokens(tokUsed)} tok spent`);
|
|
237
240
|
const audits = g.auditHistory?.length ?? 0;
|
|
241
|
+
if (tokUsed > 0) spent.push(`${fmtTokens(tokUsed)} tok spent`);
|
|
238
242
|
if (audits > 0) spent.push(`${audits} audit${audits === 1 ? "" : "s"}`);
|
|
239
|
-
const
|
|
243
|
+
const hasTelemetry = spent.length > 0;
|
|
244
|
+
const savedLine = hasTelemetry
|
|
245
|
+
? `saved — ${spent.join(" · ")} · resumes exactly here`
|
|
246
|
+
: `awaiting first turn — resumes exactly here`;
|
|
240
247
|
if (g.pauseSuggestedAction) {
|
|
241
248
|
lines.push(`├─ ${paint(theme, "dim", truncate(savedLine, budget))}`);
|
|
242
249
|
const wrapped = wrap(g.pauseSuggestedAction, budget, 3);
|
|
@@ -83,6 +83,18 @@ export interface Settings {
|
|
|
83
83
|
* Always wins over subagentModelStrategy — the managed override is written
|
|
84
84
|
* WITH this pin regardless of strategy. */
|
|
85
85
|
subagentModelOverrides?: Record<string, string>;
|
|
86
|
+
/** v0.27.9: per-tool overrides — allowlist (force tools visible despite
|
|
87
|
+
* an external modlist), hidden (force tools hidden even when allowed by
|
|
88
|
+
* the session), and per-tool config (Record<toolName, Record<key, value>>
|
|
89
|
+
* — extensible for tool-specific knobs like timeouts, formats, etc.). */
|
|
90
|
+
toolOverrides?: {
|
|
91
|
+
/** Tools that MUST be active even when an external allowlist hides them. */
|
|
92
|
+
allow?: string[];
|
|
93
|
+
/** Tools that MUST be hidden even when the session allows them. */
|
|
94
|
+
hide?: string[];
|
|
95
|
+
/** Per-tool configuration knobs (extensible). */
|
|
96
|
+
perToolConfig?: Record<string, Record<string, unknown>>;
|
|
97
|
+
};
|
|
86
98
|
}
|
|
87
99
|
|
|
88
100
|
export const DEFAULT_SETTINGS: Settings = {
|
|
@@ -146,6 +158,7 @@ export const SETTINGS_KEYS: Array<keyof Settings> = [
|
|
|
146
158
|
"stallShortWords",
|
|
147
159
|
"stallSimilarityThreshold",
|
|
148
160
|
"postaudit",
|
|
161
|
+
"toolOverrides",
|
|
149
162
|
];
|
|
150
163
|
|
|
151
164
|
/** Where each effective setting comes from (for the /glla display). */
|