@effect-agent/testing 0.0.1-beta.2 → 0.0.1-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/index.mjs +17 -20
- package/dist/index.mjs.map +1 -1
- package/package.json +13 -13
- package/src/certification.ts +1 -1
- package/src/chaos.ts +2 -2
- package/src/fixtures/docs-researcher/definition.ts +2 -2
- package/src/fixtures/travel-planner/definition.ts +4 -4
- package/src/fixtures/travel-planner/deterministic-layers.ts +2 -8
- package/src/fixtures/travel-planner/phase2.ts +1 -1
- package/src/fixtures/travel-planner/phase3.ts +1 -1
- package/src/fixtures/travel-planner/phase4.ts +1 -1
- package/src/fixtures/travel-planner/phase5.ts +1 -1
- package/src/fixtures/travel-planner/subagents.ts +2 -2
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Daniel van der Merwe
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/dist/index.mjs
CHANGED
|
@@ -180,7 +180,7 @@ const childDefinition$1 = Agent.define("certify-child", {
|
|
|
180
180
|
toolConcurrency: 1
|
|
181
181
|
})
|
|
182
182
|
});
|
|
183
|
-
var CertifyDelegationFailed = class extends Schema.
|
|
183
|
+
var CertifyDelegationFailed = class extends Schema.TaggedErrorClass()("CertifyDelegationFailed", { childErrorTag: Schema.String }) {};
|
|
184
184
|
const researchDelegation = Subagent.define("delegate_research", {
|
|
185
185
|
description: "Research one bounded question and return findings.",
|
|
186
186
|
target: childDefinition$1,
|
|
@@ -627,7 +627,7 @@ var ChaosPlanReport = class extends Schema.Class("@effect-agent/testing/ChaosPla
|
|
|
627
627
|
openObligations: Schema.Int.check(Schema.isGreaterThanOrEqualTo(0))
|
|
628
628
|
}) {};
|
|
629
629
|
/** Typed convergence/verification failure of one chaos plan (never a bare defect). */
|
|
630
|
-
var ChaosConvergenceFailure = class extends Schema.
|
|
630
|
+
var ChaosConvergenceFailure = class extends Schema.TaggedErrorClass()("ChaosConvergenceFailure", {
|
|
631
631
|
seed: Schema.Int,
|
|
632
632
|
message: Schema.String.check(Schema.isMaxLength(16384))
|
|
633
633
|
}) {};
|
|
@@ -822,7 +822,7 @@ const childDefinition = Agent.define("chaos-child", {
|
|
|
822
822
|
toolConcurrency: 1
|
|
823
823
|
})
|
|
824
824
|
});
|
|
825
|
-
var ChaosDelegationFailed = class extends Schema.
|
|
825
|
+
var ChaosDelegationFailed = class extends Schema.TaggedErrorClass()("ChaosDelegationFailed", { childErrorTag: Schema.String }) {};
|
|
826
826
|
const chaosDelegation = Subagent.define("delegate_chaos", {
|
|
827
827
|
description: "Delegate one bounded chaos question.",
|
|
828
828
|
target: childDefinition,
|
|
@@ -1273,7 +1273,7 @@ var ResearchDocument = class extends Schema.Class("ResearchDocument")({
|
|
|
1273
1273
|
title: BoundedTitle,
|
|
1274
1274
|
body: BoundedBody
|
|
1275
1275
|
}) {};
|
|
1276
|
-
var DocumentUnavailable = class extends Schema.
|
|
1276
|
+
var DocumentUnavailable = class extends Schema.TaggedErrorClass()("DocumentUnavailable", {
|
|
1277
1277
|
documentId: ResearchDocumentId,
|
|
1278
1278
|
message: Schema.String
|
|
1279
1279
|
}) {};
|
|
@@ -1372,7 +1372,7 @@ var SummaryFinding = class extends Schema.Class("SummaryFinding")({
|
|
|
1372
1372
|
documentId: ResearchDocumentId,
|
|
1373
1373
|
summary: BoundedSummary
|
|
1374
1374
|
}) {};
|
|
1375
|
-
var DocumentSummaryFailed = class extends Schema.
|
|
1375
|
+
var DocumentSummaryFailed = class extends Schema.TaggedErrorClass()("DocumentSummaryFailed", { childErrorTag: Schema.NonEmptyString }) {};
|
|
1376
1376
|
/** Finite per-invocation bounds (SUB-009): one fetch per child, two children per Run. */
|
|
1377
1377
|
const documentSummaryPolicy = SubagentPolicy.make({
|
|
1378
1378
|
maxChildren: 2,
|
|
@@ -1524,10 +1524,10 @@ const unavailableFields = {
|
|
|
1524
1524
|
query: Schema.String,
|
|
1525
1525
|
message: Schema.String
|
|
1526
1526
|
};
|
|
1527
|
-
var FlightUnavailable = class extends Schema.
|
|
1528
|
-
var LodgingUnavailable = class extends Schema.
|
|
1529
|
-
var ActivityUnavailable = class extends Schema.
|
|
1530
|
-
var GuidanceFailure = class extends Schema.
|
|
1527
|
+
var FlightUnavailable = class extends Schema.TaggedErrorClass()("FlightUnavailable", unavailableFields) {};
|
|
1528
|
+
var LodgingUnavailable = class extends Schema.TaggedErrorClass()("LodgingUnavailable", unavailableFields) {};
|
|
1529
|
+
var ActivityUnavailable = class extends Schema.TaggedErrorClass()("ActivityUnavailable", unavailableFields) {};
|
|
1530
|
+
var GuidanceFailure = class extends Schema.TaggedErrorClass()("GuidanceFailure", { message: Schema.String }) {};
|
|
1531
1531
|
var FlightCatalog = class extends Context.Service()("@effect-agent/testing/travel-planner/FlightCatalog") {};
|
|
1532
1532
|
var LodgingCatalog = class extends Context.Service()("@effect-agent/testing/travel-planner/LodgingCatalog") {};
|
|
1533
1533
|
var ActivityCatalog = class extends Context.Service()("@effect-agent/testing/travel-planner/ActivityCatalog") {};
|
|
@@ -1679,7 +1679,7 @@ var SupplierBookingRecord = class extends Schema.Class("@effect-agent/testing/tr
|
|
|
1679
1679
|
detail: Schema.NonEmptyString,
|
|
1680
1680
|
status: Schema.Literals(["confirmed", "cancelled"])
|
|
1681
1681
|
}) {};
|
|
1682
|
-
var SupplierUnavailable = class extends Schema.
|
|
1682
|
+
var SupplierUnavailable = class extends Schema.TaggedErrorClass()("SupplierUnavailable", { message: Schema.String }) {};
|
|
1683
1683
|
/** The desk-internal idempotency key of one cancellation: cancel is idempotent by bookingRef. */
|
|
1684
1684
|
const cancelBookingIdempotencyKey = (bookingRef) => `cancel-booking:${bookingRef}`;
|
|
1685
1685
|
/** The deterministic bookingRef the desk mints for one idempotency key. */
|
|
@@ -1744,10 +1744,7 @@ var SupplierBookingDesk = class SupplierBookingDesk extends Context.Service()("@
|
|
|
1744
1744
|
}];
|
|
1745
1745
|
const [storeKey, existing] = existingEntry;
|
|
1746
1746
|
const cancelled = existing.status === "cancelled" ? existing : SupplierBookingRecord.make({
|
|
1747
|
-
|
|
1748
|
-
idempotencyKey: existing.idempotencyKey,
|
|
1749
|
-
operation: existing.operation,
|
|
1750
|
-
detail: existing.detail,
|
|
1747
|
+
...existing,
|
|
1751
1748
|
status: "cancelled"
|
|
1752
1749
|
});
|
|
1753
1750
|
const bookings = new Map(current.bookings).set(storeKey, cancelled);
|
|
@@ -2070,7 +2067,7 @@ var ItineraryHold = class extends Schema.Class("@effect-agent/testing/travel-pla
|
|
|
2070
2067
|
quoteId: QuoteId,
|
|
2071
2068
|
status: Schema.Literal("held")
|
|
2072
2069
|
}) {};
|
|
2073
|
-
var ItineraryHoldUnavailable = class extends Schema.
|
|
2070
|
+
var ItineraryHoldUnavailable = class extends Schema.TaggedErrorClass()("ItineraryHoldUnavailable", {
|
|
2074
2071
|
quoteId: QuoteId,
|
|
2075
2072
|
message: Schema.String
|
|
2076
2073
|
}) {};
|
|
@@ -2287,7 +2284,7 @@ const phase3TravelPlannerCompletionBatch = CanonicalBatch.make({
|
|
|
2287
2284
|
const phase3TravelPlannerBatches = [phase3TravelPlannerInitialBatch, phase3TravelPlannerCompletionBatch];
|
|
2288
2285
|
/** Portable current-version fixture; it contains no passenger identity or credentials. */
|
|
2289
2286
|
const phase3TravelPlannerEncodedFixture = Schema.encodeSync(Schema.Array(CanonicalBatch))(phase3TravelPlannerBatches);
|
|
2290
|
-
var TravelPlannerProjectionError = class extends Schema.
|
|
2287
|
+
var TravelPlannerProjectionError = class extends Schema.TaggedErrorClass()("TravelPlannerProjectionError", { message: Schema.String }) {};
|
|
2291
2288
|
/** Decode the itinerary projection rebuilt from canonical model-completion records. */
|
|
2292
2289
|
const travelPlanFromProjection = (projection) => {
|
|
2293
2290
|
const output = projection.modelOutputs.at(-1);
|
|
@@ -2581,7 +2578,7 @@ const makePhase4TravelPlannerAgent = (turns = phase1HappyPathTurns) => Agent.wit
|
|
|
2581
2578
|
* so this Layer deliberately provides none.
|
|
2582
2579
|
*/
|
|
2583
2580
|
const phase4TravelPlannerWorkerLayer = Layer.mergeAll(TravelPlannerPhase4ToolkitLayer, FlightCatalogLayer, LodgingCatalogLayer, ActivityCatalogLayer, TravelGuidanceLayer).pipe(Layer.provide(CatalogLifecycle.layerNoDeps));
|
|
2584
|
-
var TravelPlannerDurableEvidenceError = class extends Schema.
|
|
2581
|
+
var TravelPlannerDurableEvidenceError = class extends Schema.TaggedErrorClass()("TravelPlannerDurableEvidenceError", { message: Schema.String }) {};
|
|
2585
2582
|
/**
|
|
2586
2583
|
* Decode the completed itinerary from the canonical `SubmissionSettled` record. Canonical history
|
|
2587
2584
|
* is the outcome authority (DUR-015): the settled result — not any ledger cache — must decode
|
|
@@ -2867,7 +2864,7 @@ const TravelPlannerPhase5 = Agent.define("travel-planner-phase-5", {
|
|
|
2867
2864
|
phase: "P5"
|
|
2868
2865
|
}
|
|
2869
2866
|
});
|
|
2870
|
-
var TravelPlannerBookingEvidenceError = class extends Schema.
|
|
2867
|
+
var TravelPlannerBookingEvidenceError = class extends Schema.TaggedErrorClass()("TravelPlannerBookingEvidenceError", { message: Schema.String }) {};
|
|
2871
2868
|
const bookingResultRefs = (result) => {
|
|
2872
2869
|
if (typeof result !== "object" || result === null) return [];
|
|
2873
2870
|
const refs = [];
|
|
@@ -2909,7 +2906,7 @@ var DestinationFacts = class extends Schema.Class("DestinationFacts")({
|
|
|
2909
2906
|
highlights: Schema.Array(Schema.String),
|
|
2910
2907
|
advisory: Schema.NonEmptyString
|
|
2911
2908
|
}) {};
|
|
2912
|
-
var DestinationGuideUnavailable = class extends Schema.
|
|
2909
|
+
var DestinationGuideUnavailable = class extends Schema.TaggedErrorClass()("DestinationGuideUnavailable", {
|
|
2913
2910
|
destination: AirportCode,
|
|
2914
2911
|
message: Schema.String
|
|
2915
2912
|
}) {};
|
|
@@ -2997,7 +2994,7 @@ var DestinationResearchFindings = class extends Schema.Class("DestinationResearc
|
|
|
2997
2994
|
destination: AirportCode,
|
|
2998
2995
|
summary: Schema.NonEmptyString
|
|
2999
2996
|
}) {};
|
|
3000
|
-
var DestinationResearchFailed = class extends Schema.
|
|
2997
|
+
var DestinationResearchFailed = class extends Schema.TaggedErrorClass()("DestinationResearchFailed", { childErrorTag: Schema.NonEmptyString }) {};
|
|
3001
2998
|
/**
|
|
3002
2999
|
* Deterministic delegation-admission choreography seam. `prepareInput` awaits
|
|
3003
3000
|
* this gate before the handler reserves budget or spawns, so tests can order
|