@ken-jo/agent-connector 0.5.0 → 0.6.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.
Files changed (116) hide show
  1. package/README.md +3 -3
  2. package/dist/{action-LEYTHNIU.js → action-EKK6FMPY.js} +8 -8
  3. package/dist/{audit-HPKCUCES.js → audit-H7PQWIVH.js} +5 -5
  4. package/dist/{chunk-BXPSDNIB.js → chunk-34RRWEWU.js} +2 -2
  5. package/dist/{chunk-SFY6YLVK.js → chunk-4YOYR3T5.js} +5 -6
  6. package/dist/{chunk-SFY6YLVK.js.map → chunk-4YOYR3T5.js.map} +1 -1
  7. package/dist/{chunk-6WN37NVN.js → chunk-6FRAVOVF.js} +2 -2
  8. package/dist/{chunk-2Y2MZRLP.js → chunk-CWUPIT72.js} +2 -2
  9. package/dist/{chunk-6XMV2OOA.js → chunk-CZOXXS77.js} +3 -3
  10. package/dist/{chunk-IRUYJD23.js → chunk-IVJUPNLD.js} +2 -8
  11. package/dist/chunk-IVJUPNLD.js.map +1 -0
  12. package/dist/{chunk-FKW5A6HE.js → chunk-IY3SSCNK.js} +4 -4
  13. package/dist/{chunk-U2XJWG7N.js → chunk-JUBEM3OR.js} +2 -2
  14. package/dist/{chunk-UM5S7DKK.js → chunk-KOFCNA5T.js} +11 -2
  15. package/dist/{chunk-UM5S7DKK.js.map → chunk-KOFCNA5T.js.map} +1 -1
  16. package/dist/{chunk-4KIXXJ7B.js → chunk-KY2VQGD7.js} +2 -2
  17. package/dist/{chunk-M6OS4OLU.js → chunk-R4FABNAL.js} +2 -2
  18. package/dist/{chunk-T5AI3AW3.js → chunk-SA6CSOH5.js} +19 -19
  19. package/dist/{chunk-G5HAIYRM.js → chunk-XJSVJD5T.js} +37 -29
  20. package/dist/chunk-XJSVJD5T.js.map +1 -0
  21. package/dist/{chunk-WZMSSIDN.js → chunk-XSR3GF55.js} +14 -6
  22. package/dist/chunk-XSR3GF55.js.map +1 -0
  23. package/dist/{claude-code-LJ6DVXWQ.js → claude-code-VEERATN5.js} +4 -4
  24. package/dist/cli/sdk.js +4 -4
  25. package/dist/cli.js +1 -1
  26. package/dist/{cline-JAPJNOZQ.js → cline-UW6WCQRK.js} +2 -2
  27. package/dist/cline-UW6WCQRK.js.map +1 -0
  28. package/dist/{codebuff-3VODFPD4.js → codebuff-R7QBLCSJ.js} +11 -11
  29. package/dist/codebuff-R7QBLCSJ.js.map +1 -0
  30. package/dist/{codex-RXIS5BHM.js → codex-S2RADR5K.js} +2 -2
  31. package/dist/{crush-YB3SK6NK.js → crush-AJNQRFVE.js} +2 -2
  32. package/dist/{define-connector-odRHEC4H.d.ts → define-connector-iosc34CA.d.ts} +1 -1
  33. package/dist/{detect-USP5JMWM.js → detect-ZC344YOJ.js} +4 -4
  34. package/dist/{doctor-VSW5KHBM.js → doctor-ABYQF2YX.js} +13 -13
  35. package/dist/{goose-3X7ID7YW.js → goose-SXFRT7UF.js} +2 -2
  36. package/dist/grok-build-EP2ZUFXZ.js +682 -0
  37. package/dist/grok-build-EP2ZUFXZ.js.map +1 -0
  38. package/dist/{grok-cli-4VFVF2CQ.js → grok-cli-UUNPOUYY.js} +4 -3
  39. package/dist/grok-cli-UUNPOUYY.js.map +1 -0
  40. package/dist/{hook-QRW3ON6C.js → hook-M3KQSEO3.js} +8 -8
  41. package/dist/index.d.ts +3 -3
  42. package/dist/index.js +2 -2
  43. package/dist/{install-ASTAUZKB.js → install-4X4JDKGY.js} +10 -10
  44. package/dist/{introspect-gTx6GzpW.d.ts → introspect-z3eKVWHN.d.ts} +1 -1
  45. package/dist/{kilo-SW7BH6EG.js → kilo-FVBFSS4Y.js} +1 -1
  46. package/dist/kilo-FVBFSS4Y.js.map +1 -0
  47. package/dist/{kilo-T4OXNUYY.js → kilo-N5T6KXAG.js} +2 -2
  48. package/dist/{kilo-cli-I2S3W245.js → kilo-cli-JOAEWYI4.js} +2 -2
  49. package/dist/{leaderboard-3XSVSGAJ.js → leaderboard-Q4YZ3LI7.js} +3 -3
  50. package/dist/{mux-BO2L5CTW.js → mux-WSZWWZOX.js} +27 -21
  51. package/dist/mux-WSZWWZOX.js.map +1 -0
  52. package/dist/{package-VWBPHCLA.js → package-FY2QZWRM.js} +6 -6
  53. package/dist/runtime/index.d.ts +1 -1
  54. package/dist/runtime/index.js +6 -6
  55. package/dist/sdk/index.d.ts +4 -4
  56. package/dist/sdk/index.js +3 -3
  57. package/dist/sdk/test.d.ts +2 -2
  58. package/dist/sdk/test.js +6 -6
  59. package/dist/{serve-IQGHE4SJ.js → serve-XT76DWUN.js} +8 -8
  60. package/dist/{status-BVLY6XDL.js → status-DHVWBRLI.js} +8 -8
  61. package/dist/{statusline-PRODZV2J.js → statusline-SY5UBQOJ.js} +7 -7
  62. package/dist/{telemetry-UU4SHJ23.js → telemetry-TJIFAKWX.js} +5 -5
  63. package/dist/{types-DWXnnx-N.d.ts → types-CAKApZpX.d.ts} +4 -4
  64. package/dist/{uninstall-WI5YLDCT.js → uninstall-VQO36IQ4.js} +10 -10
  65. package/dist/{upgrade-L45BTG6X.js → upgrade-QEYZOA7S.js} +10 -10
  66. package/dist/{usage-K3NQTAJP.js → usage-LV7UGO64.js} +3 -3
  67. package/dist/{usage-event-J5CQ6LNT.js → usage-event-MQMKMK2R.js} +7 -7
  68. package/dist/{windsurf-R6D2JUTN.js → windsurf-ZWVFNJ73.js} +1 -1
  69. package/dist/windsurf-ZWVFNJ73.js.map +1 -0
  70. package/dist/{zed-DQV3ZUCU.js → zed-JCOKXOLA.js} +2 -2
  71. package/package.json +1 -1
  72. package/dist/chunk-G5HAIYRM.js.map +0 -1
  73. package/dist/chunk-IRUYJD23.js.map +0 -1
  74. package/dist/chunk-WZMSSIDN.js.map +0 -1
  75. package/dist/cline-JAPJNOZQ.js.map +0 -1
  76. package/dist/codebuff-3VODFPD4.js.map +0 -1
  77. package/dist/grok-cli-4VFVF2CQ.js.map +0 -1
  78. package/dist/kilo-SW7BH6EG.js.map +0 -1
  79. package/dist/mux-BO2L5CTW.js.map +0 -1
  80. package/dist/roo-code-SUWI4BBN.js +0 -229
  81. package/dist/roo-code-SUWI4BBN.js.map +0 -1
  82. package/dist/roo-code-VI2ZKTZC.js +0 -361
  83. package/dist/roo-code-VI2ZKTZC.js.map +0 -1
  84. package/dist/windsurf-R6D2JUTN.js.map +0 -1
  85. /package/dist/{action-LEYTHNIU.js.map → action-EKK6FMPY.js.map} +0 -0
  86. /package/dist/{audit-HPKCUCES.js.map → audit-H7PQWIVH.js.map} +0 -0
  87. /package/dist/{chunk-BXPSDNIB.js.map → chunk-34RRWEWU.js.map} +0 -0
  88. /package/dist/{chunk-6WN37NVN.js.map → chunk-6FRAVOVF.js.map} +0 -0
  89. /package/dist/{chunk-2Y2MZRLP.js.map → chunk-CWUPIT72.js.map} +0 -0
  90. /package/dist/{chunk-6XMV2OOA.js.map → chunk-CZOXXS77.js.map} +0 -0
  91. /package/dist/{chunk-FKW5A6HE.js.map → chunk-IY3SSCNK.js.map} +0 -0
  92. /package/dist/{chunk-U2XJWG7N.js.map → chunk-JUBEM3OR.js.map} +0 -0
  93. /package/dist/{chunk-4KIXXJ7B.js.map → chunk-KY2VQGD7.js.map} +0 -0
  94. /package/dist/{chunk-M6OS4OLU.js.map → chunk-R4FABNAL.js.map} +0 -0
  95. /package/dist/{chunk-T5AI3AW3.js.map → chunk-SA6CSOH5.js.map} +0 -0
  96. /package/dist/{claude-code-LJ6DVXWQ.js.map → claude-code-VEERATN5.js.map} +0 -0
  97. /package/dist/{codex-RXIS5BHM.js.map → codex-S2RADR5K.js.map} +0 -0
  98. /package/dist/{crush-YB3SK6NK.js.map → crush-AJNQRFVE.js.map} +0 -0
  99. /package/dist/{detect-USP5JMWM.js.map → detect-ZC344YOJ.js.map} +0 -0
  100. /package/dist/{doctor-VSW5KHBM.js.map → doctor-ABYQF2YX.js.map} +0 -0
  101. /package/dist/{goose-3X7ID7YW.js.map → goose-SXFRT7UF.js.map} +0 -0
  102. /package/dist/{hook-QRW3ON6C.js.map → hook-M3KQSEO3.js.map} +0 -0
  103. /package/dist/{install-ASTAUZKB.js.map → install-4X4JDKGY.js.map} +0 -0
  104. /package/dist/{kilo-T4OXNUYY.js.map → kilo-N5T6KXAG.js.map} +0 -0
  105. /package/dist/{kilo-cli-I2S3W245.js.map → kilo-cli-JOAEWYI4.js.map} +0 -0
  106. /package/dist/{leaderboard-3XSVSGAJ.js.map → leaderboard-Q4YZ3LI7.js.map} +0 -0
  107. /package/dist/{package-VWBPHCLA.js.map → package-FY2QZWRM.js.map} +0 -0
  108. /package/dist/{serve-IQGHE4SJ.js.map → serve-XT76DWUN.js.map} +0 -0
  109. /package/dist/{status-BVLY6XDL.js.map → status-DHVWBRLI.js.map} +0 -0
  110. /package/dist/{statusline-PRODZV2J.js.map → statusline-SY5UBQOJ.js.map} +0 -0
  111. /package/dist/{telemetry-UU4SHJ23.js.map → telemetry-TJIFAKWX.js.map} +0 -0
  112. /package/dist/{uninstall-WI5YLDCT.js.map → uninstall-VQO36IQ4.js.map} +0 -0
  113. /package/dist/{upgrade-L45BTG6X.js.map → upgrade-QEYZOA7S.js.map} +0 -0
  114. /package/dist/{usage-K3NQTAJP.js.map → usage-LV7UGO64.js.map} +0 -0
  115. /package/dist/{usage-event-J5CQ6LNT.js.map → usage-event-MQMKMK2R.js.map} +0 -0
  116. /package/dist/{zed-DQV3ZUCU.js.map → zed-JCOKXOLA.js.map} +0 -0
