bkper 5.5.2 → 5.5.4

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.
Files changed (60) hide show
  1. package/lib/agent/agent-command-runner.d.ts +5 -1
  2. package/lib/agent/agent-command-runner.d.ts.map +1 -1
  3. package/lib/agent/agent-command-runner.js +11 -2
  4. package/lib/agent/agent-command-runner.js.map +1 -1
  5. package/lib/agent/agent-entry.d.ts +1 -1
  6. package/lib/agent/agent-entry.d.ts.map +1 -1
  7. package/lib/agent/agent-entry.js +1 -0
  8. package/lib/agent/agent-entry.js.map +1 -1
  9. package/lib/agent/bundle/agent-entry.js +2379 -0
  10. package/lib/agent/bundle/anthropic.js +75 -0
  11. package/lib/agent/bundle/bedrock-converse-stream.js +133 -0
  12. package/lib/agent/bundle/codemode-worker.js +478 -0
  13. package/lib/agent/bundle/github-copilot.js +2 -0
  14. package/lib/agent/bundle/image-resize-worker.js +2 -0
  15. package/lib/agent/bundle/kimi-coding.js +2 -0
  16. package/lib/agent/bundle/meta.js +2 -0
  17. package/lib/agent/bundle/openai-chatgpt.js +75 -0
  18. package/lib/agent/bundle/openai-codex.js +75 -0
  19. package/lib/agent/bundle/openrouter.js +75 -0
  20. package/lib/agent/bundle/radius.js +75 -0
  21. package/lib/agent/bundle/update-worker.js +3 -0
  22. package/lib/agent/bundle/xai.js +2 -0
  23. package/lib/agent/extensions/bkper-ai-provider.d.ts.map +1 -1
  24. package/lib/agent/extensions/bkper-ai-provider.js +62 -2
  25. package/lib/agent/extensions/bkper-ai-provider.js.map +1 -1
  26. package/lib/agent/extensions/startup.d.ts.map +1 -1
  27. package/lib/agent/extensions/startup.js +8 -3
  28. package/lib/agent/extensions/startup.js.map +1 -1
  29. package/lib/agent/interactive/interactive-mode.d.ts.map +1 -1
  30. package/lib/agent/interactive/interactive-mode.js +26 -0
  31. package/lib/agent/interactive/interactive-mode.js.map +1 -1
  32. package/lib/agent/pi-package-env.d.ts +2 -0
  33. package/lib/agent/pi-package-env.d.ts.map +1 -0
  34. package/lib/agent/pi-package-env.js +4 -0
  35. package/lib/agent/pi-package-env.js.map +1 -0
  36. package/lib/agent/pi-shared-modules.d.ts +6 -17
  37. package/lib/agent/pi-shared-modules.d.ts.map +1 -1
  38. package/lib/agent/pi-shared-modules.js +10 -31
  39. package/lib/agent/pi-shared-modules.js.map +1 -1
  40. package/lib/agent/system-prompt.d.ts.map +1 -1
  41. package/lib/agent/system-prompt.js +8 -19
  42. package/lib/agent/system-prompt.js.map +1 -1
  43. package/lib/commands/agent-command.d.ts +2 -1
  44. package/lib/commands/agent-command.d.ts.map +1 -1
  45. package/lib/commands/agent-command.js +12 -4
  46. package/lib/commands/agent-command.js.map +1 -1
  47. package/lib/docs/api/managed-agent.md +2 -2
  48. package/lib/docs/apps/ai.md +1 -1
  49. package/lib/docs/apps/context-menu.md +14 -2
  50. package/lib/docs/apps/overview.md +31 -14
  51. package/lib/docs/core/core-concepts.md +4 -4
  52. package/lib/upgrade/installation.d.ts +2 -2
  53. package/lib/upgrade/installation.d.ts.map +1 -1
  54. package/lib/upgrade/installation.js +4 -7
  55. package/lib/upgrade/installation.js.map +1 -1
  56. package/lib/utils/package-dir.d.ts +15 -0
  57. package/lib/utils/package-dir.d.ts.map +1 -0
  58. package/lib/utils/package-dir.js +32 -0
  59. package/lib/utils/package-dir.js.map +1 -0
  60. package/package.json +8 -4
