@actalk/inkos-core 1.6.3 → 1.7.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.
Files changed (163) hide show
  1. package/dist/agent/agent-session.d.ts.map +1 -1
  2. package/dist/agent/agent-session.js +21 -11
  3. package/dist/agent/agent-session.js.map +1 -1
  4. package/dist/agent/agent-system-prompt.d.ts.map +1 -1
  5. package/dist/agent/agent-system-prompt.js +14 -8
  6. package/dist/agent/agent-system-prompt.js.map +1 -1
  7. package/dist/agent/agent-tools.d.ts +34 -2
  8. package/dist/agent/agent-tools.d.ts.map +1 -1
  9. package/dist/agent/agent-tools.js +236 -54
  10. package/dist/agent/agent-tools.js.map +1 -1
  11. package/dist/agent/chapter-import-source.d.ts +15 -0
  12. package/dist/agent/chapter-import-source.d.ts.map +1 -0
  13. package/dist/agent/chapter-import-source.js +41 -0
  14. package/dist/agent/chapter-import-source.js.map +1 -0
  15. package/dist/agent/film-authoring-tools.d.ts +5 -3
  16. package/dist/agent/film-authoring-tools.d.ts.map +1 -1
  17. package/dist/agent/film-authoring-tools.js +34 -19
  18. package/dist/agent/film-authoring-tools.js.map +1 -1
  19. package/dist/agent/index.d.ts +1 -1
  20. package/dist/agent/index.d.ts.map +1 -1
  21. package/dist/agent/index.js +1 -1
  22. package/dist/agent/index.js.map +1 -1
  23. package/dist/agents/base.d.ts +1 -0
  24. package/dist/agents/base.d.ts.map +1 -1
  25. package/dist/agents/base.js +2 -0
  26. package/dist/agents/base.js.map +1 -1
  27. package/dist/agents/script-storyboard.d.ts +3 -0
  28. package/dist/agents/script-storyboard.d.ts.map +1 -1
  29. package/dist/agents/script-storyboard.js +221 -14
  30. package/dist/agents/script-storyboard.js.map +1 -1
  31. package/dist/agents/short-fiction.d.ts +13 -2
  32. package/dist/agents/short-fiction.d.ts.map +1 -1
  33. package/dist/agents/short-fiction.js +77 -43
  34. package/dist/agents/short-fiction.js.map +1 -1
  35. package/dist/index.d.ts +8 -5
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +10 -8
  38. package/dist/index.js.map +1 -1
  39. package/dist/interaction/action-envelope.d.ts +53 -1
  40. package/dist/interaction/action-envelope.d.ts.map +1 -1
  41. package/dist/interaction/action-envelope.js +9 -0
  42. package/dist/interaction/action-envelope.js.map +1 -1
  43. package/dist/interaction/intents.d.ts +2 -2
  44. package/dist/interaction/project-control.d.ts +1 -1
  45. package/dist/interactive-film/generate.d.ts +1 -0
  46. package/dist/interactive-film/generate.d.ts.map +1 -1
  47. package/dist/interactive-film/generate.js +15 -5
  48. package/dist/interactive-film/generate.js.map +1 -1
  49. package/dist/llm/provider.d.ts +1 -0
  50. package/dist/llm/provider.d.ts.map +1 -1
  51. package/dist/llm/provider.js +64 -18
  52. package/dist/llm/provider.js.map +1 -1
  53. package/dist/llm/providers/endpoints/openrouter.d.ts.map +1 -1
  54. package/dist/llm/providers/endpoints/openrouter.js +3 -2
  55. package/dist/llm/providers/endpoints/openrouter.js.map +1 -1
  56. package/dist/llm/think-tag-stripper.d.ts +15 -0
  57. package/dist/llm/think-tag-stripper.d.ts.map +1 -0
  58. package/dist/llm/think-tag-stripper.js +60 -0
  59. package/dist/llm/think-tag-stripper.js.map +1 -0
  60. package/dist/materials/ingest.d.ts.map +1 -1
  61. package/dist/materials/ingest.js +4 -3
  62. package/dist/materials/ingest.js.map +1 -1
  63. package/dist/materials/retrieve.d.ts.map +1 -1
  64. package/dist/materials/retrieve.js +3 -1
  65. package/dist/materials/retrieve.js.map +1 -1
  66. package/dist/models/book.d.ts +28 -0
  67. package/dist/models/book.d.ts.map +1 -1
  68. package/dist/models/book.js +22 -0
  69. package/dist/models/book.js.map +1 -1
  70. package/dist/models/project.d.ts +40 -0
  71. package/dist/models/project.d.ts.map +1 -1
  72. package/dist/models/project.js +5 -0
  73. package/dist/models/project.js.map +1 -1
  74. package/dist/notify/dispatcher.d.ts.map +1 -1
  75. package/dist/notify/dispatcher.js +8 -5
  76. package/dist/notify/dispatcher.js.map +1 -1
  77. package/dist/notify/feishu.d.ts +2 -1
  78. package/dist/notify/feishu.d.ts.map +1 -1
  79. package/dist/notify/feishu.js +12 -6
  80. package/dist/notify/feishu.js.map +1 -1
  81. package/dist/notify/format.d.ts +12 -0
  82. package/dist/notify/format.d.ts.map +1 -0
  83. package/dist/notify/format.js +11 -0
  84. package/dist/notify/format.js.map +1 -0
  85. package/dist/notify/telegram.d.ts +2 -1
  86. package/dist/notify/telegram.d.ts.map +1 -1
  87. package/dist/notify/telegram.js +3 -2
  88. package/dist/notify/telegram.js.map +1 -1
  89. package/dist/notify/wechat-work.d.ts +2 -1
  90. package/dist/notify/wechat-work.d.ts.map +1 -1
  91. package/dist/notify/wechat-work.js +5 -5
  92. package/dist/notify/wechat-work.js.map +1 -1
  93. package/dist/pipeline/runner.d.ts +13 -1
  94. package/dist/pipeline/runner.d.ts.map +1 -1
  95. package/dist/pipeline/runner.js +41 -7
  96. package/dist/pipeline/runner.js.map +1 -1
  97. package/dist/pipeline/script-storyboard-runner.d.ts +3 -0
  98. package/dist/pipeline/script-storyboard-runner.d.ts.map +1 -1
  99. package/dist/pipeline/script-storyboard-runner.js +86 -43
  100. package/dist/pipeline/script-storyboard-runner.js.map +1 -1
  101. package/dist/pipeline/short-fiction-runner.d.ts +3 -1
  102. package/dist/pipeline/short-fiction-runner.d.ts.map +1 -1
  103. package/dist/pipeline/short-fiction-runner.js +80 -33
  104. package/dist/pipeline/short-fiction-runner.js.map +1 -1
  105. package/dist/play/play-runner.d.ts +8 -0
  106. package/dist/play/play-runner.d.ts.map +1 -1
  107. package/dist/play/play-runner.js +14 -0
  108. package/dist/play/play-runner.js.map +1 -1
  109. package/dist/prompts/short-fiction.d.ts +14 -13
  110. package/dist/prompts/short-fiction.d.ts.map +1 -1
  111. package/dist/prompts/short-fiction.js +253 -14
  112. package/dist/prompts/short-fiction.js.map +1 -1
  113. package/dist/state/manager.d.ts +16 -2
  114. package/dist/state/manager.d.ts.map +1 -1
  115. package/dist/state/manager.js +218 -31
  116. package/dist/state/manager.js.map +1 -1
  117. package/dist/translation/epub.d.ts +10 -0
  118. package/dist/translation/epub.d.ts.map +1 -0
  119. package/dist/translation/epub.js +86 -0
  120. package/dist/translation/epub.js.map +1 -0
  121. package/dist/translation/export.d.ts +6 -0
  122. package/dist/translation/export.d.ts.map +1 -0
  123. package/dist/translation/export.js +68 -0
  124. package/dist/translation/export.js.map +1 -0
  125. package/dist/translation/index.d.ts +9 -0
  126. package/dist/translation/index.d.ts.map +1 -0
  127. package/dist/translation/index.js +9 -0
  128. package/dist/translation/index.js.map +1 -0
  129. package/dist/translation/llm-model.d.ts +8 -0
  130. package/dist/translation/llm-model.d.ts.map +1 -0
  131. package/dist/translation/llm-model.js +134 -0
  132. package/dist/translation/llm-model.js.map +1 -0
  133. package/dist/translation/project.d.ts +3 -0
  134. package/dist/translation/project.d.ts.map +1 -0
  135. package/dist/translation/project.js +76 -0
  136. package/dist/translation/project.js.map +1 -0
  137. package/dist/translation/run-store.d.ts +11 -0
  138. package/dist/translation/run-store.d.ts.map +1 -0
  139. package/dist/translation/run-store.js +53 -0
  140. package/dist/translation/run-store.js.map +1 -0
  141. package/dist/translation/runner.d.ts +6 -0
  142. package/dist/translation/runner.d.ts.map +1 -0
  143. package/dist/translation/runner.js +88 -0
  144. package/dist/translation/runner.js.map +1 -0
  145. package/dist/translation/source.d.ts +12 -0
  146. package/dist/translation/source.d.ts.map +1 -0
  147. package/dist/translation/source.js +66 -0
  148. package/dist/translation/source.js.map +1 -0
  149. package/dist/translation/text.d.ts +10 -0
  150. package/dist/translation/text.d.ts.map +1 -0
  151. package/dist/translation/text.js +77 -0
  152. package/dist/translation/text.js.map +1 -0
  153. package/dist/translation/types.d.ts +96 -0
  154. package/dist/translation/types.d.ts.map +1 -0
  155. package/dist/translation/types.js +2 -0
  156. package/dist/translation/types.js.map +1 -0
  157. package/dist/utils/effective-llm-config.js +19 -1
  158. package/dist/utils/effective-llm-config.js.map +1 -1
  159. package/dist/utils/posix-path.d.ts +2 -0
  160. package/dist/utils/posix-path.d.ts.map +1 -0
  161. package/dist/utils/posix-path.js +7 -0
  162. package/dist/utils/posix-path.js.map +1 -0
  163. package/package.json +4 -3
