@extenshi/mcp 0.20.0 → 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.
@@ -342,6 +342,29 @@ const WORKFLOW = [
342
342
  doneWhen: 'A handoff records repository/commit, artifacts, URLs, checks, remaining blockers, support owner and follow-up work.',
343
343
  },
344
344
  ];
345
+ /**
346
+ * The Extension Build Map (internal-docs/plans/2026-11-03-extension-build-map.md
347
+ * §6, §6.7), described as a process like the workflow. The CLI is the
348
+ * implementation (tools/extenshi-cli/src/build-map*.ts); `localServerField` is
349
+ * build-map-summary.ts.
350
+ */
351
+ const BUILD_MAP = {
352
+ what: 'A local page served by @extenshi/cli on 127.0.0.1: the build steps of the extension, from the idea to the live store listing, with the dependencies between them. Each step is done, in progress, waiting on the author, blocked by an unfinished step, or not needed for this extension. Steps waiting on the author (icon choice, approval of listing copy and screenshots, store accounts, submission) are counted in the header and open from there.',
353
+ forTheAuthor: 'One page shows what is done, what an agent is working on and where a decision is needed, instead of a long chat; visual choices such as the icon are compared there side by side. The page runs on the author’s machine, reads the project locally and works without an account.',
354
+ commands: {
355
+ open: 'npx @extenshi/cli@latest map: starts the map server of the project when none runs and opens the page; with the page already open in a tab, no second tab opens.',
356
+ status: 'npx @extenshi/cli@latest map status --json: progress, steps waiting on the author, steps in progress and steps that can start now; starts nothing.',
357
+ decline: 'npx @extenshi/cli@latest map decline: records that the author declined the map.',
358
+ stop: 'npx @extenshi/cli@latest map stop: stops the server; the next start reuses its port, so open tabs and links keep working.',
359
+ stepLink: '<map url>#node=<step id> opens one step, for example #node=iconConcepts.',
360
+ },
361
+ oneMapPerProject: 'A project has exactly one map and one map server, however many agents work on it. The map lives in the main checkout: from a linked git worktree the CLI resolves the same directory in the main working tree, so every agent and every worktree reads the same .extenshi/build-map.json and reaches the same server. Running `map` again, from any terminal, agent or worktree, returns the server already running; simultaneous starts end with one server.',
362
+ progress: 'Statuses are derived on every read, not stored: from the project files in the main checkout (manifest and the files it names, icons, builds, packages, the store folder, CI workflows); from the Dojo project the directory is bound to (owner decisions, and release evidence and readiness gates while the map server runs with an API key, refreshed every minute); and from .extenshi/build-map.json, which holds per-step progress, open reviews, the offer record and a log. Work on an agent branch appears once it is in the main checkout. The CLI writes the state file under .extenshi/build-map.lock; per-step progress reports from agents arrive with a later CLI version.',
363
+ offer: 'The map is an offer to the author, not a required step. It is offered once, after the extension idea is clear and before the first step that needs the author, in the author’s language and with a plain yes or no; the server starts only after a yes. After a no, the map comes up once more at the first visual choice (usually the icon), and after a second no it is not offered again. The answer is recorded in .extenshi/build-map.json (offer: count, acceptedAt, declinedAt): `map` records a yes and `map decline` a no, so a later agent session reads the answer instead of asking again.',
364
+ withoutTheMap: 'Everything also works in chat: previews are linked there and the author answers there. The state file is kept either way, so a map opened later shows the whole history.',
365
+ localServerField: 'On the local stdio server, create_project and get_project_state carry buildMap {running, url (while running), offered, declined, offers, home} for projectDir (default: the server’s working directory). The hosted connector has no access to the author’s files and returns no buildMap; there the map opens from a terminal on the author’s machine.',
366
+ docs: `${docs('cli')}#extenshi-map`,
367
+ };
345
368
  /** Top-level sections of the full guide, selectable via the `sections` parameter. */
346
369
  export const GUIDE_SECTIONS = [
347
370
  'tools',
@@ -349,6 +372,7 @@ export const GUIDE_SECTIONS = [
349
372
  'services',
350
373
  'repository',
351
374
  'workflow',
375
+ 'buildMap',
352
376
  'handoff',
353
377
  'storeMedia',
354
378
  ];
@@ -358,6 +382,7 @@ const SECTION_SUMMARIES = {
358
382
  services: 'Service directory: purpose, related tools, access requirements and URLs per lifecycle area.',
359
383
  repository: 'Git repository recommendation, setup, layout and secret-handling practice.',
360
384
  workflow: 'The nine lifecycle stages with descriptions, related tools and exit criteria.',
385
+ buildMap: 'The build map (npx @extenshi/cli map): one local progress page per project shared by every agent and git worktree, how progress reaches it, and how it is offered to the author.',
361
386
  handoff: 'Items a completed handoff records.',
362
387
  storeMedia: 'Store screenshots per locale (CLI screenshots + scenes.json format), listing artwork sizes per store (CLI icon store-assets) and the public project media store.',
363
388
  };
@@ -459,6 +484,7 @@ function buildSections(registeredTools) {
459
484
  ],
460
485
  },
