@kontextmind/kxm 0.6.0 → 0.7.0
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/.kxm/agents/coordinator.yaml +9 -0
- package/.kxm/agents/critic-arch.yaml +13 -0
- package/.kxm/agents/critic-cli.yaml +13 -0
- package/.kxm/agents/implementer.yaml +13 -0
- package/.kxm/gates.yaml +8 -0
- package/.kxm/producers.yaml +22 -0
- package/.kxm/project.yaml +15 -0
- package/.kxm/roles/writer.yaml +5 -0
- package/.kxm/workflows/default.yaml +47 -0
- package/CHANGELOG.md +39 -7
- package/README.md +1 -0
- package/docs/README.md +2 -0
- package/docs/agent-skills.md +118 -0
- package/docs/architecture.md +1 -1
- package/docs/assignment-runner.md +21 -8
- package/docs/configuration.md +2 -2
- package/docs/kxm-handbook.md +3 -3
- package/docs/operator-pi-packages.md +63 -0
- package/docs/skills/repo-work-delivery.md +102 -0
- package/docs/test-matrix.md +4 -3
- package/docs/troubleshooting.md +19 -0
- package/docs/vnext/validation.md +9 -0
- package/docs/webhook-workflows.md +2 -2
- package/examples/README.md +1 -1
- package/package.json +16 -17
- package/plugins/kxm/.claude-plugin/plugin.json +1 -1
- package/plugins/kxm/README.md +1 -1
- package/plugins/kxm/dist/cli.js +6875 -3672
- package/plugins/kxm/dist/core.js +214 -34
- package/plugins/kxm/dist/extension.js +7721 -85
- package/plugins/kxm/dist/mcp-server.js +75 -21
- package/plugins/kxm/dist/runtime.js +5403 -1014
- package/plugins/kxm/dist/server.js +3008 -2268
- package/plugins/kxm/dist/vnext-runtime-supervisor.js +5751 -631
- package/plugins/kxm/package.json +1 -1
- package/plugins/kxm/skills/SUITE.md +5 -0
- package/plugins/kxm/skills/hints.json +73 -0
- package/plugins/kxm/skills/kxm/SKILL.md +30 -83
- package/plugins/kxm/skills/kxm-context-memory/SKILL.md +69 -0
- package/plugins/kxm/skills/kxm-definitions/SKILL.md +65 -0
- package/plugins/kxm/skills/kxm-harness-auth/SKILL.md +34 -0
- package/plugins/kxm/skills/kxm-harvest/SKILL.md +48 -0
- package/plugins/kxm/skills/kxm-hub-ops/SKILL.md +34 -0
- package/plugins/kxm/skills/kxm-insights/SKILL.md +48 -0
- package/plugins/kxm/skills/kxm-mind/SKILL.md +59 -0
- package/plugins/kxm/skills/kxm-peer/SKILL.md +110 -0
- package/plugins/kxm/skills/kxm-project-setup/SKILL.md +35 -0
- package/plugins/kxm/skills/kxm-projects/SKILL.md +43 -0
- package/plugins/kxm/skills/kxm-protocol/SKILL.md +66 -0
- package/plugins/kxm/skills/kxm-query/SKILL.md +45 -0
- package/plugins/kxm/skills/kxm-routing-improve/SKILL.md +30 -0
- package/plugins/kxm/skills/kxm-runs/SKILL.md +29 -0
- package/plugins/kxm/skills/kxm-setup/SKILL.md +55 -0
- package/plugins/kxm/skills/kxm-skill-lifecycle/SKILL.md +31 -0
- package/plugins/kxm/skills/kxm-tasks/SKILL.md +33 -0
- package/plugins/kxm/skills/kxm-triage/SKILL.md +47 -0
- package/plugins/kxm/skills/kxm-work/SKILL.md +44 -0
- package/plugins/kxm/skills/kxm-workflow/SKILL.md +45 -0
- package/plugins/kxm/src/autocomplete.ts +9 -3
- package/plugins/kxm/src/cli.ts +1077 -11
- package/plugins/kxm/src/commands.ts +150 -8
- package/plugins/kxm/src/config.ts +7 -4
- package/plugins/kxm/src/context-packet.ts +172 -0
- package/plugins/kxm/src/extension.ts +36 -1
- package/plugins/kxm/src/external-effects.ts +356 -7
- package/plugins/kxm/src/hub.ts +2 -4
- package/plugins/kxm/src/improve.ts +72 -0
- package/plugins/kxm/src/mcp-server.ts +1 -1
- package/plugins/kxm/src/model-inventory.ts +127 -0
- package/plugins/kxm/src/policy-draft.d.mts +55 -0
- package/plugins/kxm/src/policy-draft.mjs +565 -0
- package/plugins/kxm/src/price-calc.ts +17 -18
- package/plugins/kxm/src/prices.ts +32 -16
- package/plugins/kxm/src/producers.ts +71 -0
- package/plugins/kxm/src/restricted-yaml.d.mts +31 -0
- package/plugins/kxm/src/restricted-yaml.mjs +145 -0
- package/plugins/kxm/src/role.ts +375 -0
- package/plugins/kxm/src/routing.ts +99 -1
- package/plugins/kxm/src/session-work.ts +9 -2
- package/plugins/kxm/src/studio-layout.ts +660 -17
- package/plugins/kxm/src/suggest.ts +7 -13
- package/plugins/kxm/src/telemetry.ts +82 -0
- package/plugins/kxm/src/tui.ts +140 -0
- package/plugins/kxm/src/vnext-config.ts +15 -110
- package/plugins/kxm/src/vnext-engine.ts +198 -62
- package/plugins/kxm/src/vnext-harness.ts +263 -81
- package/plugins/kxm/src/vnext-oneshot-evidence.ts +85 -0
- package/plugins/kxm/src/vnext-oneshot-process.ts +149 -0
- package/plugins/kxm/src/vnext-oneshot-producer.ts +170 -233
- package/plugins/kxm/src/vnext-runtime-store.ts +35 -1
- package/plugins/kxm/src/vnext-runtime-supervisor.ts +120 -5
- package/plugins/kxm/src/vnext-runtime.ts +14 -0
- package/plugins/kxm/src/workflow-manager.ts +392 -0
- package/plugins/kxm/src/workflow-tui.ts +255 -0
- package/schemas/policy-draft/README.md +17 -0
- package/schemas/policy-draft/model.v2.schema.json +140 -0
- package/schemas/policy-draft/role.v2.schema.json +91 -0
- package/schemas/vnext/role.schema.json +76 -0
- package/schemas/vnext/run-event.schema.json +1 -0
- package/scripts/assignment-run.d.mts +1 -1
- package/scripts/assignment-run.mjs +44 -35
- package/scripts/check-generated.mjs +33 -9
- package/scripts/emit-codex-artifacts.mjs +255 -11
- package/scripts/harness-run.d.mts +12 -4
- package/scripts/harness-run.mjs +65 -17
- package/scripts/kxm-hub.mjs +6 -0
- package/scripts/native-critic.d.mts +5 -0
- package/scripts/native-critic.mjs +60 -0
- package/.kxm/config/README.md +0 -5
- package/.kxm/config/agents.json +0 -43
- package/.kxm/config/env.example +0 -56
- package/.kxm/config/update.example.yaml +0 -9
- package/.kxm/config/workflows/fix.json +0 -160
- package/.kxm/config/workflows/jira-development.json +0 -116
- package/.kxm/config/workflows/provenance-quorum.json +0 -150
- package/.kxm/config/workflows/v04-dogfood.json +0 -72
package/docs/test-matrix.md
CHANGED
|
@@ -78,13 +78,14 @@ exercised from `node_modules`.
|
|
|
78
78
|
| Non-blocking delegation | `examples/README.md` | Uses send, independent work, and get |
|
|
79
79
|
| Obsolete-work cancellation | `examples/README.md` | Uses cancel and states rollback boundary |
|
|
80
80
|
| Safe network retry | `examples/README.md` | Uses stable idempotency keys |
|
|
81
|
-
| Jira issue-to-merge workflow | `.kxm/
|
|
81
|
+
| Jira issue-to-merge workflow | `.kxm/workflows/default.yaml` | Parsed, type-checked through workflow tests, and exercised end to end with representative configuration |
|
|
82
82
|
| `.kxm` workspace defaults and persisted hub/worker logs | `.kxm/`, `test/core/server.test.ts`, `test/core/worker.test.ts` | Executed with isolated temporary workspaces |
|
|
83
83
|
| Signed external result callback | `examples/workflow-signal.ts` | Type-checked; equivalent signed callback path is exercised end to end in `test/core/hub-api.test.ts` |
|
|
84
|
-
| Peer provenance and optional explicit degradation | `examples/provenance-workflow.json`, `.kxm/
|
|
84
|
+
| Peer provenance and optional explicit degradation | `examples/provenance-workflow.json`, `.kxm/workflows/default.yaml`, `docs/provenance-gates.md` | Both definitions are parser-checked in `test/core/examples.test.ts`; adversarial evidence and degradation behavior is automated in `test/core/workflow-provenance.test.ts` |
|
|
85
85
|
| Quorum parser boundaries and definition identity | `plugins/kxm/src/workflow.ts`, `test/core/workflow-quorum.test.ts`, `test/core/workflow-definition-hash.test.ts` | Rejects impossible peer pools, verifies degradation bounds, and proves secret-free semantic hash stamping plus credential-rotation invariance |
|
|
86
86
|
| Artifact existence and containment gate | `plugins/kxm/src/artifacts-exist.ts`, `test/core/artifacts-exist.test.ts` | Non-empty regular files pass; missing, empty, non-file, lexical escape, and real-path escape cases fail closed (host-permitted symlink coverage) |
|
|
87
|
-
|
|
|
87
|
+
| Harness inventory probe | `plugins/kxm/src/vnext-harness.ts`, `test/core/vnext-harness.test.ts` | Detect/auth/dispatch for the builtin catalog; win32 `.exe` / inner npm-package `.exe` / `.cmd` candidate order for npm shims (issue #168); `windows_shim` issue only when the shim answered; allowlisted `name.cmd` shell spawn only; rejected metacharacter commands; Linux still `not_detected` when the bare command is missing. |
|
|
88
|
+
| Headless harness helper | `scripts/harness-run.mjs`, `justfile`, `test/core/harness-run.test.ts` | Offline auth success/logout/garbage, role/mode/pair/provider refusals before spawn, missing brief/schema fail closed with zero spawn, invocation-cwd relative `prompt_file`/`output_schema` vs `request.cwd` (absolute argv tokens; Claude/Codex stdin matches the brief), Pi JSONL multi-`message_end` sums, Claude auxiliary usage, native error-on-exit-0, timeout/empty payload, sidecar-only stderr/answer/error, shell:false argv metacharacters, win32 `.cmd` rejection, and win32 npm inner `claude.exe` / Pi `node.exe`+`cli.js` unwrap. Result v2 transport vs closed model claims, dispatch-before-spawn, grok/codex isolation flags, `max_turns` validation, obsolete v1 diagnosis without rewrite or unknown-schema echo, partial usage on fail/interrupt, signaled null `exitCode` plus exact `signal`, exit-before-stdio-close drain vs bounded linger, type-closed usage/cost (no object leak or zero-coercion), malformed optional text as run-stage failure with retained spend, stdin/pid-record write failures not completed, bounded timeout settle without descendant-death claims, spawn/write-failure stage and spend, and capability-fixture parser evidence (Codex `--ignore-user-config` is not invented in top-level help; captured help bytes are not rescrubbed). Recipe quoting is covered from the justfile body without a just binary (POSIX `sh` + positional argv; Windows uses the recipe's `node -e` / argv shape). Real just integration is optional and skipped when the binary is absent. No live paid smoke. |
|
|
88
89
|
| Long-lived headless coordinator | `scripts/kxm-worker.mjs` | Restart limits, spawn failure, collision-resistant ownership, exact resource and tool loading, raw-output isolation, bounded RPC framing, bounded drain, hung-tool recovery, provider/model fallback, and `--continue` fallback are automated; the opt-in real-Pi gate verifies two workers, discovery, request/reply, fanout, durable restart/resume, journal, and checkpoint |
|
|
89
90
|
| GitHub check signal adapter | `plugins/kxm/src/github-watch.ts` | Deterministic pagination, conclusion, retry, and per-wait delivery-generation states in `test/core/github-watch.test.ts` |
|
|
90
91
|
| Operator CLI | `scripts/kxm.mjs` | Isolated workspace commands in `test/core/cli.test.ts`; the packed artifact is installed locally and with the documented global `--omit=peer` path by `test/core/package-install.test.ts` |
|
package/docs/troubleshooting.md
CHANGED
|
@@ -52,6 +52,25 @@ Do not delete or rewrite the database. Start the package version that created it
|
|
|
52
52
|
|
|
53
53
|
Another process owns the port. Stop that process or choose another port, then update every agent's `KXM_SERVER_URL`.
|
|
54
54
|
|
|
55
|
+
### `kxm harness list` says Claude Code is `not_detected` on Windows
|
|
56
|
+
|
|
57
|
+
npm installs Claude Code as `claude.cmd` (and an extensionless shim), not
|
|
58
|
+
`claude.exe` on `PATH`. The native binary lives next to the shim at
|
|
59
|
+
`%AppData%\Roaming\npm\node_modules\@anthropic-ai\claude-code\bin\claude.exe`.
|
|
60
|
+
Older probes spawned `claude` without a shell, got `ENOENT` or `EINVAL`, and
|
|
61
|
+
reported the CLI missing even when `claude --version` worked in cmd or Git Bash.
|
|
62
|
+
|
|
63
|
+
Current `kxm harness list` retries `claude.exe`, then that inner package
|
|
64
|
+
`.exe`, then `claude.cmd` on win32. It sets `issues: ["windows_shim"]` only
|
|
65
|
+
when the npm shim is what answered. If the entry is still `not_detected`,
|
|
66
|
+
confirm `%AppData%\Roaming\npm` is on `PATH` for the same process that runs
|
|
67
|
+
`kxm`, then `claude --version` and `claude auth status`. Assignment dispatch
|
|
68
|
+
(`just assign` / `harness-run`) follows the inner `claude.exe` (and Pi's
|
|
69
|
+
`node.exe` plus `cli.js`) with `shell: false`; unverified `.cmd` launchers
|
|
70
|
+
are still refused.
|
|
71
|
+
|
|
72
|
+
The same npm-shim miss can appear for `pi` on Windows.
|
|
73
|
+
|
|
55
74
|
### Pi shows `hub:off`
|
|
56
75
|
|
|
57
76
|
- Confirm the hub is reachable from the Pi terminal.
|
package/docs/vnext/validation.md
CHANGED
|
@@ -22,6 +22,15 @@ The `schema` field is required. For agent, model, and workflow files, identity i
|
|
|
22
22
|
the normalized filename without `.yaml`; an in-document identity field is
|
|
23
23
|
forbidden.
|
|
24
24
|
|
|
25
|
+
The shared implementation is `plugins/kxm/src/restricted-yaml.mjs`. Public
|
|
26
|
+
`vnext-config` callers still receive `VnextConfigError` issue codes, paths, and
|
|
27
|
+
messages.
|
|
28
|
+
|
|
29
|
+
`schemas/policy-draft` (`kxm.model.v2`, `kxm.role.v2`) and
|
|
30
|
+
`validatePolicyDraft` are non-authoritative scaffolding. They are not live
|
|
31
|
+
registry identities, operator settings, or admission. Live model files remain
|
|
32
|
+
`kxm.model.v1` under `schemas/vnext`.
|
|
33
|
+
|
|
25
34
|
## Validation pipeline
|
|
26
35
|
|
|
27
36
|
### 1. Parse validation
|
|
@@ -21,7 +21,7 @@ The hub stores a SHA-256 payload hash and the rendered coordinator prompt, not t
|
|
|
21
21
|
|
|
22
22
|
## Configure the Jira example
|
|
23
23
|
|
|
24
|
-
The included [`jira-development.json`](../.kxm/
|
|
24
|
+
The included [`jira-development.json`](../.kxm/workflows/default.yaml) workspace configuration models this path:
|
|
25
25
|
|
|
26
26
|
1. Jira issue enters **In Progress**.
|
|
27
27
|
2. Reproduce the defect and create deterministic evidence.
|
|
@@ -41,7 +41,7 @@ Load it without storing its secret in the JSON file:
|
|
|
41
41
|
```powershell
|
|
42
42
|
$env:JIRA_WEBHOOK_SECRET = "replace-with-a-high-entropy-secret"
|
|
43
43
|
$env:WORKFLOW_SIGNAL_SECRET = "replace-with-a-separate-callback-secret"
|
|
44
|
-
$env:KXM_WEBHOOK_WORKFLOWS_FILE = ".kxm/
|
|
44
|
+
$env:KXM_WEBHOOK_WORKFLOWS_FILE = ".kxm/workflows/default.yaml"
|
|
45
45
|
kxm hub start
|
|
46
46
|
```
|
|
47
47
|
|
package/examples/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
These examples demonstrate the transport without requiring an AI model. Run them from the repository root after `npm ci`.
|
|
4
4
|
|
|
5
|
-
The [`.kxm/
|
|
5
|
+
The [`.kxm/workflows/default.yaml`](../.kxm/workflows/default.yaml) workspace configuration is a production-oriented definition for a long-lived coordinator. It covers reproduction, single-agent or three-agent planning, plan review, implementation, local and repository gates, documentation, push/watch retries, merge, Jira update, and continuous improvement. Follow [Webhook workflows](../docs/webhook-workflows.md) to configure it.
|
|
6
6
|
|
|
7
7
|
The [`workflow-signal.ts`](workflow-signal.ts) sender demonstrates the signed callback that resumes a coordinator after CI, review, merge, or Jira work completes. The webhook guide documents its required environment and arguments.
|
|
8
8
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kontextmind/kxm",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "KXM local-first multi-agent orchestration and operator dashboard",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "KontextMind",
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
"test:simulations": "npm run build && node --disable-warning=ExperimentalWarning --experimental-strip-types --test --test-concurrency=4 test/simulations/*.test.ts",
|
|
39
39
|
"test:complete": "npm run build && node --disable-warning=ExperimentalWarning --experimental-strip-types --test --test-concurrency=4 test/core/*.test.ts test/simulations/*.test.ts",
|
|
40
40
|
"test": "npm run test:core",
|
|
41
|
-
"test:coverage:core": "npm run build && node --disable-warning=ExperimentalWarning --experimental-strip-types --test --test-concurrency=4 --experimental-test-coverage --test-coverage-lines=
|
|
42
|
-
"test:coverage:complete": "npm run build && node --disable-warning=ExperimentalWarning --experimental-strip-types --test --test-concurrency=4 --experimental-test-coverage --test-coverage-lines=93 --test-coverage-branches=80 --test-coverage-functions=93 --test-coverage-include=plugins/kxm/src/**/*.ts --test-coverage-exclude=plugins/kxm/src/server.ts --test-coverage-exclude=plugins/kxm/src/mcp-server.ts test/core/*.test.ts test/simulations/*.test.ts",
|
|
41
|
+
"test:coverage:core": "npm run build && node --disable-warning=ExperimentalWarning --experimental-strip-types --test --test-concurrency=4 --experimental-test-coverage --test-coverage-lines=91 --test-coverage-branches=80 --test-coverage-functions=92 --test-coverage-include=plugins/kxm/src/**/*.ts --test-coverage-exclude=plugins/kxm/src/server.ts --test-coverage-exclude=plugins/kxm/src/mcp-server.ts --test-coverage-exclude=plugins/kxm/src/vnext-runtime-supervisor.ts test/core/*.test.ts",
|
|
42
|
+
"test:coverage:complete": "npm run build && node --disable-warning=ExperimentalWarning --experimental-strip-types --test --test-concurrency=4 --experimental-test-coverage --test-coverage-lines=93 --test-coverage-branches=80 --test-coverage-functions=93 --test-coverage-include=plugins/kxm/src/**/*.ts --test-coverage-exclude=plugins/kxm/src/server.ts --test-coverage-exclude=plugins/kxm/src/mcp-server.ts --test-coverage-exclude=plugins/kxm/src/vnext-runtime-supervisor.ts test/core/*.test.ts test/simulations/*.test.ts",
|
|
43
43
|
"test:coverage": "npm run test:coverage:core",
|
|
44
44
|
"typecheck": "tsc --noEmit",
|
|
45
45
|
"lint:docs": "markdownlint-cli2",
|
|
@@ -82,29 +82,27 @@
|
|
|
82
82
|
}
|
|
83
83
|
},
|
|
84
84
|
"devDependencies": {
|
|
85
|
-
"@earendil-works/pi-coding-agent": "0.
|
|
85
|
+
"@earendil-works/pi-coding-agent": "0.85.1",
|
|
86
86
|
"@modelcontextprotocol/sdk": "1.30.0",
|
|
87
|
-
"@types/node": "26.4.
|
|
87
|
+
"@types/node": "26.4.1",
|
|
88
88
|
"ajv": "8.20.0",
|
|
89
89
|
"commander": "15.0.0",
|
|
90
90
|
"esbuild": "0.28.2",
|
|
91
91
|
"markdownlint-cli2": "0.23.2",
|
|
92
|
-
"
|
|
93
|
-
"
|
|
94
|
-
"
|
|
92
|
+
"tsx": "^4.23.13",
|
|
93
|
+
"typebox": "1.3.28",
|
|
94
|
+
"typescript": "7.0.2"
|
|
95
95
|
},
|
|
96
96
|
"files": [
|
|
97
97
|
".kxm/README.md",
|
|
98
98
|
".kxm/assets/README.md",
|
|
99
99
|
".kxm/assets/retrospectives/README.md",
|
|
100
|
-
".kxm/
|
|
101
|
-
".kxm/
|
|
102
|
-
".kxm/
|
|
103
|
-
".kxm/
|
|
104
|
-
".kxm/
|
|
105
|
-
".kxm/
|
|
106
|
-
".kxm/config/workflows/fix.json",
|
|
107
|
-
".kxm/config/workflows/provenance-quorum.json",
|
|
100
|
+
".kxm/project.yaml",
|
|
101
|
+
".kxm/gates.yaml",
|
|
102
|
+
".kxm/producers.yaml",
|
|
103
|
+
".kxm/agents/*.yaml",
|
|
104
|
+
".kxm/roles/*.yaml",
|
|
105
|
+
".kxm/workflows/*.yaml",
|
|
108
106
|
".claude-plugin",
|
|
109
107
|
"plugins/kxm/.claude-plugin",
|
|
110
108
|
"plugins/kxm/.mcp.json",
|
|
@@ -124,6 +122,7 @@
|
|
|
124
122
|
],
|
|
125
123
|
"license": "MIT",
|
|
126
124
|
"dependencies": {
|
|
127
|
-
"@earendil-works/pi-tui": "0.
|
|
125
|
+
"@earendil-works/pi-tui": "0.85.1",
|
|
126
|
+
"yaml": "^2.9.0"
|
|
128
127
|
}
|
|
129
128
|
}
|
|
@@ -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.
|
|
5
|
+
"version": "0.7.0",
|
|
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",
|
package/plugins/kxm/README.md
CHANGED
|
@@ -39,7 +39,7 @@ Configure the hub URL, token, unique agent name, purpose, and project when promp
|
|
|
39
39
|
| `kxm_workflow_record` | Capture a plan, decision, contradiction, error, or lesson |
|
|
40
40
|
| `kxm_improvement_report` | Group learning evidence by improvement area |
|
|
41
41
|
|
|
42
|
-
The bundled `kxm` skill teaches Claude when and how to use these tools safely.
|
|
42
|
+
The bundled `kxm` skill teaches Claude when and how to use these tools safely. For the complete KXM Agent Skills suite covering all KXM commands, see the [Agent Skills documentation](../../docs/agent-skills.md).
|
|
43
43
|
|
|
44
44
|
Signed webhooks can create durable workflows for long-lived Pi coordinators. See the repository's [Webhook workflows](../../docs/webhook-workflows.md) guide and Jira development example.
|
|
45
45
|
|