camo-gemini 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 (139) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +242 -0
  3. package/dist/client/camofox-client.d.ts +21 -0
  4. package/dist/client/camofox-client.d.ts.map +1 -0
  5. package/dist/client/camofox-client.js +260 -0
  6. package/dist/client/camofox-client.js.map +1 -0
  7. package/dist/config.d.ts +3 -0
  8. package/dist/config.d.ts.map +1 -0
  9. package/dist/config.js +94 -0
  10. package/dist/config.js.map +1 -0
  11. package/dist/core/browser-js.d.ts +27 -0
  12. package/dist/core/browser-js.d.ts.map +1 -0
  13. package/dist/core/browser-js.js +172 -0
  14. package/dist/core/browser-js.js.map +1 -0
  15. package/dist/core/constants.d.ts +78 -0
  16. package/dist/core/constants.d.ts.map +1 -0
  17. package/dist/core/constants.js +115 -0
  18. package/dist/core/constants.js.map +1 -0
  19. package/dist/core/error-messages.d.ts +8 -0
  20. package/dist/core/error-messages.d.ts.map +1 -0
  21. package/dist/core/error-messages.js +121 -0
  22. package/dist/core/error-messages.js.map +1 -0
  23. package/dist/core/failover.d.ts +21 -0
  24. package/dist/core/failover.d.ts.map +1 -0
  25. package/dist/core/failover.js +47 -0
  26. package/dist/core/failover.js.map +1 -0
  27. package/dist/core/logger.d.ts +13 -0
  28. package/dist/core/logger.d.ts.map +1 -0
  29. package/dist/core/logger.js +37 -0
  30. package/dist/core/logger.js.map +1 -0
  31. package/dist/core/request-builder.d.ts +20 -0
  32. package/dist/core/request-builder.d.ts.map +1 -0
  33. package/dist/core/request-builder.js +210 -0
  34. package/dist/core/request-builder.js.map +1 -0
  35. package/dist/core/response-parser.d.ts +12 -0
  36. package/dist/core/response-parser.d.ts.map +1 -0
  37. package/dist/core/response-parser.js +221 -0
  38. package/dist/core/response-parser.js.map +1 -0
  39. package/dist/core/retry.d.ts +10 -0
  40. package/dist/core/retry.d.ts.map +1 -0
  41. package/dist/core/retry.js +132 -0
  42. package/dist/core/retry.js.map +1 -0
  43. package/dist/core/stream-parser.d.ts +9 -0
  44. package/dist/core/stream-parser.d.ts.map +1 -0
  45. package/dist/core/stream-parser.js +69 -0
  46. package/dist/core/stream-parser.js.map +1 -0
  47. package/dist/core/token-manager.d.ts +9 -0
  48. package/dist/core/token-manager.d.ts.map +1 -0
  49. package/dist/core/token-manager.js +64 -0
  50. package/dist/core/token-manager.js.map +1 -0
  51. package/dist/core/utils.d.ts +2 -0
  52. package/dist/core/utils.d.ts.map +1 -0
  53. package/dist/core/utils.js +15 -0
  54. package/dist/core/utils.js.map +1 -0
  55. package/dist/dashboard/server.d.ts +31 -0
  56. package/dist/dashboard/server.d.ts.map +1 -0
  57. package/dist/dashboard/server.js +190 -0
  58. package/dist/dashboard/server.js.map +1 -0
  59. package/dist/errors.d.ts +32 -0
  60. package/dist/errors.d.ts.map +1 -0
  61. package/dist/errors.js +59 -0
  62. package/dist/errors.js.map +1 -0
  63. package/dist/index.d.ts +3 -0
  64. package/dist/index.d.ts.map +1 -0
  65. package/dist/index.js +36 -0
  66. package/dist/index.js.map +1 -0
  67. package/dist/server.d.ts +31 -0
  68. package/dist/server.d.ts.map +1 -0
  69. package/dist/server.js +54 -0
  70. package/dist/server.js.map +1 -0
  71. package/dist/services/account.d.ts +16 -0
  72. package/dist/services/account.d.ts.map +1 -0
  73. package/dist/services/account.js +55 -0
  74. package/dist/services/account.js.map +1 -0
  75. package/dist/services/auth.d.ts +39 -0
  76. package/dist/services/auth.d.ts.map +1 -0
  77. package/dist/services/auth.js +285 -0
  78. package/dist/services/auth.js.map +1 -0
  79. package/dist/services/chat.d.ts +18 -0
  80. package/dist/services/chat.d.ts.map +1 -0
  81. package/dist/services/chat.js +151 -0
  82. package/dist/services/chat.js.map +1 -0
  83. package/dist/services/cookie-rotation.d.ts +25 -0
  84. package/dist/services/cookie-rotation.d.ts.map +1 -0
  85. package/dist/services/cookie-rotation.js +138 -0
  86. package/dist/services/cookie-rotation.js.map +1 -0
  87. package/dist/services/gems.d.ts +33 -0
  88. package/dist/services/gems.d.ts.map +1 -0
  89. package/dist/services/gems.js +202 -0
  90. package/dist/services/gems.js.map +1 -0
  91. package/dist/services/generate.d.ts +27 -0
  92. package/dist/services/generate.d.ts.map +1 -0
  93. package/dist/services/generate.js +149 -0
  94. package/dist/services/generate.js.map +1 -0
  95. package/dist/services/health.d.ts +20 -0
  96. package/dist/services/health.d.ts.map +1 -0
  97. package/dist/services/health.js +77 -0
  98. package/dist/services/health.js.map +1 -0
  99. package/dist/services/upload.d.ts +17 -0
  100. package/dist/services/upload.d.ts.map +1 -0
  101. package/dist/services/upload.js +120 -0
  102. package/dist/services/upload.js.map +1 -0
  103. package/dist/setup.d.ts +7 -0
  104. package/dist/setup.d.ts.map +1 -0
  105. package/dist/setup.js +165 -0
  106. package/dist/setup.js.map +1 -0
  107. package/dist/state.d.ts +57 -0
  108. package/dist/state.d.ts.map +1 -0
  109. package/dist/state.js +260 -0
  110. package/dist/state.js.map +1 -0
  111. package/dist/tools/account.d.ts +4 -0
  112. package/dist/tools/account.d.ts.map +1 -0
  113. package/dist/tools/account.js +29 -0
  114. package/dist/tools/account.js.map +1 -0
  115. package/dist/tools/auth.d.ts +4 -0
  116. package/dist/tools/auth.d.ts.map +1 -0
  117. package/dist/tools/auth.js +56 -0
  118. package/dist/tools/auth.js.map +1 -0
  119. package/dist/tools/chat.d.ts +4 -0
  120. package/dist/tools/chat.d.ts.map +1 -0
  121. package/dist/tools/chat.js +101 -0
  122. package/dist/tools/chat.js.map +1 -0
  123. package/dist/tools/gems.d.ts +4 -0
  124. package/dist/tools/gems.d.ts.map +1 -0
  125. package/dist/tools/gems.js +93 -0
  126. package/dist/tools/gems.js.map +1 -0
  127. package/dist/tools/health.d.ts +4 -0
  128. package/dist/tools/health.d.ts.map +1 -0
  129. package/dist/tools/health.js +13 -0
  130. package/dist/tools/health.js.map +1 -0
  131. package/dist/tools/media.d.ts +4 -0
  132. package/dist/tools/media.d.ts.map +1 -0
  133. package/dist/tools/media.js +65 -0
  134. package/dist/tools/media.js.map +1 -0
  135. package/dist/types.d.ts +292 -0
  136. package/dist/types.d.ts.map +1 -0
  137. package/dist/types.js +2 -0
  138. package/dist/types.js.map +1 -0
  139. package/package.json +66 -0
