iosm-cli 0.2.10 → 0.2.12
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/CHANGELOG.md +51 -0
- package/README.md +12 -2
- package/dist/core/agent-session.d.ts +4 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +123 -49
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/background-processes.d.ts +31 -0
- package/dist/core/background-processes.d.ts.map +1 -0
- package/dist/core/background-processes.js +241 -0
- package/dist/core/background-processes.js.map +1 -0
- package/dist/core/bash-executor.d.ts +6 -0
- package/dist/core/bash-executor.d.ts.map +1 -1
- package/dist/core/bash-executor.js.map +1 -1
- package/dist/core/extensions/types.d.ts +3 -0
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/extensions/wrapper.d.ts +19 -2
- package/dist/core/extensions/wrapper.d.ts.map +1 -1
- package/dist/core/extensions/wrapper.js +23 -4
- package/dist/core/extensions/wrapper.js.map +1 -1
- package/dist/core/mcp/runtime.d.ts.map +1 -1
- package/dist/core/mcp/runtime.js +2 -0
- package/dist/core/mcp/runtime.js.map +1 -1
- package/dist/core/messages.d.ts +1 -1
- package/dist/core/messages.d.ts.map +1 -1
- package/dist/core/messages.js +2 -1
- package/dist/core/messages.js.map +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +30 -2
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/settings-manager.d.ts +17 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +29 -0
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +4 -0
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/subagents.d.ts +10 -2
- package/dist/core/subagents.d.ts.map +1 -1
- package/dist/core/subagents.js +66 -17
- package/dist/core/subagents.js.map +1 -1
- package/dist/core/system-prompt.d.ts +25 -0
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +147 -14
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tools/bash.d.ts +5 -0
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +28 -2
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/index.d.ts +2 -1
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/permissions.d.ts +3 -0
- package/dist/core/tools/permissions.d.ts.map +1 -1
- package/dist/core/tools/permissions.js.map +1 -1
- package/dist/core/tools/task.d.ts +3 -1
- package/dist/core/tools/task.d.ts.map +1 -1
- package/dist/core/tools/task.js +48 -23
- package/dist/core/tools/task.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +93 -1
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +5 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +252 -24
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/docs/cli-reference.md +6 -0
- package/docs/configuration.md +57 -1
- package/docs/development-and-testing.md +3 -2
- package/docs/extensions-packages-themes.md +27 -0
- package/docs/interactive-mode.md +4 -0
- package/docs/orchestration-and-subagents.md +16 -0
- package/docs/rpc-json-sdk.md +14 -0
- package/docs/sessions-traces-export.md +7 -0
- package/package.json +1 -1
package/dist/main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAyqDH,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,iBA6RxC"}
|
package/dist/main.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { supportsXhigh } from "@mariozechner/pi-ai";
|
|
8
8
|
import chalk from "chalk";
|
|
9
|
-
import { writeFileSync } from "node:fs";
|
|
9
|
+
import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
10
10
|
import { resolve } from "node:path";
|
|
11
11
|
import { createInterface } from "readline";
|
|
12
12
|
import { parseArgs, printHelp } from "./cli/args.js";
|
|
@@ -20,6 +20,7 @@ import { exportFromFile } from "./core/export-html/index.js";
|
|
|
20
20
|
import { KeybindingsManager } from "./core/keybindings.js";
|
|
21
21
|
import { ModelRegistry } from "./core/model-registry.js";
|
|
22
22
|
import { resolveCliModel, resolveModelScope } from "./core/model-resolver.js";
|
|
23
|
+
import { loadModelsDevProviderCatalog } from "./core/models-dev-provider-catalog.js";
|
|
23
24
|
import { getMcpCommandHelp, getMergedServerByName, loadMergedMcpConfig, McpRuntime, parseMcpAddCommand, parseMcpTargetCommand, } from "./core/mcp/index.js";
|
|
24
25
|
import { getSemanticCommandHelp, parseSemanticCliCommand, SemanticConfigMissingError, SemanticIndexRequiredError, SemanticRebuildRequiredError, SemanticSearchRuntime, } from "./core/semantic/index.js";
|
|
25
26
|
import { DefaultPackageManager } from "./core/package-manager.js";
|
|
@@ -55,6 +56,95 @@ async function readPipedStdin() {
|
|
|
55
56
|
process.stdin.resume();
|
|
56
57
|
});
|
|
57
58
|
}
|
|
59
|
+
function resolveModelsDevApi(modelNpm) {
|
|
60
|
+
const npm = modelNpm?.toLowerCase() ?? "";
|
|
61
|
+
if (npm.includes("anthropic"))
|
|
62
|
+
return "anthropic-messages";
|
|
63
|
+
if (npm.includes("google-vertex"))
|
|
64
|
+
return "google-vertex";
|
|
65
|
+
if (npm.includes("google"))
|
|
66
|
+
return "google-generative-ai";
|
|
67
|
+
if (npm.includes("amazon-bedrock"))
|
|
68
|
+
return "bedrock-converse-stream";
|
|
69
|
+
if (npm.includes("mistral"))
|
|
70
|
+
return "mistral-conversations";
|
|
71
|
+
if (npm.includes("@ai-sdk/openai") && !npm.includes("compatible"))
|
|
72
|
+
return "openai-responses";
|
|
73
|
+
return "openai-completions";
|
|
74
|
+
}
|
|
75
|
+
function buildModelsDevProviderConfig(providerInfo) {
|
|
76
|
+
const baseUrl = providerInfo.api ?? providerInfo.models.find((model) => !!model.api)?.api;
|
|
77
|
+
if (!baseUrl)
|
|
78
|
+
return undefined;
|
|
79
|
+
if (providerInfo.models.length === 0)
|
|
80
|
+
return undefined;
|
|
81
|
+
const models = providerInfo.models.map((model) => ({
|
|
82
|
+
id: model.id,
|
|
83
|
+
name: model.name,
|
|
84
|
+
api: resolveModelsDevApi(model.npm ?? providerInfo.npm),
|
|
85
|
+
reasoning: model.reasoning,
|
|
86
|
+
input: [...model.input],
|
|
87
|
+
cost: model.cost,
|
|
88
|
+
contextWindow: model.contextWindow,
|
|
89
|
+
maxTokens: model.maxTokens,
|
|
90
|
+
headers: Object.keys(model.headers).length > 0 ? model.headers : undefined,
|
|
91
|
+
}));
|
|
92
|
+
return {
|
|
93
|
+
baseUrl,
|
|
94
|
+
models,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
function isProviderConfiguredInModelsJson(providerId, modelsPath) {
|
|
98
|
+
if (!existsSync(modelsPath))
|
|
99
|
+
return false;
|
|
100
|
+
try {
|
|
101
|
+
const parsed = JSON.parse(readFileSync(modelsPath, "utf-8"));
|
|
102
|
+
const providers = parsed?.providers;
|
|
103
|
+
if (!providers || typeof providers !== "object" || Array.isArray(providers))
|
|
104
|
+
return false;
|
|
105
|
+
return Object.prototype.hasOwnProperty.call(providers, providerId);
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
async function hydrateAuthenticatedProviderModelsOnStartup(modelRegistry) {
|
|
112
|
+
if (isTruthyEnvFlag(process.env[ENV_OFFLINE]) || isTruthyEnvFlag(process.env.PI_OFFLINE))
|
|
113
|
+
return;
|
|
114
|
+
const providersToRefresh = new Set(modelRegistry.authStorage.list());
|
|
115
|
+
for (const model of modelRegistry.getAll()) {
|
|
116
|
+
if (modelRegistry.authStorage.hasAuth(model.provider)) {
|
|
117
|
+
providersToRefresh.add(model.provider);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
if (providersToRefresh.size === 0)
|
|
121
|
+
return;
|
|
122
|
+
const modelsPath = getModelsPath();
|
|
123
|
+
let catalog;
|
|
124
|
+
try {
|
|
125
|
+
catalog = await loadModelsDevProviderCatalog();
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
for (const providerId of providersToRefresh) {
|
|
131
|
+
if (isProviderConfiguredInModelsJson(providerId, modelsPath)) {
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
const providerInfo = catalog.get(providerId);
|
|
135
|
+
if (!providerInfo)
|
|
136
|
+
continue;
|
|
137
|
+
const config = buildModelsDevProviderConfig(providerInfo);
|
|
138
|
+
if (!config)
|
|
139
|
+
continue;
|
|
140
|
+
try {
|
|
141
|
+
modelRegistry.registerProvider(providerId, config);
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
// Best effort only.
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
58
148
|
function reportSettingsErrors(settingsManager, context) {
|
|
59
149
|
const errors = settingsManager.drainErrors();
|
|
60
150
|
for (const { scope, error } of errors) {
|
|
@@ -310,6 +400,7 @@ async function runIosmInitAgentVerification(targetDir, result) {
|
|
|
310
400
|
reportSettingsErrors(settingsManager, "iosm init verify");
|
|
311
401
|
const authStorage = AuthStorage.create();
|
|
312
402
|
const modelRegistry = new ModelRegistry(authStorage, getModelsPath());
|
|
403
|
+
await hydrateAuthenticatedProviderModelsOnStartup(modelRegistry);
|
|
313
404
|
const resourceLoader = new DefaultResourceLoader({
|
|
314
405
|
cwd: targetDir,
|
|
315
406
|
agentDir,
|
|
@@ -1395,6 +1486,7 @@ export async function main(args) {
|
|
|
1395
1486
|
reportSettingsErrors(settingsManager, "startup");
|
|
1396
1487
|
const authStorage = AuthStorage.create();
|
|
1397
1488
|
const modelRegistry = new ModelRegistry(authStorage, getModelsPath());
|
|
1489
|
+
await hydrateAuthenticatedProviderModelsOnStartup(modelRegistry);
|
|
1398
1490
|
const resourceLoader = new DefaultResourceLoader({
|
|
1399
1491
|
cwd,
|
|
1400
1492
|
agentDir,
|