@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
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,33 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [0.88.0] - 2026-10-03
|
|
6
|
+
|
|
7
|
+
### Breaking Changes
|
|
8
|
+
|
|
9
|
+
- Compaction toggle retirement, batch 2 of the feature-switch removal program (user ruling 2026-10-03, 决策记录 D-060 裁决 15 / D-079): the settings key `compaction.enabled`, the RPC command `set_auto_compaction`, and the `autoCompactionEnabled` field of the `get_state` response are removed — automatic compaction now applies unconditionally, and manual `/compact` plus the RPC `compact` command are unchanged. Stale keys in settings files are silently ignored per the existing lenient settings contract. The session/facade members `setAutoCompactionEnabled`/`isAutoCompactionEnabled` (`AgentSession`, `CodingAgentFacadeV1`) and the TUI settings-selector "Auto-compact" row are removed with it.
|
|
10
|
+
- Feature-switch removal batch 2, block B (same user ruling, 决策记录 D-079): the settings keys `retry.enabled`, `enableSkillCommands`, and `failover.enabled` are removed and the features apply unconditionally — agent-level auto-retry always runs, skills always register as `/skill:name` completion commands, and the `failover` node installs whenever it has a valid candidate list. The RPC command `set_auto_retry` (rpc-types/rpc-mode/rpc-client), the facade member `setAutoRetryEnabled`, the session members `autoRetryEnabled`/`setAutoRetryEnabled`, and the TUI settings-selector "Skill commands" row are removed with `retry.enabled`/`enableSkillCommands`. Numeric retry keys (`maxRetries`/`baseDelayMs`/`maxAgentDelayMs`/`retry.provider.*`) and the RPC `abort_retry` command (aborting a running retry is not a switch) are unchanged. A stale `failover.enabled` key logs a removal warning and is then ignored — the node still parses and installs from its remaining fields; fail-fast was deliberately avoided because the sdk.ts install-site catch would degrade a throw into the whole failover not installing. Stale settings keys are silently ignored per the existing lenient settings contract; the legacy `skills` object migration drops the `enableSkillCommands` flag instead of promoting it. The pi-ai `RetryPolicy` shape and `AgentHarnessOptions.retry` (library-layer APIs, not product switches) are unchanged — the settings aggregate fills `enabled: true` to satisfy the required library field.
|
|
11
|
+
- Removed the `apiKey` field from models.json provider configs. Secrets now live exclusively in auth.json (via `/login`); loading a models.json containing an `apiKey` fails with guidance to migrate the key to auth.json (same value syntax: literal, `$ENV_VAR`, `!command`). Plugin runtime-provided API keys and CLI `--api-key` are unaffected. The `AuthStatus.source` values `models_json_key`/`models_json_command` are removed as well: extension-provided literal or command keys report `fallback` (env-backed ones keep reporting `environment`), visible through `getProviderAuthStatus` and the login selector.
|
|
12
|
+
- Feature-switch removal batch 2, block C (same user ruling, 决策记录 D-079): the `-name` removal syntax of the `defaultTools` setting is retired — the list supports plain-name whitelists (replace the inherited selection) and `+name` additions only. A stale `-name` entry is silently ignored per the lenient settings contract, and a project list containing one no longer layers as modifiers but replaces the global list. Two behavior changes are breaking: all-modifier lists lose their removal effect (`["-bash"]` previously removed bash from the defaults, now the entry is ignored and the defaults stay `[read,bash,edit,write]`; `["-bash","+powershell"]` was `[read,edit,write,powershell]`, now `[read,bash,edit,write,powershell]`), and a project list with a `-` entry (e.g. `["-codemode","+tool_search"]` over global `["read","bash","+codemode"]`) is now `[read,bash,edit,write,tool_search]` where it previously layered to `[read,bash,tool_search]`. Mixed lists like `["-bash","grep"]` resolve the same as before. Suite tool surfaces use an independent whitelist parser and are unaffected.
|
|
13
|
+
- Removed the `"fork"` value from the `doubleEscapeAction` setting (iron law: `/fork` keeps its command as the single entry point; value ruling 2026-10-03): the double-escape gesture now offers `"tree"` (default) and `"none"` only, and a stored `"fork"` value reads as `"tree"` per the lenient settings contract. Fork from a previous message stays available via the `/fork` command.
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- MCP user documentation (2026-10-03): new [docs/mcp.md](docs/mcp.md) documents the `mcp.json` configuration surface end to end — project-level vs user-level files, suite `associations.mcp` filtering, stdio (`command`/`args`) and remote HTTP (`url`/`headers`) server entries, `deferredTools` with `tool_search` activation, the never-fatal startup diagnostics, and the JSON-response-only HTTP limitation (SSE-streamed responses are not consumed) — and is registered in the docs navigation; the README and `docs/usage.md` now link to it instead of leaving "No core MCP" without an entry point. Documentation only; no behavior change.
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
|
|
21
|
+
- The startup plugin bootstrap now respects the offline posture and announces first-run installs (设计 `插件独立分发与启动装配设计.md` §4.4, 2026-10-03, 0.87.0 release forensics): `AGENT_FORGE_OFFLINE` truthy skips the whole bootstrap immediately with one `bootstrap_skipped_offline` info diagnostic (`skipped: "offline"` on the result) — offline installs cannot succeed and previously burned 36 measured seconds walking the per-plugin failure chain on a fresh agent dir over a slow registry. And a fresh install's first network bootstrap now prints one stderr progress line (`First run: installing {count} factory plugins…`, i18n-wrapped, injected `onPendingInstalls` hook on the core loop) before the silent install window that users read as a hang. Online-posture bootstrap tests declare `AGENT_FORGE_OFFLINE=0` explicitly.
|
|
22
|
+
- Fixed the MCP `deferredTools: true` activation chain end to end (two broken links, both present since the feature landed, found during the MCP pool materializer forensics): `createAgentSession` dropped `deferredToolPluginIds` — the option was not declared on `CreateAgentSessionOptions`, so the MCP pool's deferred server ids passed by `createAgentSessionFromServices` reached nothing; and newly loaded capability plugins had all their tools merged into the active set on the explicit-activation path without consulting the deferred set. Deferred-server tools now register but stay out of the default prompt-visible set until `tool_search` or an explicit activation names them, as designed (docs/mcp.md).
|
|
23
|
+
- `agent-forge auth check --no-refresh --credentials` no longer prints a stored command-backed key (`!command`) as if it were the credential: the side-effect-free read path never executes the command, so the unresolved value is now reported as `credential_not_available` (exit 1, JSON reason on `--json`) instead of emitting the raw command string. Rerun without `--no-refresh` to execute the command and emit the resolved key; the stored command-backed key is also not executed in any other `--no-refresh` path.
|
|
24
|
+
- The Esc interrupt-grading status line now goes through `t()` (设计 `docs/design/国际化与本地化.md` 批次⑪, 2026-10-03): `{count} subagents still running · /stop-agents stops all (Esc only stops the current turn)` was the interactive mode's last runtime-hardcoded zh-CN string, so en users saw Chinese on interrupt while background subagents were still running. zh-CN wording is unchanged via the interactive-mode domain dictionary; en passes the key through; singular/plural split keys preserve English grammar per the batch-10 rule.
|
|
25
|
+
|
|
26
|
+
### Removed
|
|
27
|
+
|
|
28
|
+
- microcompact, the opt-in cheap tool-result elision relief before LLM summarization (2026-10-01 G/H seat verdict: net-negative — enabled group cache hit 30.6% vs 44.6% disabled, cache-miss input 548K vs 399K, no savings in full-compaction count, retrieval-detail loss): the `extensions/microcompact.ts` module, the `compaction.microcompactEnabled` setting, the per-model-request cooldown, and the host relief landing paths are deleted. The generic `SessionEntryProjection` public channel stays (third-party equivalence tests moved to `test/compaction-entry-projection.test.ts`).
|
|
29
|
+
- The compaction summary self-critique pass (`compaction.summarySelfCritique`, never proven worth double summary cost by seat data): the critique round and its prompt are deleted; summary generation is single-pass again (first draft is the final summary).
|
|
30
|
+
- Removed the zero-production-consumer legacy assembly layer `src/server/create-harness.ts` and its exports (`createCodingAgentHarness`, `buildCodingAgentHarnessSystemPrompt`, `CodingAgentHarnessTool`, related option types); the server/RPC production path does not go through it (kernel physical boundary declaration §3.2 migration gate M2, 2026-10-03).
|
|
31
|
+
|
|
5
32
|
## [0.87.0] - 2026-10-02
|
|
6
33
|
### Added
|
|
7
34
|
|
package/README.md
CHANGED
|
@@ -326,7 +326,7 @@ Place in `~/.agent-forge/agent/themes/`, `.agent-forge/themes/`, or a plugin pac
|
|
|
326
326
|
|
|
327
327
|
### Plugins
|
|
328
328
|
|
|
329
|
-
Plugins bundle optional capabilities such as MCP bridges, CLI tools, Skills, Goal/Plan workflows and multi-Agent orchestration. A plugin is self-describing through `plugin.json` and can be installed, disabled, replaced or removed without modifying the core.
|
|
329
|
+
Plugins bundle optional capabilities such as MCP bridges, CLI tools, Skills, Goal/Plan workflows and multi-Agent orchestration. MCP servers themselves are configured in `mcp.json` and materialized as generated plugins; see [docs/mcp.md](docs/mcp.md). A plugin is self-describing through `plugin.json` and can be installed, disabled, replaced or removed without modifying the core.
|
|
330
330
|
|
|
331
331
|
> **Execution model:** Plugins run with the process capabilities available in `readonly` or `full-control`. The core does not provide approval or trust policy; install a policy plugin when that behavior is required.
|
|
332
332
|
|
|
@@ -418,7 +418,7 @@ await session.prompt("What files are in the current directory?");
|
|
|
418
418
|
|
|
419
419
|
Agent Forge 保持可扩展而不规定工作流。其它工具内置的能力都应通过 [插件](#plugins)、[Skills](#skills) 或外部工具接入;这样内核保持最小,工作流由用户塑造。
|
|
420
420
|
|
|
421
|
-
**No core MCP.** 通过
|
|
421
|
+
**No core MCP.** 通过 `mcp.json` 配置接入(项目级 `.agent-forge/mcp.json` 与用户级 agent dir,stdio 与 remote HTTP 两种 server 形态);每个 server 在会话启动时物化为生成的 capability 插件。见 [docs/mcp.md](docs/mcp.md)。
|
|
422
422
|
|
|
423
423
|
**No core multi-Agent workflow.** 通过插件实现编排与生命周期策略。
|
|
424
424
|
|