@leanandmean/coding-agent 0.74.1-scramjet.70 → 0.74.1-scramjet.72
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/README.md +14 -0
- package/dist/cli/args.d.ts +2 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +44 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/core/agent-session-services.d.ts +1 -0
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js +1 -0
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session.d.ts +6 -2
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +23 -6
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/model-registry.d.ts +99 -0
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +93 -0
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/sdk.d.ts +2 -0
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +9 -1
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/tools/ls.d.ts.map +1 -1
- package/dist/core/tools/ls.js +4 -2
- package/dist/core/tools/ls.js.map +1 -1
- package/dist/main.d.ts +105 -2
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +77 -3
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts +1 -3
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +2 -5
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +1 -1
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/docs/json.md +6 -0
- package/docs/models.md +69 -2
- package/docs/rpc.md +8 -0
- package/docs/sdk.md +17 -0
- package/package.json +4 -4
|
@@ -155,6 +155,9 @@ export class AgentSession {
|
|
|
155
155
|
_extensionErrorUnsubscriber;
|
|
156
156
|
// Model registry for API key resolution
|
|
157
157
|
_modelRegistry;
|
|
158
|
+
// SCRAMJET-DIVERGENCE: Ephemeral routes retain live preferences and journal changes without changing shared defaults.
|
|
159
|
+
_persistModelPreferences;
|
|
160
|
+
_sessionThinkingLevelPreference;
|
|
158
161
|
// Tool registry for extension getTools/setTools
|
|
159
162
|
_toolRegistry = new Map();
|
|
160
163
|
_toolDefinitions = new Map();
|
|
@@ -186,6 +189,7 @@ export class AgentSession {
|
|
|
186
189
|
this._customTools = config.customTools ?? [];
|
|
187
190
|
this._cwd = config.cwd;
|
|
188
191
|
this._modelRegistry = config.modelRegistry;
|
|
192
|
+
this._persistModelPreferences = config.persistModelPreferences ?? true;
|
|
189
193
|
this._extensionRunnerRef = config.extensionRunnerRef;
|
|
190
194
|
this._initialActiveToolNames = config.initialActiveToolNames;
|
|
191
195
|
this._allowedToolNames = config.allowedToolNames ? new Set(config.allowedToolNames) : undefined;
|
|
@@ -1677,7 +1681,7 @@ export class AgentSession {
|
|
|
1677
1681
|
}
|
|
1678
1682
|
/**
|
|
1679
1683
|
* Set model directly.
|
|
1680
|
-
* Validates
|
|
1684
|
+
* Validates auth, journals selection, and optionally saves global defaults.
|
|
1681
1685
|
* @throws Error if no auth is configured for the model
|
|
1682
1686
|
*/
|
|
1683
1687
|
async setModel(model) {
|
|
@@ -1688,7 +1692,8 @@ export class AgentSession {
|
|
|
1688
1692
|
const thinkingLevel = this._getThinkingLevelForModelSwitch();
|
|
1689
1693
|
this.agent.state.model = model;
|
|
1690
1694
|
this.sessionManager.appendModelChange(model.provider, model.id);
|
|
1691
|
-
this.
|
|
1695
|
+
if (this._persistModelPreferences)
|
|
1696
|
+
this.settingsManager.setDefaultModelAndProvider(model.provider, model.id);
|
|
1692
1697
|
// Re-clamp thinking level for new model's capabilities
|
|
1693
1698
|
this.setThinkingLevel(thinkingLevel);
|
|
1694
1699
|
await this._emitModelSelect(model, previousModel, "set");
|
|
@@ -1720,7 +1725,9 @@ export class AgentSession {
|
|
|
1720
1725
|
// Apply model
|
|
1721
1726
|
this.agent.state.model = next.model;
|
|
1722
1727
|
this.sessionManager.appendModelChange(next.model.provider, next.model.id);
|
|
1723
|
-
this.
|
|
1728
|
+
if (this._persistModelPreferences) {
|
|
1729
|
+
this.settingsManager.setDefaultModelAndProvider(next.model.provider, next.model.id);
|
|
1730
|
+
}
|
|
1724
1731
|
// Apply thinking level.
|
|
1725
1732
|
// - Explicit scoped model thinking level overrides current session level
|
|
1726
1733
|
// - Undefined scoped model thinking level inherits the current session preference
|
|
@@ -1743,7 +1750,9 @@ export class AgentSession {
|
|
|
1743
1750
|
const thinkingLevel = this._getThinkingLevelForModelSwitch();
|
|
1744
1751
|
this.agent.state.model = nextModel;
|
|
1745
1752
|
this.sessionManager.appendModelChange(nextModel.provider, nextModel.id);
|
|
1746
|
-
this.
|
|
1753
|
+
if (this._persistModelPreferences) {
|
|
1754
|
+
this.settingsManager.setDefaultModelAndProvider(nextModel.provider, nextModel.id);
|
|
1755
|
+
}
|
|
1747
1756
|
// Re-clamp thinking level for new model's capabilities
|
|
1748
1757
|
this.setThinkingLevel(thinkingLevel);
|
|
1749
1758
|
await this._emitModelSelect(nextModel, currentModel, "cycle");
|
|
@@ -1755,7 +1764,7 @@ export class AgentSession {
|
|
|
1755
1764
|
/**
|
|
1756
1765
|
* Set thinking level.
|
|
1757
1766
|
* Clamps to model capabilities based on available thinking levels.
|
|
1758
|
-
*
|
|
1767
|
+
* Journals actual changes and optionally saves global defaults.
|
|
1759
1768
|
*/
|
|
1760
1769
|
setThinkingLevel(level) {
|
|
1761
1770
|
const availableLevels = this.getAvailableThinkingLevels();
|
|
@@ -1767,7 +1776,12 @@ export class AgentSession {
|
|
|
1767
1776
|
if (isChanging) {
|
|
1768
1777
|
this.sessionManager.appendThinkingLevelChange(effectiveLevel);
|
|
1769
1778
|
if (this.supportsThinking() || effectiveLevel !== "off") {
|
|
1770
|
-
this.
|
|
1779
|
+
if (this._persistModelPreferences) {
|
|
1780
|
+
this.settingsManager.setDefaultThinkingLevel(effectiveLevel);
|
|
1781
|
+
}
|
|
1782
|
+
else {
|
|
1783
|
+
this._sessionThinkingLevelPreference = effectiveLevel;
|
|
1784
|
+
}
|
|
1771
1785
|
}
|
|
1772
1786
|
this._emit({ type: "thinking_level_changed", level: effectiveLevel });
|
|
1773
1787
|
void this._extensionRunner.emit({
|
|
@@ -1811,6 +1825,9 @@ export class AgentSession {
|
|
|
1811
1825
|
return explicitLevel;
|
|
1812
1826
|
}
|
|
1813
1827
|
if (!this.supportsThinking()) {
|
|
1828
|
+
if (!this._persistModelPreferences && this._sessionThinkingLevelPreference !== undefined) {
|
|
1829
|
+
return this._sessionThinkingLevelPreference;
|
|
1830
|
+
}
|
|
1814
1831
|
return this.settingsManager.getDefaultThinkingLevel() ?? DEFAULT_THINKING_LEVEL;
|
|
1815
1832
|
}
|
|
1816
1833
|
return this.thinkingLevel;
|