feat(FN-3155): add createAiSession plugin context API with DI wiring

This merge brings FN-3155's plugin `createAiSession` API (types, DI hooks, engine adapter, context wiring, docs, and tests), FN-3056's task title sanitization, and FN-3129's tokenized footer and mobile initialization for MissionManager. It also adds CentralCore Docker node management, a new AddNodeM

Fusion-Task-Id: FN-3155
This commit is contained in:
Fusion
2026-05-02 13:20:12 -07:00
committed by gsxdsm
parent 2769e4a57b
commit 5ebccc43cc
17 changed files with 540 additions and 122 deletions

View File

@@ -22,12 +22,27 @@ export { createFnAgent, promptWithFallback, describeModel, setHostExtensionPaths
// Register createFnAgent into core's loader so consumers in @fusion/core
// (e.g. ai-summarize, memory-compaction) can resolve it without a circular
// static import. Runs once at engine module load.
import type { AiSessionResult, CreateAiSessionFactory, CreateAiSessionOptions } from "@fusion/core";
import { createFnAgent as _createFnAgentForCore } from "./pi.js";
const _createAiSessionAdapter: CreateAiSessionFactory = async (options: CreateAiSessionOptions): Promise<AiSessionResult> => {
return _createFnAgentForCore({
cwd: options.cwd,
systemPrompt: options.systemPrompt,
tools: options.tools,
defaultProvider: options.defaultProvider,
defaultModelId: options.defaultModelId,
});
};
void import("@fusion/core")
.then((core) => {
if ("setCreateFnAgent" in core && typeof core.setCreateFnAgent === "function") {
core.setCreateFnAgent(_createFnAgentForCore);
}
if ("setCreateAiSessionFactory" in core && typeof core.setCreateAiSessionFactory === "function") {
core.setCreateAiSessionFactory(_createAiSessionAdapter);
}
})
.catch(() => {
// Ignore loader registration failures in constrained test/mocked environments.