@kontextmind/kxm 0.7.121 → 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.
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +18 -0
- package/docs/architecture/access-schema.yaml +60 -0
- package/docs/architecture/access.md +33 -0
- package/docs/architecture/agent-path.md +36 -0
- package/docs/architecture/authentication.md +29 -0
- package/docs/architecture/hosted-direction.md +59 -0
- package/docs/architecture/index.md +19 -0
- package/docs/architecture/inventory.md +38 -0
- package/docs/architecture/platform.md +48 -0
- package/docs/assets/logo.png +0 -0
- package/docs/contributing/assignment-runner.md +25 -22
- package/docs/guides/agent-skills.md +1 -1
- package/docs/index.md +56 -0
- package/docs/javascripts/mermaid-init.js +83 -0
- package/docs/javascripts/mermaid.min.js +4376 -0
- package/docs/reference/cli-reference.md +148 -3
- package/docs/robots.txt +44 -0
- package/docs/stylesheets/extra.css +100 -0
- package/package.json +1 -1
- package/plugins/kxm/.claude-plugin/plugin.json +1 -1
- package/plugins/kxm/dist/cli.js +418 -184
- package/plugins/kxm/dist/mcp-server.js +1 -1
- package/plugins/kxm/package.json +1 -1
- package/plugins/kxm/skills/kxm/SKILL.md +1 -1
- package/plugins/kxm/skills/kxm-runs/SKILL.md +16 -1
- package/plugins/kxm/src/cli/assign.ts +144 -0
- package/plugins/kxm/src/cli/docs.ts +78 -0
- package/plugins/kxm/src/cli.ts +85 -0
- package/plugins/kxm/src/mcp-server.ts +1 -1
- package/schemas/roadmap-state.schema.json +147 -0
|
@@ -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), [`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
|
|
|
@@ -159,6 +159,7 @@ Exit 2 covers an unknown command or option, a missing argument or required optio
|
|
|
159
159
|
| Create and drive a run | [`kxm run`](#kxm-run), [`kxm runs drive`](#kxm-runs-drive), [`kxm runtime status`](#kxm-runtime-status) |
|
|
160
160
|
| Work in an isolated checkout | [`kxm lane`](#kxm-lane), [`kxm run --lane`](#kxm-run) |
|
|
161
161
|
| Land the current branch | [`kxm land`](#kxm-land) |
|
|
162
|
+
| Delegate and accept a developer assignment | [`kxm assign`](#kxm-assign) |
|
|
162
163
|
| Inspect runs | [`kxm runs list`](#kxm-runs-list), [`kxm runs status`](#kxm-runs-status), [`kxm runs receipt`](#kxm-runs-receipt), [`kxm tenant status`](#kxm-tenant-status), [`kxm workflow list`](#kxm-workflow-list) |
|
|
163
164
|
| Message peers | [`kxm peer list`](#kxm-peer-list), [`kxm peer send`](#kxm-peer-send), [`kxm peer await`](#kxm-peer-await), [`kxm peer fanout`](#kxm-peer-fanout) |
|
|
164
165
|
| Operate gates and evidence | [`kxm gate validate`](#kxm-gate-validate), [`kxm gate artifacts-exist`](#kxm-gate-artifacts-exist), [`kxm gate signal`](#kxm-gate-signal), [`kxm workflow checkpoint`](#kxm-workflow-checkpoint) |
|
|
@@ -1470,6 +1471,150 @@ Outside a KXM project the command refuses `project_required` (exit 1). Unknown a
|
|
|
1470
1471
|
|
|
1471
1472
|
Refusals (exit 1): `project_required`, `land_dirty_tree`, `land_verify_failed`, `land_docs_failed`, `land_push_rejected`, `land_pr_body_missing`, `land_conflict_manual`, `land_blocked`, `land_merge_failed`, `land_release_failed`, `land_publish_timeout`, `land_milestone_failed`.
|
|
1472
1473
|
|
|
1474
|
+
## `kxm assign`
|
|
1475
|
+
|
|
1476
|
+
`kxm assign` is the entry to this repository's developer assignment runner. Each verb spawns `node scripts/assignment-run.mjs <verb> ...` from the project root with that argument list, `stdio: "inherit"`, and the process environment unchanged. The command returns the child's exit code. It does not load a `.env` file, resolve paths, or repeat any runner check. Every validation rule, refusal code, and file the runner writes stays in [`scripts/assignment-run.mjs`](../../scripts/assignment-run.mjs). The loop, the records, and those codes are documented in [Assignment runner](../contributing/assignment-runner.md).
|
|
1477
|
+
|
|
1478
|
+
The command does not start the hub or the Runtime supervisor. It writes nothing itself. `--dry-run` prints the argv that would run and exits 0 without spawning. `--json` formats this command's own refusals and that dry-run plan. The runner's usage text documents no `--json` flag, and `accept` already prints JSON, so `--json` is not forwarded.
|
|
1479
|
+
|
|
1480
|
+
Outside a KXM project the command exits 1 with `project_required`. A project that has no `scripts/assignment-run.mjs` exits 1 with `assign_runner_missing`. A missing required flag is a usage error and exits 2. If `node` cannot be started, the command exits 1 with `assign_spawn_failed`.
|
|
1481
|
+
|
|
1482
|
+
```text
|
|
1483
|
+
kxm assign run --manifest <path>
|
|
1484
|
+
kxm assign witness --record-dir <path>
|
|
1485
|
+
kxm assign plan-current --task-dir <path> --plan <path> --sha256 <hex> --base-commit <sha> --expected-generation <n>
|
|
1486
|
+
kxm assign attribute --task-dir <path> --record-dir <path> --class <class> --explanation-file <path>
|
|
1487
|
+
kxm assign observe-cost --task-dir <path> --input <path>
|
|
1488
|
+
kxm assign accept --task-dir <path> --commit <sha> --record-dir <path> --critic <path> --critic <path> [--observed-pr <id>] [--observed-ci <id>]
|
|
1489
|
+
kxm assign change-report --task-dir <path>
|
|
1490
|
+
```
|
|
1491
|
+
|
|
1492
|
+
```bash
|
|
1493
|
+
kxm assign run --manifest /abs/tasks/fix-improve-sources/asg-writer-1.json
|
|
1494
|
+
```
|
|
1495
|
+
|
|
1496
|
+
### `kxm assign run`
|
|
1497
|
+
|
|
1498
|
+
Dispatches one closed manifest. The runner validates the route, the base, and the plan pointer, then writes the assignment record.
|
|
1499
|
+
|
|
1500
|
+
| Option | Argument | Description |
|
|
1501
|
+
|---|---|---|
|
|
1502
|
+
| `--manifest` | `<path>` | Absolute path to the `kxm.assignment.v1` manifest. Passed through as given |
|
|
1503
|
+
|
|
1504
|
+
### `kxm assign witness`
|
|
1505
|
+
|
|
1506
|
+
Runs the fixed witness named in the manifest against the staged tree.
|
|
1507
|
+
|
|
1508
|
+
| Option | Argument | Description |
|
|
1509
|
+
|---|---|---|
|
|
1510
|
+
| `--record-dir` | `<path>` | Absolute path to the assignment record directory |
|
|
1511
|
+
|
|
1512
|
+
### `kxm assign plan-current`
|
|
1513
|
+
|
|
1514
|
+
Stamps or advances `plan-current.json` in the task directory.
|
|
1515
|
+
|
|
1516
|
+
| Option | Argument | Description |
|
|
1517
|
+
|---|---|---|
|
|
1518
|
+
| `--task-dir` | `<path>` | Absolute path to the task directory |
|
|
1519
|
+
| `--plan` | `<path>` | Absolute path to the plan file |
|
|
1520
|
+
| `--sha256` | `<hex>` | SHA-256 the runner expects for that file |
|
|
1521
|
+
| `--base-commit` | `<sha>` | Commit the pointer records |
|
|
1522
|
+
| `--expected-generation` | `<n>` | Generation the pointer must currently have |
|
|
1523
|
+
|
|
1524
|
+
### `kxm assign attribute`
|
|
1525
|
+
|
|
1526
|
+
Attaches one private note under the record's `attribution/` directory. The note is not proof.
|
|
1527
|
+
|
|
1528
|
+
| Option | Argument | Description |
|
|
1529
|
+
|---|---|---|
|
|
1530
|
+
| `--task-dir` | `<path>` | Absolute path to the task directory |
|
|
1531
|
+
| `--record-dir` | `<path>` | Absolute path to the assignment record directory |
|
|
1532
|
+
| `--class` | `<class>` | `orchestration`, `model`, `environment`, or `unclassified` |
|
|
1533
|
+
| `--explanation-file` | `<path>` | Absolute path to the note file |
|
|
1534
|
+
|
|
1535
|
+
### `kxm assign observe-cost`
|
|
1536
|
+
|
|
1537
|
+
Imports one cost observation. The record is cost-only and cannot authorize acceptance.
|
|
1538
|
+
|
|
1539
|
+
| Option | Argument | Description |
|
|
1540
|
+
|---|---|---|
|
|
1541
|
+
| `--task-dir` | `<path>` | Absolute path to the task directory |
|
|
1542
|
+
| `--input` | `<path>` | Absolute path to the observation file |
|
|
1543
|
+
|
|
1544
|
+
### `kxm assign accept`
|
|
1545
|
+
|
|
1546
|
+
Binds the witnessed commit and two critic records. Optional observation ids are forwarded when present. `accept` prints JSON and takes no `--json` flag.
|
|
1547
|
+
|
|
1548
|
+
| Option | Argument | Description |
|
|
1549
|
+
|---|---|---|
|
|
1550
|
+
| `--task-dir` | `<path>` | Absolute path to the task directory |
|
|
1551
|
+
| `--commit` | `<sha>` | Commit whose tree must equal the witnessed tree |
|
|
1552
|
+
| `--record-dir` | `<path>` | Absolute path to the writer record directory |
|
|
1553
|
+
| `--critic` | `<path>` | Absolute path to a critic record directory. Pass it twice |
|
|
1554
|
+
| `--observed-pr` | `<id>` | Observed pull request id. Omitted unless set |
|
|
1555
|
+
| `--observed-ci` | `<id>` | Observed CI run id. Omitted unless set |
|
|
1556
|
+
|
|
1557
|
+
### `kxm assign change-report`
|
|
1558
|
+
|
|
1559
|
+
Prints the task's attempts, rework, and spend. The runner keeps provider-reported, list, unmetered, and unknown cost apart.
|
|
1560
|
+
|
|
1561
|
+
| Option | Argument | Description |
|
|
1562
|
+
|---|---|---|
|
|
1563
|
+
| `--task-dir` | `<path>` | Absolute path to the task directory |
|
|
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
|
+
|
|
1473
1618
|
## `kxm run`
|
|
1474
1619
|
|
|
1475
1620
|
```text
|
package/docs/robots.txt
ADDED
|
@@ -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
|
@@ -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.
|
|
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",
|