refactor(ts): complete legacy host removal — drop fastify/commander/zod, delete MCP SDK server, remove ManagedRuntime facades

Finishes the remaining EFFECT_NATIVE_REWRITE_PLAN stages in one verified slice:
- fastify, @fastify/websocket, commander, zod removed from all package manifests
- legacy @modelcontextprotocol/sdk stdio server deleted; effect/unstable/ai McpServer is canonical
- no ManagedRuntime or Effect.runPromise program facades remain in production source
- gateway server/rpc-contract and client rpc/socket moved onto Effect v4 native http/rpc/socket layers

Gates (force-run, no cache): check:tsgo, build, test (96 tests / 11 tasks) all green.
Native-class inventory: zero blocking production classes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
elpresidank 2026-06-11 06:29:29 -05:00
parent a26463afc1
commit cf12defcd8
30 changed files with 1506 additions and 456 deletions

View file

@ -13,7 +13,7 @@ describe("FlowsApi", () => {
makeRequest: vi.fn(),
};
// eslint-disable-next-line @typescript-eslint/no-explicit-any
flowsApi = new FlowsApi(mockApi as any);
flowsApi = FlowsApi(mockApi as any);
});
describe("startFlow", () => {

View file

@ -23,7 +23,7 @@ describe("workbench API contracts", () => {
values: [{ type: "prompt", key: "welcome", value: "hello" }],
});
const result = await new ConfigApi(base).getValues("prompt");
const result = await ConfigApi(base).getValues("prompt");
expect(makeRequest).toHaveBeenCalledWith(
"config",
@ -45,7 +45,7 @@ describe("workbench API contracts", () => {
],
});
const result = await new ConfigApi(base).getTokenCosts();
const result = await ConfigApi(base).getTokenCosts();
expect(result).toEqual([
{ model: "gpt-test", input_price: 0.1, output_price: 0.2 },
@ -55,7 +55,7 @@ describe("workbench API contracts", () => {
it("writes and deletes config using Python-style key/value arrays", async () => {
const { base, makeRequest } = makeApi();
makeRequest.mockResolvedValue({});
const config = new ConfigApi(base);
const config = ConfigApi(base);
await config.putConfig([{ type: "tool", key: "search", value: "{}" }]);
await config.deleteConfig({ type: "tool", key: "search" });
@ -86,7 +86,7 @@ describe("workbench API contracts", () => {
const { base, makeRequest } = makeApi();
const document = { id: "doc-1", title: "Document" };
const processing = { id: "proc-1", "document-id": "doc-1" };
const librarian = new LibrarianApi(base);
const librarian = LibrarianApi(base);
makeRequest
.mockResolvedValueOnce({ "document-metadatas": [document] })
@ -101,7 +101,7 @@ describe("workbench API contracts", () => {
const document = { id: "doc-1", title: "Document" };
makeRequest.mockResolvedValue({ "document-metadata": document });
const result = await new LibrarianApi(base).getDocumentMetadata("doc-1");
const result = await LibrarianApi(base).getDocumentMetadata("doc-1");
expect(makeRequest).toHaveBeenCalledWith(
"librarian",
@ -120,7 +120,7 @@ describe("workbench API contracts", () => {
const { base, makeRequest } = makeApi();
makeRequest.mockResolvedValue({});
await new LibrarianApi(base).loadDocument(
await LibrarianApi(base).loadDocument(
"SGVsbG8=",
"text/plain",
"Hello",
@ -145,7 +145,7 @@ describe("workbench API contracts", () => {
describe("KnowledgeApi", () => {
it("lists and loads document embedding cores", async () => {
const { base, makeRequest } = makeApi();
const knowledge = new KnowledgeApi(base);
const knowledge = KnowledgeApi(base);
makeRequest
.mockResolvedValueOnce({ ids: ["de-core"] })
@ -178,7 +178,7 @@ describe("workbench API contracts", () => {
const { base, makeRequest } = makeApi();
makeRequest.mockResolvedValue({});
await new KnowledgeApi(base).unloadKgCore("kg-core", "default");
await KnowledgeApi(base).unloadKgCore("kg-core", "default");
expect(makeRequest).toHaveBeenCalledWith(
"knowledge",