@actalk/inkos-core 1.2.0 → 1.3.0-canary.26.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/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
|
@@ -1,44 +1,55 @@
|
|
|
1
1
|
import { ChapterSummariesStateSchema, CurrentStateStateSchema, HooksStateSchema, StateManifestSchema, } from "../models/runtime-state.js";
|
|
2
2
|
export function validateRuntimeState(input) {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
3
|
+
try {
|
|
4
|
+
const issues = [];
|
|
5
|
+
const manifest = parseOrIssue(StateManifestSchema, input.manifest, issues, "invalid_manifest", "manifest");
|
|
6
|
+
const currentState = parseOrIssue(CurrentStateStateSchema, input.currentState, issues, "invalid_current_state", "currentState");
|
|
7
|
+
const hooks = parseOrIssue(HooksStateSchema, input.hooks, issues, "invalid_hooks_state", "hooks");
|
|
8
|
+
const chapterSummaries = parseOrIssue(ChapterSummariesStateSchema, input.chapterSummaries, issues, "invalid_chapter_summaries_state", "chapterSummaries");
|
|
9
|
+
if (hooks) {
|
|
10
|
+
const seen = new Set();
|
|
11
|
+
for (const hook of hooks.hooks) {
|
|
12
|
+
if (seen.has(hook.hookId)) {
|
|
13
|
+
issues.push({
|
|
14
|
+
code: "duplicate_hook_id",
|
|
15
|
+
message: `duplicate hook id: ${hook.hookId}`,
|
|
16
|
+
path: `hooks.${hook.hookId}`,
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
seen.add(hook.hookId);
|
|
17
20
|
}
|
|
18
|
-
seen.add(hook.hookId);
|
|
19
21
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
22
|
+
if (chapterSummaries) {
|
|
23
|
+
const seen = new Set();
|
|
24
|
+
for (const row of chapterSummaries.rows) {
|
|
25
|
+
if (seen.has(row.chapter)) {
|
|
26
|
+
issues.push({
|
|
27
|
+
code: "duplicate_summary_chapter",
|
|
28
|
+
message: `duplicate summary chapter: ${row.chapter}`,
|
|
29
|
+
path: `chapterSummaries.${row.chapter}`,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
seen.add(row.chapter);
|
|
30
33
|
}
|
|
31
|
-
seen.add(row.chapter);
|
|
32
34
|
}
|
|
35
|
+
if (manifest && currentState && currentState.chapter > manifest.lastAppliedChapter) {
|
|
36
|
+
issues.push({
|
|
37
|
+
code: "current_state_ahead_of_manifest",
|
|
38
|
+
message: `current state chapter ${currentState.chapter} exceeds manifest ${manifest.lastAppliedChapter}`,
|
|
39
|
+
path: "currentState.chapter",
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
return issues;
|
|
33
43
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
44
|
+
catch (error) {
|
|
45
|
+
return [
|
|
46
|
+
{
|
|
47
|
+
code: "validator_crash",
|
|
48
|
+
message: String(error),
|
|
49
|
+
path: "",
|
|
50
|
+
},
|
|
51
|
+
];
|
|
40
52
|
}
|
|
41
|
-
return issues;
|
|
42
53
|
}
|
|
43
54
|
function parseOrIssue(schema, value, issues, code, path) {
|
|
44
55
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-validator.js","sourceRoot":"","sources":["../../src/state/state-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AAQpC,MAAM,UAAU,oBAAoB,CAAC,KAKpC;IACC,MAAM,MAAM,GAAkC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"state-validator.js","sourceRoot":"","sources":["../../src/state/state-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/utils/config-loader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/utils/config-loader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAI/E,eAAO,MAAM,iBAAiB,QAA4B,CAAC;AAC3D,eAAO,MAAM,eAAe,QAAkC,CAAC;AAc/D,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IAClD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC,GAAG,OAAO,CAwBV;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7C,OAAO,CAAC,aAAa,CAAC,CA2IxB"}
|
|
@@ -2,6 +2,8 @@ import { readFile, access } from "node:fs/promises";
|
|
|
2
2
|
import { homedir } from "node:os";
|
|
3
3
|
import { join } from "node:path";
|
|
4
4
|
import { ProjectConfigSchema } from "../models/project.js";
|
|
5
|
+
import { getServiceApiKey } from "../llm/secrets.js";
|
|
6
|
+
import { resolveServicePreset } from "../llm/service-presets.js";
|
|
5
7
|
export const GLOBAL_CONFIG_DIR = join(homedir(), ".inkos");
|
|
6
8
|
export const GLOBAL_ENV_PATH = join(GLOBAL_CONFIG_DIR, ".env");
|
|
7
9
|
export function isApiKeyOptionalForEndpoint(params) {
|
|
@@ -50,56 +52,100 @@ export async function loadProjectConfig(root, options) {
|
|
|
50
52
|
catch {
|
|
51
53
|
throw new Error(`inkos.json in ${root} is not valid JSON. Check the file for syntax errors.`);
|
|
52
54
|
}
|
|
53
|
-
// .env
|
|
55
|
+
// llm.configSource controls whether INKOS_LLM_* env vars override project config
|
|
54
56
|
const env = process.env;
|
|
55
57
|
const llm = (config.llm ?? {});
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
58
|
+
const configSource = resolveConfigSource(llm.configSource);
|
|
59
|
+
llm.configSource = configSource;
|
|
60
|
+
const normalizedServices = normalizeServiceEntries(llm.services);
|
|
61
|
+
if (normalizedServices.length > 0) {
|
|
62
|
+
llm.services = normalizedServices;
|
|
63
|
+
const selectedEntry = selectServiceEntry(normalizedServices, llm.service);
|
|
64
|
+
const selectedServiceId = selectedEntry ? serviceEntryKey(selectedEntry) : undefined;
|
|
65
|
+
if (selectedEntry) {
|
|
66
|
+
llm.service = selectedEntry.service;
|
|
67
|
+
if (!(typeof llm.model === "string" && llm.model.length > 0) && typeof llm.defaultModel === "string" && llm.defaultModel.length > 0) {
|
|
68
|
+
llm.model = llm.defaultModel;
|
|
69
|
+
}
|
|
70
|
+
if (!(typeof llm.baseUrl === "string" && llm.baseUrl.length > 0)) {
|
|
71
|
+
llm.baseUrl = selectedEntry.baseUrl ?? resolveServicePreset(selectedEntry.service)?.baseUrl ?? "";
|
|
72
|
+
}
|
|
73
|
+
if (!(typeof llm.provider === "string" && llm.provider.length > 0)) {
|
|
74
|
+
llm.provider = deriveProviderFromService(selectedEntry.service);
|
|
75
|
+
}
|
|
76
|
+
if (llm.temperature === undefined && selectedEntry.temperature !== undefined) {
|
|
77
|
+
llm.temperature = selectedEntry.temperature;
|
|
78
|
+
}
|
|
79
|
+
if (llm.maxTokens === undefined && selectedEntry.maxTokens !== undefined) {
|
|
80
|
+
llm.maxTokens = selectedEntry.maxTokens;
|
|
81
|
+
}
|
|
82
|
+
if (selectedEntry.apiFormat !== undefined) {
|
|
83
|
+
llm.apiFormat = selectedEntry.apiFormat;
|
|
84
|
+
}
|
|
85
|
+
if (selectedEntry.stream !== undefined) {
|
|
86
|
+
llm.stream = selectedEntry.stream;
|
|
87
|
+
}
|
|
88
|
+
if (selectedServiceId && (configSource !== "env" || !env.INKOS_LLM_API_KEY)) {
|
|
89
|
+
const secretApiKey = await getServiceApiKey(root, selectedServiceId);
|
|
90
|
+
if (secretApiKey) {
|
|
91
|
+
llm.apiKey = secretApiKey;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
if (configSource === "env") {
|
|
97
|
+
if (env.INKOS_LLM_PROVIDER)
|
|
98
|
+
llm.provider = env.INKOS_LLM_PROVIDER;
|
|
99
|
+
if (env.INKOS_LLM_BASE_URL)
|
|
100
|
+
llm.baseUrl = env.INKOS_LLM_BASE_URL;
|
|
101
|
+
if (env.INKOS_LLM_MODEL)
|
|
102
|
+
llm.model = env.INKOS_LLM_MODEL;
|
|
103
|
+
if (env.INKOS_LLM_TEMPERATURE)
|
|
104
|
+
llm.temperature = parseFloat(env.INKOS_LLM_TEMPERATURE);
|
|
105
|
+
if (env.INKOS_LLM_MAX_TOKENS)
|
|
106
|
+
llm.maxTokens = parseInt(env.INKOS_LLM_MAX_TOKENS, 10);
|
|
107
|
+
if (env.INKOS_LLM_THINKING_BUDGET)
|
|
108
|
+
llm.thinkingBudget = parseInt(env.INKOS_LLM_THINKING_BUDGET, 10);
|
|
109
|
+
}
|
|
68
110
|
// Extra params from env: INKOS_LLM_EXTRA_<key>=<value>
|
|
69
111
|
const extraFromEnv = {};
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
112
|
+
if (configSource === "env") {
|
|
113
|
+
for (const [key, value] of Object.entries(env)) {
|
|
114
|
+
if (key.startsWith("INKOS_LLM_EXTRA_") && value) {
|
|
115
|
+
const paramName = key.slice("INKOS_LLM_EXTRA_".length);
|
|
116
|
+
// Auto-coerce: numbers, booleans, JSON objects
|
|
117
|
+
if (/^\d+(\.\d+)?$/.test(value))
|
|
118
|
+
extraFromEnv[paramName] = parseFloat(value);
|
|
119
|
+
else if (value === "true")
|
|
120
|
+
extraFromEnv[paramName] = true;
|
|
121
|
+
else if (value === "false")
|
|
122
|
+
extraFromEnv[paramName] = false;
|
|
123
|
+
else if (value.startsWith("{") || value.startsWith("[")) {
|
|
124
|
+
try {
|
|
125
|
+
extraFromEnv[paramName] = JSON.parse(value);
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
extraFromEnv[paramName] = value;
|
|
129
|
+
}
|
|
83
130
|
}
|
|
84
|
-
|
|
131
|
+
else
|
|
85
132
|
extraFromEnv[paramName] = value;
|
|
86
|
-
}
|
|
87
133
|
}
|
|
88
|
-
else
|
|
89
|
-
extraFromEnv[paramName] = value;
|
|
90
134
|
}
|
|
91
135
|
}
|
|
92
136
|
if (Object.keys(extraFromEnv).length > 0) {
|
|
93
137
|
llm.extra = { ...(llm.extra ?? {}), ...extraFromEnv };
|
|
94
138
|
}
|
|
95
|
-
if (env.INKOS_LLM_API_FORMAT)
|
|
139
|
+
if (configSource === "env" && env.INKOS_LLM_API_FORMAT)
|
|
96
140
|
llm.apiFormat = env.INKOS_LLM_API_FORMAT;
|
|
97
141
|
config.llm = llm;
|
|
98
142
|
// Global language override
|
|
99
143
|
if (env.INKOS_DEFAULT_LANGUAGE)
|
|
100
144
|
config.language = env.INKOS_DEFAULT_LANGUAGE;
|
|
101
145
|
// API key ONLY from env — never stored in inkos.json
|
|
102
|
-
const apiKey = env
|
|
146
|
+
const apiKey = configSource === "env"
|
|
147
|
+
? env.INKOS_LLM_API_KEY || (typeof llm.apiKey === "string" ? llm.apiKey : "")
|
|
148
|
+
: (typeof llm.apiKey === "string" ? llm.apiKey : "");
|
|
103
149
|
const provider = typeof llm.provider === "string" ? llm.provider : undefined;
|
|
104
150
|
const baseUrl = typeof llm.baseUrl === "string" ? llm.baseUrl : undefined;
|
|
105
151
|
const apiKeyOptional = isApiKeyOptionalForEndpoint({ provider, baseUrl });
|
|
@@ -120,6 +166,77 @@ export async function loadProjectConfig(root, options) {
|
|
|
120
166
|
llm.apiKey = apiKey ?? "";
|
|
121
167
|
return ProjectConfigSchema.parse(config);
|
|
122
168
|
}
|
|
169
|
+
function resolveConfigSource(value) {
|
|
170
|
+
return value === "studio" ? "studio" : "env";
|
|
171
|
+
}
|
|
172
|
+
function normalizeServiceEntries(raw) {
|
|
173
|
+
if (Array.isArray(raw)) {
|
|
174
|
+
return raw
|
|
175
|
+
.filter((entry) => Boolean(entry) && typeof entry === "object")
|
|
176
|
+
.map((entry) => ({
|
|
177
|
+
service: typeof entry.service === "string" && entry.service.length > 0 ? entry.service : "custom",
|
|
178
|
+
...(typeof entry.name === "string" && entry.name.length > 0 ? { name: entry.name } : {}),
|
|
179
|
+
...(typeof entry.baseUrl === "string" && entry.baseUrl.length > 0 ? { baseUrl: entry.baseUrl } : {}),
|
|
180
|
+
...(typeof entry.temperature === "number" ? { temperature: entry.temperature } : {}),
|
|
181
|
+
...(typeof entry.maxTokens === "number" ? { maxTokens: entry.maxTokens } : {}),
|
|
182
|
+
...(entry.apiFormat === "chat" || entry.apiFormat === "responses" ? { apiFormat: entry.apiFormat } : {}),
|
|
183
|
+
...(typeof entry.stream === "boolean" ? { stream: entry.stream } : {}),
|
|
184
|
+
}));
|
|
185
|
+
}
|
|
186
|
+
if (raw && typeof raw === "object") {
|
|
187
|
+
return Object.entries(raw)
|
|
188
|
+
.filter(([, value]) => value && typeof value === "object")
|
|
189
|
+
.map(([serviceId, value]) => normalizeServiceEntryFromPatch(serviceId, value));
|
|
190
|
+
}
|
|
191
|
+
return [];
|
|
192
|
+
}
|
|
193
|
+
function normalizeServiceEntryFromPatch(serviceId, value) {
|
|
194
|
+
if (serviceId.startsWith("custom:")) {
|
|
195
|
+
return {
|
|
196
|
+
service: "custom",
|
|
197
|
+
name: decodeURIComponent(serviceId.slice("custom:".length)),
|
|
198
|
+
...(typeof value.baseUrl === "string" && value.baseUrl.length > 0 ? { baseUrl: value.baseUrl } : {}),
|
|
199
|
+
...(typeof value.temperature === "number" ? { temperature: value.temperature } : {}),
|
|
200
|
+
...(typeof value.maxTokens === "number" ? { maxTokens: value.maxTokens } : {}),
|
|
201
|
+
...(value.apiFormat === "chat" || value.apiFormat === "responses" ? { apiFormat: value.apiFormat } : {}),
|
|
202
|
+
...(typeof value.stream === "boolean" ? { stream: value.stream } : {}),
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
if (serviceId === "custom") {
|
|
206
|
+
return {
|
|
207
|
+
service: "custom",
|
|
208
|
+
...(typeof value.name === "string" && value.name.length > 0 ? { name: value.name } : {}),
|
|
209
|
+
...(typeof value.baseUrl === "string" && value.baseUrl.length > 0 ? { baseUrl: value.baseUrl } : {}),
|
|
210
|
+
...(typeof value.temperature === "number" ? { temperature: value.temperature } : {}),
|
|
211
|
+
...(typeof value.maxTokens === "number" ? { maxTokens: value.maxTokens } : {}),
|
|
212
|
+
...(value.apiFormat === "chat" || value.apiFormat === "responses" ? { apiFormat: value.apiFormat } : {}),
|
|
213
|
+
...(typeof value.stream === "boolean" ? { stream: value.stream } : {}),
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
return {
|
|
217
|
+
service: serviceId,
|
|
218
|
+
...(typeof value.temperature === "number" ? { temperature: value.temperature } : {}),
|
|
219
|
+
...(typeof value.maxTokens === "number" ? { maxTokens: value.maxTokens } : {}),
|
|
220
|
+
...(value.apiFormat === "chat" || value.apiFormat === "responses" ? { apiFormat: value.apiFormat } : {}),
|
|
221
|
+
...(typeof value.stream === "boolean" ? { stream: value.stream } : {}),
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
function selectServiceEntry(services, configuredService) {
|
|
225
|
+
if (typeof configuredService === "string" && configuredService.length > 0) {
|
|
226
|
+
return services.find((entry) => entry.service === configuredService || serviceEntryKey(entry) === configuredService) ?? services[0];
|
|
227
|
+
}
|
|
228
|
+
return services[0];
|
|
229
|
+
}
|
|
230
|
+
function serviceEntryKey(entry) {
|
|
231
|
+
return entry.service === "custom" ? `custom:${entry.name ?? "Custom"}` : entry.service;
|
|
232
|
+
}
|
|
233
|
+
function deriveProviderFromService(service) {
|
|
234
|
+
if (service === "anthropic")
|
|
235
|
+
return "anthropic";
|
|
236
|
+
if (service === "custom")
|
|
237
|
+
return "custom";
|
|
238
|
+
return "openai";
|
|
239
|
+
}
|
|
123
240
|
function isPrivateIpv4(hostname) {
|
|
124
241
|
const parts = hostname.split(".").map((segment) => Number.parseInt(segment, 10));
|
|
125
242
|
if (parts.length !== 4 || parts.some((part) => Number.isNaN(part) || part < 0 || part > 255)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/utils/config-loader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/utils/config-loader.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": "1.
|
|
3
|
+
"version": "1.3.0-canary.26.1",
|
|
4
4
|
"description": "InkOS core engine — multi-agent novel writing pipeline with 33-dimension continuity audit, style cloning, and de-AI-ification",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai-novel-writing",
|
|
@@ -35,10 +35,11 @@
|
|
|
35
35
|
"directory": "packages/core"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@
|
|
38
|
+
"@mariozechner/pi-agent-core": "^0.67.1",
|
|
39
|
+
"@mariozechner/pi-ai": "^0.67.1",
|
|
40
|
+
"@sinclair/typebox": "^0.34.49",
|
|
39
41
|
"dotenv": "^16.4.0",
|
|
40
42
|
"js-yaml": "^4.1.1",
|
|
41
|
-
"openai": "^4.80.0",
|
|
42
43
|
"zod": "^3.24.0"
|
|
43
44
|
},
|
|
44
45
|
"devDependencies": {
|