thoth-agents 0.13.0 → 0.13.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/{chunk-VVYAQTYE.js → chunk-422L76R5.js} +1 -1
- package/dist/{chunk-5MYXVRZZ.js → chunk-A7IGKE4R.js} +2 -2
- package/dist/{chunk-YCWGTDFE.js → chunk-HFBCW4MD.js} +24 -4
- package/dist/{chunk-NOLDFT7O.js → chunk-KUA3F4D6.js} +1 -1
- package/dist/cli/index.js +4 -4
- package/dist/cli/tui/index.js +3 -3
- package/dist/index.js +3 -3
- package/dist/pi.js +2 -2
- package/dist/tui/index.js +6 -4
- package/package.json +1 -1
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/.codex-plugin/plugin.json +1 -1
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
savePiModelConfig,
|
|
18
18
|
syncPiSpecialists,
|
|
19
19
|
writePiManagedText
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-422L76R5.js";
|
|
21
21
|
import {
|
|
22
22
|
ALL_AGENT_NAMES,
|
|
23
23
|
CLAUDE_CODE_PROMPT_DIALECT,
|
|
@@ -57,7 +57,7 @@ import {
|
|
|
57
57
|
withoutLegacyPresets,
|
|
58
58
|
writeConfig,
|
|
59
59
|
writeLiteConfig
|
|
60
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-HFBCW4MD.js";
|
|
61
61
|
|
|
62
62
|
// src/cli/model-effort.ts
|
|
63
63
|
function normalizeEffortSelection(value) {
|
|
@@ -950,6 +950,17 @@ function detectCurrentConfig() {
|
|
|
950
950
|
|
|
951
951
|
// src/config/loader.ts
|
|
952
952
|
var PROMPTS_DIR_NAME = "thoth-agents";
|
|
953
|
+
function withoutInjectedDefaults(parsed, raw) {
|
|
954
|
+
if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed) || raw === null || typeof raw !== "object") {
|
|
955
|
+
return parsed;
|
|
956
|
+
}
|
|
957
|
+
return Object.fromEntries(
|
|
958
|
+
Object.entries(parsed).filter(([key]) => Object.hasOwn(raw, key)).map(([key, value]) => [
|
|
959
|
+
key,
|
|
960
|
+
withoutInjectedDefaults(value, raw[key])
|
|
961
|
+
])
|
|
962
|
+
);
|
|
963
|
+
}
|
|
953
964
|
function loadConfigFromPath(configPath, unsupportedKeyPaths) {
|
|
954
965
|
try {
|
|
955
966
|
const content = fs2.readFileSync(configPath, "utf-8");
|
|
@@ -963,7 +974,7 @@ function loadConfigFromPath(configPath, unsupportedKeyPaths) {
|
|
|
963
974
|
console.warn(result.error.format());
|
|
964
975
|
return null;
|
|
965
976
|
}
|
|
966
|
-
return result.data;
|
|
977
|
+
return withoutInjectedDefaults(result.data, rawConfig);
|
|
967
978
|
} catch (error) {
|
|
968
979
|
if (error instanceof Error && "code" in error && error.code !== "ENOENT") {
|
|
969
980
|
console.warn(
|
|
@@ -988,9 +999,9 @@ function findConfigPath(basePath) {
|
|
|
988
999
|
function deepMerge(base, override) {
|
|
989
1000
|
if (!base) return override;
|
|
990
1001
|
if (!override) return base;
|
|
991
|
-
const result =
|
|
1002
|
+
const result = Object.assign(/* @__PURE__ */ Object.create(null), base);
|
|
992
1003
|
for (const key of Object.keys(override)) {
|
|
993
|
-
const baseVal = base[key];
|
|
1004
|
+
const baseVal = Object.hasOwn(base, key) ? base[key] : void 0;
|
|
994
1005
|
const overrideVal = override[key];
|
|
995
1006
|
if (typeof baseVal === "object" && baseVal !== null && typeof overrideVal === "object" && overrideVal !== null && !Array.isArray(baseVal) && !Array.isArray(overrideVal)) {
|
|
996
1007
|
result[key] = deepMerge(
|
|
@@ -1030,7 +1041,16 @@ function loadPluginConfig(directory) {
|
|
|
1030
1041
|
`[thoth-agents] Config keys preset/presets are unsupported and ignored (${[...unsupportedKeyPaths].join(", ")}).`
|
|
1031
1042
|
);
|
|
1032
1043
|
}
|
|
1033
|
-
|
|
1044
|
+
const result = PluginConfigSchema.safeParse(config);
|
|
1045
|
+
if (!result.success) {
|
|
1046
|
+
const sourcePaths = [userConfigPath, projectConfigPath].filter(Boolean);
|
|
1047
|
+
console.warn(
|
|
1048
|
+
`[thoth-agents] Invalid merged config from ${sourcePaths.join(", ")}:`
|
|
1049
|
+
);
|
|
1050
|
+
console.warn(result.error.format());
|
|
1051
|
+
return {};
|
|
1052
|
+
}
|
|
1053
|
+
return result.data;
|
|
1034
1054
|
}
|
|
1035
1055
|
function loadAgentPrompt(agentName) {
|
|
1036
1056
|
const promptsDir = path2.join(getConfigDir(), PROMPTS_DIR_NAME);
|
package/dist/cli/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
opencodeAdapter
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-KUA3F4D6.js";
|
|
5
5
|
import {
|
|
6
6
|
CODEX_PLUGIN_ID,
|
|
7
7
|
CODEX_ROLE_NAMES,
|
|
@@ -80,11 +80,11 @@ import {
|
|
|
80
80
|
safeAtomicWriteFileSync,
|
|
81
81
|
scalarLocation,
|
|
82
82
|
syncOpenCodeOwnedSkills
|
|
83
|
-
} from "../chunk-
|
|
83
|
+
} from "../chunk-A7IGKE4R.js";
|
|
84
84
|
import "../chunk-MIDGZE34.js";
|
|
85
85
|
import {
|
|
86
86
|
piAdapter
|
|
87
|
-
} from "../chunk-
|
|
87
|
+
} from "../chunk-422L76R5.js";
|
|
88
88
|
import {
|
|
89
89
|
ALL_AGENT_NAMES,
|
|
90
90
|
detectCurrentConfig,
|
|
@@ -95,7 +95,7 @@ import {
|
|
|
95
95
|
resolveExecutingPackageVersion,
|
|
96
96
|
updateOpenCodeMainConfig,
|
|
97
97
|
writeLiteConfig
|
|
98
|
-
} from "../chunk-
|
|
98
|
+
} from "../chunk-HFBCW4MD.js";
|
|
99
99
|
|
|
100
100
|
// src/cli/index.ts
|
|
101
101
|
import { pathToFileURL } from "url";
|
package/dist/cli/tui/index.js
CHANGED
|
@@ -2,10 +2,10 @@ import {
|
|
|
2
2
|
defaultTuiOperations,
|
|
3
3
|
effortChoicesForModel,
|
|
4
4
|
listOperationHarnesses
|
|
5
|
-
} from "../../chunk-
|
|
5
|
+
} from "../../chunk-A7IGKE4R.js";
|
|
6
6
|
import "../../chunk-MIDGZE34.js";
|
|
7
|
-
import "../../chunk-
|
|
8
|
-
import "../../chunk-
|
|
7
|
+
import "../../chunk-422L76R5.js";
|
|
8
|
+
import "../../chunk-HFBCW4MD.js";
|
|
9
9
|
|
|
10
10
|
// src/cli/tui/index.tsx
|
|
11
11
|
import { render } from "ink";
|
package/dist/index.js
CHANGED
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
import {
|
|
10
10
|
createAgents,
|
|
11
11
|
renderOpenCodeAgentConfigs
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-KUA3F4D6.js";
|
|
13
13
|
import {
|
|
14
14
|
context7,
|
|
15
15
|
exa,
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
mergeProfileModelChain,
|
|
27
27
|
resolveRoleProfile,
|
|
28
28
|
validateProfileName
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-HFBCW4MD.js";
|
|
30
30
|
|
|
31
31
|
// src/opencode/permission-rules.ts
|
|
32
32
|
var ACTIONS = {
|
|
@@ -449,7 +449,7 @@ function loadOpenCodeDependencies(ctx) {
|
|
|
449
449
|
} else {
|
|
450
450
|
const chain = mergeProfileModelChain(
|
|
451
451
|
profileState.roles[role],
|
|
452
|
-
configuredChains[name]
|
|
452
|
+
config.fallback?.enabled === false && !modelArrayMap[name] ? [] : configuredChains[name]
|
|
453
453
|
);
|
|
454
454
|
effectiveModelArrays[name] = chain;
|
|
455
455
|
runtimeChains[name] = chain.map(({ id }) => id);
|
package/dist/pi.js
CHANGED
|
@@ -8,10 +8,10 @@ import {
|
|
|
8
8
|
createPiToolsPanelAdapter,
|
|
9
9
|
renderPiRootInstructions,
|
|
10
10
|
syncPiSpecialists
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-422L76R5.js";
|
|
12
12
|
import {
|
|
13
13
|
findPackageRoot
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-HFBCW4MD.js";
|
|
15
15
|
|
|
16
16
|
// src/pi.ts
|
|
17
17
|
import { homedir } from "os";
|
package/dist/tui/index.js
CHANGED
|
@@ -110,7 +110,8 @@ function variantsOf(state, modelId) {
|
|
|
110
110
|
function searchOptions(query, options) {
|
|
111
111
|
const words = query.toLowerCase().split(/\s+/).filter(Boolean);
|
|
112
112
|
return options.filter((option) => {
|
|
113
|
-
const
|
|
113
|
+
const id = typeof option.value === "string" ? option.value : "";
|
|
114
|
+
const text = `${option.title} ${id} ${option.description ?? ""}`.toLowerCase();
|
|
114
115
|
return words.every((word) => text.includes(word));
|
|
115
116
|
});
|
|
116
117
|
}
|
|
@@ -258,10 +259,11 @@ async function runModelProfilesFlow(ports) {
|
|
|
258
259
|
placeholder: "Search models",
|
|
259
260
|
current,
|
|
260
261
|
options: provider.models.map((model) => ({
|
|
261
|
-
|
|
262
|
+
// Names can collide across Codex/API models and dated snapshots. Put
|
|
263
|
+
// the exact local ID first; a non-shrinking footer crowds it out.
|
|
264
|
+
title: model.id.slice(provider.id.length + 1),
|
|
262
265
|
value: model.id,
|
|
263
|
-
description: model.
|
|
264
|
-
footer: model.variants.length ? `variants: ${model.variants.join(", ")}` : void 0
|
|
266
|
+
description: model.variants.length ? `${model.name} \xB7 variants: ${model.variants.join(", ")}` : model.name
|
|
265
267
|
})),
|
|
266
268
|
search: searchOptions
|
|
267
269
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "thoth-agents",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.1",
|
|
4
4
|
"description": "Adaptive multi-harness orchestration with six roles, runtime-autonomous AI-first execution routes, and external provider boundaries.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "thoth-agents",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.1",
|
|
4
4
|
"description": "Bundled AI-first work skills and MCP configuration; the six-role global Codex layer requires thoth-agents CLI setup.",
|
|
5
5
|
"skills": "./skills/",
|
|
6
6
|
"mcpServers": "./codex.mcp.json",
|