@tickernelz/paperclip-pro-shared 2026.1105.0 → 2026.1108.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/.paperclip-build-complete +1 -1
- package/dist/agent-appearance.d.ts +1 -1
- package/dist/agent-appearance.js +1 -1
- package/dist/ai-connections.d.ts +53 -1
- package/dist/ai-connections.d.ts.map +1 -1
- package/dist/ai-connections.js +8 -2
- package/dist/ai-connections.js.map +1 -1
- package/dist/ai-provider-routing.d.ts.map +1 -1
- package/dist/ai-provider-routing.js +1 -2
- package/dist/ai-provider-routing.js.map +1 -1
- package/dist/app-definitions.test.js +0 -9
- package/dist/app-definitions.test.js.map +1 -1
- package/dist/config-schema.js +10 -10
- package/dist/config-schema.js.map +1 -1
- package/dist/config-schema.test.js +5 -5
- package/dist/config-schema.test.js.map +1 -1
- package/dist/constants.d.ts +6 -4
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +3 -25
- package/dist/constants.js.map +1 -1
- package/dist/env-aliases-bootstrap.d.ts +2 -0
- package/dist/env-aliases-bootstrap.d.ts.map +1 -0
- package/dist/env-aliases-bootstrap.js +3 -0
- package/dist/env-aliases-bootstrap.js.map +1 -0
- package/dist/env-aliases.d.ts +12 -0
- package/dist/env-aliases.d.ts.map +1 -0
- package/dist/env-aliases.js +61 -0
- package/dist/env-aliases.js.map +1 -0
- package/dist/env-aliases.test.d.ts +2 -0
- package/dist/env-aliases.test.d.ts.map +1 -0
- package/dist/env-aliases.test.js +92 -0
- package/dist/env-aliases.test.js.map +1 -0
- package/dist/environment-support.d.ts.map +1 -1
- package/dist/environment-support.js +2 -12
- package/dist/environment-support.js.map +1 -1
- package/dist/environment-support.test.js +0 -19
- package/dist/environment-support.test.js.map +1 -1
- package/dist/feature-catalog.d.ts +55 -0
- package/dist/feature-catalog.d.ts.map +1 -1
- package/dist/feature-catalog.js +459 -0
- package/dist/feature-catalog.js.map +1 -1
- package/dist/feature-catalog.test.js +115 -1
- package/dist/feature-catalog.test.js.map +1 -1
- package/dist/frontmatter.test.js +0 -1
- package/dist/frontmatter.test.js.map +1 -1
- package/dist/home-paths.d.ts +3 -0
- package/dist/home-paths.d.ts.map +1 -1
- package/dist/home-paths.js +26 -2
- package/dist/home-paths.js.map +1 -1
- package/dist/home-paths.test.js +56 -1
- package/dist/home-paths.test.js.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/local-browser-contract.d.ts +2 -2
- package/dist/local-browser-contract.d.ts.map +1 -1
- package/dist/local-browser-contract.js +7 -1
- package/dist/local-browser-contract.js.map +1 -1
- package/dist/local-browser.d.ts +0 -30
- package/dist/local-browser.d.ts.map +1 -1
- package/dist/local-browser.js +1 -18
- package/dist/local-browser.js.map +1 -1
- package/dist/mcp-setup.js +2 -2
- package/dist/mcp-setup.js.map +1 -1
- package/dist/omp-agent-settings.d.ts +187 -0
- package/dist/omp-agent-settings.d.ts.map +1 -0
- package/dist/omp-agent-settings.js +518 -0
- package/dist/omp-agent-settings.js.map +1 -0
- package/dist/omp-agent-settings.test.d.ts +2 -0
- package/dist/omp-agent-settings.test.d.ts.map +1 -0
- package/dist/omp-agent-settings.test.js +181 -0
- package/dist/omp-agent-settings.test.js.map +1 -0
- package/dist/retired-adapters.d.ts +4 -0
- package/dist/retired-adapters.d.ts.map +1 -0
- package/dist/retired-adapters.js +23 -0
- package/dist/retired-adapters.js.map +1 -0
- package/dist/types/agent.d.ts +1 -1
- package/dist/types/agent.d.ts.map +1 -1
- package/dist/types/app-definition.d.ts +0 -3
- package/dist/types/app-definition.d.ts.map +1 -1
- package/dist/types/plugin.d.ts +0 -5
- package/dist/types/plugin.d.ts.map +1 -1
- package/dist/validators/access.d.ts +0 -9
- package/dist/validators/access.d.ts.map +1 -1
- package/dist/validators/access.js +1 -10
- package/dist/validators/access.js.map +1 -1
- package/dist/validators/adapter-auth-session.d.ts +0 -8
- package/dist/validators/adapter-auth-session.d.ts.map +1 -1
- package/dist/validators/adapter-auth-session.js +2 -2
- package/dist/validators/agent.d.ts +0 -2
- package/dist/validators/agent.d.ts.map +1 -1
- package/dist/validators/agent.js +1 -3
- package/dist/validators/agent.js.map +1 -1
- package/dist/validators/app-definition.d.ts +0 -6
- package/dist/validators/app-definition.d.ts.map +1 -1
- package/dist/validators/app-definition.js +2 -8
- package/dist/validators/app-definition.js.map +1 -1
- package/dist/validators/claude-setup-token-session.d.ts +0 -8
- package/dist/validators/claude-setup-token-session.d.ts.map +1 -1
- package/dist/validators/claude-setup-token-session.js +2 -2
- package/dist/validators/finance.d.ts +2 -14
- package/dist/validators/finance.d.ts.map +1 -1
- package/dist/validators/index.d.ts +1 -1
- package/dist/validators/index.d.ts.map +1 -1
- package/dist/validators/index.js +1 -1
- package/dist/validators/index.js.map +1 -1
- package/dist/validators/onboarding-omp.d.ts +77 -0
- package/dist/validators/onboarding-omp.d.ts.map +1 -0
- package/dist/validators/onboarding-omp.js +24 -0
- package/dist/validators/onboarding-omp.js.map +1 -0
- package/dist/validators/plugin.d.ts +2 -43
- package/dist/validators/plugin.d.ts.map +1 -1
- package/dist/validators/plugin.js +3 -5
- package/dist/validators/plugin.js.map +1 -1
- package/dist/validators/plugin.test.js +5 -3
- package/dist/validators/plugin.test.js.map +1 -1
- package/package.json +1 -1
- package/dist/ai-connection-router.d.ts +0 -361
- package/dist/ai-connection-router.d.ts.map +0 -1
- package/dist/ai-connection-router.js +0 -55
- package/dist/ai-connection-router.js.map +0 -1
|
@@ -0,0 +1,518 @@
|
|
|
1
|
+
import { AGENT_FALLBACK_MODELS_MAX } from "./agent-fallback-models.js";
|
|
2
|
+
export const OMP_SETTINGS_KEY = "ompSettings";
|
|
3
|
+
export const OMP_SETTINGS_PATH_PREFIX = `${OMP_SETTINGS_KEY}.`;
|
|
4
|
+
export const OMP_STYLE_KEY = "stylePreset";
|
|
5
|
+
export const OMP_FALLBACK_MODE_KEY = "fallbackMode";
|
|
6
|
+
export const OMP_RUN_GRACE_SEC = 60;
|
|
7
|
+
export const OMP_SESSION_NEUTRAL_ADAPTER_CONFIG_KEYS = [OMP_STYLE_KEY, OMP_FALLBACK_MODE_KEY];
|
|
8
|
+
export const OMP_MODEL_SWITCH_ADAPTER_CONFIG_KEYS = [
|
|
9
|
+
"model",
|
|
10
|
+
"fallbackModels",
|
|
11
|
+
"modelEfforts",
|
|
12
|
+
"thinking",
|
|
13
|
+
"thinkingEffort",
|
|
14
|
+
"effort",
|
|
15
|
+
"smolModel",
|
|
16
|
+
"slowModel",
|
|
17
|
+
"planModel",
|
|
18
|
+
];
|
|
19
|
+
export const OMP_MODEL_SWITCH_OMP_SETTINGS = ["defaultThinkingLevel"];
|
|
20
|
+
export const OMP_SESSION_KEEPING_ADAPTER_CONFIG_KEYS = [
|
|
21
|
+
...OMP_MODEL_SWITCH_ADAPTER_CONFIG_KEYS,
|
|
22
|
+
...OMP_MODEL_SWITCH_OMP_SETTINGS.map((key) => `${OMP_SETTINGS_PATH_PREFIX}${key}`),
|
|
23
|
+
...OMP_SESSION_NEUTRAL_ADAPTER_CONFIG_KEYS,
|
|
24
|
+
];
|
|
25
|
+
const UNSAFE_KEY_SEGMENTS = new Set(["__proto__", "prototype", "constructor"]);
|
|
26
|
+
export function isWellFormedOmpSettingKey(key) {
|
|
27
|
+
return /^[A-Za-z0-9_-]+(\.[A-Za-z0-9_-]+)*$/.test(key) && !key.split(".").some((segment) => UNSAFE_KEY_SEGMENTS.has(segment));
|
|
28
|
+
}
|
|
29
|
+
export const OMP_THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh", "max"];
|
|
30
|
+
export const OMP_STYLE_PRESETS = {
|
|
31
|
+
balanced: { label: "Balanced", description: "Good answers at normal cost", thinking: "high", advisor: true, prewalk: false, maxRetries: 3 },
|
|
32
|
+
fast: { label: "Fast", description: "Quick replies, lower cost", thinking: "low", advisor: false, prewalk: true, maxRetries: 3 },
|
|
33
|
+
thorough: { label: "Thorough", description: "Plans first, checks its work", thinking: "xhigh", advisor: true, prewalk: false, maxRetries: 5 },
|
|
34
|
+
};
|
|
35
|
+
export const OMP_THINKING_CHOICES = {
|
|
36
|
+
quick: { label: "Quick", level: "low" },
|
|
37
|
+
balanced: { label: "Balanced", level: "medium" },
|
|
38
|
+
deep: { label: "Deep", level: "high" },
|
|
39
|
+
max: { label: "Max", level: "xhigh" },
|
|
40
|
+
};
|
|
41
|
+
export const OMP_TOOLS_CHOICES = {
|
|
42
|
+
standard: { label: "Standard", description: "OMP's default tool set" },
|
|
43
|
+
readOnly: { label: "Read only", description: "No shell and no edits" },
|
|
44
|
+
everything: { label: "Everything", description: "Standard plus the browser" },
|
|
45
|
+
};
|
|
46
|
+
export const OMP_LIMIT_CHOICES = {
|
|
47
|
+
m30: { label: "30 min", seconds: 1800 },
|
|
48
|
+
h1: { label: "1 hour", seconds: 3600 },
|
|
49
|
+
h2: { label: "2 hours", seconds: 7200 },
|
|
50
|
+
none: { label: "No limit", seconds: 0 },
|
|
51
|
+
};
|
|
52
|
+
export const OMP_READ_ONLY_DENIED_TOOLS = ["edit", "write", "ast_edit", "eval"];
|
|
53
|
+
const TOOL_SWITCH_PATHS = ["bash.enabled", "browser.enabled", "web_search.enabled", "github.enabled", "ask.enabled"].map((key) => OMP_SETTINGS_PATH_PREFIX + key);
|
|
54
|
+
const TOOL_APPROVAL_PATH = `${OMP_SETTINGS_PATH_PREFIX}tools.approval`;
|
|
55
|
+
export const OMP_CONTROL_PATHS = {
|
|
56
|
+
style: [OMP_STYLE_KEY, "thinking", "advisor", "prewalk", `${OMP_SETTINGS_PATH_PREFIX}retry.maxRetries`],
|
|
57
|
+
model: ["model", "smolModel", "slowModel", "planModel"],
|
|
58
|
+
thinking: ["thinking", "modelEfforts", `${OMP_SETTINGS_PATH_PREFIX}defaultThinkingLevel`],
|
|
59
|
+
backup: [OMP_FALLBACK_MODE_KEY, "fallbackModels", `${OMP_SETTINGS_PATH_PREFIX}retry.fallbackOn`],
|
|
60
|
+
tools: ["tools", "approvalMode", "noLsp", ...TOOL_SWITCH_PATHS, TOOL_APPROVAL_PATH],
|
|
61
|
+
limit: ["maxTime", "timeoutSec"],
|
|
62
|
+
};
|
|
63
|
+
export const OMP_CONTROL_IDS = Object.keys(OMP_CONTROL_PATHS);
|
|
64
|
+
export const OMP_ADAPTER_ALIASES = {
|
|
65
|
+
"advisor.enabled": { path: "advisor" },
|
|
66
|
+
"prewalk.enabled": { path: "prewalk" },
|
|
67
|
+
"lsp.enabled": { path: "noLsp", invert: true },
|
|
68
|
+
"skills.enabled": { path: "noSkills", invert: true },
|
|
69
|
+
omitThinking: { path: "printThoughts", invert: true },
|
|
70
|
+
"compaction.experimentalContextManagement": { path: "experimentalContextManagement" },
|
|
71
|
+
"tools.approvalMode": { path: "approvalMode" },
|
|
72
|
+
};
|
|
73
|
+
export const OMP_LOCKED_SETTINGS = {
|
|
74
|
+
"task.maxRecursionDepth": "Paperclip keeps this at 0 so a run never starts OMP subagents it cannot track.",
|
|
75
|
+
};
|
|
76
|
+
export function isBlockedOmpSettingKey(key) {
|
|
77
|
+
return /^(auth|secrets)\./.test(key) || /(^|\.)(token|apiKey|api_key|secret|password|credentials?)$/i.test(key);
|
|
78
|
+
}
|
|
79
|
+
export function ompSettingPath(key) {
|
|
80
|
+
return OMP_ADAPTER_ALIASES[key]?.path ?? OMP_SETTINGS_PATH_PREFIX + key;
|
|
81
|
+
}
|
|
82
|
+
function isRecord(value) {
|
|
83
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
84
|
+
}
|
|
85
|
+
function typeMatches(entry, value) {
|
|
86
|
+
switch (entry.type) {
|
|
87
|
+
case "boolean":
|
|
88
|
+
return typeof value === "boolean";
|
|
89
|
+
case "number":
|
|
90
|
+
return typeof value === "number" && Number.isFinite(value);
|
|
91
|
+
case "string":
|
|
92
|
+
return typeof value === "string";
|
|
93
|
+
case "array":
|
|
94
|
+
return Array.isArray(value);
|
|
95
|
+
case "record":
|
|
96
|
+
return isRecord(value);
|
|
97
|
+
case "enum":
|
|
98
|
+
return typeof value === "string" && (entry.options ?? []).includes(value);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
export function validateOmpSettingValue(entry, value) {
|
|
102
|
+
if (typeMatches(entry, value))
|
|
103
|
+
return null;
|
|
104
|
+
if (entry.type === "enum")
|
|
105
|
+
return `${entry.key} must be one of: ${(entry.options ?? []).join(", ")}.`;
|
|
106
|
+
return `${entry.key} must be a${entry.type === "array" ? "n array" : entry.type === "record" ? " map" : ` ${entry.type}`}.`;
|
|
107
|
+
}
|
|
108
|
+
export function validateOmpSettingsMap(value, catalog) {
|
|
109
|
+
if (value === undefined || value === null)
|
|
110
|
+
return [];
|
|
111
|
+
if (!isRecord(value))
|
|
112
|
+
return [`${OMP_SETTINGS_KEY} must be a map of OMP setting keys to values.`];
|
|
113
|
+
const byKey = catalog ? new Map(catalog.map((entry) => [entry.key, entry])) : null;
|
|
114
|
+
const errors = [];
|
|
115
|
+
for (const [key, item] of Object.entries(value)) {
|
|
116
|
+
if (!isWellFormedOmpSettingKey(key))
|
|
117
|
+
errors.push(`"${key}" is not an OMP setting key.`);
|
|
118
|
+
else if (isBlockedOmpSettingKey(key))
|
|
119
|
+
errors.push(`${key} holds credentials and stays in OMP's own store.`);
|
|
120
|
+
else if (OMP_LOCKED_SETTINGS[key])
|
|
121
|
+
errors.push(`${key}: ${OMP_LOCKED_SETTINGS[key]}`);
|
|
122
|
+
else if (OMP_ADAPTER_ALIASES[key])
|
|
123
|
+
errors.push(`Set ${key} through the agent's ${OMP_ADAPTER_ALIASES[key].path} setting.`);
|
|
124
|
+
else if (byKey) {
|
|
125
|
+
const entry = byKey.get(key);
|
|
126
|
+
if (!entry)
|
|
127
|
+
errors.push(`OMP has no setting named ${key}.`);
|
|
128
|
+
else {
|
|
129
|
+
const problem = validateOmpSettingValue(entry, item);
|
|
130
|
+
if (problem)
|
|
131
|
+
errors.push(problem);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return errors;
|
|
136
|
+
}
|
|
137
|
+
export function readAgentSetting(config, path) {
|
|
138
|
+
if (!config)
|
|
139
|
+
return undefined;
|
|
140
|
+
if (path.startsWith(OMP_SETTINGS_PATH_PREFIX)) {
|
|
141
|
+
const settings = config[OMP_SETTINGS_KEY];
|
|
142
|
+
return isRecord(settings) ? settings[path.slice(OMP_SETTINGS_PATH_PREFIX.length)] : undefined;
|
|
143
|
+
}
|
|
144
|
+
return config[path];
|
|
145
|
+
}
|
|
146
|
+
export function readOmpSetting(config, key) {
|
|
147
|
+
const alias = OMP_ADAPTER_ALIASES[key];
|
|
148
|
+
const value = readAgentSetting(config, ompSettingPath(key));
|
|
149
|
+
return alias?.invert && typeof value === "boolean" ? !value : value;
|
|
150
|
+
}
|
|
151
|
+
export function ompSettingStoredValue(key, value) {
|
|
152
|
+
return OMP_ADAPTER_ALIASES[key]?.invert && typeof value === "boolean" ? !value : value;
|
|
153
|
+
}
|
|
154
|
+
export function applyAgentSettingsPatch(config, patch) {
|
|
155
|
+
const next = { ...(config ?? {}) };
|
|
156
|
+
const settings = isRecord(next[OMP_SETTINGS_KEY]) ? { ...next[OMP_SETTINGS_KEY] } : {};
|
|
157
|
+
let settingsTouched = false;
|
|
158
|
+
for (const [path, value] of Object.entries(patch)) {
|
|
159
|
+
if (path.split(".").some((segment) => UNSAFE_KEY_SEGMENTS.has(segment)))
|
|
160
|
+
continue;
|
|
161
|
+
if (path.startsWith(OMP_SETTINGS_PATH_PREFIX)) {
|
|
162
|
+
settingsTouched = true;
|
|
163
|
+
const key = path.slice(OMP_SETTINGS_PATH_PREFIX.length);
|
|
164
|
+
if (value === undefined)
|
|
165
|
+
delete settings[key];
|
|
166
|
+
else
|
|
167
|
+
settings[key] = value;
|
|
168
|
+
continue;
|
|
169
|
+
}
|
|
170
|
+
if (value === undefined)
|
|
171
|
+
delete next[path];
|
|
172
|
+
else
|
|
173
|
+
next[path] = value;
|
|
174
|
+
}
|
|
175
|
+
if (settingsTouched) {
|
|
176
|
+
if (Object.keys(settings).length > 0)
|
|
177
|
+
next[OMP_SETTINGS_KEY] = settings;
|
|
178
|
+
else
|
|
179
|
+
delete next[OMP_SETTINGS_KEY];
|
|
180
|
+
}
|
|
181
|
+
return next;
|
|
182
|
+
}
|
|
183
|
+
function canonical(value) {
|
|
184
|
+
if (Array.isArray(value))
|
|
185
|
+
return value.map(canonical);
|
|
186
|
+
if (isRecord(value)) {
|
|
187
|
+
return Object.fromEntries(Object.keys(value).sort().map((key) => [key, canonical(value[key])]));
|
|
188
|
+
}
|
|
189
|
+
return value;
|
|
190
|
+
}
|
|
191
|
+
export function sameAgentSettingValue(left, right) {
|
|
192
|
+
return JSON.stringify(canonical(left)) === JSON.stringify(canonical(right));
|
|
193
|
+
}
|
|
194
|
+
function levelIndex(level) {
|
|
195
|
+
return OMP_THINKING_LEVELS.indexOf(level);
|
|
196
|
+
}
|
|
197
|
+
export function nearestThinkingLevel(wanted, supported) {
|
|
198
|
+
const target = levelIndex(wanted);
|
|
199
|
+
const levels = (supported ?? []).filter((level) => levelIndex(level) >= 0);
|
|
200
|
+
if (target < 0 || levels.length === 0)
|
|
201
|
+
return wanted;
|
|
202
|
+
let best = levels[0];
|
|
203
|
+
for (const level of levels) {
|
|
204
|
+
const distance = Math.abs(levelIndex(level) - target);
|
|
205
|
+
const bestDistance = Math.abs(levelIndex(best) - target);
|
|
206
|
+
if (distance < bestDistance || (distance === bestDistance && levelIndex(level) > levelIndex(best)))
|
|
207
|
+
best = level;
|
|
208
|
+
}
|
|
209
|
+
return best;
|
|
210
|
+
}
|
|
211
|
+
function providerOf(model) {
|
|
212
|
+
if (model.provider)
|
|
213
|
+
return model.provider;
|
|
214
|
+
const slash = model.id.indexOf("/");
|
|
215
|
+
return slash > 0 ? model.id.slice(0, slash) : "";
|
|
216
|
+
}
|
|
217
|
+
function bareId(id) {
|
|
218
|
+
const slash = id.indexOf("/");
|
|
219
|
+
return slash > 0 ? id.slice(slash + 1) : id;
|
|
220
|
+
}
|
|
221
|
+
function price(model) {
|
|
222
|
+
const output = model.cost?.output;
|
|
223
|
+
const input = model.cost?.input;
|
|
224
|
+
if (typeof output === "number" && output > 0)
|
|
225
|
+
return output;
|
|
226
|
+
if (typeof input === "number" && input > 0)
|
|
227
|
+
return input * 4;
|
|
228
|
+
return null;
|
|
229
|
+
}
|
|
230
|
+
export function deriveOmpModelRoles(modelId, models) {
|
|
231
|
+
const picked = models.find((model) => model.id === modelId);
|
|
232
|
+
const provider = picked ? providerOf(picked) : modelId.includes("/") ? modelId.slice(0, modelId.indexOf("/")) : "";
|
|
233
|
+
const family = models.filter((model) => providerOf(model) === provider && price(model) !== null);
|
|
234
|
+
if (family.length === 0)
|
|
235
|
+
return { smolModel: modelId, slowModel: modelId, planModel: modelId };
|
|
236
|
+
const sorted = [...family].sort((a, b) => price(a) - price(b) || a.id.localeCompare(b.id));
|
|
237
|
+
const smol = sorted[0].id;
|
|
238
|
+
const slow = sorted[sorted.length - 1].id;
|
|
239
|
+
return { smolModel: smol, slowModel: slow, planModel: slow };
|
|
240
|
+
}
|
|
241
|
+
export function deriveOmpBackupModels(modelId, models, limit = 2) {
|
|
242
|
+
const picked = models.find((model) => model.id === modelId);
|
|
243
|
+
if (!picked)
|
|
244
|
+
return [];
|
|
245
|
+
const provider = providerOf(picked);
|
|
246
|
+
const target = price(picked);
|
|
247
|
+
const others = models.filter((model) => providerOf(model) !== provider && model.id !== modelId);
|
|
248
|
+
const score = (model) => {
|
|
249
|
+
if (bareId(model.id) === bareId(modelId))
|
|
250
|
+
return -1;
|
|
251
|
+
const own = price(model);
|
|
252
|
+
if (target === null || own === null)
|
|
253
|
+
return Number.POSITIVE_INFINITY;
|
|
254
|
+
return Math.abs(Math.log(own) - Math.log(target));
|
|
255
|
+
};
|
|
256
|
+
const ranked = others
|
|
257
|
+
.map((model) => ({ model, score: score(model) }))
|
|
258
|
+
.filter((entry) => Number.isFinite(entry.score))
|
|
259
|
+
.sort((a, b) => a.score - b.score || a.model.id.localeCompare(b.model.id));
|
|
260
|
+
const picks = [];
|
|
261
|
+
const usedProviders = new Set();
|
|
262
|
+
for (const { model } of ranked) {
|
|
263
|
+
const owner = providerOf(model);
|
|
264
|
+
if (usedProviders.has(owner))
|
|
265
|
+
continue;
|
|
266
|
+
usedProviders.add(owner);
|
|
267
|
+
picks.push(model.id);
|
|
268
|
+
if (picks.length >= Math.min(limit, AGENT_FALLBACK_MODELS_MAX))
|
|
269
|
+
break;
|
|
270
|
+
}
|
|
271
|
+
return picks;
|
|
272
|
+
}
|
|
273
|
+
function stringList(value) {
|
|
274
|
+
return Array.isArray(value) ? value.filter((entry) => typeof entry === "string" && entry.trim().length > 0) : [];
|
|
275
|
+
}
|
|
276
|
+
function effortsFor(fallbacks, level, models) {
|
|
277
|
+
if (!level || fallbacks.length === 0)
|
|
278
|
+
return undefined;
|
|
279
|
+
const efforts = {};
|
|
280
|
+
for (const selector of fallbacks) {
|
|
281
|
+
efforts[selector] = nearestThinkingLevel(level, models.find((model) => model.id === selector)?.thinking);
|
|
282
|
+
}
|
|
283
|
+
return efforts;
|
|
284
|
+
}
|
|
285
|
+
function thinkingPatch(level, config, models) {
|
|
286
|
+
return {
|
|
287
|
+
thinking: level,
|
|
288
|
+
[`${OMP_SETTINGS_PATH_PREFIX}defaultThinkingLevel`]: level,
|
|
289
|
+
modelEfforts: effortsFor(stringList(config.fallbackModels), level, models),
|
|
290
|
+
};
|
|
291
|
+
}
|
|
292
|
+
function backupPatch(choice, config, models, custom) {
|
|
293
|
+
const model = typeof config.model === "string" ? config.model : "";
|
|
294
|
+
const list = choice === "automatic" ? deriveOmpBackupModels(model, models) : [...(custom ?? [])].filter((entry) => entry && entry !== model).slice(0, AGENT_FALLBACK_MODELS_MAX);
|
|
295
|
+
const level = typeof config.thinking === "string" ? config.thinking : undefined;
|
|
296
|
+
return {
|
|
297
|
+
[OMP_FALLBACK_MODE_KEY]: choice,
|
|
298
|
+
fallbackModels: list.length > 0 ? list : undefined,
|
|
299
|
+
modelEfforts: effortsFor(list, level, models),
|
|
300
|
+
[`${OMP_SETTINGS_PATH_PREFIX}retry.fallbackOn`]: list.length > 0 ? "any" : undefined,
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
export function ompChoicePatch(control, value, context, options = {}) {
|
|
304
|
+
const { config, models } = context;
|
|
305
|
+
switch (control) {
|
|
306
|
+
case "style": {
|
|
307
|
+
const preset = OMP_STYLE_PRESETS[value];
|
|
308
|
+
if (!preset)
|
|
309
|
+
throw new Error(`Unknown style "${value}".`);
|
|
310
|
+
return {
|
|
311
|
+
[OMP_STYLE_KEY]: value,
|
|
312
|
+
advisor: preset.advisor,
|
|
313
|
+
prewalk: preset.prewalk,
|
|
314
|
+
[`${OMP_SETTINGS_PATH_PREFIX}retry.maxRetries`]: preset.maxRetries,
|
|
315
|
+
...thinkingPatch(preset.thinking, config, models),
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
case "thinking": {
|
|
319
|
+
const choice = OMP_THINKING_CHOICES[value];
|
|
320
|
+
if (!choice)
|
|
321
|
+
throw new Error(`Unknown thinking choice "${value}".`);
|
|
322
|
+
return thinkingPatch(choice.level, config, models);
|
|
323
|
+
}
|
|
324
|
+
case "model": {
|
|
325
|
+
if (!value)
|
|
326
|
+
throw new Error("Pick a model.");
|
|
327
|
+
const roles = deriveOmpModelRoles(value, models);
|
|
328
|
+
const next = applyAgentSettingsPatch(config, { model: value, ...roles });
|
|
329
|
+
const patch = { model: value, ...roles };
|
|
330
|
+
if (config[OMP_FALLBACK_MODE_KEY] === "automatic")
|
|
331
|
+
Object.assign(patch, backupPatch("automatic", next, models));
|
|
332
|
+
return patch;
|
|
333
|
+
}
|
|
334
|
+
case "backup": {
|
|
335
|
+
if (value !== "automatic" && value !== "custom")
|
|
336
|
+
throw new Error(`Unknown backup choice "${value}".`);
|
|
337
|
+
return backupPatch(value, config, models, options.customBackups);
|
|
338
|
+
}
|
|
339
|
+
case "tools": {
|
|
340
|
+
if (!(value in OMP_TOOLS_CHOICES))
|
|
341
|
+
throw new Error(`Unknown tools choice "${value}".`);
|
|
342
|
+
const cleared = { tools: undefined, approvalMode: undefined, noLsp: undefined, [TOOL_APPROVAL_PATH]: undefined };
|
|
343
|
+
for (const path of TOOL_SWITCH_PATHS)
|
|
344
|
+
cleared[path] = undefined;
|
|
345
|
+
if (value === "readOnly") {
|
|
346
|
+
return {
|
|
347
|
+
...cleared,
|
|
348
|
+
[`${OMP_SETTINGS_PATH_PREFIX}bash.enabled`]: false,
|
|
349
|
+
[`${OMP_SETTINGS_PATH_PREFIX}browser.enabled`]: false,
|
|
350
|
+
[TOOL_APPROVAL_PATH]: Object.fromEntries(OMP_READ_ONLY_DENIED_TOOLS.map((tool) => [tool, "deny"])),
|
|
351
|
+
};
|
|
352
|
+
}
|
|
353
|
+
if (value === "everything") {
|
|
354
|
+
const everything = { ...cleared };
|
|
355
|
+
for (const path of TOOL_SWITCH_PATHS)
|
|
356
|
+
everything[path] = true;
|
|
357
|
+
return everything;
|
|
358
|
+
}
|
|
359
|
+
return cleared;
|
|
360
|
+
}
|
|
361
|
+
case "limit": {
|
|
362
|
+
const choice = OMP_LIMIT_CHOICES[value];
|
|
363
|
+
if (!choice)
|
|
364
|
+
throw new Error(`Unknown limit "${value}".`);
|
|
365
|
+
if (choice.seconds === 0)
|
|
366
|
+
return { maxTime: undefined, timeoutSec: 0 };
|
|
367
|
+
return { maxTime: String(choice.seconds), timeoutSec: choice.seconds + OMP_RUN_GRACE_SEC };
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
export function readOmpChoices(config) {
|
|
372
|
+
const source = config ?? {};
|
|
373
|
+
const style = typeof source[OMP_STYLE_KEY] === "string" && source[OMP_STYLE_KEY] in OMP_STYLE_PRESETS ? source[OMP_STYLE_KEY] : null;
|
|
374
|
+
const thinking = (Object.entries(OMP_THINKING_CHOICES).find(([, choice]) => choice.level === source.thinking)?.[0]) ?? null;
|
|
375
|
+
const model = typeof source.model === "string" && source.model ? source.model : null;
|
|
376
|
+
const mode = source[OMP_FALLBACK_MODE_KEY];
|
|
377
|
+
const backup = mode === "automatic" || mode === "custom" ? mode : stringList(source.fallbackModels).length > 0 ? "custom" : null;
|
|
378
|
+
let tools = null;
|
|
379
|
+
for (const choice of Object.keys(OMP_TOOLS_CHOICES)) {
|
|
380
|
+
const patch = ompChoicePatch("tools", choice, { config: source, models: [] });
|
|
381
|
+
if (Object.entries(patch).every(([path, value]) => sameAgentSettingValue(readAgentSetting(source, path), value))) {
|
|
382
|
+
tools = choice;
|
|
383
|
+
break;
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
let limit = null;
|
|
387
|
+
for (const choice of Object.keys(OMP_LIMIT_CHOICES)) {
|
|
388
|
+
const patch = ompChoicePatch("limit", choice, { config: source, models: [] });
|
|
389
|
+
if (Object.entries(patch).every(([path, value]) => sameAgentSettingValue(readAgentSetting(source, path), value))) {
|
|
390
|
+
limit = choice;
|
|
391
|
+
break;
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
return { style, model, thinking, backup, tools, limit };
|
|
395
|
+
}
|
|
396
|
+
export function agentDiffersFromDefaults(config, defaults, paths) {
|
|
397
|
+
return paths.some((path) => !sameAgentSettingValue(readAgentSetting(config, path), defaults[path]));
|
|
398
|
+
}
|
|
399
|
+
export function resetToDefaultsPatch(defaults, paths) {
|
|
400
|
+
return Object.fromEntries(paths.map((path) => [path, defaults[path]]));
|
|
401
|
+
}
|
|
402
|
+
export function applyDefaultsPatch(defaults, patch) {
|
|
403
|
+
const next = { ...defaults };
|
|
404
|
+
for (const [path, value] of Object.entries(patch)) {
|
|
405
|
+
if (value === undefined)
|
|
406
|
+
delete next[path];
|
|
407
|
+
else
|
|
408
|
+
next[path] = value;
|
|
409
|
+
}
|
|
410
|
+
return next;
|
|
411
|
+
}
|
|
412
|
+
export function defaultsAsConfig(defaults) {
|
|
413
|
+
return applyAgentSettingsPatch({}, defaults);
|
|
414
|
+
}
|
|
415
|
+
export function planAgentDefaultsApply(agents, previous, next) {
|
|
416
|
+
const changedPaths = [...new Set([...Object.keys(previous), ...Object.keys(next)])]
|
|
417
|
+
.filter((path) => !sameAgentSettingValue(previous[path], next[path]))
|
|
418
|
+
.sort();
|
|
419
|
+
const entries = [];
|
|
420
|
+
let following = 0;
|
|
421
|
+
let ownValues = 0;
|
|
422
|
+
for (const agent of agents) {
|
|
423
|
+
const appliedPaths = [];
|
|
424
|
+
const keptPaths = [];
|
|
425
|
+
const patch = {};
|
|
426
|
+
for (const path of changedPaths) {
|
|
427
|
+
if (sameAgentSettingValue(readAgentSetting(agent.adapterConfig, path), previous[path])) {
|
|
428
|
+
appliedPaths.push(path);
|
|
429
|
+
patch[path] = next[path];
|
|
430
|
+
}
|
|
431
|
+
else {
|
|
432
|
+
keptPaths.push(path);
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
if (appliedPaths.length > 0)
|
|
436
|
+
following += 1;
|
|
437
|
+
if (keptPaths.length > 0)
|
|
438
|
+
ownValues += 1;
|
|
439
|
+
entries.push({ agentId: agent.id, name: agent.name, adapterConfig: applyAgentSettingsPatch(agent.adapterConfig, patch), appliedPaths, keptPaths });
|
|
440
|
+
}
|
|
441
|
+
const sessionKept = changedPaths.every((path) => OMP_SESSION_KEEPING_ADAPTER_CONFIG_KEYS.includes(path));
|
|
442
|
+
return { changedPaths, entries, following, ownValues, sessionKept };
|
|
443
|
+
}
|
|
444
|
+
export function agentSettingsKeepSession(paths) {
|
|
445
|
+
return paths.every((path) => OMP_SESSION_KEEPING_ADAPTER_CONFIG_KEYS.includes(path));
|
|
446
|
+
}
|
|
447
|
+
const ESSENTIAL = [
|
|
448
|
+
["Model", "model", "model"],
|
|
449
|
+
["Thinking level", "thinking", "thinking"],
|
|
450
|
+
["Effort per model", "modelEfforts", "modelEfforts"],
|
|
451
|
+
["Fallback chain", "fallbackModels", "fallbackModels"],
|
|
452
|
+
["Small model", "smolModel", "smolModel"],
|
|
453
|
+
["Slow model", "slowModel", "slowModel"],
|
|
454
|
+
["Plan model", "planModel", "planModel"],
|
|
455
|
+
["Default thinking level", "defaultThinkingLevel", ompSettingPath("defaultThinkingLevel")],
|
|
456
|
+
["Advisor", "advisor.enabled", ompSettingPath("advisor.enabled")],
|
|
457
|
+
["Prewalk to small model", "prewalk.enabled", ompSettingPath("prewalk.enabled")],
|
|
458
|
+
["Retries", "retry.maxRetries", ompSettingPath("retry.maxRetries")],
|
|
459
|
+
["Fall back on", "retry.fallbackOn", ompSettingPath("retry.fallbackOn")],
|
|
460
|
+
["Hide thinking from log", "omitThinking", ompSettingPath("omitThinking")],
|
|
461
|
+
["Tool allowlist", "tools", "tools"],
|
|
462
|
+
["Approval mode", "tools.approvalMode", ompSettingPath("tools.approvalMode")],
|
|
463
|
+
["Shell", "bash.enabled", ompSettingPath("bash.enabled")],
|
|
464
|
+
["Browser", "browser.enabled", ompSettingPath("browser.enabled")],
|
|
465
|
+
["Web search", "web_search.enabled", ompSettingPath("web_search.enabled")],
|
|
466
|
+
["GitHub tool", "github.enabled", ompSettingPath("github.enabled")],
|
|
467
|
+
["Ask tool", "ask.enabled", ompSettingPath("ask.enabled")],
|
|
468
|
+
["LSP", "lsp.enabled", ompSettingPath("lsp.enabled")],
|
|
469
|
+
["Skills", "skills", "skills"],
|
|
470
|
+
["MCP startup timeout", "mcp.startupTimeoutMs", ompSettingPath("mcp.startupTimeoutMs")],
|
|
471
|
+
["MCP project config", "mcp.enableProjectConfig", ompSettingPath("mcp.enableProjectConfig")],
|
|
472
|
+
["Extensions", "extensions", "extensions"],
|
|
473
|
+
["Hooks", "hooks", "hooks"],
|
|
474
|
+
["Context notes", "compaction.experimentalContextManagement", ompSettingPath("compaction.experimentalContextManagement")],
|
|
475
|
+
["Compaction threshold", "compaction.thresholdPercent", ompSettingPath("compaction.thresholdPercent")],
|
|
476
|
+
["Extra context files", "contextFiles.extra", ompSettingPath("contextFiles.extra")],
|
|
477
|
+
["Subagent depth", "task.maxRecursionDepth", ompSettingPath("task.maxRecursionDepth")],
|
|
478
|
+
["Max run time", "maxTime", "maxTime"],
|
|
479
|
+
["Timeout", "timeoutSec", "timeoutSec"],
|
|
480
|
+
["Instructions file", "instructionsFilePath", "instructionsFilePath"],
|
|
481
|
+
["System prompt", "systemPrompt", "systemPrompt"],
|
|
482
|
+
["Environment variables", "env", "env"],
|
|
483
|
+
["OMP profile", "profile", "profile"],
|
|
484
|
+
];
|
|
485
|
+
const ELSEWHERE = {
|
|
486
|
+
skills: "Skills tab",
|
|
487
|
+
instructionsFilePath: "Instructions tab",
|
|
488
|
+
systemPrompt: "Instructions tab",
|
|
489
|
+
env: "Secrets and environment",
|
|
490
|
+
};
|
|
491
|
+
const CHOICE_PATHS = new Set(Object.values(OMP_CONTROL_PATHS).flat());
|
|
492
|
+
export const OMP_ESSENTIAL_SETTINGS = ESSENTIAL.map(([label, key, path]) => ({
|
|
493
|
+
key,
|
|
494
|
+
label,
|
|
495
|
+
path,
|
|
496
|
+
placement: ELSEWHERE[key] ? "elsewhere" : CHOICE_PATHS.has(path) ? "choice" : "advanced",
|
|
497
|
+
...(ELSEWHERE[key] ? { where: ELSEWHERE[key] } : {}),
|
|
498
|
+
}));
|
|
499
|
+
export const OMP_ADAPTER_SETTINGS = [
|
|
500
|
+
{ key: "model", label: "Model", type: "string", description: "Model selector passed to OMP --model." },
|
|
501
|
+
{ key: "thinking", label: "Thinking level", type: "string", description: "Thinking level passed to OMP --thinking." },
|
|
502
|
+
{ key: "modelEfforts", label: "Effort per model", type: "record", description: "Thinking level per fallback model." },
|
|
503
|
+
{ key: "fallbackModels", label: "Fallback chain", type: "array", description: "Models used, in order, when the primary model is rate limited or down." },
|
|
504
|
+
{ key: "smolModel", label: "Small model", type: "string", description: "Model passed to OMP --smol." },
|
|
505
|
+
{ key: "slowModel", label: "Slow model", type: "string", description: "Model passed to OMP --slow." },
|
|
506
|
+
{ key: "planModel", label: "Plan model", type: "string", description: "Model passed to OMP --plan." },
|
|
507
|
+
{ key: "tools", label: "Tool allowlist", type: "string", description: "Comma-separated OMP tool names. Empty keeps OMP's default tool set." },
|
|
508
|
+
{ key: "skills", label: "Skills", type: "string", description: "Comma-separated OMP skill names." },
|
|
509
|
+
{ key: "extensions", label: "Extensions", type: "array", description: "OMP extension paths." },
|
|
510
|
+
{ key: "hooks", label: "Hooks", type: "array", description: "OMP hook paths." },
|
|
511
|
+
{ key: "maxTime", label: "Max run time", type: "string", description: "Seconds passed to OMP --max-time." },
|
|
512
|
+
{ key: "timeoutSec", label: "Timeout", type: "number", description: "Seconds before Paperclip stops the OMP process; 0 means no limit." },
|
|
513
|
+
{ key: "instructionsFilePath", label: "Instructions file", type: "string", description: "Set in the Instructions tab." },
|
|
514
|
+
{ key: "systemPrompt", label: "System prompt", type: "string", description: "Set in the Instructions tab." },
|
|
515
|
+
{ key: "env", label: "Environment variables", type: "record", description: "Set in Secrets and environment." },
|
|
516
|
+
{ key: "profile", label: "OMP profile", type: "string", description: "Isolated OMP profile for auth, sessions and settings." },
|
|
517
|
+
];
|
|
518
|
+
//# sourceMappingURL=omp-agent-settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"omp-agent-settings.js","sourceRoot":"","sources":["../src/omp-agent-settings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"omp-agent-settings.test.d.ts","sourceRoot":"","sources":["../src/omp-agent-settings.test.ts"],"names":[],"mappings":""}
|