@extenshi/mcp 0.18.1 → 0.21.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 (47) hide show
  1. package/README.md +4 -2
  2. package/dist/bff.d.ts +10 -0
  3. package/dist/bff.d.ts.map +1 -1
  4. package/dist/bff.js +1 -0
  5. package/dist/bff.js.map +1 -1
  6. package/dist/build-map-store.d.ts +123 -0
  7. package/dist/build-map-store.d.ts.map +1 -0
  8. package/dist/build-map-store.js +347 -0
  9. package/dist/build-map-store.js.map +1 -0
  10. package/dist/build-map-summary.d.ts +29 -0
  11. package/dist/build-map-summary.d.ts.map +1 -0
  12. package/dist/build-map-summary.js +30 -0
  13. package/dist/build-map-summary.js.map +1 -0
  14. package/dist/development-guide.d.ts +39 -22
  15. package/dist/development-guide.d.ts.map +1 -1
  16. package/dist/development-guide.js +32 -2
  17. package/dist/development-guide.js.map +1 -1
  18. package/dist/index.js +4 -0
  19. package/dist/index.js.map +1 -1
  20. package/dist/pin-guide-kit.d.ts +94 -0
  21. package/dist/pin-guide-kit.d.ts.map +1 -0
  22. package/dist/pin-guide-kit.js +341 -0
  23. package/dist/pin-guide-kit.js.map +1 -0
  24. package/dist/pin-guide-strings.d.ts +67 -0
  25. package/dist/pin-guide-strings.d.ts.map +1 -0
  26. package/dist/pin-guide-strings.js +349 -0
  27. package/dist/pin-guide-strings.js.map +1 -0
  28. package/dist/pin-guide-tool.d.ts +32 -0
  29. package/dist/pin-guide-tool.d.ts.map +1 -0
  30. package/dist/pin-guide-tool.js +132 -0
  31. package/dist/pin-guide-tool.js.map +1 -0
  32. package/dist/pin-guide.d.ts +102 -0
  33. package/dist/pin-guide.d.ts.map +1 -0
  34. package/dist/pin-guide.js +448 -0
  35. package/dist/pin-guide.js.map +1 -0
  36. package/dist/tools.d.ts +12 -1
  37. package/dist/tools.d.ts.map +1 -1
  38. package/dist/tools.js +141 -21
  39. package/dist/tools.js.map +1 -1
  40. package/dist/uninstall-form-tools.d.ts +1 -0
  41. package/dist/uninstall-form-tools.d.ts.map +1 -1
  42. package/dist/uninstall-form-tools.js +33 -0
  43. package/dist/uninstall-form-tools.js.map +1 -1
  44. package/dist/welcome-agent-brief.d.ts.map +1 -1
  45. package/dist/welcome-agent-brief.js +5 -0
  46. package/dist/welcome-agent-brief.js.map +1 -1
  47. package/package.json +2 -2
