@kya-os/cli 1.5.9 → 1.6.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.
Files changed (54) hide show
  1. package/dist/commands/dco.d.ts +18 -0
  2. package/dist/commands/dco.d.ts.map +1 -0
  3. package/dist/commands/dco.js +107 -0
  4. package/dist/commands/dco.js.map +1 -0
  5. package/dist/commands/init.d.ts +2 -0
  6. package/dist/commands/init.d.ts.map +1 -1
  7. package/dist/commands/init.js +76 -7
  8. package/dist/commands/init.js.map +1 -1
  9. package/dist/commands/register.d.ts +2 -0
  10. package/dist/commands/register.d.ts.map +1 -1
  11. package/dist/commands/register.js +50 -0
  12. package/dist/commands/register.js.map +1 -1
  13. package/dist/index.js +7 -0
  14. package/dist/utils/dco/agent-metadata.d.ts +24 -0
  15. package/dist/utils/dco/agent-metadata.d.ts.map +1 -0
  16. package/dist/utils/dco/agent-metadata.js +46 -0
  17. package/dist/utils/dco/agent-metadata.js.map +1 -0
  18. package/dist/utils/dco/claude-config.d.ts +45 -0
  19. package/dist/utils/dco/claude-config.d.ts.map +1 -0
  20. package/dist/utils/dco/claude-config.js +112 -0
  21. package/dist/utils/dco/claude-config.js.map +1 -0
  22. package/dist/utils/dco/fs-safe.d.ts +14 -0
  23. package/dist/utils/dco/fs-safe.d.ts.map +1 -0
  24. package/dist/utils/dco/fs-safe.js +20 -0
  25. package/dist/utils/dco/fs-safe.js.map +1 -0
  26. package/dist/utils/dco/git-config.d.ts +47 -0
  27. package/dist/utils/dco/git-config.d.ts.map +1 -0
  28. package/dist/utils/dco/git-config.js +159 -0
  29. package/dist/utils/dco/git-config.js.map +1 -0
  30. package/dist/utils/dco/github.d.ts +49 -0
  31. package/dist/utils/dco/github.d.ts.map +1 -0
  32. package/dist/utils/dco/github.js +154 -0
  33. package/dist/utils/dco/github.js.map +1 -0
  34. package/dist/utils/dco/paths.d.ts +16 -0
  35. package/dist/utils/dco/paths.d.ts.map +1 -0
  36. package/dist/utils/dco/paths.js +27 -0
  37. package/dist/utils/dco/paths.js.map +1 -0
  38. package/dist/utils/dco/render.d.ts +4 -0
  39. package/dist/utils/dco/render.d.ts.map +1 -0
  40. package/dist/utils/dco/render.js +52 -0
  41. package/dist/utils/dco/render.js.map +1 -0
  42. package/dist/utils/dco/setup.d.ts +47 -0
  43. package/dist/utils/dco/setup.d.ts.map +1 -0
  44. package/dist/utils/dco/setup.js +740 -0
  45. package/dist/utils/dco/setup.js.map +1 -0
  46. package/dist/utils/dco/ssh-key.d.ts +43 -0
  47. package/dist/utils/dco/ssh-key.d.ts.map +1 -0
  48. package/dist/utils/dco/ssh-key.js +176 -0
  49. package/dist/utils/dco/ssh-key.js.map +1 -0
  50. package/dist/utils/dco/status.d.ts +12 -0
  51. package/dist/utils/dco/status.d.ts.map +1 -0
  52. package/dist/utils/dco/status.js +238 -0
  53. package/dist/utils/dco/status.js.map +1 -0
  54. package/package.json +6 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/utils/dco/setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ export interface SshKeyMaterial {
2
+ /** PEM-armored OpenSSH private key (unencrypted, 0600 it on disk). */
3
+ privateKeyPem: string;
4
+ /** Single-line authorized_keys style public key: "ssh-ed25519 AAAA... comment". */
5
+ publicKeyLine: string;
6
+ /** OpenSSH-style fingerprint: "SHA256:<base64 without padding>". */
7
+ fingerprint: string;
8
+ /** Raw 32-byte public key, base64 encoded (matches identity.json publicKey). */
9
+ publicKeyBase64: string;
10
+ }
11
+ /** Derive the Ed25519 public key from a raw 32-byte seed using Node crypto. */
12
+ export declare function deriveEd25519PublicKey(seed: Buffer): Buffer;
13
+ export declare function sshFingerprint(publicKey: Buffer): string;
14
+ /**
15
+ * Decode a stored Ed25519 public key into its raw 32 bytes, tolerating the two
16
+ * encodings that appear across the ecosystem:
17
+ * - raw base64 (32 bytes) as written by the local mcp-i IdentityManager, and
18
+ * - multibase base64url with an "m" prefix as returned by the KTA registry
19
+ * (see know-that-ai cli-register `encodePublicKey`).
20
+ * Returns null when the value is neither, so a defense-in-depth cross-check can
21
+ * skip rather than reject an unrecognized format. Disambiguation is exact: a
22
+ * raw 32-byte key always base64-decodes to 32 bytes, while a 44-char multibase
23
+ * string decodes to 33 under raw base64, so only the "m" branch yields 32.
24
+ */
25
+ export declare function decodeEd25519PublicKey(value: string): Buffer | null;
26
+ export declare function sshPublicKeyLine(publicKey: Buffer, comment: string): string;
27
+ export interface ConvertOptions {
28
+ /**
29
+ * Raw public key (base64) to cross-check against the derived key. Guards
30
+ * against a corrupted identity file producing a signing key that does not
31
+ * match the registered DID.
32
+ */
33
+ expectedPublicKeyBase64?: string;
34
+ /** Fixed check bytes for deterministic output in tests. */
35
+ checkBytes?: Buffer;
36
+ }
37
+ /**
38
+ * Convert a base64 Ed25519 private key from identity.json into OpenSSH
39
+ * signing key material. Accepts either a 32-byte seed or a 64-byte
40
+ * libsodium-style secret key (seed || public key).
41
+ */
42
+ export declare function convertEd25519ToSshKey(privateKeyBase64: string, comment: string, options?: ConvertOptions): SshKeyMaterial;
43
+ //# sourceMappingURL=ssh-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssh-key.d.ts","sourceRoot":"","sources":["../../../src/utils/dco/ssh-key.ts"],"names":[],"mappings":"AAiCA,MAAM,WAAW,cAAc;IAC7B,sEAAsE;IACtE,aAAa,EAAE,MAAM,CAAC;IACtB,mFAAmF;IACnF,aAAa,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,WAAW,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,eAAe,EAAE,MAAM,CAAC;CACzB;AAeD,+EAA+E;AAC/E,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAuB3D;AAmDD,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYnE;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,cAAmB,GAC3B,cAAc,CAmDhB"}
@@ -0,0 +1,176 @@
1
+ import { createHash, createPrivateKey, createPublicKey } from "crypto";
2
+ /**
3
+ * Conversion of a raw Ed25519 seed (as stored in .mcpi/identity.json) into
4
+ * OpenSSH key material usable as a git SSH signing key.
5
+ *
6
+ * The OpenSSH private key container format is documented in OpenSSH's
7
+ * PROTOCOL.key file. For an unencrypted Ed25519 key it is:
8
+ *
9
+ * "openssh-key-v1\0"
10
+ * string ciphername ("none")
11
+ * string kdfname ("none")
12
+ * string kdfoptions ("")
13
+ * uint32 number of keys (1)
14
+ * string public key blob: string "ssh-ed25519" + string pub(32)
15
+ * string private section:
16
+ * uint32 checkint, uint32 checkint (identical)
17
+ * string "ssh-ed25519"
18
+ * string pub(32)
19
+ * string seed||pub (64)
20
+ * string comment
21
+ * padding bytes 0x01 0x02 ... up to a multiple of 8
22
+ */
23
+ const OPENSSH_MAGIC = "openssh-key-v1\0";
24
+ const KEY_TYPE = "ssh-ed25519";
25
+ // DER prefix that turns a raw 32-byte Ed25519 seed into a PKCS8 private key.
26
+ const ED25519_PKCS8_PREFIX = Buffer.from("302e020100300506032b657004220420", "hex");
27
+ function sshString(data) {
28
+ const buf = typeof data === "string" ? Buffer.from(data, "utf8") : data;
29
+ const len = Buffer.alloc(4);
30
+ len.writeUInt32BE(buf.length, 0);
31
+ return Buffer.concat([len, buf]);
32
+ }
33
+ function uint32(value) {
34
+ const buf = Buffer.alloc(4);
35
+ buf.writeUInt32BE(value >>> 0, 0);
36
+ return buf;
37
+ }
38
+ /** Derive the Ed25519 public key from a raw 32-byte seed using Node crypto. */
39
+ export function deriveEd25519PublicKey(seed) {
40
+ if (seed.length !== 32) {
41
+ throw new Error(`Ed25519 seed must be 32 bytes, got ${seed.length} bytes`);
42
+ }
43
+ const pkcs8 = Buffer.concat([ED25519_PKCS8_PREFIX, seed]);
44
+ const privateKey = createPrivateKey({
45
+ key: pkcs8,
46
+ format: "der",
47
+ type: "pkcs8",
48
+ });
49
+ const jwk = createPublicKey(privateKey).export({ format: "jwk" });
50
+ // v8 ignore: Node always emits x for an Ed25519 public JWK; this guard
51
+ // only exists to fail loudly if that contract ever changes.
52
+ /* v8 ignore start */
53
+ if (!jwk.x) {
54
+ throw new Error("Failed to derive Ed25519 public key from seed");
55
+ }
56
+ /* v8 ignore stop */
57
+ return Buffer.from(jwk.x, "base64url");
58
+ }
59
+ function publicKeyBlob(publicKey) {
60
+ return Buffer.concat([sshString(KEY_TYPE), sshString(publicKey)]);
61
+ }
62
+ function buildPrivateKeyPem(seed, publicKey, comment, checkBytes) {
63
+ const check = checkBytes.subarray(0, 4);
64
+ let privateSection = Buffer.concat([
65
+ check,
66
+ check,
67
+ sshString(KEY_TYPE),
68
+ sshString(publicKey),
69
+ sshString(Buffer.concat([seed, publicKey])),
70
+ sshString(comment),
71
+ ]);
72
+ // Pad with 1, 2, 3, ... to the cipher block size (8 for "none").
73
+ const padLength = (8 - (privateSection.length % 8)) % 8;
74
+ if (padLength > 0) {
75
+ const padding = Buffer.alloc(padLength);
76
+ for (let i = 0; i < padLength; i++) {
77
+ padding[i] = i + 1;
78
+ }
79
+ privateSection = Buffer.concat([privateSection, padding]);
80
+ }
81
+ const body = Buffer.concat([
82
+ Buffer.from(OPENSSH_MAGIC, "utf8"),
83
+ sshString("none"),
84
+ sshString("none"),
85
+ sshString(""),
86
+ uint32(1),
87
+ sshString(publicKeyBlob(publicKey)),
88
+ sshString(privateSection),
89
+ ]);
90
+ const base64 = body.toString("base64");
91
+ const chunks = [];
92
+ for (let i = 0; i < base64.length; i += 70) {
93
+ chunks.push(base64.slice(i, i + 70));
94
+ }
95
+ const wrapped = chunks.join("\n");
96
+ return `-----BEGIN OPENSSH PRIVATE KEY-----\n${wrapped}\n-----END OPENSSH PRIVATE KEY-----\n`;
97
+ }
98
+ export function sshFingerprint(publicKey) {
99
+ const digest = createHash("sha256").update(publicKeyBlob(publicKey)).digest();
100
+ return `SHA256:${digest.toString("base64").replace(/=+$/, "")}`;
101
+ }
102
+ /**
103
+ * Decode a stored Ed25519 public key into its raw 32 bytes, tolerating the two
104
+ * encodings that appear across the ecosystem:
105
+ * - raw base64 (32 bytes) as written by the local mcp-i IdentityManager, and
106
+ * - multibase base64url with an "m" prefix as returned by the KTA registry
107
+ * (see know-that-ai cli-register `encodePublicKey`).
108
+ * Returns null when the value is neither, so a defense-in-depth cross-check can
109
+ * skip rather than reject an unrecognized format. Disambiguation is exact: a
110
+ * raw 32-byte key always base64-decodes to 32 bytes, while a 44-char multibase
111
+ * string decodes to 33 under raw base64, so only the "m" branch yields 32.
112
+ */
113
+ export function decodeEd25519PublicKey(value) {
114
+ const raw = Buffer.from(value, "base64");
115
+ if (raw.length === 32) {
116
+ return raw;
117
+ }
118
+ if (value.startsWith("m")) {
119
+ const multibase = Buffer.from(value.slice(1), "base64url");
120
+ if (multibase.length === 32) {
121
+ return multibase;
122
+ }
123
+ }
124
+ return null;
125
+ }
126
+ export function sshPublicKeyLine(publicKey, comment) {
127
+ return `${KEY_TYPE} ${publicKeyBlob(publicKey).toString("base64")} ${comment}`.trim();
128
+ }
129
+ /**
130
+ * Convert a base64 Ed25519 private key from identity.json into OpenSSH
131
+ * signing key material. Accepts either a 32-byte seed or a 64-byte
132
+ * libsodium-style secret key (seed || public key).
133
+ */
134
+ export function convertEd25519ToSshKey(privateKeyBase64, comment, options = {}) {
135
+ const decoded = Buffer.from(privateKeyBase64, "base64");
136
+ let seed;
137
+ if (decoded.length === 32) {
138
+ seed = decoded;
139
+ }
140
+ else if (decoded.length === 64) {
141
+ seed = decoded.subarray(0, 32);
142
+ }
143
+ else {
144
+ throw new Error(`Unsupported Ed25519 private key length: ${decoded.length} bytes (expected 32 or 64)`);
145
+ }
146
+ const publicKey = deriveEd25519PublicKey(seed);
147
+ if (decoded.length === 64) {
148
+ const embedded = decoded.subarray(32);
149
+ if (!embedded.equals(publicKey)) {
150
+ throw new Error("Ed25519 private key is corrupt: embedded public key does not match the seed");
151
+ }
152
+ }
153
+ if (options.expectedPublicKeyBase64) {
154
+ // The stored key may be raw base64 (mcp-i) or multibase (KTA registry).
155
+ // Only reject on a decodable-but-different key; an unrecognized encoding
156
+ // is skipped because the seed-derived key is authoritative for signing.
157
+ const expected = decodeEd25519PublicKey(options.expectedPublicKeyBase64);
158
+ if (expected && !expected.equals(publicKey)) {
159
+ throw new Error("Identity file mismatch: derived public key does not match the stored public key");
160
+ }
161
+ }
162
+ // Derive the OpenSSH checkint deterministically from the public key rather
163
+ // than randomly, so the same identity always yields byte-identical key
164
+ // material. That lets callers detect a corrupt on-disk key by comparison
165
+ // and rewrite it (self-heal) while staying idempotent for a valid key. The
166
+ // checkint is an internal consistency marker, not security-sensitive.
167
+ const checkBytes = options.checkBytes ??
168
+ createHash("sha256").update(publicKey).digest().subarray(0, 4);
169
+ return {
170
+ privateKeyPem: buildPrivateKeyPem(seed, publicKey, comment, checkBytes),
171
+ publicKeyLine: sshPublicKeyLine(publicKey, comment),
172
+ fingerprint: sshFingerprint(publicKey),
173
+ publicKeyBase64: publicKey.toString("base64"),
174
+ };
175
+ }
176
+ //# sourceMappingURL=ssh-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssh-key.js","sourceRoot":"","sources":["../../../src/utils/dco/ssh-key.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export interface StatusCheck {
2
+ id: string;
3
+ label: string;
4
+ state: "ok" | "warn" | "missing";
5
+ detail?: string;
6
+ }
7
+ export interface DcoStatusResult {
8
+ checks: StatusCheck[];
9
+ }
10
+ /** Read-only diagnostics backing `mcpi dco status`. Never writes or prompts. */
11
+ export declare function collectDcoStatus(cwd: string): Promise<DcoStatusResult>;
12
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/utils/dco/status.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAeD,gFAAgF;AAChF,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CA4N5E"}
@@ -0,0 +1,238 @@
1
+ import { existsSync, readFileSync } from "fs";
2
+ import { join } from "path";
3
+ import { readAgentMetadata } from "./agent-metadata.js";
4
+ import { isValidSlug, keysDir } from "./paths.js";
5
+ import { CLAUDE_MD_START } from "./claude-config.js";
6
+ import { getGitConfigValue, getHooksDir, HOOK_MARKER, isGitRepo } from "./git-config.js";
7
+ import { isGhAuthenticated, isGhInstalled, listSigningKeys, signingKeyAlreadyUploaded, } from "./github.js";
8
+ import { convertEd25519ToSshKey } from "./ssh-key.js";
9
+ /**
10
+ * Read a file for a diagnostic, returning null instead of throwing when the
11
+ * path exists but cannot be read as a file (e.g. it is a directory -> EISDIR).
12
+ * `mcpi dco status` must never crash on odd on-disk state.
13
+ */
14
+ function readFileSafe(path) {
15
+ try {
16
+ return readFileSync(path, "utf-8");
17
+ }
18
+ catch {
19
+ return null;
20
+ }
21
+ }
22
+ /** Read-only diagnostics backing `mcpi dco status`. Never writes or prompts. */
23
+ export async function collectDcoStatus(cwd) {
24
+ const checks = [];
25
+ const identityPath = join(cwd, ".mcpi", "identity.json");
26
+ let identity = null;
27
+ let identityCorrupt = false;
28
+ if (existsSync(identityPath)) {
29
+ try {
30
+ const parsed = JSON.parse(readFileSync(identityPath, "utf-8"));
31
+ // A non-object (array, string, number) parses fine but is corrupt, not
32
+ // a valid-but-missing-fields identity; match setup's preflight so status
33
+ // does not tell the user to re-register over a recoverable file.
34
+ if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
35
+ identity = parsed;
36
+ }
37
+ else {
38
+ identityCorrupt = true;
39
+ }
40
+ }
41
+ catch {
42
+ identity = null;
43
+ identityCorrupt = true;
44
+ }
45
+ }
46
+ // Setup's preflight requires BOTH privateKey and did, so an identity with a
47
+ // key but no did is incomplete (warn), not ok — otherwise status reports a
48
+ // healthy identity that setup would refuse to run against.
49
+ const identityComplete = Boolean(identity?.privateKey && identity?.did);
50
+ checks.push({
51
+ id: "identity",
52
+ label: "Agent identity (.mcpi/identity.json)",
53
+ state: identityComplete
54
+ ? "ok"
55
+ : identityCorrupt || identity?.privateKey
56
+ ? "warn"
57
+ : "missing",
58
+ detail: identityCorrupt
59
+ ? "File exists but could not be parsed; inspect or restore it (do not re-run register)"
60
+ : identity?.privateKey && !identity?.did
61
+ ? "Missing did; setup requires both a private key and a did"
62
+ : identity?.did,
63
+ });
64
+ const metadata = readAgentMetadata(cwd);
65
+ // Mirror setup's trust gate: agent.json is only usable for attribution when
66
+ // it is bound to this identity (its did matches identity.json). Unbound
67
+ // metadata (no/mismatched did) is reported as warn, not ok, so status does
68
+ // not present planted attribution as trusted while setup ignores it.
69
+ const metadataBound = Boolean(metadata?.did && identity?.did && metadata.did === identity.did);
70
+ const metadataComplete = Boolean(metadata?.name && metadata?.slug);
71
+ checks.push({
72
+ id: "agent-metadata",
73
+ label: "Agent metadata (.mcpi/agent.json)",
74
+ state: metadataComplete && metadataBound ? "ok" : metadata ? "warn" : "missing",
75
+ detail: !metadata
76
+ ? "Run `mcpi register` or set AGENT_NAME/AGENT_SLUG"
77
+ : !metadataBound
78
+ ? `Not bound to this identity (${metadata.did ?? "no did"}); ignored by setup`
79
+ : `${metadata.name} (${metadata.slug ?? "no slug"})`,
80
+ });
81
+ // Only a bound record's slug locates the signing key; an unbound slug is
82
+ // untrusted for that purpose.
83
+ const boundSlug = metadataBound ? metadata?.slug : undefined;
84
+ const rawSlug = boundSlug ?? process.env.AGENT_SLUG;
85
+ const slug = rawSlug && isValidSlug(rawSlug) ? rawSlug : undefined;
86
+ const privateKeyPath = slug ? join(keysDir(), slug) : null;
87
+ checks.push({
88
+ id: "key-files",
89
+ label: "SSH signing key files",
90
+ state: rawSlug && !slug
91
+ ? "warn"
92
+ : privateKeyPath && existsSync(privateKeyPath)
93
+ ? "ok"
94
+ : "missing",
95
+ detail: rawSlug && !slug
96
+ ? `Invalid agent slug "${rawSlug}"`
97
+ : (privateKeyPath ?? undefined),
98
+ });
99
+ if (await isGitRepo(cwd)) {
100
+ const format = await getGitConfigValue("gpg.format", cwd);
101
+ const signingKey = await getGitConfigValue("user.signingkey", cwd);
102
+ const gpgSign = await getGitConfigValue("commit.gpgsign", cwd);
103
+ const configured = format === "ssh" && gpgSign === "true" && Boolean(signingKey);
104
+ checks.push({
105
+ id: "git-config",
106
+ label: "Git signing config",
107
+ state: configured ? "ok" : "missing",
108
+ detail: configured
109
+ ? `user.signingkey=${signingKey}`
110
+ : "gpg.format/user.signingkey/commit.gpgsign not fully set",
111
+ });
112
+ const { dir } = await getHooksDir(cwd);
113
+ const hookPath = join(dir, "prepare-commit-msg");
114
+ const hookContent = existsSync(hookPath) ? readFileSafe(hookPath) : null;
115
+ if (!existsSync(hookPath)) {
116
+ checks.push({
117
+ id: "trailer-hook",
118
+ label: "Commit trailer hook",
119
+ state: "missing",
120
+ detail: hookPath,
121
+ });
122
+ }
123
+ else if (hookContent === null) {
124
+ checks.push({
125
+ id: "trailer-hook",
126
+ label: "Commit trailer hook",
127
+ state: "warn",
128
+ detail: `prepare-commit-msg exists but is not a readable file: ${hookPath}`,
129
+ });
130
+ }
131
+ else if (hookContent.includes(HOOK_MARKER)) {
132
+ checks.push({
133
+ id: "trailer-hook",
134
+ label: "Commit trailer hook",
135
+ state: "ok",
136
+ detail: hookPath,
137
+ });
138
+ }
139
+ else {
140
+ checks.push({
141
+ id: "trailer-hook",
142
+ label: "Commit trailer hook",
143
+ state: "warn",
144
+ detail: `Foreign prepare-commit-msg hook at ${hookPath}`,
145
+ });
146
+ }
147
+ }
148
+ else {
149
+ checks.push({
150
+ id: "git-config",
151
+ label: "Git signing config",
152
+ state: "missing",
153
+ detail: "Not a git repository",
154
+ });
155
+ }
156
+ const claudeMd = existsSync(join(cwd, "CLAUDE.md"))
157
+ ? readFileSafe(join(cwd, "CLAUDE.md"))
158
+ : null;
159
+ const hasBlock = claudeMd !== null && claudeMd.includes(CLAUDE_MD_START);
160
+ checks.push({
161
+ id: "claude-md",
162
+ label: "CLAUDE.md attribution block",
163
+ state: hasBlock ? "ok" : "missing",
164
+ });
165
+ const settingsPath = join(cwd, ".claude", "settings.json");
166
+ let settingsOk = false;
167
+ let settingsCorrupt = false;
168
+ if (existsSync(settingsPath)) {
169
+ try {
170
+ const parsed = JSON.parse(readFileSync(settingsPath, "utf-8"));
171
+ if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
172
+ settingsOk = parsed.includeCoAuthoredBy === false;
173
+ }
174
+ else {
175
+ settingsCorrupt = true;
176
+ }
177
+ }
178
+ catch {
179
+ settingsCorrupt = true;
180
+ }
181
+ }
182
+ checks.push({
183
+ id: "claude-settings",
184
+ label: "Claude Code settings (includeCoAuthoredBy: false)",
185
+ state: settingsOk ? "ok" : settingsCorrupt ? "warn" : "missing",
186
+ detail: settingsCorrupt
187
+ ? "settings.json exists but could not be parsed"
188
+ : undefined,
189
+ });
190
+ if (!(await isGhInstalled())) {
191
+ checks.push({
192
+ id: "github-key",
193
+ label: "Signing key on GitHub",
194
+ state: "warn",
195
+ detail: "GitHub CLI not installed",
196
+ });
197
+ }
198
+ else if (!(await isGhAuthenticated())) {
199
+ checks.push({
200
+ id: "github-key",
201
+ label: "Signing key on GitHub",
202
+ state: "warn",
203
+ detail: "gh not authenticated",
204
+ });
205
+ }
206
+ else if (identity?.privateKey && slug) {
207
+ try {
208
+ const material = convertEd25519ToSshKey(identity.privateKey, `mcpi:${slug}`, {
209
+ expectedPublicKeyBase64: identity.publicKey,
210
+ });
211
+ const uploaded = signingKeyAlreadyUploaded(await listSigningKeys(), material.publicKeyLine);
212
+ checks.push({
213
+ id: "github-key",
214
+ label: "Signing key on GitHub",
215
+ state: uploaded ? "ok" : "missing",
216
+ detail: material.fingerprint,
217
+ });
218
+ }
219
+ catch (error) {
220
+ checks.push({
221
+ id: "github-key",
222
+ label: "Signing key on GitHub",
223
+ state: "warn",
224
+ detail: error instanceof Error ? error.message : String(error),
225
+ });
226
+ }
227
+ }
228
+ else {
229
+ checks.push({
230
+ id: "github-key",
231
+ label: "Signing key on GitHub",
232
+ state: "warn",
233
+ detail: "Needs identity and agent slug to check",
234
+ });
235
+ }
236
+ return { checks };
237
+ }
238
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/utils/dco/status.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kya-os/cli",
3
- "version": "1.5.9",
3
+ "version": "1.6.0",
4
4
  "description": "CLI for MCP-I setup and management",
