clawaid 1.1.21 → 1.1.23

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 +1 @@
1
- {"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../src/loop.ts"],"names":[],"mappings":"AAoBA,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,0BAA0B,GAC1B,WAAW,GACX,SAAS,GACT,SAAS,GACT,OAAO,GACP,WAAW,GACX,SAAS,GACT,UAAU,GACV,SAAS,GACT,OAAO,CAAC;AAEZ,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAEjC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EACA,cAAc,GACd,UAAU,GACV,YAAY,GACZ,WAAW,GACX,gBAAgB,GAChB,UAAU,GACV,SAAS,GACT,eAAe,GACf,OAAO,CAAC;IACZ,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;AAEvD,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,CAAC,eAAe,CAAM;IAC7B,OAAO,CAAC,cAAc,CAAC,CAAS;IAChC,OAAO,CAAC,WAAW,CAAC,CAAoB;IACxC,OAAO,CAAC,eAAe,CAAM;IAC7B,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,cAAc,CAAC,CAA6D;IACpF,OAAO,CAAC,kBAAkB,CAAC,CAA6E;IACxG,OAAO,CAAC,WAAW,CAAC,CAAS;gBAEjB,QAAQ,EAAE,aAAa;IAInC,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,OAAO,CAAC,IAAI,EAAE,MAAM;IAEpB,OAAO,CAAC,SAAS;YAyBH,YAAY;IAmB1B,IAAI;IAEJ,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,QAAQ;IAEV,KAAK;IA6BL,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;IAU1E,WAAW,CAAC,SAAS,EAAE,OAAO;IAQ9B,QAAQ;YAIA,OAAO;IAkIrB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,cAAc;YAqBR,QAAQ;IAyFhB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM;CAIlC"}
1
+ {"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../src/loop.ts"],"names":[],"mappings":"AAqBA,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,0BAA0B,GAC1B,WAAW,GACX,SAAS,GACT,SAAS,GACT,OAAO,GACP,WAAW,GACX,SAAS,GACT,UAAU,GACV,SAAS,GACT,OAAO,CAAC;AAEZ,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAEjC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EACA,cAAc,GACd,UAAU,GACV,YAAY,GACZ,WAAW,GACX,gBAAgB,GAChB,UAAU,GACV,SAAS,GACT,eAAe,GACf,OAAO,CAAC;IACZ,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;AAEvD,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,CAAC,eAAe,CAAM;IAC7B,OAAO,CAAC,cAAc,CAAC,CAAS;IAChC,OAAO,CAAC,WAAW,CAAC,CAAoB;IACxC,OAAO,CAAC,eAAe,CAAM;IAC7B,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,cAAc,CAAC,CAA6D;IACpF,OAAO,CAAC,kBAAkB,CAAC,CAA6E;IACxG,OAAO,CAAC,WAAW,CAAC,CAAS;gBAEjB,QAAQ,EAAE,aAAa;IAInC,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,OAAO,CAAC,IAAI,EAAE,MAAM;IAEpB,OAAO,CAAC,SAAS;YAyBH,YAAY;IAmB1B,IAAI;IAEJ,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,QAAQ;IAEV,KAAK;IA6BL,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;IAU1E,WAAW,CAAC,SAAS,EAAE,OAAO;IAQ9B,QAAQ;YAIA,OAAO;IAqIrB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,cAAc;YAqBR,QAAQ;IAyFhB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM;CAIlC"}
package/dist/loop.js CHANGED
@@ -42,6 +42,7 @@ const observe_1 = require("./observe");
42
42
  const diagnose_1 = require("./diagnose");
43
43
  // ClawAid backend API URL
44
44
  const CLAWAID_API = process.env.CLAWAID_API || 'https://api.clawaid.app';
45
+ // v3: No hardcoded reObserve. AI uses read steps to verify fixes itself.
45
46
  // Package version for telemetry
