@ai-agent-forge/agent-forge 0.87.0 → 0.88.1
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 +56 -0
- package/README.md +2 -2
- package/bundled-plugins/agent-loop-policy/agent-forge.json +19 -0
- package/bundled-plugins/agent-loop-policy/dist/entry.d.ts +28 -0
- package/bundled-plugins/agent-loop-policy/dist/entry.d.ts.map +1 -0
- package/bundled-plugins/agent-loop-policy/dist/entry.js +69 -0
- package/bundled-plugins/agent-loop-policy/dist/entry.js.map +1 -0
- package/bundled-plugins/agent-loop-policy/dist/loop-guard.d.ts +199 -0
- package/bundled-plugins/agent-loop-policy/dist/loop-guard.d.ts.map +1 -0
- package/bundled-plugins/agent-loop-policy/dist/loop-guard.js +208 -0
- package/bundled-plugins/agent-loop-policy/dist/loop-guard.js.map +1 -0
- package/bundled-plugins/agent-loop-policy/dist/run-loop-strategy.d.ts +17 -0
- package/bundled-plugins/agent-loop-policy/dist/run-loop-strategy.d.ts.map +1 -0
- package/bundled-plugins/agent-loop-policy/dist/run-loop-strategy.js +18 -0
- package/bundled-plugins/agent-loop-policy/dist/run-loop-strategy.js.map +1 -0
- package/bundled-plugins/agent-loop-policy/plugin.json +7 -0
- package/bundled-plugins/coding-tools/agent-forge.json +19 -0
- package/{dist/core/tools → bundled-plugins/coding-tools/dist}/bash.d.ts +5 -44
- package/bundled-plugins/coding-tools/dist/bash.d.ts.map +1 -0
- package/{dist/core/tools → bundled-plugins/coding-tools/dist}/bash.js +15 -119
- package/bundled-plugins/coding-tools/dist/bash.js.map +1 -0
- package/bundled-plugins/coding-tools/dist/capability.d.ts +25 -0
- package/bundled-plugins/coding-tools/dist/capability.d.ts.map +1 -0
- package/bundled-plugins/coding-tools/dist/capability.js +98 -0
- package/bundled-plugins/coding-tools/dist/capability.js.map +1 -0
- package/bundled-plugins/coding-tools/dist/config.d.ts +8 -0
- package/bundled-plugins/coding-tools/dist/config.d.ts.map +1 -0
- package/bundled-plugins/coding-tools/dist/config.js +8 -0
- package/bundled-plugins/coding-tools/dist/config.js.map +1 -0
- package/{dist/core/tools → bundled-plugins/coding-tools/dist}/edit.d.ts +3 -3
- package/bundled-plugins/coding-tools/dist/edit.d.ts.map +1 -0
- package/{dist/core/tools → bundled-plugins/coding-tools/dist}/edit.js +12 -10
- package/bundled-plugins/coding-tools/dist/edit.js.map +1 -0
- package/bundled-plugins/coding-tools/dist/entry.d.ts +14 -0
- package/bundled-plugins/coding-tools/dist/entry.d.ts.map +1 -0
- package/bundled-plugins/coding-tools/dist/entry.js +23 -0
- package/bundled-plugins/coding-tools/dist/entry.js.map +1 -0
- package/{dist/core/tools → bundled-plugins/coding-tools/dist}/find.d.ts +4 -4
- package/bundled-plugins/coding-tools/dist/find.d.ts.map +1 -0
- package/{dist/core/tools → bundled-plugins/coding-tools/dist}/find.js +10 -8
- package/bundled-plugins/coding-tools/dist/find.js.map +1 -0
- package/{dist/core/tools → bundled-plugins/coding-tools/dist}/grep.d.ts +3 -3
- package/bundled-plugins/coding-tools/dist/grep.d.ts.map +1 -0
- package/{dist/core/tools → bundled-plugins/coding-tools/dist}/grep.js +10 -8
- package/bundled-plugins/coding-tools/dist/grep.js.map +1 -0
- package/bundled-plugins/coding-tools/dist/index.d.ts +17 -0
- package/bundled-plugins/coding-tools/dist/index.d.ts.map +1 -0
- package/bundled-plugins/coding-tools/dist/index.js +17 -0
- package/bundled-plugins/coding-tools/dist/index.js.map +1 -0
- package/{dist/core/tools → bundled-plugins/coding-tools/dist}/ls.d.ts +3 -3
- package/bundled-plugins/coding-tools/dist/ls.d.ts.map +1 -0
- package/{dist/core/tools → bundled-plugins/coding-tools/dist}/ls.js +8 -6
- package/{dist/core/tools → bundled-plugins/coding-tools/dist}/ls.js.map +1 -1
- package/{dist/core/tools → bundled-plugins/coding-tools/dist}/powershell.d.ts +2 -1
- package/bundled-plugins/coding-tools/dist/powershell.d.ts.map +1 -0
- package/{dist/core/tools → bundled-plugins/coding-tools/dist}/powershell.js +6 -3
- package/bundled-plugins/coding-tools/dist/powershell.js.map +1 -0
- package/{dist/core/tools → bundled-plugins/coding-tools/dist}/read.d.ts +3 -3
- package/bundled-plugins/coding-tools/dist/read.d.ts.map +1 -0
- package/{dist/core/tools → bundled-plugins/coding-tools/dist}/read.js +15 -13
- package/bundled-plugins/coding-tools/dist/read.js.map +1 -0
- package/bundled-plugins/coding-tools/dist/types.d.ts +74 -0
- package/bundled-plugins/coding-tools/dist/types.d.ts.map +1 -0
- package/bundled-plugins/coding-tools/dist/types.js +28 -0
- package/bundled-plugins/coding-tools/dist/types.js.map +1 -0
- package/{dist/core/tools → bundled-plugins/coding-tools/dist}/write.d.ts +2 -2
- package/bundled-plugins/coding-tools/dist/write.d.ts.map +1 -0
- package/{dist/core/tools → bundled-plugins/coding-tools/dist}/write.js +11 -9
- package/bundled-plugins/coding-tools/dist/write.js.map +1 -0
- package/bundled-plugins/coding-tools/plugin.json +10 -0
- package/bundled-plugins/compaction-policy/agent-forge.json +19 -0
- package/bundled-plugins/compaction-policy/dist/branch-summary-policy.d.ts +6 -0
- package/bundled-plugins/compaction-policy/dist/branch-summary-policy.d.ts.map +1 -0
- package/bundled-plugins/compaction-policy/dist/branch-summary-policy.js +19 -0
- package/bundled-plugins/compaction-policy/dist/branch-summary-policy.js.map +1 -0
- package/bundled-plugins/compaction-policy/dist/compaction-policy.d.ts +6 -0
- package/bundled-plugins/compaction-policy/dist/compaction-policy.d.ts.map +1 -0
- package/bundled-plugins/compaction-policy/dist/compaction-policy.js +38 -0
- package/bundled-plugins/compaction-policy/dist/compaction-policy.js.map +1 -0
- package/bundled-plugins/compaction-policy/dist/entry.d.ts +13 -0
- package/bundled-plugins/compaction-policy/dist/entry.d.ts.map +1 -0
- package/bundled-plugins/compaction-policy/dist/entry.js +23 -0
- package/bundled-plugins/compaction-policy/dist/entry.js.map +1 -0
- package/bundled-plugins/compaction-policy/plugin.json +10 -0
- package/bundled-plugins/mcp-http/dist/index.d.ts +8 -0
- package/bundled-plugins/mcp-http/dist/index.d.ts.map +1 -0
- package/bundled-plugins/mcp-http/dist/index.js +8 -0
- package/bundled-plugins/mcp-http/dist/index.js.map +1 -0
- package/bundled-plugins/mcp-http/dist/mcp-http.d.ts.map +1 -0
- package/{dist/plugins → bundled-plugins/mcp-http/dist}/mcp-http.js +1 -1
- package/bundled-plugins/mcp-http/dist/mcp-http.js.map +1 -0
- package/bundled-plugins/overflow-policy/agent-forge.json +19 -0
- package/bundled-plugins/overflow-policy/dist/entry.d.ts +16 -0
- package/bundled-plugins/overflow-policy/dist/entry.d.ts.map +1 -0
- package/bundled-plugins/overflow-policy/dist/entry.js +35 -0
- package/bundled-plugins/overflow-policy/dist/entry.js.map +1 -0
- package/bundled-plugins/overflow-policy/plugin.json +10 -0
- package/bundled-plugins/provider-failover/agent-forge.json +19 -0
- package/bundled-plugins/provider-failover/dist/entry.d.ts +8 -0
- package/bundled-plugins/provider-failover/dist/entry.d.ts.map +1 -0
- package/bundled-plugins/provider-failover/dist/entry.js +8 -0
- package/bundled-plugins/provider-failover/dist/entry.js.map +1 -0
- package/bundled-plugins/provider-failover/dist/provider-failover.d.ts +122 -0
- package/bundled-plugins/provider-failover/dist/provider-failover.d.ts.map +1 -0
- package/{dist/core/extensions → bundled-plugins/provider-failover/dist}/provider-failover.js +149 -61
- package/bundled-plugins/provider-failover/dist/provider-failover.js.map +1 -0
- package/bundled-plugins/provider-failover/plugin.json +7 -0
- package/bundled-plugins/retry-policy/agent-forge.json +19 -0
- package/bundled-plugins/retry-policy/dist/entry.d.ts +16 -0
- package/bundled-plugins/retry-policy/dist/entry.d.ts.map +1 -0
- package/bundled-plugins/retry-policy/dist/entry.js +34 -0
- package/bundled-plugins/retry-policy/dist/entry.js.map +1 -0
- package/bundled-plugins/retry-policy/plugin.json +10 -0
- package/dist/bundle/.build-manifest.json +105 -183
- package/dist/bundle/chunks/{anthropic-messages-ALDZBUKI.js → anthropic-messages-PLAKXR73.js} +1 -1
- package/dist/bundle/chunks/{azure-openai-responses-A2WJWZFB.js → azure-openai-responses-OUWQ2AZD.js} +1 -1
- package/dist/bundle/chunks/{chunk-CIX3FSBK.js → chunk-A3JYRWB6.js} +1 -1
- package/dist/bundle/chunks/{chunk-SQFG22WN.js → chunk-AC2FIS4G.js} +1 -1
- package/dist/bundle/chunks/chunk-AQLNTW2B.js +664 -0
- package/dist/bundle/chunks/chunk-D3ARGZFR.js +13 -0
- package/dist/bundle/chunks/{chunk-YJCQVXW5.js → chunk-HTEVUY7F.js} +1 -1
- package/dist/bundle/chunks/{chunk-Y7HXTASS.js → chunk-HV64ASMT.js} +1 -1
- package/dist/bundle/chunks/chunk-LZOEQITZ.js +855 -0
- package/dist/bundle/chunks/{chunk-7ZY7IXZD.js → chunk-TRDNDS6A.js} +1 -1
- package/dist/bundle/chunks/chunk-Z72JWUZ4.js +4 -0
- package/dist/bundle/chunks/{google-generative-ai-NIB4WONV.js → google-generative-ai-DLII6DAT.js} +1 -1
- package/dist/bundle/chunks/{google-vertex-DCPYUEUO.js → google-vertex-G7BZL7GM.js} +1 -1
- package/dist/bundle/chunks/image-resize-worker.js +3 -3
- package/dist/bundle/chunks/{mistral-conversations-OC6LA5XL.js → mistral-conversations-JXUK24ID.js} +1 -1
- package/dist/bundle/chunks/{openai-codex-responses-IO2X4Y7L.js → openai-codex-responses-5GSGFIPG.js} +1 -1
- package/dist/bundle/chunks/{openai-completions-XYQQHETU.js → openai-completions-EI2I6DTG.js} +1 -1
- package/dist/bundle/chunks/{openai-responses-DLIRN3CI.js → openai-responses-AUJQ3NWT.js} +1 -1
- package/dist/bundle/chunks/{pi-messages-E6RRYBO7.js → pi-messages-PWU2VJMR.js} +1 -1
- package/dist/bundle/chunks/virtual-modules-WF6WRHP7.js +5 -0
- package/dist/bundle/cli.js +1 -1
- package/dist/bundle/client.js +1 -1
- package/dist/bundle/index.js +3 -3
- package/dist/bundle/rpc-entry.js +1 -1
- package/dist/capabilities/builtin.d.ts +1 -1
- package/dist/capabilities/builtin.d.ts.map +1 -1
- package/dist/capabilities/builtin.js +5 -0
- package/dist/capabilities/builtin.js.map +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/cli/plugin-command.d.ts.map +1 -1
- package/dist/cli/plugin-command.js +17 -1
- package/dist/cli/plugin-command.js.map +1 -1
- package/dist/config.d.ts +2 -3
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +5 -6
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session-bash.d.ts +1 -1
- package/dist/core/agent-session-bash.d.ts.map +1 -1
- package/dist/core/agent-session-bash.js +1 -1
- package/dist/core/agent-session-bash.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 +21 -112
- package/dist/core/agent-session-compaction.js.map +1 -1
- package/dist/core/agent-session-internal.d.ts +1 -7
- 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-loop.d.ts +4 -3
- package/dist/core/agent-session-loop.d.ts.map +1 -1
- package/dist/core/agent-session-loop.js +9 -6
- package/dist/core/agent-session-loop.js.map +1 -1
- package/dist/core/agent-session-retry.d.ts +1 -1
- package/dist/core/agent-session-retry.d.ts.map +1 -1
- package/dist/core/agent-session-retry.js +32 -4
- package/dist/core/agent-session-retry.js.map +1 -1
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js +30 -9
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session-tools.d.ts.map +1 -1
- package/dist/core/agent-session-tools.js +5 -1
- package/dist/core/agent-session-tools.js.map +1 -1
- package/dist/core/agent-session.d.ts +12 -33
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +61 -67
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/bash-executor.d.ts +1 -1
- package/dist/core/bash-executor.d.ts.map +1 -1
- package/dist/core/bash-executor.js.map +1 -1
- package/dist/core/extensions/bootstrap-agent-loop.d.ts +23 -151
- package/dist/core/extensions/bootstrap-agent-loop.d.ts.map +1 -1
- package/dist/core/extensions/bootstrap-agent-loop.js +28 -290
- package/dist/core/extensions/bootstrap-agent-loop.js.map +1 -1
- package/dist/core/extensions/capability-runtime-types.d.ts +5 -3
- package/dist/core/extensions/capability-runtime-types.d.ts.map +1 -1
- package/dist/core/extensions/capability-runtime-types.js.map +1 -1
- package/dist/core/extensions/capability-runtime.d.ts.map +1 -1
- package/dist/core/extensions/capability-runtime.js +42 -6
- package/dist/core/extensions/capability-runtime.js.map +1 -1
- package/dist/core/extensions/index.d.ts +12 -5
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js +12 -5
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/virtual-modules.d.ts.map +1 -1
- package/dist/core/extensions/virtual-modules.js +65 -0
- package/dist/core/extensions/virtual-modules.js.map +1 -1
- package/dist/core/facade/coding-agent-facade.d.ts +1 -7
- 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/core-contract-core.d.ts +1 -1
- package/dist/core/i18n/locales/zh-cn/core-contract-core.d.ts.map +1 -1
- package/dist/core/i18n/locales/zh-cn/core-contract-core.js +1 -1
- package/dist/core/i18n/locales/zh-cn/core-contract-core.js.map +1 -1
- package/dist/core/i18n/locales/zh-cn/core-contract-extensions.d.ts.map +1 -1
- package/dist/core/i18n/locales/zh-cn/core-contract-extensions.js +2 -4
- package/dist/core/i18n/locales/zh-cn/core-contract-extensions.js.map +1 -1
- package/dist/core/i18n/locales/zh-cn/core-errors.d.ts.map +1 -1
- package/dist/core/i18n/locales/zh-cn/core-errors.js +3 -1
- package/dist/core/i18n/locales/zh-cn/core-errors.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 +18 -3
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +267 -76
- 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/core/tools/bash-operations.d.ts +41 -0
- package/dist/core/tools/bash-operations.d.ts.map +1 -0
- package/dist/core/tools/bash-operations.js +113 -0
- package/dist/core/tools/bash-operations.js.map +1 -0
- package/dist/core/tools/index.d.ts +12 -36
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js +1 -117
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/readme-path.d.ts +3 -0
- package/dist/core/tools/readme-path.d.ts.map +1 -0
- package/dist/core/tools/readme-path.js +15 -0
- package/dist/core/tools/readme-path.js.map +1 -0
- package/dist/index.d.ts +3 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -39
- package/dist/index.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/components/tool-execution.d.ts +0 -1
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +9 -25
- package/dist/modes/interactive/components/tool-execution.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/cli.d.ts.map +1 -1
- package/dist/plugins/ecosystem/cli.js +14 -2
- package/dist/plugins/ecosystem/cli.js.map +1 -1
- package/dist/plugins/ecosystem/node-npm-registry-source.d.ts +7 -2
- package/dist/plugins/ecosystem/node-npm-registry-source.d.ts.map +1 -1
- package/dist/plugins/ecosystem/node-npm-registry-source.js +64 -9
- package/dist/plugins/ecosystem/node-npm-registry-source.js.map +1 -1
- package/dist/plugins/ecosystem/node-plugin-acquisition-host.d.ts.map +1 -1
- package/dist/plugins/ecosystem/node-plugin-acquisition-host.js +6 -0
- package/dist/plugins/ecosystem/node-plugin-acquisition-host.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/profiles/builtin-suites.d.ts +5 -1
- package/dist/profiles/builtin-suites.d.ts.map +1 -1
- package/dist/profiles/builtin-suites.js +6 -1
- package/dist/profiles/builtin-suites.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/bash-spawn-hook/index.ts +7 -2
- package/examples/extensions/built-in-tool-renderer/index.ts +4 -2
- package/examples/extensions/minimal-mode/index.ts +2 -2
- package/examples/extensions/truncated-tool/index.ts +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 +3 -4
- package/dist/bundle/chunks/chunk-6ZKDNZHA.js +0 -145
- package/dist/bundle/chunks/chunk-BFC2BDVJ.js +0 -13
- package/dist/bundle/chunks/chunk-MOHOLL3F.js +0 -1456
- package/dist/bundle/chunks/virtual-modules-KZ5DRH7Q.js +0 -2
- package/dist/core/extensions/bootstrap-branch-summary-policy.d.ts +0 -7
- package/dist/core/extensions/bootstrap-branch-summary-policy.d.ts.map +0 -1
- package/dist/core/extensions/bootstrap-branch-summary-policy.js +0 -28
- package/dist/core/extensions/bootstrap-branch-summary-policy.js.map +0 -1
- package/dist/core/extensions/bootstrap-compaction-policy.d.ts +0 -7
- package/dist/core/extensions/bootstrap-compaction-policy.d.ts.map +0 -1
- package/dist/core/extensions/bootstrap-compaction-policy.js +0 -82
- package/dist/core/extensions/bootstrap-compaction-policy.js.map +0 -1
- package/dist/core/extensions/bootstrap-overflow-policy.d.ts +0 -7
- package/dist/core/extensions/bootstrap-overflow-policy.d.ts.map +0 -1
- package/dist/core/extensions/bootstrap-overflow-policy.js +0 -30
- package/dist/core/extensions/bootstrap-overflow-policy.js.map +0 -1
- package/dist/core/extensions/bootstrap-retry-policy.d.ts +0 -7
- package/dist/core/extensions/bootstrap-retry-policy.d.ts.map +0 -1
- package/dist/core/extensions/bootstrap-retry-policy.js +0 -29
- package/dist/core/extensions/bootstrap-retry-policy.js.map +0 -1
- package/dist/core/extensions/bootstrap-tools.d.ts +0 -20
- package/dist/core/extensions/bootstrap-tools.d.ts.map +0 -1
- package/dist/core/extensions/bootstrap-tools.js +0 -36
- package/dist/core/extensions/bootstrap-tools.js.map +0 -1
- 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/core/extensions/provider-failover.d.ts +0 -106
- package/dist/core/extensions/provider-failover.d.ts.map +0 -1
- package/dist/core/extensions/provider-failover.js.map +0 -1
- package/dist/core/tools/bash.d.ts.map +0 -1
- package/dist/core/tools/bash.js.map +0 -1
- package/dist/core/tools/edit.d.ts.map +0 -1
- package/dist/core/tools/edit.js.map +0 -1
- package/dist/core/tools/find.d.ts.map +0 -1
- package/dist/core/tools/find.js.map +0 -1
- package/dist/core/tools/grep.d.ts.map +0 -1
- package/dist/core/tools/grep.js.map +0 -1
- package/dist/core/tools/ls.d.ts.map +0 -1
- package/dist/core/tools/powershell.d.ts.map +0 -1
- package/dist/core/tools/powershell.js.map +0 -1
- package/dist/core/tools/read.d.ts.map +0 -1
- package/dist/core/tools/read.js.map +0 -1
- package/dist/core/tools/write.d.ts.map +0 -1
- package/dist/core/tools/write.js.map +0 -1
- package/dist/plugins/mcp-http.d.ts.map +0 -1
- package/dist/plugins/mcp-http.js.map +0 -1
- package/dist/profile/child-facade.d.ts +0 -44
- package/dist/profile/child-facade.d.ts.map +0 -1
- package/dist/profile/child-facade.js +0 -56
- package/dist/profile/child-facade.js.map +0 -1
- package/dist/profile/dependency-wiring.d.ts +0 -48
- package/dist/profile/dependency-wiring.d.ts.map +0 -1
- package/dist/profile/dependency-wiring.js +0 -56
- package/dist/profile/dependency-wiring.js.map +0 -1
- package/dist/profile/domain-recovery.d.ts +0 -60
- package/dist/profile/domain-recovery.d.ts.map +0 -1
- package/dist/profile/domain-recovery.js +0 -94
- package/dist/profile/domain-recovery.js.map +0 -1
- package/dist/profile/first-roles.d.ts +0 -30
- package/dist/profile/first-roles.d.ts.map +0 -1
- package/dist/profile/first-roles.js +0 -83
- package/dist/profile/first-roles.js.map +0 -1
- package/dist/profile/goal-plugin.d.ts +0 -38
- package/dist/profile/goal-plugin.d.ts.map +0 -1
- package/dist/profile/goal-plugin.js +0 -132
- package/dist/profile/goal-plugin.js.map +0 -1
- package/dist/profile/plan-plugin.d.ts +0 -44
- package/dist/profile/plan-plugin.d.ts.map +0 -1
- package/dist/profile/plan-plugin.js +0 -157
- package/dist/profile/plan-plugin.js.map +0 -1
- package/dist/profile/policy-manifest.d.ts +0 -53
- package/dist/profile/policy-manifest.d.ts.map +0 -1
- package/dist/profile/policy-manifest.js +0 -53
- package/dist/profile/policy-manifest.js.map +0 -1
- package/dist/profile/role-assembly.d.ts +0 -47
- package/dist/profile/role-assembly.d.ts.map +0 -1
- package/dist/profile/role-assembly.js +0 -31
- package/dist/profile/role-assembly.js.map +0 -1
- package/dist/profile/role-catalog.d.ts +0 -43
- package/dist/profile/role-catalog.d.ts.map +0 -1
- package/dist/profile/role-catalog.js +0 -132
- package/dist/profile/role-catalog.js.map +0 -1
- package/dist/profile/role-orchestrator.d.ts +0 -123
- package/dist/profile/role-orchestrator.d.ts.map +0 -1
- package/dist/profile/role-orchestrator.js +0 -195
- package/dist/profile/role-orchestrator.js.map +0 -1
- package/dist/profile/role-runner.d.ts +0 -99
- package/dist/profile/role-runner.d.ts.map +0 -1
- package/dist/profile/role-runner.js +0 -79
- package/dist/profile/role-runner.js.map +0 -1
- package/dist/profile/root-facade.d.ts +0 -36
- package/dist/profile/root-facade.d.ts.map +0 -1
- package/dist/profile/root-facade.js +0 -49
- package/dist/profile/root-facade.js.map +0 -1
- package/dist/profile/skill-discovery-wiring.d.ts +0 -58
- package/dist/profile/skill-discovery-wiring.d.ts.map +0 -1
- package/dist/profile/skill-discovery-wiring.js +0 -80
- package/dist/profile/skill-discovery-wiring.js.map +0 -1
- package/dist/profile/state-store.d.ts +0 -62
- package/dist/profile/state-store.d.ts.map +0 -1
- package/dist/profile/state-store.js +0 -144
- package/dist/profile/state-store.js.map +0 -1
- package/dist/profile/todo-plugin.d.ts +0 -37
- package/dist/profile/todo-plugin.d.ts.map +0 -1
- package/dist/profile/todo-plugin.js +0 -137
- package/dist/profile/todo-plugin.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/{dist/plugins → bundled-plugins/mcp-http/dist}/mcp-http.d.ts +0 -0
package/docs/mcp.md
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
> Agent Forge has no core MCP. MCP servers are configured, not compiled in; each one becomes a generated capability plugin.
|
|
2
|
+
|
|
3
|
+
# MCP
|
|
4
|
+
|
|
5
|
+
Agent Forge connects to [Model Context Protocol](https://modelcontextprotocol.io/) (MCP) servers through configuration. Each configured server is materialized at session start as a generated capability plugin with a validated `plugin.json` manifest, loaded through the same path as any third-party plugin, and every remote tool is registered on the same tool surface as built-in tools.
|
|
6
|
+
|
|
7
|
+
## Table of Contents
|
|
8
|
+
|
|
9
|
+
- [Configuration Files](#configuration-files)
|
|
10
|
+
- [Server Entries](#server-entries)
|
|
11
|
+
- [stdio Servers](#stdio-servers)
|
|
12
|
+
- [Remote HTTP Servers](#remote-http-servers)
|
|
13
|
+
- [How Tools Load](#how-tools-load)
|
|
14
|
+
- [Diagnostics](#diagnostics)
|
|
15
|
+
|
|
16
|
+
## Configuration Files
|
|
17
|
+
|
|
18
|
+
MCP servers come from two `mcp.json` files.
|
|
19
|
+
|
|
20
|
+
| Level | Path | Injection |
|
|
21
|
+
| --- | --- | --- |
|
|
22
|
+
| Project | `<cwd>/.agent-forge/mcp.json` | Always injected; project definitions win name collisions over user definitions. |
|
|
23
|
+
| User | `~/.agent-forge/agent/mcp.json` (the agent dir, overridable with `AGENT_FORGE_DIR`) | Injected only when the active suite's `associations.mcp` lists the server name. The factory suites ship with an empty `associations.mcp`, so user-level servers are not injected until a suite associates them — the same two-pool semantics as Skills. |
|
|
24
|
+
|
|
25
|
+
To associate a user-level server, add its name to `associations.mcp` in the active suite's `suite.json` (below `<agentDir>/suites/<id>/`). Built-in suites keep their on-disk file until `--suite-reset` restores factory contents; suites created with `--suite-create` own theirs.
|
|
26
|
+
|
|
27
|
+
Both files use the same shape:
|
|
28
|
+
|
|
29
|
+
```json
|
|
30
|
+
{
|
|
31
|
+
"mcpServers": {
|
|
32
|
+
"<name>": { }
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Configuration is read at session startup: the pool is re-materialized on every session, so restart the session to pick up changes. Generated pool files live under `<agentDir>/mcp/pool/` — do not edit them by hand.
|
|
38
|
+
|
|
39
|
+
## Server Entries
|
|
40
|
+
|
|
41
|
+
Each entry under `mcpServers` is one server. `<name>` is the associations key, the pool directory name, and the generated plugin id (`agent-forge.mcp.<name>`); it must match `^[A-Za-z0-9][A-Za-z0-9._-]*$`.
|
|
42
|
+
|
|
43
|
+
An entry carries exactly one of `command` (stdio server) and `url` (remote HTTP server), never both:
|
|
44
|
+
|
|
45
|
+
| Field | Type | Applies to | Meaning |
|
|
46
|
+
| --- | --- | --- | --- |
|
|
47
|
+
| `command` | non-empty string | stdio | The executable to launch. |
|
|
48
|
+
| `args` | string array | stdio | Arguments passed to the command. |
|
|
49
|
+
| `url` | non-empty string | HTTP | The server endpoint; only `http://` and `https://` are accepted. |
|
|
50
|
+
| `headers` | object of non-empty strings | HTTP | Extra request headers sent verbatim on every request (for example `Authorization: Bearer ...`). On a stdio entry `headers` is ignored with a diagnostic. |
|
|
51
|
+
| `deferredTools` | boolean | both | Keep the server's tools out of the default active set; the built-in `tool_search` tool activates them on demand. |
|
|
52
|
+
|
|
53
|
+
## stdio Servers
|
|
54
|
+
|
|
55
|
+
A stdio server is a local process speaking JSON-RPC over stdin/stdout. Example — the reference filesystem server:
|
|
56
|
+
|
|
57
|
+
```json
|
|
58
|
+
{
|
|
59
|
+
"mcpServers": {
|
|
60
|
+
"filesystem": {
|
|
61
|
+
"command": "npx",
|
|
62
|
+
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/dir"]
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
On Windows, a bare command name (no path separator) is resolved against `PATH` with `.cmd`/`.bat` shim probing, so `npx` and other npm-installed servers work without spelling out `cmd.exe`. An explicit `.cmd`/`.bat` suffix is wrapped the same way; `.exe`/`.com` executables and non-Windows platforms launch directly.
|
|
69
|
+
|
|
70
|
+
## Remote HTTP Servers
|
|
71
|
+
|
|
72
|
+
A remote server is reached over HTTP: each JSON-RPC request is one POST and the transport reads a single JSON response body, so the server must answer with `application/json` — responses delivered only as an SSE stream (`text/event-stream`) are not consumed. Example:
|
|
73
|
+
|
|
74
|
+
```json
|
|
75
|
+
{
|
|
76
|
+
"mcpServers": {
|
|
77
|
+
"remote": {
|
|
78
|
+
"url": "https://example.com/mcp",
|
|
79
|
+
"headers": { "Authorization": "Bearer <token>" }
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Header values are sent verbatim: there is no environment-variable expansion and no shell interpolation, so put the literal value in the file. A token in `mcp.json` is copied into the generated plugin below `<agentDir>/mcp/pool/`, which sits in the same local-machine data boundary as `auth.json`. Treat the file as a credential store.
|
|
86
|
+
|
|
87
|
+
Transient HTTP failures are retried with backoff only when the server could not have started the request (connection errors, 5xx, 429); a completed JSON-RPC response is never re-sent.
|
|
88
|
+
|
|
89
|
+
## How Tools Load
|
|
90
|
+
|
|
91
|
+
At session startup the generated plugin performs the MCP handshake (`initialize`, `notifications/initialized`, `tools/list`) and registers one tool per remote tool with its name, description, and input schema. Tool calls are forwarded through `tools/call` and their results mapped back to the session. The current integration surface is tools; resources and prompts are not consumed by the host.
|
|
92
|
+
|
|
93
|
+
The server's tools behave like any other tool: they flow through the same loop hooks (a `beforeToolCall` gate plugin sees them), and they can be deferred with `deferredTools` when a server exposes many tools.
|
|
94
|
+
|
|
95
|
+
## Diagnostics
|
|
96
|
+
|
|
97
|
+
MCP configuration never fails a session. Problems are reported as startup diagnostics and the affected server is skipped:
|
|
98
|
+
|
|
99
|
+
- A malformed or unreadable `mcp.json`, or an invalid entry (both `command` and `url`, neither, a bad `args`/`headers`/`deferredTools` shape, a non-http(s) URL), is ignored with a diagnostic naming the file.
|
|
100
|
+
- A user-level server not listed in the active suite's `associations.mcp` is skipped with a diagnostic.
|
|
101
|
+
- An `associations.mcp` name with no matching server is reported as a dangling association.
|
|
102
|
+
- A project definition overriding a user definition of the same name is reported.
|
|
103
|
+
- A server that fails to load (bad launch command, unreachable endpoint) surfaces as a plugin load failure for `agent-forge.mcp.<name>`; the rest of the session continues.
|
package/docs/models.md
CHANGED
|
@@ -24,7 +24,6 @@ For local models (Ollama, LM Studio, vLLM), only `id` is required per model:
|
|
|
24
24
|
"ollama": {
|
|
25
25
|
"baseUrl": "http://localhost:11434/v1",
|
|
26
26
|
"api": "openai-completions",
|
|
27
|
-
"apiKey": "ollama",
|
|
28
27
|
"models": [
|
|
29
28
|
{ "id": "llama3.1:8b" },
|
|
30
29
|
{ "id": "qwen2.5-coder:7b" }
|
|
@@ -34,7 +33,7 @@ For local models (Ollama, LM Studio, vLLM), only `id` is required per model:
|
|
|
34
33
|
}
|
|
35
34
|
```
|
|
36
35
|
|
|
37
|
-
|
|
36
|
+
pi still requires a provider to have credentials before its models appear in `/model`. Keyless local servers such as Ollama (which ignores the key entirely) need any placeholder key saved for the provider with `/login` (for example `ollama`) or `--api-key` at startup for the models to become available.
|
|
38
37
|
|
|
39
38
|
Some OpenAI-compatible servers do not understand the `developer` role used for reasoning-capable models. For those providers, set `compat.supportsDeveloperRole` to `false` so pi sends the system prompt as a `system` message instead. If the server also does not support `reasoning_effort`, set `compat.supportsReasoningEffort` to `false` too.
|
|
40
39
|
|
|
@@ -46,7 +45,6 @@ You can set `compat` at the provider level to apply to all models, or at the mod
|
|
|
46
45
|
"ollama": {
|
|
47
46
|
"baseUrl": "http://localhost:11434/v1",
|
|
48
47
|
"api": "openai-completions",
|
|
49
|
-
"apiKey": "ollama",
|
|
50
48
|
"compat": {
|
|
51
49
|
"supportsDeveloperRole": false,
|
|
52
50
|
"supportsReasoningEffort": false
|
|
@@ -72,7 +70,6 @@ Override defaults when you need specific values:
|
|
|
72
70
|
"ollama": {
|
|
73
71
|
"baseUrl": "http://localhost:11434/v1",
|
|
74
72
|
"api": "openai-completions",
|
|
75
|
-
"apiKey": "ollama",
|
|
76
73
|
"models": [
|
|
77
74
|
{
|
|
78
75
|
"id": "llama3.1:8b",
|
|
@@ -101,7 +98,6 @@ Use `google-generative-ai` with a `baseUrl` to add models from Google AI Studio,
|
|
|
101
98
|
"my-google": {
|
|
102
99
|
"baseUrl": "https://generativelanguage.googleapis.com/v1beta",
|
|
103
100
|
"api": "google-generative-ai",
|
|
104
|
-
"apiKey": "$GEMINI_API_KEY",
|
|
105
101
|
"models": [
|
|
106
102
|
{
|
|
107
103
|
"id": "gemma-4-31b-it",
|
|
@@ -135,41 +131,42 @@ Set `api` at provider level (default for all models) or model level (override pe
|
|
|
135
131
|
|-------|-------------|
|
|
136
132
|
| `baseUrl` | API endpoint URL |
|
|
137
133
|
| `api` | API type (see above) |
|
|
138
|
-
| `apiKey` | Optional API key config (see value resolution below). Omit it when auth is provided by `/login`/`auth.json` or CLI `--api-key`. |
|
|
139
134
|
| `oauth` | Dynamic OAuth provider type. Currently supports `"radius"`; requires the gateway `baseUrl`. |
|
|
140
135
|
| `headers` | Custom headers (see value resolution below) |
|
|
141
|
-
| `authHeader` | Set `true` to add `Authorization: Bearer <
|
|
136
|
+
| `authHeader` | Set `true` to add `Authorization: Bearer <resolved API key>` automatically |
|
|
142
137
|
| `models` | Array of model configurations |
|
|
143
138
|
| `modelOverrides` | Per-model overrides for built-in or models.json-declared models on this provider |
|
|
144
139
|
|
|
145
|
-
For providers with `models`, non-built-in provider configs need `baseUrl` and an `api` value at either provider or model level.
|
|
140
|
+
For providers with `models`, non-built-in provider configs need `baseUrl` and an `api` value at either provider or model level. models.json cannot hold keys: auth is configured through `/login` (stored in `auth.json`) or CLI `--api-key`, and a models.json containing an `apiKey` field is rejected at load with guidance to store the key in `auth.json`. The `key` field in `auth.json` supports the same value syntax as headers below (literal, `$ENV_VAR`, `!command`). If no auth is configured, the models load but stay unavailable in `/model` and `--list-models`.
|
|
146
141
|
|
|
147
142
|
### Value Resolution
|
|
148
143
|
|
|
149
|
-
|
|
144
|
+
Header values in models.json (`headers`) and the `key` field of an `auth.json` credential share one value syntax: command execution, environment interpolation, and literals:
|
|
150
145
|
|
|
151
146
|
- **Shell command:** `"!command"` at the start executes the whole value as a command and uses stdout
|
|
152
147
|
```json
|
|
153
|
-
"
|
|
154
|
-
"
|
|
148
|
+
"key": "!security find-generic-password -ws 'anthropic'"
|
|
149
|
+
"x-secret": "!op read 'op://vault/item/secret'"
|
|
155
150
|
```
|
|
156
151
|
- **Environment interpolation:** `"$ENV_VAR"` or `"${ENV_VAR}"` uses the value of the named variable. Interpolation works inside larger literals.
|
|
157
152
|
```json
|
|
158
|
-
"
|
|
159
|
-
"
|
|
153
|
+
"key": "$MY_API_KEY"
|
|
154
|
+
"x-key": "${KEY_PREFIX}_${KEY_SUFFIX}"
|
|
160
155
|
```
|
|
161
156
|
`$FOO_BAR` is the variable `FOO_BAR`; use `${FOO}_BAR` when `BAR` is literal text. Missing environment variables make the value unresolved.
|
|
162
157
|
- **Escapes:** `"$$"` emits a literal `"$"`; `"$!"` emits a literal `"!"` without triggering command execution.
|
|
163
158
|
```json
|
|
164
|
-
"
|
|
165
|
-
"
|
|
159
|
+
"key": "$$literal-dollar-prefix"
|
|
160
|
+
"x-secret": "$!literal-bang-prefix"
|
|
166
161
|
```
|
|
167
162
|
- **Literal value:** Used directly. Plain uppercase strings such as `MY_API_KEY` are literals; use `$MY_API_KEY` for environment variables.
|
|
168
163
|
```json
|
|
169
|
-
"
|
|
164
|
+
"key": "sk-..."
|
|
170
165
|
```
|
|
171
166
|
|
|
172
|
-
|
|
167
|
+
Command values in models.json `headers` are resolved on every request. pi intentionally does not apply built-in TTL, stale reuse, or recovery logic for arbitrary commands. Different commands need different caching and failure strategies, and pi cannot infer the right one.
|
|
168
|
+
|
|
169
|
+
A command in an `auth.json` credential `key` is resolved when the credential is first read and reused for the process lifetime (failures included); restart the host to pick up a changed value.
|
|
173
170
|
|
|
174
171
|
If your command is slow, expensive, rate-limited, or should keep using a previous value on transient failures, wrap it in your own script or command that implements the caching or TTL behavior you want.
|
|
175
172
|
|
|
@@ -182,7 +179,6 @@ If your command is slow, expensive, rate-limited, or should keep using a previou
|
|
|
182
179
|
"providers": {
|
|
183
180
|
"custom-proxy": {
|
|
184
181
|
"baseUrl": "https://proxy.example.com/v1",
|
|
185
|
-
"apiKey": "$MY_API_KEY",
|
|
186
182
|
"api": "anthropic-messages",
|
|
187
183
|
"headers": {
|
|
188
184
|
"x-portkey-api-key": "$PORTKEY_API_KEY",
|
|
@@ -324,7 +320,6 @@ To merge custom models into a built-in provider, include the `models` array:
|
|
|
324
320
|
"providers": {
|
|
325
321
|
"anthropic": {
|
|
326
322
|
"baseUrl": "https://my-proxy.example.com/v1",
|
|
327
|
-
"apiKey": "$ANTHROPIC_API_KEY",
|
|
328
323
|
"api": "anthropic-messages",
|
|
329
324
|
"models": [...]
|
|
330
325
|
}
|
|
@@ -408,7 +403,6 @@ Built-in Anthropic models enable `supportsStrictTools` in their model metadata.
|
|
|
408
403
|
"anthropic-proxy": {
|
|
409
404
|
"baseUrl": "https://proxy.example.com",
|
|
410
405
|
"api": "anthropic-messages",
|
|
411
|
-
"apiKey": "$ANTHROPIC_PROXY_KEY",
|
|
412
406
|
"compat": {
|
|
413
407
|
"supportsEagerToolInputStreaming": false,
|
|
414
408
|
"supportsLongCacheRetention": true,
|
|
@@ -501,7 +495,6 @@ Example:
|
|
|
501
495
|
"providers": {
|
|
502
496
|
"openrouter": {
|
|
503
497
|
"baseUrl": "https://openrouter.ai/api/v1",
|
|
504
|
-
"apiKey": "$OPENROUTER_API_KEY",
|
|
505
498
|
"api": "openai-completions",
|
|
506
499
|
"models": [
|
|
507
500
|
{
|
|
@@ -551,7 +544,6 @@ Vercel AI Gateway example:
|
|
|
551
544
|
"providers": {
|
|
552
545
|
"vercel-ai-gateway": {
|
|
553
546
|
"baseUrl": "https://ai-gateway.vercel.sh/v1",
|
|
554
|
-
"apiKey": "$AI_GATEWAY_API_KEY",
|
|
555
547
|
"api": "openai-completions",
|
|
556
548
|
"models": [
|
|
557
549
|
{
|
package/docs/providers.md
CHANGED
package/docs/rpc.md
CHANGED
|
@@ -203,7 +203,6 @@ Response:
|
|
|
203
203
|
"sessionFile": "/path/to/session.jsonl",
|
|
204
204
|
"sessionId": "abc123",
|
|
205
205
|
"sessionName": "my-feature-work",
|
|
206
|
-
"autoCompactionEnabled": true,
|
|
207
206
|
"messageCount": 5,
|
|
208
207
|
"pendingMessageCount": 0
|
|
209
208
|
}
|
|
@@ -430,33 +429,9 @@ Response:
|
|
|
430
429
|
|
|
431
430
|
`estimatedTokensAfter` is a heuristic estimate over the runtime message context immediately after compaction, including any `ContextStrategy` replacement projection; it is not a provider-exact token count. `usage` reports the LLM call or calls that generated the summary and may be omitted by custom compaction handlers.
|
|
432
431
|
|
|
433
|
-
#### set_auto_compaction
|
|
434
|
-
|
|
435
|
-
Enable or disable automatic compaction when context is nearly full.
|
|
436
|
-
|
|
437
|
-
```json
|
|
438
|
-
{"type": "set_auto_compaction", "enabled": true}
|
|
439
|
-
```
|
|
440
|
-
|
|
441
|
-
Response:
|
|
442
|
-
```json
|
|
443
|
-
{"type": "response", "command": "set_auto_compaction", "success": true}
|
|
444
|
-
```
|
|
445
|
-
|
|
446
432
|
### Retry
|
|
447
433
|
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
Enable or disable automatic retry on transient errors (overloaded, rate limit, 5xx).
|
|
451
|
-
|
|
452
|
-
```json
|
|
453
|
-
{"type": "set_auto_retry", "enabled": true}
|
|
454
|
-
```
|
|
455
|
-
|
|
456
|
-
Response:
|
|
457
|
-
```json
|
|
458
|
-
{"type": "response", "command": "set_auto_retry", "success": true}
|
|
459
|
-
```
|
|
434
|
+
Automatic agent-level retry applies unconditionally (the `set_auto_retry` command was removed on 2026-10-03, D-079). To stop a running retry, use `abort_retry`.
|
|
460
435
|
|
|
461
436
|
#### abort_retry
|
|
462
437
|
|
package/docs/sdk.md
CHANGED
|
@@ -426,8 +426,8 @@ for (const diagnostic of diagnostics) {
|
|
|
426
426
|
Authentication resolution priority (handled by `ModelRuntime`):
|
|
427
427
|
1. Runtime overrides (via `setRuntimeApiKey`, not persisted)
|
|
428
428
|
2. Stored credentials in `auth.json` (API keys or OAuth tokens)
|
|
429
|
-
3.
|
|
430
|
-
4.
|
|
429
|
+
3. Provider-registered fallback key (`apiKey` supplied programmatically by the embedding code, e.g. a provider registered with its own key — injected in memory, never persisted; when set it takes precedence over the provider's ambient environment variables)
|
|
430
|
+
4. Environment variables (`ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, etc.)
|
|
431
431
|
|
|
432
432
|
```typescript
|
|
433
433
|
import { InMemoryCredentialStore } from "@agent-forge/ai";
|
|
@@ -796,8 +796,7 @@ const { facade } = await createStableAgentSession({
|
|
|
796
796
|
// With overrides
|
|
797
797
|
const settingsManager = SettingsManager.create();
|
|
798
798
|
settingsManager.applyOverrides({
|
|
799
|
-
|
|
800
|
-
retry: { enabled: true, maxRetries: 5 },
|
|
799
|
+
retry: { maxRetries: 5 },
|
|
801
800
|
});
|
|
802
801
|
const { facade } = await createStableAgentSession({ settingsManager });
|
|
803
802
|
|
|
@@ -914,8 +913,7 @@ if (!model) throw new Error("Model not found");
|
|
|
914
913
|
|
|
915
914
|
// In-memory settings with overrides
|
|
916
915
|
const settingsManager = SettingsManager.inMemory({
|
|
917
|
-
|
|
918
|
-
retry: { enabled: true, maxRetries: 2 },
|
|
916
|
+
retry: { maxRetries: 2 },
|
|
919
917
|
});
|
|
920
918
|
|
|
921
919
|
const loader = new DefaultResourceLoader({
|
package/docs/settings.md
CHANGED
|
@@ -47,7 +47,7 @@ Edit directly or use `/settings` for common options. To save startup model defau
|
|
|
47
47
|
| `collapseChangelog` | boolean | `false` | Show condensed changelog after updates |
|
|
48
48
|
| `enableAnalytics` | boolean | `false` | Opt-in analytics data sharing. Currently only asked for during the experimental first-time setup (`PI_EXPERIMENTAL=1`) |
|
|
49
49
|
| `trackingId` | string | - | Analytics tracking identifier, generated when `enableAnalytics` is turned on |
|
|
50
|
-
| `doubleEscapeAction` | string | `"tree"` | Action for double-escape: `"tree"
|
|
50
|
+
| `doubleEscapeAction` | string | `"tree"` | Action for double-escape with an empty editor: `"tree"` or `"none"` (the removed `"fork"` value reads as `"tree"`; use the `/fork` command) |
|
|
51
51
|
| `treeFilterMode` | string | `"default"` | Default filter for `/tree`: `"default"`, `"no-tools"`, `"user-only"`, `"labeled-only"`, `"all"` |
|
|
52
52
|
| `editorPaddingX` | number | `0` | Horizontal padding for input editor (0-3) |
|
|
53
53
|
| `outputPad` | number | `1` | Horizontal padding for user messages, assistant messages, and thinking (0 or 1) |
|
|
@@ -99,16 +99,16 @@ Agent Forge has no default version-check endpoint. A version query runs only whe
|
|
|
99
99
|
|
|
100
100
|
### Compaction
|
|
101
101
|
|
|
102
|
+
Auto-compaction is always on; there is no toggle. The legacy keys `compaction.enabled`, `compaction.microcompactEnabled`, and `compaction.summarySelfCritique` were removed and are silently ignored if present in settings files.
|
|
103
|
+
|
|
102
104
|
| Setting | Type | Default | Description |
|
|
103
105
|
|---------|------|---------|-------------|
|
|
104
|
-
| `compaction.enabled` | boolean | `true` | Enable auto-compaction |
|
|
105
106
|
| `compaction.reserveTokens` | number | `16384` | Tokens reserved for LLM response |
|
|
106
107
|
| `compaction.keepRecentTokens` | number | `20000` | Recent tokens to keep (not summarized) |
|
|
107
108
|
|
|
108
109
|
```json
|
|
109
110
|
{
|
|
110
111
|
"compaction": {
|
|
111
|
-
"enabled": true,
|
|
112
112
|
"reserveTokens": 16384,
|
|
113
113
|
"keepRecentTokens": 20000
|
|
114
114
|
}
|
|
@@ -124,9 +124,10 @@ Agent Forge has no default version-check endpoint. A version query runs only whe
|
|
|
124
124
|
|
|
125
125
|
### Retry
|
|
126
126
|
|
|
127
|
+
Automatic agent-level retry applies unconditionally (the `retry.enabled` switch was removed on 2026-10-03, D-079; stale keys in settings files are silently ignored).
|
|
128
|
+
|
|
127
129
|
| Setting | Type | Default | Description |
|
|
128
130
|
|---------|------|---------|-------------|
|
|
129
|
-
| `retry.enabled` | boolean | `true` | Enable automatic agent-level retry on transient errors |
|
|
130
131
|
| `retry.maxRetries` | number | `5` | Maximum agent-level retry attempts |
|
|
131
132
|
| `retry.baseDelayMs` | number | `2000` | Base delay for agent-level exponential backoff with ±10% jitter (~2s, ~4s, ~8s, ~16s, ~32s) |
|
|
132
133
|
| `retry.maxAgentDelayMs` | number | `60000` | Max agent-level retry delay; the cap applies before jitter (60s) |
|
|
@@ -143,7 +144,6 @@ Keep `retry.provider.maxRetries` at `0` unless provider-level retries are explic
|
|
|
143
144
|
```json
|
|
144
145
|
{
|
|
145
146
|
"retry": {
|
|
146
|
-
"enabled": true,
|
|
147
147
|
"maxRetries": 3,
|
|
148
148
|
"baseDelayMs": 2000,
|
|
149
149
|
"maxAgentDelayMs": 60000,
|
|
@@ -213,7 +213,7 @@ Windows paths in JSON must use forward slashes or escaped backslashes:
|
|
|
213
213
|
|
|
214
214
|
| Setting | Type | Default | Description |
|
|
215
215
|
|---------|------|---------|-------------|
|
|
216
|
-
| `defaultTools` | string[] | - |
|
|
216
|
+
| `defaultTools` | string[] | - | 内置工具初始启用列表;省略时由首方工具插件提供默认集合。裸名列表为白名单替换语义;`+name` 条目在其后按序添加(如 `["read", "+powershell"]`),项目层纯 `+` 列表叠加在用户层之上。`-name` 移除语法已移除,残留条目静默忽略;项目层列表含 `-` 条目时不再与用户层叠加,而是整体替换 |
|
|
217
217
|
|
|
218
218
|
`defaultTools` selects the built-in tools enabled at startup. Plugin and SDK custom tools remain enabled. Available built-ins are `read`, `bash`, `powershell`, `edit`, `write`, `grep`, `find`, and `ls`:
|
|
219
219
|
|
|
@@ -231,7 +231,7 @@ On Windows, select `powershell` instead of `bash`, or include both:
|
|
|
231
231
|
}
|
|
232
232
|
```
|
|
233
233
|
|
|
234
|
-
An empty array starts with no built-in tools while preserving plugin and SDK custom tools. `--tools` replaces this behavior with a strict allowlist for all tools, `--no-tools` disables all tools, and `--no-builtin-tools` disables the built-in defaults. `--exclude-tools` filters the resulting list. A project `defaultTools` array replaces the global array.
|
|
234
|
+
An empty array starts with no built-in tools while preserving plugin and SDK custom tools. `--tools` replaces this behavior with a strict allowlist for all tools, `--no-tools` disables all tools, and `--no-builtin-tools` disables the built-in defaults. `--exclude-tools` filters the resulting list. A project `defaultTools` array replaces the global array unless it consists solely of `+name` entries, which layer on top of the resolved global selection.
|
|
235
235
|
|
|
236
236
|
### Sessions
|
|
237
237
|
|
|
@@ -276,7 +276,6 @@ Paths in `~/.agent-forge/agent/settings.json` resolve relative to `~/.agent-forg
|
|
|
276
276
|
| `skills` | string[] | `[]` | Local skill file paths or directories |
|
|
277
277
|
| `prompts` | string[] | `[]` | Local prompt template paths or directories |
|
|
278
278
|
| `themes` | string[] | `[]` | Local theme file paths or directories |
|
|
279
|
-
| `enableSkillCommands` | boolean | `true` | Register skills as `/skill:name` commands |
|
|
280
279
|
|
|
281
280
|
Arrays support glob patterns and exclusions. Use `!pattern` to exclude. Use `+path` to force-include an exact path and `-path` to force-exclude an exact path.
|
|
282
281
|
|
|
@@ -317,12 +316,10 @@ See [packages.md](packages.md) for package management details.
|
|
|
317
316
|
},
|
|
318
317
|
"theme": "dark",
|
|
319
318
|
"compaction": {
|
|
320
|
-
"enabled": true,
|
|
321
319
|
"reserveTokens": 16384,
|
|
322
320
|
"keepRecentTokens": 20000
|
|
323
321
|
},
|
|
324
322
|
"retry": {
|
|
325
|
-
"enabled": true,
|
|
326
323
|
"maxRetries": 3
|
|
327
324
|
},
|
|
328
325
|
"enabledModels": ["claude-*", "gpt-4o"],
|
|
@@ -341,7 +338,7 @@ Project settings (`.agent-forge/settings.json`) override global settings. Nested
|
|
|
341
338
|
// ~/.agent-forge/agent/settings.json (global)
|
|
342
339
|
{
|
|
343
340
|
"theme": "dark",
|
|
344
|
-
"compaction": { "
|
|
341
|
+
"compaction": { "reserveTokens": 16384 }
|
|
345
342
|
}
|
|
346
343
|
|
|
347
344
|
// .agent-forge/settings.json (project)
|
|
@@ -352,6 +349,6 @@ Project settings (`.agent-forge/settings.json`) override global settings. Nested
|
|
|
352
349
|
// Result
|
|
353
350
|
{
|
|
354
351
|
"theme": "dark",
|
|
355
|
-
"compaction": { "
|
|
352
|
+
"compaction": { "reserveTokens": 8192 }
|
|
356
353
|
}
|
|
357
354
|
```
|
package/docs/skills.md
CHANGED
|
@@ -73,7 +73,7 @@ This is progressive disclosure: only descriptions are always in context, full in
|
|
|
73
73
|
|
|
74
74
|
## Skill Commands
|
|
75
75
|
|
|
76
|
-
Skills register as `/skill:name` commands:
|
|
76
|
+
Skills register as `/skill:name` commands unconditionally (the `enableSkillCommands` switch was removed on 2026-10-03, D-079; a stale key in settings files is silently ignored):
|
|
77
77
|
|
|
78
78
|
```bash
|
|
79
79
|
/skill:brave-search # Load and execute the skill
|
|
@@ -82,14 +82,6 @@ Skills register as `/skill:name` commands:
|
|
|
82
82
|
|
|
83
83
|
Arguments after the command are appended to the skill content as `User: <args>`.
|
|
84
84
|
|
|
85
|
-
Toggle skill commands via `/settings` in interactive mode or in `settings.json`:
|
|
86
|
-
|
|
87
|
-
```json
|
|
88
|
-
{
|
|
89
|
-
"enableSkillCommands": true
|
|
90
|
-
}
|
|
91
|
-
```
|
|
92
|
-
|
|
93
85
|
## Skill Structure
|
|
94
86
|
|
|
95
87
|
A skill is a directory with a `SKILL.md` file. Everything else is freeform.
|
package/docs/usage.md
CHANGED
|
@@ -287,6 +287,6 @@ agent-forge --exclude-tools ask_question
|
|
|
287
287
|
|
|
288
288
|
Agent Forge keeps the core small and pushes workflow-specific behavior into plugins, Skills, prompt templates, and external tools.
|
|
289
289
|
|
|
290
|
-
It intentionally does not include MCP, multi-Agent workflows, approval policy, Plan mode, to-dos, or background bash as core business branches.
|
|
290
|
+
It intentionally does not include MCP, multi-Agent workflows, approval policy, Plan mode, to-dos, or background bash as core business branches. MCP servers are configured through `mcp.json` ([MCP](mcp.md)); the rest are added through plugins or external tools such as containers and tmux.
|
|
291
291
|
|
|
292
292
|
For the architectural rationale, see the repository [核心架构宪法](../../../docs/核心架构宪法.md).
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
15
|
import type { CapabilityAPI } from "@agent-forge/agent-forge";
|
|
16
|
-
import {
|
|
16
|
+
import { defineTool } from "@agent-forge/agent-forge";
|
|
17
|
+
import { createBashTool } from "@agent-forge/plugin-coding-tools";
|
|
17
18
|
|
|
18
19
|
export default function (api: CapabilityAPI) {
|
|
19
20
|
const cwd = process.cwd();
|
|
@@ -26,9 +27,13 @@ export default function (api: CapabilityAPI) {
|
|
|
26
27
|
}),
|
|
27
28
|
});
|
|
28
29
|
|
|
30
|
+
// The plugin package's structural AgentTool keeps the constrained-sampling
|
|
31
|
+
// grammar arm opaque (variants: unknown); bash never sets the flag, so drop
|
|
32
|
+
// the absent member before the host-typed defineTool spread.
|
|
33
|
+
const { constrainedSampling: _omitted, ...bashToolFace } = bashTool;
|
|
29
34
|
api.registerTool(
|
|
30
35
|
defineTool({
|
|
31
|
-
...
|
|
36
|
+
...bashToolFace,
|
|
32
37
|
execute: async (id, params, signal, onUpdate, _ctx) => {
|
|
33
38
|
return bashTool.execute(id, params, signal, onUpdate);
|
|
34
39
|
},
|
|
@@ -30,8 +30,10 @@
|
|
|
30
30
|
* (last load wins, restore on dispose).
|
|
31
31
|
*/
|
|
32
32
|
|
|
33
|
-
import type {
|
|
34
|
-
import {
|
|
33
|
+
import type { CapabilityAPI } from "@agent-forge/agent-forge";
|
|
34
|
+
import { defineTool } from "@agent-forge/agent-forge";
|
|
35
|
+
import type { BashToolDetails, EditToolDetails, ReadToolDetails } from "@agent-forge/plugin-coding-tools";
|
|
36
|
+
import { createBashTool, createEditTool, createReadTool, createWriteTool } from "@agent-forge/plugin-coding-tools";
|
|
35
37
|
import { Text } from "@agent-forge/tui";
|
|
36
38
|
|
|
37
39
|
export default function (api: CapabilityAPI) {
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
*/
|
|
24
24
|
|
|
25
25
|
import type { CapabilityAPI } from "@agent-forge/agent-forge";
|
|
26
|
+
import { defineTool } from "@agent-forge/agent-forge";
|
|
26
27
|
import {
|
|
27
28
|
createBashTool,
|
|
28
29
|
createEditTool,
|
|
@@ -31,8 +32,7 @@ import {
|
|
|
31
32
|
createLsTool,
|
|
32
33
|
createReadTool,
|
|
33
34
|
createWriteTool,
|
|
34
|
-
|
|
35
|
-
} from "@agent-forge/agent-forge";
|
|
35
|
+
} from "@agent-forge/plugin-coding-tools";
|
|
36
36
|
import { Text } from "@agent-forge/tui";
|
|
37
37
|
import { homedir } from "os";
|
|
38
38
|
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* 4. Custom rendering of tool calls and results
|
|
13
13
|
*
|
|
14
14
|
* The `rg` tool here wraps ripgrep with proper truncation. Compare this to the
|
|
15
|
-
* built-in `grep` tool in
|
|
15
|
+
* built-in `grep` tool in plugins/coding-tools/src/grep.ts for a more complete implementation.
|
|
16
16
|
*
|
|
17
17
|
* Install: copy this directory (with plugin.json) to ~/.agent-forge/agent/plugins
|
|
18
18
|
* or <cwd>/.agent-forge/plugins for auto-discovery.
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-forge-extension-with-deps",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.87.1",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "agent-forge-extension-with-deps",
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "0.87.1",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"ms": "^2.1.3"
|
|
12
12
|
},
|
|
@@ -15,8 +15,7 @@ console.log("Current settings:", JSON.stringify(settingsManagerFromDisk.getGloba
|
|
|
15
15
|
// Override specific settings
|
|
16
16
|
const settingsManager = SettingsManager.create(cwd);
|
|
17
17
|
settingsManager.applyOverrides({
|
|
18
|
-
|
|
19
|
-
retry: { enabled: true, maxRetries: 5, baseDelayMs: 1000 },
|
|
18
|
+
retry: { maxRetries: 5, baseDelayMs: 1000 },
|
|
20
19
|
});
|
|
21
20
|
|
|
22
21
|
const { facade: customSettingsFacade } = await createStableAgentSession({
|
|
@@ -41,8 +40,7 @@ if (settingsErrors.length > 0) {
|
|
|
41
40
|
|
|
42
41
|
// For testing without file I/O:
|
|
43
42
|
const inMemorySettings = SettingsManager.inMemory({
|
|
44
|
-
|
|
45
|
-
retry: { enabled: false },
|
|
43
|
+
retry: { maxRetries: 0 },
|
|
46
44
|
});
|
|
47
45
|
|
|
48
46
|
const { facade: testFacade } = await createStableAgentSession({
|
|
@@ -26,8 +26,7 @@ if (!model) throw new Error("Model not found");
|
|
|
26
26
|
|
|
27
27
|
// In-memory settings with overrides
|
|
28
28
|
const settingsManager = SettingsManager.inMemory({
|
|
29
|
-
|
|
30
|
-
retry: { enabled: true, maxRetries: 2 },
|
|
29
|
+
retry: { maxRetries: 2 },
|
|
31
30
|
});
|
|
32
31
|
|
|
33
32
|
const cwd = process.cwd();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-agent-forge/agent-forge",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.88.1",
|
|
4
4
|
"description": "Coding agent CLI with read, bash, edit, write tools and session management",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"agentForgeConfig": {
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
},
|
|
32
32
|
"files": [
|
|
33
33
|
"dist",
|
|
34
|
+
"bundled-plugins",
|
|
34
35
|
"docs",
|
|
35
36
|
"examples",
|
|
36
37
|
"containerization.md",
|
|
@@ -39,10 +40,8 @@
|
|
|
39
40
|
"scripts": {
|
|
40
41
|
"clean": "shx rm -rf dist",
|
|
41
42
|
"build": "npm run build:unbundled && node ../../scripts/build-agent-forge-bundle.mjs",
|
|
42
|
-
"build:unbundled": "tsgo -p tsconfig.build.json && shx chmod +x dist/cli.js dist/rpc-entry.js && npm run copy-assets",
|
|
43
|
-
"build:binary": "npm --prefix ../tui run build && npm --prefix ../telemetry run build && npm --prefix ../ai run build && npm --prefix ../agent run build && npm --prefix ../protocol run build && npm --prefix ../client run build && npm --prefix ../plugin-sdk run build && npm run build && bun build --compile --no-compile-autoload-bunfig ./src/bun/cli.ts ./src/utils/image-resize-worker.ts --outfile dist/agent-forge && npm run copy-binary-assets",
|
|
43
|
+
"build:unbundled": "npm run clean && tsgo -p tsconfig.build.json && shx chmod +x dist/cli.js dist/rpc-entry.js && npm run copy-assets",
|
|
44
44
|
"copy-assets": "shx mkdir -p dist/modes/interactive/theme && shx cp src/modes/interactive/theme/*.json dist/modes/interactive/theme/ && shx mkdir -p dist/modes/interactive/assets && shx cp src/modes/interactive/assets/*.png dist/modes/interactive/assets/ && shx mkdir -p dist/core/export-html/vendor && shx cp src/core/export-html/template.html src/core/export-html/template.css src/core/export-html/template.js dist/core/export-html/ && shx cp src/core/export-html/vendor/*.js dist/core/export-html/vendor/",
|
|
45
|
-
"copy-binary-assets": "shx cp package.json dist/ && shx cp README.md dist/ && shx cp CHANGELOG.md dist/ && shx mkdir -p dist/theme && shx cp src/modes/interactive/theme/*.json dist/theme/ && shx mkdir -p dist/assets && shx cp src/modes/interactive/assets/*.png dist/assets/ && shx mkdir -p dist/export-html/vendor && shx cp src/core/export-html/template.html dist/export-html/ && shx cp src/core/export-html/vendor/*.js dist/export-html/vendor/ && shx cp -r docs dist/ && shx cp -r examples dist/ && shx cp ../../node_modules/@silvia-odwyer/photon-node/photon_rs_bg.wasm dist/",
|
|
46
45
|
"test": "vitest --run",
|
|
47
46
|
"shrinkwrap": "node ../../scripts/generate-agent-forge-shrinkwrap.mjs",
|
|
48
47
|
"prepublishOnly": "npm run clean && npm run build && npm run shrinkwrap",
|