@extenshi/mcp 0.2.0 → 0.3.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.
package/README.md CHANGED
@@ -37,18 +37,37 @@ enforces it too.
37
37
  | Tool | What it does | Cost |
38
38
  | --- | --- | --- |
39
39
  | `search_extensions` | Hybrid search across Chrome/Firefox/Edge with filters (store, category, pricing, rating, risk, permissions) | 1 read |
40
- | `get_extension` | Full catalog detail for one extension by numeric catalog ID | 1 read |
40
+ | `get_extension` | Full catalog detail for one extension by numeric catalog ID **or** by its store id (see below) | 1 read |
41
41
  | `get_reviews` | Paginated Firefox/Edge user reviews (rating, short excerpt, date, language) + a store-level aggregate (rating, count, reviews link) — Chrome Web Store review rows excluded (aggregate is the only public content for Chrome); reviewer identity omitted; sort by recent or rating | 1 read |
42
- | `get_security` | Risk score + finding counts + top grouped findings (reads existing scans) | 1 read |
42
+ | `get_security` | Risk score + finding counts + top grouped findings (reads existing scans) | 3 reads |
43
43
  | `market_overview` | Catalog-wide market intelligence with no args (totals, store split, category tree, and the extended breakdown — MV2/MV3, sensitive permissions, risk tiers, trader status, recency, reviews); pass a `query` to scope facets to a search | 1 read |
44
+ | `get_credit_balance` | Remaining credits across every pool (read / scan / icon / inventory), so an agent can size a batch before running it instead of hitting a mid-batch limit | Free |
44
45
  | `search_docs` | Search the Extenshi docs + `@extenshi/cli` reference so the assistant can quote exact commands | Free (no key) |
45
46
  | `generate_icon_workflow` | Icon design requirements + the local agent-draws-SVG → `extenshi icon preview` → export workflow | Free (no key) |
46
- | `scan_extension` | Pre-publish security scan of a local artifact (.zip/.crx/.xpi), with live progress | 1 monthly-quota scan |
47
+ | `scan_extension` | Pre-publish security scan of a local artifact (.zip/.crx/.xpi), with live progress | 1 scan |
47
48
  | `publish_extension` | Publish to Chrome/Firefox/Edge with your own store credentials (fully local) | Free |
48
49
 
49
- Every plan includes monthly reads and scans — the Free plan has 25 reads and 5 scans per
50
- month, paid plans go up to 10,000 reads and 1,000 scans. Quotas reset on the 1st (UTC).
51
- Manage your plan at https://dojo.extenshi.io/billing.
50
+ ### Identifying an extension by its store id
51
+
52
+ `get_extension`, `get_reviews`, `get_security` and `scan_extension` accept **either** the numeric
53
+ catalog `extension_id` **or** the extension's `store_id` — the id straight from the store URL, which
54
+ is usually the only precise identifier you have:
55
+
56
+ ```jsonc
57
+ { "store_id": "cjpalhdlnbpafiamejdnhcphjbkeiagm", "store": "CHROME" } // Chrome/Edge: `store` required
58
+ { "store_id": "dark-reader" } // Firefox: unambiguous
59
+ ```
60
+
61
+ `store` is required for a Chrome/Edge id because both stores use the identical 32-character format;
62
+ Firefox ids (slug, GUID, or email-style) route automatically. Resolving a store id is free — only the
63
+ read that follows costs a credit.
64
+
65
+ ### Credits
66
+
67
+ Every account gets a one-time free allowance of 10 reads and 3 scans (no card required). Beyond
68
+ that, buy prepaid credit packs (up to 10,000 reads and 1,000 scans per pack) that never expire.
69
+ Call `get_credit_balance` (free) to check what's left before running a large batch.
70
+ Manage credits at https://dojo.extenshi.io/billing.
52
71
 
53
72
  ## Configuration
54
73
 
package/dist/bff.d.ts CHANGED
@@ -12,6 +12,28 @@
12
12
  * (no anonymous data access) — sending the key now is forward-compatible and
13
13
  * needs no client change when enforcement lands.
14
14
  */
