@quarri/claude-data-tools 1.0.2 → 1.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.
@@ -15,5 +15,16 @@
15
15
  "args": ["${pluginDir}/dist/index.js"]
16
16
  }
17
17
  },
18
- "skills": ["quarri-guide"]
18
+ "skills": [
19
+ "quarri-guide",
20
+ "quarri-query",
21
+ "quarri-analyze",
22
+ "quarri-chart",
23
+ "quarri-explain",
24
+ "quarri-insights",
25
+ "quarri-metric",
26
+ "quarri-diagnose",
27
+ "quarri-extract",
28
+ "quarri-debug-connector"
29
+ ]
19
30
  }
@@ -22,6 +22,25 @@ interface AuthResponse {
22
22
  display_name: string;
23
23
  access_level: string;
24
24
  }>;
25
+ trial_info?: {
26
+ is_trial: boolean;
27
+ expires_at: string;
28
+ days_remaining: number;
29
+ max_data_gb: number;
30
+ upgrade_contact: string;
31
+ };
32
+ }
33
+ interface TrialStatusResponse {
34
+ is_trial: boolean;
35
+ database_name?: string;
36
+ display_name?: string;
37
+ days_remaining?: number;
38
+ expires_at?: string;
39
+ data_limit_bytes?: number;
40
+ data_limit_gb?: number;
41
+ signup_type?: string;
42
+ upgrade_contact?: string;
43
+ message?: string;
25
44
  }