package/README.md CHANGED
@@ -95,16 +95,17 @@ stdio or CLI. See the [development workflow](https://docs.extenshi.io/developers
95
95
  | `get_uninstall_form` | One survey in full, its `updatedAt`, the heading and its source, translation status | Free; identity required |
96
96
  | `update_uninstall_form` | Partial update checked like the Dojo editor; `dryRun` diff, `expectedUpdatedAt`, `idempotencyKey`; URL and responses stay | Requires hosted.write for OAuth |
97
97
  | `preview_uninstall_form` | The survey's text in one language and the screen after each answer; counts nothing | Free; identity required |
98
+ | `list_uninstall_responses` | A survey's answers, newest first, filtered by version and date, with counts by reason and version; emails only for an API key | Free; identity required |
98
99
  | `find_brand_mentions` | Every hosted field holding a name (e.g. an old extension name), with the tool that fixes it | Free; identity required |
99
100
  | `set_legal_translations` | Save one language of the privacy policy or license terms translation (edited sections and free-text answers). On the hosted connector a translation is a proposal the owner approves in Dojo; with an API key it goes live at once | Requires hosted.write + Pro (policy) or pay.write (terms) for OAuth |
100
101
  | `upload_project_media` | Upload a PNG/JPEG/WebP logo or screenshot to the project's public media store and get a stable URL for `publish_landing_page` (metadata stripped, per-project quota; `filePath` inside the workspace on stdio, `dataBase64` everywhere) | Requires hosted.write for OAuth |
101
102
  | `record_project_evidence` | Store metadata bound to the exact artifact, input hash, browser and source revision | Requires evidence.write for OAuth |
102
103
  | `get_release_readiness` | Explain current, stale and missing release checks by browser and locale. With a linked Pay application, the payment check is derived from Extenshi's payment ledger (source `platform`); a live-mode purchase that reached an installation passes it | Pro project; project read access |
103
104
  | `list_my_projects` | Your projects, repository bindings and claimed listings | Free; identity required |
104
- | `create_project` | Create a project through the Dojo wizard's service; idempotent per key; returns id, next steps and open owner decisions | Requires project.write for OAuth |
105
+ | `create_project` | Create a project through the Dojo wizard's service; idempotent per key; returns id, next steps and open owner decisions; the local server adds `buildMap` | Requires project.write for OAuth |
105
106
  | `get_decisions` | Owner decisions (AMO add-on id, license, seller identity, pricing, targets): status, suggested default, what each blocks | Free; identity required |
106
107
  | `propose_decision` | Propose a decision value with rationale; the owner decides in Dojo, and decided keys are refused | Requires project.write for OAuth |
107
- | `get_project_state` | Manifest summaries (imported or generated, digest, keys that differ from the imported files), selected types, saved-state index, hosted URLs and exact integration file; `manifests: "full"` returns the manifest bodies | Free; identity required |
108
+ | `get_project_state` | Manifest summaries (imported or generated, digest, keys that differ from the imported files), selected types, saved-state index, hosted URLs and exact integration file; `manifests: "full"` returns the manifest bodies; the local server adds `buildMap` (whether the build map is open, its address, and whether the author declined it) | Free; identity required |
108
109
  | `get_project_scaffold` | Starter files for one project and target browser | Free; identity required |
109
110
  | `list_privacy_policy_versions` | Hosted policy version history | Pro project; no read credit |
110
111
  | `get_privacy_policy_version` | One hosted policy's markdown and HTML | Pro project; no read credit |
@@ -114,6 +115,7 @@ stdio or CLI. See the [development workflow](https://docs.extenshi.io/developers
114
115
  | `localize_workflow` | Local message translation contract, CLI validation and manual review gates | Free (no key) |
115
116
  | `generate_icon_workflow` | Icon design requirements + the local agent-draws-SVG → `npx @extenshi/cli@latest icon preview` → export workflow | Free (no key) |
116
117
  | `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) |
118
+ | `generate_pin_guide` | Pin-to-toolbar steps for Chrome, Edge and Firefox as an offline kit for a welcome page bundled in the extension: SVGs with the icon and markers drawn in, CSP-safe HTML, captions in 11 languages as `chrome.i18n` messages, and a script reading `action.getUserSettings().isOnToolbar`. Overview by default; `part` returns `html` / `messages` / `script` / `css` | Free (no key) |
117
119
  | `generate_landing_page` | Static landing-page (homepage) HTML with no JavaScript — same generator as the cabinet Page generator; returns `{html, bytes, warnings, nextSteps}`. Host it on any HTTPS origin and register the URL with `upsert_hosted_page` (feeds `HOMEPAGE_URL`) | Free (no key) |
118
120
  | `scan_extension` | Pre-publish security scan of a local artifact (.zip/.crx/.xpi), with live progress | 1 scan |
119
121
  | `publish_extension` | Publish to Chrome/Firefox/Edge with your own store credentials (fully local) | Free |
package/dist/bff.d.ts CHANGED
@@ -275,6 +275,16 @@ export interface Bff extends PayBff {
275
275
  formId: string;
276
276
  locale?: string;
277
277
  }): Promise<unknown>;
278
+ /** Survey answers, newest first, with reason/version breakdowns (uninstallFeedback.agentListResponses). */
279
+ listUninstallResponses(input: {
280
+ projectId: string;
281
+ formId: string;
282
+ version?: string;
283
+ since?: string;
284
+ until?: string;
285
+ cursor?: string;
286
+ take?: number;
287
+ }): Promise<unknown>;
278
288
  /** Where a name appears across the project's hosted text, with the tool that fixes each field. */
279
289
  findBrandMentions(input: {
280
290
  projectId: string;
package/dist/bff.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bff.d.ts","sourceRoot":"","sources":["../src/bff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bff.d.ts","sourceRoot":"","sources":["../src/bff.ts"],"names":[],"mappings":"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"}
package/dist/bff.js CHANGED
@@ -100,6 +100,7 @@ export function makeBffWithAuth(bffUrl, authHeader) {
100
100
  getUninstallForm: (input) => client.uninstallFeedback.agentGetForm.query(input),
101
101
  updateUninstallForm: (input) => client.uninstallFeedback.agentUpdateForm.mutate(input),
102
102
  previewUninstallForm: (input) => client.uninstallFeedback.agentPreviewForm.query(input),
103
+ listUninstallResponses: (input) => client.uninstallFeedback.agentListResponses.query(input),
103
104
  findBrandMentions: (input) => client.devProject.agentFindBrandMentions.query(input),
104
105
  getPrivacyPolicyTranslations: (input) => client.privacyPolicy.agentGetTranslations.query(input),
105
106
  setPrivacyPolicyTranslations: (input) => client.privacyPolicy.agentSetTranslations.mutate(input),
package/dist/bff.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bff.js","sourceRoot":"","sources":["../src/bff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bff.js","sourceRoot":"","sources":["../src/bff.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Where the build map lives and how every client touches it (plan
3
+ * 2026-11-03-extension-build-map §6.1).
4
+ *
5
+ * ONE MAP PER PROJECT, whoever asks. Agents often work on one extension in
6
+ * parallel, each in its own git worktree, and `.extenshi/` is usually ignored by
7
+ * git, so a per-checkout file would give every agent its own map and the author
8
+ * one browser tab per agent. The map therefore lives in the MAIN checkout: from
9
+ * a linked worktree, `resolveMapHome` maps the directory to the same path in the
10
+ * main working tree. Every agent, from any worktree, reads and writes the same
11
+ * `.extenshi/build-map.json` and finds the same server.
12
+ *
13
+ * Files under `<home>/.extenshi/`:
14
+ * build-map.json the state (BuildMapState); written under build-map.lock
15
+ * build-map.lock/ held for one read-modify-write; stale after a crash is taken over
16
+ * build-map.server.json the running server: pid, port, instance id, shutdown token (0600);
17
+ * a stopped server leaves it with pid 0 so the next start reuses the port
18
+ * build-map.server.lock/ held while a server starts, so two starts cannot both listen
19
+ * build-map.log output of the background server
20
+ *
21
+ * Writes go to a temporary file in the same directory and are renamed over the
22
+ * target, so a reader never sees half a file.
23
+ *
24
+ * The stdio MCP server (`@extenshi/mcp`) is the map's other client and ships a
25
+ * byte-identical copy at tools/extenshi-mcp/src/build-map-store.ts, so both find
26
+ * the same home and the same server; build-map-store-sync.test.ts there fails on
27
+ * any drift. Edit this file, then copy it over.
28
+ */
29
+ import { type BuildMapState } from '@extenshi/contracts';
30
+ export declare const MAP_DIR = ".extenshi";
31
+ export declare const MAP_STATE_FILE = "build-map.json";
32
+ export declare const MAP_SERVER_FILE = "build-map.server.json";
33
+ export declare const MAP_LOG_FILE = "build-map.log";
34
+ /** Bumped when the page/server protocol changes: a newer CLI replaces an older server instead of reusing it. */
35
+ export declare const MAP_PROTOCOL = 1;
36
+ export type MapHome = {
37
+ /** Where the map's files live: this project directory in the main checkout. */
38
+ home: string;
39
+ /** The directory the command ran in. */
40
+ dir: string;
41
+ /** `dir` is inside a linked git worktree, and the map lives in the main checkout. */
42
+ worktree: boolean;
43
+ };
44
+ export declare const mapPath: (home: string, file: string) => string;
45
+ /**
46
+ * The map home for `dir`: `dir` itself, unless it sits in a linked git worktree
47
+ * whose main working tree has the same directory — then that one. Outside git,
48
+ * in a bare-repository worktree or a submodule, the directory stays its own home.
49
+ */
50
+ export declare function resolveMapHome(dir: string): Promise<MapHome>;
51
+ /** Every checkout of the repository `home` belongs to (main first), mapped to the project directory in each. */
52
+ export declare function projectCheckouts(home: string): Promise<string[]>;
53
+ export declare function pidAlive(pid: number): boolean;
54
+ /**
55
+ * Run `work` holding a directory lock. `mkdir` is atomic, so exactly one
56
+ * process creates the directory; its `owner.json` carries a random token. A
57
+ * lock whose owner died on this machine, or that is older than `staleMs`, is
58
+ * taken over — but the verdict is checked again under the breaker
59
+ * (`withBreaker`) before anything is removed, and a release removes the lock
60
+ * only while it still carries this holder's token.
61
+ */
62
+ export declare function withDirLock<T>(lockDir: string, work: () => Promise<T>, options?: {
63
+ timeoutMs?: number;
64
+ staleMs?: number;
65
+ what?: string;
66
+ }): Promise<T>;
67
+ /** Write JSON so a concurrent reader sees the old file or the new one, never a mix. */
68
+ export declare function writeJsonAtomic(file: string, value: unknown, mode?: number): Promise<void>;
69
+ export type StateRead = {
70
+ state: BuildMapState;
71
+ exists: boolean;
72
+ problem?: string;
73
+ };
74
+ /** Read the state for display: a missing or broken file reads as empty, with the problem named. */
75
+ export declare function readMapState(home: string): Promise<StateRead>;
76
+ /**
77
+ * Read, change and write the state as one step, under the state lock, so two
78
+ * agents reporting at the same moment both land. Refuses to write over a file
79
+ * it cannot read rather than replace someone's edit with an empty map.
80
+ */
81
+ export declare function updateMapState(home: string, change: (state: BuildMapState) => BuildMapState | undefined): Promise<BuildMapState>;
82
+ export type MapServerRecord = {
83
+ pid: number;
84
+ host: string;
85
+ port: number;
86
+ url: string;
87
+ /** Random per start: tells this server from another that later got the same pid or port. */
88
+ instance: string;
89
+ /** Authorizes /api/shutdown; the file is readable by the owner only. */
90
+ token: string;
91
+ protocol: number;
92
+ version: string;
93
+ home: string;
94
+ startedAt: string;
95
+ };
96
+ export type MapHealth = {
97
+ instance: string;
98
+ home: string;
99
+ protocol: number;
100
+ version: string;
101
+ clients: number;
102
+ };
103
+ export declare function readServerRecord(home: string): Promise<MapServerRecord | undefined>;
104
+ export declare function fetchHealth(port: number, timeoutMs?: number): Promise<MapHealth | undefined>;
105
+ export type RunningServer = MapServerRecord & {
106
+ clients: number;
107
+ };
108
+ /**
109
+ * The server recorded for `home`, if it is really up: same machine, process
110
+ * alive, and its health answer carries the recorded instance id and home. A
111
+ * record left by a crash, by another machine (a synced folder) or a reused pid
112
+ * reads as no server.
113
+ */
114
+ export declare function probeServer(home: string): Promise<RunningServer | undefined>;
115
+ export declare const serverLockPath: (home: string) => string;
116
+ /**
117
+ * Mark the server record stopped, but only if it still names `instance` —
118
+ * never a successor's. The port stays in it, so the next start binds the same
119
+ * address and a tab left open reconnects by itself; pid 0 and no token make it
120
+ * read as no server.
121
+ */
122
+ export declare function retireServerRecord(home: string, instance: string): Promise<void>;
123
+ //# sourceMappingURL=build-map-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-map-store.d.ts","sourceRoot":"","sources":["../src/build-map-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAOH,OAAO,EAAE,KAAK,aAAa,EAA8C,MAAM,qBAAqB,CAAA;AAEpG,eAAO,MAAM,OAAO,cAAc,CAAA;AAClC,eAAO,MAAM,cAAc,mBAAmB,CAAA;AAC9C,eAAO,MAAM,eAAe,0BAA0B,CAAA;AACtD,eAAO,MAAM,YAAY,kBAAkB,CAAA;AAI3C,gHAAgH;AAChH,eAAO,MAAM,YAAY,IAAI,CAAA;AAE7B,MAAM,MAAM,OAAO,GAAG;IACrB,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAA;IACZ,wCAAwC;IACxC,GAAG,EAAE,MAAM,CAAA;IACX,qFAAqF;IACrF,QAAQ,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,MAAM,MAAM,EAAE,MAAM,MAAM,WAAmC,CAAA;AAkBrF;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAkBlE;AAED,gHAAgH;AAChH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAetE;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQ7C;AA4ED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAClC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACtB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GACnE,OAAO,CAAC,CAAC,CAAC,CAqCZ;AAED,uFAAuF;AACvF,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,SAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAe/F;AAED,MAAM,MAAM,SAAS,GAAG;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAEnF,mGAAmG;AACnG,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAkBnE;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CACnC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,aAAa,GAAG,SAAS,GACzD,OAAO,CAAC,aAAa,CAAC,CAYxB;AAED,MAAM,MAAM,eAAe,GAAG;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,4FAA4F;IAC5F,QAAQ,EAAE,MAAM,CAAA;IAChB,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAE9G,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAQzF;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAQ,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAUjG;AAED,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAEjE;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAMlF;AAED,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,WAA+B,CAAA;AAE1E;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQtF"}
@@ -0,0 +1,347 @@
1
+ /**
2
+ * Where the build map lives and how every client touches it (plan
3
+ * 2026-11-03-extension-build-map §6.1).
4
+ *
5
+ * ONE MAP PER PROJECT, whoever asks. Agents often work on one extension in
6
+ * parallel, each in its own git worktree, and `.extenshi/` is usually ignored by
7
+ * git, so a per-checkout file would give every agent its own map and the author
8
+ * one browser tab per agent. The map therefore lives in the MAIN checkout: from
9
+ * a linked worktree, `resolveMapHome` maps the directory to the same path in the
10
+ * main working tree. Every agent, from any worktree, reads and writes the same
11
+ * `.extenshi/build-map.json` and finds the same server.
12
+ *
13
+ * Files under `<home>/.extenshi/`:
14
+ * build-map.json the state (BuildMapState); written under build-map.lock
15
+ * build-map.lock/ held for one read-modify-write; stale after a crash is taken over
16
+ * build-map.server.json the running server: pid, port, instance id, shutdown token (0600);
17
+ * a stopped server leaves it with pid 0 so the next start reuses the port
18
+ * build-map.server.lock/ held while a server starts, so two starts cannot both listen
19
+ * build-map.log output of the background server
20
+ *
21
+ * Writes go to a temporary file in the same directory and are renamed over the
22
+ * target, so a reader never sees half a file.
23
+ *
24
+ * The stdio MCP server (`@extenshi/mcp`) is the map's other client and ships a
25
+ * byte-identical copy at tools/extenshi-mcp/src/build-map-store.ts, so both find
26
+ * the same home and the same server; build-map-store-sync.test.ts there fails on
27
+ * any drift. Edit this file, then copy it over.
28
+ */
29
+ import { execFile } from 'node:child_process';
30
+ import { randomUUID } from 'node:crypto';
31
+ import { mkdir, open, readFile, realpath, rename, rm, stat, writeFile } from 'node:fs/promises';
32
+ import os from 'node:os';
33
+ import path from 'node:path';
34
+ import { emptyBuildMapState, normalizeBuildMapState } from '@extenshi/contracts';
35
+ export const MAP_DIR = '.extenshi';
36
+ export const MAP_STATE_FILE = 'build-map.json';
37
+ export const MAP_SERVER_FILE = 'build-map.server.json';
38
+ export const MAP_LOG_FILE = 'build-map.log';
39
+ const STATE_LOCK = 'build-map.lock';
40
+ const SERVER_LOCK = 'build-map.server.lock';
41
+ /** Bumped when the page/server protocol changes: a newer CLI replaces an older server instead of reusing it. */
42
+ export const MAP_PROTOCOL = 1;
43
+ export const mapPath = (home, file) => path.join(home, MAP_DIR, file);
44
+ function git(cwd, args) {
45
+ return new Promise((resolve) => {
46
+ execFile('git', args, { cwd, timeout: 5_000, windowsHide: true }, (error, stdout) => resolve(error ? undefined : stdout));
47
+ });
48
+ }
49
+ async function isDirectory(location) {
50
+ try {
51
+ return (await stat(location)).isDirectory();
52
+ }
53
+ catch {
54
+ return false;
55
+ }
56
+ }
57
+ /**
58
+ * The map home for `dir`: `dir` itself, unless it sits in a linked git worktree
59
+ * whose main working tree has the same directory — then that one. Outside git,
60
+ * in a bare-repository worktree or a submodule, the directory stays its own home.
61
+ */
62
+ export async function resolveMapHome(dir) {
63
+ const real = await realpath(path.resolve(dir));
64
+ const own = { home: real, dir: real, worktree: false };
65
+ const out = await git(real, ['rev-parse', '--path-format=absolute', '--show-toplevel', '--git-common-dir']);
66
+ const [top, common] = (out ?? '').trim().split('\n');
67
+ if (!top || !common || path.basename(common) !== '.git')
68
+ return own;
69
+ let mainRoot;
70
+ let topReal;
71
+ try {
72
+ mainRoot = await realpath(path.dirname(common));
73
+ topReal = await realpath(top);
74
+ }
75
+ catch {
76
+ return own;
77
+ }
78
+ if (mainRoot === topReal)
79
+ return own;
80
+ const candidate = path.join(mainRoot, path.relative(topReal, real));
81
+ if (!(await isDirectory(candidate)))
82
+ return own;
83
+ return { home: candidate, dir: real, worktree: true };
84
+ }
85
+ /** Every checkout of the repository `home` belongs to (main first), mapped to the project directory in each. */
86
+ export async function projectCheckouts(home) {
87
+ const out = await git(home, ['worktree', 'list', '--porcelain']);
88
+ const top = (await git(home, ['rev-parse', '--show-toplevel']))?.trim();
89
+ if (!out || !top)
90
+ return [home];
91
+ const relative = path.relative(top, home);
92
+ const roots = out
93
+ .split('\n')
94
+ .filter((line) => line.startsWith('worktree '))
95
+ .map((line) => line.slice('worktree '.length));
96
+ const dirs = [home];
97
+ for (const root of roots) {
98
+ const candidate = path.join(root, relative);
99
+ if (!dirs.includes(candidate) && (await isDirectory(candidate)))
100
+ dirs.push(candidate);
101
+ }
102
+ return dirs;
103
+ }
104
+ export function pidAlive(pid) {
105
+ if (!Number.isInteger(pid) || pid <= 0)
106
+ return false;
107
+ try {
108
+ process.kill(pid, 0);
109
+ return true;
110
+ }
111
+ catch (error) {
112
+ return error.code === 'EPERM';
113
+ }
114
+ }
115
+ const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
116
+ async function readOwner(lockDir) {
117
+ try {
118
+ return JSON.parse(await readFile(path.join(lockDir, 'owner.json'), 'utf8'));
119
+ }
120
+ catch {
121
+ return undefined; // created a moment ago and not written yet, or a crash in between
122
+ }
123
+ }
124
+ /**
125
+ * Whether the lock as it is now may be taken over: its owner died on this
126
+ * machine, or it is older than `staleMs` (the critical sections take
127
+ * milliseconds). `undefined` when the lock is gone.
128
+ */
129
+ async function lockIsStale(lockDir, staleMs) {
130
+ const owner = await readOwner(lockDir);
131
+ let age;
132
+ try {
133
+ age = Date.now() - (owner?.at ?? (await stat(lockDir)).mtimeMs);
134
+ }
135
+ catch {
136
+ return undefined;
137
+ }
138
+ const dead = owner !== undefined && owner.host === os.hostname() && !pidAlive(owner.pid);
139
+ return dead || age > staleMs;
140
+ }
141
+ /**
142
+ * Hold `<lockDir>.breaker` while removing `lockDir`. Every removal — a release
143
+ * and a takeover alike — happens under it and re-checks the lock it is about to
144
+ * remove, so a waiter that judged a dead owner's lock stale a moment ago cannot
145
+ * delete the fresh lock another waiter has taken since. The breaker is held for
146
+ * a few file operations; one older than 10 s belongs to a process that crashed
147
+ * inside them.
148
+ */
149
+ async function withBreaker(lockDir, deadline, remove) {
150
+ const breaker = `${lockDir}.breaker`;
151
+ for (;;) {
152
+ try {
153
+ await mkdir(breaker);
154
+ break;
155
+ }
156
+ catch (error) {
157
+ if (error.code !== 'EEXIST')
158
+ throw error;
159
+ }
160
+ try {
161
+ if (Date.now() - (await stat(breaker)).mtimeMs > 10_000)
162
+ await rm(breaker, { recursive: true, force: true });
163
+ }
164
+ catch {
165
+ // released while we looked
166
+ }
167
+ if (Date.now() > deadline)
168
+ throw new Error(`${path.basename(breaker)} is held; remove it if no extenshi command runs.`);
169
+ await sleep(2 + Math.floor(Math.random() * 8));
170
+ }
171
+ try {
172
+ await remove();
173
+ }
174
+ finally {
175
+ await rm(breaker, { recursive: true, force: true });
176
+ }
177
+ }
178
+ /** Move the lock directory aside, then delete it: after the rename, `mkdir(lockDir)` is free again. */
179
+ async function removeLockDir(lockDir) {
180
+ const aside = `${lockDir}.gone-${randomUUID()}`;
181
+ try {
182
+ await rename(lockDir, aside);
183
+ }
184
+ catch {
185
+ return; // already gone
186
+ }
187
+ await rm(aside, { recursive: true, force: true });
188
+ }
189
+ /**
190
+ * Run `work` holding a directory lock. `mkdir` is atomic, so exactly one
191
+ * process creates the directory; its `owner.json` carries a random token. A
192
+ * lock whose owner died on this machine, or that is older than `staleMs`, is
193
+ * taken over — but the verdict is checked again under the breaker
194
+ * (`withBreaker`) before anything is removed, and a release removes the lock
195
+ * only while it still carries this holder's token.
196
+ */
197
+ export async function withDirLock(lockDir, work, options = {}) {
198
+ const timeoutMs = options.timeoutMs ?? 10_000;
199
+ const staleMs = options.staleMs ?? 30_000;
200
+ const deadline = Date.now() + timeoutMs;
201
+ await mkdir(path.dirname(lockDir), { recursive: true });
202
+ for (;;) {
203
+ try {
204
+ await mkdir(lockDir);
205
+ break;
206
+ }
207
+ catch (error) {
208
+ if (error.code !== 'EEXIST')
209
+ throw error;
210
+ }
211
+ const stale = await lockIsStale(lockDir, staleMs);
212
+ if (stale === undefined)
213
+ continue; // released while we looked
214
+ if (stale) {
215
+ await withBreaker(lockDir, deadline, async () => {
216
+ if (await lockIsStale(lockDir, staleMs))
217
+ await removeLockDir(lockDir);
218
+ });
219
+ continue;
220
+ }
221
+ if (Date.now() > deadline)
222
+ throw new Error(`${options.what ?? path.basename(lockDir)} is held by process ${(await readOwner(lockDir))?.pid ?? 'unknown'}. ` +
223
+ 'If no extenshi command is running, remove the lock directory.');
224
+ await sleep(20 + Math.floor(Math.random() * 40));
225
+ }
226
+ const token = randomUUID();
227
+ try {
228
+ const owner = { pid: process.pid, host: os.hostname(), at: Date.now(), token };
229
+ await writeFile(path.join(lockDir, 'owner.json'), JSON.stringify(owner));
230
+ return await work();
231
+ }
232
+ finally {
233
+ await withBreaker(lockDir, Date.now() + 15_000, async () => {
234
+ if ((await readOwner(lockDir))?.token === token)
235
+ await removeLockDir(lockDir);
236
+ });
237
+ }
238
+ }
239
+ /** Write JSON so a concurrent reader sees the old file or the new one, never a mix. */
240
+ export async function writeJsonAtomic(file, value, mode = 0o644) {
241
+ await mkdir(path.dirname(file), { recursive: true });
242
+ const temporary = `${file}.${randomUUID()}.tmp`;
243
+ try {
244
+ const handle = await open(temporary, 'wx', mode);
245
+ try {
246
+ await handle.writeFile(`${JSON.stringify(value, null, '\t')}\n`);
247
+ await handle.sync();
248
+ }
249
+ finally {
250
+ await handle.close();
251
+ }
252
+ await rename(temporary, file);
253
+ }
254
+ finally {
255
+ await rm(temporary, { force: true });
256
+ }
257
+ }
258
+ /** Read the state for display: a missing or broken file reads as empty, with the problem named. */
259
+ export async function readMapState(home) {
260
+ let text;
261
+ try {
262
+ text = await readFile(mapPath(home, MAP_STATE_FILE), 'utf8');
263
+ }
264
+ catch (error) {
265
+ if (error.code === 'ENOENT')
266
+ return { state: emptyBuildMapState(), exists: false };
267
+ return { state: emptyBuildMapState(), exists: true, problem: error.message };
268
+ }
269
+ try {
270
+ return { state: normalizeBuildMapState(JSON.parse(text)), exists: true };
271
+ }
272
+ catch (error) {
273
+ return {
274
+ state: emptyBuildMapState(),
275
+ exists: true,
276
+ problem: `${MAP_STATE_FILE}: ${error.message}`,
277
+ };
278
+ }
279
+ }
280
+ /**
281
+ * Read, change and write the state as one step, under the state lock, so two
282
+ * agents reporting at the same moment both land. Refuses to write over a file
283
+ * it cannot read rather than replace someone's edit with an empty map.
284
+ */
285
+ export async function updateMapState(home, change) {
286
+ return withDirLock(mapPath(home, STATE_LOCK), async () => {
287
+ const read = await readMapState(home);
288
+ if (read.problem)
289
+ throw new Error(`Cannot update the build map: ${read.problem}`);
290
+ const next = change(read.state) ?? read.state;
291
+ await writeJsonAtomic(mapPath(home, MAP_STATE_FILE), next);
292
+ return next;
293
+ }, { what: `${MAP_DIR}/${STATE_LOCK}` });
294
+ }
295
+ export async function readServerRecord(home) {
296
+ try {
297
+ const record = JSON.parse(await readFile(mapPath(home, MAP_SERVER_FILE), 'utf8'));
298
+ if (typeof record?.port !== 'number' || typeof record?.instance !== 'string')
299
+ return undefined;
300
+ return record;
301
+ }
302
+ catch {
303
+ return undefined;
304
+ }
305
+ }
306
+ export async function fetchHealth(port, timeoutMs = 1_500) {
307
+ try {
308
+ const response = await fetch(`http://127.0.0.1:${port}/api/health`, {
309
+ signal: AbortSignal.timeout(timeoutMs),
310
+ });
311
+ if (!response.ok)
312
+ return undefined;
313
+ return (await response.json());
314
+ }
315
+ catch {
316
+ return undefined;
317
+ }
318
+ }
319
+ /**
320
+ * The server recorded for `home`, if it is really up: same machine, process
321
+ * alive, and its health answer carries the recorded instance id and home. A
322
+ * record left by a crash, by another machine (a synced folder) or a reused pid
323
+ * reads as no server.
324
+ */
325
+ export async function probeServer(home) {
326
+ const record = await readServerRecord(home);
327
+ if (!record || record.host !== os.hostname() || !pidAlive(record.pid))
328
+ return undefined;
329
+ const health = await fetchHealth(record.port);
330
+ if (!health || health.instance !== record.instance || health.home !== home)
331
+ return undefined;
332
+ return { ...record, clients: health.clients };
333
+ }
334
+ export const serverLockPath = (home) => mapPath(home, SERVER_LOCK);
335
+ /**
336
+ * Mark the server record stopped, but only if it still names `instance` —
337
+ * never a successor's. The port stays in it, so the next start binds the same
338
+ * address and a tab left open reconnects by itself; pid 0 and no token make it
339
+ * read as no server.
340
+ */
341
+ export async function retireServerRecord(home, instance) {
342
+ const record = await readServerRecord(home);
343
+ if (record?.instance !== instance)
344
+ return;
345
+ await writeJsonAtomic(mapPath(home, MAP_SERVER_FILE), { ...record, pid: 0, token: '', stoppedAt: new Date().toISOString() }, 0o600);
346
+ }
347
+ //# sourceMappingURL=build-map-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-map-store.js","sourceRoot":"","sources":["../src/build-map-store.ts"],"names":[],"mappings":"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"}