@extenshi/mcp 0.6.0 → 0.7.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 +31 -0
- package/dist/bff.d.ts +30 -5
- package/dist/bff.d.ts.map +1 -1
- package/dist/bff.js +14 -0
- package/dist/bff.js.map +1 -1
- package/dist/development-guide.d.ts +34 -22
- package/dist/development-guide.d.ts.map +1 -1
- package/dist/development-guide.js +33 -5
- package/dist/development-guide.js.map +1 -1
- package/dist/localize-workflow.d.ts +3 -0
- package/dist/localize-workflow.d.ts.map +1 -0
- package/dist/localize-workflow.js +87 -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/tools.d.ts +1 -1
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +145 -6
- package/dist/tools.js.map +1 -1
- package/package.json +8 -7
- 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
package/README.md
CHANGED
|
@@ -60,6 +60,10 @@ stdio or CLI. See the [development workflow](https://docs.extenshi.io/developers
|
|
|
60
60
|
| `get_project_workspace` | Revisioned repository metadata, source/built manifests, scope and release snapshot | Free; identity required |
|
|
61
61
|
| `diff_project_state` | Three-way metadata preview against a server-held base revision | Free; project read access |
|
|
62
62
|
| `apply_project_patch` | Apply a typed metadata patch with conflicts, tombstones and idempotency | Requires project.write for OAuth |
|
|
63
|
+
| `create_ci_ingest_secret` | Create or rotate the CI evidence ingest secret (shown once, store in Actions secrets) | Requires project.write for OAuth |
|
|
64
|
+
| `upsert_hosted_page` | Register the project homepage/support URL (HTTPS, reachable, hashed) | Requires hosted.write for OAuth |
|
|
65
|
+
| `verify_hosted_artifact` | Re-fetch and compare a hosted page against its record (verified/changed/unreachable) | Requires hosted.write for OAuth |
|
|
66
|
+
| `list_hosted_pages` | Registered hosted pages with verification status | Free; identity required |
|
|
63
67
|
| `record_project_evidence` | Store metadata bound to the exact artifact, input hash, browser and source revision | Requires evidence.write for OAuth |
|
|
64
68
|
| `get_release_readiness` | Explain current, stale and missing release checks by browser and locale | Pro project; project read access |
|
|
65
69
|
| `list_my_projects` | Your projects, repository bindings and claimed listings | Free; identity required |
|
|
@@ -70,6 +74,7 @@ stdio or CLI. See the [development workflow](https://docs.extenshi.io/developers
|
|
|
70
74
|
| `update_privacy_policy_with_ai` | Propose a policy update for the author to review | Pro project; daily update limit applies |
|
|
71
75
|
| `publish_privacy_policy` | Publish a policy at the project's hosted URL | Pro project; changes the live page |
|
|
72
76
|
| `search_docs` | Search the Extenshi docs + `@extenshi/cli` reference so the assistant can quote exact commands | Free (no key) |
|
|
77
|
+
| `localize_workflow` | Local message translation contract, CLI validation and manual review gates | Free (no key) |
|
|
73
78
|
| `generate_icon_workflow` | Icon design requirements + the local agent-draws-SVG → `npx @extenshi/cli@latest icon preview` → export workflow | Free (no key) |
|
|
74
79
|
| `generate_welcome_page_workflow` | Design brief for the post-install welcome page: the one action it must drive, which illustrations to produce, where to place click markers, and the block JSON to return | Free (no key) |
|
|
75
80
|
| `scan_extension` | Pre-publish security scan of a local artifact (.zip/.crx/.xpi), with live progress | 1 scan |
|
|
@@ -118,3 +123,29 @@ Publishing is handled by `./scripts/publish.sh` (npm Automation token from Infis
|
|
|
118
123
|
`DRY_RUN=1 ./scripts/publish.sh` to validate). Requires Node ≥20.
|
|
119
124
|
|
|
120
125
|
See the [project synchronization workflow](https://docs.extenshi.io/developers/project-sync) for CLI commands, revision conflicts, evidence freshness and OAuth recovery.
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
### Standalone Pay applications
|
|
129
|
+
|
|
130
|
+
These tools require a backend with standalone Pay support. A development project is optional. Request explicit `pay.read` and/or `pay.write` OAuth scopes, or grant Pay permissions to a local API key in [API keys](https://dojo.extenshi.io/api-keys). Older credentials have no Pay access. Tool registration does not prove backend rollout or SDK npm publication.
|
|
131
|
+
|
|
132
|
+
| Tool | Permission | Behavior |
|
|
133
|
+
| --- | --- | --- |
|
|
134
|
+
| `list_pay_apps` | `pay.read` | List your independent Pay applications. No development project required. Follow nextCursor for more results. |
|
|
135
|
+
| `create_pay_app` | `pay.write` | Create an independent Pay application; linking a development project is optional. Creates a new application on every call: do not retry blindly after a timeout. |
|
|
136
|
+
| `get_pay_app` | `pay.read` | Read your Pay application and optional project link. |
|
|
137
|
+
| `get_pay_readiness` | `pay.read` | Check current checkout and launch prerequisites. A passing checkout check does not prove a live external purchase or SDK publication. |
|
|
138
|
+
| `link_pay_app` | `pay.write` | Link your Pay application to your development project. Existing purchases remain attached to the Pay application. |
|
|
139
|
+
| `unlink_pay_app` | `pay.write` | Remove the optional development-project link without deleting Pay data. |
|
|
140
|
+
| `archive_pay_app` | `pay.write` | Archive your application and stop new checkout. Preserve payment records and existing entitlements. |
|
|
141
|
+
| `export_pay_data` | `pay.read` | Export one page of your application data. Follow nextCursor until null for a complete export. Customer/payment data is sensitive: save only to an author-controlled destination; never paste into public issues. |
|
|
142
|
+
| `get_pay_seller` | `pay.read` | Read seller connection, public profile, offers and publishable SDK key. Agreement signing and KYC require the author in the browser. |
|
|
143
|
+
| `connect_pay_seller` | `pay.write` | Start Stripe Connect onboarding and return a browser action URL. The author must complete KYC and legal acceptance; never do these on their behalf. |
|
|
144
|
+
| `refresh_pay_seller` | `pay.write` | Refresh current payment-provider onboarding status. This does not complete KYC or accept agreements. |
|
|
145
|
+
| `set_pay_seller_profile` | `pay.write` | Save author-confirmed public seller identity, support and terms links. Never invent legal identity or terms. |
|
|
146
|
+
| `upsert_pay_offer` | `pay.write` | Create or update an offer by stable SKU. Price is in minor currency units. Use only the author-approved price, billing interval and features. |
|
|
147
|
+
| `archive_pay_offer` | `pay.write` | Stop offering a SKU for new checkout; preserve historical purchases. |
|
|
148
|
+
| `set_pay_enabled` | `pay.write` | Explicitly enable or disable new payments. Enabling is a live commerce change: only do so with author authorization and after checking readiness. Backend prerequisites remain enforced. |
|
|
149
|
+
| `rotate_pay_key` | `pay.write` | Generate a new publishable SDK key. Prior keys remain accepted for installed extension builds; this is not secret revocation. Never retry blindly. |
|
|
150
|
+
|
|
151
|
+
The author completes legal acceptance and Stripe KYC in the browser. Read `get_pay_readiness` before enabling checkout; enablement, key rotation and offer changes require explicit author authorization. Export pages contain private financial data and must remain in an author-controlled destination. Only the publishable SDK key belongs in an extension, never a developer API key or Stripe secret.
|
package/dist/bff.d.ts
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* (no anonymous data access) — sending the key now is forward-compatible and
|
|
13
13
|
* needs no client change when enforcement lands.
|
|
14
14
|
*/
|
|
15
|
+
import { type PayBff } from './pay.js';
|
|
15
16
|
/** One credit pool as reported by `getApiCallerBalance`. */
|
|
16
17
|
export interface CreditPool {
|
|
17
18
|
/** Total calls this pool can still fund (free grant + purchased) — the single number that gates a call. */
|
|
@@ -34,14 +35,14 @@ export interface ExtensionRef {
|
|
|
34
35
|
id: number;
|
|
35
36
|
store: 'CHROME' | 'FIREFOX' | 'EDGE';
|
|
36
37
|
}
|
|
37
|
-
export interface Bff {
|
|
38
|
-
importManifest(input: import('
|
|
38
|
+
export interface Bff extends PayBff {
|
|
39
|
+
importManifest(input: import('@extenshi/contracts').ManifestImport): Promise<unknown>;
|
|
39
40
|
getProjectWorkspace(input: {
|
|
40
41
|
projectId: string;
|
|
41
42
|
}): Promise<unknown>;
|
|
42
|
-
diffProjectWorkspace(input: import('
|
|
43
|
-
patchProjectWorkspace(input: import('
|
|
44
|
-
recordProjectEvidence(input: Omit<import('
|
|
43
|
+
diffProjectWorkspace(input: import('@extenshi/contracts').WorkspacePatch): Promise<unknown>;
|
|
44
|
+
patchProjectWorkspace(input: import('@extenshi/contracts').WorkspacePatch): Promise<unknown>;
|
|
45
|
+
recordProjectEvidence(input: Omit<import('@extenshi/contracts').Evidence, 'id' | 'recordedAt'>): Promise<unknown>;
|
|
45
46
|
getReleaseReadiness(input: {
|
|
46
47
|
projectId: string;
|
|
47
48
|
browser?: 'chrome' | 'firefox' | 'edge';
|
|
@@ -122,6 +123,30 @@ export interface Bff {
|
|
|
122
123
|
updatePrivacyPolicyWithAi(input: {
|
|
123
124
|
projectId: string;
|
|
124
125
|
}): Promise<unknown>;
|
|
126
|
+
/**
|
|
127
|
+
* Create (or ROTATE) the per-project CI evidence ingest secret. The
|
|
128
|
+
* plaintext is shown once and belongs in the repository's Actions secrets.
|
|
129
|
+
*/
|
|
130
|
+
createCiIngestSecret(input: {
|
|
131
|
+
projectId: string;
|
|
132
|
+
}): Promise<unknown>;
|
|
133
|
+
revokeCiIngestSecret(input: {
|
|
134
|
+
projectId: string;
|
|
135
|
+
}): Promise<unknown>;
|
|
136
|
+
/** Register a project's homepage/support URL (HTTPS, reachable, hashed). */
|
|
137
|
+
upsertHostedPage(input: {
|
|
138
|
+
projectId: string;
|
|
139
|
+
kind: string;
|
|
140
|
+
url: string;
|
|
141
|
+
}): Promise<unknown>;
|
|
142
|
+
/** Re-fetch and compare: verified | changed | unreachable per kind. */
|
|
143
|
+
verifyHostedArtifact(input: {
|
|
144
|
+
projectId: string;
|
|
145
|
+
kind: string;
|
|
146
|
+
}): Promise<unknown>;
|
|
147
|
+
listHostedPages(input: {
|
|
148
|
+
projectId: string;
|
|
149
|
+
}): Promise<unknown>;
|
|
125
150
|
}
|
|
126
151
|
/** Build a BFF client from a static `ek_…` key (stdio path). */
|
|
127
152
|
export declare function makeBff(bffUrl: string, apiKey: string): Bff;
|
package/dist/bff.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bff.d.ts","sourceRoot":"","sources":["../src/bff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"bff.d.ts","sourceRoot":"","sources":["../src/bff.ts"],"names":[],"mappings":"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"}
|
package/dist/bff.js
CHANGED
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
* needs no client change when enforcement lands.
|
|
14
14
|
*/
|
|
15
15
|
import { createTRPCClient, httpBatchLink } from '@trpc/client';
|
|
16
|
+
import { PAY_OPERATIONS, payWireInput } from './pay.js';
|
|
16
17
|
/** Build a BFF client from a static `ek_…` key (stdio path). */
|
|
17
18
|
export function makeBff(bffUrl, apiKey) {
|
|
18
19
|
return makeBffWithAuth(bffUrl, () => `Bearer ${apiKey}`);
|
|
@@ -34,7 +35,15 @@ export function makeBffWithAuth(bffUrl, authHeader) {
|
|
|
34
35
|
});
|
|
35
36
|
// NB: the store router is mounted under `catalog` in the BFF appRouter
|
|
36
37
|
// (routers/index.ts: `catalog: storeRouter`), NOT `store`. Security is `security`.
|
|
38
|
+
const pay = Object.fromEntries(PAY_OPERATIONS.map(([method, , , procedure, mutation]) => [
|
|
39
|
+
method,
|
|
40
|
+
(input) => {
|
|
41
|
+
const [router, action] = procedure.split('.');
|
|
42
|
+
return client[router][action][mutation ? 'mutate' : 'query'](payWireInput(method, input));
|
|
43
|
+
},
|
|
44
|
+
]));
|
|
37
45
|
return {
|
|
46
|
+
...pay,
|
|
38
47
|
importManifest: (input) => client.devProject.agentImportManifest.mutate(input),
|
|
39
48
|
getProjectWorkspace: (input) => client.devProject.agentGetWorkspace.query(input),
|
|
40
49
|
diffProjectWorkspace: (input) => client.devProject.agentDiffWorkspace.mutate(input),
|
|
@@ -61,6 +70,11 @@ export function makeBffWithAuth(bffUrl, authHeader) {
|
|
|
61
70
|
getPrivacyPolicyVersion: (input) => client.privacyPolicy.agentGetVersion.query(input),
|
|
62
71
|
publishPrivacyPolicy: (input) => client.privacyPolicy.agentPublish.mutate(input),
|
|
63
72
|
updatePrivacyPolicyWithAi: (input) => client.privacyPolicy.agentUpdateWithAi.mutate(input),
|
|
73
|
+
createCiIngestSecret: (input) => client.devProject.agentCreateCiIngestSecret.mutate(input),
|
|
74
|
+
revokeCiIngestSecret: (input) => client.devProject.agentRevokeCiIngestSecret.mutate(input),
|
|
75
|
+
upsertHostedPage: (input) => client.devProject.agentUpsertHostedPage.mutate(input),
|
|
76
|
+
verifyHostedArtifact: (input) => client.devProject.agentVerifyHostedArtifact.mutate(input),
|
|
77
|
+
listHostedPages: (input) => client.devProject.agentListHostedPages.query(input),
|
|
64
78
|
};
|
|
65
79
|
}
|
|
66
80
|
//# sourceMappingURL=bff.js.map
|
package/dist/bff.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bff.js","sourceRoot":"","sources":["../src/bff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"bff.js","sourceRoot":"","sources":["../src/bff.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,8 +32,8 @@ export declare const DEVELOPMENT_SERVICES: readonly [{
|
|
|
32
32
|
}, {
|
|
33
33
|
readonly id: "projects";
|
|
34
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
|
|
35
|
+
readonly tools: readonly ["list_my_projects", "get_project_state", "get_project_scaffold", "get_project_workspace", "import_manifest", "diff_project_state", "apply_project_patch", "record_project_evidence", "create_ci_ingest_secret", "upsert_hosted_page", "verify_hosted_artifact", "list_hosted_pages", "get_release_readiness"];
|
|
36
|
+
readonly access: "Own-project MCP reads are free and require identity. Create projects in the cabinet. Synchronize repository metadata, source/built manifests and scope with 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 — create its secret with create_ci_ingest_secret. Automated release-readiness access requires a Pro project.";
|
|
37
37
|
readonly urls: readonly [string, "https://dojo.extenshi.io/projects", "https://dojo.extenshi.io/integrations"];
|
|
38
38
|
}, {
|
|
39
39
|
readonly id: "manifest";
|
|
@@ -41,6 +41,12 @@ export declare const DEVELOPMENT_SERVICES: readonly [{
|
|
|
41
41
|
readonly tools: readonly ["list_extension_templates", "get_project_state", "get_project_scaffold"];
|
|
42
42
|
readonly access: "Free template guidance; project reads require identity. The cabinet also has a manifest editor.";
|
|
43
43
|
readonly urls: readonly [string, string];
|
|
44
|
+
}, {
|
|
45
|
+
readonly id: "localization";
|
|
46
|
+
readonly purpose: "Translate extension messages locally with your coding agent and validate the resulting locales.";
|
|
47
|
+
readonly tools: readonly ["localize_workflow"];
|
|
48
|
+
readonly access: "Free static workflow; local CLI validation requires no key or Extenshi credits. Translation uses your agent provider. Check CLI release availability before invoking commands.";
|
|
49
|
+
readonly urls: readonly [string];
|
|
44
50
|
}, {
|
|
45
51
|
readonly id: "icons";
|
|
46
52
|
readonly purpose: "Design the SVG, preview at toolbar sizes and export store assets with the local CLI.";
|
|
@@ -86,9 +92,9 @@ export declare const DEVELOPMENT_SERVICES: readonly [{
|
|
|
86
92
|
}, {
|
|
87
93
|
readonly id: "monetization";
|
|
88
94
|
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/
|
|
95
|
+
readonly tools: readonly ["list_pay_apps", "create_pay_app", "get_pay_app", "get_pay_readiness", "link_pay_app", "unlink_pay_app", "archive_pay_app", "export_pay_data", "get_pay_seller", "connect_pay_seller", "refresh_pay_seller", "set_pay_seller_profile", "upsert_pay_offer", "archive_pay_offer", "set_pay_enabled", "rotate_pay_key"];
|
|
96
|
+
readonly access: "Pay applications work independently of development projects. Explicit pay.read/pay.write permission is required; older connections and API keys have no Pay grant. Check get_pay_readiness and actual SDK distribution before integrating. Author completes seller agreement and Stripe KYC in the browser. Configure offers and profile, then enable checkout only with explicit authorization. Registration does not prove production deployment or npm publication.";
|
|
97
|
+
readonly urls: readonly [string, "https://dojo.extenshi.io/payments"];
|
|
92
98
|
}];
|
|
93
99
|
export declare function buildDevelopmentGuide(registeredTools: readonly GuideTool[]): {
|
|
94
100
|
schemaVersion: number;
|
|
@@ -110,83 +116,89 @@ export declare function buildDevelopmentGuide(registeredTools: readonly GuideToo
|
|
|
110
116
|
docs: string;
|
|
111
117
|
}[];
|
|
112
118
|
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")[];
|
|
119
|
+
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "scan_extension" | "publish_extension")[];
|
|
114
120
|
id: "documentation";
|
|
115
121
|
purpose: "Discover capabilities, extension shapes, exact CLI commands and reusable agent skills.";
|
|
116
122
|
access: "Free guidance; no API key. Hosted transport still requires connector sign-in.";
|
|
117
123
|
urls: readonly [string, string, string];
|
|
118
124
|
} | {
|
|
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")[];
|
|
125
|
+
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "scan_extension" | "publish_extension")[];
|
|
120
126
|
id: "account";
|
|
121
127
|
purpose: "Sign in, provision an API key for local tools and check credit pools before paid work.";
|
|
122
128
|
access: "Balance lookup is free and requires identity; catalog reads and scans use credit pools.";
|
|
123
129
|
urls: readonly [string, "https://dojo.extenshi.io/api-keys", "https://dojo.extenshi.io/billing"];
|
|
124
130
|
} | {
|
|
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")[];
|
|
131
|
+
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "scan_extension" | "publish_extension")[];
|
|
126
132
|
id: "research";
|
|
127
133
|
purpose: "Validate demand, competitors, user complaints, permissions and existing security findings.";
|
|
128
134
|
access: "Identity required. Catalog tools cost 1 read per call; get_security costs 3. Bulk risk: up to 40 per call. Chrome review text is unavailable; use its aggregate.";
|
|
129
135
|
urls: readonly [string, "https://catalog.extenshi.io"];
|
|
130
136
|
} | {
|
|
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")[];
|
|
137
|
+
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "scan_extension" | "publish_extension")[];
|
|
132
138
|
id: "projects";
|
|
133
139
|
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
|
|
140
|
+
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, 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 — create its secret with create_ci_ingest_secret. Automated release-readiness access requires a Pro project.";
|
|
135
141
|
urls: readonly [string, "https://dojo.extenshi.io/projects", "https://dojo.extenshi.io/integrations"];
|
|
136
142
|
} | {
|
|
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")[];
|
|
143
|
+
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "scan_extension" | "publish_extension")[];
|
|
138
144
|
id: "manifest";
|
|
139
145
|
purpose: "Choose minimum permissions, target browsers and manifest entries; validate every referenced file.";
|
|
140
146
|
access: "Free template guidance; project reads require identity. The cabinet also has a manifest editor.";
|
|
141
147
|
urls: readonly [string, string];
|
|
142
148
|
} | {
|
|
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")[];
|
|
149
|
+
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "scan_extension" | "publish_extension")[];
|
|
150
|
+
id: "localization";
|
|
151
|
+
purpose: "Translate extension messages locally with your coding agent and validate the resulting locales.";
|
|
152
|
+
access: "Free static workflow; local CLI validation requires no key or Extenshi credits. Translation uses your agent provider. Check CLI release availability before invoking commands.";
|
|
153
|
+
urls: readonly [string];
|
|
154
|
+
} | {
|
|
155
|
+
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "scan_extension" | "publish_extension")[];
|
|
144
156
|
id: "icons";
|
|
145
157
|
purpose: "Design the SVG, preview at toolbar sizes and export store assets with the local CLI.";
|
|
146
158
|
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.";
|
|
147
159
|
urls: readonly [string, string];
|
|
148
160
|
} | {
|
|
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")[];
|
|
161
|
+
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "scan_extension" | "publish_extension")[];
|
|
150
162
|
id: "privacy";
|
|
151
163
|
purpose: "Describe actual data practices; generate/export a policy or maintain a hosted policy and its version history.";
|
|
152
164
|
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
165
|
urls: readonly [string, string, string];
|
|
154
166
|
} | {
|
|
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")[];
|
|
167
|
+
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "scan_extension" | "publish_extension")[];
|
|
156
168
|
id: "onboarding";
|
|
157
169
|
purpose: "Prepare a welcome page, pin guide, install instructions and uninstall survey; wire verified URLs into the extension.";
|
|
158
170
|
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.";
|
|
159
171
|
urls: readonly [string, string, string, string, string, string, string];
|
|
160
172
|
} | {
|
|
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")[];
|
|
173
|
+
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "scan_extension" | "publish_extension")[];
|
|
162
174
|
id: "listing-and-marketing";
|
|
163
175
|
purpose: "Prepare listing copy, screenshots, landing page, support links and AI discovery assets.";
|
|
164
176
|
access: "Use CLI generate-listing / review-risk and cabinet tools where enabled. MCP has no listing, landing-page or SEO execution tool.";
|
|
165
177
|
urls: readonly [string, string, string, string, string, string];
|
|
166
178
|
} | {
|
|
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")[];
|
|
179
|
+
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "scan_extension" | "publish_extension")[];
|
|
168
180
|
id: "verification-and-ci";
|
|
169
181
|
purpose: "Test the built extension in each target browser, review store risks, scan the final package and retain reports in CI.";
|
|
170
182
|
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.";
|
|
171
183
|
urls: readonly [string, string, string];
|
|
172
184
|
} | {
|
|
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")[];
|
|
185
|
+
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "scan_extension" | "publish_extension")[];
|
|
174
186
|
id: "publishing";
|
|
175
187
|
purpose: "Validate store credentials, submit the exact tested package and verify review status and the public listing.";
|
|
176
188
|
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
189
|
urls: readonly [string, string, string];
|
|
178
190
|
} | {
|
|
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")[];
|
|
191
|
+
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "scan_extension" | "publish_extension")[];
|
|
180
192
|
id: "maintenance";
|
|
181
193
|
purpose: "Claim the listing, respond to findings, inspect reviews/uninstall feedback, update policies and maintain releases.";
|
|
182
194
|
access: "Catalog reads are metered. Ownership, declarations, responses, badges and feedback management use the cabinet; consult account access.";
|
|
183
195
|
urls: readonly [string, string, string, string, string];
|
|
184
196
|
} | {
|
|
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")[];
|
|
197
|
+
toolsInThisConnection: ("list_pay_apps" | "create_pay_app" | "get_pay_app" | "get_pay_readiness" | "link_pay_app" | "unlink_pay_app" | "archive_pay_app" | "export_pay_data" | "get_pay_seller" | "connect_pay_seller" | "refresh_pay_seller" | "set_pay_seller_profile" | "upsert_pay_offer" | "archive_pay_offer" | "set_pay_enabled" | "rotate_pay_key" | "get_development_guide" | "search_docs" | "list_extension_templates" | "get_credit_balance" | "connection_diagnostics" | "search_extensions" | "get_extension" | "get_reviews" | "get_security" | "get_risk_by_store_ids" | "market_overview" | "list_my_projects" | "get_project_state" | "get_project_scaffold" | "get_project_workspace" | "import_manifest" | "diff_project_state" | "apply_project_patch" | "record_project_evidence" | "create_ci_ingest_secret" | "upsert_hosted_page" | "verify_hosted_artifact" | "list_hosted_pages" | "get_release_readiness" | "localize_workflow" | "generate_icon_workflow" | "list_privacy_policy_versions" | "get_privacy_policy_version" | "update_privacy_policy_with_ai" | "publish_privacy_policy" | "generate_welcome_page_workflow" | "scan_extension" | "publish_extension")[];
|
|
186
198
|
id: "monetization";
|
|
187
199
|
purpose: "Optional paid-feature integration: seller setup, offers, checkout, signed entitlements and purchase verification.";
|
|
188
|
-
access: "
|
|
189
|
-
urls: readonly [string, "https://dojo.extenshi.io/
|
|
200
|
+
access: "Pay applications work independently of development projects. Explicit pay.read/pay.write permission is required; older connections and API keys have no Pay grant. Check get_pay_readiness and actual SDK distribution before integrating. Author completes seller agreement and Stripe KYC in the browser. Configure offers and profile, then enable checkout only with explicit authorization. Registration does not prove production deployment or npm publication.";
|
|
201
|
+
urls: readonly [string, "https://dojo.extenshi.io/payments"];
|
|
190
202
|
})[];
|
|
191
203
|
repository: {
|
|
192
204
|
recommendation: string;
|
|
@@ -213,7 +225,7 @@ export declare function buildDevelopmentGuide(registeredTools: readonly GuideToo
|
|
|
213
225
|
readonly doneWhen: "Each manifest references real packaged files; browser variants and the project integration contract are preserved.";
|
|
214
226
|
}, {
|
|
215
227
|
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.
|
|
228
|
+
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. Use localize_workflow for local message translation, structural validation and manual language/RTL review. If payments or user accounts are needed, verify the supported integration and complete its prerequisites before depending on it.";
|
|
217
229
|
readonly doneWhen: "Acceptance criteria pass on real target surfaces; optional integrations have end-to-end evidence or remain explicit blockers.";
|
|
218
230
|
}, {
|
|
219
231
|
readonly id: "assets-and-hosted-pages";
|
|
@@ -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
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2LvB,CAAA;AAoEV,wBAAgB,qBAAqB,CAAC,eAAe,EAAE,SAAS,SAAS,EAAE;;;;;;cA5QpE,MAAM;qBACC,MAAM;qBACN;YACZ,YAAY,CAAC,EAAE,OAAO,CAAA;YACtB,eAAe,CAAC,EAAE,OAAO,CAAA;SACzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqUD"}
|
|
@@ -42,9 +42,13 @@ export const DEVELOPMENT_SERVICES = [
|
|
|
42
42
|
'diff_project_state',
|
|
43
43
|
'apply_project_patch',
|
|
44
44
|
'record_project_evidence',
|
|
45
|
+
'create_ci_ingest_secret',
|
|
46
|
+
'upsert_hosted_page',
|
|
47
|
+
'verify_hosted_artifact',
|
|
48
|
+
'list_hosted_pages',
|
|
45
49
|
'get_release_readiness',
|
|
46
50
|
],
|
|
47
|
-
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
|
|
51
|
+
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, 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 — create its secret with create_ci_ingest_secret. Automated release-readiness access requires a Pro project.',
|
|
48
52
|
urls: [
|
|
49
53
|
DEVELOPMENT_GUIDE_URL,
|
|
50
54
|
'https://dojo.extenshi.io/projects',
|
|
@@ -58,6 +62,13 @@ export const DEVELOPMENT_SERVICES = [
|
|
|
58
62
|
access: 'Free template guidance; project reads require identity. The cabinet also has a manifest editor.',
|
|
59
63
|
urls: [docs('manifest-generator'), toolPage('manifest-generator')],
|
|
60
64
|
},
|
|
65
|
+
{
|
|
66
|
+
id: 'localization',
|
|
67
|
+
purpose: 'Translate extension messages locally with your coding agent and validate the resulting locales.',
|
|
68
|
+
tools: ['localize_workflow'],
|
|
69
|
+
access: 'Free static workflow; local CLI validation requires no key or Extenshi credits. Translation uses your agent provider. Check CLI release availability before invoking commands.',
|
|
70
|
+
urls: [docs('localization')],
|
|
71
|
+
},
|
|
61
72
|
{
|
|
62
73
|
id: 'icons',
|
|
63
74
|
purpose: 'Design the SVG, preview at toolbar sizes and export store assets with the local CLI.',
|
|
@@ -136,9 +147,26 @@ export const DEVELOPMENT_SERVICES = [
|
|
|
136
147
|
{
|
|
137
148
|
id: 'monetization',
|
|
138
149
|
purpose: 'Optional paid-feature integration: seller setup, offers, checkout, signed entitlements and purchase verification.',
|
|
139
|
-
tools: [
|
|
140
|
-
|
|
141
|
-
|
|
150
|
+
tools: [
|
|
151
|
+
'list_pay_apps',
|
|
152
|
+
'create_pay_app',
|
|
153
|
+
'get_pay_app',
|
|
154
|
+
'get_pay_readiness',
|
|
155
|
+
'link_pay_app',
|
|
156
|
+
'unlink_pay_app',
|
|
157
|
+
'archive_pay_app',
|
|
158
|
+
'export_pay_data',
|
|
159
|
+
'get_pay_seller',
|
|
160
|
+
'connect_pay_seller',
|
|
161
|
+
'refresh_pay_seller',
|
|
162
|
+
'set_pay_seller_profile',
|
|
163
|
+
'upsert_pay_offer',
|
|
164
|
+
'archive_pay_offer',
|
|
165
|
+
'set_pay_enabled',
|
|
166
|
+
'rotate_pay_key',
|
|
167
|
+
],
|
|
168
|
+
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. Check get_pay_readiness and actual SDK distribution before integrating. Author completes seller agreement and Stripe KYC in the browser. Configure offers and profile, then enable checkout only with explicit authorization. Registration does not prove production deployment or npm publication.',
|
|
169
|
+
urls: [docs('pay-sdk'), 'https://dojo.extenshi.io/payments'],
|
|
142
170
|
},
|
|
143
171
|
];
|
|
144
172
|
const WORKFLOW = [
|
|
@@ -164,7 +192,7 @@ const WORKFLOW = [
|
|
|
164
192
|
},
|
|
165
193
|
{
|
|
166
194
|
id: 'implementation',
|
|
167
|
-
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.
|
|
195
|
+
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. Use localize_workflow for local message translation, structural validation and manual language/RTL review. If payments or user accounts are needed, verify the supported integration and complete its prerequisites before depending on it.',
|
|
168
196
|
doneWhen: 'Acceptance criteria pass on real target surfaces; optional integrations have end-to-end evidence or remain explicit blockers.',
|
|
169
197
|
},
|
|
170
198
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"development-guide.js","sourceRoot":"","sources":["../src/development-guide.ts"],"names":[],"mappings":"AAaA,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,uCAAuC,IAAI,EAAE,CAAA;AAC5E,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,kCAAkC,GAAG,EAAE,CAAA;AAEzE,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAA;AAEjE,MAAM,CAAC,MAAM,oBAAoB,GAAG;IACnC;QACC,EAAE,EAAE,eAAe;QACnB,OAAO,EAAE,wFAAwF;QACjG,KAAK,EAAE,CAAC,uBAAuB,EAAE,aAAa,EAAE,0BAA0B,CAAC;QAC3E,MAAM,EAAE,+EAA+E;QACvF,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,qBAAqB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;KAChE;IACD;QACC,EAAE,EAAE,SAAS;QACb,OAAO,EAAE,wFAAwF;QACjG,KAAK,EAAE,CAAC,oBAAoB,EAAE,wBAAwB,CAAC;QACvD,MAAM,EAAE,yFAAyF;QACjG,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,mCAAmC,EAAE,kCAAkC,CAAC;KACrG;IACD;QACC,EAAE,EAAE,UAAU;QACd,OAAO,EAAE,4FAA4F;QACrG,KAAK,EAAE;YACN,mBAAmB;YACnB,eAAe;YACf,aAAa;YACb,cAAc;YACd,uBAAuB;YACvB,iBAAiB;SACjB;QACD,MAAM,EACL,kKAAkK;QACnK,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,6BAA6B,CAAC;KAClD;IACD;QACC,EAAE,EAAE,UAAU;QACd,OAAO,EACN,mIAAmI;QACpI,KAAK,EAAE;YACN,kBAAkB;YAClB,mBAAmB;YACnB,sBAAsB;YACtB,uBAAuB;YACvB,iBAAiB;YACjB,oBAAoB;YACpB,qBAAqB;YACrB,yBAAyB;YACzB,uBAAuB;SACvB;QACD,MAAM,EACL,
|
|
1
|
+
{"version":3,"file":"development-guide.js","sourceRoot":"","sources":["../src/development-guide.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localize-workflow.d.ts","sourceRoot":"","sources":["../src/localize-workflow.ts"],"names":[],"mappings":"AAAA,uGAAuG;AACvG,wBAAgB,sBAAsB,IAAI,MAAM,CAoF/C"}
|