mirror of
https://github.com/morluto/rea.git
synced 2026-11-13 18:22:42 +00:00
* 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
54 lines
1.8 KiB
TypeScript
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;
|
|
}
|