rulesync 16.34.0 → 16.34.1

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.
@@ -31009,6 +31009,17 @@ function toCanonicalMcpServers(servers) {
31009
31009
  return renameServerField(servers, "serverUrl", "url");
31010
31010
  }
31011
31011
  /**
31012
+ * Parse `mcp_config.json` as JSONC and require a top-level object, so a file
31013
+ * whose root is `null`, an array or a primitive fails with a clear message
31014
+ * instead of a `TypeError` on `mcpServers` access or an array being spread
31015
+ * into the rewritten config.
31016
+ */
31017
+ function parseAntigravityMcpConfig(fileContent) {
31018
+ const parsed = parseJsonc(fileContent);
31019
+ if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) throw new Error(`Antigravity ${ANTIGRAVITY_MCP_FILE_NAME} must contain a top-level JSON object`);
31020
+ return { ...parsed };
31021
+ }
31022
+ /**
31012
31023
  * Shared MCP generator for Google Antigravity (Antigravity 2.0), used by both
31013
31024
  * the IDE and the CLI.
31014
31025
  *
@@ -31021,12 +31032,17 @@ function toCanonicalMcpServers(servers) {
31021
31032
  * The IDE and CLI share the project path (`.agents/mcp_config.json`) and differ
31022
31033
  * only in their global config subdirectory, which each concrete subclass
31023
31034
  * supplies via {@link AntigravityMcp.getGlobalSubdir}.
31035
+ *
31036
+ * Antigravity CLI 1.1.24+ accepts line and block comments and trailing
31037
+ * commas in `mcp_config.json`, so the file is read as JSONC. Writes stay plain
31038
+ * JSON (comments are dropped on rewrite), matching the other JSONC-reading
31039
+ * adapters.
31024
31040
  */
