@subseam/mcp 0.4.1 → 0.4.2

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 (2) hide show
  1. package/dist/main.js +12 -7
  2. package/package.json +1 -1
package/dist/main.js CHANGED
@@ -30699,10 +30699,11 @@ var input2 = external_exports.object({
30699
30699
  source: external_exports.record(external_exports.unknown()).optional(),
30700
30700
  nlIntent: external_exports.string().min(1).optional(),
30701
30701
  createdBy: external_exports.string().min(1).optional(),
30702
- // OPTIONAL IN THE SCHEMA, MANDATORY IN EFFECT (the shape `invoke-define-admit-route.ts` takes):
30703
- // the `source` arm's admission is `authored`, and Core refuses a blank basis with a typed
30702
+ // OPTIONAL IN THE SCHEMA, MANDATORY IN EFFECT ON `source` (the shape `invoke-define-admit-route.ts`
30703
+ // takes): the `source` arm's admission is `authored`, and Core refuses a blank basis with a typed
30704
30704
  // MISSING_BASIS carrying its repair hint. Declaring it required here would trade that named
30705
- // refusal for a Zod 400 with nothing to act on, and the `dry_run`/`mine` arms need none.
30705
+ // refusal for a Zod 400 with nothing to act on, and the `dry_run`/`mine` arms need none. The
30706
+ // `nlIntent` arm forwards it when given and otherwise cites its own sentence.
30706
30707
  basis: external_exports.string().min(1).optional(),
30707
30708
  dry_run: external_exports.boolean().optional(),
30708
30709
  mine: external_exports.object({
@@ -30714,7 +30715,7 @@ var input2 = external_exports.object({
30714
30715
  });
30715
30716
  var defineTool = {
30716
30717
  name: "define",
30717
- description: "Write a definition into this tenant's governing corpus. Pass exactly one of `source` (the SDL definition object \u2014 deterministic, no LLM) or `nlIntent` (a natural-language intent, authored through the CEGIS loop), plus `repo` (org-qualified) and optional `commit` (defaults to resolved tip). With `source`, pass `basis` too: free text citing what the definition stood on \u2014 the source doc plus its section (there is no fixed vocabulary). It is required in effect on this arm; an admission that cites nothing is refused. `nlIntent` supplies its own. `dry_run: true` with `source` validates against the live graph and admits NOTHING, returning per-gate errors with repair hints. `dry_run: true` with `source` and no `repo` answers only whether the language can say it (bind, capability and strength are deferred until a repo is named). `mine: {repo}` submits a whole-repo candidate mining pass instead (async \u2014 poll with `mine: {jobId}`). New versions land defaulted until approved. `gap: { construct, witness, issue }` records a construct the language cannot say yet (witness is the file:line that needed it) and admits nothing.",
30718
+ description: "Write a definition into this tenant's governing corpus. Pass exactly one of `source` (the SDL definition object \u2014 deterministic, no LLM) or `nlIntent` (a natural-language intent, authored through the CEGIS loop), plus `repo` (org-qualified) and optional `commit` (defaults to resolved tip). Pass `basis` on either arm: free text citing what the definition stood on \u2014 the source doc plus its section (there is no fixed vocabulary), or `capture-note:<id>` for a captured note, which also marks that note formalized. It is required in effect with `source`; an admission that cites nothing is refused. With `nlIntent` it defaults to the intent sentence. `dry_run: true` with `source` validates against the live graph and admits NOTHING, returning per-gate errors with repair hints. `dry_run: true` with `source` and no `repo` answers only whether the language can say it (bind, capability and strength are deferred until a repo is named). `mine: {repo}` submits a whole-repo candidate mining pass instead (async \u2014 poll with `mine: {jobId}`). New versions land defaulted until approved. `gap: { construct, witness, issue }` records a construct the language cannot say yet (witness is the file:line that needed it) and admits nothing.",
30718
30719
  capability: "define",
30719
30720
  inputSchema: input2.shape,
30720
30721
  async handler(raw, ctx) {
@@ -30763,7 +30764,8 @@ var defineTool = {
30763
30764
  repo: args2.repo,
30764
30765
  nlIntent: args2.nlIntent,
30765
30766
  ...args2.commit !== void 0 ? { commit: args2.commit } : {},
30766
- ...args2.createdBy !== void 0 ? { createdBy: args2.createdBy } : {}
30767
+ ...args2.createdBy !== void 0 ? { createdBy: args2.createdBy } : {},
30768
+ ...args2.basis !== void 0 ? { basis: args2.basis } : {}
30767
30769
  };
30768
30770
  const wire = await ctx.gateway.invoke("define-author", payload2);
30769
30771
  const body2 = readBody(authorBody, wire, "define", "define-author");
@@ -31591,6 +31593,7 @@ var defineInboxTool = {
31591
31593
  };
31592
31594
  var LABELS = {
31593
31595
  drift: "drift",
31596
+ draft: "draft",
31594
31597
  "refinement-pending": "refinement",
31595
31598
  "snooze-expired": "snooze expired",
31596
31599
  "snooze-expiring": "snooze due",
@@ -31606,6 +31609,8 @@ var HOW = {
31606
31609
  // parsing a number back out of a sentence to put it in a tool call is precisely the guessed
31607
31610
  // content the ruling forbids. So the call is named with the id it does hold and the remaining
31608
31611
  // arguments are stated as arguments the caller supplies.
31612
+ // A first draft is version 1, so the call is complete.
31613
+ draft: (item) => `define_ratify {kind:'ratify-version', definitionId:'${item.id}', version:1, status:'ratified'|'corrected'}`,
31609
31614
  "refinement-pending": (item) => `define_ratify {kind:'ratify-version', definitionId:'${item.id}', version:\u2026, status:'ratified'|'corrected'} \u2014 supply the version shown in this line`,
31610
31615
  // The read shows the alteration, verdict and definition; the adjudication follows it.
31611
31616
  proposal: (item) => `define_proposal_read {taskId:'${item.id}'}, then define_adjudicate {taskId:'${item.id}', decision:'accept'|'reject', reason:\u2026}`
@@ -31981,7 +31986,7 @@ function renderCapture(n) {
31981
31986
  const anchor = onPackage ? `attached to the package holding ${n.path}` : n.anchorKind === "concept" ? `concept ${n.conceptId}` : n.anchorKind === "path" ? `path ${n.path}` : n.anchorKind === "repo" ? `repo ${n.repoId}` : "unanchored";
31982
31987
  const chan = n.channel !== null ? ` [${n.channel}]` : "";
31983
31988
  return `capture: note ${n.id} stored (${anchor})${chan}.
31984
- To draft it as a definition, call \`define\` with this repo as \`repo\`, \`basis: "capture-note:${n.id}"\` and the definition as an SDL \`source\`.`;
31989
+ To draft it as a definition, call \`define\` with this repo as \`repo\`, \`basis: "capture-note:${n.id}"\`, and either \`nlIntent\` (the note in your words) or an SDL \`source\`.`;
31985
31990
  }
31986
31991
 
31987
31992
  // ../capture/src/tool/capture-list.ts
@@ -48306,7 +48311,7 @@ var workReadTools = createWorkReadToolProviders({ capability: "work" });
48306
48311
  var bundledProviders = [src_default2, src_default, tension_default, ...defineTools, ...decisionTools, ...captureTools, ...buildTools, secureTool, ...workTools, ...workReadTools];
48307
48312
 
48308
48313
  // package.json
48309
- var version2 = "0.4.1";
48314
+ var version2 = "0.4.2";
48310
48315
 
48311
48316
  // src/server.ts
48312
48317
  var SERVER_VERSION = version2;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@subseam/mcp",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "bin": {