@ai-agent-forge/agent-forge 0.87.0 → 0.88.0
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 +27 -0
- package/README.md +2 -2
- package/dist/bundle/.build-manifest.json +65 -87
- package/dist/bundle/chunks/{chunk-BFC2BDVJ.js → chunk-HLJEVRWP.js} +2 -2
- package/dist/bundle/chunks/{chunk-MOHOLL3F.js → chunk-YGHQME4V.js} +72 -72
- package/dist/bundle/chunks/image-resize-worker.js +2 -2
- package/dist/bundle/cli.js +1 -1
- package/dist/bundle/client.js +1 -1
- package/dist/bundle/index.js +1 -1
- package/dist/bundle/rpc-entry.js +1 -1
- package/dist/cli/auth-check.d.ts.map +1 -1
- package/dist/cli/auth-check.js +14 -2
- package/dist/cli/auth-check.js.map +1 -1
- package/dist/cli/auth-command.d.ts.map +1 -1
- package/dist/cli/auth-command.js +1 -1
- package/dist/cli/auth-command.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -2
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session-compaction.d.ts +6 -10
- package/dist/core/agent-session-compaction.d.ts.map +1 -1
- package/dist/core/agent-session-compaction.js +7 -111
- package/dist/core/agent-session-compaction.js.map +1 -1
- package/dist/core/agent-session-internal.d.ts +0 -6
- package/dist/core/agent-session-internal.d.ts.map +1 -1
- package/dist/core/agent-session-internal.js.map +1 -1
- package/dist/core/agent-session-retry.d.ts.map +1 -1
- package/dist/core/agent-session-retry.js +0 -1
- package/dist/core/agent-session-retry.js.map +1 -1
- package/dist/core/agent-session.d.ts +0 -20
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +5 -33
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/extensions/bootstrap-compaction-policy.d.ts.map +1 -1
- package/dist/core/extensions/bootstrap-compaction-policy.js +0 -34
- package/dist/core/extensions/bootstrap-compaction-policy.js.map +1 -1
- package/dist/core/extensions/bootstrap-retry-policy.d.ts.map +1 -1
- package/dist/core/extensions/bootstrap-retry-policy.js +2 -2
- package/dist/core/extensions/bootstrap-retry-policy.js.map +1 -1
- package/dist/core/extensions/provider-failover.d.ts +7 -3
- package/dist/core/extensions/provider-failover.d.ts.map +1 -1
- package/dist/core/extensions/provider-failover.js +9 -8
- package/dist/core/extensions/provider-failover.js.map +1 -1
- package/dist/core/facade/coding-agent-facade.d.ts +0 -6
- package/dist/core/facade/coding-agent-facade.d.ts.map +1 -1
- package/dist/core/facade/coding-agent-facade.js +0 -3
- package/dist/core/facade/coding-agent-facade.js.map +1 -1
- package/dist/core/i18n/locales/zh-cn/cli.d.ts.map +1 -1
- package/dist/core/i18n/locales/zh-cn/cli.js +3 -1
- package/dist/core/i18n/locales/zh-cn/cli.js.map +1 -1
- package/dist/core/i18n/locales/zh-cn/interactive-mode.d.ts.map +1 -1
- package/dist/core/i18n/locales/zh-cn/interactive-mode.js +2 -0
- package/dist/core/i18n/locales/zh-cn/interactive-mode.js.map +1 -1
- package/dist/core/i18n/locales/zh-cn/tui-components-selectors.d.ts.map +1 -1
- package/dist/core/i18n/locales/zh-cn/tui-components-selectors.js +0 -2
- package/dist/core/i18n/locales/zh-cn/tui-components-selectors.js.map +1 -1
- package/dist/core/model-config.d.ts +0 -1
- package/dist/core/model-config.d.ts.map +1 -1
- package/dist/core/model-config.js +9 -1
- package/dist/core/model-config.js.map +1 -1
- package/dist/core/model-runtime.d.ts.map +1 -1
- package/dist/core/model-runtime.js +3 -3
- package/dist/core/model-runtime.js.map +1 -1
- package/dist/core/provider-composer.d.ts +2 -2
- package/dist/core/provider-composer.d.ts.map +1 -1
- package/dist/core/provider-composer.js +7 -8
- package/dist/core/provider-composer.js.map +1 -1
- package/dist/core/sdk.d.ts +8 -0
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +6 -1
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/settings-manager.d.ts +9 -20
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +20 -54
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +3 -2
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts +0 -2
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +2 -7
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +2 -6
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +6 -28
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +0 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +23 -36
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts +0 -8
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +0 -12
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +0 -9
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +0 -19
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/dist/plugins/ecosystem/node-plugin-bootstrap.d.ts +9 -2
- package/dist/plugins/ecosystem/node-plugin-bootstrap.d.ts.map +1 -1
- package/dist/plugins/ecosystem/node-plugin-bootstrap.js +23 -0
- package/dist/plugins/ecosystem/node-plugin-bootstrap.js.map +1 -1
- package/dist/plugins/ecosystem/plugin-bootstrap.d.ts +9 -1
- package/dist/plugins/ecosystem/plugin-bootstrap.d.ts.map +1 -1
- package/dist/plugins/ecosystem/plugin-bootstrap.js +5 -0
- package/dist/plugins/ecosystem/plugin-bootstrap.js.map +1 -1
- package/dist/utils/photon.d.ts +2 -2
- package/dist/utils/photon.d.ts.map +1 -1
- package/dist/utils/photon.js +2 -2
- package/dist/utils/photon.js.map +1 -1
- package/docs/compaction.md +1 -3
- package/docs/docs.json +4 -0
- package/docs/index.md +1 -0
- package/docs/mcp.md +103 -0
- package/docs/models.md +14 -22
- package/docs/providers.md +0 -1
- package/docs/rpc.md +1 -26
- package/docs/sdk.md +4 -6
- package/docs/settings.md +9 -12
- package/docs/skills.md +1 -9
- package/docs/usage.md +1 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/examples/extensions/with-deps/plugin.json +1 -1
- package/examples/sdk/10-settings.ts +2 -4
- package/examples/sdk/12-full-control.ts +1 -2
- package/package.json +1 -3
- package/dist/core/extensions/microcompact.d.ts +0 -80
- package/dist/core/extensions/microcompact.d.ts.map +0 -1
- package/dist/core/extensions/microcompact.js +0 -134
- package/dist/core/extensions/microcompact.js.map +0 -1
- package/dist/server/create-harness.d.ts +0 -26
- package/dist/server/create-harness.d.ts.map +0 -1
- package/dist/server/create-harness.js +0 -106
- package/dist/server/create-harness.js.map +0 -1
|
@@ -306,8 +306,6 @@ export class InteractiveMode {
|
|
|
306
306
|
getMode: () => this.settingsManager.getMermaidRenderingMode(),
|
|
307
307
|
theme,
|
|
308
308
|
});
|
|
309
|
-
// Skill commands: command name -> skill file path
|
|
310
|
-
skillCommands = new Map();
|
|
311
309
|
// Agent subscription unsubscribe function
|
|
312
310
|
unsubscribe;
|
|
313
311
|
signalCleanupHandlers = [];
|
|
@@ -423,7 +421,6 @@ export class InteractiveMode {
|
|
|
423
421
|
this.editorContainer.addChild(this.editor);
|
|
424
422
|
this.footerDataProvider = new FooterDataProvider(this.facade.getCwd());
|
|
425
423
|
this.footer = new FooterComponent(this.session, this.footerDataProvider);
|
|
426
|
-
this.footer.setAutoCompactEnabled(this.facade.isAutoCompactionEnabled());
|
|
427
424
|
this.footerContainer = new Container();
|
|
428
425
|
this.footerContainer.addChild(this.footer);
|
|
429
426
|
this.failoverTicker = new ProviderFailoverTicker(() => this.footer.isProviderFailoverOpen(), () => this.ui.requestRender());
|
|
@@ -547,20 +544,19 @@ export class InteractiveMode {
|
|
|
547
544
|
description: definition.description,
|
|
548
545
|
...(definition.argumentHint && { argumentHint: definition.argumentHint }),
|
|
549
546
|
})), [builtinCommandNames, templateCommandNames, [...resourceSkillCommandNames]]);
|
|
550
|
-
//
|
|
551
|
-
|
|
547
|
+
// Skill commands register unconditionally (D-079: the enableSkillCommands
|
|
548
|
+
// switch is retired). A capability command claiming the same skill:name
|
|
549
|
+
// still wins: conflicting names are rejected by AgentSession, so neither
|
|
550
|
+
// side is offered as an executable completion.
|
|
552
551
|
const skillCommandList = [];
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
description: this.prefixAutocompleteDescription(skill.description, skill.sourceInfo),
|
|
562
|
-
});
|
|
563
|
-
}
|
|
552
|
+
for (const skill of this.facade.getSkills().skills) {
|
|
553
|
+
const commandName = `skill:${skill.name}`;
|
|
554
|
+
if (capabilityCommandNames.has(commandName))
|
|
555
|
+
continue;
|
|
556
|
+
skillCommandList.push({
|
|
557
|
+
name: commandName,
|
|
558
|
+
description: this.prefixAutocompleteDescription(skill.description, skill.sourceInfo),
|
|
559
|
+
});
|
|
564
560
|
}
|
|
565
561
|
return new CombinedAutocompleteProvider([...slashCommands, ...templateCommands, ...capabilityCommands, ...skillCommandList], this.facade.getCwd(), this.fdPath);
|
|
566
562
|
}
|
|
@@ -1248,7 +1244,6 @@ export class InteractiveMode {
|
|
|
1248
1244
|
this.renderer.setWheelScrollLines(this.settingsManager.getFullscreenWheelScrollLines());
|
|
1249
1245
|
}
|
|
1250
1246
|
this.footer.setSession(this.session);
|
|
1251
|
-
this.footer.setAutoCompactEnabled(this.facade.isAutoCompactionEnabled());
|
|
1252
1247
|
this.footerDataProvider.setCwd(this.facade.getCwd());
|
|
1253
1248
|
// The switched session carries its own failover snapshot history; re-check
|
|
1254
1249
|
// whether the countdown ticker is needed.
|
|
@@ -1498,7 +1493,14 @@ export class InteractiveMode {
|
|
|
1498
1493
|
this.restoreQueuedMessagesToEditor({ abort: true, cancelAgentTasks: false });
|
|
1499
1494
|
const activeAgents = this.facade.getActiveAgentTaskCount();
|
|
1500
1495
|
if (activeAgents > 0) {
|
|
1501
|
-
|
|
1496
|
+
// 单复数拆双 key 保 en 语法(批次⑩规则,同 handleStopAgentsCommand)。
|
|
1497
|
+
this.showStatus(activeAgents === 1
|
|
1498
|
+
? t("{count} subagent still running · /stop-agents stops all (Esc only stops the current turn)", {
|
|
1499
|
+
count: activeAgents,
|
|
1500
|
+
})
|
|
1501
|
+
: t("{count} subagents still running · /stop-agents stops all (Esc only stops the current turn)", {
|
|
1502
|
+
count: activeAgents,
|
|
1503
|
+
}));
|
|
1502
1504
|
}
|
|
1503
1505
|
}
|
|
1504
1506
|
else if (this.facade.isBashRunning()) {
|
|
@@ -1510,17 +1512,12 @@ export class InteractiveMode {
|
|
|
1510
1512
|
this.updateEditorBorderColor();
|
|
1511
1513
|
}
|
|
1512
1514
|
else if (!this.editor.getText().trim()) {
|
|
1513
|
-
// Double-escape with empty editor triggers /tree
|
|
1515
|
+
// Double-escape with empty editor triggers /tree or nothing based on setting
|
|
1514
1516
|
const action = this.settingsManager.getDoubleEscapeAction();
|
|
1515
|
-
if (action
|
|
1517
|
+
if (action === "tree") {
|
|
1516
1518
|
const now = Date.now();
|
|
1517
1519
|
if (now - this.lastEscapeTime < 500) {
|
|
1518
|
-
|
|
1519
|
-
this.showTreeSelector();
|
|
1520
|
-
}
|
|
1521
|
-
else {
|
|
1522
|
-
this.showUserMessageSelector();
|
|
1523
|
-
}
|
|
1520
|
+
this.showTreeSelector();
|
|
1524
1521
|
this.lastEscapeTime = 0;
|
|
1525
1522
|
}
|
|
1526
1523
|
else {
|
|
@@ -2972,7 +2969,6 @@ export class InteractiveMode {
|
|
|
2972
2969
|
const defaultModelId = this.settingsManager.getDefaultModel();
|
|
2973
2970
|
const defaultModel = defaultProvider && defaultModelId ? `${defaultProvider}/${defaultModelId}` : t("not set");
|
|
2974
2971
|
selector = new SettingsSelectorComponent({
|
|
2975
|
-
autoCompact: this.facade.isAutoCompactionEnabled(),
|
|
2976
2972
|
defaultModel,
|
|
2977
2973
|
currentModel: this.facade.getModel(),
|
|
2978
2974
|
availableDefaultModels: this.facade.getAvailableModels(),
|
|
@@ -2980,7 +2976,6 @@ export class InteractiveMode {
|
|
|
2980
2976
|
imageWidthCells: this.settingsManager.getImageWidthCells(),
|
|
2981
2977
|
autoResizeImages: this.settingsManager.getImageAutoResize(),
|
|
2982
2978
|
blockImages: this.settingsManager.getBlockImages(),
|
|
2983
|
-
enableSkillCommands: this.settingsManager.getEnableSkillCommands(),
|
|
2984
2979
|
steeringMode: this.facade.getSteeringMode(),
|
|
2985
2980
|
followUpMode: this.facade.getFollowUpMode(),
|
|
2986
2981
|
transport: this.settingsManager.getTransport(),
|
|
@@ -3012,10 +3007,6 @@ export class InteractiveMode {
|
|
|
3012
3007
|
fullscreenWheelScrollLines: this.settingsManager.getFullscreenWheelScrollLines(),
|
|
3013
3008
|
warnings: this.settingsManager.getWarnings(),
|
|
3014
3009
|
}, {
|
|
3015
|
-
onAutoCompactChange: (enabled) => {
|
|
3016
|
-
this.facade.setAutoCompactionEnabled(enabled);
|
|
3017
|
-
this.footer.setAutoCompactEnabled(enabled);
|
|
3018
|
-
},
|
|
3019
3010
|
onShowImagesChange: (enabled) => {
|
|
3020
3011
|
this.settingsManager.setShowImages(enabled);
|
|
3021
3012
|
for (const child of this.chatContainer.children) {
|
|
@@ -3038,10 +3029,6 @@ export class InteractiveMode {
|
|
|
3038
3029
|
onBlockImagesChange: (blocked) => {
|
|
3039
3030
|
this.settingsManager.setBlockImages(blocked);
|
|
3040
3031
|
},
|
|
3041
|
-
onEnableSkillCommandsChange: (enabled) => {
|
|
3042
|
-
this.settingsManager.setEnableSkillCommands(enabled);
|
|
3043
|
-
this.setupAutocompleteProvider();
|
|
3044
|
-
},
|
|
3045
3032
|
onSteeringModeChange: (mode) => {
|
|
3046
3033
|
this.facade.setSteeringMode(mode);
|
|
3047
3034
|
},
|