@estebanforge/pi-ask-antigravity 1.2.12 → 1.3.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/CHANGELOG.md +13 -0
- package/README.md +1 -1
- package/extensions/index.ts +44 -40
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [1.3.0] - 2026-10-12
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
- Settings dialog now renders on the shared `@estebanforge/pi-tui-dialogs` framed dialog kit instead of the bare pi-tui `SettingsList`: bordered rows, a help panel per setting, type-to-search, and the config file path under the title. Same three rows, same stage-then-save-on-close behavior.
|
|
11
|
+
|
|
12
|
+
## [1.2.13] - 2026-10-12
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- Default `timeoutMinutes` is now 30 (was 10). Delegations carry feedback, research, review, and analysis work that legitimately runs long; a short default kills the run mid-task and the caller re-pays the whole prompt at a higher timeout. Callers still override per call, lower or higher.
|
|
17
|
+
|
|
5
18
|
## [1.2.12] - 2026-10-10
|
|
6
19
|
|
|
7
20
|
### Added
|
package/README.md
CHANGED
|
@@ -113,7 +113,7 @@ Interactive picker for the default model and default thinking. If the project co
|
|
|
113
113
|
| `mode` | no | `plan` (review-shaped; not enforced, see the modes table) or `accept-edits` (agy applies edits, default). |
|
|
114
114
|
| `digest` | no | Prefix the prompt with `(Use compact digests, not full file contents.)`. Defaults on for `plan`, off for `accept-edits`. |
|
|
115
115
|
| `conversationId` | no | Omit for a one-shot (agy starts fresh). Pass the id from a prior call's result (`details.conversationId`) to resume that agy conversation with full context. See [Two modes](#two-modes-one-shot-vs-continued-conversation). |
|
|
116
|
-
| `timeoutMinutes` | no | Hard cap on the agy run in minutes. Default
|
|
116
|
+
| `timeoutMinutes` | no | Hard cap on the agy run in minutes. Default 30. Above 0, at most 35791 (fractional minutes allowed). The prompt carries a matching `[TIME BUDGET]` notice; rejected values return a tool error without spawning. |
|
|
117
117
|
|
|
118
118
|
## Environment
|
|
119
119
|
|
package/extensions/index.ts
CHANGED
|
@@ -37,12 +37,12 @@ import {
|
|
|
37
37
|
type AgentToolResult,
|
|
38
38
|
buildSessionContext,
|
|
39
39
|
getAgentDir,
|
|
40
|
-
getSettingsListTheme,
|
|
41
40
|
keyHint,
|
|
42
41
|
type ExtensionAPI,
|
|
43
42
|
} from "@earendil-works/pi-coding-agent";
|
|
44
43
|
|
|
45
|
-
import {
|
|
44
|
+
import { Text } from "@earendil-works/pi-tui";
|
|
45
|
+
import { DIALOG_OPTIONS, DialogMenu, type DialogRow } from "@estebanforge/pi-tui-dialogs";
|
|
46
46
|
import { contentText } from "@earendil-works/pi-ai";
|
|
47
47
|
import { Type } from "typebox";
|
|
48
48
|
import {
|
|
@@ -81,7 +81,10 @@ import {
|
|
|
81
81
|
|
|
82
82
|
// --- Constants -------------------------------------------------------------
|
|
83
83
|
|
|
84
|
-
|
|
84
|
+
// Feedback, research, review, and analysis delegations legitimately run
|
|
85
|
+
// long; a short default kills the run mid-task and the caller re-pays the
|
|
86
|
+
// whole prompt at a higher timeout. Callers opt down per call.
|
|
87
|
+
const DEFAULT_TIMEOUT_MIN = 30;
|
|
85
88
|
const STATUS_INTERVAL_MS = 1000;
|
|
86
89
|
const STATUS_TAIL_CHARS = 160;
|
|
87
90
|
const DISCOVERY_TIMEOUT_MS = 8_000;
|
|
@@ -101,7 +104,7 @@ const DEFAULT_SKIP_PERMISSIONS = true;
|
|
|
101
104
|
// Per-family fallback tier, the pi->agy tier clamp (levelToTier), the static
|
|
102
105
|
// alias overlay, and the line grammar now live in the shared peer adapter
|
|
103
106
|
// (pi-ask-shared peers/antigravity.ts) alongside the argv builder and the
|
|
104
|
-
// conversation-discovery technique, so pi-antigravity-bridge and pi-
|
|
107
|
+
// conversation-discovery technique, so pi-antigravity-bridge and pi-peer-review
|
|
105
108
|
// reuse the exact same resolution contract.
|
|
106
109
|
|
|
107
110
|
// Mode = which agy tool-loop policy to apply. Distinct from the alias layer.
|
|
@@ -188,7 +191,7 @@ function saveConfig(patch: Partial<Config>): SaveResult {
|
|
|
188
191
|
// --- Prompt assembly: shared peer adapter ----------------------------------
|
|
189
192
|
// The plan-mode guards (PLAN_HEADLESS_GUARD / AGENT_REVIEW_GUARD) and the
|
|
190
193
|
// prompt assembler (buildFinalPrompt) live in pi-ask-shared
|
|
191
|
-
// (peers/antigravity.ts) so the bridge's ask-tool and pi-
|
|
194
|
+
// (peers/antigravity.ts) so the bridge's ask-tool and pi-peer-review consults
|
|
192
195
|
// inherit the identical guard discipline.
|
|
193
196
|
export { AGENT_REVIEW_GUARD, PLAN_HEADLESS_GUARD } from "@estebanforge/pi-ask-shared";
|
|
194
197
|
|
|
@@ -778,7 +781,7 @@ export default async function (pi: ExtensionAPI) {
|
|
|
778
781
|
const currentResolved =
|
|
779
782
|
resolveAgyModel(config.defaultModel, discovered, config.defaultThinking)?.model ?? config.defaultModel;
|
|
780
783
|
|
|
781
|
-
const
|
|
784
|
+
const rows: DialogRow[] = [
|
|
782
785
|
{
|
|
783
786
|
id: "defaultModel",
|
|
784
787
|
label: "Default model",
|
|
@@ -810,40 +813,41 @@ export default async function (pi: ExtensionAPI) {
|
|
|
810
813
|
|
|
811
814
|
const pending: Partial<Config> = {};
|
|
812
815
|
|
|
813
|
-
await ctx.ui.custom(
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
}
|
|
845
|
-
}
|
|
846
|
-
|
|
816
|
+
await ctx.ui.custom<void>(
|
|
817
|
+
(host, theme, _kb, done) => {
|
|
818
|
+
const menu = new DialogMenu(
|
|
819
|
+
host,
|
|
820
|
+
theme,
|
|
821
|
+
{
|
|
822
|
+
title: "AskAntigravity defaults",
|
|
823
|
+
subtitle: `Project file: ${path.join(getAgentDir(), "ask-antigravity.json")} — changes save when the dialog closes`,
|
|
824
|
+
rows,
|
|
825
|
+
footer: "↑↓ navigate · Enter/Space cycle · Type to search · Esc close",
|
|
826
|
+
onChange: (id, newValue) => {
|
|
827
|
+
if (id === "defaultModel") {
|
|
828
|
+
// Value is "alias → resolved"; keep the alias part.
|
|
829
|
+
const alias = newValue.split("→")[0].trim();
|
|
830
|
+
pending.defaultModel = alias;
|
|
831
|
+
} else if (id === "defaultThinking") {
|
|
832
|
+
pending.defaultThinking = newValue as ThinkingTier;
|
|
833
|
+
} else if (id === "permissions") {
|
|
834
|
+
pending.skipPermissions = newValue === "auto-approved";
|
|
835
|
+
}
|
|
836
|
+
},
|
|
837
|
+
},
|
|
838
|
+
() => done(),
|
|
839
|
+
);
|
|
840
|
+
return {
|
|
841
|
+
render: (w: number) => menu.render(w),
|
|
842
|
+
invalidate: () => menu.invalidate(),
|
|
843
|
+
handleInput: (data: string) => {
|
|
844
|
+
menu.handleInput(data);
|
|
845
|
+
host.requestRender();
|
|
846
|
+
},
|
|
847
|
+
};
|
|
848
|
+
},
|
|
849
|
+
DIALOG_OPTIONS,
|
|
850
|
+
);
|
|
847
851
|
|
|
848
852
|
if (Object.keys(pending).length === 0) return;
|
|
849
853
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@estebanforge/pi-ask-antigravity",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Pi tool that delegates a self-contained sub-task to Google Antigravity's agy CLI (the CLI for Gemini). Friendly model aliases (flash/pro/gemini), configurable default model + thinking, and the AskAntigravity delegation tool.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pi-package",
|
|
@@ -28,7 +28,8 @@
|
|
|
28
28
|
},
|
|
29
29
|
"type": "module",
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@estebanforge/pi-ask-shared": "^0.1.2"
|
|
31
|
+
"@estebanforge/pi-ask-shared": "^0.1.2",
|
|
32
|
+
"@estebanforge/pi-tui-dialogs": "^0.1.1"
|
|
32
33
|
},
|
|
33
34
|
"files": [
|
|
34
35
|
"extensions",
|