31025
31041
  var AntigravityMcp = class extends ToolMcp {
31026
31042
  json;
31027
31043
  constructor(params) {
31028
31044
  super(params);
31029
- this.json = JSON.parse(this.fileContent || "{}");
31045
+ this.json = parseAntigravityMcpConfig(this.fileContent || "{}");
31030
31046
  }
31031
31047
  getJson() {
31032
31048
  return this.json;
@@ -31047,8 +31063,7 @@ var AntigravityMcp = class extends ToolMcp {
31047
31063
  }
31048
31064
  static async fromFile({ outputRoot = process.cwd(), validate = true, global = false }) {
31049
31065
  const paths = this.getSettablePaths({ global });
31050
- const fileContent = await readFileContentOrNull(join(outputRoot, paths.relativeDirPath, paths.relativeFilePath)) ?? "{\"mcpServers\":{}}";
31051
- const json = JSON.parse(fileContent);
31066
+ const json = parseAntigravityMcpConfig(await readFileContentOrNull(join(outputRoot, paths.relativeDirPath, paths.relativeFilePath)) ?? "{\"mcpServers\":{}}");
31052
31067
  const newJson = {
31053
31068
  ...json,
31054
31069
  mcpServers: json.mcpServers ?? {}
@@ -31064,9 +31079,8 @@ var AntigravityMcp = class extends ToolMcp {
31064
31079
  }
31065
31080
  static async fromRulesyncMcp({ outputRoot = process.cwd(), rulesyncMcp, validate = true, global = false }) {
31066
31081
  const paths = this.getSettablePaths({ global });
31067
- const fileContent = await readFileContentOrNull(join(outputRoot, paths.relativeDirPath, paths.relativeFilePath)) ?? JSON.stringify({ mcpServers: {} }, null, 2);
31068
31082
  const newJson = {
31069
- ...JSON.parse(fileContent),
31083
+ ...parseAntigravityMcpConfig(await readFileContentOrNull(join(outputRoot, paths.relativeDirPath, paths.relativeFilePath)) ?? JSON.stringify({ mcpServers: {} }, null, 2)),
31070
31084
  mcpServers: toAntigravityMcpServers(rulesyncMcp.getMcpServers())
31071
31085
  };
31072
31086
  return new this({
@@ -41836,15 +41850,28 @@ const CLAUDECODE_NON_PASSTHROUGH_OVERRIDE_KEYS = /* @__PURE__ */ new Set([
41836
41850
  *
41837
41851
  * Derived from the per-key **Scope** column of the settings reference: every
41838
41852
  * top-level key documented as `User or managed` or `User, local, or managed`.
41853
+ * `enableArtifact` is deliberately absent: it is documented as `Any file` —
41854
+ * every file can turn the Artifact tool off, and none can turn it back on — so
41855
+ * a project file does honor it. `processWrapper` is also `User or managed`, but it is refused
41856
+ * in both scopes by `CLAUDECODE_COMMAND_EXECUTING_KEYS`, which runs first.
41857
+ *
41858
+ * `autoContinueAtUsageLimit` is dropped at project scope for a stronger reason
41859
+ * than the others: when no user or managed file sets it, a project or local
41860
+ * value turns the feature *off* whatever the value is, so committing a `true`
41861
+ * would silently do the opposite of what it says.
41839
41862
  *
41840
41863
  * @see https://code.claude.com/docs/en/settings-reference
41841
41864
  */
41842
41865
  const CLAUDECODE_USER_SCOPE_ONLY_KEYS = /* @__PURE__ */ new Set([
41843
41866
  "askUserQuestionTimeout",
41867
+ "autoContinueAtUsageLimit",
41844
41868
  "autoMode",
41869
+ "bashEditDiffEnabled",
41870
+ "desktopSessionCleanupPeriodDays",
41845
41871
  "dialogExpiry",
41846
- "enableArtifact",
41872
+ "feedbackDrafts",
41847
41873
  "footerLinksRegexes",
41874
+ "modelPicker",
41848
41875
  "pluginConfigs",
41849
41876
  "skipAutoPermissionPrompt",
41850
41877
  "skipDangerousModePermissionPrompt",
@@ -41877,14 +41904,20 @@ const CLAUDECODE_UNHONORED_KEY_SOURCES = {
41877
41904
  browserExternalPageTools: "managed settings",
41878
41905
  channelsEnabled: "managed settings",
41879
41906
  claudeMd: "managed settings",
41907
+ copyOnSelect: "~/.claude.json",
41880
41908
  diffTool: "~/.claude.json",
41881
41909
  disableBrowserExternalNavigation: "managed settings",
41882
41910
  disableCommandPluginSources: "managed settings",
41911
+ disableDesktopLocalSessions: "managed settings",
41883
41912
  disableMobileSimulatorTools: "managed settings",
41884
41913
  disableSideloadFlags: "managed settings",
41885
41914
  externalEditorContext: "~/.claude.json",
41886
41915
  forceLoginGatewayUrl: "managed settings",
41887
41916
  forceRemoteSettingsRefresh: "managed settings",
41917
+ gatewayInternalNetworks: "managed settings",
41918
+ managedMcpServers: "managed settings",
41919
+ managedSourcesBehavior: "managed settings",
41920
+ modelPricing: "managed settings",
41888
41921
  parentSettingsBehavior: "managed settings",
41889
41922
  permissionExplainerEnabled: "~/.claude.json",
41890
41923
  pluginSuggestionMarketplaces: "managed settings",
@@ -79274,4 +79307,4 @@ async function importChecksCore(params) {
79274
79307
  //#endregion
79275
79308
  export { RulesyncCheck as $, writeFileContent as $t, CLAUDECODE_SKILLS_DIR_PATH as A, RULESYNC_SKILLS_RELATIVE_DIR_PATH as An, directoryExists as At, RulesyncSkill as B, truncateText as Bn, listSubdirectoryNames as Bt, ChecksProcessor as C, RULESYNC_NPM_SOURCES_LOCK_RELATIVE_FILE_PATH as Cn, ErrorCodes as Ct, CLAUDECODE_LOCAL_RULE_FILE_NAME as D, RULESYNC_PERMISSIONS_SCHEMA_URL as Dn, assertWritablePathInsideRoot as Dt, CLAUDECODE_DIR as E, RULESYNC_PERMISSIONS_RELATIVE_FILE_PATH as En, assertTreeContainsNoSymlinks as Et, AUGMENTCODE_DIR as F, parseCommaSeparatedList as Fn, isFileNotFoundError as Ft, RulesyncMcp as G, stripControlCharactersKeepingLineFeeds as Gn, removeDirectoryStrict as Gt, RulesyncRule as H, hasEnclosingMarkOutsideKeycap as Hn, readFileContent as Ht, AUGMENTCODE_SETTINGS_LOCAL_FILE_NAME as I, ALL_FEATURES as In, isFileSystemError as It, getRulesyncSourceCandidates as J, removeTempDirectory as Jt, RulesyncIgnore as K, stripHiddenCharacters as Kn, removeFile as Kt, getLocalSkillDirNames as L, ALL_FEATURES_WITH_WILDCARD as Ln, isSymlink as Lt, FACTORYDROID_SETTINGS_LOCAL_FILE_NAME as M, RULESYNC_SUBAGENTS_RELATIVE_DIR_PATH as Mn, fileExists as Mt, caseFoldIdentity as N, RULESYNC_USER_CONFIG_DIR_NAME as Nn, getFileSize as Nt, CLAUDECODE_MEMORIES_DIR_NAME as O, RULESYNC_RELATIVE_DIR_PATH as On, checkPathTraversal as Ot, groupSpellingsByCaseFoldedIdentity as P, RULESYNC_XDG_CONFIG_HOME_DEFAULT_DIR_NAME as Pn, getHomeDirectory as Pt, RulesyncCommandFrontmatterSchema as Q, writeFileBuffer as Qt, RulesyncSubagent as R, DEPRECATED_FEATURE_REPLACEMENTS as Rn, listDirectoryEntryNames as Rt, QWENCODE_LOCAL_RULE_FILE_NAME as S, RULESYNC_MCP_SCHEMA_URL as Sn, CLIError as St, CODEXCLI_DIR as T, RULESYNC_PERMISSIONS_LEGACY_FILE_NAME as Tn, assertDirectoryIfExists as Tt, RulesyncRuleFrontmatterSchema as U, quoteForLog as Un, readFileContentOrNull as Ut, RulesyncSkillFrontmatterSchema as V, hasDeceptiveHiddenCharacters as Vn, pathEscapesRoot as Vt, RulesyncPermissions as W, stripControlCharacters as Wn, removeDirectory as Wt, parseJsonc as X, runWithDirectoryRollback as Xt, resolveRulesyncSourceWritePath as Y, resolvePath as Yt, RulesyncCommand as Z, toPosixPath as Zt, IgnoreProcessor as _, RULESYNC_IGNORE_RELATIVE_FILE_PATH as _n, fallbackLogger as _t, getProcessorRegistryEntry as a, MAX_FILE_SIZE as an, ConfigResolver as at, CommandsProcessor as b, RULESYNC_MCP_LEGACY_FILE_NAME as bn, resetRunWarningState as bt, RulesProcessor as c, RULESYNC_CHECKS_RELATIVE_DIR_PATH as cn, CONFLICTING_TARGET_PAIRS as ct, CODEBUDDY_DIR as d, RULESYNC_CONFIG_SCHEMA_URL as dn, SourceEntrySchema as dt, ALL_TOOL_TARGETS as en, RulesyncCheckFrontmatterSchema as et, CODEBUDDY_LOCAL_RULE_FILE_NAME as f, RULESYNC_CURATED_RULES_RELATIVE_DIR_PATH as fn, assertTargetsFeaturesExclusive as ft, McpProcessor as g, RULESYNC_HOOKS_RELATIVE_FILE_PATH as gn, WarningCollectingLogger as gt, shortenToWidth as h, RULESYNC_HOOKS_LEGACY_FILE_NAME as hn, JsonLogger as ht, inspectInputRoots as i, CURATED_RULES_FEATURE_SUBDIR as in, SKILL_FILE_NAME as it, FACTORYDROID_DIR as j, RULESYNC_SOURCES_LOCK_RELATIVE_FILE_PATH as jn, ensureDir as jt, CLAUDECODE_SETTINGS_LOCAL_FILE_NAME as k, RULESYNC_RULES_RELATIVE_DIR_PATH as kn, createTempDirectory as kt, SubagentsProcessor as l, RULESYNC_COMMANDS_RELATIVE_DIR_PATH as ln, ConfigFileSchema as lt, displayWidthOf as m, RULESYNC_HOOKS_FILE_NAME as mn, ConsoleLogger as mt, formatSourceLoadFailure as n, PACKAGING_TOOL_TARGETS as nn, loadYaml as nt, convertFromTool as o, RULESYNC_AIIGNORE_FILE_NAME as on, mergeInputRootConfigs as ot, ELLIPSIS_WIDTH as p, RULESYNC_CURATED_SKILLS_RELATIVE_DIR_PATH as pn, findControlCharacter as pt, RulesyncHooks as q, removeFileStrict as qt, generate as r, ToolTargetSchema as rn, SHARED_USER_MANAGED_CONFIG_PATHS as rt, isPackagingToolTarget as s, RULESYNC_AIIGNORE_RELATIVE_FILE_PATH as sn, resolveEffectiveInputRoots as st, importFromTool as t, ALL_TOOL_TARGETS_WITH_WILDCARD as tn, stringifyFrontmatter as tt, SkillsProcessor as u, RULESYNC_CONFIG_RELATIVE_FILE_PATH as un, GITIGNORE_DESTINATION_KEY as ut, HooksProcessor as v, RULESYNC_LOCAL_CONFIG_RELATIVE_FILE_PATH as vn, warnOnConflictingFlags as vt, CODEXCLI_BASH_RULES_FILE_NAME as w, RULESYNC_PERMISSIONS_FILE_NAME as wn, applyFileMode as wt, QWENCODE_DIR as x, RULESYNC_MCP_RELATIVE_FILE_PATH as xn, withWarnOnceScope as xt, CRUSH_LOCAL_RULE_FILE_NAME as y, RULESYNC_MCP_FILE_NAME as yn, withFallbackLoggerTarget as yt, RulesyncSubagentFrontmatterSchema as z, formatError as zn, listFilePathsRecursively as zt };
79276
79309
 
79277
- //# sourceMappingURL=import-De13gNpF.js.map
79310
+ //# sourceMappingURL=import-BJsTd50i.js.map