@agent-native/core 0.48.4 → 0.49.1
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/agent/context-xray/actions/context-evict.d.ts +1 -1
- package/dist/agent/context-xray/actions/context-pin.d.ts +1 -1
- package/dist/agent/context-xray/actions/context-report.d.ts +4 -4
- package/dist/agent/context-xray/actions/context-restore.d.ts +1 -1
- package/dist/application-state/handlers.d.ts +2 -2
- package/dist/application-state/handlers.d.ts.map +1 -1
- package/dist/cli/app-skill.d.ts +157 -0
- package/dist/cli/app-skill.d.ts.map +1 -0
- package/dist/cli/app-skill.js +17 -7
- package/dist/cli/app-skill.js.map +1 -1
- package/dist/cli/audit-agent-web.d.ts +2 -0
- package/dist/cli/audit-agent-web.d.ts.map +1 -0
- package/dist/cli/code-agent-connector.d.ts +17 -0
- package/dist/cli/code-agent-connector.d.ts.map +1 -0
- package/dist/cli/code.d.ts +66 -0
- package/dist/cli/code.d.ts.map +1 -0
- package/dist/cli/connect.d.ts +168 -0
- package/dist/cli/connect.d.ts.map +1 -0
- package/dist/cli/connect.js +118 -30
- package/dist/cli/connect.js.map +1 -1
- package/dist/cli/context-xray-local.d.ts +16 -0
- package/dist/cli/context-xray-local.d.ts.map +1 -0
- package/dist/cli/create-workspace.d.ts +8 -0
- package/dist/cli/create-workspace.d.ts.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/info.d.ts +2 -0
- package/dist/cli/info.d.ts.map +1 -0
- package/dist/cli/mcp-config-writers.d.ts +108 -0
- package/dist/cli/mcp-config-writers.d.ts.map +1 -0
- package/dist/cli/mcp-config-writers.js +143 -0
- package/dist/cli/mcp-config-writers.js.map +1 -1
- package/dist/cli/mcp.d.ts +16 -0
- package/dist/cli/mcp.d.ts.map +1 -0
- package/dist/cli/mcp.js +10 -10
- package/dist/cli/mcp.js.map +1 -1
- package/dist/cli/migrate.d.ts +38 -0
- package/dist/cli/migrate.d.ts.map +1 -0
- package/dist/cli/plan-local.d.ts +43 -0
- package/dist/cli/plan-local.d.ts.map +1 -0
- package/dist/cli/plan-publish-store.d.ts +62 -0
- package/dist/cli/plan-publish-store.d.ts.map +1 -0
- package/dist/cli/pr-visual-recap-workflow.d.ts +11 -0
- package/dist/cli/pr-visual-recap-workflow.d.ts.map +1 -0
- package/dist/cli/pr-visual-recap-workflow.js +1 -1
- package/dist/cli/pr-visual-recap-workflow.js.map +1 -1
- package/dist/cli/recap.d.ts +453 -0
- package/dist/cli/recap.d.ts.map +1 -0
- package/dist/cli/recap.js +228 -95
- package/dist/cli/recap.js.map +1 -1
- package/dist/cli/skills.d.ts +193 -0
- package/dist/cli/skills.d.ts.map +1 -0
- package/dist/cli/skills.js +369 -171
- package/dist/cli/skills.js.map +1 -1
- package/dist/cli/telemetry.d.ts +13 -0
- package/dist/cli/telemetry.d.ts.map +1 -0
- package/dist/cli/telemetry.js +115 -0
- package/dist/cli/telemetry.js.map +1 -0
- package/dist/cli/workspace-dev.d.ts +96 -0
- package/dist/cli/workspace-dev.d.ts.map +1 -0
- package/dist/client/blocks/library/AnnotatedCodeBlock.d.ts.map +1 -1
- package/dist/client/blocks/library/AnnotatedCodeBlock.js +15 -7
- package/dist/client/blocks/library/AnnotatedCodeBlock.js.map +1 -1
- package/dist/client/blocks/library/DiffBlock.d.ts.map +1 -1
- package/dist/client/blocks/library/DiffBlock.js +17 -10
- package/dist/client/blocks/library/DiffBlock.js.map +1 -1
- package/dist/client/blocks/library/annotation-rail.d.ts +5 -0
- package/dist/client/blocks/library/annotation-rail.d.ts.map +1 -1
- package/dist/client/blocks/library/annotation-rail.js +6 -0
- package/dist/client/blocks/library/annotation-rail.js.map +1 -1
- package/dist/client/blocks/types.d.ts +5 -0
- package/dist/client/blocks/types.d.ts.map +1 -1
- package/dist/client/blocks/types.js.map +1 -1
- package/dist/extensions/schema.d.ts +54 -54
- package/dist/extensions/slots/schema.d.ts +13 -13
- package/dist/file-upload/actions/upload-image.d.ts +4 -4
- package/dist/mcp/actions/create-org-service-token.d.ts +1 -1
- package/dist/mcp/actions/list-org-service-tokens.d.ts +7 -7
- package/dist/mcp/build-server.d.ts +12 -12
- package/dist/mcp/build-server.d.ts.map +1 -1
- package/dist/mcp/build-server.js.map +1 -1
- package/dist/mcp/connect-route.js +1 -1
- package/dist/mcp/connect-route.js.map +1 -1
- package/dist/mcp/oauth-route.d.ts +10 -0
- package/dist/mcp/oauth-route.d.ts.map +1 -1
- package/dist/mcp/oauth-route.js +34 -3
- package/dist/mcp/oauth-route.js.map +1 -1
- package/dist/mcp/oauth-store.d.ts +15 -1
- package/dist/mcp/oauth-store.d.ts.map +1 -1
- package/dist/mcp/oauth-store.js +60 -4
- package/dist/mcp/oauth-store.js.map +1 -1
- package/dist/mcp/oauth-token.d.ts +3 -1
- package/dist/mcp/oauth-token.d.ts.map +1 -1
- package/dist/mcp/oauth-token.js +78 -6
- package/dist/mcp/oauth-token.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +8 -6
- package/dist/mcp/server.js.map +1 -1
- package/dist/observability/routes.d.ts +11 -11
- package/dist/org/handlers.d.ts +7 -11
- package/dist/org/handlers.d.ts.map +1 -1
- package/dist/secrets/schema.d.ts +7 -7
- package/dist/server/csrf.d.ts +1 -1
- package/dist/server/csrf.d.ts.map +1 -1
- package/dist/server/poll-events.d.ts +1 -1
- package/dist/server/security-headers.d.ts +1 -1
- package/dist/server/security-headers.d.ts.map +1 -1
- package/dist/sharing/actions/list-resource-shares.d.ts +3 -3
- package/dist/sharing/actions/set-resource-visibility.d.ts +2 -2
- package/dist/sharing/actions/share-resource.d.ts +4 -4
- package/dist/sharing/actions/unshare-resource.d.ts +1 -1
- package/dist/sharing/schema.d.ts +12 -12
- package/dist/templates/workspace-core/.agents/skills/authentication/SKILL.md +2 -2
- package/dist/templates/workspace-core/.agents/skills/external-agents/SKILL.md +6 -6
- package/dist/templates/workspace-core/.agents/skills/external-agents/references/mcp-apps-embedding.md +2 -2
- package/dist/workspace-files/schema.d.ts +8 -8
- package/docs/content/deployment.md +32 -8
- package/docs/content/drop-in-agent.md +24 -17
- package/docs/content/external-agents.md +14 -0
- package/docs/content/plan-plugin.md +22 -7
- package/docs/content/template-content.md +36 -0
- package/docs/content/template-plan.md +22 -0
- package/package.json +5 -1
- package/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +2 -2
- package/src/templates/workspace-core/.agents/skills/external-agents/SKILL.md +6 -6
- package/src/templates/workspace-core/.agents/skills/external-agents/references/mcp-apps-embedding.md +2 -2
|
@@ -3,7 +3,7 @@ declare const _default: import("../../../action.js").ActionDefinition<{
|
|
|
3
3
|
segmentId: string;
|
|
4
4
|
}, {
|
|
5
5
|
directive: import("../../../shared/context-xray.js").ContextDirective;
|
|
6
|
-
manifest: import("../../../shared/context-xray.js").ContextManifest
|
|
6
|
+
manifest: import("../../../shared/context-xray.js").ContextManifest;
|
|
7
7
|
}>;
|
|
8
8
|
export default _default;
|
|
9
9
|
//# sourceMappingURL=context-evict.d.ts.map
|
|
@@ -3,7 +3,7 @@ declare const _default: import("../../../action.js").ActionDefinition<{
|
|
|
3
3
|
segmentId: string;
|
|
4
4
|
}, {
|
|
5
5
|
directive: import("../../../shared/context-xray.js").ContextDirective;
|
|
6
|
-
manifest: import("../../../shared/context-xray.js").ContextManifest
|
|
6
|
+
manifest: import("../../../shared/context-xray.js").ContextManifest;
|
|
7
7
|
}>;
|
|
8
8
|
export default _default;
|
|
9
9
|
//# sourceMappingURL=context-pin.d.ts.map
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { type ContextManifest } from "../../../shared/context-xray.js";
|
|
2
2
|
declare const _default: import("../../../action.js").ActionDefinition<{
|
|
3
3
|
threadId: string;
|
|
4
|
-
model?: string
|
|
4
|
+
model?: string;
|
|
5
5
|
segments?: {
|
|
6
6
|
segmentId: string;
|
|
7
7
|
label: string;
|
|
8
8
|
tokenCount: number;
|
|
9
|
-
group?: string
|
|
10
|
-
status?: "active" | "pinned" | "evicted" | "summarized"
|
|
11
|
-
}[]
|
|
9
|
+
group?: string;
|
|
10
|
+
status?: "active" | "pinned" | "evicted" | "summarized";
|
|
11
|
+
}[];
|
|
12
12
|
}, ContextManifest>;
|
|
13
13
|
export default _default;
|
|
14
14
|
//# sourceMappingURL=context-report.d.ts.map
|
|
@@ -3,7 +3,7 @@ declare const _default: import("../../../action.js").ActionDefinition<{
|
|
|
3
3
|
segmentId: string;
|
|
4
4
|
}, {
|
|
5
5
|
restored: number;
|
|
6
|
-
manifest: import("../../../shared/context-xray.js").ContextManifest
|
|
6
|
+
manifest: import("../../../shared/context-xray.js").ContextManifest;
|
|
7
7
|
}>;
|
|
8
8
|
export default _default;
|
|
9
9
|
//# sourceMappingURL=context-restore.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const getState: import("h3").EventHandlerWithFetch<import("h3").EventHandlerRequest, Promise<Record<string, unknown
|
|
1
|
+
export declare const getState: import("h3").EventHandlerWithFetch<import("h3").EventHandlerRequest, Promise<Record<string, unknown>>>;
|
|
2
2
|
export declare const putState: import("h3").EventHandlerWithFetch<import("h3").EventHandlerRequest, Promise<any>>;
|
|
3
3
|
export declare const deleteState: import("h3").EventHandlerWithFetch<import("h3").EventHandlerRequest, Promise<{
|
|
4
4
|
ok: boolean;
|
|
@@ -6,7 +6,7 @@ export declare const deleteState: import("h3").EventHandlerWithFetch<import("h3"
|
|
|
6
6
|
/** List all compose drafts */
|
|
7
7
|
export declare const listComposeDrafts: import("h3").EventHandlerWithFetch<import("h3").EventHandlerRequest, Promise<Record<string, unknown>[]>>;
|
|
8
8
|
/** Get a single compose draft */
|
|
9
|
-
export declare const getComposeDraft: import("h3").EventHandlerWithFetch<import("h3").EventHandlerRequest, Promise<Record<string, unknown
|
|
9
|
+
export declare const getComposeDraft: import("h3").EventHandlerWithFetch<import("h3").EventHandlerRequest, Promise<Record<string, unknown>>>;
|
|
10
10
|
/** Create or update a compose draft */
|
|
11
11
|
export declare const putComposeDraft: import("h3").EventHandlerWithFetch<import("h3").EventHandlerRequest, Promise<any>>;
|
|
12
12
|
/** Delete a single compose draft */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/application-state/handlers.ts"],"names":[],"mappings":"AAuCA,eAAO,MAAM,QAAQ
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/application-state/handlers.ts"],"names":[],"mappings":"AAuCA,eAAO,MAAM,QAAQ,wGAKnB,CAAC;AAEH,eAAO,MAAM,QAAQ,oFAOnB,CAAC;AAEH,eAAO,MAAM,WAAW;;GAMtB,CAAC;AAQH,8BAA8B;AAC9B,eAAO,MAAM,iBAAiB,0GAI5B,CAAC;AAEH,iCAAiC;AACjC,eAAO,MAAM,eAAe,wGAK1B,CAAC;AAEH,uCAAuC;AACvC,eAAO,MAAM,eAAe,oFAe1B,CAAC;AAEH,oCAAoC;AACpC,eAAO,MAAM,kBAAkB;;GAM7B,CAAC;AAEH,gCAAgC;AAChC,eAAO,MAAM,sBAAsB;;GAOlC,CAAC"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `agent-native app-skill` packages an agent-native app as a distributable
|
|
3
|
+
* skill bundle: instructions + MCP connector + embeddable app surfaces.
|
|
4
|
+
*
|
|
5
|
+
* The manifest intentionally contains no user secrets. Hosted installs write
|
|
6
|
+
* URL-only MCP entries; clients that need auth complete OAuth/device setup in
|
|
7
|
+
* the host. Local installs point at a developer-owned app process.
|
|
8
|
+
*/
|
|
9
|
+
import { type ClientId } from "./mcp-config-writers.js";
|
|
10
|
+
export type SkillVisibility = "internal" | "exported" | "both";
|
|
11
|
+
export type AppSkillHostAdapter = "codex-plugin" | "claude-marketplace" | "vercel-skills" | "plain-skill" | "claude-skill" | "chatgpt-mcp" | "generic-mcp";
|
|
12
|
+
export interface AppSkillManifestSkill {
|
|
13
|
+
path: string;
|
|
14
|
+
visibility: SkillVisibility;
|
|
15
|
+
exportAs?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface AppSkillSurface {
|
|
18
|
+
id: string;
|
|
19
|
+
action?: string;
|
|
20
|
+
path: string;
|
|
21
|
+
mediaTypes?: string[];
|
|
22
|
+
defaultMediaType?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface AppSkillManifest {
|
|
25
|
+
schemaVersion: 1;
|
|
26
|
+
id: string;
|
|
27
|
+
displayName: string;
|
|
28
|
+
description: string;
|
|
29
|
+
/**
|
|
30
|
+
* Optional semver base for generated plugin manifests. Codex keys its plugin
|
|
31
|
+
* cache on the version string, so the packer appends a content hash to this
|
|
32
|
+
* base; leave it unset to default to "1.0.0".
|
|
33
|
+
*/
|
|
34
|
+
version?: string;
|
|
35
|
+
hosted: {
|
|
36
|
+
url: string;
|
|
37
|
+
mcpUrl: string;
|
|
38
|
+
};
|
|
39
|
+
mcp: {
|
|
40
|
+
serverName: string;
|
|
41
|
+
aliases?: string[];
|
|
42
|
+
};
|
|
43
|
+
local?: {
|
|
44
|
+
template?: string;
|
|
45
|
+
sourcePath?: string;
|
|
46
|
+
defaultUrl?: string;
|
|
47
|
+
commands?: {
|
|
48
|
+
install?: string;
|
|
49
|
+
dev?: string;
|
|
50
|
+
start?: string;
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
auth?: {
|
|
54
|
+
mode?: "oauth" | "device" | "none";
|
|
55
|
+
setup?: string;
|
|
56
|
+
};
|
|
57
|
+
surfaces: AppSkillSurface[];
|
|
58
|
+
skills: AppSkillManifestSkill[];
|
|
59
|
+
hostAdapters: AppSkillHostAdapter[];
|
|
60
|
+
}
|
|
61
|
+
export interface LoadedAppSkillManifest {
|
|
62
|
+
manifest: AppSkillManifest;
|
|
63
|
+
file: string;
|
|
64
|
+
dir: string;
|
|
65
|
+
}
|
|
66
|
+
export interface ParsedAppSkillArgs {
|
|
67
|
+
command: "ensure" | "launch" | "pack" | "help";
|
|
68
|
+
manifest?: string;
|
|
69
|
+
client: string;
|
|
70
|
+
scope: string;
|
|
71
|
+
serverName?: string;
|
|
72
|
+
out?: string;
|
|
73
|
+
into?: string;
|
|
74
|
+
mode: "hosted" | "local";
|
|
75
|
+
dryRun: boolean;
|
|
76
|
+
skipInstall: boolean;
|
|
77
|
+
noRegister: boolean;
|
|
78
|
+
printJson: boolean;
|
|
79
|
+
yes: boolean;
|
|
80
|
+
}
|
|
81
|
+
export interface EnsureAppSkillOptions {
|
|
82
|
+
mode?: "hosted" | "local";
|
|
83
|
+
clients?: ClientId[];
|
|
84
|
+
scope?: string;
|
|
85
|
+
serverName?: string;
|
|
86
|
+
baseDir?: string;
|
|
87
|
+
dryRun?: boolean;
|
|
88
|
+
confirm?: boolean;
|
|
89
|
+
yes?: boolean;
|
|
90
|
+
log?: (message: string) => void;
|
|
91
|
+
}
|
|
92
|
+
export interface EnsureAppSkillResult {
|
|
93
|
+
mode: "hosted" | "local";
|
|
94
|
+
serverName: string;
|
|
95
|
+
mcpUrl: string;
|
|
96
|
+
clients: ClientId[];
|
|
97
|
+
written: {
|
|
98
|
+
client: ClientId;
|
|
99
|
+
file: string;
|
|
100
|
+
}[];
|
|
101
|
+
}
|
|
102
|
+
export interface LaunchAppSkillOptions {
|
|
103
|
+
mode?: "hosted" | "local";
|
|
104
|
+
into?: string;
|
|
105
|
+
dryRun?: boolean;
|
|
106
|
+
skipInstall?: boolean;
|
|
107
|
+
noRegister?: boolean;
|
|
108
|
+
clients?: ClientId[];
|
|
109
|
+
scope?: string;
|
|
110
|
+
serverName?: string;
|
|
111
|
+
baseDir?: string;
|
|
112
|
+
confirm?: boolean;
|
|
113
|
+
yes?: boolean;
|
|
114
|
+
log?: (message: string) => void;
|
|
115
|
+
}
|
|
116
|
+
export interface AppSkillLaunchPlan {
|
|
117
|
+
mode: "hosted" | "local";
|
|
118
|
+
appId: string;
|
|
119
|
+
appDir?: string;
|
|
120
|
+
sourceDir?: string;
|
|
121
|
+
url: string;
|
|
122
|
+
mcpUrl: string;
|
|
123
|
+
serverName: string;
|
|
124
|
+
commands: {
|
|
125
|
+
install?: string;
|
|
126
|
+
dev?: string;
|
|
127
|
+
start?: string;
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
export declare function normalizeAppSkillManifest(raw: unknown): AppSkillManifest;
|
|
131
|
+
export declare function findAppSkillManifest(startDir?: string): string;
|
|
132
|
+
export declare function loadAppSkillManifest(file?: string): LoadedAppSkillManifest;
|
|
133
|
+
export declare function exportedSkills(manifest: AppSkillManifest): AppSkillManifestSkill[];
|
|
134
|
+
export declare function internalSkills(manifest: AppSkillManifest): AppSkillManifestSkill[];
|
|
135
|
+
export declare function parseAppSkillArgs(argv: string[]): ParsedAppSkillArgs;
|
|
136
|
+
export declare function exportedSkillContentHash(manifestDir: string, skills: AppSkillManifestSkill[], manifest: AppSkillManifest): string;
|
|
137
|
+
/**
|
|
138
|
+
* Plugin version embeds a content hash of the exported skills + MCP server
|
|
139
|
+
* identity/endpoint.
|
|
140
|
+
* Codex keys its plugin cache on the version string, so a changed skill or MCP
|
|
141
|
+
* URL yields a new version and `codex plugin marketplace upgrade` (which runs
|
|
142
|
+
* on startup) delivers the update automatically — no manual semver bump per
|
|
143
|
+
* edit. Claude Code uses commit-SHA versioning instead (plugin.json omits
|
|
144
|
+
* version), so it auto-updates on every push.
|
|
145
|
+
*/
|
|
146
|
+
export declare function resolvePluginVersion(manifest: AppSkillManifest, manifestDir: string, skills: AppSkillManifestSkill[]): string;
|
|
147
|
+
export interface AppSkillPackResult {
|
|
148
|
+
outDir: string;
|
|
149
|
+
exportedSkillNames: string[];
|
|
150
|
+
files: string[];
|
|
151
|
+
}
|
|
152
|
+
export declare function buildAppSkillPack(loaded: LoadedAppSkillManifest, outDir: string): AppSkillPackResult;
|
|
153
|
+
export declare function resolveLaunchPlan(loaded: LoadedAppSkillManifest, options?: LaunchAppSkillOptions): AppSkillLaunchPlan;
|
|
154
|
+
export declare function ensureAppSkill(loaded: LoadedAppSkillManifest, options?: EnsureAppSkillOptions): Promise<EnsureAppSkillResult>;
|
|
155
|
+
export declare function launchAppSkill(loaded: LoadedAppSkillManifest, options?: LaunchAppSkillOptions): Promise<AppSkillLaunchPlan>;
|
|
156
|
+
export declare function runAppSkill(argv: string[]): Promise<void>;
|
|
157
|
+
//# sourceMappingURL=app-skill.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-skill.d.ts","sourceRoot":"","sources":["../../src/cli/app-skill.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/app-skill.js
CHANGED
|
@@ -11,7 +11,7 @@ import os from "node:os";
|
|
|
11
11
|
import path from "node:path";
|
|
12
12
|
import { spawn } from "node:child_process";
|
|
13
13
|
import { createHash } from "node:crypto";
|
|
14
|
-
import { buildHttpMcpEntry } from "./mcp-config-writers.js";
|
|
14
|
+
import { buildHttpMcpEntry, removeSameUrlDuplicatesForClient, } from "./mcp-config-writers.js";
|
|
15
15
|
import { resolveClients, writeConfigs } from "./connect.js";
|
|
16
16
|
const HELP = `agent-native app-skill
|
|
17
17
|
|
|
@@ -877,13 +877,23 @@ export async function ensureAppSkill(loaded, options = {}) {
|
|
|
877
877
|
if (options.confirm && !options.yes) {
|
|
878
878
|
await confirmMcpRegistration(result, loaded.manifest.displayName, scope);
|
|
879
879
|
}
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
880
|
+
const baseDir = options.baseDir ?? process.cwd();
|
|
881
|
+
result.written = writeConfigs(clients, serverName, plan.mcpUrl, undefined, scope, baseDir);
|
|
882
|
+
// Aliases are intentionally NOT written as separate entries. Instead,
|
|
883
|
+
// repurpose the alias list as a cleanup list: remove any other entries in
|
|
884
|
+
// the same config files that point at the same URL (covers legacy alias
|
|
885
|
+
// names, old default names like 'agent-native-<slug>', and any stale
|
|
886
|
+
// custom names left from previous installs).
|
|
887
|
+
const allRemovedNames = [];
|
|
888
|
+
for (const client of clients) {
|
|
889
|
+
const removed = removeSameUrlDuplicatesForClient(client, serverName, plan.mcpUrl, baseDir, scope);
|
|
890
|
+
allRemovedNames.push(...removed);
|
|
885
891
|
}
|
|
886
|
-
|
|
892
|
+
const uniqueRemoved = [...new Set(allRemovedNames)];
|
|
893
|
+
const logMsg = uniqueRemoved.length > 0
|
|
894
|
+
? `Registered "${serverName}" for ${clients.join(", ")} at ${plan.mcpUrl}; removed duplicate entries: ${uniqueRemoved.join(", ")}`
|
|
895
|
+
: `Registered "${serverName}" for ${clients.join(", ")} at ${plan.mcpUrl}`;
|
|
896
|
+
options.log?.(logMsg);
|
|
887
897
|
return result;
|
|
888
898
|
}
|
|
889
899
|
async function confirmMcpRegistration(result, displayName, scope) {
|