15
+ /** One credit pool as reported by `getApiCallerBalance`. */
16
+ export interface CreditPool {
17
+ /** Total calls this pool can still fund (free grant + purchased) — the single number that gates a call. */
18
+ remaining: number;
19
+ /** The slice of `remaining` still coming from the one-time signup grant (always ≤ remaining). */
20
+ freeRemaining: number;
21
+ freeGranted: number;
22
+ freeUsed: number;
23
+ }
24
+ /** Read/scan/icon/inventory balances for the `ek_` key or remote-MCP identity. */
25
+ export interface ApiCallerBalance {
26
+ read: CreditPool;
27
+ scan: CreditPool;
28
+ icon: CreditPool;
29
+ inventory: CreditPool;
30
+ billingUrl: string;
31
+ }
32
+ /** A resolved store→catalog reference (`resolveExtensionRef`). */
33
+ export interface ExtensionRef {
34
+ id: number;
35
+ store: 'CHROME' | 'FIREFOX' | 'EDGE';
36
+ }
15
37
  export interface Bff {
16
38
  searchExtensions(input: Record<string, unknown>): Promise<unknown>;
17
39
  getExtensionById(id: number): Promise<unknown>;
@@ -25,6 +47,17 @@ export interface Bff {
25
47
  getExtendedFilterFacets(): Promise<unknown>;
26
48
  /** Catalog-wide category tree with per-category counts. */
27
49
  getCategoryTree(): Promise<unknown>;
50
+ /** This caller's credit balances across all pools. FREE — never spends a read credit. */
51
+ getApiCallerBalance(): Promise<ApiCallerBalance>;
52
+ /**
53
+ * Resolve a public STORE extension id (from the store URL) to the numeric
54
+ * catalog id the read tools take. FREE — the read that follows is what's
55
+ * metered. Returns null when no catalog listing exists for it yet.
56
+ */
57
+ resolveExtensionRef(input: {
58
+ storeId: string;
59
+ store?: 'CHROME' | 'FIREFOX' | 'EDGE';
60
+ }): Promise<ExtensionRef | null>;
28
61
  }
29
62
  /** Build a BFF client from a static `ek_…` key (stdio path). */
30
63
  export declare function makeBff(bffUrl: string, apiKey: string): Bff;
package/dist/bff.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bff.d.ts","sourceRoot":"","sources":["../src/bff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,MAAM,WAAW,GAAG;IACnB,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAClE,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC9C,2EAA2E;IAC3E,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC5D,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACtD,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACrD,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACjE,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IAC5B,sGAAsG;IACtG,uBAAuB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IAC3C,2DAA2D;IAC3D,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;CACnC;AAED,gEAAgE;AAChE,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,GAAG,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,GAAG,CAuB/F"}
1
+ {"version":3,"file":"bff.d.ts","sourceRoot":"","sources":["../src/bff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,4DAA4D;AAC5D,MAAM,WAAW,UAAU;IAC1B,2GAA2G;IAC3G,SAAS,EAAE,MAAM,CAAA;IACjB,iGAAiG;IACjG,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;CAChB;AAED,kFAAkF;AAClF,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,UAAU,CAAA;IAChB,IAAI,EAAE,UAAU,CAAA;IAChB,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,EAAE,UAAU,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;CAClB;AAED,kEAAkE;AAClE,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAA;CACpC;AAED,MAAM,WAAW,GAAG;IACnB,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAClE,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC9C,2EAA2E;IAC3E,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC5D,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACtD,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACrD,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACjE,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IAC5B,sGAAsG;IACtG,uBAAuB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IAC3C,2DAA2D;IAC3D,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IACnC,yFAAyF;IACzF,mBAAmB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAChD;;;;OAIG;IACH,mBAAmB,CAAC,KAAK,EAAE;QAC1B,OAAO,EAAE,MAAM,CAAA;QACf,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAA;KACrC,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAA;CAChC;AAED,gEAAgE;AAChE,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,GAAG,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,GAAG,CAyB/F"}
package/dist/bff.js CHANGED
@@ -44,6 +44,8 @@ export function makeBffWithAuth(bffUrl, authHeader) {
44
44
  getStats: () => client.catalog.getStats.query(),
45
45
  getExtendedFilterFacets: () => client.catalog.getExtendedFilterFacets.query(),
46
46
  getCategoryTree: () => client.catalog.getCategoryTree.query(),
47
+ getApiCallerBalance: () => client.cli.getApiCallerBalance.query(),
48
+ resolveExtensionRef: (input) => client.catalog.resolveExtensionRef.query(input),
47
49
  };
48
50
  }
49
51
  //# sourceMappingURL=bff.js.map
package/dist/bff.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bff.js","sourceRoot":"","sources":["../src/bff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAoB9D,gEAAgE;AAChE,MAAM,UAAU,OAAO,CAAC,MAAc,EAAE,MAAc;IACrD,OAAO,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,MAAM,EAAE,CAAC,CAAA;AACzD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,UAA0C;IACzF,MAAM,MAAM,GAAkB,gBAAgB,CAAC;QAC9C,KAAK,EAAE;YACN,aAAa,CAAC;gBACb,GAAG,EAAE,GAAG,MAAM,WAAW;gBACzB,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,UAAU,EAAE,EAAE,CAAC;aAC5D,CAAC;SACF;KACD,CAAC,CAAA;IAEF,uEAAuE;IACvE,mFAAmF;IACnF,OAAO;QACN,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC;QACzE,gBAAgB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;QACvE,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC;QACzE,eAAe,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;QACxF,cAAc,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;QACtF,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC;QACvE,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE;QAC/C,uBAAuB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,KAAK,EAAE;QAC7E,eAAe,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE;KAC7D,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"bff.js","sourceRoot":"","sources":["../src/bff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAuD9D,gEAAgE;AAChE,MAAM,UAAU,OAAO,CAAC,MAAc,EAAE,MAAc;IACrD,OAAO,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,MAAM,EAAE,CAAC,CAAA;AACzD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,UAA0C;IACzF,MAAM,MAAM,GAAkB,gBAAgB,CAAC;QAC9C,KAAK,EAAE;YACN,aAAa,CAAC;gBACb,GAAG,EAAE,GAAG,MAAM,WAAW;gBACzB,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,UAAU,EAAE,EAAE,CAAC;aAC5D,CAAC;SACF;KACD,CAAC,CAAA;IAEF,uEAAuE;IACvE,mFAAmF;IACnF,OAAO;QACN,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC;QACzE,gBAAgB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;QACvE,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC;QACzE,eAAe,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;QACxF,cAAc,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;QACtF,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC;QACvE,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE;QAC/C,uBAAuB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,KAAK,EAAE;QAC7E,eAAe,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE;QAC7D,mBAAmB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,EAAE;QACjE,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC;KAC/E,CAAA;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,kBAAkB,EAA6C,MAAM,SAAS,CAAA;AAE1G,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAiBnC,eAAO,MAAM,QAAQ,sCAAsC,CAAA;AAC3D,eAAO,MAAM,WAAW,oCAAoC,CAAA;AAC5D,eAAO,MAAM,YAAY,qCAAqC,CAAA;AAE9D,eAAO,MAAM,mBAAmB,QAWS,CAAA;AAEzC,eAAO,MAAM,WAAW,aAAa,CAAA;AAErC,eAAO,MAAM,mBAAmB,QAUe,CAAA;AAI/C,uDAAuD;AACvD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;AAE7D;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC/B,OAAO,CAAC,EAAE,kBAAkB,CAAA;CAC5B;AAED,MAAM,WAAW,QAAQ;IACxB,kEAAkE;IAClE,GAAG,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IACzD,+BAA+B;IAC/B,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC,CAAA;IACrC;;;;;OAKG;IACH,MAAM,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,GAAG,CAAA;IACrC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,MAAM,CAAA;IAChD;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,MAAM,GAAG,SAAS,CAAA;IACxD,sFAAsF;IACtF,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAiFD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,GAAE,MAA2B,GAAG,OAAO,CAGxF;AAqHD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,CAyenE"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,kBAAkB,EAA6C,MAAM,SAAS,CAAA;AAE1G,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAiBnC,eAAO,MAAM,QAAQ,sCAAsC,CAAA;AAC3D,eAAO,MAAM,WAAW,oCAAoC,CAAA;AAC5D,eAAO,MAAM,YAAY,qCAAqC,CAAA;AAE9D,eAAO,MAAM,mBAAmB,QAWS,CAAA;AAEzC,eAAO,MAAM,WAAW,aAAa,CAAA;AAErC,eAAO,MAAM,mBAAmB,QAce,CAAA;AAI/C,uDAAuD;AACvD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;AAE7D;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC/B,OAAO,CAAC,EAAE,kBAAkB,CAAA;CAC5B;AAED,MAAM,WAAW,QAAQ;IACxB,kEAAkE;IAClE,GAAG,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IACzD,+BAA+B;IAC/B,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC,CAAA;IACrC;;;;;OAKG;IACH,MAAM,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,GAAG,CAAA;IACrC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,MAAM,CAAA;IAChD;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,MAAM,GAAG,SAAS,CAAA;IACxD,sFAAsF;IACtF,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAiFD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,GAAE,MAA2B,GAAG,OAAO,CAGxF;AAiND;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,CAkhBnE"}
package/dist/tools.js CHANGED
@@ -46,7 +46,7 @@ export const BILLING_PAGE = 'https://dojo.extenshi.io/billing';
46
46
  export const MISSING_KEY_MESSAGE = "This tool needs an Extenshi API key, and you don't have one set up yet — " +
47
47
  "here's how to get going.\n\n" +
48
48
  'Getting started is free: no credit card required. Every account includes a ' +
49
- 'free monthly allowance (25 catalog reads + 5 scans), so you can explore the ' +
49
+ 'one-time free allowance (10 catalog reads + 3 scans), so you can explore the ' +
50
50
  'catalog and run scans before paying for anything.\n\n' +
51
51
  `1. Create a free account at ${SIGNUP_PAGE}\n` +
52
52
  `2. Grab a key at ${KEY_PAGE}\n` +
@@ -61,9 +61,13 @@ export const SERVER_INSTRUCTIONS = 'Extenshi catalog tools for extension develop
61
61
  'key) to consult the live product documentation and the @extenshi/cli command reference — ' +
62
62
  'prefer quoting exact CLI commands and flags from the docs over guessing. Use ' +
63
63
  'generate_icon_workflow (free, no key) when the developer needs an extension icon — it ' +
64
- 'returns the local agent-draws-SVG → CLI browser-panel preview → export workflow. The catalog and ' +
65
- `scan tools require an Extenshi API key (${KEY_PAGE}). Every account gets a free monthly ` +
66
- 'allowance 25 reads and 5 scans per month; beyond it, buy prepaid credit packs (scans ' +
64
+ 'returns the local agent-draws-SVG → CLI browser-panel preview → export workflow. Call ' +
65
+ 'get_credit_balance (free it never spends a credit) to check remaining read/scan credits ' +
66
+ 'before a large batch instead of guessing whether it is safe. In get_extension / get_reviews / ' +
67
+ 'get_security you can identify an extension either by its numeric catalog id or by its store id ' +
68
+ '(the id in the store URL; add the store for a Chrome/Edge id). The catalog and ' +
69
+ `scan tools require an Extenshi API key (${KEY_PAGE}). Every account gets a one-time free ` +
70
+ 'allowance — 10 reads and 3 scans; beyond it, buy prepaid credit packs (scans ' +
67
71
  `and reads, never expire) at ${BILLING_PAGE}.`;
68
72
  // ── Internal helpers (ported from index.ts, now deps-parametrized) ───────────
69
73
  /**
@@ -117,7 +121,7 @@ function scanErrorMessage(err, missingKeyMessage) {
117
121
  case 401:
118
122
  return `Authentication failed: ${err.message}\n\n${missingKeyMessage}`;
119
123
  case 402:
120
- return `Out of scan credits. Buy a scan pack at ${BILLING_PAGE} — the free allowance (5/mo) resets on the 1st (UTC).`;
124
+ return `Out of scan credits. Buy a scan pack at ${BILLING_PAGE} to continue — the one-time free allowance (3 scans) does not renew.`;
121
125
  case 403:
122
126
  // FREE_REQUIRES_* came from the pre-credit-pack backend (free scans
123
127
  // were gated on verified ownership). Kept for skew with old backends.
@@ -205,6 +209,79 @@ function instrument(tool) {
205
209
  },
206
210
  };
207
211
  }
212
+ // ── Extension reference (numeric catalog id OR store id) ─────────────────────
213
+ /**
214
+ * The shared parameter shape for "which extension" across the read tools. A
215
+ * caller may point at an extension EITHER by its numeric catalog `extension_id`
216
+ * (from search_extensions, as before) OR by its public `store_id` — the id in
217
+ * the store URL — which is often the only precise identifier an agent has.
218
+ *
219
+ * `extension_id` is now optional (it used to be required); this is
220
+ * backward-compatible — existing callers that pass it are unaffected, and
221
+ * resolveExtensionId() enforces that exactly one form is supplied.
222
+ */
223
+ const EXTENSION_REF_SHAPE = {
224
+ extension_id: z.number().int().optional().describe('Numeric catalog ID (from search_extensions results).'),
225
+ store_id: z
226
+ .string()
227
+ .min(1)
228
+ .max(100)
229
+ .optional()
230
+ .describe('Alternative to extension_id: the extension’s id in its store URL (e.g. Chrome ' +
231
+ '"cjpalhdlnbpafiamejdnhcphjbkeiagm"). For a Chrome/Edge id (32 letters a–p) you MUST also ' +
232
+ 'pass `store` — both stores share that format. Firefox ids (slug / GUID / email) are ' +
233
+ 'unambiguous. Resolving a store_id is free; only the read that follows costs a credit.'),
234
+ store: z
235
+ .enum(['CHROME', 'FIREFOX', 'EDGE'])
236
+ .optional()
237
+ .describe('Which store `store_id` belongs to. REQUIRED for Chrome/Edge ids (identical format).'),
238
+ };
239
+ /**
240
+ * Resolve an extension reference to a numeric catalog id. Prefers an explicit
241
+ * `extension_id`; otherwise resolves `store_id` (+ `store`) via the FREE
242
+ * `resolveExtensionRef` BFF endpoint — so a store-id read costs exactly one
243
+ * credit (the read itself), never two. Throws an actionable UserError when
244
+ * neither form is supplied, when the store id is ambiguous/invalid (surfaced from
245
+ * the backend as an authored message, so it reads as expected — not a fault), or
246
+ * when no catalog listing exists for it yet.
247
+ */
248
+ async function resolveExtensionId(client, args) {
249
+ if (typeof args.extension_id === 'number')
250
+ return args.extension_id;
251
+ if (args.store_id) {
252
+ let ref;
253
+ try {
254
+ ref = await client.resolveExtensionRef({ storeId: args.store_id, store: args.store });
255
+ }
256
+ catch (err) {
257
+ // A BAD_REQUEST is a caller-input problem (ambiguous/invalid store id),
258
+ // not a fault: re-throw the backend's message as an authored UserError so
259
+ // it surfaces to the agent as guidance and doesn't open a tracking issue.
260
+ const code = err?.data?.code;
261
+ if (code === 'BAD_REQUEST')
262
+ throw new UserError(err instanceof Error ? err.message : String(err));
263
+ throw err;
264
+ }
265
+ if (!ref) {
266
+ throw new UserError(`No catalog extension found for store id "${args.store_id}"${args.store ? ` in ${args.store}` : ''}. ` +
267
+ 'It may not be in the catalog yet — try search_extensions by name, or double-check the id.');
268
+ }
269
+ return ref.id;
270
+ }
271
+ throw new UserError('Specify the extension: pass extension_id (numeric catalog id from search_extensions) OR ' +
272
+ 'store_id (the id in the store URL; add `store` for a Chrome/Edge id).');
273
+ }
274
+ /**
275
+ * Optional variant for tools where the extension link is not required (scan
276
+ * association): returns the resolved id, or undefined when NEITHER form is given.
277
+ * A supplied-but-unresolvable store_id still throws (via resolveExtensionId) so a
278
+ * typo is caught before a scan credit is spent, rather than silently dropped.
279
+ */
280
+ async function resolveOptionalExtensionId(client, args) {
281
+ if (typeof args.extension_id !== 'number' && !args.store_id)
282
+ return undefined;
283
+ return resolveExtensionId(client, args);
284
+ }
208
285
  // ── Registration ─────────────────────────────────────────────────────────────
209
286
  /**
210
287
  * MCP tool annotations (spec: title + behaviour hints). REQUIRED for the
@@ -245,6 +322,12 @@ const TOOL_ANNOTATIONS = {
245
322
  idempotentHint: true,
246
323
  openWorldHint: true,
247
324
  },
325
+ get_credit_balance: {
326
+ title: 'Check credit balance',
327
+ readOnlyHint: true,
328
+ idempotentHint: true,
329
+ openWorldHint: true,
330
+ },
248
331
  search_docs: {
249
332
  title: 'Search Extenshi documentation',
250
333
  readOnlyHint: true,
@@ -401,16 +484,17 @@ export function registerTools(server, deps) {
401
484
  });
402
485
  add({
403
486
  name: 'get_extension',
404
- description: 'Get full catalog detail for one extension by its numeric catalog ID: metadata, ' +
405
- 'per-store ratings, install counts, categories, and a security badge.',
406
- parameters: z.object({
407
- extension_id: z.number().int().describe('Numeric catalog ID (from search_extensions results).'),
408
- }),
487
+ description: 'Get full catalog detail for one extension: metadata, per-store ratings, install counts, ' +
488
+ 'categories, and a security badge. Identify it by numeric catalog `extension_id` OR by its ' +
489
+ '`store_id` (the id in the store URL; add `store` for a Chrome/Edge id).',
490
+ parameters: z.object({ ...EXTENSION_REF_SHAPE }),
409
491
  execute: async (args, context) => {
410
492
  try {
411
- const result = await bff(context).getExtensionById(args.extension_id);
493
+ const client = bff(context);
494
+ const extensionId = await resolveExtensionId(client, args);
495
+ const result = await client.getExtensionById(extensionId);
412
496
  if (!result)
413
- throw new UserError(`No extension found with catalog ID ${args.extension_id}.`);
497
+ throw new UserError(`No extension found with catalog ID ${extensionId}.`);
414
498
  return JSON.stringify(shapeExtension(result), null, 2);
415
499
  }
416
500
  catch (err) {
@@ -430,7 +514,7 @@ export function registerTools(server, deps) {
430
514
  'keep the same `sort` while paging, and start over if you change it. Reads existing ' +
431
515
  'scraped reviews; use `min_rating` to see only positive or only critical feedback.',
432
516
  parameters: z.object({
433
- extension_id: z.number().int().describe('Numeric catalog ID (from search_extensions results).'),
517
+ ...EXTENSION_REF_SHAPE,
434
518
  limit: z.number().int().min(1).max(50).default(20).describe('Max reviews to return (1–50).'),
435
519
  cursor: z
436
520
  .number()
@@ -452,9 +536,11 @@ export function registerTools(server, deps) {
452
536
  }),
453
537
  execute: async (args, context) => {
454
538
  try {
539
+ const client = bff(context);
540
+ const extensionId = await resolveExtensionId(client, args);
455
541
  const limit = args.limit;
456
- const result = await bff(context).getReviews({
457
- extensionId: args.extension_id,
542
+ const result = await client.getReviews({
543
+ extensionId,
458
544
  limit,
459
545
  cursor: args.cursor,
460
546
  languageId: args.language_id,
@@ -475,20 +561,21 @@ export function registerTools(server, deps) {
475
561
  'severity, and the top grouped findings (scanner, rule, severity, count). Also returns ' +
476
562
  'the install-dialog preview — exactly what Chrome/Firefox show users in the permission ' +
477
563
  'prompt at install (consolidated + deduped from the manifest), available even for ' +
478
- 'unscanned extensions. Reads existing scan results — does not trigger a new scan.',
479
- parameters: z.object({
480
- extension_id: z.number().int().describe('Numeric catalog ID.'),
481
- }),
564
+ 'unscanned extensions. Reads existing scan results — does not trigger a new scan. ' +
565
+ 'Identify the extension by numeric `extension_id` OR `store_id` (+`store` for Chrome/Edge). ' +
566
+ 'NB: this tool costs 3 read credits (it fetches security, risk, and install-preview data).',
567
+ parameters: z.object({ ...EXTENSION_REF_SHAPE }),
482
568
  execute: async (args, context) => {
483
569
  try {
484
570
  const client = bff(context);
571
+ const extensionId = await resolveExtensionId(client, args);
485
572
  // getExtensionById carries `installDialogPreview` (a manifest transform,
486
573
  // independent of scanning) — fetch it alongside the scan data so the
487
574
  // security view always includes the install prompt the user would see.
488
575
  const [security, riskSummary, extension] = await Promise.all([
489
- client.getSecurityData(args.extension_id).catch(() => null),
490
- client.getRiskSummary(args.extension_id).catch(() => null),
491
- client.getExtensionById(args.extension_id).catch(() => null),
576
+ client.getSecurityData(extensionId).catch(() => null),
577
+ client.getRiskSummary(extensionId).catch(() => null),
578
+ client.getExtensionById(extensionId).catch(() => null),
492
579
  ]);
493
580
  const installDialogPreview = extension && typeof extension === 'object'
494
581
  ? extension.installDialogPreview
@@ -561,6 +648,27 @@ export function registerTools(server, deps) {
561
648
  }
562
649
  },
563
650
  });
651
+ add({
652
+ name: 'get_credit_balance',
653
+ description: 'Check your remaining Extenshi credits BEFORE running a batch, so you never guess whether a ' +
654
+ 'large request is safe. Returns every credit pool for your API key: `read` (spent one-per-call by ' +
655
+ 'search_extensions / get_extension / get_reviews / market_overview; get_security costs 3) and ' +
656
+ '`scan` (spent by scan_extension), plus `icon` and `inventory`. Each pool reports `remaining` — the ' +
657
+ 'number that actually gates calls (one-time free grant + purchased credits) — and `freeRemaining` ' +
658
+ '(how much of the never-renewing signup grant is left). FREE to call: checking your balance never ' +
659
+ 'spends a credit. Rule of thumb: to fetch N extensions you need read.remaining ≥ N (≥ 3N if you ' +
660
+ 'also call get_security on each).',
661
+ parameters: z.object({}),
662
+ execute: async (_args, context) => {
663
+ try {
664
+ const balance = await bff(context).getApiCallerBalance();
665
+ return JSON.stringify(balance, null, 2);
666
+ }
667
+ catch (err) {
668
+ return readError(err, missingKeyMessage);
669
+ }
670
+ },
671
+ });
564
672
  }
565
673
  // ── Documentation (free; no API key required) ──────────────────────────────
566
674
  if (caps.has('docs')) {
@@ -623,26 +731,38 @@ export function registerTools(server, deps) {
623
731
  add({
624
732
  name: 'scan_extension',
625
733
  description: 'Run a pre-publish security scan on a local extension artifact (.zip/.crx/.xpi) and ' +
626
- 'return the report. Uses one scan from your free monthly allowance (5 scans/month) or a ' +
734
+ 'return the report. Uses one scan from your one-time free allowance (3 scans) or a ' +
627
735
  'purchased scan credit once that runs out. Streams live per-scanner progress.',
628
736
  parameters: z.object({
629
737
  artifact_path: z
630
738
  .string()
631
739
  .describe('Absolute or relative path to the built extension artifact (≤50 MB).'),
632
- extension_id: z
633
- .number()
634
- .int()
635
- .optional()
636
- .describe('Optional numeric catalog ID to associate the scan with a catalog listing.'),
740
+ // Optional association with a catalog listing — by numeric id OR store id.
741
+ // Reuse the shared ref validators but override the descriptions: here the
742
+ // ref is an optional ASSOCIATION for the scan, not a lookup key, so the
743
+ // shared "from search_extensions results" wording would mislead an agent.
744
+ extension_id: EXTENSION_REF_SHAPE.extension_id.describe('Optional numeric catalog ID to associate this scan with a catalog listing.'),
745
+ store_id: EXTENSION_REF_SHAPE.store_id.describe('Optional: associate this scan with a catalog listing by its store id (the id in the ' +
746
+ 'store URL; add `store` for a Chrome/Edge id).'),
747
+ store: EXTENSION_REF_SHAPE.store,
637
748
  }),
638
749
  execute: async (args, context) => {
639
750
  const apiKey = requireApiKey(context);
751
+ // Resolve the optional catalog association BEFORE spending a scan credit,
752
+ // so a mistyped store_id fails fast instead of after the scan runs.
753
+ let extensionId;
754
+ try {
755
+ extensionId = await resolveOptionalExtensionId(bff(context), args);
756
+ }
757
+ catch (err) {
758
+ return readError(err, missingKeyMessage);
759
+ }
640
760
  try {
641
761
  const report = await scanArtifact({
642
762
  artifactPath: args.artifact_path,
643
763
  apiKey,
644
764
  scanUrl: deps.cfg.scanUrl,
645
- extensionId: args.extension_id?.toString(),
765
+ extensionId: extensionId?.toString(),
646
766
  onProgress: (p) => {
647
767
  if (typeof p.total === 'number' && p.total > 0) {
648
768
  void context.reportProgress({ progress: p.completed ?? 0, total: p.total });
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAyE,SAAS,EAAE,MAAM,SAAS,CAAA;AAC1G,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EACN,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,wBAAwB,GACxB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACnD,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AACrF,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AACrF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAE1E,+EAA+E;AAE/E,MAAM,CAAC,MAAM,QAAQ,GAAG,mCAAmC,CAAA;AAC3D,MAAM,CAAC,MAAM,WAAW,GAAG,iCAAiC,CAAA;AAC5D,MAAM,CAAC,MAAM,YAAY,GAAG,kCAAkC,CAAA;AAE9D,MAAM,CAAC,MAAM,mBAAmB,GAC/B,2EAA2E;IAC3E,8BAA8B;IAC9B,6EAA6E;IAC7E,8EAA8E;IAC9E,uDAAuD;IACvD,+BAA+B,WAAW,IAAI;IAC9C,oBAAoB,QAAQ,IAAI;IAChC,4EAA4E;IAC5E,uCAAuC;IACvC,4EAA4E;IAC5E,wCAAwC,CAAA;AAEzC,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAA;AAErC,MAAM,CAAC,MAAM,mBAAmB,GAC/B,mFAAmF;IACnF,uFAAuF;IACvF,wFAAwF;IACxF,2FAA2F;IAC3F,+EAA+E;IAC/E,wFAAwF;IACxF,mGAAmG;IACnG,2CAA2C,QAAQ,uCAAuC;IAC1F,yFAAyF;IACzF,+BAA+B,YAAY,GAAG,CAAA;AA8C/C,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAS,aAAa,CAAC,OAAe,EAAE,KAAc;IACrD,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAA;IAClC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;IACjB,OAAO,GAAG,CAAA;AACX,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,SAAS,CAAC,GAAY,EAAE,iBAAyB;IACzD,IAAI,GAAG,YAAY,SAAS;QAAE,MAAM,GAAG,CAAA;IACvC,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAChE,2EAA2E;IAC3E,IAAI,2BAA2B,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/C,MAAM,aAAa,CAAC,sBAAsB,OAAO,OAAO,iBAAiB,EAAE,EAAE,GAAG,CAAC,CAAA;IAClF,CAAC;IACD,MAAM,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;AAClC,CAAC;AAED,6DAA6D;AAC7D,SAAS,gBAAgB,CAAC,GAAc,EAAE,iBAAyB;IAClE,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,GAAG;YACP,OAAO,0BAA0B,GAAG,CAAC,OAAO,OAAO,iBAAiB,EAAE,CAAA;QACvE,KAAK,GAAG;YACP,OAAO,2CAA2C,YAAY,uDAAuD,CAAA;QACtH,KAAK,GAAG;YACP,oEAAoE;YACpE,sEAAsE;YACtE,IAAI,GAAG,CAAC,SAAS,KAAK,qBAAqB,IAAI,GAAG,CAAC,SAAS,KAAK,kCAAkC,EAAE,CAAC;gBACrG,OAAO,GAAG,GAAG,CAAC,OAAO,0BAA0B,YAAY,+BAA+B,CAAA;YAC3F,CAAC;YACD,OAAO,kBAAkB,GAAG,CAAC,OAAO,EAAE,CAAA;QACvC,KAAK,GAAG;YACP,OAAO,uBAAuB,GAAG,CAAC,aAAa,IAAI,EAAE,wBAAwB,CAAA;QAC9E;YACC,OAAO,GAAG,CAAC,OAAO,CAAA;IACpB,CAAC;AACF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAA;AAErE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,eAAe,CAAC,GAAY,EAAE,OAAe,aAAa,CAAC,GAAG,CAAC;IAC9E,IAAI,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAC/C,OAAO,GAAG,YAAY,SAAS,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,CAAA;AAC3D,CAAC;AAED;;;;;;GAMG;AACH,SAAS,UAAU,CAClB,IAAsC;IAEtC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;IACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAA;IAC7B,OAAO;QACN,GAAG,IAAI;QACP,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YAChC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAC5B,YAAY,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;YAC/C,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;gBAC5C,YAAY,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC,CAAA;gBACvF,OAAO,MAAM,CAAA;YACd,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,kEAAkE;gBAClE,qEAAqE;gBACrE,oBAAoB;gBACpB,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;gBAC/B,kEAAkE;gBAClE,iEAAiE;gBACjE,YAAY,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC,CAAA;gBACtG,+DAA+D;gBAC/D,gEAAgE;gBAChE,kEAAkE;gBAClE,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC;oBAAE,YAAY,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;gBAClE,MAAM,GAAG,CAAA;YACV,CAAC;QACF,CAAC;KACD,CAAA;AACF,CAAC;AAED,gFAAgF;AAEhF;;;;;;;GAOG;AACH,MAAM,gBAAgB,GASlB;IACH,iBAAiB,EAAE;QAClB,KAAK,EAAE,0BAA0B;QACjC,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;KACnB;IACD,aAAa,EAAE;QACd,KAAK,EAAE,uBAAuB;QAC9B,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;KACnB;IACD,WAAW,EAAE;QACZ,KAAK,EAAE,uBAAuB;QAC9B,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;KACnB;IACD,YAAY,EAAE;QACb,KAAK,EAAE,iCAAiC;QACxC,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;KACnB;IACD,eAAe,EAAE;QAChB,KAAK,EAAE,yBAAyB;QAChC,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;KACnB;IACD,WAAW,EAAE;QACZ,KAAK,EAAE,+BAA+B;QACtC,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;KACnB;IACD,sBAAsB,EAAE;QACvB,KAAK,EAAE,4BAA4B;QACnC,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,KAAK;KACpB;IACD,cAAc,EAAE;QACf,KAAK,EAAE,2BAA2B;QAClC,YAAY,EAAE,KAAK;QACnB,eAAe,EAAE,KAAK;QACtB,aAAa,EAAE,IAAI;KACnB;IACD,iBAAiB,EAAE;QAClB,KAAK,EAAE,6BAA6B;QACpC,YAAY,EAAE,KAAK;QACnB,eAAe,EAAE,IAAI;QACrB,aAAa,EAAE,IAAI;KACnB;CACD,CAAA;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,MAAe,EAAE,IAAc;IAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAA;IAC9B,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,IAAI,mBAAmB,CAAA;IACvE,wEAAwE;IACxE,yDAAyD;IACzD,SAAS,GAAG,CAA2B,IAAiC;QACvE,2EAA2E;QAC3E,2EAA2E;QAC3E,MAAM,WAAW,GAAG,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QAC3E,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAA;IACrD,CAAC;IACD,+CAA+C;IAC/C,MAAM,GAAG,GAAG,CAAC,GAAoB,EAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC3D,MAAM,aAAa,GAAG,CAAC,GAAoB,EAAU,EAAE;QACtD,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,MAAM,IAAI,SAAS,CAAC,iBAAiB,CAAC,CAAA;QAC/D,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;IAC/B,CAAC,CAAA;IAED,8EAA8E;IAC9E,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,GAAG,CAAC;YACH,IAAI,EAAE,mBAAmB;YACzB,WAAW,EACV,0FAA0F;gBAC1F,uFAAuF;gBACvF,qFAAqF;gBACrF,wFAAwF;gBACxF,yFAAyF;gBACzF,GAAG,wBAAwB,EAAE,GAAG;gBAChC,sEAAsE;YACvE,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;gBAC9F,MAAM,EAAE,CAAC;qBACP,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;qBAC5C,QAAQ,EAAE;qBACV,QAAQ,CAAC,gDAAgD,CAAC;gBAC5D,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;gBACzF,OAAO,EAAE,CAAC;qBACR,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAAC,CAAC;qBACvE,QAAQ,EAAE;qBACV,QAAQ,CAAC,4BAA4B,CAAC;gBACxC,IAAI,EAAE,CAAC;qBACL,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;qBAC5D,QAAQ,EAAE;qBACV,QAAQ,CAAC,6BAA6B,CAAC;gBACzC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;gBACrG,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;gBACrF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;gBACrF,kBAAkB,EAAE,CAAC;qBACnB,MAAM,EAAE;qBACR,GAAG,CAAC,CAAC,CAAC;qBACN,QAAQ,EAAE;qBACV,QAAQ,CACR,iFAAiF;oBAChF,4EAA4E;oBAC5E,wDAAwD,CACzD;gBACF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;gBAC7F,aAAa,EAAE,CAAC;qBACd,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;qBACnC,QAAQ,EAAE;qBACV,QAAQ,CAAC,uEAAuE,CAAC;gBACnF,gBAAgB,EAAE,CAAC;qBACjB,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC5C,QAAQ,EAAE;qBACV,QAAQ,CAAC,kCAAkC,CAAC;gBAC9C,cAAc,EAAE,CAAC;qBACf,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;qBACvC,QAAQ,EAAE;qBACV,QAAQ,CAAC,uBAAuB,CAAC;gBACnC,kBAAkB,EAAE,CAAC;qBACnB,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;qBACnF,QAAQ,EAAE;qBACV,QAAQ,CAAC,qDAAqD,CAAC;gBACjE,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;gBAC/E,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;gBAC7E,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;gBAC7E,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;gBAC5F,eAAe,EAAE,CAAC;qBAChB,OAAO,EAAE;qBACT,QAAQ,EAAE;qBACV,QAAQ,CAAC,uEAAuE,CAAC;gBACnF,MAAM,EAAE,CAAC;qBACP,IAAI,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;qBACtF,QAAQ,EAAE;qBACV,QAAQ,CAAC,oEAAoE,CAAC;gBAChF,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;gBACzF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;gBACxF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;aAC5F,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;gBAChC,IAAI,CAAC;oBACJ,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAA+B,CAAC,CAAA;oBACvE,IAAI,QAAQ;wBAAE,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAA;oBAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAA;oBAC9B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,gBAAgB,CAAC;wBAClD,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,UAAU,EAAE,IAAI,CAAC,UAAU;wBAC3B,aAAa,EAAE,IAAI,CAAC,OAAO;wBAC3B,cAAc,EAAE,IAAI,CAAC,IAAI;wBACzB,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;wBAC3C,UAAU,EAAE,IAAI,CAAC,UAAU;wBAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;wBACjC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;wBACvC,cAAc,EAAE,IAAI,CAAC,cAAc;wBACnC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;wBAC3C,UAAU,EAAE,IAAI,CAAC,UAAU;wBAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;wBAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC7B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;wBAC3C,eAAe,EAAE,IAAI,CAAC,eAAe;wBACrC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;wBAC7D,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,IAAI,EAAE,KAAK;qBACX,CAAC,CAAA;oBACF,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;gBAC3D,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,OAAO,SAAS,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAA;gBACzC,CAAC;YACF,CAAC;SACD,CAAC,CAAA;QAEF,GAAG,CAAC;YACH,IAAI,EAAE,eAAe;YACrB,WAAW,EACV,iFAAiF;gBACjF,sEAAsE;YACvE,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;aAC/F,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;gBAChC,IAAI,CAAC;oBACJ,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;oBACrE,IAAI,CAAC,MAAM;wBAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;oBAC5F,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;gBACvD,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,OAAO,SAAS,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAA;gBACzC,CAAC;YACF,CAAC;SACD,CAAC,CAAA;QAEF,GAAG,CAAC;YACH,IAAI,EAAE,aAAa;YACnB,WAAW,EACV,+FAA+F;gBAC/F,4FAA4F;gBAC5F,sGAAsG;gBACtG,mGAAmG;gBACnG,8DAA8D;gBAC9D,sFAAsF;gBACtF,sFAAsF;gBACtF,qFAAqF;gBACrF,mFAAmF;YACpF,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;gBAC/F,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;gBAC5F,MAAM,EAAE,CAAC;qBACP,MAAM,EAAE;qBACR,GAAG,EAAE;qBACL,QAAQ,EAAE;qBACV,QAAQ,CAAC,wEAAwE,CAAC;gBACpF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;gBAC9F,UAAU,EAAE,CAAC;qBACX,MAAM,EAAE;qBACR,GAAG,EAAE;qBACL,GAAG,CAAC,CAAC,CAAC;qBACN,GAAG,CAAC,CAAC,CAAC;qBACN,QAAQ,EAAE;qBACV,QAAQ,CAAC,+CAA+C,CAAC;gBAC3D,IAAI,EAAE,CAAC;qBACL,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;qBAC1B,QAAQ,EAAE;qBACV,QAAQ,CAAC,oDAAoD,CAAC;aAChE,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;gBAChC,IAAI,CAAC;oBACJ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;oBACxB,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;wBAC5C,WAAW,EAAE,IAAI,CAAC,YAAY;wBAC9B,KAAK;wBACL,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,UAAU,EAAE,IAAI,CAAC,WAAW;wBAC5B,SAAS,EAAE,IAAI,CAAC,UAAU;wBAC1B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,QAAQ;qBAC3B,CAAC,CAAA;oBACF,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;gBAC5D,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,OAAO,SAAS,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAA;gBACzC,CAAC;YACF,CAAC;SACD,CAAC,CAAA;QAEF,GAAG,CAAC;YACH,IAAI,EAAE,cAAc;YACpB,WAAW,EACV,wFAAwF;gBACxF,wEAAwE;gBACxE,wFAAwF;gBACxF,wFAAwF;gBACxF,mFAAmF;gBACnF,kFAAkF;YACnF,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;aAC9D,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;gBAChC,IAAI,CAAC;oBACJ,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,CAAA;oBAC3B,yEAAyE;oBACzE,qEAAqE;oBACrE,uEAAuE;oBACvE,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;wBAC5D,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;wBAC3D,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;wBAC1D,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;qBAC5D,CAAC,CAAA;oBACF,MAAM,oBAAoB,GACzB,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ;wBACzC,CAAC,CAAE,SAAqC,CAAC,oBAAoB;wBAC7D,CAAC,CAAC,IAAI,CAAA;oBACR,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,oBAAoB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;gBAC3F,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,OAAO,SAAS,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAA;gBACzC,CAAC;YACF,CAAC;SACD,CAAC,CAAA;QAEF,GAAG,CAAC;YACH,IAAI,EAAE,iBAAiB;YACvB,WAAW,EACV,oFAAoF;gBACpF,wFAAwF;gBACxF,0FAA0F;gBAC1F,wFAAwF;gBACxF,uFAAuF;YACxF,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;gBACpF,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;gBACjE,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;aAC1C,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;gBAChC,IAAI,CAAC;oBACJ,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,CAAA;oBAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;oBAE5F,kEAAkE;oBAClE,IAAI,MAAM,EAAE,CAAC;wBACZ,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;4BACzC,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;4BACnC,MAAM;iCACJ,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;iCACxF,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;yBACnB,CAAC,CAAA;wBACF,OAAO,IAAI,CAAC,SAAS,CACpB,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,EAAE,MAAM,IAAI,SAAS,EAAE,EAC3E,IAAI,EACJ,CAAC,CACD,CAAA;oBACF,CAAC;oBAED,gFAAgF;oBAChF,4EAA4E;oBAC5E,MAAM,YAAY,GAA2B;wBAC5C,MAAM,EAAE,kBAAkB;wBAC1B,OAAO,EAAE,iBAAiB;wBAC1B,IAAI,EAAE,cAAc;qBACpB,CAAA;oBACD,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;wBACzD,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;wBACnC,MAAM,CAAC,uBAAuB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;wBAClD,MAAM,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;qBAC1C,CAAC,CAAA;oBACF,MAAM,iBAAiB,GACrB,KAAgF;wBAChF,EAAE,iBAAiB,IAAI,EAAE,CAAA;oBAC3B,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC5C,IAAI,EAAE,CAAC,CAAC,KAAK;wBACb,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK;qBACvC,CAAC,CAAC,CAAA;oBACH,OAAO,IAAI,CAAC,SAAS,CACpB;wBACC,KAAK,EAAE,cAAc;wBACrB,KAAK,EAAE,KAAK,IAAI,SAAS;wBACzB,MAAM,EAAE;4BACP,MAAM;4BACN,YAAY,EAAE,YAAY,IAAI,SAAS;4BACvC,QAAQ,EAAE,QAAQ,IAAI,SAAS;yBAC/B;wBACD,IAAI,EAAE,+GAA+G;qBACrH,EACD,IAAI,EACJ,CAAC,CACD,CAAA;gBACF,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,OAAO,SAAS,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAA;gBACzC,CAAC;YACF,CAAC;SACD,CAAC,CAAA;IACH,CAAC;IAED,8EAA8E;IAC9E,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,GAAG,CAAC;YACH,IAAI,EAAE,aAAa;YACnB,WAAW,EACV,0FAA0F;gBAC1F,6FAA6F;gBAC7F,uFAAuF;gBACvF,0FAA0F;gBAC1F,qCAAqC;YACtC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,KAAK,EAAE,CAAC;qBACN,MAAM,EAAE;qBACR,QAAQ,EAAE;qBACV,QAAQ,CACR,8HAA8H,CAC9H;gBACF,KAAK,EAAE,CAAC;qBACN,MAAM,EAAE;qBACR,GAAG,EAAE;qBACL,GAAG,CAAC,CAAC,CAAC;qBACN,GAAG,CAAC,EAAE,CAAC;qBACP,OAAO,CAAC,CAAC,CAAC;qBACV,QAAQ,CAAC,8CAA8C,CAAC;aAC1D,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACvB,IAAI,CAAC;oBACJ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAA;oBAChC,IAAI,CAAC,KAAK;wBAAE,OAAO,MAAM,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;oBACvD,OAAO,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAA;gBAClE,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,gEAAgE;oBAChE,oDAAoD;oBACpD,IAAI,GAAG,YAAY,SAAS;wBAAE,MAAM,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;oBACnE,MAAM,aAAa,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;gBAC3E,CAAC;YACF,CAAC;SACD,CAAC,CAAA;QAEF,GAAG,CAAC;YACH,IAAI,EAAE,wBAAwB;YAC9B,WAAW,EACV,qFAAqF;gBACrF,mFAAmF;gBACnF,yFAAyF;gBACzF,qFAAqF;gBACrF,0FAA0F;gBAC1F,qCAAqC;YACtC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,cAAc,EAAE,CAAC;qBACf,MAAM,EAAE;qBACR,GAAG,CAAC,GAAG,CAAC;qBACR,QAAQ,EAAE;qBACV,QAAQ,CAAC,uEAAuE,CAAC;aACnF,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;SACnF,CAAC,CAAA;IACH,CAAC;IAED,+EAA+E;IAC/E,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,GAAG,CAAC;YACH,IAAI,EAAE,gBAAgB;YACtB,WAAW,EACV,qFAAqF;gBACrF,yFAAyF;gBACzF,8EAA8E;YAC/E,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,aAAa,EAAE,CAAC;qBACd,MAAM,EAAE;qBACR,QAAQ,CAAC,qEAAqE,CAAC;gBACjF,YAAY,EAAE,CAAC;qBACb,MAAM,EAAE;qBACR,GAAG,EAAE;qBACL,QAAQ,EAAE;qBACV,QAAQ,CAAC,2EAA2E,CAAC;aACvF,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;gBAChC,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;gBACrC,IAAI,CAAC;oBACJ,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;wBACjC,YAAY,EAAE,IAAI,CAAC,aAAa;wBAChC,MAAM;wBACN,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO;wBACzB,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE;wBAC1C,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;4BACjB,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;gCAChD,KAAK,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;4BAC5E,CAAC;wBACF,CAAC;qBACD,CAAC,CAAA;oBACF,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;gBACvD,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,oEAAoE;oBACpE,mEAAmE;oBACnE,oCAAoC;oBACpC,IAAI,GAAG,YAAY,SAAS;wBAAE,MAAM,aAAa,CAAC,gBAAgB,CAAC,GAAG,EAAE,iBAAiB,CAAC,EAAE,GAAG,CAAC,CAAA;oBAChG,MAAM,GAAG,CAAA;gBACV,CAAC;YACF,CAAC;SACD,CAAC,CAAA;IACH,CAAC;IAED,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACzB,GAAG,CAAC;YACH,IAAI,EAAE,mBAAmB;YACzB,WAAW,EACV,wGAAwG;gBACxG,iGAAiG;gBACjG,mGAAmG;gBACnG,kFAAkF;gBAClF,qGAAqG;gBACrG,2GAA2G;gBAC3G,uFAAuF;gBACvF,uDAAuD;YACxD,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,aAAa,EAAE,CAAC;qBACd,MAAM,EAAE;qBACR,QAAQ,CAAC,+EAA+E,CAAC;gBAC3F,MAAM,EAAE,CAAC;qBACP,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;qBAC5C,QAAQ,EAAE;qBACV,QAAQ,CACR,0FAA0F,CAC1F;gBACF,qBAAqB,EAAE,CAAC;qBACtB,MAAM,EAAE;qBACR,QAAQ,EAAE;qBACV,QAAQ,CAAC,8DAA8D,CAAC;gBAC1E,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;gBAC3F,YAAY,EAAE,CAAC;qBACb,MAAM,EAAE;qBACR,QAAQ,EAAE;qBACV,QAAQ,CAAC,kFAAkF,CAAC;gBAC9F,aAAa,EAAE,CAAC;qBACd,OAAO,EAAE;qBACT,QAAQ,EAAE;qBACV,QAAQ,CAAC,+EAA+E,CAAC;aAC3F,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;gBAChC,IAAI,CAAC;oBACJ,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;wBACxB,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;wBAC1D,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;oBAC3C,CAAC;oBAED,wEAAwE;oBACxE,2EAA2E;oBAC3E,qEAAqE;oBACrE,oDAAoD;oBACpD,MAAM,KAAK,GAAG,oBAAoB,EAAE,CAAA;oBACpC,MAAM,QAAQ,GAA2D,EAAE,CAAA;oBAC3E,IAAI,KAAK,CAAC,MAAM;wBAAE,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAA;oBACtD,IAAI,KAAK,CAAC,OAAO;wBAAE,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAA;oBAC7D,IAAI,KAAK,CAAC,IAAI;wBAAE,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAA;oBACpD,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;wBACvC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM;wBACvB,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI;wBACzC,QAAQ;wBACR,WAAW,EAAE,IAAI,CAAC,YAAY;qBAC9B,CAAC,CAAA;oBACF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;wBACrB,MAAM,IAAI,SAAS,CAClB,MAAM,CAAC,OAAO;4BACb,oFAAoF,CACrF,CAAA;oBACF,CAAC;oBAED,KAAK,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;oBACtD,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;wBACpC,YAAY,EAAE,IAAI,CAAC,aAAa;wBAChC,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,mBAAmB,EAAE,IAAI,CAAC,qBAAqB;wBAC/C,YAAY,EAAE,IAAI,CAAC,aAAa;qBAChC,CAAC,CAAA;oBACF,KAAK,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;oBACtD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;gBACvC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,IAAI,GAAG,YAAY,iBAAiB;wBAAE,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;oBACtE,MAAM,GAAG,CAAA;gBACV,CAAC;YACF,CAAC;SACD,CAAC,CAAA;IACH,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@extenshi/mcp",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Extenshi MCP server — bring the extension catalog (search, security, market research) and pre-publish scanning into your AI tools",
5
5
  "type": "module",
6
6
  "license": "MIT",