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:
7
.changeset/fn-8179-pi-sdk-align.md
Normal file
7
.changeset/fn-8179-pi-sdk-align.md
Normal 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.
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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:*",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
945
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user