effect-agent 0.1.0-beta.156 → 0.1.0-beta.158
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/{Admin-BjmupLN3.d.mts → Admin-BbTZHSLu.d.mts} +23 -11
- package/dist/{Agent-1DMSO_Fl.mjs → Agent-BMATXYsI.mjs} +9 -2
- package/dist/Agent-BMATXYsI.mjs.map +1 -0
- package/dist/{AgentRuntime-BAjT5gXl.d.mts → AgentRuntime-BPlAn5nA.d.mts} +6 -6
- package/dist/{AgentRuntime-IF_1GoUf.mjs → AgentRuntime-D4eoBpIW.mjs} +32 -10
- package/dist/AgentRuntime-D4eoBpIW.mjs.map +1 -0
- package/dist/{Digest-CaJ2RIsF.d.mts → Digest-CNHImGy0.d.mts} +2 -2
- package/dist/{DurableAgentRuntime-BQzYkFVy.mjs → DurableAgentRuntime-eImXoGqD.mjs} +78 -27
- package/dist/DurableAgentRuntime-eImXoGqD.mjs.map +1 -0
- package/dist/{EventSource-C8CKwQy5.d.mts → EventSource-CETtQTiH.d.mts} +3 -3
- package/dist/InMemory.d.mts +1 -1
- package/dist/{PreparedInputAdmission-CU1PzUVD.d.mts → PreparedInputAdmission-Swp9t800.d.mts} +4 -4
- package/dist/{Records-BrEpibum.d.mts → Records-BxGWRs-t.d.mts} +2 -2
- package/dist/{RunEvent-DV_llBcq.d.mts → RunEvent-D0aepYwN.d.mts} +2 -2
- package/dist/{RunEventSink-D5aVhISG.d.mts → RunEventSink-DsbcGXog.d.mts} +2 -2
- package/dist/{RunOptions-CkRYnlJa.d.mts → RunOptions-GjDlAuKh.d.mts} +5 -2
- package/dist/{Schedule-B_z7PMg-.d.mts → Schedule-B94iS2X3.d.mts} +2 -2
- package/dist/{Subagent-CmFtZaeI.mjs → Subagent-211Oz2IN.mjs} +2 -2
- package/dist/{Subagent-CmFtZaeI.mjs.map → Subagent-211Oz2IN.mjs.map} +1 -1
- package/dist/{Subagent-Dld4W1BY.d.mts → Subagent-CLaMeZKu.d.mts} +6 -6
- package/dist/{Subscription-BomcQ9_W.d.mts → Subscription-DaMCppa_.d.mts} +4 -4
- package/dist/{SubscriptionInput-gpZSR9vB.d.mts → SubscriptionInput-B0ZtrQoY.d.mts} +3 -3
- package/dist/{ThreadHistory-ZEu_ja6L.d.mts → ThreadHistory-FD-o4TsR.d.mts} +2 -2
- package/dist/{Usage-Dx0aknfk.d.mts → Usage-BNjPR7Zr.d.mts} +9 -1
- package/dist/{WorkerAdmission-CNbm4o_x.mjs → WorkerAdmission-N9hZV85Q.mjs} +2 -2
- package/dist/{WorkerAdmission-CNbm4o_x.mjs.map → WorkerAdmission-N9hZV85Q.mjs.map} +1 -1
- package/dist/{agent-registration-U3kmV7nW.mjs → agent-registration-BIOzAej4.mjs} +10 -1
- package/dist/agent-registration-BIOzAej4.mjs.map +1 -0
- package/dist/capabilities/Commands.d.mts +1 -1
- package/dist/capabilities/Redaction.d.mts +1 -1
- package/dist/capabilities/RunHooks.d.mts +1 -1
- package/dist/capabilities/Subagent.d.mts +1 -1
- package/dist/capabilities/Subagent.mjs +1 -1
- package/dist/capabilities/ToolDiscovery.d.mts +5 -0
- package/dist/capabilities/ToolDiscovery.mjs +18 -9
- package/dist/capabilities/ToolDiscovery.mjs.map +1 -1
- package/dist/capabilities/WebSearch.d.mts +5 -1
- package/dist/capabilities/WebSearch.mjs +9 -1
- package/dist/capabilities/WebSearch.mjs.map +1 -1
- package/dist/core/Agent.mjs +1 -1
- package/dist/core/RunEvent.d.mts +1 -1
- package/dist/core/Usage.d.mts +1 -1
- package/dist/core/Usage.mjs +22 -1
- package/dist/core/Usage.mjs.map +1 -1
- package/dist/durable/ActivityStore.d.mts +1 -1
- package/dist/durable/Admin.d.mts +1 -1
- package/dist/durable/AgentRegistration.d.mts +1 -1
- package/dist/durable/AgentRegistration.mjs +1 -1
- package/dist/durable/Certification.d.mts +1 -1
- package/dist/durable/CommittedActivity.d.mts +3 -3
- package/dist/durable/Digest.d.mts +1 -1
- package/dist/durable/DurableAgentRuntime.d.mts +1 -1
- package/dist/durable/DurableAgentRuntime.mjs +2 -2
- package/dist/durable/EventSource.d.mts +1 -1
- package/dist/durable/GitHubWorkflowSource.d.mts +3 -3
- package/dist/durable/LifecyclePublication.d.mts +1 -1
- package/dist/durable/LifecyclePublication.mjs +2 -2
- package/dist/durable/LifecyclePublication.mjs.map +1 -1
- package/dist/durable/MessageDelivery.d.mts +24 -10
- package/dist/durable/MessageDelivery.mjs +49 -17
- package/dist/durable/MessageDelivery.mjs.map +1 -1
- package/dist/durable/MessageDeliveryStoreConformance.d.mts +5 -5
- package/dist/durable/PersistentHistory.d.mts +2 -2
- package/dist/durable/PreparedInputAdmission.d.mts +1 -1
- package/dist/durable/Records.d.mts +1 -1
- package/dist/durable/Recovery.d.mts +1 -1
- package/dist/durable/RunJournal.d.mts +1 -1
- package/dist/durable/Schedule.d.mts +1 -1
- package/dist/durable/ScheduleStoreConformance.d.mts +1 -1
- package/dist/durable/ScheduleTransition.d.mts +1 -1
- package/dist/durable/Scheduling.d.mts +3 -3
- package/dist/durable/SubmissionLedger.d.mts +1 -1
- package/dist/durable/SubmissionLedgerConformance.d.mts +2 -2
- package/dist/durable/SubmissionStatus.d.mts +1 -1
- package/dist/durable/Subscription.d.mts +1 -1
- package/dist/durable/SubscriptionInput.d.mts +1 -1
- package/dist/durable/SubscriptionInput.mjs +1 -1
- package/dist/durable/SubscriptionStoreConformance.d.mts +1 -1
- package/dist/durable/SubscriptionTools.d.mts +4 -4
- package/dist/durable/SubscriptionTransition.d.mts +1 -1
- package/dist/durable/Subscriptions.d.mts +6 -6
- package/dist/durable/ThreadContextHistory.d.mts +1 -1
- package/dist/durable/ThreadContextHistoryProjection.d.mts +1 -1
- package/dist/durable/ThreadInvariants.d.mts +2 -2
- package/dist/durable/ThreadProjection.d.mts +1 -1
- package/dist/durable/ThreadProjectionMaintenance.d.mts +1 -1
- package/dist/durable/ThreadStore.d.mts +1 -1
- package/dist/durable/ThreadStoreConformance.d.mts +1 -1
- package/dist/durable/WorkerAdmission.d.mts +2 -2
- package/dist/durable/WorkerAdmission.mjs +1 -1
- package/dist/durable/WorkerHost.d.mts +2 -2
- package/dist/engine/AgentRuntime.d.mts +1 -1
- package/dist/engine/AgentRuntime.mjs +1 -1
- package/dist/engine/RunEventSink.d.mts +1 -1
- package/dist/engine/RunOptions.d.mts +1 -1
- package/dist/engine/RunOptions.mjs +1 -0
- package/dist/engine/RunOptions.mjs.map +1 -1
- package/dist/engine/ThreadHistory.d.mts +1 -1
- package/dist/index.d.mts +15 -15
- package/dist/index.mjs +5 -5
- package/package.json +1 -1
- package/src/capabilities/ToolDiscovery.ts +24 -10
- package/src/capabilities/WebSearch.ts +15 -0
- package/src/core/Agent.ts +16 -2
- package/src/core/Usage.ts +41 -0
- package/src/durable/DurableAgentRuntime.ts +119 -21
- package/src/durable/LifecyclePublication.ts +15 -2
- package/src/durable/MessageDelivery.ts +64 -20
- package/src/durable/internal/agent-registration.ts +11 -0
- package/src/engine/RunOptions.ts +3 -0
- package/src/engine/internal/agent-runtime.ts +91 -20
- package/dist/Agent-1DMSO_Fl.mjs.map +0 -1
- package/dist/AgentRuntime-IF_1GoUf.mjs.map +0 -1
- package/dist/DurableAgentRuntime-BQzYkFVy.mjs.map +0 -1
- package/dist/agent-registration-U3kmV7nW.mjs.map +0 -1
package/dist/index.mjs
CHANGED
|
@@ -3,7 +3,7 @@ import { t as ToolResult_exports } from "./core/ToolResult.mjs";
|
|
|
3
3
|
import { t as AgentPolicy_exports } from "./core/AgentPolicy.mjs";
|
|
4
4
|
import { t as Receipt_exports } from "./core/Receipt.mjs";
|
|
5
5
|
import { t as AgentUpdates_exports } from "./core/AgentUpdates.mjs";
|
|
6
|
-
import { t as Agent_exports } from "./Agent-
|
|
6
|
+
import { t as Agent_exports } from "./Agent-BMATXYsI.mjs";
|
|
7
7
|
import { a as FailureDiagnostic_exports } from "./FailureDiagnostic-BElLOoED.mjs";
|
|
8
8
|
import { t as AgentError_exports } from "./core/AgentError.mjs";
|
|
9
9
|
import { t as IdGenerator_exports } from "./core/IdGenerator.mjs";
|
|
@@ -15,7 +15,7 @@ import { n as MessagingHost_exports } from "./MessagingHost-DfsbMPvq.mjs";
|
|
|
15
15
|
import { t as SubagentHost_exports } from "./engine/SubagentHost.mjs";
|
|
16
16
|
import { t as Thread_exports } from "./core/Thread.mjs";
|
|
17
17
|
import { t as ThreadHistory_exports } from "./engine/ThreadHistory.mjs";
|
|
18
|
-
import { t as AgentRuntime_exports } from "./AgentRuntime-
|
|
18
|
+
import { t as AgentRuntime_exports } from "./AgentRuntime-D4eoBpIW.mjs";
|
|
19
19
|
import { t as ContextWindow_exports } from "./engine/ContextWindow.mjs";
|
|
20
20
|
import { t as DurableStep_exports } from "./engine/DurableStep.mjs";
|
|
21
21
|
import { t as ContextCompactor_exports } from "./engine/ContextCompactor.mjs";
|
|
@@ -57,7 +57,7 @@ import { t as RunHooks_exports } from "./capabilities/RunHooks.mjs";
|
|
|
57
57
|
import { t as SemanticMemoryIndex_exports } from "./core/SemanticMemoryIndex.mjs";
|
|
58
58
|
import { t as SemanticMemoryRevalidation_exports } from "./core/SemanticMemoryRevalidation.mjs";
|
|
59
59
|
import { t as SemanticMemory_exports } from "./capabilities/SemanticMemory.mjs";
|
|
60
|
-
import { r as Subagent_exports } from "./Subagent-
|
|
60
|
+
import { r as Subagent_exports } from "./Subagent-211Oz2IN.mjs";
|
|
61
61
|
import { t as ToolDiscovery_exports } from "./capabilities/ToolDiscovery.mjs";
|
|
62
62
|
import { t as ToolExposure_exports } from "./ToolExposure.mjs";
|
|
63
63
|
import { t as WebCapture_exports } from "./capabilities/WebCapture.mjs";
|
|
@@ -69,7 +69,7 @@ import { t as Recovery_exports } from "./durable/Recovery.mjs";
|
|
|
69
69
|
import { t as Admin_exports } from "./durable/Admin.mjs";
|
|
70
70
|
import { t as Digest_exports } from "./durable/Digest.mjs";
|
|
71
71
|
import { t as AgentRegistration_exports } from "./durable/AgentRegistration.mjs";
|
|
72
|
-
import { r as DurableAgentRuntime_exports } from "./DurableAgentRuntime-
|
|
72
|
+
import { r as DurableAgentRuntime_exports } from "./DurableAgentRuntime-eImXoGqD.mjs";
|
|
73
73
|
import { n as RunJournal_exports } from "./RunJournal-ixFRCyW3.mjs";
|
|
74
74
|
import { t as ThreadStore_exports } from "./durable/ThreadStore.mjs";
|
|
75
75
|
import { t as CommittedActivity_exports } from "./durable/CommittedActivity.mjs";
|
|
@@ -79,7 +79,7 @@ import { t as PreparedInputAdmission_exports } from "./durable/PreparedInputAdmi
|
|
|
79
79
|
import { t as Subscription_exports } from "./durable/Subscription.mjs";
|
|
80
80
|
import { t as MessageDelivery_exports } from "./durable/MessageDelivery.mjs";
|
|
81
81
|
import { t as WakeScheduler_exports } from "./durable/WakeScheduler.mjs";
|
|
82
|
-
import { i as WorkerAdmission_exports } from "./WorkerAdmission-
|
|
82
|
+
import { i as WorkerAdmission_exports } from "./WorkerAdmission-N9hZV85Q.mjs";
|
|
83
83
|
import { t as WorkerHost_exports } from "./durable/WorkerHost.mjs";
|
|
84
84
|
import { t as OperationAuthorizer_exports } from "./durable/OperationAuthorizer.mjs";
|
|
85
85
|
import { t as SubmissionStatus_exports } from "./durable/SubmissionStatus.mjs";
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"effect-agent","version":"0.1.0-beta.156","devDependencies":{"@effect/platform-node":"4.0.0-rc.117","@effect/vitest":"4.0.0-rc.117","effect":"4.0.0-rc.117","typescript":"7.0.2","vite-plus":"0.3.3"},"peerDependencies":{"effect":"^4.0.0-rc.117"},"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"},"./browser-use":{"types":"./dist/capabilities/BrowserUse.d.mts","default":"./dist/capabilities/BrowserUse.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"},"./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-memory-store":{"types":"./dist/durable/SqlMemoryStore.d.mts","default":"./dist/durable/SqlMemoryStore.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-admission":{"types":"./dist/durable/WorkerAdmission.d.mts","default":"./dist/durable/WorkerAdmission.mjs"},"./worker-host":{"types":"./dist/durable/WorkerHost.d.mts","default":"./dist/durable/WorkerHost.mjs"},"./lifecycle-publication":{"types":"./dist/durable/LifecyclePublication.d.mts","default":"./dist/durable/LifecyclePublication.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.158","devDependencies":{"@effect/platform-node":"4.0.0-rc.117","@effect/vitest":"4.0.0-rc.117","effect":"4.0.0-rc.117","typescript":"7.0.2","vite-plus":"0.3.3"},"peerDependencies":{"effect":"^4.0.0-rc.117"},"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"},"./browser-use":{"types":"./dist/capabilities/BrowserUse.d.mts","default":"./dist/capabilities/BrowserUse.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"},"./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-memory-store":{"types":"./dist/durable/SqlMemoryStore.d.mts","default":"./dist/durable/SqlMemoryStore.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-admission":{"types":"./dist/durable/WorkerAdmission.d.mts","default":"./dist/durable/WorkerAdmission.mjs"},"./worker-host":{"types":"./dist/durable/WorkerHost.d.mts","default":"./dist/durable/WorkerHost.mjs"},"./lifecycle-publication":{"types":"./dist/durable/LifecyclePublication.d.mts","default":"./dist/durable/LifecyclePublication.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"}}
|
|
@@ -40,6 +40,13 @@ export class Match extends Schema.Class<Match>("@effect-agent/capabilities/ToolD
|
|
|
40
40
|
...Descriptor.fields,
|
|
41
41
|
parameters: Schema.Json,
|
|
42
42
|
success: Schema.Json,
|
|
43
|
+
/** Hosted declaration; parameters/success are null when no application handler is required. */
|
|
44
|
+
provider: Schema.optionalKey(
|
|
45
|
+
Schema.Struct({
|
|
46
|
+
providerName: Schema.NonEmptyString,
|
|
47
|
+
requiresHandler: Schema.Boolean,
|
|
48
|
+
}),
|
|
49
|
+
),
|
|
43
50
|
}) {}
|
|
44
51
|
|
|
45
52
|
/**
|
|
@@ -297,18 +304,25 @@ export const make = <Failure extends Schema.Top = typeof Schema.Never, Requireme
|
|
|
297
304
|
message: "Search returned an entry outside the visible catalogue",
|
|
298
305
|
});
|
|
299
306
|
}
|
|
300
|
-
|
|
301
|
-
return yield* ToolDiscoveryError.make({
|
|
302
|
-
reason: "invalid-schema",
|
|
303
|
-
message: "Provider-defined Tools do not expose application handler documentation",
|
|
304
|
-
});
|
|
305
|
-
}
|
|
307
|
+
const tool = entry.tool;
|
|
306
308
|
|
|
307
309
|
const schemas = yield* Effect.try({
|
|
308
|
-
try: () =>
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
310
|
+
try: () =>
|
|
311
|
+
Tool.isProviderDefined(tool)
|
|
312
|
+
? {
|
|
313
|
+
parameters: tool.requiresHandler ? Tool.getJsonSchema(tool) : null,
|
|
314
|
+
success: tool.requiresHandler
|
|
315
|
+
? Tool.getJsonSchemaFromSchema(tool.successSchema)
|
|
316
|
+
: null,
|
|
317
|
+
provider: {
|
|
318
|
+
providerName: tool.providerName,
|
|
319
|
+
requiresHandler: tool.requiresHandler,
|
|
320
|
+
},
|
|
321
|
+
}
|
|
322
|
+
: {
|
|
323
|
+
parameters: Tool.getJsonSchema(tool),
|
|
324
|
+
success: Tool.getJsonSchemaFromSchema(tool.successSchema),
|
|
325
|
+
},
|
|
312
326
|
catch: () =>
|
|
313
327
|
ToolDiscoveryError.make({
|
|
314
328
|
reason: "invalid-schema",
|
|
@@ -80,6 +80,21 @@ export interface Options<T extends Tool.AnyProviderDefined = Tool.AnyProviderDef
|
|
|
80
80
|
readonly maxOutputBytes?: number;
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
+
/** Place hosted search in the agent's own model call; no handler or search model Layer is needed.
|
|
84
|
+
* Citations stay in native text annotations and sources. Configure the provider tool at the host.
|
|
85
|
+
*/
|
|
86
|
+
export const native = <T extends Tool.AnyProviderDefined>(options: Pick<Options<T>, "tool">) => {
|
|
87
|
+
if (
|
|
88
|
+
!Tool.isProviderDefined(options.tool) ||
|
|
89
|
+
options.tool.requiresHandler ||
|
|
90
|
+
!["web_search", "web_search_preview"].includes(options.tool.providerName)
|
|
91
|
+
) {
|
|
92
|
+
throw new Error("WebSearch.native requires a provider-executed web_search tool");
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
return Toolkit.make(options.tool);
|
|
96
|
+
};
|
|
97
|
+
|
|
83
98
|
const boundedInteger = (name: string, value: number, maximum: number): number => {
|
|
84
99
|
if (!Number.isSafeInteger(value) || value < 1 || value > maximum) {
|
|
85
100
|
throw new Error(`WebSearch ${name} must be an integer between 1 and ${maximum}`);
|
package/src/core/Agent.ts
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
type Model,
|
|
7
7
|
type Prompt,
|
|
8
8
|
Tool,
|
|
9
|
-
|
|
9
|
+
Toolkit,
|
|
10
10
|
} from "effect/unstable/ai";
|
|
11
11
|
|
|
12
12
|
import type { AgentInputError, AgentOutputError, AgentRunDispositionError } from "./AgentError.ts";
|
|
@@ -569,9 +569,23 @@ export function make(
|
|
|
569
569
|
completionNames.add(declaration.tool);
|
|
570
570
|
}
|
|
571
571
|
|
|
572
|
+
const tools = Object.values(options.toolkit.tools);
|
|
573
|
+
|
|
574
|
+
const readonlyTools = tools.map((tool) =>
|
|
575
|
+
Tool.isProviderDefined(tool) &&
|
|
576
|
+
!tool.requiresHandler &&
|
|
577
|
+
["web_search", "web_search_preview", "file_search"].includes(tool.providerName)
|
|
578
|
+
? tool.annotate(Tool.Readonly, true)
|
|
579
|
+
: tool,
|
|
580
|
+
);
|
|
581
|
+
|
|
582
|
+
const toolkit = readonlyTools.some((tool, index) => tool !== tools[index])
|
|
583
|
+
? Toolkit.make(...readonlyTools)
|
|
584
|
+
: options.toolkit;
|
|
585
|
+
|
|
572
586
|
return Object.freeze({
|
|
573
587
|
...options,
|
|
574
|
-
toolkit: withUpdateTool(
|
|
588
|
+
toolkit: withUpdateTool(toolkit, options.updates),
|
|
575
589
|
policy: AgentPolicy.resolve(options.policy),
|
|
576
590
|
policyOverrides: Object.freeze({ ...options.policy }),
|
|
577
591
|
toolExposure:
|
package/src/core/Usage.ts
CHANGED
|
@@ -68,6 +68,8 @@ export class ModelCallUsage extends Schema.Class<ModelCallUsage>(
|
|
|
68
68
|
pricingStatus: Schema.optionalKey(Schema.Literals(["estimated", "unknown"])),
|
|
69
69
|
inputTokens: InputTokenUsage,
|
|
70
70
|
outputTokens: OutputTokenUsage,
|
|
71
|
+
/** Observed hosted web searches; excludes OpenAI page/find actions. Absent in legacy records. */
|
|
72
|
+
webSearchCalls: Schema.optionalKey(Schema.Natural),
|
|
71
73
|
costMicrousd: Schema.Natural,
|
|
72
74
|
}) {}
|
|
73
75
|
|
|
@@ -80,6 +82,8 @@ export class RunTotals extends Schema.Class<RunTotals>("@effect-agent/core/RunTo
|
|
|
80
82
|
modelCalls: Schema.Natural,
|
|
81
83
|
inputTokens: Schema.Natural,
|
|
82
84
|
outputTokens: Schema.Natural,
|
|
85
|
+
/** Observed hosted web searches; excludes OpenAI page/find actions. Absent in legacy records. */
|
|
86
|
+
webSearchCalls: Schema.optionalKey(Schema.Natural),
|
|
83
87
|
costMicrousd: Schema.Natural,
|
|
84
88
|
usageStatus: Schema.optionalKey(UsageCompleteness),
|
|
85
89
|
pricingStatus: Schema.optionalKey(UsageCompleteness),
|
|
@@ -104,6 +108,7 @@ export class ChildRunUsage extends Schema.Class<ChildRunUsage>("@effect-agent/co
|
|
|
104
108
|
export const emptyRunTotals = (): RunTotals =>
|
|
105
109
|
RunTotals.make({
|
|
106
110
|
modelCalls: 0,
|
|
111
|
+
webSearchCalls: 0,
|
|
107
112
|
inputTokens: 0,
|
|
108
113
|
outputTokens: 0,
|
|
109
114
|
costMicrousd: 0,
|
|
@@ -133,6 +138,8 @@ export class ModelUsageGroup extends Schema.Class<ModelUsageGroup>(
|
|
|
133
138
|
modelCalls: Schema.Natural.check(Schema.isGreaterThan(0)),
|
|
134
139
|
inputTokens: InputTokenUsage,
|
|
135
140
|
outputTokens: OutputTokenUsage,
|
|
141
|
+
/** Observed hosted web searches; excludes OpenAI page/find actions. Absent in legacy records. */
|
|
142
|
+
webSearchCalls: Schema.optionalKey(Schema.Natural),
|
|
136
143
|
costMicrousd: Schema.Natural,
|
|
137
144
|
}) {}
|
|
138
145
|
|
|
@@ -140,6 +147,8 @@ const RunUsageSummaryFields = Schema.Struct({
|
|
|
140
147
|
modelCalls: Schema.Natural,
|
|
141
148
|
inputTokens: InputTokenUsage,
|
|
142
149
|
outputTokens: OutputTokenUsage,
|
|
150
|
+
/** Observed hosted web searches; excludes OpenAI page/find actions. Absent in legacy records. */
|
|
151
|
+
webSearchCalls: Schema.optionalKey(Schema.Natural),
|
|
143
152
|
costMicrousd: Schema.Natural,
|
|
144
153
|
byModel: Schema.Array(ModelUsageGroup),
|
|
145
154
|
/** Coverage of recorded calls only; interruptions can make the Run less complete. */
|
|
@@ -162,6 +171,11 @@ const RunUsageSummaryFields = Schema.Struct({
|
|
|
162
171
|
|
|
163
172
|
return (
|
|
164
173
|
new Set(identities).size === identities.length &&
|
|
174
|
+
(summary.webSearchCalls === undefined ||
|
|
175
|
+
hasAdditiveTotal(
|
|
176
|
+
summary.webSearchCalls,
|
|
177
|
+
summary.byModel.map((group) => group.webSearchCalls ?? 0),
|
|
178
|
+
)) &&
|
|
165
179
|
hasAdditiveTotal(
|
|
166
180
|
summary.modelCalls,
|
|
167
181
|
summary.byModel.map((group) => group.modelCalls),
|
|
@@ -219,6 +233,7 @@ interface MutableUsageGroup {
|
|
|
219
233
|
readonly serviceTier?: string | undefined;
|
|
220
234
|
readonly pricingVersion?: string | undefined;
|
|
221
235
|
modelCalls: number;
|
|
236
|
+
webSearchCalls: number | undefined;
|
|
222
237
|
inputTokens: {
|
|
223
238
|
total: number;
|
|
224
239
|
uncached: number;
|
|
@@ -267,6 +282,7 @@ export const sumRunTotals = Effect.fn("sumRunTotals")(function* (
|
|
|
267
282
|
contributions: ReadonlyArray<RunTotals>,
|
|
268
283
|
): Effect.fn.Return<RunTotals, UsageAggregationError> {
|
|
269
284
|
let modelCalls = 0;
|
|
285
|
+
let webSearchCalls: number | undefined = 0;
|
|
270
286
|
let inputTokens = 0;
|
|
271
287
|
let outputTokens = 0;
|
|
272
288
|
let costMicrousd = 0;
|
|
@@ -282,6 +298,13 @@ export const sumRunTotals = Effect.fn("sumRunTotals")(function* (
|
|
|
282
298
|
);
|
|
283
299
|
|
|
284
300
|
modelCalls = yield* checkedAdd("modelCalls", modelCalls, value.modelCalls);
|
|
301
|
+
if (value.webSearchCalls === undefined && value.modelCalls > 0) webSearchCalls = undefined;
|
|
302
|
+
else if (webSearchCalls !== undefined)
|
|
303
|
+
webSearchCalls = yield* checkedAdd(
|
|
304
|
+
"webSearchCalls",
|
|
305
|
+
webSearchCalls,
|
|
306
|
+
value.webSearchCalls ?? 0,
|
|
307
|
+
);
|
|
285
308
|
inputTokens = yield* checkedAdd("inputTokens", inputTokens, value.inputTokens);
|
|
286
309
|
outputTokens = yield* checkedAdd("outputTokens", outputTokens, value.outputTokens);
|
|
287
310
|
costMicrousd = yield* checkedAdd("costMicrousd", costMicrousd, value.costMicrousd);
|
|
@@ -316,6 +339,7 @@ export const sumRunTotals = Effect.fn("sumRunTotals")(function* (
|
|
|
316
339
|
|
|
317
340
|
return RunTotals.make({
|
|
318
341
|
modelCalls,
|
|
342
|
+
...(webSearchCalls === undefined ? {} : { webSearchCalls }),
|
|
319
343
|
inputTokens,
|
|
320
344
|
outputTokens,
|
|
321
345
|
costMicrousd,
|
|
@@ -329,6 +353,7 @@ export const sumRunTotals = Effect.fn("sumRunTotals")(function* (
|
|
|
329
353
|
export const runTotalsFromSummary = (summary: RunUsageSummary): RunTotals =>
|
|
330
354
|
RunTotals.make({
|
|
331
355
|
modelCalls: summary.modelCalls,
|
|
356
|
+
...(summary.webSearchCalls === undefined ? {} : { webSearchCalls: summary.webSearchCalls }),
|
|
332
357
|
inputTokens: summary.inputTokens.total,
|
|
333
358
|
outputTokens: summary.outputTokens.total,
|
|
334
359
|
costMicrousd: summary.costMicrousd,
|
|
@@ -363,6 +388,10 @@ export const summarizeModelUsage = Effect.fn("summarizeModelUsage")(function* (
|
|
|
363
388
|
const outputTokens = initial === undefined ? emptyOutputTokens() : { ...initial.outputTokens };
|
|
364
389
|
const groups = new Map<string, MutableUsageGroup>();
|
|
365
390
|
let modelCalls = initial?.modelCalls ?? 0;
|
|
391
|
+
|
|
392
|
+
let webSearchCalls =
|
|
393
|
+
initial === undefined || initial.modelCalls === 0 ? 0 : initial.webSearchCalls;
|
|
394
|
+
|
|
366
395
|
let costMicrousd = initial?.costMicrousd ?? 0;
|
|
367
396
|
const hasSeedCalls = modelCalls > 0;
|
|
368
397
|
|
|
@@ -387,6 +416,7 @@ export const summarizeModelUsage = Effect.fn("summarizeModelUsage")(function* (
|
|
|
387
416
|
|
|
388
417
|
groups.set(key, {
|
|
389
418
|
...group,
|
|
419
|
+
webSearchCalls: group.webSearchCalls,
|
|
390
420
|
inputTokens: { ...group.inputTokens },
|
|
391
421
|
outputTokens: { ...group.outputTokens },
|
|
392
422
|
});
|
|
@@ -398,6 +428,10 @@ export const summarizeModelUsage = Effect.fn("summarizeModelUsage")(function* (
|
|
|
398
428
|
allPricingUnknown &&= call.pricingStatus !== "estimated";
|
|
399
429
|
allPricingComplete &&= call.pricingStatus === "estimated";
|
|
400
430
|
modelCalls = yield* checkedAdd("modelCalls", modelCalls, 1);
|
|
431
|
+
webSearchCalls =
|
|
432
|
+
webSearchCalls === undefined || call.webSearchCalls === undefined
|
|
433
|
+
? undefined
|
|
434
|
+
: yield* checkedAdd("webSearchCalls", webSearchCalls, call.webSearchCalls);
|
|
401
435
|
inputTokens.total = yield* checkedAdd(
|
|
402
436
|
"inputTokens.total",
|
|
403
437
|
inputTokens.total,
|
|
@@ -453,6 +487,7 @@ export const summarizeModelUsage = Effect.fn("summarizeModelUsage")(function* (
|
|
|
453
487
|
...(call.serviceTier === undefined ? {} : { serviceTier: call.serviceTier }),
|
|
454
488
|
...(call.pricingVersion === undefined ? {} : { pricingVersion: call.pricingVersion }),
|
|
455
489
|
modelCalls: 0,
|
|
490
|
+
webSearchCalls: 0,
|
|
456
491
|
inputTokens: emptyInputTokens(),
|
|
457
492
|
outputTokens: emptyOutputTokens(),
|
|
458
493
|
costMicrousd: 0,
|
|
@@ -460,6 +495,10 @@ export const summarizeModelUsage = Effect.fn("summarizeModelUsage")(function* (
|
|
|
460
495
|
groups.set(key, group);
|
|
461
496
|
}
|
|
462
497
|
group.modelCalls = yield* checkedAdd("byModel.modelCalls", group.modelCalls, 1);
|
|
498
|
+
group.webSearchCalls =
|
|
499
|
+
group.webSearchCalls === undefined || call.webSearchCalls === undefined
|
|
500
|
+
? undefined
|
|
501
|
+
: yield* checkedAdd("byModel.webSearchCalls", group.webSearchCalls, call.webSearchCalls);
|
|
463
502
|
group.inputTokens.total = yield* checkedAdd(
|
|
464
503
|
"byModel.inputTokens.total",
|
|
465
504
|
group.inputTokens.total,
|
|
@@ -504,6 +543,7 @@ export const summarizeModelUsage = Effect.fn("summarizeModelUsage")(function* (
|
|
|
504
543
|
|
|
505
544
|
return RunUsageSummary.make({
|
|
506
545
|
modelCalls,
|
|
546
|
+
...(webSearchCalls === undefined ? {} : { webSearchCalls }),
|
|
507
547
|
inputTokens: InputTokenUsage.make(inputTokens),
|
|
508
548
|
outputTokens: OutputTokenUsage.make(outputTokens),
|
|
509
549
|
costMicrousd,
|
|
@@ -520,6 +560,7 @@ export const summarizeModelUsage = Effect.fn("summarizeModelUsage")(function* (
|
|
|
520
560
|
...(group.serviceTier === undefined ? {} : { serviceTier: group.serviceTier }),
|
|
521
561
|
...(group.pricingVersion === undefined ? {} : { pricingVersion: group.pricingVersion }),
|
|
522
562
|
modelCalls: group.modelCalls,
|
|
563
|
+
...(group.webSearchCalls === undefined ? {} : { webSearchCalls: group.webSearchCalls }),
|
|
523
564
|
inputTokens: InputTokenUsage.make(group.inputTokens),
|
|
524
565
|
outputTokens: OutputTokenUsage.make(group.outputTokens),
|
|
525
566
|
costMicrousd: group.costMicrousd,
|