Unified · Split
| @@ -28,7 +28,7 @@ import { · 27 unmodified lines | ||
| 28 | 28 | ThreadManagementService, |
| 29 | 29 | } from "../orchestration-v2/ThreadManagementService.ts"; |
| 30 | 30 | import type { McpInvocationScope } from "./McpInvocationContext.ts"; |
| 31 | −import { layer, PendingRequestMcpService } from "./PendingRequestMcpService.ts"; | |
| 31 | +import * as PendingRequestMcpService from "./PendingRequestMcpService.ts"; | |
| 32 | 32 | |
| 33 | 33 | const parentThreadId = ThreadId.make("thread:pending-request-parent"); |
| 34 | 34 | const childThreadId = ThreadId.make("thread:pending-request-child"); |
| @@ -225,7 +225,7 @@ function serviceLayer(input: { · 190 unmodified lines | ||
| 225 | 225 | readonly getReceipt?: ThreadManagementService["Service"]["getCommandReceipt"]; |
| 226 | 226 | readonly dispatch?: ThreadManagementService["Service"]["dispatch"]; |
| 227 | 227 | }) { |
| 228 | − return layer.pipe( | |
| 228 | + return PendingRequestMcpService.layer.pipe( | |
| 229 | 229 | Layer.provide( |
| 230 | 230 | Layer.mergeAll( |
| 231 | 231 | NodeServices.layer, |
| @@ -254,7 +254,7 @@ describe("PendingRequestMcpService", () => { · 22 unmodified lines | ||
| 254 | 254 | "lists and reads only structured user-input questions on direct app-owned children", |
| 255 | 255 | () => |
| 256 | 256 | Effect.gen(function* () { |
| 257 | − const service = yield* PendingRequestMcpService; | |
| 257 | + const service = yield* PendingRequestMcpService.PendingRequestMcpService; | |
| 258 | 258 | const listed = yield* service.list(scope, {}); |
| 259 | 259 | assert.equal(listed.requests.length, 1); |
| 260 | 260 | assert.equal(listed.requests[0]?.taskId, taskId); |
| @@ -296,7 +296,7 @@ describe("PendingRequestMcpService", () => { · 35 unmodified lines | ||
| 296 | 296 | }); |
| 297 | 297 | |
| 298 | 298 | yield* Effect.gen(function* () { |
| 299 | − const service = yield* PendingRequestMcpService; | |
| 299 | + const service = yield* PendingRequestMcpService.PendingRequestMcpService; | |
| 300 | 300 | const first = yield* service.list(scope, { limit: 1 }); |
| 301 | 301 | assert.deepEqual( |
| 302 | 302 | first.requests.map((request) => request.requestId), |
| @@ -356,7 +356,7 @@ describe("PendingRequestMcpService", () => { · 53 unmodified lines | ||
| 356 | 356 | ); |
| 357 | 357 | |
| 358 | 358 | yield* Effect.gen(function* () { |
| 359 | − const service = yield* PendingRequestMcpService; | |
| 359 | + const service = yield* PendingRequestMcpService.PendingRequestMcpService; | |
| 360 | 360 | const first = yield* service.list(scope, { limit: 50 }); |
| 361 | 361 | assert.deepEqual(first.requests, []); |
| 362 | 362 | assert.isNotNull(first.nextCursor); |
| @@ -407,7 +407,7 @@ describe("PendingRequestMcpService", () => { · 44 unmodified lines | ||
| 407 | 407 | }); |
| 408 | 408 | |
| 409 | 409 | yield* Effect.gen(function* () { |
| 410 | − const service = yield* PendingRequestMcpService; | |
| 410 | + const service = yield* PendingRequestMcpService.PendingRequestMcpService; | |
| 411 | 411 | const listed = yield* service.list(scope, {}); |
| 412 | 412 | assert.deepEqual( |
| 413 | 413 | listed.requests.map((request) => request.requestId), |
| @@ -432,7 +432,7 @@ describe("PendingRequestMcpService", () => { · 18 unmodified lines | ||
| 432 | 432 | ); |
| 433 | 433 | |
| 434 | 434 | yield* Effect.gen(function* () { |
| 435 | − const service = yield* PendingRequestMcpService; | |
| 435 | + const service = yield* PendingRequestMcpService.PendingRequestMcpService; | |
| 436 | 436 | const failed = yield* service.list(scope, {}).pipe(Effect.flip); |
| 437 | 437 | assert.equal(failed.code, "orchestration_error"); |
| 438 | 438 | assert.notInclude(failed.message, "sqlite credentials leaked"); |
| @@ -466,7 +466,7 @@ describe("PendingRequestMcpService", () => { · 27 unmodified lines | ||
| 466 | 466 | }); |
| 467 | 467 | |
| 468 | 468 | return Effect.gen(function* () { |
| 469 | − const service = yield* PendingRequestMcpService; | |
| 469 | + const service = yield* PendingRequestMcpService.PendingRequestMcpService; | |
| 470 | 470 | const read = yield* service.read(scope, { childThreadId, requestId }); |
| 471 | 471 | assert.equal(read.questionPayloadStatus, "complete"); |
| 472 | 472 | assert.isTrue(read.answerable); |
| @@ -488,7 +488,7 @@ describe("PendingRequestMcpService", () => { · 15 unmodified lines | ||
| 488 | 488 | }); |
| 489 | 489 | |
| 490 | 490 | return Effect.gen(function* () { |
| 491 | − const service = yield* PendingRequestMcpService; | |
| 491 | + const service = yield* PendingRequestMcpService.PendingRequestMcpService; | |
| 492 | 492 | const read = yield* service.read(scope, { childThreadId, requestId }); |
| 493 | 493 | assert.equal(read.questionPayloadStatus, "too_large"); |
| 494 | 494 | assert.equal(read.questionCount, 1); |
| @@ -524,7 +524,7 @@ describe("PendingRequestMcpService", () => { · 29 unmodified lines | ||
| 524 | 524 | }); |
| 525 | 525 | |
| 526 | 526 | return Effect.gen(function* () { |
| 527 | − const service = yield* PendingRequestMcpService; | |
| 527 | + const service = yield* PendingRequestMcpService.PendingRequestMcpService; | |
| 528 | 528 | const read = yield* service.read(scope, { childThreadId, requestId }); |
| 529 | 529 | assert.equal(read.questionPayloadStatus, "invalid"); |
| 530 | 530 | assert.equal(read.questionCount, 2); |
| @@ -547,7 +547,7 @@ describe("PendingRequestMcpService", () => { · 16 unmodified lines | ||
| 547 | 547 | |
| 548 | 548 | it.effect("keeps projection defects out of MCP failure messages", () => |
| 549 | 549 | Effect.gen(function* () { |
| 550 | − const service = yield* PendingRequestMcpService; | |
| 550 | + const service = yield* PendingRequestMcpService.PendingRequestMcpService; | |
| 551 | 551 | const failure = yield* service.list(scope, {}).pipe(Effect.flip); |
| 552 | 552 | assert.equal(failure.code, "orchestration_error"); |
| 553 | 553 | assert.equal( |
| @@ -573,7 +573,7 @@ describe("PendingRequestMcpService", () => { · 19 unmodified lines | ||
| 573 | 573 | |
| 574 | 574 | it.effect("rejects provider-native children and non-user-input request kinds", () => |
| 575 | 575 | Effect.gen(function* () { |
| 576 | − const providerOwnedService = yield* PendingRequestMcpService; | |
| 576 | + const providerOwnedService = yield* PendingRequestMcpService.PendingRequestMcpService; | |
| 577 | 577 | const wrongChild = yield* providerOwnedService |
| 578 | 578 | .read(scope, { childThreadId, requestId }) |
| 579 | 579 | .pipe(Effect.flip); |
| @@ -587,7 +587,7 @@ describe("PendingRequestMcpService", () => { · 7 unmodified lines | ||
| 587 | 587 | ), |
| 588 | 588 | Effect.andThen( |
| 589 | 589 | Effect.gen(function* () { |
| 590 | − const service = yield* PendingRequestMcpService; | |
| 590 | + const service = yield* PendingRequestMcpService.PendingRequestMcpService; | |
| 591 | 591 | const wrongKind = yield* service |
| 592 | 592 | .read(scope, { childThreadId, requestId }) |
| 593 | 593 | .pipe(Effect.flip); |
| @@ -634,7 +634,7 @@ describe("PendingRequestMcpService", () => { · 40 unmodified lines | ||
| 634 | 634 | }); |
| 635 | 635 | |
| 636 | 636 | yield* Effect.gen(function* () { |
| 637 | − const service = yield* PendingRequestMcpService; | |
| 637 | + const service = yield* PendingRequestMcpService.PendingRequestMcpService; | |
| 638 | 638 | const input = { |
| 639 | 639 | childThreadId, |
| 640 | 640 | requestId, |
| @@ -673,7 +673,7 @@ describe("PendingRequestMcpService", () => { · 32 unmodified lines | ||
| 673 | 673 | }; |
| 674 | 674 | |
| 675 | 675 | yield* Effect.gen(function* () { |
| 676 | − const service = yield* PendingRequestMcpService; | |
| 676 | + const service = yield* PendingRequestMcpService.PendingRequestMcpService; | |
| 677 | 677 | const replay = yield* service.respond(scope, { |
| 678 | 678 | childThreadId, |
| 679 | 679 | requestId, |
| @@ -699,7 +699,7 @@ describe("PendingRequestMcpService", () => { · 19 unmodified lines | ||
| 699 | 699 | |
| 700 | 700 | it.effect("rejects incomplete answers, stale requests, and ended provider sessions", () => |
| 701 | 701 | Effect.gen(function* () { |
| 702 | − const service = yield* PendingRequestMcpService; | |
| 702 | + const service = yield* PendingRequestMcpService.PendingRequestMcpService; | |
| 703 | 703 | const invalid = yield* service |
| 704 | 704 | .respond(scope, { |
| 705 | 705 | childThreadId, |
| @@ -713,7 +713,7 @@ describe("PendingRequestMcpService", () => { · 7 unmodified lines | ||
| 713 | 713 | Effect.provide(serviceLayer({ getChild: () => childProjection() })), |
| 714 | 714 | Effect.andThen( |
| 715 | 715 | Effect.gen(function* () { |
| 716 | − const service = yield* PendingRequestMcpService; | |
| 716 | + const service = yield* PendingRequestMcpService.PendingRequestMcpService; | |
| 717 | 717 | const stale = yield* service |
| 718 | 718 | .respond(scope, { |
| 719 | 719 | childThreadId, |
| @@ -729,7 +729,7 @@ describe("PendingRequestMcpService", () => { · 9 unmodified lines | ||
| 729 | 729 | ), |
| 730 | 730 | Effect.andThen( |
| 731 | 731 | Effect.gen(function* () { |
| 732 | − const service = yield* PendingRequestMcpService; | |
| 732 | + const service = yield* PendingRequestMcpService.PendingRequestMcpService; | |
| 733 | 733 | const unavailable = yield* service |
| 734 | 734 | .respond(scope, { |
| 735 | 735 | childThreadId, |
| @@ -759,7 +759,7 @@ describe("PendingRequestMcpService", () => { · 23 unmodified lines | ||
| 759 | 759 | }); |
| 760 | 760 | |
| 761 | 761 | return Effect.gen(function* () { |
| 762 | − const service = yield* PendingRequestMcpService; | |
| 762 | + const service = yield* PendingRequestMcpService.PendingRequestMcpService; | |
| 763 | 763 | const rejected = yield* service |
| 764 | 764 | .respond(scope, { |
| 765 | 765 | childThreadId, |
| @@ -783,7 +783,7 @@ describe("PendingRequestMcpService", () => { · 17 unmodified lines | ||
| 783 | 783 | |
| 784 | 784 | it.effect("keeps delegated answers within the caller's runtime and interaction ceilings", () => |
| 785 | 785 | Effect.gen(function* () { |
| 786 | − const service = yield* PendingRequestMcpService; | |
| 786 | + const service = yield* PendingRequestMcpService.PendingRequestMcpService; | |
| 787 | 787 | const runtimeError = yield* service |
| 788 | 788 | .respond(scope, { |
| 789 | 789 | childThreadId, |
| @@ -802,7 +802,7 @@ describe("PendingRequestMcpService", () => { · 12 unmodified lines | ||
| 802 | 802 | ), |
| 803 | 803 | Effect.andThen( |
| 804 | 804 | Effect.gen(function* () { |
| 805 | − const service = yield* PendingRequestMcpService; | |
| 805 | + const service = yield* PendingRequestMcpService.PendingRequestMcpService; | |
| 806 | 806 | const interactionError = yield* service |
| 807 | 807 | .respond(scope, { |
| 808 | 808 | childThreadId, |
| @@ -826,7 +826,7 @@ describe("PendingRequestMcpService", () => { · 17 unmodified lines | ||
| 826 | 826 | |
| 827 | 827 | it.effect("never treats an unrelated thread id as an authorized child", () => |
| 828 | 828 | Effect.gen(function* () { |
| 829 | − const service = yield* PendingRequestMcpService; | |
| 829 | + const service = yield* PendingRequestMcpService.PendingRequestMcpService; | |
| 830 | 830 | const error = yield* service |
| 831 | 831 | .read(scope, { childThreadId: unrelatedThreadId, requestId }) |
| 832 | 832 | .pipe(Effect.flip); |