@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.
Files changed (50) hide show
  1. package/README.md +35 -3
  2. package/dist/bff.d.ts +35 -5
  3. package/dist/bff.d.ts.map +1 -1
  4. package/dist/bff.js +15 -0
  5. package/dist/bff.js.map +1 -1
  6. package/dist/development-guide.d.ts +118 -76
  7. package/dist/development-guide.d.ts.map +1 -1
  8. package/dist/development-guide.js +151 -44
  9. package/dist/development-guide.js.map +1 -1
  10. package/dist/docs.d.ts +45 -4
  11. package/dist/docs.d.ts.map +1 -1
  12. package/dist/docs.js +162 -17
  13. package/dist/docs.js.map +1 -1
  14. package/dist/icon-workflow.d.ts +5 -4
  15. package/dist/icon-workflow.d.ts.map +1 -1
  16. package/dist/icon-workflow.js +33 -32
  17. package/dist/icon-workflow.js.map +1 -1
  18. package/dist/localize-workflow.d.ts +8 -0
  19. package/dist/localize-workflow.d.ts.map +1 -0
  20. package/dist/localize-workflow.js +105 -0
  21. package/dist/localize-workflow.js.map +1 -0
  22. package/dist/pay.d.ts +214 -0
  23. package/dist/pay.d.ts.map +1 -0
  24. package/dist/pay.js +202 -0
  25. package/dist/pay.js.map +1 -0
  26. package/dist/search-filters.js +1 -1
  27. package/dist/search-filters.js.map +1 -1
  28. package/dist/shape.d.ts +34 -0
  29. package/dist/shape.d.ts.map +1 -1
  30. package/dist/shape.js +150 -3
  31. package/dist/shape.js.map +1 -1
  32. package/dist/templates.js +5 -5
  33. package/dist/templates.js.map +1 -1
  34. package/dist/tools.d.ts +2 -1
  35. package/dist/tools.d.ts.map +1 -1
  36. package/dist/tools.js +333 -106
  37. package/dist/tools.js.map +1 -1
  38. package/dist/welcome-agent-brief.d.ts +9 -9
  39. package/dist/welcome-agent-brief.d.ts.map +1 -1
  40. package/dist/welcome-agent-brief.js +32 -32
  41. package/dist/welcome-agent-brief.js.map +1 -1
  42. package/dist/welcome-workflow.d.ts +5 -5
  43. package/dist/welcome-workflow.d.ts.map +1 -1
  44. package/dist/welcome-workflow.js +13 -14
  45. package/dist/welcome-workflow.js.map +1 -1
  46. package/package.json +10 -8
  47. package/dist/project-workspace.d.ts +0 -1976
  48. package/dist/project-workspace.d.ts.map +0 -1
  49. package/dist/project-workspace.js +0 -350
  50. package/dist/project-workspace.js.map +0 -1
