MCPcopy Create free account
hub / github.com/UsefulSoftwareCo/executor / startHarness

Function startHarness

apps/local/src/auth-tool-failures.test.ts:93–169  ·  view source on GitHub ↗
(tmpDir: string)

Source from the content-addressed store, hash-verified

91}
92
93const startHarness = async (tmpDir: string): Promise<Harness> => {
94 const plugins = [
95 openApiPlugin({ httpClientLayer: FetchHttpClient.layer }),
96 fileSecretsPlugin({ directory: tmpDir }),
97 memoryCredentialsPlugin(),
98 ] as const;
99 const sqlite = await createSqliteFumaDb({
100 tables: collectTables(),
101 namespace: "executor_local_auth_tool_failures_test",
102 path: join(tmpDir, "data.db"),
103 });
104
105 const executor = await Effect.runPromise(
106 createExecutor({
107 tenant: Tenant.make(`test-${randomBytes(4).toString("hex")}`),
108 subject: Subject.make("local"),
109 db: sqlite.db,
110 plugins,
111 onElicitation: "accept-all",
112 }),
113 );
114
115 const engine = createExecutionEngine({
116 executor,
117 codeExecutor: makeQuickJsExecutor(),
118 });
119
120 const TestObservability = observabilityMiddleware(TestApi);
121 const TestApiBase = HttpApiBuilder.layer(TestApi).pipe(
122 Layer.provide(CoreHandlers),
123 Layer.provide(OpenApiHandlers),
124 Layer.provide(TestObservability),
125 Layer.provide(ErrorCaptureLive),
126 );
127
128 const { handler: webHandler, dispose: disposeHandler } = HttpRouter.toWebHandler(
129 TestApiBase.pipe(
130 Layer.provideMerge(Layer.succeed(OpenApiExtensionService)(executor.openapi)),
131 Layer.provideMerge(Layer.succeed(ExecutorService)(executor)),
132 Layer.provideMerge(Layer.succeed(ExecutionEngineService)(engine)),
133 Layer.provideMerge(HttpServer.layerServices),
134 Layer.provideMerge(Layer.succeed(HttpRouter.RouterConfig)({ maxParamLength: 1000 })),
135 ),
136 );
137
138 return {
139 fetch: ((input: RequestInfo | URL, init?: RequestInit) =>
140 webHandler(
141 input instanceof Request ? input : new Request(input, init),
142 )) as typeof globalThis.fetch,
143 // Create an org connection whose value cannot resolve: a `from` reference
144 // to a memory-provider item that was never stored resolves to `null`, so
145 // tool invocation surfaces `connection_value_missing`.
146 addConnection: (input) =>
147 Effect.runPromise(
148 executor.connections
149 .create({
150 owner: "org",

Callers 1

Calls 9

createSqliteFumaDbFunction · 0.90
createExecutorFunction · 0.90
createExecutionEngineFunction · 0.90
makeQuickJsExecutorFunction · 0.90
observabilityMiddlewareFunction · 0.90
fileSecretsPluginFunction · 0.85
collectTablesFunction · 0.85
toStringMethod · 0.80
closeMethod · 0.65

Tested by

no test coverage detected