@kontextmind/kxm 0.7.176 → 0.7.178

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.
@@ -440,13 +440,14 @@ function normalizeImprovementConfig(raw: unknown): KxmImprovementConfig {
440
440
 
441
441
  export function loadKxmConfig(
442
442
  repoRoot = process.cwd(),
443
- options: { userConfigDir?: string } = {},
443
+ options: { userConfigDir?: string; layers?: "user" | "all" } = {},
444
444
  ): KxmResolvedConfig {
445
445
  const userDir = userConfigDirectory(options.userConfigDir);
446
446
  const userConfigFile = join(userDir, "config.yaml");
447
447
 
448
448
  const repoDir = repoConfigDirectory(repoRoot);
449
449
  const repoConfigFile = join(repoDir, "config.yaml");
450
+ const includeProject = options.layers !== "user";
450
451
 
451
452
  let userRaw: Record<string, unknown> = {};
452
453
  let userLoadedPath: string | undefined;
@@ -462,7 +463,7 @@ export function loadKxmConfig(
462
463
 
463
464
  let repoRaw: Record<string, unknown> = {};
464
465
  let repoLoadedPath: string | undefined;
465
- if (existsSync(repoConfigFile)) {
466
+ if (includeProject && existsSync(repoConfigFile)) {
466
467
  try {
467
468
  const text = readFileSync(repoConfigFile, "utf8");
468
469
  repoRaw = (parse(text) as Record<string, unknown>) ?? {};
@@ -39,6 +39,7 @@ import {
39
39
  type SessionHubStatus,
40
40
  type SessionWorkItem,
41
41
  } from "./session-work.ts";
42
+ import { openKxmProjectConfigPanel } from "./config-editor.ts";
42
43
  import {
43
44
  loadActiveWorkflowProgress,
44
45
  renderWorkflowTuiText,
@@ -915,7 +916,7 @@ export default function piMeshExtension(pi: ExtensionAPI): void | Promise<void>
915
916
  }
916
917
 
917
918
  pi.registerCommand("kxm", {
918
- description: "Hub session brief, status line, and hub view",
919
+ description: "KXM session, workflow, hub, and configuration surfaces",
919
920
  getArgumentCompletions: (prefix: string) => {
920
921
  const items = kxmSlashCompletions(prefix);
921
922
  return items.length > 0 ? items : null;
@@ -949,8 +950,14 @@ export default function piMeshExtension(pi: ExtensionAPI): void | Promise<void>
949
950
  }
950
951
  return;
951
952
  }
953
+ if (command === "config") {
954
+ const cwd = typeof ctx.cwd === "string" && ctx.cwd.trim().length > 0 ? ctx.cwd : process.cwd();
955
+ const mode = typeof ctx.mode === "string" ? ctx.mode : undefined;
956
+ await openKxmProjectConfigPanel(ctx.ui, cwd, process.env, mode);
957
+ return;
958
+ }
952
959
  if (command === "help") {
953
- ctx.ui.notify("kxm: /kxm | /kxm status | /kxm progress | /kxm workflow | /kxm hub | /kxm memory | /kxm help. CLI: kxm session brief, kxm hub view, kxm memory brief", "info");
960
+ ctx.ui.notify("kxm: /kxm | /kxm status | /kxm progress | /kxm workflow | /kxm hub | /kxm memory | /kxm config | /kxm help. CLI: kxm session brief, kxm hub view, kxm memory brief, kxm config edit --scope project|user", "info");
954
961
  return;
955
962
  }
956
963
  if (command === "memory") {
@@ -11,7 +11,7 @@ import { deliverInboxNotification } from "./inbox.ts";
11
11
  import type { HubEvent, MessageRecord } from "./protocol.ts";
12
12
  import { sessionTokenFixHint } from "./session-token-hint.ts";
13
13
 
14
- const VERSION = "0.7.176";
14
+ const VERSION = "0.7.178";
15
15
  const CONFIGURE_PLUGIN = "/plugin configure kxm@kxm";
16
16
  const inbox = new Map<string, MessageRecord>();
17
17
  const notifiedInbox = new Set<string>();
@@ -564,7 +564,7 @@ export function sessionBriefPickerEnabled(input: { env?: NodeJS.ProcessEnv; mode
564
564
  return reason === "startup" || reason === "new" || reason === "fork";
565
565
  }
566
566
 
567
- export const KXM_SLASH_SUBCOMMANDS = ["status", "hub", "memory", "progress", "workflow", "help"] as const;
567
+ export const KXM_SLASH_SUBCOMMANDS = ["status", "hub", "memory", "progress", "workflow", "config", "help"] as const;
568
568
  export type KxmSlashCommand = "brief" | typeof KXM_SLASH_SUBCOMMANDS[number];
569
569
 
570
570
  export function parseKxmSlashArgs(args: string | undefined): KxmSlashCommand {
@@ -576,6 +576,7 @@ export function parseKxmSlashArgs(args: string | undefined): KxmSlashCommand {
576
576
  || raw === "memory"
577
577
  || raw === "progress"
578
578
  || raw === "workflow"
579
+ || raw === "config"
579
580
  || raw === "help"
580
581
  ) return raw;
581
582
  return "help";