46
47
  const clawaidVersion = (() => {
47
48
  try {
@@ -51,10 +52,9 @@ const clawaidVersion = (() => {
51
52
  return 'unknown';
52
53
  }
53
54
  })();
54
- // Max steps before giving up
55
- const MAX_STEPS = 20;
56
- // Max consecutive fix attempts before giving up
57
- const MAX_FIX_ATTEMPTS = 4;
55
+ // v3: Give AI room to iterate. Read steps are cheap, fix steps need confirmation.
56
+ const MAX_STEPS = 30;
57
+ const MAX_FIX_ATTEMPTS = 8;
58
58
  class DoctorLoop {
59
59
  constructor(callback) {
60
60
  this.state = 'idle';
@@ -187,7 +187,9 @@ class DoctorLoop {
187
187
  catch (err) {
188
188
  if (err instanceof diagnose_1.PaywallError) {
189
189
  this.setState('paywall');
190
- this.emit({ type: 'paywall', data: { price: err.price, currency: err.currency, isChinese: err.isChinese, credits: err.credits, payMethod: err.payMethod } });
190
+ // v3: Include rule findings so paywall page can show what was found
191
+ const findings = this.observation?.ruleFindings || [];
192
+ this.emit({ type: 'paywall', data: { price: err.price, currency: err.currency, isChinese: err.isChinese, credits: err.credits, payMethod: err.payMethod, findings } });
191
193
  this.sendEvent('session_end', { reason: 'paywall', duration_ms: Date.now() - loopStartTime, steps_completed: stepsCompleted, outcome: 'paywall' });
192
194
  return;
193
195
  }
package/dist/loop.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"loop.js","sourceRoot":"","sources":["../src/loop.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,2CAA6B;AAC7B,uCAAyB;AACzB,iDAAyC;AACzC,uCAA+F;AAC/F,yCAAiE;AAEjE,0BAA0B;AAC1B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,yBAAyB,CAAC;AAEzE,gCAAgC;AAChC,MAAM,cAAc,GAAW,CAAC,GAAG,EAAE;IACnC,IAAI,CAAC;QAAC,OAAQ,OAAO,CAAC,iBAAiB,CAAyB,CAAC,OAAO,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,SAAS,CAAC;IAAC,CAAC;AACzG,CAAC,CAAC,EAAE,CAAC;AAEL,6BAA6B;AAC7B,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,gDAAgD;AAChD,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAkD3B,MAAa,UAAU;IAgBrB,YAAY,QAAuB;QAd3B,UAAK,GAAc,MAAM,CAAC;QAC1B,YAAO,GAAG,KAAK,CAAC;QAEhB,SAAI,GAAG,IAAI,CAAC;QACZ,oBAAe,GAAG,EAAE,CAAC;QAGrB,oBAAe,GAAG,EAAE,CAAC;QACrB,YAAO,GAAiB,EAAE,CAAC;QAC3B,gBAAW,GAAG,CAAC,CAAC;QAMtB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,QAAQ,CAAC,KAAa,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAY,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;IAE3C,SAAS,CAAC,KAAa,EAAE,IAA8B;QAC7D,MAAM,WAAW,GAAG,IAAA,gCAAqB,GAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,WAAW;YACX,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,KAAK;YACL,IAAI,EAAE,IAAI,IAAI,EAAE;YAChB,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACnC,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,WAAW,QAAQ,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,KAAK,WAAW,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW,CAAC;QAC7E,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG;YACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;YAClD,IAAI,EAAE,GAAG,CAAC,QAAQ;YAClB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;SAC3F,CAAC;QACF,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC3C,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC1B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChB,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,KAAa;QACtC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,WAAW,WAAW,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,KAAK,WAAW,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW,CAAC;QAC7E,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACvC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;gBACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;gBAClD,IAAI,EAAE,GAAG,CAAC,QAAQ;gBAClB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;aAC3F,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YACpB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YACjC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3D,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChB,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,KAAK,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;IAEvB,IAAI,CAAC,KAAgB,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChD,QAAQ,CAAC,CAAY,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACnG,QAAQ,CAAC,GAAW,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAE1F,KAAK,CAAC,KAAK;QACT,+CAA+C;QAC/C,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE;gBACJ,KAAK,EAAE,iBAAiB;gBACxB,YAAY,EAAE,iIAAiI;gBAC/I,SAAS,EAAE,IAAI;gBACf,eAAe,EAAE,IAAI;aACtB;SACF,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,IAAI,OAAO,CAA+C,CAAC,OAAO,EAAE,EAAE;YAC5F,IAAI,CAAC,kBAAkB,GAAG,EAAE,OAAO,EAAE,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,WAAW,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC;QAE3C,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;YAC3B,eAAe,EAAE,cAAc;YAC/B,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;YACvB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC;YAC9C,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;SAC7C,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,KAAa,EAAE,KAA+B;QAC9E,IAAI,KAAK,KAAK,iBAAiB,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC5B,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;gBACvF,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,KAAK,CAAC,WAAW,CAAC,SAAkB;QAClC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACvC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAClC,CAAC;IACH,CAAC;IAED,sDAAsD;IACtD,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAEO,KAAK,CAAC,OAAO;QACnB,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACjC,IAAI,cAAc,GAAG,CAAC,CAAC;QAEvB,4EAA4E;QAC5E,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC;QAE5C,MAAM,YAAY,GAAI,MAAkC,CAAC,cAAoC,CAAC;QAC9F,MAAM,GAAG,GAAG,YAAY;YACtB,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;QAE/C,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,IAAA,2BAAiB,EAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAEjC,4EAA4E;QAC5E,oEAAoE;QACpE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEzB,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC;YAC3D,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO;YAEzB,uBAAuB;YACvB,IAAI,IAAe,CAAC;YACpB,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC;YAC9C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,uBAAY,EAAE,CAAC;oBAChC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;oBACzB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBAC7J,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;oBACnJ,OAAO;gBACT,CAAC;gBACD,MAAM,GAAG,GAAI,GAAa,CAAC,OAAO,CAAC;gBACnC,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC5B,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;oBACzB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;oBACzC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;oBACnJ,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;gBACrD,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC/I,OAAO;YACT,CAAC;YAED,OAAO;YACP,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;gBACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;gBACrC,MAAM,OAAO,GAAI,IAAY,CAAC,OAAO,IAAI,IAAI,CAAC;gBAC9C,MAAM,GAAG,GAAI,IAAY,CAAC,GAAG,IAAI,IAAI,CAAC;gBACtC,MAAM,QAAQ,GAAI,IAAY,CAAC,QAAQ,IAAI,KAAK,CAAC;gBACjD,MAAM,QAAQ,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;gBACzH,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACvB,wCAAwC;oBACxC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;wBACf,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;oBAChD,CAAC;oBACD,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;oBACpE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;gBAChJ,CAAC;qBAAM,IAAI,QAAQ,EAAE,CAAC;oBACpB,4EAA4E;oBAC5E,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;oBAC1B,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;oBACrF,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;gBACnJ,CAAC;qBAAM,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACjD,iCAAiC;oBACjC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;oBACzB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;oBACpF,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;gBAClJ,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;oBAC3B,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;oBACrE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;gBACpJ,CAAC;gBACD,OAAO;YACT,CAAC;YAED,sBAAsB;YACtB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;YAEpE,qDAAqD;YACrD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBACxB,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,IAAI,CAAC,WAAW,GAAG,gBAAgB,EAAE,CAAC;oBACxC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;oBAC3B,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,gBAAgB,yBAAyB,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;oBAC5I,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;oBACvJ,OAAO;gBACT,CAAC;gBAED,+DAA+D;gBAC/D,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACzB,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAClC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBAClD,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC;gBACnD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAEzB,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE;oBAC7B,WAAW,EAAE,SAAS;oBACtB,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;oBAC7C,gBAAgB,EAAE,cAAc;iBACjC,CAAC,CAAC;gBAEH,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBAC/F,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;oBAC/G,SAAS;gBACX,CAAC;YACH,CAAC;YAED,cAAc,EAAE,CAAC;YACjB,sBAAsB;YACtB,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YACvD,oEAAoE;YACpE,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAG,IAAY,CAAC,QAAQ,EAAE,CAAC;YACvE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC7E,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QAC/F,CAAC;QAED,sBAAsB;QACtB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,sBAAsB,SAAS,oBAAoB,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC7I,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IACzJ,CAAC;IAEO,cAAc,CAAC,IAAe;QACpC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,cAAc,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;YACxC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,cAAc,CAAC,OAAe;QACpC,IAAI,CAAC,OAAO;YAAE,OAAO,cAAc,CAAC;QACpC,MAAM,MAAM,GAAG,OAAO,CAAE,MAAkC,CAAC,iBAAiB,CAAC,CAAC;QAC9E,IAAI,MAAM;YAAE,OAAO,iCAAiC,CAAC;QAErD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,GAAG,EAAE;gBAC3B,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,OAAO;gBACjB,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;gBACxD,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,mCAAmC,EAAE;aAC9F,CAAC,CAAC;YACH,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,GAA6D,CAAC;YACxE,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACzD,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC;QAC7E,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,OAAgB;QACrC,MAAM,WAAW,GAAG,IAAA,gCAAqB,GAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,YAAY,IAAI,EAAE,CAAC;QAEtD,4BAA4B;QAC5B,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClK,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC;YACtC,CAAC,CAAC,gCAAgC,WAAW,EAAE;YAC/C,CAAC,CAAC,iIAAiI,CAAC;QAEtI,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,WAAW,GAAG,4CAA4C,IAAI,CAAC,eAAe,MAAM,YAAY,kJAAkJ,CAAC;YACnP,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,WAAW,IAAI,iDAAiD,CAAC;YACnE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC;YAC7F,IAAI,aAAa,EAAE,CAAC;gBAClB,WAAW,GAAG,oBAAoB,YAAY,4FAA4F,CAAC;YAC7I,CAAC;iBAAM,CAAC;gBACN,WAAW,GAAG,mCAAmC,YAAY,6SAA6S,CAAC;YAC7W,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,WAAW;YACX,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACxF,WAAW;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;gBACZ,YAAY,EAAE,IAAI;gBAClB,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,SAAS;gBAClD,eAAe,EAAE,cAAc;gBAC/B,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;gBACvB,gBAAgB,EAAE,IAAI,CAAC,WAAW,EAAE,eAAe,IAAI,SAAS;aACjE,CAAC,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrE,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,WAAW,OAAO,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,KAAK,WAAW,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW,CAAC;QAC7E,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAEnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,OAAO,GAAG;gBACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;gBAClD,IAAI,EAAE,GAAG,CAAC,QAAQ;gBAClB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;aAC3F,CAAC;YAEF,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACvC,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;oBACjB,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAChC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;4BAC9B,MAAM,CAAC,IAAI,uBAAY,CAAC;gCACtB,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,IAAI,OAAO;gCACrC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,IAAI,KAAK;gCACzC,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,IAAI,KAAK;gCAC3C,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC;gCACnC,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS;6BACnC,CAAC,CAAC,CAAC;4BACJ,OAAO;wBACT,CAAC;wBACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;4BAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;4BAAC,OAAO;wBAAC,CAAC;wBAC9D,sDAAsD;wBACtD,IAAI,MAAM,CAAC,YAAY;4BAAE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC;wBAChE,OAAO,CAAC,MAAmB,CAAC,CAAC;oBAC/B,CAAC;oBAAC,MAAM,CAAC;wBACP,MAAM,CAAC,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC1D,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACxB,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3F,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChB,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kDAAkD;IAClD,KAAK,CAAC,QAAQ,CAAC,SAAkB;QAC/B,8DAA8D;QAC9D,sDAAsD;IACxD,CAAC;CACF;AAvXD,gCAuXC"}
1
+ {"version":3,"file":"loop.js","sourceRoot":"","sources":["../src/loop.ts"],"names":[],"mappings":"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"}
package/dist/observe.d.ts CHANGED
@@ -20,6 +20,9 @@ export interface ObservationResult {
20
20
  officialDoctorOutput: string;
21
21
  desktopAppVersion: string;
22
22
  desktopAppRunning: string;
23
+ devicesList: string;
24
+ sessionIntegrity: string;
25
+ versionGap: string;
23
26
  errors: string[];
24
27
  ruleFindings?: RuleFinding[];
25
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"observe.d.ts","sourceRoot":"","sources":["../src/observe.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAgC,MAAM,SAAS,CAAC;AAIpE,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;CAC9B;AA0HD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAOvE;AAED,wBAAsB,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA8E5F;AAoFD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,GAAG,MAAM,CAmEhE"}
1
+ {"version":3,"file":"observe.d.ts","sourceRoot":"","sources":["../src/observe.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAgC,MAAM,SAAS,CAAC;AAIpE,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAE1B,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;CAC9B;AAsID,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAWvE;AAED,wBAAsB,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAqH5F;AAgBD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,GAAG,MAAM,CA4EhE"}
package/dist/observe.js CHANGED
@@ -64,68 +64,79 @@ async function runCommand(cmd, timeout = 10000) {
64
64
  return `[command failed: ${err.message}]`;
65
65
  }
66
66
  }
67
- async function findRecentLog() {
68
- const homeDir = os.homedir();
69
- // Check config for custom log path
70
- let logDir = '/tmp/openclaw';
71
- let customLogPath = '';
67
+ // v3: Read tail of a single file. Returns empty string on error.
68
+ function readTail(filePath, lines) {
72
69
  try {
73
- const configPath = path.join(homeDir, '.openclaw', 'openclaw.json');
74
- if (fs.existsSync(configPath)) {
75
- const configContent = fs.readFileSync(configPath, 'utf-8');
76
- // Simple JSON5 parsing - look for logging.file
77
- const logFileMatch = configContent.match(/"?file"?\s*:\s*"([^"]+)"/);
78
- if (logFileMatch) {
79
- customLogPath = logFileMatch[1].replace('~', homeDir);
80
- }
81
- }
70
+ if (!fs.existsSync(filePath))
71
+ return '';
72
+ const content = fs.readFileSync(filePath, 'utf-8');
73
+ const allLines = content.split('\n');
74
+ return allLines.slice(-lines).join('\n');
82
75
  }
83
76
  catch {
84
- // ignore
77
+ return '';
85
78
  }
86
- // Try to find logs
87
- const possiblePaths = [
88
- customLogPath,
89
- '/tmp/openclaw',
90
- path.join(homeDir, '.openclaw', 'logs'),
91
- '/var/log/openclaw',
92
- ].filter(Boolean);
93
- for (const p of possiblePaths) {
94
- if (!p || !fs.existsSync(p))
95
- continue;
96
- try {
97
- const stat = fs.statSync(p);
98
- if (stat.isFile()) {
99
- // Direct file path
100
- const content = fs.readFileSync(p, 'utf-8');
101
- const lines = content.split('\n');
102
- const last200 = lines.slice(-200).join('\n');
103
- return { content: last200, logPath: p };
104
- }
105
- else if (stat.isDirectory()) {
106
- // Find most recent log file
107
- const files = fs.readdirSync(p)
108
- .filter(f => f.endsWith('.log'))
109
- .map(f => ({
110
- name: f,
111
- fullPath: path.join(p, f),
112
- mtime: fs.statSync(path.join(p, f)).mtime.getTime()
113
- }))
114
- .sort((a, b) => b.mtime - a.mtime);
115
- if (files.length > 0) {
116
- const latestLog = files[0].fullPath;
117
- const content = fs.readFileSync(latestLog, 'utf-8');
118
- const lines = content.split('\n');
119
- const last200 = lines.slice(-200).join('\n');
120
- return { content: last200, logPath: latestLog };
121
- }
122
- }
123
- }
124
- catch {
125
- continue;
126
- }
79
+ }
80
+ // v3: Find the most recent .log file in a directory
81
+ function findLatestLogInDir(dir) {
82
+ try {
83
+ if (!fs.existsSync(dir))
84
+ return null;
85
+ const stat = fs.statSync(dir);
86
+ if (stat.isFile())
87
+ return dir;
88
+ if (!stat.isDirectory())
89
+ return null;
90
+ const files = fs.readdirSync(dir)
91
+ .filter(f => f.endsWith('.log') && !f.includes('canvas-snapshot'))
92
+ .map(f => ({ fullPath: path.join(dir, f), mtime: fs.statSync(path.join(dir, f)).mtime.getTime() }))
93
+ .sort((a, b) => b.mtime - a.mtime);
94
+ return files.length > 0 ? files[0].fullPath : null;
95
+ }
96
+ catch {
97
+ return null;
127
98
  }
128
- return { content: '[no log files found]', logPath: '[none]' };
99
+ }
100
+ // v3: Collect tails from ALL known log sources, prioritized
101
+ function collectLogs() {
102
+ const homeDir = os.homedir();
103
+ const parts = [];
104
+ let primaryLogPath = '[none]';
105
+ // 1. Primary: /tmp/openclaw main log (50 lines) — most diagnostic value
106
+ const tmpDir = '/tmp/openclaw';
107
+ const mainLog = findLatestLogInDir(tmpDir);
108
+ if (mainLog) {
109
+ primaryLogPath = mainLog;
110
+ const tail = readTail(mainLog, 50);
111
+ if (tail)
112
+ parts.push(`### Main log: ${mainLog} (last 50 lines)\n${tail}`);
113
+ }
114
+ // 2. gateway.err.log (50 lines) — critical errors live here
115
+ const gwErrLog = path.join(homeDir, '.openclaw', 'logs', 'gateway.err.log');
116
+ const gwErrTail = readTail(gwErrLog, 50);
117
+ if (gwErrTail)
118
+ parts.push(`### Gateway errors: ${gwErrLog} (last 50 lines)\n${gwErrTail}`);
119
+ // 3. gateway.log (20 lines) — runtime events
120
+ const gwLog = path.join(homeDir, '.openclaw', 'logs', 'gateway.log');
121
+ const gwLogTail = readTail(gwLog, 20);
122
+ if (gwLogTail)
123
+ parts.push(`### Gateway log: ${gwLog} (last 20 lines)\n${gwLogTail}`);
124
+ // 4. node.err.log (20 lines) — node process errors
125
+ const nodeErrLog = path.join(homeDir, '.openclaw', 'logs', 'node.err.log');
126
+ const nodeErrTail = readTail(nodeErrLog, 20);
127
+ if (nodeErrTail)
128
+ parts.push(`### Node errors: ${nodeErrLog} (last 20 lines)\n${nodeErrTail}`);
129
+ // 5. node.log (20 lines) — node process log
130
+ const nodeLog = path.join(homeDir, '.openclaw', 'logs', 'node.log');
131
+ const nodeLogTail = readTail(nodeLog, 20);
132
+ if (nodeLogTail)
133
+ parts.push(`### Node log: ${nodeLog} (last 20 lines)\n${nodeLogTail}`);
134
+ if (parts.length === 0) {
135
+ return { sections: '[no log files found]', primaryLogPath };
136
+ }
137
+ // Tell AI it can get more
138
+ parts.push('### Note: These are tails only. Use `read` steps to get more lines if needed, e.g.: `tail -200 <path>`');
139
+ return { sections: parts.join('\n\n'), primaryLogPath };
129
140
  }
130
141
  async function readPlist() {
131
142
  const homeDir = os.homedir();
@@ -159,6 +170,13 @@ function loadMockObservation(scenario) {
159
170
  const scenarioPath = path.join(__dirname, '..', 'test-scenarios', scenario + '.json');
160
171
  const content = fs.readFileSync(scenarioPath, 'utf-8');
161
172
  const obs = JSON.parse(content);
173
+ // Backfill v3 fields for older mock scenarios
174
+ if (!obs.devicesList)
175
+ obs.devicesList = '(not collected)';
176
+ if (!obs.sessionIntegrity)
177
+ obs.sessionIntegrity = '(not collected)';
178
+ if (!obs.versionGap)
179
+ obs.versionGap = '(not collected)';
162
180
  // Run rules on mock data too
163
181
  obs.ruleFindings = (0, rules_1.runRules)(obs);
164
182
  return obs;
@@ -188,7 +206,7 @@ async function observe(onProgress) {
188
206
  progress('Reading launch agent plist...');
189
207
  const { content: plistContent, plistPath } = await readPlist();
190
208
  progress('Finding and reading logs...');
191
- const { content: recentLogs, logPath } = await findRecentLog();
209
+ const { sections: recentLogs, primaryLogPath: logPath } = collectLogs();
192
210
  progress('Checking Node.js version...');
193
211
  const nodeVersion = await runCommand('node -v 2>&1');
194
212
  const npmVersion = await runCommand('npm -v 2>&1');
@@ -199,6 +217,42 @@ async function observe(onProgress) {
199
217
  const desktopAppRunning = await runCommand('pgrep -f "OpenClaw.app" 2>&1');
200
218
  progress('Gathering system info...');
201
219
  const systemInfo = await runCommand('sw_vers 2>/dev/null || uname -a');
220
+ // v3: new data sources
221
+ progress('Checking device pairing...');
222
+ const devicesList = await runCommand('openclaw devices list 2>&1');
223
+ progress('Checking session integrity...');
224
+ const sessionDir = path.join(homeDir, '.openclaw', 'sessions');
225
+ let sessionIntegrity = 'no sessions directory';
226
+ try {
227
+ if (fs.existsSync(sessionDir)) {
228
+ const sessionFiles = fs.readdirSync(sessionDir).filter(f => f.endsWith('.json')).slice(-5);
229
+ if (sessionFiles.length === 0) {
230
+ sessionIntegrity = 'sessions directory exists but no .json files';
231
+ }
232
+ else {
233
+ const checks = [];
234
+ for (const sf of sessionFiles) {
235
+ try {
236
+ const content = fs.readFileSync(path.join(sessionDir, sf), 'utf-8');
237
+ // Quick integrity check: valid JSON + no orphaned messages
238
+ JSON.parse(content);
239
+ const hasOrphaned = /orphaned/i.test(content);
240
+ checks.push(`${sf}: ${hasOrphaned ? 'ORPHANED MESSAGES DETECTED' : 'ok'}`);
241
+ }
242
+ catch {
243
+ checks.push(`${sf}: PARSE ERROR`);
244
+ }
245
+ }
246
+ sessionIntegrity = checks.join('\n');
247
+ }
248
+ }
249
+ }
250
+ catch {
251
+ sessionIntegrity = 'error checking sessions';
252
+ }
253
+ progress('Checking version gap...');
254
+ const latestVersion = await runCommand('npm view openclaw version 2>&1');
255
+ const versionGap = `current: ${openclawVersion} | latest: ${latestVersion}`;
202
256
  const obs = {
203
257
  timestamp: new Date().toISOString(),
204
258
  openclawStatus,
@@ -220,6 +274,9 @@ async function observe(onProgress) {
220
274
  officialDoctorOutput,
221
275
  desktopAppVersion,
222
276
  desktopAppRunning,
277
+ devicesList,
278
+ sessionIntegrity,
279
+ versionGap,
223
280
  errors,
224
281
  };
225
282
  // Run deterministic rule checks
@@ -227,28 +284,6 @@ async function observe(onProgress) {
227
284
  obs.ruleFindings = (0, rules_1.runRules)(obs);
228
285
  return obs;
229
286
  }
230
- function extractLogEssentials(logs) {
231
- if (!logs)
232
- return '(no logs)';
233
- const lines = logs.split('\n');
234
- // Always keep last 20 lines (most recent context)
235
- const tail = lines.slice(-20);
236
- // Find error/warning lines from the rest
237
- const errorPattern = /error|fail|400|404|timeout|refused|crash|panic|EADDRINUSE|uncaught|unhandled|FATAL|died|exit code/i;
238
- const errorLines = lines.slice(0, -20).filter(l => errorPattern.test(l));
239
- // Keep up to 30 error lines
240
- const topErrors = errorLines.slice(-30);
241
- const parts = [];
242
- if (topErrors.length > 0) {
243
- parts.push(`### Error/warning lines (${topErrors.length} of ${errorLines.length} total)`);
244
- parts.push(topErrors.join('\n'));
245
- }
246
- parts.push(`### Last 20 lines`);
247
- parts.push(tail.join('\n'));
248
- const result = parts.join('\n');
249
- // Hard cap at 15KB
250
- return result.length > 15000 ? result.slice(0, 15000) + '\n...[truncated]' : result;
251
- }
252
287
  function truncate(text, maxChars) {
253
288
  if (text.length <= maxChars)
254
289
  return text;
@@ -259,52 +294,8 @@ function redactApiKeys(text) {
259
294
  return text.replace(/(sk-or-v1-[a-f0-9]{8})[a-f0-9]+/g, '$1...[REDACTED]')
260
295
  .replace(/(sk-[a-zA-Z0-9]{8})[a-zA-Z0-9]+/g, '$1...[REDACTED]');
261
296
  }
262
- function extractGatewayEssentials(statusJson) {
263
- // Try to parse and extract only diagnostically relevant fields
264
- try {
265
- const parsed = JSON.parse(statusJson);
266
- const essentials = {};
267
- // Keep only diagnostic fields, skip session data
268
- for (const key of ['runtime', 'gateway', 'version', 'pid', 'uptime', 'mode', 'status', 'error', 'errors', 'channels', 'channelSummary', 'heartbeat']) {
269
- if (key in parsed)
270
- essentials[key] = parsed[key];
271
- }
272
- return JSON.stringify(essentials, null, 2);
273
- }
274
- catch {
275
- return truncate(statusJson, 3000);
276
- }
277
- }
278
- function extractConfigEssentials(configContent) {
279
- // Try to parse and extract only diagnostically relevant fields (no sessions, no API keys in full)
280
- try {
281
- const parsed = JSON.parse(configContent);
282
- const essentials = {};
283
- // Keep structure but remove large/sensitive data
284
- for (const key of ['gateway', 'models', 'channels', 'tools', 'security', 'logging', 'agent']) {
285
- if (key in parsed)
286
- essentials[key] = parsed[key];
287
- }
288
- // Include provider names but redact keys
289
- if (parsed.providers) {
290
- const providers = {};
291
- for (const [name, val] of Object.entries(parsed.providers)) {
292
- if (val && typeof val === 'object') {
293
- const p = { ...val };
294
- if (p.apiKey && typeof p.apiKey === 'string') {
295
- p.apiKey = p.apiKey.slice(0, 12) + '...[REDACTED]';
296
- }
297
- providers[name] = p;
298
- }
299
- }
300
- essentials.providers = providers;
301
- }
302
- return JSON.stringify(essentials, null, 2);
303
- }
304
- catch {
305
- return truncate(redactApiKeys(configContent), 4000);
306
- }
307
- }
297
+ // extractGatewayEssentials and extractConfigEssentials removed in v3.
298
+ // AI gets raw data now (only API keys redacted). Don't filter for AI.
308
299
  function formatObservation(obs) {
309
300
  // Give AI ALL the data upfront. This is their evidence to work with.
310
301
  // No truncation — Sonnet 4.6 has 200K context, our data is <30K tokens.
@@ -348,25 +339,34 @@ System: ${obs.systemInfo}
348
339
  ${obs.gatewayStatus}
349
340
 
350
341
  ## Gateway status (JSON)
351
- ${extractGatewayEssentials(obs.gatewayStatusJson)}
342
+ ${redactApiKeys(obs.gatewayStatusJson)}
352
343
 
353
344
  ## Official openclaw doctor output
354
345
  ${obs.officialDoctorOutput}
355
346
 
356
347
  ## Config file (${obs.configPath})
357
- ${extractConfigEssentials(obs.configContent)}
348
+ ${redactApiKeys(obs.configContent)}
358
349
 
359
350
  ## LaunchAgent plist (${obs.plistPath})
360
351
  ${obs.plistContent}
361
352
 
353
+ ## Device pairing
354
+ ${obs.devicesList}
355
+
356
+ ## Session integrity
357
+ ${obs.sessionIntegrity}
358
+
359
+ ## Version gap
360
+ ${obs.versionGap}
361
+
362
362
  ## Port 18789 check
363
363
  ${obs.portCheck}
364
364
 
365
365
  ## OpenClaw processes
366
366
  ${obs.processCheck}
367
367
 
368
- ## Recent logs (${obs.logPath})
369
- ${extractLogEssentials(obs.recentLogs)}
368
+ ## Recent logs
369
+ ${obs.recentLogs}
370
370
  `.trim();
371
371
  }
372
372
  //# sourceMappingURL=observe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"observe.js","sourceRoot":"","sources":["../src/observe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observe.js","sourceRoot":"","sources":["../src/observe.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAudD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,WAAW,EAAE,CAgB9D;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,CAmClE"}
1
+ {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAsMD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,WAAW,EAAE,CAgB9D;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,CAmClE"}
package/dist/rules.js CHANGED
@@ -115,138 +115,8 @@ const portConflict = (obs) => {
115
115
  }
116
116
  return [];
117
117
  };
118
- // ─── High Rules ──────────────────────────────────────────────────────────────
119
- const zombieGateway = (obs) => {
120
- const status = obs.gatewayStatus || '';
121
- const lower = status.toLowerCase();
122
- const isRunning = lower.includes('running') && !lower.includes('not running');
123
- const probeFailed = lower.includes('rpc probe: failed') || lower.includes('timeout');
124
- if (isRunning && probeFailed) {
125
- return [{
126
- id: 'zombie-gateway',
127
- severity: 'high',
128
- title: 'Gateway process is alive but unresponsive (zombie)',
129
- description: 'The gateway process is listed as running, but the RPC health probe failed or timed out. ' +
130
- 'The gateway is in a zombie state and needs to be restarted.',
131
- fix: 'openclaw gateway restart',
132
- }];
133
- }
134
- return [];
135
- };
136
- const badModel = (obs) => {
137
- const logs = obs.recentLogs || '';
138
- // Only look at errors in the last 10 minutes of logs
139
- // Log lines typically start with a timestamp like "2026-03-09T15:30:05" or "15:30:05"
140
- const now = new Date();
141
- const tenMinAgo = new Date(now.getTime() - 10 * 60 * 1000);
142
- const lines = logs.split('\n');
143
- let recentErrors = 0;
144
- let recentSuccesses = 0;
145
- let lastErrorTime = 0;
146
- let lastSuccessTime = 0;
147
- let modelName = '';
148
- for (const line of lines) {
149
- // Try to extract timestamp from line
150
- const tsMatch = line.match(/(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2})|(\d{2}:\d{2}:\d{2})/);
151
- if (tsMatch) {
152
- let lineTime = null;
153
- if (tsMatch[1]) {
154
- lineTime = new Date(tsMatch[1]);
155
- }
156
- else if (tsMatch[2]) {
157
- // Time only — assume today
158
- const [h, m, s] = tsMatch[2].split(':').map(Number);
159
- lineTime = new Date(now);
160
- lineTime.setHours(h, m, s, 0);
161
- }
162
- if (lineTime && lineTime >= tenMinAgo) {
163
- if (/400\s*(Bad Request)?/i.test(line) || /model[\s_-]?not[\s_-]?found/i.test(line)) {
164
- recentErrors++;
165
- lastErrorTime = lineTime.getTime();
166
- // Try to extract model name
167
- const mm = line.match(/model[:\s]+["']?([a-zA-Z0-9\/_.-]+)["']?\s*(not found|is not available|does not exist)/i);
168
- if (mm)
169
- modelName = mm[1];
170
- }
171
- if (/200|completion|success|ok/i.test(line) && !/error|fail|400|404/i.test(line)) {
172
- recentSuccesses++;
173
- lastSuccessTime = lineTime.getTime();
174
- }
175
- }
176
- }
177
- }
178
- // If there are recent successes AFTER the last error, the issue is likely fixed
179
- if (lastSuccessTime > lastErrorTime && recentSuccesses > 0) {
180
- return [];
181
- }
182
- if (recentErrors >= 2) {
183
- return [{
184
- id: 'bad-model',
185
- severity: 'high',
186
- title: 'AI model errors detected' + (modelName ? ` (${modelName})` : ''),
187
- description: `Found ${recentErrors} "400 Bad Request" or "model not found" errors in the last 10 minutes. ` +
188
- (modelName
189
- ? `The model "${modelName}" may be unavailable, deprecated, or misspelled.`
190
- : 'The configured default model may be unavailable, deprecated, or misspelled.'),
191
- fix: 'openclaw models list --all # then: openclaw models set <working-model-id>',
192
- }];
193
- }
194
- return [];
195
- };
196
- const gatewayAuthConflict = (obs) => {
197
- const config = obs.configContent || '';
198
- // Check if config has gateway.auth section with both token and password but no mode
199
- // Look for the auth section pattern
200
- const authSectionMatch = config.match(/["']?auth["']?\s*:\s*\{([^}]*)\}/s);
201
- if (authSectionMatch) {
202
- const authSection = authSectionMatch[1];
203
- const hasToken = /["']?token["']?\s*:/i.test(authSection);
204
- const hasPassword = /["']?password["']?\s*:/i.test(authSection);
205
- const hasMode = /["']?mode["']?\s*:/i.test(authSection);
206
- if (hasToken && hasPassword && !hasMode) {
207
- return [{
208
- id: 'gateway-auth-conflict',
209
- severity: 'high',
210
- title: 'Gateway auth conflict: both token and password configured',
211
- description: 'The gateway auth section has both "token" and "password" but no explicit "mode". ' +
212
- 'In OpenClaw v3.7, this is a breaking change — the gateway won\'t know which auth method to use ' +
213
- 'and may reject all connections.',
214
- fix: 'openclaw config set gateway.auth.mode token',
215
- }];
216
- }
217
- }
218
- return [];
219
- };
220
- // ─── Functional-layer Rules (does the system actually WORK, not just "run") ──
221
- const recentAuthFailure = (obs) => {
222
- const logs = obs.recentLogs || '';
223
- const lines = logs.split('\n');
224
- // Look for 401/403 errors in recent logs
225
- const authErrorLines = lines.filter(l => /\b(401|403)\b/.test(l) &&
226
- /invalid.*(key|auth|token)|unauthorized|forbidden|authentication.*fail/i.test(l));
227
- if (authErrorLines.length >= 2) {
228
- // Try to extract provider name
229
- let provider = '';
230
- for (const line of authErrorLines) {
231
- const m = line.match(/(openrouter|anthropic|openai|google|moonshot|deepseek|siliconflow|groq|mistral|together)/i);
232
- if (m) {
233
- provider = m[1];
234
- break;
235
- }
236
- }
237
- return [{
238
- id: 'recent-auth-failure',
239
- severity: 'high',
240
- title: 'API authentication errors detected' + (provider ? ` (${provider})` : ''),
241
- description: `Found ${authErrorLines.length} authentication errors (401/403) in recent logs. ` +
242
- (provider
243
- ? `The "${provider}" provider's API key may be invalid, expired, or missing.`
244
- : 'One or more provider API keys may be invalid, expired, or missing.') +
245
- ' This means AI requests are failing right now.',
246
- }];
247
- }
248
- return [];
249
- };
118
+ // v3: Only 6 rules — high-confidence, deterministic checks.
119
+ // Everything uncertain goes to AI with full data. Rules are accelerators, not gatekeepers.
250
120
  const nodeTooOld = (obs) => {
251
121
  const nodeVer = obs.nodeVersion || '';
252
122
  const match = nodeVer.match(/v?(\d+)\./);
@@ -265,140 +135,33 @@ const nodeTooOld = (obs) => {
265
135
  }
266
136
  return [];
267
137
  };
268
- const providerMissingKey = (obs) => {
269
- const config = obs.configContent || '';
270
- const logs = obs.recentLogs || '';
271
- // Only flag if a provider has empty apiKey AND recent logs show failures for that provider
272
- const findings = [];
273
- // Find providers with empty or placeholder keys in config
274
- const providerPattern = /"(\w+)"\s*:\s*\{[^}]*"apiKey"\s*:\s*""\s*[^}]*\}/g;
275
- let m;
276
- while ((m = providerPattern.exec(config)) !== null) {
277
- const provName = m[1];
278
- // Check if this provider appears in recent error logs
279
- if (new RegExp(provName, 'i').test(logs) && /error|fail|401|403/i.test(logs)) {
280
- findings.push({
281
- id: 'provider-missing-key',
282
- severity: 'high',
283
- title: `Provider "${provName}" has empty API key`,
284
- description: `The "${provName}" provider is configured but has an empty API key, ` +
285
- 'and recent logs show errors from this provider. Requests to this provider will always fail.',
286
- });
287
- }
288
- }
289
- return findings;
290
- };
291
- const recentTimeoutLoop = (obs) => {
292
- const logs = obs.recentLogs || '';
293
- const lines = logs.split('\n');
294
- const timeoutLines = lines.filter(l => /timeout|ETIMEDOUT|ECONNREFUSED|ECONNRESET/i.test(l));
295
- if (timeoutLines.length >= 4) {
296
- return [{
297
- id: 'recent-timeout-loop',
298
- severity: 'high',
299
- title: 'Repeated connection timeouts detected',
300
- description: `Found ${timeoutLines.length} timeout/connection errors in recent logs. ` +
301
- 'This usually means a network issue, proxy misconfiguration, or the AI provider is unreachable. ' +
302
- 'The system may be in a backoff loop.',
303
- }];
304
- }
305
- return [];
306
- };
307
- const fallbackNotAvailable = (obs) => {
138
+ const tokenMismatch = (obs) => {
308
139
  const logs = obs.recentLogs || '';
309
- // Look for fallback failures in logs
310
- const fallbackErrors = logs.split('\n').filter(l => /fallback.*fail|fallback.*error|all.*fallback.*exhaust|no.*fallback.*available/i.test(l));
311
- if (fallbackErrors.length >= 2) {
140
+ if (/token_mismatch/i.test(logs)) {
312
141
  return [{
313
- id: 'fallback-not-available',
142
+ id: 'token-mismatch',
314
143
  severity: 'high',
315
- title: 'Fallback models are failing',
316
- description: 'Recent logs show multiple fallback model failures. When the primary model fails, ' +
317
- 'the fallback chain is also broken. The system has no working recovery path.',
144
+ title: 'WebUI token mismatch detected',
145
+ description: 'Logs show token_mismatch errors the WebUI is using a stale token. ' +
146
+ 'This often happens after a force restart.',
147
+ fix: 'openclaw gateway restart',
318
148
  }];
319
149
  }
320
150
  return [];
321
151
  };
322
- // ─── Warning Rules ───────────────────────────────────────────────────────────
323
- const versionMismatch = (obs) => {
324
- const desktopVer = obs.desktopAppVersion || '';
325
- const cliVer = obs.openclawVersion || '';
326
- // If desktop app is not installed (error reading plist, "does not exist", etc.), don't report
327
- if (/not exist|does not|error|command not found/i.test(desktopVer)) {
328
- return [];
329
- }
330
- // Extract version numbers (e.g., "3.7.1" or "2026.2.22")
331
- const desktopMatch = desktopVer.match(/(\d+)\.(\d+)\.?(\d*)/);
332
- const cliMatch = cliVer.match(/(\d+)\.(\d+)\.?(\d*)/);
333
- if (desktopMatch && cliMatch) {
334
- const dMajor = parseInt(desktopMatch[1], 10);
335
- const dMinor = parseInt(desktopMatch[2], 10);
336
- const cMajor = parseInt(cliMatch[1], 10);
337
- const cMinor = parseInt(cliMatch[2], 10);
338
- // Flag if major versions differ, or minor versions differ by 2+
339
- const majorDiff = Math.abs(dMajor - cMajor);
340
- const minorDiff = Math.abs(dMinor - cMinor);
341
- if (majorDiff > 0 || minorDiff >= 2) {
342
- return [{
343
- id: 'version-mismatch',
344
- severity: 'warning',
345
- title: 'Desktop app and CLI version mismatch',
346
- description: `Desktop app version (${desktopVer.trim()}) and CLI version (${cliVer.trim()}) differ significantly. ` +
347
- 'This can cause compatibility issues. Consider updating the older one.',
348
- }];
349
- }
350
- }
351
- return [];
352
- };
353
- const whatsappAllowlistEmpty = (obs) => {
354
- const config = obs.configContent || '';
355
- // Only check if WhatsApp is actually configured as a channel
356
- // Skip if the channel doesn't exist or is disabled
357
- const hasWhatsappChannel = /["']?whatsapp["']?\s*:\s*\{/i.test(config);
358
- if (!hasWhatsappChannel)
359
- return [];
360
- // Check if disabled
361
- const whatsappSection = config.match(/["']?whatsapp["']?\s*:\s*\{([^}]*)\}/s);
362
- if (whatsappSection && /["']?enabled["']?\s*:\s*false/i.test(whatsappSection[1]))
363
- return [];
364
- // Check for groupPolicy: "allowlist"
365
- const hasAllowlist = /["']?groupPolicy["']?\s*:\s*["']allowlist["']/i.test(config);
366
- if (hasAllowlist) {
367
- // Check if groupAllowFrom is empty/missing
368
- const allowFromMatch = config.match(/["']?groupAllowFrom["']?\s*:\s*\[([^\]]*)\]/);
369
- if (!allowFromMatch || allowFromMatch[1].trim() === '') {
370
- return [{
371
- id: 'whatsapp-allowlist-empty',
372
- severity: 'warning',
373
- title: 'WhatsApp groupPolicy is "allowlist" but no groups are allowed',
374
- description: 'The WhatsApp channel has groupPolicy set to "allowlist", but groupAllowFrom is empty or missing. ' +
375
- 'This means the bot will ignore ALL group messages. If you want to receive group messages, ' +
376
- 'add group IDs to groupAllowFrom, or change groupPolicy to "all".',
377
- }];
378
- }
379
- }
380
- return [];
381
- };
382
152
  // ─── Rule Engine ─────────────────────────────────────────────────────────────
383
153
  const ALL_RULES = [
384
- // Critical
385
- toolsProfileMessaging,
386
- proxyInPlist,
387
- configParseError,
388
- gatewayNotRunning,
389
- portConflict,
390
- nodeTooOld,
391
- // High functional layer (does it actually WORK?)
392
- zombieGateway,
393
- badModel,
394
- gatewayAuthConflict,
395
- recentAuthFailure,
396
- providerMissingKey,
397
- recentTimeoutLoop,
398
- fallbackNotAvailable,
399
- // Warning
400
- versionMismatch,
401
- whatsappAllowlistEmpty,
154
+ // 6 deterministic rules — 100% confidence, no guessing
155
+ gatewayNotRunning, // process not running → start it
156
+ portConflict, // EADDRINUSE → kill conflicting process
157
+ configParseError, // JSON parse error → fix config
158
+ nodeTooOld, // Node < 18 → upgrade
159
+ proxyInPlist, // proxy in plist → remove it (may be intentional, but flag it)
160
+ tokenMismatch, // token_mismatch in logs → restart gateway
161
+ // Removed: toolsProfileMessaging, zombieGateway, badModel, gatewayAuthConflict,
162
+ // recentAuthFailure, providerMissingKey, recentTimeoutLoop, fallbackNotAvailable,
163
+ // versionMismatch, whatsappAllowlistEmpty
164
+ // → AI has full data and can detect these better than regex pattern matching
402
165
  ];
403
166
  const SEVERITY_ORDER = {
404
167
  critical: 0,
package/dist/rules.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"rules.js","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":";;AA8MA,4BAgBC;AAED,gDAmCC;AAvPD,gFAAgF;AAEhF,MAAM,qBAAqB,GAAS,CAAC,GAAG,EAAE,EAAE;IAC1C,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;IACvC,sFAAsF;IACtF,kCAAkC;IAClC,IAAI,4CAA4C,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9D,qEAAqE;QACrE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,4CAA4C,CAAC,CAAC;QAC/E,6EAA6E;QAC7E,6EAA6E;QAC7E,IAAI,QAAQ,KAAK,CAAC,CAAC,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC;oBACN,EAAE,EAAE,yBAAyB;oBAC7B,QAAQ,EAAE,UAAU;oBACpB,KAAK,EAAE,yCAAyC;oBAChD,WAAW,EACT,iFAAiF;wBACjF,+GAA+G;oBACjH,GAAG,EAAE,oEAAoE;iBAC1E,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,YAAY,GAAS,CAAC,GAAG,EAAE,EAAE;IACjC,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvD,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC;gBACN,EAAE,EAAE,gBAAgB;gBACpB,QAAQ,EAAE,UAAU;gBACpB,KAAK,EAAE,sDAAsD;gBAC7D,WAAW,EACT,kFAAkF;oBAClF,oGAAoG;oBACpG,iGAAiG;oBACjG,mCAAmC;gBACrC,GAAG,EACD,qIAAqI;oBACrI,sIAAsI;oBACtI,0BAA0B;aAC7B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAS,CAAC,GAAG,EAAE,EAAE;IACrC,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;IACvC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;IAElC,0BAA0B;IAC1B,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,0DAA0D,EAAE,CAAC;QACrF,OAAO,CAAC;gBACN,EAAE,EAAE,oBAAoB;gBACxB,QAAQ,EAAE,UAAU;gBACpB,KAAK,EAAE,8BAA8B;gBACrC,WAAW,EACT,wFAAwF;oBACxF,kDAAkD;gBACpD,GAAG,EAAE,uBAAuB;aAC7B,CAAC,CAAC;IACL,CAAC;IAED,6BAA6B;IAC7B,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACrD,OAAO,CAAC;gBACN,EAAE,EAAE,oBAAoB;gBACxB,QAAQ,EAAE,UAAU;gBACpB,KAAK,EAAE,2CAA2C;gBAClD,WAAW,EACT,0EAA0E;oBAC1E,+DAA+D;gBACjE,GAAG,EAAE,wFAAwF;aAC9F,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAS,CAAC,GAAG,EAAE,EAAE;IACtC,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAEnC,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/D,OAAO,CAAC;gBACN,EAAE,EAAE,qBAAqB;gBACzB,QAAQ,EAAE,UAAU;gBACpB,KAAK,EAAE,wBAAwB;gBAC/B,WAAW,EACT,4FAA4F;gBAC9F,GAAG,EAAE,wBAAwB;aAC9B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,YAAY,GAAS,CAAC,GAAG,EAAE,EAAE;IACjC,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;IACvC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAEtC,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,oCAAoC;QACpC,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;QACtC,wDAAwD;QACxD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;QACtF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACtB,OAAO,GAAG,0BAA0B,KAAK,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;YAClE,CAAC;QACH,CAAC;QAED,OAAO,CAAC;gBACN,EAAE,EAAE,eAAe;gBACnB,QAAQ,EAAE,UAAU;gBACpB,KAAK,EAAE,8BAA8B;gBACrC,WAAW,EACT,0CAA0C,OAAO,IAAI;oBACrD,qEAAqE;gBACvE,GAAG,EAAE,OAAO;oBACV,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,iDAAiD;oBACjG,CAAC,CAAC,6EAA6E;aAClF,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,4DAA4D;AAC5D,2FAA2F;AAE3F,MAAM,UAAU,GAAS,CAAC,GAAG,EAAE,EAAE;IAC/B,MAAM,OAAO,GAAG,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;IACtC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACzC,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrC,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;YACf,OAAO,CAAC;oBACN,EAAE,EAAE,cAAc;oBAClB,QAAQ,EAAE,UAAU;oBACpB,KAAK,EAAE,WAAW,OAAO,CAAC,IAAI,EAAE,iCAAiC;oBACjE,WAAW,EACT,gEAAgE,OAAO,CAAC,IAAI,EAAE,IAAI;wBAClF,yEAAyE;oBAC3E,GAAG,EAAE,6FAA6F;iBACnG,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,aAAa,GAAS,CAAC,GAAG,EAAE,EAAE;IAClC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;IAClC,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC;gBACN,EAAE,EAAE,gBAAgB;gBACpB,QAAQ,EAAE,MAAM;gBAChB,KAAK,EAAE,+BAA+B;gBACtC,WAAW,EACT,sEAAsE;oBACtE,2CAA2C;gBAC7C,GAAG,EAAE,0BAA0B;aAChC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,gFAAgF;AAEhF,MAAM,SAAS,GAAW;IACxB,uDAAuD;IACvD,iBAAiB,EAAM,iCAAiC;IACxD,YAAY,EAAW,wCAAwC;IAC/D,gBAAgB,EAAO,gCAAgC;IACvD,UAAU,EAAa,sBAAsB;IAC7C,YAAY,EAAW,+DAA+D;IACtF,aAAa,EAAU,2CAA2C;IAClE,gFAAgF;IAChF,kFAAkF;IAClF,0CAA0C;IAC1C,6EAA6E;CAC9E,CAAC;AAEF,MAAM,cAAc,GAA2B;IAC7C,QAAQ,EAAE,CAAC;IACX,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,CAAC;IACV,IAAI,EAAE,CAAC;CACR,CAAC;AAEF,SAAgB,QAAQ,CAAC,GAAsB;IAC7C,MAAM,QAAQ,GAAkB,EAAE,CAAC;IAEnC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,sDAAsD;QACxD,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAEjG,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAgB,kBAAkB,CAAC,QAAuB;IACxD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO;;;kBAGO,CAAC;IACjB,CAAC;IAED,MAAM,aAAa,GAA2B;QAC5C,QAAQ,EAAE,cAAc;QACxB,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,MAAM;QACf,IAAI,EAAE,KAAK;KACZ,CAAC;IAEF,MAAM,KAAK,GAAa;QACtB,+EAA+E;QAC/E,EAAE;KACH,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACjE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;YACV,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;IACvF,KAAK,CAAC,IAAI,CAAC,mFAAmF,CAAC,CAAC;IAChG,KAAK,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;IAC9F,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAEhC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clawaid",
3
- "version": "1.1.21",
3
+ "version": "1.1.23",
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
@@ -1190,10 +1190,13 @@
1190
1190
  // ═══ Paywall ══════════════════════════════════════════════════════════════
1191
1191
  function showPaywall(data) {
1192
1192
  var STRIPE_URL = 'https://buy.stripe.com/8x26oJ6WrdNnd9T4hI0oM01';
1193
- var priceStr = data.price || '$1.99';
1194
1193
  var credits = data.credits || 5;
1194
+ // Chinese users often use proxies (for OpenClaw API access), so CF-IPCountry
1195
+ // may incorrectly report US/JP/etc. Use frontend language detection as override.
1195
1196
  var payMethod = data.payMethod || (data.isChinese ? 'xunhupay' : 'stripe');
1197
+ if (isZh && payMethod !== 'xunhupay') payMethod = 'xunhupay';
1196
1198
  var isCN = payMethod === 'xunhupay';
1199
+ var priceStr = isCN ? '¥9.9' : (data.price || '$1.99');
1197
1200
 
1198
1201
  var buyBtnHtml;
1199
1202
  if (isCN) {
@@ -1207,6 +1210,23 @@
1207
1210
  buyBtnHtml = '<a href="'+STRIPE_URL+'" target="_blank" class="btn btn-primary btn-full" id="pw-buy" style="text-decoration:none;margin-bottom:0;">' + T.pwBuyNow + '</a>';
1208
1211
  }
1209
1212
 
1213
+ // v3: Show findings from rule engine so user sees value
1214
+ var findingsHtml = '';
1215
+ var findings = data.findings || [];
1216
+ if (findings.length > 0) {
1217
+ var items = findings.map(function(f) {
1218
+ return '<div style="display:flex;align-items:flex-start;gap:8px;padding:8px 0;border-bottom:1px solid var(--border);">'
1219
+ + '<span style="flex-shrink:0;">⚠️</span>'
1220
+ + '<div><div style="font-weight:600;font-size:13px;">' + esc(f.title) + '</div>'
1221
+ + '<div style="font-size:12px;color:var(--text-muted);margin-top:2px;">' + esc(f.description).slice(0,120) + '</div></div>'
1222
+ + '</div>';
1223
+ }).join('');
1224
+ findingsHtml = '<div style="background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:12px;margin-bottom:12px;">'
1225
+ + '<div style="font-weight:700;font-size:14px;margin-bottom:8px;">'
1226
+ + (isZh ? '🔍 扫描发现以下问题:' : '🔍 Issues found during scan:')
1227
+ + '</div>' + items + '</div>';
1228
+ }
1229
+
1210
1230
  var div = document.createElement('div');
1211
1231
  div.className = 'card pw-card';
1212
1232
  div.innerHTML = '<div class="pw-hd">'
@@ -1214,6 +1234,7 @@
1214
1234
  + '<div class="pw-title">' + T.pwFreeUsed + '</div>'
1215
1235
  + '<div class="pw-sub">' + T.pwGetPack + '</div>'
1216
1236
  + '</div>'
1237
+ + findingsHtml
1217
1238
  + '<div class="pw-price-box">'
1218
1239
  + '<div class="pw-price" translate="no">' + esc(priceStr) + '</div>'
1219
1240
  + '<div class="pw-price-sub">' + T.pwFixesPer(credits) + '</div>'
@@ -1523,6 +1544,7 @@
1523
1544
  break;
1524
1545
 
1525
1546
  case 'state_change':
1547
+ _currentState = data.state;
1526
1548
  document.body.dataset.state = data.state;
1527
1549
  if (data.state === 'observing' && !scanBlockAdded) {
1528
1550
  addScanBlock();
@@ -1608,13 +1630,14 @@
1608
1630
  var _scanStartTime = null;
1609
1631
  var _currentStep = 0;
1610
1632
  var _confirmShownAt = 0;
1633
+ var _currentState = 'idle';
1611
1634
  var _sessionEnded = false;
1612
1635
 
1613
1636
  window.addEventListener('beforeunload', function() {
1614
1637
  if (!_scanStartTime || _sessionEnded) return;
1615
1638
  navigator.sendBeacon('/api/event', JSON.stringify({
1616
1639
  event: 'session_end',
1617
- data: { reason: 'page_closed', duration_ms: Date.now() - _scanStartTime, steps_completed: _currentStep },
1640
+ data: { reason: 'page_closed', duration_ms: Date.now() - _scanStartTime, steps_completed: _currentStep, closed_at_state: _currentState || 'unknown' },
1618
1641
  ts: Date.now()
1619
1642
  }));
1620
1643
  });