effect-agent 0.1.0-beta.140 → 0.1.0-beta.142
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/{AgentRuntime-RdmnK_aD.mjs → AgentRuntime-xeCUXutN.mjs} +10 -9
- package/dist/AgentRuntime-xeCUXutN.mjs.map +1 -0
- package/dist/{DurableAgentRuntime-BmG_UVZG.mjs → DurableAgentRuntime-DQXDcPKQ.mjs} +2 -2
- package/dist/{DurableAgentRuntime-BmG_UVZG.mjs.map → DurableAgentRuntime-DQXDcPKQ.mjs.map} +1 -1
- package/dist/{Subagent-Bnc7I-kb.mjs → Subagent-8RzJkqJ9.mjs} +2 -2
- package/dist/{Subagent-Bnc7I-kb.mjs.map → Subagent-8RzJkqJ9.mjs.map} +1 -1
- package/dist/capabilities/Subagent.mjs +1 -1
- package/dist/durable/DurableAgentRuntime.mjs +1 -1
- package/dist/engine/AgentRuntime.mjs +1 -1
- package/dist/index.d.mts +1 -2
- package/dist/index.mjs +4 -5
- package/package.json +1 -1
- package/src/engine/internal/agent-runtime.ts +49 -19
- package/src/index.ts +0 -2
- package/dist/AgentRuntime-RdmnK_aD.mjs.map +0 -1
- package/dist/durable/SqlMessageDeliveryStore.d.mts +0 -42
- package/dist/durable/SqlMessageDeliveryStore.mjs +0 -179
- package/dist/durable/SqlMessageDeliveryStore.mjs.map +0 -1
- package/dist/durable/SqlStorageV2Upgrade.d.mts +0 -21
- package/dist/durable/SqlStorageV2Upgrade.mjs +0 -459
- package/dist/durable/SqlStorageV2Upgrade.mjs.map +0 -1
- package/dist/durable/SqlSubscriptionStore.d.mts +0 -62
- package/dist/durable/SqlSubscriptionStore.mjs +0 -751
- package/dist/durable/SqlSubscriptionStore.mjs.map +0 -1
- package/dist/durable/SqlThreadNativeReads.d.mts +0 -55
- package/dist/durable/SqlThreadNativeReads.mjs +0 -196
- package/dist/durable/SqlThreadNativeReads.mjs.map +0 -1
- package/src/durable/SqlMessageDeliveryStore.ts +0 -335
- package/src/durable/SqlStorageV2Upgrade.ts +0 -500
- package/src/durable/SqlSubscriptionStore.ts +0 -1440
- package/src/durable/SqlThreadNativeReads.ts +0 -343
- package/src/durable/internal/storage-v2-layout.ts +0 -163
- package/src/durable/internal/storage-v2.ts +0 -73
|
@@ -24,7 +24,7 @@ import { CompactionDecision, CompactionError, ContextCompactor } from "./engine/
|
|
|
24
24
|
import { RunEventSink, RunEventSinkClosedError } from "./engine/RunEventSink.mjs";
|
|
25
25
|
import { AgentUpdateAcceptance, CurrentToolFailureObserver, ModelUsageAccounting, RunContextPreparation, RunResumeUsageSchema, RunToolAuthorization, RunToolScheduling, RunTurnResumeSettledCallSchema } from "./engine/RunOptions.mjs";
|
|
26
26
|
import { ToolBroker, ToolBrokerConfigurationError, ToolBrokerUnavailableError } from "./engine/ToolBroker.mjs";
|
|
27
|
-
import { AiError, LanguageModel, Model, Prompt, Response, Tool, Toolkit } from "effect/unstable/ai";
|
|
27
|
+
import { AiError, LanguageModel, Model, Prompt, Response, ResponseIdTracker, Tool, Toolkit } from "effect/unstable/ai";
|
|
28
28
|
import { Cause, Channel, Clock, Context, DateTime, Duration, Effect, Equal, ErrorReporter, Exit, Fiber, Layer, Metric, Option, PubSub, Queue, Redacted, Result, Schema, SchemaAST, SchemaGetter, Scope, Semaphore, Stream, Tracer } from "effect";
|
|
29
29
|
//#region src/engine/internal/bounded-value.ts
|
|
30
30
|
const DEFAULT_MAX_DEPTH = 128;
|
|
@@ -1860,11 +1860,13 @@ const formatRunStatus = (view) => {
|
|
|
1860
1860
|
/**
|
|
1861
1861
|
* The run-status message is derived per request and appended only to the
|
|
1862
1862
|
* OUTGOING prompt: official history and durable commits never carry it, so it
|
|
1863
|
-
* can never accumulate or replay.
|
|
1863
|
+
* can never accumulate or replay. OpenAI receives it as trailing system guidance,
|
|
1864
|
+
* leaving the last user/tool result as the implicit cache-write boundary.
|
|
1864
1865
|
*/
|
|
1865
1866
|
const outgoingModelPrompt = (policy, context, prepared, turn, declaredToolCalls) => Effect.gen(function* () {
|
|
1866
1867
|
if (policy.runStatus !== "appended") return prepared;
|
|
1867
1868
|
const now = yield* Clock.currentTimeMillis;
|
|
1869
|
+
const provider = yield* Model.ProviderName;
|
|
1868
1870
|
const status = formatRunStatus({
|
|
1869
1871
|
turn,
|
|
1870
1872
|
maxTurns: policy.maxTurns,
|
|
@@ -1877,7 +1879,7 @@ const outgoingModelPrompt = (policy, context, prepared, turn, declaredToolCalls)
|
|
|
1877
1879
|
elapsedSeconds: Math.max(0, Math.floor((now - context.startedAtMillis) / 1e3)),
|
|
1878
1880
|
maxDurationSeconds: Math.floor(Duration.toMillis(policy.maxDuration) / 1e3)
|
|
1879
1881
|
});
|
|
1880
|
-
return Prompt.fromMessages([...prepared.content, Prompt.
|
|
1882
|
+
return Prompt.fromMessages([...prepared.content, provider === "openai" ? Prompt.systemMessage({ content: status }) : Prompt.userMessage({ content: [Prompt.textPart({ text: status })] })]);
|
|
1881
1883
|
});
|
|
1882
1884
|
const ProviderUsage = Schema.Struct({
|
|
1883
1885
|
inputTokens: Schema.Struct({
|
|
@@ -2900,7 +2902,7 @@ const makeTurn = (agent, context, prompt, turn, priorToolCalls, options) => Stre
|
|
|
2900
2902
|
}));
|
|
2901
2903
|
const admissionRequired = contextTokenLimit !== void 0 || !context.finalizing && !finalAnswerOnly && policy.tokenBudget !== void 0;
|
|
2902
2904
|
const outputContractTokens = !admissionRequired || outputContractMessage === void 0 ? 0 : yield* estimateCallTokens([Prompt.makeMessage("system", { content: outputContractMessage })]);
|
|
2903
|
-
const canonicalDecoration = !admissionRequired ? Prompt.empty : yield* outgoingModelPrompt(policy, context, Prompt.empty, turn, priorToolCalls);
|
|
2905
|
+
const canonicalDecoration = !admissionRequired ? Prompt.empty : yield* outgoingModelPrompt(policy, context, Prompt.empty, turn, priorToolCalls).pipe(withCallModel);
|
|
2904
2906
|
const estimateToolSchemaTokens = Effect.suspend(() => {
|
|
2905
2907
|
const choice = modelToolChoice();
|
|
2906
2908
|
const tools = typeof choice === "object" && "oneOf" in choice ? catalog.filter((entry) => entry.kind === "native" && choice.oneOf.includes(entry.nativeToolName)).map((entry) => entry.tool) : Object.values(modelToolkit.tools);
|
|
@@ -3006,7 +3008,7 @@ const makeTurn = (agent, context, prompt, turn, priorToolCalls, options) => Stre
|
|
|
3006
3008
|
});
|
|
3007
3009
|
}
|
|
3008
3010
|
const transientContext = options.transientContext === void 0 ? Prompt.empty : yield* options.transientContext.load(contextRequest).pipe(Effect.flatMap(transientInputToPrompt));
|
|
3009
|
-
const derivedPrompt = options.transientContext === void 0 ? canonicalDecoration : yield* outgoingModelPrompt(policy, context, transientContext, turn, priorToolCalls);
|
|
3011
|
+
const derivedPrompt = options.transientContext === void 0 ? canonicalDecoration : yield* outgoingModelPrompt(policy, context, transientContext, turn, priorToolCalls).pipe(withCallModel);
|
|
3010
3012
|
const derivedPromptContentTokens = !admissionRequired ? 0 : options.transientContext === void 0 ? canonicalDecorationPromptTokens : outputContractTokens + (yield* estimateCallTokens(derivedPrompt.content));
|
|
3011
3013
|
const derivedPromptTokens = () => toolSchemaTokens + derivedPromptContentTokens;
|
|
3012
3014
|
if (!context.finalizing && admissionRequired && options.transientContext !== void 0) {
|
|
@@ -3078,7 +3080,7 @@ const makeTurn = (agent, context, prompt, turn, priorToolCalls, options) => Stre
|
|
|
3078
3080
|
if (trace.usage === void 0) return yield* noteIncompleteUsage(context, turn);
|
|
3079
3081
|
yield* consumeTurnUsage(0).pipe(Effect.exit);
|
|
3080
3082
|
});
|
|
3081
|
-
const attempt = (basis) => Stream.unwrap(outgoingModelPrompt(policy, context, Prompt.fromMessages([...basis.content, ...transientContext.content]), turn, priorToolCalls).pipe(Effect.flatMap((
|
|
3083
|
+
const attempt = (basis) => Stream.unwrap(outgoingModelPrompt(policy, context, prepareModelPrompt(Prompt.fromMessages([...basis.content, ...transientContext.content]), outputContract._tag === "rendered" ? outputContract.part : void 0), turn, priorToolCalls).pipe(withCallModel, Effect.flatMap((providerPrompt) => Effect.gen(function* () {
|
|
3082
3084
|
const toolChoice = modelToolChoice();
|
|
3083
3085
|
let requestToolkit = modelToolkit;
|
|
3084
3086
|
snapshot = selectionSnapshot;
|
|
@@ -3092,7 +3094,6 @@ const makeTurn = (agent, context, prompt, turn, priorToolCalls, options) => Stre
|
|
|
3092
3094
|
}));
|
|
3093
3095
|
}
|
|
3094
3096
|
context.toolExposure = snapshot;
|
|
3095
|
-
const providerPrompt = prepareModelPrompt(outgoing, outputContract._tag === "rendered" ? outputContract.part : void 0);
|
|
3096
3097
|
return yield* estimateCallTokens(providerPrompt.content).pipe(Effect.map((tokens) => tokens + toolSchemaTokens), Effect.tap((estimatedTokens) => contextTokenLimit !== void 0 && (options.context !== void 0 || options.transientContext !== void 0) && estimatedTokens > contextTokenLimit ? ContextBudgetError.make({
|
|
3097
3098
|
message: `Prepared context could not fit the next model prompt inside the ${contextTokenLimit} token context target`,
|
|
3098
3099
|
estimatedTokens,
|
|
@@ -3105,7 +3106,7 @@ const makeTurn = (agent, context, prompt, turn, priorToolCalls, options) => Stre
|
|
|
3105
3106
|
toolkit: deferredToolParameterToolkit(requestToolkit),
|
|
3106
3107
|
disableToolCallResolution: true,
|
|
3107
3108
|
...toolChoice === void 0 ? {} : { toolChoice }
|
|
3108
|
-
}), options.budget).pipe(Stream.provideServiceEffect(Tracer.Tracer, modelTelemetryTracer(context, turnId)), Stream.onStart(Effect.sync(() => {
|
|
3109
|
+
}), options.budget).pipe((stream) => policy.runStatus === "appended" || options.context !== void 0 || options.transientContext !== void 0 ? stream.pipe(Stream.provideServiceEffect(ResponseIdTracker.ResponseIdTracker, ResponseIdTracker.make)) : stream, Stream.provideServiceEffect(Tracer.Tracer, modelTelemetryTracer(context, turnId)), Stream.onStart(Effect.sync(() => {
|
|
3109
3110
|
trace.usageConsumed = false;
|
|
3110
3111
|
})), Stream.mapEffect((part) => ownModelResponsePart(part, agent.definition.toolkit, trace, context.bufferLimits).pipe(Effect.flatMap((owned) => eventsForPart(context, turnId, turn, agent.definition.toolkit.tools, trace, owned.ownedPart, owned.retainedBytes)))), Stream.flatMap(Stream.fromIterable), Stream.tapCause(() => retainFailedUsage()))));
|
|
3111
3112
|
}))));
|
|
@@ -4736,4 +4737,4 @@ var AgentRuntime_exports = /* @__PURE__ */ __exportAll({
|
|
|
4736
4737
|
//#endregion
|
|
4737
4738
|
export { stream as _, SubagentDurability as a, withTerminalDefectEvent as b, decodeFinalOutput as c, projectCompletionOutput as d, renderInputPrompt as f, startUnknown as g, start as h, AgentSpawner as i, encodeRunDisposition as l, runUnknown as m, AgentChildPending as n, SubagentDurabilityError as o, run as p, AgentResultSchema as r, ToolCallWaiting as s, AgentRuntime_exports as t, projectCompletionFromToolOutput as u, streamUnknown as v, streamWithUsageAccountingUnknown as y };
|
|
4738
4739
|
|
|
4739
|
-
//# sourceMappingURL=AgentRuntime-
|
|
4740
|
+
//# sourceMappingURL=AgentRuntime-xeCUXutN.mjs.map
|