@@ -0,0 +1,3 @@
1
+ import { createRequire as __bkperCreateRequire } from "node:module"; const require = __bkperCreateRequire(import.meta.url);
2
+ import{createHash}from"crypto";import{closeSync,mkdirSync,openSync,readFileSync as readFileSync2,renameSync,statSync,unlinkSync,writeFileSync}from"fs";import path4 from"path";import path from"path";import os from"os";var BKPER_CONFIG_DIR=path.join(os.homedir(),".config","bkper"),BKPER_BIN_DIR=path.join(BKPER_CONFIG_DIR,"bin"),DEFAULT_CLOUDFLARED_BIN=path.join(BKPER_BIN_DIR,process.platform==="win32"?"cloudflared.exe":"cloudflared"),bin=process.env.CLOUDFLARED_BIN||DEFAULT_CLOUDFLARED_BIN;import{execSync}from"child_process";import{accessSync,constants,existsSync as existsSync2,readFileSync,realpathSync}from"fs";import os2 from"os";import path3 from"path";import{existsSync}from"node:fs";import path2 from"node:path";import{fileURLToPath}from"node:url";function findPackageDir(startDir){let dir=startDir;for(;dir!==path2.dirname(dir);){if(existsSync(path2.join(dir,"package.json")))return dir;dir=path2.dirname(dir)}return startDir}var BKPER_PACKAGE_DIR=findPackageDir(path2.dirname(fileURLToPath(import.meta.url)));var PACKAGE_DIR=BKPER_PACKAGE_DIR,VERSION=JSON.parse(readFileSync(path3.join(PACKAGE_DIR,"package.json"),"utf8")).version,PACKAGE_NAME="bkper";function getRuntimeLocation(){return{packageDir:PACKAGE_DIR,entrypoint:process.argv[1],execPath:process.execPath,isBunRuntime:!!process.versions.bun,platform:process.platform}}function readCommandOutput(command){try{return execSync(command,{encoding:"utf-8",timeout:1e4,stdio:["ignore","pipe","ignore"],windowsHide:!0}).trim()||void 0}catch{return}}function isWritable(dir){try{return accessSync(dir,constants.W_OK),!0}catch{return!1}}function getDefaultSelfUpdateEnvironment(){return{homedir:os2.homedir(),readCommandOutput,isWritable}}function pathApi(platform){return platform==="win32"?path3.win32:path3.posix}function detectInstallMethod(location=getRuntimeLocation()){let resolved=`${location.packageDir}/\0${location.execPath}`.toLowerCase().replace(/\\/g,"/");return resolved.includes("/pnpm/")||resolved.includes("/.pnpm/")?"pnpm":resolved.includes("/yarn/")||resolved.includes("/.yarn/")?"yarn":location.isBunRuntime||resolved.includes("/install/global/node_modules/")?"bun":resolved.includes("/npm/")||resolved.includes("/node_modules/")?"npm":"unknown"}function inferNpmPrefix(packageDir,platform){if(platform==="win32")return;let p=pathApi(platform),root=p.dirname(packageDir);if(p.basename(root)!=="node_modules")return;let lib=p.dirname(root);return p.basename(lib)==="lib"?p.dirname(lib):void 0}function getInstallCommand(method,version,npmPrefix){let spec=`${PACKAGE_NAME}@${version}`;switch(method){case"npm":return npmPrefix?`npm --prefix "${npmPrefix}" install -g ${spec}`:`npm install -g ${spec}`;case"pnpm":return`pnpm add -g ${spec}`;case"yarn":return`yarn global add ${spec}`;case"bun":return`bun add -g ${spec}`;default:return null}}function getGlobalRoots(method,location,environment){switch(method){case"npm":{let prefix=inferNpmPrefix(location.packageDir,location.platform),roots=[environment.readCommandOutput("npm root -g")];return prefix&&roots.push(path3.join(prefix,"lib","node_modules")),roots.filter(root=>!!root)}case"pnpm":{let root=environment.readCommandOutput("pnpm root -g");return root?[root,path3.dirname(root)]:[]}case"yarn":{let dir=environment.readCommandOutput("yarn global dir");return dir?[dir,path3.join(dir,"node_modules")]:[]}case"bun":{let roots=[path3.join(environment.homedir,".bun","install","global","node_modules")],bunBin=environment.readCommandOutput("bun pm bin -g");return bunBin&&roots.push(path3.join(path3.dirname(bunBin),"install","global","node_modules")),roots}default:return[]}}function getComparablePaths(target,platform){let resolved=path3.resolve(target);if(!existsSync2(resolved))return[];let candidates=[resolved];try{candidates.push(realpathSync(resolved))}catch{}return[...new Set(candidates.map(c=>platform==="win32"?c.toLowerCase():c))]}function getEntrypointPackageDir(entrypoint){if(!entrypoint)return;let dir=path3.dirname(path3.resolve(entrypoint));for(;dir!==path3.dirname(dir);){if(existsSync2(path3.join(dir,"package.json")))return dir;dir=path3.dirname(dir)}}function findManagedPackageJson(roots,location){let packageDirs=[location.packageDir,getEntrypointPackageDir(location.entrypoint)].filter(dir=>!!dir).flatMap(dir=>getComparablePaths(dir,location.platform)),containingRoots=roots.filter(root=>getComparablePaths(root,location.platform).some(normalizedRoot=>{let prefix=normalizedRoot.endsWith(path3.sep)?normalizedRoot:`${normalizedRoot}${path3.sep}`;return packageDirs.some(dir=>dir.startsWith(prefix))}));if(containingRoots.length!==0){for(let root of containingRoots){let packageJsonPath=path3.join(root,PACKAGE_NAME,"package.json");if(existsSync2(packageJsonPath))return packageJsonPath}return path3.join(location.packageDir,"package.json")}}function getSelfUpdatePlan(version,location=getRuntimeLocation(),environment=getDefaultSelfUpdateEnvironment()){let method=detectInstallMethod(location),packageDir=location.packageDir,npmPrefix=method==="npm"?inferNpmPrefix(packageDir,location.platform):void 0,command=getInstallCommand(method,version,npmPrefix),manual=instruction=>({kind:"manual",method,packageDir,instruction});if(!command)return manual(`Update bkper with the package manager, wrapper, or source checkout that provides ${packageDir}.`);if(location.platform==="win32"&&method!=="npm"&&method!=="pnpm")return manual(`Automatic upgrade on Windows supports only npm and pnpm installs. Run: ${command}`);let packageJsonPath=findManagedPackageJson(getGlobalRoots(method,location,environment),location);return packageJsonPath?!environment.isWritable(packageDir)||!environment.isWritable(path3.dirname(packageDir))?manual(`The global ${method} install at ${packageDir} is not writable. Update it yourself with: ${command}`):{kind:"install",method,packageDir,command,packageJsonPath}:manual(`bkper at ${packageDir} is not a global ${method} install. Update it with the package manager, wrapper, or source checkout that provides it.`)}function readInstalledVersion(packageJsonPath){try{let data=JSON.parse(readFileSync(packageJsonPath,"utf8"));return typeof data.version=="string"?data.version:void 0}catch{return}}function runInstallCommand(command){let effectiveCommand=process.env.BKPER_AUTOUPDATE_COMMAND||command;execSync(effectiveCommand,{stdio:"pipe",timeout:12e4,windowsHide:!0})}async function fetchLatestVersion(timeoutMs=5e3){let latestVersionOverride=process.env.BKPER_AUTOUPDATE_LATEST_VERSION;if(latestVersionOverride)return latestVersionOverride;try{let response=await fetch(`https://registry.npmjs.org/${PACKAGE_NAME}/latest`,{headers:{Accept:"application/json"},signal:AbortSignal.timeout(timeoutMs)});return response.ok?(await response.json()).version??null:null}catch{return null}}function isNewerVersion(current,latest){let parse=v=>v.split(".").map(Number),[cMajor,cMinor,cPatch]=parse(current),[lMajor,lMinor,lPatch]=parse(latest);return lMajor!==cMajor?lMajor>cMajor:lMinor!==cMinor?lMinor>cMinor:lPatch>cPatch}var CHECK_INTERVAL_MS=1440*60*1e3,AGENT_CHECK_INTERVAL_MS=300*1e3,REGISTRY_TIMEOUT_MS=3e3;function getUpdateCachePath(packageDir=PACKAGE_DIR,configDir=BKPER_CONFIG_DIR){let key=createHash("sha256").update(packageDir).digest("hex").slice(0,16);return path4.join(configDir,"update-check",`${key}.json`)}function readUpdateState(cachePath=getUpdateCachePath()){try{let data=JSON.parse(readFileSync2(cachePath,"utf8"));if(typeof data!="object"||data===null||Array.isArray(data))return{};let record=data,state={};typeof record.lastAttemptedAt=="number"&&(state.lastAttemptedAt=record.lastAttemptedAt),typeof record.latestVersion=="string"&&(state.latestVersion=record.latestVersion);let install=record.install;return install&&typeof install.version=="string"&&(install.status==="installed"||install.status==="manual"||install.status==="failed")&&(state.install={version:install.version,status:install.status},typeof install.instruction=="string"&&(state.install.instruction=install.instruction)),state}catch{return{}}}function writeUpdateState(state,cachePath=getUpdateCachePath()){let tempPath=`${cachePath}.${process.pid}.tmp`;try{return mkdirSync(path4.dirname(cachePath),{recursive:!0}),writeFileSync(tempPath,`${JSON.stringify(state)}
3
+ `,{encoding:"utf8",mode:384}),renameSync(tempPath,cachePath),!0}catch{try{unlinkSync(tempPath)}catch{}return!1}}function createDefaultWorkerDependencies(){return{cachePath:getUpdateCachePath(),version:VERSION,fetchLatestVersion,getSelfUpdatePlan:version=>getSelfUpdatePlan(version),runInstall:runInstallCommand,readInstalledVersion}}function decideInstall(latest,deps){let plan=deps.getSelfUpdatePlan(latest);if(plan.kind==="manual")return{version:latest,status:"manual",instruction:plan.instruction};if(deps.readInstalledVersion(plan.packageJsonPath)===latest)return{version:latest,status:"installed"};try{deps.runInstall(plan.command)}catch{return{version:latest,status:"failed"}}let installed=deps.readInstalledVersion(plan.packageJsonPath);return{version:latest,status:installed===latest?"installed":"failed"}}async function runUpdateWorker(deps=createDefaultWorkerDependencies()){try{let latest=await deps.fetchLatestVersion(REGISTRY_TIMEOUT_MS);if(!latest||(writeUpdateState({...readUpdateState(deps.cachePath),latestVersion:latest},deps.cachePath),!isNewerVersion(deps.version,latest)))return;let install=decideInstall(latest,deps);writeUpdateState({...readUpdateState(deps.cachePath),install},deps.cachePath)}catch{}}runUpdateWorker().catch(()=>{});
@@ -0,0 +1,2 @@
1
+ import { createRequire as __bkperCreateRequire } from "node:module"; const require = __bkperCreateRequire(import.meta.url);
2
+ var CANCEL_MESSAGE="Login cancelled",TIMEOUT_MESSAGE="Device flow timed out",SLOW_DOWN_TIMEOUT_MESSAGE="Device flow timed out after one or more slow_down responses. This is often caused by clock drift in WSL or VM environments. Please sync or restart the VM clock and try again.";function abortableSleep(ms,signal,cancelMessage){return new Promise((resolve,reject)=>{if(signal.aborted){reject(new Error(cancelMessage));return}let onAbort=()=>{clearTimeout(timeout),reject(new Error(cancelMessage))},timeout=setTimeout(()=>{signal.removeEventListener("abort",onAbort),resolve()},ms);signal.addEventListener("abort",onAbort,{once:!0})})}async function pollOAuthDeviceCodeFlow(options){let deadline=typeof options.expiresInSeconds=="number"?Date.now()+options.expiresInSeconds*1e3:Number.POSITIVE_INFINITY,intervalMs=Math.max(1e3,Math.floor((options.intervalSeconds??5)*1e3)),slowDownResponses=0;if(options.waitBeforeFirstPoll){let remainingMs=deadline-Date.now();remainingMs>0&&await abortableSleep(Math.min(intervalMs,remainingMs),options.signal,CANCEL_MESSAGE)}for(;Date.now()<deadline;){if(options.signal.aborted)throw new Error(CANCEL_MESSAGE);let result=await options.poll();if(result.status==="complete")return result.value;if(result.status==="failed")throw new Error(result.message);result.status==="slow_down"&&(slowDownResponses+=1,intervalMs=typeof result.intervalSeconds=="number"&&Number.isFinite(result.intervalSeconds)&&result.intervalSeconds>0?Math.max(1e3,Math.floor(result.intervalSeconds*1e3)):Math.max(1e3,intervalMs+5e3));let remainingMs=deadline-Date.now();if(remainingMs<=0)break;await abortableSleep(Math.min(intervalMs,remainingMs),options.signal,CANCEL_MESSAGE)}throw new Error(slowDownResponses>0?SLOW_DOWN_TIMEOUT_MESSAGE:TIMEOUT_MESSAGE)}var XAI_CLIENT_ID="b1a00492-073a-47ea-816f-4c329264a828",XAI_SCOPE="openid profile email offline_access grok-cli:access api:access",XAI_DEVICE_CODE_URL="https://auth.x.ai/oauth2/device/code",XAI_TOKEN_URL="https://auth.x.ai/oauth2/token",REFRESH_SKEW_MS=300*1e3,DEFAULT_TOKEN_LIFETIME_SECONDS=3600;function requiredString(body,field){let value=body[field];if(typeof value!="string"||value.length===0)throw new Error(`Invalid xAI OAuth response field: ${field}`);return value}function positiveNumber(body,field){let value=body[field];if(typeof value!="number"||!Number.isFinite(value)||value<=0)throw new Error(`Invalid xAI OAuth response field: ${field}`);return value}function validateVerificationUri(raw){let url;try{url=new URL(raw)}catch{throw new Error("Untrusted verification URI in xAI OAuth response")}if(url.protocol!=="https:")throw new Error("Untrusted verification URI in xAI OAuth response");return url.href}async function postForm(url,fields,signal){let response;try{response=await fetch(url,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(fields),signal})}catch(error){throw signal.aborted?new Error("Login cancelled"):error}let body;try{let parsed=await response.json();body=parsed&&typeof parsed=="object"&&!Array.isArray(parsed)?parsed:{}}catch{throw signal.aborted?new Error("Login cancelled"):new Error(`xAI OAuth returned invalid JSON (HTTP ${response.status})`)}return{ok:response.ok,status:response.status,body}}function requestFailure(action,response){let error=typeof response.body.error=="string"?response.body.error:void 0,description=typeof response.body.error_description=="string"?response.body.error_description:void 0,detail=[error,description].filter(Boolean).join(": ");return new Error(`xAI OAuth ${action} failed (HTTP ${response.status})${detail?`: ${detail}`:""}`)}function parseDeviceCode(body){let interval=body.interval,intervalSeconds=typeof interval=="number"&&Number.isFinite(interval)&&interval>0?interval:void 0,verificationUriComplete=typeof body.verification_uri_complete=="string"&&body.verification_uri_complete.length>0?validateVerificationUri(body.verification_uri_complete):void 0;return{deviceCode:requiredString(body,"device_code"),userCode:requiredString(body,"user_code"),verificationUri:validateVerificationUri(requiredString(body,"verification_uri")),verificationUriComplete,intervalSeconds,expiresInSeconds:positiveNumber(body,"expires_in")}}function credentialsFromTokenResponse(body,previousRefreshToken){let access=requiredString(body,"access_token"),refresh=body.refresh_token===void 0&&previousRefreshToken?previousRefreshToken:requiredString(body,"refresh_token"),expiresInSeconds=body.expires_in===void 0?DEFAULT_TOKEN_LIFETIME_SECONDS:positiveNumber(body,"expires_in");return{type:"oauth",access,refresh,expires:Date.now()+expiresInSeconds*1e3-REFRESH_SKEW_MS}}async function requestDeviceCode(signal){let response=await postForm(XAI_DEVICE_CODE_URL,{client_id:XAI_CLIENT_ID,scope:XAI_SCOPE,referrer:"pi"},signal);if(!response.ok)throw requestFailure("device authorization",response);return parseDeviceCode(response.body)}async function pollForTokens(device,signal){return pollOAuthDeviceCodeFlow({intervalSeconds:device.intervalSeconds,expiresInSeconds:device.expiresInSeconds,waitBeforeFirstPoll:!0,signal,poll:async()=>{let response=await postForm(XAI_TOKEN_URL,{grant_type:"urn:ietf:params:oauth:grant-type:device_code",client_id:XAI_CLIENT_ID,device_code:device.deviceCode},signal);if(response.ok)return{status:"complete",value:credentialsFromTokenResponse(response.body)};let error=response.body.error;if(error==="authorization_pending")return{status:"pending"};if(error==="slow_down"){let interval=response.body.interval;return{status:"slow_down",intervalSeconds:typeof interval=="number"?interval:void 0}}return error==="access_denied"||error==="authorization_denied"?{status:"failed",message:"xAI device authorization was denied"}:error==="expired_token"?{status:"failed",message:"xAI device code expired"}:{status:"failed",message:requestFailure("device token polling",response).message}}})}async function loginXai(interaction){let device=await requestDeviceCode(interaction.signal);return interaction.notify({type:"device_code",userCode:device.userCode,verificationUri:device.verificationUriComplete??device.verificationUri,intervalSeconds:device.intervalSeconds,expiresInSeconds:device.expiresInSeconds}),pollForTokens(device,interaction.signal)}async function refreshXaiToken(refreshToken,signal){let response=await postForm(XAI_TOKEN_URL,{grant_type:"refresh_token",client_id:XAI_CLIENT_ID,refresh_token:refreshToken},signal);if(!response.ok)throw requestFailure("token refresh",response);return credentialsFromTokenResponse(response.body,refreshToken)}var xaiOAuth={name:"xAI (Grok/X subscription)",isSubscription:!0,loginLabel:"Sign in with SuperGrok or X Premium",login:loginXai,refresh:(credential,signal)=>refreshXaiToken(credential.refresh,signal),async toAuth(credential){return{apiKey:credential.access}}};export{xaiOAuth};
@@ -1 +1 @@
1
- {"version":3,"file":"bkper-ai-provider.d.ts","sourceRoot":"","sources":["../../../src/agent/extensions/bkper-ai-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,YAAY,EACZ,cAAc,EAEjB,MAAM,iCAAiC,CAAC;AAGzC,eAAO,MAAM,oBAAoB,UAAU,CAAC;AAC5C,eAAO,MAAM,4BAA4B,4BAA4B,CAAC;AAItE,QAAA,MAAM,eAAe,sEAAuE,CAAC;AAG7F,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,yBAAyB,CAAC,EAAE,oBAAoB,CAAC;CACpD;AAuED,wBAAgB,yBAAyB,CACrC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACtD,MAAM,GAAG,SAAS,CA0BpB;AA8ID,wBAAgB,uBAAuB,CAAC,MAAM,SAAS,oBAAoB,EACvE,MAAM,EAAE,SAAS,MAAM,EAAE,GAC1B,MAAM,GAAG,SAAS,CAMpB;AAED,wBAAgB,8BAA8B,CAC1C,KAAK,EAAE,oBAAoB,GAAG,SAAS,GACxC,oBAAoB,GAAG,SAAS,CAIlC;AAED,wBAAgB,wBAAwB,CACpC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,EACrD,OAAO,GAAE,OAAO,KAAa,GAC9B,cAAc,CAkBhB;AAED,wBAAgB,uBAAuB,CACnC,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,kBAAkB,CAAC,EAC1C,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACtD,IAAI,CAEN"}
1
+ {"version":3,"file":"bkper-ai-provider.d.ts","sourceRoot":"","sources":["../../../src/agent/extensions/bkper-ai-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,YAAY,EACZ,cAAc,EAEjB,MAAM,iCAAiC,CAAC;AAGzC,eAAO,MAAM,oBAAoB,UAAU,CAAC;AAC5C,eAAO,MAAM,4BAA4B,4BAA4B,CAAC;AAItE,QAAA,MAAM,eAAe,sEAAuE,CAAC;AAI7F,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,yBAAyB,CAAC,EAAE,oBAAoB,CAAC;CACpD;AAuED,wBAAgB,yBAAyB,CACrC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACtD,MAAM,GAAG,SAAS,CA0BpB;AA0MD,wBAAgB,uBAAuB,CAAC,MAAM,SAAS,oBAAoB,EACvE,MAAM,EAAE,SAAS,MAAM,EAAE,GAC1B,MAAM,GAAG,SAAS,CAMpB;AAED,wBAAgB,8BAA8B,CAC1C,KAAK,EAAE,oBAAoB,GAAG,SAAS,GACxC,oBAAoB,GAAG,SAAS,CAIlC;AAED,wBAAgB,wBAAwB,CACpC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,EACrD,OAAO,GAAE,OAAO,KAAa,GAC9B,cAAc,CAkBhB;AAED,wBAAgB,uBAAuB,CACnC,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,kBAAkB,CAAC,EAC1C,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACtD,IAAI,CAEN"}
@@ -7,6 +7,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
+ var __rest = (this && this.__rest) || function (s, e) {
11
+ var t = {};
12
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
13
+ t[p] = s[p];
14
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
15
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
16
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
17
+ t[p[i]] = s[p[i]];
18
+ }
19
+ return t;
20
+ };
10
21
  import { typesafeSystemOneApi } from '../pi-shared-modules.js';
11
22
  export const BKPER_AI_PROVIDER_ID = 'bkper';
12
23
  export const BKPER_AI_PRODUCTION_BASE_URL = 'https://ai.bkper.app/v1';
@@ -14,6 +25,7 @@ const BKPER_AI_BASE_URL_ENV_VAR = 'BKPER_AI_BASE_URL';
14
25
  const BKPER_AI_DEVELOPMENT_ORIGIN = 'https://ai-dev.bkper.app';
15
26
  const THINKING_LEVELS = ['off', 'minimal', 'low', 'medium', 'high', 'xhigh', 'max'];
16
27
  const BKPER_AI_CLASSIFIER_API = 'typesafe-system-one';
28
+ const BKPER_AI_CHAT_API = 'openai-responses';
17
29
  function isDecisionModel(model) {
18
30
  return model.type === 'decision';
19
31
  }
@@ -145,6 +157,54 @@ function fetchBkperAiModels(baseUrl, fetchFn, signal) {
145
157
  ];
146
158
  });