26
45
  interface ToolResult {
27
46
  success: boolean;
@@ -37,7 +56,7 @@ export declare class QuarriApiClient {
37
56
  */
38
57
  setToken(token: string): void;
39
58
  /**
40
- * Make an HTTP request to the API
59
+ * Make an HTTP request to the API with timeout support
41
60
  */
42
61
  private request;
43
62
  /**
@@ -56,6 +75,22 @@ export declare class QuarriApiClient {
56
75
  * Validate an existing token
57
76
  */
58
77
  validateToken(token: string): Promise<AuthResponse>;
78
+ /**
79
+ * Initiate signup for a new organization
80
+ */
81
+ initiateSignup(email: string, orgName: string, includeDemoData: boolean): Promise<AuthResponse>;
82
+ /**
83
+ * Complete signup by verifying the code
84
+ */
85
+ completeSignup(email: string, code: string): Promise<AuthResponse>;
86
+ /**
87
+ * Get trial status for the authenticated user
88
+ */
89
+ getTrialStatus(): Promise<ApiResponse<TrialStatusResponse>>;
90
+ /**
91
+ * Delete the authenticated user's trial account and organization
92
+ */
93
+ deleteAccount(): Promise<AuthResponse>;
59
94
  /**
60
95
  * List available tools
61
96
  */
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,UAAU,WAAW,CAAC,CAAC,GAAG,OAAO;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,CAAC,CAAC;CACV;AAED,UAAU,YAAY;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;CACJ;AAED,UAAU,UAAU;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAuB;gBAExB,OAAO,CAAC,EAAE,MAAM;IAI5B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7B;;OAEG;YACW,OAAO;IAwCrB;;OAEG;IACG,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAenE;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAsBpE;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAsB7E;;OAEG;IACG,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA2BzD;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC;QAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAI5E;;OAEG;IACG,aAAa,CACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,WAAW,CAAC;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAI1C;;OAEG;IACG,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,UAAU,CAAC;IAmBtB;;OAEG;IACG,aAAa,IAAI,OAAO,CAC5B,WAAW,CAAC;QACV,SAAS,EAAE,KAAK,CAAC;YACf,aAAa,EAAE,MAAM,CAAC;YACtB,YAAY,EAAE,MAAM,CAAC;YACrB,YAAY,EAAE,MAAM,CAAC;SACtB,CAAC,CAAC;KACJ,CAAC,CACH;IAID;;OAEG;IACG,YAAY,CAChB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,EAC7D,YAAY,CAAC,EAAE,MAAM,EACrB,WAAW,UAAQ,GAClB,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC,CAAC;IASlD;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAGlE"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,8 @@
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.QuarriApiClient = void 0;
8
8
  const DEFAULT_API_URL = 'https://app.quarri.ai';
9
+ const DEFAULT_TIMEOUT = 60000; // 60 seconds for most operations
10
+ const LONG_TIMEOUT = 180000; // 3 minutes for analysis pipelines
9
11
  class QuarriApiClient {
10
12
  baseUrl;
11
13
  token = null;
@@ -19,9 +21,9 @@ class QuarriApiClient {
19
21
  this.token = token;
20
22
  }
21
23
  /**
22
- * Make an HTTP request to the API
24
+ * Make an HTTP request to the API with timeout support
23
25
  */
24
- async request(method, path, body, useAuth = true) {
26
+ async request(method, path, body, useAuth = true, timeout = DEFAULT_TIMEOUT) {
25
27
  const url = `${this.baseUrl}${path}`;
26
28
  const headers = {
27
29
  'Content-Type': 'application/json',
@@ -29,12 +31,17 @@ class QuarriApiClient {
29
31
  if (useAuth && this.token) {
30
32
  headers['Authorization'] = `Bearer ${this.token}`;
31
33
  }
34
+ // Create abort controller for timeout
35
+ const controller = new AbortController();
36
+ const timeoutId = setTimeout(() => controller.abort(), timeout);
32
37
  try {
33
38
  const response = await fetch(url, {
34
39
  method,
35
40
  headers,
36
41
  body: body ? JSON.stringify(body) : undefined,
42
+ signal: controller.signal,
37
43
  });
44
+ clearTimeout(timeoutId);
38
45
  const data = await response.json();
39
46
  if (!response.ok) {
40
47
  return {
@@ -45,6 +52,10 @@ class QuarriApiClient {
45
52
  return { success: true, data: data };
46
53
  }
47
54
  catch (error) {
55
+ clearTimeout(timeoutId);
56
+ if (error instanceof Error && error.name === 'AbortError') {
57
+ return { success: false, error: `Request timeout after ${timeout / 1000}s` };
58
+ }
48
59
  const message = error instanceof Error ? error.message : 'Unknown error';
49
60
  return { success: false, error: message };
50
61
  }
@@ -112,6 +123,51 @@ class QuarriApiClient {
112
123
  databases: data.databases,
113
124
  };
114
125
  }
126
+ // ==================== Self-Service Signup Methods ====================
127
+ /**
128
+ * Initiate signup for a new organization
129
+ */
130
+ async initiateSignup(email, orgName, includeDemoData) {
131
+ const result = await this.request('POST', '/api/auth/cli/initiate-signup', { email, org_name: orgName, include_demo_data: includeDemoData }, false);
132
+ if (!result.success) {
133
+ return { success: false, error: result.error };
134
+ }
135
+ return { success: true, ...result.data };
136
+ }
137
+ /**
138
+ * Complete signup by verifying the code
139
+ */
140
+ async completeSignup(email, code) {
141
+ const result = await this.request('POST', '/api/auth/cli/complete-signup', { email, code }, false);
142
+ if (!result.success) {
143
+ return { success: false, error: result.error };
144
+ }
145
+ const data = result.data;
146
+ return {
147
+ success: true,
148
+ token: data.token,
149
+ expiresAt: data.expiresAt,
150
+ user: data.user,
151
+ databases: data.databases,
152
+ trial_info: data.trial_info,
153
+ };
154
+ }
155
+ /**
156
+ * Get trial status for the authenticated user
157
+ */
158
+ async getTrialStatus() {
159
+ return this.request('GET', '/api/auth/cli/trial-status');
160
+ }
161
+ /**
162
+ * Delete the authenticated user's trial account and organization
163
+ */
164
+ async deleteAccount() {
165
+ const result = await this.request('DELETE', '/api/auth/cli/delete-account', undefined, true);
166
+ if (!result.success) {
167
+ return { success: false, error: result.error };
168
+ }
169
+ return { success: true, ...result.data };
170
+ }
115
171
  // ==================== Tool Methods ====================
116
172
  /**
117
173
  * List available tools
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAChD,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,iCAAiC;AAChE,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,mCAAmC;AAmDhE,MAAa,eAAe;IAClB,OAAO,CAAS;IAChB,KAAK,GAAkB,IAAI,CAAC;IAEpC,YAAY,OAAgB;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,eAAe,CAAC;IAC1E,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,OAAO,CACnB,MAAc,EACd,IAAY,EACZ,IAAc,EACd,OAAO,GAAG,IAAI,EACd,OAAO,GAAG,eAAe;QAEzB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;QACrC,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;SACnC,CAAC;QAEF,IAAI,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC1B,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC;QACpD,CAAC;QAED,sCAAsC;QACtC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;QAEhE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM;gBACN,OAAO;gBACP,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC7C,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YAEH,YAAY,CAAC,SAAS,CAAC,CAAC;YAExB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA4B,CAAC;YAE7D,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE;iBACvE,CAAC;YACJ,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAS,EAAE,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,YAAY,CAAC,SAAS,CAAC,CAAC;YAExB,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC1D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,yBAAyB,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;YAC/E,CAAC;YAED,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACzE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,yDAAyD;IAEzD;;OAEG;IACH,KAAK,CAAC,uBAAuB,CAAC,KAAa;QACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAC/B,MAAM,EACN,4BAA4B,EAC5B,EAAE,KAAK,EAAE,EACT,KAAK,CACN,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QACjD,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,IAAY;QAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAC/B,MAAM,EACN,2BAA2B,EAC3B,EAAE,KAAK,EAAE,IAAI,EAAE,EACf,KAAK,CACN,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QACjD,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAoB,CAAC;QACzC,OAAO;YACL,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,WAAmB;QACnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAC/B,MAAM,EACN,6BAA6B,EAC7B,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,EACpC,KAAK,CACN,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QACjD,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAoB,CAAC;QACzC,OAAO;YACL,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,KAAa;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAC/B,MAAM,EACN,8BAA8B,EAC9B,EAAE,EACF,IAAI,CACL,CAAC;QAEF,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QAEtB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QACjD,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAoB,CAAC;QACzC,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;IACJ,CAAC;IAED,wEAAwE;IAExE;;OAEG;IACH,KAAK,CAAC,cAAc,CAClB,KAAa,EACb,OAAe,EACf,eAAwB;QAExB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAC/B,MAAM,EACN,+BAA+B,EAC/B,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,EAChE,KAAK,CACN,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QACjD,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,KAAa,EAAE,IAAY;QAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAC/B,MAAM,EACN,+BAA+B,EAC/B,EAAE,KAAK,EAAE,IAAI,EAAE,EACf,KAAK,CACN,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QACjD,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAoB,CAAC;QACzC,OAAO;YACL,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAClB,OAAO,IAAI,CAAC,OAAO,CAAsB,KAAK,EAAE,4BAA4B,CAAC,CAAC;IAChF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa;QACjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAC/B,QAAQ,EACR,8BAA8B,EAC9B,SAAS,EACT,IAAI,CACL,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QACjD,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC3C,CAAC;IAED,yDAAyD;IAEzD;;OAEG;IACH,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CACjB,QAAgB;QAEhB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,kBAAkB,QAAQ,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,QAAgB,EAChB,IAA6B,EAC7B,YAAqB;QAErB,MAAM,IAAI,GAA4B,EAAE,IAAI,EAAE,CAAC;QAC/C,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QACpC,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAC/B,MAAM,EACN,iBAAiB,QAAQ,EAAE,EAC3B,IAAI,CACL,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QACjD,CAAC;QAED,OAAO,MAAM,CAAC,IAAkB,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa;QASjB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAChB,KAA6D,EAC7D,YAAqB,EACrB,WAAW,GAAG,KAAK;QAEnB,MAAM,IAAI,GAA4B,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;QAC5E,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QACpC,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAClE,CAAC;CACF;AApUD,0CAoUC"}
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Quarri CLI Authentication Tool
4
+ * Run with: npx @quarri/claude-data-tools auth
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=auth-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-cli.d.ts","sourceRoot":"","sources":["../src/auth-cli.ts"],"names":[],"mappings":";AACA;;;GAGG"}
@@ -0,0 +1,361 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * Quarri CLI Authentication Tool
5
+ * Run with: npx @quarri/claude-data-tools auth
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ const client_js_1 = require("./api/client.js");
42
+ const token_store_js_1 = require("./auth/token-store.js");
43
+ const readline = __importStar(require("readline"));
44
+ const client = new client_js_1.QuarriApiClient();
45
+ function createReadline() {
46
+ return readline.createInterface({
47
+ input: process.stdin,
48
+ output: process.stdout,
49
+ });
50
+ }
51
+ async function prompt(rl, question) {
52
+ return new Promise((resolve) => {
53
+ rl.question(question, (answer) => {
54
+ resolve(answer.trim());
55
+ });
56
+ });
57
+ }
58
+ async function login() {
59
+ const rl = createReadline();
60
+ try {
61
+ console.log('\n🔐 Quarri CLI Authentication\n');
62
+ // Check for existing credentials
63
+ const existing = (0, token_store_js_1.loadCredentials)();
64
+ if (existing) {
65
+ console.log(`Currently authenticated as: ${existing.email}`);
66
+ const answer = await prompt(rl, 'Re-authenticate? (y/n): ');
67
+ if (answer.toLowerCase() !== 'y' && answer.toLowerCase() !== 'yes') {
68
+ console.log('Keeping existing credentials.');
69
+ rl.close();
70
+ return;
71
+ }
72
+ }
73
+ const email = await prompt(rl, 'Enter your email: ');
74
+ if (!email || !email.includes('@')) {
75
+ console.error('Invalid email address');
76
+ rl.close();
77
+ process.exit(1);
78
+ }
79
+ console.log('\nRequesting verification code...');
80
+ const requestResult = await client.requestVerificationCode(email);
81
+ if (!requestResult.success) {
82
+ console.error(`Failed to request code: ${requestResult.error}`);
83
+ rl.close();
84
+ process.exit(1);
85
+ }
86
+ console.log('✓ Verification code sent to your email.\n');
87
+ const code = await prompt(rl, 'Enter the 6-digit code: ');
88
+ if (!code || code.length !== 6) {
89
+ console.error('Invalid verification code');
90
+ rl.close();
91
+ process.exit(1);
92
+ }
93
+ console.log('Verifying...');
94
+ const verifyResult = await client.verifyCode(email, code);
95
+ if (!verifyResult.success) {
96
+ console.error(`Verification failed: ${verifyResult.error}`);
97
+ rl.close();
98
+ process.exit(1);
99
+ }
100
+ const credentials = {
101
+ token: verifyResult.token,
102
+ email: verifyResult.user.email,
103
+ role: verifyResult.user.role,
104
+ databases: verifyResult.databases,
105
+ expiresAt: verifyResult.expiresAt,
106
+ };
107
+ (0, token_store_js_1.saveCredentials)(credentials);
108
+ console.log('\n✓ Authenticated successfully!\n');
109
+ console.log(` Email: ${credentials.email}`);
110
+ console.log(` Role: ${credentials.role}`);
111
+ console.log(` Databases: ${credentials.databases.map(d => d.display_name || d.database_name).join(', ')}`);
112
+ console.log('\nYou can now use Quarri tools in Claude Code.');
113
+ }
114
+ finally {
115
+ rl.close();
116
+ }
117
+ }
118
+ async function logout() {
119
+ (0, token_store_js_1.clearCredentials)();
120
+ console.log('✓ Logged out. Credentials cleared.');
121
+ }
122
+ async function status() {
123
+ const credentials = (0, token_store_js_1.loadCredentials)();
124
+ if (!credentials) {
125
+ console.log('Not authenticated.');
126
+ console.log('Run: npx @quarri/claude-data-tools auth');
127
+ return;
128
+ }
129
+ console.log('\n🔐 Quarri Authentication Status\n');
130
+ console.log(` Email: ${credentials.email}`);
131
+ console.log(` Role: ${credentials.role}`);
132
+ console.log(` Expires: ${credentials.expiresAt}`);
133
+ console.log(` Databases:`);
134
+ for (const db of credentials.databases) {
135
+ console.log(` - ${db.display_name || db.database_name} (${db.access_level})`);
136
+ }
137
+ if (credentials.selectedDatabase) {
138
+ console.log(` Selected: ${credentials.selectedDatabase}`);
139
+ }
140
+ }
141
+ async function verify(email, code) {
142
+ if (!email || !code) {
143
+ console.error('Usage: quarri-auth verify <email> <code>');
144
+ process.exit(1);
145
+ }
146
+ console.log('Verifying...');
147
+ const verifyResult = await client.verifyCode(email, code);
148
+ if (!verifyResult.success) {
149
+ console.error(`Verification failed: ${verifyResult.error}`);
150
+ process.exit(1);
151
+ }
152
+ const credentials = {
153
+ token: verifyResult.token,
154
+ email: verifyResult.user.email,
155
+ role: verifyResult.user.role,
156
+ databases: verifyResult.databases,
157
+ expiresAt: verifyResult.expiresAt,
158
+ };
159
+ (0, token_store_js_1.saveCredentials)(credentials);
160
+ console.log('\n✓ Authenticated successfully!\n');
161
+ console.log(` Email: ${credentials.email}`);
162
+ console.log(` Role: ${credentials.role}`);
163
+ console.log(` Databases: ${credentials.databases.map(d => d.display_name || d.database_name).join(', ')}`);
164
+ }
165
+ async function requestCode(email) {
166
+ if (!email) {
167
+ console.error('Usage: quarri-auth request <email>');
168
+ process.exit(1);
169
+ }
170
+ console.log(`Requesting verification code for ${email}...`);
171
+ const result = await client.requestVerificationCode(email);
172
+ if (!result.success) {
173
+ console.error(`Failed to request code: ${result.error}`);
174
+ process.exit(1);
175
+ }
176
+ console.log('✓ Verification code sent. Check your email.');
177
+ console.log(`\nThen run: quarri-auth verify ${email} <code>`);
178
+ }
179
+ async function signup() {
180
+ const rl = createReadline();
181
+ try {
182
+ console.log('\n🚀 Create a Quarri Organization\n');
183
+ console.log('Start a 7-day free trial with up to 1GB of data.\n');
184
+ const email = await prompt(rl, 'Email: ');
185
+ if (!email || !email.includes('@')) {
186
+ console.error('Invalid email address');
187
+ rl.close();
188
+ process.exit(1);
189
+ }
190
+ const orgName = await prompt(rl, 'Organization name: ');
191
+ if (!orgName || orgName.length < 2) {
192
+ console.error('Organization name must be at least 2 characters');
193
+ rl.close();
194
+ process.exit(1);
195
+ }
196
+ // Explain the two paths clearly
197
+ console.log('\nChoose your setup:\n');
198
+ console.log(' 1. Superstore Demo (Recommended for trying Quarri)');
199
+ console.log(' A ready-to-use retail analytics dataset with:');
200
+ console.log(' - 51,000+ orders across global markets');
201
+ console.log(' - Sales, profit, shipping, and customer data');
202
+ console.log(' - Pre-configured for immediate querying');
203
+ console.log('');
204
+ console.log(' 2. Custom Setup (For your own data)');
205
+ console.log(' An empty database where you can:');
206
+ console.log(' - Connect your own data sources');
207
+ console.log(' - Upload CSVs');
208
+ console.log(' - Build your data model from scratch');
209
+ console.log('');
210
+ const choice = await prompt(rl, 'Enter 1 or 2: ');
211
+ const useSuperstore = choice === '1';
212
+ console.log('\nRequesting verification code...');
213
+ const initResult = await client.initiateSignup(email, orgName, useSuperstore);
214
+ if (!initResult.success) {
215
+ console.error(`Failed to initiate signup: ${initResult.error}`);
216
+ rl.close();
217
+ process.exit(1);
218
+ }
219
+ console.log('\n✓ Verification code sent to your email.\n');
220
+ const code = await prompt(rl, 'Enter 6-digit code: ');
221
+ if (!code || code.length !== 6) {
222
+ console.error('Invalid verification code');
223
+ rl.close();
224
+ process.exit(1);
225
+ }
226
+ console.log('Creating organization...');
227
+ const result = await client.completeSignup(email, code);
228
+ if (!result.success) {
229
+ console.error(`Signup failed: ${result.error}`);
230
+ rl.close();
231
+ process.exit(1);
232
+ }
233
+ // Save credentials
234
+ const credentials = {
235
+ token: result.token,
236
+ email: result.user.email,
237
+ role: result.user.role,
238
+ databases: result.databases,
239
+ expiresAt: result.expiresAt,
240
+ };
241
+ (0, token_store_js_1.saveCredentials)(credentials);
242
+ // Display success message
243
+ console.log('\n✓ Organization created!\n');
244
+ console.log(` Database: ${result.databases[0]?.display_name || result.databases[0]?.database_name}`);
245
+ if (result.trial_info) {
246
+ // Parse and format the expiration date
247
+ const expiresDate = new Date(result.trial_info.expires_at);
248
+ const formattedDate = expiresDate.toLocaleDateString('en-US', {
249
+ year: 'numeric',
250
+ month: 'long',
251
+ day: 'numeric',
252
+ });
253
+ console.log(` Trial expires: ${formattedDate}`);
254
+ console.log(` Data limit: ${result.trial_info.max_data_gb}GB`);
255
+ }
256
+ if (useSuperstore) {
257
+ console.log('\n Your database is ready! Try asking questions like:');
258
+ console.log(' "Show me total sales by category"');
259
+ console.log(' "Which products have the highest profit margin?"');
260
+ console.log(' "What are the sales trends by region?"');
261
+ }
262
+ else {
263
+ console.log('\n Your empty database is ready. Next steps:');
264
+ console.log(' - Use /quarri-extract to connect data sources');
265
+ console.log(' - Upload CSVs with quarri_upload_csv');
266
+ console.log(' - Build your data model with /quarri-model');
267
+ }
268
+ console.log(`\n To upgrade to a full account: contact ${result.trial_info?.upgrade_contact || 'theo@quarri.ai'}\n`);
269
+ console.log('You can now use Quarri tools in Claude Code.');
270
+ }
271
+ finally {
272
+ rl.close();
273
+ }
274
+ }
275
+ async function deleteAccount() {
276
+ const rl = createReadline();
277
+ try {
278
+ const credentials = (0, token_store_js_1.loadCredentials)();
279
+ if (!credentials) {
280
+ console.error('Not authenticated. Nothing to delete.');
281
+ rl.close();
282
+ process.exit(1);
283
+ }
284
+ console.log('\n⚠️ Delete Account\n');
285
+ console.log(`You are about to permanently delete your account: ${credentials.email}`);
286
+ console.log('This will delete:');
287
+ console.log(' - Your user account');
288
+ console.log(' - Your organization and all its data');
289
+ console.log(' - All databases and configurations');
290
+ console.log('\nThis action cannot be undone.\n');
291
+ const confirm = await prompt(rl, 'Type "DELETE" to confirm: ');
292
+ if (confirm !== 'DELETE') {
293
+ console.log('Deletion cancelled.');
294
+ rl.close();
295
+ return;
296
+ }
297
+ client.setToken(credentials.token);
298
+ console.log('\nDeleting account...');
299
+ const result = await client.deleteAccount();
300
+ if (!result.success) {
301
+ console.error(`Failed to delete account: ${result.error}`);
302
+ rl.close();
303
+ process.exit(1);
304
+ }
305
+ // Clear local credentials
306
+ (0, token_store_js_1.clearCredentials)();
307
+ console.log('\n✓ Account deleted successfully.\n');
308
+ }
309
+ finally {
310
+ rl.close();
311
+ }
312
+ }
313
+ async function main() {
314
+ const args = process.argv.slice(2);
315
+ const command = args[0] || 'login';
316
+ switch (command) {
317
+ case 'auth':
318
+ case 'login':
319
+ await login();
320
+ break;
321
+ case 'signup':
322
+ case 'create':
323
+ await signup();
324
+ break;
325
+ case 'delete-account':
326
+ await deleteAccount();
327
+ break;
328
+ case 'logout':
329
+ await logout();
330
+ break;
331
+ case 'status':
332
+ case 'whoami':
333
+ await status();
334
+ break;
335
+ case 'request':
336
+ await requestCode(args[1]);
337
+ break;
338
+ case 'verify':
339
+ await verify(args[1], args[2]);
340
+ break;
341
+ default:
342
+ console.log('Usage: npx @quarri/claude-data-tools <command>');
343
+ console.log('');
344
+ console.log('Commands:');
345
+ console.log(' signup, create Create a new organization (7-day trial)');
346
+ console.log(' auth, login Authenticate existing account');
347
+ console.log(' logout Clear stored credentials');
348
+ console.log(' status Show authentication status');
349
+ console.log(' delete-account Permanently delete your trial account');
350
+ console.log('');
351
+ console.log('Advanced:');
352
+ console.log(' request <email> Request verification code');
353
+ console.log(' verify <email> <code> Complete verification');
354
+ break;
355
+ }
356
+ }
357
+ main().catch((error) => {
358
+ console.error('Error:', error.message);
359
+ process.exit(1);
360
+ });
361
+ //# sourceMappingURL=auth-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-cli.js","sourceRoot":"","sources":["../src/auth-cli.ts"],"names":[],"mappings":"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"}