5
5
  "keywords": [
6
6
  "cli",
@@ -41,7 +41,8 @@
41
41
  "demo:fast": "tsx src/index.ts demo --init --fast"
42
42
  },
43
43
  "dependencies": {
44
- "@kya-os/contracts": "^1.7.21",
44
+ "@kya-os/contracts": "^1.9.0",
45
+ "@kya-os/mcp": "^1.6.1",
45
46
  "@kya-os/mcp-i": "^1.7.12",
46
47
  "boxen": "^8.0.1",
47
48
  "chalk": "^5.3.0",
@@ -54,16 +55,16 @@
54
55
  "open": "^10.1.2",
55
56
  "ora": "^8.0.1",
56
57
  "terminal-image": "^3.1.1",
57
- "zod": "^3.25.76"
58
+ "zod": "^3.25.67"
58
59
  },
59
60
  "devDependencies": {
60
61
  "@types/figlet": "^1.7.0",
61
62
  "@types/inquirer": "^9.0.0",
62
63
  "@types/node": "^20.0.0",
63
- "@vitest/coverage-v8": "^4.0.5",
64
+ "@vitest/coverage-v8": "^4.0.18",
64
65
  "tsx": "^4.0.0",
65
66
  "typescript": "^5.0.0",
66
- "vitest": "^4.0.5"
67
+ "vitest": "^4.0.18"
67
68
  },
68
69
  "engines": {
69
70
  "node": ">=20.0.0"