@@ -1,6 +1,13 @@
1
- /** Developer lifecycle guidance shared by local and hosted MCP transports.
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: "Discover capabilities, extension shapes, exact CLI commands and reusable agent skills.";
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 guidance; no API key. Hosted transport still requires connector sign-in.";
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 in, provision an API key for local tools and check credit pools before paid work.";
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: "Validate demand, competitors, user complaints, permissions and existing security findings.";
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; use its aggregate.";
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: "Read an existing project, selected browser types, manifests, repository binding, saved tool state, hosted URLs and starter files.";
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. Create projects in the cabinet. Synchronize repository metadata, source/built manifests and scope with typed revisioned patches. project.write and evidence.write require explicit OAuth consent. Repository metadata does not grant GitHub access. Automated release-readiness access requires a Pro project.";
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: "Choose minimum permissions, target browsers and manifest entries; validate every referenced file.";
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 guidance; project reads require identity. The cabinet also has a manifest editor.";
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: "Design the SVG, preview at toolbar sizes and export store assets with the local CLI.";
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 workflow. Drawing, browser preview and file export happen in the local agent environment; the cabinet offers its own icon generator subject to availability and credits.";
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: "Describe actual data practices; generate/export a policy or maintain a hosted policy and its version history.";
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: "Prepare a welcome page, pin guide, install instructions and uninstall survey; wire verified URLs into the extension.";
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 brief. Edit, host and inspect responses in the cabinet where enabled; account/project limits apply. MCP returns guidance and saved state, not a page-publishing tool.";
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: "Prepare listing copy, screenshots, landing page, support links and AI discovery assets.";
77
+ readonly purpose: "Listing copy, screenshots, landing page, support links and AI discovery assets.";
65
78
  readonly tools: readonly [];
66
- readonly access: "Use CLI generate-listing / review-risk and cabinet tools where enabled. MCP has no listing, landing-page or SEO execution tool.";
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: "Test the built extension in each target browser, review store risks, scan the final package and retain reports in CI.";
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. Configure GitHub Actions in the repository; browser tests use the agent environment.";
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: "Validate store credentials, submit the exact tested package and verify review status and the public listing.";
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: "Claim the listing, respond to findings, inspect reviews/uninstall feedback, update policies and maintain releases.";
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 use the cabinet; consult account access.";
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: "Conditional integration, not a callable MCP service. Verify current SDK distribution, project access, seller agreement and payment readiness in the documentation and cabinet before planning installation or promising working payments.";
91
- readonly urls: readonly [string, "https://dojo.extenshi.io/projects"];
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
- export declare function buildDevelopmentGuide(registeredTools: readonly GuideTool[]): {
94
- schemaVersion: number;
95
- documentation: string;
96
- availability: string;
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: "Discover capabilities, extension shapes, exact CLI commands and reusable agent skills.";
116
- access: "Free guidance; no API key. Hosted transport still requires connector sign-in.";
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 in, provision an API key for local tools and check credit pools before paid work.";
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: "Validate demand, competitors, user complaints, permissions and existing security findings.";
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; use its aggregate.";
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: "Read an existing project, selected browser types, manifests, repository binding, saved tool state, hosted URLs and starter files.";
134
- access: "Own-project MCP reads are free and require identity. Create projects in the cabinet. Synchronize repository metadata, source/built manifests and scope with typed revisioned patches. project.write and evidence.write require explicit OAuth consent. Repository metadata does not grant GitHub access. Automated release-readiness access requires a Pro project.";
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: "Choose minimum permissions, target browsers and manifest entries; validate every referenced file.";
140
- access: "Free template guidance; project reads require identity. The cabinet also has a manifest editor.";
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: "Design the SVG, preview at toolbar sizes and export store assets with the local CLI.";
146
- access: "Free workflow. Drawing, browser preview and file export happen in the local agent environment; the cabinet offers its own icon generator subject to availability and credits.";
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: "Describe actual data practices; generate/export a policy or maintain a hosted policy and its version history.";
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: "Prepare a welcome page, pin guide, install instructions and uninstall survey; wire verified URLs into the extension.";
158
- access: "Free welcome-page brief. Edit, host and inspect responses in the cabinet where enabled; account/project limits apply. MCP returns guidance and saved state, not a page-publishing tool.";
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: "Prepare listing copy, screenshots, landing page, support links and AI discovery assets.";
164
- access: "Use CLI generate-listing / review-risk and cabinet tools where enabled. MCP has no listing, landing-page or SEO execution tool.";
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: "Test the built extension in each target browser, review store risks, scan the final package and retain reports in CI.";
170
- access: "Scan requires a local artifact and API key, and spends 1 scan credit. CLI review-risk is local. Configure GitHub Actions in the repository; browser tests use the agent environment.";
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: "Validate store credentials, submit the exact tested package and verify review status and the public listing.";
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: "Claim the listing, respond to findings, inspect reviews/uninstall feedback, update policies and maintain releases.";
182
- access: "Catalog reads are metered. Ownership, declarations, responses, badges and feedback management use the cabinet; consult account access.";
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: "Conditional integration, not a callable MCP service. Verify current SDK distribution, project access, seller agreement and payment readiness in the documentation and cabinet before planning installation or promising working payments.";
189
- urls: readonly [string, "https://dojo.extenshi.io/projects"];
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: "Record the user problem, target sites and browsers, MVP, permissions/data needs, acceptance criteria, distribution and optional monetization. Inspect available tools with get_development_guide; use search_docs for current details. Keep deferred features out of release promises.";
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: "If market research is needed, check get_credit_balance, then search_extensions / market_overview, get_extension and get_reviews for a small relevant set. Use get_security for detailed findings or get_risk_by_store_ids for a batch. Record gaps and constraints.";
205
- readonly doneWhen: "The chosen feature and supported surfaces have evidence; optional research is marked skipped with a reason.";
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: "With identity, call list_my_projects then get_project_state for the selected project. Reuse its repository. If no project exists, create/configure one in dojo where available; otherwise continue locally and record that integration is pending. Create or reuse a Git remote, preferably GitHub, before substantial implementation.";
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: "Call list_extension_templates, choose minimum permissions and browser-specific files. For a new project call get_project_scaffold once per browser into separate outputs; preserve existing code when integrating an existing repository. Read includeToolStates only for needed keys. Write integration.file verbatim to integration.path, review integration.unwired and re-read state after cabinet changes.";
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: "Implement the MVP, accessible popup/options, storage and error handling. Test actual target sites and extension lifecycle, including service-worker restart and permission denial. Plan localization. If payments or user accounts are needed, verify the supported integration and complete its prerequisites before depending on it.";
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: "Use generate_icon_workflow and generate_welcome_page_workflow as needed. Prepare screenshots, pin/install instructions, a privacy policy, uninstall feedback, support and landing URLs. For an existing Pro policy, list/read versions, then update_privacy_policy_with_ai when needed, review proposedMarkdown and publish within the author's authorization. Re-read get_project_state and verify the returned URLs.";
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: "Build each browser package; run unit/integration checks and manual browser scenarios. Get exact review-risk and generate-listing commands from search_docs; review disclosures, permission justifications, listing copy and screenshots against the build. Run scan_extension if available, otherwise the local CLI. Add CI using cli-github-actions docs.";
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: "Verify store accounts, credentials and submission access; use publish_extension with validate_only first when available. Submit the tested artifact within the user's publishing authorization through local MCP, CLI or the store console. Record upload, submission, approval and public-listing status separately.";
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: "Claim the catalog listing, maintain declarations and a security badge, review findings and uninstall feedback, verify optional purchase/license flows, and plan updates. Repeat build, review, scan, policy and release checks for later versions.";
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;;;GAGG;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6JvB,CAAA;AAoEV,wBAAgB,qBAAqB,CAAC,eAAe,EAAE,SAAS,SAAS,EAAE;;;;;;cA9OpE,MAAM;qBACC,MAAM;qBACN;YACZ,YAAY,CAAC,EAAE,OAAO,CAAA;YACtB,eAAe,CAAC,EAAE,OAAO,CAAA;SACzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuSD"}
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"}