FN-8179: align pi SDK versions with ModelRuntime API

Align workspace pi SDK dependencies with the ModelRuntime API required by the engine.

- Pin pi AI and coding-agent packages to 0.80.10 across workspace consumers.
- Keep session option typing compatible with the updated SDK contract.
- Add a patch changeset and regenerate the dependency lockfile.

Files changed:
 .changeset/fn-8179-pi-sdk-align.md                 |   7 +
 packages/cli/package.json                          |   4 +-
 packages/core/package.json                         |   2 +-
 packages/dashboard/package.json                    |   2 +-
 packages/engine/package.json                       |   4 +-
 packages/engine/src/pi.ts                          |   8 +-
 packages/pi-claude-cli/package.json                |   8 +-
 .../src/thinking-config.ts                         |   9 +-
 pnpm-lock.yaml                                     | 947 +++++++++++----------
 pnpm-workspace.yaml                                |   5 +
 10 files changed, 520 insertions(+), 476 deletions(-)

Fusion-Task-Id: FN-8179

Fusion-Task-Lineage: aef45c2e-f353-4014-93de-44be91f43293

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
This commit is contained in:
gsxdsm
2026-07-16 19:01:03 -07:00
parent b687cc994e
commit fd43a57a41
10 changed files with 519 additions and 475 deletions

View File

@@ -0,0 +1,7 @@
---
"@runfusion/fusion": patch
---
summary: Align the bundled pi coding-agent SDK to the ModelRuntime API so the engine builds.
category: fix
dev: Bumps @earendil-works/pi-ai and @earendil-works/pi-coding-agent floors to 0.80.10 across Fusion and reconciles the workspace lockfile.

View File

