@extenshi/mcp 0.7.0 → 0.9.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 +9 -4
- package/dist/bff.d.ts +17 -0
- package/dist/bff.d.ts.map +1 -1
- package/dist/bff.js +4 -0
- package/dist/bff.js.map +1 -1
- package/dist/development-guide.d.ts +109 -79
- package/dist/development-guide.d.ts.map +1 -1
- package/dist/development-guide.js +133 -45
- package/dist/development-guide.js.map +1 -1
- package/dist/docs.d.ts +45 -4
- package/dist/docs.d.ts.map +1 -1
- package/dist/docs.js +162 -17
- package/dist/docs.js.map +1 -1
- package/dist/icon-workflow.d.ts +5 -4
- package/dist/icon-workflow.d.ts.map +1 -1
- package/dist/icon-workflow.js +33 -32
- package/dist/icon-workflow.js.map +1 -1
- package/dist/json-ld.d.ts +89 -0
- package/dist/json-ld.d.ts.map +1 -0
- package/dist/json-ld.js +118 -0
- package/dist/json-ld.js.map +1 -0
- package/dist/landing-page.d.ts +123 -0
- package/dist/landing-page.d.ts.map +1 -0
- package/dist/landing-page.js +405 -0
- package/dist/landing-page.js.map +1 -0
- package/dist/landing-workflow.d.ts +49 -0
- package/dist/landing-workflow.d.ts.map +1 -0
- package/dist/landing-workflow.js +80 -0
- package/dist/landing-workflow.js.map +1 -0
- package/dist/localize-workflow.d.ts +6 -1
- package/dist/localize-workflow.d.ts.map +1 -1
- package/dist/localize-workflow.js +65 -47
- package/dist/localize-workflow.js.map +1 -1
- package/dist/pay.d.ts +1 -1
- package/dist/pay.d.ts.map +1 -1
- package/dist/pay.js +11 -11
- package/dist/pay.js.map +1 -1
- package/dist/privacy-ai-outcome.d.ts +21 -0
- package/dist/privacy-ai-outcome.d.ts.map +1 -0
- package/dist/privacy-ai-outcome.js +69 -0
- package/dist/privacy-ai-outcome.js.map +1 -0
- package/dist/scan.d.ts +7 -0
- package/dist/scan.d.ts.map +1 -1
- package/dist/scan.js +26 -2
- package/dist/scan.js.map +1 -1
- package/dist/search-filters.js +1 -1
- package/dist/search-filters.js.map +1 -1
- package/dist/shape.d.ts +34 -0
- package/dist/shape.d.ts.map +1 -1
- package/dist/shape.js +150 -3
- package/dist/shape.js.map +1 -1
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +3 -0
- package/dist/telemetry.js.map +1 -1
- package/dist/templates.js +5 -5
- package/dist/templates.js.map +1 -1
- package/dist/tools.d.ts +2 -1
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +398 -115
- package/dist/tools.js.map +1 -1
- package/dist/welcome-agent-brief.d.ts +9 -9
- package/dist/welcome-agent-brief.d.ts.map +1 -1
- package/dist/welcome-agent-brief.js +32 -32
- package/dist/welcome-agent-brief.js.map +1 -1
- package/dist/welcome-workflow.d.ts +5 -5
- package/dist/welcome-workflow.d.ts.map +1 -1
- package/dist/welcome-workflow.js +13 -14
- package/dist/welcome-workflow.js.map +1 -1
- package/package.json +3 -2
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
/** Developer lifecycle
|
|
1
|
+
/** Developer lifecycle reference shared by local and hosted MCP transports.
|
|
2
2
|
* Tool inventory comes from registration, so it describes this server instance.
|
|
3
3
|
* Cabinet services are a directory, not a claim about the caller's entitlements.
|
|
4
|
+
*
|
|
5
|
+
* Written as reference material (process descriptions, requirements, related
|
|
6
|
+
* tools), not as directives: every entry reads the same to a developer as to
|
|
7
|
+
* any client that renders it.
|
|
8
|
+
*
|
|
9
|
+
* Token frugality: the default response is a compact overview plus a table of
|
|
10
|
+
* contents; full sections are returned only when requested via `sections`.
|
|
4
11
|
*/
|
|
5
12
|
export interface GuideTool {
|
|
6
13
|
name: string;
|
|
@@ -13,93 +20,93 @@ export interface GuideTool {
|
|
|
13
20
|
export declare const DEVELOPMENT_GUIDE_URL: string;
|
|
14
21
|
export declare const DEVELOPMENT_SERVICES: readonly [{
|
|
15
22
|
readonly id: "documentation";
|
|
16
|
-
readonly purpose: "
|
|
23
|
+
readonly purpose: "Capabilities, extension shapes, exact CLI commands and reusable skill packages.";
|
|
17
24
|
readonly tools: readonly ["get_development_guide", "search_docs", "list_extension_templates"];
|
|
18
|
-
readonly access: "Free
|
|
25
|
+
readonly access: "Free reference; no API key. Hosted transport still requires connector sign-in.";
|
|
19
26
|
readonly urls: readonly [string, string, string];
|
|
20
27
|
}, {
|
|
21
28
|
readonly id: "account";
|
|
22
|
-
readonly purpose: "Sign
|
|
29
|
+
readonly purpose: "Sign-in, API keys for local tools and credit-pool balances ahead of paid work.";
|
|
23
30
|
readonly tools: readonly ["get_credit_balance", "connection_diagnostics"];
|
|
24
31
|
readonly access: "Balance lookup is free and requires identity; catalog reads and scans use credit pools.";
|
|
25
32
|
readonly urls: readonly [string, "https://dojo.extenshi.io/api-keys", "https://dojo.extenshi.io/billing"];
|
|
26
33
|
}, {
|
|
27
34
|
readonly id: "research";
|
|
28
|
-
readonly purpose: "
|
|
35
|
+
readonly purpose: "Demand, competitors, user complaints, permissions and existing security findings.";
|
|
29
36
|
readonly tools: readonly ["search_extensions", "get_extension", "get_reviews", "get_security", "get_risk_by_store_ids", "market_overview"];
|
|
30
|
-
readonly access: "Identity required. Catalog tools cost 1 read per call; get_security costs 3. Bulk risk: up to 40 per call. Chrome review text is unavailable;
|
|
37
|
+
readonly access: "Identity required. Catalog tools cost 1 read per call; get_security costs 3. Bulk risk: up to 40 per call. Chrome review text is unavailable; its aggregate rating is available.";
|
|
31
38
|
readonly urls: readonly [string, "https://catalog.extenshi.io"];
|
|
32
39
|
}, {
|
|
33
40
|
readonly id: "projects";
|
|
34
|
-
readonly purpose: "
|
|
35
|
-
readonly tools: readonly ["list_my_projects", "get_project_state", "get_project_scaffold", "get_project_workspace", "import_manifest", "diff_project_state", "apply_project_patch", "record_project_evidence", "create_ci_ingest_secret", "upsert_hosted_page", "verify_hosted_artifact", "list_hosted_pages", "get_release_readiness"];
|
|
36
|
-
readonly access: "Own-project MCP reads are free and require identity.
|
|
41
|
+
readonly purpose: "Existing projects: selected browser types, manifests, repository binding, saved tool state, hosted URLs and starter files.";
|
|
42
|
+
readonly tools: readonly ["list_my_projects", "get_project_state", "get_project_scaffold", "get_project_workspace", "import_manifest", "diff_project_state", "apply_project_patch", "record_project_evidence", "create_ci_ingest_secret", "upsert_hosted_page", "verify_hosted_artifact", "remove_hosted_page", "list_hosted_pages", "get_release_readiness"];
|
|
43
|
+
readonly access: "Own-project MCP reads are free and require identity. Projects are created in the cabinet. Repository metadata, source/built manifests and scope synchronize through typed revisioned patches. project.write, evidence.write and hosted.write require explicit OAuth consent. Repository metadata does not grant GitHub access. CI evidence (source=ci) is written only by the verified ingest endpoint, which authenticates with a secret from create_ci_ingest_secret. Automated release-readiness access requires a Pro project.";
|
|
37
44
|
readonly urls: readonly [string, "https://dojo.extenshi.io/projects", "https://dojo.extenshi.io/integrations"];
|
|
38
45
|
}, {
|
|
39
46
|
readonly id: "manifest";
|
|
40
|
-
readonly purpose: "
|
|
47
|
+
readonly purpose: "Minimum permissions, target browsers and manifest entries, with every referenced file present.";
|
|
41
48
|
readonly tools: readonly ["list_extension_templates", "get_project_state", "get_project_scaffold"];
|
|
42
|
-
readonly access: "Free template
|
|
49
|
+
readonly access: "Free template reference; project reads require identity. The cabinet also has a manifest editor.";
|
|
43
50
|
readonly urls: readonly [string, string];
|
|
44
51
|
}, {
|
|
45
52
|
readonly id: "localization";
|
|
46
|
-
readonly purpose: "
|
|
53
|
+
readonly purpose: "Local translation of extension messages and validation of the resulting locales.";
|
|
47
54
|
readonly tools: readonly ["localize_workflow"];
|
|
48
|
-
readonly access: "Free static
|
|
55
|
+
readonly access: "Free static reference; local CLI validation requires no key or Extenshi credits. Translation uses the developer's own provider. CLI release availability is part of the reference.";
|
|
49
56
|
readonly urls: readonly [string];
|
|
50
57
|
}, {
|
|
51
58
|
readonly id: "icons";
|
|
52
|
-
readonly purpose: "
|
|
59
|
+
readonly purpose: "SVG icon design, toolbar-size preview and store-asset export with the local CLI.";
|
|
53
60
|
readonly tools: readonly ["generate_icon_workflow"];
|
|
54
|
-
readonly access: "Free
|
|
61
|
+
readonly access: "Free. Drawing, browser preview and file export happen locally; the cabinet offers its own icon generator subject to availability and credits.";
|
|
55
62
|
readonly urls: readonly [string, string];
|
|
56
63
|
}, {
|
|
57
64
|
readonly id: "privacy";
|
|
58
|
-
readonly purpose: "
|
|
65
|
+
readonly purpose: "A policy that reflects actual data practices: generated and exported, or hosted with version history.";
|
|
59
66
|
readonly tools: readonly ["list_privacy_policy_versions", "get_privacy_policy_version", "update_privacy_policy_with_ai", "publish_privacy_policy"];
|
|
60
67
|
readonly access: "Hosted policy tools require an owned Pro project. Version reads spend no credit; AI updates have a per-project daily limit. publish_privacy_policy changes the live page. The browser generator supports export.";
|
|
61
68
|
readonly urls: readonly [string, string, string];
|
|
62
69
|
}, {
|
|
63
70
|
readonly id: "onboarding";
|
|
64
|
-
readonly purpose: "
|
|
71
|
+
readonly purpose: "Welcome page, pin guide, install instructions and uninstall survey, with verified URLs wired into the extension.";
|
|
65
72
|
readonly tools: readonly ["generate_welcome_page_workflow", "get_project_state"];
|
|
66
|
-
readonly access: "Free welcome-page
|
|
73
|
+
readonly access: "Free welcome-page specification. Editing, hosting and responses live in the cabinet where enabled; account/project limits apply. MCP returns specifications and saved state; it has no page-publishing tool.";
|
|
67
74
|
readonly urls: readonly [string, string, string, string, string, string, string];
|
|
68
75
|
}, {
|
|
69
76
|
readonly id: "listing-and-marketing";
|
|
70
|
-
readonly purpose: "
|
|
71
|
-
readonly tools: readonly [];
|
|
72
|
-
readonly access: "
|
|
77
|
+
readonly purpose: "Listing copy, screenshots, landing page, support links and AI discovery assets.";
|
|
78
|
+
readonly tools: readonly ["generate_landing_page", "publish_landing_page", "get_landing_page", "unpublish_landing_page", "upsert_hosted_page"];
|
|
79
|
+
readonly access: "The landing-page generator is free and offline: it returns static HTML (CLI: extenshi page generate). The same page can be hosted by Extenshi at page.extenshi.io/{code} with publish_landing_page (identity and hosted.write; CLI: extenshi page publish), which also registers it as the project homepage; images there are store screenshots or Dojo uploads. A page hosted elsewhere on HTTPS is registered with upsert_hosted_page (CLI: extenshi page register). The registered homepage feeds HOMEPAGE_URL. Listing copy and store-risk review are covered by CLI generate-listing / review-risk and cabinet tools where enabled. MCP has no listing or SEO execution tool.";
|
|
73
80
|
readonly urls: readonly [string, string, string, string, string, string];
|
|
74
81
|
}, {
|
|
75
82
|
readonly id: "verification-and-ci";
|
|
76
|
-
readonly purpose: "
|
|
83
|
+
readonly purpose: "Testing the built extension in each target browser, store-risk review, final package scan and CI report retention.";
|
|
77
84
|
readonly tools: readonly ["scan_extension"];
|
|
78
|
-
readonly access: "Scan requires a local artifact and API key, and spends 1 scan credit. CLI review-risk is local.
|
|
85
|
+
readonly access: "Scan requires a local artifact and API key, and spends 1 scan credit. CLI review-risk is local. GitHub Actions is configured in the repository; browser tests run in the local environment.";
|
|
79
86
|
readonly urls: readonly [string, string, string];
|
|
80
87
|
}, {
|
|
81
88
|
readonly id: "publishing";
|
|
82
|
-
readonly purpose: "
|
|
89
|
+
readonly purpose: "Store credential validation, submission of the exact tested package to Chrome Web Store, Firefox Add-ons and/or Edge Add-ons, and verification of review status and the public listing.";
|
|
83
90
|
readonly tools: readonly ["publish_extension"];
|
|
84
91
|
readonly access: "Local stdio or CLI with local store credentials; publishing access is checked. Store registration, disclosures and review are separate steps. Upload success alone does not establish a live release.";
|
|
85
92
|
readonly urls: readonly [string, string, string];
|
|
86
93
|
}, {
|
|
87
94
|
readonly id: "maintenance";
|
|
88
|
-
readonly purpose: "
|
|
95
|
+
readonly purpose: "Listing claims, finding responses, reviews and uninstall feedback, policy updates and ongoing releases.";
|
|
89
96
|
readonly tools: readonly ["get_reviews", "get_security", "get_project_state"];
|
|
90
|
-
readonly access: "Catalog reads are metered. Ownership, declarations, responses, badges and feedback management
|
|
97
|
+
readonly access: "Catalog reads are metered. Ownership, declarations, responses, badges and feedback management live in the cabinet and depend on account access.";
|
|
91
98
|
readonly urls: readonly [string, string, string, string, string];
|
|
92
99
|
}, {
|
|
93
100
|
readonly id: "monetization";
|
|
94
101
|
readonly purpose: "Optional paid-feature integration: seller setup, offers, checkout, signed entitlements and purchase verification.";
|
|
95
102
|
readonly tools: readonly ["list_pay_apps", "create_pay_app", "get_pay_app", "get_pay_readiness", "link_pay_app", "unlink_pay_app", "archive_pay_app", "export_pay_data", "get_pay_seller", "connect_pay_seller", "refresh_pay_seller", "set_pay_seller_profile", "upsert_pay_offer", "archive_pay_offer", "set_pay_enabled", "rotate_pay_key"];
|
|
96
|
-
readonly access: "Pay applications work independently of development projects. Explicit pay.read/pay.write permission is required; older connections and API keys have no Pay grant.
|
|
103
|
+
readonly access: "Pay applications work independently of development projects. Explicit pay.read/pay.write permission is required; older connections and API keys have no Pay grant. Readiness (get_pay_readiness) and the actual SDK distribution determine whether integration is possible. The author completes the seller agreement and Stripe KYC in the browser. Checkout is enabled only after offers and profile are configured, and only with explicit authorization. Registration does not prove production deployment or npm publication.";
|
|
97
104
|
readonly urls: readonly [string, "https://dojo.extenshi.io/payments"];
|
|
98
105
|
}];
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
106
|
+
/** Top-level sections of the full guide, selectable via the `sections` parameter. */
|
|
107
|
+
export declare const GUIDE_SECTIONS: readonly ["tools", "localActions", "services", "repository", "workflow", "handoff"];
|
|
108
|
+
export type GuideSection = (typeof GUIDE_SECTIONS)[number];
|
|
109
|
+
declare function buildSections(registeredTools: readonly GuideTool[]): {
|
|
103
110
|
tools: {
|
|
104
111
|
docs: string[];
|
|
105
112
|
name: string;
|
|
@@ -116,88 +123,88 @@ export declare function buildDevelopmentGuide(registeredTools: readonly GuideToo
|
|
|
116
123
|
docs: string;
|
|
117
124
|
}[];
|
|
118
125
|
services: ({
|
|
119
|
-
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "scan_extension" | "publish_extension")[];
|
|
126
|
+
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "remove_hosted_page" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "generate_landing_page" | "publish_landing_page" | "get_landing_page" | "unpublish_landing_page" | "scan_extension" | "publish_extension")[];
|
|
120
127
|
id: "documentation";
|
|
121
|
-
purpose: "
|
|
122
|
-
access: "Free
|
|
128
|
+
purpose: "Capabilities, extension shapes, exact CLI commands and reusable skill packages.";
|
|
129
|
+
access: "Free reference; no API key. Hosted transport still requires connector sign-in.";
|
|
123
130
|
urls: readonly [string, string, string];
|
|
124
131
|
} | {
|
|
125
|
-
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "scan_extension" | "publish_extension")[];
|
|
132
|
+
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "remove_hosted_page" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "generate_landing_page" | "publish_landing_page" | "get_landing_page" | "unpublish_landing_page" | "scan_extension" | "publish_extension")[];
|
|
126
133
|
id: "account";
|
|
127
|
-
purpose: "Sign
|
|
134
|
+
purpose: "Sign-in, API keys for local tools and credit-pool balances ahead of paid work.";
|
|
128
135
|
access: "Balance lookup is free and requires identity; catalog reads and scans use credit pools.";
|
|
129
136
|
urls: readonly [string, "https://dojo.extenshi.io/api-keys", "https://dojo.extenshi.io/billing"];
|
|
130
137
|
} | {
|
|
131
|
-
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "scan_extension" | "publish_extension")[];
|
|
138
|
+
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "remove_hosted_page" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "generate_landing_page" | "publish_landing_page" | "get_landing_page" | "unpublish_landing_page" | "scan_extension" | "publish_extension")[];
|
|
132
139
|
id: "research";
|
|
133
|
-
purpose: "
|
|
134
|
-
access: "Identity required. Catalog tools cost 1 read per call; get_security costs 3. Bulk risk: up to 40 per call. Chrome review text is unavailable;
|
|
140
|
+
purpose: "Demand, competitors, user complaints, permissions and existing security findings.";
|
|
141
|
+
access: "Identity required. Catalog tools cost 1 read per call; get_security costs 3. Bulk risk: up to 40 per call. Chrome review text is unavailable; its aggregate rating is available.";
|
|
135
142
|
urls: readonly [string, "https://catalog.extenshi.io"];
|
|
136
143
|
} | {
|
|
137
|
-
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "scan_extension" | "publish_extension")[];
|
|
144
|
+
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "remove_hosted_page" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "generate_landing_page" | "publish_landing_page" | "get_landing_page" | "unpublish_landing_page" | "scan_extension" | "publish_extension")[];
|
|
138
145
|
id: "projects";
|
|
139
|
-
purpose: "
|
|
140
|
-
access: "Own-project MCP reads are free and require identity.
|
|
146
|
+
purpose: "Existing projects: selected browser types, manifests, repository binding, saved tool state, hosted URLs and starter files.";
|
|
147
|
+
access: "Own-project MCP reads are free and require identity. Projects are created in the cabinet. Repository metadata, source/built manifests and scope synchronize through typed revisioned patches. project.write, evidence.write and hosted.write require explicit OAuth consent. Repository metadata does not grant GitHub access. CI evidence (source=ci) is written only by the verified ingest endpoint, which authenticates with a secret from create_ci_ingest_secret. Automated release-readiness access requires a Pro project.";
|
|
141
148
|
urls: readonly [string, "https://dojo.extenshi.io/projects", "https://dojo.extenshi.io/integrations"];
|
|
142
149
|
} | {
|
|
143
|
-
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "scan_extension" | "publish_extension")[];
|
|
150
|
+
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "remove_hosted_page" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "generate_landing_page" | "publish_landing_page" | "get_landing_page" | "unpublish_landing_page" | "scan_extension" | "publish_extension")[];
|
|
144
151
|
id: "manifest";
|
|
145
|
-
purpose: "
|
|
146
|
-
access: "Free template
|
|
152
|
+
purpose: "Minimum permissions, target browsers and manifest entries, with every referenced file present.";
|
|
153
|
+
access: "Free template reference; project reads require identity. The cabinet also has a manifest editor.";
|
|
147
154
|
urls: readonly [string, string];
|
|
148
155
|
} | {
|
|
149
|
-
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "scan_extension" | "publish_extension")[];
|
|
156
|
+
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "remove_hosted_page" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "generate_landing_page" | "publish_landing_page" | "get_landing_page" | "unpublish_landing_page" | "scan_extension" | "publish_extension")[];
|
|
150
157
|
id: "localization";
|
|
151
|
-
purpose: "
|
|
152
|
-
access: "Free static
|
|
158
|
+
purpose: "Local translation of extension messages and validation of the resulting locales.";
|
|
159
|
+
access: "Free static reference; local CLI validation requires no key or Extenshi credits. Translation uses the developer's own provider. CLI release availability is part of the reference.";
|
|
153
160
|
urls: readonly [string];
|
|
154
161
|
} | {
|
|
155
|
-
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "scan_extension" | "publish_extension")[];
|
|
162
|
+
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "remove_hosted_page" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "generate_landing_page" | "publish_landing_page" | "get_landing_page" | "unpublish_landing_page" | "scan_extension" | "publish_extension")[];
|
|
156
163
|
id: "icons";
|
|
157
|
-
purpose: "
|
|
158
|
-
access: "Free
|
|
164
|
+
purpose: "SVG icon design, toolbar-size preview and store-asset export with the local CLI.";
|
|
165
|
+
access: "Free. Drawing, browser preview and file export happen locally; the cabinet offers its own icon generator subject to availability and credits.";
|
|
159
166
|
urls: readonly [string, string];
|
|
160
167
|
} | {
|
|
161
|
-
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "scan_extension" | "publish_extension")[];
|
|
168
|
+
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "remove_hosted_page" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "generate_landing_page" | "publish_landing_page" | "get_landing_page" | "unpublish_landing_page" | "scan_extension" | "publish_extension")[];
|
|
162
169
|
id: "privacy";
|
|
163
|
-
purpose: "
|
|
170
|
+
purpose: "A policy that reflects actual data practices: generated and exported, or hosted with version history.";
|
|
164
171
|
access: "Hosted policy tools require an owned Pro project. Version reads spend no credit; AI updates have a per-project daily limit. publish_privacy_policy changes the live page. The browser generator supports export.";
|
|
165
172
|
urls: readonly [string, string, string];
|
|
166
173
|
} | {
|
|
167
|
-
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "scan_extension" | "publish_extension")[];
|
|
174
|
+
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "remove_hosted_page" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "generate_landing_page" | "publish_landing_page" | "get_landing_page" | "unpublish_landing_page" | "scan_extension" | "publish_extension")[];
|
|
168
175
|
id: "onboarding";
|
|
169
|
-
purpose: "
|
|
170
|
-
access: "Free welcome-page
|
|
176
|
+
purpose: "Welcome page, pin guide, install instructions and uninstall survey, with verified URLs wired into the extension.";
|
|
177
|
+
access: "Free welcome-page specification. Editing, hosting and responses live in the cabinet where enabled; account/project limits apply. MCP returns specifications and saved state; it has no page-publishing tool.";
|
|
171
178
|
urls: readonly [string, string, string, string, string, string, string];
|
|
172
179
|
} | {
|
|
173
|
-
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "scan_extension" | "publish_extension")[];
|
|
180
|
+
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "remove_hosted_page" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "generate_landing_page" | "publish_landing_page" | "get_landing_page" | "unpublish_landing_page" | "scan_extension" | "publish_extension")[];
|
|
174
181
|
id: "listing-and-marketing";
|
|
175
|
-
purpose: "
|
|
176
|
-
access: "
|
|
182
|
+
purpose: "Listing copy, screenshots, landing page, support links and AI discovery assets.";
|
|
183
|
+
access: "The landing-page generator is free and offline: it returns static HTML (CLI: extenshi page generate). The same page can be hosted by Extenshi at page.extenshi.io/{code} with publish_landing_page (identity and hosted.write; CLI: extenshi page publish), which also registers it as the project homepage; images there are store screenshots or Dojo uploads. A page hosted elsewhere on HTTPS is registered with upsert_hosted_page (CLI: extenshi page register). The registered homepage feeds HOMEPAGE_URL. Listing copy and store-risk review are covered by CLI generate-listing / review-risk and cabinet tools where enabled. MCP has no listing or SEO execution tool.";
|
|
177
184
|
urls: readonly [string, string, string, string, string, string];
|
|
178
185
|
} | {
|
|
179
|
-
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "scan_extension" | "publish_extension")[];
|
|
186
|
+
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "remove_hosted_page" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "generate_landing_page" | "publish_landing_page" | "get_landing_page" | "unpublish_landing_page" | "scan_extension" | "publish_extension")[];
|
|
180
187
|
id: "verification-and-ci";
|
|
181
|
-
purpose: "
|
|
182
|
-
access: "Scan requires a local artifact and API key, and spends 1 scan credit. CLI review-risk is local.
|
|
188
|
+
purpose: "Testing the built extension in each target browser, store-risk review, final package scan and CI report retention.";
|
|
189
|
+
access: "Scan requires a local artifact and API key, and spends 1 scan credit. CLI review-risk is local. GitHub Actions is configured in the repository; browser tests run in the local environment.";
|
|
183
190
|
urls: readonly [string, string, string];
|
|
184
191
|
} | {
|
|
185
|
-
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "scan_extension" | "publish_extension")[];
|
|
192
|
+
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "remove_hosted_page" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "generate_landing_page" | "publish_landing_page" | "get_landing_page" | "unpublish_landing_page" | "scan_extension" | "publish_extension")[];
|
|
186
193
|
id: "publishing";
|
|
187
|
-
purpose: "
|
|
194
|
+
purpose: "Store credential validation, submission of the exact tested package to Chrome Web Store, Firefox Add-ons and/or Edge Add-ons, and verification of review status and the public listing.";
|
|
188
195
|
access: "Local stdio or CLI with local store credentials; publishing access is checked. Store registration, disclosures and review are separate steps. Upload success alone does not establish a live release.";
|
|
189
196
|
urls: readonly [string, string, string];
|
|
190
197
|
} | {
|
|
191
|
-
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "scan_extension" | "publish_extension")[];
|
|
198
|
+
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "remove_hosted_page" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "generate_landing_page" | "publish_landing_page" | "get_landing_page" | "unpublish_landing_page" | "scan_extension" | "publish_extension")[];
|
|
192
199
|
id: "maintenance";
|
|
193
|
-
purpose: "
|
|
194
|
-
access: "Catalog reads are metered. Ownership, declarations, responses, badges and feedback management
|
|
200
|
+
purpose: "Listing claims, finding responses, reviews and uninstall feedback, policy updates and ongoing releases.";
|
|
201
|
+
access: "Catalog reads are metered. Ownership, declarations, responses, badges and feedback management live in the cabinet and depend on account access.";
|
|
195
202
|
urls: readonly [string, string, string, string, string];
|
|
196
203
|
} | {
|
|
197
|
-
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "scan_extension" | "publish_extension")[];
|
|
204
|
+
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "remove_hosted_page" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "generate_landing_page" | "publish_landing_page" | "get_landing_page" | "unpublish_landing_page" | "scan_extension" | "publish_extension")[];
|
|
198
205
|
id: "monetization";
|
|
199
206
|
purpose: "Optional paid-feature integration: seller setup, offers, checkout, signed entitlements and purchase verification.";
|
|
200
|
-
access: "Pay applications work independently of development projects. Explicit pay.read/pay.write permission is required; older connections and API keys have no Pay grant.
|
|
207
|
+
access: "Pay applications work independently of development projects. Explicit pay.read/pay.write permission is required; older connections and API keys have no Pay grant. Readiness (get_pay_readiness) and the actual SDK distribution determine whether integration is possible. The author completes the seller agreement and Stripe KYC in the browser. Checkout is enabled only after offers and profile are configured, and only with explicit authorization. Registration does not prove production deployment or npm publication.";
|
|
201
208
|
urls: readonly [string, "https://dojo.extenshi.io/payments"];
|
|
202
209
|
})[];
|
|
203
210
|
repository: {
|
|
@@ -209,41 +216,64 @@ export declare function buildDevelopmentGuide(registeredTools: readonly GuideToo
|
|
|
209
216
|
};
|
|
210
217
|
workflow: readonly [{
|
|
211
218
|
readonly id: "scope";
|
|
212
|
-
readonly actions: "
|
|
219
|
+
readonly actions: "Stage 1 — Scope: the user problem, target sites and browsers, MVP, permissions/data needs, acceptance criteria, distribution and optional monetization are written down. Deferred features stay out of release promises.";
|
|
220
|
+
readonly relatedTools: readonly ["get_development_guide", "search_docs"];
|
|
213
221
|
readonly doneWhen: "A written scope and acceptance checklist cover implementation, testing, assets, release and maintenance.";
|
|
214
222
|
}, {
|
|
215
223
|
readonly id: "research";
|
|
216
|
-
readonly actions: "
|
|
217
|
-
readonly
|
|
224
|
+
readonly actions: "Stage 2 — Research (optional): demand, competitors, user complaints and security findings for a small relevant set of existing extensions; gaps and constraints are recorded. Catalog reads are metered, so the credit balance matters here.";
|
|
225
|
+
readonly relatedTools: readonly ["get_credit_balance", "search_extensions", "market_overview", "get_extension", "get_reviews", "get_security", "get_risk_by_store_ids"];
|
|
226
|
+
readonly doneWhen: "The chosen feature and supported surfaces have evidence; skipped research is recorded as skipped with a reason.";
|
|
218
227
|
}, {
|
|
219
228
|
readonly id: "project-and-repository";
|
|
220
|
-
readonly actions: "
|
|
229
|
+
readonly actions: "Stage 3 — Project and repository: an existing dojo project and its bound repository are reused. Without a project, one is created in dojo where available, or work continues locally with integration recorded as pending. A Git remote (GitHub preferred) exists before substantial implementation.";
|
|
230
|
+
readonly relatedTools: readonly ["list_my_projects", "get_project_state"];
|
|
221
231
|
readonly doneWhen: "Project ID (or explicit pending status), repository URL, branch, README, build commands and release checklist are recorded.";
|
|
222
232
|
}, {
|
|
223
233
|
readonly id: "architecture-and-scaffold";
|
|
224
|
-
readonly actions: "
|
|
234
|
+
readonly actions: "Stage 4 — Architecture and scaffold: extension types, minimum permissions and browser-specific files are chosen. A new project gets one scaffold per browser in separate outputs; an existing repository keeps its code. Tool states are read only for the keys the extension needs. integration.file is written verbatim to integration.path, integration.unwired lists what is still unconnected, and project state is re-read after cabinet changes.";
|
|
235
|
+
readonly relatedTools: readonly ["list_extension_templates", "get_project_scaffold", "get_project_state"];
|
|
225
236
|
readonly doneWhen: "Each manifest references real packaged files; browser variants and the project integration contract are preserved.";
|
|
226
237
|
}, {
|
|
227
238
|
readonly id: "implementation";
|
|
228
|
-
readonly actions: "
|
|
239
|
+
readonly actions: "Stage 5 — Implementation: the MVP, accessible popup/options, storage and error handling, tested on the actual target sites and across the extension lifecycle, including service-worker restart and permission denial. Localization covers message translation, structural validation and manual language/RTL review. Payments or user accounts depend on a verified supported integration with its prerequisites complete.";
|
|
240
|
+
readonly relatedTools: readonly ["localize_workflow"];
|
|
229
241
|
readonly doneWhen: "Acceptance criteria pass on real target surfaces; optional integrations have end-to-end evidence or remain explicit blockers.";
|
|
230
242
|
}, {
|
|
231
243
|
readonly id: "assets-and-hosted-pages";
|
|
232
|
-
readonly actions: "
|
|
244
|
+
readonly actions: "Stage 6 — Assets and hosted pages: icon, welcome page, screenshots, pin/install instructions, privacy policy, uninstall feedback, support and landing URLs. A landing page is generated as static HTML and either hosted by Extenshi (page.extenshi.io) or on any HTTPS origin; it is registered as the project homepage, which sets HOMEPAGE_URL. An existing Pro policy is updated as a reviewed proposal (proposedMarkdown) and published within the author's authorization. Returned URLs are verified against project state.";
|
|
245
|
+
readonly relatedTools: readonly ["generate_icon_workflow", "generate_welcome_page_workflow", "generate_landing_page", "publish_landing_page", "upsert_hosted_page", "list_privacy_policy_versions", "get_privacy_policy_version", "update_privacy_policy_with_ai", "publish_privacy_policy", "get_project_state"];
|
|
233
246
|
readonly doneWhen: "Assets show the real product; hosted links load and match actual data practices; installation/uninstallation flows work.";
|
|
234
247
|
}, {
|
|
235
248
|
readonly id: "quality-and-listing";
|
|
236
|
-
readonly actions: "
|
|
249
|
+
readonly actions: "Stage 7 — Quality and listing: each browser package is built; unit/integration checks and manual browser scenarios run. Disclosures, permission justifications, listing copy and screenshots are reviewed against the build (CLI review-risk and generate-listing; exact commands in the CLI docs). The final package is scanned, and CI follows the cli-github-actions docs.";
|
|
250
|
+
readonly relatedTools: readonly ["search_docs", "scan_extension"];
|
|
237
251
|
readonly doneWhen: "The exact versioned artifact has passing checks, retained scan/review reports and truthful store materials; unresolved findings have a disposition.";
|
|
238
252
|
}, {
|
|
239
253
|
readonly id: "release";
|
|
240
|
-
readonly actions: "
|
|
254
|
+
readonly actions: "Stage 8 — Release: store accounts, credentials and submission access are verified; a validate-only run precedes submission where available. The tested artifact is submitted within the user's publishing authorization through local MCP, CLI or the store console. Upload, submission, approval and public-listing status are recorded separately.";
|
|
255
|
+
readonly relatedTools: readonly ["publish_extension"];
|
|
241
256
|
readonly doneWhen: "Store status and installed version are verified; pending store review is reported as pending, with artifact and source commit recorded.";
|
|
242
257
|
}, {
|
|
243
258
|
readonly id: "operate";
|
|
244
|
-
readonly actions: "
|
|
259
|
+
readonly actions: "Stage 9 — Operate: catalog listing claim, declarations and security badge, findings and uninstall feedback, optional purchase/license flow checks, and planned updates. Later versions repeat the build, review, scan, policy and release checks.";
|
|
260
|
+
readonly relatedTools: readonly ["get_reviews", "get_security", "get_project_state"];
|
|
245
261
|
readonly doneWhen: "A handoff records repository/commit, artifacts, URLs, checks, remaining blockers, support owner and follow-up work.";
|
|
246
262
|
}];
|
|
247
263
|
handoff: string[];
|
|
248
264
|
};
|
|
265
|
+
export type GuideSections = ReturnType<typeof buildSections>;
|
|
266
|
+
/** Normalise a caller's `sections` argument: unknown ids are dropped, `all` expands. */
|
|
267
|
+
export declare function resolveGuideSections(requested?: readonly string[]): GuideSection[];
|
|
268
|
+
/**
|
|
269
|
+
* Build the guide. With no `sections`, returns the compact overview: tool names,
|
|
270
|
+
* workflow stage ids with exit criteria, and a table of contents. Listed
|
|
271
|
+
* sections (or `all`) are returned in full.
|
|
272
|
+
*/
|
|
273
|
+
export declare function buildDevelopmentGuide(registeredTools: readonly GuideTool[], requested?: readonly string[]): {
|
|
274
|
+
schemaVersion: 2;
|
|
275
|
+
documentation: string;
|
|
276
|
+
availability: string;
|
|
277
|
+
} & Partial<GuideSections> & Record<string, unknown>;
|
|
278
|
+
export {};
|
|
249
279
|
//# sourceMappingURL=development-guide.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"development-guide.d.ts","sourceRoot":"","sources":["../src/development-guide.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"development-guide.d.ts","sourceRoot":"","sources":["../src/development-guide.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,SAAS;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE;QACZ,YAAY,CAAC,EAAE,OAAO,CAAA;QACtB,eAAe,CAAC,EAAE,OAAO,CAAA;KACzB,CAAA;CACD;AAKD,eAAO,MAAM,qBAAqB,QAA+B,CAAA;AAEjE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiMvB,CAAA;AAqGV,qFAAqF;AACrF,eAAO,MAAM,cAAc,qFAOjB,CAAA;AACV,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAc1D,iBAAS,aAAa,CAAC,eAAe,EAAE,SAAS,SAAS,EAAE;;;cA1UrD,MAAM;qBACC,MAAM;qBACN;YACZ,YAAY,CAAC,EAAE,OAAO,CAAA;YACtB,eAAe,CAAC,EAAE,OAAO,CAAA;SACzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+XD;AAED,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAA;AAE5D,wFAAwF;AACxF,wBAAgB,oBAAoB,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,YAAY,EAAE,CAIlF;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACpC,eAAe,EAAE,SAAS,SAAS,EAAE,EACrC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,GAC3B;IAAE,aAAa,EAAE,CAAC,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,aAAa,CAAC,GAC5F,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAuBvB"}
|