@codexhost/cli-darwin-x64 0.9.2 → 0.10.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.
@@ -27966,10 +27966,21 @@ var harnessCommandDescriptorSchema = external_exports.object({
27966
27966
  invocation: commandInvocationSchema,
27967
27967
  label: commandLabelSchema,
27968
27968
  description: commandDescriptionSchema.optional(),
27969
- argumentMode: external_exports.enum(["none", "text"])
27969
+ argumentMode: external_exports.enum(["none", "text"]),
27970
+ /**
27971
+ * Native distinction reported by the Harness. Omitted when the Harness does
27972
+ * not tell skills and commands apart; consumers treat that as "command".
27973
+ */
27974
+ kind: external_exports.enum(["command", "skill"]).optional()
27970
27975
  }).strict();
27971
27976
  var harnessCommandCatalogSchema = external_exports.object({
27972
- commands: external_exports.array(harnessCommandDescriptorSchema)
27977
+ commands: external_exports.array(harnessCommandDescriptorSchema),
27978
+ /**
27979
+ * `live` when the catalog includes what a native Session reports for its
27980
+ * workspace (custom commands, skills); `static` for Adapter built-ins only.
27981
+ * Omitted by Adapters; set by the Host on inspection results.
27982
+ */
27983
+ source: external_exports.enum(["live", "static"]).optional()
27973
27984
  }).strict().superRefine((catalog, context) => {
27974
27985
  const ids = /* @__PURE__ */ new Set();
27975
27986
  for (const [index, command] of catalog.commands.entries()) {
@@ -27983,7 +27994,11 @@ var harnessCommandCatalogSchema = external_exports.object({
27983
27994
  ids.add(command.id);
27984
27995
  }
27985
27996
  });
27986
- var harnessCommandsInspectParamsSchema = external_exports.object({ harnessId: harnessIdSchema }).strict();
27997
+ var harnessCommandsInspectParamsSchema = external_exports.object({
27998
+ harnessId: harnessIdSchema,
27999
+ /** Workspace of a draft without a Thread, for its live catalog when known. */
28000
+ cwd: external_exports.string().min(1).optional()
28001
+ }).strict();
27987
28002
  var threadCommandsInspectParamsSchema = external_exports.object({
27988
28003
  threadId: hostThreadIdSchema
27989
28004
  }).strict();
@@ -28130,56 +28145,6 @@ var updateStatusResultSchema = external_exports.strictObject({
28130
28145
  // ../../shared-contracts/dist/index.js
28131
28146
  var workspaceContractVersionSchema = external_exports.literal(WORKSPACE_CONTRACT_VERSION);
28132
28147
 
28133
- // dist/slash-commands.js
28134
- function cursorCommands(native) {
28135
- const commands = /* @__PURE__ */ new Map();
28136
- for (const command of native) {
28137
- const result = harnessCommandDescriptorSchema.safeParse({
28138
- id: `cursor.${command.name}`,
28139
- invocation: `/${command.name}`,
28140
- label: `/${command.name}`,
28141
- ...command.description.trim() ? { description: command.description.slice(0, 512) } : {},
28142
- // Cursor 2026.09.10 omits input metadata for both its administrative command
28143
- // and custom commands/skills, whose parser still accepts trailing text.
28144
- // Honor an explicit native no-input declaration without disabling those skills.
28145
- argumentMode: command.input === null || command.name === "copy-request-id" ? "none" : "text"
28146
- });
28147
- if (result.success)
28148
- commands.set(result.data.id, result.data);
28149
- }
28150
- return { commands: [...commands.values()] };
28151
- }
28152
- var CURSOR_COMMAND_CATALOG = cursorCommands([
28153
- { name: "copy-request-id", description: "Copy the current request ID", input: null }
28154
- ]);
28155
- function cursorCommandPrompt(command, catalog) {
28156
- const descriptor = catalog.commands.find(({ id }) => id === command.commandId);
28157
- if (!descriptor)
28158
- return {
28159
- ok: false,
28160
- error: {
28161
- code: "unsupported",
28162
- message: "Cursor did not advertise this command",
28163
- retryable: false
28164
- }
28165
- };
28166
- const args = command.arguments;
28167
- if (args && (Object.keys(args).some((key) => key !== "text") || args.text !== void 0 && typeof args.text !== "string" || descriptor.argumentMode === "none" && Object.keys(args).length))
28168
- return {
28169
- ok: false,
28170
- error: {
28171
- code: "invalidRequest",
28172
- message: "Invalid Cursor command arguments",
28173
- retryable: false
28174
- }
28175
- };
28176
- const text2 = typeof args?.text === "string" ? args.text.trim() : "";
28177
- return { ok: true, value: `${descriptor.invocation}${text2 ? ` ${text2}` : ""}` };
28178
- }
28179
-
28180
- // dist/adapter.js
28181
- import path7 from "node:path";
28182
-
28183
28148
  // ../../harness-adapter/dist/approval.js
28184
28149
  function invalidRequest(message) {
28185
28150
  return { code: "invalidRequest", message, retryable: false };
@@ -28389,6 +28354,135 @@ function parseHostUsage(value) {
28389
28354
  return { ...value };
28390
28355
  }
28391
28356
 
28357
+ // ../../harness-adapter/dist/live-command-catalog.js
28358
+ var COMMON_EXCLUDED_LIVE_COMMANDS = /* @__PURE__ */ new Set([
28359
+ // Session lifecycle
28360
+ "branch",
28361
+ "clear",
28362
+ "exit",
28363
+ "fork",
28364
+ "fresh",
28365
+ "new",
28366
+ "quit",
28367
+ "rename",
28368
+ "rename-chat",
28369
+ "reset",
28370
+ "resume",
28371
+ "rewind",
28372
+ "session",
28373
+ "sessions",
28374
+ // Desktop-owned configuration
28375
+ "autocompact",
28376
+ "color",
28377
+ "config",
28378
+ "effort",
28379
+ "fast",
28380
+ "keybindings",
28381
+ "model",
28382
+ "models",
28383
+ "output-style",
28384
+ "permissions",
28385
+ "settings",
28386
+ "statusline",
28387
+ "terminal-setup",
28388
+ "theme",
28389
+ "vim",
28390
+ // Trust and approval policy
28391
+ "always-approve",
28392
+ "auto-mode-setup",
28393
+ // Native login
28394
+ "login",
28395
+ "logout",
28396
+ // Work outliving the Turn
28397
+ "autopilot",
28398
+ "background",
28399
+ "bg",
28400
+ "goal",
28401
+ "jobs",
28402
+ "loop",
28403
+ "multitask",
28404
+ "queue",
28405
+ "remote-control",
28406
+ "schedule",
28407
+ "steer",
28408
+ // Native terminal UI
28409
+ "copy",
28410
+ "debug",
28411
+ "feedback",
28412
+ "heapdump",
28413
+ "share",
28414
+ "shell",
28415
+ // Plugin and MCP management
28416
+ "marketplace",
28417
+ "mcp",
28418
+ "plugins",
28419
+ "reload-plugins"
28420
+ ]);
28421
+ var COMMON_EXCLUDED_LIVE_COMMAND_PREFIXES = ["__", "hooks-"];
28422
+ function isExcludedLiveCommand(name, kind, extra = {}) {
28423
+ const normalized = name.trim().replace(/^\//u, "");
28424
+ if (new Set(extra.names ?? []).has(normalized))
28425
+ return true;
28426
+ if (extra.prefixes?.some((prefix) => normalized.startsWith(prefix)))
28427
+ return true;
28428
+ if (kind === "skill")
28429
+ return false;
28430
+ return COMMON_EXCLUDED_LIVE_COMMANDS.has(normalized) || COMMON_EXCLUDED_LIVE_COMMAND_PREFIXES.some((prefix) => normalized.startsWith(prefix));
28431
+ }
28432
+
28433
+ // dist/slash-commands.js
28434
+ var CURSOR_EXCLUSIONS = { names: ["update-cli-config"] };
28435
+ function cursorCommands(native) {
28436
+ const commands = /* @__PURE__ */ new Map();
28437
+ for (const command of native) {
28438
+ if (isExcludedLiveCommand(command.name, "command", CURSOR_EXCLUSIONS))
28439
+ continue;
28440
+ const result = harnessCommandDescriptorSchema.safeParse({
28441
+ id: `cursor.${command.name}`,
28442
+ invocation: `/${command.name}`,
28443
+ label: `/${command.name}`,
28444
+ ...command.description.trim() ? { description: command.description.slice(0, 512) } : {},
28445
+ // Cursor 2026.09.10 omits input metadata for both its administrative command
28446
+ // and custom commands/skills, whose parser still accepts trailing text.
28447
+ // Honor an explicit native no-input declaration without disabling those skills.
28448
+ argumentMode: command.input === null || command.name === "copy-request-id" ? "none" : "text"
28449
+ });
28450
+ if (result.success)
28451
+ commands.set(result.data.id, result.data);
28452
+ }
28453
+ return { commands: [...commands.values()] };
28454
+ }
28455
+ var CURSOR_COMMAND_CATALOG = cursorCommands([
28456
+ { name: "copy-request-id", description: "Copy the current request ID", input: null }
28457
+ ]);
28458
+ function cursorCommandPrompt(command, catalog) {
28459
+ const descriptor = catalog.commands.find(({ id }) => id === command.commandId);
28460
+ if (!descriptor)
28461
+ return {
28462
+ ok: false,
28463
+ error: {
28464
+ code: "unsupported",
28465
+ message: "Cursor did not advertise this command",
28466
+ retryable: false
28467
+ }
28468
+ };
28469
+ const args = command.arguments;
28470
+ if (args && (Object.keys(args).some((key) => key !== "text") || args.text !== void 0 && typeof args.text !== "string" || descriptor.argumentMode === "none" && Object.keys(args).length))
28471
+ return {
28472
+ ok: false,
28473
+ error: {
28474
+ code: "invalidRequest",
28475
+ message: "Invalid Cursor command arguments",
28476
+ retryable: false
28477
+ }
28478
+ };
28479
+ const text2 = typeof args?.text === "string" ? args.text.trim() : "";
28480
+ return { ok: true, value: `${descriptor.invocation}${text2 ? ` ${text2}` : ""}` };
28481
+ }
28482
+
28483
+ // dist/adapter.js
28484
+ import path7 from "node:path";
28485
+
28392
28486
  // dist/thinking.js
28393
28487
  var choices = (option) => option.type === "select" ? option.options.flatMap((entry) => "value" in entry ? [entry] : entry.options) : [];
28394
28488
  function cursorThinking(options) {
@@ -46128,6 +46222,7 @@ function rejected(code, message) {
46128
46222
  var CursorAdapter = class {
46129
46223
  options;
46130
46224
  commandCatalog = CURSOR_COMMAND_CATALOG;
46225
+ liveCommandCatalog = true;
46131
46226
  subagents = {
46132
46227
  readSnapshot: async ({ parent, nativeSubagentId, cwd }) => {
46133
46228
  if (parent.harnessId !== this.harnessId || this.#closed)
@@ -47473,6 +47568,7 @@ var BrokeredHarnessSession = class {
47473
47568
  var BrokeredHarnessAdapter = class {
47474
47569
  #sessions = /* @__PURE__ */ new Set();
47475
47570
  commandCatalog;
47571
+ liveCommandCatalog;
47476
47572
  harnessId;
47477
47573
  #descriptorPath;
47478
47574
  #forwardEnvironment;
@@ -47495,6 +47591,8 @@ var BrokeredHarnessAdapter = class {
47495
47591
  this.#forwardEnvironment = input.forwardDelegationEnvironment === true;
47496
47592
  if (input.commandCatalog)
47497
47593
  this.commandCatalog = input.commandCatalog;
47594
+ if (input.liveCommandCatalog)
47595
+ this.liveCommandCatalog = true;
47498
47596
  this.#descriptorPath = input.descriptorPath ?? defaultHarnessBrokerDescriptorPath(input.environment, this.harnessId);
47499
47597
  }
47500
47598
  async inspectAccount() {
@@ -47589,6 +47687,7 @@ function createHarnessAdapter(context) {
47589
47687
  harnessId: "cursor-cli",
47590
47688
  forwardDelegationEnvironment: true,
47591
47689
  commandCatalog: CURSOR_COMMAND_CATALOG,
47690
+ liveCommandCatalog: true,
47592
47691
  environment: { ...context.environment }
47593
47692
  });
47594
47693
  return new CursorAdapter({ environment: { ...context.environment } });