@kontextmind/kxm 0.7.122 → 0.7.123

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.
@@ -14,7 +14,7 @@ Output shown under examples was captured from a source checkout, inside a throwa
14
14
  - Setup: [`init`](#kxm-init), [`config`](#kxm-config), [`completion`](#kxm-completion), [`trust`](#kxm-trust)
15
15
  - Hub and sessions: [`hub`](#kxm-hub-view), [`session`](#kxm-session), [`dash`](#kxm-dash), [`studio`](#kxm-studio)
16
16
  - Harnesses, models, and roles: [`harness`](#kxm-harness), [`auth`](#kxm-auth), [`update`](#kxm-update), [`models`](#kxm-models), [`routes`](#kxm-routes), [`role`](#kxm-role)
17
- - Running work: [`lane`](#kxm-lane), [`assign`](#kxm-assign), [`run`](#kxm-run), [`runs`](#kxm-runs), [`runtime`](#kxm-runtime), [`agent`](#kxm-agent), [`workflow`](#kxm-workflow), [`gate`](#kxm-gate), [`peer`](#kxm-peer), [`task`](#kxm-task), [`goal`](#kxm-goal), [`suggest`](#kxm-suggest), [`explain`](#kxm-explain)
17
+ - Running work: [`lane`](#kxm-lane), [`land`](#kxm-land), [`assign`](#kxm-assign), [`run`](#kxm-run), [`runs`](#kxm-runs), [`docs`](#kxm-docs), [`runtime`](#kxm-runtime), [`agent`](#kxm-agent), [`workflow`](#kxm-workflow), [`gate`](#kxm-gate), [`peer`](#kxm-peer), [`task`](#kxm-task), [`goal`](#kxm-goal), [`suggest`](#kxm-suggest), [`explain`](#kxm-explain)
18
18
  - Context and learning: [`context`](#kxm-context), [`memory`](#kxm-memory), [`skills`](#kxm-skills), [`improve`](#kxm-improve), [`routing`](#kxm-routing), [`prices`](#kxm-prices)
19
19
  - Operations: [`backup`](#kxm-backup), [`restore`](#kxm-restore), [`tenant`](#kxm-tenant), [`ssh`](#kxm-ssh), [`help`](#kxm-help)
20
20
  - [Known behavior gaps](#known-behavior-gaps)
@@ -100,7 +100,7 @@ kxm -V
100
100
  `--dry-run` changes nothing: no file is written, deleted, or moved, no request that changes hub or Runtime state is sent, no process is started, and no remote command runs. A command that cannot say what it would do without doing some of it refuses the flag instead of acting.
101
101
 
102
102
  - Plan with `planned`: `backup`, `restore`, `config set`, `role add|remove|modify|set-host|resume`, `workflow add|remove|modify`, `goal create`, `task create|run|sync`, `memory note|sync`, `skills evaluate|promote|reject`, `context promote`, `context wiki-compile --out`, `auth token`, `session token`, `session brief`, and `ssh run|file|close`. Each prints its normal result plus `dryRun: true` and `planned`, a list of `{action, target}` entries whose `action` is `write`, `delete`, `move`, `request`, or `ssh`. Text mode prints `dry run: <summary>` and one indented `would <action> <target>` line per entry (`session brief` appends `dry run: would write <file>` lines to the brief instead).
103
- - Plan in their own shape (described in each section): `init`, `run`, `runs drive|cancel`, `runtime start|stop|sync-retry`, `hub start|stop|bind|unbind`, `session start|stop`, `agent worker`, `dash`, `studio serve`, `models inventory-refresh`, `routes admit|disable`, `update`, `completion install`, `workflow start|signal|export|checkpoint|record|wait`, every `peer` subcommand, `gate degrade|signal`, `skills create`, and `improve report`. `gate github watch --dry-run` still polls GitHub but does not post the signal.
103
+ - Plan in their own shape (described in each section): `init`, `run`, `runs drive|cancel`, `docs build|serve`, `runtime start|stop|sync-retry`, `hub start|stop|bind|unbind`, `session start|stop`, `agent worker`, `dash`, `studio serve`, `models inventory-refresh`, `routes admit|disable`, `update`, `completion install`, `workflow start|signal|export|checkpoint|record|wait`, every `peer` subcommand, `gate degrade|signal`, `skills create`, and `improve report`. `gate github watch --dry-run` still polls GitHub but does not post the signal.
104
104
  - Read-only commands run as usual, without leaving a trace: a local SQLite store is opened without creating `-wal` or `-shm` files, and `runs status|list|receipt` only attach to a running Runtime supervisor. With no supervisor running they exit 2 with `dry_run_unsupported` instead of starting one. `context wiki-compile --dry-run` still asks the hub to compile, which is a read.
105
105
  - Refused: `kxm models` (the interactive screen) and `kxm prices acknowledge` exit 2 with `dry_run_unsupported`. The CLI keeps one list of the commands that answer `--dry-run` and refuses every other command the same way before it runs, so a command added without dry-run support fails closed.
106
106
 
@@ -147,7 +147,7 @@ Exit 2 covers an unknown command or option, a missing argument or required optio
147
147
  | User config directory (`KXM_USER_CONFIG_DIR`, default `~/.config/kxm`) | `config.yaml` (user scope), `session.token`, global `roles/` and `workflows/`, `role-hosts.yaml`, `completions/` | `config --scope user`, `auth token`, `session brief\|token`, `role`/`workflow` with `--scope global`, `studio serve`, `completion install` |
148
148
  | User state root (`KXM_STATE_HOME`; macOS `~/Library/Application Support/KXM`; Linux `$XDG_STATE_HOME/kxm` or `~/.local/state/kxm`; Windows `%LOCALAPPDATA%\KXM`) | `hub-env.json` (persisted hub credentials), `hub-binding.json`, `runtime/` (Runtime supervisor registry and per-project run stores), `update.yaml`, repository bindings | `hub start\|bind\|unbind`, every hub client, `run`, `runs`, `runtime`, `tenant status`, `update`, `init --repository`, and (read-only, the project's run store) `improve` and `routing report` |
149
149
 
150
- `init`, `trust`, `run`, `runs`, `runtime sync-retry`, `tenant status`, and `studio layout` find the project root by walking up from the current directory. `improve` and `routing report` use the current directory's Git root when it holds `.kxm/project.yaml`, to find the project's Runtime run store (and, for `improve`, its configuration and default candidate directory). `config`, `role`, `workflow definitions|add|remove|modify`, `goal`, `task`, `memory`, `skills`, `backup`, `restore`, `studio serve`, and `ssh` (socket directory) use `.kxm` in the current directory. Run those from the project root.
150
+ `init`, `trust`, `run`, `runs`, `docs build`, `docs serve`, `runtime sync-retry`, `tenant status`, and `studio layout` find the project root by walking up from the current directory. `improve` and `routing report` use the current directory's Git root when it holds `.kxm/project.yaml`, to find the project's Runtime run store (and, for `improve`, its configuration and default candidate directory). `config`, `role`, `workflow definitions|add|remove|modify`, `goal`, `task`, `memory`, `skills`, `backup`, `restore`, `studio serve`, and `ssh` (socket directory) use `.kxm` in the current directory. Run those from the project root.
151
151
 
152
152
  ## Task to command
153
153
 
@@ -1562,6 +1562,59 @@ Prints the task's attempts, rework, and spend. The runner keeps provider-reporte
1562
1562
  |---|---|---|
1563
1563
  | `--task-dir` | `<path>` | Absolute path to the task directory |
1564
1564
 
1565
+ ## `kxm docs`
1566
+
1567
+ Build and serve the tailnet docs site from this checkout. Both subcommands need a KXM project: the Git root that contains `.kxm/project.yaml`. They run from that root. No hub and no Runtime supervisor.
1568
+
1569
+ ```text
1570
+ kxm docs build
1571
+ kxm docs serve [--port <port>]
1572
+ ```
1573
+
1574
+ ```bash
1575
+ kxm docs build --dry-run
1576
+ kxm docs serve --dry-run --port 8765
1577
+ ```
1578
+
1579
+ ### `kxm docs build`
1580
+
1581
+ Runs `node plans/kxm-roadmap/update-dashboard.mjs` and returns that process's exit code. The generator refreshes the roadmap pages and the MkDocs inputs from `plans/kxm-roadmap/state.json`. `kxm docs build` validates the state file and refuses on schema failure.
1582
+
1583
+ The build needs either `mkdocs` on `PATH` or `uv`. The command that works on this machine is `uv tool run --from mkdocs-material mkdocs build`. `uv tool install mkdocs-material` does not, because the package exposes no executable. When neither executable exists, the generator refuses with that same pair of options.
1584
+
1585
+ - No command-specific options.
1586
+ - Honors `--dry-run`: prints `node plans/kxm-roadmap/update-dashboard.mjs` and does not start the process. JSON key: `detail` (that command line), plus `dryRun: true`.
1587
+ - Errors (exit 1): `project_required`, `docs_generator_missing` when `plans/kxm-roadmap/update-dashboard.mjs` is absent.
1588
+
1589
+ ### `kxm docs serve`
1590
+
1591
+ Runs `python3 ops/docs-site/serve.py` with output streamed to the terminal, and returns that process's exit code. `--port` is appended as `--port <port>` when it is set. The server binds a tailnet address. With `--port`, it binds only that port and exits if the port is taken. Without `--port`, it tries 80 and then 8765 through 8780. See `ops/docs-site/serve.py`.
1592
+
1593
+ | Option | Argument | Default | Description |
1594
+ |---|---|---|---|
1595
+ | `--port` | `<port>` | the server's own port list | Port passed through to `serve.py` |
1596
+
1597
+ - Honors `--dry-run`: prints `python3 ops/docs-site/serve.py` (and `--port <port>` when given) and does not start the process. JSON key: `detail`.
1598
+ - Errors (exit 1): `project_required`, `docs_server_missing` when `ops/docs-site/serve.py` is absent.
1599
+
1600
+ ```bash
1601
+ kxm docs build --dry-run --json
1602
+ ```
1603
+
1604
+ ```text
1605
+ {"schema":"kxm.cli-result.v1","ok":true,"command":"docs build","dryRun":true,"detail":"node plans/kxm-roadmap/update-dashboard.mjs"}
1606
+ ```
1607
+
1608
+ ```bash
1609
+ kxm docs serve --dry-run --json
1610
+ ```
1611
+
1612
+ ```text
1613
+ {"schema":"kxm.cli-result.v1","ok":true,"command":"docs serve","dryRun":true,"detail":"python3 ops/docs-site/serve.py"}
1614
+ ```
1615
+
1616
+ A live `kxm docs serve` runs until the server exits. Not run for this page.
1617
+
1565
1618
  ## `kxm run`
1566
1619
 
1567
1620
  ```text
@@ -0,0 +1,44 @@
1
+ User-agent: *
2
+ Disallow: /
3
+
4
+ User-agent: GPTBot
5
+ Disallow: /
6
+
7
+ User-agent: ChatGPT-User
8
+ Disallow: /
9
+
10
+ User-agent: Google-Extended
11
+ Disallow: /
12
+
13
+ User-agent: Googlebot
14
+ Disallow: /
15
+
16
+ User-agent: Bingbot
17
+ Disallow: /
18
+
19
+ User-agent: ClaudeBot
20
+ Disallow: /
21
+
22
+ User-agent: anthropic-ai
23
+ Disallow: /
24
+
25
+ User-agent: CCBot
26
+ Disallow: /
27
+
28
+ User-agent: Bytespider
29
+ Disallow: /
30
+
31
+ User-agent: Amazonbot
32
+ Disallow: /
33
+
34
+ User-agent: PerplexityBot
35
+ Disallow: /
36
+
37
+ User-agent: Applebot-Extended
38
+ Disallow: /
39
+
40
+ User-agent: meta-externalagent
41
+ Disallow: /
42
+
43
+ User-agent: cohere-ai
44
+ Disallow: /
@@ -0,0 +1,100 @@
1
+ [data-md-color-scheme="slate"] {
2
+ --md-primary-fg-color: #3068da;
3
+ --md-primary-fg-color--light: color-mix(in srgb, #3068da 65%, #f2eee7);
4
+ --md-primary-fg-color--dark: color-mix(in srgb, #3068da 70%, #0e0d0b);
5
+ --md-primary-bg-color: #f2eee7;
6
+ --md-primary-bg-color--light: color-mix(in srgb, #f2eee7 70%, transparent);
7
+ --md-accent-fg-color: #3068da;
8
+ --md-accent-fg-color--transparent: color-mix(in srgb, #3068da 12%, transparent);
9
+ --md-accent-bg-color: #0e0d0b;
10
+ --md-accent-bg-color--light: color-mix(in srgb, #0e0d0b 70%, transparent);
11
+ --md-default-bg-color: #0e0d0b;
12
+ --md-default-fg-color: #f2eee7;
13
+ --md-default-fg-color--light: color-mix(in srgb, #f2eee7 62%, #0e0d0b);
14
+ --md-default-fg-color--lighter: color-mix(in srgb, #f2eee7 40%, #0e0d0b);
15
+ --md-default-fg-color--lightest: color-mix(in srgb, #f2eee7 14%, #0e0d0b);
16
+ --md-code-bg-color: color-mix(in srgb, #f2eee7 8%, #0e0d0b);
17
+ --md-code-fg-color: #f2eee7;
18
+ --md-footer-bg-color: #0e0d0b;
19
+ --md-footer-fg-color: #f2eee7;
20
+ --md-footer-fg-color--light: color-mix(in srgb, #f2eee7 62%, #0e0d0b);
21
+ --md-typeset-a-color: #3068da;
22
+ --md-mermaid-edge-color: #3068da;
23
+ --md-mermaid-node-bg-color: color-mix(in srgb, #3068da 12%, #0e0d0b);
24
+ --md-mermaid-node-fg-color: #3068da;
25
+ --md-mermaid-label-bg-color: #0e0d0b;
26
+ --md-mermaid-label-fg-color: #f2eee7;
27
+ --md-mermaid-sequence-actor-border-color: #3068da;
28
+ --md-mermaid-sequence-message-line-color: #3068da;
29
+ --md-mermaid-sequence-number-bg-color: #3068da;
30
+ }
31
+
32
+ .md-header,
33
+ .md-tabs {
34
+ background-color: #0e0d0b;
35
+ color: #f2eee7;
36
+ }
37
+
38
+ .md-header__button.md-logo {
39
+ display: inline-block;
40
+ }
41
+
42
+ .md-header__button.md-logo img {
43
+ height: 1.6rem;
44
+ width: auto;
45
+ }
46
+
47
+ .md-typeset .grid.cards > ul > li,
48
+ .md-typeset .admonition,
49
+ .md-typeset details {
50
+ background-color: color-mix(in srgb, #f2eee7 8%, #0e0d0b);
51
+ border-color: color-mix(in srgb, #f2eee7 16%, #0e0d0b);
52
+ }
53
+
54
+ .md-typeset .kxm-diagram {
55
+ position: relative;
56
+ background: color-mix(in srgb, #f2eee7 8%, #0e0d0b);
57
+ border: 1px solid color-mix(in srgb, #f2eee7 16%, #0e0d0b);
58
+ border-radius: 8px;
59
+ padding: 1rem;
60
+ }
61
+
62
+ .md-typeset .mermaid svg {
63
+ max-width: 100%;
64
+ height: auto;
65
+ }
66
+
67
+ .md-typeset .kxm-fs {
68
+ position: absolute;
69
+ top: 0.5rem;
70
+ right: 0.5rem;
71
+ z-index: 2;
72
+ background: #0e0d0b;
73
+ color: #3068da;
74
+ border: 1px solid #3068da;
75
+ border-radius: 4px;
76
+ padding: 0.25rem 0.6rem;
77
+ cursor: pointer;
78
+ }
79
+
80
+ .md-typeset .kxm-diagram:fullscreen,
81
+ .md-typeset .kxm-diagram.kxm-fs-open,
82
+ .md-typeset .mermaid:fullscreen,
83
+ .md-typeset .mermaid.kxm-fs-open {
84
+ background: #0e0d0b;
85
+ width: 100vw;
86
+ height: 100vh;
87
+ margin: 0;
88
+ box-sizing: border-box;
89
+ overflow: auto;
90
+ }
91
+
92
+ .md-typeset .kxm-diagram:fullscreen svg,
93
+ .md-typeset .kxm-diagram.kxm-fs-open svg,
94
+ .md-typeset .mermaid:fullscreen svg,
95
+ .md-typeset .mermaid.kxm-fs-open svg {
96
+ width: 100%;
97
+ height: 100%;
98
+ max-width: 100vw;
99
+ max-height: 100vh;
100
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kontextmind/kxm",
3
- "version": "0.7.122",
3
+ "version": "0.7.123",
4
4
  "description": "KXM local-first multi-agent orchestration and operator dashboard",
5
5
  "type": "module",
6
6
  "author": "KontextMind",
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
3
3
  "name": "kxm",
4
4
  "displayName": "KXM",
5
- "version": "0.7.122",
5
+ "version": "0.7.123",
6
6
  "description": "Headless multi-agent orchestration, durable workflows, and a live operator dashboard for Pi and Claude Code",
7
7
  "author": {
8
8
  "name": "KontextMind",