agy-paperclip-adapter 1.0.0 → 1.0.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.
- package/dist/icon.d.ts +6 -2
- package/dist/icon.js +6 -6
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/server/index.d.ts +3 -3
- package/dist/server/index.js +36 -4
- package/dist/server/test.js +5 -7
- package/package.json +2 -2
package/dist/icon.d.ts
CHANGED
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
export declare const
|
|
2
|
-
export declare const
|
|
1
|
+
export declare const rawSvg = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.75\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 2L2 19h20L12 2z\" stroke=\"#4285F4\" stroke-width=\"2\"/><ellipse cx=\"12\" cy=\"14\" rx=\"8\" ry=\"3\" stroke=\"#A142F4\" stroke-width=\"1.5\" stroke-dasharray=\"3 2\"/><circle cx=\"12\" cy=\"10\" r=\"2\" fill=\"#4285F4\"/></svg>";
|
|
2
|
+
export declare const iconSvg = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.75\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 2L2 19h20L12 2z\" stroke=\"#4285F4\" stroke-width=\"2\"/><ellipse cx=\"12\" cy=\"14\" rx=\"8\" ry=\"3\" stroke=\"#A142F4\" stroke-width=\"1.5\" stroke-dasharray=\"3 2\"/><circle cx=\"12\" cy=\"10\" r=\"2\" fill=\"#4285F4\"/></svg>";
|
|
3
|
+
export declare const iconDataUrl: string;
|
|
4
|
+
export declare const iconBase64: string;
|
|
5
|
+
export declare const icon: string;
|
|
6
|
+
export declare const iconUrl: string;
|
package/dist/icon.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export const
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export const
|
|
1
|
+
export const rawSvg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2L2 19h20L12 2z" stroke="#4285F4" stroke-width="2"/><ellipse cx="12" cy="14" rx="8" ry="3" stroke="#A142F4" stroke-width="1.5" stroke-dasharray="3 2"/><circle cx="12" cy="10" r="2" fill="#4285F4"/></svg>`;
|
|
2
|
+
export const iconSvg = rawSvg;
|
|
3
|
+
export const iconDataUrl = `data:image/svg+xml;utf8,${encodeURIComponent(rawSvg)}`;
|
|
4
|
+
export const iconBase64 = `data:image/svg+xml;base64,${Buffer.from(rawSvg).toString("base64")}`;
|
|
5
|
+
export const icon = iconDataUrl;
|
|
6
|
+
export const iconUrl = iconDataUrl;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const type = "antigravity";
|
|
2
2
|
export declare const label = "Antigravity";
|
|
3
|
-
export { icon, iconSvg } from "./icon.js";
|
|
3
|
+
export { icon, iconSvg, iconUrl, iconDataUrl, iconBase64 } from "./icon.js";
|
|
4
4
|
export { models, DEFAULT_ANTIGRAVITY_MODEL } from "./models.js";
|
|
5
5
|
export { parseStdoutLine } from "./ui-parser.js";
|
|
6
6
|
export { agentConfigurationDoc, createServerAdapter, sessionCodec, getConfigSchema, } from "./server/index.js";
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export const type = "antigravity";
|
|
2
2
|
export const label = "Antigravity";
|
|
3
|
-
export { icon, iconSvg } from "./icon.js";
|
|
3
|
+
export { icon, iconSvg, iconUrl, iconDataUrl, iconBase64 } from "./icon.js";
|
|
4
4
|
export { models, DEFAULT_ANTIGRAVITY_MODEL } from "./models.js";
|
|
5
5
|
export { parseStdoutLine } from "./ui-parser.js";
|
|
6
6
|
export { agentConfigurationDoc, createServerAdapter, sessionCodec, getConfigSchema, } from "./server/index.js";
|
package/dist/server/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { ServerAdapterModule, AdapterSessionCodec } from "@paperclipai/adapter-utils";
|
|
2
|
-
import { icon, iconSvg } from "../icon.js";
|
|
2
|
+
import { icon, iconSvg, iconUrl, iconDataUrl, iconBase64 } from "../icon.js";
|
|
3
3
|
export declare const type = "antigravity";
|
|
4
4
|
export declare const label = "Antigravity";
|
|
5
|
-
export { icon, iconSvg };
|
|
5
|
+
export { icon, iconSvg, iconUrl, iconDataUrl, iconBase64 };
|
|
6
6
|
export declare const sessionCodec: AdapterSessionCodec;
|
|
7
|
-
export declare const agentConfigurationDoc = "# Antigravity Agent Configuration\n\nAdapter: antigravity\n\nUse when:\n- You want Paperclip to orchestrate Google Antigravity (agy) local CLI agents.\n- You want model selection across Gemini 3.8 Flash, Gemini 3.7 Flash, Gemini 3.6 Flash, Gemini 3.1 Pro, Claude Sonnet/Opus, or GPT-OSS models.\n- You want to hire multiple local agents with individual instructions and Paperclip skills.\n- You want persistent conversation session state across heartbeats.\n\nCore fields:\n- model (string): Antigravity model ID (e.g. gemini-3.8-flash-high, gemini-3.7-flash-high, claude-sonnet-4-6).\n- effort (string, optional): Reasoning effort (low, medium, high, max).\n- mode (string, optional): accept-edits or plan.\n- command (string, optional): agy binary command path (defaults to \"agy\").\n- cwd (string, optional): Working directory fallback.\n- instructionsFilePath (string, optional): Path to instructions markdown file (e.g. AGENTS.md).\n- timeoutSec (number, optional): Execution timeout in seconds (default: 600).\n";
|
|
7
|
+
export declare const agentConfigurationDoc = "# Antigravity Agent Configuration\n\nAdapter: antigravity\n\nUse when:\n- You want Paperclip to orchestrate Google Antigravity (agy) local CLI agents.\n- You want model selection across Gemini 3.8 Flash, Gemini 3.7 Flash, Gemini 3.6 Flash, Gemini 3.1 Pro, Claude Sonnet/Opus, or GPT-OSS models.\n- You want to hire multiple local agents with individual instructions and configurable Paperclip skills.\n- You want persistent conversation session state across heartbeats.\n\nCore fields:\n- model (string): Antigravity model ID (e.g. gemini-3.8-flash-high, gemini-3.7-flash-high, claude-sonnet-4-6).\n- effort (string, optional): Reasoning effort (low, medium, high, max).\n- mode (string, optional): accept-edits or plan.\n- command (string, optional): agy binary command path (defaults to \"agy\").\n- cwd (string, optional): Working directory fallback.\n- instructionsFilePath (string, optional): Path to instructions markdown file (e.g. AGENTS.md).\n- timeoutSec (number, optional): Execution timeout in seconds (default: 600).\n";
|
|
8
8
|
export declare function getConfigSchema(): {
|
|
9
9
|
fields: ({
|
|
10
10
|
key: string;
|
package/dist/server/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { models, DEFAULT_ANTIGRAVITY_MODEL } from "../models.js";
|
|
2
|
-
import { icon, iconSvg } from "../icon.js";
|
|
2
|
+
import { icon, iconSvg, iconUrl, iconDataUrl, iconBase64 } from "../icon.js";
|
|
3
3
|
import { execute } from "./execute.js";
|
|
4
4
|
import { testEnvironment } from "./test.js";
|
|
5
5
|
export const type = "antigravity";
|
|
6
6
|
export const label = "Antigravity";
|
|
7
|
-
export { icon, iconSvg };
|
|
7
|
+
export { icon, iconSvg, iconUrl, iconDataUrl, iconBase64 };
|
|
8
8
|
export const sessionCodec = {
|
|
9
9
|
deserialize(raw) {
|
|
10
10
|
if (typeof raw !== "object" || raw === null || Array.isArray(raw))
|
|
@@ -30,7 +30,7 @@ Adapter: antigravity
|
|
|
30
30
|
Use when:
|
|
31
31
|
- You want Paperclip to orchestrate Google Antigravity (agy) local CLI agents.
|
|
32
32
|
- You want model selection across Gemini 3.8 Flash, Gemini 3.7 Flash, Gemini 3.6 Flash, Gemini 3.1 Pro, Claude Sonnet/Opus, or GPT-OSS models.
|
|
33
|
-
- You want to hire multiple local agents with individual instructions and Paperclip skills.
|
|
33
|
+
- You want to hire multiple local agents with individual instructions and configurable Paperclip skills.
|
|
34
34
|
- You want persistent conversation session state across heartbeats.
|
|
35
35
|
|
|
36
36
|
Core fields:
|
|
@@ -103,9 +103,41 @@ export function createServerAdapter() {
|
|
|
103
103
|
models,
|
|
104
104
|
agentConfigurationDoc,
|
|
105
105
|
getConfigSchema,
|
|
106
|
-
|
|
106
|
+
requiresMaterializedRuntimeSkills: true,
|
|
107
107
|
supportsInstructionsBundle: true,
|
|
108
108
|
instructionsPathKey: "instructionsFilePath",
|
|
109
109
|
supportsLocalAgentJwt: true,
|
|
110
|
+
acp: {
|
|
111
|
+
agentId: "custom",
|
|
112
|
+
skillsMode: "ephemeral",
|
|
113
|
+
prerequisites: {},
|
|
114
|
+
},
|
|
115
|
+
async listSkills(ctx) {
|
|
116
|
+
return {
|
|
117
|
+
adapterType: ctx.adapterType,
|
|
118
|
+
supported: true,
|
|
119
|
+
mode: "ephemeral",
|
|
120
|
+
desiredSkills: [],
|
|
121
|
+
entries: [],
|
|
122
|
+
warnings: [],
|
|
123
|
+
};
|
|
124
|
+
},
|
|
125
|
+
async syncSkills(ctx, desiredSkills) {
|
|
126
|
+
return {
|
|
127
|
+
adapterType: ctx.adapterType,
|
|
128
|
+
supported: true,
|
|
129
|
+
mode: "ephemeral",
|
|
130
|
+
desiredSkills,
|
|
131
|
+
entries: desiredSkills.map((key) => ({
|
|
132
|
+
key,
|
|
133
|
+
runtimeName: key,
|
|
134
|
+
desired: true,
|
|
135
|
+
managed: true,
|
|
136
|
+
state: "installed",
|
|
137
|
+
locationLabel: `.agents/skills/${key}`,
|
|
138
|
+
})),
|
|
139
|
+
warnings: [],
|
|
140
|
+
};
|
|
141
|
+
},
|
|
110
142
|
};
|
|
111
143
|
}
|
package/dist/server/test.js
CHANGED
|
@@ -5,14 +5,12 @@ export async function testEnvironment(ctx) {
|
|
|
5
5
|
const checks = [];
|
|
6
6
|
const command = String(ctx.config.command ?? "agy");
|
|
7
7
|
try {
|
|
8
|
-
const { stdout } = await execFileAsync(command, ["--
|
|
9
|
-
|
|
10
|
-
});
|
|
11
|
-
const version = stdout.trim();
|
|
8
|
+
const { stdout } = await execFileAsync(command, ["--dangerously-skip-permissions", '--print="hello"'], { timeout: 15000 });
|
|
9
|
+
const output = stdout.trim();
|
|
12
10
|
checks.push({
|
|
13
11
|
level: "info",
|
|
14
|
-
message: `Antigravity
|
|
15
|
-
code: "
|
|
12
|
+
message: `Antigravity execution test succeeded: ${output.slice(0, 200) || "OK"}`,
|
|
13
|
+
code: "agy_test_executed",
|
|
16
14
|
});
|
|
17
15
|
}
|
|
18
16
|
catch (err) {
|
|
@@ -20,7 +18,7 @@ export async function testEnvironment(ctx) {
|
|
|
20
18
|
level: "error",
|
|
21
19
|
message: `Failed to execute Antigravity CLI command "${command}": ${err instanceof Error ? err.message : String(err)}`,
|
|
22
20
|
hint: "Ensure 'agy' is installed in PATH (e.g. /root/.local/bin/agy) or specify adapterConfig.command.",
|
|
23
|
-
code: "
|
|
21
|
+
code: "agy_test_failed",
|
|
24
22
|
});
|
|
25
23
|
}
|
|
26
24
|
const cwd = ctx.config.cwd ? String(ctx.config.cwd) : null;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agy-paperclip-adapter",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "Google Antigravity (agy) local agent adapter for Paperclip",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -53,4 +53,4 @@
|
|
|
53
53
|
"@types/node": "^24.0.0",
|
|
54
54
|
"typescript": "^5.7.0"
|
|
55
55
|
}
|
|
56
|
-
}
|
|
56
|
+
}
|