rulesync 43.4.1 → 43.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.
@@ -22206,7 +22206,7 @@ var OpenCodeCommand = class extends ToolCommand {
22206
22206
  * and `~/.config/mimocode/commands/` (global), so this target reuses
22207
22207
  * {@link OpenCodeCommand} with that layout.
22208
22208
  *
22209
- * @see https://github.com/XiaomiMiMo/MiMo-Code/blob/main/packages/opencode/src/config/command.ts
22209
+ * @see https://github.com/XiaomiMiMo/MiMo-Code/blob/main/packages/cli/src/config/command.ts
22210
22210
  */
22211
22211
  var MimocodeCommand = class extends OpenCodeCommand {
22212
22212
  static layout = MIMOCODE_LAYOUT;
@@ -30129,7 +30129,7 @@ function normalizeDisableModelInvocation({ frontmatter, skillFilePath }) {
30129
30129
  * `~/.config/mimocode/` (global), so this target reuses {@link OpenCodeSkill}
30130
30130
  * with that layout.
30131
30131
  *
30132
- * @see https://github.com/XiaomiMiMo/MiMo-Code/blob/main/packages/opencode/src/skill/index.ts
30132
+ * @see https://github.com/XiaomiMiMo/MiMo-Code/blob/main/packages/cli/src/skill/index.ts
30133
30133
  */
30134
30134
  var MimocodeSkill = class extends OpenCodeSkill {
30135
30135
  static layout = MIMOCODE_LAYOUT;
@@ -38602,7 +38602,7 @@ var OpenCodeSubagent = class extends OpenCodeStyleSubagent {
38602
38602
  * `~/.config/mimocode/agents/` (global), so this target reuses
38603
38603
  * {@link OpenCodeSubagent} with that layout.
38604
38604
  *
38605
- * @see https://github.com/XiaomiMiMo/MiMo-Code/blob/main/packages/opencode/src/config/agent.ts
38605
+ * @see https://github.com/XiaomiMiMo/MiMo-Code/blob/main/packages/cli/src/config/agent.ts
38606
38606
  */
38607
38607
  var MimocodeSubagent = class extends OpenCodeSubagent {
38608
38608
  static layout = MIMOCODE_LAYOUT;
@@ -43007,6 +43007,12 @@ const OpencodeMcpFeatureOptionsSchema = zod_mini.z.looseObject({ configShape: zo
43007
43007
  var OpencodeMcp = class extends ToolMcp {
43008
43008
  /** Directory layout; OpenCode forks (MiMo Code) override it. */
43009
43009
  static layout = OPENCODE_LAYOUT;
43010
+ /**
43011
+ * Per-server keys a fork's MCP schema adds on top of OpenCode's. On generate
43012
+ * each one a canonical server carries is copied verbatim onto that server's
43013
+ * local or remote entry, as `timeout` and `oauth` are. OpenCode adds none.
43014
+ */
43015
+ static extraPassthroughServerFields = [];
43010
43016
  json;
43011
43017
  /**
43012
43018
  * With a `logger`, the V2 values that lowering the content drops are warned
@@ -43125,6 +43131,10 @@ var OpencodeMcp = class extends ToolMcp {
43125
43131
  if (containers.length > 0) logger?.warn(`OpenCode MCP: the whole "mcp" key is rewritten in the flat V1 shape, so ${containers.map(quoteValueForWarning).join(" and ")} ${containers.length === 1 ? "is" : "are"} not kept.`);
43126
43132
  }
43127
43133
  const { mcp: convertedMcp, tools: mcpTools } = convertToOpencodeFormat(transformedServers, (existingMcp.success ? existingMcp.data.mcp : void 0) ?? {}, configShape, logger);
43134
+ this.copyExtraPassthroughServerFields({
43135
+ convertedMcp,
43136
+ mcpServers: transformedServers
43137
+ });
43128
43138
  if (this.layout.configVersion === "v2") warnAboutOpencodeV2SseServers({
43129
43139
  mcpServers: transformedServers,
43130
43140
  convertedMcp,
@@ -43174,6 +43184,21 @@ var OpencodeMcp = class extends ToolMcp {
43174
43184
  });
43175
43185
  }
43176
43186
  /**
43187
+ * Copies {@link OpencodeMcp.extraPassthroughServerFields} from each canonical
43188
+ * server onto its generated transport entry. A toggle entry is left alone:
43189
+ * it has no transport for these keys to configure.
43190
+ */
43191
+ static copyExtraPassthroughServerFields({ convertedMcp, mcpServers }) {
43192
+ if (this.extraPassthroughServerFields.length === 0) return;
43193
+ for (const [serverName, entry] of Object.entries(convertedMcp)) {
43194
+ const source = Object.hasOwn(mcpServers, serverName) ? mcpServers[serverName] : void 0;
43195
+ if (source === void 0 || !isOpencodeTransportServer(entry)) continue;
43196
+ const sourceRecord = source;
43197
+ const entryRecord = entry;
43198
+ for (const key of this.extraPassthroughServerFields) if (sourceRecord[key] !== void 0) entryRecord[key] = sourceRecord[key];
43199
+ }
43200
+ }
43201
+ /**
43177
43202
  * Builds the V2 `mcp` value: each server raised to the V2 spelling under the
43178
43203
  * `mcp.servers` envelope, keeping what the existing file has that Rulesync
43179
43204
  * cannot express (see {@link raiseOpencodeServerToV2}), plus the existing
@@ -43303,16 +43328,30 @@ var OpencodeMcp = class extends ToolMcp {
43303
43328
  * `.mimocode/mimocode.jsonc` (project) and `~/.config/mimocode/mimocode.jsonc`
43304
43329
  * (global), so this target reuses {@link OpencodeMcp} with that layout.
43305
43330
  *
43306
- * @see https://github.com/XiaomiMiMo/MiMo-Code/blob/main/packages/opencode/src/config/mcp.ts
43331
+ * @see https://github.com/XiaomiMiMo/MiMo-Code/blob/main/packages/cli/src/config/mcp.ts
43307
43332
  */
43308
43333
  var MimocodeMcp = class extends OpencodeMcp {
43309
43334
  static layout = MIMOCODE_LAYOUT;
43310
43335
  /**
43336
+ * MiMo Code's local and remote server schemas add two keys OpenCode does not
43337
+ * have:
43338
+ * - `sampling` (`"deny"` | `"ask"` | `"allow"`): the policy for the server's
43339
+ * client-side sampling requests (since v0.1.10).
43340
+ * - `alwaysDirectTools` (string array): tools exposed as top-level tools
43341
+ * instead of through `mcp_tool_search` / `mcp_tool_use` (on `main`, not yet
43342
+ * released). Releases without it ignore the key, since MiMo Code only
43343
+ * rejects unknown keys at the top level of the config.
43344
+ *
43345
+ * @see https://github.com/XiaomiMiMo/MiMo-Code/blob/main/packages/cli/src/config/mcp.ts
43346
+ * @see https://github.com/XiaomiMiMo/MiMo-Code/blob/v0.1.16/packages/cli/src/config/config.ts
43347
+ */
43348
+ static extraPassthroughServerFields = ["sampling", "alwaysDirectTools"];
43349
+ /**
43311
43350
  * MiMo Code resolves a relative `instructions` entry against the project
43312
43351
  * directory, not the config directory, so a global rule is written as a
43313
43352
  * `~/`-rooted path (which MiMo Code expands to the home directory).
43314
43353
  *
43315
- * @see https://github.com/XiaomiMiMo/MiMo-Code/blob/main/packages/opencode/src/session/instruction.ts
43354
+ * @see https://github.com/XiaomiMiMo/MiMo-Code/blob/main/packages/cli/src/session/instruction.ts
43316
43355
  */
43317
43356
  static toGlobalInstructionEntry({ path }) {
43318
43357
  return `~/${path}`;
@@ -48682,7 +48721,7 @@ var OpenCodeRule = class extends ToolRule {
48682
48721
  * `instructions` list of its config, so this target reuses {@link OpenCodeRule}
48683
48722
  * with the `.mimocode/` layout.
48684
48723
  *
48685
- * @see https://github.com/XiaomiMiMo/MiMo-Code/blob/main/packages/opencode/src/session/instruction.ts
48724
+ * @see https://github.com/XiaomiMiMo/MiMo-Code/blob/main/packages/cli/src/session/instruction.ts
48686
48725
  */
48687
48726
  var MimocodeRule = class extends OpenCodeRule {
48688
48727
  static layout = MIMOCODE_LAYOUT;
@@ -63884,7 +63923,7 @@ var OpencodeHooks = class extends ToolHooks {
63884
63923
  * `~/.config/mimocode/plugins/` (global) and keeps OpenCode's plugin event
63885
63924
  * names, so this target reuses {@link OpencodeHooks} with that layout.
63886
63925
  *
63887
- * @see https://github.com/XiaomiMiMo/MiMo-Code/blob/main/packages/opencode/src/config/plugin.ts
63926
+ * @see https://github.com/XiaomiMiMo/MiMo-Code/blob/main/packages/cli/src/config/plugin.ts
63888
63927
  */
63889
63928
  var MimocodeHooks = class extends OpencodeHooks {
63890
63929
  static layout = MIMOCODE_LAYOUT;
@@ -96010,7 +96049,7 @@ var OpencodePermissions = class extends ToolPermissions {
96010
96049
  * `.mimocode/` layout. Tool-only categories round-trip through the `mimocode`
96011
96050
  * override block.
96012
96051
  *
96013
- * @see https://github.com/XiaomiMiMo/MiMo-Code/blob/main/packages/opencode/src/config/permission.ts
96052
+ * @see https://github.com/XiaomiMiMo/MiMo-Code/blob/main/packages/cli/src/config/permission.ts
96014
96053
  */
96015
96054
  var MimocodePermissions = class extends OpencodePermissions {
96016
96055
  static layout = MIMOCODE_LAYOUT;
package/dist/index.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_import = require("./import-B3x-pkWH.cjs");
2
+ const require_import = require("./import-ClFasGQ6.cjs");
3
3
  // src/index.ts
4
4
  async function generate(options = {}) {
5
5
  const { silent = true, verbose = false, ...rest } = options;
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { Tn as ALL_FEATURES, Tt as ConsoleLogger, a as convertFromTool$1, ht as ConfigResolver, i as inspectInputRoots, r as generate$1, t as importFromTool$1, xn as ALL_TOOL_TARGETS } from "./import-BKyt4qe5.js";
1
+ import { Tn as ALL_FEATURES, Tt as ConsoleLogger, a as convertFromTool$1, ht as ConfigResolver, i as inspectInputRoots, r as generate$1, t as importFromTool$1, xn as ALL_TOOL_TARGETS } from "./import-BWOC-Tig.js";
2
2
  // src/index.ts
3
3
  async function generate(options = {}) {
4
4
  const { silent = true, verbose = false, ...rest } = options;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rulesync",
3
- "version": "43.4.1",
3
+ "version": "43.4.2",
4
4
  "description": "Unified AI rules management CLI tool that generates configuration files for various AI development tools",
5
5
  "keywords": [
6
6
  "ai",
@@ -44,9 +44,6 @@
44
44
  "files": [
45
45
  "dist"
46
46
  ],
47
- "simple-git-hooks": {
48
- "pre-commit": "pnpm exec lint-staged"
49
- },
50
47
  "dependencies": {
51
48
  "@inquirer/checkbox": "5.2.8",
52
49
  "@modelcontextprotocol/sdk": "1.32.2",
@@ -75,19 +72,17 @@
75
72
  "cspell": "10.4.0",
76
73
  "get-east-asian-width": "1.7.0",
77
74
  "knip": "6.43.0",
78
- "lint-staged": "17.6.0",
79
75
  "oxfmt": "0.75.0",
80
76
  "oxlint": "1.90.0",
81
77
  "repomix": "1.18.1",
82
78
  "resend": "6.35.0",
83
79
  "secretlint": "13.1.0",
84
80
  "simple-git": "4.0.2",
85
- "simple-git-hooks": "2.14.0",
86
81
  "sort-package-json": "4.1.0",
87
- "tsdown": "0.23.4",
88
82
  "tsx": "4.23.15",
89
83
  "typescript": "7.0.2",
90
- "vite": "8.3.5",
84
+ "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0",
85
+ "vite-plus": "1.4.0",
91
86
  "vitepress": "1.6.4",
92
87
  "vitest": "5.0.5"
93
88
  },
@@ -99,7 +94,7 @@
99
94
  "access": "public"
100
95
  },
101
96
  "scripts": {
102
- "build": "tsdown",
97
+ "build": "vp pack",
103
98
  "check": "pnpm run fmt:check && pnpm run oxlint && pnpm run typecheck",
104
99
  "check:docs-content": "pnpm run generate:docs-content && git diff --exit-code src/generated/docs-content.ts docs/reference/file-formats.md",
105
100
  "check:gitignore": "pnpm run dev gitignore && git diff --exit-code .gitignore .gitattributes",
@@ -114,23 +109,23 @@
114
109
  "docs:dev": "vitepress dev docs",
115
110
  "docs:preview": "vitepress preview docs",
116
111
  "fix": "pnpm run fmt && pnpm run oxlint:fix",
117
- "fmt": "oxfmt .",
118
- "fmt:check": "oxfmt --check .",
112
+ "fmt": "vp fmt",
113
+ "fmt:check": "vp fmt --check",
119
114
  "generate": "pnpm run dev generate",
120
115
  "generate:docs-content": "tsx scripts/generate-docs-content.ts",
121
116
  "generate:schema": "tsx scripts/generate-json-schema.ts",
122
117
  "generate:tables": "tsx scripts/generate-supported-tools-tables.ts",
123
118
  "knip": "knip",
124
- "oxlint": "oxlint . --max-warnings 0",
125
- "oxlint:fix": "oxlint . --fix --max-warnings 0",
119
+ "oxlint": "vp lint --max-warnings 0",
120
+ "oxlint:fix": "vp lint --fix --max-warnings 0",
126
121
  "pr-continuation": "tsx scripts/pr-continuation.ts",
127
122
  "secretlint": "secretlint --secretlintignore .gitignore \"**/*\"",
128
123
  "sort": "sort-package-json",
129
124
  "task": "tsx scripts/run-tasks.ts",
130
- "test": "vitest run --silent=true",
131
- "test:coverage": "vitest run --coverage --silent=true",
132
- "test:e2e": "vitest run --config vitest.e2e.config.ts --silent=false",
133
- "test:watch": "vitest --silent=true",
125
+ "test": "vp test run --silent=true",
126
+ "test:coverage": "vp test run --coverage --silent=true",
127
+ "test:e2e": "vp test run --config vitest.e2e.config.ts --silent=false",
128
+ "test:watch": "vp test --silent=true",
134
129
  "typecheck": "tsgo --noEmit"
135
130
  }
136
131
  }