@actalk/inkos-core 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/agent-session.d.ts +48 -0
- package/dist/agent/agent-session.d.ts.map +1 -0
- package/dist/agent/agent-session.js +229 -0
- package/dist/agent/agent-session.js.map +1 -0
- package/dist/agent/agent-system-prompt.d.ts +2 -0
- package/dist/agent/agent-system-prompt.d.ts.map +1 -0
- package/dist/agent/agent-system-prompt.js +97 -0
- package/dist/agent/agent-system-prompt.js.map +1 -0
- package/dist/agent/agent-tools.d.ts +30 -0
- package/dist/agent/agent-tools.d.ts.map +1 -0
- package/dist/agent/agent-tools.js +280 -0
- package/dist/agent/agent-tools.js.map +1 -0
- package/dist/agent/index.d.ts +4 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +4 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agents/architect.js +5 -5
- package/dist/agents/architect.js.map +1 -1
- package/dist/agents/chapter-analyzer.d.ts.map +1 -1
- package/dist/agents/chapter-analyzer.js +32 -4
- package/dist/agents/chapter-analyzer.js.map +1 -1
- package/dist/agents/consolidator.js +1 -1
- package/dist/agents/consolidator.js.map +1 -1
- package/dist/agents/continuity.js +1 -1
- package/dist/agents/continuity.js.map +1 -1
- package/dist/agents/fanfic-canon-importer.js +1 -1
- package/dist/agents/fanfic-canon-importer.js.map +1 -1
- package/dist/agents/foundation-reviewer.js +1 -1
- package/dist/agents/foundation-reviewer.js.map +1 -1
- package/dist/agents/radar.js +1 -1
- package/dist/agents/radar.js.map +1 -1
- package/dist/agents/settler-delta-parser.d.ts.map +1 -1
- package/dist/agents/settler-delta-parser.js +6 -1
- package/dist/agents/settler-delta-parser.js.map +1 -1
- package/dist/agents/state-validator.js +21 -3
- package/dist/agents/state-validator.js.map +1 -1
- package/dist/agents/writer-prompts.js +13 -13
- package/dist/agents/writer-prompts.js.map +1 -1
- package/dist/agents/writer.js +1 -1
- package/dist/agents/writer.js.map +1 -1
- package/dist/index.d.ts +9 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -2
- package/dist/index.js.map +1 -1
- package/dist/interaction/book-session-store.d.ts +6 -0
- package/dist/interaction/book-session-store.d.ts.map +1 -0
- package/dist/interaction/book-session-store.js +59 -0
- package/dist/interaction/book-session-store.js.map +1 -0
- package/dist/interaction/draft-directive-parser.d.ts +38 -0
- package/dist/interaction/draft-directive-parser.d.ts.map +1 -0
- package/dist/interaction/draft-directive-parser.js +208 -0
- package/dist/interaction/draft-directive-parser.js.map +1 -0
- package/dist/interaction/nl-router.d.ts +1 -0
- package/dist/interaction/nl-router.d.ts.map +1 -1
- package/dist/interaction/nl-router.js +1 -1
- package/dist/interaction/nl-router.js.map +1 -1
- package/dist/interaction/project-session-store.d.ts +3 -1
- package/dist/interaction/project-session-store.d.ts.map +1 -1
- package/dist/interaction/project-session-store.js +19 -1
- package/dist/interaction/project-session-store.js.map +1 -1
- package/dist/interaction/project-tools.d.ts +2 -0
- package/dist/interaction/project-tools.d.ts.map +1 -1
- package/dist/interaction/project-tools.js +186 -126
- package/dist/interaction/project-tools.js.map +1 -1
- package/dist/interaction/runtime.d.ts.map +1 -1
- package/dist/interaction/runtime.js +14 -1
- package/dist/interaction/runtime.js.map +1 -1
- package/dist/interaction/session.d.ts +725 -6
- package/dist/interaction/session.d.ts.map +1 -1
- package/dist/interaction/session.js +65 -0
- package/dist/interaction/session.js.map +1 -1
- package/dist/llm/config-migration.d.ts +5 -0
- package/dist/llm/config-migration.d.ts.map +1 -0
- package/dist/llm/config-migration.js +51 -0
- package/dist/llm/config-migration.js.map +1 -0
- package/dist/llm/provider.d.ts +4 -4
- package/dist/llm/provider.d.ts.map +1 -1
- package/dist/llm/provider.js +472 -540
- package/dist/llm/provider.js.map +1 -1
- package/dist/llm/secrets.d.ts +9 -0
- package/dist/llm/secrets.d.ts.map +1 -0
- package/dist/llm/secrets.js +31 -0
- package/dist/llm/secrets.js.map +1 -0
- package/dist/llm/service-presets.d.ts +37 -0
- package/dist/llm/service-presets.d.ts.map +1 -0
- package/dist/llm/service-presets.js +123 -0
- package/dist/llm/service-presets.js.map +1 -0
- package/dist/llm/service-resolver.d.ts +10 -0
- package/dist/llm/service-resolver.d.ts.map +1 -0
- package/dist/llm/service-resolver.js +46 -0
- package/dist/llm/service-resolver.js.map +1 -0
- package/dist/models/project.d.ts +158 -30
- package/dist/models/project.d.ts.map +1 -1
- package/dist/models/project.js +13 -0
- package/dist/models/project.js.map +1 -1
- package/dist/pipeline/chapter-persistence.d.ts.map +1 -1
- package/dist/pipeline/chapter-persistence.js +5 -1
- package/dist/pipeline/chapter-persistence.js.map +1 -1
- package/dist/pipeline/chapter-truth-validation.d.ts.map +1 -1
- package/dist/pipeline/chapter-truth-validation.js +27 -1
- package/dist/pipeline/chapter-truth-validation.js.map +1 -1
- package/dist/pipeline/runner.d.ts.map +1 -1
- package/dist/pipeline/runner.js +9 -3
- package/dist/pipeline/runner.js.map +1 -1
- package/dist/state/manager.d.ts +2 -0
- package/dist/state/manager.d.ts.map +1 -1
- package/dist/state/manager.js +10 -3
- package/dist/state/manager.js.map +1 -1
- package/dist/state/state-validator.d.ts.map +1 -1
- package/dist/state/state-validator.js +44 -33
- package/dist/state/state-validator.js.map +1 -1
- package/dist/utils/config-loader.d.ts.map +1 -1
- package/dist/utils/config-loader.js +149 -32
- package/dist/utils/config-loader.js.map +1 -1
- package/package.json +4 -3
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { AgentEvent } from "@mariozechner/pi-agent-core";
|
|
2
|
+
import type { Model, Api } from "@mariozechner/pi-ai";
|
|
3
|
+
import type { PipelineRunner } from "../pipeline/runner.js";
|
|
4
|
+
export interface AgentSessionConfig {
|
|
5
|
+
/** Unique session identifier (typically the BookSession id). */
|
|
6
|
+
sessionId: string;
|
|
7
|
+
/** Book ID, or null if in "new book" mode. */
|
|
8
|
+
bookId: string | null;
|
|
9
|
+
/** Language for the system prompt. */
|
|
10
|
+
language: string;
|
|
11
|
+
/** PipelineRunner for sub-agent tool delegation. */
|
|
12
|
+
pipeline: PipelineRunner;
|
|
13
|
+
/** Project root directory (books/ lives under this). */
|
|
14
|
+
projectRoot: string;
|
|
15
|
+
/** pi-ai Model to use, or provider+modelId to resolve via getModel. */
|
|
16
|
+
model: Model<Api> | {
|
|
17
|
+
provider: string;
|
|
18
|
+
modelId: string;
|
|
19
|
+
};
|
|
20
|
+
/** Optional API key. When omitted, falls back to env-based key lookup. */
|
|
21
|
+
apiKey?: string;
|
|
22
|
+
/** Optional listener for streaming events (for SSE forwarding). */
|
|
23
|
+
onEvent?: (event: AgentEvent) => void;
|
|
24
|
+
}
|
|
25
|
+
export interface AgentSessionResult {
|
|
26
|
+
/** Extracted text from the final assistant message. */
|
|
27
|
+
responseText: string;
|
|
28
|
+
/** Full conversation history for persistence. */
|
|
29
|
+
messages: Array<{
|
|
30
|
+
role: string;
|
|
31
|
+
content: string;
|
|
32
|
+
thinking?: string;
|
|
33
|
+
}>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Run a single conversation turn within a cached Agent session.
|
|
37
|
+
*
|
|
38
|
+
* If the session already exists in the cache, reuses the Agent (with its full
|
|
39
|
+
* in-memory message history including tool calls). Otherwise creates a new
|
|
40
|
+
* Agent, optionally restoring messages from `initialMessages`.
|
|
41
|
+
*/
|
|
42
|
+
export declare function runAgentSession(config: AgentSessionConfig, userMessage: string, initialMessages?: Array<{
|
|
43
|
+
role: string;
|
|
44
|
+
content: string;
|
|
45
|
+
}>): Promise<AgentSessionResult>;
|
|
46
|
+
/** Manually evict a cached Agent session. */
|
|
47
|
+
export declare function evictAgentCache(sessionId: string): boolean;
|
|
48
|
+
//# sourceMappingURL=agent-session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-session.d.ts","sourceRoot":"","sources":["../../src/agent/agent-session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAgB,MAAM,6BAA6B,CAAC;AAE5E,OAAO,KAAK,EAAE,KAAK,EAAE,GAAG,EAAiC,MAAM,qBAAqB,CAAC;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAc5D,MAAM,WAAW,kBAAkB;IACjC,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,QAAQ,EAAE,cAAc,CAAC;IACzB,wDAAwD;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,kBAAkB;IACjC,uDAAuD;IACvD,YAAY,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACvE;AAoJD;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,kBAAkB,EAC1B,WAAW,EAAE,MAAM,EACnB,eAAe,CAAC,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GACzD,OAAO,CAAC,kBAAkB,CAAC,CA+E7B;AAoBD,6CAA6C;AAC7C,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE1D"}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import { Agent } from "@mariozechner/pi-agent-core";
|
|
2
|
+
import { streamSimple, getModel, getEnvApiKey } from "@mariozechner/pi-ai";
|
|
3
|
+
import { buildAgentSystemPrompt } from "./agent-system-prompt.js";
|
|
4
|
+
import { createSubAgentTool, createReadTool, createEditTool, createGrepTool, createLsTool, } from "./agent-tools.js";
|
|
5
|
+
const agentCache = new Map();
|
|
6
|
+
/** TTL for cached agents: 5 minutes. */
|
|
7
|
+
const CACHE_TTL_MS = 5 * 60 * 1000;
|
|
8
|
+
/** Cleanup interval handle (lazy-started). */
|
|
9
|
+
let cleanupTimer = null;
|
|
10
|
+
function ensureCleanupTimer() {
|
|
11
|
+
if (cleanupTimer)
|
|
12
|
+
return;
|
|
13
|
+
cleanupTimer = setInterval(() => {
|
|
14
|
+
const now = Date.now();
|
|
15
|
+
for (const [id, entry] of agentCache) {
|
|
16
|
+
if (now - entry.lastActive > CACHE_TTL_MS) {
|
|
17
|
+
agentCache.delete(id);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
// Stop the timer when nothing left to watch.
|
|
21
|
+
if (agentCache.size === 0 && cleanupTimer) {
|
|
22
|
+
clearInterval(cleanupTimer);
|
|
23
|
+
cleanupTimer = null;
|
|
24
|
+
}
|
|
25
|
+
}, 60_000); // run every 60 s
|
|
26
|
+
// Allow the process to exit even if this timer is alive.
|
|
27
|
+
if (cleanupTimer && typeof cleanupTimer === "object" && "unref" in cleanupTimer) {
|
|
28
|
+
cleanupTimer.unref();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
// Helpers
|
|
33
|
+
// ---------------------------------------------------------------------------
|
|
34
|
+
function resolveModel(spec) {
|
|
35
|
+
if (!spec) {
|
|
36
|
+
throw new Error("Model is required but was undefined. Check LLM configuration.");
|
|
37
|
+
}
|
|
38
|
+
if (typeof spec === "object" && "id" in spec && "api" in spec) {
|
|
39
|
+
// Already a Model object.
|
|
40
|
+
return spec;
|
|
41
|
+
}
|
|
42
|
+
const { provider, modelId } = spec;
|
|
43
|
+
if (!provider || !modelId) {
|
|
44
|
+
throw new Error(`Invalid model spec: provider=${provider}, modelId=${modelId}`);
|
|
45
|
+
}
|
|
46
|
+
return getModel(provider, modelId);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Extract readable text from an AssistantMessage's content array.
|
|
50
|
+
* Filters out tool-call blocks; concatenates text blocks.
|
|
51
|
+
*/
|
|
52
|
+
function extractTextFromAssistant(msg) {
|
|
53
|
+
return msg.content
|
|
54
|
+
.filter((c) => c.type === "text")
|
|
55
|
+
.map((c) => c.text)
|
|
56
|
+
.join("");
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Extract thinking/reasoning text from an AssistantMessage's content array.
|
|
60
|
+
*/
|
|
61
|
+
function extractThinkingFromAssistant(msg) {
|
|
62
|
+
return msg.content
|
|
63
|
+
.filter((c) => c.type === "thinking")
|
|
64
|
+
.map((c) => c.thinking ?? "")
|
|
65
|
+
.join("");
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Convert plain `{ role, content }` messages (from BookSession disk storage)
|
|
69
|
+
* back into pi-agent AgentMessage format so they can be loaded into an Agent.
|
|
70
|
+
*/
|
|
71
|
+
function plainToAgentMessages(plain) {
|
|
72
|
+
return plain.map((m) => {
|
|
73
|
+
const ts = Date.now();
|
|
74
|
+
if (m.role === "user") {
|
|
75
|
+
return { role: "user", content: m.content, timestamp: ts };
|
|
76
|
+
}
|
|
77
|
+
// For stored assistant messages we only have the text.
|
|
78
|
+
// Re-wrap as a minimal AssistantMessage with a single TextContent.
|
|
79
|
+
return {
|
|
80
|
+
role: "assistant",
|
|
81
|
+
content: [{ type: "text", text: m.content }],
|
|
82
|
+
api: "anthropic-messages",
|
|
83
|
+
provider: "anthropic",
|
|
84
|
+
model: "unknown",
|
|
85
|
+
usage: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, totalTokens: 0, cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 } },
|
|
86
|
+
stopReason: "stop",
|
|
87
|
+
timestamp: ts,
|
|
88
|
+
};
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Flatten the Agent's in-memory messages to plain `{ role, content }` pairs
|
|
93
|
+
* suitable for BookSession persistence.
|
|
94
|
+
*/
|
|
95
|
+
function agentMessagesToPlain(messages) {
|
|
96
|
+
const out = [];
|
|
97
|
+
for (const msg of messages) {
|
|
98
|
+
if (!msg || typeof msg !== "object" || !("role" in msg))
|
|
99
|
+
continue;
|
|
100
|
+
const m = msg;
|
|
101
|
+
if (m.role === "user") {
|
|
102
|
+
const content = typeof m.content === "string"
|
|
103
|
+
? m.content
|
|
104
|
+
: Array.isArray(m.content)
|
|
105
|
+
? m.content
|
|
106
|
+
.filter((c) => c.type === "text")
|
|
107
|
+
.map((c) => c.text)
|
|
108
|
+
.join("")
|
|
109
|
+
: "";
|
|
110
|
+
if (content)
|
|
111
|
+
out.push({ role: "user", content });
|
|
112
|
+
}
|
|
113
|
+
else if (m.role === "assistant") {
|
|
114
|
+
const text = extractTextFromAssistant(m);
|
|
115
|
+
const thinking = extractThinkingFromAssistant(m);
|
|
116
|
+
if (text || thinking) {
|
|
117
|
+
const entry = { role: "assistant", content: text };
|
|
118
|
+
if (thinking)
|
|
119
|
+
entry.thinking = thinking;
|
|
120
|
+
out.push(entry);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// ToolResult messages are internal; skip them for persistence.
|
|
124
|
+
}
|
|
125
|
+
return out;
|
|
126
|
+
}
|
|
127
|
+
// ---------------------------------------------------------------------------
|
|
128
|
+
// Main entry point
|
|
129
|
+
// ---------------------------------------------------------------------------
|
|
130
|
+
/**
|
|
131
|
+
* Run a single conversation turn within a cached Agent session.
|
|
132
|
+
*
|
|
133
|
+
* If the session already exists in the cache, reuses the Agent (with its full
|
|
134
|
+
* in-memory message history including tool calls). Otherwise creates a new
|
|
135
|
+
* Agent, optionally restoring messages from `initialMessages`.
|
|
136
|
+
*/
|
|
137
|
+
export async function runAgentSession(config, userMessage, initialMessages) {
|
|
138
|
+
const { sessionId, bookId, language, pipeline, projectRoot, onEvent } = config;
|
|
139
|
+
// ----- Resolve or create Agent -----
|
|
140
|
+
let cached = agentCache.get(sessionId);
|
|
141
|
+
if (cached) {
|
|
142
|
+
// Check if model changed — evict and rebuild if so
|
|
143
|
+
const currentModelId = cached.agent.state.model?.id;
|
|
144
|
+
const newModelId = typeof config.model === 'object' && 'id' in config.model
|
|
145
|
+
? config.model.id
|
|
146
|
+
: undefined;
|
|
147
|
+
if (currentModelId && newModelId && currentModelId !== newModelId) {
|
|
148
|
+
// Preserve conversation messages for re-injection
|
|
149
|
+
const preservedMessages = agentMessagesToPlain(cached.agent.state.messages);
|
|
150
|
+
agentCache.delete(sessionId);
|
|
151
|
+
cached = undefined;
|
|
152
|
+
// Pass preserved messages as initialMessages if none were provided
|
|
153
|
+
if (!initialMessages || initialMessages.length === 0) {
|
|
154
|
+
initialMessages = preservedMessages;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
if (!cached) {
|
|
159
|
+
const model = resolveModel(config.model);
|
|
160
|
+
const agent = new Agent({
|
|
161
|
+
initialState: {
|
|
162
|
+
model,
|
|
163
|
+
systemPrompt: buildAgentSystemPrompt(bookId, language),
|
|
164
|
+
tools: [
|
|
165
|
+
createSubAgentTool(pipeline, bookId),
|
|
166
|
+
createReadTool(projectRoot),
|
|
167
|
+
createEditTool(projectRoot),
|
|
168
|
+
createGrepTool(projectRoot),
|
|
169
|
+
createLsTool(projectRoot),
|
|
170
|
+
],
|
|
171
|
+
},
|
|
172
|
+
streamFn: streamSimple,
|
|
173
|
+
getApiKey: (provider) => {
|
|
174
|
+
if (config.apiKey)
|
|
175
|
+
return config.apiKey;
|
|
176
|
+
return getEnvApiKey(provider);
|
|
177
|
+
},
|
|
178
|
+
});
|
|
179
|
+
// Restore prior conversation if provided.
|
|
180
|
+
if (initialMessages && initialMessages.length > 0) {
|
|
181
|
+
agent.state.messages = plainToAgentMessages(initialMessages);
|
|
182
|
+
}
|
|
183
|
+
cached = { agent, lastActive: Date.now() };
|
|
184
|
+
agentCache.set(sessionId, cached);
|
|
185
|
+
ensureCleanupTimer();
|
|
186
|
+
}
|
|
187
|
+
cached.lastActive = Date.now();
|
|
188
|
+
const { agent } = cached;
|
|
189
|
+
// ----- Subscribe to events (for SSE streaming to frontend) -----
|
|
190
|
+
let unsubscribe;
|
|
191
|
+
if (onEvent) {
|
|
192
|
+
unsubscribe = agent.subscribe((event) => {
|
|
193
|
+
onEvent(event);
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
// ----- Execute the turn -----
|
|
197
|
+
try {
|
|
198
|
+
await agent.prompt(userMessage);
|
|
199
|
+
}
|
|
200
|
+
finally {
|
|
201
|
+
unsubscribe?.();
|
|
202
|
+
}
|
|
203
|
+
// ----- Extract result -----
|
|
204
|
+
const allMessages = agent.state.messages;
|
|
205
|
+
const responseText = extractResponseText(allMessages);
|
|
206
|
+
const plainMessages = agentMessagesToPlain(allMessages);
|
|
207
|
+
return { responseText, messages: plainMessages };
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Walk backward through messages to find the last assistant message and
|
|
211
|
+
* extract its text content.
|
|
212
|
+
*/
|
|
213
|
+
function extractResponseText(messages) {
|
|
214
|
+
for (let i = messages.length - 1; i >= 0; i--) {
|
|
215
|
+
const msg = messages[i];
|
|
216
|
+
if (msg && typeof msg === "object" && "role" in msg && msg.role === "assistant") {
|
|
217
|
+
return extractTextFromAssistant(msg);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
return "";
|
|
221
|
+
}
|
|
222
|
+
// ---------------------------------------------------------------------------
|
|
223
|
+
// Cache management
|
|
224
|
+
// ---------------------------------------------------------------------------
|
|
225
|
+
/** Manually evict a cached Agent session. */
|
|
226
|
+
export function evictAgentCache(sessionId) {
|
|
227
|
+
return agentCache.delete(sessionId);
|
|
228
|
+
}
|
|
229
|
+
//# sourceMappingURL=agent-session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-session.js","sourceRoot":"","sources":["../../src/agent/agent-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-system-prompt.d.ts","sourceRoot":"","sources":["../../src/agent/agent-system-prompt.ts"],"names":[],"mappings":"AAAA,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAiGtF"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
export function buildAgentSystemPrompt(bookId, language) {
|
|
2
|
+
const isZh = language === "zh";
|
|
3
|
+
if (!bookId) {
|
|
4
|
+
return isZh
|
|
5
|
+
? `你是 InkOS 建书助手。你的任务是帮用户从零开始创建一本新书。
|
|
6
|
+
|
|
7
|
+
## 工作流程
|
|
8
|
+
|
|
9
|
+
1. **收集信息**(对话阶段)— 通过自然对话逐步了解:
|
|
10
|
+
- 题材/类型(如玄幻、都市、悬疑、言情等)
|
|
11
|
+
- 目标平台(番茄小说、起点中文网、飞卢等)
|
|
12
|
+
- 世界观设定(什么样的世界?有什么特殊规则?)
|
|
13
|
+
- 主角设定(谁?什么背景?什么性格?)
|
|
14
|
+
- 核心冲突(主线矛盾是什么?)
|
|
15
|
+
- 写作语言(中文/English)
|
|
16
|
+
|
|
17
|
+
2. **确认建书**(调用阶段)— 当信息足够时,调用 sub_agent 工具委托 architect 子智能体建书:
|
|
18
|
+
- instruction 中包含收集到的所有信息(题材、世界观、主角、冲突等)
|
|
19
|
+
- architect 会生成完整的 foundation(世界观设定、卷纲规划、叙事规则等)
|
|
20
|
+
|
|
21
|
+
## 对话风格
|
|
22
|
+
|
|
23
|
+
- 每次只问一个问题,不要一次问太多
|
|
24
|
+
- 用户回答模糊时,给出 2-3 个具体选项引导
|
|
25
|
+
- 当信息基本齐了,主动提议建书,不要无限追问
|
|
26
|
+
- 保持简短、自然
|
|
27
|
+
- **不要在回复中添加表情符号**`
|
|
28
|
+
: `You are the InkOS book creation assistant. Help the user create a new book from scratch.
|
|
29
|
+
|
|
30
|
+
## Workflow
|
|
31
|
+
|
|
32
|
+
1. **Collect information** — Through conversation, gradually learn:
|
|
33
|
+
- Genre (fantasy, urban, mystery, romance, etc.)
|
|
34
|
+
- Target platform
|
|
35
|
+
- World setting
|
|
36
|
+
- Protagonist
|
|
37
|
+
- Core conflict
|
|
38
|
+
- Writing language
|
|
39
|
+
|
|
40
|
+
2. **Create book** — When you have enough info, call the sub_agent tool with agent="architect":
|
|
41
|
+
- Include all collected info in the instruction
|
|
42
|
+
- The architect will generate the complete foundation
|
|
43
|
+
|
|
44
|
+
## Style
|
|
45
|
+
|
|
46
|
+
- Ask one question at a time
|
|
47
|
+
- Offer 2-3 concrete options when the user is vague
|
|
48
|
+
- Proactively suggest creating the book when enough info is collected
|
|
49
|
+
- Keep responses brief and natural
|
|
50
|
+
- **Do NOT use emoji in your responses**`;
|
|
51
|
+
}
|
|
52
|
+
return isZh
|
|
53
|
+
? `你是 InkOS 写作助手,当前正在处理书籍「${bookId}」。
|
|
54
|
+
|
|
55
|
+
## 可用工具
|
|
56
|
+
|
|
57
|
+
- **sub_agent** — 委托子智能体执行重操作:
|
|
58
|
+
- agent="writer" 写下一章
|
|
59
|
+
- agent="auditor" 审计章节质量
|
|
60
|
+
- agent="reviser" 修订章节
|
|
61
|
+
- agent="exporter" 导出书籍
|
|
62
|
+
- **read** — 读取书籍的设定文件或章节内容
|
|
63
|
+
- **edit** — 编辑设定文件(如修改角色名、调整世界观)
|
|
64
|
+
- **grep** — 搜索内容(如"哪一章提到了某个角色")
|
|
65
|
+
- **ls** — 列出文件或章节
|
|
66
|
+
|
|
67
|
+
## 使用原则
|
|
68
|
+
|
|
69
|
+
- 写章节、修订、审计等重操作 → 使用 sub_agent 委托对应子智能体
|
|
70
|
+
- 用户问设定相关问题 → 先用 read 读取对应文件再回答
|
|
71
|
+
- 用户想做小修改(改名字、调设定)→ 用 edit 直接修改
|
|
72
|
+
- 其他情况 → 直接对话回答
|
|
73
|
+
- **注意:不要调用 architect,当前已有书籍,不需要建书**
|
|
74
|
+
- **不要在回复中添加表情符号**`
|
|
75
|
+
: `You are the InkOS writing assistant, working on book "${bookId}".
|
|
76
|
+
|
|
77
|
+
## Available Tools
|
|
78
|
+
|
|
79
|
+
- **sub_agent** — Delegate to sub-agents:
|
|
80
|
+
- agent="writer" for writing next chapter
|
|
81
|
+
- agent="auditor" for chapter quality audit
|
|
82
|
+
- agent="reviser" for chapter revision
|
|
83
|
+
- agent="exporter" for book export
|
|
84
|
+
- **read** — Read truth files or chapter content
|
|
85
|
+
- **edit** — Edit truth files (rename characters, adjust world settings)
|
|
86
|
+
- **grep** — Search content across chapters
|
|
87
|
+
- **ls** — List files or chapters
|
|
88
|
+
|
|
89
|
+
## Guidelines
|
|
90
|
+
|
|
91
|
+
- Use sub_agent for heavy operations (writing, revision, auditing)
|
|
92
|
+
- Use read/edit for settings inquiries and small changes
|
|
93
|
+
- Chat directly for other questions
|
|
94
|
+
- **Do NOT call architect — a book already exists**
|
|
95
|
+
- **Do NOT use emoji in your responses**`;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=agent-system-prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-system-prompt.js","sourceRoot":"","sources":["../../src/agent/agent-system-prompt.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,sBAAsB,CAAC,MAAqB,EAAE,QAAgB;IAC5E,MAAM,IAAI,GAAG,QAAQ,KAAK,IAAI,CAAC;IAE/B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI;YACT,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;mBAsBW;YACb,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;yCAsBiC,CAAC;IACxC,CAAC;IAED,OAAO,IAAI;QACT,CAAC,CAAC,0BAA0B,MAAM;;;;;;;;;;;;;;;;;;;;;mBAqBnB;QACf,CAAC,CAAC,yDAAyD,MAAM;;;;;;;;;;;;;;;;;;;;yCAoB5B,CAAC;AAC1C,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { AgentTool } from "@mariozechner/pi-agent-core";
|
|
2
|
+
import type { PipelineRunner } from "../pipeline/runner.js";
|
|
3
|
+
declare const SubAgentParams: import("@sinclair/typebox").TObject<{
|
|
4
|
+
agent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"architect">, import("@sinclair/typebox").TLiteral<"writer">, import("@sinclair/typebox").TLiteral<"auditor">, import("@sinclair/typebox").TLiteral<"reviser">, import("@sinclair/typebox").TLiteral<"exporter">]>;
|
|
5
|
+
instruction: import("@sinclair/typebox").TString;
|
|
6
|
+
bookId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
7
|
+
}>;
|
|
8
|
+
export declare function createSubAgentTool(pipeline: PipelineRunner, activeBookId: string | null): AgentTool<typeof SubAgentParams>;
|
|
9
|
+
declare const ReadParams: import("@sinclair/typebox").TObject<{
|
|
10
|
+
path: import("@sinclair/typebox").TString;
|
|
11
|
+
}>;
|
|
12
|
+
export declare function createReadTool(projectRoot: string): AgentTool<typeof ReadParams>;
|
|
13
|
+
declare const EditParams: import("@sinclair/typebox").TObject<{
|
|
14
|
+
path: import("@sinclair/typebox").TString;
|
|
15
|
+
old_string: import("@sinclair/typebox").TString;
|
|
16
|
+
new_string: import("@sinclair/typebox").TString;
|
|
17
|
+
}>;
|
|
18
|
+
export declare function createEditTool(projectRoot: string): AgentTool<typeof EditParams>;
|
|
19
|
+
declare const GrepParams: import("@sinclair/typebox").TObject<{
|
|
20
|
+
bookId: import("@sinclair/typebox").TString;
|
|
21
|
+
pattern: import("@sinclair/typebox").TString;
|
|
22
|
+
}>;
|
|
23
|
+
export declare function createGrepTool(projectRoot: string): AgentTool<typeof GrepParams>;
|
|
24
|
+
declare const LsParams: import("@sinclair/typebox").TObject<{
|
|
25
|
+
bookId: import("@sinclair/typebox").TString;
|
|
26
|
+
subdir: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
27
|
+
}>;
|
|
28
|
+
export declare function createLsTool(projectRoot: string): AgentTool<typeof LsParams>;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=agent-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-tools.d.ts","sourceRoot":"","sources":["../../src/agent/agent-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAA4C,MAAM,6BAA6B,CAAC;AACvG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AA6B5D,QAAA,MAAM,cAAc;;;;EAUlB,CAAC;AAEH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,OAAO,cAAc,CAAC,CA0F1H;AAMD,QAAA,MAAM,UAAU;;EAEd,CAAC;AAEH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC,OAAO,UAAU,CAAC,CAwBhF;AAMD,QAAA,MAAM,UAAU;;;;EAId,CAAC;AAEH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC,OAAO,UAAU,CAAC,CAgChF;AAMD,QAAA,MAAM,UAAU;;;EAGd,CAAC;AAEH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC,OAAO,UAAU,CAAC,CA8DhF;AAMD,QAAA,MAAM,QAAQ;;;EAKZ,CAAC;AAEH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC,OAAO,QAAQ,CAAC,CAwC5E"}
|