@extenshi/mcp 0.6.0 → 0.8.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 +35 -3
- package/dist/bff.d.ts +35 -5
- package/dist/bff.d.ts.map +1 -1
- package/dist/bff.js +15 -0
- package/dist/bff.js.map +1 -1
- package/dist/development-guide.d.ts +118 -76
- package/dist/development-guide.d.ts.map +1 -1
- package/dist/development-guide.js +151 -44
- 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/localize-workflow.d.ts +8 -0
- package/dist/localize-workflow.d.ts.map +1 -0
- package/dist/localize-workflow.js +105 -0
- package/dist/localize-workflow.js.map +1 -0
- package/dist/pay.d.ts +214 -0
- package/dist/pay.d.ts.map +1 -0
- package/dist/pay.js +202 -0
- package/dist/pay.js.map +1 -0
- 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/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 +333 -106
- 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 +10 -8
- package/dist/project-workspace.d.ts +0 -1976
- package/dist/project-workspace.d.ts.map +0 -1
- package/dist/project-workspace.js +0 -350
- package/dist/project-workspace.js.map +0 -1
|
@@ -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,87 +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", "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];
|
|
51
|
+
}, {
|
|
52
|
+
readonly id: "localization";
|
|
53
|
+
readonly purpose: "Local translation of extension messages and validation of the resulting locales.";
|
|
54
|
+
readonly tools: readonly ["localize_workflow"];
|
|
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.";
|
|
56
|
+
readonly urls: readonly [string];
|
|
44
57
|
}, {
|
|
45
58
|
readonly id: "icons";
|
|
46
|
-
readonly purpose: "
|
|
59
|
+
readonly purpose: "SVG icon design, toolbar-size preview and store-asset export with the local CLI.";
|
|
47
60
|
readonly tools: readonly ["generate_icon_workflow"];
|
|
48
|
-
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.";
|
|
49
62
|
readonly urls: readonly [string, string];
|
|
50
63
|
}, {
|
|
51
64
|
readonly id: "privacy";
|
|
52
|
-
readonly purpose: "
|
|
65
|
+
readonly purpose: "A policy that reflects actual data practices: generated and exported, or hosted with version history.";
|
|
53
66
|
readonly tools: readonly ["list_privacy_policy_versions", "get_privacy_policy_version", "update_privacy_policy_with_ai", "publish_privacy_policy"];
|
|
54
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.";
|
|
55
68
|
readonly urls: readonly [string, string, string];
|
|
56
69
|
}, {
|
|
57
70
|
readonly id: "onboarding";
|
|
58
|
-
readonly purpose: "
|
|
71
|
+
readonly purpose: "Welcome page, pin guide, install instructions and uninstall survey, with verified URLs wired into the extension.";
|
|
59
72
|
readonly tools: readonly ["generate_welcome_page_workflow", "get_project_state"];
|
|
60
|
-
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.";
|
|
61
74
|
readonly urls: readonly [string, string, string, string, string, string, string];
|
|
62
75
|
}, {
|
|
63
76
|
readonly id: "listing-and-marketing";
|
|
64
|
-
readonly purpose: "
|
|
77
|
+
readonly purpose: "Listing copy, screenshots, landing page, support links and AI discovery assets.";
|
|
65
78
|
readonly tools: readonly [];
|
|
66
|
-
readonly access: "
|
|
79
|
+
readonly access: "Covered by CLI generate-listing / review-risk and cabinet tools where enabled. MCP has no listing, landing-page or SEO execution tool.";
|
|
67
80
|
readonly urls: readonly [string, string, string, string, string, string];
|
|
68
81
|
}, {
|
|
69
82
|
readonly id: "verification-and-ci";
|
|
70
|
-
readonly purpose: "
|
|
83
|
+
readonly purpose: "Testing the built extension in each target browser, store-risk review, final package scan and CI report retention.";
|
|
71
84
|
readonly tools: readonly ["scan_extension"];
|
|
72
|
-
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.";
|
|
73
86
|
readonly urls: readonly [string, string, string];
|
|
74
87
|
}, {
|
|
75
88
|
readonly id: "publishing";
|
|
76
|
-
readonly purpose: "
|
|
89
|
+
readonly purpose: "Store credential validation, submission of the exact tested package, and verification of review status and the public listing.";
|
|
77
90
|
readonly tools: readonly ["publish_extension"];
|
|
78
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.";
|
|
79
92
|
readonly urls: readonly [string, string, string];
|
|
80
93
|
}, {
|
|
81
94
|
readonly id: "maintenance";
|
|
82
|
-
readonly purpose: "
|
|
95
|
+
readonly purpose: "Listing claims, finding responses, reviews and uninstall feedback, policy updates and ongoing releases.";
|
|
83
96
|
readonly tools: readonly ["get_reviews", "get_security", "get_project_state"];
|
|
84
|
-
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.";
|
|
85
98
|
readonly urls: readonly [string, string, string, string, string];
|
|
86
99
|
}, {
|
|
87
100
|
readonly id: "monetization";
|
|
88
101
|
readonly purpose: "Optional paid-feature integration: seller setup, offers, checkout, signed entitlements and purchase verification.";
|
|
89
|
-
readonly tools: readonly [];
|
|
90
|
-
readonly access: "
|
|
91
|
-
readonly urls: readonly [string, "https://dojo.extenshi.io/
|
|
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"];
|
|
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.";
|
|
104
|
+
readonly urls: readonly [string, "https://dojo.extenshi.io/payments"];
|
|
92
105
|
}];
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
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[]): {
|
|
97
110
|
tools: {
|
|
98
111
|
docs: string[];
|
|
99
112
|
name: string;
|
|
@@ -110,83 +123,89 @@ export declare function buildDevelopmentGuide(registeredTools: readonly GuideToo
|
|
|
110
123
|
docs: string;
|
|
111
124
|
}[];
|
|
112
125
|
services: ({
|
|
113
|
-
toolsInThisConnection: ("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" | "get_release_readiness" | "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" | "scan_extension" | "publish_extension")[];
|
|
114
127
|
id: "documentation";
|
|
115
|
-
purpose: "
|
|
116
|
-
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.";
|
|
117
130
|
urls: readonly [string, string, string];
|
|
118
131
|
} | {
|
|
119
|
-
toolsInThisConnection: ("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" | "get_release_readiness" | "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" | "scan_extension" | "publish_extension")[];
|
|
120
133
|
id: "account";
|
|
121
|
-
purpose: "Sign
|
|
134
|
+
purpose: "Sign-in, API keys for local tools and credit-pool balances ahead of paid work.";
|
|
122
135
|
access: "Balance lookup is free and requires identity; catalog reads and scans use credit pools.";
|
|
123
136
|
urls: readonly [string, "https://dojo.extenshi.io/api-keys", "https://dojo.extenshi.io/billing"];
|
|
124
137
|
} | {
|
|
125
|
-
toolsInThisConnection: ("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" | "get_release_readiness" | "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" | "scan_extension" | "publish_extension")[];
|
|
126
139
|
id: "research";
|
|
127
|
-
purpose: "
|
|
128
|
-
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.";
|
|
129
142
|
urls: readonly [string, "https://catalog.extenshi.io"];
|
|
130
143
|
} | {
|
|
131
|
-
toolsInThisConnection: ("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" | "get_release_readiness" | "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" | "scan_extension" | "publish_extension")[];
|
|
132
145
|
id: "projects";
|
|
133
|
-
purpose: "
|
|
134
|
-
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.";
|
|
135
148
|
urls: readonly [string, "https://dojo.extenshi.io/projects", "https://dojo.extenshi.io/integrations"];
|
|
136
149
|
} | {
|
|
137
|
-
toolsInThisConnection: ("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" | "get_release_readiness" | "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" | "scan_extension" | "publish_extension")[];
|
|
138
151
|
id: "manifest";
|
|
139
|
-
purpose: "
|
|
140
|
-
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.";
|
|
141
154
|
urls: readonly [string, string];
|
|
142
155
|
} | {
|
|
143
|
-
toolsInThisConnection: ("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" | "get_release_readiness" | "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" | "scan_extension" | "publish_extension")[];
|
|
157
|
+
id: "localization";
|
|
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.";
|
|
160
|
+
urls: readonly [string];
|
|
161
|
+
} | {
|
|
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" | "scan_extension" | "publish_extension")[];
|
|
144
163
|
id: "icons";
|
|
145
|
-
purpose: "
|
|
146
|
-
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.";
|
|
147
166
|
urls: readonly [string, string];
|
|
148
167
|
} | {
|
|
149
|
-
toolsInThisConnection: ("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" | "get_release_readiness" | "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" | "scan_extension" | "publish_extension")[];
|
|
150
169
|
id: "privacy";
|
|
151
|
-
purpose: "
|
|
170
|
+
purpose: "A policy that reflects actual data practices: generated and exported, or hosted with version history.";
|
|
152
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.";
|
|
153
172
|
urls: readonly [string, string, string];
|
|
154
173
|
} | {
|
|
155
|
-
toolsInThisConnection: ("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" | "get_release_readiness" | "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" | "scan_extension" | "publish_extension")[];
|
|
156
175
|
id: "onboarding";
|
|
157
|
-
purpose: "
|
|
158
|
-
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.";
|
|
159
178
|
urls: readonly [string, string, string, string, string, string, string];
|
|
160
179
|
} | {
|
|
161
|
-
toolsInThisConnection: ("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" | "get_release_readiness" | "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" | "scan_extension" | "publish_extension")[];
|
|
162
181
|
id: "listing-and-marketing";
|
|
163
|
-
purpose: "
|
|
164
|
-
access: "
|
|
182
|
+
purpose: "Listing copy, screenshots, landing page, support links and AI discovery assets.";
|
|
183
|
+
access: "Covered by CLI generate-listing / review-risk and cabinet tools where enabled. MCP has no listing, landing-page or SEO execution tool.";
|
|
165
184
|
urls: readonly [string, string, string, string, string, string];
|
|
166
185
|
} | {
|
|
167
|
-
toolsInThisConnection: ("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" | "get_release_readiness" | "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" | "scan_extension" | "publish_extension")[];
|
|
168
187
|
id: "verification-and-ci";
|
|
169
|
-
purpose: "
|
|
170
|
-
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.";
|
|
171
190
|
urls: readonly [string, string, string];
|
|
172
191
|
} | {
|
|
173
|
-
toolsInThisConnection: ("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" | "get_release_readiness" | "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" | "scan_extension" | "publish_extension")[];
|
|
174
193
|
id: "publishing";
|
|
175
|
-
purpose: "
|
|
194
|
+
purpose: "Store credential validation, submission of the exact tested package, and verification of review status and the public listing.";
|
|
176
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.";
|
|
177
196
|
urls: readonly [string, string, string];
|
|
178
197
|
} | {
|
|
179
|
-
toolsInThisConnection: ("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" | "get_release_readiness" | "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" | "scan_extension" | "publish_extension")[];
|
|
180
199
|
id: "maintenance";
|
|
181
|
-
purpose: "
|
|
182
|
-
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.";
|
|
183
202
|
urls: readonly [string, string, string, string, string];
|
|
184
203
|
} | {
|
|
185
|
-
toolsInThisConnection: ("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" | "get_release_readiness" | "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" | "scan_extension" | "publish_extension")[];
|
|
186
205
|
id: "monetization";
|
|
187
206
|
purpose: "Optional paid-feature integration: seller setup, offers, checkout, signed entitlements and purchase verification.";
|
|
188
|
-
access: "
|
|
189
|
-
urls: readonly [string, "https://dojo.extenshi.io/
|
|
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.";
|
|
208
|
+
urls: readonly [string, "https://dojo.extenshi.io/payments"];
|
|
190
209
|
})[];
|
|
191
210
|
repository: {
|
|
192
211
|
recommendation: string;
|
|
@@ -197,41 +216,64 @@ export declare function buildDevelopmentGuide(registeredTools: readonly GuideToo
|
|
|
197
216
|
};
|
|
198
217
|
workflow: readonly [{
|
|
199
218
|
readonly id: "scope";
|
|
200
|
-
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"];
|
|
201
221
|
readonly doneWhen: "A written scope and acceptance checklist cover implementation, testing, assets, release and maintenance.";
|
|
202
222
|
}, {
|
|
203
223
|
readonly id: "research";
|
|
204
|
-
readonly actions: "
|
|
205
|
-
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.";
|
|
206
227
|
}, {
|
|
207
228
|
readonly id: "project-and-repository";
|
|
208
|
-
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"];
|
|
209
231
|
readonly doneWhen: "Project ID (or explicit pending status), repository URL, branch, README, build commands and release checklist are recorded.";
|
|
210
232
|
}, {
|
|
211
233
|
readonly id: "architecture-and-scaffold";
|
|
212
|
-
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"];
|
|
213
236
|
readonly doneWhen: "Each manifest references real packaged files; browser variants and the project integration contract are preserved.";
|
|
214
237
|
}, {
|
|
215
238
|
readonly id: "implementation";
|
|
216
|
-
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"];
|
|
217
241
|
readonly doneWhen: "Acceptance criteria pass on real target surfaces; optional integrations have end-to-end evidence or remain explicit blockers.";
|
|
218
242
|
}, {
|
|
219
243
|
readonly id: "assets-and-hosted-pages";
|
|
220
|
-
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. 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", "list_privacy_policy_versions", "get_privacy_policy_version", "update_privacy_policy_with_ai", "publish_privacy_policy", "get_project_state"];
|
|
221
246
|
readonly doneWhen: "Assets show the real product; hosted links load and match actual data practices; installation/uninstallation flows work.";
|
|
222
247
|
}, {
|
|
223
248
|
readonly id: "quality-and-listing";
|
|
224
|
-
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"];
|
|
225
251
|
readonly doneWhen: "The exact versioned artifact has passing checks, retained scan/review reports and truthful store materials; unresolved findings have a disposition.";
|
|
226
252
|
}, {
|
|
227
253
|
readonly id: "release";
|
|
228
|
-
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"];
|
|
229
256
|
readonly doneWhen: "Store status and installed version are verified; pending store review is reported as pending, with artifact and source commit recorded.";
|
|
230
257
|
}, {
|
|
231
258
|
readonly id: "operate";
|
|
232
|
-
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"];
|
|
233
261
|
readonly doneWhen: "A handoff records repository/commit, artifacts, URLs, checks, remaining blockers, support owner and follow-up work.";
|
|
234
262
|
}];
|
|
235
263
|
handoff: string[];
|
|
236
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 {};
|
|
237
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2LvB,CAAA;AAkGV,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;;;cAjUrD,MAAM;qBACC,MAAM;qBACN;YACZ,YAAY,CAAC,EAAE,OAAO,CAAA;YACtB,eAAe,CAAC,EAAE,OAAO,CAAA;SACzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsXD;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"}
|