@atomic-chat/core 0.20.6 → 0.21.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/audio/jobs.js +4 -0
- package/dist/audio/jobs.js.map +1 -1
- package/dist/audio/service.d.ts +1 -1
- package/dist/audio/service.js +3 -1
- package/dist/audio/service.js.map +1 -1
- package/dist/audio/session.js +28 -16
- package/dist/audio/session.js.map +1 -1
- package/dist/audio/state.d.ts +3 -1
- package/dist/audio/state.js +3 -1
- package/dist/audio/state.js.map +1 -1
- package/dist/cli/launch.d.ts +23 -3
- package/dist/cli/launch.js +59 -8
- package/dist/cli/launch.js.map +1 -1
- package/dist/cli/main.d.ts +1 -1
- package/dist/contracts/events.d.ts +8 -0
- package/dist/contracts/settings.d.ts +5 -0
- package/dist/contracts/settings.js.map +1 -1
- package/dist/core/atomic-core.d.ts +3 -1
- package/dist/core/atomic-core.js +4 -1
- package/dist/core/atomic-core.js.map +1 -1
- package/dist/core/create.js +4 -1
- package/dist/core/create.js.map +1 -1
- package/dist/core/sessions.js +1 -0
- package/dist/core/sessions.js.map +1 -1
- package/dist/integrations/catalog.d.ts +25 -8
- package/dist/integrations/catalog.js +105 -38
- package/dist/integrations/catalog.js.map +1 -1
- package/dist/integrations/configure/atomic-agent.d.ts +9 -1
- package/dist/integrations/configure/atomic-agent.js +42 -3
- package/dist/integrations/configure/atomic-agent.js.map +1 -1
- package/dist/integrations/configure/backup.d.ts +21 -0
- package/dist/integrations/configure/backup.js +52 -0
- package/dist/integrations/configure/backup.js.map +1 -0
- package/dist/integrations/configure/claude-code.d.ts +11 -4
- package/dist/integrations/configure/claude-code.js +73 -24
- package/dist/integrations/configure/claude-code.js.map +1 -1
- package/dist/integrations/configure/cline.d.ts +14 -4
- package/dist/integrations/configure/cline.js +78 -6
- package/dist/integrations/configure/cline.js.map +1 -1
- package/dist/integrations/configure/codex.d.ts +5 -3
- package/dist/integrations/configure/codex.js +12 -5
- package/dist/integrations/configure/codex.js.map +1 -1
- package/dist/integrations/configure/copilot.d.ts +28 -5
- package/dist/integrations/configure/copilot.js +124 -8
- package/dist/integrations/configure/copilot.js.map +1 -1
- package/dist/integrations/configure/droid.d.ts +13 -7
- package/dist/integrations/configure/droid.js +48 -17
- package/dist/integrations/configure/droid.js.map +1 -1
- package/dist/integrations/configure/dsh.d.ts +36 -20
- package/dist/integrations/configure/dsh.js +250 -48
- package/dist/integrations/configure/dsh.js.map +1 -1
- package/dist/integrations/configure/goose.d.ts +21 -7
- package/dist/integrations/configure/goose.js +141 -10
- package/dist/integrations/configure/goose.js.map +1 -1
- package/dist/integrations/configure/hermes.d.ts +63 -10
- package/dist/integrations/configure/hermes.js +360 -75
- package/dist/integrations/configure/hermes.js.map +1 -1
- package/dist/integrations/configure/json-backup.d.ts +73 -0
- package/dist/integrations/configure/json-backup.js +292 -0
- package/dist/integrations/configure/json-backup.js.map +1 -0
- package/dist/integrations/configure/json-key-backup.d.ts +43 -0
- package/dist/integrations/configure/json-key-backup.js +113 -0
- package/dist/integrations/configure/json-key-backup.js.map +1 -0
- package/dist/integrations/configure/kilo.d.ts +4 -4
- package/dist/integrations/configure/kilo.js +6 -9
- package/dist/integrations/configure/kilo.js.map +1 -1
- package/dist/integrations/configure/legacy-env-block.d.ts +18 -0
- package/dist/integrations/configure/legacy-env-block.js +47 -0
- package/dist/integrations/configure/legacy-env-block.js.map +1 -0
- package/dist/integrations/configure/mimo.d.ts +3 -2
- package/dist/integrations/configure/mimo.js +8 -9
- package/dist/integrations/configure/mimo.js.map +1 -1
- package/dist/integrations/configure/muse.d.ts +3 -3
- package/dist/integrations/configure/muse.js +5 -6
- package/dist/integrations/configure/muse.js.map +1 -1
- package/dist/integrations/configure/openclaude.d.ts +22 -7
- package/dist/integrations/configure/openclaude.js +132 -39
- package/dist/integrations/configure/openclaude.js.map +1 -1
- package/dist/integrations/configure/openclaw.d.ts +19 -5
- package/dist/integrations/configure/openclaw.js +79 -23
- package/dist/integrations/configure/openclaw.js.map +1 -1
- package/dist/integrations/configure/opencode-style.d.ts +53 -11
- package/dist/integrations/configure/opencode-style.js +218 -23
- package/dist/integrations/configure/opencode-style.js.map +1 -1
- package/dist/integrations/configure/opencode.d.ts +5 -4
- package/dist/integrations/configure/opencode.js +8 -10
- package/dist/integrations/configure/opencode.js.map +1 -1
- package/dist/integrations/configure/openhands.d.ts +5 -4
- package/dist/integrations/configure/openhands.js +7 -7
- package/dist/integrations/configure/openhands.js.map +1 -1
- package/dist/integrations/configure/pi.d.ts +6 -5
- package/dist/integrations/configure/pi.js +79 -30
- package/dist/integrations/configure/pi.js.map +1 -1
- package/dist/integrations/configure/poolside.d.ts +5 -4
- package/dist/integrations/configure/poolside.js +7 -7
- package/dist/integrations/configure/poolside.js.map +1 -1
- package/dist/integrations/configure/registry.d.ts +6 -0
- package/dist/integrations/configure/registry.js +1 -0
- package/dist/integrations/configure/registry.js.map +1 -1
- package/dist/integrations/configure/zcode.d.ts +6 -7
- package/dist/integrations/configure/zcode.js +26 -11
- package/dist/integrations/configure/zcode.js.map +1 -1
- package/dist/integrations/configure/zed.d.ts +16 -4
- package/dist/integrations/configure/zed.js +61 -13
- package/dist/integrations/configure/zed.js.map +1 -1
- package/dist/models/gguf/kv-cache.d.ts +20 -1
- package/dist/models/gguf/kv-cache.js +97 -7
- package/dist/models/gguf/kv-cache.js.map +1 -1
- package/dist/models/gguf/reader.d.ts +5 -3
- package/dist/models/gguf/reader.js +10 -6
- package/dist/models/gguf/reader.js.map +1 -1
- package/dist/runtime/llamacpp/args.d.ts +14 -0
- package/dist/runtime/llamacpp/args.js +48 -4
- package/dist/runtime/llamacpp/args.js.map +1 -1
- package/dist/runtime/llamacpp/ctx-ladder.d.ts +6 -3
- package/dist/runtime/llamacpp/ctx-ladder.js +6 -3
- package/dist/runtime/llamacpp/ctx-ladder.js.map +1 -1
- package/dist/runtime/llamacpp/fit-margin.d.ts +24 -0
- package/dist/runtime/llamacpp/fit-margin.js +31 -0
- package/dist/runtime/llamacpp/fit-margin.js.map +1 -1
- package/dist/runtime/llamacpp/generation-limits.d.ts +45 -0
- package/dist/runtime/llamacpp/generation-limits.js +61 -0
- package/dist/runtime/llamacpp/generation-limits.js.map +1 -0
- package/dist/runtime/llamacpp/load-plan.d.ts +14 -2
- package/dist/runtime/llamacpp/load-plan.js +64 -13
- package/dist/runtime/llamacpp/load-plan.js.map +1 -1
- package/dist/runtime/llamacpp/runtime.d.ts +1 -0
- package/dist/runtime/llamacpp/runtime.js +2 -0
- package/dist/runtime/llamacpp/runtime.js.map +1 -1
- package/dist/runtime/managed-engines/runtime.js +13 -2
- package/dist/runtime/managed-engines/runtime.js.map +1 -1
- package/dist/runtime/managed-engines/spec.d.ts +6 -0
- package/dist/runtime/managed-engines/spec.js.map +1 -1
- package/dist/runtime/managed-models/auto-limits.d.ts +47 -0
- package/dist/runtime/managed-models/auto-limits.js +60 -0
- package/dist/runtime/managed-models/auto-limits.js.map +1 -0
- package/dist/runtime/managed-models/index.d.ts +1 -0
- package/dist/runtime/managed-models/index.js +1 -0
- package/dist/runtime/managed-models/index.js.map +1 -1
- package/dist/runtime/mlx/config.d.ts +9 -5
- package/dist/runtime/mlx/config.js +12 -6
- package/dist/runtime/mlx/config.js.map +1 -1
- package/dist/runtime/mlx/model-files.d.ts +9 -0
- package/dist/runtime/mlx/model-files.js +26 -0
- package/dist/runtime/mlx/model-files.js.map +1 -1
- package/dist/runtime/mlx/runtime.d.ts +7 -0
- package/dist/runtime/mlx/runtime.js +24 -2
- package/dist/runtime/mlx/runtime.js.map +1 -1
- package/dist/runtime/sglang/adapter.d.ts +4 -0
- package/dist/runtime/sglang/adapter.js +9 -6
- package/dist/runtime/sglang/adapter.js.map +1 -1
- package/dist/runtime/sglang/engine.js +2 -1
- package/dist/runtime/sglang/engine.js.map +1 -1
- package/dist/runtime/sglang/memory.d.ts +11 -1
- package/dist/runtime/sglang/memory.js +34 -3
- package/dist/runtime/sglang/memory.js.map +1 -1
- package/dist/runtime/sglang/settings.d.ts +2 -1
- package/dist/runtime/sglang/settings.js +11 -7
- package/dist/runtime/sglang/settings.js.map +1 -1
- package/dist/runtime/vllm/adapter.d.ts +4 -0
- package/dist/runtime/vllm/adapter.js +9 -6
- package/dist/runtime/vllm/adapter.js.map +1 -1
- package/dist/runtime/vllm/engine.js +1 -0
- package/dist/runtime/vllm/engine.js.map +1 -1
- package/dist/runtime/vllm/memory.d.ts +12 -1
- package/dist/runtime/vllm/memory.js +44 -2
- package/dist/runtime/vllm/memory.js.map +1 -1
- package/dist/runtime/vllm/settings.d.ts +2 -1
- package/dist/runtime/vllm/settings.js +12 -7
- package/dist/runtime/vllm/settings.js.map +1 -1
- package/dist/server/public/context-window.d.ts +29 -0
- package/dist/server/public/context-window.js +77 -0
- package/dist/server/public/context-window.js.map +1 -0
- package/dist/server/public/decision-preview.js +1 -0
- package/dist/server/public/decision-preview.js.map +1 -1
- package/dist/server/public/errors.d.ts +15 -4
- package/dist/server/public/errors.js +53 -7
- package/dist/server/public/errors.js.map +1 -1
- package/dist/server/public/forward.js +65 -5
- package/dist/server/public/forward.js.map +1 -1
- package/dist/server/public/index.d.ts +1 -0
- package/dist/server/public/index.js +1 -0
- package/dist/server/public/index.js.map +1 -1
- package/dist/server/public/listing.d.ts +9 -2
- package/dist/server/public/listing.js +30 -9
- package/dist/server/public/listing.js.map +1 -1
- package/dist/server/public/responses.js +9 -5
- package/dist/server/public/responses.js.map +1 -1
- package/dist/server/public/system-messages.d.ts +39 -0
- package/dist/server/public/system-messages.js +166 -0
- package/dist/server/public/system-messages.js.map +1 -0
- package/dist/server/public/telemetry.d.ts +9 -0
- package/dist/server/public/telemetry.js +42 -6
- package/dist/server/public/telemetry.js.map +1 -1
- package/dist/server/public/thinking.d.ts +26 -0
- package/dist/server/public/thinking.js +62 -0
- package/dist/server/public/thinking.js.map +1 -0
- package/dist/server/public/trace.d.ts +8 -0
- package/dist/server/public/trace.js +17 -0
- package/dist/server/public/trace.js.map +1 -1
- package/dist/server/public/types.d.ts +8 -0
- package/dist/server/shims/index.d.ts +1 -0
- package/dist/server/shims/index.js +1 -0
- package/dist/server/shims/index.js.map +1 -1
- package/dist/server/shims/reminders.d.ts +8 -0
- package/dist/server/shims/reminders.js +14 -0
- package/dist/server/shims/reminders.js.map +1 -0
- package/dist/server/shims/responses.d.ts +33 -9
- package/dist/server/shims/responses.js +160 -36
- package/dist/server/shims/responses.js.map +1 -1
- package/dist/settings/default-migrations.d.ts +34 -0
- package/dist/settings/default-migrations.js +47 -0
- package/dist/settings/default-migrations.js.map +1 -0
- package/dist/settings/schema/atomic-prism.json +23 -9
- package/dist/settings/schema/llamacpp-upstream.json +23 -9
- package/dist/settings/schema/llamacpp.json +23 -9
- package/dist/settings/schema/sglang.json +8 -8
- package/dist/settings/schema/vllm.json +8 -8
- package/dist/settings/schema.js +1 -0
- package/dist/settings/schema.js.map +1 -1
- package/dist/settings/store.d.ts +6 -0
- package/dist/settings/store.js +18 -1
- package/dist/settings/store.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -3,29 +3,30 @@
|
|
|
3
3
|
*
|
|
4
4
|
* That is deliberate: the file is hand-edited, heavily commented, and its `custom_providers` list
|
|
5
5
|
* carries the user's own bridges (Telegram, WhatsApp, …). A YAML round trip would drop every comment
|
|
6
|
-
* and reflow every block for the sake of
|
|
6
|
+
* and reflow every block for the sake of a few scalars. So we rewrite only the lines we own and
|
|
7
7
|
* splice our list entry in, leaving everything else byte-identical.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
9
|
+
* The route is bare `custom` with `model.base_url` and `model.api_key`: Hermes trusts that URL while
|
|
10
|
+
* `model.provider` is `custom` and takes the key from the same section, so the route needs nothing
|
|
11
|
+
* outside it — unlike `custom:atomic-chat`, which needs our `custom_providers` entry, and that cannot
|
|
12
|
+
* be added to an inline `custom_providers: [...]` list. The entry is still written where it can be,
|
|
13
|
+
* for `hermes model` and detection. What the edit replaced is recorded in
|
|
14
|
+
* `config.yaml.atomic-chat-backup.json` for the app's Disconnect. `.env` is patched only when it
|
|
15
|
+
* already exists — creating one would shadow the agent's own defaults.
|
|
16
|
+
*
|
|
17
|
+
* Mirrors `configure_hermes_at` in the app's `core/system/commands.rs`, byte for byte.
|
|
12
18
|
*/
|
|
13
19
|
import { HERMES_CONTEXT_LENGTH } from '../catalog.js';
|
|
20
|
+
import { canonicalJson } from '../config-io.js';
|
|
21
|
+
import { BACKUP_SUFFIX, writeBackupText } from './json-key-backup.js';
|
|
14
22
|
import { registerWriter } from './registry.js';
|
|
15
23
|
const PROVIDER_NAME = 'atomic-chat';
|
|
24
|
+
/** The provider older releases wrote: our named `custom_providers` entry. */
|
|
25
|
+
const LEGACY_PROVIDER = `custom:${PROVIDER_NAME}`;
|
|
16
26
|
/** Hermes otherwise waits out its legacy 1800s default; a tighter cap lets a wedged turn fail fast. */
|
|
17
27
|
const REQUEST_TIMEOUT_SECONDS = 180;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
* would create one, so on a fresh install there was nothing to patch at all. This carries exactly
|
|
21
|
-
* the anchors the patch logic below looks for.
|
|
22
|
-
*/
|
|
23
|
-
const DEFAULT_CONFIG = `model:
|
|
24
|
-
default: anthropic/claude-opus-4.6
|
|
25
|
-
provider: auto
|
|
26
|
-
base_url: https://openrouter.ai/api/v1
|
|
27
|
-
custom_providers: []
|
|
28
|
-
`;
|
|
28
|
+
const NO_PROXY_LINE = 'NO_PROXY=localhost,127.0.0.1,0.0.0.0';
|
|
29
|
+
const NO_PROXY_EXPORT_LINE = 'export no_proxy=localhost,127.0.0.1,0.0.0.0';
|
|
29
30
|
/** Rust's `str::lines`: split on `\n`, drop the empty tail, strip a trailing `\r` from each line. */
|
|
30
31
|
function lines(text) {
|
|
31
32
|
const parts = text.split('\n');
|
|
@@ -41,6 +42,143 @@ export function replaceYamlScalarValue(line, value) {
|
|
|
41
42
|
const colon = line.indexOf(':');
|
|
42
43
|
return colon < 0 ? line : `${line.slice(0, colon + 1)} ${value}`;
|
|
43
44
|
}
|
|
45
|
+
/** A column-0 mapping key: not indented, not a list item, not a comment, not blank. */
|
|
46
|
+
function isTopLevelYamlKey(line) {
|
|
47
|
+
const c = line.charAt(0);
|
|
48
|
+
return c !== '' && c !== ' ' && c !== '\t' && c !== '-' && c !== '#';
|
|
49
|
+
}
|
|
50
|
+
/** Drop a trailing `# comment` (YAML only starts one after whitespace). */
|
|
51
|
+
function stripYamlComment(text) {
|
|
52
|
+
return text.replace(/(^|\s)#.*$/, '');
|
|
53
|
+
}
|
|
54
|
+
/** `key: value` of a column-0 mapping line, the value without its comment; `undefined` otherwise. */
|
|
55
|
+
function topLevelYamlKey(line) {
|
|
56
|
+
if (!isTopLevelYamlKey(line))
|
|
57
|
+
return undefined;
|
|
58
|
+
const colon = line.indexOf(':');
|
|
59
|
+
if (colon < 0)
|
|
60
|
+
return undefined;
|
|
61
|
+
return { key: line.slice(0, colon).trim(), value: stripYamlComment(line.slice(colon + 1)).trim() };
|
|
62
|
+
}
|
|
63
|
+
function indentOf(line) {
|
|
64
|
+
return line.length - line.trimStart().length;
|
|
65
|
+
}
|
|
66
|
+
function isBlankOrComment(line) {
|
|
67
|
+
const t = line.trim();
|
|
68
|
+
return t === '' || t.startsWith('#');
|
|
69
|
+
}
|
|
70
|
+
function modelSection(out) {
|
|
71
|
+
const header = out.findIndex((line) => topLevelYamlKey(line)?.key === 'model');
|
|
72
|
+
if (header < 0)
|
|
73
|
+
return undefined;
|
|
74
|
+
let end = out.length;
|
|
75
|
+
for (let i = header + 1; i < out.length; i++) {
|
|
76
|
+
if (isTopLevelYamlKey(out[i])) {
|
|
77
|
+
end = i;
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return { header, end, isScalar: (topLevelYamlKey(out[header])?.value ?? '') !== '' };
|
|
82
|
+
}
|
|
83
|
+
function childIndent(out, section) {
|
|
84
|
+
const first = out.slice(section.header + 1, section.end).find((line) => !isBlankOrComment(line));
|
|
85
|
+
return first === undefined ? ' ' : first.slice(0, indentOf(first));
|
|
86
|
+
}
|
|
87
|
+
function isChildKey(line, indent, key) {
|
|
88
|
+
if (isBlankOrComment(line) || indentOf(line) !== indent)
|
|
89
|
+
return false;
|
|
90
|
+
const t = line.trim();
|
|
91
|
+
return t.startsWith(key) && t.slice(key.length).trimStart().startsWith(':');
|
|
92
|
+
}
|
|
93
|
+
/** The lines of the direct child `key` of a block section: its own line and the more-indented lines
|
|
94
|
+
* of a nested value after it (with any comments between those), as `[start, end)`. */
|
|
95
|
+
function childSpan(out, section, key) {
|
|
96
|
+
if (section.isScalar)
|
|
97
|
+
return undefined;
|
|
98
|
+
const indent = childIndent(out, section).length;
|
|
99
|
+
let start = -1;
|
|
100
|
+
for (let i = section.header + 1; i < section.end; i++) {
|
|
101
|
+
if (isChildKey(out[i], indent, key)) {
|
|
102
|
+
start = i;
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
if (start < 0)
|
|
107
|
+
return undefined;
|
|
108
|
+
let end = start + 1;
|
|
109
|
+
for (let i = start + 1; i < section.end;) {
|
|
110
|
+
const line = out[i];
|
|
111
|
+
if (isBlankOrComment(line))
|
|
112
|
+
i++;
|
|
113
|
+
else if (indentOf(line) > indent) {
|
|
114
|
+
i++;
|
|
115
|
+
end = i;
|
|
116
|
+
}
|
|
117
|
+
else
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
120
|
+
return [start, end];
|
|
121
|
+
}
|
|
122
|
+
/** The value text of a `key: value` line, without its comment (quotes kept). */
|
|
123
|
+
function scalarOf(line) {
|
|
124
|
+
const colon = line.indexOf(':');
|
|
125
|
+
return colon < 0 ? '' : stripYamlComment(line.slice(colon + 1)).trim();
|
|
126
|
+
}
|
|
127
|
+
function modelValue(out, section, key) {
|
|
128
|
+
const span = section === undefined ? undefined : childSpan(out, section, key);
|
|
129
|
+
return span === undefined ? undefined : scalarOf(out[span[0]]);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Point the top-level `model:` section at our endpoint, and touch nothing outside it.
|
|
133
|
+
*
|
|
134
|
+
* Hermes' chat route comes from `model.default` (`model.model` is an alias), `model.provider` and
|
|
135
|
+
* `model.base_url`; a section it cannot read leaves it on its built-in default, an empty model on
|
|
136
|
+
* provider `auto`, which falls through to OpenRouter. The same keys recur under `auxiliary:`,
|
|
137
|
+
* `delegation:`, `compression:` and others, so only direct children of the top-level `model:` key are
|
|
138
|
+
* ours. A missing key is added, a scalar `model: <id>` (also valid Hermes) becomes a block, and a file
|
|
139
|
+
* with no `model:` at all gets one appended.
|
|
140
|
+
*/
|
|
141
|
+
export function patchModelSection(content, wanted) {
|
|
142
|
+
const out = lines(content);
|
|
143
|
+
const block = (indent) => wanted.map(([key, value]) => `${indent}${key}: ${value}`);
|
|
144
|
+
const found = modelSection(out);
|
|
145
|
+
if (found === undefined) {
|
|
146
|
+
while (out.length > 0 && out[out.length - 1].trim() === '')
|
|
147
|
+
out.pop();
|
|
148
|
+
out.push('model:', ...block(' '));
|
|
149
|
+
return endWithNewline(out.join('\n'));
|
|
150
|
+
}
|
|
151
|
+
const { header: headerIdx, end, isScalar } = found;
|
|
152
|
+
// Anything still indented under a scalar `model: <id>` header is that scalar's continuation.
|
|
153
|
+
const section = out.slice(headerIdx + 1, end).filter((line) => !isScalar || isBlankOrComment(line));
|
|
154
|
+
if (isScalar) {
|
|
155
|
+
out.splice(headerIdx, end - headerIdx, 'model:', ...block(' '), ...section);
|
|
156
|
+
return endWithNewline(out.join('\n'));
|
|
157
|
+
}
|
|
158
|
+
const firstChild = section.find((line) => !isBlankOrComment(line));
|
|
159
|
+
const indent = firstChild === undefined ? ' ' : firstChild.slice(0, indentOf(firstChild));
|
|
160
|
+
const missing = [];
|
|
161
|
+
for (const [key, value] of wanted) {
|
|
162
|
+
const at = section.findIndex((line) => isChildKey(line, indent.length, key));
|
|
163
|
+
if (at < 0) {
|
|
164
|
+
missing.push(`${indent}${key}: ${value}`);
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
167
|
+
section[at] = replaceYamlScalarValue(section[at], value);
|
|
168
|
+
// A nested value (a mapping-valued `default`, a wrapped scalar) would dangle under the new one.
|
|
169
|
+
for (let i = at + 1; i < section.length;) {
|
|
170
|
+
const line = section[i];
|
|
171
|
+
if (isBlankOrComment(line))
|
|
172
|
+
i++;
|
|
173
|
+
else if (indentOf(line) > indent.length)
|
|
174
|
+
section.splice(i, 1);
|
|
175
|
+
else
|
|
176
|
+
break;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
out.splice(headerIdx + 1, end - headerIdx - 1, ...missing, ...section);
|
|
180
|
+
return endWithNewline(out.join('\n'));
|
|
181
|
+
}
|
|
44
182
|
/**
|
|
45
183
|
* Split the document into (before, entries, after) around `custom_providers:`. `entries` is one
|
|
46
184
|
* array of raw lines per list item; blank lines inside the block are dropped, which is why a rerun
|
|
@@ -53,7 +191,7 @@ export function splitCustomProviders(content) {
|
|
|
53
191
|
let phase = 'before';
|
|
54
192
|
for (const line of lines(content)) {
|
|
55
193
|
if (phase === 'before') {
|
|
56
|
-
const t = line.trim();
|
|
194
|
+
const t = stripYamlComment(line).trim();
|
|
57
195
|
if (t === 'custom_providers:' || t === 'custom_providers: []' || t === 'custom_providers:[]') {
|
|
58
196
|
phase = t.includes('[]') ? 'after' : 'inBlock';
|
|
59
197
|
}
|
|
@@ -114,45 +252,66 @@ export function rebuildCustomProviders(before, entries, after) {
|
|
|
114
252
|
result.push(...after);
|
|
115
253
|
return endWithNewline(result.join('\n'));
|
|
116
254
|
}
|
|
117
|
-
/**
|
|
118
|
-
|
|
255
|
+
/** Whether the top-level `custom_providers:` holds an inline list with entries. */
|
|
256
|
+
function hasInlineCustomProviders(content) {
|
|
257
|
+
const inline = lines(content)
|
|
258
|
+
.map(topLevelYamlKey)
|
|
259
|
+
.find((entry) => entry?.key === 'custom_providers')?.value;
|
|
260
|
+
return inline !== undefined && inline !== '' && inline.replace(/\s/g, '') !== '[]';
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Add or update only our entry, leaving the user's other bridges untouched and in order; also says
|
|
264
|
+
* whether the `custom_providers` key itself was added. `key` is already a YAML scalar.
|
|
265
|
+
*/
|
|
266
|
+
export function upsertAtomicProvider(content, apiUrl, model, ctx, key) {
|
|
267
|
+
// An inline list cannot be spliced, and a second `custom_providers:` would make the whole file
|
|
268
|
+
// unreadable to Hermes (duplicate key); leave it rather than append one.
|
|
269
|
+
if (hasInlineCustomProviders(content))
|
|
270
|
+
return [endWithNewline(content), false];
|
|
271
|
+
const hadKey = lines(content).some((line) => topLevelYamlKey(line)?.key === 'custom_providers');
|
|
119
272
|
const { before, entries, after } = splitCustomProviders(content);
|
|
120
273
|
const kept = entries.filter((entry) => !entryIsOurs(entry));
|
|
121
274
|
kept.push([
|
|
122
275
|
`- name: ${PROVIDER_NAME}`,
|
|
123
276
|
` base_url: ${apiUrl}`,
|
|
277
|
+
` api_key: ${key}`,
|
|
124
278
|
` model: ${model}`,
|
|
125
279
|
' models:',
|
|
126
280
|
` ${model}:`,
|
|
127
281
|
` context_length: ${ctx}`,
|
|
128
282
|
]);
|
|
129
|
-
return rebuildCustomProviders(before, kept, after);
|
|
130
|
-
}
|
|
131
|
-
/** A column-0 mapping key: not indented, not a list item, not a comment, not blank. */
|
|
132
|
-
function isTopLevelYamlKey(line) {
|
|
133
|
-
const c = line.charAt(0);
|
|
134
|
-
return c !== '' && c !== ' ' && c !== '\t' && c !== '-' && c !== '#';
|
|
283
|
+
return [rebuildCustomProviders(before, kept, after), !hadKey];
|
|
135
284
|
}
|
|
136
285
|
/**
|
|
137
286
|
* Ensure `providers.<id>.request_timeout_seconds` exists, creating the `providers:` map and the
|
|
138
287
|
* provider sub-block as needed. A value the user already set is left alone — we only fill the gap.
|
|
288
|
+
* Also returns what it created, for Disconnect: `providers`, `providers:{}` (an empty inline map
|
|
289
|
+
* turned into a block), `providers.<id>` and `providers.<id>.request_timeout_seconds`.
|
|
139
290
|
*/
|
|
140
291
|
export function upsertProviderRequestTimeout(content, providerId, seconds) {
|
|
141
292
|
const out = lines(content);
|
|
293
|
+
const created = [];
|
|
142
294
|
const provKeyLine = ` ${providerId}:`;
|
|
143
295
|
const fieldLine = ` request_timeout_seconds: ${seconds}`;
|
|
144
|
-
const
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
if (
|
|
296
|
+
const providerLabel = `providers.${providerId}`;
|
|
297
|
+
const fieldLabel = `providers.${providerId}.request_timeout_seconds`;
|
|
298
|
+
const providersIdx = out.findIndex((line) => topLevelYamlKey(line)?.key === 'providers');
|
|
299
|
+
const providers = providersIdx < 0 ? undefined : topLevelYamlKey(out[providersIdx]);
|
|
300
|
+
if (providers === undefined) {
|
|
149
301
|
while (out.length > 0 && out[out.length - 1].trim() === '')
|
|
150
302
|
out.pop();
|
|
151
303
|
out.push('providers:', provKeyLine, fieldLine);
|
|
152
|
-
|
|
304
|
+
created.push('providers', providerLabel, fieldLabel);
|
|
305
|
+
return [endWithNewline(out.join('\n')), created];
|
|
153
306
|
}
|
|
154
|
-
|
|
307
|
+
// Hermes' YAML reader rejects a duplicate key, and then runs on its defaults: an inline map we
|
|
308
|
+
// cannot edit line by line is left as it is rather than shadowed by a second `providers:`.
|
|
309
|
+
if (providers.value !== '' && providers.value.replace(/\s/g, '') !== '{}')
|
|
310
|
+
return [endWithNewline(out.join('\n')), created];
|
|
311
|
+
if (providers.value !== '') {
|
|
155
312
|
out[providersIdx] = 'providers:';
|
|
313
|
+
created.push('providers:{}');
|
|
314
|
+
}
|
|
156
315
|
// The providers block runs until the next column-0 key.
|
|
157
316
|
let blockEnd = out.length;
|
|
158
317
|
for (let i = providersIdx + 1; i < out.length; i++) {
|
|
@@ -170,7 +329,8 @@ export function upsertProviderRequestTimeout(content, providerId, seconds) {
|
|
|
170
329
|
}
|
|
171
330
|
if (provIdx < 0) {
|
|
172
331
|
out.splice(providersIdx + 1, 0, provKeyLine, fieldLine);
|
|
173
|
-
|
|
332
|
+
created.push(providerLabel, fieldLabel);
|
|
333
|
+
return [endWithNewline(out.join('\n')), created];
|
|
174
334
|
}
|
|
175
335
|
// This provider's sub-block runs until the next key at indent <= 2 (a sibling provider).
|
|
176
336
|
let subEnd = blockEnd;
|
|
@@ -186,62 +346,187 @@ export function upsertProviderRequestTimeout(content, providerId, seconds) {
|
|
|
186
346
|
const hasField = out
|
|
187
347
|
.slice(provIdx + 1, subEnd)
|
|
188
348
|
.some((line) => line.trimStart().startsWith('request_timeout_seconds:'));
|
|
189
|
-
if (!hasField)
|
|
349
|
+
if (!hasField) {
|
|
190
350
|
out.splice(provIdx + 1, 0, fieldLine);
|
|
191
|
-
|
|
351
|
+
created.push(fieldLabel);
|
|
352
|
+
}
|
|
353
|
+
return [endWithNewline(out.join('\n')), created];
|
|
354
|
+
}
|
|
355
|
+
/** `value` without one pair of surrounding quotes. */
|
|
356
|
+
function unquote(value) {
|
|
357
|
+
for (const quote of ['"', "'"]) {
|
|
358
|
+
if (value.length >= 2 && value.startsWith(quote) && value.endsWith(quote))
|
|
359
|
+
return value.slice(1, -1);
|
|
360
|
+
}
|
|
361
|
+
return value;
|
|
362
|
+
}
|
|
363
|
+
/** Whether `current` is the value Connect wrote; Hermes may persist bare `custom` under our name. */
|
|
364
|
+
function valueIsOurs(key, current, ours) {
|
|
365
|
+
const value = unquote(current);
|
|
366
|
+
return value === unquote(ours) || (key === 'provider' && ours === 'custom' && value === LEGACY_PROVIDER);
|
|
367
|
+
}
|
|
368
|
+
export function parseHermesBackup(text) {
|
|
369
|
+
try {
|
|
370
|
+
const root = JSON.parse(text);
|
|
371
|
+
const created = root.created;
|
|
372
|
+
const keys = root.model?.keys;
|
|
373
|
+
if (!Array.isArray(created) || !created.every((c) => typeof c === 'string'))
|
|
374
|
+
return undefined;
|
|
375
|
+
if (typeof keys !== 'object' || keys === null)
|
|
376
|
+
return undefined;
|
|
377
|
+
const parsed = {};
|
|
378
|
+
for (const [key, entry] of Object.entries(keys)) {
|
|
379
|
+
if (typeof entry?.ours !== 'string')
|
|
380
|
+
return undefined;
|
|
381
|
+
const before = entry.before;
|
|
382
|
+
if (before !== undefined && !(Array.isArray(before) && before.every((l) => typeof l === 'string')))
|
|
383
|
+
return undefined;
|
|
384
|
+
parsed[key] = { ours: entry.ours, ...(before !== undefined ? { before: before } : {}) };
|
|
385
|
+
}
|
|
386
|
+
const header = root.model?.header;
|
|
387
|
+
return { ...(typeof header === 'string' ? { header } : {}), keys: parsed, created: created };
|
|
388
|
+
}
|
|
389
|
+
catch {
|
|
390
|
+
return undefined;
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
export function renderHermesBackup(backup) {
|
|
394
|
+
return canonicalJson({
|
|
395
|
+
created: [...new Set(backup.created)].sort(),
|
|
396
|
+
model: { ...(backup.header !== undefined ? { header: backup.header } : {}), keys: backup.keys },
|
|
397
|
+
});
|
|
398
|
+
}
|
|
399
|
+
/**
|
|
400
|
+
* The backup of a Connect that wrote `route` over `content`. A key an earlier Connect recorded keeps
|
|
401
|
+
* that record's original while it still holds the value that Connect wrote; otherwise the user
|
|
402
|
+
* changed it since, and the current lines are the ones to return to.
|
|
403
|
+
*/
|
|
404
|
+
export function hermesBackup(content, route, previous, created) {
|
|
405
|
+
const out = lines(content);
|
|
406
|
+
const section = modelSection(out);
|
|
407
|
+
const stillOurs = (prev) => Object.entries(prev.keys).every(([key, entry]) => {
|
|
408
|
+
const value = modelValue(out, section, key);
|
|
409
|
+
return value !== undefined && valueIsOurs(key, value, entry.ours);
|
|
410
|
+
});
|
|
411
|
+
const header = previous !== undefined && stillOurs(previous)
|
|
412
|
+
? previous.header
|
|
413
|
+
: section === undefined
|
|
414
|
+
? undefined
|
|
415
|
+
: out[section.header];
|
|
416
|
+
const keys = {};
|
|
417
|
+
for (const [key, ours] of route) {
|
|
418
|
+
const earlier = previous?.keys[key];
|
|
419
|
+
const current = modelValue(out, section, key);
|
|
420
|
+
let before;
|
|
421
|
+
if (earlier !== undefined && current !== undefined && valueIsOurs(key, current, earlier.ours)) {
|
|
422
|
+
before = earlier.before;
|
|
423
|
+
}
|
|
424
|
+
else {
|
|
425
|
+
const span = section === undefined ? undefined : childSpan(out, section, key);
|
|
426
|
+
before =
|
|
427
|
+
span === undefined ? undefined : out.slice(span[0], span[1]).filter((l) => !isBlankOrComment(l));
|
|
428
|
+
}
|
|
429
|
+
keys[key] = { ours, ...(before !== undefined ? { before } : {}) };
|
|
430
|
+
}
|
|
431
|
+
return {
|
|
432
|
+
...(header !== undefined ? { header } : {}),
|
|
433
|
+
keys,
|
|
434
|
+
created: [...new Set([...(previous?.created ?? []), ...created])].sort(),
|
|
435
|
+
};
|
|
436
|
+
}
|
|
437
|
+
// ── where Hermes reads its config ───────────────────────────────────────────────────────────────
|
|
438
|
+
/**
|
|
439
|
+
* `HERMES_HOME` as Hermes reads it (`os.path.expanduser(os.path.expandvars(...))`): `$NAME`,
|
|
440
|
+
* `${NAME}` and `%NAME%` take the variable's value (an unset one stays as written), then a leading
|
|
441
|
+
* `~` is the user's home.
|
|
442
|
+
*/
|
|
443
|
+
export function expandHermesHome(raw, env, home) {
|
|
444
|
+
const value = (name) => {
|
|
445
|
+
const v = env[name];
|
|
446
|
+
return v !== undefined && v.trim() !== '' ? v : undefined;
|
|
447
|
+
};
|
|
448
|
+
const expanded = raw.replace(/\$\{([^}]*)\}|\$([A-Za-z0-9_]+)|%([^%]+)%/g, (match, braced, bare, percent) => value((braced ?? bare ?? percent)) ?? match);
|
|
449
|
+
if (expanded === '~')
|
|
450
|
+
return home;
|
|
451
|
+
if (expanded.startsWith('~/') || expanded.startsWith('~\\'))
|
|
452
|
+
return `${home}${expanded.slice(1)}`;
|
|
453
|
+
return expanded;
|
|
192
454
|
}
|
|
455
|
+
const parentName = (path) => path
|
|
456
|
+
.split(/[\\/]+/)
|
|
457
|
+
.filter(Boolean)
|
|
458
|
+
.slice(-2, -1)[0];
|
|
193
459
|
/**
|
|
194
|
-
*
|
|
195
|
-
*
|
|
460
|
+
* The directory whose `config.yaml` the `hermes` CLI reads (`resolve_hermes_dir` in the app):
|
|
461
|
+
* `HERMES_HOME` (expanded) or the platform default (`%LOCALAPPDATA%/hermes` on Windows, `~/.hermes`
|
|
462
|
+
* elsewhere) is the root; a `HERMES_HOME` naming a profile (`<root>/profiles/<name>`) is used as it
|
|
463
|
+
* is; otherwise the sticky profile `hermes profile use <name>` leaves in `<root>/active_profile` is
|
|
464
|
+
* what every `hermes` without `-p` runs, from `<root>/profiles/<name>`.
|
|
196
465
|
*/
|
|
197
|
-
export function hermesDir(env, platform, fs) {
|
|
198
|
-
if (platform !== 'win32')
|
|
199
|
-
return '.hermes';
|
|
200
|
-
const explicit = env['HERMES_HOME'];
|
|
201
|
-
if (explicit && explicit !== '')
|
|
202
|
-
return explicit;
|
|
466
|
+
export async function hermesDir(env, platform, fs) {
|
|
203
467
|
const localAppData = env['LOCALAPPDATA'];
|
|
204
|
-
|
|
468
|
+
const native = platform === 'win32'
|
|
469
|
+
? `${localAppData && localAppData.trim() !== '' ? localAppData : `${fs.home}/AppData/Local`}/hermes`
|
|
470
|
+
: '.hermes';
|
|
471
|
+
const raw = env['HERMES_HOME']?.trim();
|
|
472
|
+
const envHome = raw ? expandHermesHome(raw, env, fs.home) : undefined;
|
|
473
|
+
if (envHome !== undefined && parentName(envHome) === 'profiles')
|
|
474
|
+
return envHome;
|
|
475
|
+
// The root holding `active_profile`: the platform default for anything under it, else
|
|
476
|
+
// `HERMES_HOME` itself (Docker and custom roots).
|
|
477
|
+
const nativeAbs = fs.absolute(native).replace(/[\\/]+$/, '');
|
|
478
|
+
const under = envHome !== undefined &&
|
|
479
|
+
(fs.absolute(envHome) === nativeAbs ||
|
|
480
|
+
fs.absolute(envHome).startsWith(`${nativeAbs}/`) ||
|
|
481
|
+
fs.absolute(envHome).startsWith(`${nativeAbs}\\`));
|
|
482
|
+
const root = envHome !== undefined && !under ? envHome : native;
|
|
483
|
+
const base = envHome ?? native;
|
|
484
|
+
const active = ((await fs.read(`${root}/active_profile`)) ?? '')
|
|
485
|
+
.replace(/^\uFEFF/, '')
|
|
486
|
+
.trim()
|
|
487
|
+
.toLowerCase();
|
|
488
|
+
if (active !== '' && active !== 'default') {
|
|
489
|
+
const profile = `${base}/profiles/${active}`;
|
|
490
|
+
if (await fs.exists(profile))
|
|
491
|
+
return profile;
|
|
492
|
+
}
|
|
493
|
+
return base;
|
|
205
494
|
}
|
|
206
|
-
export const configureHermes = async ({ apiUrl, model, fs, env, platform }) => {
|
|
207
|
-
const dir = hermesDir(env, platform, fs);
|
|
495
|
+
export const configureHermes = async ({ apiUrl, model, apiKey, fs, env, platform, contextLength, }) => {
|
|
496
|
+
const dir = await hermesDir(env, platform, fs);
|
|
208
497
|
const configPath = `${dir}/config.yaml`;
|
|
209
498
|
const envPath = `${dir}/.env`;
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
//
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
const
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
return replaceYamlScalarValue(line, apiUrl);
|
|
232
|
-
}
|
|
233
|
-
return line;
|
|
234
|
-
});
|
|
235
|
-
// Hermes refuses any model whose context window is below 64K, so the floor is not negotiable.
|
|
236
|
-
const withProvider = upsertAtomicProvider(patched.join('\n'), apiUrl, model, HERMES_CONTEXT_LENGTH);
|
|
237
|
-
const withTimeout = upsertProviderRequestTimeout(withProvider, 'custom', REQUEST_TIMEOUT_SECONDS);
|
|
238
|
-
await fs.write(configPath, content.endsWith('\n') ? endWithNewline(withTimeout) : withTimeout);
|
|
499
|
+
// The installer runs with `--skip-setup`, so a fresh install may have no config at all; Hermes
|
|
500
|
+
// fills every key we do not write with its own defaults.
|
|
501
|
+
const content = (await fs.read(configPath)) ?? '';
|
|
502
|
+
const previousText = await fs.read(`${configPath}${BACKUP_SUFFIX}`);
|
|
503
|
+
const previous = previousText === undefined ? undefined : parseHermesBackup(previousText);
|
|
504
|
+
// Hermes refuses any model whose window is below 64K, so an unknown window is written as that floor;
|
|
505
|
+
// a known one is written as served.
|
|
506
|
+
const ctx = contextLength ?? HERMES_CONTEXT_LENGTH;
|
|
507
|
+
const key = JSON.stringify(apiKey === '' ? 'atomic' : apiKey);
|
|
508
|
+
const route = [
|
|
509
|
+
['default', model],
|
|
510
|
+
['provider', 'custom'],
|
|
511
|
+
['base_url', apiUrl],
|
|
512
|
+
['api_key', key],
|
|
513
|
+
['context_length', String(ctx)],
|
|
514
|
+
];
|
|
515
|
+
const patched = patchModelSection(content, route);
|
|
516
|
+
const [withProvider, addedList] = upsertAtomicProvider(patched, apiUrl, model, ctx, key);
|
|
517
|
+
const [withTimeout, created] = upsertProviderRequestTimeout(withProvider, 'custom', REQUEST_TIMEOUT_SECONDS);
|
|
518
|
+
if (addedList)
|
|
519
|
+
created.push('custom_providers');
|
|
239
520
|
// Bypass a system proxy for loopback. Only ever a patch: we never create the file.
|
|
240
521
|
const envContent = await fs.read(envPath);
|
|
241
522
|
if (envContent !== undefined && !envContent.includes('NO_PROXY=') && !envContent.includes('no_proxy=')) {
|
|
242
523
|
const separator = envContent.endsWith('\n') ? '' : '\n';
|
|
243
|
-
await fs.write(envPath, `${envContent}${separator}\
|
|
524
|
+
await fs.write(envPath, `${envContent}${separator}\n${NO_PROXY_LINE}\n${NO_PROXY_EXPORT_LINE}`);
|
|
525
|
+
created.push('env.no_proxy');
|
|
244
526
|
}
|
|
527
|
+
const backup = hermesBackup(content, route, previous, created);
|
|
528
|
+
await fs.write(configPath, withTimeout);
|
|
529
|
+
await writeBackupText(fs, configPath, renderHermesBackup(backup));
|
|
245
530
|
};
|
|
246
531
|
registerWriter('hermes', configureHermes);
|
|
247
532
|
//# sourceMappingURL=hermes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hermes.js","sourceRoot":"","sources":["../../../src/integrations/configure/hermes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hermes.js","sourceRoot":"","sources":["../../../src/integrations/configure/hermes.ts"],"names":[],"mappings":"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"}
|