@actalk/inkos-core 0.3.0 → 0.3.4
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/__tests__/models.test.js +4 -4
- package/dist/__tests__/models.test.js.map +1 -1
- package/dist/__tests__/writer-parser.test.js +14 -2
- package/dist/__tests__/writer-parser.test.js.map +1 -1
- package/dist/agents/base.d.ts +2 -3
- package/dist/agents/base.d.ts.map +1 -1
- package/dist/agents/base.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/llm/provider.d.ts +47 -2
- package/dist/llm/provider.d.ts.map +1 -1
- package/dist/llm/provider.js +431 -18
- package/dist/llm/provider.js.map +1 -1
- package/dist/models/project.d.ts +37 -5
- package/dist/models/project.d.ts.map +1 -1
- package/dist/models/project.js +5 -1
- package/dist/models/project.js.map +1 -1
- package/dist/pipeline/agent.d.ts +4 -4
- package/dist/pipeline/agent.d.ts.map +1 -1
- package/dist/pipeline/agent.js +87 -165
- package/dist/pipeline/agent.js.map +1 -1
- package/dist/pipeline/runner.d.ts +2 -2
- package/dist/pipeline/runner.d.ts.map +1 -1
- package/package.json +9 -8
- package/LICENSE +0 -21
package/dist/pipeline/agent.js
CHANGED
|
@@ -1,132 +1,106 @@
|
|
|
1
|
+
import { chatWithTools } from "../llm/provider.js";
|
|
1
2
|
import { PipelineRunner } from "./runner.js";
|
|
2
|
-
/** Tool definitions for the agent loop
|
|
3
|
+
/** Tool definitions for the agent loop. */
|
|
3
4
|
const TOOLS = [
|
|
4
5
|
{
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
type: "
|
|
11
|
-
|
|
12
|
-
bookId: { type: "string", description: "书籍ID" },
|
|
13
|
-
guidance: { type: "string", description: "本章创作指导(可选,自然语言)" },
|
|
14
|
-
},
|
|
15
|
-
required: ["bookId"],
|
|
6
|
+
name: "write_draft",
|
|
7
|
+
description: "写一章草稿。生成正文、更新状态卡/账本/伏笔池、保存章节文件。",
|
|
8
|
+
parameters: {
|
|
9
|
+
type: "object",
|
|
10
|
+
properties: {
|
|
11
|
+
bookId: { type: "string", description: "书籍ID" },
|
|
12
|
+
guidance: { type: "string", description: "本章创作指导(可选,自然语言)" },
|
|
16
13
|
},
|
|
14
|
+
required: ["bookId"],
|
|
17
15
|
},
|
|
18
16
|
},
|
|
19
17
|
{
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
type: "
|
|
26
|
-
|
|
27
|
-
bookId: { type: "string", description: "书籍ID" },
|
|
28
|
-
chapterNumber: { type: "number", description: "章节号(不填则审计最新章)" },
|
|
29
|
-
},
|
|
30
|
-
required: ["bookId"],
|
|
18
|
+
name: "audit_chapter",
|
|
19
|
+
description: "审计指定章节。检查连续性、OOC、数值、伏笔等问题。",
|
|
20
|
+
parameters: {
|
|
21
|
+
type: "object",
|
|
22
|
+
properties: {
|
|
23
|
+
bookId: { type: "string", description: "书籍ID" },
|
|
24
|
+
chapterNumber: { type: "number", description: "章节号(不填则审计最新章)" },
|
|
31
25
|
},
|
|
26
|
+
required: ["bookId"],
|
|
32
27
|
},
|
|
33
28
|
},
|
|
34
29
|
{
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
type: "
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
chapterNumber: { type: "number", description: "章节号(不填则修订最新章)" },
|
|
44
|
-
mode: { type: "string", enum: ["polish", "rewrite", "rework"], description: "修订模式(默认rewrite)" },
|
|
45
|
-
},
|
|
46
|
-
required: ["bookId"],
|
|
30
|
+
name: "revise_chapter",
|
|
31
|
+
description: "修订指定章节。根据审计问题修正。支持三种模式:polish(润色)、rewrite(改写)、rework(重写)。",
|
|
32
|
+
parameters: {
|
|
33
|
+
type: "object",
|
|
34
|
+
properties: {
|
|
35
|
+
bookId: { type: "string", description: "书籍ID" },
|
|
36
|
+
chapterNumber: { type: "number", description: "章节号(不填则修订最新章)" },
|
|
37
|
+
mode: { type: "string", enum: ["polish", "rewrite", "rework"], description: "修订模式(默认rewrite)" },
|
|
47
38
|
},
|
|
39
|
+
required: ["bookId"],
|
|
48
40
|
},
|
|
49
41
|
},
|
|
50
42
|
{
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
type: "object",
|
|
57
|
-
properties: {},
|
|
58
|
-
},
|
|
43
|
+
name: "scan_market",
|
|
44
|
+
description: "扫描市场趋势。从平台排行榜获取实时数据并分析。",
|
|
45
|
+
parameters: {
|
|
46
|
+
type: "object",
|
|
47
|
+
properties: {},
|
|
59
48
|
},
|
|
60
49
|
},
|
|
61
50
|
{
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
type: "
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
platform: { type: "string", enum: ["tomato", "feilu", "qidian", "other"], description: "目标平台" },
|
|
72
|
-
brief: { type: "string", description: "创作简述/需求(自然语言)" },
|
|
73
|
-
},
|
|
74
|
-
required: ["title", "genre", "platform"],
|
|
51
|
+
name: "create_book",
|
|
52
|
+
description: "创建一本新书。生成世界观、卷纲、文风指南等基础设定。",
|
|
53
|
+
parameters: {
|
|
54
|
+
type: "object",
|
|
55
|
+
properties: {
|
|
56
|
+
title: { type: "string", description: "书名" },
|
|
57
|
+
genre: { type: "string", enum: ["xuanhuan", "xianxia", "urban", "game", "fanfic", "horror", "short", "other"], description: "题材" },
|
|
58
|
+
platform: { type: "string", enum: ["tomato", "feilu", "qidian", "other"], description: "目标平台" },
|
|
59
|
+
brief: { type: "string", description: "创作简述/需求(自然语言)" },
|
|
75
60
|
},
|
|
61
|
+
required: ["title", "genre", "platform"],
|
|
76
62
|
},
|
|
77
63
|
},
|
|
78
64
|
{
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
type: "
|
|
85
|
-
properties: {
|
|
86
|
-
bookId: { type: "string", description: "书籍ID" },
|
|
87
|
-
},
|
|
88
|
-
required: ["bookId"],
|
|
65
|
+
name: "get_book_status",
|
|
66
|
+
description: "获取书籍状态概览:章数、字数、最近章节审计情况。",
|
|
67
|
+
parameters: {
|
|
68
|
+
type: "object",
|
|
69
|
+
properties: {
|
|
70
|
+
bookId: { type: "string", description: "书籍ID" },
|
|
89
71
|
},
|
|
72
|
+
required: ["bookId"],
|
|
90
73
|
},
|
|
91
74
|
},
|
|
92
75
|
{
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
type: "
|
|
99
|
-
properties: {
|
|
100
|
-
bookId: { type: "string", description: "书籍ID" },
|
|
101
|
-
},
|
|
102
|
-
required: ["bookId"],
|
|
76
|
+
name: "read_truth_files",
|
|
77
|
+
description: "读取书籍的长期记忆(状态卡、资源账本、伏笔池)+ 世界观和卷纲。",
|
|
78
|
+
parameters: {
|
|
79
|
+
type: "object",
|
|
80
|
+
properties: {
|
|
81
|
+
bookId: { type: "string", description: "书籍ID" },
|
|
103
82
|
},
|
|
83
|
+
required: ["bookId"],
|
|
104
84
|
},
|
|
105
85
|
},
|
|
106
86
|
{
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
type: "object",
|
|
113
|
-
properties: {},
|
|
114
|
-
},
|
|
87
|
+
name: "list_books",
|
|
88
|
+
description: "列出所有书籍。",
|
|
89
|
+
parameters: {
|
|
90
|
+
type: "object",
|
|
91
|
+
properties: {},
|
|
115
92
|
},
|
|
116
93
|
},
|
|
117
94
|
{
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
type: "
|
|
124
|
-
|
|
125
|
-
bookId: { type: "string", description: "书籍ID" },
|
|
126
|
-
count: { type: "number", description: "连续写几章(默认1)" },
|
|
127
|
-
},
|
|
128
|
-
required: ["bookId"],
|
|
95
|
+
name: "write_full_pipeline",
|
|
96
|
+
description: "完整管线:写草稿 → 审计 → 自动修订(如需要)。一键完成。",
|
|
97
|
+
parameters: {
|
|
98
|
+
type: "object",
|
|
99
|
+
properties: {
|
|
100
|
+
bookId: { type: "string", description: "书籍ID" },
|
|
101
|
+
count: { type: "number", description: "连续写几章(默认1)" },
|
|
129
102
|
},
|
|
103
|
+
required: ["bookId"],
|
|
130
104
|
},
|
|
131
105
|
},
|
|
132
106
|
];
|
|
@@ -148,7 +122,7 @@ export async function runAgentLoop(config, instruction, options) {
|
|
|
148
122
|
| read_truth_files | 读取长期记忆(状态卡、资源账本、伏笔池)和设定(世界观、卷纲、本书规则) |
|
|
149
123
|
| create_book | 建书,生成世界观、卷纲、本书规则(自动加载题材 genre profile) |
|
|
150
124
|
| write_draft | 写一章草稿(自动加载 genre profile + book_rules) |
|
|
151
|
-
| audit_chapter | 审计章节(
|
|
125
|
+
| audit_chapter | 审计章节(19维度,按题材条件启用) |
|
|
152
126
|
| revise_chapter | 修订章节(支持 polish/rewrite/rework 三种模式) |
|
|
153
127
|
| write_full_pipeline | 完整管线:写 → 审 → 改(如需要) |
|
|
154
128
|
| scan_market | 扫描平台排行榜,分析市场趋势 |
|
|
@@ -177,84 +151,33 @@ export async function runAgentLoop(config, instruction, options) {
|
|
|
177
151
|
const maxTurns = options?.maxTurns ?? 20;
|
|
178
152
|
let lastAssistantMessage = "";
|
|
179
153
|
for (let turn = 0; turn < maxTurns; turn++) {
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
model: config.model,
|
|
183
|
-
messages,
|
|
184
|
-
tools: TOOLS,
|
|
185
|
-
tool_choice: "auto",
|
|
186
|
-
stream: true,
|
|
187
|
-
});
|
|
188
|
-
// Accumulate streamed response into a complete message
|
|
189
|
-
let content = "";
|
|
190
|
-
const toolCalls = new Map();
|
|
191
|
-
for await (const chunk of stream) {
|
|
192
|
-
const delta = chunk.choices[0]?.delta;
|
|
193
|
-
if (!delta)
|
|
194
|
-
continue;
|
|
195
|
-
if (delta.content) {
|
|
196
|
-
content += delta.content;
|
|
197
|
-
}
|
|
198
|
-
if (delta.tool_calls) {
|
|
199
|
-
for (const tc of delta.tool_calls) {
|
|
200
|
-
const existing = toolCalls.get(tc.index);
|
|
201
|
-
if (existing) {
|
|
202
|
-
if (tc.function?.arguments) {
|
|
203
|
-
existing.arguments += tc.function.arguments;
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
else {
|
|
207
|
-
toolCalls.set(tc.index, {
|
|
208
|
-
id: tc.id ?? "",
|
|
209
|
-
name: tc.function?.name ?? "",
|
|
210
|
-
arguments: tc.function?.arguments ?? "",
|
|
211
|
-
});
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
// Build the assistant message for history
|
|
217
|
-
const assembledToolCalls = toolCalls.size > 0
|
|
218
|
-
? [...toolCalls.entries()]
|
|
219
|
-
.sort(([a], [b]) => a - b)
|
|
220
|
-
.map(([, tc]) => ({
|
|
221
|
-
id: tc.id,
|
|
222
|
-
type: "function",
|
|
223
|
-
function: { name: tc.name, arguments: tc.arguments },
|
|
224
|
-
}))
|
|
225
|
-
: undefined;
|
|
154
|
+
const result = await chatWithTools(config.client, config.model, messages, TOOLS);
|
|
155
|
+
// Push assistant message to history
|
|
226
156
|
messages.push({
|
|
227
157
|
role: "assistant",
|
|
228
|
-
content: content || null,
|
|
229
|
-
...(
|
|
158
|
+
content: result.content || null,
|
|
159
|
+
...(result.toolCalls.length > 0 ? { toolCalls: result.toolCalls } : {}),
|
|
230
160
|
});
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
options?.onMessage?.(content);
|
|
161
|
+
if (result.content) {
|
|
162
|
+
lastAssistantMessage = result.content;
|
|
163
|
+
options?.onMessage?.(result.content);
|
|
235
164
|
}
|
|
236
165
|
// If no tool calls, we're done
|
|
237
|
-
if (
|
|
166
|
+
if (result.toolCalls.length === 0)
|
|
238
167
|
break;
|
|
239
|
-
}
|
|
240
168
|
// Execute tool calls
|
|
241
|
-
for (const toolCall of
|
|
242
|
-
const
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
let result;
|
|
169
|
+
for (const toolCall of result.toolCalls) {
|
|
170
|
+
const args = JSON.parse(toolCall.arguments);
|
|
171
|
+
options?.onToolCall?.(toolCall.name, args);
|
|
172
|
+
let toolResult;
|
|
246
173
|
try {
|
|
247
|
-
|
|
174
|
+
toolResult = await executeTool(pipeline, state, config, toolCall.name, args);
|
|
248
175
|
}
|
|
249
176
|
catch (e) {
|
|
250
|
-
|
|
177
|
+
toolResult = JSON.stringify({ error: String(e) });
|
|
251
178
|
}
|
|
252
|
-
options?.onToolResult?.(
|
|
253
|
-
messages.push({
|
|
254
|
-
role: "tool",
|
|
255
|
-
content: result,
|
|
256
|
-
tool_call_id: toolCall.id,
|
|
257
|
-
});
|
|
179
|
+
options?.onToolResult?.(toolCall.name, toolResult);
|
|
180
|
+
messages.push({ role: "tool", toolCallId: toolCall.id, content: toolResult });
|
|
258
181
|
}
|
|
259
182
|
}
|
|
260
183
|
return lastAssistantMessage;
|
|
@@ -296,7 +219,6 @@ async function executeTool(pipeline, state, config, name, args) {
|
|
|
296
219
|
createdAt: now,
|
|
297
220
|
updatedAt: now,
|
|
298
221
|
};
|
|
299
|
-
// If user provided a brief, create a pipeline with that context
|
|
300
222
|
const brief = args.brief;
|
|
301
223
|
if (brief) {
|
|
302
224
|
const contextPipeline = new PipelineRunner({ ...config, externalContext: brief });
|
|
@@ -340,6 +262,6 @@ async function executeTool(pipeline, state, config, name, args) {
|
|
|
340
262
|
return JSON.stringify({ error: `Unknown tool: ${name}` });
|
|
341
263
|
}
|
|
342
264
|
}
|
|
343
|
-
/** Export tool definitions so
|
|
265
|
+
/** Export tool definitions so external systems can reference them. */
|
|
344
266
|
export { TOOLS as AGENT_TOOLS };
|
|
345
267
|
//# sourceMappingURL=agent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/pipeline/agent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/pipeline/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import type { LLMClient } from "../llm/provider.js";
|
|
2
2
|
import type { BookConfig } from "../models/book.js";
|
|
3
3
|
import type { ChapterMeta } from "../models/chapter.js";
|
|
4
4
|
import type { NotifyChannel } from "../models/project.js";
|
|
@@ -7,7 +7,7 @@ import type { RadarSource } from "../agents/radar-source.js";
|
|
|
7
7
|
import type { AuditResult } from "../agents/continuity.js";
|
|
8
8
|
import type { RadarResult } from "../agents/radar.js";
|
|
9
9
|
export interface PipelineConfig {
|
|
10
|
-
readonly client:
|
|
10
|
+
readonly client: LLMClient;
|
|
11
11
|
readonly model: string;
|
|
12
12
|
readonly projectRoot: string;
|
|
13
13
|
readonly notifyChannels?: ReadonlyArray<NotifyChannel>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/pipeline/runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/pipeline/runner.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@actalk/inkos-core",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.4",
|
|
4
4
|
"description": "InkOS core: models, agents, pipeline, LLM integration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -21,7 +21,14 @@
|
|
|
21
21
|
"url": "https://github.com/Narcooo/inkos.git",
|
|
22
22
|
"directory": "packages/core"
|
|
23
23
|
},
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "tsc",
|
|
26
|
+
"dev": "tsc --watch",
|
|
27
|
+
"test": "vitest run",
|
|
28
|
+
"typecheck": "tsc --noEmit"
|
|
29
|
+
},
|
|
24
30
|
"dependencies": {
|
|
31
|
+
"@anthropic-ai/sdk": "^0.78.0",
|
|
25
32
|
"js-yaml": "^4.1.1",
|
|
26
33
|
"openai": "^4.80.0",
|
|
27
34
|
"zod": "^3.24.0"
|
|
@@ -30,11 +37,5 @@
|
|
|
30
37
|
"@types/js-yaml": "^4.0.9",
|
|
31
38
|
"typescript": "^5.8.0",
|
|
32
39
|
"vitest": "^3.0.0"
|
|
33
|
-
},
|
|
34
|
-
"scripts": {
|
|
35
|
-
"build": "tsc",
|
|
36
|
-
"dev": "tsc --watch",
|
|
37
|
-
"test": "vitest run",
|
|
38
|
-
"typecheck": "tsc --noEmit"
|
|
39
40
|
}
|
|
40
|
-
}
|
|
41
|
+
}
|
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 InkOS Contributors
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|