Files
reverse-engineering-anything/src/application/ClientRegistrationProfile.ts
T
morluto 69630c0362 fix(cli)!: own MCP client registration boundaries (#10102)
* fix(cli)!: own MCP client registration boundaries

* fix(cli): bind registration to native connection facts

* test(cli): isolate registration failure and fixture controls

* test(cli): distinguish native syntax and launcher alignment

* fix(cli): preserve registration selection and cancellation

* fix(cli): honor Goose and Zed native settings paths

* fix(cli): honor registration output controls

* fix(cli): reject disabled Junie global locations
2026-11-11 09:05:21 -05:00

54 lines
1.8 KiB
TypeScript

import type { ClientRegistrationDialect } from "./ClientConfigurationDocument.js";
/** Proven native conditions incompatible with selecting the retained stdio launcher. */
export type NativeStdioIncompatibility =
| {
readonly kind:
| "truthy"
| "non-nullish"
| "present"
| "missing"
| "nullish"
| "string"
| "invalid-string";
readonly field: string;
}
| {
readonly kind: "required-enum" | "optional-enum";
readonly field: string;
readonly values: readonly string[];
}
| { readonly kind: "equals"; readonly field: string; readonly value: string }
| {
readonly kind: "all";
readonly conditions: readonly NativeStdioIncompatibility[];
};
/** Native connection semantics, separate from the format storing the document. */
export type ClientRegistrationConnectionProfile =
| {
readonly kind: "flat";
/** Proven native selectors/aliases in addition to canonical stdio fields. */
readonly fields: readonly string[];
readonly stdio: readonly NativeStdioIncompatibility[];
}
| { readonly kind: "cline" }
| { readonly kind: "commandcode" }
| {
readonly kind: "stdio-only";
/** Documented local members; other row members leave write applicability unknown. */
readonly documentedFields: readonly string[];
}
| { readonly kind: "unavailable"; readonly reason: string };
/** Resolved by the client definition owner, never inferred from display text. */
export interface ClientRegistrationProfile {
readonly nativeClient: string;
readonly connection: ClientRegistrationConnectionProfile;
}
export interface ClientRegistrationTarget {
readonly dialect: ClientRegistrationDialect;
readonly profile: ClientRegistrationProfile;
}