@@ -0,0 +1,93 @@
1
+ import { z } from "zod";
2
+ import { okResult, toErrorResult } from "../errors.js";
3
+ const CreateGemSchema = z.object({
4
+ name: z.string().min(1),
5
+ description: z.string().optional(),
6
+ systemInstruction: z.string().min(1),
7
+ accountIndex: z.number().int().min(0).optional()
8
+ });
9
+ const ListGemsSchema = z.object({
10
+ accountIndex: z.number().int().min(0).optional()
11
+ });
12
+ const UpdateGemSchema = z.object({
13
+ gemId: z.string().min(1),
14
+ name: z.string().min(1).optional(),
15
+ description: z.string().optional(),
16
+ systemInstruction: z.string().min(1).optional(),
17
+ accountIndex: z.number().int().min(0).optional()
18
+ });
19
+ const DeleteGemSchema = z.object({
20
+ gemId: z.string().min(1),
21
+ accountIndex: z.number().int().min(0).optional()
22
+ });
23
+ export function registerGemsTools(server, deps) {
24
+ const gemsService = deps.gems;
25
+ server.tool("gemini_list_gems", "List available Gems", {
26
+ accountIndex: z.number().int().min(0).optional().describe("Google account index, default 0")
27
+ }, async (input) => {
28
+ try {
29
+ const parsed = ListGemsSchema.parse(input);
30
+ const result = await gemsService.listGems(parsed);
31
+ return okResult(result);
32
+ }
33
+ catch (error) {
34
+ return toErrorResult(error);
35
+ }
36
+ });
37
+ server.tool("gemini_create_gem", "Create a new Gem", {
38
+ name: z.string().min(1).describe("Gem display name"),
39
+ description: z.string().optional().describe("Gem description"),
40
+ systemInstruction: z.string().min(1).describe("System instruction for the Gem"),
41
+ accountIndex: z.number().int().min(0).optional().describe("Google account index, default 0")
42
+ }, async (input) => {
43
+ try {
44
+ const parsed = CreateGemSchema.parse(input);
45
+ const result = await gemsService.createGem({
46
+ name: parsed.name,
47
+ description: parsed.description,
48
+ instructions: parsed.systemInstruction,
49
+ accountIndex: parsed.accountIndex
50
+ });
51
+ return okResult(result);
52
+ }
53
+ catch (error) {
54
+ return toErrorResult(error);
55
+ }
56
+ });
57
+ server.tool("gemini_update_gem", "Update an existing Gem", {
58
+ gemId: z.string().min(1).describe("Gem ID to update"),
59
+ name: z.string().min(1).optional().describe("Updated Gem display name"),
60
+ description: z.string().optional().describe("Updated Gem description"),
61
+ systemInstruction: z.string().min(1).optional().describe("Updated system instruction for the Gem"),
62
+ accountIndex: z.number().int().min(0).optional().describe("Google account index, default 0")
63
+ }, async (input) => {
64
+ try {
65
+ const parsed = UpdateGemSchema.parse(input);
66
+ const result = await gemsService.updateGem({
67
+ gemId: parsed.gemId,
68
+ name: parsed.name,
69
+ description: parsed.description,
70
+ instructions: parsed.systemInstruction,
71
+ accountIndex: parsed.accountIndex
72
+ });
73
+ return okResult(result);
74
+ }
75
+ catch (error) {
76
+ return toErrorResult(error);
77
+ }
78
+ });
79
+ server.tool("gemini_delete_gem", "Delete a Gem", {
80
+ gemId: z.string().min(1).describe("Gem ID to delete"),
81
+ accountIndex: z.number().int().min(0).optional().describe("Google account index, default 0")
82
+ }, async (input) => {
83
+ try {
84
+ const parsed = DeleteGemSchema.parse(input);
85
+ await gemsService.deleteGem(parsed.gemId, parsed.accountIndex ?? 0);
86
+ return okResult({ deleted: true, gemId: parsed.gemId });
87
+ }
88
+ catch (error) {
89
+ return toErrorResult(error);
90
+ }
91
+ });
92
+ }
93
+ //# sourceMappingURL=gems.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gems.js","sourceRoot":"","sources":["../../src/tools/gems.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { ToolDeps } from "../server.js";
3
+ export declare function registerHealthTools(server: McpServer, deps: ToolDeps): void;
4
+ //# sourceMappingURL=health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/tools/health.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,CAc3E"}
@@ -0,0 +1,13 @@
1
+ import { okResult, toErrorResult } from "../errors.js";
2
+ export function registerHealthTools(server, deps) {
3
+ server.tool("gemini_health", "Check CamoGemini server health and connection status to CamoFox browser", {}, async () => {
4
+ try {
5
+ const health = await deps.health.checkAllAccounts();
6
+ return okResult(health);
7
+ }
8
+ catch (error) {
9
+ return toErrorResult(error);
10
+ }
11
+ });
12
+ }
13
+ //# sourceMappingURL=health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/tools/health.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGvD,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,IAAc;IACnE,MAAM,CAAC,IAAI,CACT,eAAe,EACf,yEAAyE,EACzE,EAAE,EACF,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YACpD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { ToolDeps } from "../server.js";
3
+ export declare function registerMediaTools(server: McpServer, deps: ToolDeps): void;
4
+ //# sourceMappingURL=media.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/tools/media.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAiB7C,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,CA2D1E"}
@@ -0,0 +1,65 @@
1
+ import { z } from "zod";
2
+ import { okResult, toErrorResult } from "../errors.js";
3
+ const UploadSchema = z.object({
4
+ fileBase64: z.string(),
5
+ filename: z.string().min(1),
6
+ mimeType: z.string().optional(),
7
+ accountIndex: z.number().int().min(0).optional()
8
+ });
9
+ const GenerateImageSchema = z.object({
10
+ prompt: z.string().min(1),
11
+ model: z.string().optional(),
12
+ accountIndex: z.number().int().min(0).optional(),
13
+ gemId: z.string().min(1).optional(),
14
+ autoDelete: z.boolean().optional().default(true)
15
+ });
16
+ export function registerMediaTools(server, deps) {
17
+ const uploadService = deps.upload;
18
+ const generateService = deps.generate;
19
+ server.tool("gemini_upload_file", "Upload a file to Gemini", {
20
+ fileBase64: z.string().describe("Base64-encoded file data"),
21
+ filename: z.string().min(1).describe("Original filename including extension"),
22
+ mimeType: z.string().optional().describe("Optional mime type override"),
23
+ accountIndex: z.number().int().min(0).optional().describe("Google account index, default 0")
24
+ }, async (input) => {
25
+ try {
26
+ const parsed = UploadSchema.parse(input);
27
+ const result = await uploadService.uploadFile(parsed);
28
+ return okResult(result);
29
+ }
30
+ catch (error) {
31
+ return toErrorResult(error);
32
+ }
33
+ });
34
+ server.tool("gemini_generate_image", "Generate an image with Gemini", {
35
+ prompt: z.string().min(1).describe("Image generation prompt"),
36
+ model: z.string().optional().describe("Optional Gemini image-capable model"),
37
+ accountIndex: z.number().int().min(0).optional().describe("Google account index, default 0"),
38
+ gemId: z.string().min(1).optional().describe("Optional Gem ID"),
39
+ autoDelete: z.boolean().optional().default(true).describe("Auto-delete chat history after generation (default: true)")
40
+ }, async (input) => {
41
+ try {
42
+ const parsed = GenerateImageSchema.parse(input);
43
+ const result = await generateService.generateImage(parsed.prompt, {
44
+ model: parsed.model,
45
+ accountIndex: parsed.accountIndex,
46
+ gemId: parsed.gemId
47
+ });
48
+ const accountIndex = parsed.accountIndex ?? deps.state.activeAccountIndex ?? 0;
49
+ const shouldAutoDelete = (parsed.autoDelete ?? true) && deps.config.AUTO_DELETE_CHAT;
50
+ if (shouldAutoDelete && result.conversationId) {
51
+ try {
52
+ await generateService.deleteConversation(accountIndex, result.conversationId);
53
+ }
54
+ catch {
55
+ // non-critical cleanup
56
+ }
57
+ }
58
+ return okResult(result);
59
+ }
60
+ catch (error) {
61
+ return toErrorResult(error);
62
+ }
63
+ });
64
+ }
65
+ //# sourceMappingURL=media.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/tools/media.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,292 @@
1
+ export interface TabInfo {
2
+ tabId: string;
3
+ url: string;
4
+ title: string;
5
+ }
6
+ export interface EvaluateResponse {
7
+ ok: boolean;
8
+ result?: unknown;
9
+ resultType?: string;
10
+ truncated?: boolean;
11
+ error?: string;
12
+ errorType?: string;
13
+ }
14
+ export interface Cookie {
15
+ name: string;
16
+ value: string;
17
+ domain: string;
18
+ path: string;
19
+ httpOnly: boolean;
20
+ secure: boolean;
21
+ sameSite?: string;
22
+ expires?: number;
23
+ }
24
+ export interface GeminiSession {
25
+ tabId: string;
26
+ userId: string;
27
+ accountIndex: number;
28
+ authenticated: boolean;
29
+ authenticatedEmail?: string | null;
30
+ tokens: GeminiTokens | null;
31
+ lastRotation: number;
32
+ }
33
+ /** Health status for an account */
34
+ export type AccountHealth = "healthy" | "degraded" | "cooldown" | "offline";
35
+ /** Per-account state entry */
36
+ export interface AccountEntry {
37
+ accountIndex: number;
38
+ session: GeminiSession | null;
39
+ health: AccountHealth;
40
+ /** CamoFox userId for this account's isolated browser context */
41
+ camofoxUserId: string;
42
+ /** Tab ID for this account's persistent session tab */
43
+ tabId: string | null;
44
+ /** Timestamp of last successful operation */
45
+ lastSuccessAt: number;
46
+ /** Timestamp of last error */
47
+ lastErrorAt: number;
48
+ /** Number of consecutive errors */
49
+ consecutiveErrors: number;
50
+ /** Cooldown until timestamp (for rate-limited accounts) */
51
+ cooldownUntil: number;
52
+ /** Whether this account is actively logged in */
53
+ isLoggedIn: boolean;
54
+ }
55
+ /** Account info for external reporting (MCP tools) */
56
+ export interface AccountInfo {
57
+ accountIndex: number;
58
+ health: AccountHealth;
59
+ isLoggedIn: boolean;
60
+ isActive: boolean;
61
+ lastSuccessAt: number | null;
62
+ lastErrorAt: number | null;
63
+ cooldownUntil: number | null;
64
+ }
65
+ /** Health check result */
66
+ export interface HealthCheckResult {
67
+ overall: AccountHealth;
68
+ camofoxConnected: boolean;
69
+ accounts: AccountInfo[];
70
+ activeAccountIndex: number | null;
71
+ totalAccounts: number;
72
+ healthyAccounts: number;
73
+ }
74
+ export interface GeminiTokens {
75
+ snlm0e: string;
76
+ cfb2h: string;
77
+ fdrfje: string;
78
+ extractedAt: number;
79
+ }
80
+ export interface TokenExtractionResult {
81
+ ok: boolean;
82
+ tokens?: {
83
+ snlm0e: string;
84
+ cfb2h: string | null;
85
+ fdrfje: string | null;
86
+ };
87
+ error?: string;
88
+ url?: string;
89
+ hint?: string;
90
+ extractedAt?: number;
91
+ }
92
+ export interface CookieRotationResult {
93
+ ok: boolean;
94
+ status?: number;
95
+ error?: string;
96
+ }
97
+ export interface GenerateRequest {
98
+ prompt: string;
99
+ model?: string;
100
+ images?: ImageAttachment[];
101
+ conversationId?: string;
102
+ responseId?: string;
103
+ choiceId?: string;
104
+ gemId?: string;
105
+ }
106
+ export interface GenerateOptions {
107
+ prompt: string;
108
+ model?: string;
109
+ accountIndex?: number;
110
+ chatMetadata?: ChatMetadata;
111
+ gemId?: string;
112
+ images?: Array<{
113
+ url: string;
114
+ filename: string;
115
+ }>;
116
+ usePro?: boolean;
117
+ files?: UploadResult[];
118
+ }
119
+ export interface RequestPayload {
120
+ url: string;
121
+ headers: Record<string, string>;
122
+ body: string;
123
+ }
124
+ export type ChatMetadata = [
125
+ string,
126
+ string,
127
+ string,
128
+ null,
129
+ null,
130
+ null,
131
+ null,
132
+ null,
133
+ null,
134
+ string
135
+ ];
136
+ export interface BrowserFetchResult {
137
+ ok: boolean;
138
+ data?: string;
139
+ error?: string;
140
+ }
141
+ export interface RPCPayload {
142
+ rpcId: string;
143
+ payload: string;
144
+ identifier?: string;
145
+ }
146
+ export interface ImageAttachment {
147
+ url?: string;
148
+ data?: string;
149
+ mimeType?: string;
150
+ }
151
+ export interface ImageData {
152
+ url: string;
153
+ alt?: string;
154
+ title?: string;
155
+ }
156
+ export interface GenerateResponse {
157
+ text: string;
158
+ conversationId: string;
159
+ responseId: string;
160
+ choiceId: string;
161
+ images: GeneratedImage[];
162
+ metadata: ResponseMetadata;
163
+ }
164
+ export interface GeneratedImage {
165
+ url: string;
166
+ description?: string;
167
+ alt?: string;
168
+ title?: string;
169
+ }
170
+ export interface UploadOptions {
171
+ fileBase64: string;
172
+ filename: string;
173
+ mimeType?: string;
174
+ accountIndex?: number;
175
+ }
176
+ export interface UploadResult {
177
+ fileUri: string;
178
+ filename: string;
179
+ }
180
+ export interface ResponseMetadata {
181
+ model: string;
182
+ thinkingTime?: number;
183
+ searchQueries?: string[];
184
+ }
185
+ export interface ChatSession {
186
+ conversationId: string;
187
+ responseId: string;
188
+ choiceId: string;
189
+ model: string;
190
+ }
191
+ export interface ParseSuccess<T> {
192
+ ok: true;
193
+ data: T;
194
+ }
195
+ export interface ParseFailure {
196
+ ok: false;
197
+ error: ParseError;
198
+ }
199
+ export type ParseResult<T> = ParseSuccess<T> | ParseFailure;
200
+ export interface ParseError {
201
+ code: ParseErrorCode;
202
+ message: string;
203
+ raw?: unknown;
204
+ }
205
+ export type ParseErrorCode = "TEMPORARY_ERROR" | "USAGE_LIMIT_EXCEEDED" | "MODEL_INCONSISTENT" | "MODEL_HEADER_INVALID" | "IP_BLOCKED" | "RATE_LIMITED" | "IMAGE_GEN_BLOCKED" | "PARSE_ERROR" | "UNKNOWN_API_ERROR";
206
+ export interface ModelOutput {
207
+ metadata: (string | null)[];
208
+ candidates: ParsedCandidate[];
209
+ chosenIndex: number;
210
+ isCompleted: boolean;
211
+ }
212
+ export interface ChatTurn {
213
+ prompt: string;
214
+ response: ModelOutput;
215
+ timestamp: number;
216
+ }
217
+ export interface ChatSessionState {
218
+ id: string;
219
+ cid: string;
220
+ rid: string;
221
+ rcid: string;
222
+ context: string;
223
+ model?: string;
224
+ accountIndex: number;
225
+ gemId?: string;
226
+ turns: ChatTurn[];
227
+ createdAt: number;
228
+ updatedAt: number;
229
+ }
230
+ export interface ChatOptions {
231
+ model?: string;
232
+ accountIndex?: number;
233
+ gemId?: string;
234
+ }
235
+ export interface ChatResult {
236
+ text: string;
237
+ candidates: ParsedCandidate[];
238
+ sessionId: string;
239
+ isNewSession: boolean;
240
+ turnNumber: number;
241
+ }
242
+ export interface ChatSessionInfo {
243
+ id: string;
244
+ turnCount: number;
245
+ model?: string;
246
+ createdAt: number;
247
+ updatedAt: number;
248
+ }
249
+ export interface ParsedCandidate {
250
+ rcid: string;
251
+ text: string;
252
+ thoughts: string | null;
253
+ webImages: ImageData[];
254
+ generatedImages: ImageData[];
255
+ isFinal: boolean;
256
+ }
257
+ export interface Gem {
258
+ id: string;
259
+ name: string;
260
+ description?: string;
261
+ instructions?: string;
262
+ isSystem: boolean;
263
+ }
264
+ export interface GemCreateOptions {
265
+ name: string;
266
+ description?: string;
267
+ instructions: string;
268
+ accountIndex?: number;
269
+ }
270
+ export interface GemUpdateOptions {
271
+ gemId: string;
272
+ name?: string;
273
+ description?: string;
274
+ instructions?: string;
275
+ accountIndex?: number;
276
+ }
277
+ export interface GenerateResult {
278
+ output: ModelOutput;
279
+ rawFrameCount: number;
280
+ conversationId?: string | null;
281
+ generatedImages?: GeneratedImage[];
282
+ }
283
+ export interface Config {
284
+ camofoxUrl: string;
285
+ camofoxApiKey?: string;
286
+ userId: string;
287
+ requestTimeout: number;
288
+ dashboardPort: number;
289
+ dashboardEnabled: boolean;
290
+ AUTO_DELETE_CHAT: boolean;
291
+ }
292
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,66 @@
1
+ {
2
+ "name": "camo-gemini",
3
+ "version": "0.1.0",
4
+ "description": "Gemini AI MCP server — chat, stream, and generate with Google Gemini via anti-detection browser",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "bin": {
8
+ "camo-gemini": "dist/index.js",
9
+ "camo-gemini-setup": "dist/setup.js"
10
+ },
11
+ "type": "module",
12
+ "scripts": {
13
+ "clean": "rm -rf dist",
14
+ "build": "npm run clean && tsc",
15
+ "start": "node dist/index.js",
16
+ "dev": "tsx src/index.ts",
17
+ "setup": "node dist/setup.js",
18
+ "test": "vitest run",
19
+ "test:watch": "vitest",
20
+ "prepublishOnly": "npm run build && npm test"
21
+ },
22
+ "keywords": [
23
+ "mcp",
24
+ "model-context-protocol",
25
+ "gemini",
26
+ "google-gemini",
27
+ "camofox",
28
+ "camoufox",
29
+ "ai-agent",
30
+ "ibpe",
31
+ "browser-automation",
32
+ "claude",
33
+ "cursor",
34
+ "vscode",
35
+ "llm-tools"
36
+ ],
37
+ "author": "redf0x1",
38
+ "repository": {
39
+ "type": "git",
40
+ "url": "https://github.com/redf0x1/camo-gemini.git"
41
+ },
42
+ "bugs": {
43
+ "url": "https://github.com/redf0x1/camo-gemini/issues"
44
+ },
45
+ "homepage": "https://github.com/redf0x1/camo-gemini#readme",
46
+ "license": "MIT",
47
+ "engines": {
48
+ "node": ">=18.0.0"
49
+ },
50
+ "files": [
51
+ "dist/",
52
+ "README.md",
53
+ "LICENSE",
54
+ "package.json"
55
+ ],
56
+ "dependencies": {
57
+ "@modelcontextprotocol/sdk": "1.26.0",
58
+ "zod": "4.3.6"
59
+ },
60
+ "devDependencies": {
61
+ "@types/node": "^22.0.0",
62
+ "tsx": "^4.0.0",
63
+ "typescript": "^5.7.0",
64
+ "vitest": "^4.0.18"
65
+ }
66
+ }