effect-agent 0.1.0-beta.116 → 0.1.0-beta.118
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/dist/durable/MessageDelivery.d.mts +38 -38
- package/dist/durable/MessageDeliveryStoreConformance.d.mts +38 -38
- package/dist/sandbox/ProtectedBrowser.d.mts +2 -1
- package/dist/sandbox/ProtectedBrowser.mjs +2 -0
- package/dist/sandbox/ProtectedBrowser.mjs.map +1 -1
- package/package.json +1 -1
- package/src/sandbox/ProtectedBrowser.ts +8 -1
|
@@ -585,6 +585,25 @@ export declare const readPending: (request: Pick<{
|
|
|
585
585
|
readonly reportKind?: "update" | undefined;
|
|
586
586
|
} | undefined;
|
|
587
587
|
readonly messageAdmission?: {
|
|
588
|
+
readonly schemaVersion: 1;
|
|
589
|
+
readonly message: {
|
|
590
|
+
readonly ownerThreadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
591
|
+
readonly messageId: string & import("effect/Brand").Brand<"@effect-agent/thread/IdempotencyKey">;
|
|
592
|
+
};
|
|
593
|
+
readonly peerName: string;
|
|
594
|
+
readonly sender: {
|
|
595
|
+
readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
596
|
+
readonly agentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
|
|
597
|
+
};
|
|
598
|
+
readonly returnAddress: {
|
|
599
|
+
readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
600
|
+
readonly agentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
|
|
601
|
+
};
|
|
602
|
+
readonly inReplyTo?: {
|
|
603
|
+
readonly ownerThreadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
604
|
+
readonly messageId: string & import("effect/Brand").Brand<"@effect-agent/thread/IdempotencyKey">;
|
|
605
|
+
} | undefined;
|
|
606
|
+
} | {
|
|
588
607
|
readonly _tag: "WorkerCompletion";
|
|
589
608
|
readonly budgetExhausted: boolean;
|
|
590
609
|
readonly schemaVersion: 1;
|
|
@@ -625,25 +644,6 @@ export declare const readPending: (request: Pick<{
|
|
|
625
644
|
readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
626
645
|
};
|
|
627
646
|
readonly update: Update;
|
|
628
|
-
} | {
|
|
629
|
-
readonly schemaVersion: 1;
|
|
630
|
-
readonly message: {
|
|
631
|
-
readonly ownerThreadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
632
|
-
readonly messageId: string & import("effect/Brand").Brand<"@effect-agent/thread/IdempotencyKey">;
|
|
633
|
-
};
|
|
634
|
-
readonly peerName: string;
|
|
635
|
-
readonly sender: {
|
|
636
|
-
readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
637
|
-
readonly agentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
|
|
638
|
-
};
|
|
639
|
-
readonly returnAddress: {
|
|
640
|
-
readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
641
|
-
readonly agentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
|
|
642
|
-
};
|
|
643
|
-
readonly inReplyTo?: {
|
|
644
|
-
readonly ownerThreadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
645
|
-
readonly messageId: string & import("effect/Brand").Brand<"@effect-agent/thread/IdempotencyKey">;
|
|
646
|
-
} | undefined;
|
|
647
647
|
} | undefined;
|
|
648
648
|
};
|
|
649
649
|
readonly envelopeDigest: string & import("effect/Brand").Brand<"@effect-agent/thread/Digest">;
|
|
@@ -776,6 +776,25 @@ export declare const prepareMessageDelivery: (options: {
|
|
|
776
776
|
readonly reportKind?: "update" | undefined;
|
|
777
777
|
} | undefined;
|
|
778
778
|
readonly messageAdmission?: {
|
|
779
|
+
readonly schemaVersion: 1;
|
|
780
|
+
readonly message: {
|
|
781
|
+
readonly ownerThreadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
782
|
+
readonly messageId: string & import("effect/Brand").Brand<"@effect-agent/thread/IdempotencyKey">;
|
|
783
|
+
};
|
|
784
|
+
readonly peerName: string;
|
|
785
|
+
readonly sender: {
|
|
786
|
+
readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
787
|
+
readonly agentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
|
|
788
|
+
};
|
|
789
|
+
readonly returnAddress: {
|
|
790
|
+
readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
791
|
+
readonly agentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
|
|
792
|
+
};
|
|
793
|
+
readonly inReplyTo?: {
|
|
794
|
+
readonly ownerThreadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
795
|
+
readonly messageId: string & import("effect/Brand").Brand<"@effect-agent/thread/IdempotencyKey">;
|
|
796
|
+
} | undefined;
|
|
797
|
+
} | {
|
|
779
798
|
readonly _tag: "WorkerCompletion";
|
|
780
799
|
readonly budgetExhausted: boolean;
|
|
781
800
|
readonly schemaVersion: 1;
|
|
@@ -816,25 +835,6 @@ export declare const prepareMessageDelivery: (options: {
|
|
|
816
835
|
readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
817
836
|
};
|
|
818
837
|
readonly update: Update;
|
|
819
|
-
} | {
|
|
820
|
-
readonly schemaVersion: 1;
|
|
821
|
-
readonly message: {
|
|
822
|
-
readonly ownerThreadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
823
|
-
readonly messageId: string & import("effect/Brand").Brand<"@effect-agent/thread/IdempotencyKey">;
|
|
824
|
-
};
|
|
825
|
-
readonly peerName: string;
|
|
826
|
-
readonly sender: {
|
|
827
|
-
readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
828
|
-
readonly agentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
|
|
829
|
-
};
|
|
830
|
-
readonly returnAddress: {
|
|
831
|
-
readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
832
|
-
readonly agentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
|
|
833
|
-
};
|
|
834
|
-
readonly inReplyTo?: {
|
|
835
|
-
readonly ownerThreadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
836
|
-
readonly messageId: string & import("effect/Brand").Brand<"@effect-agent/thread/IdempotencyKey">;
|
|
837
|
-
} | undefined;
|
|
838
838
|
} | undefined;
|
|
839
839
|
};
|
|
840
840
|
readonly envelopeDigest: string & import("effect/Brand").Brand<"@effect-agent/thread/Digest">;
|
|
@@ -93,6 +93,25 @@ export declare const makeMessageDeliveryFixture: (messageId?: any, owner?: any,
|
|
|
93
93
|
readonly reportKind?: "update" | undefined;
|
|
94
94
|
} | undefined;
|
|
95
95
|
readonly messageAdmission?: {
|
|
96
|
+
readonly schemaVersion: 1;
|
|
97
|
+
readonly message: {
|
|
98
|
+
readonly ownerThreadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
99
|
+
readonly messageId: string & import("effect/Brand").Brand<"@effect-agent/thread/IdempotencyKey">;
|
|
100
|
+
};
|
|
101
|
+
readonly peerName: string;
|
|
102
|
+
readonly sender: {
|
|
103
|
+
readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
104
|
+
readonly agentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
|
|
105
|
+
};
|
|
106
|
+
readonly returnAddress: {
|
|
107
|
+
readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
108
|
+
readonly agentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
|
|
109
|
+
};
|
|
110
|
+
readonly inReplyTo?: {
|
|
111
|
+
readonly ownerThreadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
112
|
+
readonly messageId: string & import("effect/Brand").Brand<"@effect-agent/thread/IdempotencyKey">;
|
|
113
|
+
} | undefined;
|
|
114
|
+
} | {
|
|
96
115
|
readonly _tag: "WorkerCompletion";
|
|
97
116
|
readonly budgetExhausted: boolean;
|
|
98
117
|
readonly schemaVersion: 1;
|
|
@@ -133,25 +152,6 @@ export declare const makeMessageDeliveryFixture: (messageId?: any, owner?: any,
|
|
|
133
152
|
readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
134
153
|
};
|
|
135
154
|
readonly update: Update;
|
|
136
|
-
} | {
|
|
137
|
-
readonly schemaVersion: 1;
|
|
138
|
-
readonly message: {
|
|
139
|
-
readonly ownerThreadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
140
|
-
readonly messageId: string & import("effect/Brand").Brand<"@effect-agent/thread/IdempotencyKey">;
|
|
141
|
-
};
|
|
142
|
-
readonly peerName: string;
|
|
143
|
-
readonly sender: {
|
|
144
|
-
readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
145
|
-
readonly agentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
|
|
146
|
-
};
|
|
147
|
-
readonly returnAddress: {
|
|
148
|
-
readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
149
|
-
readonly agentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
|
|
150
|
-
};
|
|
151
|
-
readonly inReplyTo?: {
|
|
152
|
-
readonly ownerThreadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
153
|
-
readonly messageId: string & import("effect/Brand").Brand<"@effect-agent/thread/IdempotencyKey">;
|
|
154
|
-
} | undefined;
|
|
155
155
|
} | undefined;
|
|
156
156
|
};
|
|
157
157
|
readonly envelopeDigest: string & import("effect/Brand").Brand<"@effect-agent/thread/Digest">;
|
|
@@ -266,6 +266,25 @@ export declare const makeWorkerUpdateDeliveryFixture: (id: string) => Effect.Eff
|
|
|
266
266
|
readonly reportKind?: "update" | undefined;
|
|
267
267
|
} | undefined;
|
|
268
268
|
readonly messageAdmission?: {
|
|
269
|
+
readonly schemaVersion: 1;
|
|
270
|
+
readonly message: {
|
|
271
|
+
readonly ownerThreadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
272
|
+
readonly messageId: string & import("effect/Brand").Brand<"@effect-agent/thread/IdempotencyKey">;
|
|
273
|
+
};
|
|
274
|
+
readonly peerName: string;
|
|
275
|
+
readonly sender: {
|
|
276
|
+
readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
277
|
+
readonly agentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
|
|
278
|
+
};
|
|
279
|
+
readonly returnAddress: {
|
|
280
|
+
readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
281
|
+
readonly agentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
|
|
282
|
+
};
|
|
283
|
+
readonly inReplyTo?: {
|
|
284
|
+
readonly ownerThreadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
285
|
+
readonly messageId: string & import("effect/Brand").Brand<"@effect-agent/thread/IdempotencyKey">;
|
|
286
|
+
} | undefined;
|
|
287
|
+
} | {
|
|
269
288
|
readonly _tag: "WorkerCompletion";
|
|
270
289
|
readonly budgetExhausted: boolean;
|
|
271
290
|
readonly schemaVersion: 1;
|
|
@@ -306,25 +325,6 @@ export declare const makeWorkerUpdateDeliveryFixture: (id: string) => Effect.Eff
|
|
|
306
325
|
readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
307
326
|
};
|
|
308
327
|
readonly update: Update;
|
|
309
|
-
} | {
|
|
310
|
-
readonly schemaVersion: 1;
|
|
311
|
-
readonly message: {
|
|
312
|
-
readonly ownerThreadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
313
|
-
readonly messageId: string & import("effect/Brand").Brand<"@effect-agent/thread/IdempotencyKey">;
|
|
314
|
-
};
|
|
315
|
-
readonly peerName: string;
|
|
316
|
-
readonly sender: {
|
|
317
|
-
readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
318
|
-
readonly agentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
|
|
319
|
-
};
|
|
320
|
-
readonly returnAddress: {
|
|
321
|
-
readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
322
|
-
readonly agentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
|
|
323
|
-
};
|
|
324
|
-
readonly inReplyTo?: {
|
|
325
|
-
readonly ownerThreadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
|
|
326
|
-
readonly messageId: string & import("effect/Brand").Brand<"@effect-agent/thread/IdempotencyKey">;
|
|
327
|
-
} | undefined;
|
|
328
328
|
} | undefined;
|
|
329
329
|
};
|
|
330
330
|
readonly envelopeDigest: string & import("effect/Brand").Brand<"@effect-agent/thread/Digest">;
|
|
@@ -139,8 +139,9 @@ export declare const BrowserCredentialMaterial: Schema.Union<readonly [Schema.Ta
|
|
|
139
139
|
}>]>;
|
|
140
140
|
export type BrowserCredentialMaterial = typeof BrowserCredentialMaterial.Type;
|
|
141
141
|
declare const CredentialAccessError_base: Schema.Class<CredentialAccessError, Schema.TaggedStruct<"CredentialAccessError", {
|
|
142
|
-
readonly reason: Schema.Literals<readonly ["denied", "missing-credential", "needs-attention", "resolver"]>;
|
|
142
|
+
readonly reason: Schema.Literals<readonly ["denied", "missing-credential", "needs-attention", "busy", "resolver"]>;
|
|
143
143
|
}>, import("effect/Cause").YieldableError>;
|
|
144
|
+
/** Use busy for transient host-authority unavailability; return promptly without waiting for Tool completion. */
|
|
144
145
|
export declare class CredentialAccessError extends CredentialAccessError_base {}
|
|
145
146
|
export interface CredentialAccessRequest {
|
|
146
147
|
readonly caller: Redacted.Redacted<string>;
|
|
@@ -196,10 +196,12 @@ const CardCredential = Schema.TaggedStruct("CardCredential", {
|
|
|
196
196
|
securityCode: Schema.optionalKey(Schema.Redacted(Schema.String.check(Schema.isPattern(/^\d{3,4}$/))))
|
|
197
197
|
});
|
|
198
198
|
const BrowserCredentialMaterial = Schema.Union([LoginCredential, CardCredential]);
|
|
199
|
+
/** Use busy for transient host-authority unavailability; return promptly without waiting for Tool completion. */
|
|
199
200
|
var CredentialAccessError = class extends Schema.TaggedError()("CredentialAccessError", { reason: Schema.Literals([
|
|
200
201
|
"denied",
|
|
201
202
|
"missing-credential",
|
|
202
203
|
"needs-attention",
|
|
204
|
+
"busy",
|
|
203
205
|
"resolver"
|
|
204
206
|
]) }) {};
|
|
205
207
|
/** Exact current action proposed to host authority; no ordinary fill value or secret is included. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProtectedBrowser.mjs","names":[],"sources":["../../src/sandbox/ProtectedBrowser.ts"],"sourcesContent":["import { Context, Effect, Layer, Schema, Scope, type Redacted } from \"effect\";\n\nimport {\n InteractiveBrowserHost,\n InteractiveBrowserTargetUrl,\n InteractiveBrowserPolicy,\n} from \"./InteractiveBrowser.ts\";\n\n/** Canonical HTTPS origin, including a non-default port. Host grants match exactly. */\nexport const CredentialOrigin = Schema.String.check(\n Schema.makeFilter(\n (value) => value.startsWith(\"https://\") && Schema.is(InteractiveBrowserHost)(value.slice(8)),\n ),\n);\n\nexport const BrowserReference = Schema.String.check(Schema.isUUID());\nexport const CredentialKind = Schema.Literals([\"login\", \"card\"]);\n\nexport const CredentialFieldRole = Schema.Literals([\n \"username\",\n \"password\",\n \"card-name\",\n \"card-number\",\n \"card-expiry\",\n \"card-expiry-month\",\n \"card-expiry-year\",\n \"card-security-code\",\n]);\n\nconst Label = Schema.String.check(Schema.isMaxLength(200));\nconst LinkUrl = InteractiveBrowserTargetUrl.check(Schema.isStartsWith(\"https://\"));\n\nexport class CredentialTarget extends Schema.Class<CredentialTarget>(\"CredentialTarget\")({\n topOrigin: CredentialOrigin,\n frameOrigin: CredentialOrigin,\n recipientOrigin: CredentialOrigin,\n document: BrowserReference,\n frame: BrowserReference,\n form: BrowserReference,\n}) {}\n\nexport class ProtectedBrowserControl extends Schema.Class<ProtectedBrowserControl>(\n \"ProtectedBrowserControl\",\n)({\n ref: BrowserReference,\n target: CredentialTarget,\n role: Schema.Union([\n CredentialFieldRole,\n Schema.Literals([\n \"text\",\n \"select\",\n \"radio\",\n \"checkbox\",\n \"submit\",\n \"link\",\n \"button\",\n \"unsupported\",\n ]),\n ]),\n label: Label,\n /** Current native radio/checkbox state; field values are never included. */\n checked: Schema.optionalKey(Schema.Boolean),\n /** Resolved HTTPS destination for a native link; target.recipientOrigin is its origin. */\n url: Schema.optionalKey(LinkUrl),\n}) {}\n\nexport class ProtectedBrowserObservation extends Schema.Class<ProtectedBrowserObservation>(\n \"ProtectedBrowserObservation\",\n)({\n document: BrowserReference,\n topOrigin: CredentialOrigin,\n text: Schema.String.check(Schema.isMaxLength(64 * 1024)),\n controls: Schema.Array(ProtectedBrowserControl).check(Schema.isMaxLength(64)),\n truncated: Schema.Boolean,\n observation: Schema.Literals([\"before-exposure\", \"approved-after-exposure\"]),\n}) {}\n\nexport class CredentialOfferMetadata extends Schema.Class<CredentialOfferMetadata>(\n \"CredentialOfferMetadata\",\n)({\n label: Label,\n brand: Schema.optionalKey(Label),\n lastFour: Schema.optionalKey(Schema.String.check(Schema.isPattern(/^\\d{4}$/))),\n /** Plaintext metadata disclosed only when the host authorizes listing this offer. */\n billingAddress: Schema.optionalKey(\n Schema.Struct({\n name: Schema.optionalKey(Label),\n line1: Schema.optionalKey(Label),\n line2: Schema.optionalKey(Label),\n city: Schema.optionalKey(Label),\n region: Schema.optionalKey(Label),\n postalCode: Schema.optionalKey(Label),\n country: Schema.optionalKey(Label),\n }),\n ),\n}) {}\n\nexport class CredentialOffer extends Schema.Class<CredentialOffer>(\"CredentialOffer\")({\n ref: BrowserReference,\n kind: CredentialKind,\n metadata: CredentialOfferMetadata,\n}) {}\n\nexport class ListCredentialOffers extends Schema.Class<ListCredentialOffers>(\n \"ListCredentialOffers\",\n)({\n kind: CredentialKind,\n target: BrowserReference,\n}) {}\n\nexport class UseCredential extends Schema.Class<UseCredential>(\"UseCredential\")({\n offer: BrowserReference,\n fields: Schema.Array(Schema.Struct({ ref: BrowserReference, role: CredentialFieldRole })).check(\n Schema.isMinLength(1),\n Schema.isMaxLength(8),\n ),\n submit: Schema.optionalKey(BrowserReference),\n}) {}\n\nexport class ProtectedBrowserNavigate extends Schema.Class<ProtectedBrowserNavigate>(\n \"ProtectedBrowserNavigate\",\n)({\n url: Schema.String.check(Schema.isMaxLength(8192)),\n}) {}\n\nexport class ProtectedBrowserClick extends Schema.Class<ProtectedBrowserClick>(\n \"ProtectedBrowserClick\",\n)({\n ref: BrowserReference,\n}) {}\n\n/**\n * Non-secret text for an ordinary text control or native single select in the current observation.\n * Never pass credential material. Credential roles, including username, require useCredential.\n * Selects match a unique enabled option value, then a unique exact trimmed label. Empty text clears.\n */\nexport class ProtectedBrowserFill extends Schema.Class<ProtectedBrowserFill>(\n \"ProtectedBrowserFill\",\n)(\n Schema.Struct({\n ref: BrowserReference,\n value: Schema.String.check(Schema.isMaxLength(8192)),\n }),\n) {}\n\nexport const CredentialDispatch = Schema.Literals([\n \"not-dispatched\",\n \"possibly-dispatched\",\n \"dispatched\",\n]);\n\nexport const CredentialMilestone = Schema.Literals([\n \"none\",\n \"partial-fill\",\n \"filled\",\n \"submission-dispatched\",\n]);\n\nexport const ProtectedObservationState = Schema.Literals([\n \"before-exposure\",\n \"protected\",\n \"approved-after-exposure\",\n \"closed\",\n]);\n\nexport const ProtectedCleanup = Schema.Literals([\"not-requested\", \"confirmed\", \"unconfirmed\"]);\n\nconst Evidence = {\n dispatch: CredentialDispatch,\n milestone: CredentialMilestone,\n observation: ProtectedObservationState,\n cleanup: ProtectedCleanup,\n};\n\n/** No foreign message/cause or page data may enter this failure. Closure does not undo dispatch. */\nexport class ProtectedBrowserError extends Schema.TaggedError<ProtectedBrowserError>()(\n \"ProtectedBrowserError\",\n {\n reason: Schema.Literals([\n \"denied\",\n \"missing-credential\",\n \"stale-reference\",\n \"unsupported\",\n \"needs-attention\",\n \"busy\",\n \"closed\",\n \"limit\",\n \"timeout\",\n \"provider\",\n \"resolver\",\n \"outcome-unknown\",\n \"observation-blocked\",\n ]),\n ...Evidence,\n },\n) {}\n\nexport class CredentialUseResult extends Schema.Class<CredentialUseResult>(\"CredentialUseResult\")({\n ...Evidence,\n authentication: Schema.Literal(\"unverified\"),\n}) {}\n\nconst SecretText = Schema.Redacted(Schema.NonEmptyString.check(Schema.isMaxLength(1024)));\n\n/** Host-only material. Never encode it into Tool results, checkpoints, or storage. */\nexport const LoginCredential = Schema.TaggedStruct(\"LoginCredential\", {\n username: SecretText,\n password: SecretText,\n});\n\n/** Security codes are transient, never persisted. Dummy tests are not PCI compliance evidence. */\nexport const CardCredential = Schema.TaggedStruct(\"CardCredential\", {\n name: SecretText,\n number: Schema.Redacted(Schema.String.check(Schema.isPattern(/^\\d{12,19}$/))),\n expiry: SecretText,\n expiryMonth: Schema.Redacted(Schema.String.check(Schema.isPattern(/^(0[1-9]|1[0-2])$/))),\n expiryYear: Schema.Redacted(Schema.String.check(Schema.isPattern(/^\\d{4}$/))),\n securityCode: Schema.optionalKey(\n Schema.Redacted(Schema.String.check(Schema.isPattern(/^\\d{3,4}$/))),\n ),\n});\n\nexport const BrowserCredentialMaterial = Schema.Union([LoginCredential, CardCredential]);\nexport type BrowserCredentialMaterial = typeof BrowserCredentialMaterial.Type;\n\nexport class CredentialAccessError extends Schema.TaggedError<CredentialAccessError>()(\n \"CredentialAccessError\",\n {\n reason: Schema.Literals([\"denied\", \"missing-credential\", \"needs-attention\", \"resolver\"]),\n },\n) {}\n\nexport interface CredentialAccessRequest {\n readonly caller: Redacted.Redacted<string>;\n readonly kind: typeof CredentialKind.Type;\n readonly target: CredentialTarget;\n}\n\nexport interface CredentialUseAuthorization extends CredentialAccessRequest {\n readonly key: Redacted.Redacted<string>;\n readonly roles: ReadonlyArray<typeof CredentialFieldRole.Type>;\n readonly submit: boolean;\n}\n\n/** Exact current action proposed to host authority; no ordinary fill value or secret is included. */\nexport const ProtectedBrowserAction = Schema.Union([\n Schema.TaggedStruct(\"Navigate\", { url: ProtectedBrowserNavigate.fields.url }),\n Schema.TaggedStruct(\"Fill\", {\n ref: BrowserReference,\n target: CredentialTarget,\n role: Schema.Literals([\"text\", \"select\"]),\n }),\n Schema.TaggedStruct(\"Click\", {\n ref: BrowserReference,\n target: CredentialTarget,\n role: Schema.Literals([\"button\", \"radio\", \"checkbox\"]),\n }),\n Schema.TaggedStruct(\"Click\", {\n ref: BrowserReference,\n target: CredentialTarget,\n role: Schema.Literal(\"link\"),\n url: LinkUrl,\n }),\n Schema.TaggedStruct(\"Submit\", { ref: BrowserReference, target: CredentialTarget }),\n]);\n\nexport type ProtectedBrowserAction = typeof ProtectedBrowserAction.Type;\n\n/**\n * Trust only these current observation origins. The top origin must be included. Other frames\n * supply neither text nor usable refs. This does not expand network policy or credential grants.\n */\nexport class CredentialObservationGrant extends Schema.Class<CredentialObservationGrant>(\n \"CredentialObservationGrant\",\n)({\n decision: Schema.Literal(\"trust-recipient-no-credential-echo\"),\n origins: Schema.Array(CredentialOrigin).check(\n Schema.isMinLength(1),\n Schema.isMaxLength(16),\n Schema.isUnique(),\n ),\n}) {}\n\nexport const CredentialObservationDecision = Schema.Union([\n Schema.Literals([\"trust-recipient-no-credential-echo\", \"deny\"]),\n CredentialObservationGrant,\n]);\n\n/**\n * Host-only vault and grant port. Derive caller from the authorized invocation, never Tool input.\n * Recheck account ownership, current grants, merchant/frame/recipient pairing, and any side\n * effects caused by filling. Listing authorizes metadata only. Grant checks never widen network\n * policy. Implementations must not log material or put it in defects/traces.\n */\nexport class BrowserCredentialAccess extends Context.Service<\n BrowserCredentialAccess,\n {\n readonly caller: Effect.Effect<Redacted.Redacted<string>, CredentialAccessError>;\n readonly list: (request: CredentialAccessRequest) => Effect.Effect<\n ReadonlyArray<{\n readonly key: Redacted.Redacted<string>;\n readonly metadata: CredentialOfferMetadata;\n }>,\n CredentialAccessError\n >;\n readonly authorize: (\n request: CredentialUseAuthorization,\n ) => Effect.Effect<void, CredentialAccessError>;\n readonly resolve: (\n request: CredentialUseAuthorization,\n ) => Effect.Effect<BrowserCredentialMaterial, CredentialAccessError>;\n /**\n * Optional host authority for every ordinary navigate/fill/click, mandatory for Submit.\n * Recheck caller ownership, user intent, current submission/continuation grants for ALL prior\n * exposures, and this exact target. Exposures may come from separate credential frames/forms.\n * Without this hook, ordinary actions retain their observation gate and Submit is unsupported.\n * Observation trust alone never authorizes a new native submit. Called again on each action;\n * approvals are not cached. The pass revalidates caller and target after this hook returns.\n */\n readonly authorizeAction?: (request: {\n readonly caller: Redacted.Redacted<string>;\n readonly action: ProtectedBrowserAction;\n readonly exposures: ReadonlyArray<CredentialTarget>;\n }) => Effect.Effect<void, CredentialAccessError>;\n /**\n * Explicitly trust all observed destinations not to echo credentials, including transformed\n * or delayed echoes. Called for every observation and non-secret action after exposure.\n * The string grant trusts all current observed origins. Return CredentialObservationGrant\n * to select an explicit subset instead. This is recipient trust, not submission authority,\n * a universal secrecy guarantee, or a login verifier.\n */\n readonly observation: (request: {\n readonly caller: Redacted.Redacted<string>;\n readonly topOrigin: typeof CredentialOrigin.Type;\n readonly frameOrigins: ReadonlyArray<typeof CredentialOrigin.Type>;\n readonly exposures: ReadonlyArray<CredentialTarget>;\n /** A human may have entered secrets; explicitly authorize observation even with no vault exposures. */\n readonly humanExposure?: boolean;\n /** Origins present when the human received control, retained across durable suspension. */\n readonly humanOrigins?: ReadonlyArray<typeof CredentialOrigin.Type>;\n }) => Effect.Effect<typeof CredentialObservationDecision.Type, CredentialAccessError>;\n }\n>()(\"@effect-agent/sandbox/BrowserCredentialAccess\") {}\n\n/**\n * Host-only suspended-pass state. Persist with the host's fenced controller receipt, never in\n * a Tool result. It contains no credential material, offers, DOM references usable after resume,\n * cookies, page text, or provider capability. A host must restore its own credential exposure\n * ledger as well. The original deadline and action allowance include time spent with the human.\n */\nexport class ProtectedBrowserCheckpoint extends Schema.Class<ProtectedBrowserCheckpoint>(\n \"ProtectedBrowserCheckpoint\",\n)({\n policy: InteractiveBrowserPolicy,\n startedAt: Schema.Natural,\n actions: Schema.Natural,\n exposures: Schema.Array(CredentialTarget).check(Schema.isMaxLength(1000)),\n humanExposure: Schema.Boolean,\n humanOrigins: Schema.Array(CredentialOrigin).check(Schema.isMaxLength(16)),\n dispatch: CredentialDispatch,\n milestone: CredentialMilestone,\n}) {}\n\n/** A private ephemeral pass. No selectors, JavaScript, screenshots, viewer, or provider identity. */\nexport interface ProtectedBrowserHandle {\n readonly navigate: (\n request: ProtectedBrowserNavigate,\n ) => Effect.Effect<void, ProtectedBrowserError>;\n readonly observe: Effect.Effect<ProtectedBrowserObservation, ProtectedBrowserError>;\n readonly click: (request: ProtectedBrowserClick) => Effect.Effect<void, ProtectedBrowserError>;\n /** Uses the same lock, budgets, current-target checks and post-exposure grant as other actions. */\n readonly fill: (request: ProtectedBrowserFill) => Effect.Effect<void, ProtectedBrowserError>;\n readonly listCredentialOffers: (\n request: ListCredentialOffers,\n ) => Effect.Effect<ReadonlyArray<CredentialOffer>, ProtectedBrowserError>;\n readonly useCredential: (\n request: UseCredential,\n ) => Effect.Effect<CredentialUseResult, ProtectedBrowserError>;\n readonly close: Effect.Effect<typeof ProtectedCleanup.Type>;\n}\n\nexport class ProtectedBrowser extends Context.Service<\n ProtectedBrowser,\n {\n readonly open: (\n policy: InteractiveBrowserPolicy,\n ) => Effect.Effect<\n ProtectedBrowserHandle,\n ProtectedBrowserError,\n Scope.Scope | BrowserCredentialAccess\n >;\n }\n>()(\"@effect-agent/sandbox/ProtectedBrowser\") {}\n\n/** Build once in an execution/Attempt Layer. Acquires lazily and shares one pass across Tools. */\nexport class ProtectedBrowserSession extends Context.Service<\n ProtectedBrowserSession,\n {\n readonly get: Effect.Effect<ProtectedBrowserHandle, ProtectedBrowserError>;\n }\n>()(\"@effect-agent/sandbox/ProtectedBrowserSession\") {\n static layer(policy: InteractiveBrowserPolicy) {\n return Layer.effect(this)(\n Effect.gen(function* () {\n const browser = yield* ProtectedBrowser;\n const access = yield* BrowserCredentialAccess;\n const scope = yield* Effect.scope;\n\n const cached = yield* Effect.cached(\n browser\n .open(policy)\n .pipe(\n Effect.provideService(BrowserCredentialAccess, access),\n Effect.provideService(Scope.Scope, scope),\n ),\n );\n\n return {\n get: Effect.suspend(() =>\n scope.state._tag === \"Closed\"\n ? Effect.fail(\n new ProtectedBrowserError({\n reason: \"closed\",\n dispatch: \"not-dispatched\",\n milestone: \"none\",\n observation: \"closed\",\n cleanup: \"not-requested\",\n }),\n )\n : cached,\n ),\n };\n }),\n );\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ProtectedBrowser.mjs","names":[],"sources":["../../src/sandbox/ProtectedBrowser.ts"],"sourcesContent":["import { Context, Effect, Layer, Schema, Scope, type Redacted } from \"effect\";\n\nimport {\n InteractiveBrowserHost,\n InteractiveBrowserTargetUrl,\n InteractiveBrowserPolicy,\n} from \"./InteractiveBrowser.ts\";\n\n/** Canonical HTTPS origin, including a non-default port. Host grants match exactly. */\nexport const CredentialOrigin = Schema.String.check(\n Schema.makeFilter(\n (value) => value.startsWith(\"https://\") && Schema.is(InteractiveBrowserHost)(value.slice(8)),\n ),\n);\n\nexport const BrowserReference = Schema.String.check(Schema.isUUID());\nexport const CredentialKind = Schema.Literals([\"login\", \"card\"]);\n\nexport const CredentialFieldRole = Schema.Literals([\n \"username\",\n \"password\",\n \"card-name\",\n \"card-number\",\n \"card-expiry\",\n \"card-expiry-month\",\n \"card-expiry-year\",\n \"card-security-code\",\n]);\n\nconst Label = Schema.String.check(Schema.isMaxLength(200));\nconst LinkUrl = InteractiveBrowserTargetUrl.check(Schema.isStartsWith(\"https://\"));\n\nexport class CredentialTarget extends Schema.Class<CredentialTarget>(\"CredentialTarget\")({\n topOrigin: CredentialOrigin,\n frameOrigin: CredentialOrigin,\n recipientOrigin: CredentialOrigin,\n document: BrowserReference,\n frame: BrowserReference,\n form: BrowserReference,\n}) {}\n\nexport class ProtectedBrowserControl extends Schema.Class<ProtectedBrowserControl>(\n \"ProtectedBrowserControl\",\n)({\n ref: BrowserReference,\n target: CredentialTarget,\n role: Schema.Union([\n CredentialFieldRole,\n Schema.Literals([\n \"text\",\n \"select\",\n \"radio\",\n \"checkbox\",\n \"submit\",\n \"link\",\n \"button\",\n \"unsupported\",\n ]),\n ]),\n label: Label,\n /** Current native radio/checkbox state; field values are never included. */\n checked: Schema.optionalKey(Schema.Boolean),\n /** Resolved HTTPS destination for a native link; target.recipientOrigin is its origin. */\n url: Schema.optionalKey(LinkUrl),\n}) {}\n\nexport class ProtectedBrowserObservation extends Schema.Class<ProtectedBrowserObservation>(\n \"ProtectedBrowserObservation\",\n)({\n document: BrowserReference,\n topOrigin: CredentialOrigin,\n text: Schema.String.check(Schema.isMaxLength(64 * 1024)),\n controls: Schema.Array(ProtectedBrowserControl).check(Schema.isMaxLength(64)),\n truncated: Schema.Boolean,\n observation: Schema.Literals([\"before-exposure\", \"approved-after-exposure\"]),\n}) {}\n\nexport class CredentialOfferMetadata extends Schema.Class<CredentialOfferMetadata>(\n \"CredentialOfferMetadata\",\n)({\n label: Label,\n brand: Schema.optionalKey(Label),\n lastFour: Schema.optionalKey(Schema.String.check(Schema.isPattern(/^\\d{4}$/))),\n /** Plaintext metadata disclosed only when the host authorizes listing this offer. */\n billingAddress: Schema.optionalKey(\n Schema.Struct({\n name: Schema.optionalKey(Label),\n line1: Schema.optionalKey(Label),\n line2: Schema.optionalKey(Label),\n city: Schema.optionalKey(Label),\n region: Schema.optionalKey(Label),\n postalCode: Schema.optionalKey(Label),\n country: Schema.optionalKey(Label),\n }),\n ),\n}) {}\n\nexport class CredentialOffer extends Schema.Class<CredentialOffer>(\"CredentialOffer\")({\n ref: BrowserReference,\n kind: CredentialKind,\n metadata: CredentialOfferMetadata,\n}) {}\n\nexport class ListCredentialOffers extends Schema.Class<ListCredentialOffers>(\n \"ListCredentialOffers\",\n)({\n kind: CredentialKind,\n target: BrowserReference,\n}) {}\n\nexport class UseCredential extends Schema.Class<UseCredential>(\"UseCredential\")({\n offer: BrowserReference,\n fields: Schema.Array(Schema.Struct({ ref: BrowserReference, role: CredentialFieldRole })).check(\n Schema.isMinLength(1),\n Schema.isMaxLength(8),\n ),\n submit: Schema.optionalKey(BrowserReference),\n}) {}\n\nexport class ProtectedBrowserNavigate extends Schema.Class<ProtectedBrowserNavigate>(\n \"ProtectedBrowserNavigate\",\n)({\n url: Schema.String.check(Schema.isMaxLength(8192)),\n}) {}\n\nexport class ProtectedBrowserClick extends Schema.Class<ProtectedBrowserClick>(\n \"ProtectedBrowserClick\",\n)({\n ref: BrowserReference,\n}) {}\n\n/**\n * Non-secret text for an ordinary text control or native single select in the current observation.\n * Never pass credential material. Credential roles, including username, require useCredential.\n * Selects match a unique enabled option value, then a unique exact trimmed label. Empty text clears.\n */\nexport class ProtectedBrowserFill extends Schema.Class<ProtectedBrowserFill>(\n \"ProtectedBrowserFill\",\n)(\n Schema.Struct({\n ref: BrowserReference,\n value: Schema.String.check(Schema.isMaxLength(8192)),\n }),\n) {}\n\nexport const CredentialDispatch = Schema.Literals([\n \"not-dispatched\",\n \"possibly-dispatched\",\n \"dispatched\",\n]);\n\nexport const CredentialMilestone = Schema.Literals([\n \"none\",\n \"partial-fill\",\n \"filled\",\n \"submission-dispatched\",\n]);\n\nexport const ProtectedObservationState = Schema.Literals([\n \"before-exposure\",\n \"protected\",\n \"approved-after-exposure\",\n \"closed\",\n]);\n\nexport const ProtectedCleanup = Schema.Literals([\"not-requested\", \"confirmed\", \"unconfirmed\"]);\n\nconst Evidence = {\n dispatch: CredentialDispatch,\n milestone: CredentialMilestone,\n observation: ProtectedObservationState,\n cleanup: ProtectedCleanup,\n};\n\n/** No foreign message/cause or page data may enter this failure. Closure does not undo dispatch. */\nexport class ProtectedBrowserError extends Schema.TaggedError<ProtectedBrowserError>()(\n \"ProtectedBrowserError\",\n {\n reason: Schema.Literals([\n \"denied\",\n \"missing-credential\",\n \"stale-reference\",\n \"unsupported\",\n \"needs-attention\",\n \"busy\",\n \"closed\",\n \"limit\",\n \"timeout\",\n \"provider\",\n \"resolver\",\n \"outcome-unknown\",\n \"observation-blocked\",\n ]),\n ...Evidence,\n },\n) {}\n\nexport class CredentialUseResult extends Schema.Class<CredentialUseResult>(\"CredentialUseResult\")({\n ...Evidence,\n authentication: Schema.Literal(\"unverified\"),\n}) {}\n\nconst SecretText = Schema.Redacted(Schema.NonEmptyString.check(Schema.isMaxLength(1024)));\n\n/** Host-only material. Never encode it into Tool results, checkpoints, or storage. */\nexport const LoginCredential = Schema.TaggedStruct(\"LoginCredential\", {\n username: SecretText,\n password: SecretText,\n});\n\n/** Security codes are transient, never persisted. Dummy tests are not PCI compliance evidence. */\nexport const CardCredential = Schema.TaggedStruct(\"CardCredential\", {\n name: SecretText,\n number: Schema.Redacted(Schema.String.check(Schema.isPattern(/^\\d{12,19}$/))),\n expiry: SecretText,\n expiryMonth: Schema.Redacted(Schema.String.check(Schema.isPattern(/^(0[1-9]|1[0-2])$/))),\n expiryYear: Schema.Redacted(Schema.String.check(Schema.isPattern(/^\\d{4}$/))),\n securityCode: Schema.optionalKey(\n Schema.Redacted(Schema.String.check(Schema.isPattern(/^\\d{3,4}$/))),\n ),\n});\n\nexport const BrowserCredentialMaterial = Schema.Union([LoginCredential, CardCredential]);\nexport type BrowserCredentialMaterial = typeof BrowserCredentialMaterial.Type;\n\n/** Use busy for transient host-authority unavailability; return promptly without waiting for Tool completion. */\nexport class CredentialAccessError extends Schema.TaggedError<CredentialAccessError>()(\n \"CredentialAccessError\",\n {\n reason: Schema.Literals([\n \"denied\",\n \"missing-credential\",\n \"needs-attention\",\n \"busy\",\n \"resolver\",\n ]),\n },\n) {}\n\nexport interface CredentialAccessRequest {\n readonly caller: Redacted.Redacted<string>;\n readonly kind: typeof CredentialKind.Type;\n readonly target: CredentialTarget;\n}\n\nexport interface CredentialUseAuthorization extends CredentialAccessRequest {\n readonly key: Redacted.Redacted<string>;\n readonly roles: ReadonlyArray<typeof CredentialFieldRole.Type>;\n readonly submit: boolean;\n}\n\n/** Exact current action proposed to host authority; no ordinary fill value or secret is included. */\nexport const ProtectedBrowserAction = Schema.Union([\n Schema.TaggedStruct(\"Navigate\", { url: ProtectedBrowserNavigate.fields.url }),\n Schema.TaggedStruct(\"Fill\", {\n ref: BrowserReference,\n target: CredentialTarget,\n role: Schema.Literals([\"text\", \"select\"]),\n }),\n Schema.TaggedStruct(\"Click\", {\n ref: BrowserReference,\n target: CredentialTarget,\n role: Schema.Literals([\"button\", \"radio\", \"checkbox\"]),\n }),\n Schema.TaggedStruct(\"Click\", {\n ref: BrowserReference,\n target: CredentialTarget,\n role: Schema.Literal(\"link\"),\n url: LinkUrl,\n }),\n Schema.TaggedStruct(\"Submit\", { ref: BrowserReference, target: CredentialTarget }),\n]);\n\nexport type ProtectedBrowserAction = typeof ProtectedBrowserAction.Type;\n\n/**\n * Trust only these current observation origins. The top origin must be included. Other frames\n * supply neither text nor usable refs. This does not expand network policy or credential grants.\n */\nexport class CredentialObservationGrant extends Schema.Class<CredentialObservationGrant>(\n \"CredentialObservationGrant\",\n)({\n decision: Schema.Literal(\"trust-recipient-no-credential-echo\"),\n origins: Schema.Array(CredentialOrigin).check(\n Schema.isMinLength(1),\n Schema.isMaxLength(16),\n Schema.isUnique(),\n ),\n}) {}\n\nexport const CredentialObservationDecision = Schema.Union([\n Schema.Literals([\"trust-recipient-no-credential-echo\", \"deny\"]),\n CredentialObservationGrant,\n]);\n\n/**\n * Host-only vault and grant port. Derive caller from the authorized invocation, never Tool input.\n * Recheck account ownership, current grants, merchant/frame/recipient pairing, and any side\n * effects caused by filling. Listing authorizes metadata only. Grant checks never widen network\n * policy. Implementations must not log material or put it in defects/traces.\n */\nexport class BrowserCredentialAccess extends Context.Service<\n BrowserCredentialAccess,\n {\n readonly caller: Effect.Effect<Redacted.Redacted<string>, CredentialAccessError>;\n readonly list: (request: CredentialAccessRequest) => Effect.Effect<\n ReadonlyArray<{\n readonly key: Redacted.Redacted<string>;\n readonly metadata: CredentialOfferMetadata;\n }>,\n CredentialAccessError\n >;\n readonly authorize: (\n request: CredentialUseAuthorization,\n ) => Effect.Effect<void, CredentialAccessError>;\n readonly resolve: (\n request: CredentialUseAuthorization,\n ) => Effect.Effect<BrowserCredentialMaterial, CredentialAccessError>;\n /**\n * Optional host authority for every ordinary navigate/fill/click, mandatory for Submit.\n * Recheck caller ownership, user intent, current submission/continuation grants for ALL prior\n * exposures, and this exact target. Exposures may come from separate credential frames/forms.\n * Without this hook, ordinary actions retain their observation gate and Submit is unsupported.\n * Observation trust alone never authorizes a new native submit. Called again on each action;\n * approvals are not cached. The pass revalidates caller and target after this hook returns.\n */\n readonly authorizeAction?: (request: {\n readonly caller: Redacted.Redacted<string>;\n readonly action: ProtectedBrowserAction;\n readonly exposures: ReadonlyArray<CredentialTarget>;\n }) => Effect.Effect<void, CredentialAccessError>;\n /**\n * Explicitly trust all observed destinations not to echo credentials, including transformed\n * or delayed echoes. Called for every observation and non-secret action after exposure.\n * The string grant trusts all current observed origins. Return CredentialObservationGrant\n * to select an explicit subset instead. This is recipient trust, not submission authority,\n * a universal secrecy guarantee, or a login verifier.\n */\n readonly observation: (request: {\n readonly caller: Redacted.Redacted<string>;\n readonly topOrigin: typeof CredentialOrigin.Type;\n readonly frameOrigins: ReadonlyArray<typeof CredentialOrigin.Type>;\n readonly exposures: ReadonlyArray<CredentialTarget>;\n /** A human may have entered secrets; explicitly authorize observation even with no vault exposures. */\n readonly humanExposure?: boolean;\n /** Origins present when the human received control, retained across durable suspension. */\n readonly humanOrigins?: ReadonlyArray<typeof CredentialOrigin.Type>;\n }) => Effect.Effect<typeof CredentialObservationDecision.Type, CredentialAccessError>;\n }\n>()(\"@effect-agent/sandbox/BrowserCredentialAccess\") {}\n\n/**\n * Host-only suspended-pass state. Persist with the host's fenced controller receipt, never in\n * a Tool result. It contains no credential material, offers, DOM references usable after resume,\n * cookies, page text, or provider capability. A host must restore its own credential exposure\n * ledger as well. The original deadline and action allowance include time spent with the human.\n */\nexport class ProtectedBrowserCheckpoint extends Schema.Class<ProtectedBrowserCheckpoint>(\n \"ProtectedBrowserCheckpoint\",\n)({\n policy: InteractiveBrowserPolicy,\n startedAt: Schema.Natural,\n actions: Schema.Natural,\n exposures: Schema.Array(CredentialTarget).check(Schema.isMaxLength(1000)),\n humanExposure: Schema.Boolean,\n humanOrigins: Schema.Array(CredentialOrigin).check(Schema.isMaxLength(16)),\n dispatch: CredentialDispatch,\n milestone: CredentialMilestone,\n}) {}\n\n/** A private ephemeral pass. No selectors, JavaScript, screenshots, viewer, or provider identity. */\nexport interface ProtectedBrowserHandle {\n readonly navigate: (\n request: ProtectedBrowserNavigate,\n ) => Effect.Effect<void, ProtectedBrowserError>;\n readonly observe: Effect.Effect<ProtectedBrowserObservation, ProtectedBrowserError>;\n readonly click: (request: ProtectedBrowserClick) => Effect.Effect<void, ProtectedBrowserError>;\n /** Uses the same lock, budgets, current-target checks and post-exposure grant as other actions. */\n readonly fill: (request: ProtectedBrowserFill) => Effect.Effect<void, ProtectedBrowserError>;\n readonly listCredentialOffers: (\n request: ListCredentialOffers,\n ) => Effect.Effect<ReadonlyArray<CredentialOffer>, ProtectedBrowserError>;\n readonly useCredential: (\n request: UseCredential,\n ) => Effect.Effect<CredentialUseResult, ProtectedBrowserError>;\n readonly close: Effect.Effect<typeof ProtectedCleanup.Type>;\n}\n\nexport class ProtectedBrowser extends Context.Service<\n ProtectedBrowser,\n {\n readonly open: (\n policy: InteractiveBrowserPolicy,\n ) => Effect.Effect<\n ProtectedBrowserHandle,\n ProtectedBrowserError,\n Scope.Scope | BrowserCredentialAccess\n >;\n }\n>()(\"@effect-agent/sandbox/ProtectedBrowser\") {}\n\n/** Build once in an execution/Attempt Layer. Acquires lazily and shares one pass across Tools. */\nexport class ProtectedBrowserSession extends Context.Service<\n ProtectedBrowserSession,\n {\n readonly get: Effect.Effect<ProtectedBrowserHandle, ProtectedBrowserError>;\n }\n>()(\"@effect-agent/sandbox/ProtectedBrowserSession\") {\n static layer(policy: InteractiveBrowserPolicy) {\n return Layer.effect(this)(\n Effect.gen(function* () {\n const browser = yield* ProtectedBrowser;\n const access = yield* BrowserCredentialAccess;\n const scope = yield* Effect.scope;\n\n const cached = yield* Effect.cached(\n browser\n .open(policy)\n .pipe(\n Effect.provideService(BrowserCredentialAccess, access),\n Effect.provideService(Scope.Scope, scope),\n ),\n );\n\n return {\n get: Effect.suspend(() =>\n scope.state._tag === \"Closed\"\n ? Effect.fail(\n new ProtectedBrowserError({\n reason: \"closed\",\n dispatch: \"not-dispatched\",\n milestone: \"none\",\n observation: \"closed\",\n cleanup: \"not-requested\",\n }),\n )\n : cached,\n ),\n };\n }),\n );\n }\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"effect-agent","version":"0.1.0-beta.116","devDependencies":{"@effect/platform-node":"4.0.0-rc.116","@effect/vitest":"4.0.0-rc.116","effect":"4.0.0-rc.116","typescript":"7.0.2","vite-plus":"0.3.2"},"peerDependencies":{"effect":"^4.0.0-rc.116"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./activity-store":{"types":"./dist/durable/ActivityStore.d.mts","default":"./dist/durable/ActivityStore.mjs"},"./admin":{"types":"./dist/durable/Admin.d.mts","default":"./dist/durable/Admin.mjs"},"./agent":{"types":"./dist/core/Agent.d.mts","default":"./dist/core/Agent.mjs"},"./agent-error":{"types":"./dist/core/AgentError.d.mts","default":"./dist/core/AgentError.mjs"},"./agent-policy":{"types":"./dist/core/AgentPolicy.d.mts","default":"./dist/core/AgentPolicy.mjs"},"./agent-registration":{"types":"./dist/durable/AgentRegistration.d.mts","default":"./dist/durable/AgentRegistration.mjs"},"./agent-runtime":{"types":"./dist/engine/AgentRuntime.d.mts","default":"./dist/engine/AgentRuntime.mjs"},"./agent-updates":{"types":"./dist/core/AgentUpdates.d.mts","default":"./dist/core/AgentUpdates.mjs"},"./approval":{"types":"./dist/capabilities/Approval.d.mts","default":"./dist/capabilities/Approval.mjs"},"./budget":{"types":"./dist/capabilities/Budget.d.mts","default":"./dist/capabilities/Budget.mjs"},"./code-executor":{"types":"./dist/sandbox/CodeExecutor.d.mts","default":"./dist/sandbox/CodeExecutor.mjs"},"./code-mode":{"types":"./dist/capabilities/CodeMode.d.mts","default":"./dist/capabilities/CodeMode.mjs"},"./commands":{"types":"./dist/capabilities/Commands.d.mts","default":"./dist/capabilities/Commands.mjs"},"./committed-activity":{"types":"./dist/durable/CommittedActivity.d.mts","default":"./dist/durable/CommittedActivity.mjs"},"./compaction":{"types":"./dist/engine/Compaction.d.mts","default":"./dist/engine/Compaction.mjs"},"./context-compactor":{"types":"./dist/engine/ContextCompactor.d.mts","default":"./dist/engine/ContextCompactor.mjs"},"./context-history":{"types":"./dist/engine/ContextHistory.d.mts","default":"./dist/engine/ContextHistory.mjs"},"./context-tools":{"types":"./dist/capabilities/ContextTools.d.mts","default":"./dist/capabilities/ContextTools.mjs"},"./context-window":{"types":"./dist/engine/ContextWindow.d.mts","default":"./dist/engine/ContextWindow.mjs"},"./digest":{"types":"./dist/durable/Digest.d.mts","default":"./dist/durable/Digest.mjs"},"./durable-agent-runtime":{"types":"./dist/durable/DurableAgentRuntime.d.mts","default":"./dist/durable/DurableAgentRuntime.mjs"},"./durable-failpoint":{"types":"./dist/durable/DurableFailpoint.d.mts","default":"./dist/durable/DurableFailpoint.mjs"},"./durable-step":{"types":"./dist/engine/DurableStep.d.mts","default":"./dist/engine/DurableStep.mjs"},"./event-source":{"types":"./dist/durable/EventSource.d.mts","default":"./dist/durable/EventSource.mjs"},"./failure-diagnostic":{"types":"./dist/core/FailureDiagnostic.d.mts","default":"./dist/core/FailureDiagnostic.mjs"},"./git-hub-workflow-source":{"types":"./dist/durable/GitHubWorkflowSource.d.mts","default":"./dist/durable/GitHubWorkflowSource.mjs"},"./id-generator":{"types":"./dist/core/IdGenerator.d.mts","default":"./dist/core/IdGenerator.mjs"},"./identifiers":{"types":"./dist/core/Identifiers.d.mts","default":"./dist/core/Identifiers.mjs"},"./in-memory":{"types":"./dist/InMemory.d.mts","default":"./dist/InMemory.mjs"},"./interactive-browser":{"types":"./dist/sandbox/InteractiveBrowser.d.mts","default":"./dist/sandbox/InteractiveBrowser.mjs"},"./mcp":{"types":"./dist/capabilities/Mcp.d.mts","default":"./dist/capabilities/Mcp.mjs"},"./mcp-client":{"types":"./dist/capabilities/McpClient.d.mts","default":"./dist/capabilities/McpClient.mjs"},"./memory":{"types":"./dist/core/Memory.d.mts","default":"./dist/core/Memory.mjs"},"./memory-namespace":{"types":"./dist/core/MemoryNamespace.d.mts","default":"./dist/core/MemoryNamespace.mjs"},"./memory-notes":{"types":"./dist/capabilities/MemoryNotes.d.mts","default":"./dist/capabilities/MemoryNotes.mjs"},"./memory-reference":{"types":"./dist/core/MemoryReference.d.mts","default":"./dist/core/MemoryReference.mjs"},"./memory-revalidation":{"types":"./dist/core/MemoryRevalidation.d.mts","default":"./dist/core/MemoryRevalidation.mjs"},"./memory-store":{"types":"./dist/core/MemoryStore.d.mts","default":"./dist/core/MemoryStore.mjs"},"./message-delivery":{"types":"./dist/durable/MessageDelivery.d.mts","default":"./dist/durable/MessageDelivery.mjs"},"./messaging":{"types":"./dist/capabilities/Messaging.d.mts","default":"./dist/capabilities/Messaging.mjs"},"./messaging-host":{"types":"./dist/engine/MessagingHost.d.mts","default":"./dist/engine/MessagingHost.mjs"},"./model-context":{"types":"./dist/capabilities/ModelContext.d.mts","default":"./dist/capabilities/ModelContext.mjs"},"./operation-authorizer":{"types":"./dist/durable/OperationAuthorizer.d.mts","default":"./dist/durable/OperationAuthorizer.mjs"},"./output":{"types":"./dist/engine/Output.d.mts","default":"./dist/engine/Output.mjs"},"./page-capture":{"types":"./dist/sandbox/PageCapture.d.mts","default":"./dist/sandbox/PageCapture.mjs"},"./page-crawl":{"types":"./dist/sandbox/PageCrawl.d.mts","default":"./dist/sandbox/PageCrawl.mjs"},"./page-screenshot":{"types":"./dist/sandbox/PageScreenshot.d.mts","default":"./dist/sandbox/PageScreenshot.mjs"},"./persistent-history":{"types":"./dist/durable/PersistentHistory.d.mts","default":"./dist/durable/PersistentHistory.mjs"},"./prepared-input-admission":{"types":"./dist/durable/PreparedInputAdmission.d.mts","default":"./dist/durable/PreparedInputAdmission.mjs"},"./protected-browser":{"types":"./dist/sandbox/ProtectedBrowser.d.mts","default":"./dist/sandbox/ProtectedBrowser.mjs"},"./receipt":{"types":"./dist/core/Receipt.d.mts","default":"./dist/core/Receipt.mjs"},"./records":{"types":"./dist/durable/Records.d.mts","default":"./dist/durable/Records.mjs"},"./recovery":{"types":"./dist/durable/Recovery.d.mts","default":"./dist/durable/Recovery.mjs"},"./redaction":{"types":"./dist/capabilities/Redaction.d.mts","default":"./dist/capabilities/Redaction.mjs"},"./remembering":{"types":"./dist/capabilities/Remembering.d.mts","default":"./dist/capabilities/Remembering.mjs"},"./remembering-store":{"types":"./dist/core/RememberingStore.d.mts","default":"./dist/core/RememberingStore.mjs"},"./run-event":{"types":"./dist/core/RunEvent.d.mts","default":"./dist/core/RunEvent.mjs"},"./run-event-sink":{"types":"./dist/engine/RunEventSink.d.mts","default":"./dist/engine/RunEventSink.mjs"},"./run-hooks":{"types":"./dist/capabilities/RunHooks.d.mts","default":"./dist/capabilities/RunHooks.mjs"},"./run-journal":{"types":"./dist/durable/RunJournal.d.mts","default":"./dist/durable/RunJournal.mjs"},"./run-options":{"types":"./dist/engine/RunOptions.d.mts","default":"./dist/engine/RunOptions.mjs"},"./run-policy-usage":{"types":"./dist/core/RunPolicyUsage.d.mts","default":"./dist/core/RunPolicyUsage.mjs"},"./sandbox":{"types":"./dist/sandbox/Sandbox.d.mts","default":"./dist/sandbox/Sandbox.mjs"},"./schedule":{"types":"./dist/durable/Schedule.d.mts","default":"./dist/durable/Schedule.mjs"},"./schedule-transition":{"types":"./dist/durable/ScheduleTransition.d.mts","default":"./dist/durable/ScheduleTransition.mjs"},"./scheduling":{"types":"./dist/durable/Scheduling.d.mts","default":"./dist/durable/Scheduling.mjs"},"./semantic-memory":{"types":"./dist/capabilities/SemanticMemory.d.mts","default":"./dist/capabilities/SemanticMemory.mjs"},"./semantic-memory-index":{"types":"./dist/core/SemanticMemoryIndex.d.mts","default":"./dist/core/SemanticMemoryIndex.mjs"},"./semantic-memory-revalidation":{"types":"./dist/core/SemanticMemoryRevalidation.d.mts","default":"./dist/core/SemanticMemoryRevalidation.mjs"},"./sql-thread-native-reads":{"types":"./dist/durable/SqlThreadNativeReads.d.mts","default":"./dist/durable/SqlThreadNativeReads.mjs"},"./sql-memory-store":{"types":"./dist/durable/SqlMemoryStore.d.mts","default":"./dist/durable/SqlMemoryStore.mjs"},"./sql-message-delivery-store":{"types":"./dist/durable/SqlMessageDeliveryStore.d.mts","default":"./dist/durable/SqlMessageDeliveryStore.mjs"},"./sql-storage-v2-upgrade":{"types":"./dist/durable/SqlStorageV2Upgrade.d.mts","default":"./dist/durable/SqlStorageV2Upgrade.mjs"},"./sql-subscription-store":{"types":"./dist/durable/SqlSubscriptionStore.d.mts","default":"./dist/durable/SqlSubscriptionStore.mjs"},"./subagent":{"types":"./dist/capabilities/Subagent.d.mts","default":"./dist/capabilities/Subagent.mjs"},"./subagent-contract":{"types":"./dist/core/SubagentContract.d.mts","default":"./dist/core/SubagentContract.mjs"},"./subagent-host":{"types":"./dist/engine/SubagentHost.d.mts","default":"./dist/engine/SubagentHost.mjs"},"./subagent-reservations":{"types":"./dist/capabilities/SubagentReservations.d.mts","default":"./dist/capabilities/SubagentReservations.mjs"},"./submission-ledger":{"types":"./dist/durable/SubmissionLedger.d.mts","default":"./dist/durable/SubmissionLedger.mjs"},"./submission-status":{"types":"./dist/durable/SubmissionStatus.d.mts","default":"./dist/durable/SubmissionStatus.mjs"},"./subscription":{"types":"./dist/durable/Subscription.d.mts","default":"./dist/durable/Subscription.mjs"},"./subscription-input":{"types":"./dist/durable/SubscriptionInput.d.mts","default":"./dist/durable/SubscriptionInput.mjs"},"./subscription-tools":{"types":"./dist/durable/SubscriptionTools.d.mts","default":"./dist/durable/SubscriptionTools.mjs"},"./subscription-transition":{"types":"./dist/durable/SubscriptionTransition.d.mts","default":"./dist/durable/SubscriptionTransition.mjs"},"./subscriptions":{"types":"./dist/durable/Subscriptions.d.mts","default":"./dist/durable/Subscriptions.mjs"},"./testing/certification":{"types":"./dist/durable/Certification.d.mts","default":"./dist/durable/Certification.mjs"},"./testing/durable-failpoint-test-control":{"types":"./dist/durable/DurableFailpointTestControl.d.mts","default":"./dist/durable/DurableFailpointTestControl.mjs"},"./testing/message-delivery-store-conformance":{"types":"./dist/durable/MessageDeliveryStoreConformance.d.mts","default":"./dist/durable/MessageDeliveryStoreConformance.mjs"},"./testing/schedule-store-conformance":{"types":"./dist/durable/ScheduleStoreConformance.d.mts","default":"./dist/durable/ScheduleStoreConformance.mjs"},"./testing/submission-ledger-conformance":{"types":"./dist/durable/SubmissionLedgerConformance.d.mts","default":"./dist/durable/SubmissionLedgerConformance.mjs"},"./testing/subscription-store-conformance":{"types":"./dist/durable/SubscriptionStoreConformance.d.mts","default":"./dist/durable/SubscriptionStoreConformance.mjs"},"./testing/thread-store-conformance":{"types":"./dist/durable/ThreadStoreConformance.d.mts","default":"./dist/durable/ThreadStoreConformance.mjs"},"./thread":{"types":"./dist/core/Thread.d.mts","default":"./dist/core/Thread.mjs"},"./thread-context-history":{"types":"./dist/durable/ThreadContextHistory.d.mts","default":"./dist/durable/ThreadContextHistory.mjs"},"./thread-context-history-projection":{"types":"./dist/durable/ThreadContextHistoryProjection.d.mts","default":"./dist/durable/ThreadContextHistoryProjection.mjs"},"./thread-history":{"types":"./dist/engine/ThreadHistory.d.mts","default":"./dist/engine/ThreadHistory.mjs"},"./thread-invariants":{"types":"./dist/durable/ThreadInvariants.d.mts","default":"./dist/durable/ThreadInvariants.mjs"},"./thread-projection":{"types":"./dist/durable/ThreadProjection.d.mts","default":"./dist/durable/ThreadProjection.mjs"},"./thread-projection-maintenance":{"types":"./dist/durable/ThreadProjectionMaintenance.d.mts","default":"./dist/durable/ThreadProjectionMaintenance.mjs"},"./thread-store":{"types":"./dist/durable/ThreadStore.d.mts","default":"./dist/durable/ThreadStore.mjs"},"./tool-broker":{"types":"./dist/engine/ToolBroker.d.mts","default":"./dist/engine/ToolBroker.mjs"},"./tool-discovery":{"types":"./dist/capabilities/ToolDiscovery.d.mts","default":"./dist/capabilities/ToolDiscovery.mjs"},"./tool-exposure":{"types":"./dist/ToolExposure.d.mts","default":"./dist/ToolExposure.mjs"},"./tool-reconciler":{"types":"./dist/durable/ToolReconciler.d.mts","default":"./dist/durable/ToolReconciler.mjs"},"./tool-result":{"types":"./dist/core/ToolResult.d.mts","default":"./dist/core/ToolResult.mjs"},"./usage":{"types":"./dist/core/Usage.d.mts","default":"./dist/core/Usage.mjs"},"./wake-scheduler":{"types":"./dist/durable/WakeScheduler.d.mts","default":"./dist/durable/WakeScheduler.mjs"},"./web-capture":{"types":"./dist/capabilities/WebCapture.d.mts","default":"./dist/capabilities/WebCapture.mjs"},"./web-search":{"types":"./dist/capabilities/WebSearch.d.mts","default":"./dist/capabilities/WebSearch.mjs"},"./worker":{"types":"./dist/core/Worker.d.mts","default":"./dist/core/Worker.mjs"},"./worker-host":{"types":"./dist/durable/WorkerHost.d.mts","default":"./dist/durable/WorkerHost.mjs"}},"description":"Effect-native agents, execution, subagents, and sandbox contracts in one tree-shakeable package.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/danieljvdm/effect-agent.git","directory":"packages/effect-agent"},"files":["dist","src"],"type":"module","sideEffects":[],"publishConfig":{"access":"public"},"scripts":{"build":"vp pack","check":"tsc --noEmit -p tsconfig.json","test":"vp test --passWithNoTests"}}
|
|
1
|
+
{"name":"effect-agent","version":"0.1.0-beta.118","devDependencies":{"@effect/platform-node":"4.0.0-rc.116","@effect/vitest":"4.0.0-rc.116","effect":"4.0.0-rc.116","typescript":"7.0.2","vite-plus":"0.3.2"},"peerDependencies":{"effect":"^4.0.0-rc.116"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./activity-store":{"types":"./dist/durable/ActivityStore.d.mts","default":"./dist/durable/ActivityStore.mjs"},"./admin":{"types":"./dist/durable/Admin.d.mts","default":"./dist/durable/Admin.mjs"},"./agent":{"types":"./dist/core/Agent.d.mts","default":"./dist/core/Agent.mjs"},"./agent-error":{"types":"./dist/core/AgentError.d.mts","default":"./dist/core/AgentError.mjs"},"./agent-policy":{"types":"./dist/core/AgentPolicy.d.mts","default":"./dist/core/AgentPolicy.mjs"},"./agent-registration":{"types":"./dist/durable/AgentRegistration.d.mts","default":"./dist/durable/AgentRegistration.mjs"},"./agent-runtime":{"types":"./dist/engine/AgentRuntime.d.mts","default":"./dist/engine/AgentRuntime.mjs"},"./agent-updates":{"types":"./dist/core/AgentUpdates.d.mts","default":"./dist/core/AgentUpdates.mjs"},"./approval":{"types":"./dist/capabilities/Approval.d.mts","default":"./dist/capabilities/Approval.mjs"},"./budget":{"types":"./dist/capabilities/Budget.d.mts","default":"./dist/capabilities/Budget.mjs"},"./code-executor":{"types":"./dist/sandbox/CodeExecutor.d.mts","default":"./dist/sandbox/CodeExecutor.mjs"},"./code-mode":{"types":"./dist/capabilities/CodeMode.d.mts","default":"./dist/capabilities/CodeMode.mjs"},"./commands":{"types":"./dist/capabilities/Commands.d.mts","default":"./dist/capabilities/Commands.mjs"},"./committed-activity":{"types":"./dist/durable/CommittedActivity.d.mts","default":"./dist/durable/CommittedActivity.mjs"},"./compaction":{"types":"./dist/engine/Compaction.d.mts","default":"./dist/engine/Compaction.mjs"},"./context-compactor":{"types":"./dist/engine/ContextCompactor.d.mts","default":"./dist/engine/ContextCompactor.mjs"},"./context-history":{"types":"./dist/engine/ContextHistory.d.mts","default":"./dist/engine/ContextHistory.mjs"},"./context-tools":{"types":"./dist/capabilities/ContextTools.d.mts","default":"./dist/capabilities/ContextTools.mjs"},"./context-window":{"types":"./dist/engine/ContextWindow.d.mts","default":"./dist/engine/ContextWindow.mjs"},"./digest":{"types":"./dist/durable/Digest.d.mts","default":"./dist/durable/Digest.mjs"},"./durable-agent-runtime":{"types":"./dist/durable/DurableAgentRuntime.d.mts","default":"./dist/durable/DurableAgentRuntime.mjs"},"./durable-failpoint":{"types":"./dist/durable/DurableFailpoint.d.mts","default":"./dist/durable/DurableFailpoint.mjs"},"./durable-step":{"types":"./dist/engine/DurableStep.d.mts","default":"./dist/engine/DurableStep.mjs"},"./event-source":{"types":"./dist/durable/EventSource.d.mts","default":"./dist/durable/EventSource.mjs"},"./failure-diagnostic":{"types":"./dist/core/FailureDiagnostic.d.mts","default":"./dist/core/FailureDiagnostic.mjs"},"./git-hub-workflow-source":{"types":"./dist/durable/GitHubWorkflowSource.d.mts","default":"./dist/durable/GitHubWorkflowSource.mjs"},"./id-generator":{"types":"./dist/core/IdGenerator.d.mts","default":"./dist/core/IdGenerator.mjs"},"./identifiers":{"types":"./dist/core/Identifiers.d.mts","default":"./dist/core/Identifiers.mjs"},"./in-memory":{"types":"./dist/InMemory.d.mts","default":"./dist/InMemory.mjs"},"./interactive-browser":{"types":"./dist/sandbox/InteractiveBrowser.d.mts","default":"./dist/sandbox/InteractiveBrowser.mjs"},"./mcp":{"types":"./dist/capabilities/Mcp.d.mts","default":"./dist/capabilities/Mcp.mjs"},"./mcp-client":{"types":"./dist/capabilities/McpClient.d.mts","default":"./dist/capabilities/McpClient.mjs"},"./memory":{"types":"./dist/core/Memory.d.mts","default":"./dist/core/Memory.mjs"},"./memory-namespace":{"types":"./dist/core/MemoryNamespace.d.mts","default":"./dist/core/MemoryNamespace.mjs"},"./memory-notes":{"types":"./dist/capabilities/MemoryNotes.d.mts","default":"./dist/capabilities/MemoryNotes.mjs"},"./memory-reference":{"types":"./dist/core/MemoryReference.d.mts","default":"./dist/core/MemoryReference.mjs"},"./memory-revalidation":{"types":"./dist/core/MemoryRevalidation.d.mts","default":"./dist/core/MemoryRevalidation.mjs"},"./memory-store":{"types":"./dist/core/MemoryStore.d.mts","default":"./dist/core/MemoryStore.mjs"},"./message-delivery":{"types":"./dist/durable/MessageDelivery.d.mts","default":"./dist/durable/MessageDelivery.mjs"},"./messaging":{"types":"./dist/capabilities/Messaging.d.mts","default":"./dist/capabilities/Messaging.mjs"},"./messaging-host":{"types":"./dist/engine/MessagingHost.d.mts","default":"./dist/engine/MessagingHost.mjs"},"./model-context":{"types":"./dist/capabilities/ModelContext.d.mts","default":"./dist/capabilities/ModelContext.mjs"},"./operation-authorizer":{"types":"./dist/durable/OperationAuthorizer.d.mts","default":"./dist/durable/OperationAuthorizer.mjs"},"./output":{"types":"./dist/engine/Output.d.mts","default":"./dist/engine/Output.mjs"},"./page-capture":{"types":"./dist/sandbox/PageCapture.d.mts","default":"./dist/sandbox/PageCapture.mjs"},"./page-crawl":{"types":"./dist/sandbox/PageCrawl.d.mts","default":"./dist/sandbox/PageCrawl.mjs"},"./page-screenshot":{"types":"./dist/sandbox/PageScreenshot.d.mts","default":"./dist/sandbox/PageScreenshot.mjs"},"./persistent-history":{"types":"./dist/durable/PersistentHistory.d.mts","default":"./dist/durable/PersistentHistory.mjs"},"./prepared-input-admission":{"types":"./dist/durable/PreparedInputAdmission.d.mts","default":"./dist/durable/PreparedInputAdmission.mjs"},"./protected-browser":{"types":"./dist/sandbox/ProtectedBrowser.d.mts","default":"./dist/sandbox/ProtectedBrowser.mjs"},"./receipt":{"types":"./dist/core/Receipt.d.mts","default":"./dist/core/Receipt.mjs"},"./records":{"types":"./dist/durable/Records.d.mts","default":"./dist/durable/Records.mjs"},"./recovery":{"types":"./dist/durable/Recovery.d.mts","default":"./dist/durable/Recovery.mjs"},"./redaction":{"types":"./dist/capabilities/Redaction.d.mts","default":"./dist/capabilities/Redaction.mjs"},"./remembering":{"types":"./dist/capabilities/Remembering.d.mts","default":"./dist/capabilities/Remembering.mjs"},"./remembering-store":{"types":"./dist/core/RememberingStore.d.mts","default":"./dist/core/RememberingStore.mjs"},"./run-event":{"types":"./dist/core/RunEvent.d.mts","default":"./dist/core/RunEvent.mjs"},"./run-event-sink":{"types":"./dist/engine/RunEventSink.d.mts","default":"./dist/engine/RunEventSink.mjs"},"./run-hooks":{"types":"./dist/capabilities/RunHooks.d.mts","default":"./dist/capabilities/RunHooks.mjs"},"./run-journal":{"types":"./dist/durable/RunJournal.d.mts","default":"./dist/durable/RunJournal.mjs"},"./run-options":{"types":"./dist/engine/RunOptions.d.mts","default":"./dist/engine/RunOptions.mjs"},"./run-policy-usage":{"types":"./dist/core/RunPolicyUsage.d.mts","default":"./dist/core/RunPolicyUsage.mjs"},"./sandbox":{"types":"./dist/sandbox/Sandbox.d.mts","default":"./dist/sandbox/Sandbox.mjs"},"./schedule":{"types":"./dist/durable/Schedule.d.mts","default":"./dist/durable/Schedule.mjs"},"./schedule-transition":{"types":"./dist/durable/ScheduleTransition.d.mts","default":"./dist/durable/ScheduleTransition.mjs"},"./scheduling":{"types":"./dist/durable/Scheduling.d.mts","default":"./dist/durable/Scheduling.mjs"},"./semantic-memory":{"types":"./dist/capabilities/SemanticMemory.d.mts","default":"./dist/capabilities/SemanticMemory.mjs"},"./semantic-memory-index":{"types":"./dist/core/SemanticMemoryIndex.d.mts","default":"./dist/core/SemanticMemoryIndex.mjs"},"./semantic-memory-revalidation":{"types":"./dist/core/SemanticMemoryRevalidation.d.mts","default":"./dist/core/SemanticMemoryRevalidation.mjs"},"./sql-thread-native-reads":{"types":"./dist/durable/SqlThreadNativeReads.d.mts","default":"./dist/durable/SqlThreadNativeReads.mjs"},"./sql-memory-store":{"types":"./dist/durable/SqlMemoryStore.d.mts","default":"./dist/durable/SqlMemoryStore.mjs"},"./sql-message-delivery-store":{"types":"./dist/durable/SqlMessageDeliveryStore.d.mts","default":"./dist/durable/SqlMessageDeliveryStore.mjs"},"./sql-storage-v2-upgrade":{"types":"./dist/durable/SqlStorageV2Upgrade.d.mts","default":"./dist/durable/SqlStorageV2Upgrade.mjs"},"./sql-subscription-store":{"types":"./dist/durable/SqlSubscriptionStore.d.mts","default":"./dist/durable/SqlSubscriptionStore.mjs"},"./subagent":{"types":"./dist/capabilities/Subagent.d.mts","default":"./dist/capabilities/Subagent.mjs"},"./subagent-contract":{"types":"./dist/core/SubagentContract.d.mts","default":"./dist/core/SubagentContract.mjs"},"./subagent-host":{"types":"./dist/engine/SubagentHost.d.mts","default":"./dist/engine/SubagentHost.mjs"},"./subagent-reservations":{"types":"./dist/capabilities/SubagentReservations.d.mts","default":"./dist/capabilities/SubagentReservations.mjs"},"./submission-ledger":{"types":"./dist/durable/SubmissionLedger.d.mts","default":"./dist/durable/SubmissionLedger.mjs"},"./submission-status":{"types":"./dist/durable/SubmissionStatus.d.mts","default":"./dist/durable/SubmissionStatus.mjs"},"./subscription":{"types":"./dist/durable/Subscription.d.mts","default":"./dist/durable/Subscription.mjs"},"./subscription-input":{"types":"./dist/durable/SubscriptionInput.d.mts","default":"./dist/durable/SubscriptionInput.mjs"},"./subscription-tools":{"types":"./dist/durable/SubscriptionTools.d.mts","default":"./dist/durable/SubscriptionTools.mjs"},"./subscription-transition":{"types":"./dist/durable/SubscriptionTransition.d.mts","default":"./dist/durable/SubscriptionTransition.mjs"},"./subscriptions":{"types":"./dist/durable/Subscriptions.d.mts","default":"./dist/durable/Subscriptions.mjs"},"./testing/certification":{"types":"./dist/durable/Certification.d.mts","default":"./dist/durable/Certification.mjs"},"./testing/durable-failpoint-test-control":{"types":"./dist/durable/DurableFailpointTestControl.d.mts","default":"./dist/durable/DurableFailpointTestControl.mjs"},"./testing/message-delivery-store-conformance":{"types":"./dist/durable/MessageDeliveryStoreConformance.d.mts","default":"./dist/durable/MessageDeliveryStoreConformance.mjs"},"./testing/schedule-store-conformance":{"types":"./dist/durable/ScheduleStoreConformance.d.mts","default":"./dist/durable/ScheduleStoreConformance.mjs"},"./testing/submission-ledger-conformance":{"types":"./dist/durable/SubmissionLedgerConformance.d.mts","default":"./dist/durable/SubmissionLedgerConformance.mjs"},"./testing/subscription-store-conformance":{"types":"./dist/durable/SubscriptionStoreConformance.d.mts","default":"./dist/durable/SubscriptionStoreConformance.mjs"},"./testing/thread-store-conformance":{"types":"./dist/durable/ThreadStoreConformance.d.mts","default":"./dist/durable/ThreadStoreConformance.mjs"},"./thread":{"types":"./dist/core/Thread.d.mts","default":"./dist/core/Thread.mjs"},"./thread-context-history":{"types":"./dist/durable/ThreadContextHistory.d.mts","default":"./dist/durable/ThreadContextHistory.mjs"},"./thread-context-history-projection":{"types":"./dist/durable/ThreadContextHistoryProjection.d.mts","default":"./dist/durable/ThreadContextHistoryProjection.mjs"},"./thread-history":{"types":"./dist/engine/ThreadHistory.d.mts","default":"./dist/engine/ThreadHistory.mjs"},"./thread-invariants":{"types":"./dist/durable/ThreadInvariants.d.mts","default":"./dist/durable/ThreadInvariants.mjs"},"./thread-projection":{"types":"./dist/durable/ThreadProjection.d.mts","default":"./dist/durable/ThreadProjection.mjs"},"./thread-projection-maintenance":{"types":"./dist/durable/ThreadProjectionMaintenance.d.mts","default":"./dist/durable/ThreadProjectionMaintenance.mjs"},"./thread-store":{"types":"./dist/durable/ThreadStore.d.mts","default":"./dist/durable/ThreadStore.mjs"},"./tool-broker":{"types":"./dist/engine/ToolBroker.d.mts","default":"./dist/engine/ToolBroker.mjs"},"./tool-discovery":{"types":"./dist/capabilities/ToolDiscovery.d.mts","default":"./dist/capabilities/ToolDiscovery.mjs"},"./tool-exposure":{"types":"./dist/ToolExposure.d.mts","default":"./dist/ToolExposure.mjs"},"./tool-reconciler":{"types":"./dist/durable/ToolReconciler.d.mts","default":"./dist/durable/ToolReconciler.mjs"},"./tool-result":{"types":"./dist/core/ToolResult.d.mts","default":"./dist/core/ToolResult.mjs"},"./usage":{"types":"./dist/core/Usage.d.mts","default":"./dist/core/Usage.mjs"},"./wake-scheduler":{"types":"./dist/durable/WakeScheduler.d.mts","default":"./dist/durable/WakeScheduler.mjs"},"./web-capture":{"types":"./dist/capabilities/WebCapture.d.mts","default":"./dist/capabilities/WebCapture.mjs"},"./web-search":{"types":"./dist/capabilities/WebSearch.d.mts","default":"./dist/capabilities/WebSearch.mjs"},"./worker":{"types":"./dist/core/Worker.d.mts","default":"./dist/core/Worker.mjs"},"./worker-host":{"types":"./dist/durable/WorkerHost.d.mts","default":"./dist/durable/WorkerHost.mjs"}},"description":"Effect-native agents, execution, subagents, and sandbox contracts in one tree-shakeable package.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/danieljvdm/effect-agent.git","directory":"packages/effect-agent"},"files":["dist","src"],"type":"module","sideEffects":[],"publishConfig":{"access":"public"},"scripts":{"build":"vp pack","check":"tsc --noEmit -p tsconfig.json","test":"vp test --passWithNoTests"}}
|
|
@@ -223,10 +223,17 @@ export const CardCredential = Schema.TaggedStruct("CardCredential", {
|
|
|
223
223
|
export const BrowserCredentialMaterial = Schema.Union([LoginCredential, CardCredential]);
|
|
224
224
|
export type BrowserCredentialMaterial = typeof BrowserCredentialMaterial.Type;
|
|
225
225
|
|
|
226
|
+
/** Use busy for transient host-authority unavailability; return promptly without waiting for Tool completion. */
|
|
226
227
|
export class CredentialAccessError extends Schema.TaggedError<CredentialAccessError>()(
|
|
227
228
|
"CredentialAccessError",
|
|
228
229
|
{
|
|
229
|
-
reason: Schema.Literals([
|
|
230
|
+
reason: Schema.Literals([
|
|
231
|
+
"denied",
|
|
232
|
+
"missing-credential",
|
|
233
|
+
"needs-attention",
|
|
234
|
+
"busy",
|
|
235
|
+
"resolver",
|
|
236
|
+
]),
|
|
230
237
|
},
|
|
231
238
|
) {}
|
|
232
239
|
|