diff --git a/firebase-debug.log b/firebase-debug.log new file mode 100644 index 0000000000..a6bea586c8 --- /dev/null +++ b/firebase-debug.log @@ -0,0 +1,296 @@ +[debug] [2026-02-18T11:41:02.773Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T11:41:02.774Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T11:41:02.774Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T11:41:02.774Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T11:41:02.782Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T11:41:02.782Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T11:41:03.470Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T11:41:03.470Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T11:41:03.471Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T11:41:03.471Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T11:41:03.483Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T11:41:03.483Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T11:41:03.484Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T11:41:03.484Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T12:08:15.283Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T12:08:15.285Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T12:08:15.285Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T12:08:15.285Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T12:08:15.292Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T12:08:15.292Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T12:08:15.724Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T12:08:15.725Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T12:08:15.726Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T12:08:15.726Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T12:08:15.727Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T12:08:15.727Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T12:08:15.727Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T12:08:15.727Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T13:46:32.892Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T13:46:32.893Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T13:46:32.894Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T13:46:32.894Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T13:46:32.900Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T13:46:32.900Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T13:46:33.376Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T13:46:33.376Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T13:46:33.377Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T13:46:33.378Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T13:46:33.482Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T13:46:33.483Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T13:46:33.483Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T13:46:33.484Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T14:08:25.135Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T14:08:25.136Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T14:08:25.137Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T14:08:25.137Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T14:08:25.145Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T14:08:25.145Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T14:08:25.574Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T14:08:25.574Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T14:08:25.575Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T14:08:25.575Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T14:08:25.579Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T14:08:25.579Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T14:08:25.580Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T14:08:25.580Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T14:14:07.782Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T14:14:07.783Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T14:14:07.783Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T14:14:07.783Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T14:14:07.790Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T14:14:07.791Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T14:14:08.126Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T14:14:08.127Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T14:14:08.128Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T14:14:08.128Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T14:14:08.152Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T14:14:08.153Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T14:14:08.153Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T14:14:08.153Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T16:19:05.291Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T16:19:05.292Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T16:19:05.292Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T16:19:05.292Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T16:19:05.299Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T16:19:05.299Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T16:19:05.733Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T16:19:05.733Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T16:19:05.734Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T16:19:05.734Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T16:19:05.747Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T16:19:05.747Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-18T16:19:05.748Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-18T16:19:05.748Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T05:51:29.275Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T05:51:29.277Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T05:51:29.277Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T05:51:29.277Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T05:51:29.284Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T05:51:29.284Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T05:51:29.631Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T05:51:29.631Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T05:51:29.632Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T05:51:29.632Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T05:51:29.633Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T05:51:29.634Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T05:51:29.634Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T05:51:29.634Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T06:13:16.833Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T06:13:16.834Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T06:13:16.834Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T06:13:16.834Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T06:13:16.842Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T06:13:16.842Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T06:13:17.305Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T06:13:17.306Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T06:13:17.307Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T06:13:17.307Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T06:13:17.310Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T06:13:17.310Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T06:13:17.311Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T06:13:17.311Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T06:14:26.095Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T06:14:26.096Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T06:14:26.096Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T06:14:26.096Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T06:14:26.103Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T06:14:26.103Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T06:14:26.454Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T06:14:26.454Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T06:14:26.455Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T06:14:26.456Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T06:14:26.458Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T06:14:26.458Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T06:14:26.459Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T06:14:26.459Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T07:04:34.310Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T07:04:34.312Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T07:04:34.312Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T07:04:34.312Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T07:04:34.319Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T07:04:34.319Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T07:04:34.689Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T07:04:34.690Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T07:04:34.691Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T07:04:34.691Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T07:04:34.694Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T07:04:34.694Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T07:04:34.695Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T07:04:34.695Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T07:37:42.030Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T07:37:42.031Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T07:37:42.031Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T07:37:42.031Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T07:37:42.038Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T07:37:42.039Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T07:37:42.404Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T07:37:42.405Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T07:37:42.406Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T07:37:42.406Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T07:37:42.408Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T07:37:42.408Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T07:37:42.409Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T07:37:42.409Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T08:56:00.592Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T08:56:00.593Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T08:56:00.593Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T08:56:00.593Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T08:56:00.601Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T08:56:00.601Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T08:56:01.042Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T08:56:01.042Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T08:56:01.043Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T08:56:01.044Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T08:56:01.045Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T08:56:01.045Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T08:56:01.046Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T08:56:01.046Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T09:08:43.860Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T09:08:43.861Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T09:08:43.861Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T09:08:43.861Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T09:08:43.868Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T09:08:43.868Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T09:08:44.206Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T09:08:44.207Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T09:08:44.208Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T09:08:44.209Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T09:08:44.212Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T09:08:44.212Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T09:08:44.213Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T09:08:44.213Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T11:08:31.233Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T11:08:31.234Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T11:08:31.234Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T11:08:31.234Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T11:08:31.242Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T11:08:31.242Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T11:08:31.688Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T11:08:31.688Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T11:08:31.689Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T11:08:31.690Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T11:08:31.694Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T11:08:31.694Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T11:08:31.695Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T11:08:31.695Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T14:05:39.367Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T14:05:39.368Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T14:05:39.368Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T14:05:39.368Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T14:05:39.376Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T14:05:39.376Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T14:05:39.808Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T14:05:39.808Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T14:05:39.810Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T14:05:39.810Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T14:05:39.813Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T14:05:39.813Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T14:05:39.814Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T14:05:39.814Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T18:50:53.945Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T18:50:53.946Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T18:50:53.947Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T18:50:53.947Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T18:50:53.954Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T18:50:53.954Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T18:50:54.408Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T18:50:54.409Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T18:50:54.410Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T18:50:54.410Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T18:50:54.412Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T18:50:54.412Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-19T18:50:54.413Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-19T18:50:54.413Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-20T05:58:38.962Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-20T05:58:38.964Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-20T05:58:38.964Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-20T05:58:38.964Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-20T05:58:38.972Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-20T05:58:38.972Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-20T05:58:39.404Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-20T05:58:39.404Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-20T05:58:39.405Z] >>> [apiv2][query] POST https://developerknowledge.googleapis.com/mcp [none] +[debug] [2026-02-20T05:58:39.405Z] >>> [apiv2][body] POST https://developerknowledge.googleapis.com/mcp {"method":"tools/list","jsonrpc":"2.0","id":1} +[debug] [2026-02-20T05:58:39.407Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-20T05:58:39.407Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-20T05:58:39.408Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-20T05:58:39.408Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-20T05:58:40.459Z] <<< [apiv2][status] POST https://developerknowledge.googleapis.com/mcp 200 +[debug] [2026-02-20T05:58:40.459Z] <<< [apiv2][body] POST https://developerknowledge.googleapis.com/mcp {"id":1,"jsonrpc":"2.0","result":{"tools":[{"annotations":{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true},"description":"Use this tool to find documentation about Google developer products.\nThe documents contain official APIs, code snippets, release notes, best\npractices, guides, debugging info, and more. It covers the following\nproducts and domains:\n\n* Android: developer.android.com\n* Apigee: docs.apigee.com\n* Chrome: developer.chrome.com\n* Firebase: firebase.google.com\n* Fuchsia: fuchsia.dev\n* Google AI: ai.google.dev\n* Google Cloud: docs.cloud.google.com\n* Google Developers, Ads, Search, Google Maps, Youtube: developers.google.com\n* Google Home: developers.home.google.com\n* TensorFlow: www.tensorflow.org\n* Web: web.dev\n\nThis tool returns chunks of text, names, and URLs for matching documents.\nIf the returned chunks are not detailed enough to answer the\nuser's question, use `get_document` or `batch_get_documents` with the\n`parent` from this tool's output to retrieve the full document\ncontent.","inputSchema":{"description":"Request schema for search_documents. Use the query field to search for related Google developer documentation.","properties":{"query":{"description":"Required. The raw query string provided by the user, such as \"How to create a Cloud Storage bucket?\".","type":"string"}},"required":["query"],"type":"object"},"name":"search_documents","outputSchema":{"$defs":{"DocumentChunk":{"description":"A DocumentChunk represents a piece of content from a Document in the DeveloperKnowledge corpus. To fetch the entire document content, pass the `parent` to get_document or batch_get_documents.","properties":{"content":{"description":"Output only. The content of the document chunk.","readOnly":true,"type":"string"},"id":{"description":"Output only. The ID of this chunk within the document. The chunk ID is unique within a document, but not globally unique across documents. The chunk ID is not stable and may change over time.","readOnly":true,"type":"string"},"parent":{"description":"Output only. The resource name of the document this chunk is from. Format: `documents/{uri_without_scheme}` Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets`","readOnly":true,"type":"string"}},"type":"object"}},"description":"Response schema for search_documents.","properties":{"results":{"description":"The search results for the given query. Each Document in this list contains a snippet of content relevant to the search query. Use the Document.name field of each result with get_document or batch_get_documents to retrieve the full document content.","items":{"$ref":"#/$defs/DocumentChunk"},"type":"array"}},"type":"object"}},{"annotations":{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true},"description":"Use this tool to retrieve the full content of a single document. The\ndocument name should be obtained from the `parent` field of results from a\ncall to the `search_documents` tool. If you need to retrieve multiple\ndocuments, use `batch_get_documents` instead.","inputSchema":{"description":"Request schema for get_document.","properties":{"name":{"description":"Required. The name of the document to retrieve. Format: `documents/{uri_without_scheme}` Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets`","type":"string"}},"required":["name"],"type":"object"},"name":"get_document","outputSchema":{"description":"A Document represents a piece of content from the Developer Knowledge corpus.","properties":{"content":{"description":"Output only. The content of the document in Markdown format. If this document is returned by search_documents, this field contains a snippet of text relevant to the search query. If this document is returned by get_document or batch_get_documents, this field contains the full document content.","readOnly":true,"type":"string"},"description":{"description":"Output only. A description of the document.","readOnly":true,"type":"string"},"name":{"description":"Identifier. The resource name of the document. Format: `documents/{uri_without_scheme}` Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets`","type":"string","x-google-identifier":true},"uri":{"description":"Output only. The URI of the content, such as `https://cloud.google.com/storage/docs/creating-buckets`.","readOnly":true,"type":"string"}},"type":"object"}},{"annotations":{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true},"description":"Use this tool to retrieve the full content of up to 20 documents in a\nsingle call. The document names should be obtained from the `parent` field\nof results from a call to the `search_documents` tool. Use this tool\ninstead of calling `get_document` multiple times to fetch multiple\ndocuments.","inputSchema":{"description":"Request schema for batch_get_documents.","properties":{"names":{"description":"Required. The names of the documents to retrieve, as returned by search_documents. A maximum of 20 documents can be retrieved in a batch. The documents are returned in the same order as the `names` in the request. Format: `documents/{uri_without_scheme}` Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets`","items":{"type":"string"},"type":"array"}},"required":["names"],"type":"object"},"name":"batch_get_documents","outputSchema":{"$defs":{"Document":{"description":"A Document represents a piece of content from the Developer Knowledge corpus.","properties":{"content":{"description":"Output only. The content of the document in Markdown format. If this document is returned by search_documents, this field contains a snippet of text relevant to the search query. If this document is returned by get_document or batch_get_documents, this field contains the full document content.","readOnly":true,"type":"string"},"description":{"description":"Output only. A description of the document.","readOnly":true,"type":"string"},"name":{"description":"Identifier. The resource name of the document. Format: `documents/{uri_without_scheme}` Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets`","type":"string","x-google-identifier":true},"uri":{"description":"Output only. The URI of the content, such as `https://cloud.google.com/storage/docs/creating-buckets`.","readOnly":true,"type":"string"}},"type":"object"}},"description":"Response schema for batch_get_documents.","properties":{"documents":{"description":"Documents requested.","items":{"$ref":"#/$defs/Document"},"type":"array"}},"type":"object"}}]}} +[debug] [2026-02-20T05:58:40.462Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-20T05:58:40.462Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-20T11:50:13.855Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-20T11:50:13.856Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-20T11:50:13.857Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-20T11:50:13.857Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-20T11:50:13.864Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-20T11:50:13.864Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-20T11:50:14.206Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-20T11:50:14.206Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-20T11:50:14.207Z] >>> [apiv2][query] POST https://developerknowledge.googleapis.com/mcp [none] +[debug] [2026-02-20T11:50:14.207Z] >>> [apiv2][body] POST https://developerknowledge.googleapis.com/mcp {"method":"tools/list","jsonrpc":"2.0","id":1} +[debug] [2026-02-20T11:50:14.212Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-20T11:50:14.212Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-20T11:50:14.212Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-20T11:50:14.213Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-20T11:50:15.300Z] <<< [apiv2][status] POST https://developerknowledge.googleapis.com/mcp 200 +[debug] [2026-02-20T11:50:15.300Z] <<< [apiv2][body] POST https://developerknowledge.googleapis.com/mcp {"id":1,"jsonrpc":"2.0","result":{"tools":[{"annotations":{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true},"description":"Use this tool to find documentation about Google developer products.\nThe documents contain official APIs, code snippets, release notes, best\npractices, guides, debugging info, and more. It covers the following\nproducts and domains:\n\n* Android: developer.android.com\n* Apigee: docs.apigee.com\n* Chrome: developer.chrome.com\n* Firebase: firebase.google.com\n* Fuchsia: fuchsia.dev\n* Google AI: ai.google.dev\n* Google Cloud: docs.cloud.google.com\n* Google Developers, Ads, Search, Google Maps, Youtube: developers.google.com\n* Google Home: developers.home.google.com\n* TensorFlow: www.tensorflow.org\n* Web: web.dev\n\nThis tool returns chunks of text, names, and URLs for matching documents.\nIf the returned chunks are not detailed enough to answer the\nuser's question, use `get_document` or `batch_get_documents` with the\n`parent` from this tool's output to retrieve the full document\ncontent.","inputSchema":{"description":"Request schema for search_documents. Use the query field to search for related Google developer documentation.","properties":{"query":{"description":"Required. The raw query string provided by the user, such as \"How to create a Cloud Storage bucket?\".","type":"string"}},"required":["query"],"type":"object"},"name":"search_documents","outputSchema":{"$defs":{"DocumentChunk":{"description":"A DocumentChunk represents a piece of content from a Document in the DeveloperKnowledge corpus. To fetch the entire document content, pass the `parent` to get_document or batch_get_documents.","properties":{"content":{"description":"Output only. The content of the document chunk.","readOnly":true,"type":"string"},"id":{"description":"Output only. The ID of this chunk within the document. The chunk ID is unique within a document, but not globally unique across documents. The chunk ID is not stable and may change over time.","readOnly":true,"type":"string"},"parent":{"description":"Output only. The resource name of the document this chunk is from. Format: `documents/{uri_without_scheme}` Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets`","readOnly":true,"type":"string"}},"type":"object"}},"description":"Response schema for search_documents.","properties":{"results":{"description":"The search results for the given query. Each Document in this list contains a snippet of content relevant to the search query. Use the Document.name field of each result with get_document or batch_get_documents to retrieve the full document content.","items":{"$ref":"#/$defs/DocumentChunk"},"type":"array"}},"type":"object"}},{"annotations":{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true},"description":"Use this tool to retrieve the full content of a single document. The\ndocument name should be obtained from the `parent` field of results from a\ncall to the `search_documents` tool. If you need to retrieve multiple\ndocuments, use `batch_get_documents` instead.","inputSchema":{"description":"Request schema for get_document.","properties":{"name":{"description":"Required. The name of the document to retrieve. Format: `documents/{uri_without_scheme}` Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets`","type":"string"}},"required":["name"],"type":"object"},"name":"get_document","outputSchema":{"description":"A Document represents a piece of content from the Developer Knowledge corpus.","properties":{"content":{"description":"Output only. The content of the document in Markdown format. If this document is returned by search_documents, this field contains a snippet of text relevant to the search query. If this document is returned by get_document or batch_get_documents, this field contains the full document content.","readOnly":true,"type":"string"},"description":{"description":"Output only. A description of the document.","readOnly":true,"type":"string"},"name":{"description":"Identifier. The resource name of the document. Format: `documents/{uri_without_scheme}` Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets`","type":"string","x-google-identifier":true},"uri":{"description":"Output only. The URI of the content, such as `https://cloud.google.com/storage/docs/creating-buckets`.","readOnly":true,"type":"string"}},"type":"object"}},{"annotations":{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true},"description":"Use this tool to retrieve the full content of up to 20 documents in a\nsingle call. The document names should be obtained from the `parent` field\nof results from a call to the `search_documents` tool. Use this tool\ninstead of calling `get_document` multiple times to fetch multiple\ndocuments.","inputSchema":{"description":"Request schema for batch_get_documents.","properties":{"names":{"description":"Required. The names of the documents to retrieve, as returned by search_documents. A maximum of 20 documents can be retrieved in a batch. The documents are returned in the same order as the `names` in the request. Format: `documents/{uri_without_scheme}` Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets`","items":{"type":"string"},"type":"array"}},"required":["names"],"type":"object"},"name":"batch_get_documents","outputSchema":{"$defs":{"Document":{"description":"A Document represents a piece of content from the Developer Knowledge corpus.","properties":{"content":{"description":"Output only. The content of the document in Markdown format. If this document is returned by search_documents, this field contains a snippet of text relevant to the search query. If this document is returned by get_document or batch_get_documents, this field contains the full document content.","readOnly":true,"type":"string"},"description":{"description":"Output only. A description of the document.","readOnly":true,"type":"string"},"name":{"description":"Identifier. The resource name of the document. Format: `documents/{uri_without_scheme}` Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets`","type":"string","x-google-identifier":true},"uri":{"description":"Output only. The URI of the content, such as `https://cloud.google.com/storage/docs/creating-buckets`.","readOnly":true,"type":"string"}},"type":"object"}},"description":"Response schema for batch_get_documents.","properties":{"documents":{"description":"Documents requested.","items":{"$ref":"#/$defs/Document"},"type":"array"}},"type":"object"}}]}} +[debug] [2026-02-20T11:50:15.302Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-20T11:50:15.302Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-20T19:09:28.241Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-20T19:09:28.242Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-20T19:09:28.242Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-20T19:09:28.242Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-20T19:09:28.249Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-20T19:09:28.249Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-20T19:09:28.579Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-20T19:09:28.579Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-20T19:09:28.580Z] >>> [apiv2][query] POST https://developerknowledge.googleapis.com/mcp [none] +[debug] [2026-02-20T19:09:28.581Z] >>> [apiv2][body] POST https://developerknowledge.googleapis.com/mcp {"method":"tools/list","jsonrpc":"2.0","id":1} +[debug] [2026-02-20T19:09:28.586Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-20T19:09:28.586Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-20T19:09:28.586Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-20T19:09:28.586Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-20T19:09:29.538Z] <<< [apiv2][status] POST https://developerknowledge.googleapis.com/mcp 200 +[debug] [2026-02-20T19:09:29.539Z] <<< [apiv2][body] POST https://developerknowledge.googleapis.com/mcp {"id":1,"jsonrpc":"2.0","result":{"tools":[{"annotations":{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true},"description":"Use this tool to find documentation about Google developer products.\nThe documents contain official APIs, code snippets, release notes, best\npractices, guides, debugging info, and more. It covers the following\nproducts and domains:\n\n* Android: developer.android.com\n* Apigee: docs.apigee.com\n* Chrome: developer.chrome.com\n* Firebase: firebase.google.com\n* Fuchsia: fuchsia.dev\n* Google AI: ai.google.dev\n* Google Cloud: docs.cloud.google.com\n* Google Developers, Ads, Search, Google Maps, Youtube: developers.google.com\n* Google Home: developers.home.google.com\n* TensorFlow: www.tensorflow.org\n* Web: web.dev\n\nThis tool returns chunks of text, names, and URLs for matching documents.\nIf the returned chunks are not detailed enough to answer the\nuser's question, use `get_document` or `batch_get_documents` with the\n`parent` from this tool's output to retrieve the full document\ncontent.","inputSchema":{"description":"Request schema for search_documents. Use the query field to search for related Google developer documentation.","properties":{"query":{"description":"Required. The raw query string provided by the user, such as \"How to create a Cloud Storage bucket?\".","type":"string"}},"required":["query"],"type":"object"},"name":"search_documents","outputSchema":{"$defs":{"DocumentChunk":{"description":"A DocumentChunk represents a piece of content from a Document in the DeveloperKnowledge corpus. To fetch the entire document content, pass the `parent` to get_document or batch_get_documents.","properties":{"content":{"description":"Output only. The content of the document chunk.","readOnly":true,"type":"string"},"id":{"description":"Output only. The ID of this chunk within the document. The chunk ID is unique within a document, but not globally unique across documents. The chunk ID is not stable and may change over time.","readOnly":true,"type":"string"},"parent":{"description":"Output only. The resource name of the document this chunk is from. Format: `documents/{uri_without_scheme}` Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets`","readOnly":true,"type":"string"}},"type":"object"}},"description":"Response schema for search_documents.","properties":{"results":{"description":"The search results for the given query. Each Document in this list contains a snippet of content relevant to the search query. Use the Document.name field of each result with get_document or batch_get_documents to retrieve the full document content.","items":{"$ref":"#/$defs/DocumentChunk"},"type":"array"}},"type":"object"}},{"annotations":{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true},"description":"Use this tool to retrieve the full content of a single document. The\ndocument name should be obtained from the `parent` field of results from a\ncall to the `search_documents` tool. If you need to retrieve multiple\ndocuments, use `batch_get_documents` instead.","inputSchema":{"description":"Request schema for get_document.","properties":{"name":{"description":"Required. The name of the document to retrieve. Format: `documents/{uri_without_scheme}` Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets`","type":"string"}},"required":["name"],"type":"object"},"name":"get_document","outputSchema":{"description":"A Document represents a piece of content from the Developer Knowledge corpus.","properties":{"content":{"description":"Output only. The content of the document in Markdown format. If this document is returned by search_documents, this field contains a snippet of text relevant to the search query. If this document is returned by get_document or batch_get_documents, this field contains the full document content.","readOnly":true,"type":"string"},"description":{"description":"Output only. A description of the document.","readOnly":true,"type":"string"},"name":{"description":"Identifier. The resource name of the document. Format: `documents/{uri_without_scheme}` Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets`","type":"string","x-google-identifier":true},"uri":{"description":"Output only. The URI of the content, such as `https://cloud.google.com/storage/docs/creating-buckets`.","readOnly":true,"type":"string"}},"type":"object"}},{"annotations":{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true},"description":"Use this tool to retrieve the full content of up to 20 documents in a\nsingle call. The document names should be obtained from the `parent` field\nof results from a call to the `search_documents` tool. Use this tool\ninstead of calling `get_document` multiple times to fetch multiple\ndocuments.","inputSchema":{"description":"Request schema for batch_get_documents.","properties":{"names":{"description":"Required. The names of the documents to retrieve, as returned by search_documents. A maximum of 20 documents can be retrieved in a batch. The documents are returned in the same order as the `names` in the request. Format: `documents/{uri_without_scheme}` Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets`","items":{"type":"string"},"type":"array"}},"required":["names"],"type":"object"},"name":"batch_get_documents","outputSchema":{"$defs":{"Document":{"description":"A Document represents a piece of content from the Developer Knowledge corpus.","properties":{"content":{"description":"Output only. The content of the document in Markdown format. If this document is returned by search_documents, this field contains a snippet of text relevant to the search query. If this document is returned by get_document or batch_get_documents, this field contains the full document content.","readOnly":true,"type":"string"},"description":{"description":"Output only. A description of the document.","readOnly":true,"type":"string"},"name":{"description":"Identifier. The resource name of the document. Format: `documents/{uri_without_scheme}` Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets`","type":"string","x-google-identifier":true},"uri":{"description":"Output only. The URI of the content, such as `https://cloud.google.com/storage/docs/creating-buckets`.","readOnly":true,"type":"string"}},"type":"object"}},"description":"Response schema for batch_get_documents.","properties":{"documents":{"description":"Documents requested.","items":{"$ref":"#/$defs/Document"},"type":"array"}},"type":"object"}}]}} +[debug] [2026-02-20T19:09:29.541Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-20T19:09:29.541Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-23T10:47:00.254Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-23T10:47:00.256Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-23T10:47:00.256Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-23T10:47:00.256Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-23T10:47:00.263Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-23T10:47:00.263Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-23T10:47:00.736Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-23T10:47:00.737Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-23T10:47:00.738Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-23T10:47:00.738Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-23T10:47:00.740Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-23T10:47:00.741Z] > authorizing via signed-in user (support@gonovel.co) +[debug] [2026-02-23T10:47:00.742Z] >>> [apiv2][query] POST https://developerknowledge.googleapis.com/mcp [none] +[debug] [2026-02-23T10:47:00.742Z] >>> [apiv2][body] POST https://developerknowledge.googleapis.com/mcp {"method":"tools/list","jsonrpc":"2.0","id":1} +[debug] [2026-02-23T10:47:01.893Z] <<< [apiv2][status] POST https://developerknowledge.googleapis.com/mcp 200 +[debug] [2026-02-23T10:47:01.893Z] <<< [apiv2][body] POST https://developerknowledge.googleapis.com/mcp {"id":1,"jsonrpc":"2.0","result":{"tools":[{"annotations":{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true},"description":"Use this tool to find documentation about Google developer products.\nThe documents contain official APIs, code snippets, release notes, best\npractices, guides, debugging info, and more. It covers the following\nproducts and domains:\n\n* Android: developer.android.com\n* Apigee: docs.apigee.com\n* Chrome: developer.chrome.com\n* Firebase: firebase.google.com\n* Fuchsia: fuchsia.dev\n* Google AI: ai.google.dev\n* Google Cloud: docs.cloud.google.com\n* Google Developers, Ads, Search, Google Maps, Youtube: developers.google.com\n* Google Home: developers.home.google.com\n* TensorFlow: www.tensorflow.org\n* Web: web.dev\n\nThis tool returns chunks of text, names, and URLs for matching documents.\nIf the returned chunks are not detailed enough to answer the\nuser's question, use `get_document` or `batch_get_documents` with the\n`parent` from this tool's output to retrieve the full document\ncontent.","inputSchema":{"description":"Request schema for search_documents. Use the query field to search for related Google developer documentation.","properties":{"query":{"description":"Required. The raw query string provided by the user, such as \"How to create a Cloud Storage bucket?\".","type":"string"}},"required":["query"],"type":"object"},"name":"search_documents","outputSchema":{"$defs":{"DocumentChunk":{"description":"A DocumentChunk represents a piece of content from a Document in the DeveloperKnowledge corpus. To fetch the entire document content, pass the `parent` to get_document or batch_get_documents.","properties":{"content":{"description":"Output only. The content of the document chunk.","readOnly":true,"type":"string"},"id":{"description":"Output only. The ID of this chunk within the document. The chunk ID is unique within a document, but not globally unique across documents. The chunk ID is not stable and may change over time.","readOnly":true,"type":"string"},"parent":{"description":"Output only. The resource name of the document this chunk is from. Format: `documents/{uri_without_scheme}` Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets`","readOnly":true,"type":"string"}},"type":"object"}},"description":"Response schema for search_documents.","properties":{"results":{"description":"The search results for the given query. Each Document in this list contains a snippet of content relevant to the search query. Use the Document.name field of each result with get_document or batch_get_documents to retrieve the full document content.","items":{"$ref":"#/$defs/DocumentChunk"},"type":"array"}},"type":"object"}},{"annotations":{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true},"description":"Use this tool to retrieve the full content of a single document. The\ndocument name should be obtained from the `parent` field of results from a\ncall to the `search_documents` tool. If you need to retrieve multiple\ndocuments, use `batch_get_documents` instead.","inputSchema":{"description":"Request schema for get_document.","properties":{"name":{"description":"Required. The name of the document to retrieve. Format: `documents/{uri_without_scheme}` Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets`","type":"string"}},"required":["name"],"type":"object"},"name":"get_document","outputSchema":{"description":"A Document represents a piece of content from the Developer Knowledge corpus.","properties":{"content":{"description":"Output only. The content of the document in Markdown format. If this document is returned by search_documents, this field contains a snippet of text relevant to the search query. If this document is returned by get_document or batch_get_documents, this field contains the full document content.","readOnly":true,"type":"string"},"description":{"description":"Output only. A description of the document.","readOnly":true,"type":"string"},"name":{"description":"Identifier. The resource name of the document. Format: `documents/{uri_without_scheme}` Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets`","type":"string","x-google-identifier":true},"uri":{"description":"Output only. The URI of the content, such as `https://cloud.google.com/storage/docs/creating-buckets`.","readOnly":true,"type":"string"}},"type":"object"}},{"annotations":{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true},"description":"Use this tool to retrieve the full content of up to 20 documents in a\nsingle call. The document names should be obtained from the `parent` field\nof results from a call to the `search_documents` tool. Use this tool\ninstead of calling `get_document` multiple times to fetch multiple\ndocuments.","inputSchema":{"description":"Request schema for batch_get_documents.","properties":{"names":{"description":"Required. The names of the documents to retrieve, as returned by search_documents. A maximum of 20 documents can be retrieved in a batch. The documents are returned in the same order as the `names` in the request. Format: `documents/{uri_without_scheme}` Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets`","items":{"type":"string"},"type":"array"}},"required":["names"],"type":"object"},"name":"batch_get_documents","outputSchema":{"$defs":{"Document":{"description":"A Document represents a piece of content from the Developer Knowledge corpus.","properties":{"content":{"description":"Output only. The content of the document in Markdown format. If this document is returned by search_documents, this field contains a snippet of text relevant to the search query. If this document is returned by get_document or batch_get_documents, this field contains the full document content.","readOnly":true,"type":"string"},"description":{"description":"Output only. A description of the document.","readOnly":true,"type":"string"},"name":{"description":"Identifier. The resource name of the document. Format: `documents/{uri_without_scheme}` Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets`","type":"string","x-google-identifier":true},"uri":{"description":"Output only. The URI of the content, such as `https://cloud.google.com/storage/docs/creating-buckets`.","readOnly":true,"type":"string"}},"type":"object"}},"description":"Response schema for batch_get_documents.","properties":{"documents":{"description":"Documents requested.","items":{"$ref":"#/$defs/Document"},"type":"array"}},"type":"object"}}]}} +[debug] [2026-02-23T10:47:01.896Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2026-02-23T10:47:01.896Z] > authorizing via signed-in user (support@gonovel.co) diff --git a/setup_leo.sh b/setup_leo.sh new file mode 100644 index 0000000000..98d878421f --- /dev/null +++ b/setup_leo.sh @@ -0,0 +1,241 @@ +#!/usr/bin/env bash +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +# ── Helper: run command quietly, show output only on failure ── +run_quiet() { + local label="$1" + shift + local tmplog + tmplog=$(mktemp) + if "$@" > "$tmplog" 2>&1; then + rm -f "$tmplog" + else + local exit_code=$? + echo "❌ $label failed (exit code $exit_code):" + cat "$tmplog" + rm -f "$tmplog" + exit $exit_code + fi +} + +echo "╔══════════════════════════════════════╗" +echo "║ Unsloth Studio Setup Script ║" +echo "╚══════════════════════════════════════╝" + +# ── Detect Colab (like unsloth does) ── +IS_COLAB=false +keynames=$'\n'$(printenv | cut -d= -f1) +if [[ "$keynames" == *$'\nCOLAB_'* ]]; then + IS_COLAB=true +fi + +# ── 1. Check existing Node/npm versions ── +NEED_NODE=true +if command -v node &>/dev/null && command -v npm &>/dev/null; then + NODE_MAJOR=$(node -v | sed 's/v//' | cut -d. -f1) + NPM_MAJOR=$(npm -v | cut -d. -f1) + if [ "$NODE_MAJOR" -ge 20 ] && [ "$NPM_MAJOR" -ge 11 ]; then + echo "✅ Node $(node -v) and npm $(npm -v) already meet requirements. Skipping nvm install." + NEED_NODE=false + else + if [ "$IS_COLAB" = true ]; then + echo "✅ Node $(node -v) and npm $(npm -v) detected in Colab." + # In Colab, just upgrade npm directly - nvm doesn't work well + if [ "$NPM_MAJOR" -lt 11 ]; then + echo " Upgrading npm to latest..." + npm install -g npm@latest > /dev/null 2>&1 + fi + NEED_NODE=false + else + echo "⚠️ Node $(node -v) / npm $(npm -v) too old. Installing via nvm..." + fi + fi +else + echo "⚠️ Node/npm not found. Installing via nvm..." +fi + +if [ "$NEED_NODE" = true ]; then + # ── 2. Install nvm ── + echo "Installing nvm..." + curl -so- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash > /dev/null 2>&1 + + # Load nvm (source ~/.bashrc won't work inside a script) + export NVM_DIR="$HOME/.nvm" + [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" + + # ── 3. Install Node LTS ── + echo "Installing Node LTS..." + run_quiet "nvm install" nvm install --lts + nvm use --lts > /dev/null 2>&1 + + # ── 4. Verify versions ── + NODE_MAJOR=$(node -v | sed 's/v//' | cut -d. -f1) + NPM_MAJOR=$(npm -v | cut -d. -f1) + + if [ "$NODE_MAJOR" -lt 20 ]; then + echo "❌ ERROR: Node version must be >= 20 (got $(node -v))" + exit 1 + fi + if [ "$NPM_MAJOR" -lt 11 ]; then + echo "⚠️ npm version is $(npm -v), expected >= 11. Updating..." + run_quiet "npm update" npm install -g npm@latest + fi +fi + +echo "✅ Node $(node -v) | npm $(npm -v)" + +# ── 5. Build frontend ── +echo "" +echo "Building frontend..." +cd "$SCRIPT_DIR/studio/frontend" +run_quiet "npm install" npm install +run_quiet "npm run build" npm run build +cd "$SCRIPT_DIR" +echo "✅ Frontend built to studio/frontend/dist" + +# ── 6. Python venv + deps ── +echo "" +echo "Setting up Python environment..." + +# ── 6a. Discover best Python <= 3.12.x ── +BEST_PY="" +BEST_MAJOR=0 +BEST_MINOR=0 + +# Collect candidate python3 binaries (python3, python3.9, python3.10, …) +for candidate in $(compgen -c python3 2>/dev/null | grep -E '^python3(\.[0-9]+)?$' | sort -u); do + if ! command -v "$candidate" &>/dev/null; then + continue + fi + # Get version string, e.g. "Python 3.11.5" + ver_str=$("$candidate" --version 2>&1 | awk '{print $2}') + py_major=$(echo "$ver_str" | cut -d. -f1) + py_minor=$(echo "$ver_str" | cut -d. -f2) + + # Skip anything that isn't Python 3 + if [ "$py_major" -ne 3 ] 2>/dev/null; then + continue + fi + + # Skip versions above 3.12 + if [ "$py_minor" -gt 12 ] 2>/dev/null; then + continue + fi + + # Keep the highest qualifying version + if [ "$py_minor" -gt "$BEST_MINOR" ]; then + BEST_PY="$candidate" + BEST_MAJOR="$py_major" + BEST_MINOR="$py_minor" + fi +done + +if [ -z "$BEST_PY" ]; then + echo "❌ ERROR: No Python version <= 3.12.x found on this system." + echo " Detected Python 3 installations:" + for candidate in $(compgen -c python3 2>/dev/null | grep -E '^python3(\.[0-9]+)?$' | sort -u); do + if command -v "$candidate" &>/dev/null; then + echo " - $candidate ($($candidate --version 2>&1))" + fi + done + echo "" + echo " Please install Python <= 3.12.x for maximum compatibility." + echo " For example: sudo apt install python3.12 python3.12-venv" + exit 1 +fi + +BEST_VER=$("$BEST_PY" --version 2>&1 | awk '{print $2}') +echo "✅ Using $BEST_PY ($BEST_VER) — compatible (≤ 3.12.x)" + +if [ "$IS_COLAB" = true ]; then + # Colab: install packages directly without venv + run_quiet "pip upgrade" pip install --upgrade pip + echo " Installing unsloth-zoo + unsloth..." + run_quiet "pip install unsloth" pip install unsloth-zoo unsloth + echo " Installing studio dependencies..." + run_quiet "pip install extras" pip install typer fastapi uvicorn pydantic matplotlib pandas nest_asyncio "datasets==4.3.0" pyjwt easydict addict + echo "✅ Python dependencies installed" +else + # Local: create venv + "$BEST_PY" -m venv .venv + source .venv/bin/activate + run_quiet "pip upgrade" pip install --upgrade pip + echo " Installing unsloth-zoo + unsloth..." + run_quiet "pip install unsloth" pip install unsloth-zoo unsloth + echo " Installing studio dependencies..." + run_quiet "pip install extras" pip install typer fastapi uvicorn pydantic matplotlib pandas nest_asyncio "datasets==4.3.0" pyjwt easydict addict + echo "✅ Python dependencies installed" +fi + +# ── 7. Add shell alias (skip in Colab) ── +# Note: venv activation does NOT persist across terminal sessions. +# This alias hardcodes the venv python path so users don't need to activate. +if [ "$IS_COLAB" = false ]; then +echo "" +REPO_DIR="$SCRIPT_DIR" + +# Detect the user's default shell and pick the right rc file +USER_SHELL="$(basename "${SHELL:-/bin/bash}")" +case "$USER_SHELL" in + zsh) + SHELL_RC="$HOME/.zshrc" + ALIAS_BLOCK="alias unsloth-ui='${REPO_DIR}/.venv/bin/python ${REPO_DIR}/cli.py ui -f ${REPO_DIR}/studio/frontend/dist'" + ;; + fish) + SHELL_RC="$HOME/.config/fish/config.fish" + # fish uses 'abbr' or 'function'; a simple alias works via 'alias' in config.fish + ALIAS_BLOCK="alias unsloth-ui '${REPO_DIR}/.venv/bin/python ${REPO_DIR}/cli.py ui -f ${REPO_DIR}/studio/frontend/dist'" + ;; + ksh) + SHELL_RC="$HOME/.kshrc" + ALIAS_BLOCK="alias unsloth-ui='${REPO_DIR}/.venv/bin/python ${REPO_DIR}/cli.py ui -f ${REPO_DIR}/studio/frontend/dist'" + ;; + *) + # Default to bash for bash and any other POSIX-compatible shell + SHELL_RC="$HOME/.bashrc" + ALIAS_BLOCK="alias unsloth-ui='${REPO_DIR}/.venv/bin/python ${REPO_DIR}/cli.py ui -f ${REPO_DIR}/studio/frontend/dist'" + ;; +esac + +echo " Detected shell: $USER_SHELL → $SHELL_RC" + +ALIAS_ADDED=false +if ! grep -qF "unsloth-ui" "$SHELL_RC" 2>/dev/null; then + mkdir -p "$(dirname "$SHELL_RC")" # needed for fish's nested config path + cat >> "$SHELL_RC" < 0 else 0 + + if filtered_len == 0 or drop_pct > 30: + max_seq = training_args.get('max_seq_length', 2048) + error_msg = ( + f"{dropped}/{original_len} samples ({drop_pct}%) " + f"were dropped after applying 'train on responses " + f"only' — only {filtered_len} remain. This usually " + f"means max_seq_length ({max_seq}) is too short " + f"and the response portion is being truncated " + f"away. Try increasing max_seq_length (e.g. 8192) " + f"or disabling 'Train on completions'." + ) + logger.error(error_msg) + self._update_progress(error=error_msg, is_training=False) + return + + if dropped > 0: + print( + f"⚠️ {dropped}/{original_len} samples " + f"({drop_pct}%) were dropped (all labels " + f"masked). {filtered_len} samples remain.\n" + ) + print(f"Post-filter dataset size: {filtered_len} samples\n") + except Exception as e: logger.warning(f"Failed to apply train on responses only: {e}") train_on_responses_enabled = False @@ -957,7 +992,7 @@ class UnslothTrainer: progress_callback = ProgressCallback(self) self.trainer.add_callback(progress_callback) - num_samples = len(dataset["dataset"]) + num_samples = len(self.trainer.train_dataset) batch_size = training_args.get('batch_size', 2) grad_accum = training_args.get('gradient_accumulation_steps', 4) num_epochs = training_args.get('num_epochs', 3)