147
159
  }
160
+ /** Pi's models store holds full runtime models, so saved entries carry the provider and gateway. */
161
+ function toStoredModel(model, baseUrl) {
162
+ var _a, _b;
163
+ return model.type === 'classifier'
164
+ ? Object.assign(Object.assign({}, model), { api: (_a = model.api) !== null && _a !== void 0 ? _a : BKPER_AI_CLASSIFIER_API, provider: BKPER_AI_PROVIDER_ID, baseUrl }) : Object.assign(Object.assign({}, model), { api: (_b = model.api) !== null && _b !== void 0 ? _b : BKPER_AI_CHAT_API, provider: BKPER_AI_PROVIDER_ID, baseUrl });
165
+ }
166
+ /** Restores the fetched shape: chat models inherit the provider API, and image models are never saved. */
167
+ function fromStoredModel(model) {
168
+ if (model.type === 'classifier') {
169
+ const { provider: _provider, baseUrl: _baseUrl } = model, config = __rest(model, ["provider", "baseUrl"]);
170
+ return config;
171
+ }
172
+ if (model.type === 'image') {
173
+ return undefined;
174
+ }
175
+ const { provider: _provider, baseUrl: _baseUrl, api: _api } = model, config = __rest(model, ["provider", "baseUrl", "api"]);
176
+ return config;
177
+ }
178
+ /** Saved models from this gateway, or undefined when there are none to start from. */
179
+ function getSavedModels(context, baseUrl) {
180
+ var _a, _b;
181
+ const models = (_b = (_a = context.stored) === null || _a === void 0 ? void 0 : _a.models) !== null && _b !== void 0 ? _b : [];
182
+ if (models.length === 0 || models.some(model => model.baseUrl !== baseUrl)) {
183
+ return undefined;
184
+ }
185
+ return models.flatMap(model => { var _a; return (_a = fromStoredModel(model)) !== null && _a !== void 0 ? _a : []; });
186
+ }
187
+ /**
188
+ * Starts from the saved catalog while Pi refreshes offline, so startup does not wait on the gateway.
189
+ * Pi's background network refresh fetches and saves the latest catalog on every launch. The first
190
+ * launch, with nothing saved, still fetches so the user has models right away.
191
+ */
192
+ function refreshBkperAiModels(baseUrl, fetchFn, context) {
193
+ return __awaiter(this, void 0, void 0, function* () {
194
+ const savedModels = getSavedModels(context, baseUrl);
195
+ if (!context.allowNetwork && savedModels) {
196
+ return savedModels;
197
+ }
198
+ const models = yield fetchBkperAiModels(baseUrl, fetchFn, context.signal);
199
+ yield context.publish({
200
+ persist: {
201
+ models: models.map(model => toStoredModel(model, baseUrl)),
202
+ checkedAt: Date.now(),
203
+ },
204
+ });
205
+ return models;
206
+ });
207
+ }
148
208
  export function findDefaultBkperAiModel(models) {
149
209
  var _a;
150
210
  return ((_a = models.find(model => model.provider === BKPER_AI_PROVIDER_ID && model.bkperDefault === true)) !== null && _a !== void 0 ? _a : models.find(model => model.provider === BKPER_AI_PROVIDER_ID));
@@ -166,11 +226,11 @@ export function getBkperAiProviderConfig(env = process.env, fetchFn = fetch) {
166
226
  'bkper-ai-source': 'bkper-cli',
167
227
  'User-Agent': 'bkper-cli',
168
228
  },
169
- api: 'openai-responses',
229
+ api: BKPER_AI_CHAT_API,
170
230
  classifiers: { [BKPER_AI_CLASSIFIER_API]: typesafeSystemOneApi() },
171
231
  // Every model type arrives through refreshModels, so the static list stays empty.
172
232
  models: [],
173
- refreshModels: ({ signal }) => fetchBkperAiModels(baseUrl, fetchFn, signal),
233
+ refreshModels: context => refreshBkperAiModels(baseUrl, fetchFn, context),
174
234
  };