@@ -60,8 +60,8 @@
"test:pre-release": "pnpm test:slow-cli && pnpm test:build-exe"
},
"dependencies": {
"@earendil-works/pi-ai": "^0.80.6",
"@earendil-works/pi-coding-agent": "^0.80.6",
"@earendil-works/pi-ai": "^0.80.10",
"@earendil-works/pi-coding-agent": "^0.80.10",
"dockerode": "^4.0.12",
"embedded-postgres": "15.18.0-beta.17",
"express": "^5.1.0",

View File

@@ -46,7 +46,7 @@
"test:pg-gate": "vitest run src/__tests__/postgres/handoff-to-review-atomicity.pg.test.ts src/__tests__/postgres/store-list.pg.test.ts src/__tests__/postgres/task-lifecycle-e2e.pg.test.ts src/__tests__/postgres/soft-delete-resurrection-FN-5233.pg.test.ts src/__tests__/postgres/agent-logs-and-monitor.pg.test.ts src/__tests__/postgres/todo-store.pg.test.ts src/__tests__/postgres/workflow-definitions.pg.test.ts src/__tests__/postgres/message-store.pg.test.ts src/__tests__/postgres/insight-store.pg.test.ts src/__tests__/postgres/insight-run-execution.pg.test.ts src/__tests__/postgres/research-store.pg.test.ts src/__tests__/postgres/mission-store.pg.test.ts src/__tests__/postgres/goal-store.pg.test.ts src/__tests__/postgres/artifacts-documents-evals.pg.test.ts src/__tests__/postgres/command-center-analytics.pg.test.ts src/__tests__/postgres/command-center-remaining-analytics.pg.test.ts src/__tests__/postgres/research-execution.pg.test.ts src/__tests__/postgres/async-store-events.pg.test.ts src/__tests__/postgres/signal-ingestion.pg.test.ts src/__tests__/postgres/mission-autopilot.pg.test.ts src/__tests__/postgres/workflow-create.pg.test.ts src/__tests__/postgres/monitor-trait-storm-guard.pg.test.ts src/__tests__/postgres/agent-wake-getagent.pg.test.ts --silent=passed-only --reporter=dot"
},
"devDependencies": {
"@earendil-works/pi-coding-agent": "^0.80.6",
"@earendil-works/pi-coding-agent": "^0.80.10",
"@types/dockerode": "^3.3.41",
"@types/node": "^25.5.0",
"@vitest/coverage-v8": "^4.1.0",

View File

@@ -106,7 +106,7 @@
"@codemirror/state": "^6.5.2",
"@codemirror/theme-one-dark": "^6.1.2",
"@codemirror/view": "^6.36.4",
"@earendil-works/pi-coding-agent": "^0.80.6",
"@earendil-works/pi-coding-agent": "^0.80.10",
"@fusion-plugin-examples/cli-printing-press": "workspace:*",
"@fusion-plugin-examples/compound-engineering": "workspace:*",
"@fusion-plugin-examples/cursor-runtime": "workspace:*",

View File

@@ -40,8 +40,8 @@
"dependencies": {
"@fusion/core": "workspace:*",
"@fusion/pi-claude-cli": "workspace:*",
"@earendil-works/pi-ai": "^0.80.6",
"@earendil-works/pi-coding-agent": "^0.80.6",
"@earendil-works/pi-ai": "^0.80.10",
"@earendil-works/pi-coding-agent": "^0.80.10",
"@modelcontextprotocol/sdk": "^1.0.0",
"cron-parser": "^5.5.0",
"esbuild": "^0.25.12",

View File

@@ -2430,7 +2430,13 @@ export async function createFnAgent(options: AgentOptions): Promise<AgentResult>
throw error;
}
}
const createSessionOptions: Parameters<typeof createAgentSession>[0] = {
/*
FNXC:ModelCatalog 2026-07-16-18:00:
pi 0.80.10's createAgentSession accepts an optional options parameter, but Fusion
constructs and augments an options object before dispatch. Narrow away undefined so
the ModelRuntime-capable SDK contract remains type-safe as tool allowlists are added.
*/
const createSessionOptions: NonNullable<Parameters<typeof createAgentSession>[0]> = {
cwd: options.cwd,
modelRuntime,
resourceLoader,

View File

@@ -23,12 +23,12 @@
"@agentclientprotocol/sdk": "0.24.0"
},
"peerDependencies": {
"@earendil-works/pi-ai": "^0.80.6",
"@earendil-works/pi-coding-agent": "^0.80.6"
"@earendil-works/pi-ai": "^0.80.10",
"@earendil-works/pi-coding-agent": "^0.80.10"
},
"devDependencies": {
"@earendil-works/pi-ai": "^0.80.6",
"@earendil-works/pi-coding-agent": "^0.80.6",
"@earendil-works/pi-ai": "^0.80.10",
"@earendil-works/pi-coding-agent": "^0.80.10",
"@types/node": "^22.0.0",
"typescript": "^5.7.0",
"vitest": "^4.1.0"

View File

@@ -1,10 +1,15 @@
/**
* Thinking effort configuration for mapping pi's ThinkingLevel to Droid CLI --effort flags.
*
* Maps pi's reasoning levels (minimal/low/medium/high/xhigh) to the CLI's effort
* Maps pi's reasoning levels (minimal/low/medium/high/xhigh/max) to the CLI's effort
* levels (low/medium/high/max). Opus models get an elevated mapping where medium
* becomes high and high becomes max, leveraging their superior reasoning capability.
*
* FNXC:DroidThinking 2026-07-16-18:20:
* Fusion now resolves pi 0.80.10 workspace-wide, whose ThinkingLevel adds `max`.
* Keep both exhaustive mappings explicit: non-Opus must still avoid the CLI's max
* effort, while Opus may use it.
*
* IMPORTANT: The CLI does NOT support --thinking-budget. Only --effort is supported.
*/
@@ -23,6 +28,7 @@ const STANDARD_EFFORT_MAP: Record<ThinkingLevel, CliEffortLevel> = {
medium: "medium",
high: "high",
xhigh: "high", // non-Opus: silently downgrade (max not supported)
max: "high", // non-Opus: silently downgrade (max not supported)
};
/**
@@ -35,6 +41,7 @@ const OPUS_EFFORT_MAP: Record<ThinkingLevel, CliEffortLevel> = {
medium: "high", // shifted: standard high
high: "max", // shifted: maximum capability
xhigh: "max", // Opus gets max
max: "max", // Opus gets max
};
/**

945
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -18,6 +18,11 @@ onlyBuiltDependencies:
overrides:
'@types/node': ^25.5.2
protobufjs: ^7.5.8
# FNXC:ModelCatalog 2026-07-16-18:15: Keep floating @fusion/droid-cli and
# @fusion/pi-llama-cpp imports on the ModelRuntime-capable pi SDK so the
# workspace cannot resolve conflicting pi type surfaces.
'@earendil-works/pi-ai': 0.80.10
'@earendil-works/pi-coding-agent': 0.80.10
# FNXC:DesktopEmbeddedPostgres 2026-07-14-09:30:
# Desktop release jobs cross-build Intel and ARM64 artifacts on one host. Install
# optional native payloads for both CPU families on the current OS so each