@@ -21,6 +21,12 @@ var HOST = "mux";
21
21
  var MCP_ROOT_KEY = "servers";
22
22
  var MUX_SKILL_NAME_RE = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
23
23
  var MUX_SKILL_NAME_MAX = 64;
24
+ function xumHome(base) {
25
+ const current = join(base, ".xum");
26
+ if (existsSync(current)) return current;
27
+ const legacy = join(base, ".mux");
28
+ return existsSync(legacy) ? legacy : current;
29
+ }
24
30
  function quoteToken(token) {
25
31
  return /\s/.test(token) ? `"${token}"` : token;
26
32
  }
@@ -29,13 +35,13 @@ function buildCommandString(command, args) {
29
35
  }
30
36
  var MuxAdapter = class extends BaseAdapter {
31
37
  id = HOST;
32
- name = "Mux";
38
+ name = "Xum";
33
39
  paradigm = "mcp-only";
34
40
  capabilities = {
35
41
  // Memory surface: AGENTS.md-first managed block via the BaseAdapter default
36
42
  // (memoryTargets: project <projectDir>/AGENTS.md; user scope where documented).
37
43
  supportsMemory: true,
38
- // Mux has no lifecycle hook system — every hook capability is false.
44
+ // Xum has no lifecycle hook system — every hook capability is false.
39
45
  preToolUse: false,
40
46
  postToolUse: false,
41
47
  preCompact: false,
@@ -47,13 +53,13 @@ var MuxAdapter = class extends BaseAdapter {
47
53
  canModifyArgs: false,
48
54
  canModifyOutput: false,
49
55
  canInjectSessionContext: false,
50
- // Mux's command-string server entry is stdio-only.
56
+ // Xum's command-string server entry is stdio-only.
51
57
  transports: ["stdio"],
52
- // Content surface: Mux auto-discovers dir-per-skill SKILL.md from its
58
+ // Content surface: Xum auto-discovers dir-per-skill SKILL.md from its
53
59
  // workspace-local and global roots (mux.coder.com/agents/agent-skills,
54
60
  // fetched 2026-06-16):
55
- // project → <projectDir>/.mux/skills/<name>/SKILL.md (workspace-local)
56
- // user → ~/.mux/skills/<name>/SKILL.md (global, Mux-specific)
61
+ // project → <projectDir>/.xum/skills/<name>/SKILL.md (workspace-local)
62
+ // user → ~/.xum/skills/<name>/SKILL.md (global, Xum-specific)
57
63
  // The skill directory name MUST match ^[a-z0-9]+(?:-[a-z0-9]+)*$ (1–64
58
64
  // chars) and the SKILL.md `name` field must equal it — a name that cannot
59
65
  // be represented is skip-warned (see installSkills).
@@ -61,9 +67,9 @@ var MuxAdapter = class extends BaseAdapter {
61
67
  };
62
68
  // ── Detection ────────────────────────────────────────────────────────────
63
69
  detectInstalled(projectDir) {
64
- const userDir = join(homedir(), ".mux");
70
+ const userDir = xumHome(homedir());
65
71
  const userMcp = join(userDir, "mcp.jsonc");
66
- const projDir = join(projectDir, ".mux");
72
+ const projDir = xumHome(projectDir);
67
73
  const projMcp = join(projDir, "mcp.jsonc");
68
74
  const userInstalled = existsSync(userDir) || existsSync(userMcp);
69
75
  const projInstalled = existsSync(projDir) || existsSync(projMcp);
@@ -78,19 +84,19 @@ var MuxAdapter = class extends BaseAdapter {
78
84
  capabilities: this.capabilities,
79
85
  configPath,
80
86
  scope,
81
- reason: installed ? `found Mux config (${scope})` : `no Mux config at ${userDir} or ${projDir}`,
87
+ reason: installed ? `found Xum config (${scope})` : `no Xum config at ${userDir} or ${projDir}`,
82
88
  confidence: installed ? "high" : "low"
83
89
  };
84
90
  }
85
91
  // ── Native paths ─────────────────────────────────────────────────────────
86
92
  getConfigDir(ctx) {
87
- return ctx.scope === "project" ? join(ctx.projectDir, ".mux") : join(homedir(), ".mux");
93
+ return xumHome(ctx.scope === "project" ? ctx.projectDir : homedir());
88
94
  }
89
95
  getServerConfigPath(ctx) {
90
96
  return join(this.getConfigDir(ctx), "mcp.jsonc");
91
97
  }
92
98
  /**
93
- * Mux has no hook file — hooks are not a thing here. The hook "config path"
99
+ * Xum has no hook file — hooks are not a thing here. The hook "config path"
94
100
  * is the same mcp.jsonc so the generic doctor/backup behave sensibly.
95
101
  */
96
102
  getHookConfigPath(ctx) {
@@ -131,8 +137,8 @@ var MuxAdapter = class extends BaseAdapter {
131
137
  ];
132
138
  }
133
139
  /**
134
- * Render a stdio ServerDef into Mux's single shell-command string. Honors the
135
- * telemetry serve-wrapper and resolves every `${env:VAR}` to a literal (Mux
140
+ * Render a stdio ServerDef into Xum's single shell-command string. Honors the
141
+ * telemetry serve-wrapper and resolves every `${env:VAR}` to a literal (Xum
136
142
  * documents no native interpolation token).
137
143
  */
138
144
  renderCommandString(ctx, server) {
@@ -143,13 +149,13 @@ var MuxAdapter = class extends BaseAdapter {
143
149
  args = resolveEnvRefsDeep(args);
144
150
  return buildCommandString(command, args);
145
151
  }
146
- // ── Hooks (unavailable — Mux is mcp-only) ─────────────────────────────────
152
+ // ── Hooks (unavailable — Xum is mcp-only) ─────────────────────────────────
147
153
  installHooks(_ctx) {
148
154
  return [
149
155
  {
150
156
  platform: this.id,
151
157
  action: "skip",
152
- detail: "hooks unavailable (Mux is mcp-only)"
158
+ detail: "hooks unavailable (Xum is mcp-only)"
153
159
  }
154
160
  ];
155
161
  }
@@ -158,7 +164,7 @@ var MuxAdapter = class extends BaseAdapter {
158
164
  {
159
165
  platform: this.id,
160
166
  action: "skip",
161
- detail: "hooks unavailable (Mux is mcp-only)"
167
+ detail: "hooks unavailable (Xum is mcp-only)"
162
168
  }
163
169
  ];
164
170
  }
@@ -167,11 +173,11 @@ var MuxAdapter = class extends BaseAdapter {
167
173
  // runtime dispatch, no home-bin pointer, no telemetry wrap. Idempotent
168
174
  // (byte-identical → skip) via writeContentFile and reversible via
169
175
  // removeContentFile + removeDirIfEmpty. Honors platforms["mux"].skills ===
170
- // false. No mcp.jsonc entry — Mux auto-discovers the skills dirs.
176
+ // false. No mcp.jsonc entry — Xum auto-discovers the skills dirs.
171
177
  //
172
178
  // Native locations (mux.coder.com/agents/agent-skills):
173
- // project → <projectDir>/.mux/skills/<name>/SKILL.md (workspace-local)
174
- // user → ~/.mux/skills/<name>/SKILL.md (global, Mux-specific)
179
+ // project → <projectDir>/.xum/skills/<name>/SKILL.md (workspace-local)
180
+ // user → ~/.xum/skills/<name>/SKILL.md (global, Xum-specific)
175
181
  // The dir name MUST match MUX_SKILL_NAME_RE (1–64 chars) and the SKILL.md
176
182
  // `name` field must equal it — a name that can't be represented is skip-warned.
177
183
  /** The skills ROOT dir for ctx.scope (parent of every per-skill dir). */
@@ -251,7 +257,7 @@ var MuxAdapter = class extends BaseAdapter {
251
257
  }
252
258
  return changes;
253
259
  }
254
- /** True when a skill name is representable as a Mux skill directory name. */
260
+ /** True when a skill name is representable as a Xum skill directory name. */
255
261
  isValidSkillName(name) {
256
262
  return name.length >= 1 && name.length <= MUX_SKILL_NAME_MAX && MUX_SKILL_NAME_RE.test(name);
257
263
  }
@@ -319,4 +325,4 @@ export {
319
325
  adapter,
320
326
  mux_default as default
321
327
  };
322
- //# sourceMappingURL=mux-BO2L5CTW.js.map
328
+ //# sourceMappingURL=mux-WSZWWZOX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/adapters/mux/index.ts"],"sourcesContent":["/**\n * adapters/mux — Xum (Coder, formerly Mux) platform adapter for agent-connector.\n *\n * Xum is an **mcp-only** host: it exposes no lifecycle hook system, and MCP is\n * its extensibility mechanism. This adapter therefore installs only the MCP\n * server and reports hooks as unavailable — the same shape as the Warp\n * reference adapter.\n *\n * MCP config:\n * - user scope → ~/.xum/mcp.jsonc (legacy home: ~/.mux/mcp.jsonc)\n * - project scope → <projectDir>/.xum/mcp.jsonc (legacy: .mux/mcp.jsonc)\n *\n * RENAME (verified 2026-09-02): Coder renamed Mux to **Xum** (repo coder/mux →\n * coder/xum, xum.coder.com) and moved the config home from `.mux` to `.xum`.\n * The docs are explicit that the old home still works — \"Legacy project files\n * under `.mux/` remain readable when the corresponding `.xum/` file is absent\",\n * and \"the exact location derives from the active Xum home (a legacy `~/.mux`\n * home keeps working)\" (docs/config/mcp-servers.mdx). So `xumHome()` mirrors the\n * host: prefer `.xum`, fall back to an EXISTING `.mux`, and default new installs\n * to `.xum`. Writing blindly to `.xum` would strand every current user; writing\n * blindly to `.mux` would rot. The platform id stays `mux` — renaming it would\n * break existing connector configs and telemetry keys for no user benefit.\n *\n * NOT WIRED (noted 2026-09-02): Xum has an EXPERIMENTAL Agent Plugins reader\n * (Settings → Experiments) that installs plugins into `~/.xum/plugins`, honors\n * the spec's `PLUGIN_ROOT`/`PLUGIN_DATA`, and surfaces a plugin's `mcp.json`\n * servers. We deliberately do NOT route this host to the `agent-plugin` format:\n * Xum is absent from agent-plugins.org/compatible-clients, the reader is behind\n * an experiment flag, and its plugin servers are disabled-by-default and\n * trust-gated — so an AP bundle would install into a surface most users have\n * turned off. Revisit if Xum ships it on by default or joins the client list.\n * Both are JSONC (comments allowed) but we write strict JSON. The root key is\n * \"servers\", and this file doubles as the (non-existent) hook config — there\n * is no separate hook file here.\n *\n * QUIRK: Xum models each server entry as a single shell-command STRING, not an\n * object. So `servers[id]` is `\"<exe> <arg1> <arg2> ...\"` — space-joined, with\n * any token containing whitespace double-quoted. We therefore build that string\n * ourselves and upsert it idempotently (the generic object upsert helper would\n * write the wrong shape). When telemetry-wrapping, the string is the home-bin\n * `serve` wrapper command followed by its args.\n *\n * Xum documents no native `${env:VAR}` interpolation token, so env-refs in the\n * command/args are resolved to literals at install time. The string form has no\n * place for an env map, so server.env is dropped with no native equivalent.\n */\n\nimport { existsSync, statSync } from \"node:fs\";\nimport { homedir } from \"node:os\";\nimport { dirname, join } from \"node:path\";\n\nimport { BaseAdapter } from \"../base.js\";\nimport type { Adapter, InstallContext } from \"../spi.js\";\nimport type {\n ChangeRecord,\n DetectedPlatform,\n HealthCheck,\n HookParadigm,\n PlatformCapabilities,\n PlatformId,\n ServerDef,\n} from \"../../core/types.js\";\nimport { resolveEnvRefs, resolveEnvRefsDeep } from \"../../core/interpolate.js\";\nimport {\n buildWrappedStdio,\n} from \"../../core/spawn.js\";\nimport { renderSkillMd } from \"../claude-code/render.js\";\n\nconst HOST: PlatformId = \"mux\";\nconst MCP_ROOT_KEY = \"servers\";\n\n/**\n * Xum enforces this exact pattern (1–64 chars) on a SKILL directory name, and\n * the SKILL.md `name` field MUST equal the directory name\n * (mux.coder.com/agents/agent-skills). A skill name that does not match is\n * skip-warned rather than written to a dir Xum would reject.\n */\nconst MUX_SKILL_NAME_RE = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;\nconst MUX_SKILL_NAME_MAX = 64;\n\n/**\n * Resolve Xum's config home under `base`, mirroring the host's own rule.\n *\n * Xum reads `.xum/` and falls back to a legacy `.mux/` home\n * (docs/config/mcp-servers.mdx). We resolve the same way so that:\n * - a machine already running the old Mux keeps its servers in `.mux/`\n * instead of silently gaining a second, ignored config;\n * - anything new lands in `.xum/`, which is where Xum looks first.\n * Only an EXISTING legacy dir wins — `.xum` is the default for fresh installs.\n */\nfunction xumHome(base: string): string {\n const current = join(base, \".xum\");\n if (existsSync(current)) return current;\n const legacy = join(base, \".mux\");\n return existsSync(legacy) ? legacy : current;\n}\n\n/** Quote a token only when it contains whitespace (Xum command-string form). */\nfunction quoteToken(token: string): string {\n return /\\s/.test(token) ? `\"${token}\"` : token;\n}\n\n/** Join an executable + args into Xum's single shell-command string. */\nfunction buildCommandString(command: string, args: readonly string[]): string {\n return [command, ...args].map(quoteToken).join(\" \");\n}\n\nexport class MuxAdapter extends BaseAdapter implements Adapter {\n readonly id: PlatformId = HOST;\n readonly name = \"Xum\";\n readonly paradigm: HookParadigm = \"mcp-only\";\n\n readonly capabilities: PlatformCapabilities = {\n // Memory surface: AGENTS.md-first managed block via the BaseAdapter default\n // (memoryTargets: project <projectDir>/AGENTS.md; user scope where documented).\n supportsMemory: true,\n // Xum has no lifecycle hook system — every hook capability is false.\n preToolUse: false,\n postToolUse: false,\n preCompact: false,\n sessionStart: false,\n sessionEnd: false,\n userPromptSubmit: false,\n stop: false,\n notification: false,\n canModifyArgs: false,\n canModifyOutput: false,\n canInjectSessionContext: false,\n // Xum's command-string server entry is stdio-only.\n transports: [\"stdio\"],\n // Content surface: Xum auto-discovers dir-per-skill SKILL.md from its\n // workspace-local and global roots (mux.coder.com/agents/agent-skills,\n // fetched 2026-06-16):\n // project → <projectDir>/.xum/skills/<name>/SKILL.md (workspace-local)\n // user → ~/.xum/skills/<name>/SKILL.md (global, Xum-specific)\n // The skill directory name MUST match ^[a-z0-9]+(?:-[a-z0-9]+)*$ (1–64\n // chars) and the SKILL.md `name` field must equal it — a name that cannot\n // be represented is skip-warned (see installSkills).\n supportsSkills: true,\n };\n\n // ── Detection ────────────────────────────────────────────────────────────\n\n detectInstalled(projectDir: string): DetectedPlatform {\n const userDir = xumHome(homedir());\n const userMcp = join(userDir, \"mcp.jsonc\");\n const projDir = xumHome(projectDir);\n const projMcp = join(projDir, \"mcp.jsonc\");\n\n const userInstalled = existsSync(userDir) || existsSync(userMcp);\n const projInstalled = existsSync(projDir) || existsSync(projMcp);\n const installed = userInstalled || projInstalled;\n const scope = projInstalled && !userInstalled ? \"project\" : \"user\";\n const configPath = scope === \"project\" ? projMcp : userMcp;\n\n return {\n id: this.id,\n name: this.name,\n installed,\n paradigm: this.paradigm,\n capabilities: this.capabilities,\n configPath,\n scope,\n reason: installed\n ? `found Xum config (${scope})`\n : `no Xum config at ${userDir} or ${projDir}`,\n confidence: installed ? \"high\" : \"low\",\n };\n }\n\n // ── Native paths ─────────────────────────────────────────────────────────\n\n getConfigDir(ctx: InstallContext): string {\n return xumHome(ctx.scope === \"project\" ? ctx.projectDir : homedir());\n }\n\n getServerConfigPath(ctx: InstallContext): string {\n return join(this.getConfigDir(ctx), \"mcp.jsonc\");\n }\n\n /**\n * Xum has no hook file — hooks are not a thing here. The hook \"config path\"\n * is the same mcp.jsonc so the generic doctor/backup behave sensibly.\n */\n getHookConfigPath(ctx: InstallContext): string {\n return this.getServerConfigPath(ctx);\n }\n\n // ── MCP server install / uninstall ───────────────────────────────────────\n\n installServer(ctx: InstallContext): ChangeRecord[] {\n const { connector, dryRun } = ctx;\n const override = connector.platforms[HOST]?.server;\n if (!connector.server || override === false) {\n return [\n {\n platform: this.id,\n action: \"skip\",\n detail: connector.server\n ? \"server registration disabled for mux\"\n : \"connector declares no MCP server\",\n },\n ];\n }\n\n // Shallow-merge any per-platform server override into the base ServerDef.\n const server: ServerDef =\n override && typeof override === \"object\"\n ? { ...connector.server, ...override }\n : connector.server;\n\n const path = this.getServerConfigPath(ctx);\n\n if (server.transport !== \"stdio\" || !server.command) {\n // Xum's command-string entry is stdio-only; remote transports skip.\n return [\n {\n platform: this.id,\n action: \"skip\",\n path,\n detail: `transport \"${server.transport}\" not registrable (mux expects a stdio command string)`,\n },\n ];\n }\n\n const entry = this.renderCommandString(ctx, server);\n // Xum's server VALUE is a command string, but the object-map upsert is\n // value-agnostic — route through the shared helper (byte-identical output).\n return [this.upsertServerInJson(path, MCP_ROOT_KEY, connector.id, entry, dryRun)];\n }\n\n uninstallServer(ctx: InstallContext): ChangeRecord[] {\n const path = this.getServerConfigPath(ctx);\n return [\n this.removeServerFromJson(path, MCP_ROOT_KEY, ctx.connector.id, ctx.dryRun),\n ];\n }\n\n /**\n * Render a stdio ServerDef into Xum's single shell-command string. Honors the\n * telemetry serve-wrapper and resolves every `${env:VAR}` to a literal (Xum\n * documents no native interpolation token).\n */\n private renderCommandString(ctx: InstallContext, server: ServerDef): string {\n let command = server.command ?? \"\";\n let args = [...(server.args ?? [])];\n\n // Transparent telemetry wrapping: route the real command through\n // `<homeBin> serve --connector <id> -- <command> <args...>`.\n ({ command, args } = buildWrappedStdio(ctx, server, this.id, command, args));\n\n // Resolve env-refs to literals (Xum has no native interpolation token).\n command = resolveEnvRefs(command);\n args = resolveEnvRefsDeep(args);\n\n return buildCommandString(command, args);\n }\n\n // ── Hooks (unavailable — Xum is mcp-only) ─────────────────────────────────\n\n installHooks(_ctx: InstallContext): ChangeRecord[] {\n return [\n {\n platform: this.id,\n action: \"skip\",\n detail: \"hooks unavailable (Xum is mcp-only)\",\n },\n ];\n }\n\n uninstallHooks(_ctx: InstallContext): ChangeRecord[] {\n return [\n {\n platform: this.id,\n action: \"skip\",\n detail: \"hooks unavailable (Xum is mcp-only)\",\n },\n ];\n }\n\n // ── Content surface: skills (dir-per-skill SKILL.md) ─────────────────────\n // CONTENT-ONLY: pure native-file writers, mirroring goose/openclaw. No\n // runtime dispatch, no home-bin pointer, no telemetry wrap. Idempotent\n // (byte-identical → skip) via writeContentFile and reversible via\n // removeContentFile + removeDirIfEmpty. Honors platforms[\"mux\"].skills ===\n // false. No mcp.jsonc entry — Xum auto-discovers the skills dirs.\n //\n // Native locations (mux.coder.com/agents/agent-skills):\n // project → <projectDir>/.xum/skills/<name>/SKILL.md (workspace-local)\n // user → ~/.xum/skills/<name>/SKILL.md (global, Xum-specific)\n // The dir name MUST match MUX_SKILL_NAME_RE (1–64 chars) and the SKILL.md\n // `name` field must equal it — a name that can't be represented is skip-warned.\n\n /** The skills ROOT dir for ctx.scope (parent of every per-skill dir). */\n private skillsDir(ctx: InstallContext): string {\n return join(this.getConfigDir(ctx), \"skills\");\n }\n\n /** Per-skill directory: <skillsDir>/<name>. */\n private skillDir(ctx: InstallContext, name: string): string {\n return join(this.skillsDir(ctx), name);\n }\n\n override installSkills(ctx: InstallContext): ChangeRecord[] {\n const { connector } = ctx;\n if (connector.platforms[HOST]?.skills === false) {\n return [{ platform: this.id, action: \"skip\", detail: \"skills disabled for mux\" }];\n }\n if (connector.skills.length === 0) {\n return [{ platform: this.id, action: \"skip\", detail: \"connector declares no skills\" }];\n }\n const changes: ChangeRecord[] = [];\n for (const skill of connector.skills) {\n // Xum REQUIRES the dir name (and SKILL.md `name`) to match its pattern;\n // a name we cannot represent is skip-warned rather than written to a dir\n // Xum would reject (the honesty bar — never write an unreadable path).\n if (!this.isValidSkillName(skill.name)) {\n changes.push({\n platform: this.id,\n action: \"warn\",\n detail:\n `skill \"${skill.name}\" cannot be represented on mux ` +\n `(name must match ${MUX_SKILL_NAME_RE.source}, 1–${MUX_SKILL_NAME_MAX} chars); skipped`,\n });\n continue;\n }\n const dir = this.skillDir(ctx, skill.name);\n // Guard a skills path occupied by a regular FILE (mkdir would throw\n // ENOTDIR): skip-warn rather than crash (cline `.clinerules`-is-a-file\n // precedent).\n const blockingFile = this.firstFileOnSkillPath(ctx, dir);\n if (blockingFile !== null) {\n changes.push({\n platform: this.id,\n action: \"warn\",\n path: blockingFile,\n detail: `${blockingFile} is a file, not a directory; skill \"${skill.name}\" skipped`,\n });\n continue;\n }\n changes.push(\n this.writeContentFile(join(dir, \"SKILL.md\"), renderSkillMd(skill), ctx.dryRun),\n );\n // Bundle any resource files beside SKILL.md (relative path → contents).\n // Defense-in-depth: skip+warn on any key that escapes the skill dir.\n for (const [rel, contents] of Object.entries(skill.resources ?? {})) {\n const target = this.resolveWithin(dir, rel);\n if (target === null) {\n changes.push({\n platform: this.id,\n action: \"warn\",\n detail: `skill resource \"${rel}\" escapes the skill dir; skipped`,\n });\n continue;\n }\n changes.push(this.writeContentFile(target, contents, ctx.dryRun));\n }\n }\n return changes;\n }\n\n override uninstallSkills(ctx: InstallContext): ChangeRecord[] {\n const { connector } = ctx;\n if (connector.skills.length === 0) {\n return [{ platform: this.id, action: \"skip\", detail: \"connector declares no skills\" }];\n }\n const changes: ChangeRecord[] = [];\n for (const skill of connector.skills) {\n // Skip names install never wrote (invalid → never on disk under our dir).\n if (!this.isValidSkillName(skill.name)) continue;\n const dir = this.skillDir(ctx, skill.name);\n // Remove only the files we wrote (SKILL.md + declared resources), then the\n // skill dir itself when we own its full contents.\n changes.push(this.removeContentFile(join(dir, \"SKILL.md\"), ctx.dryRun));\n for (const rel of Object.keys(skill.resources ?? {})) {\n const target = this.resolveWithin(dir, rel);\n if (target === null) continue; // never delete outside the skill dir\n changes.push(this.removeContentFile(target, ctx.dryRun));\n }\n // Only remove the skill dir when WE own its full contents — never rm -rf a\n // dir that still holds user-added / sibling-tool / shared files.\n changes.push(this.removeDirIfEmpty(dir, ctx.dryRun));\n }\n if (changes.length === 0) {\n return [{ platform: this.id, action: \"skip\", detail: \"no installable skills to remove\" }];\n }\n return changes;\n }\n\n /** True when a skill name is representable as a Xum skill directory name. */\n private isValidSkillName(name: string): boolean {\n return name.length >= 1 && name.length <= MUX_SKILL_NAME_MAX && MUX_SKILL_NAME_RE.test(name);\n }\n\n /**\n * Walk from the skills root down to `leaf` and return the FIRST segment that\n * exists as a regular file (a mkdir there throws ENOTDIR), else null — so\n * installSkills can skip-warn instead of crashing.\n */\n private firstFileOnSkillPath(ctx: InstallContext, leaf: string): string | null {\n const root = this.skillsDir(ctx);\n const segments: string[] = [];\n let cur = leaf;\n while (cur.length >= root.length) {\n segments.unshift(cur);\n if (cur === root) break;\n const parent = dirname(cur);\n if (parent === cur) break;\n cur = parent;\n }\n for (const p of segments) {\n if (!existsSync(p)) return null;\n try {\n if (statSync(p).isFile()) return p;\n } catch {\n return null;\n }\n }\n return null;\n }\n\n // ── Diagnostics ──────────────────────────────────────────────────────────\n\n override getHealthChecks(ctx: InstallContext): readonly HealthCheck[] {\n const mcpPath = this.getServerConfigPath(ctx);\n const connectorId = ctx.connector.id;\n return [\n {\n name: `${this.name}: mcp.jsonc present`,\n check: () =>\n existsSync(mcpPath)\n ? { status: \"OK\", detail: mcpPath }\n : { status: \"FAIL\", detail: `not found: ${mcpPath}` },\n },\n {\n name: `${this.name}: server entry registered`,\n check: () => {\n // Only assert what the connector declares: a server-less connector\n // never writes an mcpServers entry, so its absence is healthy.\n if (!ctx.connector.server) {\n return { status: \"OK\", detail: \"no MCP server declared\" };\n }\n const cfg = this.readJson<{ [k: string]: Record<string, unknown> }>(\n mcpPath,\n );\n const bucket = cfg?.[MCP_ROOT_KEY];\n if (!cfg || !bucket) {\n return { status: \"FAIL\", detail: `no ${MCP_ROOT_KEY} in ${mcpPath}` };\n }\n return connectorId in bucket\n ? { status: \"OK\", detail: `${MCP_ROOT_KEY}.${connectorId} present` }\n : {\n status: \"FAIL\",\n detail: `no ${MCP_ROOT_KEY}.${connectorId} in ${mcpPath}`,\n };\n },\n },\n ];\n }\n}\n\nexport const adapter = new MuxAdapter();\nexport default adapter;\n"],"mappings":"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","names":[]}
@@ -7,19 +7,19 @@ import {
7
7
  packageConnector,
8
8
  packageConnectorAll,
9
9
  resolvePackageFormat
10
- } from "./chunk-U2XJWG7N.js";
10
+ } from "./chunk-JUBEM3OR.js";
11
11
  import "./chunk-XY3N2U6L.js";
12
12
  import "./chunk-OPXAP3AC.js";
13
13
  import {
14
14
  fail,
15
15
  print
16
- } from "./chunk-T5AI3AW3.js";
16
+ } from "./chunk-SA6CSOH5.js";
17
17
  import {
18
18
  findConnectorConfig,
19
19
  loadConnectorFromPath
20
- } from "./chunk-M6OS4OLU.js";
21
- import "./chunk-6WN37NVN.js";
22
- import "./chunk-G5HAIYRM.js";
20
+ } from "./chunk-R4FABNAL.js";
21
+ import "./chunk-6FRAVOVF.js";
22
+ import "./chunk-XJSVJD5T.js";
23
23
  import "./chunk-NBYKLUF6.js";
