clawaid 1.0.1 → 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.
@@ -1,3 +1,20 @@
1
+ /**
2
+ * Generate a stable machine fingerprint using hostname + platform + arch.
3
+ * Falls back to a hash so we never expose raw machine names.
4
+ */
5
+ export declare function getMachineFingerprint(): string;
6
+ export declare class PaywallError extends Error {
7
+ readonly price: string;
8
+ readonly currency: string;
9
+ readonly isChinese: boolean;
10
+ readonly credits: number;
11
+ constructor(opts: {
12
+ price: string;
13
+ currency: string;
14
+ isChinese: boolean;
15
+ credits: number;
16
+ });
17
+ }
1
18
  export interface DiagnosticAction {
2
19
  description: string;
3
20
  command: string;
@@ -30,6 +47,7 @@ export interface DiagnoseOptions {
30
47
  observationData: string;
31
48
  previousAttempts?: string[];
32
49
  round?: number;
50
+ token?: string;
33
51
  }
34
52
  declare function extractApiKey(): string | null;
35
53
  export declare function diagnose(options: DiagnoseOptions): Promise<DiagnosisResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"diagnose.d.ts","sourceRoot":"","sources":["../src/diagnose.ts"],"names":[],"mappings":"AAgDA,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,WAAW,CAAC;IACrC,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAChC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAChC,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,gBAAgB,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAsFD,iBAAS,aAAa,IAAI,MAAM,GAAG,IAAI,CAwBtC;AAiID,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAqDjF;AAED,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,MAAM,EAC3B,gBAAgB,EAAE,MAAM,EAAE,EAC1B,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CA8ClD;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"diagnose.d.ts","sourceRoot":"","sources":["../src/diagnose.ts"],"names":[],"mappings":"AAUA;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAG9C;AAED,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEb,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;CAQ3F;AAoDD,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,WAAW,CAAC;IACrC,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAChC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAChC,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,gBAAgB,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAsFD,iBAAS,aAAa,IAAI,MAAM,GAAG,IAAI,CAwBtC;AAiID,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAuDjF;AAED,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,MAAM,EAC3B,gBAAgB,EAAE,MAAM,EAAE,EAC1B,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CA8ClD;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
package/dist/diagnose.js CHANGED
@@ -33,6 +33,8 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.PaywallError = void 0;
37
+ exports.getMachineFingerprint = getMachineFingerprint;
36
38
  exports.diagnose = diagnose;
37
39
  exports.verifyFix = verifyFix;
38
40
  exports.extractApiKey = extractApiKey;
@@ -41,12 +43,34 @@ const http = __importStar(require("http"));
41
43
  const fs = __importStar(require("fs"));
42
44
  const path = __importStar(require("path"));
43
45
  const os = __importStar(require("os"));
46
+ const crypto = __importStar(require("crypto"));
44
47
  // ClawAid backend API URL — set CLAWAID_API to override (e.g. for local dev)
45
- const CLAWAID_API = process.env.CLAWAID_API || 'https://clawaid-backend.vercel.app';
46
- async function callClawAidAPI(observationData, previousAttempts, round) {
48
+ const CLAWAID_API = process.env.CLAWAID_API || 'https://api.clawaid.app';
49
+ /**
50
+ * Generate a stable machine fingerprint using hostname + platform + arch.
51
+ * Falls back to a hash so we never expose raw machine names.
52
+ */
53
+ function getMachineFingerprint() {
54
+ const raw = `${os.hostname()}::${os.platform()}::${os.arch()}`;
55
+ return crypto.createHash('sha256').update(raw).digest('hex').slice(0, 32);
56
+ }
57
+ class PaywallError extends Error {
58
+ constructor(opts) {
59
+ super('PaywallError');
60
+ this.name = 'PaywallError';
61
+ this.price = opts.price;
62
+ this.currency = opts.currency;
63
+ this.isChinese = opts.isChinese;
64
+ this.credits = opts.credits;
65
+ }
66
+ }
67
+ exports.PaywallError = PaywallError;
68
+ async function callClawAidAPI(observationData, previousAttempts, round, token) {
47
69
  return new Promise((resolve, reject) => {
48
- const body = JSON.stringify({ observationData, previousAttempts, round });
49
- const url = new URL(`${CLAWAID_API}/api/diagnose`);
70
+ const fingerprint = getMachineFingerprint();
71
+ const body = JSON.stringify({ observationData, previousAttempts, round, fingerprint, ...(token ? { token } : {}) });
72
+ // Worker path is /diagnose (no /api prefix)
73
+ const url = new URL(`${CLAWAID_API}/diagnose`);
50
74
  const isLocal = url.hostname === 'localhost' || url.hostname === '127.0.0.1';
51
75
  const lib = isLocal ? http : https;
52
76
  const options = {
@@ -65,6 +89,15 @@ async function callClawAidAPI(observationData, previousAttempts, round) {
65
89
  res.on('end', () => {
66
90
  try {
67
91
  const parsed = JSON.parse(data);
92
+ if (parsed.paywall) {
93
+ reject(new PaywallError({
94
+ price: parsed.price || (parsed.isChinese ? '¥9.9' : '$1.99'),
95
+ currency: parsed.currency || (parsed.isChinese ? 'CNY' : 'USD'),
96
+ isChinese: Boolean(parsed.isChinese),
97
+ credits: parsed.credits || 0,
98
+ }));
99
+ return;
100
+ }
68
101
  if (parsed.error)
69
102
  reject(new Error(parsed.error));
70
103
  else
@@ -309,7 +342,7 @@ function loadContextDocs() {
309
342
  return docs;
310
343
  }
311
344
  async function diagnose(options) {
312
- const { apiKey, observationData, previousAttempts, round } = options;
345
+ const { apiKey, observationData, previousAttempts, round, token } = options;
313
346
  let userMessage;
314
347
  const contextDocs = loadContextDocs();
315
348
  if (previousAttempts && previousAttempts.length > 0) {
@@ -344,9 +377,12 @@ IMPORTANT: You MUST respond with valid JSON only. No prose, no markdown, no expl
344
377
  `.trim();
345
378
  }
346
379
  try {
347
- return await callClawAidAPI(observationData, previousAttempts, round);
380
+ return await callClawAidAPI(observationData, previousAttempts, round, token);
348
381
  }
349
382
  catch (err) {
383
+ // Re-throw PaywallError — don't fall back for paywalled responses
384
+ if (err instanceof PaywallError)
385
+ throw err;
350
386
  const msg = err.message || String(err);
351
387
  // Fallback: try with user's own key if available
352
388
  if (apiKey) {
@@ -1 +1 @@
1
- {"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../src/diagnose.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../src/diagnose.ts"],"names":[],"mappings":"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"}
package/dist/loop.d.ts CHANGED
@@ -1,13 +1,14 @@
1
1
  import { ObservationResult } from './observe';
2
2
  import { DiagnosisResult } from './diagnose';
3
- export type LoopState = 'idle' | 'observing' | 'diagnosing' | 'showing_options' | 'auto_executing' | 'executing' | 'verifying' | 'fixed' | 'not_fixed' | 'healthy' | 'needs_api_key' | 'error';
3
+ export type LoopState = 'idle' | 'observing' | 'diagnosing' | 'showing_options' | 'auto_executing' | 'executing' | 'verifying' | 'fixed' | 'not_fixed' | 'healthy' | 'needs_api_key' | 'paywall' | 'error';
4
4
  export interface LoopEvent {
5
- type: 'state_change' | 'progress' | 'diagnosis' | 'action_result' | 'verify_result' | 'request_input' | 'complete' | 'error';
5
+ type: 'state_change' | 'progress' | 'diagnosis' | 'action_result' | 'verify_result' | 'request_input' | 'complete' | 'paywall' | 'error';
6
6
  data: unknown;
7
7
  }
8
8
  export type EventCallback = (event: LoopEvent) => void;
9
9
  export interface LoopContext {
10
10
  apiKey: string;
11
+ token?: string;
11
12
  originalObservation?: ObservationResult;
12
13
  originalObservationText?: string;
13
14
  currentDiagnosis?: DiagnosisResult;
@@ -21,6 +22,7 @@ export declare class DoctorLoop {
21
22
  private stopped;
22
23
  constructor(callback: EventCallback, apiKey?: string);
23
24
  setApiKey(key: string): void;
25
+ setToken(token: string): void;
24
26
  stop(): void;
25
27
  private emit;
26
28
  private setState;
@@ -1 +1 @@
1
- {"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../src/loop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmD,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC/F,OAAO,EAAY,eAAe,EAA+B,MAAM,YAAY,CAAC;AAIpF,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,WAAW,GACX,YAAY,GACZ,iBAAiB,GACjB,gBAAgB,GAChB,WAAW,GACX,WAAW,GACX,OAAO,GACP,WAAW,GACX,SAAS,GACT,eAAe,GACf,OAAO,CAAC;AAEZ,MAAM,WAAW,SAAS;IACxB,IAAI,EACA,cAAc,GACd,UAAU,GACV,WAAW,GACX,eAAe,GACf,eAAe,GACf,eAAe,GACf,UAAU,GACV,OAAO,CAAC;IACZ,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,CAAC,EAAE,iBAAiB,CAAC;IACxC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,gBAAgB,CAAC,EAAE,eAAe,CAAC;IACnC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,OAAO,CAAS;gBAEZ,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAK;IAShD,SAAS,CAAC,GAAG,EAAE,MAAM;IAIrB,IAAI;IAIJ,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,QAAQ;IAIV,KAAK;IAwBL,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;YAQjC,WAAW;IAiEzB;;;OAGG;IACG,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM;IAkChC;;OAEG;YACW,oBAAoB;YA4FpB,aAAa;IAwE3B,OAAO,CAAC,qBAAqB;CAqB9B"}
1
+ {"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../src/loop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmD,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC/F,OAAO,EAAY,eAAe,EAA6C,MAAM,YAAY,CAAC;AAIlG,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,WAAW,GACX,YAAY,GACZ,iBAAiB,GACjB,gBAAgB,GAChB,WAAW,GACX,WAAW,GACX,OAAO,GACP,WAAW,GACX,SAAS,GACT,eAAe,GACf,SAAS,GACT,OAAO,CAAC;AAEZ,MAAM,WAAW,SAAS;IACxB,IAAI,EACA,cAAc,GACd,UAAU,GACV,WAAW,GACX,eAAe,GACf,eAAe,GACf,eAAe,GACf,UAAU,GACV,SAAS,GACT,OAAO,CAAC;IACZ,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mBAAmB,CAAC,EAAE,iBAAiB,CAAC;IACxC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,gBAAgB,CAAC,EAAE,eAAe,CAAC;IACnC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,OAAO,CAAS;gBAEZ,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAK;IAShD,SAAS,CAAC,GAAG,EAAE,MAAM;IAIrB,QAAQ,CAAC,KAAK,EAAE,MAAM;IAItB,IAAI;IAIJ,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,QAAQ;IAIV,KAAK;IAwBL,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;YAQjC,WAAW;IA+EzB;;;OAGG;IACG,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM;IAkChC;;OAEG;YACW,oBAAoB;YA0GpB,aAAa;IAwE3B,OAAO,CAAC,qBAAqB;CAqB9B"}
package/dist/loop.js CHANGED
@@ -19,6 +19,9 @@ class DoctorLoop {
19
19
  setApiKey(key) {
20
20
  this.context.apiKey = key;
21
21
  }
22
+ setToken(token) {
23
+ this.context.token = token;
24
+ }
22
25
  stop() {
23
26
  this.stopped = true;
24
27
  }
@@ -80,6 +83,7 @@ class DoctorLoop {
80
83
  const diagnosis = await (0, diagnose_1.diagnose)({
81
84
  apiKey: this.context.apiKey,
82
85
  observationData: this.context.originalObservationText,
86
+ token: this.context.token,
83
87
  });
84
88
  this.context.currentDiagnosis = diagnosis;
85
89
  // Healthy?
@@ -110,6 +114,19 @@ class DoctorLoop {
110
114
  return; // Resumes via startFix(optionId)
111
115
  }
112
116
  catch (err) {
117
+ if (err instanceof diagnose_1.PaywallError) {
118
+ this.setState('paywall');
119
+ this.emit({
120
+ type: 'paywall',
121
+ data: {
122
+ price: err.price,
123
+ currency: err.currency,
124
+ isChinese: err.isChinese,
125
+ credits: err.credits,
126
+ },
127
+ });
128
+ return;
129
+ }
113
130
  this.progress(`❌ AI analysis failed: ${err.message}`);
114
131
  this.setState('error');
115
132
  this.emit({ type: 'error', data: { message: err.message } });
@@ -193,6 +210,7 @@ class DoctorLoop {
193
210
  observationData: currentObsText,
194
211
  previousAttempts: this.context.attemptHistory,
195
212
  round,
213
+ token: this.context.token,
196
214
  });
197
215
  this.context.currentDiagnosis = newDiagnosis;
198
216
  if (newDiagnosis.healthy && newDiagnosis.options.length === 0) {
@@ -231,6 +249,19 @@ class DoctorLoop {
231
249
  this.context.roundNumber = round;
232
250
  }
233
251
  catch (err) {
252
+ if (err instanceof diagnose_1.PaywallError) {
253
+ this.setState('paywall');
254
+ this.emit({
255
+ type: 'paywall',
256
+ data: {
257
+ price: err.price,
258
+ currency: err.currency,
259
+ isChinese: err.isChinese,
260
+ credits: err.credits,
261
+ },
262
+ });
263
+ return;
264
+ }
234
265
  this.progress(`❌ AI analysis failed: ${err.message}`);
235
266
  this.setState('error');
236
267
  this.emit({ type: 'error', data: { message: err.message } });
package/dist/loop.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"loop.js","sourceRoot":"","sources":["../src/loop.ts"],"names":[],"mappings":";;;AAAA,uCAA+F;AAC/F,yCAAoF;AACpF,uCAAiE;AACjE,qCAAkC;AAwClC,MAAa,UAAU;IAMrB,YAAY,QAAuB,EAAE,MAAM,GAAG,EAAE;QAHxC,UAAK,GAAc,MAAM,CAAC;QAC1B,YAAO,GAAG,KAAK,CAAC;QAGtB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG;YACb,MAAM;YACN,cAAc,EAAE,EAAE;YAClB,WAAW,EAAE,CAAC;SACf,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC;IAC5B,CAAC;IAED,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAEO,IAAI,CAAC,KAAgB;QAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAEO,QAAQ,CAAC,KAAgB;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;IAEO,QAAQ,CAAC,GAAW;QAC1B,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,KAAK;QACT,0BAA0B;QAC1B,MAAM,OAAO,GAAG,IAAA,wBAAa,GAAE,CAAC;QAChC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,+CAA+C,CAAC,CAAC;QACjE,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE;oBACJ,KAAK,EAAE,QAAQ;oBACf,KAAK,EAAE,oBAAoB;oBAC3B,WAAW,EAAE,WAAW;oBACxB,IAAI,EAAE,sEAAsE;oBAC5E,YAAY,EAAE,kIAAkI;iBACjJ;aACF,CAAC,CAAC;YACH,OAAO,CAAC,kDAAkD;QAC5D,CAAC;QAED,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,KAAa;QAC7C,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,yCAAyC,CAAC,CAAC;YACzD,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,WAAW;QACvB,4EAA4E;QAC5E,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,oCAAoC,CAAC,CAAC;QAEpD,MAAM,YAAY,GAAI,MAAc,CAAC,cAAoC,CAAC;QAC1E,MAAM,WAAW,GAAG,YAAY;YAC9B,CAAC,CAAC,IAAA,6BAAmB,EAAC,YAAY,CAAC;YACnC,CAAC,CAAC,MAAM,IAAA,iBAAO,EAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,CAAC,mBAAmB,GAAG,WAAW,CAAC;QAC/C,IAAI,CAAC,OAAO,CAAC,uBAAuB,GAAG,IAAA,2BAAiB,EAAC,WAAW,CAAC,CAAC;QAEtE,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,uCAAuC,CAAC,CAAC;QAEvD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC;QAEnD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,IAAA,mBAAQ,EAAC;gBAC/B,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;gBAC3B,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,uBAAuB;aACtD,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;YAE1C,WAAW;YACX,IAAI,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxD,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,SAAS,IAAI,mDAAmD,CAAC,CAAC,CAAC;gBACnG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,IAAI,EAAE,EAAE;iBAClJ,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE;oBACJ,SAAS,EAAE,SAAS,CAAC,SAAS;oBAC9B,UAAU,EAAE,SAAS,CAAC,UAAU;oBAChC,SAAS,EAAE,SAAS,CAAC,SAAS;oBAC9B,SAAS,EAAE,SAAS,CAAC,SAAS,IAAI,EAAE;oBACpC,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,EAAE;oBAClC,OAAO,EAAE,SAAS,CAAC,OAAO;oBAC1B,qBAAqB,EAAE,SAAS,CAAC,qBAAqB;oBACtD,KAAK,EAAE,CAAC;iBACT;aACF,CAAC,CAAC;YAEH,wDAAwD;YACxD,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;YACjC,OAAO,CAAC,iCAAiC;QAC3C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,yBAA0B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,OAAO,EAAG,GAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACxE,OAAO;QACT,CAAC;QAED,qDAAqD;QACrD,MAAM,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CAAC,QAAiB;QAC9B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,yCAAyC,CAAC,CAAC;YACzD,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC;QACtD,IAAI,MAAgC,CAAC;QAErC,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAE/C,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,0CAA0C,EAAE,EAAE,CAAC,CAAC;YAChH,OAAO;QACT,CAAC;QAED,gDAAgD;QAChD,MAAM,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,oBAAoB,CAAC,KAAa;QAC9C,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QAEzB,mBAAmB;QACnB,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,iDAAiD,CAAC,CAAC;YACjE,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE;oBACJ,KAAK,EAAE,KAAK;oBACZ,WAAW,EAAE,iEAAiE;oBAC9E,gBAAgB,EAAE,IAAI,CAAC,qBAAqB,EAAE;iBAC/C;aACF,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,aAAa;QACb,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,cAAc,KAAK,yBAAyB,CAAC,CAAC;QAE5D,MAAM,YAAY,GAAI,MAAc,CAAC,cAAoC,CAAC;QAC1E,IAAI,cAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,YAAY;gBAC7B,CAAC,CAAC,IAAA,6BAAmB,EAAC,YAAY,CAAC;gBACnC,CAAC,CAAC,MAAM,IAAA,iBAAO,EAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/C,cAAc,GAAG,IAAA,2BAAiB,EAAC,UAAU,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,sBAAuB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9D,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,uBAAuB,IAAI,EAAE,CAAC;QAC9D,CAAC;QAED,cAAc;QACd,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,+CAA+C,CAAC,CAAC;QAE/D,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,IAAA,mBAAQ,EAAC;gBAClC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;gBAC3B,eAAe,EAAE,cAAc;gBAC/B,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc;gBAC7C,KAAK;aACN,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,YAAY,CAAC;YAE7C,IAAI,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9D,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,SAAS,IAAI,mDAAmD,CAAC,CAAC,CAAC;gBACtG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,QAAQ,IAAI,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,SAAS,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC5L,OAAO;YACT,CAAC;YAED,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE;oBACJ,SAAS,EAAE,YAAY,CAAC,SAAS;oBACjC,UAAU,EAAE,YAAY,CAAC,UAAU;oBACnC,SAAS,EAAE,YAAY,CAAC,SAAS;oBACjC,SAAS,EAAE,YAAY,CAAC,SAAS,IAAI,EAAE;oBACvC,OAAO,EAAE,YAAY,CAAC,OAAO;oBAC7B,qBAAqB,EAAE,YAAY,CAAC,qBAAqB;oBACzD,KAAK;iBACN;aACF,CAAC,CAAC;YAEH,sCAAsC;YACtC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBAChB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE;wBACJ,KAAK,EAAE,KAAK;wBACZ,WAAW,EAAE,iEAAiE;wBAC9E,gBAAgB,EAAE,IAAI,CAAC,qBAAqB,EAAE;qBAC/C;iBACF,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,wDAAwD;YACxD,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,yBAA0B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,OAAO,EAAG,GAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,MAAoB;QAC9C,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC;YAC7C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAE,MAAkC,CAAC,iBAAiB,CAAC,CAAC;QAE9E,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,QAAQ,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,cAAc,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,MAAM,QAAQ,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAEpJ,MAAM,aAAa,GAAG,MAAM,IAAA,wBAAc,EACxC,MAAM,CAAC,KAAK,EACZ,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACd,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACnB,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YACrD,CAAC;QACH,CAAC,EACD,MAAM,CACP,CAAC;QAEF,sBAAsB;QACtB,MAAM,cAAc,GAAG;cACb,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,aAAa,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,KAAK;aACpE,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,IAAI,EAAE;cAC7C,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,IAAI,EAAE;;EAE1D,IAAA,8BAAoB,EAAC,aAAa,CAAC,OAAO,CAAC;UACnC,aAAa,CAAC,OAAO;CAC9B,CAAC,IAAI,EAAE,CAAC;QAEL,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAE3B,qCAAqC;QACrC,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,QAAQ,CAAC,6DAA6D,CAAC,CAAC;YAC7E,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,iCAAiC,EAAE,EAAE,CAAC,CAAC;YAC7G,OAAO,KAAK,CAAC;QACf,CAAC;QAED,SAAS;QACT,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;QAE1C,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,IAAA,eAAM,EAC/B,IAAI,CAAC,OAAO,CAAC,MAAM,EACnB,IAAI,CAAC,OAAO,CAAC,uBAAuB,IAAI,EAAE,EAC1C,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,EAClE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAC5B,CAAC;YAEF,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,CAAC,WAAW,EAAE;aAC3E,CAAC,CAAC;YAEH,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC,OAAO,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;gBACjD,OAAO,IAAI,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,QAAQ,CAAC,uBAAuB,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;gBACjE,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,uBAAwB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEO,qBAAqB;QAC3B,OAAO;;aAEE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;;;EAGnC,IAAI,CAAC,OAAO,CAAC,uBAAuB,IAAI,cAAc;;sBAElC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM;EACtD,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC;;;QAGzC,IAAI,CAAC,OAAO,CAAC,WAAW;;;;;;;CAO/B,CAAC,IAAI,EAAE,CAAC;IACP,CAAC;CACF;AAvWD,gCAuWC"}
1
+ {"version":3,"file":"loop.js","sourceRoot":"","sources":["../src/loop.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,GAAG,6CAAY,CAAC;AA4FtB,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOxD;AAED,eAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAMA,QAAA,MAAM,GAAG,6CAAY,CAAC;AA4JtB,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOxD;AAED,eAAe,GAAG,CAAC"}
package/dist/server.js CHANGED
@@ -40,9 +40,14 @@ exports.createServer = createServer;
40
40
  const express_1 = __importDefault(require("express"));
41
41
  const path = __importStar(require("path"));
42
42
  const fs = __importStar(require("fs"));
43
+ const https = __importStar(require("https"));
43
44
  const loop_1 = require("./loop");
44
45
  const app = (0, express_1.default)();
45
46
  app.use(express_1.default.json());
47
+ // In-memory token store (per server process)
48
+ let verifiedToken;
49
+ // ClawAid backend base URL
50
+ const CLAWAID_API = process.env.CLAWAID_API || 'https://api.clawaid.app';
46
51
  // Serve the web UI
47
52
  app.get('/', (_req, res) => {
48
53
  const htmlPath = path.join(__dirname, '..', 'web', 'index.html');
@@ -70,6 +75,10 @@ app.get('/api/diagnose', (req, res) => {
70
75
  const loop = new loop_1.DoctorLoop((event) => {
71
76
  sendEvent(event.type, event.data);
72
77
  });
78
+ // Restore verified token if available
79
+ if (verifiedToken) {
80
+ loop.setToken(verifiedToken);
81
+ }
73
82
  activeSessions.set(sessionId, { res, loop });
74
83
  // Send session ID to client
75
84
  sendEvent('session_start', { sessionId });
@@ -110,6 +119,56 @@ app.post('/api/fix', (req, res) => {
110
119
  });
111
120
  res.json({ ok: true });
112
121
  });
122
+ // Redeem token — calls backend /redeem and caches validated token
123
+ app.post('/api/redeem', (req, res) => {
124
+ const { token } = req.body;
125
+ if (!token || typeof token !== 'string' || !token.trim()) {
126
+ res.status(400).json({ valid: false, error: 'token required' });
127
+ return;
128
+ }
129
+ const body = JSON.stringify({ token: token.trim() });
130
+ const url = new URL(`${CLAWAID_API}/redeem`);
131
+ const options = {
132
+ hostname: url.hostname,
133
+ port: url.port ? parseInt(url.port) : 443,
134
+ path: url.pathname,
135
+ method: 'POST',
136
+ headers: {
137
+ 'Content-Type': 'application/json',
138
+ 'Content-Length': Buffer.byteLength(body),
139
+ },
140
+ };
141
+ const request = https.request(options, (backendRes) => {
142
+ let data = '';
143
+ backendRes.on('data', (chunk) => { data += chunk; });
144
+ backendRes.on('end', () => {
145
+ try {
146
+ const parsed = JSON.parse(data);
147
+ if (parsed.valid) {
148
+ // Cache the token for this server process
149
+ verifiedToken = token.trim();
150
+ // Also propagate to any active sessions
151
+ activeSessions.forEach(({ loop }) => {
152
+ loop.setToken(token.trim());
153
+ });
154
+ }
155
+ res.json({ valid: Boolean(parsed.valid), credits: parsed.credits || 0 });
156
+ }
157
+ catch {
158
+ res.status(500).json({ valid: false, error: 'Failed to parse backend response' });
159
+ }
160
+ });
161
+ });
162
+ request.on('error', (err) => {
163
+ res.status(500).json({ valid: false, error: err.message });
164
+ });
165
+ request.setTimeout(15000, () => {
166
+ request.destroy();
167
+ res.status(504).json({ valid: false, error: 'Redeem request timed out' });
168
+ });
169
+ request.write(body);
170
+ request.end();
171
+ });
113
172
  // Health check
114
173
  app.get('/api/health', (_req, res) => {
115
174
  res.json({ ok: true, version: '1.0.0', name: 'ClawAid', sessions: activeSessions.size });
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clawaid",
3
- "version": "1.0.1",
3
+ "version": "1.1.0",
4
4
  "description": "AI-powered diagnostic and repair tool for OpenClaw",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
package/web/index.html CHANGED
@@ -748,6 +748,43 @@
748
748
  </button>
749
749
  </div>
750
750
 
751
+ <!-- ===== SECTION: Paywall ===== -->
752
+ <div id="section-paywall" class="section card fade-in">
753
+ <div style="text-align:center; font-size:40px; margin-bottom:12px;">🔐</div>
754
+ <div style="font-size:18px; font-weight:500; text-align:center; margin-bottom:8px;">Use credits to continue</div>
755
+ <p style="font-size:13px; color:#5f6368; text-align:center; line-height:1.6; margin-bottom:20px;">
756
+ You've used your free diagnostic scans. Purchase credits to keep diagnosing.
757
+ </p>
758
+
759
+ <!-- Price display -->
760
+ <div id="paywall-price-box" style="background:#e8f0fe; border-radius:10px; padding:16px; text-align:center; margin-bottom:20px;">
761
+ <div id="paywall-price" style="font-size:28px; font-weight:700; color:#1a73e8;">$1.99</div>
762
+ <div id="paywall-credits" style="font-size:13px; color:#5f6368; margin-top:4px;">Credits for more scans</div>
763
+ </div>
764
+
765
+ <!-- Buy button -->
766
+ <a id="paywall-buy-btn" href="https://clawaid.app/#buy" target="_blank"
767
+ style="display:flex; align-items:center; justify-content:center; gap:8px;
768
+ padding:12px 24px; font-size:15px; font-weight:500; text-decoration:none;
769
+ background:#1a73e8; color:#fff; border-radius:8px; margin-bottom:20px;">
770
+ 💳 Buy Credits
771
+ </a>
772
+
773
+ <hr class="divider">
774
+
775
+ <!-- Redeem token -->
776
+ <div style="font-size:13px; font-weight:500; color:#3c4043; margin-bottom:8px;">Already have a token?</div>
777
+ <div class="input-group" style="margin-bottom:8px;">
778
+ <input class="input-field" id="paywall-token-input" type="text"
779
+ placeholder="Paste your activation token..."
780
+ autocomplete="off" spellcheck="false" />
781
+ </div>
782
+ <button class="btn btn-secondary" id="paywall-activate-btn" style="margin-bottom:8px;">
783
+ 🔑 Activate Token
784
+ </button>
785
+ <div id="paywall-activate-msg" style="font-size:12px; color:#5f6368; min-height:18px; text-align:center;"></div>
786
+ </div>
787
+
751
788
  <div class="footer">
752
789
  <p>ClawAid v1.0.0 · <a href="https://github.com/jjj5666/clawaid" target="_blank">GitHub</a></p>
753
790
  </div>
@@ -778,6 +815,7 @@
778
815
  fixed: $('section-fixed'),
779
816
  healthy: $('section-healthy'),
780
817
  notfixed: $('section-notfixed'),
818
+ paywall: $('section-paywall'),
781
819
  };
782
820
 
783
821
  function showOnly(name) {
@@ -900,6 +938,10 @@
900
938
  if (data.field === 'apiKey') showApiKeyInput(data);
901
939
  break;
902
940
 
941
+ case 'paywall':
942
+ showPaywall(data);
943
+ break;
944
+
903
945
  case 'complete':
904
946
  handleComplete(data);
905
947
  break;
@@ -957,6 +999,8 @@
957
999
  break;
958
1000
  case 'needs_api_key':
959
1001
  break; // handled by request_input event
1002
+ case 'paywall':
1003
+ break; // handled by 'paywall' event
960
1004
  case 'error':
961
1005
  $('scan-status-text').textContent = 'Error occurred';
962
1006
  break;
@@ -1165,6 +1209,66 @@
1165
1209
  }
1166
1210
  }
1167
1211
 
1212
+ function showPaywall(data) {
1213
+ const isChinese = Boolean(data.isChinese);
1214
+ const price = data.price || (isChinese ? '¥9.9' : '$1.99');
1215
+ const credits = data.credits || 0;
1216
+
1217
+ $('paywall-price').textContent = price;
1218
+ $('paywall-credits').textContent = credits > 0
1219
+ ? `Includes ${credits} credits`
1220
+ : 'Credits for more scans';
1221
+
1222
+ showOnly('paywall');
1223
+ }
1224
+
1225
+ // Paywall activate button
1226
+ $('paywall-activate-btn').addEventListener('click', async function() {
1227
+ const token = $('paywall-token-input').value.trim();
1228
+ if (!token) {
1229
+ $('paywall-activate-msg').style.color = '#c5221f';
1230
+ $('paywall-activate-msg').textContent = 'Please enter your activation token.';
1231
+ return;
1232
+ }
1233
+
1234
+ this.disabled = true;
1235
+ this.textContent = 'Activating...';
1236
+ $('paywall-activate-msg').style.color = '#5f6368';
1237
+ $('paywall-activate-msg').textContent = 'Verifying token...';
1238
+
1239
+ try {
1240
+ const resp = await fetch('/api/redeem', {
1241
+ method: 'POST',
1242
+ headers: { 'Content-Type': 'application/json' },
1243
+ body: JSON.stringify({ token }),
1244
+ });
1245
+ const result = await resp.json();
1246
+
1247
+ if (result.valid) {
1248
+ $('paywall-activate-msg').style.color = '#137333';
1249
+ $('paywall-activate-msg').textContent = `✅ Activated! Credits: ${result.credits || 0}. Restarting scan...`;
1250
+ // Re-start the diagnosis after a brief delay
1251
+ setTimeout(() => {
1252
+ startDiagnosis();
1253
+ }, 1500);
1254
+ } else {
1255
+ $('paywall-activate-msg').style.color = '#c5221f';
1256
+ $('paywall-activate-msg').textContent = '❌ Invalid or expired token. Please try again.';
1257
+ this.disabled = false;
1258
+ this.textContent = '🔑 Activate Token';
1259
+ }
1260
+ } catch (e) {
1261
+ $('paywall-activate-msg').style.color = '#c5221f';
1262
+ $('paywall-activate-msg').textContent = '❌ Network error. Please check your connection.';
1263
+ this.disabled = false;
1264
+ this.textContent = '🔑 Activate Token';
1265
+ }
1266
+ });
1267
+
1268
+ $('paywall-token-input').addEventListener('keydown', function(e) {
1269
+ if (e.key === 'Enter') $('paywall-activate-btn').click();
1270
+ });
1271
+
1168
1272
  function escHtml(str) {
1169
1273
  return String(str)
1170
1274
  .replace(/&/g, '&amp;')