@monosmith/plugin-sdk 2.0.0-beta.10 → 2.0.0-beta.11

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@monosmith/plugin-sdk",
3
- "version": "2.0.0-beta.10",
3
+ "version": "2.0.0-beta.11",
4
4
  "description": "The TypeScript SDK for writing smith plugins: the protocol's types, the serve loop, a test host, the conformance checks, templating and key-order-keeping JSON editing. No runtime dependencies.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -1430,6 +1430,13 @@ export const protocolSchema = {
1430
1430
  "dir": {
1431
1431
  "type": "string",
1432
1432
  "description": "Dir is where it runs, workspace-relative; empty is the workspace root."
1433
+ },
1434
+ "env": {
1435
+ "type": "array",
1436
+ "items": {
1437
+ "type": "string"
1438
+ },
1439
+ "description": "Env are KEY=VALUE entries added to the environment of the command (GOBIN=<folder> makes go install write there). Absent adds none."
1433
1440
  }
1434
1441
  },
1435
1442
  "required": [
@@ -2605,7 +2612,7 @@ export const protocolSchema = {
2605
2612
  ]
2606
2613
  },
2607
2614
  "ToolInstall": {
2608
- "description": "ToolInstall is one way to get a tool with a package manager. Manager is one of: \"winget\", \"brew\", \"brew-cask\", \"apt\", \"dnf\", \"pacman\", \"npm\", \"uv\", \"fnm\", \"rustup\" and \"cargo\". The host builds the exact command from the manager and Package; Package may hold {major} and {major.minor}, which the pinned or suggested version fills. The language's own installers (uv, fnm, rustup, cargo) are offered only when they are already on the machine.",
2615
+ "description": "ToolInstall is one way to get a tool with a package manager. Manager is one of: \"winget\", \"brew\", \"brew-cask\", \"apt\", \"dnf\", \"pacman\", \"npm\", \"uv\", \"fnm\", \"rustup\", \"cargo\" and \"go\" (go install, for a tool published as a Go module). The host builds the exact command from the manager and Package; Package may hold {major}, {major.minor} and {version} (the whole version), which the pinned or suggested version fills. The language's own installers (uv, fnm, rustup, cargo) are offered only when they are already on the machine.",
2609
2616
  "type": "object",
2610
2617
  "properties": {
2611
2618
  "manager": {
@@ -2695,6 +2702,10 @@ export const protocolSchema = {
2695
2702
  "type": "boolean",
2696
2703
  "description": "Optional marks a tool whose absence only costs a feature (running a function app locally). Doctor reports it as a warning, not a failure."
2697
2704
  },
2705
+ "exact": {
2706
+ "type": "boolean",
2707
+ "description": "Exact says Suggested is the one version the workspace wants, such as the version CI pins: an installed version that differs, older or newer, is reported as different, and an install fetches that version."
2708
+ },
2698
2709
  "install": {
2699
2710
  "type": "array",
2700
2711
  "items": {
@@ -668,6 +668,11 @@ export interface FixStep {
668
668
  argv: string[];
669
669
  /** Dir is where it runs, workspace-relative; empty is the workspace root. */
670
670
  dir?: string;
671
+ /**
672
+ * Env are KEY=VALUE entries added to the environment of the command (GOBIN=<folder> makes go
673
+ * install write there). Absent adds none.
674
+ */
675
+ env?: string[];
671
676
  }
672
677
  /**
673
678
  * GenerateParams asks a plugin to scaffold a project. The host chooses the directory from the kind
@@ -1387,9 +1392,10 @@ export interface Task {
1387
1392
  }
1388
1393
  /**
1389
1394
  * ToolInstall is one way to get a tool with a package manager. Manager is one of: "winget", "brew",
1390
- * "brew-cask", "apt", "dnf", "pacman", "npm", "uv", "fnm", "rustup" and "cargo". The host builds
1391
- * the exact command from the manager and Package; Package may hold {major} and {major.minor}, which
1392
- * the pinned or suggested version fills. The language's own installers (uv, fnm, rustup, cargo) are
1395
+ * "brew-cask", "apt", "dnf", "pacman", "npm", "uv", "fnm", "rustup", "cargo" and "go" (go install,
1396
+ * for a tool published as a Go module). The host builds the exact command from the manager and
1397
+ * Package; Package may hold {major}, {major.minor} and {version} (the whole version), which the
1398
+ * pinned or suggested version fills. The language's own installers (uv, fnm, rustup, cargo) are
1393
1399
  * offered only when they are already on the machine.
1394
1400
  */
1395
1401
  export interface ToolInstall {
@@ -1461,6 +1467,12 @@ export interface ToolNeed {
1461
1467
  * Doctor reports it as a warning, not a failure.
1462
1468
  */
1463
1469
  optional?: boolean;
1470
+ /**
1471
+ * Exact says Suggested is the one version the workspace wants, such as the version CI pins: an
1472
+ * installed version that differs, older or newer, is reported as different, and an install
1473
+ * fetches that version.
1474
+ */
1475
+ exact?: boolean;
1464
1476
  /** Install are the ways to get the tool, per package manager and system. */
1465
1477
  install?: ToolInstall[];
1466
1478
  /**