@kontextmind/kxm 0.7.177 → 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.
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +10 -0
- package/docs/architecture/index.md +2 -1
- package/docs/architecture/inventory.md +8 -6
- package/docs/contributing/development.md +4 -2
- package/docs/contributing/test-matrix.md +1 -0
- package/docs/contributing/tui-components.md +22 -4
- package/docs/reference/cli-reference.md +29 -1
- package/docs/reference/config-reference.md +17 -3
- package/package.json +2 -2
- package/plugins/kxm/.claude-plugin/plugin.json +1 -1
- package/plugins/kxm/dist/claude-hook.js +4 -3
- package/plugins/kxm/dist/cli.js +1771 -46
- package/plugins/kxm/dist/extension.js +11238 -1470
- package/plugins/kxm/dist/mcp-server.js +3 -2
- package/plugins/kxm/dist/runtime-supervisor.js +2 -1
- package/plugins/kxm/dist/runtime.js +2 -1
- package/plugins/kxm/dist/server.js +2 -1
- package/plugins/kxm/package.json +1 -1
- package/plugins/kxm/src/autocomplete.ts +3 -3
- package/plugins/kxm/src/cli/system.ts +37 -0
- package/plugins/kxm/src/cli.ts +7 -1
- package/plugins/kxm/src/config-editor.ts +479 -0
- package/plugins/kxm/src/config.ts +3 -2
- package/plugins/kxm/src/extension.ts +9 -2
- package/plugins/kxm/src/mcp-server.ts +1 -1
- package/plugins/kxm/src/session-work.ts +2 -1
|
@@ -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: "
|
|
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.
|
|
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";
|