@code-yeongyu/senpi 2026.9.28-6 → 2026.9.28-7

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 (101) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/bundle/chunks/{app-server-command-5WCSZ4A5.js → app-server-command-OUTRKHMK.js} +8 -8
  3. package/dist/bundle/chunks/{chunk-AWPLVQ4K.js → chunk-56COAYOU.js} +5 -5
  4. package/dist/bundle/chunks/{chunk-4BDFNRBE.js → chunk-B32PXL7U.js} +1 -1
  5. package/dist/bundle/chunks/chunk-CEMOA3TF.js +2 -0
  6. package/dist/bundle/chunks/{chunk-WXN35RD7.js → chunk-DB2X7SOZ.js} +2 -2
  7. package/dist/bundle/chunks/{chunk-DKP4BUY5.js → chunk-F2YU5BZG.js} +1 -1
  8. package/dist/bundle/chunks/{chunk-VGJESQOS.js → chunk-JASECXGC.js} +1 -1
  9. package/dist/bundle/chunks/{chunk-KDZAVHA7.js → chunk-L4OOEWAT.js} +2 -2
  10. package/dist/bundle/chunks/{chunk-DOEV7ITR.js → chunk-LM2UMEX6.js} +1 -1
  11. package/dist/bundle/chunks/{chunk-HS2LJYBI.js → chunk-Y4CH7LYI.js} +1 -1
  12. package/dist/bundle/chunks/chunk-YJUO37UX.js +2 -0
  13. package/dist/bundle/chunks/{cli-main-IBG7ONGV.js → cli-main-26P4V2BK.js} +1 -1
  14. package/dist/bundle/chunks/{help-fast-path-MWSJXPH6.js → help-fast-path-BOMUI7U3.js} +1 -1
  15. package/dist/bundle/chunks/{host-command-MTK5WOPH.js → host-command-ZVXNTXMN.js} +1 -1
  16. package/dist/bundle/chunks/{host-lifecycle-7IJCAHHL.js → host-lifecycle-MPLSJ5NB.js} +1 -1
  17. package/dist/bundle/chunks/host-lifecycle.js +1 -1
  18. package/dist/bundle/chunks/{interactive-host-runtime-FWMZWK6G.js → interactive-host-runtime-Q5EORM6B.js} +1 -1
  19. package/dist/bundle/chunks/{interactive-mode-XUJM4MCN.js → interactive-mode-OVSKUTVC.js} +1 -1
  20. package/dist/bundle/chunks/{list-tips-S4U7TKER.js → list-tips-ARO4HRVK.js} +1 -1
  21. package/dist/bundle/chunks/{multi-session-host-7KCH3HUA.js → multi-session-host-LJNXZRFA.js} +7 -7
  22. package/dist/bundle/chunks/{package-manager-cli-SNVT3VKW.js → package-manager-cli-MJCRY2JU.js} +1 -1
  23. package/dist/bundle/chunks/{rpc-mode-VYB2Q43O.js → rpc-mode-LY4HAZ5G.js} +1 -1
  24. package/dist/bundle/chunks/{schedule-command-JQ65HF2K.js → schedule-command-3ANAEUY6.js} +1 -1
  25. package/dist/bundle/chunks/session-worker.js +30 -30
  26. package/dist/bundle/cli.js +1 -1
  27. package/dist/bundle/index.js +1 -1
  28. package/dist/bundle/rpc-entry.js +1 -1
  29. package/dist/cli/args.js +2 -2
  30. package/dist/cli/args.js.map +1 -1
  31. package/dist/main.d.ts +2 -2
  32. package/dist/main.d.ts.map +1 -1
  33. package/dist/main.js +25 -6
  34. package/dist/main.js.map +1 -1
  35. package/dist/modes/app-server/cli-args.d.ts +3 -0
  36. package/dist/modes/app-server/cli-args.d.ts.map +1 -1
  37. package/dist/modes/app-server/cli-args.js +25 -4
  38. package/dist/modes/app-server/cli-args.js.map +1 -1
  39. package/dist/modes/app-server/daemon/probe.d.ts +1 -0
  40. package/dist/modes/app-server/daemon/probe.d.ts.map +1 -1
  41. package/dist/modes/app-server/daemon/probe.js +4 -1
  42. package/dist/modes/app-server/daemon/probe.js.map +1 -1
  43. package/dist/modes/app-server/daemon/spawn.d.ts +26 -0
  44. package/dist/modes/app-server/daemon/spawn.d.ts.map +1 -0
  45. package/dist/modes/app-server/daemon/spawn.js +112 -0
  46. package/dist/modes/app-server/daemon/spawn.js.map +1 -0
  47. package/dist/modes/app-server/daemon.d.ts.map +1 -1
  48. package/dist/modes/app-server/daemon.js +14 -112
  49. package/dist/modes/app-server/daemon.js.map +1 -1
  50. package/dist/modes/app-server/extension-paths.d.ts +7 -0
  51. package/dist/modes/app-server/extension-paths.d.ts.map +1 -0
  52. package/dist/modes/app-server/extension-paths.js +10 -0
  53. package/dist/modes/app-server/extension-paths.js.map +1 -0
  54. package/dist/modes/app-server/index.d.ts.map +1 -1
  55. package/dist/modes/app-server/index.js +4 -1
  56. package/dist/modes/app-server/index.js.map +1 -1
  57. package/dist/modes/app-server/runtime.d.ts +5 -1
  58. package/dist/modes/app-server/runtime.d.ts.map +1 -1
  59. package/dist/modes/app-server/runtime.js +19 -3
  60. package/dist/modes/app-server/runtime.js.map +1 -1
  61. package/dist/modes/interactive/tips/catalog/computer-tips.js +1 -1
  62. package/dist/modes/interactive/tips/catalog/computer-tips.js.map +1 -1
  63. package/dist/modes/rpc/custom-capability.d.ts +5 -0
  64. package/dist/modes/rpc/custom-capability.d.ts.map +1 -1
  65. package/dist/modes/rpc/custom-capability.js +5 -0
  66. package/dist/modes/rpc/custom-capability.js.map +1 -1
  67. package/dist/modes/rpc/host-observe-request.d.ts +2 -0
  68. package/dist/modes/rpc/host-observe-request.d.ts.map +1 -1
  69. package/dist/modes/rpc/host-observe-request.js +4 -0
  70. package/dist/modes/rpc/host-observe-request.js.map +1 -1
  71. package/dist/modes/rpc/host-warm.d.ts +57 -0
  72. package/dist/modes/rpc/host-warm.d.ts.map +1 -0
  73. package/dist/modes/rpc/host-warm.js +125 -0
  74. package/dist/modes/rpc/host-warm.js.map +1 -0
  75. package/dist/modes/rpc/rpc-types.d.ts +24 -1
  76. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  77. package/dist/modes/rpc/rpc-types.js +2 -0
  78. package/dist/modes/rpc/rpc-types.js.map +1 -1
  79. package/dist/modes/rpc/session-command-router.d.ts +1 -1
  80. package/dist/modes/rpc/session-command-router.d.ts.map +1 -1
  81. package/dist/modes/rpc/session-command-router.js +12 -1
  82. package/dist/modes/rpc/session-command-router.js.map +1 -1
  83. package/dist/modes/rpc/session-registry.d.ts +6 -2
  84. package/dist/modes/rpc/session-registry.d.ts.map +1 -1
  85. package/dist/modes/rpc/session-registry.js +6 -0
  86. package/dist/modes/rpc/session-registry.js.map +1 -1
  87. package/docs/app-server-daemon.md +1 -1
  88. package/docs/app-server.md +3 -0
  89. package/docs/rpc.md +48 -2
  90. package/node_modules/@code-yeongyu/senpi-codemode/CHANGELOG.md +12 -0
  91. package/node_modules/@code-yeongyu/senpi-codemode/package.json +4 -4
  92. package/node_modules/@earendil-works/pi-agent-core/package.json +3 -3
  93. package/node_modules/@earendil-works/pi-ai/dist/providers/data/.manifest.json +1 -1
  94. package/node_modules/@earendil-works/pi-ai/dist/providers/data/openrouter.json +1 -1
  95. package/node_modules/@earendil-works/pi-ai/package.json +2 -2
  96. package/node_modules/@earendil-works/pi-pty/package.json +1 -1
  97. package/node_modules/@earendil-works/pi-telemetry/package.json +1 -1
  98. package/node_modules/@earendil-works/pi-tui/package.json +1 -1
  99. package/package.json +7 -7
  100. package/dist/bundle/chunks/chunk-A4UMPXQF.js +0 -2
  101. package/dist/bundle/chunks/chunk-BTMM2C5X.js +0 -2
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url); { const __piWorkerThreads = require("node:worker_threads"); if (typeof __piWorkerThreads.markAsUncloneable !== "function") { __piWorkerThreads.markAsUncloneable = () => {}; } }
2
- import{ProjectTrustStore,hasTrustRequiringProjectResources}from"./chunk-Y5A6TKBN.js";import{parseArgs,printHelp}from"./chunk-KDZAVHA7.js";import{CONFIG_DIR_NAME,DISPLAY_VERSION,getAgentDir}from"./chunk-PBWQK23Z.js";import{createHash}from"node:crypto";import{existsSync,mkdirSync,readFileSync,renameSync,rmSync,statSync,writeFileSync}from"node:fs";import{dirname,isAbsolute,join}from"node:path";var CACHE_FILE_VERSION=1,MAX_CACHED_SCOPES=8;function cachePath(agentDir){return join(agentDir,"cache","help-flags.json")}function scopeKey(scope){let material=[scope.cwd,scope.noExtensions?"no-extensions":"extensions",scope.projectTrusted?"trusted":"untrusted",...scope.cliExtensionPaths].join("\0");return createHash("sha256").update(material).digest("hex").slice(0,32)}function stamp(path){try{let stats=statSync(path);return stats.isDirectory()?`d:${stats.mtimeMs}`:`f:${stats.mtimeMs}:${stats.size}`}catch{return"absent"}}function discoveryInputs(scope,extensionPaths){let paths=new Set([join(scope.agentDir,"settings.json"),join(scope.agentDir,"extensions"),join(scope.agentDir,"trust.json"),join(scope.cwd,CONFIG_DIR_NAME,"settings.json"),join(scope.cwd,CONFIG_DIR_NAME,"extensions")]);for(let path of extensionPaths)isAbsolute(path)&&(paths.add(path),paths.add(dirname(path)));for(let path of scope.cliExtensionPaths)isAbsolute(path)&&paths.add(path);return[...paths].sort()}function readCacheFile(agentDir){try{let parsed=JSON.parse(readFileSync(cachePath(agentDir),"utf8"));return parsed.version!==CACHE_FILE_VERSION||typeof parsed.scopes!="object"||parsed.scopes===null?void 0:parsed}catch{return}}function readHelpFlagsCache(scope){let cached=readCacheFile(scope.agentDir)?.scopes[scopeKey(scope)];if(!(!cached||cached.appVersion!==DISPLAY_VERSION||!Array.isArray(cached.inputs))){for(let input of cached.inputs)if(stamp(input.path)!==input.state)return;return[...cached.flags]}}function writeHelpFlagsCache(options){let{scope,flags,extensionPaths}=options;try{let scopes={...readCacheFile(scope.agentDir)?.scopes??{}};scopes[scopeKey(scope)]={writtenAt:Date.now(),appVersion:DISPLAY_VERSION,inputs:discoveryInputs(scope,extensionPaths).map(path=>({path,state:stamp(path)})),flags:[...flags]};let keptEntries=Object.entries(scopes).sort(([,left],[,right])=>right.writtenAt-left.writtenAt).slice(0,MAX_CACHED_SCOPES),file={version:CACHE_FILE_VERSION,scopes:Object.fromEntries(keptEntries)},target=cachePath(scope.agentDir);mkdirSync(dirname(target),{recursive:!0});let temporary=`${target}.${process.pid}.tmp`;writeFileSync(temporary,JSON.stringify(file),{mode:384});try{renameSync(temporary,target)}catch(error){throw existsSync(temporary)&&rmSync(temporary,{force:!0}),error}}catch{return}}function isPlainHelpRequest(parsed){return parsed.help===!0&&parsed.print!==!0&&parsed.mode===void 0}function resolveHelpProjectTrust(parsed,cwd,agentDir){return parsed.projectTrustOverride!==void 0?parsed.projectTrustOverride:hasTrustRequiringProjectResources(cwd)?new ProjectTrustStore(agentDir).get(cwd)===!0:!0}function helpFlagsScope(parsed,cwd,agentDir,projectTrusted){return{cwd,agentDir,cliExtensionPaths:[...parsed.extensions??[]],noExtensions:parsed.noExtensions===!0,projectTrusted}}function tryPrintHelpWithoutEngine(argv){let parsed;try{parsed=parseArgs([...argv])}catch{return!1}if(!isPlainHelpRequest(parsed)||parsed.diagnostics.length>0)return!1;if(parsed.noExtensions===!0)return printHelp([]),!0;let flags;try{let cwd=process.cwd(),agentDir=getAgentDir();flags=readHelpFlagsCache(helpFlagsScope(parsed,cwd,agentDir,resolveHelpProjectTrust(parsed,cwd,agentDir)))}catch{return!1}return flags?(printHelp(flags),!0):!1}export{writeHelpFlagsCache,isPlainHelpRequest,resolveHelpProjectTrust,helpFlagsScope,tryPrintHelpWithoutEngine};
2
+ import{ProjectTrustStore,hasTrustRequiringProjectResources}from"./chunk-Y5A6TKBN.js";import{parseArgs,printHelp}from"./chunk-L4OOEWAT.js";import{CONFIG_DIR_NAME,DISPLAY_VERSION,getAgentDir}from"./chunk-PBWQK23Z.js";import{createHash}from"node:crypto";import{existsSync,mkdirSync,readFileSync,renameSync,rmSync,statSync,writeFileSync}from"node:fs";import{dirname,isAbsolute,join}from"node:path";var CACHE_FILE_VERSION=1,MAX_CACHED_SCOPES=8;function cachePath(agentDir){return join(agentDir,"cache","help-flags.json")}function scopeKey(scope){let material=[scope.cwd,scope.noExtensions?"no-extensions":"extensions",scope.projectTrusted?"trusted":"untrusted",...scope.cliExtensionPaths].join("\0");return createHash("sha256").update(material).digest("hex").slice(0,32)}function stamp(path){try{let stats=statSync(path);return stats.isDirectory()?`d:${stats.mtimeMs}`:`f:${stats.mtimeMs}:${stats.size}`}catch{return"absent"}}function discoveryInputs(scope,extensionPaths){let paths=new Set([join(scope.agentDir,"settings.json"),join(scope.agentDir,"extensions"),join(scope.agentDir,"trust.json"),join(scope.cwd,CONFIG_DIR_NAME,"settings.json"),join(scope.cwd,CONFIG_DIR_NAME,"extensions")]);for(let path of extensionPaths)isAbsolute(path)&&(paths.add(path),paths.add(dirname(path)));for(let path of scope.cliExtensionPaths)isAbsolute(path)&&paths.add(path);return[...paths].sort()}function readCacheFile(agentDir){try{let parsed=JSON.parse(readFileSync(cachePath(agentDir),"utf8"));return parsed.version!==CACHE_FILE_VERSION||typeof parsed.scopes!="object"||parsed.scopes===null?void 0:parsed}catch{return}}function readHelpFlagsCache(scope){let cached=readCacheFile(scope.agentDir)?.scopes[scopeKey(scope)];if(!(!cached||cached.appVersion!==DISPLAY_VERSION||!Array.isArray(cached.inputs))){for(let input of cached.inputs)if(stamp(input.path)!==input.state)return;return[...cached.flags]}}function writeHelpFlagsCache(options){let{scope,flags,extensionPaths}=options;try{let scopes={...readCacheFile(scope.agentDir)?.scopes??{}};scopes[scopeKey(scope)]={writtenAt:Date.now(),appVersion:DISPLAY_VERSION,inputs:discoveryInputs(scope,extensionPaths).map(path=>({path,state:stamp(path)})),flags:[...flags]};let keptEntries=Object.entries(scopes).sort(([,left],[,right])=>right.writtenAt-left.writtenAt).slice(0,MAX_CACHED_SCOPES),file={version:CACHE_FILE_VERSION,scopes:Object.fromEntries(keptEntries)},target=cachePath(scope.agentDir);mkdirSync(dirname(target),{recursive:!0});let temporary=`${target}.${process.pid}.tmp`;writeFileSync(temporary,JSON.stringify(file),{mode:384});try{renameSync(temporary,target)}catch(error){throw existsSync(temporary)&&rmSync(temporary,{force:!0}),error}}catch{return}}function isPlainHelpRequest(parsed){return parsed.help===!0&&parsed.print!==!0&&parsed.mode===void 0}function resolveHelpProjectTrust(parsed,cwd,agentDir){return parsed.projectTrustOverride!==void 0?parsed.projectTrustOverride:hasTrustRequiringProjectResources(cwd)?new ProjectTrustStore(agentDir).get(cwd)===!0:!0}function helpFlagsScope(parsed,cwd,agentDir,projectTrusted){return{cwd,agentDir,cliExtensionPaths:[...parsed.extensions??[]],noExtensions:parsed.noExtensions===!0,projectTrusted}}function tryPrintHelpWithoutEngine(argv){let parsed;try{parsed=parseArgs([...argv])}catch{return!1}if(!isPlainHelpRequest(parsed)||parsed.diagnostics.length>0)return!1;if(parsed.noExtensions===!0)return printHelp([]),!0;let flags;try{let cwd=process.cwd(),agentDir=getAgentDir();flags=readHelpFlagsCache(helpFlagsScope(parsed,cwd,agentDir,resolveHelpProjectTrust(parsed,cwd,agentDir)))}catch{return!1}return flags?(printHelp(flags),!0):!1}export{writeHelpFlagsCache,isPlainHelpRequest,resolveHelpProjectTrust,helpFlagsScope,tryPrintHelpWithoutEngine};
@@ -0,0 +1,2 @@
1
+ import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url); { const __piWorkerThreads = require("node:worker_threads"); if (typeof __piWorkerThreads.markAsUncloneable !== "function") { __piWorkerThreads.markAsUncloneable = () => {}; } }
2
+ import{HOST_GENERATION_ENV,HOST_INSTANCE_ID_ENV,engineBuildIdentity}from"./chunk-E5F5SVZF.js";import{parseArgs,resolveSessionRuntime}from"./chunk-L4OOEWAT.js";import*as crypto from"node:crypto";var CUSTOM_UNSUPPORTED_CAPABILITY="custom_unsupported",EXTENSION_EVENTS_CAPABILITY="extension_events",RENDERED_COMPONENTS_CAPABILITY="rendered_components",AUTO_TITLE_SESSIONS_CAPABILITY="auto_title_sessions",MEDIA_PLACEHOLDERS_CAPABILITY="media_placeholders",QUESTION_CAPABILITY="question",RETAIN_ON_DISCONNECT_CAPABILITY="retain_on_disconnect",SESSION_CONTEXT_CAPABILITY="session_context",SESSION_KIND_CAPABILITY="session_kind",AUTO_TITLE_PER_SESSION_CAPABILITY="auto_title_per_session",WARM_CAPABILITY="warm",DURABLE_SESSION_ID_CAPABILITY="durable_session_id",RPC_CLIENT_CAPABILITIES_ENV="SENPI_RPC_CLIENT_CAPABILITIES";function parseClientCapabilities(value){return value?value.split(",").map(part=>part.trim()).filter(part=>part.length>0):[]}var DEFAULT_CUSTOM_EXTENSION_LABEL="custom UI component";function buildCustomUnsupportedRequest(capabilities,extensionName){if(!capabilities?.includes(CUSTOM_UNSUPPORTED_CAPABILITY))return;let name=extensionName.trim()||DEFAULT_CUSTOM_EXTENSION_LABEL;return{type:"extension_ui_request",id:crypto.randomUUID(),method:"custom_unsupported",extensionName:name}}import{createHash,randomUUID as randomUUID2}from"node:crypto";import{resolve}from"node:path";var INSTANCE_ID=resolveInstanceId(process.env[HOST_INSTANCE_ID_ENV]);function resolveInstanceId(value){return value!==void 0&&value.trim()!==""?value:randomUUID2()}function hostInstanceId(){return INSTANCE_ID}var cachedProfile;function hostGeneration(env){let value=env[HOST_GENERATION_ENV];return value!==void 0&&/^\d+$/.test(value)?Number(value):0}function hostLaunchProfile(argv,cwd){let parsed=parseArgs([...argv],{grokNeoEnabled:!1}),core={extensions:[...new Set((parsed.extensions??[]).map(path=>resolve(cwd,path)))].sort(),multi_session:parsed.multiSession===!0,session_runtime:resolveSessionRuntime(parsed)},canonical=JSON.stringify({extensions:core.extensions,multi_session:core.multi_session,session_runtime:core.session_runtime});return{profile_id:createHash("sha256").update(canonical).digest("hex"),core}}function protocolIdentity(){cachedProfile??=hostLaunchProfile(process.argv.slice(2),process.cwd());let build=engineBuildIdentity();return{instanceId:INSTANCE_ID,generation:hostGeneration(process.env),engineVersion:build.text,engineOrdinal:build.ordinal,launch_profile:cachedProfile}}export{CUSTOM_UNSUPPORTED_CAPABILITY,EXTENSION_EVENTS_CAPABILITY,RENDERED_COMPONENTS_CAPABILITY,AUTO_TITLE_SESSIONS_CAPABILITY,MEDIA_PLACEHOLDERS_CAPABILITY,QUESTION_CAPABILITY,RETAIN_ON_DISCONNECT_CAPABILITY,SESSION_CONTEXT_CAPABILITY,SESSION_KIND_CAPABILITY,AUTO_TITLE_PER_SESSION_CAPABILITY,WARM_CAPABILITY,DURABLE_SESSION_ID_CAPABILITY,RPC_CLIENT_CAPABILITIES_ENV,parseClientCapabilities,DEFAULT_CUSTOM_EXTENSION_LABEL,buildCustomUnsupportedRequest,hostInstanceId,hostGeneration,hostLaunchProfile,protocolIdentity};