@actalk/inkos-core 0.3.4 → 0.3.6
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/LICENSE +21 -0
- package/dist/__tests__/ai-tells.test.d.ts +2 -0
- package/dist/__tests__/ai-tells.test.d.ts.map +1 -0
- package/dist/__tests__/ai-tells.test.js +78 -0
- package/dist/__tests__/ai-tells.test.js.map +1 -0
- package/dist/__tests__/detection-insights.test.d.ts +2 -0
- package/dist/__tests__/detection-insights.test.d.ts.map +1 -0
- package/dist/__tests__/detection-insights.test.js +50 -0
- package/dist/__tests__/detection-insights.test.js.map +1 -0
- package/dist/__tests__/detector.test.d.ts +2 -0
- package/dist/__tests__/detector.test.d.ts.map +1 -0
- package/dist/__tests__/detector.test.js +71 -0
- package/dist/__tests__/detector.test.js.map +1 -0
- package/dist/__tests__/style-analyzer.test.d.ts +2 -0
- package/dist/__tests__/style-analyzer.test.d.ts.map +1 -0
- package/dist/__tests__/style-analyzer.test.js +53 -0
- package/dist/__tests__/style-analyzer.test.js.map +1 -0
- package/dist/__tests__/webhook.test.d.ts +2 -0
- package/dist/__tests__/webhook.test.d.ts.map +1 -0
- package/dist/__tests__/webhook.test.js +62 -0
- package/dist/__tests__/webhook.test.js.map +1 -0
- package/dist/agents/ai-tells.d.ts +24 -0
- package/dist/agents/ai-tells.d.ts.map +1 -0
- package/dist/agents/ai-tells.js +114 -0
- package/dist/agents/ai-tells.js.map +1 -0
- package/dist/agents/architect.d.ts.map +1 -1
- package/dist/agents/architect.js +2 -0
- package/dist/agents/architect.js.map +1 -1
- package/dist/agents/continuity.d.ts.map +1 -1
- package/dist/agents/continuity.js +34 -2
- package/dist/agents/continuity.js.map +1 -1
- package/dist/agents/detection-insights.d.ts +9 -0
- package/dist/agents/detection-insights.d.ts.map +1 -0
- package/dist/agents/detection-insights.js +54 -0
- package/dist/agents/detection-insights.js.map +1 -0
- package/dist/agents/detector.d.ts +17 -0
- package/dist/agents/detector.d.ts.map +1 -0
- package/dist/agents/detector.js +77 -0
- package/dist/agents/detector.js.map +1 -0
- package/dist/agents/reviser.d.ts +1 -1
- package/dist/agents/reviser.d.ts.map +1 -1
- package/dist/agents/reviser.js +1 -0
- package/dist/agents/reviser.js.map +1 -1
- package/dist/agents/style-analyzer.d.ts +11 -0
- package/dist/agents/style-analyzer.d.ts.map +1 -0
- package/dist/agents/style-analyzer.js +81 -0
- package/dist/agents/style-analyzer.js.map +1 -0
- package/dist/agents/writer-prompts.d.ts +1 -1
- package/dist/agents/writer-prompts.d.ts.map +1 -1
- package/dist/agents/writer-prompts.js +42 -2
- package/dist/agents/writer-prompts.js.map +1 -1
- package/dist/agents/writer.d.ts +9 -0
- package/dist/agents/writer.d.ts.map +1 -1
- package/dist/agents/writer.js +98 -5
- package/dist/agents/writer.js.map +1 -1
- package/dist/index.d.ts +10 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/models/chapter.d.ts +9 -0
- package/dist/models/chapter.d.ts.map +1 -1
- package/dist/models/chapter.js +3 -0
- package/dist/models/chapter.js.map +1 -1
- package/dist/models/detection.d.ts +25 -0
- package/dist/models/detection.d.ts.map +1 -0
- package/dist/models/detection.js +2 -0
- package/dist/models/detection.js.map +1 -0
- package/dist/models/project.d.ts +156 -0
- package/dist/models/project.d.ts.map +1 -1
- package/dist/models/project.js +31 -0
- package/dist/models/project.js.map +1 -1
- package/dist/models/style-profile.d.ts +16 -0
- package/dist/models/style-profile.d.ts.map +1 -0
- package/dist/models/style-profile.js +2 -0
- package/dist/models/style-profile.js.map +1 -0
- package/dist/notify/dispatcher.d.ts +3 -0
- package/dist/notify/dispatcher.d.ts.map +1 -1
- package/dist/notify/dispatcher.js +28 -0
- package/dist/notify/dispatcher.js.map +1 -1
- package/dist/notify/webhook.d.ts +15 -0
- package/dist/notify/webhook.d.ts.map +1 -0
- package/dist/notify/webhook.js +28 -0
- package/dist/notify/webhook.js.map +1 -0
- package/dist/pipeline/detection-runner.d.ts +31 -0
- package/dist/pipeline/detection-runner.d.ts.map +1 -0
- package/dist/pipeline/detection-runner.js +109 -0
- package/dist/pipeline/detection-runner.js.map +1 -0
- package/dist/pipeline/runner.d.ts +3 -2
- package/dist/pipeline/runner.d.ts.map +1 -1
- package/dist/pipeline/runner.js +63 -8
- package/dist/pipeline/runner.js.map +1 -1
- package/dist/pipeline/scheduler.d.ts +11 -0
- package/dist/pipeline/scheduler.d.ts.map +1 -1
- package/dist/pipeline/scheduler.js +60 -0
- package/dist/pipeline/scheduler.js.map +1 -1
- package/dist/state/manager.d.ts.map +1 -1
- package/dist/state/manager.js +21 -3
- package/dist/state/manager.js.map +1 -1
- package/package.json +8 -8
package/dist/agents/writer.js
CHANGED
|
@@ -9,13 +9,18 @@ export class WriterAgent extends BaseAgent {
|
|
|
9
9
|
}
|
|
10
10
|
async writeChapter(input) {
|
|
11
11
|
const { book, bookDir, chapterNumber } = input;
|
|
12
|
-
const [storyBible, volumeOutline, styleGuide, currentState, ledger, hooks] = await Promise.all([
|
|
12
|
+
const [storyBible, volumeOutline, styleGuide, currentState, ledger, hooks, chapterSummaries, subplotBoard, emotionalArcs, characterMatrix, styleProfileRaw,] = await Promise.all([
|
|
13
13
|
this.readFileOrDefault(join(bookDir, "story/story_bible.md")),
|
|
14
14
|
this.readFileOrDefault(join(bookDir, "story/volume_outline.md")),
|
|
15
15
|
this.readFileOrDefault(join(bookDir, "story/style_guide.md")),
|
|
16
16
|
this.readFileOrDefault(join(bookDir, "story/current_state.md")),
|
|
17
17
|
this.readFileOrDefault(join(bookDir, "story/particle_ledger.md")),
|
|
18
18
|
this.readFileOrDefault(join(bookDir, "story/pending_hooks.md")),
|
|
19
|
+
this.readFileOrDefault(join(bookDir, "story/chapter_summaries.md")),
|
|
20
|
+
this.readFileOrDefault(join(bookDir, "story/subplot_board.md")),
|
|
21
|
+
this.readFileOrDefault(join(bookDir, "story/emotional_arcs.md")),
|
|
22
|
+
this.readFileOrDefault(join(bookDir, "story/character_matrix.md")),
|
|
23
|
+
this.readFileOrDefault(join(bookDir, "story/style_profile.json")),
|
|
19
24
|
]);
|
|
20
25
|
const recentChapters = await this.loadRecentChapters(bookDir, chapterNumber);
|
|
21
26
|
// Load genre profile + book rules
|
|
@@ -23,7 +28,8 @@ export class WriterAgent extends BaseAgent {
|
|
|
23
28
|
const parsedBookRules = await readBookRules(bookDir);
|
|
24
29
|
const bookRules = parsedBookRules?.rules ?? null;
|
|
25
30
|
const bookRulesBody = parsedBookRules?.body ?? "";
|
|
26
|
-
const
|
|
31
|
+
const styleFingerprint = this.buildStyleFingerprint(styleProfileRaw);
|
|
32
|
+
const systemPrompt = buildWriterSystemPrompt(book, genreProfile, bookRules, bookRulesBody, genreBody, styleGuide, styleFingerprint);
|
|
27
33
|
const userPrompt = this.buildUserPrompt({
|
|
28
34
|
chapterNumber,
|
|
29
35
|
storyBible,
|
|
@@ -32,8 +38,12 @@ export class WriterAgent extends BaseAgent {
|
|
|
32
38
|
ledger: genreProfile.numericalSystem ? ledger : "",
|
|
33
39
|
hooks,
|
|
34
40
|
recentChapters,
|
|
35
|
-
wordCount: book.chapterWordCount,
|
|
41
|
+
wordCount: input.wordCountOverride ?? book.chapterWordCount,
|
|
36
42
|
externalContext: input.externalContext,
|
|
43
|
+
chapterSummaries,
|
|
44
|
+
subplotBoard,
|
|
45
|
+
emotionalArcs,
|
|
46
|
+
characterMatrix,
|
|
37
47
|
});
|
|
38
48
|
const response = await this.chat([
|
|
39
49
|
{ role: "system", content: systemPrompt },
|
|
@@ -69,6 +79,18 @@ export class WriterAgent extends BaseAgent {
|
|
|
69
79
|
const ledgerBlock = params.ledger
|
|
70
80
|
? `\n## 资源账本\n${params.ledger}\n`
|
|
71
81
|
: "";
|
|
82
|
+
const summariesBlock = params.chapterSummaries !== "(文件尚未创建)"
|
|
83
|
+
? `\n## 章节摘要(全部历史章节压缩上下文)\n${params.chapterSummaries}\n`
|
|
84
|
+
: "";
|
|
85
|
+
const subplotBlock = params.subplotBoard !== "(文件尚未创建)"
|
|
86
|
+
? `\n## 支线进度板\n${params.subplotBoard}\n`
|
|
87
|
+
: "";
|
|
88
|
+
const emotionalBlock = params.emotionalArcs !== "(文件尚未创建)"
|
|
89
|
+
? `\n## 情感弧线\n${params.emotionalArcs}\n`
|
|
90
|
+
: "";
|
|
91
|
+
const matrixBlock = params.characterMatrix !== "(文件尚未创建)"
|
|
92
|
+
? `\n## 角色交互矩阵\n${params.characterMatrix}\n`
|
|
93
|
+
: "";
|
|
72
94
|
return `请续写第${params.chapterNumber}章。
|
|
73
95
|
${contextBlock}
|
|
74
96
|
## 当前状态卡
|
|
@@ -76,7 +98,7 @@ ${params.currentState}
|
|
|
76
98
|
${ledgerBlock}
|
|
77
99
|
## 伏笔池
|
|
78
100
|
${params.hooks}
|
|
79
|
-
|
|
101
|
+
${summariesBlock}${subplotBlock}${emotionalBlock}${matrixBlock}
|
|
80
102
|
## 最近章节
|
|
81
103
|
${params.recentChapters || "(这是第一章,无前文)"}
|
|
82
104
|
|
|
@@ -88,7 +110,7 @@ ${params.volumeOutline}
|
|
|
88
110
|
|
|
89
111
|
要求:
|
|
90
112
|
- 正文不少于${params.wordCount}字
|
|
91
|
-
- 写完后更新状态卡${params.ledger ? "、资源账本" : ""}
|
|
113
|
+
- 写完后更新状态卡${params.ledger ? "、资源账本" : ""}、伏笔池、章节摘要、支线进度板、情感弧线、角色交互矩阵
|
|
92
114
|
- 先输出写作自检表,再写正文`;
|
|
93
115
|
}
|
|
94
116
|
async loadRecentChapters(bookDir, currentChapter) {
|
|
@@ -138,8 +160,79 @@ ${params.volumeOutline}
|
|
|
138
160
|
? (extract("UPDATED_LEDGER") || "(账本未更新)")
|
|
139
161
|
: "",
|
|
140
162
|
updatedHooks: extract("UPDATED_HOOKS") || "(伏笔池未更新)",
|
|
163
|
+
chapterSummary: extract("CHAPTER_SUMMARY"),
|
|
164
|
+
updatedSubplots: extract("UPDATED_SUBPLOTS"),
|
|
165
|
+
updatedEmotionalArcs: extract("UPDATED_EMOTIONAL_ARCS"),
|
|
166
|
+
updatedCharacterMatrix: extract("UPDATED_CHARACTER_MATRIX"),
|
|
141
167
|
};
|
|
142
168
|
}
|
|
169
|
+
/** Save new truth files (summaries, subplots, emotional arcs, character matrix). */
|
|
170
|
+
async saveNewTruthFiles(bookDir, output) {
|
|
171
|
+
const storyDir = join(bookDir, "story");
|
|
172
|
+
const writes = [];
|
|
173
|
+
// Append chapter summary to chapter_summaries.md
|
|
174
|
+
if (output.chapterSummary) {
|
|
175
|
+
writes.push(this.appendChapterSummary(storyDir, output.chapterSummary));
|
|
176
|
+
}
|
|
177
|
+
// Overwrite subplot board
|
|
178
|
+
if (output.updatedSubplots) {
|
|
179
|
+
writes.push(writeFile(join(storyDir, "subplot_board.md"), output.updatedSubplots, "utf-8"));
|
|
180
|
+
}
|
|
181
|
+
// Overwrite emotional arcs
|
|
182
|
+
if (output.updatedEmotionalArcs) {
|
|
183
|
+
writes.push(writeFile(join(storyDir, "emotional_arcs.md"), output.updatedEmotionalArcs, "utf-8"));
|
|
184
|
+
}
|
|
185
|
+
// Overwrite character matrix
|
|
186
|
+
if (output.updatedCharacterMatrix) {
|
|
187
|
+
writes.push(writeFile(join(storyDir, "character_matrix.md"), output.updatedCharacterMatrix, "utf-8"));
|
|
188
|
+
}
|
|
189
|
+
await Promise.all(writes);
|
|
190
|
+
}
|
|
191
|
+
async appendChapterSummary(storyDir, summary) {
|
|
192
|
+
const summaryPath = join(storyDir, "chapter_summaries.md");
|
|
193
|
+
let existing = "";
|
|
194
|
+
try {
|
|
195
|
+
existing = await readFile(summaryPath, "utf-8");
|
|
196
|
+
}
|
|
197
|
+
catch {
|
|
198
|
+
// File doesn't exist yet — start with header
|
|
199
|
+
existing = "# 章节摘要\n\n| 章节 | 标题 | 出场人物 | 关键事件 | 状态变化 | 伏笔动态 | 情绪基调 | 章节类型 |\n|------|------|----------|----------|----------|----------|----------|----------|\n";
|
|
200
|
+
}
|
|
201
|
+
// Extract only the data row(s) from the summary (skip header lines)
|
|
202
|
+
const dataRows = summary
|
|
203
|
+
.split("\n")
|
|
204
|
+
.filter((line) => line.startsWith("|") && !line.startsWith("| 章节") && !line.startsWith("|--"))
|
|
205
|
+
.join("\n");
|
|
206
|
+
if (dataRows) {
|
|
207
|
+
await writeFile(summaryPath, `${existing.trimEnd()}\n${dataRows}\n`, "utf-8");
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
buildStyleFingerprint(styleProfileRaw) {
|
|
211
|
+
if (!styleProfileRaw || styleProfileRaw === "(文件尚未创建)")
|
|
212
|
+
return undefined;
|
|
213
|
+
try {
|
|
214
|
+
const profile = JSON.parse(styleProfileRaw);
|
|
215
|
+
const lines = [];
|
|
216
|
+
if (profile.avgSentenceLength)
|
|
217
|
+
lines.push(`- 平均句长:${profile.avgSentenceLength}字`);
|
|
218
|
+
if (profile.sentenceLengthStdDev)
|
|
219
|
+
lines.push(`- 句长标准差:${profile.sentenceLengthStdDev}`);
|
|
220
|
+
if (profile.avgParagraphLength)
|
|
221
|
+
lines.push(`- 平均段落长度:${profile.avgParagraphLength}字`);
|
|
222
|
+
if (profile.paragraphLengthRange)
|
|
223
|
+
lines.push(`- 段落长度范围:${profile.paragraphLengthRange.min}-${profile.paragraphLengthRange.max}字`);
|
|
224
|
+
if (profile.vocabularyDiversity)
|
|
225
|
+
lines.push(`- 词汇多样性(TTR):${profile.vocabularyDiversity}`);
|
|
226
|
+
if (profile.topPatterns?.length > 0)
|
|
227
|
+
lines.push(`- 高频句式:${profile.topPatterns.join("、")}`);
|
|
228
|
+
if (profile.rhetoricalFeatures?.length > 0)
|
|
229
|
+
lines.push(`- 修辞特征:${profile.rhetoricalFeatures.join("、")}`);
|
|
230
|
+
return lines.length > 0 ? lines.join("\n") : undefined;
|
|
231
|
+
}
|
|
232
|
+
catch {
|
|
233
|
+
return undefined;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
143
236
|
sanitizeFilename(title) {
|
|
144
237
|
return title
|
|
145
238
|
.replace(/[/\\?%*:|"<>]/g, "")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/agents/writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAItC,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/agents/writer.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
export { type BookConfig, type Platform, type Genre, type BookStatus, BookConfigSchema, PlatformSchema, GenreSchema, BookStatusSchema } from "./models/book.js";
|
|
2
2
|
export { type ChapterMeta, type ChapterStatus, ChapterMetaSchema, ChapterStatusSchema } from "./models/chapter.js";
|
|
3
|
-
export { type ProjectConfig, type LLMConfig, type NotifyChannel, ProjectConfigSchema, LLMConfigSchema } from "./models/project.js";
|
|
3
|
+
export { type ProjectConfig, type LLMConfig, type NotifyChannel, type DetectionConfig, type QualityGates, ProjectConfigSchema, LLMConfigSchema, DetectionConfigSchema, QualityGatesSchema } from "./models/project.js";
|
|
4
4
|
export { type CurrentState, type ParticleLedger, type PendingHooks, type PendingHook, type LedgerEntry } from "./models/state.js";
|
|
5
5
|
export { type GenreProfile, type ParsedGenreProfile, GenreProfileSchema, parseGenreProfile } from "./models/genre-profile.js";
|
|
6
6
|
export { type BookRules, type ParsedBookRules, BookRulesSchema, parseBookRules } from "./models/book-rules.js";
|
|
7
|
+
export { type DetectionHistoryEntry, type DetectionStats } from "./models/detection.js";
|
|
8
|
+
export { type StyleProfile } from "./models/style-profile.js";
|
|
7
9
|
export { createLLMClient, chatCompletion, chatWithTools, type LLMClient, type LLMResponse, type LLMMessage, type ToolDefinition, type ToolCall, type AgentMessage, type ChatWithToolsResult } from "./llm/provider.js";
|
|
8
10
|
export { BaseAgent, type AgentContext } from "./agents/base.js";
|
|
9
11
|
export { ArchitectAgent, type ArchitectOutput } from "./agents/architect.js";
|
|
@@ -14,12 +16,18 @@ export { RadarAgent, type RadarResult, type RadarRecommendation } from "./agents
|
|
|
14
16
|
export { FanqieRadarSource, QidianRadarSource, TextRadarSource, type RadarSource, type PlatformRankings, type RankingEntry } from "./agents/radar-source.js";
|
|
15
17
|
export { readGenreProfile, readBookRules, listAvailableGenres, getBuiltinGenresDir } from "./agents/rules-reader.js";
|
|
16
18
|
export { buildWriterSystemPrompt } from "./agents/writer-prompts.js";
|
|
19
|
+
export { analyzeAITells, type AITellResult, type AITellIssue } from "./agents/ai-tells.js";
|
|
20
|
+
export { detectAIContent, type DetectionResult } from "./agents/detector.js";
|
|
21
|
+
export { analyzeStyle } from "./agents/style-analyzer.js";
|
|
22
|
+
export { analyzeDetectionInsights } from "./agents/detection-insights.js";
|
|
17
23
|
export { PipelineRunner, type PipelineConfig, type ChapterPipelineResult, type DraftResult, type ReviseResult, type TruthFiles, type BookStatusInfo } from "./pipeline/runner.js";
|
|
18
24
|
export { Scheduler, type SchedulerConfig } from "./pipeline/scheduler.js";
|
|
19
25
|
export { runAgentLoop, AGENT_TOOLS as AGENT_TOOLS, type AgentLoopOptions } from "./pipeline/agent.js";
|
|
26
|
+
export { detectChapter, detectAndRewrite, loadDetectionHistory, type DetectChapterResult, type DetectAndRewriteResult } from "./pipeline/detection-runner.js";
|
|
20
27
|
export { StateManager } from "./state/manager.js";
|
|
21
|
-
export { dispatchNotification, type NotifyMessage } from "./notify/dispatcher.js";
|
|
28
|
+
export { dispatchNotification, dispatchWebhookEvent, type NotifyMessage } from "./notify/dispatcher.js";
|
|
22
29
|
export { sendTelegram, type TelegramConfig } from "./notify/telegram.js";
|
|
23
30
|
export { sendFeishu, type FeishuConfig } from "./notify/feishu.js";
|
|
24
31
|
export { sendWechatWork, type WechatWorkConfig } from "./notify/wechat-work.js";
|
|
32
|
+
export { sendWebhook, type WebhookConfig, type WebhookEvent, type WebhookPayload } from "./notify/webhook.js";
|
|
25
33
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,EAAE,KAAK,KAAK,EAAE,KAAK,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAChK,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACnH,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Models
|
|
2
2
|
export { BookConfigSchema, PlatformSchema, GenreSchema, BookStatusSchema } from "./models/book.js";
|
|
3
3
|
export { ChapterMetaSchema, ChapterStatusSchema } from "./models/chapter.js";
|
|
4
|
-
export { ProjectConfigSchema, LLMConfigSchema } from "./models/project.js";
|
|
4
|
+
export { ProjectConfigSchema, LLMConfigSchema, DetectionConfigSchema, QualityGatesSchema } from "./models/project.js";
|
|
5
5
|
export { GenreProfileSchema, parseGenreProfile } from "./models/genre-profile.js";
|
|
6
6
|
export { BookRulesSchema, parseBookRules } from "./models/book-rules.js";
|
|
7
7
|
// LLM
|
|
@@ -16,15 +16,21 @@ export { RadarAgent } from "./agents/radar.js";
|
|
|
16
16
|
export { FanqieRadarSource, QidianRadarSource, TextRadarSource } from "./agents/radar-source.js";
|
|
17
17
|
export { readGenreProfile, readBookRules, listAvailableGenres, getBuiltinGenresDir } from "./agents/rules-reader.js";
|
|
18
18
|
export { buildWriterSystemPrompt } from "./agents/writer-prompts.js";
|
|
19
|
+
export { analyzeAITells } from "./agents/ai-tells.js";
|
|
20
|
+
export { detectAIContent } from "./agents/detector.js";
|
|
21
|
+
export { analyzeStyle } from "./agents/style-analyzer.js";
|
|
22
|
+
export { analyzeDetectionInsights } from "./agents/detection-insights.js";
|
|
19
23
|
// Pipeline
|
|
20
24
|
export { PipelineRunner } from "./pipeline/runner.js";
|
|
21
25
|
export { Scheduler } from "./pipeline/scheduler.js";
|
|
22
26
|
export { runAgentLoop, AGENT_TOOLS as AGENT_TOOLS } from "./pipeline/agent.js";
|
|
27
|
+
export { detectChapter, detectAndRewrite, loadDetectionHistory } from "./pipeline/detection-runner.js";
|
|
23
28
|
// State
|
|
24
29
|
export { StateManager } from "./state/manager.js";
|
|
25
30
|
// Notify
|
|
26
|
-
export { dispatchNotification } from "./notify/dispatcher.js";
|
|
31
|
+
export { dispatchNotification, dispatchWebhookEvent } from "./notify/dispatcher.js";
|
|
27
32
|
export { sendTelegram } from "./notify/telegram.js";
|
|
28
33
|
export { sendFeishu } from "./notify/feishu.js";
|
|
29
34
|
export { sendWechatWork } from "./notify/wechat-work.js";
|
|
35
|
+
export { sendWebhook } from "./notify/webhook.js";
|
|
30
36
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,OAAO,EAA+D,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAChK,OAAO,EAAwC,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACnH,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,OAAO,EAA+D,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAChK,OAAO,EAAwC,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACnH,OAAO,EAAmG,mBAAmB,EAAE,eAAe,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEvN,OAAO,EAA8C,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9H,OAAO,EAAwC,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAI/G,MAAM;AACN,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAsI,MAAM,mBAAmB,CAAC;AAEvN,SAAS;AACT,OAAO,EAAE,SAAS,EAAqB,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAwB,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAmD,MAAM,oBAAoB,CAAC;AAClG,OAAO,EAAE,iBAAiB,EAAqC,MAAM,wBAAwB,CAAC;AAC9F,OAAO,EAAE,YAAY,EAAsC,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,UAAU,EAA8C,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAA8D,MAAM,0BAA0B,CAAC;AAC7J,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACrH,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,cAAc,EAAuC,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAwB,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE1E,WAAW;AACX,OAAO,EAAE,cAAc,EAA8H,MAAM,sBAAsB,CAAC;AAClL,OAAO,EAAE,SAAS,EAAwB,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,WAAW,IAAI,WAAW,EAAyB,MAAM,qBAAqB,CAAC;AACtG,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,oBAAoB,EAAyD,MAAM,gCAAgC,CAAC;AAE9J,QAAQ;AACR,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,SAAS;AACT,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAsB,MAAM,wBAAwB,CAAC;AACxG,OAAO,EAAE,YAAY,EAAuB,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAqB,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAyB,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,WAAW,EAA8D,MAAM,qBAAqB,CAAC"}
|
package/dist/models/chapter.d.ts
CHANGED
|
@@ -10,6 +10,9 @@ export declare const ChapterMetaSchema: z.ZodObject<{
|
|
|
10
10
|
updatedAt: z.ZodString;
|
|
11
11
|
auditIssues: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
12
12
|
reviewNote: z.ZodOptional<z.ZodString>;
|
|
13
|
+
detectionScore: z.ZodOptional<z.ZodNumber>;
|
|
14
|
+
detectionProvider: z.ZodOptional<z.ZodString>;
|
|
15
|
+
detectedAt: z.ZodOptional<z.ZodString>;
|
|
13
16
|
}, "strip", z.ZodTypeAny, {
|
|
14
17
|
number: number;
|
|
15
18
|
status: "card-generated" | "drafting" | "drafted" | "auditing" | "audit-passed" | "audit-failed" | "revising" | "ready-for-review" | "approved" | "rejected" | "published";
|
|
@@ -19,6 +22,9 @@ export declare const ChapterMetaSchema: z.ZodObject<{
|
|
|
19
22
|
wordCount: number;
|
|
20
23
|
auditIssues: string[];
|
|
21
24
|
reviewNote?: string | undefined;
|
|
25
|
+
detectionScore?: number | undefined;
|
|
26
|
+
detectionProvider?: string | undefined;
|
|
27
|
+
detectedAt?: string | undefined;
|
|
22
28
|
}, {
|
|
23
29
|
number: number;
|
|
24
30
|
status: "card-generated" | "drafting" | "drafted" | "auditing" | "audit-passed" | "audit-failed" | "revising" | "ready-for-review" | "approved" | "rejected" | "published";
|
|
@@ -28,6 +34,9 @@ export declare const ChapterMetaSchema: z.ZodObject<{
|
|
|
28
34
|
wordCount?: number | undefined;
|
|
29
35
|
auditIssues?: string[] | undefined;
|
|
30
36
|
reviewNote?: string | undefined;
|
|
37
|
+
detectionScore?: number | undefined;
|
|
38
|
+
detectionProvider?: string | undefined;
|
|
39
|
+
detectedAt?: string | undefined;
|
|
31
40
|
}>;
|
|
32
41
|
export type ChapterMeta = z.infer<typeof ChapterMetaSchema>;
|
|
33
42
|
//# sourceMappingURL=chapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chapter.d.ts","sourceRoot":"","sources":["../../src/models/chapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB,uKAY9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"chapter.d.ts","sourceRoot":"","sources":["../../src/models/chapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB,uKAY9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|
package/dist/models/chapter.js
CHANGED
|
@@ -21,5 +21,8 @@ export const ChapterMetaSchema = z.object({
|
|
|
21
21
|
updatedAt: z.string().datetime(),
|
|
22
22
|
auditIssues: z.array(z.string()).default([]),
|
|
23
23
|
reviewNote: z.string().optional(),
|
|
24
|
+
detectionScore: z.number().min(0).max(1).optional(),
|
|
25
|
+
detectionProvider: z.string().optional(),
|
|
26
|
+
detectedAt: z.string().datetime().optional(),
|
|
24
27
|
});
|
|
25
28
|
//# sourceMappingURL=chapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chapter.js","sourceRoot":"","sources":["../../src/models/chapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC;IACxC,gBAAgB;IAChB,UAAU;IACV,SAAS;IACT,UAAU;IACV,cAAc;IACd,cAAc;IACd,UAAU;IACV,kBAAkB;IAClB,UAAU;IACV,UAAU;IACV,WAAW;CACZ,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,mBAAmB;IAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACtC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"chapter.js","sourceRoot":"","sources":["../../src/models/chapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC;IACxC,gBAAgB;IAChB,UAAU;IACV,SAAS;IACT,UAAU;IACV,cAAc;IACd,cAAc;IACd,UAAU;IACV,kBAAkB;IAClB,UAAU;IACV,UAAU;IACV,WAAW;CACZ,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,mBAAmB;IAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACtC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACnD,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/** A single detection/rewrite event recorded in detection_history.json. */
|
|
2
|
+
export interface DetectionHistoryEntry {
|
|
3
|
+
readonly chapterNumber: number;
|
|
4
|
+
readonly timestamp: string;
|
|
5
|
+
readonly provider: string;
|
|
6
|
+
readonly score: number;
|
|
7
|
+
readonly action: "detect" | "rewrite";
|
|
8
|
+
readonly attempt: number;
|
|
9
|
+
}
|
|
10
|
+
/** Aggregated detection statistics. */
|
|
11
|
+
export interface DetectionStats {
|
|
12
|
+
readonly totalDetections: number;
|
|
13
|
+
readonly totalRewrites: number;
|
|
14
|
+
readonly avgOriginalScore: number;
|
|
15
|
+
readonly avgFinalScore: number;
|
|
16
|
+
readonly avgScoreReduction: number;
|
|
17
|
+
readonly passRate: number;
|
|
18
|
+
readonly chapterBreakdown: ReadonlyArray<{
|
|
19
|
+
readonly chapterNumber: number;
|
|
20
|
+
readonly originalScore: number;
|
|
21
|
+
readonly finalScore: number;
|
|
22
|
+
readonly rewriteAttempts: number;
|
|
23
|
+
}>;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=detection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detection.d.ts","sourceRoot":"","sources":["../../src/models/detection.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,uCAAuC;AACvC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC;QACvC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;KAClC,CAAC,CAAC;CACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detection.js","sourceRoot":"","sources":["../../src/models/detection.ts"],"names":[],"mappings":""}
|
package/dist/models/project.d.ts
CHANGED
|
@@ -58,8 +58,63 @@ export declare const NotifyChannelSchema: z.ZodDiscriminatedUnion<"type", [z.Zod
|
|
|
58
58
|
}, {
|
|
59
59
|
type: "feishu";
|
|
60
60
|
webhookUrl: string;
|
|
61
|
+
}>, z.ZodObject<{
|
|
62
|
+
type: z.ZodLiteral<"webhook">;
|
|
63
|
+
url: z.ZodString;
|
|
64
|
+
secret: z.ZodOptional<z.ZodString>;
|
|
65
|
+
events: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
66
|
+
}, "strip", z.ZodTypeAny, {
|
|
67
|
+
type: "webhook";
|
|
68
|
+
url: string;
|
|
69
|
+
events: string[];
|
|
70
|
+
secret?: string | undefined;
|
|
71
|
+
}, {
|
|
72
|
+
type: "webhook";
|
|
73
|
+
url: string;
|
|
74
|
+
secret?: string | undefined;
|
|
75
|
+
events?: string[] | undefined;
|
|
61
76
|
}>]>;
|
|
62
77
|
export type NotifyChannel = z.infer<typeof NotifyChannelSchema>;
|
|
78
|
+
export declare const DetectionConfigSchema: z.ZodObject<{
|
|
79
|
+
provider: z.ZodDefault<z.ZodEnum<["gptzero", "originality", "custom"]>>;
|
|
80
|
+
apiUrl: z.ZodString;
|
|
81
|
+
apiKeyEnv: z.ZodString;
|
|
82
|
+
threshold: z.ZodDefault<z.ZodNumber>;
|
|
83
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
84
|
+
autoRewrite: z.ZodDefault<z.ZodBoolean>;
|
|
85
|
+
maxRetries: z.ZodDefault<z.ZodNumber>;
|
|
86
|
+
}, "strip", z.ZodTypeAny, {
|
|
87
|
+
provider: "custom" | "gptzero" | "originality";
|
|
88
|
+
apiUrl: string;
|
|
89
|
+
apiKeyEnv: string;
|
|
90
|
+
threshold: number;
|
|
91
|
+
enabled: boolean;
|
|
92
|
+
autoRewrite: boolean;
|
|
93
|
+
maxRetries: number;
|
|
94
|
+
}, {
|
|
95
|
+
apiUrl: string;
|
|
96
|
+
apiKeyEnv: string;
|
|
97
|
+
provider?: "custom" | "gptzero" | "originality" | undefined;
|
|
98
|
+
threshold?: number | undefined;
|
|
99
|
+
enabled?: boolean | undefined;
|
|
100
|
+
autoRewrite?: boolean | undefined;
|
|
101
|
+
maxRetries?: number | undefined;
|
|
102
|
+
}>;
|
|
103
|
+
export type DetectionConfig = z.infer<typeof DetectionConfigSchema>;
|
|
104
|
+
export declare const QualityGatesSchema: z.ZodObject<{
|
|
105
|
+
maxAuditRetries: z.ZodDefault<z.ZodNumber>;
|
|
106
|
+
pauseAfterConsecutiveFailures: z.ZodDefault<z.ZodNumber>;
|
|
107
|
+
retryTemperatureStep: z.ZodDefault<z.ZodNumber>;
|
|
108
|
+
}, "strip", z.ZodTypeAny, {
|
|
109
|
+
maxAuditRetries: number;
|
|
110
|
+
pauseAfterConsecutiveFailures: number;
|
|
111
|
+
retryTemperatureStep: number;
|
|
112
|
+
}, {
|
|
113
|
+
maxAuditRetries?: number | undefined;
|
|
114
|
+
pauseAfterConsecutiveFailures?: number | undefined;
|
|
115
|
+
retryTemperatureStep?: number | undefined;
|
|
116
|
+
}>;
|
|
117
|
+
export type QualityGates = z.infer<typeof QualityGatesSchema>;
|
|
63
118
|
export declare const ProjectConfigSchema: z.ZodObject<{
|
|
64
119
|
name: z.ZodString;
|
|
65
120
|
version: z.ZodLiteral<"0.1.0">;
|
|
@@ -121,7 +176,47 @@ export declare const ProjectConfigSchema: z.ZodObject<{
|
|
|
121
176
|
}, {
|
|
122
177
|
type: "feishu";
|
|
123
178
|
webhookUrl: string;
|
|
179
|
+
}>, z.ZodObject<{
|
|
180
|
+
type: z.ZodLiteral<"webhook">;
|
|
181
|
+
url: z.ZodString;
|
|
182
|
+
secret: z.ZodOptional<z.ZodString>;
|
|
183
|
+
events: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
184
|
+
}, "strip", z.ZodTypeAny, {
|
|
185
|
+
type: "webhook";
|
|
186
|
+
url: string;
|
|
187
|
+
events: string[];
|
|
188
|
+
secret?: string | undefined;
|
|
189
|
+
}, {
|
|
190
|
+
type: "webhook";
|
|
191
|
+
url: string;
|
|
192
|
+
secret?: string | undefined;
|
|
193
|
+
events?: string[] | undefined;
|
|
124
194
|
}>]>, "many">>;
|
|
195
|
+
detection: z.ZodOptional<z.ZodObject<{
|
|
196
|
+
provider: z.ZodDefault<z.ZodEnum<["gptzero", "originality", "custom"]>>;
|
|
197
|
+
apiUrl: z.ZodString;
|
|
198
|
+
apiKeyEnv: z.ZodString;
|
|
199
|
+
threshold: z.ZodDefault<z.ZodNumber>;
|
|
200
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
201
|
+
autoRewrite: z.ZodDefault<z.ZodBoolean>;
|
|
202
|
+
maxRetries: z.ZodDefault<z.ZodNumber>;
|
|
203
|
+
}, "strip", z.ZodTypeAny, {
|
|
204
|
+
provider: "custom" | "gptzero" | "originality";
|
|
205
|
+
apiUrl: string;
|
|
206
|
+
apiKeyEnv: string;
|
|
207
|
+
threshold: number;
|
|
208
|
+
enabled: boolean;
|
|
209
|
+
autoRewrite: boolean;
|
|
210
|
+
maxRetries: number;
|
|
211
|
+
}, {
|
|
212
|
+
apiUrl: string;
|
|
213
|
+
apiKeyEnv: string;
|
|
214
|
+
provider?: "custom" | "gptzero" | "originality" | undefined;
|
|
215
|
+
threshold?: number | undefined;
|
|
216
|
+
enabled?: boolean | undefined;
|
|
217
|
+
autoRewrite?: boolean | undefined;
|
|
218
|
+
maxRetries?: number | undefined;
|
|
219
|
+
}>>;
|
|
125
220
|
daemon: z.ZodDefault<z.ZodObject<{
|
|
126
221
|
schedule: z.ZodObject<{
|
|
127
222
|
radarCron: z.ZodDefault<z.ZodString>;
|
|
@@ -137,6 +232,19 @@ export declare const ProjectConfigSchema: z.ZodObject<{
|
|
|
137
232
|
auditCron?: string | undefined;
|
|
138
233
|
}>;
|
|
139
234
|
maxConcurrentBooks: z.ZodDefault<z.ZodNumber>;
|
|
235
|
+
qualityGates: z.ZodDefault<z.ZodObject<{
|
|
236
|
+
maxAuditRetries: z.ZodDefault<z.ZodNumber>;
|
|
237
|
+
pauseAfterConsecutiveFailures: z.ZodDefault<z.ZodNumber>;
|
|
238
|
+
retryTemperatureStep: z.ZodDefault<z.ZodNumber>;
|
|
239
|
+
}, "strip", z.ZodTypeAny, {
|
|
240
|
+
maxAuditRetries: number;
|
|
241
|
+
pauseAfterConsecutiveFailures: number;
|
|
242
|
+
retryTemperatureStep: number;
|
|
243
|
+
}, {
|
|
244
|
+
maxAuditRetries?: number | undefined;
|
|
245
|
+
pauseAfterConsecutiveFailures?: number | undefined;
|
|
246
|
+
retryTemperatureStep?: number | undefined;
|
|
247
|
+
}>>;
|
|
140
248
|
}, "strip", z.ZodTypeAny, {
|
|
141
249
|
schedule: {
|
|
142
250
|
radarCron: string;
|
|
@@ -144,6 +252,11 @@ export declare const ProjectConfigSchema: z.ZodObject<{
|
|
|
144
252
|
auditCron: string;
|
|
145
253
|
};
|
|
146
254
|
maxConcurrentBooks: number;
|
|
255
|
+
qualityGates: {
|
|
256
|
+
maxAuditRetries: number;
|
|
257
|
+
pauseAfterConsecutiveFailures: number;
|
|
258
|
+
retryTemperatureStep: number;
|
|
259
|
+
};
|
|
147
260
|
}, {
|
|
148
261
|
schedule: {
|
|
149
262
|
radarCron?: string | undefined;
|
|
@@ -151,6 +264,11 @@ export declare const ProjectConfigSchema: z.ZodObject<{
|
|
|
151
264
|
auditCron?: string | undefined;
|
|
152
265
|
};
|
|
153
266
|
maxConcurrentBooks?: number | undefined;
|
|
267
|
+
qualityGates?: {
|
|
268
|
+
maxAuditRetries?: number | undefined;
|
|
269
|
+
pauseAfterConsecutiveFailures?: number | undefined;
|
|
270
|
+
retryTemperatureStep?: number | undefined;
|
|
271
|
+
} | undefined;
|
|
154
272
|
}>>;
|
|
155
273
|
}, "strip", z.ZodTypeAny, {
|
|
156
274
|
name: string;
|
|
@@ -175,6 +293,11 @@ export declare const ProjectConfigSchema: z.ZodObject<{
|
|
|
175
293
|
} | {
|
|
176
294
|
type: "feishu";
|
|
177
295
|
webhookUrl: string;
|
|
296
|
+
} | {
|
|
297
|
+
type: "webhook";
|
|
298
|
+
url: string;
|
|
299
|
+
events: string[];
|
|
300
|
+
secret?: string | undefined;
|
|
178
301
|
})[];
|
|
179
302
|
daemon: {
|
|
180
303
|
schedule: {
|
|
@@ -183,7 +306,21 @@ export declare const ProjectConfigSchema: z.ZodObject<{
|
|
|
183
306
|
auditCron: string;
|
|
184
307
|
};
|
|
185
308
|
maxConcurrentBooks: number;
|
|
309
|
+
qualityGates: {
|
|
310
|
+
maxAuditRetries: number;
|
|
311
|
+
pauseAfterConsecutiveFailures: number;
|
|
312
|
+
retryTemperatureStep: number;
|
|
313
|
+
};
|
|
186
314
|
};
|
|
315
|
+
detection?: {
|
|
316
|
+
provider: "custom" | "gptzero" | "originality";
|
|
317
|
+
apiUrl: string;
|
|
318
|
+
apiKeyEnv: string;
|
|
319
|
+
threshold: number;
|
|
320
|
+
enabled: boolean;
|
|
321
|
+
autoRewrite: boolean;
|
|
322
|
+
maxRetries: number;
|
|
323
|
+
} | undefined;
|
|
187
324
|
}, {
|
|
188
325
|
name: string;
|
|
189
326
|
version: "0.1.0";
|
|
@@ -207,7 +344,21 @@ export declare const ProjectConfigSchema: z.ZodObject<{
|
|
|
207
344
|
} | {
|
|
208
345
|
type: "feishu";
|
|
209
346
|
webhookUrl: string;
|
|
347
|
+
} | {
|
|
348
|
+
type: "webhook";
|
|
349
|
+
url: string;
|
|
350
|
+
secret?: string | undefined;
|
|
351
|
+
events?: string[] | undefined;
|
|
210
352
|
})[] | undefined;
|
|
353
|
+
detection?: {
|
|
354
|
+
apiUrl: string;
|
|
355
|
+
apiKeyEnv: string;
|
|
356
|
+
provider?: "custom" | "gptzero" | "originality" | undefined;
|
|
357
|
+
threshold?: number | undefined;
|
|
358
|
+
enabled?: boolean | undefined;
|
|
359
|
+
autoRewrite?: boolean | undefined;
|
|
360
|
+
maxRetries?: number | undefined;
|
|
361
|
+
} | undefined;
|
|
211
362
|
daemon?: {
|
|
212
363
|
schedule: {
|
|
213
364
|
radarCron?: string | undefined;
|
|
@@ -215,6 +366,11 @@ export declare const ProjectConfigSchema: z.ZodObject<{
|
|
|
215
366
|
auditCron?: string | undefined;
|
|
216
367
|
};
|
|
217
368
|
maxConcurrentBooks?: number | undefined;
|
|
369
|
+
qualityGates?: {
|
|
370
|
+
maxAuditRetries?: number | undefined;
|
|
371
|
+
pauseAfterConsecutiveFailures?: number | undefined;
|
|
372
|
+
retryTemperatureStep?: number | undefined;
|
|
373
|
+
} | undefined;
|
|
218
374
|
} | undefined;
|
|
219
375
|
}>;
|
|
220
376
|
export type ProjectConfig = z.infer<typeof ProjectConfigSchema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/models/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/models/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoB9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;EAQhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;EAI7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+B9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|