@estebanforge/pi-antigravity-bridge 1.8.2 → 1.8.3

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 CHANGED
@@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [1.8.3] - 2026-10-13
8
+
9
+ ### Fixed
10
+
11
+ - **The G10 carrier agent no longer dies on invalid YAML frontmatter (issue #5).** `syspromptAgentMd()` wrote the `description` value as an unquoted plain scalar containing a second `: `, which is invalid YAML. agy silently skips an agent whose frontmatter does not parse, so every stream-json turn with the staged carrier (default `systemPrompt: true`, no user-set `config.agent`) failed with `unknown agent "pi-bridge-sys-…"`; the bug has been present since 1.7.8. The value is now quoted, and all three agent.md generators (sysprompt carrier, web delegate, ask-tool reviewer) are pinned by tests that parse the generated frontmatter with a real YAML parser, so a future wording edit cannot reintroduce the silent drop. Leftover broken `pi-bridge-sys-*` dirs need no manual cleanup: the stale-agent sweep prunes them on next staging.
12
+
7
13
  ## [1.8.2] - 2026-10-13
8
14
 
9
15
  ### Fixed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@estebanforge/pi-antigravity-bridge",
3
- "version": "1.8.2",
3
+ "version": "1.8.3",
4
4
  "description": "Gemini provider for Pi on the Antigravity ACP server (official Google ACP) or the stream-json agy CLI. Use antigravity/* models in Pi. Full /model picker support. Models runs Pi's tools. ToS safe to use.",
5
5
  "keywords": [
6
6
  "pi-package",
@@ -44,7 +44,9 @@ export function syspromptAgentMd(name: string, body: string): string {
44
44
  return [
45
45
  "---",
46
46
  `name: ${name}`,
47
- "description: Pi bridge system-prompt carrier: pi operating instructions plus project AGENTS.md context",
47
+ // Quoted value: it contains ': ', invalid inside an unquoted plain
48
+ // scalar — agy then silently drops the agent (issue #5).
49
+ "description: \"Pi bridge system-prompt carrier: pi operating instructions plus project AGENTS.md context\"",
48
50
  "mainAgent: true",
49
51
  "model: inherit",
50
52
  "---",
package/src/web-tools.ts CHANGED
@@ -114,6 +114,11 @@ export interface WebRunOptions {
114
114
  log?: (event: string, data?: unknown, level?: "info" | "warn" | "error") => void;
115
115
  }
116
116
 
117
+ /** agent.md for the one-shot web delegate: search-only, no inheritance. */
118
+ export function webAgentMd(name: string): string {
119
+ return `---\nname: ${name}\ndescription: Temporary Pi web delegate\nmainAgent: true\nsubagent: false\nmodel: inherit\nexcludeDefaultComponents: true\ninheritCustomizations: false\ninheritMcp: false\ncommandExecutionPolicy: auto\ntools:\n - search_web\n - read_url_content\nskills: []\nrules: []\nagents: []\nmcpServers: []\n---\n\nAnswer the user's query using search_web (and read_url_content when a page must be opened). Cite sources. Use no other tools.\n`;
120
+ }
121
+
117
122
  /** One gated one-shot web run. Creates a unique restricted agent, streams the
118
123
  * NDJSON frames, refuses answers with no observed allowed-tool step, and
119
124
  * always removes the agent dir. */
@@ -128,11 +133,9 @@ export async function runWebAgent(opts: WebRunOptions): Promise<WebRunResult> {
128
133
  // commandExecutionPolicy stays at the live-validated "auto": the template's
129
134
  // tools list has no command tool and plan mode blocks edits; an unvalidated
130
135
  // stricter enum risks agent discovery failing outright.
131
- writeFileSync(
132
- path.join(agentDir, "agent.md"),
133
- `---\nname: ${agentName}\ndescription: Temporary Pi web delegate\nmainAgent: true\nsubagent: false\nmodel: inherit\nexcludeDefaultComponents: true\ninheritCustomizations: false\ninheritMcp: false\ncommandExecutionPolicy: auto\ntools:\n - search_web\n - read_url_content\nskills: []\nrules: []\nagents: []\nmcpServers: []\n---\n\nAnswer the user's query using search_web (and read_url_content when a page must be opened). Cite sources. Use no other tools.\n`,
134
- { mode: 0o600 },
135
- );
136
+ writeFileSync(path.join(agentDir, "agent.md"), webAgentMd(agentName), {
137
+ mode: 0o600,
138
+ });
136
139
  writeFileSync(path.join(agentDir, ".pid"), `${process.pid}\n`, { mode: 0o600 });
137
140
 
138
141
  const bin = opts.bin ?? process.env.AGY_BIN ?? "agy";