461
486
  workflow: WORKFLOW,
487
+ buildMap: BUILD_MAP,
462
488
  storeMedia: STORE_MEDIA,
463
489
  handoff: [
464
490
  'scope and acceptance criteria',
@@ -1 +1 @@
1
- {"version":3,"file":"development-guide.js","sourceRoot":"","sources":["../src/development-guide.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"development-guide.js","sourceRoot":"","sources":["../src/development-guide.ts"],"names":[],"mappings":"AAoBA,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,iFAAiF;QAC1F,KAAK,EAAE,CAAC,uBAAuB,EAAE,aAAa,EAAE,0BAA0B,CAAC;QAC3E,MAAM,EAAE,gFAAgF;QACxF,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,qBAAqB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;KAChE;IACD;QACC,EAAE,EAAE,SAAS;QACb,OAAO,EACN,8IAA8I;QAC/I,KAAK,EAAE,CAAC,oBAAoB,EAAE,wBAAwB,EAAE,cAAc,CAAC;QACvE,MAAM,EACL,yKAAyK;QAC1K,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,mCAAmC,EAAE,kCAAkC,CAAC;KACrG;IACD;QACC,EAAE,EAAE,UAAU;QACd,OAAO,EAAE,mFAAmF;QAC5F,KAAK,EAAE;YACN,mBAAmB;YACnB,eAAe;YACf,aAAa;YACb,cAAc;YACd,uBAAuB;YACvB,iBAAiB;SACjB;QACD,MAAM,EACL,kLAAkL;QACnL,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,6BAA6B,CAAC;KAClD;IACD;QACC,EAAE,EAAE,UAAU;QACd,OAAO,EACN,4HAA4H;QAC7H,KAAK,EAAE;YACN,kBAAkB;YAClB,gBAAgB;YAChB,mBAAmB;YACnB,sBAAsB;YACtB,eAAe;YACf,kBAAkB;YAClB,uBAAuB;YACvB,iBAAiB;YACjB,oBAAoB;YACpB,qBAAqB;YACrB,yBAAyB;YACzB,yBAAyB;YACzB,oBAAoB;YACpB,wBAAwB;YACxB,oBAAoB;YACpB,mBAAmB;YACnB,uBAAuB;SACvB;QACD,MAAM,EACL,8vBAA8vB;QAC/vB,IAAI,EAAE;YACL,qBAAqB;YACrB,mCAAmC;YACnC,uCAAuC;SACvC;KACD;IACD;QACC,EAAE,EAAE,UAAU;QACd,OAAO,EAAE,gGAAgG;QACzG,KAAK,EAAE,CAAC,0BAA0B,EAAE,mBAAmB,EAAE,sBAAsB,CAAC;QAChF,MAAM,EACL,kGAAkG;QACnG,IAAI,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC;KAClE;IACD;QACC,EAAE,EAAE,cAAc;QAClB,OAAO,EACN,sLAAsL;QACvL,KAAK,EAAE;YACN,mBAAmB;YACnB,mBAAmB;YACnB,4BAA4B;YAC5B,4BAA4B;YAC5B,wBAAwB;YACxB,wBAAwB;YACxB,uBAAuB;YACvB,uBAAuB;SACvB;QACD,MAAM,EACL,icAAic;QAClc,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;KAC5B;IACD;QACC,EAAE,EAAE,OAAO;QACX,OAAO,EAAE,kFAAkF;QAC3F,KAAK,EAAE,CAAC,wBAAwB,CAAC;QACjC,MAAM,EACL,+IAA+I;QAChJ,IAAI,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;KAC1D;IACD;QACC,EAAE,EAAE,SAAS;QACb,OAAO,EACN,uGAAuG;QACxG,KAAK,EAAE;YACN,8BAA8B;YAC9B,4BAA4B;YAC5B,+BAA+B;YAC/B,wBAAwB;YACxB,wBAAwB;YACxB,wBAAwB;SACxB;QACD,MAAM,EACL,mjBAAmjB;QACpjB,IAAI,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE,QAAQ,CAAC,0BAA0B,CAAC,CAAC;KACxG;IACD;QACC,EAAE,EAAE,YAAY;QAChB,OAAO,EACN,kHAAkH;QACnH,KAAK,EAAE;YACN,gCAAgC;YAChC,oBAAoB;YACpB,mBAAmB;YACnB,0BAA0B;YAC1B,8BAA8B;YAC9B,gCAAgC;YAChC,uBAAuB;YACvB,uBAAuB;YACvB,sBAAsB;YACtB,oBAAoB;YACpB,uBAAuB;YACvB,wBAAwB;YACxB,0BAA0B;YAC1B,qBAAqB;SACrB;QACD,MAAM,EACL,urDAAurD;QACxrD,IAAI,EAAE;YACL,qBAAqB;YACrB,IAAI,CAAC,WAAW,CAAC;YACjB,IAAI,CAAC,sBAAsB,CAAC;YAC5B,IAAI,CAAC,oBAAoB,CAAC;YAC1B,QAAQ,CAAC,iBAAiB,CAAC;YAC3B,QAAQ,CAAC,uBAAuB,CAAC;YACjC,QAAQ,CAAC,sBAAsB,CAAC;YAChC,QAAQ,CAAC,oBAAoB,CAAC;YAC9B,QAAQ,CAAC,eAAe,CAAC;SACzB;KACD;IACD;QACC,EAAE,EAAE,uBAAuB;QAC3B,OAAO,EAAE,iFAAiF;QAC1F,KAAK,EAAE;YACN,uBAAuB;YACvB,oBAAoB;YACpB,sBAAsB;YACtB,sBAAsB;YACtB,kBAAkB;YAClB,4BAA4B;YAC5B,uBAAuB;YACvB,wBAAwB;YACxB,mBAAmB;YACnB,mBAAmB;YACnB,sBAAsB;YACtB,sBAAsB;YACtB,sBAAsB;YACtB,oBAAoB;SACpB;QACD,MAAM,EACL,6iEAA6iE;QAC9iE,IAAI,EAAE;YACL,IAAI,CAAC,KAAK,CAAC;YACX,IAAI,CAAC,eAAe,CAAC;YACrB,IAAI,CAAC,gBAAgB,CAAC;YACtB,QAAQ,CAAC,gBAAgB,CAAC;YAC1B,QAAQ,CAAC,eAAe,CAAC;YACzB,QAAQ,CAAC,eAAe,CAAC;SACzB;KACD;IACD;QACC,EAAE,EAAE,qBAAqB;QACzB,OAAO,EACN,uMAAuM;QACxM,KAAK,EAAE,CAAC,gBAAgB,EAAE,yBAAyB,EAAE,uBAAuB,CAAC;QAC7E,MAAM,EACL,kjEAAkjE;QACnjE,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,oBAAoB,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;KACvE;IACD;QACC,EAAE,EAAE,YAAY;QAChB,OAAO,EACN,yLAAyL;QAC1L,KAAK,EAAE,CAAC,mBAAmB,CAAC;QAC5B,MAAM,EACL,wMAAwM;YACxM,+KAA+K;YAC/K,mMAAmM;YACnM,+UAA+U;YAC/U,yOAAyO;QAC1O,IAAI,EAAE;YACL,IAAI,CAAC,KAAK,CAAC;YACX,IAAI,CAAC,6BAA6B,CAAC;YACnC,IAAI,CAAC,yBAAyB,CAAC;YAC/B,IAAI,CAAC,4BAA4B,CAAC;YAClC,QAAQ,CAAC,SAAS,CAAC;SACnB;KACD;IACD;QACC,EAAE,EAAE,aAAa;QACjB,OAAO,EACN,yGAAyG;QAC1G,KAAK,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,mBAAmB,EAAE,0BAA0B,CAAC;QACvF,MAAM,EACL,iJAAiJ;QAClJ,IAAI,EAAE;YACL,IAAI,CAAC,sBAAsB,CAAC;YAC5B,IAAI,CAAC,qBAAqB,CAAC;YAC3B,IAAI,CAAC,gBAAgB,CAAC;YACtB,IAAI,CAAC,oBAAoB,CAAC;YAC1B,IAAI,CAAC,kBAAkB,CAAC;SACxB;KACD;IACD;QACC,EAAE,EAAE,cAAc;QAClB,OAAO,EACN,mHAAmH;QACpH,KAAK,EAAE;YACN,eAAe;YACf,gBAAgB;YAChB,aAAa;YACb,mBAAmB;YACnB,0BAA0B;YAC1B,cAAc;YACd,gBAAgB;YAChB,iBAAiB;YACjB,iBAAiB;YACjB,gBAAgB;YAChB,oBAAoB;YACpB,oBAAoB;YACpB,wBAAwB;YACxB,kBAAkB;YAClB,mBAAmB;YACnB,4BAA4B;YAC5B,4BAA4B;YAC5B,iBAAiB;YACjB,gBAAgB;YAChB,iCAAiC;YACjC,qBAAqB;YACrB,mBAAmB;YACnB,0BAA0B;YAC1B,mCAAmC;YACnC,uBAAuB;YACvB,2BAA2B;YAC3B,wBAAwB;SACxB;QACD,MAAM,EACL,q1CAAq1C;QACt1C,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,mCAAmC,CAAC;KAC5D;CACQ,CAAA;AAEV;;;;GAIG;AACH,MAAM,QAAQ,GAAG;IAChB;QACC,EAAE,EAAE,OAAO;QACX,OAAO,EACN,0NAA0N;QAC3N,YAAY,EAAE,CAAC,uBAAuB,EAAE,aAAa,CAAC;QACtD,QAAQ,EACP,0GAA0G;KAC3G;IACD;QACC,EAAE,EAAE,UAAU;QACd,OAAO,EACN,8OAA8O;QAC/O,YAAY,EAAE;YACb,oBAAoB;YACpB,mBAAmB;YACnB,iBAAiB;YACjB,eAAe;YACf,aAAa;YACb,cAAc;YACd,uBAAuB;SACvB;QACD,QAAQ,EACP,iHAAiH;KAClH;IACD;QACC,EAAE,EAAE,wBAAwB;QAC5B,OAAO,EACN,sSAAsS;QACvS,YAAY,EAAE,CAAC,kBAAkB,EAAE,mBAAmB,CAAC;QACvD,QAAQ,EACP,6HAA6H;KAC9H;IACD;QACC,EAAE,EAAE,2BAA2B;QAC/B,OAAO,EACN,+dAA+d;QAChe,YAAY,EAAE,CAAC,0BAA0B,EAAE,sBAAsB,EAAE,mBAAmB,CAAC;QACvF,QAAQ,EACP,oHAAoH;KACrH;IACD;QACC,EAAE,EAAE,gBAAgB;QACpB,OAAO,EACN,6ZAA6Z;QAC9Z,YAAY,EAAE,CAAC,mBAAmB,CAAC;QACnC,QAAQ,EACP,+HAA+H;KAChI;IACD;QACC,EAAE,EAAE,yBAAyB;QAC7B,OAAO,EACN,2rBAA2rB;QAC5rB,YAAY,EAAE;YACb,wBAAwB;YACxB,gCAAgC;YAChC,oBAAoB;YACpB,uBAAuB;YACvB,oBAAoB;YACpB,sBAAsB;YACtB,sBAAsB;YACtB,mBAAmB;YACnB,sBAAsB;YACtB,sBAAsB;YACtB,oBAAoB;YACpB,8BAA8B;YAC9B,4BAA4B;YAC5B,+BAA+B;YAC/B,wBAAwB;YACxB,mBAAmB;SACnB;QACD,QAAQ,EACP,0HAA0H;KAC3H;IACD;QACC,EAAE,EAAE,cAAc;QAClB,OAAO,EACN,46BAA46B;QAC76B,YAAY,EAAE;YACb,mBAAmB;YACnB,4BAA4B;YAC5B,4BAA4B;YAC5B,wBAAwB;YACxB,wBAAwB;YACxB,uBAAuB;YACvB,uBAAuB;YACvB,kBAAkB;YAClB,sBAAsB;YACtB,mBAAmB;YACnB,uBAAuB;YACvB,mBAAmB;SACnB;QACD,QAAQ,EACP,qIAAqI;KACtI;IACD;QACC,EAAE,EAAE,qBAAqB;QACzB,OAAO,EACN,k/BAAk/B;QACn/B,YAAY,EAAE,CAAC,aAAa,EAAE,gBAAgB,EAAE,uBAAuB,CAAC;QACxE,QAAQ,EACP,qJAAqJ;KACtJ;IACD;QACC,EAAE,EAAE,SAAS;QACb,OAAO,EACN,sVAAsV;QACvV,YAAY,EAAE,CAAC,mBAAmB,CAAC;QACnC,QAAQ,EACP,yIAAyI;KAC1I;IACD;QACC,EAAE,EAAE,SAAS;QACb,OAAO,EACN,oPAAoP;QACrP,YAAY,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,mBAAmB,CAAC;QAClE,QAAQ,EACP,qHAAqH;KACtH;CACQ,CAAA;AAEV;;;;;GAKG;AACH,MAAM,SAAS,GAAG;IACjB,IAAI,EAAE,0bAA0b;IAChc,YAAY,EACX,kRAAkR;IACnR,QAAQ,EAAE;QACT,IAAI,EAAE,iKAAiK;QACvK,MAAM,EACL,oJAAoJ;QACrJ,OAAO,EAAE,iFAAiF;QAC1F,IAAI,EAAE,2HAA2H;QACjI,QAAQ,EAAE,0EAA0E;KACpF;IACD,gBAAgB,EACf,+bAA+b;IAChc,QAAQ,EACP,0pBAA0pB;IAC3pB,KAAK,EACJ,wkBAAwkB;IACzkB,aAAa,EACZ,0KAA0K;IAC3K,gBAAgB,EACf,yVAAyV;IAC1V,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe;CAC1B,CAAA;AAEV,qFAAqF;AACrF,MAAM,CAAC,MAAM,cAAc,GAAG;IAC7B,OAAO;IACP,cAAc;IACd,UAAU;IACV,YAAY;IACZ,UAAU;IACV,UAAU;IACV,SAAS;IACT,YAAY;CACH,CAAA;AAGV,MAAM,iBAAiB,GAAiC;IACvD,KAAK,EAAE,oGAAoG;IAC3G,YAAY,EAAE,6FAA6F;IAC3G,QAAQ,EAAE,6FAA6F;IACvG,UAAU,EAAE,4EAA4E;IACxF,QAAQ,EAAE,+EAA+E;IACzF,QAAQ,EACP,kLAAkL;IACnL,OAAO,EAAE,oCAAoC;IAC7C,UAAU,EACT,kKAAkK;CACnK,CAAA;AAED;;;;GAIG;AACH,MAAM,WAAW,GAAG;IACnB,WAAW,EAAE;QACZ,OAAO,EACN,kPAAkP;QACnP,QAAQ,EACP,qOAAqO;QACtO,MAAM,EACL,yHAAyH;QAC1H,QAAQ,EACP,2gCAA2gC;QAC5gC,eAAe,EACd,8TAA8T;QAC/T,WAAW,EACV,uSAAuS;QACxS,KAAK,EAAE;YACN,MAAM,EACL,4HAA4H;YAC7H,IAAI,EAAE,mIAAmI;YACzI,OAAO,EACN,2IAA2I;SAC5I;QACD,YAAY,EAAE;YACb,OAAO,EAAE;gBACR,OAAO,EAAE,CAAC;gBACV,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;gBACtC,iBAAiB,EAAE,CAAC;gBACpB,QAAQ,EAAE,UAAU;gBACpB,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;gBAC/F,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;gBACjE,MAAM,EAAE;oBACP,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE;oBAC9E;wBACC,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,+BAA+B;wBACrC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;qBACtC;oBACD,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE;iBAC7E;aACD;YACD,IAAI,EAAE,gOAAgO;YACtO,KAAK,EACJ,sRAAsR;YACvR,YAAY,EACX,oUAAoU;YACrU,WAAW,EACV,0SAA0S;SAC3S;KACD;IACD,WAAW,EAAE;QACZ,OAAO,EACN,6LAA6L;QAC9L,OAAO,EAAE;YACR,MAAM,EACL,wKAAwK;YACzK,IAAI,EAAE,4KAA4K;YAClL,OAAO,EACN,8KAA8K;SAC/K;QACD,KAAK,EACJ,0YAA0Y;KAC3Y;IACD,WAAW,EAAE;QACZ,IAAI,EAAE,qCAAqC;QAC3C,GAAG,EAAE,8FAA8F;QACnG,OAAO,EACN,qWAAqW;QACtW,GAAG,EAAE,uIAAuI;KAC5I;CACQ,CAAA;AAEV,MAAM,YAAY,GACjB,uTAAuT,CAAA;AAExT,SAAS,aAAa,CAAC,eAAqC;IAC3D,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAC/D,OAAO;QACN,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACrC,GAAG,IAAI;YACP,IAAI,EAAE;gBACL,GAAG,IAAI,GAAG,CACT,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,KAA2B,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAC7F,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,2BAA2B,CAAC,CAAC,CAC1E,CACD;aACD;SACD,CAAC,CAAC;QACH,YAAY,EAAE,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpE,IAAI;YACJ,yBAAyB,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;YAC1C,QAAQ,EACP,0KAA0K;YAC3K,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;SACjB,CAAC,CAAC;QACH,QAAQ,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;YAC9D,GAAG,OAAO;YACV,qBAAqB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SAC9D,CAAC,CAAC;QACH,UAAU,EAAE;YACX,cAAc,EACb,mSAAmS;YACpS,KAAK,EACJ,iVAAiV;YAClV,MAAM,EAAE;gBACP,gEAAgE;gBAChE,kFAAkF;gBAClF,uFAAuF;gBACvF,wCAAwC;gBACxC,oEAAoE;gBACpE,oDAAoD;gBACpD,oFAAoF;aACpF;YACD,QAAQ,EACP,+RAA+R;YAChS,IAAI,EAAE;gBACL,wGAAwG;gBACxG,IAAI,CAAC,oBAAoB,CAAC;gBAC1B,qBAAqB;aACrB;SACD;QACD,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,SAAS;QACnB,UAAU,EAAE,WAAW;QACvB,OAAO,EAAE;YACR,+BAA+B;YAC/B,+CAA+C;YAC/C,+CAA+C;YAC/C,yCAAyC;YACzC,uCAAuC;YACvC,qCAAqC;YACrC,+BAA+B;YAC/B,8BAA8B;SAC9B;KACD,CAAA;AACF,CAAC;AAID,wFAAwF;AACxF,MAAM,UAAU,oBAAoB,CAAC,SAA6B;IACjE,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IACnD,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,GAAG,cAAc,CAAC,CAAA;IACzD,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;AACvE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACpC,eAAqC,EACrC,SAA6B;IAG7B,MAAM,QAAQ,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAA;IAChD,MAAM,IAAI,GAAG,aAAa,CAAC,eAAe,CAAC,CAAA;IAC3C,MAAM,IAAI,GAAG,EAAE,aAAa,EAAE,CAAU,EAAE,aAAa,EAAE,qBAAqB,EAAE,YAAY,EAAE,YAAY,EAAE,CAAA;IAE5G,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/F,CAAC;IAED,OAAO;QACN,GAAG,IAAI;QACP,QAAQ,EACP,oNAAoN;QACrN,SAAS,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;QACnD,cAAc,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACtE,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACrC,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,iBAAiB,CAAC,EAAE,CAAC;YAC9B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,EAAE,CAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;SACtF,CAAC,CAAC;QACH,iBAAiB,EAChB,gIAAgI;KACjI,CAAA;AACF,CAAC"}
package/dist/index.js CHANGED
@@ -20,8 +20,10 @@
20
20
  * NB: stdout is the MCP protocol channel — never write to it (use stderr).
21
21
  */
22
22
  import { createRequire } from 'node:module';
23
+ import path from 'node:path';
23
24
  import { FastMCP, UserError } from 'fastmcp';
24
25
  import { makeBff } from './bff.js';
26
+ import { readBuildMapSummary } from './build-map-summary.js';
25
27
  import { loadConfig } from './config.js';
26
28
  import { instrumentMcpAnalytics } from './mcp-analytics.js';
27
29
  import { reportServerStarted } from './startup.js';
@@ -57,6 +59,8 @@ const stdioDeps = {
57
59
  getBff: () => bff(),
58
60
  requireApiKey: () => requireKey(),
59
61
  getApiKey: () => cfg.apiKey ?? undefined,
62
+ // The client starts this server in the project it works on; the map of that project is the author's.
63
+ readBuildMap: (projectDir) => readBuildMapSummary(path.resolve(process.cwd(), projectDir ?? '.')),
60
64
  };
61
65
  registerTools(server, stdioDeps);
62
66
  instrumentMcpAnalytics({ surface: 'mcp' });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/tools.d.ts CHANGED
@@ -35,6 +35,7 @@
35
35
  */
36
36
  import { type FastMCP, type FastMCPSessionAuth } from 'fastmcp';
37
37
  import type { Bff } from './bff.js';
38
+ import type { BuildMapSummary } from './build-map-summary.js';
38
39
  export declare const KEY_PAGE = "https://dojo.extenshi.io/api-keys";
39
40
  export declare const SIGNUP_PAGE = "https://auth.extenshi.io/signup";
40
41
  export declare const BILLING_PAGE = "https://dojo.extenshi.io/billing";
@@ -122,7 +123,16 @@ export interface ToolDeps {
122
123
  auth?: McpAuth;
123
124
  /** Optional override of the missing-key message (defaults to the one for `auth`). */
124
125
  missingKeyMessage?: string;
126
+ /**
127
+ * The author's build map for a project directory on THIS machine (plan
128
+ * 2026-11-03-extension-build-map §6.7). Only the local stdio server has the
129
+ * author's files: it passes this, and create_project / get_project_state then
130
+ * take `projectDir` and answer with `buildMap`. The hosted connector omits it.
131
+ */
132
+ readBuildMap?: (projectDir?: string) => Promise<BuildMapSummary>;
125
133
  }
134
+ /** How long a project answer waits for the build map (a slow `git`, a hung server) before going without it. */
135
+ export declare const BUILD_MAP_READ_MS = 3000;
126
136
  /**
127
137
  * True when a thrown error is an expected, user-facing condition rather than a
128
138
  * bug worth an exception report.
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AASH,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,kBAAkB,EAA6C,MAAM,SAAS,CAAA;AAG1G,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAkEnC,eAAO,MAAM,QAAQ,sCAAsC,CAAA;AAC3D,eAAO,MAAM,WAAW,oCAAoC,CAAA;AAC5D,eAAO,MAAM,YAAY,qCAAqC,CAAA;AAC9D,eAAO,MAAM,iBAAiB,+EAA+E,CAAA;AAO7G,eAAO,MAAM,mBAAmB,QAWS,CAAA;AAEzC;;;GAGG;AACH,eAAO,MAAM,iBAAiB,QAEiE,CAAA;AAE/F;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,KAAK,CAAA;AAEtC,eAAO,MAAM,WAAW,aAAa,CAAA;AAErC;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,OAAO,CAAA;AAEzC;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,QAYiD,CAAA;AAqCjF,oFAAoF;AACpF,wBAAgB,qBAAqB,CACpC,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC,EACrC,IAAI,GAAE,OAAmB,GACvB,MAAM,CAaR;AAID,uDAAuD;AACvD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;AAE7D;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC/B,OAAO,CAAC,EAAE,kBAAkB,CAAA;IAC5B,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,QAAQ;IACxB,kEAAkE;IAClE,GAAG,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IACzD,+BAA+B;IAC/B,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC,CAAA;IACrC;;;;;OAKG;IACH,MAAM,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,GAAG,CAAA;IACrC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,MAAM,CAAA;IAChD;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,MAAM,GAAG,SAAS,CAAA;IACxD;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,qFAAqF;IACrF,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAiFD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,GAAE,MAA2B,GAAG,OAAO,CAGxF;AA2uBD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,CA86DnE"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAUH,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,kBAAkB,EAA6C,MAAM,SAAS,CAAA;AAG1G,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAkE7D,eAAO,MAAM,QAAQ,sCAAsC,CAAA;AAC3D,eAAO,MAAM,WAAW,oCAAoC,CAAA;AAC5D,eAAO,MAAM,YAAY,qCAAqC,CAAA;AAC9D,eAAO,MAAM,iBAAiB,+EAA+E,CAAA;AAO7G,eAAO,MAAM,mBAAmB,QAWS,CAAA;AAEzC;;;GAGG;AACH,eAAO,MAAM,iBAAiB,QAEiE,CAAA;AAE/F;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,KAAK,CAAA;AAEtC,eAAO,MAAM,WAAW,aAAa,CAAA;AAErC;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,OAAO,CAAA;AAEzC;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,QAa+C,CAAA;AAqC/E,oFAAoF;AACpF,wBAAgB,qBAAqB,CACpC,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC,EACrC,IAAI,GAAE,OAAmB,GACvB,MAAM,CAaR;AAID,uDAAuD;AACvD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;AAE7D;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC/B,OAAO,CAAC,EAAE,kBAAkB,CAAA;IAC5B,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,QAAQ;IACxB,kEAAkE;IAClE,GAAG,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IACzD,+BAA+B;IAC/B,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC,CAAA;IACrC;;;;;OAKG;IACH,MAAM,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,GAAG,CAAA;IACrC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,MAAM,CAAA;IAChD;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,MAAM,GAAG,SAAS,CAAA;IACxD;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,qFAAqF;IACrF,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAA;CAChE;AAED,+GAA+G;AAC/G,eAAO,MAAM,iBAAiB,OAAQ,CAAA;AAuFtC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,GAAE,MAA2B,GAAG,OAAO,CAGxF;AA2uBD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,CAo9DnE"}
package/dist/tools.js CHANGED
@@ -108,16 +108,17 @@ export const SERVER_NAME = 'extenshi';
108
108
  */
109
109
  export const SERVER_INSTRUCTIONS = "Extenshi covers browser-extension development and operations: catalog and security data on other people's extensions, " +
110
110
  "and the signed-in developer's own projects, hosted pages, Pay applications and privacy policy. " +
111
- 'get_development_guide (free) returns the end-to-end workflow, the tools on this connection, the service directory and documentation links; ' +
112
- 'search_docs (free) returns current product documentation and exact CLI flags. ' +
113
- 'get_credit_balance reports the remaining read, scan, icon and inventory credits; get_risk_by_store_ids covers up to 40 store IDs for one read, and get_security costs three reads. ' +
114
- "list_my_projects returns the developer's own projects (create_project adds one); get_project_state returns a project's configuration, including integration.file " +
111
+ "get_development_guide (free) returns the workflow, this connection's tools, services and documentation links; " +
112
+ 'search_docs (free) returns current documentation and exact CLI flags. ' +
113
+ 'get_credit_balance reports the remaining credits; get_risk_by_store_ids covers 40 store IDs per read, and get_security costs three reads. ' +
114
+ "list_my_projects returns the developer's projects (create_project adds one); get_project_state returns a project's configuration, including integration.file " +
115
115
  '(the content for integration.path that links a repository to the project) and integration.unwired. ' +
116
- 'get_decisions lists the owner decisions (AMO add-on id, license, seller identity, pricing); propose_decision proposes a value and the owner decides it in Dojo. ' +
117
- 'Pay applications are independent of projects (list_pay_apps, create_pay_app, get_pay_readiness) and need the pay.read / pay.write scopes; ' +
118
- 'agreement acceptance and KYC take place in the browser, and only the publishable SDK key and the public verification key belong in extension code. ' +
119
- 'Hosted privacy-policy tools need a Pro project: publish_privacy_policy puts a policy on the live public page, update_privacy_policy_with_ai returns a proposal only. ' +
120
- 'Registered tools are not proof of account entitlements or a completed release.';
116
+ 'The build map (npx @extenshi/cli map) is one local page per project and its worktrees, where the author follows progress and makes choices. ' +
117
+ 'get_decisions lists owner decisions (AMO add-on id, license, seller, pricing); propose_decision proposes a value, and the owner decides it in Dojo. ' +
118
+ 'Pay applications are separate from projects (list_pay_apps, create_pay_app, get_pay_readiness) and need the pay.read / pay.write scopes; ' +
119
+ 'agreement and KYC happen in the browser, and only the publishable SDK key and the public verification key belong in extension code. ' +
120
+ 'Hosted privacy-policy tools need a Pro project: publish_privacy_policy updates the live public page; update_privacy_policy_with_ai only proposes. ' +
121
+ 'Registered tools prove neither account entitlements nor a completed release.';
121
122
  /**
122
123
  * What happens to a payments or live-policy change made through the hosted connector (the owner approves it in
123
124
  * Dojo). A statement of fact, only for the OAuth transport: an `ek_` key acts directly.
@@ -155,11 +156,19 @@ export function getServerInstructions(capabilities, auth = 'api-key') {
155
156
  ].filter(Boolean);
156
157
  return (SERVER_INSTRUCTIONS +
157
158
  (local.length
158
- ? ` This connection exposes ${local.join(' and ')} for local artifacts; they need valid credentials and publishing access.`
159
+ ? ` This connection exposes ${local.join(' and ')} for local artifacts; they need credentials and publishing access.`
159
160
  : ' This connection has no local artifact scan or store-publishing tool; the local stdio server and the CLI provide those stages.') +
160
161
  (auth === 'api-key' ? ` ${API_KEY_DIRECT_FACT} API keys for the local package: ${KEY_PAGE}.` : '') +
161
162
  (auth === 'oauth' ? ` ${CONNECTOR_APPROVAL_FACT}` : ''));
162
163
  }
164
+ /** How long a project answer waits for the build map (a slow `git`, a hung server) before going without it. */
165
+ export const BUILD_MAP_READ_MS = 3_000;
166
+ /** Add `buildMap` to a JSON object answer; anything else, or no map, passes through unchanged. */
167
+ function withBuildMap(result, buildMap) {
168
+ if (!buildMap || !result || typeof result !== 'object' || Array.isArray(result))
169
+ return result;
170
+ return { ...result, buildMap };
171
+ }
163
172
  // ── Internal helpers (ported from index.ts, now deps-parametrized) ───────────
164
173
  /**
165
174
  * A `UserError` that keeps the error it renders as `cause`.
@@ -979,6 +988,28 @@ export function registerTools(server, deps) {
979
988
  throw new UserError(missingKeyMessage);
980
989
  return deps.requireApiKey(ctx);
981
990
  };
991
+ // The build map is read next to the BFF call and never fails or holds up a project answer.
992
+ const readBuildMap = deps.readBuildMap;
993
+ const buildMapOf = (projectDir) => readBuildMap
994
+ ? Promise.race([
995
+ readBuildMap(projectDir).catch(() => undefined),
996
+ new Promise((resolve) => {
997
+ setTimeout(() => resolve(undefined), BUILD_MAP_READ_MS).unref();
998
+ }),
999
+ ])
1000
+ : Promise.resolve(undefined);
1001
+ const projectDirParam = z
1002
+ .string()
1003
+ .min(1)
1004
+ .optional()
1005
+ .describe("The extension project's directory on this machine, absolute or relative to this server's working directory " +
1006
+ '(default: the working directory). In a linked git worktree, buildMap describes the map of the main checkout, ' +
1007
+ 'which every agent and worktree of the project shares.');
1008
+ const buildMapNote = readBuildMap
1009
+ ? ' On this local server the answer also carries `buildMap` {running, url (while running), offered, declined, offers, home} ' +
1010
+ 'for projectDir: the author’s build map (npx @extenshi/cli map), one per project for every agent and git worktree; ' +
1011
+ 'absent when the directory cannot be read.'
1012
+ : '';
982
1013
  // ── Read tools (free; key/identity required) ───────────────────────────────
983
1014
  if (caps.has('read')) {
984
1015
  for (const [method, name, , , mutation, description] of PAY_OPERATIONS) {
@@ -1046,11 +1077,19 @@ export function registerTools(server, deps) {
1046
1077
  'the Dojo project wizard uses, with the same ownership and limits. Returns JSON {projectId, dojoUrl, ' +
1047
1078
  'project, pendingDecisions, nextSteps}: the next steps cover binding the repository and the starter ' +
1048
1079
  'files. Idempotent: a repeated request with the same idempotencyKey returns the project it already ' +
1049
- 'created (replayed: true); the same key with different input is rejected. Requires project.write.',
1050
- parameters: agentCreateProjectSchema,
1080
+ 'created (replayed: true); the same key with different input is rejected. Requires project.write.' +
1081
+ buildMapNote,
1082
+ parameters: readBuildMap
1083
+ ? agentCreateProjectSchema.extend({ projectDir: projectDirParam })
1084
+ : agentCreateProjectSchema,
1051
1085
  execute: async (args, context) => {
1086
+ const { projectDir, ...input } = args;
1052
1087
  try {
1053
- return JSON.stringify(await bff(context).createProject(args), null, 2);
1088
+ const [created, buildMap] = await Promise.all([
1089
+ bff(context).createProject(input),
1090
+ buildMapOf(projectDir),
1091
+ ]);
1092
+ return JSON.stringify(withBuildMap(created, buildMap), null, 2);
1054
1093
  }
1055
1094
  catch (err) {
1056
1095
  return readError(err, missingKeyMessage);
@@ -2207,9 +2246,11 @@ export function registerTools(server, deps) {
2207
2246
  'landing_page), name, missing, outdated, locales [{locale, total, missing, outdated}], fixWith {read, write, args}}]}; ' +
2208
2247
  '`next` is one sentence naming the largest gap and its tools. Pay surfaces need pay.read (otherwise `skipped`); ' +
2209
2248
  "the extension's own _locales files are not part of it (localize_workflow covers those). " +
2210
- 'FREE — spends no credit. Type definitions are in list_extension_templates.',
2249
+ 'FREE — spends no credit. Type definitions are in list_extension_templates.' +
2250
+ buildMapNote,
2211
2251
  parameters: z.object({
2212
2252
  projectId: z.string().describe('Project id from list_my_projects.'),
2253
+ ...(readBuildMap ? { projectDir: projectDirParam } : {}),
2213
2254
  includeToolStates: z
2214
2255
  .array(z.string())
2215
2256
  .optional()
@@ -2221,12 +2262,15 @@ export function registerTools(server, deps) {
2221
2262
  }),
2222
2263
  execute: async (args, context) => {
2223
2264
  try {
2224
- const state = await bff(context).getMyProjectState({
2225
- projectId: args.projectId,
2226
- includeToolStates: args.includeToolStates,
2227
- manifests: args.manifests ?? 'summary',
2228
- });
2229
- return JSON.stringify(state);
2265
+ const [state, buildMap] = await Promise.all([
2266
+ bff(context).getMyProjectState({
2267
+ projectId: args.projectId,
2268
+ includeToolStates: args.includeToolStates,
2269
+ manifests: args.manifests ?? 'summary',
2270
+ }),
2271
+ buildMapOf(args.projectDir),
2272
+ ]);
2273
+ return JSON.stringify(withBuildMap(state, buildMap));
2230
2274
  }
2231
2275
  catch (err) {
2232
2276
  return readError(err, missingKeyMessage);