@actalk/inkos-core 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/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 +41 -2
- package/dist/llm/provider.d.ts.map +1 -1
- package/dist/llm/provider.js +235 -9
- package/dist/llm/provider.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 +2 -1
package/dist/agents/base.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type { LLMMessage, LLMResponse } from "../llm/provider.js";
|
|
1
|
+
import type { LLMClient, LLMMessage, LLMResponse } from "../llm/provider.js";
|
|
3
2
|
export interface AgentContext {
|
|
4
|
-
readonly client:
|
|
3
|
+
readonly client: LLMClient;
|
|
5
4
|
readonly model: string;
|
|
6
5
|
readonly projectRoot: string;
|
|
7
6
|
readonly bookId?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/agents/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/agents/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAG7E,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,8BAAsB,SAAS;IAC7B,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;gBAEzB,GAAG,EAAE,YAAY;cAIb,IAAI,CAClB,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,EACnC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GACvE,OAAO,CAAC,WAAW,CAAC;IAIvB,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC;CAC7B"}
|
package/dist/agents/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/agents/base.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/agents/base.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AASpD,MAAM,OAAgB,SAAS;IACV,GAAG,CAAe;IAErC,YAAY,GAAiB;QAC3B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAES,KAAK,CAAC,IAAI,CAClB,QAAmC,EACnC,OAAwE;QAExE,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;CAGF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export { type ProjectConfig, type LLMConfig, type NotifyChannel, ProjectConfigSc
|
|
|
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 { createLLMClient, chatCompletion, type LLMResponse, type LLMMessage } from "./llm/provider.js";
|
|
7
|
+
export { createLLMClient, chatCompletion, chatWithTools, type LLMClient, type LLMResponse, type LLMMessage, type ToolDefinition, type ToolCall, type AgentMessage, type ChatWithToolsResult } from "./llm/provider.js";
|
|
8
8
|
export { BaseAgent, type AgentContext } from "./agents/base.js";
|
|
9
9
|
export { ArchitectAgent, type ArchitectOutput } from "./agents/architect.js";
|
|
10
10
|
export { WriterAgent, type WriteChapterInput, type WriteChapterOutput } from "./agents/writer.js";
|
|
@@ -16,7 +16,7 @@ export { readGenreProfile, readBookRules, listAvailableGenres, getBuiltinGenresD
|
|
|
16
16
|
export { buildWriterSystemPrompt } from "./agents/writer-prompts.js";
|
|
17
17
|
export { PipelineRunner, type PipelineConfig, type ChapterPipelineResult, type DraftResult, type ReviseResult, type TruthFiles, type BookStatusInfo } from "./pipeline/runner.js";
|
|
18
18
|
export { Scheduler, type SchedulerConfig } from "./pipeline/scheduler.js";
|
|
19
|
-
export { runAgentLoop, AGENT_TOOLS, type AgentLoopOptions } from "./pipeline/agent.js";
|
|
19
|
+
export { runAgentLoop, AGENT_TOOLS as AGENT_TOOLS, type AgentLoopOptions } from "./pipeline/agent.js";
|
|
20
20
|
export { StateManager } from "./state/manager.js";
|
|
21
21
|
export { dispatchNotification, type NotifyMessage } from "./notify/dispatcher.js";
|
|
22
22
|
export { sendTelegram, type TelegramConfig } from "./notify/telegram.js";
|
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;AACnI,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAClI,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9H,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG/G,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
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;AACnI,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAClI,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9H,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG/G,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGvN,OAAO,EAAE,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAClG,OAAO,EAAE,iBAAiB,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC9F,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAE,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAE,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;AAGrE,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,qBAAqB,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAClL,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,WAAW,IAAI,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGtG,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,OAAO,EAAE,oBAAoB,EAAE,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,7 @@ export { ProjectConfigSchema, LLMConfigSchema } 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
|
|
8
|
-
export { createLLMClient, chatCompletion } from "./llm/provider.js";
|
|
8
|
+
export { createLLMClient, chatCompletion, chatWithTools } from "./llm/provider.js";
|
|
9
9
|
// Agents
|
|
10
10
|
export { BaseAgent } from "./agents/base.js";
|
|
11
11
|
export { ArchitectAgent } from "./agents/architect.js";
|
|
@@ -19,7 +19,7 @@ export { buildWriterSystemPrompt } from "./agents/writer-prompts.js";
|
|
|
19
19
|
// Pipeline
|
|
20
20
|
export { PipelineRunner } from "./pipeline/runner.js";
|
|
21
21
|
export { Scheduler } from "./pipeline/scheduler.js";
|
|
22
|
-
export { runAgentLoop, AGENT_TOOLS } from "./pipeline/agent.js";
|
|
22
|
+
export { runAgentLoop, AGENT_TOOLS as AGENT_TOOLS } from "./pipeline/agent.js";
|
|
23
23
|
// State
|
|
24
24
|
export { StateManager } from "./state/manager.js";
|
|
25
25
|
// Notify
|
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,EAA0D,mBAAmB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEnI,OAAO,EAA8C,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9H,OAAO,EAAwC,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE/G,MAAM;AACN,OAAO,EAAE,eAAe,EAAE,cAAc,
|
|
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,EAA0D,mBAAmB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEnI,OAAO,EAA8C,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9H,OAAO,EAAwC,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE/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;AAErE,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;AAEtG,QAAQ;AACR,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,SAAS;AACT,OAAO,EAAE,oBAAoB,EAAsB,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAuB,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAqB,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAyB,MAAM,yBAAyB,CAAC"}
|
package/dist/llm/provider.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import OpenAI from "openai";
|
|
2
|
+
import Anthropic from "@anthropic-ai/sdk";
|
|
2
3
|
import type { LLMConfig } from "../models/project.js";
|
|
3
4
|
export interface LLMResponse {
|
|
4
5
|
readonly content: string;
|
|
@@ -12,9 +13,47 @@ export interface LLMMessage {
|
|
|
12
13
|
readonly role: "system" | "user" | "assistant";
|
|
13
14
|
readonly content: string;
|
|
14
15
|
}
|
|
15
|
-
export
|
|
16
|
-
|
|
16
|
+
export interface LLMClient {
|
|
17
|
+
readonly provider: "openai" | "anthropic";
|
|
18
|
+
readonly _openai?: OpenAI;
|
|
19
|
+
readonly _anthropic?: Anthropic;
|
|
20
|
+
}
|
|
21
|
+
export interface ToolDefinition {
|
|
22
|
+
readonly name: string;
|
|
23
|
+
readonly description: string;
|
|
24
|
+
readonly parameters: Record<string, unknown>;
|
|
25
|
+
}
|
|
26
|
+
export interface ToolCall {
|
|
27
|
+
readonly id: string;
|
|
28
|
+
readonly name: string;
|
|
29
|
+
readonly arguments: string;
|
|
30
|
+
}
|
|
31
|
+
export type AgentMessage = {
|
|
32
|
+
readonly role: "system";
|
|
33
|
+
readonly content: string;
|
|
34
|
+
} | {
|
|
35
|
+
readonly role: "user";
|
|
36
|
+
readonly content: string;
|
|
37
|
+
} | {
|
|
38
|
+
readonly role: "assistant";
|
|
39
|
+
readonly content: string | null;
|
|
40
|
+
readonly toolCalls?: ReadonlyArray<ToolCall>;
|
|
41
|
+
} | {
|
|
42
|
+
readonly role: "tool";
|
|
43
|
+
readonly toolCallId: string;
|
|
44
|
+
readonly content: string;
|
|
45
|
+
};
|
|
46
|
+
export interface ChatWithToolsResult {
|
|
47
|
+
readonly content: string;
|
|
48
|
+
readonly toolCalls: ReadonlyArray<ToolCall>;
|
|
49
|
+
}
|
|
50
|
+
export declare function createLLMClient(config: LLMConfig): LLMClient;
|
|
51
|
+
export declare function chatCompletion(client: LLMClient, model: string, messages: ReadonlyArray<LLMMessage>, options?: {
|
|
17
52
|
readonly temperature?: number;
|
|
18
53
|
readonly maxTokens?: number;
|
|
19
54
|
}): Promise<LLMResponse>;
|
|
55
|
+
export declare function chatWithTools(client: LLMClient, model: string, messages: ReadonlyArray<AgentMessage>, tools: ReadonlyArray<ToolDefinition>, options?: {
|
|
56
|
+
readonly temperature?: number;
|
|
57
|
+
readonly maxTokens?: number;
|
|
58
|
+
}): Promise<ChatWithToolsResult>;
|
|
20
59
|
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/llm/provider.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/llm/provider.ts"],"names":[],"mappings":"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"}
|
package/dist/llm/provider.js
CHANGED
|
@@ -1,12 +1,37 @@
|
|
|
1
1
|
import OpenAI from "openai";
|
|
2
|
+
import Anthropic from "@anthropic-ai/sdk";
|
|
3
|
+
// === Factory ===
|
|
2
4
|
export function createLLMClient(config) {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
baseURL
|
|
6
|
-
|
|
5
|
+
if (config.provider === "anthropic") {
|
|
6
|
+
// Anthropic SDK appends /v1/ internally — strip if user included it
|
|
7
|
+
const baseURL = config.baseUrl.replace(/\/v1\/?$/, "");
|
|
8
|
+
return {
|
|
9
|
+
provider: "anthropic",
|
|
10
|
+
_anthropic: new Anthropic({ apiKey: config.apiKey, baseURL }),
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
// openai or custom — both use OpenAI SDK
|
|
14
|
+
return {
|
|
15
|
+
provider: "openai",
|
|
16
|
+
_openai: new OpenAI({ apiKey: config.apiKey, baseURL: config.baseUrl }),
|
|
17
|
+
};
|
|
7
18
|
}
|
|
19
|
+
// === Simple Chat (used by all agents via BaseAgent.chat()) ===
|
|
8
20
|
export async function chatCompletion(client, model, messages, options) {
|
|
9
|
-
|
|
21
|
+
if (client.provider === "anthropic") {
|
|
22
|
+
return chatCompletionAnthropic(client._anthropic, model, messages, options);
|
|
23
|
+
}
|
|
24
|
+
return chatCompletionOpenAI(client._openai, model, messages, options);
|
|
25
|
+
}
|
|
26
|
+
// === Tool-calling Chat (used by agent loop) ===
|
|
27
|
+
export async function chatWithTools(client, model, messages, tools, options) {
|
|
28
|
+
if (client.provider === "anthropic") {
|
|
29
|
+
return chatWithToolsAnthropic(client._anthropic, model, messages, tools, options);
|
|
30
|
+
}
|
|
31
|
+
return chatWithToolsOpenAI(client._openai, model, messages, tools, options);
|
|
32
|
+
}
|
|
33
|
+
// === OpenAI Implementation ===
|
|
34
|
+
async function chatCompletionOpenAI(client, model, messages, options) {
|
|
10
35
|
const stream = await client.chat.completions.create({
|
|
11
36
|
model,
|
|
12
37
|
messages: messages.map((m) => ({ role: m.role, content: m.content })),
|
|
@@ -20,9 +45,8 @@ export async function chatCompletion(client, model, messages, options) {
|
|
|
20
45
|
let totalTokens = 0;
|
|
21
46
|
for await (const chunk of stream) {
|
|
22
47
|
const delta = chunk.choices[0]?.delta?.content;
|
|
23
|
-
if (delta)
|
|
48
|
+
if (delta)
|
|
24
49
|
chunks.push(delta);
|
|
25
|
-
}
|
|
26
50
|
if (chunk.usage) {
|
|
27
51
|
promptTokens = chunk.usage.prompt_tokens ?? 0;
|
|
28
52
|
completionTokens = chunk.usage.completion_tokens ?? 0;
|
|
@@ -30,12 +54,214 @@ export async function chatCompletion(client, model, messages, options) {
|
|
|
30
54
|
}
|
|
31
55
|
}
|
|
32
56
|
const content = chunks.join("");
|
|
33
|
-
if (!content)
|
|
57
|
+
if (!content)
|
|
34
58
|
throw new Error("LLM returned empty response");
|
|
59
|
+
return { content, usage: { promptTokens, completionTokens, totalTokens } };
|
|
60
|
+
}
|
|
61
|
+
async function chatWithToolsOpenAI(client, model, messages, tools, options) {
|
|
62
|
+
const openaiMessages = messages.map(agentMessageToOpenAI);
|
|
63
|
+
const openaiTools = tools.map((t) => ({
|
|
64
|
+
type: "function",
|
|
65
|
+
function: { name: t.name, description: t.description, parameters: t.parameters },
|
|
66
|
+
}));
|
|
67
|
+
const stream = await client.chat.completions.create({
|
|
68
|
+
model,
|
|
69
|
+
messages: openaiMessages,
|
|
70
|
+
tools: openaiTools,
|
|
71
|
+
tool_choice: "auto",
|
|
72
|
+
stream: true,
|
|
73
|
+
});
|
|
74
|
+
let content = "";
|
|
75
|
+
const toolCallMap = new Map();
|
|
76
|
+
for await (const chunk of stream) {
|
|
77
|
+
const delta = chunk.choices[0]?.delta;
|
|
78
|
+
if (!delta)
|
|
79
|
+
continue;
|
|
80
|
+
if (delta.content)
|
|
81
|
+
content += delta.content;
|
|
82
|
+
if (delta.tool_calls) {
|
|
83
|
+
for (const tc of delta.tool_calls) {
|
|
84
|
+
const existing = toolCallMap.get(tc.index);
|
|
85
|
+
if (existing) {
|
|
86
|
+
if (tc.function?.arguments)
|
|
87
|
+
existing.arguments += tc.function.arguments;
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
toolCallMap.set(tc.index, {
|
|
91
|
+
id: tc.id ?? "",
|
|
92
|
+
name: tc.function?.name ?? "",
|
|
93
|
+
arguments: tc.function?.arguments ?? "",
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
const toolCalls = [...toolCallMap.entries()]
|
|
100
|
+
.sort(([a], [b]) => a - b)
|
|
101
|
+
.map(([, tc]) => ({ id: tc.id, name: tc.name, arguments: tc.arguments }));
|
|
102
|
+
return { content, toolCalls };
|
|
103
|
+
}
|
|
104
|
+
function agentMessageToOpenAI(msg) {
|
|
105
|
+
if (msg.role === "system")
|
|
106
|
+
return { role: "system", content: msg.content };
|
|
107
|
+
if (msg.role === "user")
|
|
108
|
+
return { role: "user", content: msg.content };
|
|
109
|
+
if (msg.role === "tool")
|
|
110
|
+
return { role: "tool", content: msg.content, tool_call_id: msg.toolCallId };
|
|
111
|
+
// assistant
|
|
112
|
+
if (msg.toolCalls && msg.toolCalls.length > 0) {
|
|
113
|
+
return {
|
|
114
|
+
role: "assistant",
|
|
115
|
+
content: msg.content,
|
|
116
|
+
tool_calls: msg.toolCalls.map((tc) => ({
|
|
117
|
+
id: tc.id,
|
|
118
|
+
type: "function",
|
|
119
|
+
function: { name: tc.name, arguments: tc.arguments },
|
|
120
|
+
})),
|
|
121
|
+
};
|
|
35
122
|
}
|
|
123
|
+
return { role: "assistant", content: msg.content };
|
|
124
|
+
}
|
|
125
|
+
// === Anthropic Implementation ===
|
|
126
|
+
async function chatCompletionAnthropic(client, model, messages, options) {
|
|
127
|
+
const systemText = messages
|
|
128
|
+
.filter((m) => m.role === "system")
|
|
129
|
+
.map((m) => m.content)
|
|
130
|
+
.join("\n\n");
|
|
131
|
+
const nonSystem = messages.filter((m) => m.role !== "system");
|
|
132
|
+
const stream = await client.messages.create({
|
|
133
|
+
model,
|
|
134
|
+
...(systemText ? { system: systemText } : {}),
|
|
135
|
+
messages: nonSystem.map((m) => ({
|
|
136
|
+
role: m.role,
|
|
137
|
+
content: m.content,
|
|
138
|
+
})),
|
|
139
|
+
temperature: options?.temperature ?? 0.7,
|
|
140
|
+
max_tokens: options?.maxTokens ?? 8192,
|
|
141
|
+
stream: true,
|
|
142
|
+
});
|
|
143
|
+
const chunks = [];
|
|
144
|
+
let inputTokens = 0;
|
|
145
|
+
let outputTokens = 0;
|
|
146
|
+
for await (const event of stream) {
|
|
147
|
+
if (event.type === "content_block_delta" && event.delta.type === "text_delta") {
|
|
148
|
+
chunks.push(event.delta.text);
|
|
149
|
+
}
|
|
150
|
+
if (event.type === "message_start") {
|
|
151
|
+
inputTokens = event.message.usage?.input_tokens ?? 0;
|
|
152
|
+
}
|
|
153
|
+
if (event.type === "message_delta") {
|
|
154
|
+
outputTokens = (event.usage?.output_tokens) ?? 0;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
const content = chunks.join("");
|
|
158
|
+
if (!content)
|
|
159
|
+
throw new Error("LLM returned empty response");
|
|
36
160
|
return {
|
|
37
161
|
content,
|
|
38
|
-
usage: {
|
|
162
|
+
usage: {
|
|
163
|
+
promptTokens: inputTokens,
|
|
164
|
+
completionTokens: outputTokens,
|
|
165
|
+
totalTokens: inputTokens + outputTokens,
|
|
166
|
+
},
|
|
39
167
|
};
|
|
40
168
|
}
|
|
169
|
+
async function chatWithToolsAnthropic(client, model, messages, tools, options) {
|
|
170
|
+
const systemText = messages
|
|
171
|
+
.filter((m) => m.role === "system")
|
|
172
|
+
.map((m) => m.content)
|
|
173
|
+
.join("\n\n");
|
|
174
|
+
const nonSystem = messages.filter((m) => m.role !== "system");
|
|
175
|
+
const anthropicMessages = agentMessagesToAnthropic(nonSystem);
|
|
176
|
+
const anthropicTools = tools.map((t) => ({
|
|
177
|
+
name: t.name,
|
|
178
|
+
description: t.description,
|
|
179
|
+
input_schema: t.parameters,
|
|
180
|
+
}));
|
|
181
|
+
const stream = await client.messages.create({
|
|
182
|
+
model,
|
|
183
|
+
...(systemText ? { system: systemText } : {}),
|
|
184
|
+
messages: anthropicMessages,
|
|
185
|
+
tools: anthropicTools,
|
|
186
|
+
max_tokens: options?.maxTokens ?? 8192,
|
|
187
|
+
stream: true,
|
|
188
|
+
});
|
|
189
|
+
let content = "";
|
|
190
|
+
const toolCalls = [];
|
|
191
|
+
let currentBlock = null;
|
|
192
|
+
for await (const event of stream) {
|
|
193
|
+
if (event.type === "content_block_start" && event.content_block.type === "tool_use") {
|
|
194
|
+
currentBlock = {
|
|
195
|
+
id: event.content_block.id,
|
|
196
|
+
name: event.content_block.name,
|
|
197
|
+
input: "",
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
if (event.type === "content_block_delta") {
|
|
201
|
+
if (event.delta.type === "text_delta") {
|
|
202
|
+
content += event.delta.text;
|
|
203
|
+
}
|
|
204
|
+
if (event.delta.type === "input_json_delta" && currentBlock) {
|
|
205
|
+
currentBlock.input += event.delta.partial_json;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
if (event.type === "content_block_stop" && currentBlock) {
|
|
209
|
+
toolCalls.push({
|
|
210
|
+
id: currentBlock.id,
|
|
211
|
+
name: currentBlock.name,
|
|
212
|
+
arguments: currentBlock.input,
|
|
213
|
+
});
|
|
214
|
+
currentBlock = null;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
return { content, toolCalls };
|
|
218
|
+
}
|
|
219
|
+
function agentMessagesToAnthropic(messages) {
|
|
220
|
+
const result = [];
|
|
221
|
+
for (const msg of messages) {
|
|
222
|
+
if (msg.role === "system")
|
|
223
|
+
continue;
|
|
224
|
+
if (msg.role === "user") {
|
|
225
|
+
result.push({ role: "user", content: msg.content });
|
|
226
|
+
continue;
|
|
227
|
+
}
|
|
228
|
+
if (msg.role === "assistant") {
|
|
229
|
+
const blocks = [];
|
|
230
|
+
if (msg.content) {
|
|
231
|
+
blocks.push({ type: "text", text: msg.content });
|
|
232
|
+
}
|
|
233
|
+
if (msg.toolCalls) {
|
|
234
|
+
for (const tc of msg.toolCalls) {
|
|
235
|
+
blocks.push({
|
|
236
|
+
type: "tool_use",
|
|
237
|
+
id: tc.id,
|
|
238
|
+
name: tc.name,
|
|
239
|
+
input: JSON.parse(tc.arguments),
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
if (blocks.length === 0) {
|
|
244
|
+
blocks.push({ type: "text", text: "" });
|
|
245
|
+
}
|
|
246
|
+
result.push({ role: "assistant", content: blocks });
|
|
247
|
+
continue;
|
|
248
|
+
}
|
|
249
|
+
if (msg.role === "tool") {
|
|
250
|
+
const toolResult = {
|
|
251
|
+
type: "tool_result",
|
|
252
|
+
tool_use_id: msg.toolCallId,
|
|
253
|
+
content: msg.content,
|
|
254
|
+
};
|
|
255
|
+
// Merge consecutive tool results into one user message (Anthropic requires alternating roles)
|
|
256
|
+
const prev = result[result.length - 1];
|
|
257
|
+
if (prev && prev.role === "user" && Array.isArray(prev.content)) {
|
|
258
|
+
prev.content.push(toolResult);
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
result.push({ role: "user", content: [toolResult] });
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
return result;
|
|
266
|
+
}
|
|
41
267
|
//# sourceMappingURL=provider.js.map
|
package/dist/llm/provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/llm/provider.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAiB5B,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,OAAO,IAAI,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAc,EACd,KAAa,EACb,QAAmC,EACnC,OAGC;IAED,gEAAgE;IAChE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QAClD,KAAK;QACL,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACrE,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,GAAG;QACxC,UAAU,EAAE,OAAO,EAAE,SAAS,IAAI,IAAI;QACtC,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;IAEH,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC;QAC/C,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC;YAC9C,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,CAAC;YACtD,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IAED,OAAO;QACL,OAAO;QACP,KAAK,EAAE,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE;KACvD,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/llm/provider.ts"],"names":[],"mappings":"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"}
|
package/dist/pipeline/agent.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ToolDefinition } from "../llm/provider.js";
|
|
2
2
|
import { type PipelineConfig } from "./runner.js";
|
|
3
|
-
/** Tool definitions for the agent loop
|
|
4
|
-
declare const TOOLS:
|
|
3
|
+
/** Tool definitions for the agent loop. */
|
|
4
|
+
declare const TOOLS: ReadonlyArray<ToolDefinition>;
|
|
5
5
|
export interface AgentLoopOptions {
|
|
6
6
|
readonly onToolCall?: (name: string, args: Record<string, unknown>) => void;
|
|
7
7
|
readonly onToolResult?: (name: string, result: string) => void;
|
|
@@ -9,6 +9,6 @@ export interface AgentLoopOptions {
|
|
|
9
9
|
readonly maxTurns?: number;
|
|
10
10
|
}
|
|
11
11
|
export declare function runAgentLoop(config: PipelineConfig, instruction: string, options?: AgentLoopOptions): Promise<string>;
|
|
12
|
-
/** Export tool definitions so
|
|
12
|
+
/** Export tool definitions so external systems can reference them. */
|
|
13
13
|
export { TOOLS as AGENT_TOOLS };
|
|
14
14
|
//# sourceMappingURL=agent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/pipeline/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/pipeline/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC3F,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAIlE,2CAA2C;AAC3C,QAAA,MAAM,KAAK,EAAE,aAAa,CAAC,cAAc,CAsGxC,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC5E,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,MAAM,CAAC,CAqFjB;AA+GD,sEAAsE;AACtE,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,CAAC"}
|
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":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAK1D,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAErE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAK7D,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,yBAAyB,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACvD,QAAQ,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IACnD,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc,CAAC;CAC9C;AAGD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;CAC/C;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;gBAE5B,MAAM,EAAE,cAAc;IAKlC,OAAO,CAAC,QAAQ;YASF,gBAAgB;IASxB,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC;IAKhC,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/C,yFAAyF;IACnF,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAoDxE,0EAA0E;IACpE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG;QAAE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;IA6BnH,sEAAsE;IAChE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,UAAsB,GAAG,OAAO,CAAC,YAAY,CAAC;IAwF9G,uCAAuC;IACjC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAwBzD,gCAAgC;IAC1B,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAuBtD,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;YASxD,uBAAuB;YA4IvB,kBAAkB;CAcjC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@actalk/inkos-core",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "InkOS core: models, agents, pipeline, LLM integration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
"directory": "packages/core"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
+
"@anthropic-ai/sdk": "^0.78.0",
|
|
25
26
|
"js-yaml": "^4.1.1",
|
|
26
27
|
"openai": "^4.80.0",
|
|
27
28
|
"zod": "^3.24.0"
|