@@ -3,7 +3,7 @@ import { type PlayMode } from "./session.js";
3
3
  export declare const ActionSourceSchema: z.ZodEnum<["free-text", "button", "slash", "quick-action"]>;
4
4
  export type ActionSource = z.infer<typeof ActionSourceSchema>;
5
5
  export declare const SkillIdSchema: z.ZodString;
6
- export declare const RequestedIntentSchema: z.ZodEnum<["create_book", "write_next", "short_run", "play_start", "play_step", "generate_cover", "edit_artifact", "fanfic_init", "continuation_import", "spinoff_create", "style_imitation", "script_create", "storyboard_create", "interactive_film_create", "draft_structure", "connect_choice", "remove_node"]>;
6
+ export declare const RequestedIntentSchema: z.ZodEnum<["create_book", "write_next", "short_run", "play_start", "play_step", "generate_cover", "edit_artifact", "fanfic_init", "continuation_import", "spinoff_create", "style_imitation", "script_create", "storyboard_create", "interactive_film_create", "translation_create", "draft_structure", "connect_choice", "remove_node"]>;
7
7
  export type RequestedIntent = z.infer<typeof RequestedIntentSchema>;
8
8
  export declare const CreateBookActionPayloadSchema: z.ZodObject<{
9
9
  title: z.ZodOptional<z.ZodString>;
@@ -205,6 +205,25 @@ export declare const InteractiveFilmCreateActionPayloadSchema: z.ZodObject<{
205
205
  budget?: string | undefined;
206
206
  referenceMode?: string | undefined;
207
207
  }>;
208
+ export declare const TranslationCreateActionPayloadSchema: z.ZodObject<{
209
+ filePath: z.ZodOptional<z.ZodString>;
210
+ sourceLanguage: z.ZodOptional<z.ZodString>;
211
+ targetLanguage: z.ZodOptional<z.ZodString>;
212
+ title: z.ZodOptional<z.ZodString>;
213
+ segmentMaxChars: z.ZodOptional<z.ZodNumber>;
214
+ }, "strict", z.ZodTypeAny, {
215
+ title?: string | undefined;
216
+ filePath?: string | undefined;
217
+ sourceLanguage?: string | undefined;
218
+ targetLanguage?: string | undefined;
219
+ segmentMaxChars?: number | undefined;
220
+ }, {
221
+ title?: string | undefined;
222
+ filePath?: string | undefined;
223
+ sourceLanguage?: string | undefined;
224
+ targetLanguage?: string | undefined;
225
+ segmentMaxChars?: number | undefined;
226
+ }>;
208
227
  export declare const ActionPayloadSchema: z.ZodObject<{
209
228
  createBook: z.ZodOptional<z.ZodObject<{
210
229
  title: z.ZodOptional<z.ZodString>;
@@ -405,6 +424,25 @@ export declare const ActionPayloadSchema: z.ZodObject<{
405
424
  budget?: string | undefined;
406
425
  referenceMode?: string | undefined;
407
426
  }>>;
427
+ translationCreate: z.ZodOptional<z.ZodObject<{
428
+ filePath: z.ZodOptional<z.ZodString>;
429
+ sourceLanguage: z.ZodOptional<z.ZodString>;
430
+ targetLanguage: z.ZodOptional<z.ZodString>;
431
+ title: z.ZodOptional<z.ZodString>;
432
+ segmentMaxChars: z.ZodOptional<z.ZodNumber>;
433
+ }, "strict", z.ZodTypeAny, {
434
+ title?: string | undefined;
435
+ filePath?: string | undefined;
436
+ sourceLanguage?: string | undefined;
437
+ targetLanguage?: string | undefined;
438
+ segmentMaxChars?: number | undefined;
439
+ }, {
440
+ title?: string | undefined;
441
+ filePath?: string | undefined;
442
+ sourceLanguage?: string | undefined;
443
+ targetLanguage?: string | undefined;
444
+ segmentMaxChars?: number | undefined;
445
+ }>>;
408
446
  draftStructure: z.ZodOptional<z.ZodObject<{
409
447
  projectId: z.ZodOptional<z.ZodString>;
410
448
  instruction: z.ZodDefault<z.ZodString>;
@@ -748,6 +786,13 @@ export declare const ActionPayloadSchema: z.ZodObject<{
748
786
  budget?: string | undefined;
749
787
  referenceMode?: string | undefined;
750
788
  } | undefined;
789
+ translationCreate?: {
790
+ title?: string | undefined;
791
+ filePath?: string | undefined;
792
+ sourceLanguage?: string | undefined;
793
+ targetLanguage?: string | undefined;
794
+ segmentMaxChars?: number | undefined;
795
+ } | undefined;
751
796
  draftStructure?: {
752
797
  instruction: string;
753
798
  projectId?: string | undefined;
@@ -867,6 +912,13 @@ export declare const ActionPayloadSchema: z.ZodObject<{
867
912
  budget?: string | undefined;
868
913
  referenceMode?: string | undefined;
869
914
  } | undefined;
915
+ translationCreate?: {
916
+ title?: string | undefined;
917
+ filePath?: string | undefined;
918
+ sourceLanguage?: string | undefined;
919
+ targetLanguage?: string | undefined;
920
+ segmentMaxChars?: number | undefined;
921
+ } | undefined;
870
922
  draftStructure?: {
871
923
  instruction?: string | undefined;
872
924
  projectId?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"action-envelope.d.ts","sourceRoot":"","sources":["../../src/interaction/action-envelope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"action-envelope.d.ts","sourceRoot":"","sources":["../../src/interaction/action-envelope.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,7 @@ export const RequestedIntentSchema = z.enum([
21
21
  "script_create",
22
22
  "storyboard_create",
23
23
  "interactive_film_create",
24
+ "translation_create",
24
25
  "draft_structure",
25
26
  "connect_choice",
26
27
  "remove_node",
@@ -103,6 +104,13 @@ export const InteractiveFilmCreateActionPayloadSchema = z.object({
103
104
  projectId: z.string().min(1).optional(),
104
105
  outDir: z.string().min(1).optional(),
105
106
  }).strict();
107
+ export const TranslationCreateActionPayloadSchema = z.object({
108
+ filePath: z.string().min(1).optional(),
109
+ sourceLanguage: z.string().min(1).optional(),
110
+ targetLanguage: z.string().min(1).optional(),
111
+ title: z.string().min(1).optional(),
112
+ segmentMaxChars: z.number().int().min(1).optional(),
113
+ }).strict();
106
114
  export const ActionPayloadSchema = z.object({
107
115
  createBook: CreateBookActionPayloadSchema.optional(),
108
116
  shortRun: ShortRunActionPayloadSchema.optional(),
@@ -111,6 +119,7 @@ export const ActionPayloadSchema = z.object({
111
119
  scriptCreate: ScriptCreateActionPayloadSchema.optional(),
112
120
  storyboardCreate: StoryboardCreateActionPayloadSchema.optional(),
113
121
  interactiveFilmCreate: InteractiveFilmCreateActionPayloadSchema.optional(),
122
+ translationCreate: TranslationCreateActionPayloadSchema.optional(),
114
123
  draftStructure: z.object({
115
124
  projectId: z.string().min(1).optional(),
116
125
  instruction: z.string().default(""),
@@ -1 +1 @@
1
- {"version":3,"file":"action-envelope.js","sourceRoot":"","sources":["../../src/interaction/action-envelope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"action-envelope.js","sourceRoot":"","sources":["../../src/interaction/action-envelope.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,7 @@ export declare const InteractionRequestSchema: z.ZodObject<{
40
40
  targetChapters?: number | undefined;
41
41
  chapterWordCount?: number | undefined;
42
42
  language?: "zh" | "en" | undefined;
43
+ format?: "txt" | "md" | "epub" | undefined;
43
44
  protagonist?: string | undefined;
44
45
  mode?: "auto" | "manual" | "semi" | undefined;
45
46
  authorIntent?: string | undefined;
@@ -54,7 +55,6 @@ export declare const InteractionRequestSchema: z.ZodObject<{
54
55
  conflictCore?: string | undefined;
55
56
  constraints?: string | undefined;
56
57
  fileName?: string | undefined;
57
- format?: "txt" | "md" | "epub" | undefined;
58
58
  approvedOnly?: boolean | undefined;
59
59
  outputPath?: string | undefined;
60
60
  oldValue?: string | undefined;
@@ -71,6 +71,7 @@ export declare const InteractionRequestSchema: z.ZodObject<{
71
71
  targetChapters?: number | undefined;
72
72
  chapterWordCount?: number | undefined;
73
73
  language?: "zh" | "en" | undefined;
74
+ format?: "txt" | "md" | "epub" | undefined;
74
75
  protagonist?: string | undefined;
75
76
  mode?: "auto" | "manual" | "semi" | undefined;
76
77
  authorIntent?: string | undefined;
@@ -85,7 +86,6 @@ export declare const InteractionRequestSchema: z.ZodObject<{
85
86
  conflictCore?: string | undefined;
86
87
  constraints?: string | undefined;
87
88
  fileName?: string | undefined;
88
- format?: "txt" | "md" | "epub" | undefined;
89
89
  approvedOnly?: boolean | undefined;
90
90
  outputPath?: string | undefined;
91
91
  oldValue?: string | undefined;
@@ -14,6 +14,7 @@ export declare function processProjectInteractionRequest(params: {
14
14
  targetChapters?: number | undefined;
15
15
  chapterWordCount?: number | undefined;
16
16
  language?: "zh" | "en" | undefined;
17
+ format?: "txt" | "md" | "epub" | undefined;
17
18
  protagonist?: string | undefined;
18
19
  mode?: "auto" | "manual" | "semi" | undefined;
19
20
  authorIntent?: string | undefined;
@@ -28,7 +29,6 @@ export declare function processProjectInteractionRequest(params: {
28
29
  conflictCore?: string | undefined;
29
30
  constraints?: string | undefined;
30
31
  fileName?: string | undefined;
31
- format?: "txt" | "md" | "epub" | undefined;
32
32
  approvedOnly?: boolean | undefined;
33
33
  outputPath?: string | undefined;
34
34
  oldValue?: string | undefined;
@@ -9,5 +9,6 @@ export interface GenerateStoryGraphInput {
9
9
  }
10
10
  export declare function generateStoryGraph(client: LLMClient, model: string, input: GenerateStoryGraphInput, options?: {
11
11
  readonly maxTokens?: number;
12
+ readonly language?: "zh" | "en";
12
13
  }): Promise<StoryGraph>;
13
14
  //# sourceMappingURL=generate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/interactive-film/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAOtE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CASjD;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,CAOtF;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,uBAAuB,EAC9B,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACxC,OAAO,CAAC,UAAU,CAAC,CAMrB"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/interactive-film/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AActE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CASjD;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,CAOtF;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,uBAAuB,EAC9B,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;CAAE,GACzE,OAAO,CAAC,UAAU,CAAC,CAWrB"}
@@ -1,16 +1,21 @@
1
1
  import { chatCompletion } from "../llm/provider.js";
2
2
  import { StoryGraphSchema } from "./graph-schema.js";
3
- const SYSTEM_PROMPT = `你是互动影游编剧。根据用户的故事前提,生成一个小而完整的可玩分支图。
3
+ const GRAPH_JSON_SHAPE = `{"schemaVersion":1,"projectId":"","title":"","variables":[{"name":"","type":"flag|counter|relationship|item","default":0,"desc":""}],"nodes":[{"id":"","title":"","type":"start|normal|branch|ending","sceneDesc":"","dialogue":[{"speaker":"","text":"","emotion":""}],"choices":[{"id":"","text":"","targetNodeId":"","condition":{"var":"","op":">=","value":0},"effects":[{"var":"","op":"add","value":1}]}]}],"endings":[{"id":"","nodeId":"","title":"","type":"good|bad|neutral|secret","description":""}]}`;
4
+ const SYSTEM_PROMPT_ZH = `你是互动影游编剧。根据用户的故事前提,生成一个小而完整的可玩分支图。
4
5
  严格只输出 JSON,结构如下:
5
- {"schemaVersion":1,"projectId":"","title":"","variables":[{"name":"","type":"flag|counter|relationship|item","default":0,"desc":""}],"nodes":[{"id":"","title":"","type":"start|normal|branch|ending","sceneDesc":"","dialogue":[{"speaker":"","text":"","emotion":""}],"choices":[{"id":"","text":"","targetNodeId":"","condition":{"var":"","op":">=","value":0},"effects":[{"var":"","op":"add","value":1}]}]}],"endings":[{"id":"","nodeId":"","title":"","type":"good|bad|neutral|secret","description":""}]}
6
+ ${GRAPH_JSON_SHAPE}
6
7
  要求:恰好 1 个 type=start 节点;至少 2 个 branch 节点;至少 2 个差异化 ending;每条路径都能到达某个 ending;condition/effects 可省略;不要输出 JSON 以外的任何文字。`;
8
+ const SYSTEM_PROMPT_EN = `You are an interactive film scriptwriter. From the user's story premise, generate a small but complete playable branching graph.
9
+ Output strictly JSON, with this structure:
10
+ ${GRAPH_JSON_SHAPE}
11
+ Requirements: exactly 1 node with type=start; at least 2 branch nodes; at least 2 clearly differentiated endings; every path must reach some ending; condition/effects may be omitted; output nothing besides the JSON.`;
7
12
  export function extractJson(text) {
8
13
  const fenced = text.match(/```(?:json)?\s*([\s\S]*?)```/);
9
14
  const body = fenced ? fenced[1] : text;
10
15
  const start = body.indexOf("{");
11
16
  const end = body.lastIndexOf("}");
12
17
  if (start === -1 || end === -1 || end <= start) {
13
- throw new Error("LLM 未返回可解析的 JSON 对象");
18
+ throw new Error("LLM did not return a parseable JSON object / LLM 未返回可解析的 JSON 对象");
14
19
  }
15
20
  return JSON.parse(body.slice(start, end + 1));
16
21
  }
@@ -23,9 +28,14 @@ export function buildStoryGraphFromLLMText(text, projectId) {
23
28
  return graph;
24
29
  }
25
30
  export async function generateStoryGraph(client, model, input, options) {
31
+ const language = options?.language ?? "zh";
32
+ const systemPrompt = language === "en" ? SYSTEM_PROMPT_EN : SYSTEM_PROMPT_ZH;
33
+ const userPrompt = language === "en"
34
+ ? `Title: ${input.title}\nPremise: ${input.premise}`
35
+ : `标题:${input.title}\n前提:${input.premise}`;
26
36
  const res = await chatCompletion(client, model, [
27
- { role: "system", content: SYSTEM_PROMPT },
28
- { role: "user", content: `标题:${input.title}\n前提:${input.premise}` },
37
+ { role: "system", content: systemPrompt },
38
+ { role: "user", content: userPrompt },
29
39
  ], { temperature: 0.5, maxTokens: options?.maxTokens ?? 8000 });
30
40
  return buildStoryGraphFromLLMText(res.content, input.projectId);
31
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/interactive-film/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAkB,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,mBAAmB,CAAC;AAEtE,MAAM,aAAa,GAAG;;;qHAG+F,CAAC;AAEtH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAY,EAAE,SAAiB;IACxE,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAA4B,CAAC;IAC5D,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IAC/D,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAQD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAiB,EACjB,KAAa,EACb,KAA8B,EAC9B,OAAyC;IAEzC,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE;QAC9C,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE;QAC1C,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC,KAAK,QAAQ,KAAK,CAAC,OAAO,EAAE,EAAE;KACpE,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC;IAChE,OAAO,0BAA0B,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;AAClE,CAAC"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/interactive-film/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAkB,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,mBAAmB,CAAC;AAEtE,MAAM,gBAAgB,GAAG,ofAAof,CAAC;AAE9gB,MAAM,gBAAgB,GAAG;;EAEvB,gBAAgB;qHACmG,CAAC;AAEtH,MAAM,gBAAgB,GAAG;;EAEvB,gBAAgB;wNACsM,CAAC;AAEzN,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAY,EAAE,SAAiB;IACxE,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAA4B,CAAC;IAC5D,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IAC/D,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAQD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAiB,EACjB,KAAa,EACb,KAA8B,EAC9B,OAA0E;IAE1E,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC;IAC3C,MAAM,YAAY,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAC7E,MAAM,UAAU,GAAG,QAAQ,KAAK,IAAI;QAClC,CAAC,CAAC,UAAU,KAAK,CAAC,KAAK,cAAc,KAAK,CAAC,OAAO,EAAE;QACpD,CAAC,CAAC,MAAM,KAAK,CAAC,KAAK,QAAQ,KAAK,CAAC,OAAO,EAAE,CAAC;IAC7C,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE;QAC9C,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;QACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;KACtC,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC;IAChE,OAAO,0BAA0B,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;AAClE,CAAC"}
@@ -91,6 +91,7 @@ export declare function chatCompletion(client: LLMClient, model: string, message
91
91
  readonly webSearch?: boolean;
92
92
  readonly onStreamProgress?: OnStreamProgress;
93
93
  readonly onTextDelta?: (text: string) => void;
94
+ readonly signal?: AbortSignal;
94
95
  readonly retry?: boolean;
95
96
  }): Promise<LLMResponse>;
96
97
  //# sourceMappingURL=provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/llm/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/llm/provider.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { lookupModel } from "./providers/lookup.js";
5
5
  import { fetchWithProxy } from "../utils/proxy-fetch.js";
6
6
  import { isApiKeyOptionalForEndpoint } from "../utils/llm-endpoint-auth.js";
7
7
  import { isLlmStubEnabled, stubChatCompletion } from "../agent/llm-stub.js";
8
+ import { createLeadingThinkTagStripper, stripLeadingThinkBlock } from "./think-tag-stripper.js";
8
9
  const INKOS_USER_AGENT = "InkOS/1.3.5";
9
10
  const UNKNOWN_MODEL_FALLBACK_MAX_TOKENS = 8192 * 3;
10
11
  const TRANSIENT_LLM_RETRIES = 2;
@@ -473,6 +474,7 @@ async function withTransientLLMRetry(run, options) {
473
474
  const enabled = options?.enabled ?? true;
474
475
  let lastError;
475
476
  for (let attempt = 0; attempt <= TRANSIENT_LLM_RETRIES; attempt++) {
477
+ options?.signal?.throwIfAborted();
476
478
  try {
477
479
  return await run();
478
480
  }
@@ -485,11 +487,29 @@ async function withTransientLLMRetry(run, options) {
485
487
  }
486
488
  // Back off before retrying — immediate re-fire on a 429/503 just makes it
487
489
  // worse. Linear is enough for a 2-retry budget (~0.8s, ~1.6s).
488
- await new Promise((resolve) => setTimeout(resolve, 800 * (attempt + 1)));
490
+ await abortableDelay(800 * (attempt + 1), options?.signal);
489
491
  }
490
492
  }
491
493
  throw lastError;
492
494
  }
495
+ async function abortableDelay(delayMs, signal) {
496
+ if (!signal) {
497
+ await new Promise((resolveDelay) => setTimeout(resolveDelay, delayMs));
498
+ return;
499
+ }
500
+ signal.throwIfAborted();
501
+ await new Promise((resolveDelay, rejectDelay) => {
502
+ const timer = setTimeout(() => {
503
+ signal.removeEventListener("abort", onAbort);
504
+ resolveDelay();
505
+ }, delayMs);
506
+ const onAbort = () => {
507
+ clearTimeout(timer);
508
+ rejectDelay(signal.reason ?? new Error("LLM request aborted"));
509
+ };
510
+ signal.addEventListener("abort", onAbort, { once: true });
511
+ });
512
+ }
493
513
  function shouldUseNativeCustomTransport(client) {
494
514
  if (client.service === "minimax" && client.provider === "openai") {
495
515
  return true;
@@ -524,11 +544,17 @@ function buildCustomHeaders(client) {
524
544
  }) ?? { "Content-Type": "application/json" };
525
545
  }
526
546
  function defaultOpenAIChatExtra(client, model) {
527
- if (client.service === "minimax"
528
- && /^minimax-m3(?:$|[-_.])/i.test(model)) {
529
- return { thinking: { type: "disabled" } };
530
- }
531
- return {};
547
+ if (client.service !== "minimax")
548
+ return {};
549
+ // MiniMax OpenAI 兼容端点(issue #329):
550
+ // - reasoning_split: true 让 thinking 拆分到 reasoning_content / reasoning_details,
551
+ // 不再以 <think>...</think> 内联在 content 里。M2.x 系列的 thinking 无法关闭,
552
+ // 不拆分的话思考内容会混进章节/对话正文。
553
+ // - M3 系列额外默认关闭 thinking(M2.x 不支持 thinking 参数,不能发送)。
554
+ return {
555
+ reasoning_split: true,
556
+ ...(/^minimax-m3(?:$|[-_.])/i.test(model) ? { thinking: { type: "disabled" } } : {}),
557
+ };
532
558
  }
533
559
  function sanitizeHeaderApiKey(apiKey) {
534
560
  const trimmed = apiKey?.trim() ?? "";
@@ -658,7 +684,11 @@ function extractChatDeltaContent(json) {
658
684
  return extractOpenAITextPart(json?.choices?.[0]?.delta?.content);
659
685
  }
660
686
  function extractChatDeltaReasoningContent(json) {
661
- return extractOpenAITextPart(json?.choices?.[0]?.delta?.reasoning_content);
687
+ const delta = json?.choices?.[0]?.delta;
688
+ // MiniMax reasoning_split 模式下流式 thinking 走 delta.reasoning_details
689
+ //([{ text: "..." }] 数组);其它服务走 delta.reasoning_content。
690
+ return extractOpenAITextPart(delta?.reasoning_content)
691
+ || extractOpenAITextPart(delta?.reasoning_details);
662
692
  }
663
693
  function extractResponsesContent(json) {
664
694
  const output = Array.isArray(json?.output) ? json.output : [];
@@ -681,7 +711,7 @@ function extractAnthropicContent(json) {
681
711
  .map((part) => typeof part?.text === "string" ? part.text : "")
682
712
  .join("");
683
713
  }
684
- async function chatCompletionViaCustomAnthropicCompatible(client, model, messages, resolved, onStreamProgress, onTextDelta) {
714
+ async function chatCompletionViaCustomAnthropicCompatible(client, model, messages, resolved, onStreamProgress, onTextDelta, signal) {
685
715
  const baseUrl = client._piModel?.baseUrl ?? "";
686
716
  const errorCtx = { baseUrl, model, service: client.service };
687
717
  const extra = stripReservedKeys(resolved.extra);
@@ -708,6 +738,7 @@ async function chatCompletionViaCustomAnthropicCompatible(client, model, message
708
738
  ...(client._piModel?.headers ?? {}),
709
739
  }) ?? { "Content-Type": "application/json" },
710
740
  body: JSON.stringify(payload),
741
+ signal,
711
742
  }, client.proxyUrl);
712
743
  if (!response.ok) {
713
744
  throw wrapLLMError(new Error(await readErrorResponse(response)), errorCtx);
@@ -781,9 +812,9 @@ async function chatCompletionViaCustomAnthropicCompatible(client, model, message
781
812
  }
782
813
  return { content, usage };
783
814
  }
784
- async function chatCompletionViaCustomOpenAICompatible(client, model, messages, resolved, onStreamProgress, onTextDelta, allowSystemRoleFallback = true) {
815
+ async function chatCompletionViaCustomOpenAICompatible(client, model, messages, resolved, onStreamProgress, onTextDelta, signal, allowSystemRoleFallback = true) {
785
816
  if (client.provider === "anthropic") {
786
- return chatCompletionViaCustomAnthropicCompatible(client, model, messages, resolved, onStreamProgress, onTextDelta);
817
+ return chatCompletionViaCustomAnthropicCompatible(client, model, messages, resolved, onStreamProgress, onTextDelta, signal);
787
818
  }
788
819
  const baseUrl = client._piModel?.baseUrl ?? "";
789
820
  const headers = buildCustomHeaders(client);
@@ -806,6 +837,7 @@ async function chatCompletionViaCustomOpenAICompatible(client, model, messages,
806
837
  method: "POST",
807
838
  headers,
808
839
  body: JSON.stringify(payload),
840
+ signal,
809
841
  }, client.proxyUrl);
810
842
  if (!response.ok) {
811
843
  throw wrapLLMError(new Error(await readErrorResponse(response)), errorCtx);
@@ -898,17 +930,20 @@ async function chatCompletionViaCustomOpenAICompatible(client, model, messages,
898
930
  method: "POST",
899
931
  headers,
900
932
  body: JSON.stringify(payload),
933
+ signal,
901
934
  }, client.proxyUrl);
902
935
  if (!response.ok) {
903
936
  const detail = await readErrorResponse(response);
904
937
  if (allowSystemRoleFallback && hasSystemMessages(messages) && isSystemRoleUnsupportedErrorText(detail)) {
905
- return chatCompletionViaCustomOpenAICompatible(client, model, foldSystemMessagesIntoFirstUser(messages), resolved, onStreamProgress, onTextDelta, false);
938
+ return chatCompletionViaCustomOpenAICompatible(client, model, foldSystemMessagesIntoFirstUser(messages), resolved, onStreamProgress, onTextDelta, signal, false);
906
939
  }
907
940
  throw wrapLLMError(new Error(detail), errorCtx);
908
941
  }
909
942
  if (!client.stream) {
910
943
  const json = await response.json();
911
- const content = extractChatContent(json);
944
+ // MiniMax M2.x 等模型可能把思考内容以 <think>...</think> 内联在 content 开头,
945
+ // 剥掉起始处的完整 think 块,防止思考内容混进章节/对话正文(issue #329)。
946
+ const content = stripLeadingThinkBlock(extractChatContent(json));
912
947
  if (!content) {
913
948
  throw wrapLLMError(new Error("LLM returned empty response"), errorCtx);
914
949
  }
@@ -933,6 +968,9 @@ async function chatCompletionViaCustomOpenAICompatible(client, model, messages,
933
968
  // 网关掐断长连接时流会"干净地"关闭但没有任何终止信号——那是截断,不是完成。
934
969
  let sawTerminal = false;
935
970
  const monitor = createStreamMonitor(onStreamProgress);
971
+ // 内联 <think>...</think> 的模型(如 MiniMax M2.x):剥掉响应起始处的完整
972
+ // think 块,思考内容既不并入正文也不通过 onTextDelta 发给 UI(issue #329)。
973
+ const thinkStripper = createLeadingThinkTagStripper();
936
974
  try {
937
975
  while (true) {
938
976
  const { value, done } = await reader.read();
@@ -954,9 +992,12 @@ async function chatCompletionViaCustomOpenAICompatible(client, model, messages,
954
992
  }
955
993
  const delta = extractChatDeltaContent(json);
956
994
  if (delta) {
957
- content += delta;
958
995
  monitor.onChunk(delta);
959
- onTextDelta?.(delta);
996
+ const emittable = thinkStripper.push(delta);
997
+ if (emittable) {
998
+ content += emittable;
999
+ onTextDelta?.(emittable);
1000
+ }
960
1001
  }
961
1002
  else {
962
1003
  const reasoningDelta = extractChatDeltaReasoningContent(json);
@@ -978,6 +1019,8 @@ async function chatCompletionViaCustomOpenAICompatible(client, model, messages,
978
1019
  finally {
979
1020
  monitor.stop();
980
1021
  }
1022
+ // 流结束仍缓冲在剥离器里的文本(未闭合的 think 块等)原样并回,避免数据丢失。
1023
+ content += thinkStripper.flush();
981
1024
  const finalContent = content || reasoningContent;
982
1025
  if (!finalContent) {
983
1026
  throw wrapLLMError(new Error("LLM returned empty response from stream"), errorCtx);
@@ -999,9 +1042,11 @@ export async function chatCompletion(client, model, messages, options) {
999
1042
  };
1000
1043
  const onStreamProgress = options?.onStreamProgress;
1001
1044
  const onTextDelta = options?.onTextDelta;
1045
+ const signal = options?.signal;
1002
1046
  const errorCtx = { baseUrl: client._piModel?.baseUrl ?? "(unknown)", model, service: client.service };
1003
1047
  try {
1004
1048
  return await withTransientLLMRetry(async () => {
1049
+ signal?.throwIfAborted();
1005
1050
  assertWithinContextWindow({
1006
1051
  piModel: resolvePiModel(client, model),
1007
1052
  model,
@@ -1009,13 +1054,13 @@ export async function chatCompletion(client, model, messages, options) {
1009
1054
  reservedOutputTokens: resolved.maxTokens,
1010
1055
  });
1011
1056
  if (shouldUseNativeCustomTransport(client)) {
1012
- return chatCompletionViaCustomOpenAICompatible(client, model, messages, resolved, onStreamProgress, onTextDelta);
1057
+ return chatCompletionViaCustomOpenAICompatible(client, model, messages, resolved, onStreamProgress, onTextDelta, signal);
1013
1058
  }
1014
- return chatCompletionViaPiAi(client, model, messages, resolved, onStreamProgress, onTextDelta);
1059
+ return chatCompletionViaPiAi(client, model, messages, resolved, onStreamProgress, onTextDelta, signal);
1015
1060
  },
1016
1061
  // Retrying after UI text deltas have been emitted can duplicate visible
1017
1062
  // text; callers can also opt out (e.g. fast-fail diagnostics).
1018
- { enabled: (options?.retry ?? true) && !onTextDelta });
1063
+ { enabled: (options?.retry ?? true) && !onTextDelta, signal });
1019
1064
  }
1020
1065
  catch (error) {
1021
1066
  // 注意:中断的流(PartialResponseError)不再"打捞"半截内容当成功返回——
@@ -1061,7 +1106,7 @@ function toPiContext(messages) {
1061
1106
  });
1062
1107
  return { systemPrompt, messages: piMessages };
1063
1108
  }
1064
- async function chatCompletionViaPiAi(client, model, messages, resolved, onStreamProgress, onTextDelta) {
1109
+ async function chatCompletionViaPiAi(client, model, messages, resolved, onStreamProgress, onTextDelta, signal) {
1065
1110
  const piModel = resolvePiModel(client, model);
1066
1111
  const context = toPiContext(messages);
1067
1112
  const streamOpts = {
@@ -1069,6 +1114,7 @@ async function chatCompletionViaPiAi(client, model, messages, resolved, onStream
1069
1114
  maxTokens: resolved.maxTokens,
1070
1115
  apiKey: client._apiKey,
1071
1116
  headers: mergeUserAgent(piModel.headers),
1117
+ signal,
1072
1118
  };
1073
1119
  if (!client.stream) {
1074
1120
  const response = await piCompleteSimple(piModel, context, streamOpts);