@kwonye/mcpx 0.1.104 → 0.1.106
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/dist/adapters/codex.d.ts +2 -0
- package/dist/adapters/index.d.ts +2 -1
- package/dist/adapters/json.d.ts +26 -0
- package/dist/adapters/pi.d.ts +9 -0
- package/dist/chunk-0xt563m1.js +126 -0
- package/dist/{chunk-s9v1epnk.js → chunk-1mrkz29t.js} +71 -56
- package/dist/{chunk-31brdz5s.js → chunk-1v66g9d6.js} +4 -3
- package/dist/chunk-1yq3yb66.js +126 -0
- package/dist/chunk-27mq4agf.js +33 -0
- package/dist/{chunk-941dqsx2.js → chunk-4aafp444.js} +8175 -8066
- package/dist/chunk-4xym942z.js +36 -0
- package/dist/{chunk-tnhekcpv.js → chunk-56z18csx.js} +1 -1
- package/dist/{chunk-bnbz55g6.js → chunk-65kshh9w.js} +1 -1
- package/dist/{chunk-xydajvzg.js → chunk-7ky3rsw9.js} +1 -1
- package/dist/chunk-7rq88hb3.js +563 -0
- package/dist/chunk-8v13hqrp.js +825 -0
- package/dist/chunk-a2gen8bn.js +730 -0
- package/dist/{chunk-wq4zd3t7.js → chunk-brxwa30j.js} +130 -111
- package/dist/chunk-chaj8a8b.js +45 -0
- package/dist/chunk-e96643mj.js +26 -0
- package/dist/{chunk-02r7k4ax.js → chunk-ew06e41w.js} +12 -6
- package/dist/chunk-ezk8txcy.js +23 -0
- package/dist/{chunk-cqenqnxk.js → chunk-grkz21sq.js} +35 -3
- package/dist/{chunk-12vgqm89.js → chunk-gvjxpk98.js} +1 -1
- package/dist/chunk-h9kp47rp.js +18 -0
- package/dist/chunk-hahs24dv.js +127 -0
- package/dist/{chunk-z34m83m4.js → chunk-jv0s0cp6.js} +5 -3
- package/dist/{chunk-enzmq965.js → chunk-n0462d52.js} +1 -1
- package/dist/chunk-nh6hhv29.js +138 -0
- package/dist/chunk-p7yzyt87.js +19426 -0
- package/dist/chunk-q86c5s6r.js +7 -0
- package/dist/chunk-qf8bj9y7.js +254 -0
- package/dist/chunk-t20f49g3.js +30 -0
- package/dist/{chunk-b58zsdp4.js → chunk-v041118a.js} +17 -5
- package/dist/{chunk-91vcwk5m.js → chunk-v14bg5yp.js} +1 -1
- package/dist/chunk-wvzap0na.js +18166 -0
- package/dist/chunk-wztmp5b4.js +30479 -0
- package/dist/chunk-xvqr1q9b.js +14 -0
- package/dist/{chunk-0xhdyt4z.js → chunk-yj7mpczw.js} +17 -5
- package/dist/chunk-yr0txkw0.js +31 -0
- package/dist/cli.js +3977 -1045
- package/dist/core/adoption.d.ts +62 -0
- package/dist/core/analytics.d.ts +17 -0
- package/dist/core/consumers.d.ts +8 -0
- package/dist/core/control.d.ts +12 -0
- package/dist/core/daemon.d.ts +2 -2
- package/dist/core/file-state.d.ts +5 -0
- package/dist/core/harnesses.d.ts +25 -0
- package/dist/core/index.d.ts +17 -7
- package/dist/core/index.js +128 -62
- package/dist/core/managed-index-lock.d.ts +1 -1
- package/dist/core/management.d.ts +32 -0
- package/dist/core/native-document.d.ts +4 -0
- package/dist/core/operations.d.ts +52 -0
- package/dist/core/paths.d.ts +2 -0
- package/dist/core/plugin-manager.d.ts +4 -1
- package/dist/core/plugin-projections.d.ts +1 -0
- package/dist/core/runtime-entry.d.ts +6 -0
- package/dist/core/runtime-snapshot.d.ts +6 -0
- package/dist/core/secret-keychain.d.ts +31 -0
- package/dist/core/secrets.d.ts +12 -2
- package/dist/core/served-skills.d.ts +62 -0
- package/dist/core/share.d.ts +71 -0
- package/dist/core/skills.d.ts +7 -0
- package/dist/core/status.d.ts +1 -0
- package/dist/core/sync-plan.d.ts +14 -0
- package/dist/core/sync.d.ts +3 -0
- package/dist/core/telemetry.d.ts +2 -2
- package/dist/core/tui.d.ts +20 -0
- package/dist/core/verify-upstreams.d.ts +4 -0
- package/dist/core/work-limiter.d.ts +10 -0
- package/dist/gateway/server.d.ts +2 -0
- package/dist/types.d.ts +72 -1
- package/dist/util/fs.d.ts +2 -0
- package/dist/version.d.ts +1 -1
- package/package.json +1 -1
- package/dist/adapters/opencode.d.ts +0 -11
- package/dist/chunk-cz8cdmw1.js +0 -344
- package/dist/chunk-z1k63fa3.js +0 -3760
|
@@ -6,4 +6,5 @@ export declare function pruneAllPluginProjections(targetDir: string): void;
|
|
|
6
6
|
*/
|
|
7
7
|
export declare function pruneUnlistedPlugins(targetDir: string, keepPluginIds: string[]): void;
|
|
8
8
|
export declare function syncPluginsToClient(clientId: string, plugins: PluginSyncInput[]): PluginSyncResult;
|
|
9
|
+
export declare function syncProjectPluginSkills(clientId: string, skillsBase: string, plugins: PluginSyncInput[]): PluginSyncResult;
|
|
9
10
|
//# sourceMappingURL=plugin-projections.d.ts.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { McpxConfig } from "../types.js";
|
|
2
|
+
/** A gateway request sees one committed configuration revision throughout its work. */
|
|
3
|
+
export declare function compileRuntimeSnapshot(): void;
|
|
4
|
+
export declare function clearRuntimeSnapshot(): void;
|
|
5
|
+
export declare function runtimeConfig(): McpxConfig;
|
|
6
|
+
//# sourceMappingURL=runtime-snapshot.d.ts.map
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/** Login-keychain item that holds the whole mcpx secret map for this user. */
|
|
2
|
+
export declare const KEYCHAIN_SERVICE = "com.kwonye.mcpx";
|
|
3
|
+
export declare const KEYCHAIN_ACCOUNT = "secrets";
|
|
4
|
+
export declare const KEYCHAIN_LABEL = "mcpx secrets";
|
|
5
|
+
/**
|
|
6
|
+
* `security -i` reads each command with readline() into a 4096-byte buffer
|
|
7
|
+
* (SecurityTool `MAX_LINE_LEN`) and keeps at most 4095 bytes. A line of exactly
|
|
8
|
+
* 4095 bytes leaves the trailing newline unread; the following empty command
|
|
9
|
+
* succeeds and becomes the process exit status. 4094 leaves room for that newline.
|
|
10
|
+
*/
|
|
11
|
+
export declare const SECURITY_INTERACTIVE_MAX_LINE = 4094;
|
|
12
|
+
export interface SecretCommandRequest {
|
|
13
|
+
command: string;
|
|
14
|
+
args: string[];
|
|
15
|
+
input?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface SecretCommandResult {
|
|
18
|
+
status: number;
|
|
19
|
+
stdout: string;
|
|
20
|
+
stderr: string;
|
|
21
|
+
}
|
|
22
|
+
export type SecretCommandRunner = (request: SecretCommandRequest) => SecretCommandResult;
|
|
23
|
+
/** Test hook. Production code leaves the real `security` / `secret-tool` runner in place. */
|
|
24
|
+
export declare function setSecretCommandRunnerForTests(runner: SecretCommandRunner | null): void;
|
|
25
|
+
/** Test hook. `null` uses `process.platform`. */
|
|
26
|
+
export declare function setSecretKeychainPlatformForTests(platform: NodeJS.Platform | null): void;
|
|
27
|
+
export declare function keychainUnsupportedReason(platform?: NodeJS.Platform): string | null;
|
|
28
|
+
export declare function readKeychainSecrets(): Record<string, string>;
|
|
29
|
+
export declare function writeKeychainSecrets(secrets: Record<string, string>): void;
|
|
30
|
+
export declare function clearKeychainSecrets(): void;
|
|
31
|
+
//# sourceMappingURL=secret-keychain.d.ts.map
|
package/dist/core/secrets.d.ts
CHANGED
|
@@ -1,9 +1,19 @@
|
|
|
1
|
+
import type { SecretBackendKind } from "../types.js";
|
|
2
|
+
export interface SecretBackendSwitchResult {
|
|
3
|
+
backend: SecretBackendKind;
|
|
4
|
+
changed: boolean;
|
|
5
|
+
migrated: string[];
|
|
6
|
+
preserved: string[];
|
|
7
|
+
removedFrom: SecretBackendKind | null;
|
|
8
|
+
}
|
|
9
|
+
export declare function describeSecretBackend(backend: SecretBackendKind): string;
|
|
10
|
+
export declare function getSecretBackend(configPath?: string): SecretBackendKind;
|
|
11
|
+
export declare function switchSecretBackend(target: SecretBackendKind, configPath?: string): SecretBackendSwitchResult;
|
|
1
12
|
export declare class SecretsManager {
|
|
2
13
|
private readonly storePath;
|
|
3
14
|
private readonly keyPath;
|
|
4
15
|
constructor(storePath?: string, keyPath?: string);
|
|
5
|
-
|
|
6
|
-
private recoverCorruptStore;
|
|
16
|
+
get backend(): SecretBackendKind;
|
|
7
17
|
listSecretNames(): string[];
|
|
8
18
|
setSecret(name: string, value: string): void;
|
|
9
19
|
removeSecret(name: string): void;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { McpxConfig } from "../types.js";
|
|
3
|
+
export declare function skillVisible(config: McpxConfig, id: string, projectPath?: string): boolean;
|
|
4
|
+
declare const frontmatterSchema: z.ZodObject<{
|
|
5
|
+
name: z.ZodString;
|
|
6
|
+
description: z.ZodString;
|
|
7
|
+
}, z.core.$loose>;
|
|
8
|
+
interface ServedSkill {
|
|
9
|
+
uri: string;
|
|
10
|
+
frontmatter: z.infer<typeof frontmatterSchema>;
|
|
11
|
+
resources: Array<{
|
|
12
|
+
uri: string;
|
|
13
|
+
digest: string;
|
|
14
|
+
size: number;
|
|
15
|
+
}>;
|
|
16
|
+
files: Map<string, Buffer>;
|
|
17
|
+
}
|
|
18
|
+
export declare function servedSkills(config: McpxConfig, projectPath?: string): ServedSkill[];
|
|
19
|
+
export declare function listServedSkills(config: McpxConfig, projectPath?: string, cursor?: string): {
|
|
20
|
+
ttlMs: number;
|
|
21
|
+
cacheScope: string;
|
|
22
|
+
nextCursor?: string | undefined;
|
|
23
|
+
resultType: string;
|
|
24
|
+
skills: {
|
|
25
|
+
uri: string;
|
|
26
|
+
frontmatter: z.infer<typeof frontmatterSchema>;
|
|
27
|
+
resources: Array<{
|
|
28
|
+
uri: string;
|
|
29
|
+
digest: string;
|
|
30
|
+
size: number;
|
|
31
|
+
}>;
|
|
32
|
+
}[];
|
|
33
|
+
};
|
|
34
|
+
export declare function getServedSkill(config: McpxConfig, uri: string, projectPath?: string): {
|
|
35
|
+
resultType: string;
|
|
36
|
+
skill: {
|
|
37
|
+
uri: string;
|
|
38
|
+
frontmatter: z.infer<typeof frontmatterSchema>;
|
|
39
|
+
resources: Array<{
|
|
40
|
+
uri: string;
|
|
41
|
+
digest: string;
|
|
42
|
+
size: number;
|
|
43
|
+
}>;
|
|
44
|
+
};
|
|
45
|
+
ttlMs: number;
|
|
46
|
+
cacheScope: string;
|
|
47
|
+
};
|
|
48
|
+
export declare function readServedSkill(config: McpxConfig, uri: string, projectPath?: string): {
|
|
49
|
+
contents: ({
|
|
50
|
+
text: string;
|
|
51
|
+
uri: string;
|
|
52
|
+
mimeType: string;
|
|
53
|
+
} | {
|
|
54
|
+
blob: string;
|
|
55
|
+
uri: string;
|
|
56
|
+
mimeType: string;
|
|
57
|
+
})[];
|
|
58
|
+
ttlMs: number;
|
|
59
|
+
cacheScope: string;
|
|
60
|
+
};
|
|
61
|
+
export {};
|
|
62
|
+
//# sourceMappingURL=served-skills.d.ts.map
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
declare const environmentSchema: z.ZodObject<{
|
|
3
|
+
version: z.ZodLiteral<1>;
|
|
4
|
+
generatedBy: z.ZodString;
|
|
5
|
+
servers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
6
|
+
transport: z.ZodLiteral<"http">;
|
|
7
|
+
url: z.ZodURL;
|
|
8
|
+
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
9
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
10
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
11
|
+
transport: z.ZodLiteral<"stdio">;
|
|
12
|
+
command: z.ZodString;
|
|
13
|
+
args: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
14
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
15
|
+
cwd: z.ZodOptional<z.ZodString>;
|
|
16
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
17
|
+
}, z.core.$strip>], "transport">>>;
|
|
18
|
+
skills: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
19
|
+
id: z.ZodString;
|
|
20
|
+
kind: z.ZodEnum<{
|
|
21
|
+
skill: "skill";
|
|
22
|
+
plugin: "plugin";
|
|
23
|
+
}>;
|
|
24
|
+
path: z.ZodString;
|
|
25
|
+
source: z.ZodOptional<z.ZodString>;
|
|
26
|
+
}, z.core.$strip>>>;
|
|
27
|
+
plugins: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
28
|
+
id: z.ZodString;
|
|
29
|
+
kind: z.ZodEnum<{
|
|
30
|
+
skill: "skill";
|
|
31
|
+
plugin: "plugin";
|
|
32
|
+
}>;
|
|
33
|
+
path: z.ZodString;
|
|
34
|
+
source: z.ZodOptional<z.ZodString>;
|
|
35
|
+
}, z.core.$strip>>>;
|
|
36
|
+
clients: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
37
|
+
inputs: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
38
|
+
name: z.ZodString;
|
|
39
|
+
description: z.ZodOptional<z.ZodString>;
|
|
40
|
+
}, z.core.$strip>>>;
|
|
41
|
+
}, z.core.$strip>;
|
|
42
|
+
declare const lockSchema: z.ZodObject<{
|
|
43
|
+
version: z.ZodLiteral<1>;
|
|
44
|
+
mcpxCompatibility: z.ZodString;
|
|
45
|
+
manifestSha256: z.ZodString;
|
|
46
|
+
packages: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
47
|
+
sha256: z.ZodString;
|
|
48
|
+
revision: z.ZodOptional<z.ZodString>;
|
|
49
|
+
}, z.core.$strip>>>;
|
|
50
|
+
}, z.core.$strip>;
|
|
51
|
+
export type ShareEnvironment = z.infer<typeof environmentSchema>;
|
|
52
|
+
export type ShareLock = z.infer<typeof lockSchema>;
|
|
53
|
+
export declare function exportEnvironment(destination: string, options?: {
|
|
54
|
+
skills?: string[];
|
|
55
|
+
plugins?: string[];
|
|
56
|
+
}): {
|
|
57
|
+
environment: ShareEnvironment;
|
|
58
|
+
lock: ShareLock;
|
|
59
|
+
};
|
|
60
|
+
export declare function importEnvironment(sourceDirectory: string, options?: {
|
|
61
|
+
locked?: boolean;
|
|
62
|
+
dryRun?: boolean;
|
|
63
|
+
inputs?: Record<string, string>;
|
|
64
|
+
}): Promise<{
|
|
65
|
+
importedSkills: string[];
|
|
66
|
+
importedPlugins: string[];
|
|
67
|
+
importedServers: string[];
|
|
68
|
+
missingInputs: string[];
|
|
69
|
+
}>;
|
|
70
|
+
export {};
|
|
71
|
+
//# sourceMappingURL=share.d.ts.map
|
package/dist/core/skills.d.ts
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import type { Skill } from "../types.js";
|
|
2
|
+
export declare function validateSkillPackage(root: string): void;
|
|
2
3
|
export declare function listSkills(): Skill[];
|
|
3
4
|
export declare function getSkill(id: string): Skill | null;
|
|
4
5
|
export declare function saveSkill(id: string, content: string): void;
|
|
5
6
|
export declare function deleteSkill(id: string): void;
|
|
7
|
+
export declare function customizeSkill(id: string, targetId?: string): Skill;
|
|
8
|
+
export declare function installSkillFromSource(source: string, skillName?: string): Promise<Skill>;
|
|
9
|
+
export declare function pinSkill(id: string): void;
|
|
10
|
+
export declare function unpinSkill(id: string): void;
|
|
11
|
+
export declare function updateSkill(id: string): Promise<Skill>;
|
|
12
|
+
export declare function rollbackSkill(id: string): Skill;
|
|
6
13
|
//# sourceMappingURL=skills.d.ts.map
|
package/dist/core/status.d.ts
CHANGED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** Read-only synchronization preview; credentials and raw configurations stay local. */
|
|
2
|
+
export declare function planSynchronization(targets?: string[]): {
|
|
3
|
+
revision: number;
|
|
4
|
+
harnesses: {
|
|
5
|
+
id: string;
|
|
6
|
+
configPath: string | null;
|
|
7
|
+
changes: {
|
|
8
|
+
name: string;
|
|
9
|
+
action: string;
|
|
10
|
+
}[];
|
|
11
|
+
message: string;
|
|
12
|
+
}[];
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=sync-plan.d.ts.map
|
package/dist/core/sync.d.ts
CHANGED
|
@@ -3,7 +3,10 @@ import { SecretsManager } from "./secrets.js";
|
|
|
3
3
|
export interface SyncOptions {
|
|
4
4
|
targetClients?: ClientId[];
|
|
5
5
|
importScan?: boolean;
|
|
6
|
+
configPath?: string;
|
|
6
7
|
}
|
|
8
|
+
/** Canonical sync transaction shared by the CLI, desktop service and plugins. */
|
|
9
|
+
export declare function synchronizeClients(options?: SyncOptions, secrets?: SecretsManager): Promise<SyncSummary>;
|
|
7
10
|
export interface SyncSummary {
|
|
8
11
|
gatewayUrl: string;
|
|
9
12
|
imports: SyncImportReport;
|
package/dist/core/telemetry.d.ts
CHANGED
|
@@ -19,6 +19,8 @@ declare const launchModeSchema: z.ZodEnum<{
|
|
|
19
19
|
project: "project";
|
|
20
20
|
proxy: "proxy";
|
|
21
21
|
auth: "auth";
|
|
22
|
+
skill: "skill";
|
|
23
|
+
list: "list";
|
|
22
24
|
plugin: "plugin";
|
|
23
25
|
desktop: "desktop";
|
|
24
26
|
daemon: "daemon";
|
|
@@ -26,11 +28,9 @@ declare const launchModeSchema: z.ZodEnum<{
|
|
|
26
28
|
remove: "remove";
|
|
27
29
|
enable: "enable";
|
|
28
30
|
disable: "disable";
|
|
29
|
-
list: "list";
|
|
30
31
|
sync: "sync";
|
|
31
32
|
doctor: "doctor";
|
|
32
33
|
secret: "secret";
|
|
33
|
-
skill: "skill";
|
|
34
34
|
"plugin-host": "plugin-host";
|
|
35
35
|
update: "update";
|
|
36
36
|
telemetry: "telemetry";
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
type TuiRow = {
|
|
2
|
+
title: string;
|
|
3
|
+
state: string;
|
|
4
|
+
detail: string;
|
|
5
|
+
};
|
|
6
|
+
interface TuiFrameOptions {
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
revision: number;
|
|
10
|
+
view: number;
|
|
11
|
+
summary: string;
|
|
12
|
+
rows: TuiRow[];
|
|
13
|
+
selection: number;
|
|
14
|
+
details: string[];
|
|
15
|
+
status: string;
|
|
16
|
+
}
|
|
17
|
+
export declare function renderManagementTuiFrame(frame: TuiFrameOptions): string;
|
|
18
|
+
export declare function runManagementTui(cliPath: string): Promise<void>;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=tui.d.ts.map
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { McpxConfig } from "../types.js";
|
|
2
|
+
/** Only discovery/list operations are used before retiring native registrations. */
|
|
3
|
+
export declare function verifyUpstreams(config: McpxConfig, names: string[]): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=verify-upstreams.d.ts.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** Bounds work per upstream instance, including queued requests. */
|
|
2
|
+
export declare class WorkLimiter {
|
|
3
|
+
private readonly concurrency;
|
|
4
|
+
private readonly queueLimit;
|
|
5
|
+
private active;
|
|
6
|
+
private waiting;
|
|
7
|
+
constructor(concurrency?: number, queueLimit?: number);
|
|
8
|
+
run<T>(signal: AbortSignal, work: () => Promise<T>): Promise<T>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=work-limiter.d.ts.map
|
package/dist/gateway/server.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import http from "node:http";
|
|
2
|
+
import { WorkLimiter } from "../core/work-limiter.js";
|
|
2
3
|
import { Client } from "@modelcontextprotocol/client";
|
|
3
4
|
import { StdioClientTransport } from "@modelcontextprotocol/client/stdio";
|
|
4
5
|
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/client";
|
|
@@ -10,6 +11,7 @@ interface GatewayServerOptions {
|
|
|
10
11
|
secrets: SecretsManager;
|
|
11
12
|
}
|
|
12
13
|
interface UpstreamConnection {
|
|
14
|
+
limiter: WorkLimiter;
|
|
13
15
|
fingerprint: string;
|
|
14
16
|
client: Client;
|
|
15
17
|
transport: StdioClientTransport | StreamableHTTPClientTransport;
|
package/dist/types.d.ts
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
/** Harness IDs come from the adapter registry, including project installations. */
|
|
2
|
+
export type ClientId = string;
|
|
2
3
|
export type PluginComponent = "mcpServers" | "skills" | "hooks" | "agents" | "commands";
|
|
3
4
|
export interface HttpServerSpec {
|
|
5
|
+
scope?: string;
|
|
4
6
|
transport: "http";
|
|
5
7
|
url: string;
|
|
6
8
|
headers?: Record<string, string>;
|
|
7
9
|
enabled?: boolean;
|
|
8
10
|
}
|
|
9
11
|
export interface StdioServerSpec {
|
|
12
|
+
scope?: string;
|
|
10
13
|
transport: "stdio";
|
|
11
14
|
command: string;
|
|
12
15
|
args?: string[];
|
|
@@ -20,6 +23,8 @@ export interface GatewayConfig {
|
|
|
20
23
|
tokenRef: string;
|
|
21
24
|
autoStart: boolean;
|
|
22
25
|
}
|
|
26
|
+
/** Where stored secrets live. `file` is the default encrypted file; `keychain` is opt-in. */
|
|
27
|
+
export type SecretBackendKind = "file" | "keychain";
|
|
23
28
|
export type ClientStatus = "SYNCED" | "UNSUPPORTED_HTTP" | "ERROR" | "SKIPPED";
|
|
24
29
|
export interface ClientSyncState {
|
|
25
30
|
status: ClientStatus;
|
|
@@ -38,6 +43,44 @@ export interface ProjectScope {
|
|
|
38
43
|
}
|
|
39
44
|
export interface McpxConfig {
|
|
40
45
|
schemaVersion: 1;
|
|
46
|
+
consumers?: Record<string, {
|
|
47
|
+
tokenRef: string;
|
|
48
|
+
projectPath?: string;
|
|
49
|
+
}>;
|
|
50
|
+
packages?: Record<string, {
|
|
51
|
+
id: string;
|
|
52
|
+
root: string;
|
|
53
|
+
source: string;
|
|
54
|
+
harness: string;
|
|
55
|
+
fingerprint: string;
|
|
56
|
+
pinned: boolean;
|
|
57
|
+
name?: string;
|
|
58
|
+
identity?: string;
|
|
59
|
+
servers?: string[];
|
|
60
|
+
skills?: Array<{
|
|
61
|
+
id: string;
|
|
62
|
+
path: string;
|
|
63
|
+
projectionPath: string;
|
|
64
|
+
}>;
|
|
65
|
+
scope?: string;
|
|
66
|
+
previous?: {
|
|
67
|
+
root: string;
|
|
68
|
+
fingerprint: string;
|
|
69
|
+
};
|
|
70
|
+
}>;
|
|
71
|
+
revision?: number;
|
|
72
|
+
harnesses?: Record<string, {
|
|
73
|
+
mode: "observe" | "selected" | "automatic";
|
|
74
|
+
}>;
|
|
75
|
+
origins?: Record<string, {
|
|
76
|
+
id: string;
|
|
77
|
+
kind: string;
|
|
78
|
+
harness: string;
|
|
79
|
+
source: string;
|
|
80
|
+
nativeKey: string;
|
|
81
|
+
fingerprint: string;
|
|
82
|
+
operationId: string;
|
|
83
|
+
}>;
|
|
41
84
|
name?: string;
|
|
42
85
|
gateway: GatewayConfig;
|
|
43
86
|
servers: Record<string, UpstreamServerSpec>;
|
|
@@ -45,6 +88,9 @@ export interface McpxConfig {
|
|
|
45
88
|
projects?: Record<string, ProjectConfig>;
|
|
46
89
|
plugins?: Record<string, ManagedPlugin>;
|
|
47
90
|
marketplaces?: Record<string, ManagedMarketplace>;
|
|
91
|
+
secrets?: {
|
|
92
|
+
backend: SecretBackendKind;
|
|
93
|
+
};
|
|
48
94
|
}
|
|
49
95
|
export interface ManagedEntry {
|
|
50
96
|
fingerprint: string;
|
|
@@ -117,8 +163,15 @@ export interface SyncResult {
|
|
|
117
163
|
driftedEntries?: string[];
|
|
118
164
|
}
|
|
119
165
|
export interface Skill {
|
|
166
|
+
projectionPath?: string;
|
|
167
|
+
scope?: string;
|
|
168
|
+
ownerHarness?: string;
|
|
120
169
|
id: string;
|
|
121
170
|
content: string;
|
|
171
|
+
/** Canonical directory containing SKILL.md and optional resources. */
|
|
172
|
+
root?: string;
|
|
173
|
+
source?: "authored" | "installed";
|
|
174
|
+
readOnly?: boolean;
|
|
122
175
|
}
|
|
123
176
|
export interface PluginSyncInput {
|
|
124
177
|
pluginId: string;
|
|
@@ -140,12 +193,24 @@ export interface PluginSyncResult {
|
|
|
140
193
|
unsupported: PluginComponent[];
|
|
141
194
|
error?: string;
|
|
142
195
|
}
|
|
196
|
+
export interface HarnessDescriptor {
|
|
197
|
+
label?: string;
|
|
198
|
+
projectConfig?: string;
|
|
199
|
+
skillPath?: string;
|
|
200
|
+
projectSkills?: string;
|
|
201
|
+
skillLayout?: "dir" | "flat";
|
|
202
|
+
pluginComponents?: PluginComponent[];
|
|
203
|
+
}
|
|
143
204
|
export interface ClientAdapter {
|
|
205
|
+
descriptor?: HarnessDescriptor;
|
|
206
|
+
managedName?(serverName: string): string;
|
|
144
207
|
id: ClientId;
|
|
145
208
|
detectConfigPath(): string | null;
|
|
146
209
|
supportsHttp(): boolean;
|
|
147
210
|
scanForImports(config: McpxConfig, managedIndex: ManagedIndex): ClientImportScanResult;
|
|
148
211
|
syncGateway(config: McpxConfig, options: SyncClientOptions): SyncResult;
|
|
212
|
+
skillDirectory?(): string;
|
|
213
|
+
additionalSkillDirectories?(): string[];
|
|
149
214
|
syncSkills?(skills: Skill[]): void;
|
|
150
215
|
syncPlugins?(plugins: PluginSyncInput[]): PluginSyncResult;
|
|
151
216
|
}
|
|
@@ -319,6 +384,12 @@ export interface ManagedPlugin {
|
|
|
319
384
|
sourceFingerprint: string;
|
|
320
385
|
};
|
|
321
386
|
updateError?: string;
|
|
387
|
+
pinned?: boolean;
|
|
388
|
+
previous?: {
|
|
389
|
+
version: string;
|
|
390
|
+
resolvedSha: string;
|
|
391
|
+
root: string;
|
|
392
|
+
};
|
|
322
393
|
projectOverrides?: Record<string, {
|
|
323
394
|
enabled?: boolean;
|
|
324
395
|
components?: Partial<Record<PluginComponent, boolean>>;
|
package/dist/util/fs.d.ts
CHANGED
|
@@ -2,4 +2,6 @@ export declare function readJsonFile<T>(filePath: string, fallback: T): T;
|
|
|
2
2
|
export declare function writeJsonAtomic(filePath: string, data: unknown): void;
|
|
3
3
|
export declare function sha256(value: string): string;
|
|
4
4
|
export declare function safeReadFile(filePath: string): string | null;
|
|
5
|
+
/** Native configuration must fail closed; malformed files are never reset. */
|
|
6
|
+
export declare function readJsonStrict<T>(filePath: string, fallback: T): T;
|
|
5
7
|
//# sourceMappingURL=fs.d.ts.map
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const APP_VERSION = "0.1.
|
|
1
|
+
export declare const APP_VERSION = "0.1.106";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { ClientAdapter, ManagedIndex, McpxConfig, Skill, SyncClientOptions, SyncResult, PluginSyncInput, PluginSyncResult } from "../types.js";
|
|
2
|
-
export declare class OpenCodeAdapter implements ClientAdapter {
|
|
3
|
-
readonly id: "opencode";
|
|
4
|
-
detectConfigPath(): string | null;
|
|
5
|
-
supportsHttp(): boolean;
|
|
6
|
-
syncPlugins(plugins: PluginSyncInput[]): PluginSyncResult;
|
|
7
|
-
syncSkills(skills: Skill[]): void;
|
|
8
|
-
scanForImports(_config: McpxConfig, managedIndex: ManagedIndex): import("../types.js").ClientImportScanResult;
|
|
9
|
-
syncGateway(_config: McpxConfig, options: SyncClientOptions): SyncResult;
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=opencode.d.ts.map
|