@nodaro/shared 1.17.0 → 1.18.0
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/index.cjs +24 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.js +24 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/llm-models.test.ts +8 -6
- package/src/llm-models.ts +22 -2
- package/src/pipeline-types.ts +1 -0
package/package.json
CHANGED
|
@@ -25,7 +25,7 @@ import { PIPELINE_PINNABLE_SCRIPT_LLMS } from "../pipeline-types.js"
|
|
|
25
25
|
// ---------------------------------------------------------------------------
|
|
26
26
|
describe("LLM_MODELS data integrity", () => {
|
|
27
27
|
it("should have exactly 15 models", () => {
|
|
28
|
-
expect(LLM_MODELS).toHaveLength(
|
|
28
|
+
expect(LLM_MODELS).toHaveLength(16)
|
|
29
29
|
})
|
|
30
30
|
|
|
31
31
|
it("each model has all required fields", () => {
|
|
@@ -60,14 +60,14 @@ describe("LLM_MODELS data integrity", () => {
|
|
|
60
60
|
expect(new Set(ids).size).toBe(ids.length)
|
|
61
61
|
})
|
|
62
62
|
|
|
63
|
-
it("has 4 economy, 4 standard,
|
|
63
|
+
it("has 4 economy, 4 standard, 8 premium models", () => {
|
|
64
64
|
const tierCounts: Record<LlmTier, number> = { economy: 0, standard: 0, premium: 0 }
|
|
65
65
|
for (const model of LLM_MODELS) {
|
|
66
66
|
tierCounts[model.tier]++
|
|
67
67
|
}
|
|
68
68
|
expect(tierCounts.economy).toBe(4)
|
|
69
69
|
expect(tierCounts.standard).toBe(4)
|
|
70
|
-
expect(tierCounts.premium).toBe(
|
|
70
|
+
expect(tierCounts.premium).toBe(8)
|
|
71
71
|
})
|
|
72
72
|
|
|
73
73
|
it("all three kieFormats are represented", () => {
|
|
@@ -121,6 +121,7 @@ describe("LLM_MODEL_IDS", () => {
|
|
|
121
121
|
"gpt-5.6-sol",
|
|
122
122
|
"claude-sonnet-5",
|
|
123
123
|
"claude-opus-4.8",
|
|
124
|
+
"claude-opus-5",
|
|
124
125
|
"claude-fable-5",
|
|
125
126
|
]
|
|
126
127
|
expect(LLM_MODEL_IDS).toEqual(expected)
|
|
@@ -399,11 +400,11 @@ describe("LLM_FEATURE_DEFAULTS", () => {
|
|
|
399
400
|
expect(getLlmTier(LLM_FEATURE_DEFAULTS["ai-writer"])).toBe("standard")
|
|
400
401
|
})
|
|
401
402
|
|
|
402
|
-
it('"describe-to-picker" defaults to "claude-opus-
|
|
403
|
-
expect(LLM_FEATURE_DEFAULTS["describe-to-picker"]).toBe("claude-opus-
|
|
403
|
+
it('"describe-to-picker" defaults to "claude-opus-5" (premium vision)', () => {
|
|
404
|
+
expect(LLM_FEATURE_DEFAULTS["describe-to-picker"]).toBe("claude-opus-5")
|
|
404
405
|
expect(getLlmTier(LLM_FEATURE_DEFAULTS["describe-to-picker"])).toBe("premium")
|
|
405
406
|
// The default MUST be an accepted analyzer model (vision + structured output).
|
|
406
|
-
expect(STRUCTURED_VISION_MODELS.map((m) => m.id)).toContain("claude-opus-
|
|
407
|
+
expect(STRUCTURED_VISION_MODELS.map((m) => m.id)).toContain("claude-opus-5")
|
|
407
408
|
})
|
|
408
409
|
|
|
409
410
|
it('"generate-script" defaults to "gemini-3.6-flash" (economy)', () => {
|
|
@@ -465,6 +466,7 @@ describe("STRUCTURED_VISION_MODELS", () => {
|
|
|
465
466
|
"gemini-3.1-pro",
|
|
466
467
|
"claude-sonnet-5",
|
|
467
468
|
"claude-opus-4.8",
|
|
469
|
+
"claude-opus-5",
|
|
468
470
|
"claude-fable-5",
|
|
469
471
|
// responses-format GPTs — KIE text.format json_schema live-verified
|
|
470
472
|
// 2026-07-14 (text AND vision inputs).
|
package/src/llm-models.ts
CHANGED
|
@@ -245,7 +245,7 @@ export const LLM_MODELS: readonly LlmModelDef[] = [
|
|
|
245
245
|
{
|
|
246
246
|
id: "claude-opus-4.8",
|
|
247
247
|
displayName: "Claude Opus 4.8",
|
|
248
|
-
desc: "
|
|
248
|
+
desc: "Previous-gen Opus, long-horizon work",
|
|
249
249
|
tier: "premium",
|
|
250
250
|
kieFormat: "messages",
|
|
251
251
|
kieSlugOrModel: "claude-opus-4-8",
|
|
@@ -258,6 +258,25 @@ export const LLM_MODELS: readonly LlmModelDef[] = [
|
|
|
258
258
|
supportsTemperature: false,
|
|
259
259
|
preferKie: true,
|
|
260
260
|
},
|
|
261
|
+
{
|
|
262
|
+
id: "claude-opus-5",
|
|
263
|
+
displayName: "Claude Opus 5",
|
|
264
|
+
desc: "Latest Opus, deepest agentic reasoning",
|
|
265
|
+
tier: "premium",
|
|
266
|
+
kieFormat: "messages",
|
|
267
|
+
// KIE serves Opus 5 on the Claude-native messages dialect under the plain
|
|
268
|
+
// id (docs.kie.ai/market/claude/claude-opus-5.md) — same path shape as
|
|
269
|
+
// claude-opus-4-8 / claude-fable-5.
|
|
270
|
+
kieSlugOrModel: "claude-opus-5",
|
|
271
|
+
vendor: "anthropic",
|
|
272
|
+
structuredOutputMode: "anthropic-tool",
|
|
273
|
+
supportsImages: true,
|
|
274
|
+
maxOutputTokens: 16384,
|
|
275
|
+
directFallbackModel: "claude-opus-5",
|
|
276
|
+
reasoningEfforts: ["low", "medium", "high", "xhigh", "max"],
|
|
277
|
+
supportsTemperature: false,
|
|
278
|
+
preferKie: true,
|
|
279
|
+
},
|
|
261
280
|
{
|
|
262
281
|
id: "claude-fable-5",
|
|
263
282
|
displayName: "Claude Fable 5",
|
|
@@ -323,7 +342,7 @@ export const LLM_FEATURE_DEFAULTS: Record<LlmFeature, string> = {
|
|
|
323
342
|
"lottie-overlay": "claude-sonnet-4.6",
|
|
324
343
|
"3d-title": "claude-sonnet-4.6",
|
|
325
344
|
"image-to-text": "claude-sonnet-4.6",
|
|
326
|
-
"describe-to-picker": "claude-opus-
|
|
345
|
+
"describe-to-picker": "claude-opus-5",
|
|
327
346
|
"qa-check": "gemini-3.6-flash",
|
|
328
347
|
"generate-script": "gemini-3.6-flash",
|
|
329
348
|
"translate": "gemini-3.6-flash",
|
|
@@ -354,6 +373,7 @@ export const LLM_MODALITY_CAPS: Record<string, { image: boolean; video: boolean;
|
|
|
354
373
|
"gpt-5.6-sol": { image: true, video: false, audio: false },
|
|
355
374
|
"claude-sonnet-5": { image: true, video: false, audio: false },
|
|
356
375
|
"claude-opus-4.8": { image: true, video: false, audio: false },
|
|
376
|
+
"claude-opus-5": { image: true, video: false, audio: false },
|
|
357
377
|
"claude-fable-5": { image: true, video: false, audio: false },
|
|
358
378
|
}
|
|
359
379
|
|
package/src/pipeline-types.ts
CHANGED