24
24
  import "./chunk-H53QZQJI.js";
25
25
  import "./chunk-BEFVJ2OE.js";
@@ -140,4 +140,4 @@ async function run(argv) {
140
140
  export {
141
141
  run
142
142
  };
143
- //# sourceMappingURL=package-VWBPHCLA.js.map
143
+ //# sourceMappingURL=package-FY2QZWRM.js.map
@@ -1,4 +1,4 @@
1
- import { e as HookEventName, o as PlatformId } from '../types-DWXnnx-N.js';
1
+ import { e as HookEventName, o as PlatformId } from '../types-CAKApZpX.js';
2
2
 
3
3
  /**
4
4
  * runtime/hook-entrypoint — the universal json-stdio hook dispatcher.
@@ -4,21 +4,21 @@ import {
4
4
  runServe,
5
5
  runStatusline,
6
6
  runUsageEvent
7
- } from "../chunk-SFY6YLVK.js";
7
+ } from "../chunk-4YOYR3T5.js";
8
8
  import "../chunk-OP4KBXUO.js";
9
9
  import "../chunk-GDIAHWNY.js";
10
- import "../chunk-4KIXXJ7B.js";
10
+ import "../chunk-KY2VQGD7.js";
11
11
  import {
12
12
  isNativeHookDeclared,
13
13
  runHook,
14
14
  runNativeHook
15
- } from "../chunk-6XMV2OOA.js";
15
+ } from "../chunk-CZOXXS77.js";
16
16
  import "../chunk-IVAWP6HH.js";
17
17
  import "../chunk-KHO5WNTP.js";
18
18
  import "../chunk-4NFDNY3C.js";
19
- import "../chunk-M6OS4OLU.js";
20
- import "../chunk-6WN37NVN.js";
21
- import "../chunk-G5HAIYRM.js";
19
+ import "../chunk-R4FABNAL.js";
20
+ import "../chunk-6FRAVOVF.js";
21
+ import "../chunk-XJSVJD5T.js";
22
22
  import "../chunk-NBYKLUF6.js";
23
23
  import "../chunk-QSY74NAP.js";
24
24
  import "../chunk-UMQ6NBQR.js";
@@ -1,7 +1,7 @@
1
- export { C as ConnectorConfigError, d as defineAction, a as defineCommand, b as defineConfigPatch, c as defineConnector, e as defineHook, f as defineMemory, g as defineNativeHook, h as defineSkill, i as defineStatusline, j as defineSubagent } from '../define-connector-odRHEC4H.js';
2
- export { S as SURFACE_PREDICATES, a as SurfaceName, c as capabilitiesOf, h as hostsSupporting, s as surfaceSupport } from '../introspect-gTx6GzpW.js';
3
- import { o as PlatformId } from '../types-DWXnnx-N.js';
4
- export { A as ActionDef, a as ActionResult, b as AuthSpec, Q as CommandDef, V as ConfigPatchDef, c as ConnectorConfig, E as EventPayloadMap, H as HookDefinition, e as HookEventName, f as HookParadigm, g as HookResponse, h as HooksConfig, i as HostCtx, j as InstallScope, W as JsonValue, k as MemoryDef, N as NativeHookDef, l as NativeHookEvent, m as NotificationEvent, P as PermissionRequestEvent, n as PlatformCapabilities, p as PlatformMemoryOverride, q as PlatformOverride, r as PostToolUseEvent, s as PostToolUseFailureEvent, t as PreCompactEvent, u as PreToolUseEvent, X as PublishConfig, v as ResolvedConnector, S as ServerDef, w as SessionEndEvent, x as SessionStartEvent, Y as SkillDef, y as StatuslineContext, z as StatuslineDef, B as StopEvent, Z as SubagentDef, F as SubagentStartEvent, G as SubagentStopEvent, _ as SurfaceToolPolicy, T as TelemetryAccessor, J as TelemetryConfig, K as TelemetryUsageSummary, L as ToolFilter, O as Transport, U as UserPromptSubmitEvent } from '../types-DWXnnx-N.js';
1
+ export { C as ConnectorConfigError, d as defineAction, a as defineCommand, b as defineConfigPatch, c as defineConnector, e as defineHook, f as defineMemory, g as defineNativeHook, h as defineSkill, i as defineStatusline, j as defineSubagent } from '../define-connector-iosc34CA.js';
2
+ export { S as SURFACE_PREDICATES, a as SurfaceName, c as capabilitiesOf, h as hostsSupporting, s as surfaceSupport } from '../introspect-z3eKVWHN.js';
3
+ import { o as PlatformId } from '../types-CAKApZpX.js';
4
+ export { A as ActionDef, a as ActionResult, b as AuthSpec, Q as CommandDef, V as ConfigPatchDef, c as ConnectorConfig, E as EventPayloadMap, H as HookDefinition, e as HookEventName, f as HookParadigm, g as HookResponse, h as HooksConfig, i as HostCtx, j as InstallScope, W as JsonValue, k as MemoryDef, N as NativeHookDef, l as NativeHookEvent, m as NotificationEvent, P as PermissionRequestEvent, n as PlatformCapabilities, p as PlatformMemoryOverride, q as PlatformOverride, r as PostToolUseEvent, s as PostToolUseFailureEvent, t as PreCompactEvent, u as PreToolUseEvent, X as PublishConfig, v as ResolvedConnector, S as ServerDef, w as SessionEndEvent, x as SessionStartEvent, Y as SkillDef, y as StatuslineContext, z as StatuslineDef, B as StopEvent, Z as SubagentDef, F as SubagentStartEvent, G as SubagentStopEvent, _ as SurfaceToolPolicy, T as TelemetryAccessor, J as TelemetryConfig, K as TelemetryUsageSummary, L as ToolFilter, O as Transport, U as UserPromptSubmitEvent } from '../types-CAKApZpX.js';
5
5
 
6
6
  /**
7
7
  * sdk/helpers — host-aware authoring helpers for connector handlers.
package/dist/sdk/index.js CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  capabilitiesOf,
5
5
  hostsSupporting,
6
6
  surfaceSupport
7
- } from "../chunk-BXPSDNIB.js";
7
+ } from "../chunk-34RRWEWU.js";
8
8
  import {
9
9
  ConnectorConfigError,
10
10
  defineAction,
@@ -17,8 +17,8 @@ import {
17
17
  defineSkill,
18
18
  defineStatusline,
19
19
  defineSubagent
20
- } from "../chunk-6WN37NVN.js";
21
- import "../chunk-G5HAIYRM.js";
20
+ } from "../chunk-6FRAVOVF.js";
21
+ import "../chunk-XJSVJD5T.js";
22
22
  import "../chunk-NBYKLUF6.js";
23
23
  import "../chunk-UMQ6NBQR.js";
24
24
  import "../chunk-GZGLCCEE.js";
@@ -1,5 +1,5 @@
1
- import { o as PlatformId, e as HookEventName, v as ResolvedConnector } from '../types-DWXnnx-N.js';
2
- import { a as SurfaceName } from '../introspect-gTx6GzpW.js';
1
+ import { o as PlatformId, e as HookEventName, v as ResolvedConnector } from '../types-CAKApZpX.js';
2
+ import { a as SurfaceName } from '../introspect-z3eKVWHN.js';
3
3
 
4
4
  /**
5
5
  * sdk/test-harness — the SHIPPED, OFFLINE behavioral harness.
package/dist/sdk/test.js CHANGED
@@ -3,15 +3,15 @@ import {
3
3
  explain,
4
4
  explainHooks,
5
5
  simulate
6
- } from "../chunk-FKW5A6HE.js";
7
- import "../chunk-6XMV2OOA.js";
6
+ } from "../chunk-IY3SSCNK.js";
7
+ import "../chunk-CZOXXS77.js";
8
8
  import "../chunk-IVAWP6HH.js";
9
9
  import "../chunk-KHO5WNTP.js";
10
- import "../chunk-BXPSDNIB.js";
10
+ import "../chunk-34RRWEWU.js";
11
11
  import "../chunk-4NFDNY3C.js";
12
- import "../chunk-M6OS4OLU.js";
13
- import "../chunk-6WN37NVN.js";
14
- import "../chunk-G5HAIYRM.js";
12
+ import "../chunk-R4FABNAL.js";
13
+ import "../chunk-6FRAVOVF.js";
14
+ import "../chunk-XJSVJD5T.js";
15
15
  import "../chunk-NBYKLUF6.js";
16
16
  import "../chunk-UMQ6NBQR.js";
17
17
  import "../chunk-GZGLCCEE.js";
@@ -1,20 +1,20 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  fail
4
- } from "./chunk-T5AI3AW3.js";
4
+ } from "./chunk-SA6CSOH5.js";
5
5
  import {
6
6
  runServe
7
- } from "./chunk-SFY6YLVK.js";
7
+ } from "./chunk-4YOYR3T5.js";
8
8
  import "./chunk-OP4KBXUO.js";
9
9
  import "./chunk-GDIAHWNY.js";
10
- import "./chunk-4KIXXJ7B.js";
11
- import "./chunk-6XMV2OOA.js";
10
+ import "./chunk-KY2VQGD7.js";
11
+ import "./chunk-CZOXXS77.js";
12
12
  import "./chunk-IVAWP6HH.js";
13
13
  import "./chunk-KHO5WNTP.js";
14
14
  import "./chunk-4NFDNY3C.js";
15
- import "./chunk-M6OS4OLU.js";
16
- import "./chunk-6WN37NVN.js";
17
- import "./chunk-G5HAIYRM.js";
15
+ import "./chunk-R4FABNAL.js";
16
+ import "./chunk-6FRAVOVF.js";
17
+ import "./chunk-XJSVJD5T.js";
18
18
  import "./chunk-NBYKLUF6.js";
19
19
  import "./chunk-QSY74NAP.js";
20
20
  import "./chunk-UMQ6NBQR.js";
@@ -75,4 +75,4 @@ async function run(argv) {
75
75
  export {
76
76
  run
77
77
  };
78
- //# sourceMappingURL=serve-IQGHE4SJ.js.map
78
+ //# sourceMappingURL=serve-XT76DWUN.js.map
@@ -1,25 +1,25 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  marketplaceEvidence
4
- } from "./chunk-2Y2MZRLP.js";
5
- import "./chunk-UM5S7DKK.js";
4
+ } from "./chunk-CWUPIT72.js";
5
+ import "./chunk-KOFCNA5T.js";
6
6
  import {
7
7
  fail,
8
8
  parseScope,
9
9
  print
10
- } from "./chunk-T5AI3AW3.js";
10
+ } from "./chunk-SA6CSOH5.js";
11
11
  import {
12
12
  detectInstalledPlatforms
13
- } from "./chunk-4KIXXJ7B.js";
13
+ } from "./chunk-KY2VQGD7.js";
14
14
  import {
15
15
  findConnectorConfig,
16
16
  listRegisteredConnectors,
17
17
  loadConnectorFromPath
18
- } from "./chunk-M6OS4OLU.js";
19
- import "./chunk-6WN37NVN.js";
18
+ } from "./chunk-R4FABNAL.js";
19
+ import "./chunk-6FRAVOVF.js";
20
20
  import {
21
21
  loadAdapter
22
- } from "./chunk-G5HAIYRM.js";
22
+ } from "./chunk-XJSVJD5T.js";
23
23
  import "./chunk-NBYKLUF6.js";
24
24
  import "./chunk-UMQ6NBQR.js";
25
25
  import {
@@ -139,4 +139,4 @@ async function run(argv) {
139
139
  export {
140
140
  run
141
141
  };
142
- //# sourceMappingURL=status-BVLY6XDL.js.map
142
+ //# sourceMappingURL=status-DHVWBRLI.js.map
@@ -1,17 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runStatusline
4
- } from "./chunk-SFY6YLVK.js";
4
+ } from "./chunk-4YOYR3T5.js";
5
5
  import "./chunk-OP4KBXUO.js";
6
6
  import "./chunk-GDIAHWNY.js";
7
- import "./chunk-4KIXXJ7B.js";
8
- import "./chunk-6XMV2OOA.js";
7
+ import "./chunk-KY2VQGD7.js";
8
+ import "./chunk-CZOXXS77.js";
9
9
  import "./chunk-IVAWP6HH.js";
10
10
  import "./chunk-KHO5WNTP.js";
11
11
  import "./chunk-4NFDNY3C.js";
12
- import "./chunk-M6OS4OLU.js";
13
- import "./chunk-6WN37NVN.js";
14
- import "./chunk-G5HAIYRM.js";
12
+ import "./chunk-R4FABNAL.js";
13
+ import "./chunk-6FRAVOVF.js";
14
+ import "./chunk-XJSVJD5T.js";
15
15
  import "./chunk-NBYKLUF6.js";
16
16
  import "./chunk-QSY74NAP.js";
17
17
  import "./chunk-UMQ6NBQR.js";
@@ -58,4 +58,4 @@ async function run(argv) {
58
58
  export {
59
59
  run
60
60
  };
61
- //# sourceMappingURL=statusline-PRODZV2J.js.map
61
+ //# sourceMappingURL=statusline-SY5UBQOJ.js.map
@@ -12,7 +12,7 @@ import {
12
12
  import {
13
13
  fail,
14
14
  print
15
- } from "./chunk-T5AI3AW3.js";
15
+ } from "./chunk-SA6CSOH5.js";
16
16
  import {
17
17
  openStore
18
18
  } from "./chunk-IVAWP6HH.js";
@@ -21,9 +21,9 @@ import {
21
21
  listRegisteredConnectors,
22
22
  loadRegisteredConnector,
23
23
  readRegisteredMeta
24
- } from "./chunk-M6OS4OLU.js";
25
- import "./chunk-6WN37NVN.js";
26
- import "./chunk-G5HAIYRM.js";
24
+ } from "./chunk-R4FABNAL.js";
25
+ import "./chunk-6FRAVOVF.js";
26
+ import "./chunk-XJSVJD5T.js";
27
27
  import "./chunk-NBYKLUF6.js";
28
28
  import "./chunk-UMQ6NBQR.js";
29
29
  import "./chunk-GZGLCCEE.js";
@@ -349,4 +349,4 @@ export {
349
349
  parseSince,
350
350
  run
351
351
  };
352
- //# sourceMappingURL=telemetry-UU4SHJ23.js.map
352
+ //# sourceMappingURL=telemetry-TJIFAKWX.js.map
@@ -25,7 +25,7 @@
25
25
  * exposes no writable MCP config to install into. The registry-completeness test
26
26
  * (tests/adapters/registry-completeness.test.ts) allowlists it for this reason.
27
27
  */
28
- type PlatformId = "claude-code" | "codebuddy" | "codex" | "cursor" | "vscode-copilot" | "jetbrains-copilot" | "copilot-cli" | "gemini-cli" | "opencode" | "mimo-code" | "kilo" | "kilo-cli" | "warp" | "hermes" | "nemoclaw" | "openclaw" | "zed" | "antigravity" | "antigravity-cli" | "kiro" | "qwen-code" | "kimi" | "pi" | "omp" | "droid" | "openhands" | "roo-code" | "cline" | "trae" | "amp" | "codebuff" | "mux" | "crush" | "goose" | "amazon-q" | "continue" | "windsurf" | "grok-cli" | "devin" | "open-interpreter" | "junie" | "mistral-vibe" | "synthetic" | "unknown";
28
+ type PlatformId = "claude-code" | "codebuddy" | "codex" | "cursor" | "vscode-copilot" | "jetbrains-copilot" | "copilot-cli" | "gemini-cli" | "opencode" | "mimo-code" | "kilo" | "kilo-cli" | "warp" | "hermes" | "nemoclaw" | "openclaw" | "zed" | "antigravity" | "antigravity-cli" | "kiro" | "qwen-code" | "kimi" | "pi" | "omp" | "droid" | "openhands" | "cline" | "trae" | "amp" | "codebuff" | "mux" | "crush" | "goose" | "amazon-q" | "continue" | "windsurf" | "grok-build" | "grok-cli" | "devin" | "open-interpreter" | "junie" | "mistral-vibe" | "synthetic" | "unknown";
29
29
  /**
30
30
  * Hook I/O paradigm — the deepest cross-platform divergence (report §4).
31
31
  * Canonical shipped sets (keep in sync with src/adapters/registry.ts — this
@@ -40,9 +40,9 @@ type PlatformId = "claude-code" | "codebuddy" | "codex" | "cursor" | "vscode-cop
40
40
  * — OpenCode, MiMoCode (an OpenCode fork), Kilo CLI, Kilo, OMP, OpenClaw,
41
41
  * NemoClaw (an OpenClaw wrapper/fork), Amp (.amp/plugins/*.ts). Framework
42
42
  * generates the module.
43
- * - "mcp-only" (10): no hook layer at all — Warp, Roo Code, Cline, Trae, Zed,
44
- * Codebuff, Mux, Pi, Windsurf, Mistral Vibe. Only the MCP server (or skills
45
- * surface) is installed; hooks are reported unavailable.
43
+ * - "mcp-only" (11): no hook layer at all — Warp, Cline, Trae, Zed, Codebuff,
44
+ * Mux, Pi, Windsurf, Open Interpreter, Junie, Mistral Vibe. Only the MCP
45
+ * server (or skills surface) is installed; hooks are reported unavailable.
46
46
  */
47
47
  type HookParadigm = "json-stdio" | "ts-plugin" | "mcp-only";
48
48
  /**
@@ -5,13 +5,13 @@ import {
5
5
  resolveUninstallTargets,
6
6
  uninstallConnector,
7
7
  uninstallViaMarketplace
8
- } from "./chunk-WZMSSIDN.js";
9
- import "./chunk-U2XJWG7N.js";
8
+ } from "./chunk-XSR3GF55.js";
9
+ import "./chunk-JUBEM3OR.js";
10
10
  import {
11
11
  marketplaceEvidence,
12
12
  readMarketplaceInstalls
13
- } from "./chunk-2Y2MZRLP.js";
14
- import "./chunk-UM5S7DKK.js";
13
+ } from "./chunk-CWUPIT72.js";
14
+ import "./chunk-KOFCNA5T.js";
15
15
  import "./chunk-XY3N2U6L.js";
16
16
  import "./chunk-OPXAP3AC.js";
17
17
  import {
@@ -22,16 +22,16 @@ import {
22
22
  parseTargets,
23
23
  print,
24
24
  renderInstallResult
25
- } from "./chunk-T5AI3AW3.js";
25
+ } from "./chunk-SA6CSOH5.js";
26
26
  import "./chunk-GDIAHWNY.js";
27
- import "./chunk-4KIXXJ7B.js";
27
+ import "./chunk-KY2VQGD7.js";
28
28
  import "./chunk-KHO5WNTP.js";
29
29
  import {
30
30
  findConnectorConfig,
31
31
  loadConnectorFromPath
32
- } from "./chunk-M6OS4OLU.js";
33
- import "./chunk-6WN37NVN.js";
34
- import "./chunk-G5HAIYRM.js";
32
+ } from "./chunk-R4FABNAL.js";
33
+ import "./chunk-6FRAVOVF.js";
34
+ import "./chunk-XJSVJD5T.js";
35
35
  import "./chunk-NBYKLUF6.js";
36
36
  import "./chunk-H53QZQJI.js";
37
37
  import "./chunk-BEFVJ2OE.js";
@@ -183,4 +183,4 @@ async function run(argv) {
183
183
  export {
184
184
  run
185
185
  };
186
- //# sourceMappingURL=uninstall-WI5YLDCT.js.map
186
+ //# sourceMappingURL=uninstall-VQO36IQ4.js.map
@@ -4,10 +4,10 @@ import {
4
4
  resolveCliEntry,
5
5
  syncConnector,
6
6
  upgradeViaMarketplace
7
- } from "./chunk-WZMSSIDN.js";
8
- import "./chunk-U2XJWG7N.js";
9
- import "./chunk-2Y2MZRLP.js";
10
- import "./chunk-UM5S7DKK.js";
7
+ } from "./chunk-XSR3GF55.js";
8
+ import "./chunk-JUBEM3OR.js";
9
+ import "./chunk-CWUPIT72.js";
10
+ import "./chunk-KOFCNA5T.js";
11
11
  import "./chunk-XY3N2U6L.js";
12
12
  import "./chunk-OPXAP3AC.js";
13
13
  import {
@@ -18,16 +18,16 @@ import {
18
18
  parseTargets,
19
19
  print,
20
20
  renderInstallResult
21
- } from "./chunk-T5AI3AW3.js";
21
+ } from "./chunk-SA6CSOH5.js";
22
22
  import "./chunk-GDIAHWNY.js";
23
- import "./chunk-4KIXXJ7B.js";
23
+ import "./chunk-KY2VQGD7.js";
24
24
  import "./chunk-KHO5WNTP.js";
25
25
  import {
26
26
  findConnectorConfig,
27
27
  loadConnectorFromPath
28
- } from "./chunk-M6OS4OLU.js";
29
- import "./chunk-6WN37NVN.js";
30
- import "./chunk-G5HAIYRM.js";
28
+ } from "./chunk-R4FABNAL.js";
29
+ import "./chunk-6FRAVOVF.js";
30
+ import "./chunk-XJSVJD5T.js";
31
31
  import "./chunk-NBYKLUF6.js";
32
32
  import "./chunk-H53QZQJI.js";
33
33
  import "./chunk-BEFVJ2OE.js";
@@ -133,4 +133,4 @@ Refreshed home binary pointer: ${binPath}`);
133
133
  export {
134
134
  run
135
135
  };
136
- //# sourceMappingURL=upgrade-L45BTG6X.js.map
136
+ //# sourceMappingURL=upgrade-QEYZOA7S.js.map
@@ -3,7 +3,7 @@ import {
3
3
  formatHostLeaderboard,
4
4
  hostLeaderboard,
5
5
  scanUsage
6
- } from "./chunk-IRUYJD23.js";
6
+ } from "./chunk-IVJUPNLD.js";
7
7
  import {
8
8
  aggregateBy,
9
9
  sumTokens
@@ -11,7 +11,7 @@ import {
11
11
  import {
12
12
  fail,
13
13
  print
14
- } from "./chunk-T5AI3AW3.js";
14
+ } from "./chunk-SA6CSOH5.js";
15
15
 
16
16
  // src/cli/commands/usage.ts
17
17
  import { writeFileSync } from "fs";
@@ -321,4 +321,4 @@ export {
321
321
  parseSince,
322
322
  run
323
323
  };
324
- //# sourceMappingURL=usage-K3NQTAJP.js.map
324
+ //# sourceMappingURL=usage-LV7UGO64.js.map