@agent-native/core 0.77.17 → 0.77.19
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/corpus/core/CHANGELOG.md +21 -0
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/agent/production-agent.ts +34 -5
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +37 -5
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/collab/awareness.d.ts +2 -2
- package/dist/collab/awareness.d.ts.map +1 -1
- package/dist/collab/routes.d.ts +2 -2
- package/dist/observability/routes.d.ts +5 -5
- package/dist/progress/routes.d.ts +1 -1
- package/dist/resources/handlers.d.ts +3 -3
- package/dist/server/agent-engine-api-key-route.d.ts +2 -2
- package/dist/server/transcribe-voice.d.ts +1 -1
- package/package.json +1 -1
package/corpus/core/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# @agent-native/core
|
|
2
2
|
|
|
3
|
+
## 0.77.19
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 27fc4c2: Route the background-worker's awaited milestone diagnostics through a dedicated
|
|
8
|
+
(non-pooled) DB connection. The pooled connection becomes unusable right after
|
|
9
|
+
the model-resolution block (model_done lands, the next pooled write hangs), so a
|
|
10
|
+
dedicated connection lets the post-model_done milestones land and makes the
|
|
11
|
+
worker's true freeze point visible in /runs/active.
|
|
12
|
+
|
|
13
|
+
## 0.77.18
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- 278f171: Make the background-worker's post-`model_done` milestone diagnostics
|
|
18
|
+
(`env_config`, `context_all`, `action_tool_setup`, `owner_thread`, `prestart`)
|
|
19
|
+
AWAITED writes instead of fire-and-forget. A blocked event loop can't flush
|
|
20
|
+
fire-and-forget async writes, so they never landed once the worker froze; an
|
|
21
|
+
awaited write lands while the loop is still running, so the last milestone
|
|
22
|
+
visible in `/runs/active` pinpoints exactly where the worker freezes.
|
|
23
|
+
|
|
3
24
|
## 0.77.17
|
|
4
25
|
|
|
5
26
|
### Patch Changes
|
package/corpus/core/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-native/core",
|
|
3
|
-
"version": "0.77.
|
|
3
|
+
"version": "0.77.19",
|
|
4
4
|
"description": "Framework for agent-native application development — where AI agents and UI share SQL state, actions, and context",
|
|
5
5
|
"homepage": "https://github.com/BuilderIO/agent-native#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -10,6 +10,7 @@ import type { EventHandler as H3EventHandler } from "h3";
|
|
|
10
10
|
import { isAgentActionStopError } from "../action.js";
|
|
11
11
|
import { readAppState } from "../application-state/script-helpers.js";
|
|
12
12
|
import { isReadOnlyShellCommand } from "../coding-tools/index.js";
|
|
13
|
+
import { createDbExec, type DbExec } from "../db/client.js";
|
|
13
14
|
import { isDemoModeEnabled } from "../demo/config.js";
|
|
14
15
|
import { redactDemoData, redactDemoString } from "../demo/redact.js";
|
|
15
16
|
import { extensionIdFromPathname } from "../extensions/path.js";
|
|
@@ -3950,6 +3951,34 @@ export function createProductionAgentHandler(
|
|
|
3950
3951
|
`${s}=${Date.now() - setupT0}ms`,
|
|
3951
3952
|
).catch(() => {});
|
|
3952
3953
|
};
|
|
3954
|
+
// DIAGNOSTIC-ONLY: AWAITED milestone write. Fire-and-forget `workerStep`
|
|
3955
|
+
// writes never land once the worker freezes (a blocked event loop can't
|
|
3956
|
+
// flush async I/O), so for the key post-model_done milestones we AWAIT the
|
|
3957
|
+
// write — it lands while the loop is still running, so the LAST milestone
|
|
3958
|
+
// visible in /runs/active is exactly the one right before the freeze (a sync
|
|
3959
|
+
// block, or a hung await).
|
|
3960
|
+
// Dedicated, NON-pooled connection for the awaited milestone writes. The
|
|
3961
|
+
// pooled connection becomes unusable right after the model-resolution block
|
|
3962
|
+
// (model_done lands, the next pooled write hangs), so route these diag
|
|
3963
|
+
// writes through a fresh connection: if they now land, the POOLED connection
|
|
3964
|
+
// died (and the freeze point becomes visible past model_done); if they still
|
|
3965
|
+
// don't land, the event loop itself is blocked.
|
|
3966
|
+
let __diagExec: DbExec | null = null;
|
|
3967
|
+
const workerStepAwait = async (s: string) => {
|
|
3968
|
+
if (!bgRunId) return;
|
|
3969
|
+
try {
|
|
3970
|
+
if (!__diagExec) __diagExec = await createDbExec();
|
|
3971
|
+
const payload = JSON.stringify({
|
|
3972
|
+
stage: RUN_DIAG_STAGE.workerSetupStep,
|
|
3973
|
+
detail: `${s}=${Date.now() - setupT0}ms`,
|
|
3974
|
+
at: Date.now(),
|
|
3975
|
+
}).slice(0, 2000);
|
|
3976
|
+
await __diagExec.execute({
|
|
3977
|
+
sql: `UPDATE agent_runs SET diag_stage = ? WHERE id = ?`,
|
|
3978
|
+
args: [payload, bgRunId],
|
|
3979
|
+
});
|
|
3980
|
+
} catch {}
|
|
3981
|
+
};
|
|
3953
3982
|
// DIAGNOSTIC-ONLY: non-DB breadcrumb to the function log drain. `workerStep`
|
|
3954
3983
|
// writes to the DB, which is exactly what stalls after `model_done` in the bg
|
|
3955
3984
|
// worker (no diag write lands), so this logs to stdout (Netlify function
|
|
@@ -4267,7 +4296,7 @@ export function createProductionAgentHandler(
|
|
|
4267
4296
|
// DIAGNOSTIC-ONLY: engine/model/api-key resolution finished. A worker that
|
|
4268
4297
|
// reached db_request_ctx but not env_config hung in attachment upload or
|
|
4269
4298
|
// engine/model resolution.
|
|
4270
|
-
|
|
4299
|
+
await workerStepAwait("env_config");
|
|
4271
4300
|
bgLog("env_config");
|
|
4272
4301
|
bgLog("presend:creating");
|
|
4273
4302
|
// Run all independent pre-send steps in parallel. Each of these hits
|
|
@@ -4604,7 +4633,7 @@ export function createProductionAgentHandler(
|
|
|
4604
4633
|
setupMark("ctxAll");
|
|
4605
4634
|
// DIAGNOSTIC-ONLY: all parallel context gathering (system prompt, screen,
|
|
4606
4635
|
// files, loop settings, enriched message) resolved.
|
|
4607
|
-
|
|
4636
|
+
await workerStepAwait("context_all");
|
|
4608
4637
|
bgLog("context_all");
|
|
4609
4638
|
|
|
4610
4639
|
if (systemPromptError) {
|
|
@@ -4635,7 +4664,7 @@ export function createProductionAgentHandler(
|
|
|
4635
4664
|
);
|
|
4636
4665
|
setupMark("actions");
|
|
4637
4666
|
// DIAGNOSTIC-ONLY: action/tool resolution + engine-tool filtering finished.
|
|
4638
|
-
|
|
4667
|
+
await workerStepAwait("action_tool_setup");
|
|
4639
4668
|
bgLog("action_tool_setup");
|
|
4640
4669
|
const requestSystemPrompt =
|
|
4641
4670
|
requestMode === "plan"
|
|
@@ -4750,7 +4779,7 @@ export function createProductionAgentHandler(
|
|
|
4750
4779
|
setupMark("depsThread");
|
|
4751
4780
|
// DIAGNOSTIC-ONLY: owner/thread resolution + runId/effectiveThreadId +
|
|
4752
4781
|
// chained-continuation thread fetch finished.
|
|
4753
|
-
|
|
4782
|
+
await workerStepAwait("owner_thread");
|
|
4754
4783
|
bgLog("owner_thread");
|
|
4755
4784
|
|
|
4756
4785
|
// Persist the user's turn exactly once. The foreground POST does this
|
|
@@ -5170,7 +5199,7 @@ export function createProductionAgentHandler(
|
|
|
5170
5199
|
setupMark("preStart");
|
|
5171
5200
|
// DIAGNOSTIC-ONLY: last stage before startRun fires. A worker that reaches
|
|
5172
5201
|
// prestart but never workerStarted is hanging inside startRun itself.
|
|
5173
|
-
|
|
5202
|
+
await workerStepAwait("prestart");
|
|
5174
5203
|
bgLog("prestart");
|
|
5175
5204
|
const setupDetail =
|
|
5176
5205
|
Object.entries(setupMarks)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"production-agent.d.ts","sourceRoot":"","sources":["../../src/agent/production-agent.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,IAAI,cAAc,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"production-agent.d.ts","sourceRoot":"","sources":["../../src/agent/production-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { defineEventHandler, setResponseHeader, setResponseStatus, getMethod, }
|
|
|
3
3
|
import { isAgentActionStopError } from "../action.js";
|
|
4
4
|
import { readAppState } from "../application-state/script-helpers.js";
|
|
5
5
|
import { isReadOnlyShellCommand } from "../coding-tools/index.js";
|
|
6
|
+
import { createDbExec } from "../db/client.js";
|
|
6
7
|
import { isDemoModeEnabled } from "../demo/config.js";
|
|
7
8
|
import { redactDemoData, redactDemoString } from "../demo/redact.js";
|
|
8
9
|
import { extensionIdFromPathname } from "../extensions/path.js";
|
|
@@ -2975,6 +2976,37 @@ export function createProductionAgentHandler(options) {
|
|
|
2975
2976
|
if (bgRunId)
|
|
2976
2977
|
void recordRunDiagnostic(bgRunId, RUN_DIAG_STAGE.workerSetupStep, `${s}=${Date.now() - setupT0}ms`).catch(() => { });
|
|
2977
2978
|
};
|
|
2979
|
+
// DIAGNOSTIC-ONLY: AWAITED milestone write. Fire-and-forget `workerStep`
|
|
2980
|
+
// writes never land once the worker freezes (a blocked event loop can't
|
|
2981
|
+
// flush async I/O), so for the key post-model_done milestones we AWAIT the
|
|
2982
|
+
// write — it lands while the loop is still running, so the LAST milestone
|
|
2983
|
+
// visible in /runs/active is exactly the one right before the freeze (a sync
|
|
2984
|
+
// block, or a hung await).
|
|
2985
|
+
// Dedicated, NON-pooled connection for the awaited milestone writes. The
|
|
2986
|
+
// pooled connection becomes unusable right after the model-resolution block
|
|
2987
|
+
// (model_done lands, the next pooled write hangs), so route these diag
|
|
2988
|
+
// writes through a fresh connection: if they now land, the POOLED connection
|
|
2989
|
+
// died (and the freeze point becomes visible past model_done); if they still
|
|
2990
|
+
// don't land, the event loop itself is blocked.
|
|
2991
|
+
let __diagExec = null;
|
|
2992
|
+
const workerStepAwait = async (s) => {
|
|
2993
|
+
if (!bgRunId)
|
|
2994
|
+
return;
|
|
2995
|
+
try {
|
|
2996
|
+
if (!__diagExec)
|
|
2997
|
+
__diagExec = await createDbExec();
|
|
2998
|
+
const payload = JSON.stringify({
|
|
2999
|
+
stage: RUN_DIAG_STAGE.workerSetupStep,
|
|
3000
|
+
detail: `${s}=${Date.now() - setupT0}ms`,
|
|
3001
|
+
at: Date.now(),
|
|
3002
|
+
}).slice(0, 2000);
|
|
3003
|
+
await __diagExec.execute({
|
|
3004
|
+
sql: `UPDATE agent_runs SET diag_stage = ? WHERE id = ?`,
|
|
3005
|
+
args: [payload, bgRunId],
|
|
3006
|
+
});
|
|
3007
|
+
}
|
|
3008
|
+
catch { }
|
|
3009
|
+
};
|
|
2978
3010
|
// DIAGNOSTIC-ONLY: non-DB breadcrumb to the function log drain. `workerStep`
|
|
2979
3011
|
// writes to the DB, which is exactly what stalls after `model_done` in the bg
|
|
2980
3012
|
// worker (no diag write lands), so this logs to stdout (Netlify function
|
|
@@ -3247,7 +3279,7 @@ export function createProductionAgentHandler(options) {
|
|
|
3247
3279
|
// DIAGNOSTIC-ONLY: engine/model/api-key resolution finished. A worker that
|
|
3248
3280
|
// reached db_request_ctx but not env_config hung in attachment upload or
|
|
3249
3281
|
// engine/model resolution.
|
|
3250
|
-
|
|
3282
|
+
await workerStepAwait("env_config");
|
|
3251
3283
|
bgLog("env_config");
|
|
3252
3284
|
bgLog("presend:creating");
|
|
3253
3285
|
// Run all independent pre-send steps in parallel. Each of these hits
|
|
@@ -3497,7 +3529,7 @@ export function createProductionAgentHandler(options) {
|
|
|
3497
3529
|
setupMark("ctxAll");
|
|
3498
3530
|
// DIAGNOSTIC-ONLY: all parallel context gathering (system prompt, screen,
|
|
3499
3531
|
// files, loop settings, enriched message) resolved.
|
|
3500
|
-
|
|
3532
|
+
await workerStepAwait("context_all");
|
|
3501
3533
|
bgLog("context_all");
|
|
3502
3534
|
if (systemPromptError) {
|
|
3503
3535
|
setResponseHeader(event, "Content-Type", "text/event-stream");
|
|
@@ -3519,7 +3551,7 @@ export function createProductionAgentHandler(options) {
|
|
|
3519
3551
|
const requestTools = filterInitialEngineTools(availableRequestTools, options.initialToolNames);
|
|
3520
3552
|
setupMark("actions");
|
|
3521
3553
|
// DIAGNOSTIC-ONLY: action/tool resolution + engine-tool filtering finished.
|
|
3522
|
-
|
|
3554
|
+
await workerStepAwait("action_tool_setup");
|
|
3523
3555
|
bgLog("action_tool_setup");
|
|
3524
3556
|
const requestSystemPrompt = requestMode === "plan"
|
|
3525
3557
|
? `${systemPrompt}\n\n${PLAN_MODE_SYSTEM_PROMPT}`
|
|
@@ -3619,7 +3651,7 @@ export function createProductionAgentHandler(options) {
|
|
|
3619
3651
|
setupMark("depsThread");
|
|
3620
3652
|
// DIAGNOSTIC-ONLY: owner/thread resolution + runId/effectiveThreadId +
|
|
3621
3653
|
// chained-continuation thread fetch finished.
|
|
3622
|
-
|
|
3654
|
+
await workerStepAwait("owner_thread");
|
|
3623
3655
|
bgLog("owner_thread");
|
|
3624
3656
|
// Persist the user's turn exactly once. The foreground POST does this
|
|
3625
3657
|
// before dispatching; the background worker must NOT repeat it (it re-enters
|
|
@@ -3978,7 +4010,7 @@ export function createProductionAgentHandler(options) {
|
|
|
3978
4010
|
setupMark("preStart");
|
|
3979
4011
|
// DIAGNOSTIC-ONLY: last stage before startRun fires. A worker that reaches
|
|
3980
4012
|
// prestart but never workerStarted is hanging inside startRun itself.
|
|
3981
|
-
|
|
4013
|
+
await workerStepAwait("prestart");
|
|
3982
4014
|
bgLog("prestart");
|
|
3983
4015
|
const setupDetail = Object.entries(setupMarks)
|
|
3984
4016
|
.map(([k, v]) => `${k}=${v}`)
|