@sireai/optimus 0.1.31 → 0.1.34
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/cli/optimus.js +21 -0
- package/dist/cli/optimus.js.map +1 -1
- package/dist/integrations/jira/jira-client.js +50 -8
- package/dist/integrations/jira/jira-client.js.map +1 -1
- package/dist/task-environment/evidence/evidence-preparation-service.js +19 -3
- package/dist/task-environment/evidence/evidence-preparation-service.js.map +1 -1
- package/dist/task-environment/runtime/optimus-runtime.d.ts +2 -0
- package/dist/task-environment/runtime/optimus-runtime.js +49 -20
- package/dist/task-environment/runtime/optimus-runtime.js.map +1 -1
- package/dist/task-environment/storage/sqlite-event-store.d.ts +1 -1
- package/dist/task-environment/storage/sqlite-event-store.js +2 -1
- package/dist/task-environment/storage/sqlite-event-store.js.map +1 -1
- package/package.json +1 -1
package/dist/cli/optimus.js
CHANGED
|
@@ -73,6 +73,7 @@ function renderSetupResult(result) {
|
|
|
73
73
|
const envLabel = result.codexAuth.envName ?? "unknown";
|
|
74
74
|
lines.push(`Codex Auth: ${result.codexAuth.mode} | ${result.codexAuth.configured ? `${envLabel} configured` : `${envLabel} missing`}${providerLabel}`);
|
|
75
75
|
}
|
|
76
|
+
lines.push(`Codex Model: ${result.codexAuth.model ?? "missing"}`);
|
|
76
77
|
lines.push("");
|
|
77
78
|
lines.push("Next");
|
|
78
79
|
lines.push("- optimus start");
|
|
@@ -1167,7 +1168,10 @@ async function promptSetupAnswers(defaults) {
|
|
|
1167
1168
|
let codexProviderDisplayName;
|
|
1168
1169
|
let codexProviderBaseUrl;
|
|
1169
1170
|
let codexProviderApiKeyEnvName;
|
|
1171
|
+
let codexModel;
|
|
1170
1172
|
if (codexAuthMode === "openai_api_key") {
|
|
1173
|
+
printSetupHint("Provider model: use a model name supported by the current provider. Examples: gpt-5.2-codex, gpt-5.2, gpt-5-mini.");
|
|
1174
|
+
codexModel = (await ask(renderSetupPrompt("Required", "Provider model (examples: gpt-5.2-codex, gpt-5.2, gpt-5-mini)", defaults.codexModel ?? ""))).trim() || defaults.codexModel;
|
|
1171
1175
|
printSetupHint("OpenAI API key: used only when you choose direct OpenAI API authentication.");
|
|
1172
1176
|
codexApiKey = (await ask(renderSetupPrompt("Optional", "OpenAI API key for OPENAI_API_KEY", "leave blank to keep existing"))).trim() || undefined;
|
|
1173
1177
|
}
|
|
@@ -1178,12 +1182,18 @@ async function promptSetupAnswers(defaults) {
|
|
|
1178
1182
|
codexProviderDisplayName = (await ask(renderSetupPrompt("Required", "Provider display name", defaults.codexProviderDisplayName ?? ""))).trim() || defaults.codexProviderDisplayName;
|
|
1179
1183
|
printSetupHint("Provider base URL: the model API endpoint root Optimus should call.");
|
|
1180
1184
|
codexProviderBaseUrl = (await ask(renderSetupPrompt("Required", "Provider base URL", defaults.codexProviderBaseUrl ?? ""))).trim() || defaults.codexProviderBaseUrl;
|
|
1185
|
+
printSetupHint("Provider model: use a model name supported by the current provider. Examples: gpt-5.2-codex, gpt-5.2, gpt-5-mini.");
|
|
1186
|
+
codexModel = (await ask(renderSetupPrompt("Required", "Provider model (examples: gpt-5.2-codex, gpt-5.2, gpt-5-mini)", defaults.codexModel ?? ""))).trim() || defaults.codexModel;
|
|
1181
1187
|
printSetupHint("Provider API key env name: the environment variable name Optimus will read at runtime.");
|
|
1182
1188
|
codexProviderApiKeyEnvName = (await ask(renderSetupPrompt("Required", "Provider API key env name", defaults.codexProviderApiKeyEnvName ?? ""))).trim() || defaults.codexProviderApiKeyEnvName;
|
|
1183
1189
|
const providerKeyLabel = codexProviderApiKeyEnvName || defaults.codexProviderApiKeyEnvName || "the configured provider env";
|
|
1184
1190
|
printSetupHint(`Provider API key value: optional here; leave blank to keep the current ${providerKeyLabel} value.`);
|
|
1185
1191
|
codexApiKey = (await ask(renderSetupPrompt("Optional", `Provider API key value for ${providerKeyLabel}`, "leave blank to keep existing"))).trim() || undefined;
|
|
1186
1192
|
}
|
|
1193
|
+
else {
|
|
1194
|
+
printSetupHint("Provider model: use a model name supported by the current provider. Examples: gpt-5.2-codex, gpt-5.2, gpt-5-mini.");
|
|
1195
|
+
codexModel = (await ask(renderSetupPrompt("Required", "Provider model (examples: gpt-5.2-codex, gpt-5.2, gpt-5-mini)", defaults.codexModel ?? ""))).trim() || defaults.codexModel;
|
|
1196
|
+
}
|
|
1187
1197
|
printSetupSection("Feishu", "Built-in Feishu app delivery is already available. Add a webhook only if group notifications should go to a chat first. Type \"\" to clear an existing optional value.");
|
|
1188
1198
|
printSetupHint("Feishu webhook: optional; leave empty to use direct Feishu app delivery only.");
|
|
1189
1199
|
const feishuWebhook = resolveOptionalTextAnswer(await ask(renderSetupPrompt("Optional", "Feishu webhook", defaults.feishuWebhook ? "configured" : "")), defaults.feishuWebhook ?? undefined);
|
|
@@ -1218,6 +1228,7 @@ async function promptSetupAnswers(defaults) {
|
|
|
1218
1228
|
repoPath,
|
|
1219
1229
|
repoAlias,
|
|
1220
1230
|
codexAuthMode,
|
|
1231
|
+
...(codexModel ? { codexModel } : {}),
|
|
1221
1232
|
...(codexApiKey ? { codexApiKey } : {}),
|
|
1222
1233
|
...(codexProviderId ? { codexProviderId } : {}),
|
|
1223
1234
|
...(codexProviderDisplayName ? { codexProviderDisplayName } : {}),
|
|
@@ -1253,6 +1264,7 @@ async function resolveDefaultSetupAnswers() {
|
|
|
1253
1264
|
repoPath: "",
|
|
1254
1265
|
repoAlias: "",
|
|
1255
1266
|
codexAuthMode: defaults.codex.auth.mode,
|
|
1267
|
+
...(defaults.codex.model?.trim() ? { codexModel: defaults.codex.model.trim() } : {}),
|
|
1256
1268
|
enableJira: false,
|
|
1257
1269
|
enableSentry: false
|
|
1258
1270
|
};
|
|
@@ -1268,6 +1280,7 @@ async function resolveDefaultSetupAnswers() {
|
|
|
1268
1280
|
repoPath: primaryRepository?.path ?? "",
|
|
1269
1281
|
repoAlias: primaryRepository?.alias ?? "",
|
|
1270
1282
|
codexAuthMode: config.codex.auth.mode,
|
|
1283
|
+
...(config.codex.model?.trim() ? { codexModel: config.codex.model.trim() } : {}),
|
|
1271
1284
|
...(provider?.id ? { codexProviderId: provider.id } : {}),
|
|
1272
1285
|
...(provider?.displayName ? { codexProviderDisplayName: provider.displayName } : {}),
|
|
1273
1286
|
...(provider?.baseUrl ? { codexProviderBaseUrl: provider.baseUrl } : {}),
|
|
@@ -1340,6 +1353,9 @@ function validateSetupAnswers(answers) {
|
|
|
1340
1353
|
if (answers.codexAuthMode === "model_provider" && !answers.codexProviderApiKeyEnvName?.trim()) {
|
|
1341
1354
|
return "setup requires provider API key env name when Codex auth mode is model_provider.";
|
|
1342
1355
|
}
|
|
1356
|
+
if (!answers.codexModel?.trim()) {
|
|
1357
|
+
return "setup requires a Codex model.";
|
|
1358
|
+
}
|
|
1343
1359
|
if (answers.enableJira && !answers.jiraBaseUrl?.trim()) {
|
|
1344
1360
|
return "setup requires a Jira base URL when Jira integration is enabled.";
|
|
1345
1361
|
}
|
|
@@ -1425,6 +1441,7 @@ function resolveSetupCachedProvider(rawConfig) {
|
|
|
1425
1441
|
}
|
|
1426
1442
|
function buildSetupConfig(answers, rawConfig) {
|
|
1427
1443
|
const config = buildDefaultConfig();
|
|
1444
|
+
const configuredCodexModel = answers.codexModel?.trim();
|
|
1428
1445
|
const cachedProvider = answers.codexAuthMode === "model_provider"
|
|
1429
1446
|
? {
|
|
1430
1447
|
id: answers.codexProviderId.trim(),
|
|
@@ -1435,6 +1452,9 @@ function buildSetupConfig(answers, rawConfig) {
|
|
|
1435
1452
|
}
|
|
1436
1453
|
: resolveSetupCachedProvider(rawConfig);
|
|
1437
1454
|
config.codex.auth.mode = answers.codexAuthMode;
|
|
1455
|
+
if (configuredCodexModel) {
|
|
1456
|
+
config.codex.model = configuredCodexModel;
|
|
1457
|
+
}
|
|
1438
1458
|
if (answers.codexAuthMode === "model_provider") {
|
|
1439
1459
|
config.codex.provider = {
|
|
1440
1460
|
id: answers.codexProviderId.trim(),
|
|
@@ -2028,6 +2048,7 @@ async function runSetup(args) {
|
|
|
2028
2048
|
sentryEnabled: config.sentry.enabled,
|
|
2029
2049
|
codexAuth: {
|
|
2030
2050
|
mode: codexAuth.mode,
|
|
2051
|
+
...(config.codex.model?.trim() ? { model: config.codex.model.trim() } : {}),
|
|
2031
2052
|
...(codexAuth.apiKeyEnvName ? { envName: codexAuth.apiKeyEnvName } : {}),
|
|
2032
2053
|
configured: codexAuth.authenticated,
|
|
2033
2054
|
...(codexAuth.providerId ? {
|