@agent-native/core 0.78.4 → 0.78.7
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 +18 -0
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/agent/production-agent.ts +92 -16
- package/corpus/core/src/agent/run-store.ts +26 -5
- package/corpus/core/src/server/agent-chat-plugin.ts +10 -0
- package/corpus/templates/assets/actions/_helpers.ts +15 -2
- package/corpus/templates/assets/actions/get-library.ts +2 -2
- package/corpus/templates/assets/actions/view-screen.ts +98 -36
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +65 -9
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/run-store.d.ts +1 -0
- package/dist/agent/run-store.d.ts.map +1 -1
- package/dist/agent/run-store.js +24 -5
- package/dist/agent/run-store.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 +1 -1
- package/dist/notifications/routes.d.ts +3 -3
- package/dist/observability/routes.d.ts +3 -3
- package/dist/resources/handlers.d.ts +1 -1
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +10 -0
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/transcribe-voice.d.ts +1 -1
- package/package.json +1 -1
package/corpus/core/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @agent-native/core
|
|
2
2
|
|
|
3
|
+
## 0.78.7
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 61b078a: Preserve resolved user and org context when agent tool calls run actions.
|
|
8
|
+
|
|
9
|
+
## 0.78.6
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 81a7f90: diag(agent): add awaited `post_model_awaited` and `pre_claim` probes in the durable background worker. `worker_stage` stalls at `model_done` even though the code right after is trivial sync; these awaited (withDbTimeout-bounded) writes distinguish a hung bg-fn DB connection right after model resolution (probe never lands) from a later main-flow stall (probe lands, then the stall is downstream).
|
|
14
|
+
|
|
15
|
+
## 0.78.5
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- 2a5a74b: diag(agent): add a `worker_stage` column that records the durable background worker's last-reached setup stage independently of the foreground inline-recovery `setup_timings` write, plus early `engine_resolved` / `systemprompt_enter` / `systemprompt_done` markers. `/runs/active` now surfaces `workerStage`, so a worker that stalls before claiming its run is diagnosable (which exact step it reached) without the unreadable Netlify background-function logs.
|
|
20
|
+
|
|
3
21
|
## 0.78.4
|
|
4
22
|
|
|
5
23
|
### Patch Changes
|
package/corpus/core/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-native/core",
|
|
3
|
-
"version": "0.78.
|
|
3
|
+
"version": "0.78.7",
|
|
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": {
|
|
@@ -33,8 +33,10 @@ import { readBody } from "../server/h3-helpers.js";
|
|
|
33
33
|
import {
|
|
34
34
|
getRequestRunContext,
|
|
35
35
|
ensureRequestRunContext,
|
|
36
|
+
getRequestContext,
|
|
36
37
|
getRequestOrgId,
|
|
37
38
|
getRequestUserEmail,
|
|
39
|
+
runWithRequestContext,
|
|
38
40
|
} from "../server/request-context.js";
|
|
39
41
|
import { fireInternalDispatch } from "../server/self-dispatch.js";
|
|
40
42
|
import {
|
|
@@ -3431,23 +3433,40 @@ export async function runAgentLoop(opts: {
|
|
|
3431
3433
|
| undefined;
|
|
3432
3434
|
try {
|
|
3433
3435
|
const timeoutSignal = AbortSignal.timeout(toolTimeoutMs);
|
|
3436
|
+
const actionUserEmail = opts.ownerEmail ?? getRequestUserEmail();
|
|
3437
|
+
const actionOrgId = opts.orgId ?? getRequestOrgId() ?? null;
|
|
3438
|
+
const actionContext = {
|
|
3439
|
+
send,
|
|
3440
|
+
userEmail: actionUserEmail ?? undefined,
|
|
3441
|
+
orgId: actionOrgId,
|
|
3442
|
+
caller: "tool" as const,
|
|
3443
|
+
attachments: opts.attachments,
|
|
3444
|
+
signal,
|
|
3445
|
+
// Audit attribution: the action name + the agent thread/turn that
|
|
3446
|
+
// triggered this call, so a mutation can be traced to its run.
|
|
3447
|
+
actionName: toolCall.name,
|
|
3448
|
+
...(opts.threadId ? { threadId: opts.threadId } : {}),
|
|
3449
|
+
...(opts.turnId ? { turnId: opts.turnId } : {}),
|
|
3450
|
+
};
|
|
3451
|
+
const requestContext = getRequestContext();
|
|
3452
|
+
const invokeAction = () =>
|
|
3453
|
+
actionEntry.run(
|
|
3454
|
+
toolCall.input as Record<string, string>,
|
|
3455
|
+
actionContext,
|
|
3456
|
+
);
|
|
3434
3457
|
// Keep a reference to the action promise so we can attach a zombie-
|
|
3435
3458
|
// detection continuation AFTER Promise.race abandons it on run abort.
|
|
3436
3459
|
// The promise itself is not awaited here — Promise.race owns the await.
|
|
3437
3460
|
const actionPromise = Promise.resolve(
|
|
3438
|
-
|
|
3439
|
-
|
|
3440
|
-
|
|
3441
|
-
|
|
3442
|
-
|
|
3443
|
-
|
|
3444
|
-
|
|
3445
|
-
|
|
3446
|
-
|
|
3447
|
-
actionName: toolCall.name,
|
|
3448
|
-
...(opts.threadId ? { threadId: opts.threadId } : {}),
|
|
3449
|
-
...(opts.turnId ? { turnId: opts.turnId } : {}),
|
|
3450
|
-
}),
|
|
3461
|
+
runWithRequestContext(
|
|
3462
|
+
{
|
|
3463
|
+
...(requestContext ?? {}),
|
|
3464
|
+
...(actionUserEmail ? { userEmail: actionUserEmail } : {}),
|
|
3465
|
+
...(actionOrgId ? { orgId: actionOrgId } : {}),
|
|
3466
|
+
...(requestContext?.run ? { run: requestContext.run } : {}),
|
|
3467
|
+
},
|
|
3468
|
+
invokeAction,
|
|
3469
|
+
),
|
|
3451
3470
|
);
|
|
3452
3471
|
|
|
3453
3472
|
// When the run is aborted (soft-timeout / user cancel) while this tool
|
|
@@ -4177,6 +4196,35 @@ export function createProductionAgentHandler(
|
|
|
4177
4196
|
);
|
|
4178
4197
|
|
|
4179
4198
|
options.onEngineResolved?.(engine, model);
|
|
4199
|
+
// DIAGNOSTIC-ONLY: localize where the worker stalls AFTER model_done. These
|
|
4200
|
+
// land in `worker_stage` (foreground-independent), so even though the
|
|
4201
|
+
// foreground overwrites `diag_stage` on inline recovery, the worker's last
|
|
4202
|
+
// reached point survives. If the last worker_stage is `model_done`, writes
|
|
4203
|
+
// hang right after model resolution (DB connection); if it's
|
|
4204
|
+
// `engine_resolved`/`systemprompt_enter`, the stall is in the named step.
|
|
4205
|
+
workerStep("engine_resolved");
|
|
4206
|
+
// DIAGNOSTIC-ONLY: AWAITED probe (bg worker only). worker_stage stalls at
|
|
4207
|
+
// `model_done` even though the code right after is trivial sync — this
|
|
4208
|
+
// distinguishes the two causes: if `post_model_awaited` lands, DB writes
|
|
4209
|
+
// still work after model_done and the stall is later in the main flow; if it
|
|
4210
|
+
// never lands (stays `model_done`), the bg-fn DB connection itself is hung
|
|
4211
|
+
// right after model resolution. `recordRunDiagnostic` is `withDbTimeout`-
|
|
4212
|
+
// bounded, so a hung write rejects (caught) rather than blocking forever.
|
|
4213
|
+
if (isBackgroundWorker && bgRunId) {
|
|
4214
|
+
const probeStart = Date.now();
|
|
4215
|
+
try {
|
|
4216
|
+
await recordRunDiagnostic(
|
|
4217
|
+
bgRunId,
|
|
4218
|
+
RUN_DIAG_STAGE.workerSetupStep,
|
|
4219
|
+
"post_model_awaited",
|
|
4220
|
+
);
|
|
4221
|
+
workerStep(`post_model_ok=${Date.now() - probeStart}ms`);
|
|
4222
|
+
} catch (e) {
|
|
4223
|
+
workerStep(
|
|
4224
|
+
`post_model_threw=${Date.now() - probeStart}ms:${String((e as Error)?.message ?? e).slice(0, 80)}`,
|
|
4225
|
+
);
|
|
4226
|
+
}
|
|
4227
|
+
}
|
|
4180
4228
|
|
|
4181
4229
|
// One-line per-turn resolution log so it's obvious in dev which engine
|
|
4182
4230
|
// is actually handling the request. `requestEngine` is what the client
|
|
@@ -4229,10 +4277,18 @@ export function createProductionAgentHandler(
|
|
|
4229
4277
|
const systemPromptThunk = (): Promise<string> =>
|
|
4230
4278
|
(async (): Promise<string> => {
|
|
4231
4279
|
const sysPromptStart = Date.now();
|
|
4280
|
+
// Brackets the system-prompt build (which runs the template's
|
|
4281
|
+
// extraContext / data-dictionary). If worker_stage stalls at
|
|
4282
|
+
// `systemprompt_enter` with no `systemprompt_done`, the build itself is
|
|
4283
|
+
// the stall point.
|
|
4284
|
+
workerStep("systemprompt_enter");
|
|
4232
4285
|
try {
|
|
4233
|
-
|
|
4234
|
-
|
|
4235
|
-
|
|
4286
|
+
const built =
|
|
4287
|
+
typeof options.systemPrompt === "function"
|
|
4288
|
+
? await options.systemPrompt(event)
|
|
4289
|
+
: options.systemPrompt;
|
|
4290
|
+
workerStep("systemprompt_done");
|
|
4291
|
+
return built;
|
|
4236
4292
|
} catch (error) {
|
|
4237
4293
|
systemPromptError = error;
|
|
4238
4294
|
return "";
|
|
@@ -5091,6 +5147,26 @@ export function createProductionAgentHandler(
|
|
|
5091
5147
|
// DIAGNOSTIC-ONLY: last stage before startRun fires. A worker that reaches
|
|
5092
5148
|
// prestart but never workerStarted is hanging inside startRun itself.
|
|
5093
5149
|
workerStep("prestart");
|
|
5150
|
+
// DIAGNOSTIC-ONLY: AWAITED probe right before startRun (bg worker only). If
|
|
5151
|
+
// worker_stage reaches `pre_claim_ok` but the run never flips to
|
|
5152
|
+
// `worker_started`, the stall is inside startRun's claim itself; if it never
|
|
5153
|
+
// reaches `pre_claim_*`, the stall is somewhere in the setup between
|
|
5154
|
+
// post_model and here.
|
|
5155
|
+
if (isBackgroundWorker && bgRunId) {
|
|
5156
|
+
const claimProbeStart = Date.now();
|
|
5157
|
+
try {
|
|
5158
|
+
await recordRunDiagnostic(
|
|
5159
|
+
bgRunId,
|
|
5160
|
+
RUN_DIAG_STAGE.workerSetupStep,
|
|
5161
|
+
"pre_claim",
|
|
5162
|
+
);
|
|
5163
|
+
workerStep(`pre_claim_ok=${Date.now() - claimProbeStart}ms`);
|
|
5164
|
+
} catch (e) {
|
|
5165
|
+
workerStep(
|
|
5166
|
+
`pre_claim_threw=${Date.now() - claimProbeStart}ms:${String((e as Error)?.message ?? e).slice(0, 80)}`,
|
|
5167
|
+
);
|
|
5168
|
+
}
|
|
5169
|
+
}
|
|
5094
5170
|
// DIAGNOSTIC-ONLY: peak-ish RSS (MB) + assembled system-prompt size (KB) at
|
|
5095
5171
|
// prestart. The analytics bg worker dies right after model_done; if the
|
|
5096
5172
|
// FOREGROUND (identical build, writes land) is already near the ~1024MB
|
|
@@ -172,6 +172,7 @@ async function ensureRunTables(): Promise<void> {
|
|
|
172
172
|
["error_detail", "TEXT"],
|
|
173
173
|
["dispatch_mode", "TEXT"],
|
|
174
174
|
["diag_stage", "TEXT"],
|
|
175
|
+
["worker_stage", "TEXT"],
|
|
175
176
|
] as const) {
|
|
176
177
|
await ensureColumnExists(
|
|
177
178
|
"agent_runs",
|
|
@@ -248,6 +249,7 @@ async function ensureRunTables(): Promise<void> {
|
|
|
248
249
|
"error_detail",
|
|
249
250
|
"dispatch_mode",
|
|
250
251
|
"diag_stage",
|
|
252
|
+
"worker_stage",
|
|
251
253
|
] as const) {
|
|
252
254
|
try {
|
|
253
255
|
await client.execute(`ALTER TABLE agent_runs ADD COLUMN ${col} TEXT`);
|
|
@@ -449,12 +451,13 @@ export async function readBackgroundRunClaim(runId: string): Promise<{
|
|
|
449
451
|
dispatchMode: string | null;
|
|
450
452
|
status: string | null;
|
|
451
453
|
diagStage: string | null;
|
|
454
|
+
workerStage: string | null;
|
|
452
455
|
lastLivenessAt: number | null;
|
|
453
456
|
} | null> {
|
|
454
457
|
await ensureRunTables();
|
|
455
458
|
const client = getDbExec();
|
|
456
459
|
const { rows } = await client.execute({
|
|
457
|
-
sql: `SELECT dispatch_mode, status, diag_stage, started_at, heartbeat_at FROM agent_runs WHERE id = ? LIMIT 1`,
|
|
460
|
+
sql: `SELECT dispatch_mode, status, diag_stage, worker_stage, started_at, heartbeat_at FROM agent_runs WHERE id = ? LIMIT 1`,
|
|
458
461
|
args: [runId],
|
|
459
462
|
});
|
|
460
463
|
const row = rows?.[0] as
|
|
@@ -462,6 +465,7 @@ export async function readBackgroundRunClaim(runId: string): Promise<{
|
|
|
462
465
|
dispatch_mode?: string | null;
|
|
463
466
|
status?: string | null;
|
|
464
467
|
diag_stage?: string | null;
|
|
468
|
+
worker_stage?: string | null;
|
|
465
469
|
started_at?: number | null;
|
|
466
470
|
heartbeat_at?: number | null;
|
|
467
471
|
}
|
|
@@ -471,6 +475,7 @@ export async function readBackgroundRunClaim(runId: string): Promise<{
|
|
|
471
475
|
dispatchMode: row.dispatch_mode ?? null,
|
|
472
476
|
status: row.status ?? null,
|
|
473
477
|
diagStage: row.diag_stage ?? null,
|
|
478
|
+
workerStage: row.worker_stage ?? null,
|
|
474
479
|
// Same liveness basis the unclaimed-reaper uses (COALESCE(heartbeat_at,
|
|
475
480
|
// started_at)), so the foreground can decide to recover BEFORE the reaper.
|
|
476
481
|
lastLivenessAt: row.heartbeat_at ?? row.started_at ?? null,
|
|
@@ -644,10 +649,26 @@ export async function recordRunDiagnostic(
|
|
|
644
649
|
...(detail ? { detail: detail.slice(0, 1500) } : {}),
|
|
645
650
|
at: Date.now(),
|
|
646
651
|
}).slice(0, 2000);
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
652
|
+
// Worker-setup stages ALSO land in `worker_stage`, a column the foreground's
|
|
653
|
+
// inline-recovery `setup_timings` write never touches. `/runs/active` only
|
|
654
|
+
// surfaces a run after it is claimed, and the foreground then overwrites
|
|
655
|
+
// `diag_stage` — so without this the durable worker's pre-claim progression
|
|
656
|
+
// (where it stalled before claiming) is unrecoverable. `worker_stage`
|
|
657
|
+
// preserves the last worker stage reached for post-hoc diagnosis.
|
|
658
|
+
const isWorkerStage =
|
|
659
|
+
stage === RUN_DIAG_STAGE.workerSetupStep ||
|
|
660
|
+
stage === RUN_DIAG_STAGE.workerStarted;
|
|
661
|
+
if (isWorkerStage) {
|
|
662
|
+
await client.execute({
|
|
663
|
+
sql: `UPDATE agent_runs SET diag_stage = ?, worker_stage = ? WHERE id = ?`,
|
|
664
|
+
args: [payload, payload, runId],
|
|
665
|
+
});
|
|
666
|
+
} else {
|
|
667
|
+
await client.execute({
|
|
668
|
+
sql: `UPDATE agent_runs SET diag_stage = ? WHERE id = ?`,
|
|
669
|
+
args: [payload, runId],
|
|
670
|
+
});
|
|
671
|
+
}
|
|
651
672
|
} catch {
|
|
652
673
|
// Diagnostics are best-effort; never let them break the run or the route.
|
|
653
674
|
}
|
|
@@ -61,6 +61,7 @@ import {
|
|
|
61
61
|
import { runAgentLoopDirectWithSoftTimeout } from "../agent/run-loop-with-resume.js";
|
|
62
62
|
import { callerOwnsRun, callerOwnsThread } from "../agent/run-ownership.js";
|
|
63
63
|
import type { AgentRunSummary } from "../agent/run-store.js";
|
|
64
|
+
import { readBackgroundRunClaim } from "../agent/run-store.js";
|
|
64
65
|
import { buildRuntimeContextPrompt } from "../agent/runtime-context.js";
|
|
65
66
|
import {
|
|
66
67
|
buildAssistantMessage,
|
|
@@ -7178,6 +7179,14 @@ Non-code requests are still fine on this surface: read data, navigate the UI, su
|
|
|
7178
7179
|
lastProgressAt: null,
|
|
7179
7180
|
};
|
|
7180
7181
|
}
|
|
7182
|
+
// The durable worker writes its pre-claim progression to a separate
|
|
7183
|
+
// `worker_stage` column that the foreground inline-recovery's
|
|
7184
|
+
// `setup_timings` write never overwrites — so the worker's last
|
|
7185
|
+
// reached stage (where it stalled before claiming) survives even
|
|
7186
|
+
// after the foreground takes over `diag_stage`. Best-effort.
|
|
7187
|
+
const workerClaim = run.runId
|
|
7188
|
+
? await readBackgroundRunClaim(run.runId).catch(() => null)
|
|
7189
|
+
: null;
|
|
7181
7190
|
|
|
7182
7191
|
return {
|
|
7183
7192
|
active: true,
|
|
@@ -7195,6 +7204,7 @@ Non-code requests are still fine on this surface: read data, navigate the UI, su
|
|
|
7195
7204
|
// `/runs/active?threadId=...` and inspect `diagStage`.
|
|
7196
7205
|
dispatchMode: run.dispatchMode ?? null,
|
|
7197
7206
|
diagStage: run.diagStage ?? null,
|
|
7207
|
+
workerStage: workerClaim?.workerStage ?? null,
|
|
7198
7208
|
// Server clock so the client computes "stuck" elapsed time
|
|
7199
7209
|
// server-relative, immune to client clock skew.
|
|
7200
7210
|
serverNow: Date.now(),
|
|
@@ -12,8 +12,21 @@ import type {
|
|
|
12
12
|
StyleBrief,
|
|
13
13
|
} from "../shared/api.js";
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
type AccessCtx = {
|
|
16
|
+
userEmail?: string;
|
|
17
|
+
orgId?: string | null;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
function accessContext(ctx?: AccessCtx) {
|
|
21
|
+
if (!ctx) return undefined;
|
|
22
|
+
return {
|
|
23
|
+
userEmail: ctx.userEmail,
|
|
24
|
+
orgId: ctx.orgId ?? undefined,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export async function requireLibrary(id: string, ctx?: AccessCtx) {
|
|
29
|
+
const access = await resolveAccess("asset-library", id, accessContext(ctx));
|
|
17
30
|
if (!access) throw new Error("Asset library not found or not accessible.");
|
|
18
31
|
return access.resource;
|
|
19
32
|
}
|
|
@@ -18,8 +18,8 @@ export default defineAction({
|
|
|
18
18
|
}),
|
|
19
19
|
http: { method: "GET" },
|
|
20
20
|
readOnly: true,
|
|
21
|
-
run: async ({ id }) => {
|
|
22
|
-
const library = await requireLibrary(id);
|
|
21
|
+
run: async ({ id }, ctx) => {
|
|
22
|
+
const library = await requireLibrary(id, ctx);
|
|
23
23
|
const db = getDb();
|
|
24
24
|
const [collections, folders, assets, runs] = await Promise.all([
|
|
25
25
|
db
|
|
@@ -15,13 +15,17 @@ import listGenerationPresets from "./list-generation-presets.js";
|
|
|
15
15
|
import listGenerationSessions from "./list-generation-sessions.js";
|
|
16
16
|
import listLibraries from "./list-libraries.js";
|
|
17
17
|
|
|
18
|
+
function screenError(error: unknown): string {
|
|
19
|
+
return error instanceof Error ? error.message : String(error);
|
|
20
|
+
}
|
|
21
|
+
|
|
18
22
|
export default defineAction({
|
|
19
23
|
description:
|
|
20
24
|
"See what the user is currently looking at in Assets, including current library/asset context and pending generation variants.",
|
|
21
25
|
schema: z.object({}),
|
|
22
26
|
http: false,
|
|
23
27
|
readOnly: true,
|
|
24
|
-
run: async () => {
|
|
28
|
+
run: async (_args, ctx) => {
|
|
25
29
|
const [navigation, variants, legacyVariants] = await Promise.all([
|
|
26
30
|
readAppStateForCurrentTab("navigation"),
|
|
27
31
|
readAppState("asset-variants"),
|
|
@@ -32,56 +36,114 @@ export default defineAction({
|
|
|
32
36
|
variants: variants ?? legacyVariants,
|
|
33
37
|
};
|
|
34
38
|
const nav = navigation as any;
|
|
39
|
+
const errors: Record<string, string> = {};
|
|
40
|
+
const readPart = async <T>(
|
|
41
|
+
key: string,
|
|
42
|
+
task: () => T | Promise<T>,
|
|
43
|
+
): Promise<T | null> => {
|
|
44
|
+
try {
|
|
45
|
+
const value = await task();
|
|
46
|
+
screen[key] = value;
|
|
47
|
+
return value;
|
|
48
|
+
} catch (error) {
|
|
49
|
+
errors[key] = screenError(error);
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
|
|
35
54
|
if (nav?.libraryId) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
55
|
+
const library = await readPart("library", () =>
|
|
56
|
+
getLibrary.run({ id: nav.libraryId }, ctx),
|
|
57
|
+
);
|
|
58
|
+
if (library) {
|
|
59
|
+
await Promise.all([
|
|
60
|
+
readPart("generationPresets", () =>
|
|
61
|
+
listGenerationPresets.run(
|
|
62
|
+
{
|
|
63
|
+
libraryId: nav.libraryId,
|
|
64
|
+
},
|
|
65
|
+
ctx,
|
|
66
|
+
),
|
|
67
|
+
),
|
|
68
|
+
readPart("generationSessions", () =>
|
|
69
|
+
listGenerationSessions.run(
|
|
70
|
+
{
|
|
71
|
+
libraryId: nav.libraryId,
|
|
72
|
+
limit: 20,
|
|
73
|
+
},
|
|
74
|
+
ctx,
|
|
75
|
+
),
|
|
76
|
+
),
|
|
77
|
+
]);
|
|
78
|
+
}
|
|
44
79
|
}
|
|
45
80
|
if (nav?.assetId) {
|
|
46
|
-
|
|
81
|
+
await readPart("asset", () => getAsset.run({ id: nav.assetId }, ctx));
|
|
47
82
|
}
|
|
48
83
|
if (nav?.sessionId) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
84
|
+
await readPart("generationSession", () =>
|
|
85
|
+
getGenerationSession.run(
|
|
86
|
+
{
|
|
87
|
+
id: nav.sessionId,
|
|
88
|
+
},
|
|
89
|
+
ctx,
|
|
90
|
+
),
|
|
91
|
+
);
|
|
52
92
|
}
|
|
53
93
|
if (nav?.runId) {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
94
|
+
await readPart("generationRun", () =>
|
|
95
|
+
getGenerationRun.run(
|
|
96
|
+
{
|
|
97
|
+
runId: nav.runId,
|
|
98
|
+
},
|
|
99
|
+
ctx,
|
|
100
|
+
),
|
|
101
|
+
);
|
|
57
102
|
}
|
|
58
103
|
if (nav?.view === "picker") {
|
|
59
|
-
|
|
104
|
+
await readPart("libraries", () =>
|
|
105
|
+
listLibraries.run({ compact: true }, ctx),
|
|
106
|
+
);
|
|
60
107
|
if (nav.libraryId) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
108
|
+
await readPart("assets", () =>
|
|
109
|
+
listAssets.run(
|
|
110
|
+
{
|
|
111
|
+
libraryId: nav.libraryId,
|
|
112
|
+
mediaType:
|
|
113
|
+
nav.mediaType === "image" || nav.mediaType === "video"
|
|
114
|
+
? nav.mediaType
|
|
115
|
+
: undefined,
|
|
116
|
+
query:
|
|
117
|
+
typeof nav.query === "string" && nav.query.trim()
|
|
118
|
+
? nav.query
|
|
119
|
+
: undefined,
|
|
120
|
+
},
|
|
121
|
+
ctx,
|
|
122
|
+
),
|
|
123
|
+
);
|
|
72
124
|
}
|
|
73
125
|
}
|
|
74
126
|
if (nav?.view === "library" && nav?.selection === "all") {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
127
|
+
await Promise.all([
|
|
128
|
+
readPart("libraries", () => listLibraries.run({ compact: false }, ctx)),
|
|
129
|
+
readPart("assets", () =>
|
|
130
|
+
listAssets.run(
|
|
131
|
+
{
|
|
132
|
+
query:
|
|
133
|
+
typeof nav.search === "string" && nav.search.trim()
|
|
134
|
+
? nav.search
|
|
135
|
+
: undefined,
|
|
136
|
+
},
|
|
137
|
+
ctx,
|
|
138
|
+
),
|
|
139
|
+
),
|
|
140
|
+
]);
|
|
82
141
|
}
|
|
83
142
|
if (nav?.view === "audit") {
|
|
84
|
-
|
|
143
|
+
await readPart("audit", () => listAuditRuns.run({ limit: 20 }, ctx));
|
|
144
|
+
}
|
|
145
|
+
if (Object.keys(errors).length) {
|
|
146
|
+
screen.errors = errors;
|
|
85
147
|
}
|
|
86
148
|
return screen;
|
|
87
149
|
},
|
|
@@ -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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"}
|