thoth-agents 0.4.0 → 0.4.2
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-SECDI3TL.js → chunk-2U5MBLLV.js} +1 -1
- package/dist/{chunk-Q6SDM4KP.js → chunk-EFGSGPYM.js} +7 -7
- package/dist/{chunk-5EBXGMOK.js → chunk-STCURXAQ.js} +1 -1
- package/dist/{chunk-WJ2YMM2E.js → chunk-WCLUZZHI.js} +73 -32
- package/dist/cli/index.js +4 -4
- package/dist/cli/model-defaults.d.ts +4 -0
- package/dist/cli/tui/index.js +32 -7
- package/dist/cli/tui/operations.d.ts +3 -1
- package/dist/config/constants.d.ts +9 -9
- package/dist/index.js +2 -2
- package/dist/pi.js +2 -2
- package/package.json +1 -1
- package/pi/.thoth-agents-assets.json +6 -6
- package/pi/agents/thoth-deep.md +1 -1
- package/pi/agents/thoth-designer.md +1 -1
- package/pi/agents/thoth-explorer.md +1 -1
- package/pi/agents/thoth-librarian.md +1 -1
- package/pi/agents/thoth-oracle.md +2 -2
- package/pi/agents/thoth-quick.md +2 -2
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/.codex-plugin/plugin.json +1 -1
|
@@ -210,15 +210,15 @@ var ALL_AGENT_NAMES = [
|
|
|
210
210
|
"deep"
|
|
211
211
|
];
|
|
212
212
|
var CONFIRMED_OPENAI_SUBAGENT_PRESET = {
|
|
213
|
-
explorer: { model: "gpt-
|
|
214
|
-
librarian: { model: "gpt-
|
|
215
|
-
oracle: { model: "gpt-
|
|
216
|
-
designer: { model: "gpt-
|
|
217
|
-
quick: { model: "gpt-
|
|
218
|
-
deep: { model: "gpt-
|
|
213
|
+
explorer: { model: "gpt-6-luna", effort: "low" },
|
|
214
|
+
librarian: { model: "gpt-6-luna", effort: "high" },
|
|
215
|
+
oracle: { model: "gpt-6-astra", effort: "medium" },
|
|
216
|
+
designer: { model: "gpt-6-sol", effort: "medium" },
|
|
217
|
+
quick: { model: "gpt-6-luna", effort: "medium" },
|
|
218
|
+
deep: { model: "gpt-6-sol", effort: "medium" }
|
|
219
219
|
};
|
|
220
220
|
var OPENCODE_OPENAI_ORCHESTRATOR_PRESET = {
|
|
221
|
-
model: "gpt-
|
|
221
|
+
model: "gpt-6-sol",
|
|
222
222
|
effort: "xhigh"
|
|
223
223
|
};
|
|
224
224
|
function buildDefaultModels() {
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
piAdapter,
|
|
11
11
|
renderConfiguredRolePrompt,
|
|
12
12
|
syncPiSpecialists
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-2U5MBLLV.js";
|
|
14
14
|
import {
|
|
15
15
|
ALL_AGENT_NAMES,
|
|
16
16
|
CLAUDE_CODE_PROMPT_DIALECT,
|
|
@@ -19,6 +19,7 @@ import {
|
|
|
19
19
|
CONFIRMED_OPENAI_SUBAGENT_PRESET,
|
|
20
20
|
DEFAULT_MODELS,
|
|
21
21
|
PI_SPECIALIST_ROLES,
|
|
22
|
+
SUBAGENT_NAMES,
|
|
22
23
|
claudeCodeSubagentType,
|
|
23
24
|
ensureConfigDir,
|
|
24
25
|
findPackageRoot,
|
|
@@ -40,7 +41,7 @@ import {
|
|
|
40
41
|
updateOpenCodeMainConfig,
|
|
41
42
|
writeConfig,
|
|
42
43
|
writeLiteConfig
|
|
43
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-EFGSGPYM.js";
|
|
44
45
|
|
|
45
46
|
// src/cli/codex-paths.ts
|
|
46
47
|
import { homedir } from "os";
|
|
@@ -9341,6 +9342,37 @@ async function getModelOptions(harness) {
|
|
|
9341
9342
|
|
|
9342
9343
|
// src/cli/tui/operations.ts
|
|
9343
9344
|
import { existsSync as existsSync17, readFileSync as readFileSync14 } from "fs";
|
|
9345
|
+
|
|
9346
|
+
// src/cli/model-defaults.ts
|
|
9347
|
+
function getShippedModelRoles(harness) {
|
|
9348
|
+
if (harness === "opencode") {
|
|
9349
|
+
return ALL_AGENT_NAMES.map((role) => ({
|
|
9350
|
+
role,
|
|
9351
|
+
model: getDefaultOpenCodeModel(role),
|
|
9352
|
+
effort: { kind: "effort", value: getDefaultOpenCodeVariant(role) }
|
|
9353
|
+
}));
|
|
9354
|
+
}
|
|
9355
|
+
return SUBAGENT_NAMES.map((role) => {
|
|
9356
|
+
if (harness === "claude") {
|
|
9357
|
+
return {
|
|
9358
|
+
role,
|
|
9359
|
+
model: CLAUDE_CODE_SUBAGENT_DEFAULT_MODELS[role],
|
|
9360
|
+
effort: {
|
|
9361
|
+
kind: "effort",
|
|
9362
|
+
value: CLAUDE_CODE_SUBAGENT_DEFAULT_EFFORTS[role]
|
|
9363
|
+
}
|
|
9364
|
+
};
|
|
9365
|
+
}
|
|
9366
|
+
const preset = CONFIRMED_OPENAI_SUBAGENT_PRESET[role];
|
|
9367
|
+
return {
|
|
9368
|
+
role,
|
|
9369
|
+
model: harness === "pi" ? `openai-codex/${preset.model}` : preset.model,
|
|
9370
|
+
effort: { kind: "effort", value: preset.effort }
|
|
9371
|
+
};
|
|
9372
|
+
});
|
|
9373
|
+
}
|
|
9374
|
+
|
|
9375
|
+
// src/cli/tui/operations.ts
|
|
9344
9376
|
var context = { cwd: process.cwd() };
|
|
9345
9377
|
var codexContext = { cwd: process.cwd() };
|
|
9346
9378
|
var claudeCodeContext = {
|
|
@@ -9354,15 +9386,7 @@ var opencodeModelRoles = ALL_AGENT_NAMES.map(
|
|
|
9354
9386
|
effort: { kind: "effort", value: getDefaultOpenCodeVariant(role) }
|
|
9355
9387
|
})
|
|
9356
9388
|
);
|
|
9357
|
-
var codexModelRoles =
|
|
9358
|
-
(role) => ({
|
|
9359
|
-
role,
|
|
9360
|
-
model: "gpt-5.4-mini"
|
|
9361
|
-
})
|
|
9362
|
-
);
|
|
9363
|
-
var codexDefaultModels = new Map(
|
|
9364
|
-
codexModelRoles.map((role) => [role.role, role.model])
|
|
9365
|
-
);
|
|
9389
|
+
var codexModelRoles = getShippedModelRoles("codex");
|
|
9366
9390
|
function codexInstallConfig(source, dryRun) {
|
|
9367
9391
|
return {
|
|
9368
9392
|
dryRun,
|
|
@@ -9378,20 +9402,22 @@ function codexInstallConfig(source, dryRun) {
|
|
|
9378
9402
|
function getCodexModelRoles(source = codexContext) {
|
|
9379
9403
|
try {
|
|
9380
9404
|
const plan = buildCodexSetupPlan(codexInstallConfig(source, true));
|
|
9381
|
-
return
|
|
9382
|
-
|
|
9383
|
-
|
|
9384
|
-
|
|
9385
|
-
|
|
9386
|
-
|
|
9387
|
-
|
|
9388
|
-
|
|
9389
|
-
|
|
9390
|
-
|
|
9391
|
-
|
|
9392
|
-
|
|
9405
|
+
return getShippedModelRoles("codex").map(
|
|
9406
|
+
({ role, model: defaultModel }) => {
|
|
9407
|
+
const item = plan.items.find(
|
|
9408
|
+
(candidate) => candidate.action === "write-role-toml" && candidate.role === role
|
|
9409
|
+
);
|
|
9410
|
+
const content = item && existsSync17(item.targetPath) ? readFileSync14(item.targetPath, "utf8") : item?.content;
|
|
9411
|
+
const effort = content ? parseRoleTomlEffort(content) : void 0;
|
|
9412
|
+
return {
|
|
9413
|
+
role,
|
|
9414
|
+
model: (content ? parseRoleTomlModel(content) : void 0) ?? defaultModel,
|
|
9415
|
+
effort: effort ? { kind: "effort", value: effort } : { kind: "inherit" }
|
|
9416
|
+
};
|
|
9417
|
+
}
|
|
9418
|
+
);
|
|
9393
9419
|
} catch {
|
|
9394
|
-
return
|
|
9420
|
+
return getShippedModelRoles("codex");
|
|
9395
9421
|
}
|
|
9396
9422
|
}
|
|
9397
9423
|
function getClaudeCodeModelRoles(_source = claudeCodeContext) {
|
|
@@ -9432,20 +9458,32 @@ function getOpenCodeModelRoles() {
|
|
|
9432
9458
|
};
|
|
9433
9459
|
});
|
|
9434
9460
|
}
|
|
9435
|
-
function buildTuiModelPlan(harness, roles) {
|
|
9461
|
+
function buildTuiModelPlan(harness, roles, source = context) {
|
|
9436
9462
|
if (harness === "opencode") {
|
|
9437
|
-
return buildOpenCodeModelPlan({ harness, dryRun: true, roles },
|
|
9463
|
+
return buildOpenCodeModelPlan({ harness, dryRun: true, roles }, source);
|
|
9438
9464
|
}
|
|
9439
9465
|
if (harness === "claude") {
|
|
9440
|
-
return buildClaudeCodeModelPlan(
|
|
9441
|
-
{ harness, dryRun: true, roles },
|
|
9442
|
-
claudeCodeContext
|
|
9443
|
-
);
|
|
9466
|
+
return buildClaudeCodeModelPlan({ harness, dryRun: true, roles }, source);
|
|
9444
9467
|
}
|
|
9445
9468
|
if (harness === "pi") {
|
|
9446
|
-
return buildPiModelPlan({ harness, dryRun: true, roles },
|
|
9469
|
+
return buildPiModelPlan({ harness, dryRun: true, roles }, source);
|
|
9447
9470
|
}
|
|
9448
|
-
return buildCodexModelPlan({ harness, dryRun: true, roles },
|
|
9471
|
+
return buildCodexModelPlan({ harness, dryRun: true, roles }, source);
|
|
9472
|
+
}
|
|
9473
|
+
function buildRestoreModelPlan(harness, options, source = context) {
|
|
9474
|
+
const roles = getShippedModelRoles(harness).map((role) => {
|
|
9475
|
+
const catalogId = harness === "codex" ? `openai/${role.model}` : harness === "pi" ? role.model.replace(/^openai-codex\//, "openai/") : role.model;
|
|
9476
|
+
const option = options.find((candidate) => candidate.id === role.model) ?? options.find((candidate) => candidate.catalogId === catalogId);
|
|
9477
|
+
return {
|
|
9478
|
+
...role,
|
|
9479
|
+
...option ? {
|
|
9480
|
+
provider: option.provider,
|
|
9481
|
+
catalogId: option.catalogId,
|
|
9482
|
+
availableEfforts: [...option.efforts]
|
|
9483
|
+
} : {}
|
|
9484
|
+
};
|
|
9485
|
+
});
|
|
9486
|
+
return buildTuiModelPlan(harness, roles, source);
|
|
9449
9487
|
}
|
|
9450
9488
|
var defaultTuiOperations = {
|
|
9451
9489
|
status(harness, evidence) {
|
|
@@ -9501,6 +9539,9 @@ var defaultTuiOperations = {
|
|
|
9501
9539
|
modelPlan(harness, roles) {
|
|
9502
9540
|
return buildTuiModelPlan(harness, roles);
|
|
9503
9541
|
},
|
|
9542
|
+
restoreModelPlan(harness, options) {
|
|
9543
|
+
return buildRestoreModelPlan(harness, options);
|
|
9544
|
+
},
|
|
9504
9545
|
apply(plan) {
|
|
9505
9546
|
if (plan.harness === "opencode") return applyOpenCodePlan(plan);
|
|
9506
9547
|
if (plan.harness === "claude") return applyClaudeCodePlan(plan);
|
package/dist/cli/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
getOpenCodeVersion,
|
|
5
5
|
isOpenCodeInstalled,
|
|
6
6
|
opencodeAdapter
|
|
7
|
-
} from "../chunk-
|
|
7
|
+
} from "../chunk-STCURXAQ.js";
|
|
8
8
|
import {
|
|
9
9
|
CODEX_ROLE_NAMES,
|
|
10
10
|
REQUIRED_SKILLS,
|
|
@@ -59,11 +59,11 @@ import {
|
|
|
59
59
|
normalizeEffortSelection,
|
|
60
60
|
recordHarnessInstallCompletion,
|
|
61
61
|
syncOpenCodeOwnedSkills
|
|
62
|
-
} from "../chunk-
|
|
62
|
+
} from "../chunk-WCLUZZHI.js";
|
|
63
63
|
import "../chunk-62L3ORXN.js";
|
|
64
64
|
import {
|
|
65
65
|
piAdapter
|
|
66
|
-
} from "../chunk-
|
|
66
|
+
} from "../chunk-2U5MBLLV.js";
|
|
67
67
|
import {
|
|
68
68
|
ALL_AGENT_NAMES,
|
|
69
69
|
detectCurrentConfig,
|
|
@@ -74,7 +74,7 @@ import {
|
|
|
74
74
|
resolveExecutingPackageVersion,
|
|
75
75
|
updateOpenCodeMainConfig,
|
|
76
76
|
writeLiteConfig
|
|
77
|
-
} from "../chunk-
|
|
77
|
+
} from "../chunk-EFGSGPYM.js";
|
|
78
78
|
|
|
79
79
|
// src/cli/index.ts
|
|
80
80
|
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-WCLUZZHI.js";
|
|
6
6
|
import "../../chunk-62L3ORXN.js";
|
|
7
|
-
import "../../chunk-
|
|
8
|
-
import "../../chunk-
|
|
7
|
+
import "../../chunk-2U5MBLLV.js";
|
|
8
|
+
import "../../chunk-EFGSGPYM.js";
|
|
9
9
|
|
|
10
10
|
// src/cli/tui/index.tsx
|
|
11
11
|
import { render } from "ink";
|
|
@@ -875,6 +875,7 @@ function App({
|
|
|
875
875
|
const providerEvidenceRequest = useRef(0);
|
|
876
876
|
const [plan, setPlan] = useState();
|
|
877
877
|
const [result, setResult] = useState();
|
|
878
|
+
const [restoringDefaults, setRestoringDefaults] = useState(false);
|
|
878
879
|
const [previewAction, setPreviewAction] = useState(
|
|
879
880
|
"cancel"
|
|
880
881
|
);
|
|
@@ -948,7 +949,7 @@ function App({
|
|
|
948
949
|
const choiceSelected = selectedModelIndex < 0 ? 0 : selectedModelIndex;
|
|
949
950
|
const dirtyRoles = rolesForModelPlan(modelRows);
|
|
950
951
|
const rolesToApply = dirtyRoles.length > 0 ? dirtyRoles : rolesForModelPlan(modelRows, true);
|
|
951
|
-
const modelActions = dirtyRoles.length > 0 ? ["Preview changes", "Apply", "Back"] : ["Apply", "Back"];
|
|
952
|
+
const modelActions = dirtyRoles.length > 0 ? ["Preview changes", "Apply", "Restore defaults", "Back"] : ["Apply", "Restore defaults", "Back"];
|
|
952
953
|
const modelMenuItems = [
|
|
953
954
|
...modelRows.map((role) => ({
|
|
954
955
|
id: role.role,
|
|
@@ -990,6 +991,7 @@ function App({
|
|
|
990
991
|
}
|
|
991
992
|
function openPlan(harness, action, backView = "harness") {
|
|
992
993
|
setActiveHarness(harness);
|
|
994
|
+
setRestoringDefaults(false);
|
|
993
995
|
setPlan(operations.plan(harness, action));
|
|
994
996
|
setResult(void 0);
|
|
995
997
|
setPreviewAction("cancel");
|
|
@@ -1037,6 +1039,7 @@ function App({
|
|
|
1037
1039
|
setView("effortChoice");
|
|
1038
1040
|
}
|
|
1039
1041
|
function previewModelChanges(applyImmediately) {
|
|
1042
|
+
setRestoringDefaults(false);
|
|
1040
1043
|
const nextPlan = operations.modelPlan(modelHarness, rolesToApply);
|
|
1041
1044
|
setPlan(nextPlan);
|
|
1042
1045
|
setPreviewAction(applyImmediately ? "apply" : "cancel");
|
|
@@ -1067,6 +1070,26 @@ function App({
|
|
|
1067
1070
|
setResult(void 0);
|
|
1068
1071
|
setView("preview");
|
|
1069
1072
|
}
|
|
1073
|
+
function previewDefaultModels() {
|
|
1074
|
+
setPlan(operations.restoreModelPlan(modelHarness, modelOptions));
|
|
1075
|
+
setRestoringDefaults(true);
|
|
1076
|
+
setResult(void 0);
|
|
1077
|
+
setPreviewAction("cancel");
|
|
1078
|
+
setPreviewBackView("modelRoles");
|
|
1079
|
+
setView("preview");
|
|
1080
|
+
}
|
|
1081
|
+
function applyPreview() {
|
|
1082
|
+
if (!plan?.canApply || restoringDefaults && result?.applied) return;
|
|
1083
|
+
const applied = operations.apply(plan);
|
|
1084
|
+
setResult(applied);
|
|
1085
|
+
if (restoringDefaults && applied.applied) {
|
|
1086
|
+
setModelRoles(operations.modelRoles(modelHarness));
|
|
1087
|
+
setEditedModels({});
|
|
1088
|
+
setEditedEfforts({});
|
|
1089
|
+
setModelResult(void 0);
|
|
1090
|
+
setModelSelected(0);
|
|
1091
|
+
}
|
|
1092
|
+
}
|
|
1070
1093
|
useInput((input, key) => {
|
|
1071
1094
|
if (view === "modelEdit") {
|
|
1072
1095
|
if (key.escape) {
|
|
@@ -1286,6 +1309,7 @@ function App({
|
|
|
1286
1309
|
if (action === "Back") setView("manageHarness");
|
|
1287
1310
|
if (action === "Preview changes") previewModelChanges(false);
|
|
1288
1311
|
if (action === "Apply") previewModelChanges(true);
|
|
1312
|
+
if (action === "Restore defaults") previewDefaultModels();
|
|
1289
1313
|
}
|
|
1290
1314
|
return;
|
|
1291
1315
|
}
|
|
@@ -1301,14 +1325,14 @@ function App({
|
|
|
1301
1325
|
}
|
|
1302
1326
|
if (input === "a" && plan?.canApply) {
|
|
1303
1327
|
setPreviewAction("apply");
|
|
1304
|
-
|
|
1328
|
+
applyPreview();
|
|
1305
1329
|
}
|
|
1306
1330
|
if (input === "c") goBack();
|
|
1307
1331
|
if (key.return && plan) {
|
|
1308
1332
|
if (previewAction === "cancel" || !plan.canApply) {
|
|
1309
1333
|
goBack();
|
|
1310
1334
|
} else {
|
|
1311
|
-
|
|
1335
|
+
applyPreview();
|
|
1312
1336
|
}
|
|
1313
1337
|
}
|
|
1314
1338
|
}
|
|
@@ -1465,10 +1489,11 @@ function App({
|
|
|
1465
1489
|
/* @__PURE__ */ jsx8(
|
|
1466
1490
|
Header,
|
|
1467
1491
|
{
|
|
1468
|
-
title: plan.title,
|
|
1492
|
+
title: restoringDefaults ? "Restore default models" : plan.title,
|
|
1469
1493
|
subtitle: "Enter selects. Escape or c returns one level."
|
|
1470
1494
|
}
|
|
1471
1495
|
),
|
|
1496
|
+
restoringDefaults ? /* @__PURE__ */ jsx8(Text8, { color: theme.warning, children: "Replace all managed role models and reasoning efforts with this package's defaults. Review the values and targets below. Apply writes changes; Cancel keeps your current settings." }) : null,
|
|
1472
1497
|
/* @__PURE__ */ jsx8(
|
|
1473
1498
|
PlanPreview,
|
|
1474
1499
|
{
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { HarnessId, ProviderCapabilityEvidence, ProviderEvidenceInput } from '../../harness/types';
|
|
2
2
|
import { type ClaudeCodeOperationContext } from '../operations/claude-code';
|
|
3
3
|
import { type CodexOperationContext } from '../operations/codex';
|
|
4
|
-
import type { HarnessStatusReport, ModelRoleInput, OperationApplyResult, OperationPlan } from '../operations/types';
|
|
4
|
+
import type { HarnessStatusReport, ModelRoleInput, OperationApplyResult, OperationContext, OperationPlan } from '../operations/types';
|
|
5
5
|
import { type ModelOption } from './model-catalog';
|
|
6
6
|
export type TuiAction = 'status' | 'list' | 'install' | 'update' | 'sync' | 'model';
|
|
7
7
|
export interface TuiOperations {
|
|
@@ -11,6 +11,7 @@ export interface TuiOperations {
|
|
|
11
11
|
modelOptions(harness: HarnessId): Promise<ModelOption[]>;
|
|
12
12
|
plan(harness: HarnessId, action: Exclude<TuiAction, 'status' | 'list'>): OperationPlan;
|
|
13
13
|
modelPlan(harness: HarnessId, roles: ModelRoleInput[]): OperationPlan;
|
|
14
|
+
restoreModelPlan(harness: HarnessId, options: readonly ModelOption[]): OperationPlan;
|
|
14
15
|
apply(plan: OperationPlan): OperationApplyResult;
|
|
15
16
|
}
|
|
16
17
|
export declare const opencodeModelRoles: ModelRoleInput[];
|
|
@@ -19,4 +20,5 @@ export declare function getCodexModelRoles(source?: CodexOperationContext): Mode
|
|
|
19
20
|
export declare function getClaudeCodeModelRoles(_source?: ClaudeCodeOperationContext): ModelRoleInput[];
|
|
20
21
|
export declare function getPiModelRoles(): ModelRoleInput[];
|
|
21
22
|
export declare function getOpenCodeModelRoles(): ModelRoleInput[];
|
|
23
|
+
export declare function buildRestoreModelPlan(harness: HarnessId, options: readonly ModelOption[], source?: OperationContext): OperationPlan;
|
|
22
24
|
export declare const defaultTuiOperations: TuiOperations;
|
|
@@ -6,32 +6,32 @@ export declare const ALL_AGENT_NAMES: readonly BuiltinAgentName[];
|
|
|
6
6
|
export declare const SUBAGENT_DELEGATION_RULES: Record<AgentName, readonly string[]>;
|
|
7
7
|
export declare const CONFIRMED_OPENAI_SUBAGENT_PRESET: {
|
|
8
8
|
readonly explorer: {
|
|
9
|
-
readonly model: "gpt-
|
|
9
|
+
readonly model: "gpt-6-luna";
|
|
10
10
|
readonly effort: "low";
|
|
11
11
|
};
|
|
12
12
|
readonly librarian: {
|
|
13
|
-
readonly model: "gpt-
|
|
13
|
+
readonly model: "gpt-6-luna";
|
|
14
14
|
readonly effort: "high";
|
|
15
15
|
};
|
|
16
16
|
readonly oracle: {
|
|
17
|
-
readonly model: "gpt-
|
|
18
|
-
readonly effort: "
|
|
17
|
+
readonly model: "gpt-6-astra";
|
|
18
|
+
readonly effort: "medium";
|
|
19
19
|
};
|
|
20
20
|
readonly designer: {
|
|
21
|
-
readonly model: "gpt-
|
|
21
|
+
readonly model: "gpt-6-sol";
|
|
22
22
|
readonly effort: "medium";
|
|
23
23
|
};
|
|
24
24
|
readonly quick: {
|
|
25
|
-
readonly model: "gpt-
|
|
26
|
-
readonly effort: "
|
|
25
|
+
readonly model: "gpt-6-luna";
|
|
26
|
+
readonly effort: "medium";
|
|
27
27
|
};
|
|
28
28
|
readonly deep: {
|
|
29
|
-
readonly model: "gpt-
|
|
29
|
+
readonly model: "gpt-6-sol";
|
|
30
30
|
readonly effort: "medium";
|
|
31
31
|
};
|
|
32
32
|
};
|
|
33
33
|
export declare const OPENCODE_OPENAI_ORCHESTRATOR_PRESET: {
|
|
34
|
-
readonly model: "gpt-
|
|
34
|
+
readonly model: "gpt-6-sol";
|
|
35
35
|
readonly effort: "xhigh";
|
|
36
36
|
};
|
|
37
37
|
export declare const DEFAULT_MODELS: Record<AgentName, string | undefined>;
|
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
renderOpenCodeAgentConfigs,
|
|
4
4
|
spawn,
|
|
5
5
|
spawnSync
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-STCURXAQ.js";
|
|
7
7
|
import {
|
|
8
8
|
context7,
|
|
9
9
|
exa,
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
getOpenCodeConfigPaths,
|
|
15
15
|
loadPluginConfig,
|
|
16
16
|
stripJsonComments
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-EFGSGPYM.js";
|
|
18
18
|
|
|
19
19
|
// src/index.ts
|
|
20
20
|
import { fileURLToPath as fileURLToPath3 } from "url";
|
package/dist/pi.js
CHANGED
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
PI_ROOT_START,
|
|
4
4
|
renderPiRootInstructions,
|
|
5
5
|
syncPiSpecialists
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-2U5MBLLV.js";
|
|
7
7
|
import {
|
|
8
8
|
findPackageRoot
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-EFGSGPYM.js";
|
|
10
10
|
|
|
11
11
|
// src/pi.ts
|
|
12
12
|
import { homedir } from "os";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "thoth-agents",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"description": "Adaptive multi-harness orchestration with seven roles, runtime-autonomous Spec Kit-compatible SDD routes, and external provider boundaries.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"owner": "thoth-agents",
|
|
4
4
|
"files": {
|
|
5
|
-
"agents/thoth-explorer.md": "
|
|
6
|
-
"agents/thoth-librarian.md": "
|
|
7
|
-
"agents/thoth-oracle.md": "
|
|
8
|
-
"agents/thoth-designer.md": "
|
|
9
|
-
"agents/thoth-quick.md": "
|
|
10
|
-
"agents/thoth-deep.md": "
|
|
5
|
+
"agents/thoth-explorer.md": "59a842073e9da8b668f3680c49493a297f9db09712b47d55d686da7c19a23ebc",
|
|
6
|
+
"agents/thoth-librarian.md": "8dffb32f31230ee46759c773f6e5be8c951b374cd9eae7ae2414840f5582a0dc",
|
|
7
|
+
"agents/thoth-oracle.md": "3ebe446e982b1e83cd7b009d162c9fa97ce97ad4fcd4ce1e0fd1653a39ee1e93",
|
|
8
|
+
"agents/thoth-designer.md": "bfc7872371a8972b619f8873247792c04dbaead45e41c6cb225967d93c6870e9",
|
|
9
|
+
"agents/thoth-quick.md": "f5891f6d90cd90cf392a6140838e2489c35809504c3a13b4c8656101a4b92dc0",
|
|
10
|
+
"agents/thoth-deep.md": "fc07a523836113ba885341a33570ab46d2a7789649ad5ab40f0eb8a9c3ffd2de"
|
|
11
11
|
}
|
|
12
12
|
}
|
package/pi/agents/thoth-deep.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: thoth-deep
|
|
3
3
|
description: "Handle multi-file, edge-case-heavy, or high-risk implementation with full local context. Use when: Implementation is multi-file, edge-case-heavy, migration, concurrency, shared-contract, or high-risk. Do not use when: Not for visual-only work or narrow known low-risk edits. Escalate when: Return product or architecture choices to root. Mutation: only the assigned correctness-critical implementation and verification surface. Verification: reports focused checks and relevant edge-case evidence Return: conclusion, evidence, verification, risks, openQuestions, nextAction."
|
|
4
4
|
tools: "read, bash, edit, write"
|
|
5
|
-
model: "openai-codex/gpt-
|
|
5
|
+
model: "openai-codex/gpt-6-sol"
|
|
6
6
|
effort: "medium"
|
|
7
7
|
managed-by: thoth-agents
|
|
8
8
|
---
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: thoth-designer
|
|
3
3
|
description: "Own user-facing implementation choices and visual quality for UI work. Use when: User-facing UI/UX, interaction, accessibility, or visual quality is material. Do not use when: Not for backend-only, non-visual, or correctness-heavy cross-cutting work. Escalate when: Escalate coupled contracts, migrations, or high risk to deep. Mutation: only the assigned UI/UX decisions, implementation, and visual verification surface. Verification: includes visual verification when applicable Return: conclusion, evidence, verification, risks, openQuestions, nextAction."
|
|
4
4
|
tools: "read, bash, edit, write"
|
|
5
|
-
model: "openai-codex/gpt-
|
|
5
|
+
model: "openai-codex/gpt-6-sol"
|
|
6
6
|
effort: "medium"
|
|
7
7
|
managed-by: thoth-agents
|
|
8
8
|
---
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: thoth-explorer
|
|
3
3
|
description: "Resolve broad or uncertain repository questions and return distilled evidence. Use when: Repository ownership or behavior is broad or uncertain. Do not use when: Not for implementation, edits, or known narrow questions. Escalate when: Send external evidence to librarian and mutation scope to root. Mutation: read-only; never mutate the workspace. Verification: reports inspected paths, confidence, and remaining gaps Return: conclusion, evidence, verification, risks, openQuestions, nextAction."
|
|
4
4
|
tools: "read, bash"
|
|
5
|
-
model: "openai-codex/gpt-
|
|
5
|
+
model: "openai-codex/gpt-6-luna"
|
|
6
6
|
effort: "low"
|
|
7
7
|
managed-by: thoth-agents
|
|
8
8
|
---
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: thoth-librarian
|
|
3
3
|
description: "Gather current authoritative evidence and separate documented facts from inference. Use when: Current authoritative external evidence is required. Do not use when: Not for implementation, edits, or purely local discovery. Escalate when: Report contradictory or insufficient sources to root. Mutation: read-only; never mutate the workspace. Verification: provides direct sources for substantive external claims Return: conclusion, evidence, verification, risks, openQuestions, nextAction."
|
|
4
4
|
tools: "read, bash, resolve-library-id, query-docs, mcp, web_search, fetch_content, get_search_content, source_check"
|
|
5
|
-
model: "openai-codex/gpt-
|
|
5
|
+
model: "openai-codex/gpt-6-luna"
|
|
6
6
|
effort: "high"
|
|
7
7
|
managed-by: thoth-agents
|
|
8
8
|
---
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
name: thoth-oracle
|
|
3
3
|
description: "Independently review plans when the user requests it and provide independent judgment for artifact-backed or material-risk final verification, exposing correctness risks and judging whether results satisfy their contracts. Use when: Selected plan review, persistent diagnosis, material architecture or security risk, contradictory evidence, high failure cost, or artifact-backed final verification needs independent judgment. Do not use when: Not for implementation, mutation, persistence, or self-review. Escalate when: Return blockers and remediation anchors to root. Mutation: read-only; never mutate the workspace. Verification: separates observations, risks, and recommendations Return: conclusion, evidence, verification, risks, openQuestions, nextAction."
|
|
4
4
|
tools: "read, bash"
|
|
5
|
-
model: "openai-codex/gpt-
|
|
6
|
-
effort: "
|
|
5
|
+
model: "openai-codex/gpt-6-astra"
|
|
6
|
+
effort: "medium"
|
|
7
7
|
managed-by: thoth-agents
|
|
8
8
|
---
|
|
9
9
|
|
package/pi/agents/thoth-quick.md
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
name: thoth-quick
|
|
3
3
|
description: "Implement narrow, clear, low-risk changes within an explicitly bounded surface. Use when: Known narrow mechanical low-risk work has exact targets. Do not use when: Not for coupled contracts, migrations, broad discovery, concurrency, edge cases, or high risk. Escalate when: Escalate discovery, coupling, edge cases, or higher risk to deep. Mutation: only the assigned fast bounded implementation surface. Verification: runs the smallest sufficient focused check Return: conclusion, evidence, verification, risks, openQuestions, nextAction."
|
|
4
4
|
tools: "read, bash, edit, write"
|
|
5
|
-
model: "openai-codex/gpt-
|
|
6
|
-
effort: "
|
|
5
|
+
model: "openai-codex/gpt-6-luna"
|
|
6
|
+
effort: "medium"
|
|
7
7
|
managed-by: thoth-agents
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "thoth-agents",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"description": "Bundled Spec Kit-compatible SDD skills and MCP configuration; the seven-role global Codex layer requires thoth-agents CLI setup.",
|
|
5
5
|
"skills": "./skills/",
|
|
6
6
|
"mcpServers": "./codex.mcp.json"
|