175
235
  }
176
236
  export function registerBkperAiProvider(pi, env = process.env) {
@@ -1 +1 @@
1
- {"version":3,"file":"bkper-ai-provider.js","sourceRoot":"","sources":["../../../src/agent/extensions/bkper-ai-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bkper-ai-provider.js","sourceRoot":"","sources":["../../../src/agent/extensions/bkper-ai-provider.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"startup.d.ts","sourceRoot":"","sources":["../../../src/agent/extensions/startup.ts"],"names":[],"mappings":"AACA,OAAO,EAIH,KAAK,YAAY,EACjB,KAAK,YAAY,EAEpB,MAAM,iCAAiC,CAAC;AAOzC,OAAO,EAAC,qBAAqB,EAAC,MAAM,2BAA2B,CAAC;AAahE,KAAK,mBAAmB,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AAoMpD,wBAAgB,kCAAkC,CAC9C,EAAE,EAAE,mBAAmB,EACvB,kBAAkB,GAAE,OAAO,qBAA6C,EACxE,eAAe,CAAC,EAAE;IACd,eAAe,IAAI,YAAY,CAAC;IAChC,YAAY,CAAC,IAAI,MAAM,GAAG,SAAS,CAAC;IACpC,eAAe,CAAC,IAAI,MAAM,EAAE,GAAG,SAAS,CAAC;CAC5C,EACD,sBAAsB,CAAC,EAAE,MAAM,EAC/B,aAAa,CAAC,EAAE,OAAO,GACxB,IAAI,CA+BN"}
1
+ {"version":3,"file":"startup.d.ts","sourceRoot":"","sources":["../../../src/agent/extensions/startup.ts"],"names":[],"mappings":"AACA,OAAO,EAIH,KAAK,YAAY,EACjB,KAAK,YAAY,EAEpB,MAAM,iCAAiC,CAAC;AAOzC,OAAO,EAAC,qBAAqB,EAAC,MAAM,2BAA2B,CAAC;AAahE,KAAK,mBAAmB,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AAyMpD,wBAAgB,kCAAkC,CAC9C,EAAE,EAAE,mBAAmB,EACvB,kBAAkB,GAAE,OAAO,qBAA6C,EACxE,eAAe,CAAC,EAAE;IACd,eAAe,IAAI,YAAY,CAAC;IAChC,YAAY,CAAC,IAAI,MAAM,GAAG,SAAS,CAAC;IACpC,eAAe,CAAC,IAAI,MAAM,EAAE,GAAG,SAAS,CAAC;CAC5C,EACD,sBAAsB,CAAC,EAAE,MAAM,EAC/B,aAAa,CAAC,EAAE,OAAO,GACxB,IAAI,CA+BN"}
@@ -137,7 +137,12 @@ function buildStartupHeaderLines(theme, modelRegistry, width, showBashShortcut)
137
137
  lines.push('', ...wrapStartupHeaderLine(NO_MODELS_STARTUP_HINT, contentWidth).map(line => theme.fg('warning', line)));
138
138
  }
139
139
  // The TUI rejects lines wider than the terminal, so narrow terminals truncate hints.
140
- return lines.map(line => line.length > 0 ? STARTUP_LEFT_PADDING + truncateToWidth(line, contentWidth) : line);
140
+ // Blank lines above and below space the header, as Pi does around its own header.
141
+ return [
142
+ '',
143
+ ...lines.map(line => line.length > 0 ? STARTUP_LEFT_PADDING + truncateToWidth(line, contentWidth) : line),
144
+ '',
145
+ ];
141
146
  }
142
147
  function createStartupHeaderFactory(modelRegistry, showBashShortcut) {
143
148
  return (tui, theme) => ({
@@ -151,10 +156,10 @@ function createStartupHeaderFactory(modelRegistry, showBashShortcut) {
151
156
  return undefined;
152
157
  if (getBkperLogoLines(contentWidth, theme.getColorMode()).length === 0)
153
158
  return undefined;
154
- // The logo is the header's first line, after the left padding.
159
+ // The logo starts after the header's leading blank line and the left padding.
155
160
  const origin = {
156
161
  column: event.screenX - event.x + STARTUP_LEFT_PADDING.length,
157
- row: event.screenY - event.y,
162
+ row: event.screenY - event.y + 1,
158
163
  };
159
164
  return playLogo3d(tui, theme, BKPER_MARK_LOGO, origin) ? { handled: true } : undefined;
160
165
  },
@@ -1 +1 @@
1
- {"version":3,"file":"startup.js","sourceRoot":"","sources":["../../../src/agent/extensions/startup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"startup.js","sourceRoot":"","sources":["../../../src/agent/extensions/startup.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"interactive-mode.d.ts","sourceRoot":"","sources":["../../../src/agent/interactive/interactive-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,eAAe,EAElB,MAAM,iCAAiC,CAAC;AAgBzC,MAAM,MAAM,sBAAsB,GAAG,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AAStF,wBAAgB,0BAA0B,IAAI,MAAM,IAAI,CAmBvD;AAED,qBAAa,oBAAqB,SAAQ,eAAe;IAC/C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA6DrB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAS7B"}
1
+ {"version":3,"file":"interactive-mode.d.ts","sourceRoot":"","sources":["../../../src/agent/interactive/interactive-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,eAAe,EAElB,MAAM,iCAAiC,CAAC;AAgBzC,MAAM,MAAM,sBAAsB,GAAG,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AAStF,wBAAgB,0BAA0B,IAAI,MAAM,IAAI,CAmBvD;AAkCD,qBAAa,oBAAqB,SAAQ,eAAe;IAC/C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA8DrB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAS7B"}
@@ -30,6 +30,31 @@ export function suppressPiResumeHintOutput() {
30
30
  process.stdout.write = originalWrite;
31
31
  };
32
32
  }
33
+ /**
34
+ * The Bkper startup extension owns the header, so Pi's own header must never render: Pi builds only
35
+ * an empty placeholder, and the current header stays in place while a session switch resets the
36
+ * extension UI, until the new session's start replaces it. Otherwise Pi's header blinks first.
37
+ */
38
+ function installBkperStartupHeader(mode) {
39
+ const host = mode;
40
+ const piMode = InteractiveMode.prototype;
41
+ let resettingExtensionUI = false;
42
+ host.shouldShowStartupHeader = () => false;
43
+ host.setExtensionHeader = factory => {
44
+ if (factory || !resettingExtensionUI) {
45
+ piMode.setExtensionHeader.call(mode, factory);
46
+ }
47
+ };
48
+ host.resetExtensionUI = () => {
49
+ resettingExtensionUI = true;
50
+ try {
51
+ piMode.resetExtensionUI.call(mode);
52
+ }
53
+ finally {
54
+ resettingExtensionUI = false;
55
+ }
56
+ };
57
+ }
33
58
  export class BkperInteractiveMode extends InteractiveMode {
34
59
  init() {
35
60
  const _super = Object.create(null, {
@@ -39,6 +64,7 @@ export class BkperInteractiveMode extends InteractiveMode {
39
64
  var _a;
40
65
  const interactiveMode = this;
41
66
  interactiveMode.getChangelogForDisplay = () => undefined;
67
+ installBkperStartupHeader(this);
42
68
  if (interactiveMode.keybindings) {
43
69
  installBkperSessionKeybindings(interactiveMode.keybindings);
44
70
  }
@@ -1 +1 @@
1
- {"version":3,"file":"interactive-mode.js","sourceRoot":"","sources":["../../../src/agent/interactive/interactive-mode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interactive-mode.js","sourceRoot":"","sources":["../../../src/agent/interactive/interactive-mode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pi-package-env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi-package-env.d.ts","sourceRoot":"","sources":["../../src/agent/pi-package-env.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { applyPiPackageDir } from '../utils/package-dir.js';
2
+ // Pi reads PI_PACKAGE_DIR while its modules load, so agent-entry imports this module first.
3
+ applyPiPackageDir();
4
+ //# sourceMappingURL=pi-package-env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi-package-env.js","sourceRoot":"","sources":["../../src/agent/pi-package-env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAE1D,4FAA4F;AAC5F,iBAAiB,EAAE,CAAC"}
@@ -1,22 +1,11 @@
1
- import type * as PiTui from '@earendil-works/pi-tui';
2
1
  /**
3
2
  * Runtime access to the Pi packages that Pi itself uses.
4
3
  *
5
- * When pi-coding-agent publishes an npm-shrinkwrap.json (1.0.0 did), npm installs its own copies of pi-tui and
6
- * pi-ai nested under it instead of sharing ours. Importing those packages directly would load a second, separate instance:
7
- * `instanceof` checks against Pi's objects fail and module state such as the user's keybindings is not seen.
8
- * Bun ignores the shrinkwrap and installs a single copy, so the problem never shows up in local development.
9
- *
10
- * Every runtime value from pi-tui or pi-ai must come from here. Type-only imports are fine anywhere.
4
+ * The agent bundle inlines pi-tui and pi-ai once, and Pi's code and ours must share that single copy:
5
+ * a second instance breaks `instanceof` checks and hides module state such as the user's keybindings.
6
+ * Routing every runtime value from pi-tui or pi-ai through this file keeps it that way.
7
+ * Type-only imports are fine anywhere.
11
8
  */
12
- export interface PiSharedModulePaths {
13
- tui: string;
14
- aiTypesafeSystemOne: string;
15
- }
16
- /** The files pi-coding-agent, at `codingAgentEntry`, loads for the modules bkper shares with it. */
17
- export declare function resolvePiSharedModulePaths(codingAgentEntry: string): PiSharedModulePaths;
18
- export declare const backgroundAnsi: typeof PiTui.backgroundAnsi, Box: typeof PiTui.Box, colorToRgb: typeof PiTui.colorToRgb, CombinedAutocompleteProvider: typeof PiTui.CombinedAutocompleteProvider, Editor: typeof PiTui.Editor, foregroundAnsi: typeof PiTui.foregroundAnsi, getKeybindings: typeof PiTui.getKeybindings, indexedColor: typeof PiTui.indexedColor, matchesKey: typeof PiTui.matchesKey, rgbColor: typeof PiTui.rgbColor, truncateToWidth: typeof PiTui.truncateToWidth, TuiAltScreen: typeof PiTui.TuiAltScreen, visibleWidth: typeof PiTui.visibleWidth;
19
- export type Box = PiTui.Box;
20
- export type Editor = PiTui.Editor;
21
- export declare const typesafeSystemOneApi: () => import("@earendil-works/pi-ai").ProviderClassifier;
9
+ export { backgroundAnsi, Box, colorToRgb, CombinedAutocompleteProvider, Editor, foregroundAnsi, getKeybindings, indexedColor, matchesKey, rgbColor, truncateToWidth, TuiAltScreen, visibleWidth, } from '@earendil-works/pi-tui';
10
+ export { typesafeSystemOneApi } from '@earendil-works/pi-ai/api/typesafe-system-one.lazy';
22
11
  //# sourceMappingURL=pi-shared-modules.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pi-shared-modules.d.ts","sourceRoot":"","sources":["../../src/agent/pi-shared-modules.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,KAAK,MAAM,wBAAwB,CAAC;AAErD;;;;;;;;;GASG;AAEH,MAAM,WAAW,mBAAmB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,mBAAmB,EAAE,MAAM,CAAC;CAC/B;AAED,oGAAoG;AACpG,wBAAgB,0BAA0B,CAAC,gBAAgB,EAAE,MAAM,GAAG,mBAAmB,CAcxF;AAiBD,eAAO,MACH,cAAc,+BACd,GAAG,oBACH,UAAU,2BACV,4BAA4B,6CAC5B,MAAM,uBACN,cAAc,+BACd,cAAc,+BACd,YAAY,6BACZ,UAAU,2BACV,QAAQ,yBACR,eAAe,gCACf,YAAY,6BACZ,YAAY,2BACP,CAAC;AACV,MAAM,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;AAC5B,MAAM,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AAElC,eAAO,MAAO,oBAAoB,0DAAyB,CAAC"}
1
+ {"version":3,"file":"pi-shared-modules.d.ts","sourceRoot":"","sources":["../../src/agent/pi-shared-modules.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACH,cAAc,EACd,GAAG,EACH,UAAU,EACV,4BAA4B,EAC5B,MAAM,EACN,cAAc,EACd,cAAc,EACd,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,YAAY,GACf,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAC,oBAAoB,EAAC,MAAM,oDAAoD,CAAC"}
@@ -1,32 +1,11 @@
1
- import { existsSync } from 'node:fs';
2
- import { createRequire } from 'node:module';
3
- import path from 'node:path';
4
- /** The files pi-coding-agent, at `codingAgentEntry`, loads for the modules bkper shares with it. */
5
- export function resolvePiSharedModulePaths(codingAgentEntry) {
6
- const requireFromCodingAgent = createRequire(codingAgentEntry);
7
- return {
8
- tui: requireFromCodingAgent.resolve('@earendil-works/pi-tui'),
9
- // pi-ai exports its entry points for `import` only, which require() cannot resolve, so locate the package
10
- // and take the file behind its `./api/typesafe-system-one.lazy` export. Pi is pinned to an exact version
11
- // and a unit test loads this file, so a layout change surfaces on the next Pi update.
12
- aiTypesafeSystemOne: path.join(resolvePackageDir(requireFromCodingAgent, '@earendil-works/pi-ai'), 'dist', 'api', 'typesafe-system-one.lazy.js'),
13
- };
14
- }
15
- function resolvePackageDir(require, packageName) {
16
- var _a;
17
- for (const nodeModulesDir of (_a = require.resolve.paths(packageName)) !== null && _a !== void 0 ? _a : []) {
18
- const packageDir = path.join(nodeModulesDir, packageName);
19
- if (existsSync(path.join(packageDir, 'package.json')))
20
- return packageDir;
21
- }
22
- throw new Error(`Cannot find ${packageName} from @earendil-works/pi-coding-agent`);
23
- }
24
- const codingAgentEntry = import.meta.resolve('@earendil-works/pi-coding-agent');
25
- const paths = resolvePiSharedModulePaths(codingAgentEntry);
26
- // Node returns the same module instance for require() and import of an ES module file.
27
- const requireModule = createRequire(codingAgentEntry);
28
- const piTui = requireModule(paths.tui);
29
- const piAiTypesafeSystemOne = requireModule(paths.aiTypesafeSystemOne);
30
- export const { backgroundAnsi, Box, colorToRgb, CombinedAutocompleteProvider, Editor, foregroundAnsi, getKeybindings, indexedColor, matchesKey, rgbColor, truncateToWidth, TuiAltScreen, visibleWidth, } = piTui;
31
- export const { typesafeSystemOneApi } = piAiTypesafeSystemOne;
1
+ /**
2
+ * Runtime access to the Pi packages that Pi itself uses.
3
+ *
4
+ * The agent bundle inlines pi-tui and pi-ai once, and Pi's code and ours must share that single copy:
5
+ * a second instance breaks `instanceof` checks and hides module state such as the user's keybindings.
6
+ * Routing every runtime value from pi-tui or pi-ai through this file keeps it that way.
7
+ * Type-only imports are fine anywhere.
8
+ */
9
+ export { backgroundAnsi, Box, colorToRgb, CombinedAutocompleteProvider, Editor, foregroundAnsi, getKeybindings, indexedColor, matchesKey, rgbColor, truncateToWidth, TuiAltScreen, visibleWidth, } from '@earendil-works/pi-tui';
10
+ export { typesafeSystemOneApi } from '@earendil-works/pi-ai/api/typesafe-system-one.lazy';
32
11
  //# sourceMappingURL=pi-shared-modules.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pi-shared-modules.js","sourceRoot":"","sources":["../../src/agent/pi-shared-modules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AACnC,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAC1C,OAAO,IAAI,MAAM,WAAW,CAAC;AAoB7B,oGAAoG;AACpG,MAAM,UAAU,0BAA0B,CAAC,gBAAwB;IAC/D,MAAM,sBAAsB,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC/D,OAAO;QACH,GAAG,EAAE,sBAAsB,CAAC,OAAO,CAAC,wBAAwB,CAAC;QAC7D,0GAA0G;QAC1G,yGAAyG;QACzG,sFAAsF;QACtF,mBAAmB,EAAE,IAAI,CAAC,IAAI,CAC1B,iBAAiB,CAAC,sBAAsB,EAAE,uBAAuB,CAAC,EAClE,MAAM,EACN,KAAK,EACL,6BAA6B,CAChC;KACJ,CAAC;AACN,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAuB,EAAE,WAAmB;;IACnE,KAAK,MAAM,cAAc,IAAI,MAAA,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,mCAAI,EAAE,EAAE,CAAC;QACpE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAC1D,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YAAE,OAAO,UAAU,CAAC;IAC7E,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,eAAe,WAAW,uCAAuC,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;AAChF,MAAM,KAAK,GAAG,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;AAC3D,uFAAuF;AACvF,MAAM,aAAa,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;AACtD,MAAM,KAAK,GAAiB,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrD,MAAM,qBAAqB,GAAiC,aAAa,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAErG,MAAM,CAAC,MAAM,EACT,cAAc,EACd,GAAG,EACH,UAAU,EACV,4BAA4B,EAC5B,MAAM,EACN,cAAc,EACd,cAAc,EACd,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,YAAY,GACf,GAAG,KAAK,CAAC;AAIV,MAAM,CAAC,MAAM,EAAC,oBAAoB,EAAC,GAAG,qBAAqB,CAAC"}
1
+ {"version":3,"file":"pi-shared-modules.js","sourceRoot":"","sources":["../../src/agent/pi-shared-modules.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACH,cAAc,EACd,GAAG,EACH,UAAU,EACV,4BAA4B,EAC5B,MAAM,EACN,cAAc,EACd,cAAc,EACd,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,YAAY,GACf,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAC,oBAAoB,EAAC,MAAM,oDAAoD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/agent/system-prompt.ts"],"names":[],"mappings":"AAiKA,wBAAgB,yBAAyB,CACrC,aAAa,GAAE,MAAM,EAAsC,GAC5D,MAAM,CAsDR;AA2BD,eAAO,MAAM,yBAAyB,QAKpC,CAAC"}
1
+ {"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/agent/system-prompt.ts"],"names":[],"mappings":"AAwJA,wBAAgB,yBAAyB,CACrC,aAAa,GAAE,MAAM,EAAsC,GAC5D,MAAM,CAsDR;AA2BD,eAAO,MAAM,yBAAyB,QAKpC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { createBashToolDefinition, createCodemodeExtension, createEditToolDefinition, createPowerShellToolDefinition, createReadToolDefinition, createWriteToolDefinition, } from '@earendil-works/pi-coding-agent';
2
2
  import { existsSync } from 'node:fs';
3
3
  import path from 'node:path';
4
- import { fileURLToPath } from 'node:url';
4
+ import { BKPER_PACKAGE_DIR, getPiPackageDir } from '../utils/package-dir.js';
5
5
  function resolveFirstExistingPath(candidates) {
6
6
  for (const candidate of candidates) {
7
7
  if (existsSync(candidate)) {
@@ -10,23 +10,12 @@ function resolveFirstExistingPath(candidates) {
10
10
  }
11
11
  return candidates[0];
12
12
  }
13
+ const RUNNING_FROM_SOURCE = import.meta.url.endsWith('.ts');
14
+ /** Source runs read the canonical `skill/references`; builds read their copy in `lib/docs`. */
13
15
  function resolveDocsIndexPath(filename) {
14
- const thisDir = path.dirname(fileURLToPath(import.meta.url));
15
- return resolveFirstExistingPath([
16
- path.resolve(thisDir, '..', 'docs', filename),
17
- path.resolve(thisDir, '..', '..', 'skill', 'references', filename),
18
- ]);
19
- }
20
- function resolvePiPackageRoot() {
21
- const piIndexPath = fileURLToPath(import.meta.resolve('@earendil-works/pi-coding-agent'));
22
- let dir = path.dirname(piIndexPath);
23
- while (dir !== path.dirname(dir)) {
24
- if (existsSync(path.join(dir, 'package.json'))) {
25
- return dir;
26
- }
27
- dir = path.dirname(dir);
28
- }
29
- return path.dirname(piIndexPath);
16
+ const sourceDocsPath = path.join(BKPER_PACKAGE_DIR, 'skill', 'references', filename);
17
+ const builtDocsPath = path.join(BKPER_PACKAGE_DIR, 'lib', 'docs', filename);
18
+ return resolveFirstExistingPath(RUNNING_FROM_SOURCE ? [sourceDocsPath] : [builtDocsPath, sourceDocsPath]);
30
19
  }
31
20
  function normalizePromptSnippet(text) {
32
21
  if (!text) {
@@ -120,7 +109,7 @@ function buildToolPromptSection(selectedTools) {
120
109
  }
121
110
  if (codemode) {
122
111
  codemode.guidelines.forEach(addGuideline);
123
- getBkperCodemodeGuidelines(path.resolve(resolvePiPackageRoot(), 'docs', 'codemode.md')).forEach(addGuideline);
112
+ getBkperCodemodeGuidelines(path.resolve(getPiPackageDir(), 'docs', 'codemode.md')).forEach(addGuideline);
124
113
  }
125
114
  addGuideline('Do not claim builds, tests, or command results unless you actually ran them.');
126
115
  const toolsList = toolLines.length > 0 ? toolLines : '(none)';
@@ -130,7 +119,7 @@ export function getBkperAgentSystemPrompt(selectedTools = ['read', 'bash', 'edit
130
119
  const coreConceptsPath = resolveDocsIndexPath('core/core-concepts.md');
131
120
  const indexPath = resolveDocsIndexPath('index.md');
132
121
  const referenceDocsDir = path.dirname(indexPath);
133
- const piRoot = resolvePiPackageRoot();
122
+ const piRoot = getPiPackageDir();
134
123
  const piDocsPath = path.resolve(piRoot, 'docs');
135
124
  const piExamplesPath = path.resolve(piRoot, 'examples');
136
125
  return `${buildBkperOperatingContext(selectedTools)}
@@ -1 +1 @@
1
- {"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/agent/system-prompt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/agent/system-prompt.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
1
  import type { Command } from 'commander';
2
+ import { type MainOptions } from '@earendil-works/pi-coding-agent';
2
3
  import { type SessionOptions } from '../agent/interactive/run-agent-mode.js';
3
4
  export interface AgentCommandEnvironment {
4
5
  stdinIsTTY: boolean;
5
6
  stdoutIsTTY: boolean;
6
7
  }
7
8
  export interface AgentCommandDependencies {
8
- runPi: (args: string[]) => Promise<void>;
9
+ runPi: (args: string[], options?: MainOptions) => Promise<void>;
9
10
  runInteractiveMode: (options?: SessionOptions) => Promise<void>;
10
11
  environment?: AgentCommandEnvironment;
11
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agent-command.d.ts","sourceRoot":"","sources":["../../src/commands/agent-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAGH,KAAK,cAAc,EACtB,MAAM,wCAAwC,CAAC;AAGhD,MAAM,WAAW,uBAAuB;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACrC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,kBAAkB,EAAE,CAAC,OAAO,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,WAAW,CAAC,EAAE,uBAAuB,CAAC;CACzC;AAyGD,wBAAsB,eAAe,CACjC,MAAM,EAAE,MAAM,EAAE,EAChB,YAAY,GAAE,wBAAsD,GACrE,OAAO,CAAC,IAAI,CAAC,CAmCf;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAQ5D"}
1
+ {"version":3,"file":"agent-command.d.ts","sourceRoot":"","sources":["../../src/commands/agent-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAEtF,OAAO,EAGH,KAAK,cAAc,EACtB,MAAM,wCAAwC,CAAC;AAGhD,MAAM,WAAW,uBAAuB;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACrC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,kBAAkB,EAAE,CAAC,OAAO,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,WAAW,CAAC,EAAE,uBAAuB,CAAC;CACzC;AAiHD,wBAAsB,eAAe,CACjC,MAAM,EAAE,MAAM,EAAE,EAChB,YAAY,GAAE,wBAAsD,GACrE,OAAO,CAAC,IAAI,CAAC,CAmCf;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAQ5D"}
@@ -8,6 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { main as runPiMain } from '@earendil-works/pi-coding-agent';
11
+ import { registerBkperAiProvider } from '../agent/extensions/bkper-ai-provider.js';
11
12
  import { createAgentModeDependencies, runAgentMode, } from '../agent/interactive/run-agent-mode.js';
12
13
  import { getBkperAgentSystemPrompt } from '../agent/system-prompt.js';
13
14
  // Unit tests and custom dependency injection historically omitted terminal state.
@@ -18,7 +19,7 @@ const ASSUMED_INTERACTIVE_ENVIRONMENT = {
18
19
  };
19
20
  function createDefaultDependencies() {
20
21
  return {
21
- runPi: (args) => runPiMain(args),
22
+ runPi: (args, options) => runPiMain(args, options),
22
23
  runInteractiveMode: (options) => runAgentMode(createAgentModeDependencies(options)),
23
24
  environment: {
24
25
  stdinIsTTY: process.stdin.isTTY === true,
@@ -31,6 +32,13 @@ function canRunEmbeddedInteractiveMode(dependencies) {
31
32
  const environment = (_a = dependencies.environment) !== null && _a !== void 0 ? _a : ASSUMED_INTERACTIVE_ENVIRONMENT;
32
33
  return environment.stdinIsTTY && environment.stdoutIsTTY;
33
34
  }
35
+ /**
36
+ * Sessions forwarded to pi (`--list-models`, print, json, and rpc modes) offer Bkper AI models like
37
+ * the embedded interactive mode. Management commands such as `config` stay plain pi.
38
+ */
39
+ const PI_SESSION_OPTIONS = {
40
+ extensionFactories: [registerBkperAiProvider],
41
+ };
34
42
  function hasSystemPromptArg(args) {
35
43
  return args.some(arg => arg === '--system-prompt' || arg.startsWith('--system-prompt='));
36
44
  }
@@ -107,7 +115,7 @@ export function runAgentCommand(piArgs_1) {
107
115
  const canRunEmbeddedInteractive = canRunEmbeddedInteractiveMode(dependencies);
108
116
  if (piArgs.length === 0) {
109
117
  if (!canRunEmbeddedInteractive) {
110
- yield dependencies.runPi(buildPiArgs(piArgs));
118
+ yield dependencies.runPi(buildPiArgs(piArgs), PI_SESSION_OPTIONS);
111
119
  return;
112
120
  }
113
121
  yield dependencies.runInteractiveMode();
@@ -119,7 +127,7 @@ export function runAgentCommand(piArgs_1) {
119
127
  }
120
128
  if (!isInteractiveSessionArgs(piArgs)) {
121
129
  const args = buildPiArgs(piArgs);
122
- yield dependencies.runPi(args);
130
+ yield dependencies.runPi(args, PI_SESSION_OPTIONS);
123
131
  return;
124
132
  }
125
133
  const { options, remainingArgs } = parseSessionOptions(piArgs);
@@ -127,7 +135,7 @@ export function runAgentCommand(piArgs_1) {
127
135
  // Unsupported interactive args (e.g. --session, --fork) or non-interactive
128
136
  // terminals are forwarded to pi for normal passthrough behavior.
129
137
  const args = buildPiArgs(piArgs);
130
- yield dependencies.runPi(args);
138
+ yield dependencies.runPi(args, PI_SESSION_OPTIONS);
131
139
  return;
132
140
  }
133
141
  yield dependencies.runInteractiveMode(options);