@kheleshikhi/studio-agent 0.8.0 → 0.9.1
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/README.md +54 -0
- package/dist/attempt.d.ts +4 -0
- package/dist/attempt.js +11 -1
- package/dist/attempt.js.map +1 -1
- package/dist/browser.d.ts +18 -4
- package/dist/browser.js +84 -22
- package/dist/browser.js.map +1 -1
- package/dist/cli.d.ts +10 -0
- package/dist/cli.js +429 -97
- package/dist/cli.js.map +1 -1
- package/dist/daemon.js +72 -8
- package/dist/daemon.js.map +1 -1
- package/dist/episode-runner.d.ts +109 -0
- package/dist/episode-runner.js +381 -0
- package/dist/episode-runner.js.map +1 -0
- package/dist/episode.d.ts +332 -0
- package/dist/episode.js +648 -0
- package/dist/episode.js.map +1 -0
- package/dist/project.d.ts +30 -0
- package/dist/project.js +204 -0
- package/dist/project.js.map +1 -0
- package/dist/render-jobs.d.ts +101 -0
- package/dist/render-jobs.js +241 -0
- package/dist/render-jobs.js.map +1 -0
- package/dist/shot-provenance.d.ts +66 -0
- package/dist/shot-provenance.js +114 -0
- package/dist/shot-provenance.js.map +1 -0
- package/dist/state.js +10 -6
- package/dist/state.js.map +1 -1
- package/dist/video.d.ts +38 -5
- package/dist/video.js +73 -12
- package/dist/video.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"episode.js","sourceRoot":"","sources":["../src/episode.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export declare const PROJECT_OUTPUT_TARGETS: readonly ["lesson", "game", "experience", "video"];
|
|
2
|
+
export declare const PROJECT_IMPORT_KINDS: readonly ["component", "behavior", "audio", "experience"];
|
|
3
|
+
export declare const SCOPE_WARNING_CODE = "LIBRARY_SCOPE_NOT_PERMITTED";
|
|
4
|
+
export type FlagReader = (name: string) => string | undefined;
|
|
5
|
+
export type ApiCall = <T>(method: string, route: string, body?: unknown) => Promise<T>;
|
|
6
|
+
/** Flags accepted by component/behavior search, besides the original two. */
|
|
7
|
+
export declare const SCOPED_SEARCH_FLAGS: string[];
|
|
8
|
+
/** Flags accepted per `project` action. */
|
|
9
|
+
export declare const PROJECT_FLAGS: Record<string, string[]>;
|
|
10
|
+
export declare function projectId(value: string | undefined, code?: string): string;
|
|
11
|
+
/** The project to act in: an explicit id, else the active Attempt's project. */
|
|
12
|
+
export declare function resolveProject(explicit: string | undefined, active: string | null | undefined): string;
|
|
13
|
+
export declare function projectCreateBody(flag: FlagReader): Record<string, unknown>;
|
|
14
|
+
export declare function projectImportBody(stableId: string | undefined, flag: FlagReader): Record<string, unknown>;
|
|
15
|
+
/**
|
|
16
|
+
* Query for component/behavior search. Without a view flag the server decides:
|
|
17
|
+
* compact and scoped inside a project Attempt, the original full list outside.
|
|
18
|
+
*/
|
|
19
|
+
export declare function searchParameters(query: string, flag: FlagReader, has: (name: string) => boolean): URLSearchParams;
|
|
20
|
+
/** One stderr line for a scoped search: the scope, and what lies outside it. */
|
|
21
|
+
export declare function searchNotice(result: unknown, kind: string): string | null;
|
|
22
|
+
/** Says where an inspected contract stands; null when it is in scope or unscoped. */
|
|
23
|
+
export declare function inspectNotice(result: unknown, kind: string): string | null;
|
|
24
|
+
/** LIBRARY_SCOPE_NOT_PERMITTED diagnostics from a validate/compile result. */
|
|
25
|
+
export declare function scopeWarnings(result: unknown): Record<string, unknown>[];
|
|
26
|
+
export declare function scopeWarningNotice(warnings: Record<string, unknown>[]): string | null;
|
|
27
|
+
/** Mark each library as home/permitted for a project, when one is known. */
|
|
28
|
+
export declare function librariesView(rows: unknown, project: Record<string, any> | null): unknown;
|
|
29
|
+
/** `nerdbro project <action>`. Every route is the Agent token's own surface. */
|
|
30
|
+
export declare function projectCommand(action: string | undefined, argument: string | undefined, flag: FlagReader, api: ApiCall, activeProject: string | null | undefined): Promise<Record<string, unknown>>;
|
package/dist/project.js
ADDED
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Authoring-project context for the Studio Agent.
|
|
3
|
+
*
|
|
4
|
+
* A project fixes which asset libraries an Attempt authors from. The server
|
|
5
|
+
* owns the scope: an Attempt started with `--project` is scoped for every
|
|
6
|
+
* later request carrying its Attempt id, so the CLI only remembers the
|
|
7
|
+
* project's public id in the workspace Attempt pointer. Nothing about a
|
|
8
|
+
* library or its members is bundled here.
|
|
9
|
+
*/
|
|
10
|
+
import { CliError } from "./types.js";
|
|
11
|
+
export const PROJECT_OUTPUT_TARGETS = ["lesson", "game", "experience", "video"];
|
|
12
|
+
export const PROJECT_IMPORT_KINDS = ["component", "behavior", "audio", "experience"];
|
|
13
|
+
export const SCOPE_WARNING_CODE = "LIBRARY_SCOPE_NOT_PERMITTED";
|
|
14
|
+
// Mirrors the server's project public id bound (max 11) and its URL-safe alphabet.
|
|
15
|
+
const PROJECT_ID = /^[A-Za-z0-9_-]{1,11}$/;
|
|
16
|
+
const SLUG = /^[a-z][a-z0-9-]{1,62}$/;
|
|
17
|
+
/** Flags accepted by component/behavior search, besides the original two. */
|
|
18
|
+
export const SCOPED_SEARCH_FLAGS = ["limit", "offset", "all-libraries", "full", "compact"];
|
|
19
|
+
/** Flags accepted per `project` action. */
|
|
20
|
+
export const PROJECT_FLAGS = {
|
|
21
|
+
list: [],
|
|
22
|
+
current: [],
|
|
23
|
+
show: [],
|
|
24
|
+
libraries: ["project"],
|
|
25
|
+
create: ["title", "purpose", "output-target", "home-library", "permitted"],
|
|
26
|
+
import: ["kind", "reason", "definition-hash", "project"],
|
|
27
|
+
};
|
|
28
|
+
export function projectId(value, code = "PROJECT_ID_INVALID") {
|
|
29
|
+
if (!value || !PROJECT_ID.test(value))
|
|
30
|
+
throw new CliError("Project id must be the project's public id.", code, 2);
|
|
31
|
+
return value;
|
|
32
|
+
}
|
|
33
|
+
/** The project to act in: an explicit id, else the active Attempt's project. */
|
|
34
|
+
export function resolveProject(explicit, active) {
|
|
35
|
+
if (explicit)
|
|
36
|
+
return projectId(explicit);
|
|
37
|
+
if (active)
|
|
38
|
+
return projectId(active);
|
|
39
|
+
throw new CliError("No project: pass a project id, or start the Attempt with `nerdbro attempt start --label <text> --project <id>`.", "PROJECT_REQUIRED", 2);
|
|
40
|
+
}
|
|
41
|
+
export function projectCreateBody(flag) {
|
|
42
|
+
const title = flag("title");
|
|
43
|
+
if (!title)
|
|
44
|
+
throw new CliError("--title is required.", "AGENT_ARGUMENT_REQUIRED", 2);
|
|
45
|
+
const target = flag("output-target");
|
|
46
|
+
if (!target || !PROJECT_OUTPUT_TARGETS.includes(target)) {
|
|
47
|
+
throw new CliError(`--output-target must be ${PROJECT_OUTPUT_TARGETS.join("|")}.`, "PROJECT_OUTPUT_TARGET_INVALID", 2);
|
|
48
|
+
}
|
|
49
|
+
const home = flag("home-library");
|
|
50
|
+
if (!home || !SLUG.test(home))
|
|
51
|
+
throw new CliError("--home-library must be a library slug (see `nerdbro project libraries`).", "PROJECT_HOME_LIBRARY_INVALID", 2);
|
|
52
|
+
const body = { title, output_target: target, home_library: home };
|
|
53
|
+
const purpose = flag("purpose");
|
|
54
|
+
if (purpose)
|
|
55
|
+
body.purpose = purpose;
|
|
56
|
+
const permitted = flag("permitted");
|
|
57
|
+
if (permitted !== undefined) {
|
|
58
|
+
const slugs = permitted.split(",").map((value) => value.trim()).filter(Boolean);
|
|
59
|
+
const bad = slugs.find((slug) => !SLUG.test(slug));
|
|
60
|
+
if (bad)
|
|
61
|
+
throw new CliError(`--permitted contains an invalid library slug: ${bad}`, "PROJECT_LIBRARY_INVALID", 2);
|
|
62
|
+
body.permitted_libraries = slugs;
|
|
63
|
+
}
|
|
64
|
+
return body;
|
|
65
|
+
}
|
|
66
|
+
export function projectImportBody(stableId, flag) {
|
|
67
|
+
if (!stableId)
|
|
68
|
+
throw new CliError("The stable id to import is required.", "AGENT_ARGUMENT_REQUIRED", 2);
|
|
69
|
+
const kind = flag("kind") || "component";
|
|
70
|
+
if (!PROJECT_IMPORT_KINDS.includes(kind)) {
|
|
71
|
+
throw new CliError(`--kind must be ${PROJECT_IMPORT_KINDS.join("|")}.`, "PROJECT_IMPORT_KIND_INVALID", 2);
|
|
72
|
+
}
|
|
73
|
+
const body = { kind, stable_id: stableId };
|
|
74
|
+
const reason = flag("reason");
|
|
75
|
+
if (reason)
|
|
76
|
+
body.reason = reason;
|
|
77
|
+
const hash = flag("definition-hash");
|
|
78
|
+
if (hash) {
|
|
79
|
+
if (!/^[0-9a-f]{64}$/.test(hash))
|
|
80
|
+
throw new CliError("--definition-hash must be 64 lowercase hex characters.", "PROJECT_IMPORT_HASH_INVALID", 2);
|
|
81
|
+
body.definition_hash = hash;
|
|
82
|
+
}
|
|
83
|
+
return body;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Query for component/behavior search. Without a view flag the server decides:
|
|
87
|
+
* compact and scoped inside a project Attempt, the original full list outside.
|
|
88
|
+
*/
|
|
89
|
+
export function searchParameters(query, flag, has) {
|
|
90
|
+
if (has("full") && has("compact"))
|
|
91
|
+
throw new CliError("Pass --full or --compact, not both.", "CLI_FLAG_CONFLICT", 2);
|
|
92
|
+
const parameters = new URLSearchParams({ query });
|
|
93
|
+
const limit = flag("limit");
|
|
94
|
+
const offset = flag("offset");
|
|
95
|
+
if (limit)
|
|
96
|
+
parameters.set("limit", limit);
|
|
97
|
+
if (offset)
|
|
98
|
+
parameters.set("offset", offset);
|
|
99
|
+
if (has("full"))
|
|
100
|
+
parameters.set("view", "full");
|
|
101
|
+
if (has("compact"))
|
|
102
|
+
parameters.set("view", "compact");
|
|
103
|
+
if (has("all-libraries"))
|
|
104
|
+
parameters.set("all_libraries", "true");
|
|
105
|
+
return parameters;
|
|
106
|
+
}
|
|
107
|
+
function record(value) {
|
|
108
|
+
return value && typeof value === "object" && !Array.isArray(value) ? value : null;
|
|
109
|
+
}
|
|
110
|
+
/** One stderr line for a scoped search: the scope, and what lies outside it. */
|
|
111
|
+
export function searchNotice(result, kind) {
|
|
112
|
+
const value = record(result);
|
|
113
|
+
if (!value || value.view !== "compact")
|
|
114
|
+
return null;
|
|
115
|
+
const lines = [];
|
|
116
|
+
const scope = record(value.scope);
|
|
117
|
+
if (scope)
|
|
118
|
+
lines.push(`project ${scope.project}: searching ${(scope.permitted_libraries || []).join(", ")} (${value.total ?? value.count} in scope)`);
|
|
119
|
+
const outside = record(value.outside_scope);
|
|
120
|
+
if (outside && Number(outside.count) > 0) {
|
|
121
|
+
const examples = Array.isArray(outside.examples) ? outside.examples.join(", ") : "";
|
|
122
|
+
lines.push(`${outside.count} related ${kind}(s) outside this project's libraries${examples ? `, e.g. ${examples}` : ""}.`);
|
|
123
|
+
if (outside.hint)
|
|
124
|
+
lines.push(String(outside.hint));
|
|
125
|
+
lines.push(`Inspect one with \`nerdbro ${kind} inspect <id>\`; reuse it with \`nerdbro project import <id>${kind === "component" ? "" : ` --kind ${kind}`} --reason <why>\`, or search with --all-libraries.`);
|
|
126
|
+
}
|
|
127
|
+
return lines.length ? lines.join("\n") : null;
|
|
128
|
+
}
|
|
129
|
+
/** Says where an inspected contract stands; null when it is in scope or unscoped. */
|
|
130
|
+
export function inspectNotice(result, kind) {
|
|
131
|
+
const value = record(result);
|
|
132
|
+
if (!value || value.inScope !== false)
|
|
133
|
+
return null;
|
|
134
|
+
const libraries = Array.isArray(value.libraries) ? value.libraries.map((item) => item?.library).filter(Boolean) : [];
|
|
135
|
+
return `${value.id} is outside this project's libraries${libraries.length ? ` (it belongs to ${libraries.join(", ")})` : ""}. `
|
|
136
|
+
+ `Reuse it deliberately with \`nerdbro project import ${value.id}${kind === "component" ? "" : ` --kind ${kind}`} --reason <why>\`; approval refuses an unimported out-of-scope dependency.`;
|
|
137
|
+
}
|
|
138
|
+
/** LIBRARY_SCOPE_NOT_PERMITTED diagnostics from a validate/compile result. */
|
|
139
|
+
export function scopeWarnings(result) {
|
|
140
|
+
const diagnostics = record(result)?.diagnostics;
|
|
141
|
+
if (!Array.isArray(diagnostics))
|
|
142
|
+
return [];
|
|
143
|
+
return diagnostics.filter((item) => record(item)?.code === SCOPE_WARNING_CODE);
|
|
144
|
+
}
|
|
145
|
+
export function scopeWarningNotice(warnings) {
|
|
146
|
+
if (!warnings.length)
|
|
147
|
+
return null;
|
|
148
|
+
return [
|
|
149
|
+
`${warnings.length} library-scope warning(s): approval will refuse these until they are imported or replaced.`,
|
|
150
|
+
...warnings.map((item) => ` ${String(item.message || item.code)}`),
|
|
151
|
+
].join("\n");
|
|
152
|
+
}
|
|
153
|
+
/** Mark each library as home/permitted for a project, when one is known. */
|
|
154
|
+
export function librariesView(rows, project) {
|
|
155
|
+
if (!Array.isArray(rows) || !project)
|
|
156
|
+
return rows;
|
|
157
|
+
const permitted = new Set([project.home_library, ...(project.permitted_libraries || [])]);
|
|
158
|
+
return rows.map((row) => {
|
|
159
|
+
const slug = record(row)?.slug;
|
|
160
|
+
return { ...row, home: slug === project.home_library, permitted: permitted.has(slug) };
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
/** `nerdbro project <action>`. Every route is the Agent token's own surface. */
|
|
164
|
+
export async function projectCommand(action, argument, flag, api, activeProject) {
|
|
165
|
+
if (!action || action === "list") {
|
|
166
|
+
return { ok: true, command: "project.list", active_project: activeProject || null, result: await api("GET", "/v1/agent/projects") };
|
|
167
|
+
}
|
|
168
|
+
if (action === "create") {
|
|
169
|
+
const result = await api("POST", "/v1/agent/projects", projectCreateBody(flag));
|
|
170
|
+
return {
|
|
171
|
+
ok: true, command: "project.create", project: result.public_id, result,
|
|
172
|
+
next: `nerdbro attempt start --label <text> --project ${String(result.public_id)}`,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
if (action === "current") {
|
|
176
|
+
if (!activeProject)
|
|
177
|
+
return { ok: true, command: "project.current", project: null };
|
|
178
|
+
const result = await api("GET", `/v1/agent/projects/${encodeURIComponent(projectId(activeProject))}`);
|
|
179
|
+
return { ok: true, command: "project.current", project: activeProject, result };
|
|
180
|
+
}
|
|
181
|
+
if (action === "show") {
|
|
182
|
+
const id = resolveProject(argument, activeProject);
|
|
183
|
+
return { ok: true, command: "project.show", project: id, result: await api("GET", `/v1/agent/projects/${encodeURIComponent(id)}`) };
|
|
184
|
+
}
|
|
185
|
+
if (action === "libraries") {
|
|
186
|
+
const explicit = argument || flag("project");
|
|
187
|
+
const id = explicit ? projectId(explicit) : activeProject ? projectId(activeProject) : null;
|
|
188
|
+
const rows = await api("GET", "/v1/agent/libraries");
|
|
189
|
+
const project = id ? await api("GET", `/v1/agent/projects/${encodeURIComponent(id)}`) : null;
|
|
190
|
+
return {
|
|
191
|
+
ok: true, command: "project.libraries", project: id,
|
|
192
|
+
...(project ? { home_library: project.home_library, permitted_libraries: [project.home_library, ...(project.permitted_libraries || [])] } : {}),
|
|
193
|
+
result: librariesView(rows, project),
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
if (action === "import") {
|
|
197
|
+
const body = projectImportBody(argument, flag);
|
|
198
|
+
const id = resolveProject(flag("project"), activeProject);
|
|
199
|
+
const result = await api("POST", `/v1/agent/projects/${encodeURIComponent(id)}/imports`, body);
|
|
200
|
+
return { ok: true, command: "project.import", project: id, imported: { kind: body.kind, stable_id: body.stable_id }, result };
|
|
201
|
+
}
|
|
202
|
+
throw new CliError(`Unknown project command: ${action}. Use list|create|current|show|libraries|import.`, "AGENT_COMMAND_UNKNOWN", 2);
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { CliError } from "./types.js";
|
|
2
|
+
export type RenderJobState = "running" | "cancelling" | "completed" | "failed" | "cancelled";
|
|
3
|
+
export type RenderProgress = {
|
|
4
|
+
stage: string;
|
|
5
|
+
frame?: number;
|
|
6
|
+
frames?: number;
|
|
7
|
+
};
|
|
8
|
+
export type RenderJobContext = {
|
|
9
|
+
signal: AbortSignal;
|
|
10
|
+
progress: (value: RenderProgress) => void;
|
|
11
|
+
};
|
|
12
|
+
export type RenderRunner<T = unknown> = (context: RenderJobContext) => Promise<T>;
|
|
13
|
+
export type RenderJobError = {
|
|
14
|
+
code: string;
|
|
15
|
+
message: string;
|
|
16
|
+
stage: string;
|
|
17
|
+
exitCode: number;
|
|
18
|
+
details?: unknown;
|
|
19
|
+
};
|
|
20
|
+
export type RenderJobView = {
|
|
21
|
+
id: string;
|
|
22
|
+
kind: string;
|
|
23
|
+
state: RenderJobState;
|
|
24
|
+
progress: RenderProgress;
|
|
25
|
+
elapsed_ms: number;
|
|
26
|
+
cancel_reason?: string;
|
|
27
|
+
error?: RenderJobError;
|
|
28
|
+
};
|
|
29
|
+
export declare const RENDER_JOB_LIMITS: {
|
|
30
|
+
/** No status poll for this long: the client is gone, so the job is cancelled. */
|
|
31
|
+
abandonAfterMs: number;
|
|
32
|
+
/** The documented ceiling is ~9 minutes of capture; this is generous headroom. */
|
|
33
|
+
maxRuntimeMs: number;
|
|
34
|
+
/** A finished job's result is kept this long for its client to collect. */
|
|
35
|
+
retainMs: number;
|
|
36
|
+
};
|
|
37
|
+
/** The error a renderer throws when its job's signal is aborted. */
|
|
38
|
+
export declare function cancelledError(signal: AbortSignal): CliError;
|
|
39
|
+
/** Throw [cancelledError] when the job was cancelled; called between frames. */
|
|
40
|
+
export declare function throwIfCancelled(signal: AbortSignal | undefined): void;
|
|
41
|
+
export declare class RenderJobs {
|
|
42
|
+
private readonly options;
|
|
43
|
+
private readonly jobs;
|
|
44
|
+
readonly limits: typeof RENDER_JOB_LIMITS;
|
|
45
|
+
/** Jobs that may run at once: one per render browser the daemon owns. */
|
|
46
|
+
readonly maxConcurrent: number;
|
|
47
|
+
constructor(options?: {
|
|
48
|
+
clock?: () => number;
|
|
49
|
+
limits?: Partial<typeof RENDER_JOB_LIMITS>;
|
|
50
|
+
maxConcurrent?: number;
|
|
51
|
+
});
|
|
52
|
+
private now;
|
|
53
|
+
/** Start one job; refused while another is still running or stopping. */
|
|
54
|
+
start(kind: string, runner: RenderRunner, cleanup?: () => Promise<void>): RenderJobView;
|
|
55
|
+
private find;
|
|
56
|
+
/** A client's poll: the job's state, and its result once it completed. Keeps the job alive. */
|
|
57
|
+
status(id: string): {
|
|
58
|
+
job: RenderJobView;
|
|
59
|
+
result?: unknown;
|
|
60
|
+
};
|
|
61
|
+
/** Ask a running job to stop; it becomes `cancelled` once the renderer has. */
|
|
62
|
+
cancel(id: string, reason?: string): RenderJobView;
|
|
63
|
+
private abort;
|
|
64
|
+
/** Cancel abandoned or overlong jobs and forget old finished ones. Run periodically. */
|
|
65
|
+
sweep(): void;
|
|
66
|
+
/** Resolves once the job's renderer and cleanup have finished (tests and shutdown). */
|
|
67
|
+
settled(id: string): Promise<RenderJobView>;
|
|
68
|
+
/** Cancel everything and wait (daemon shutdown). */
|
|
69
|
+
stopAll(reason?: string): Promise<void>;
|
|
70
|
+
private view;
|
|
71
|
+
}
|
|
72
|
+
export type RenderJobRunners = Record<string, (request: Record<string, unknown>, context: RenderJobContext) => Promise<unknown>>;
|
|
73
|
+
export type RenderJobCleanups = Record<string, (request: Record<string, unknown>) => Promise<void>>;
|
|
74
|
+
/**
|
|
75
|
+
* The daemon's job routes: `POST /render-jobs` {kind, request} starts one,
|
|
76
|
+
* `GET /render-jobs/<id>` polls it, `DELETE /render-jobs/<id>` cancels it.
|
|
77
|
+
* Returns null for any other route.
|
|
78
|
+
*/
|
|
79
|
+
export declare function renderJobRoute(jobs: RenderJobs, runners: RenderJobRunners, cleanups: RenderJobCleanups, method: string, pathname: string, body: () => Promise<Record<string, unknown>>): Promise<{
|
|
80
|
+
status: number;
|
|
81
|
+
value: Record<string, unknown>;
|
|
82
|
+
} | null>;
|
|
83
|
+
export type Rpc = <T>(path: string, init?: {
|
|
84
|
+
method?: string;
|
|
85
|
+
body?: string;
|
|
86
|
+
signal?: AbortSignal;
|
|
87
|
+
}) => Promise<T>;
|
|
88
|
+
export type RenderJobClientOptions = {
|
|
89
|
+
pollMs?: number;
|
|
90
|
+
/** Ctrl-C or the caller giving up: the job is cancelled, then this throws. */
|
|
91
|
+
signal?: AbortSignal;
|
|
92
|
+
onProgress?: (job: RenderJobView) => void;
|
|
93
|
+
sleep?: (milliseconds: number, signal?: AbortSignal) => Promise<void>;
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* Run one render as a daemon job: start, poll until it ends, return its
|
|
97
|
+
* result. Each request is short, so no request comes near any client or
|
|
98
|
+
* server timeout however long the render is. A daemon that predates jobs
|
|
99
|
+
* (`AGENT_LOCAL_RPC_NOT_FOUND`) is served by its single long request.
|
|
100
|
+
*/
|
|
101
|
+
export declare function runRenderJob<T>(rpc: Rpc, kind: string, legacyRoute: string, request: Record<string, unknown>, options?: RenderJobClientOptions): Promise<T>;
|