@lingjingai/scriptctl 0.8.3 → 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/dist/common.d.ts +4 -0
- package/dist/common.js +87 -0
- package/dist/common.js.map +1 -1
- package/dist/infra/providers.d.ts +35 -7
- package/dist/infra/providers.js +266 -342
- package/dist/infra/providers.js.map +1 -1
- package/package.json +3 -6
package/dist/common.d.ts
CHANGED
|
@@ -42,6 +42,10 @@ export declare const EFFECTIVE_FROM_VALUES: Set<string>;
|
|
|
42
42
|
export declare const ACTOR_REUSE_SCENE_LIMIT = 1;
|
|
43
43
|
export declare const PROP_REUSE_SCENE_LIMIT = 1;
|
|
44
44
|
export declare const MARKDOWN_BATCH_PROMPT_SPEC: string;
|
|
45
|
+
export type JsonSchema = Record<string, unknown>;
|
|
46
|
+
export declare const METADATA_EXTRACTION_SCHEMA: JsonSchema;
|
|
47
|
+
export declare const ASSET_CURATION_SCHEMA: JsonSchema;
|
|
48
|
+
export declare const EPISODE_TITLE_EXTRACTION_SCHEMA: JsonSchema;
|
|
45
49
|
export interface Report {
|
|
46
50
|
title?: string;
|
|
47
51
|
message?: string;
|
package/dist/common.js
CHANGED
|
@@ -178,6 +178,93 @@ export const MARKDOWN_BATCH_PROMPT_SPEC = "Output format: a single markdown docu
|
|
|
178
178
|
" An item without `:` carries no description.\n" +
|
|
179
179
|
"- Lines marked [meta] in Batch Source are read-only metadata; do not promote\n" +
|
|
180
180
|
" them to actions.\n";
|
|
181
|
+
export const METADATA_EXTRACTION_SCHEMA = {
|
|
182
|
+
type: "object",
|
|
183
|
+
required: ["confidence", "worldview", "worldview_raw", "actors", "locations", "props"],
|
|
184
|
+
additionalProperties: false,
|
|
185
|
+
properties: {
|
|
186
|
+
confidence: { type: "string", enum: ["high", "medium", "low"] },
|
|
187
|
+
worldview: { type: "string", enum: WORLDVIEW_VALUES },
|
|
188
|
+
worldview_raw: { type: "string" },
|
|
189
|
+
actors: {
|
|
190
|
+
type: "array",
|
|
191
|
+
items: {
|
|
192
|
+
type: "object",
|
|
193
|
+
required: ["actor_id", "role_type", "description"],
|
|
194
|
+
additionalProperties: false,
|
|
195
|
+
properties: {
|
|
196
|
+
actor_id: { type: "string" },
|
|
197
|
+
role_type: { type: "string", enum: ROLE_TYPE_VALUES },
|
|
198
|
+
description: { type: "string" },
|
|
199
|
+
},
|
|
200
|
+
},
|
|
201
|
+
},
|
|
202
|
+
locations: {
|
|
203
|
+
type: "array",
|
|
204
|
+
items: {
|
|
205
|
+
type: "object",
|
|
206
|
+
required: ["location_id", "description"],
|
|
207
|
+
additionalProperties: false,
|
|
208
|
+
properties: {
|
|
209
|
+
location_id: { type: "string" },
|
|
210
|
+
description: { type: "string" },
|
|
211
|
+
},
|
|
212
|
+
},
|
|
213
|
+
},
|
|
214
|
+
props: {
|
|
215
|
+
type: "array",
|
|
216
|
+
items: {
|
|
217
|
+
type: "object",
|
|
218
|
+
required: ["prop_id", "description"],
|
|
219
|
+
additionalProperties: false,
|
|
220
|
+
properties: {
|
|
221
|
+
prop_id: { type: "string" },
|
|
222
|
+
description: { type: "string" },
|
|
223
|
+
},
|
|
224
|
+
},
|
|
225
|
+
},
|
|
226
|
+
},
|
|
227
|
+
};
|
|
228
|
+
export const ASSET_CURATION_SCHEMA = {
|
|
229
|
+
type: "object",
|
|
230
|
+
required: ["locations"],
|
|
231
|
+
additionalProperties: false,
|
|
232
|
+
properties: {
|
|
233
|
+
locations: {
|
|
234
|
+
type: "array",
|
|
235
|
+
items: {
|
|
236
|
+
type: "object",
|
|
237
|
+
required: ["location_id", "decision", "target_location_id", "reason"],
|
|
238
|
+
additionalProperties: false,
|
|
239
|
+
properties: {
|
|
240
|
+
location_id: { type: "string" },
|
|
241
|
+
decision: { type: "string", enum: ["keep", "merge"] },
|
|
242
|
+
target_location_id: { type: ["string", "null"] },
|
|
243
|
+
reason: { type: "string" },
|
|
244
|
+
},
|
|
245
|
+
},
|
|
246
|
+
},
|
|
247
|
+
},
|
|
248
|
+
};
|
|
249
|
+
export const EPISODE_TITLE_EXTRACTION_SCHEMA = {
|
|
250
|
+
type: "object",
|
|
251
|
+
required: ["episode_titles"],
|
|
252
|
+
additionalProperties: false,
|
|
253
|
+
properties: {
|
|
254
|
+
episode_titles: {
|
|
255
|
+
type: "array",
|
|
256
|
+
items: {
|
|
257
|
+
type: "object",
|
|
258
|
+
required: ["episode", "title"],
|
|
259
|
+
additionalProperties: false,
|
|
260
|
+
properties: {
|
|
261
|
+
episode: { type: "integer" },
|
|
262
|
+
title: { type: "string" },
|
|
263
|
+
},
|
|
264
|
+
},
|
|
265
|
+
},
|
|
266
|
+
},
|
|
267
|
+
};
|
|
181
268
|
export class CliError extends Error {
|
|
182
269
|
title;
|
|
183
270
|
exitCode;
|
package/dist/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,25 +13,53 @@ export declare class MockProvider implements ProviderLike {
|
|
|
13
13
|
extractAssetCuration(_sourceText: string, _script: Dict): Dict;
|
|
14
14
|
extractEpisodeTitles(sourceText: string, episodePlan: Dict): Dict;
|
|
15
15
|
}
|
|
16
|
-
export declare class
|
|
16
|
+
export declare class AnthropicProvider implements ProviderLike {
|
|
17
17
|
readonly name = "anthropic";
|
|
18
|
+
private readonly client;
|
|
18
19
|
private readonly model;
|
|
19
|
-
|
|
20
|
-
private
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
constructor(model: string);
|
|
21
|
+
private messageRequest;
|
|
22
|
+
private collectResponseText;
|
|
23
|
+
/**
|
|
24
|
+
* Run a request that forces a specific tool call via `tool_choice`, then return that
|
|
25
|
+
* tool's `input` dict (already parsed by the SDK — no JSON.parse needed). Returns
|
|
26
|
+
* `null` when the provider didn't emit the expected tool_use block (e.g. refusal,
|
|
27
|
+
* truncated before tool call, gateway dropped tools field), letting the caller
|
|
28
|
+
* raise a method-specific CliError.
|
|
29
|
+
*/
|
|
30
|
+
private collectToolUseInput;
|
|
31
|
+
/**
|
|
32
|
+
* Generic completion entry point. Used by episode subcommand's gemini-writer to draft
|
|
33
|
+
* one episode's spec markdown from the assembled prompt. Throws CliError when the
|
|
34
|
+
* provider truncates output (so the caller can surface a deterministic error rather
|
|
35
|
+
* than committing a half-baked episode).
|
|
36
|
+
*/
|
|
23
37
|
complete(prompt: string, maxTokens?: number): Promise<string>;
|
|
24
38
|
extractEpisode(sourceText: string, episodePlan: Dict): Promise<Dict>;
|
|
25
39
|
extractBatch(sourceText: string, batchPlan: Dict): Promise<Dict>;
|
|
26
40
|
extractEpisodeTitles(sourceText: string, episodePlan: Dict): Promise<Dict>;
|
|
27
41
|
extractAssetCuration(_sourceText: string, script: Dict): Promise<Dict>;
|
|
28
42
|
extractMetadata(_sourceText: string, script: Dict): Promise<Dict>;
|
|
29
|
-
private extractStructured;
|
|
30
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Google Gemini provider via REST API. No SDK dependency (uses fetch).
|
|
46
|
+
*
|
|
47
|
+
* Used as the default writer for `scriptctl episode draft`. The Anthropic provider
|
|
48
|
+
* stays available for other internal extraction tasks (metadata / title generation /
|
|
49
|
+
* direct-init batch extraction) where Claude tends to outperform Gemini on JSON
|
|
50
|
+
* schema adherence.
|
|
51
|
+
*
|
|
52
|
+
* Env:
|
|
53
|
+
* - `SCRIPTCTL_GEMINI_API_KEY` (or fallback `GEMINI_API_KEY`) required
|
|
54
|
+
* - `SCRIPTCTL_GEMINI_BASE_URL` optional override
|
|
55
|
+
* - `SCRIPTCTL_GEMINI_MODEL` optional default-model override
|
|
56
|
+
*/
|
|
31
57
|
export declare class GeminiProvider implements ProviderLike {
|
|
32
58
|
readonly name = "gemini";
|
|
59
|
+
private readonly apiKey;
|
|
60
|
+
private readonly baseUrl;
|
|
33
61
|
private readonly model;
|
|
34
|
-
constructor(
|
|
62
|
+
constructor(model?: string);
|
|
35
63
|
/**
|
|
36
64
|
* Plain-text completion. Used by `episode draft` to write a spec-md episode body.
|
|
37
65
|
*/
|
package/dist/infra/providers.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import { APICallError, NoObjectGeneratedError, RetryError, extractJsonMiddleware, generateObject, generateText, wrapLanguageModel, } from "ai";
|
|
4
|
-
import { z } from "zod";
|
|
5
|
-
import { CliError, DEFAULT_BATCH_MAX_TOKENS, DEFAULT_MAX_TOKENS, EXIT_RUNTIME, EXIT_USAGE, MARKDOWN_BATCH_PROMPT_SPEC, ROLE_TYPE_VALUES, WORLDVIEW_VALUES, } from "../common.js";
|
|
1
|
+
import Anthropic from "@anthropic-ai/sdk";
|
|
2
|
+
import { ASSET_CURATION_SCHEMA, CliError, DEFAULT_BATCH_MAX_TOKENS, DEFAULT_MAX_TOKENS, DEFAULT_THINKING_BUDGET_TOKENS, EPISODE_TITLE_EXTRACTION_SCHEMA, EXIT_RUNTIME, EXIT_USAGE, MARKDOWN_BATCH_PROMPT_SPEC, METADATA_EXTRACTION_SCHEMA, NONSTREAMING_MAX_TOKENS, WORLDVIEW_VALUES, } from "../common.js";
|
|
6
3
|
import { _md_push_asset, _normalize_speaker_list, buildAssetCurationContext, buildEpisodeTitleContext, buildMetadataContext, deterministicEpisodeShortTitle, deterministicExtractEpisode, deterministicExtractMetadata, episodesNeedingGeneratedTitles, formatBatchSource, parseMarkdownBatch, } from "../domain/direct-core.js";
|
|
7
4
|
function strOf(v) {
|
|
8
5
|
if (v === null || v === undefined)
|
|
@@ -16,43 +13,6 @@ function asList(v) {
|
|
|
16
13
|
return Array.isArray(v) ? v : [];
|
|
17
14
|
}
|
|
18
15
|
// ---------------------------------------------------------------------------
|
|
19
|
-
// Zod schemas for structured extraction (LLM JSON-mode output)
|
|
20
|
-
// ---------------------------------------------------------------------------
|
|
21
|
-
const ROLE_TYPE_TUPLE = ROLE_TYPE_VALUES;
|
|
22
|
-
const WORLDVIEW_TUPLE = WORLDVIEW_VALUES;
|
|
23
|
-
const METADATA_SCHEMA = z.object({
|
|
24
|
-
confidence: z.enum(["high", "medium", "low"]),
|
|
25
|
-
worldview: z.enum(WORLDVIEW_TUPLE),
|
|
26
|
-
worldview_raw: z.string(),
|
|
27
|
-
actors: z.array(z.object({
|
|
28
|
-
actor_id: z.string(),
|
|
29
|
-
role_type: z.enum(ROLE_TYPE_TUPLE),
|
|
30
|
-
description: z.string(),
|
|
31
|
-
})),
|
|
32
|
-
locations: z.array(z.object({
|
|
33
|
-
location_id: z.string(),
|
|
34
|
-
description: z.string(),
|
|
35
|
-
})),
|
|
36
|
-
props: z.array(z.object({
|
|
37
|
-
prop_id: z.string(),
|
|
38
|
-
description: z.string(),
|
|
39
|
-
})),
|
|
40
|
-
});
|
|
41
|
-
const ASSET_CURATION_SCHEMA = z.object({
|
|
42
|
-
locations: z.array(z.object({
|
|
43
|
-
location_id: z.string(),
|
|
44
|
-
decision: z.enum(["keep", "merge"]),
|
|
45
|
-
target_location_id: z.string().nullable(),
|
|
46
|
-
reason: z.string(),
|
|
47
|
-
})),
|
|
48
|
-
});
|
|
49
|
-
const EPISODE_TITLE_SCHEMA = z.object({
|
|
50
|
-
episode_titles: z.array(z.object({
|
|
51
|
-
episode: z.number().int(),
|
|
52
|
-
title: z.string(),
|
|
53
|
-
})),
|
|
54
|
-
});
|
|
55
|
-
// ---------------------------------------------------------------------------
|
|
56
16
|
// Mock provider
|
|
57
17
|
// ---------------------------------------------------------------------------
|
|
58
18
|
export class MockProvider {
|
|
@@ -138,23 +98,13 @@ export class MockProvider {
|
|
|
138
98
|
}
|
|
139
99
|
}
|
|
140
100
|
// ---------------------------------------------------------------------------
|
|
141
|
-
//
|
|
142
|
-
// /v1/chat/completions. Backs every Claude / DeepSeek / etc. model fronted by
|
|
143
|
-
// the gateway. The protocol switch from /v1/messages (Anthropic) to
|
|
144
|
-
// /v1/chat/completions is intentional: it lets gateway-routed models that lack
|
|
145
|
-
// Anthropic tool_use support (e.g. deepseek-v4-pro-packy) reuse the same
|
|
146
|
-
// structured-output path via JSON-mode schemas.
|
|
147
|
-
//
|
|
148
|
-
// `name = "anthropic"` is preserved (not renamed to "litellm") so previously
|
|
149
|
-
// written checkpoint metadata (`{"provider": "anthropic"}`) keeps validating
|
|
150
|
-
// after upgrade — no forced re-extraction.
|
|
101
|
+
// Anthropic provider
|
|
151
102
|
// ---------------------------------------------------------------------------
|
|
152
|
-
export class
|
|
103
|
+
export class AnthropicProvider {
|
|
153
104
|
name = "anthropic";
|
|
105
|
+
client;
|
|
154
106
|
model;
|
|
155
|
-
|
|
156
|
-
configuredMaxTokens;
|
|
157
|
-
constructor(modelId) {
|
|
107
|
+
constructor(model) {
|
|
158
108
|
const apiKey = (process.env.PROJECT_LITELLM_GATEWAY_API_KEY ?? "").trim();
|
|
159
109
|
if (!apiKey) {
|
|
160
110
|
throw new CliError("INIT FAILED: provider not configured", "Provider credentials are not configured for this environment.", {
|
|
@@ -165,78 +115,83 @@ export class LiteLLMProvider {
|
|
|
165
115
|
errorCode: "PROVIDER_AUTH_MISSING",
|
|
166
116
|
});
|
|
167
117
|
}
|
|
168
|
-
const
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
// instead of dropping the schema and downgrading to `{type:"json_object"}`.
|
|
181
|
-
// Without this flag, LiteLLM downstream has no schema to forward to Claude
|
|
182
|
-
// and the model has to guess the top-level shape from the prompt — that's
|
|
183
|
-
// why it returned a bare array instead of { episode_titles: [...] }.
|
|
184
|
-
//
|
|
185
|
-
// LiteLLM must accept OpenAI-style json_schema response_format and
|
|
186
|
-
// translate it for the underlying provider. If a particular gateway model
|
|
187
|
-
// can't translate (e.g. some packy models), requests will 400; in that
|
|
188
|
-
// case fall back to overriding model id rather than disabling this flag.
|
|
189
|
-
const provider = createOpenAICompatible({
|
|
190
|
-
name: "litellm",
|
|
191
|
-
apiKey,
|
|
192
|
-
baseURL,
|
|
193
|
-
supportsStructuredOutputs: true,
|
|
194
|
-
});
|
|
195
|
-
this.modelId = modelId;
|
|
196
|
-
// Even with structured outputs forwarded, some Claude-family models
|
|
197
|
-
// continue to wrap output in ```json ... ``` fences. extractJsonMiddleware
|
|
198
|
-
// strips the fence before ai-sdk's JSON.parse runs.
|
|
199
|
-
this.model = wrapLanguageModel({
|
|
200
|
-
model: provider(modelId),
|
|
201
|
-
middleware: extractJsonMiddleware(),
|
|
202
|
-
});
|
|
203
|
-
const raw = (process.env.SCRIPTCTL_MAX_TOKENS ?? "").trim();
|
|
204
|
-
let mt = DEFAULT_MAX_TOKENS;
|
|
205
|
-
if (raw) {
|
|
206
|
-
const parsed = parseInt(raw, 10);
|
|
118
|
+
const baseUrl = (process.env.PROJECT_LITELLM_GATEWAY_BASE_URL ?? "").trim();
|
|
119
|
+
const opts = { apiKey };
|
|
120
|
+
if (baseUrl)
|
|
121
|
+
opts.baseURL = baseUrl;
|
|
122
|
+
this.client = new Anthropic(opts);
|
|
123
|
+
this.model = model;
|
|
124
|
+
}
|
|
125
|
+
messageRequest(prompt, maxTokens) {
|
|
126
|
+
const rawMaxTokens = (process.env.SCRIPTCTL_MAX_TOKENS ?? "").trim();
|
|
127
|
+
let configuredMaxTokens = DEFAULT_MAX_TOKENS;
|
|
128
|
+
if (rawMaxTokens) {
|
|
129
|
+
const parsed = parseInt(rawMaxTokens, 10);
|
|
207
130
|
if (!Number.isNaN(parsed))
|
|
208
|
-
|
|
131
|
+
configuredMaxTokens = parsed;
|
|
209
132
|
}
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
133
|
+
let tokenBudget = maxTokens !== undefined ? maxTokens : configuredMaxTokens;
|
|
134
|
+
tokenBudget = Math.max(1024, Math.min(tokenBudget, configuredMaxTokens, DEFAULT_MAX_TOKENS));
|
|
135
|
+
const request = {
|
|
136
|
+
model: this.model,
|
|
137
|
+
max_tokens: tokenBudget,
|
|
138
|
+
messages: [{ role: "user", content: prompt }],
|
|
139
|
+
};
|
|
140
|
+
if (this.model.endsWith("-think")) {
|
|
141
|
+
const rawBudget = (process.env.SCRIPTCTL_THINKING_BUDGET_TOKENS ?? "").trim();
|
|
142
|
+
let budget = DEFAULT_THINKING_BUDGET_TOKENS;
|
|
143
|
+
if (rawBudget) {
|
|
144
|
+
const parsed = parseInt(rawBudget, 10);
|
|
145
|
+
if (!Number.isNaN(parsed))
|
|
146
|
+
budget = parsed;
|
|
147
|
+
}
|
|
148
|
+
request.thinking = { type: "enabled", budget_tokens: Math.max(1024, Math.min(budget, tokenBudget - 1000)) };
|
|
149
|
+
}
|
|
150
|
+
return request;
|
|
215
151
|
}
|
|
216
|
-
async
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
model: this.model,
|
|
223
|
-
prompt,
|
|
224
|
-
maxOutputTokens: max,
|
|
225
|
-
maxRetries: 0,
|
|
226
|
-
});
|
|
227
|
-
raw = result.text.trim();
|
|
228
|
-
finishReason = strOf(result.finishReason);
|
|
152
|
+
async collectResponseText(request) {
|
|
153
|
+
if (request.max_tokens > NONSTREAMING_MAX_TOKENS) {
|
|
154
|
+
const stream = await this.client.messages.stream(request);
|
|
155
|
+
const text = await stream.finalText();
|
|
156
|
+
const message = await stream.finalMessage();
|
|
157
|
+
return [text.trim(), strOf(message.stop_reason)];
|
|
229
158
|
}
|
|
230
|
-
|
|
231
|
-
|
|
159
|
+
const response = await this.client.messages.create(request);
|
|
160
|
+
return [textFromResponse(response), strOf(response.stop_reason)];
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Run a request that forces a specific tool call via `tool_choice`, then return that
|
|
164
|
+
* tool's `input` dict (already parsed by the SDK — no JSON.parse needed). Returns
|
|
165
|
+
* `null` when the provider didn't emit the expected tool_use block (e.g. refusal,
|
|
166
|
+
* truncated before tool call, gateway dropped tools field), letting the caller
|
|
167
|
+
* raise a method-specific CliError.
|
|
168
|
+
*/
|
|
169
|
+
async collectToolUseInput(request, toolName) {
|
|
170
|
+
const maxTokens = Number(request["max_tokens"] ?? 0);
|
|
171
|
+
if (maxTokens > NONSTREAMING_MAX_TOKENS) {
|
|
172
|
+
const stream = await this.client.messages.stream(request);
|
|
173
|
+
const message = (await stream.finalMessage());
|
|
174
|
+
return [findToolUseInput(message.content ?? [], toolName), strOf(message.stop_reason)];
|
|
232
175
|
}
|
|
233
|
-
|
|
176
|
+
const response = (await this.client.messages.create(request));
|
|
177
|
+
return [findToolUseInput(response.content ?? [], toolName), strOf(response.stop_reason)];
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Generic completion entry point. Used by episode subcommand's gemini-writer to draft
|
|
181
|
+
* one episode's spec markdown from the assembled prompt. Throws CliError when the
|
|
182
|
+
* provider truncates output (so the caller can surface a deterministic error rather
|
|
183
|
+
* than committing a half-baked episode).
|
|
184
|
+
*/
|
|
185
|
+
async complete(prompt, maxTokens) {
|
|
186
|
+
const request = this.messageRequest(prompt, maxTokens ?? DEFAULT_BATCH_MAX_TOKENS);
|
|
187
|
+
const [raw, stopReason] = await this.collectResponseText(request);
|
|
188
|
+
if (stopReason === "max_tokens") {
|
|
234
189
|
throw new CliError("DRAFT FAILED: Provider output truncated", "Provider output truncated.", {
|
|
235
190
|
exitCode: EXIT_RUNTIME,
|
|
236
191
|
required: ["complete markdown within provider max_tokens"],
|
|
237
192
|
received: [
|
|
238
|
-
`
|
|
239
|
-
`max_tokens: ${
|
|
193
|
+
`stop_reason: ${stopReason}`,
|
|
194
|
+
`max_tokens: ${request.max_tokens}`,
|
|
240
195
|
`raw chars: ${raw.length}`,
|
|
241
196
|
`tail: ${raw.slice(-160) || "<empty response>"}`,
|
|
242
197
|
],
|
|
@@ -252,7 +207,7 @@ export class LiteLLMProvider {
|
|
|
252
207
|
return this.extractBatch(sourceText, episodePlan);
|
|
253
208
|
}
|
|
254
209
|
async extractBatch(sourceText, batchPlan) {
|
|
255
|
-
const context = isList(batchPlan["context"]) ||
|
|
210
|
+
const context = isList(batchPlan["context"]) || typeof batchPlan["context"] === "object" && batchPlan["context"] !== null
|
|
256
211
|
? batchPlan["context"]
|
|
257
212
|
: {};
|
|
258
213
|
const numberedSource = formatBatchSource(sourceText, batchPlan);
|
|
@@ -268,29 +223,15 @@ export class LiteLLMProvider {
|
|
|
268
223
|
"\n" +
|
|
269
224
|
"Batch Source:\n" +
|
|
270
225
|
`${numberedSource}\n`;
|
|
271
|
-
const
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
try {
|
|
275
|
-
const result = await generateText({
|
|
276
|
-
model: this.model,
|
|
277
|
-
prompt,
|
|
278
|
-
maxOutputTokens: max,
|
|
279
|
-
maxRetries: 0,
|
|
280
|
-
});
|
|
281
|
-
raw = result.text.trim();
|
|
282
|
-
finishReason = strOf(result.finishReason);
|
|
283
|
-
}
|
|
284
|
-
catch (exc) {
|
|
285
|
-
throw translateLiteLLMError(exc, "INIT FAILED");
|
|
286
|
-
}
|
|
287
|
-
if (finishReason === "length") {
|
|
226
|
+
const request = this.messageRequest(prompt, DEFAULT_BATCH_MAX_TOKENS);
|
|
227
|
+
const [raw, stopReason] = await this.collectResponseText(request);
|
|
228
|
+
if (stopReason === "max_tokens") {
|
|
288
229
|
throw new CliError("INIT FAILED: Provider output truncated", "Provider output truncated.", {
|
|
289
230
|
exitCode: EXIT_RUNTIME,
|
|
290
231
|
required: ["complete markdown within provider max_tokens"],
|
|
291
232
|
received: [
|
|
292
|
-
`
|
|
293
|
-
`max_tokens: ${
|
|
233
|
+
`stop_reason: ${stopReason}`,
|
|
234
|
+
`max_tokens: ${request.max_tokens}`,
|
|
294
235
|
`raw chars: ${raw.length}`,
|
|
295
236
|
`tail: ${raw.slice(-160) || "<empty response>"}`,
|
|
296
237
|
],
|
|
@@ -318,19 +259,32 @@ export class LiteLLMProvider {
|
|
|
318
259
|
"\n" +
|
|
319
260
|
"Episodes needing titles:\n" +
|
|
320
261
|
`${JSON.stringify(context)}\n`;
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
262
|
+
const toolName = "submit_episode_titles";
|
|
263
|
+
const request = { ...this.messageRequest(prompt, 4096) };
|
|
264
|
+
request["tools"] = [{
|
|
265
|
+
name: toolName,
|
|
266
|
+
description: "Return generated short Chinese titles for every input episode.",
|
|
267
|
+
input_schema: EPISODE_TITLE_EXTRACTION_SCHEMA,
|
|
268
|
+
}];
|
|
269
|
+
request["tool_choice"] = { type: "tool", name: toolName };
|
|
270
|
+
const [input, stopReason] = await this.collectToolUseInput(request, toolName);
|
|
271
|
+
if (stopReason === "max_tokens") {
|
|
272
|
+
throw new CliError("INIT FAILED: Episode title output truncated", "Episode title output truncated.", {
|
|
273
|
+
exitCode: EXIT_RUNTIME,
|
|
274
|
+
required: ["complete episode title JSON within provider max_tokens"],
|
|
275
|
+
received: [`stop_reason: ${stopReason}`, `max_tokens: ${request["max_tokens"]}`],
|
|
276
|
+
nextSteps: ["Rerun init; if this repeats, split the source or provide explicit episode titles."],
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
if (!input) {
|
|
280
|
+
throw new CliError("INIT FAILED: Provider returned invalid episode title JSON", "Provider returned invalid episode title JSON.", {
|
|
281
|
+
exitCode: EXIT_RUNTIME,
|
|
282
|
+
required: [`tool_use block with name "${toolName}"`],
|
|
283
|
+
received: [`stop_reason: ${stopReason || "unknown"}`, `missing tool_use block: ${toolName}`],
|
|
284
|
+
nextSteps: ["Rerun init; title generation will retry before batch extraction."],
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
return input;
|
|
334
288
|
}
|
|
335
289
|
async extractAssetCuration(_sourceText, script) {
|
|
336
290
|
const context = buildAssetCurationContext(script);
|
|
@@ -348,19 +302,32 @@ export class LiteLLMProvider {
|
|
|
348
302
|
"\n" +
|
|
349
303
|
"Script asset curation context:\n" +
|
|
350
304
|
`${JSON.stringify(context)}\n`;
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
305
|
+
const toolName = "submit_asset_curation";
|
|
306
|
+
const request = { ...this.messageRequest(prompt, DEFAULT_MAX_TOKENS) };
|
|
307
|
+
request["tools"] = [{
|
|
308
|
+
name: toolName,
|
|
309
|
+
description: "Return location merge decisions for the provided script.",
|
|
310
|
+
input_schema: ASSET_CURATION_SCHEMA,
|
|
311
|
+
}];
|
|
312
|
+
request["tool_choice"] = { type: "tool", name: toolName };
|
|
313
|
+
const [input, stopReason] = await this.collectToolUseInput(request, toolName);
|
|
314
|
+
if (stopReason === "max_tokens") {
|
|
315
|
+
throw new CliError("INIT FAILED: Asset curation output truncated", "Asset curation output truncated.", {
|
|
316
|
+
exitCode: EXIT_RUNTIME,
|
|
317
|
+
required: ["complete asset curation JSON within provider max_tokens"],
|
|
318
|
+
received: [`stop_reason: ${stopReason}`, `max_tokens: ${request["max_tokens"]}`],
|
|
319
|
+
nextSteps: ["Rerun init; extraction checkpoints will be reused and asset curation will retry."],
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
if (!input) {
|
|
323
|
+
throw new CliError("INIT FAILED: Provider returned invalid asset curation JSON", "Provider returned invalid asset curation JSON.", {
|
|
324
|
+
exitCode: EXIT_RUNTIME,
|
|
325
|
+
required: [`tool_use block with name "${toolName}"`],
|
|
326
|
+
received: [`stop_reason: ${stopReason || "unknown"}`, `missing tool_use block: ${toolName}`],
|
|
327
|
+
nextSteps: ["Rerun init; extraction checkpoints will be reused and asset curation will retry."],
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
return input;
|
|
364
331
|
}
|
|
365
332
|
async extractMetadata(_sourceText, script) {
|
|
366
333
|
const context = buildMetadataContext(script);
|
|
@@ -378,68 +345,56 @@ export class LiteLLMProvider {
|
|
|
378
345
|
"\n" +
|
|
379
346
|
"Script metadata context:\n" +
|
|
380
347
|
`${JSON.stringify(context)}\n`;
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
const max = this.capTokens(args.maxTokens, args.maxTokens);
|
|
397
|
-
try {
|
|
398
|
-
const result = await generateObject({
|
|
399
|
-
model: this.model,
|
|
400
|
-
prompt: args.prompt,
|
|
401
|
-
schema: args.schema,
|
|
402
|
-
maxOutputTokens: max,
|
|
403
|
-
maxRetries: 0,
|
|
348
|
+
const toolName = "submit_script_metadata";
|
|
349
|
+
const request = { ...this.messageRequest(prompt, DEFAULT_MAX_TOKENS) };
|
|
350
|
+
request["tools"] = [{
|
|
351
|
+
name: toolName,
|
|
352
|
+
description: "Return global script metadata (worldview, actors, locations, props).",
|
|
353
|
+
input_schema: METADATA_EXTRACTION_SCHEMA,
|
|
354
|
+
}];
|
|
355
|
+
request["tool_choice"] = { type: "tool", name: toolName };
|
|
356
|
+
const [input, stopReason] = await this.collectToolUseInput(request, toolName);
|
|
357
|
+
if (stopReason === "max_tokens") {
|
|
358
|
+
throw new CliError("INIT FAILED: Metadata output truncated", "Metadata output truncated.", {
|
|
359
|
+
exitCode: EXIT_RUNTIME,
|
|
360
|
+
required: ["complete metadata JSON within provider max_tokens"],
|
|
361
|
+
received: [`stop_reason: ${stopReason}`, `max_tokens: ${request["max_tokens"]}`],
|
|
362
|
+
nextSteps: ["Rerun init; extraction checkpoints will be reused and metadata will retry."],
|
|
404
363
|
});
|
|
405
|
-
const finishReason = strOf(result.finishReason);
|
|
406
|
-
if (finishReason === "length") {
|
|
407
|
-
throw new CliError(args.title, args.truncationMessage, {
|
|
408
|
-
exitCode: EXIT_RUNTIME,
|
|
409
|
-
required: args.required,
|
|
410
|
-
received: [`finishReason: ${finishReason}`, `max_tokens: ${max}`],
|
|
411
|
-
nextSteps: args.truncationNext,
|
|
412
|
-
});
|
|
413
|
-
}
|
|
414
|
-
return result.object;
|
|
415
364
|
}
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
required: args.invalidRequired,
|
|
424
|
-
received: [
|
|
425
|
-
`error: ${exc.message?.slice(0, 160) || "no object generated"}`,
|
|
426
|
-
...(cause?.message ? [`cause: ${cause.message.slice(0, 160)}`] : []),
|
|
427
|
-
],
|
|
428
|
-
nextSteps: args.invalidNext,
|
|
429
|
-
});
|
|
430
|
-
}
|
|
431
|
-
throw translateLiteLLMError(exc, "INIT FAILED");
|
|
365
|
+
if (!input) {
|
|
366
|
+
throw new CliError("INIT FAILED: Provider returned invalid metadata JSON", "Provider returned invalid metadata JSON.", {
|
|
367
|
+
exitCode: EXIT_RUNTIME,
|
|
368
|
+
required: [`tool_use block with name "${toolName}"`],
|
|
369
|
+
received: [`stop_reason: ${stopReason || "unknown"}`, `missing tool_use block: ${toolName}`],
|
|
370
|
+
nextSteps: ["Rerun init; extraction checkpoints will be reused and metadata will retry."],
|
|
371
|
+
});
|
|
432
372
|
}
|
|
373
|
+
return input;
|
|
433
374
|
}
|
|
434
375
|
}
|
|
435
376
|
// ---------------------------------------------------------------------------
|
|
436
|
-
// Gemini provider
|
|
437
|
-
// Used by `scriptctl episode draft` when --provider gemini.
|
|
377
|
+
// Gemini provider (used by `scriptctl episode draft` by default)
|
|
438
378
|
// ---------------------------------------------------------------------------
|
|
379
|
+
/**
|
|
380
|
+
* Google Gemini provider via REST API. No SDK dependency (uses fetch).
|
|
381
|
+
*
|
|
382
|
+
* Used as the default writer for `scriptctl episode draft`. The Anthropic provider
|
|
383
|
+
* stays available for other internal extraction tasks (metadata / title generation /
|
|
384
|
+
* direct-init batch extraction) where Claude tends to outperform Gemini on JSON
|
|
385
|
+
* schema adherence.
|
|
386
|
+
*
|
|
387
|
+
* Env:
|
|
388
|
+
* - `SCRIPTCTL_GEMINI_API_KEY` (or fallback `GEMINI_API_KEY`) required
|
|
389
|
+
* - `SCRIPTCTL_GEMINI_BASE_URL` optional override
|
|
390
|
+
* - `SCRIPTCTL_GEMINI_MODEL` optional default-model override
|
|
391
|
+
*/
|
|
439
392
|
export class GeminiProvider {
|
|
440
393
|
name = "gemini";
|
|
394
|
+
apiKey;
|
|
395
|
+
baseUrl;
|
|
441
396
|
model;
|
|
442
|
-
constructor(
|
|
397
|
+
constructor(model) {
|
|
443
398
|
const apiKey = (process.env.SCRIPTCTL_GEMINI_API_KEY ?? process.env.GEMINI_API_KEY ?? "").trim();
|
|
444
399
|
if (!apiKey) {
|
|
445
400
|
throw new CliError("DRAFT FAILED: provider not configured", "Provider credentials are not configured for this environment.", {
|
|
@@ -450,169 +405,138 @@ export class GeminiProvider {
|
|
|
450
405
|
errorCode: "PROVIDER_AUTH_MISSING",
|
|
451
406
|
});
|
|
452
407
|
}
|
|
453
|
-
|
|
454
|
-
const
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
const provider = createGoogleGenerativeAI(opts);
|
|
458
|
-
const id = (modelId || process.env.SCRIPTCTL_GEMINI_MODEL || "gemini-2.5-pro").trim();
|
|
459
|
-
this.model = provider(id);
|
|
408
|
+
this.apiKey = apiKey;
|
|
409
|
+
const baseUrl = (process.env.SCRIPTCTL_GEMINI_BASE_URL ?? "https://generativelanguage.googleapis.com").trim();
|
|
410
|
+
this.baseUrl = baseUrl.replace(/\/+$/, "");
|
|
411
|
+
this.model = (model || process.env.SCRIPTCTL_GEMINI_MODEL || "gemini-2.5-pro").trim();
|
|
460
412
|
}
|
|
461
413
|
/**
|
|
462
414
|
* Plain-text completion. Used by `episode draft` to write a spec-md episode body.
|
|
463
415
|
*/
|
|
464
416
|
async complete(prompt, maxTokens) {
|
|
465
417
|
const tokens = Math.max(1024, Math.min(maxTokens ?? DEFAULT_BATCH_MAX_TOKENS, DEFAULT_MAX_TOKENS));
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
model: this.model,
|
|
471
|
-
prompt,
|
|
418
|
+
const url = `${this.baseUrl}/v1beta/models/${encodeURIComponent(this.model)}:generateContent?key=${encodeURIComponent(this.apiKey)}`;
|
|
419
|
+
const body = {
|
|
420
|
+
contents: [{ role: "user", parts: [{ text: prompt }] }],
|
|
421
|
+
generationConfig: {
|
|
472
422
|
maxOutputTokens: tokens,
|
|
473
423
|
temperature: 0,
|
|
474
|
-
|
|
424
|
+
},
|
|
425
|
+
};
|
|
426
|
+
let response;
|
|
427
|
+
try {
|
|
428
|
+
response = await fetch(url, {
|
|
429
|
+
method: "POST",
|
|
430
|
+
headers: { "Content-Type": "application/json" },
|
|
431
|
+
body: JSON.stringify(body),
|
|
432
|
+
});
|
|
433
|
+
}
|
|
434
|
+
catch (exc) {
|
|
435
|
+
throw new CliError("DRAFT FAILED: provider unreachable", "Provider endpoint is unreachable.", {
|
|
436
|
+
exitCode: EXIT_RUNTIME,
|
|
437
|
+
required: ["reachable Gemini endpoint"],
|
|
438
|
+
received: [String(exc.message ?? exc)],
|
|
439
|
+
nextSteps: ["Check network connectivity and retry. Run `scriptctl doctor` if the issue persists."],
|
|
440
|
+
errorCode: "PROVIDER_NETWORK",
|
|
441
|
+
});
|
|
442
|
+
}
|
|
443
|
+
const text = await response.text();
|
|
444
|
+
if (!response.ok) {
|
|
445
|
+
const isAuth = response.status === 401 || response.status === 403;
|
|
446
|
+
const isRateLimit = response.status === 429;
|
|
447
|
+
const publicMessage = isAuth
|
|
448
|
+
? "Provider rejected the request: authentication failed."
|
|
449
|
+
: isRateLimit
|
|
450
|
+
? "Provider is rate-limited."
|
|
451
|
+
: "Provider returned an HTTP error.";
|
|
452
|
+
throw new CliError("DRAFT FAILED: provider returned error", publicMessage, {
|
|
453
|
+
exitCode: EXIT_RUNTIME,
|
|
454
|
+
required: ["HTTP 2xx from Gemini"],
|
|
455
|
+
received: [`status: ${response.status}`, `body: ${text.slice(0, 320) || "<empty>"}`],
|
|
456
|
+
nextSteps: isRateLimit
|
|
457
|
+
? ["Back off and retry after a short wait."]
|
|
458
|
+
: isAuth
|
|
459
|
+
? ["Run `scriptctl doctor` to verify provider configuration."]
|
|
460
|
+
: ["Retry once; if the issue persists, run `scriptctl doctor`."],
|
|
461
|
+
errorCode: isAuth
|
|
462
|
+
? "PROVIDER_AUTH_REJECTED"
|
|
463
|
+
: isRateLimit
|
|
464
|
+
? "PROVIDER_RATE_LIMITED"
|
|
465
|
+
: "PROVIDER_HTTP_ERROR",
|
|
475
466
|
});
|
|
476
|
-
|
|
477
|
-
|
|
467
|
+
}
|
|
468
|
+
let payload;
|
|
469
|
+
try {
|
|
470
|
+
payload = JSON.parse(text);
|
|
478
471
|
}
|
|
479
472
|
catch (exc) {
|
|
480
|
-
throw
|
|
473
|
+
throw new CliError("DRAFT FAILED: provider returned invalid response", "Provider returned a response that could not be parsed.", {
|
|
474
|
+
exitCode: EXIT_RUNTIME,
|
|
475
|
+
required: ["valid JSON response"],
|
|
476
|
+
received: [`body head: ${text.slice(0, 160)}`, `parse error: ${exc.message}`],
|
|
477
|
+
nextSteps: ["Retry once; if the issue persists, run `scriptctl doctor`."],
|
|
478
|
+
errorCode: "PROVIDER_INVALID_RESPONSE",
|
|
479
|
+
});
|
|
481
480
|
}
|
|
482
|
-
|
|
481
|
+
const candidate = payload.candidates?.[0];
|
|
482
|
+
const finishReason = strOf(candidate?.finishReason ?? "");
|
|
483
|
+
if (finishReason === "MAX_TOKENS") {
|
|
483
484
|
throw new CliError("DRAFT FAILED: Provider output truncated", "Provider output truncated.", {
|
|
484
485
|
exitCode: EXIT_RUNTIME,
|
|
485
486
|
required: ["complete markdown within provider max_tokens"],
|
|
486
|
-
received: [`finishReason:
|
|
487
|
+
received: [`finishReason: MAX_TOKENS`, `maxOutputTokens: ${tokens}`],
|
|
487
488
|
nextSteps: [
|
|
488
489
|
"Re-run with --regen, or split the episode outline into smaller scopes.",
|
|
489
490
|
],
|
|
490
491
|
errorCode: "PROVIDER_OUTPUT_TRUNCATED",
|
|
491
492
|
});
|
|
492
493
|
}
|
|
493
|
-
if (finishReason && finishReason !== "
|
|
494
|
-
//
|
|
494
|
+
if (finishReason && finishReason !== "STOP" && finishReason !== "MAX_TOKENS") {
|
|
495
|
+
// SAFETY / RECITATION / OTHER — surface to agent rather than silently treat as success.
|
|
495
496
|
throw new CliError("DRAFT FAILED: provider stopped abnormally", "Provider stopped before completing the response.", {
|
|
496
497
|
exitCode: EXIT_RUNTIME,
|
|
497
|
-
required: ["finishReason:
|
|
498
|
+
required: ["finishReason: STOP"],
|
|
498
499
|
received: [`finishReason: ${finishReason}`],
|
|
499
500
|
nextSteps: ["Inspect prompt / outline for triggering content; retry with --regen if it looks transient."],
|
|
500
501
|
errorCode: "PROVIDER_ABNORMAL_STOP",
|
|
501
502
|
});
|
|
502
503
|
}
|
|
503
|
-
|
|
504
|
+
const parts = candidate?.content?.parts ?? [];
|
|
505
|
+
const out = parts.map((p) => (typeof p.text === "string" ? p.text : "")).join("").trim();
|
|
506
|
+
if (!out) {
|
|
504
507
|
throw new CliError("DRAFT FAILED: provider returned empty content", "Provider returned an empty response.", {
|
|
505
508
|
exitCode: EXIT_RUNTIME,
|
|
506
|
-
required: ["non-empty
|
|
507
|
-
received: [`finishReason: ${finishReason || "<unset>"}`,
|
|
509
|
+
required: ["non-empty candidate content"],
|
|
510
|
+
received: [`finishReason: ${finishReason || "<unset>"}`, `parts: ${parts.length}`],
|
|
508
511
|
nextSteps: ["Retry once; if it persists, run `scriptctl doctor`."],
|
|
509
512
|
errorCode: "PROVIDER_EMPTY_RESPONSE",
|
|
510
513
|
});
|
|
511
514
|
}
|
|
512
|
-
return
|
|
515
|
+
return out;
|
|
513
516
|
}
|
|
514
517
|
}
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
// Unwrap so 401/403/429 still resolve to their precise CliError variant
|
|
521
|
-
// instead of falling through to generic PROVIDER_NETWORK.
|
|
522
|
-
if (RetryError.isInstance(exc) && APICallError.isInstance(exc.lastError)) {
|
|
523
|
-
exc = exc.lastError;
|
|
518
|
+
function textFromResponse(response) {
|
|
519
|
+
const parts = [];
|
|
520
|
+
for (const block of response.content ?? []) {
|
|
521
|
+
if (block.text)
|
|
522
|
+
parts.push(block.text);
|
|
524
523
|
}
|
|
525
|
-
|
|
526
|
-
const status = exc.statusCode ?? 0;
|
|
527
|
-
const isAuth = status === 401 || status === 403;
|
|
528
|
-
const isRateLimit = status === 429;
|
|
529
|
-
const publicMessage = isAuth
|
|
530
|
-
? "Provider rejected the request: authentication failed."
|
|
531
|
-
: isRateLimit
|
|
532
|
-
? "Provider is rate-limited."
|
|
533
|
-
: "Provider returned an HTTP error.";
|
|
534
|
-
const body = strOf(exc.responseBody).slice(0, 320) || "<empty>";
|
|
535
|
-
return new CliError(`${titlePrefix}: provider returned error`, publicMessage, {
|
|
536
|
-
exitCode: EXIT_RUNTIME,
|
|
537
|
-
required: ["HTTP 2xx from provider"],
|
|
538
|
-
received: [`status: ${status || "unknown"}`, `body: ${body}`],
|
|
539
|
-
nextSteps: isRateLimit
|
|
540
|
-
? ["Back off and retry after a short wait."]
|
|
541
|
-
: isAuth
|
|
542
|
-
? ["Run `scriptctl doctor` to verify provider configuration."]
|
|
543
|
-
: ["Retry once; if the issue persists, run `scriptctl doctor`."],
|
|
544
|
-
errorCode: isAuth
|
|
545
|
-
? "PROVIDER_AUTH_REJECTED"
|
|
546
|
-
: isRateLimit
|
|
547
|
-
? "PROVIDER_RATE_LIMITED"
|
|
548
|
-
: "PROVIDER_HTTP_ERROR",
|
|
549
|
-
});
|
|
550
|
-
}
|
|
551
|
-
if (RetryError.isInstance(exc)) {
|
|
552
|
-
return new CliError(`${titlePrefix}: provider unreachable`, "Provider endpoint is unreachable.", {
|
|
553
|
-
exitCode: EXIT_RUNTIME,
|
|
554
|
-
required: ["reachable provider endpoint"],
|
|
555
|
-
received: [strOf(exc.message).slice(0, 320) || "retries exhausted"],
|
|
556
|
-
nextSteps: ["Check network connectivity and retry. Run `scriptctl doctor` if the issue persists."],
|
|
557
|
-
errorCode: "PROVIDER_NETWORK",
|
|
558
|
-
});
|
|
559
|
-
}
|
|
560
|
-
const msg = strOf(exc?.message).slice(0, 320);
|
|
561
|
-
return new CliError(`${titlePrefix}: provider returned error`, "Provider returned an unexpected error.", {
|
|
562
|
-
exitCode: EXIT_RUNTIME,
|
|
563
|
-
required: ["successful provider response"],
|
|
564
|
-
received: [msg || String(exc)],
|
|
565
|
-
nextSteps: ["Retry once; if the issue persists, run `scriptctl doctor`."],
|
|
566
|
-
errorCode: "PROVIDER_HTTP_ERROR",
|
|
567
|
-
});
|
|
524
|
+
return parts.join("\n").trim();
|
|
568
525
|
}
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
: "Provider returned an HTTP error.";
|
|
582
|
-
const body = strOf(exc.responseBody).slice(0, 320) || "<empty>";
|
|
583
|
-
return new CliError("DRAFT FAILED: provider returned error", publicMessage, {
|
|
584
|
-
exitCode: EXIT_RUNTIME,
|
|
585
|
-
required: ["HTTP 2xx from Gemini"],
|
|
586
|
-
received: [`status: ${status || "unknown"}`, `body: ${body}`],
|
|
587
|
-
nextSteps: isRateLimit
|
|
588
|
-
? ["Back off and retry after a short wait."]
|
|
589
|
-
: isAuth
|
|
590
|
-
? ["Run `scriptctl doctor` to verify provider configuration."]
|
|
591
|
-
: ["Retry once; if the issue persists, run `scriptctl doctor`."],
|
|
592
|
-
errorCode: isAuth
|
|
593
|
-
? "PROVIDER_AUTH_REJECTED"
|
|
594
|
-
: isRateLimit
|
|
595
|
-
? "PROVIDER_RATE_LIMITED"
|
|
596
|
-
: "PROVIDER_HTTP_ERROR",
|
|
597
|
-
});
|
|
598
|
-
}
|
|
599
|
-
if (RetryError.isInstance(exc)) {
|
|
600
|
-
return new CliError("DRAFT FAILED: provider unreachable", "Provider endpoint is unreachable.", {
|
|
601
|
-
exitCode: EXIT_RUNTIME,
|
|
602
|
-
required: ["reachable Gemini endpoint"],
|
|
603
|
-
received: [strOf(exc.message).slice(0, 320) || "retries exhausted"],
|
|
604
|
-
nextSteps: ["Check network connectivity and retry. Run `scriptctl doctor` if the issue persists."],
|
|
605
|
-
errorCode: "PROVIDER_NETWORK",
|
|
606
|
-
});
|
|
526
|
+
/**
|
|
527
|
+
* Find a forced tool_use block by name in a Message's content array.
|
|
528
|
+
* Returns its `input` (already parsed by the SDK) or `null` when missing/non-object.
|
|
529
|
+
*/
|
|
530
|
+
function findToolUseInput(content, toolName) {
|
|
531
|
+
for (const block of content) {
|
|
532
|
+
if (block?.type === "tool_use" && block.name === toolName) {
|
|
533
|
+
const inp = block.input;
|
|
534
|
+
if (inp && typeof inp === "object" && !Array.isArray(inp))
|
|
535
|
+
return inp;
|
|
536
|
+
return null;
|
|
537
|
+
}
|
|
607
538
|
}
|
|
608
|
-
|
|
609
|
-
return new CliError("DRAFT FAILED: provider returned invalid response", "Provider returned a response that could not be parsed.", {
|
|
610
|
-
exitCode: EXIT_RUNTIME,
|
|
611
|
-
required: ["valid response from Gemini"],
|
|
612
|
-
received: [msg || String(exc), `maxOutputTokens: ${tokens}`],
|
|
613
|
-
nextSteps: ["Retry once; if the issue persists, run `scriptctl doctor`."],
|
|
614
|
-
errorCode: "PROVIDER_INVALID_RESPONSE",
|
|
615
|
-
});
|
|
539
|
+
return null;
|
|
616
540
|
}
|
|
617
541
|
// ---------------------------------------------------------------------------
|
|
618
542
|
// Factory
|
|
@@ -621,7 +545,7 @@ export function makeProvider(name, model) {
|
|
|
621
545
|
if (name === "mock")
|
|
622
546
|
return new MockProvider();
|
|
623
547
|
if (name === "anthropic")
|
|
624
|
-
return new
|
|
548
|
+
return new AnthropicProvider(model);
|
|
625
549
|
if (name === "gemini")
|
|
626
550
|
return new GeminiProvider(model);
|
|
627
551
|
throw new CliError("INIT FAILED: Unsupported provider", "Unsupported provider.", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/infra/providers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/infra/providers.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lingjingai/scriptctl",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"description": "剧本阶段统一 CLI:直转外部素材到 script.json,以及当前最终剧本的读取、校验、原子编辑与批量 patch 精修。",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -28,15 +28,12 @@
|
|
|
28
28
|
"typecheck": "tsc --noEmit"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@ai
|
|
32
|
-
"@ai-sdk/openai-compatible": "^2.0.48",
|
|
33
|
-
"ai": "^6.0.193",
|
|
31
|
+
"@anthropic-ai/sdk": "^0.32.1",
|
|
34
32
|
"commander": "^12.1.0",
|
|
35
33
|
"exceljs": "^4.4.0",
|
|
36
34
|
"fast-xml-parser": "^4.5.0",
|
|
37
35
|
"jszip": "^3.10.1",
|
|
38
|
-
"pdfjs-dist": "^4.10.38"
|
|
39
|
-
"zod": "^4.4.3"
|
|
36
|
+
"pdfjs-dist": "^4.10.38"
|
|
40
37
|
},
|
|
41
38
|
"devDependencies": {
|
|
42
39
|
"@types/node": "^20.14.0",
|