@zmeel/adapter-gemini-local 0.1.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.
Files changed (50) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cli/format-event.d.ts +2 -0
  3. package/dist/cli/format-event.d.ts.map +1 -0
  4. package/dist/cli/format-event.js +198 -0
  5. package/dist/cli/format-event.js.map +1 -0
  6. package/dist/cli/index.d.ts +2 -0
  7. package/dist/cli/index.d.ts.map +1 -0
  8. package/dist/cli/index.js +2 -0
  9. package/dist/cli/index.js.map +1 -0
  10. package/dist/index.d.ts +9 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +46 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/server/execute.d.ts +3 -0
  15. package/dist/server/execute.d.ts.map +1 -0
  16. package/dist/server/execute.js +372 -0
  17. package/dist/server/execute.js.map +1 -0
  18. package/dist/server/index.d.ts +7 -0
  19. package/dist/server/index.d.ts.map +1 -0
  20. package/dist/server/index.js +62 -0
  21. package/dist/server/index.js.map +1 -0
  22. package/dist/server/parse.d.ts +38 -0
  23. package/dist/server/parse.d.ts.map +1 -0
  24. package/dist/server/parse.js +238 -0
  25. package/dist/server/parse.js.map +1 -0
  26. package/dist/server/skills.d.ts +8 -0
  27. package/dist/server/skills.d.ts.map +1 -0
  28. package/dist/server/skills.js +69 -0
  29. package/dist/server/skills.js.map +1 -0
  30. package/dist/server/test.d.ts +3 -0
  31. package/dist/server/test.d.ts.map +1 -0
  32. package/dist/server/test.js +219 -0
  33. package/dist/server/test.js.map +1 -0
  34. package/dist/server/utils.d.ts +2 -0
  35. package/dist/server/utils.d.ts.map +1 -0
  36. package/dist/server/utils.js +7 -0
  37. package/dist/server/utils.js.map +1 -0
  38. package/dist/ui/build-config.d.ts +3 -0
  39. package/dist/ui/build-config.d.ts.map +1 -0
  40. package/dist/ui/build-config.js +84 -0
  41. package/dist/ui/build-config.js.map +1 -0
  42. package/dist/ui/index.d.ts +3 -0
  43. package/dist/ui/index.d.ts.map +1 -0
  44. package/dist/ui/index.js +3 -0
  45. package/dist/ui/index.js.map +1 -0
  46. package/dist/ui/parse-stdout.d.ts +3 -0
  47. package/dist/ui/parse-stdout.d.ts.map +1 -0
  48. package/dist/ui/parse-stdout.js +247 -0
  49. package/dist/ui/parse-stdout.js.map +1 -0
  50. package/package.json +55 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Paperclip AI
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,2 @@
1
+ export declare function printGeminiStreamEvent(raw: string, _debug: boolean): void;
2
+ //# sourceMappingURL=format-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-event.d.ts","sourceRoot":"","sources":["../../src/cli/format-event.ts"],"names":[],"mappings":"AA4GA,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAmGzE"}
@@ -0,0 +1,198 @@
1
+ import pc from "picocolors";
2
+ function asRecord(value) {
3
+ if (typeof value !== "object" || value === null || Array.isArray(value))
4
+ return null;
5
+ return value;
6
+ }
7
+ function asString(value, fallback = "") {
8
+ return typeof value === "string" ? value : fallback;
9
+ }
10
+ function asNumber(value, fallback = 0) {
11
+ return typeof value === "number" && Number.isFinite(value) ? value : fallback;
12
+ }
13
+ function stringifyUnknown(value) {
14
+ if (typeof value === "string")
15
+ return value;
16
+ if (value === null || value === undefined)
17
+ return "";
18
+ try {
19
+ return JSON.stringify(value, null, 2);
20
+ }
21
+ catch {
22
+ return String(value);
23
+ }
24
+ }
25
+ function errorText(value) {
26
+ if (typeof value === "string")
27
+ return value;
28
+ const rec = asRecord(value);
29
+ if (!rec)
30
+ return "";
31
+ const msg = (typeof rec.message === "string" && rec.message) ||
32
+ (typeof rec.error === "string" && rec.error) ||
33
+ (typeof rec.code === "string" && rec.code) ||
34
+ "";
35
+ if (msg)
36
+ return msg;
37
+ try {
38
+ return JSON.stringify(rec);
39
+ }
40
+ catch {
41
+ return "";
42
+ }
43
+ }
44
+ function printTextMessage(prefix, colorize, messageRaw) {
45
+ if (typeof messageRaw === "string") {
46
+ const text = messageRaw.trim();
47
+ if (text)
48
+ console.log(colorize(`${prefix}: ${text}`));
49
+ return;
50
+ }
51
+ const message = asRecord(messageRaw);
52
+ if (!message)
53
+ return;
54
+ const directText = asString(message.text).trim();
55
+ if (directText)
56
+ console.log(colorize(`${prefix}: ${directText}`));
57
+ const content = Array.isArray(message.content) ? message.content : [];
58
+ for (const partRaw of content) {
59
+ const part = asRecord(partRaw);
60
+ if (!part)
61
+ continue;
62
+ const type = asString(part.type).trim();
63
+ if (type === "output_text" || type === "text" || type === "content") {
64
+ const text = asString(part.text).trim() || asString(part.content).trim();
65
+ if (text)
66
+ console.log(colorize(`${prefix}: ${text}`));
67
+ continue;
68
+ }
69
+ if (type === "thinking") {
70
+ const text = asString(part.text).trim();
71
+ if (text)
72
+ console.log(pc.gray(`thinking: ${text}`));
73
+ continue;
74
+ }
75
+ if (type === "tool_call") {
76
+ const name = asString(part.name, asString(part.tool, "tool"));
77
+ console.log(pc.yellow(`tool_call: ${name}`));
78
+ const input = part.input ?? part.arguments ?? part.args;
79
+ if (input !== undefined)
80
+ console.log(pc.gray(stringifyUnknown(input)));
81
+ continue;
82
+ }
83
+ if (type === "tool_result" || type === "tool_response") {
84
+ const isError = part.is_error === true || asString(part.status).toLowerCase() === "error";
85
+ const contentText = asString(part.output) ||
86
+ asString(part.text) ||
87
+ asString(part.result) ||
88
+ stringifyUnknown(part.output ?? part.result ?? part.text ?? part.response);
89
+ console.log((isError ? pc.red : pc.cyan)(`tool_result${isError ? " (error)" : ""}`));
90
+ if (contentText)
91
+ console.log((isError ? pc.red : pc.gray)(contentText));
92
+ }
93
+ }
94
+ }
95
+ function printUsage(parsed) {
96
+ const usage = asRecord(parsed.usage) ?? asRecord(parsed.usageMetadata);
97
+ const usageMetadata = asRecord(usage?.usageMetadata);
98
+ const source = usageMetadata ?? usage ?? {};
99
+ const input = asNumber(source.input_tokens, asNumber(source.inputTokens, asNumber(source.promptTokenCount)));
100
+ const output = asNumber(source.output_tokens, asNumber(source.outputTokens, asNumber(source.candidatesTokenCount)));
101
+ const cached = asNumber(source.cached_input_tokens, asNumber(source.cachedInputTokens, asNumber(source.cachedContentTokenCount)));
102
+ const cost = asNumber(parsed.total_cost_usd, asNumber(parsed.cost_usd, asNumber(parsed.cost)));
103
+ console.log(pc.blue(`tokens: in=${input} out=${output} cached=${cached} cost=$${cost.toFixed(6)}`));
104
+ }
105
+ export function printGeminiStreamEvent(raw, _debug) {
106
+ const line = raw.trim();
107
+ if (!line)
108
+ return;
109
+ let parsed = null;
110
+ try {
111
+ parsed = JSON.parse(line);
112
+ }
113
+ catch {
114
+ console.log(line);
115
+ return;
116
+ }
117
+ const type = asString(parsed.type);
118
+ if (type === "system") {
119
+ const subtype = asString(parsed.subtype);
120
+ if (subtype === "init") {
121
+ const sessionId = asString(parsed.session_id) ||
122
+ asString(parsed.sessionId) ||
123
+ asString(parsed.sessionID) ||
124
+ asString(parsed.checkpoint_id);
125
+ const model = asString(parsed.model);
126
+ const details = [sessionId ? `session: ${sessionId}` : "", model ? `model: ${model}` : ""]
127
+ .filter(Boolean)
128
+ .join(", ");
129
+ console.log(pc.blue(`Gemini init${details ? ` (${details})` : ""}`));
130
+ return;
131
+ }
132
+ if (subtype === "error") {
133
+ const text = errorText(parsed.error ?? parsed.message ?? parsed.detail);
134
+ if (text)
135
+ console.log(pc.red(`error: ${text}`));
136
+ return;
137
+ }
138
+ console.log(pc.blue(`system: ${subtype || "event"}`));
139
+ return;
140
+ }
141
+ if (type === "assistant") {
142
+ printTextMessage("assistant", pc.green, parsed.message);
143
+ return;
144
+ }
145
+ if (type === "user") {
146
+ printTextMessage("user", pc.gray, parsed.message);
147
+ return;
148
+ }
149
+ if (type === "thinking") {
150
+ const text = asString(parsed.text).trim() || asString(asRecord(parsed.delta)?.text).trim();
151
+ if (text)
152
+ console.log(pc.gray(`thinking: ${text}`));
153
+ return;
154
+ }
155
+ if (type === "tool_call") {
156
+ const subtype = asString(parsed.subtype).trim().toLowerCase();
157
+ const toolCall = asRecord(parsed.tool_call ?? parsed.toolCall);
158
+ const [toolName] = toolCall ? Object.keys(toolCall) : [];
159
+ if (!toolCall || !toolName) {
160
+ console.log(pc.yellow(`tool_call${subtype ? `: ${subtype}` : ""}`));
161
+ return;
162
+ }
163
+ const payload = asRecord(toolCall[toolName]) ?? {};
164
+ if (subtype === "started" || subtype === "start") {
165
+ console.log(pc.yellow(`tool_call: ${toolName}`));
166
+ console.log(pc.gray(stringifyUnknown(payload.args ?? payload.input ?? payload.arguments ?? payload)));
167
+ return;
168
+ }
169
+ if (subtype === "completed" || subtype === "complete" || subtype === "finished") {
170
+ const isError = parsed.is_error === true ||
171
+ payload.is_error === true ||
172
+ payload.error !== undefined ||
173
+ asString(payload.status).toLowerCase() === "error";
174
+ console.log((isError ? pc.red : pc.cyan)(`tool_result${isError ? " (error)" : ""}`));
175
+ console.log((isError ? pc.red : pc.gray)(stringifyUnknown(payload.result ?? payload.output ?? payload.error)));
176
+ return;
177
+ }
178
+ console.log(pc.yellow(`tool_call: ${toolName}${subtype ? ` (${subtype})` : ""}`));
179
+ return;
180
+ }
181
+ if (type === "result") {
182
+ printUsage(parsed);
183
+ const subtype = asString(parsed.subtype, "result");
184
+ const isError = parsed.is_error === true;
185
+ if (subtype || isError) {
186
+ console.log((isError ? pc.red : pc.blue)(`result: subtype=${subtype} is_error=${isError ? "true" : "false"}`));
187
+ }
188
+ return;
189
+ }
190
+ if (type === "error") {
191
+ const text = errorText(parsed.error ?? parsed.message ?? parsed.detail);
192
+ if (text)
193
+ console.log(pc.red(`error: ${text}`));
194
+ return;
195
+ }
196
+ console.log(line);
197
+ }
198
+ //# sourceMappingURL=format-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-event.js","sourceRoot":"","sources":["../../src/cli/format-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrF,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc,EAAE,QAAQ,GAAG,EAAE;IAC7C,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AACtD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc,EAAE,QAAQ,GAAG,CAAC;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AAChF,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACrD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,MAAM,GAAG,GACP,CAAC,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC;QAChD,CAAC,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,IAAI,GAAG,CAAC,KAAK,CAAC;QAC5C,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC;QAC1C,EAAE,CAAC;IACL,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc,EAAE,QAAkC,EAAE,UAAmB;IAC/F,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,IAAI;YAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IACrC,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IACjD,IAAI,UAAU;QAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,MAAM,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC;IAElE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAExC,IAAI,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACpE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YACzE,IAAI,IAAI;gBAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;YACtD,SAAS;QACX,CAAC;QAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,IAAI;gBAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC;YACpD,SAAS;QACX,CAAC;QAED,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,CAAC;YAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC;YACxD,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACvE,SAAS;QACX,CAAC;QAED,IAAI,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;YACvD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC;YAC1F,MAAM,WAAW,GACf,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;gBACrB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBACnB,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;gBACrB,gBAAgB,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7E,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,cAAc,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACrF,IAAI,WAAW;gBAAE,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,MAA+B;IACjD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACvE,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,aAAa,IAAI,KAAK,IAAI,EAAE,CAAC;IAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC7G,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACpH,MAAM,MAAM,GAAG,QAAQ,CACrB,MAAM,CAAC,mBAAmB,EAC1B,QAAQ,CAAC,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAC7E,CAAC;IACF,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/F,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,KAAK,QAAQ,MAAM,WAAW,MAAM,UAAU,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtG,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,GAAW,EAAE,MAAe;IACjE,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACxB,IAAI,CAAC,IAAI;QAAE,OAAO;IAElB,IAAI,MAAM,GAAmC,IAAI,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEnC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACvB,MAAM,SAAS,GACb,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC;gBAC3B,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;gBAC1B,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;gBAC1B,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACrC,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACvF,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;QACD,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;YACxE,IAAI,IAAI;gBAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,OAAO,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IAED,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,gBAAgB,CAAC,WAAW,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACxD,OAAO;IACT,CAAC;IAED,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAClD,OAAO;IACT,CAAC;IAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3F,IAAI,IAAI;YAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC;QACpD,OAAO;IACT,CAAC;IAED,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC9D,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/D,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACpE,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACnD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;YACtG,OAAO;QACT,CAAC;QACD,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,UAAU,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YAChF,MAAM,OAAO,GACX,MAAM,CAAC,QAAQ,KAAK,IAAI;gBACxB,OAAO,CAAC,QAAQ,KAAK,IAAI;gBACzB,OAAO,CAAC,KAAK,KAAK,SAAS;gBAC3B,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,cAAc,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACrF,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/G,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAClF,OAAO;IACT,CAAC;IAED,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,UAAU,CAAC,MAAM,CAAC,CAAC;QACnB,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC;QACzC,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,mBAAmB,OAAO,aAAa,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACjH,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;QACxE,IAAI,IAAI;YAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { printGeminiStreamEvent } from "./format-event.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { printGeminiStreamEvent } from "./format-event.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare const type = "gemini_local";
2
+ export declare const label = "Gemini CLI (local)";
3
+ export declare const DEFAULT_GEMINI_LOCAL_MODEL = "auto";
4
+ export declare const models: {
5
+ id: string;
6
+ label: string;
7
+ }[];
8
+ export declare const agentConfigurationDoc = "# gemini_local agent configuration\n\nAdapter: gemini_local\n\nUse when:\n- You want zmeel to run the Gemini CLI locally on the host machine\n- You want Gemini chat sessions resumed across heartbeats with --resume\n- You want zmeel skills injected locally without polluting the global environment\n\nDon't use when:\n- You need webhook-style external invocation (use http or openclaw_gateway)\n- You only need a one-shot script without an AI coding agent loop (use process)\n- Gemini CLI is not installed on the machine that runs zmeel\n\nCore fields:\n- cwd (string, optional): default absolute working directory fallback for the agent process (created if missing when possible)\n- instructionsFilePath (string, optional): absolute path to a markdown instructions file prepended to the run prompt\n- promptTemplate (string, optional): run prompt template\n- model (string, optional): Gemini model id. Defaults to auto.\n- sandbox (boolean, optional): run in sandbox mode (default: false, passes --sandbox=none)\n- command (string, optional): defaults to \"gemini\"\n- extraArgs (string[], optional): additional CLI args\n- env (object, optional): KEY=VALUE environment variables\n\nOperational fields:\n- timeoutSec (number, optional): run timeout in seconds\n- graceSec (number, optional): SIGTERM grace period in seconds\n\nNotes:\n- Runs use positional prompt arguments, not stdin.\n- Sessions resume with --resume when stored session cwd matches the current cwd.\n- zmeel auto-injects local skills into `~/.gemini/skills/` via symlinks, so the CLI can discover both credentials and skills in their natural location.\n- Authentication can use GEMINI_API_KEY / GOOGLE_API_KEY or local Gemini CLI login.\n";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,iBAAiB,CAAC;AACnC,eAAO,MAAM,KAAK,uBAAuB,CAAC;AAC1C,eAAO,MAAM,0BAA0B,SAAS,CAAC;AAEjD,eAAO,MAAM,MAAM;;;GAOlB,CAAC;AAEF,eAAO,MAAM,qBAAqB,grDAiCjC,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,46 @@
1
+ export const type = "gemini_local";
2
+ export const label = "Gemini CLI (local)";
3
+ export const DEFAULT_GEMINI_LOCAL_MODEL = "auto";
4
+ export const models = [
5
+ { id: DEFAULT_GEMINI_LOCAL_MODEL, label: "Auto" },
6
+ { id: "gemini-2.5-pro", label: "Gemini 2.5 Pro" },
7
+ { id: "gemini-2.5-flash", label: "Gemini 2.5 Flash" },
8
+ { id: "gemini-2.5-flash-lite", label: "Gemini 2.5 Flash Lite" },
9
+ { id: "gemini-2.0-flash", label: "Gemini 2.0 Flash" },
10
+ { id: "gemini-2.0-flash-lite", label: "Gemini 2.0 Flash Lite" },
11
+ ];
12
+ export const agentConfigurationDoc = `# gemini_local agent configuration
13
+
14
+ Adapter: gemini_local
15
+
16
+ Use when:
17
+ - You want zmeel to run the Gemini CLI locally on the host machine
18
+ - You want Gemini chat sessions resumed across heartbeats with --resume
19
+ - You want zmeel skills injected locally without polluting the global environment
20
+
21
+ Don't use when:
22
+ - You need webhook-style external invocation (use http or openclaw_gateway)
23
+ - You only need a one-shot script without an AI coding agent loop (use process)
24
+ - Gemini CLI is not installed on the machine that runs zmeel
25
+
26
+ Core fields:
27
+ - cwd (string, optional): default absolute working directory fallback for the agent process (created if missing when possible)
28
+ - instructionsFilePath (string, optional): absolute path to a markdown instructions file prepended to the run prompt
29
+ - promptTemplate (string, optional): run prompt template
30
+ - model (string, optional): Gemini model id. Defaults to auto.
31
+ - sandbox (boolean, optional): run in sandbox mode (default: false, passes --sandbox=none)
32
+ - command (string, optional): defaults to "gemini"
33
+ - extraArgs (string[], optional): additional CLI args
34
+ - env (object, optional): KEY=VALUE environment variables
35
+
36
+ Operational fields:
37
+ - timeoutSec (number, optional): run timeout in seconds
38
+ - graceSec (number, optional): SIGTERM grace period in seconds
39
+
40
+ Notes:
41
+ - Runs use positional prompt arguments, not stdin.
42
+ - Sessions resume with --resume when stored session cwd matches the current cwd.
43
+ - zmeel auto-injects local skills into \`~/.gemini/skills/\` via symlinks, so the CLI can discover both credentials and skills in their natural location.
44
+ - Authentication can use GEMINI_API_KEY / GOOGLE_API_KEY or local Gemini CLI login.
45
+ `;
46
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,IAAI,GAAG,cAAc,CAAC;AACnC,MAAM,CAAC,MAAM,KAAK,GAAG,oBAAoB,CAAC;AAC1C,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAEjD,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,EAAE,EAAE,EAAE,0BAA0B,EAAE,KAAK,EAAE,MAAM,EAAE;IACjD,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,EAAE;IACjD,EAAE,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,EAAE;IACrD,EAAE,EAAE,EAAE,uBAAuB,EAAE,KAAK,EAAE,uBAAuB,EAAE;IAC/D,EAAE,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,EAAE;IACrD,EAAE,EAAE,EAAE,uBAAuB,EAAE,KAAK,EAAE,uBAAuB,EAAE;CAChE,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCpC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AdapterExecutionContext, AdapterExecutionResult } from "@zmeel/adapter-utils";
2
+ export declare function execute(ctx: AdapterExecutionContext): Promise<AdapterExecutionResult>;
3
+ //# sourceMappingURL=execute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/server/execute.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAkI5F,wBAAsB,OAAO,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CA4U3F"}