Canvas: Support Anthropic Claude based AI agents

Change-Id: Ib74c9672da9a80a4f20d63741a471c728a435b8e
diff --git a/apps/canvas/config/src/graph.ts b/apps/canvas/config/src/graph.ts
index 604bcc4..90523d5 100644
--- a/apps/canvas/config/src/graph.ts
+++ b/apps/canvas/config/src/graph.ts
@@ -163,8 +163,9 @@
 				codeServerNodeId: string;
 				sshNodeId: string;
 		  };
-	agent?: {
-		geminiApiKey?: string;
+	model?: {
+		name: "gemini" | "claude";
+		apiKey?: string;
 	};
 	info?: z.infer<typeof serviceAnalyzisSchema>;
 };
@@ -306,12 +307,19 @@
 });
 
 export const envSchema = z.object({
-	instanceId: z.optional(z.string().min(1)),
-	deployKeyPublic: z.optional(z.nullable(z.string().min(1))),
-	networks: z.array(networkSchema).default([]),
+	deployKeyPublic: z.string().optional(),
+	instanceId: z.string().optional(),
+	networks: z.array(
+		z.object({
+			name: z.string(),
+			domain: z.string(),
+			hasAuth: z.boolean(),
+		}),
+	),
 	integrations: z.object({
 		github: z.boolean(),
 		gemini: z.boolean(),
+		anthropic: z.boolean(),
 	}),
 	services: z.array(serviceInfoSchema),
 	user: z.object({