@humain/terminal 0.1.0 → 0.2.1

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 (220) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/dist/bundle/chunks/{anthropic-messages-XULXUBIG.js → anthropic-messages-QFCEKGI3.js} +1 -1
  3. package/dist/bundle/chunks/{azure-openai-responses-JEG2XOYC.js → azure-openai-responses-G4ZMHV37.js} +1 -1
  4. package/dist/bundle/chunks/chunk-7T6XCLJF.js +22 -0
  5. package/dist/bundle/chunks/chunk-D6HHRSB5.js +103 -0
  6. package/dist/bundle/chunks/chunk-EY4DWHQU.js +2 -0
  7. package/dist/bundle/chunks/{chunk-RM336IEI.js → chunk-I47ZWR55.js} +486 -509
  8. package/dist/bundle/chunks/{chunk-JUPSJTFQ.js → chunk-K4JAZYQH.js} +1 -1
  9. package/dist/bundle/chunks/{chunk-HPPQHK3J.js → chunk-KKIB2TVR.js} +1 -1
  10. package/dist/bundle/chunks/chunk-LI2YVPWP.js +2 -0
  11. package/dist/bundle/chunks/{chunk-BZQ53VGE.js → chunk-XSR434CO.js} +1 -1
  12. package/dist/bundle/chunks/compat-QCV26HNS.js +2 -0
  13. package/dist/bundle/chunks/dist-PRPIUY3U.js +2 -0
  14. package/dist/bundle/chunks/esm-E7UVEYTO.js +4 -0
  15. package/dist/bundle/chunks/{extract-TRW5FBY6.js → extract-CTIFQZDJ.js} +15 -14
  16. package/dist/bundle/chunks/{google-generative-ai-OX6VSCA6.js → google-generative-ai-RSUU4MWO.js} +1 -1
  17. package/dist/bundle/chunks/{google-vertex-GW76GSS2.js → google-vertex-CKQPOITO.js} +1 -1
  18. package/dist/bundle/chunks/host-WP3MVKS2.js +2 -0
  19. package/dist/bundle/chunks/{node-KOIP55YZ.js → node-NF43OPII.js} +1 -1
  20. package/dist/bundle/chunks/{node-XY3CBY3C.js → node-UMFM7CDZ.js} +1 -1
  21. package/dist/bundle/chunks/{openai-codex-responses-NPLWP6ZC.js → openai-codex-responses-S34V5ZSD.js} +1 -1
  22. package/dist/bundle/chunks/{openai-completions-OT2GTJKC.js → openai-completions-T2IGVUEI.js} +1 -1
  23. package/dist/bundle/chunks/{openai-responses-5A6CR7GI.js → openai-responses-GYZODCT3.js} +1 -1
  24. package/dist/bundle/chunks/readability-LAGF34IB.js +3 -0
  25. package/dist/bundle/chunks/turndown.cjs-HRMZVRUL.js +2 -0
  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.js +1 -5
  30. package/dist/core/agent-session.js +2 -2
  31. package/dist/core/agent-session.js.map +1 -1
  32. package/dist/core/tools/file-mutation-queue.d.ts.map +1 -1
  33. package/dist/core/tools/file-mutation-queue.js +21 -8
  34. package/dist/core/tools/file-mutation-queue.js.map +1 -1
  35. package/dist/core/tools/subagent-env.d.ts +18 -0
  36. package/dist/core/tools/subagent-env.d.ts.map +1 -0
  37. package/dist/core/tools/subagent-env.js +43 -0
  38. package/dist/core/tools/subagent-env.js.map +1 -0
  39. package/dist/core/tools/subagent-scheduler.d.ts +31 -0
  40. package/dist/core/tools/subagent-scheduler.d.ts.map +1 -0
  41. package/dist/core/tools/subagent-scheduler.js +203 -0
  42. package/dist/core/tools/subagent-scheduler.js.map +1 -0
  43. package/dist/core/tools/subagent.d.ts +83 -3
  44. package/dist/core/tools/subagent.d.ts.map +1 -1
  45. package/dist/core/tools/subagent.js +214 -76
  46. package/dist/core/tools/subagent.js.map +1 -1
  47. package/dist/humain/index.d.ts.map +1 -1
  48. package/dist/humain/index.js +2 -0
  49. package/dist/humain/index.js.map +1 -1
  50. package/dist/humain/mcp-adapter/vendor/CHANGELOG.md +78 -0
  51. package/dist/humain/mcp-adapter/vendor/README.md +125 -19
  52. package/dist/humain/mcp-adapter/vendor/agent-plugin-loader.ts +69 -30
  53. package/dist/humain/mcp-adapter/vendor/agent-plugin-provenance.ts +36 -0
  54. package/dist/humain/mcp-adapter/vendor/claude-plugin-loader.ts +365 -0
  55. package/dist/humain/mcp-adapter/vendor/commands.ts +13 -15
  56. package/dist/humain/mcp-adapter/vendor/config.ts +198 -30
  57. package/dist/humain/mcp-adapter/vendor/consent-manager.ts +40 -9
  58. package/dist/humain/mcp-adapter/vendor/direct-tool-surface.ts +250 -0
  59. package/dist/humain/mcp-adapter/vendor/direct-tools.ts +9 -228
  60. package/dist/humain/mcp-adapter/vendor/dist/agent-plugin-loader.js +74 -32
  61. package/dist/humain/mcp-adapter/vendor/dist/agent-plugin-loader.js.map +1 -1
  62. package/dist/humain/mcp-adapter/vendor/dist/agent-plugin-provenance.d.ts +1 -0
  63. package/dist/humain/mcp-adapter/vendor/dist/agent-plugin-provenance.js +31 -0
  64. package/dist/humain/mcp-adapter/vendor/dist/agent-plugin-provenance.js.map +1 -0
  65. package/dist/humain/mcp-adapter/vendor/dist/claude-plugin-loader.d.ts +9 -0
  66. package/dist/humain/mcp-adapter/vendor/dist/claude-plugin-loader.js +362 -0
  67. package/dist/humain/mcp-adapter/vendor/dist/claude-plugin-loader.js.map +1 -0
  68. package/dist/humain/mcp-adapter/vendor/dist/config.d.ts +3 -1
  69. package/dist/humain/mcp-adapter/vendor/dist/config.js +189 -27
  70. package/dist/humain/mcp-adapter/vendor/dist/config.js.map +1 -1
  71. package/dist/humain/mcp-adapter/vendor/dist/metadata-cache.js +7 -16
  72. package/dist/humain/mcp-adapter/vendor/dist/metadata-cache.js.map +1 -1
  73. package/dist/humain/mcp-adapter/vendor/dist/package-mcp-loader.js +5 -17
  74. package/dist/humain/mcp-adapter/vendor/dist/package-mcp-loader.js.map +1 -1
  75. package/dist/humain/mcp-adapter/vendor/dist/types.d.ts +30 -4
  76. package/dist/humain/mcp-adapter/vendor/dist/types.js +26 -0
  77. package/dist/humain/mcp-adapter/vendor/dist/types.js.map +1 -1
  78. package/dist/humain/mcp-adapter/vendor/dist/utils.d.ts +6 -0
  79. package/dist/humain/mcp-adapter/vendor/dist/utils.js +65 -6
  80. package/dist/humain/mcp-adapter/vendor/dist/utils.js.map +1 -1
  81. package/dist/humain/mcp-adapter/vendor/host-html-template.ts +20 -19
  82. package/dist/humain/mcp-adapter/vendor/http-ca.ts +84 -0
  83. package/dist/humain/mcp-adapter/vendor/index.bundle.mjs +37102 -15103
  84. package/dist/humain/mcp-adapter/vendor/index.ts +828 -164
  85. package/dist/humain/mcp-adapter/vendor/init.ts +48 -10
  86. package/dist/humain/mcp-adapter/vendor/lazy-loader.ts +7 -0
  87. package/dist/humain/mcp-adapter/vendor/mcp-auth-fetch.ts +113 -0
  88. package/dist/humain/mcp-adapter/vendor/mcp-auth-flow.ts +256 -77
  89. package/dist/humain/mcp-adapter/vendor/mcp-auth.ts +316 -54
  90. package/dist/humain/mcp-adapter/vendor/mcp-code.ts +45 -18
  91. package/dist/humain/mcp-adapter/vendor/mcp-install.ts +60 -0
  92. package/dist/humain/mcp-adapter/vendor/mcp-oauth-provider.ts +70 -6
  93. package/dist/humain/mcp-adapter/vendor/mcp-output-guard.ts +53 -42
  94. package/dist/humain/mcp-adapter/vendor/mcp-panel-theme.ts +105 -0
  95. package/dist/humain/mcp-adapter/vendor/mcp-panel.ts +366 -331
  96. package/dist/humain/mcp-adapter/vendor/mcp-references.ts +9 -14
  97. package/dist/humain/mcp-adapter/vendor/mcp-script-worker.mjs +3 -1
  98. package/dist/humain/mcp-adapter/vendor/mcp-setup-panel.ts +383 -341
  99. package/dist/humain/mcp-adapter/vendor/mcp-status.ts +5 -0
  100. package/dist/humain/mcp-adapter/vendor/metadata-cache.ts +7 -16
  101. package/dist/humain/mcp-adapter/vendor/namespace-tools.ts +61 -3
  102. package/dist/humain/mcp-adapter/vendor/oauth.ts +6 -2
  103. package/dist/humain/mcp-adapter/vendor/package-mcp-loader.ts +5 -17
  104. package/dist/humain/mcp-adapter/vendor/package.json +13 -3
  105. package/dist/humain/mcp-adapter/vendor/prompts.ts +35 -3
  106. package/dist/humain/mcp-adapter/vendor/proxy-modes.ts +108 -7
  107. package/dist/humain/mcp-adapter/vendor/runtime-owner.ts +16 -1
  108. package/dist/humain/mcp-adapter/vendor/sampling-handler.ts +9 -32
  109. package/dist/humain/mcp-adapter/vendor/sandbox-proxy-template.ts +20 -93
  110. package/dist/humain/mcp-adapter/vendor/server-manager.ts +227 -40
  111. package/dist/humain/mcp-adapter/vendor/session-approvals.ts +187 -0
  112. package/dist/humain/mcp-adapter/vendor/skills/mcp-scripting/SKILL.md +9 -1
  113. package/dist/humain/mcp-adapter/vendor/state.ts +10 -1
  114. package/dist/humain/mcp-adapter/vendor/tool-approval.ts +10 -22
  115. package/dist/humain/mcp-adapter/vendor/tool-metadata.ts +14 -0
  116. package/dist/humain/mcp-adapter/vendor/types.ts +57 -4
  117. package/dist/humain/mcp-adapter/vendor/ui-server.ts +36 -28
  118. package/dist/humain/mcp-adapter/vendor/utils.ts +64 -6
  119. package/dist/humain/node-http.d.ts +3 -0
  120. package/dist/humain/node-http.d.ts.map +1 -0
  121. package/dist/humain/node-http.js +119 -0
  122. package/dist/humain/node-http.js.map +1 -0
  123. package/dist/humain/node-provider.d.ts +4 -0
  124. package/dist/humain/node-provider.d.ts.map +1 -0
  125. package/dist/humain/node-provider.js +359 -0
  126. package/dist/humain/node-provider.js.map +1 -0
  127. package/dist/humain/web-access/vendor/abortable.d.ts +3 -0
  128. package/dist/humain/web-access/vendor/abortable.d.ts.map +1 -0
  129. package/dist/humain/web-access/vendor/abortable.js +22 -0
  130. package/dist/humain/web-access/vendor/abortable.js.map +1 -0
  131. package/dist/humain/web-access/vendor/crawl4ai.d.ts +9 -0
  132. package/dist/humain/web-access/vendor/crawl4ai.d.ts.map +1 -0
  133. package/dist/humain/web-access/vendor/crawl4ai.js +187 -0
  134. package/dist/humain/web-access/vendor/crawl4ai.js.map +1 -0
  135. package/dist/humain/web-access/vendor/credential-source.d.ts.map +1 -1
  136. package/dist/humain/web-access/vendor/credential-source.js +1 -0
  137. package/dist/humain/web-access/vendor/credential-source.js.map +1 -1
  138. package/dist/humain/web-access/vendor/curator-page.d.ts.map +1 -1
  139. package/dist/humain/web-access/vendor/curator-page.js +20 -2
  140. package/dist/humain/web-access/vendor/curator-page.js.map +1 -1
  141. package/dist/humain/web-access/vendor/curator-run.d.ts +11 -0
  142. package/dist/humain/web-access/vendor/curator-run.d.ts.map +1 -0
  143. package/dist/humain/web-access/vendor/curator-run.js +38 -0
  144. package/dist/humain/web-access/vendor/curator-run.js.map +1 -0
  145. package/dist/humain/web-access/vendor/curator-server.d.ts +1 -0
  146. package/dist/humain/web-access/vendor/curator-server.d.ts.map +1 -1
  147. package/dist/humain/web-access/vendor/curator-server.js +2 -0
  148. package/dist/humain/web-access/vendor/curator-server.js.map +1 -1
  149. package/dist/humain/web-access/vendor/duckduckgo.d.ts.map +1 -1
  150. package/dist/humain/web-access/vendor/duckduckgo.js +1 -1
  151. package/dist/humain/web-access/vendor/duckduckgo.js.map +1 -1
  152. package/dist/humain/web-access/vendor/extract.d.ts +1 -1
  153. package/dist/humain/web-access/vendor/extract.d.ts.map +1 -1
  154. package/dist/humain/web-access/vendor/extract.js +58 -11
  155. package/dist/humain/web-access/vendor/extract.js.map +1 -1
  156. package/dist/humain/web-access/vendor/fetch-params.js +1 -1
  157. package/dist/humain/web-access/vendor/fetch-params.js.map +1 -1
  158. package/dist/humain/web-access/vendor/gemini-search.d.ts +2 -2
  159. package/dist/humain/web-access/vendor/gemini-search.d.ts.map +1 -1
  160. package/dist/humain/web-access/vendor/gemini-search.js +12 -5
  161. package/dist/humain/web-access/vendor/gemini-search.js.map +1 -1
  162. package/dist/humain/web-access/vendor/index.d.ts.map +1 -1
  163. package/dist/humain/web-access/vendor/index.js +23 -19
  164. package/dist/humain/web-access/vendor/index.js.map +1 -1
  165. package/dist/humain/web-access/vendor/openai-search.d.ts.map +1 -1
  166. package/dist/humain/web-access/vendor/openai-search.js +40 -14
  167. package/dist/humain/web-access/vendor/openai-search.js.map +1 -1
  168. package/dist/humain/web-access/vendor/page-query.d.ts.map +1 -1
  169. package/dist/humain/web-access/vendor/page-query.js +6 -2
  170. package/dist/humain/web-access/vendor/page-query.js.map +1 -1
  171. package/dist/humain/web-access/vendor/query-rewrite.d.ts.map +1 -1
  172. package/dist/humain/web-access/vendor/query-rewrite.js +6 -2
  173. package/dist/humain/web-access/vendor/query-rewrite.js.map +1 -1
  174. package/dist/humain/web-access/vendor/serpapi.d.ts +4 -0
  175. package/dist/humain/web-access/vendor/serpapi.d.ts.map +1 -0
  176. package/dist/humain/web-access/vendor/serpapi.js +215 -0
  177. package/dist/humain/web-access/vendor/serpapi.js.map +1 -0
  178. package/dist/humain/web-access/vendor/ssrf-protection.d.ts.map +1 -1
  179. package/dist/humain/web-access/vendor/ssrf-protection.js +5 -1
  180. package/dist/humain/web-access/vendor/ssrf-protection.js.map +1 -1
  181. package/dist/humain/web-access/vendor/storage.d.ts.map +1 -1
  182. package/dist/humain/web-access/vendor/storage.js +9 -0
  183. package/dist/humain/web-access/vendor/storage.js.map +1 -1
  184. package/dist/humain/web-access/vendor/summary-review.d.ts +1 -1
  185. package/dist/humain/web-access/vendor/summary-review.d.ts.map +1 -1
  186. package/dist/humain/web-access/vendor/summary-review.js +35 -24
  187. package/dist/humain/web-access/vendor/summary-review.js.map +1 -1
  188. package/dist/humain/web-access/vendor/utils.d.ts.map +1 -1
  189. package/dist/humain/web-access/vendor/utils.js +5 -3
  190. package/dist/humain/web-access/vendor/utils.js.map +1 -1
  191. package/dist/index.js +1 -51
  192. package/dist/main.d.ts.map +1 -1
  193. package/dist/main.js +16 -0
  194. package/dist/main.js.map +1 -1
  195. package/dist/modes/interactive/components/login-dialog.d.ts +7 -2
  196. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  197. package/dist/modes/interactive/components/login-dialog.js +46 -21
  198. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  199. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  200. package/dist/modes/interactive/interactive-mode.js +10 -13
  201. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  202. package/dist/modes/json-event.d.ts +8 -0
  203. package/dist/modes/json-event.d.ts.map +1 -1
  204. package/dist/modes/json-event.js +17 -0
  205. package/dist/modes/json-event.js.map +1 -1
  206. package/dist/modes/print-mode.d.ts.map +1 -1
  207. package/dist/modes/print-mode.js +3 -2
  208. package/dist/modes/print-mode.js.map +1 -1
  209. package/docs/environment-variables.md +8 -0
  210. package/docs/humain-terminal.md +6 -0
  211. package/docs/json.md +16 -0
  212. package/docs/providers.md +19 -1
  213. package/npm-shrinkwrap.json +6 -6
  214. package/package.json +2 -2
  215. package/src/humain/mcp-adapter/UPSTREAM.md +56 -7
  216. package/src/humain/mcp-adapter/upstream.json +6 -4
  217. package/src/humain/mcp-adapter/vendor/CHANGELOG.md +78 -0
  218. package/src/humain/web-access/UPSTREAM.md +18 -8
  219. package/src/humain/web-access/upstream.json +6 -5
  220. package/dist/bundle/chunks/chunk-2LC3S3VV.js +0 -105
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
2
- import{convertResponsesMessages,convertResponsesTools,processResponsesStream}from"./chunk-46DC2JD6.js";import{clampOpenAIPromptCacheKey}from"./chunk-PRRNXB7S.js";import{OpenAI}from"./chunk-43O5DDAH.js";import{formatProviderError,normalizeProviderError}from"./chunk-TEPMHNKQ.js";import"./chunk-PJACZCIR.js";import{splitDeferredTools}from"./chunk-GMWCTUPB.js";import{buildCopilotDynamicHeaders,hasCopilotVisionInput}from"./chunk-PGXDEOVV.js";import{retryProviderRequest}from"./chunk-XNGRGP62.js";import{buildBaseOptions,createGrammarToolInputProperties,getPiUserAgent}from"./chunk-TXBQIIIO.js";import"./chunk-L2ZPNLYD.js";import{headersToRecord}from"./chunk-6R7UI4IY.js";import{getProviderEnvValue}from"./chunk-7DDKXS2Q.js";import"./chunk-D7XAASZM.js";import{clampThinkingLevel}from"./chunk-E6KP6V7F.js";import{AssistantMessageEventStream}from"./chunk-72KO4OMP.js";import"./chunk-JXWJOIH4.js";var OPENAI_TOOL_CALL_PROVIDERS=new Set(["openai","openai-codex","opencode"]),OPENAI_RESPONSES_MIN_OUTPUT_TOKENS=16;function hasHeader(headers,name){if(!headers)return!1;let expected=name.toLowerCase();for(let[key,value]of Object.entries(headers))if(key.toLowerCase()===expected&&value!==null&&value.trim().length>0)return!0;return!1}function getClientApiKey(provider,apiKey,headers){if(apiKey)return apiKey;if(hasHeader(headers,"authorization")||hasHeader(headers,"cf-aig-authorization"))return"unused";throw new Error(`No API key for provider: ${provider}`)}function detectSessionAffinityFormat(model){return model.provider==="openrouter"||model.baseUrl.includes("openrouter.ai")?"openrouter":"openai"}function resolveCacheRetention(cacheRetention,env){return cacheRetention||(getProviderEnvValue("HUMAIN_TERMINAL_CACHE_RETENTION",env)==="long"||getProviderEnvValue("PI_CACHE_RETENTION",env)==="long"?"long":"short")}function getCompat(model){return{supportsDeveloperRole:model.compat?.supportsDeveloperRole??!0,sessionAffinityFormat:model.compat?.sessionAffinityFormat??detectSessionAffinityFormat(model),supportsLongCacheRetention:model.compat?.supportsLongCacheRetention??!0,supportsStrictMode:model.compat?.supportsStrictMode??!1,supportsOpenAIGrammarTools:model.compat?.supportsOpenAIGrammarTools??!1,supportsAdditionalTools:model.compat?.supportsAdditionalTools??!1,supportsToolSearch:model.compat?.supportsToolSearch??!1,supportsExplicitPromptCacheMode:model.compat?.supportsExplicitPromptCacheMode??!1,supportsMaxOutputTokens:model.compat?.supportsMaxOutputTokens??!0}}function getPromptCacheRetention(compat,cacheRetention){return cacheRetention==="long"&&compat.supportsLongCacheRetention&&!compat.supportsExplicitPromptCacheMode?"24h":void 0}function getPromptCacheOptions(compat,cacheRetention){if(compat.supportsExplicitPromptCacheMode){if(cacheRetention==="none")return{mode:"explicit"};if(cacheRetention==="long"&&compat.supportsLongCacheRetention)return{ttl:"30m"}}}function formatOpenAIResponsesError(error){return formatProviderError(normalizeProviderError(error),"OpenAI API error")}var stream=(model,context,options)=>{let stream2=new AssistantMessageEventStream;return(async()=>{let output={role:"assistant",content:[],api:model.api,provider:model.provider,model:model.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:"pending",timestamp:Date.now()};try{let apiKey=getClientApiKey(model.provider,options?.apiKey,options?.headers),cacheSessionId=resolveCacheRetention(options?.cacheRetention,options?.env)==="none"?void 0:options?.sessionId,compat=getCompat(model),grammarToolInputProperties=createGrammarToolInputProperties(context.tools,compat.supportsOpenAIGrammarTools),client=createClient(model,context,apiKey,options?.headers,options?.fetch,cacheSessionId),params=buildParams(model,context,options,compat,grammarToolInputProperties),nextParams=await options?.onPayload?.(params,model);nextParams!==void 0&&(params=nextParams);let requestOptions={...options?.signal?{signal:options.signal}:{},...options?.timeoutMs!==void 0?{timeout:options.timeoutMs}:{},maxRetries:0},{data:openaiStream,response}=await retryProviderRequest(()=>client.responses.create(params,requestOptions).withResponse(),{maxRetries:options?.maxRetries,maxRetryDelayMs:options?.maxRetryDelayMs,signal:options?.signal});if(await options?.onResponse?.({status:response.status,headers:headersToRecord(response.headers)},model),stream2.push({type:"start",partial:output}),await processResponsesStream(openaiStream,output,stream2,model,{serviceTier:options?.serviceTier,grammarToolInputProperties,applyServiceTierPricing:(usage,serviceTier)=>applyServiceTierPricing(usage,serviceTier,model)}),options?.signal?.aborted)throw new Error("Request was aborted");if(output.stopReason==="pending")throw new Error("OpenAI Responses stream ended without a stop reason");if(output.stopReason==="aborted"||output.stopReason==="error")throw new Error(output.errorMessage||"An unknown error occurred");stream2.push({type:"done",reason:output.stopReason,message:output}),stream2.end()}catch(error){for(let block of output.content)delete block.index,delete block.partialJson,delete block.customInput;output.stopReason=options?.signal?.aborted?"aborted":"error",output.errorMessage=formatOpenAIResponsesError(error),stream2.push({type:"error",reason:output.stopReason,error:output}),stream2.end()}})(),stream2},streamSimple=(model,context,options)=>{getClientApiKey(model.provider,options?.apiKey,options?.headers);let base={...buildBaseOptions(model,context,options,options?.apiKey),toolChoice:options?.toolChoice},clampedReasoning=options?.reasoning?clampThinkingLevel(model,options.reasoning):void 0;return stream(model,context,{...base,reasoningEffort:clampedReasoning==="off"?void 0:clampedReasoning})};function createClient(model,context,apiKey,optionsHeaders,fetch,sessionId){let compat=getCompat(model),headers={"User-Agent":getPiUserAgent(),...model.headers};if(model.provider==="github-copilot"){let hasImages=hasCopilotVisionInput(context.messages),copilotHeaders=buildCopilotDynamicHeaders({messages:context.messages,hasImages});Object.assign(headers,copilotHeaders)}return sessionId&&(compat.sessionAffinityFormat==="openrouter"?headers["x-session-id"]=sessionId:(compat.sessionAffinityFormat==="openai"&&(headers.session_id=sessionId),headers["x-client-request-id"]=sessionId)),optionsHeaders&&Object.assign(headers,optionsHeaders),new OpenAI({apiKey,baseURL:model.baseUrl,dangerouslyAllowBrowser:!0,fetch,defaultHeaders:headers})}function buildParams(model,context,options,compat=getCompat(model),grammarToolInputProperties=createGrammarToolInputProperties(context.tools,compat.supportsOpenAIGrammarTools)){let deferredToolsMode=compat.supportsAdditionalTools?"additional-tools":compat.supportsToolSearch?"tool-search":void 0,toolPlacement=splitDeferredTools(context,deferredToolsMode!==void 0),messages=convertResponsesMessages(model,context,OPENAI_TOOL_CALL_PROVIDERS,{grammarToolInputProperties,deferredTools:toolPlacement.deferred,deferredToolsMode,toolOptions:{supportsStrictMode:compat.supportsStrictMode,supportsOpenAIGrammarTools:compat.supportsOpenAIGrammarTools}}),cacheRetention=resolveCacheRetention(options?.cacheRetention,options?.env),params={model:model.id,input:messages,stream:!0,prompt_cache_key:cacheRetention==="none"?void 0:clampOpenAIPromptCacheKey(options?.sessionId),prompt_cache_retention:getPromptCacheRetention(compat,cacheRetention),prompt_cache_options:getPromptCacheOptions(compat,cacheRetention),store:!1};if(options?.maxTokens&&compat.supportsMaxOutputTokens&&(params.max_output_tokens=Math.max(options.maxTokens,OPENAI_RESPONSES_MIN_OUTPUT_TOKENS)),options?.temperature!==void 0&&(params.temperature=options?.temperature),options?.serviceTier!==void 0&&(params.service_tier=options.serviceTier),toolPlacement.immediate.length>0&&(params.tools=convertResponsesTools(toolPlacement.immediate,{supportsStrictMode:compat.supportsStrictMode,supportsOpenAIGrammarTools:compat.supportsOpenAIGrammarTools})),options?.toolChoice!==void 0&&(params.tool_choice=options.toolChoice),model.reasoning){if(options?.reasoningEffort||options?.reasoningSummary){let effort=options?.reasoningEffort?model.thinkingLevelMap?.[options.reasoningEffort]??options.reasoningEffort:"medium";params.reasoning={effort,summary:options?.reasoningSummary||"auto"},params.include=["reasoning.encrypted_content"]}else model.provider!=="github-copilot"&&model.thinkingLevelMap?.off!==null&&(params.reasoning={effort:model.thinkingLevelMap?.off??"none"});model.provider==="xai"&&(params.include=["reasoning.encrypted_content"])}return options?.samplingParams&&Object.assign(params,options.samplingParams),params}function getServiceTierCostMultiplier(model,serviceTier){switch(serviceTier){case"flex":return .5;case"priority":return model.id==="gpt-5.5"?2.5:2;default:return 1}}function applyServiceTierPricing(usage,serviceTier,model){let multiplier=getServiceTierCostMultiplier(model,serviceTier);multiplier!==1&&(usage.cost.input*=multiplier,usage.cost.output*=multiplier,usage.cost.cacheRead*=multiplier,usage.cost.cacheWrite*=multiplier,usage.cost.total=usage.cost.input+usage.cost.output+usage.cost.cacheRead+usage.cost.cacheWrite)}export{stream,streamSimple};
2
+ import{splitDeferredTools}from"./chunk-GMWCTUPB.js";import{convertResponsesMessages,convertResponsesTools,processResponsesStream}from"./chunk-46DC2JD6.js";import{buildCopilotDynamicHeaders,hasCopilotVisionInput}from"./chunk-PGXDEOVV.js";import{clampOpenAIPromptCacheKey}from"./chunk-PRRNXB7S.js";import"./chunk-PJACZCIR.js";import{OpenAI}from"./chunk-43O5DDAH.js";import{formatProviderError,normalizeProviderError}from"./chunk-TEPMHNKQ.js";import{buildBaseOptions,createGrammarToolInputProperties,getPiUserAgent}from"./chunk-TXBQIIIO.js";import{retryProviderRequest}from"./chunk-XNGRGP62.js";import"./chunk-L2ZPNLYD.js";import{headersToRecord}from"./chunk-6R7UI4IY.js";import{getProviderEnvValue}from"./chunk-7DDKXS2Q.js";import"./chunk-D7XAASZM.js";import{clampThinkingLevel}from"./chunk-E6KP6V7F.js";import{AssistantMessageEventStream}from"./chunk-72KO4OMP.js";import"./chunk-JXWJOIH4.js";var OPENAI_TOOL_CALL_PROVIDERS=new Set(["openai","openai-codex","opencode"]),OPENAI_RESPONSES_MIN_OUTPUT_TOKENS=16;function hasHeader(headers,name){if(!headers)return!1;let expected=name.toLowerCase();for(let[key,value]of Object.entries(headers))if(key.toLowerCase()===expected&&value!==null&&value.trim().length>0)return!0;return!1}function getClientApiKey(provider,apiKey,headers){if(apiKey)return apiKey;if(hasHeader(headers,"authorization")||hasHeader(headers,"cf-aig-authorization"))return"unused";throw new Error(`No API key for provider: ${provider}`)}function detectSessionAffinityFormat(model){return model.provider==="openrouter"||model.baseUrl.includes("openrouter.ai")?"openrouter":"openai"}function resolveCacheRetention(cacheRetention,env){return cacheRetention||(getProviderEnvValue("HUMAIN_TERMINAL_CACHE_RETENTION",env)==="long"||getProviderEnvValue("PI_CACHE_RETENTION",env)==="long"?"long":"short")}function getCompat(model){return{supportsDeveloperRole:model.compat?.supportsDeveloperRole??!0,sessionAffinityFormat:model.compat?.sessionAffinityFormat??detectSessionAffinityFormat(model),supportsLongCacheRetention:model.compat?.supportsLongCacheRetention??!0,supportsStrictMode:model.compat?.supportsStrictMode??!1,supportsOpenAIGrammarTools:model.compat?.supportsOpenAIGrammarTools??!1,supportsAdditionalTools:model.compat?.supportsAdditionalTools??!1,supportsToolSearch:model.compat?.supportsToolSearch??!1,supportsExplicitPromptCacheMode:model.compat?.supportsExplicitPromptCacheMode??!1,supportsMaxOutputTokens:model.compat?.supportsMaxOutputTokens??!0}}function getPromptCacheRetention(compat,cacheRetention){return cacheRetention==="long"&&compat.supportsLongCacheRetention&&!compat.supportsExplicitPromptCacheMode?"24h":void 0}function getPromptCacheOptions(compat,cacheRetention){if(compat.supportsExplicitPromptCacheMode){if(cacheRetention==="none")return{mode:"explicit"};if(cacheRetention==="long"&&compat.supportsLongCacheRetention)return{ttl:"30m"}}}function formatOpenAIResponsesError(error){return formatProviderError(normalizeProviderError(error),"OpenAI API error")}var stream=(model,context,options)=>{let stream2=new AssistantMessageEventStream;return(async()=>{let output={role:"assistant",content:[],api:model.api,provider:model.provider,model:model.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:"pending",timestamp:Date.now()};try{let apiKey=getClientApiKey(model.provider,options?.apiKey,options?.headers),cacheSessionId=resolveCacheRetention(options?.cacheRetention,options?.env)==="none"?void 0:options?.sessionId,compat=getCompat(model),grammarToolInputProperties=createGrammarToolInputProperties(context.tools,compat.supportsOpenAIGrammarTools),client=createClient(model,context,apiKey,options?.headers,options?.fetch,cacheSessionId),params=buildParams(model,context,options,compat,grammarToolInputProperties),nextParams=await options?.onPayload?.(params,model);nextParams!==void 0&&(params=nextParams);let requestOptions={...options?.signal?{signal:options.signal}:{},...options?.timeoutMs!==void 0?{timeout:options.timeoutMs}:{},maxRetries:0},{data:openaiStream,response}=await retryProviderRequest(()=>client.responses.create(params,requestOptions).withResponse(),{maxRetries:options?.maxRetries,maxRetryDelayMs:options?.maxRetryDelayMs,signal:options?.signal});if(await options?.onResponse?.({status:response.status,headers:headersToRecord(response.headers)},model),stream2.push({type:"start",partial:output}),await processResponsesStream(openaiStream,output,stream2,model,{serviceTier:options?.serviceTier,grammarToolInputProperties,applyServiceTierPricing:(usage,serviceTier)=>applyServiceTierPricing(usage,serviceTier,model)}),options?.signal?.aborted)throw new Error("Request was aborted");if(output.stopReason==="pending")throw new Error("OpenAI Responses stream ended without a stop reason");if(output.stopReason==="aborted"||output.stopReason==="error")throw new Error(output.errorMessage||"An unknown error occurred");stream2.push({type:"done",reason:output.stopReason,message:output}),stream2.end()}catch(error){for(let block of output.content)delete block.index,delete block.partialJson,delete block.customInput;output.stopReason=options?.signal?.aborted?"aborted":"error",output.errorMessage=formatOpenAIResponsesError(error),stream2.push({type:"error",reason:output.stopReason,error:output}),stream2.end()}})(),stream2},streamSimple=(model,context,options)=>{getClientApiKey(model.provider,options?.apiKey,options?.headers);let base={...buildBaseOptions(model,context,options,options?.apiKey),toolChoice:options?.toolChoice},clampedReasoning=options?.reasoning?clampThinkingLevel(model,options.reasoning):void 0;return stream(model,context,{...base,reasoningEffort:clampedReasoning==="off"?void 0:clampedReasoning})};function createClient(model,context,apiKey,optionsHeaders,fetch,sessionId){let compat=getCompat(model),headers={"User-Agent":getPiUserAgent(),...model.headers};if(model.provider==="github-copilot"){let hasImages=hasCopilotVisionInput(context.messages),copilotHeaders=buildCopilotDynamicHeaders({messages:context.messages,hasImages});Object.assign(headers,copilotHeaders)}return sessionId&&(compat.sessionAffinityFormat==="openrouter"?headers["x-session-id"]=sessionId:(compat.sessionAffinityFormat==="openai"&&(headers.session_id=sessionId),headers["x-client-request-id"]=sessionId)),optionsHeaders&&Object.assign(headers,optionsHeaders),new OpenAI({apiKey,baseURL:model.baseUrl,dangerouslyAllowBrowser:!0,fetch,defaultHeaders:headers})}function buildParams(model,context,options,compat=getCompat(model),grammarToolInputProperties=createGrammarToolInputProperties(context.tools,compat.supportsOpenAIGrammarTools)){let deferredToolsMode=compat.supportsAdditionalTools?"additional-tools":compat.supportsToolSearch?"tool-search":void 0,toolPlacement=splitDeferredTools(context,deferredToolsMode!==void 0),messages=convertResponsesMessages(model,context,OPENAI_TOOL_CALL_PROVIDERS,{grammarToolInputProperties,deferredTools:toolPlacement.deferred,deferredToolsMode,toolOptions:{supportsStrictMode:compat.supportsStrictMode,supportsOpenAIGrammarTools:compat.supportsOpenAIGrammarTools}}),cacheRetention=resolveCacheRetention(options?.cacheRetention,options?.env),params={model:model.id,input:messages,stream:!0,prompt_cache_key:cacheRetention==="none"?void 0:clampOpenAIPromptCacheKey(options?.sessionId),prompt_cache_retention:getPromptCacheRetention(compat,cacheRetention),prompt_cache_options:getPromptCacheOptions(compat,cacheRetention),store:!1};if(options?.maxTokens&&compat.supportsMaxOutputTokens&&(params.max_output_tokens=Math.max(options.maxTokens,OPENAI_RESPONSES_MIN_OUTPUT_TOKENS)),options?.temperature!==void 0&&(params.temperature=options?.temperature),options?.serviceTier!==void 0&&(params.service_tier=options.serviceTier),toolPlacement.immediate.length>0&&(params.tools=convertResponsesTools(toolPlacement.immediate,{supportsStrictMode:compat.supportsStrictMode,supportsOpenAIGrammarTools:compat.supportsOpenAIGrammarTools})),options?.toolChoice!==void 0&&(params.tool_choice=options.toolChoice),model.reasoning){if(options?.reasoningEffort||options?.reasoningSummary){let effort=options?.reasoningEffort?model.thinkingLevelMap?.[options.reasoningEffort]??options.reasoningEffort:"medium";params.reasoning={effort,summary:options?.reasoningSummary||"auto"},params.include=["reasoning.encrypted_content"]}else model.provider!=="github-copilot"&&model.thinkingLevelMap?.off!==null&&(params.reasoning={effort:model.thinkingLevelMap?.off??"none"});model.provider==="xai"&&(params.include=["reasoning.encrypted_content"])}return options?.samplingParams&&Object.assign(params,options.samplingParams),params}function getServiceTierCostMultiplier(model,serviceTier){switch(serviceTier){case"flex":return .5;case"priority":return model.id==="gpt-5.5"?2.5:2;default:return 1}}function applyServiceTierPricing(usage,serviceTier,model){let multiplier=getServiceTierCostMultiplier(model,serviceTier);multiplier!==1&&(usage.cost.input*=multiplier,usage.cost.output*=multiplier,usage.cost.cacheRead*=multiplier,usage.cost.cacheWrite*=multiplier,usage.cost.total=usage.cost.input+usage.cost.output+usage.cost.cacheRead+usage.cost.cacheWrite)}export{stream,streamSimple};
@@ -0,0 +1,3 @@
1
+ import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
2
+ import{__commonJS}from"./chunk-JXWJOIH4.js";var require_Readability=__commonJS({"node_modules/@mozilla/readability/Readability.js"(exports,module){function Readability(doc,options){if(options&&options.documentElement)doc=options,options=arguments[2];else if(!doc||!doc.documentElement)throw new Error("First argument to Readability constructor should be a document object.");if(options=options||{},this._doc=doc,this._docJSDOMParser=this._doc.firstChild.__JSDOMParser__,this._articleTitle=null,this._articleByline=null,this._articleDir=null,this._articleSiteName=null,this._attempts=[],this._metadata={},this._debug=!!options.debug,this._maxElemsToParse=options.maxElemsToParse||this.DEFAULT_MAX_ELEMS_TO_PARSE,this._nbTopCandidates=options.nbTopCandidates||this.DEFAULT_N_TOP_CANDIDATES,this._charThreshold=options.charThreshold||this.DEFAULT_CHAR_THRESHOLD,this._classesToPreserve=this.CLASSES_TO_PRESERVE.concat(options.classesToPreserve||[]),this._keepClasses=!!options.keepClasses,this._serializer=options.serializer||function(el){return el.innerHTML},this._disableJSONLD=!!options.disableJSONLD,this._allowedVideoRegex=options.allowedVideoRegex||this.REGEXPS.videos,this._linkDensityModifier=options.linkDensityModifier||0,this._flags=this.FLAG_STRIP_UNLIKELYS|this.FLAG_WEIGHT_CLASSES|this.FLAG_CLEAN_CONDITIONALLY,this._debug){let logNode=function(node){if(node.nodeType==node.TEXT_NODE)return`${node.nodeName} ("${node.textContent}")`;let attrPairs=Array.from(node.attributes||[],function(attr){return`${attr.name}="${attr.value}"`}).join(" ");return`<${node.localName} ${attrPairs}>`};this.log=function(){if(typeof console<"u"){let args=Array.from(arguments,arg=>arg&&arg.nodeType==this.ELEMENT_NODE?logNode(arg):arg);args.unshift("Reader: (Readability)"),console.log(...args)}else if(typeof dump<"u"){var msg=Array.prototype.map.call(arguments,function(x){return x&&x.nodeName?logNode(x):x}).join(" ");dump("Reader: (Readability) "+msg+`
3
+ `)}}}else this.log=function(){}}Readability.prototype={FLAG_STRIP_UNLIKELYS:1,FLAG_WEIGHT_CLASSES:2,FLAG_CLEAN_CONDITIONALLY:4,ELEMENT_NODE:1,TEXT_NODE:3,DEFAULT_MAX_ELEMS_TO_PARSE:0,DEFAULT_N_TOP_CANDIDATES:5,DEFAULT_TAGS_TO_SCORE:"section,h2,h3,h4,h5,h6,p,td,pre".toUpperCase().split(","),DEFAULT_CHAR_THRESHOLD:500,REGEXPS:{unlikelyCandidates:/-ad-|ai2html|banner|breadcrumbs|combx|comment|community|cover-wrap|disqus|extra|footer|gdpr|header|legends|menu|related|remark|replies|rss|shoutbox|sidebar|skyscraper|social|sponsor|supplemental|ad-break|agegate|pagination|pager|popup|yom-remote/i,okMaybeItsACandidate:/and|article|body|column|content|main|shadow/i,positive:/article|body|content|entry|hentry|h-entry|main|page|pagination|post|text|blog|story/i,negative:/-ad-|hidden|^hid$| hid$| hid |^hid |banner|combx|comment|com-|contact|footer|gdpr|masthead|media|meta|outbrain|promo|related|scroll|share|shoutbox|sidebar|skyscraper|sponsor|shopping|tags|widget/i,extraneous:/print|archive|comment|discuss|e[\-]?mail|share|reply|all|login|sign|single|utility/i,byline:/byline|author|dateline|writtenby|p-author/i,replaceFonts:/<(\/?)font[^>]*>/gi,normalize:/\s{2,}/g,videos:/\/\/(www\.)?((dailymotion|youtube|youtube-nocookie|player\.vimeo|v\.qq)\.com|(archive|upload\.wikimedia)\.org|player\.twitch\.tv)/i,shareElements:/(\b|_)(share|sharedaddy)(\b|_)/i,nextLink:/(next|weiter|continue|>([^\|]|$)|»([^\|]|$))/i,prevLink:/(prev|earl|old|new|<|«)/i,tokenize:/\W+/g,whitespace:/^\s*$/,hasContent:/\S$/,hashUrl:/^#.+/,srcsetUrl:/(\S+)(\s+[\d.]+[xw])?(\s*(?:,|$))/g,b64DataUrl:/^data:\s*([^\s;,]+)\s*;\s*base64\s*,/i,commas:/\u002C|\u060C|\uFE50|\uFE10|\uFE11|\u2E41|\u2E34|\u2E32|\uFF0C/g,jsonLdArticleTypes:/^Article|AdvertiserContentArticle|NewsArticle|AnalysisNewsArticle|AskPublicNewsArticle|BackgroundNewsArticle|OpinionNewsArticle|ReportageNewsArticle|ReviewNewsArticle|Report|SatiricalArticle|ScholarlyArticle|MedicalScholarlyArticle|SocialMediaPosting|BlogPosting|LiveBlogPosting|DiscussionForumPosting|TechArticle|APIReference$/,adWords:/^(ad(vertising|vertisement)?|pub(licité)?|werb(ung)?|广告|Реклама|Anuncio)$/iu,loadingWords:/^((loading|正在加载|Загрузка|chargement|cargando)(…|\.\.\.)?)$/iu},UNLIKELY_ROLES:["menu","menubar","complementary","navigation","alert","alertdialog","dialog"],DIV_TO_P_ELEMS:new Set(["BLOCKQUOTE","DL","DIV","IMG","OL","P","PRE","TABLE","UL"]),ALTER_TO_DIV_EXCEPTIONS:["DIV","ARTICLE","SECTION","P","OL","UL"],PRESENTATIONAL_ATTRIBUTES:["align","background","bgcolor","border","cellpadding","cellspacing","frame","hspace","rules","style","valign","vspace"],DEPRECATED_SIZE_ATTRIBUTE_ELEMS:["TABLE","TH","TD","HR","PRE"],PHRASING_ELEMS:["ABBR","AUDIO","B","BDO","BR","BUTTON","CITE","CODE","DATA","DATALIST","DFN","EM","EMBED","I","IMG","INPUT","KBD","LABEL","MARK","MATH","METER","NOSCRIPT","OBJECT","OUTPUT","PROGRESS","Q","RUBY","SAMP","SCRIPT","SELECT","SMALL","SPAN","STRONG","SUB","SUP","TEXTAREA","TIME","VAR","WBR"],CLASSES_TO_PRESERVE:["page"],HTML_ESCAPE_MAP:{lt:"<",gt:">",amp:"&",quot:'"',apos:"'"},_postProcessContent(articleContent){this._fixRelativeUris(articleContent),this._simplifyNestedElements(articleContent),this._keepClasses||this._cleanClasses(articleContent)},_removeNodes(nodeList,filterFn){if(this._docJSDOMParser&&nodeList._isLiveNodeList)throw new Error("Do not pass live node lists to _removeNodes");for(var i=nodeList.length-1;i>=0;i--){var node=nodeList[i],parentNode=node.parentNode;parentNode&&(!filterFn||filterFn.call(this,node,i,nodeList))&&parentNode.removeChild(node)}},_replaceNodeTags(nodeList,newTagName){if(this._docJSDOMParser&&nodeList._isLiveNodeList)throw new Error("Do not pass live node lists to _replaceNodeTags");for(let node of nodeList)this._setNodeTag(node,newTagName)},_forEachNode(nodeList,fn){Array.prototype.forEach.call(nodeList,fn,this)},_findNode(nodeList,fn){return Array.prototype.find.call(nodeList,fn,this)},_someNode(nodeList,fn){return Array.prototype.some.call(nodeList,fn,this)},_everyNode(nodeList,fn){return Array.prototype.every.call(nodeList,fn,this)},_getAllNodesWithTag(node,tagNames){return node.querySelectorAll?node.querySelectorAll(tagNames.join(",")):[].concat.apply([],tagNames.map(function(tag){var collection=node.getElementsByTagName(tag);return Array.isArray(collection)?collection:Array.from(collection)}))},_cleanClasses(node){var classesToPreserve=this._classesToPreserve,className=(node.getAttribute("class")||"").split(/\s+/).filter(cls=>classesToPreserve.includes(cls)).join(" ");for(className?node.setAttribute("class",className):node.removeAttribute("class"),node=node.firstElementChild;node;node=node.nextElementSibling)this._cleanClasses(node)},_isUrl(str){try{return new URL(str),!0}catch{return!1}},_fixRelativeUris(articleContent){var baseURI=this._doc.baseURI,documentURI=this._doc.documentURI;function toAbsoluteURI(uri){if(baseURI==documentURI&&uri.charAt(0)=="#")return uri;try{return new URL(uri,baseURI).href}catch{}return uri}var links=this._getAllNodesWithTag(articleContent,["a"]);this._forEachNode(links,function(link){var href=link.getAttribute("href");if(href)if(href.indexOf("javascript:")===0)if(link.childNodes.length===1&&link.childNodes[0].nodeType===this.TEXT_NODE){var text=this._doc.createTextNode(link.textContent);link.parentNode.replaceChild(text,link)}else{for(var container=this._doc.createElement("span");link.firstChild;)container.appendChild(link.firstChild);link.parentNode.replaceChild(container,link)}else link.setAttribute("href",toAbsoluteURI(href))});var medias=this._getAllNodesWithTag(articleContent,["img","picture","figure","video","audio","source"]);this._forEachNode(medias,function(media){var src=media.getAttribute("src"),poster=media.getAttribute("poster"),srcset=media.getAttribute("srcset");if(src&&media.setAttribute("src",toAbsoluteURI(src)),poster&&media.setAttribute("poster",toAbsoluteURI(poster)),srcset){var newSrcset=srcset.replace(this.REGEXPS.srcsetUrl,function(_,p1,p2,p3){return toAbsoluteURI(p1)+(p2||"")+p3});media.setAttribute("srcset",newSrcset)}})},_simplifyNestedElements(articleContent){for(var node=articleContent;node;){if(node.parentNode&&["DIV","SECTION"].includes(node.tagName)&&!(node.id&&node.id.startsWith("readability"))){if(this._isElementWithoutContent(node)){node=this._removeAndGetNext(node);continue}else if(this._hasSingleTagInsideElement(node,"DIV")||this._hasSingleTagInsideElement(node,"SECTION")){for(var child=node.children[0],i=0;i<node.attributes.length;i++)child.setAttributeNode(node.attributes[i].cloneNode());node.parentNode.replaceChild(child,node),node=child;continue}}node=this._getNextNode(node)}},_getArticleTitle(){var doc=this._doc,curTitle="",origTitle="";try{curTitle=origTitle=doc.title.trim(),typeof curTitle!="string"&&(curTitle=origTitle=this._getInnerText(doc.getElementsByTagName("title")[0]))}catch{}var titleHadHierarchicalSeparators=!1;function wordCount(str){return str.split(/\s+/).length}if(/ [\|\-\\\/>»] /.test(curTitle)){titleHadHierarchicalSeparators=/ [\\\/>»] /.test(curTitle);let allSeparators=Array.from(origTitle.matchAll(/ [\|\-\\\/>»] /gi));curTitle=origTitle.substring(0,allSeparators.pop().index),wordCount(curTitle)<3&&(curTitle=origTitle.replace(/^[^\|\-\\\/>»]*[\|\-\\\/>»]/gi,""))}else if(curTitle.includes(": ")){var headings=this._getAllNodesWithTag(doc,["h1","h2"]),trimmedTitle=curTitle.trim(),match=this._someNode(headings,function(heading){return heading.textContent.trim()===trimmedTitle});match||(curTitle=origTitle.substring(origTitle.lastIndexOf(":")+1),wordCount(curTitle)<3?curTitle=origTitle.substring(origTitle.indexOf(":")+1):wordCount(origTitle.substr(0,origTitle.indexOf(":")))>5&&(curTitle=origTitle))}else if(curTitle.length>150||curTitle.length<15){var hOnes=doc.getElementsByTagName("h1");hOnes.length===1&&(curTitle=this._getInnerText(hOnes[0]))}curTitle=curTitle.trim().replace(this.REGEXPS.normalize," ");var curTitleWordCount=wordCount(curTitle);return curTitleWordCount<=4&&(!titleHadHierarchicalSeparators||curTitleWordCount!=wordCount(origTitle.replace(/[\|\-\\\/>»]+/g,""))-1)&&(curTitle=origTitle),curTitle},_prepDocument(){var doc=this._doc;this._removeNodes(this._getAllNodesWithTag(doc,["style"])),doc.body&&this._replaceBrs(doc.body),this._replaceNodeTags(this._getAllNodesWithTag(doc,["font"]),"SPAN")},_nextNode(node){for(var next=node;next&&next.nodeType!=this.ELEMENT_NODE&&this.REGEXPS.whitespace.test(next.textContent);)next=next.nextSibling;return next},_replaceBrs(elem){this._forEachNode(this._getAllNodesWithTag(elem,["br"]),function(br){for(var next=br.nextSibling,replaced=!1;(next=this._nextNode(next))&&next.tagName=="BR";){replaced=!0;var brSibling=next.nextSibling;next.remove(),next=brSibling}if(replaced){var p=this._doc.createElement("p");for(br.parentNode.replaceChild(p,br),next=p.nextSibling;next;){if(next.tagName=="BR"){var nextElem=this._nextNode(next.nextSibling);if(nextElem&&nextElem.tagName=="BR")break}if(!this._isPhrasingContent(next))break;var sibling=next.nextSibling;p.appendChild(next),next=sibling}for(;p.lastChild&&this._isWhitespace(p.lastChild);)p.lastChild.remove();p.parentNode.tagName==="P"&&this._setNodeTag(p.parentNode,"DIV")}})},_setNodeTag(node,tag){if(this.log("_setNodeTag",node,tag),this._docJSDOMParser)return node.localName=tag.toLowerCase(),node.tagName=tag.toUpperCase(),node;for(var replacement=node.ownerDocument.createElement(tag);node.firstChild;)replacement.appendChild(node.firstChild);node.parentNode.replaceChild(replacement,node),node.readability&&(replacement.readability=node.readability);for(var i=0;i<node.attributes.length;i++)replacement.setAttributeNode(node.attributes[i].cloneNode());return replacement},_prepArticle(articleContent){this._cleanStyles(articleContent),this._markDataTables(articleContent),this._fixLazyImages(articleContent),this._cleanConditionally(articleContent,"form"),this._cleanConditionally(articleContent,"fieldset"),this._clean(articleContent,"object"),this._clean(articleContent,"embed"),this._clean(articleContent,"footer"),this._clean(articleContent,"link"),this._clean(articleContent,"aside");var shareElementThreshold=this.DEFAULT_CHAR_THRESHOLD;this._forEachNode(articleContent.children,function(topCandidate){this._cleanMatchedNodes(topCandidate,function(node,matchString){return this.REGEXPS.shareElements.test(matchString)&&node.textContent.length<shareElementThreshold})}),this._clean(articleContent,"iframe"),this._clean(articleContent,"input"),this._clean(articleContent,"textarea"),this._clean(articleContent,"select"),this._clean(articleContent,"button"),this._cleanHeaders(articleContent),this._cleanConditionally(articleContent,"table"),this._cleanConditionally(articleContent,"ul"),this._cleanConditionally(articleContent,"div"),this._replaceNodeTags(this._getAllNodesWithTag(articleContent,["h1"]),"h2"),this._removeNodes(this._getAllNodesWithTag(articleContent,["p"]),function(paragraph){var contentElementCount=this._getAllNodesWithTag(paragraph,["img","embed","object","iframe"]).length;return contentElementCount===0&&!this._getInnerText(paragraph,!1)}),this._forEachNode(this._getAllNodesWithTag(articleContent,["br"]),function(br){var next=this._nextNode(br.nextSibling);next&&next.tagName=="P"&&br.remove()}),this._forEachNode(this._getAllNodesWithTag(articleContent,["table"]),function(table){var tbody=this._hasSingleTagInsideElement(table,"TBODY")?table.firstElementChild:table;if(this._hasSingleTagInsideElement(tbody,"TR")){var row=tbody.firstElementChild;if(this._hasSingleTagInsideElement(row,"TD")){var cell=row.firstElementChild;cell=this._setNodeTag(cell,this._everyNode(cell.childNodes,this._isPhrasingContent)?"P":"DIV"),table.parentNode.replaceChild(cell,table)}}})},_initializeNode(node){switch(node.readability={contentScore:0},node.tagName){case"DIV":node.readability.contentScore+=5;break;case"PRE":case"TD":case"BLOCKQUOTE":node.readability.contentScore+=3;break;case"ADDRESS":case"OL":case"UL":case"DL":case"DD":case"DT":case"LI":case"FORM":node.readability.contentScore-=3;break;case"H1":case"H2":case"H3":case"H4":case"H5":case"H6":case"TH":node.readability.contentScore-=5;break}node.readability.contentScore+=this._getClassWeight(node)},_removeAndGetNext(node){var nextNode=this._getNextNode(node,!0);return node.remove(),nextNode},_getNextNode(node,ignoreSelfAndKids){if(!ignoreSelfAndKids&&node.firstElementChild)return node.firstElementChild;if(node.nextElementSibling)return node.nextElementSibling;do node=node.parentNode;while(node&&!node.nextElementSibling);return node&&node.nextElementSibling},_textSimilarity(textA,textB){var tokensA=textA.toLowerCase().split(this.REGEXPS.tokenize).filter(Boolean),tokensB=textB.toLowerCase().split(this.REGEXPS.tokenize).filter(Boolean);if(!tokensA.length||!tokensB.length)return 0;var uniqTokensB=tokensB.filter(token=>!tokensA.includes(token)),distanceB=uniqTokensB.join(" ").length/tokensB.join(" ").length;return 1-distanceB},_isValidByline(node,matchString){var rel=node.getAttribute("rel"),itemprop=node.getAttribute("itemprop"),bylineLength=node.textContent.trim().length;return(rel==="author"||itemprop&&itemprop.includes("author")||this.REGEXPS.byline.test(matchString))&&!!bylineLength&&bylineLength<100},_getNodeAncestors(node,maxDepth){maxDepth=maxDepth||0;for(var i=0,ancestors=[];node.parentNode&&(ancestors.push(node.parentNode),!(maxDepth&&++i===maxDepth));)node=node.parentNode;return ancestors},_grabArticle(page){this.log("**** grabArticle ****");var doc=this._doc,isPaging=page!==null;if(page=page||this._doc.body,!page)return this.log("No body found in document. Abort."),null;for(var pageCacheHtml=page.innerHTML;;){this.log("Starting grabArticle loop");var stripUnlikelyCandidates=this._flagIsActive(this.FLAG_STRIP_UNLIKELYS),elementsToScore=[],node=this._doc.documentElement;let shouldRemoveTitleHeader=!0;for(;node;){node.tagName==="HTML"&&(this._articleLang=node.getAttribute("lang"));var matchString=node.className+" "+node.id;if(!this._isProbablyVisible(node)){this.log("Removing hidden node - "+matchString),node=this._removeAndGetNext(node);continue}if(node.getAttribute("aria-modal")=="true"&&node.getAttribute("role")=="dialog"){node=this._removeAndGetNext(node);continue}if(!this._articleByline&&!this._metadata.byline&&this._isValidByline(node,matchString)){for(var endOfSearchMarkerNode=this._getNextNode(node,!0),next=this._getNextNode(node),itemPropNameNode=null;next&&next!=endOfSearchMarkerNode;){var itemprop=next.getAttribute("itemprop");if(itemprop&&itemprop.includes("name")){itemPropNameNode=next;break}else next=this._getNextNode(next)}this._articleByline=(itemPropNameNode??node).textContent.trim(),node=this._removeAndGetNext(node);continue}if(shouldRemoveTitleHeader&&this._headerDuplicatesTitle(node)){this.log("Removing header: ",node.textContent.trim(),this._articleTitle.trim()),shouldRemoveTitleHeader=!1,node=this._removeAndGetNext(node);continue}if(stripUnlikelyCandidates){if(this.REGEXPS.unlikelyCandidates.test(matchString)&&!this.REGEXPS.okMaybeItsACandidate.test(matchString)&&!this._hasAncestorTag(node,"table")&&!this._hasAncestorTag(node,"code")&&node.tagName!=="BODY"&&node.tagName!=="A"){this.log("Removing unlikely candidate - "+matchString),node=this._removeAndGetNext(node);continue}if(this.UNLIKELY_ROLES.includes(node.getAttribute("role"))){this.log("Removing content with role "+node.getAttribute("role")+" - "+matchString),node=this._removeAndGetNext(node);continue}}if((node.tagName==="DIV"||node.tagName==="SECTION"||node.tagName==="HEADER"||node.tagName==="H1"||node.tagName==="H2"||node.tagName==="H3"||node.tagName==="H4"||node.tagName==="H5"||node.tagName==="H6")&&this._isElementWithoutContent(node)){node=this._removeAndGetNext(node);continue}if(this.DEFAULT_TAGS_TO_SCORE.includes(node.tagName)&&elementsToScore.push(node),node.tagName==="DIV"){for(var p=null,childNode=node.firstChild;childNode;){var nextSibling=childNode.nextSibling;if(this._isPhrasingContent(childNode))p!==null?p.appendChild(childNode):this._isWhitespace(childNode)||(p=doc.createElement("p"),node.replaceChild(p,childNode),p.appendChild(childNode));else if(p!==null){for(;p.lastChild&&this._isWhitespace(p.lastChild);)p.lastChild.remove();p=null}childNode=nextSibling}if(this._hasSingleTagInsideElement(node,"P")&&this._getLinkDensity(node)<.25){var newNode=node.children[0];node.parentNode.replaceChild(newNode,node),node=newNode,elementsToScore.push(node)}else this._hasChildBlockElement(node)||(node=this._setNodeTag(node,"P"),elementsToScore.push(node))}node=this._getNextNode(node)}var candidates=[];this._forEachNode(elementsToScore,function(elementToScore){if(!(!elementToScore.parentNode||typeof elementToScore.parentNode.tagName>"u")){var innerText=this._getInnerText(elementToScore);if(!(innerText.length<25)){var ancestors2=this._getNodeAncestors(elementToScore,5);if(ancestors2.length!==0){var contentScore=0;contentScore+=1,contentScore+=innerText.split(this.REGEXPS.commas).length,contentScore+=Math.min(Math.floor(innerText.length/100),3),this._forEachNode(ancestors2,function(ancestor,level){if(!(!ancestor.tagName||!ancestor.parentNode||typeof ancestor.parentNode.tagName>"u")){if(typeof ancestor.readability>"u"&&(this._initializeNode(ancestor),candidates.push(ancestor)),level===0)var scoreDivider=1;else level===1?scoreDivider=2:scoreDivider=level*3;ancestor.readability.contentScore+=contentScore/scoreDivider}})}}}});for(var topCandidates=[],c=0,cl=candidates.length;c<cl;c+=1){var candidate=candidates[c],candidateScore=candidate.readability.contentScore*(1-this._getLinkDensity(candidate));candidate.readability.contentScore=candidateScore,this.log("Candidate:",candidate,"with score "+candidateScore);for(var t=0;t<this._nbTopCandidates;t++){var aTopCandidate=topCandidates[t];if(!aTopCandidate||candidateScore>aTopCandidate.readability.contentScore){topCandidates.splice(t,0,candidate),topCandidates.length>this._nbTopCandidates&&topCandidates.pop();break}}}var topCandidate=topCandidates[0]||null,neededToCreateTopCandidate=!1,parentOfTopCandidate;if(topCandidate===null||topCandidate.tagName==="BODY"){for(topCandidate=doc.createElement("DIV"),neededToCreateTopCandidate=!0;page.firstChild;)this.log("Moving child out:",page.firstChild),topCandidate.appendChild(page.firstChild);page.appendChild(topCandidate),this._initializeNode(topCandidate)}else if(topCandidate){for(var alternativeCandidateAncestors=[],i=1;i<topCandidates.length;i++)topCandidates[i].readability.contentScore/topCandidate.readability.contentScore>=.75&&alternativeCandidateAncestors.push(this._getNodeAncestors(topCandidates[i]));var MINIMUM_TOPCANDIDATES=3;if(alternativeCandidateAncestors.length>=MINIMUM_TOPCANDIDATES)for(parentOfTopCandidate=topCandidate.parentNode;parentOfTopCandidate.tagName!=="BODY";){for(var listsContainingThisAncestor=0,ancestorIndex=0;ancestorIndex<alternativeCandidateAncestors.length&&listsContainingThisAncestor<MINIMUM_TOPCANDIDATES;ancestorIndex++)listsContainingThisAncestor+=Number(alternativeCandidateAncestors[ancestorIndex].includes(parentOfTopCandidate));if(listsContainingThisAncestor>=MINIMUM_TOPCANDIDATES){topCandidate=parentOfTopCandidate;break}parentOfTopCandidate=parentOfTopCandidate.parentNode}topCandidate.readability||this._initializeNode(topCandidate),parentOfTopCandidate=topCandidate.parentNode;for(var lastScore=topCandidate.readability.contentScore,scoreThreshold=lastScore/3;parentOfTopCandidate.tagName!=="BODY";){if(!parentOfTopCandidate.readability){parentOfTopCandidate=parentOfTopCandidate.parentNode;continue}var parentScore=parentOfTopCandidate.readability.contentScore;if(parentScore<scoreThreshold)break;if(parentScore>lastScore){topCandidate=parentOfTopCandidate;break}lastScore=parentOfTopCandidate.readability.contentScore,parentOfTopCandidate=parentOfTopCandidate.parentNode}for(parentOfTopCandidate=topCandidate.parentNode;parentOfTopCandidate.tagName!="BODY"&&parentOfTopCandidate.children.length==1;)topCandidate=parentOfTopCandidate,parentOfTopCandidate=topCandidate.parentNode;topCandidate.readability||this._initializeNode(topCandidate)}var articleContent=doc.createElement("DIV");isPaging&&(articleContent.id="readability-content");var siblingScoreThreshold=Math.max(10,topCandidate.readability.contentScore*.2);parentOfTopCandidate=topCandidate.parentNode;for(var siblings=parentOfTopCandidate.children,s=0,sl=siblings.length;s<sl;s++){var sibling=siblings[s],append=!1;if(this.log("Looking at sibling node:",sibling,sibling.readability?"with score "+sibling.readability.contentScore:""),this.log("Sibling has score",sibling.readability?sibling.readability.contentScore:"Unknown"),sibling===topCandidate)append=!0;else{var contentBonus=0;if(sibling.className===topCandidate.className&&topCandidate.className!==""&&(contentBonus+=topCandidate.readability.contentScore*.2),sibling.readability&&sibling.readability.contentScore+contentBonus>=siblingScoreThreshold)append=!0;else if(sibling.nodeName==="P"){var linkDensity=this._getLinkDensity(sibling),nodeContent=this._getInnerText(sibling),nodeLength=nodeContent.length;(nodeLength>80&&linkDensity<.25||nodeLength<80&&nodeLength>0&&linkDensity===0&&nodeContent.search(/\.( |$)/)!==-1)&&(append=!0)}}append&&(this.log("Appending node:",sibling),this.ALTER_TO_DIV_EXCEPTIONS.includes(sibling.nodeName)||(this.log("Altering sibling:",sibling,"to div."),sibling=this._setNodeTag(sibling,"DIV")),articleContent.appendChild(sibling),siblings=parentOfTopCandidate.children,s-=1,sl-=1)}if(this._debug&&this.log("Article content pre-prep: "+articleContent.innerHTML),this._prepArticle(articleContent),this._debug&&this.log("Article content post-prep: "+articleContent.innerHTML),neededToCreateTopCandidate)topCandidate.id="readability-page-1",topCandidate.className="page";else{var div=doc.createElement("DIV");for(div.id="readability-page-1",div.className="page";articleContent.firstChild;)div.appendChild(articleContent.firstChild);articleContent.appendChild(div)}this._debug&&this.log("Article content after paging: "+articleContent.innerHTML);var parseSuccessful=!0,textLength=this._getInnerText(articleContent,!0).length;if(textLength<this._charThreshold)if(parseSuccessful=!1,page.innerHTML=pageCacheHtml,this._attempts.push({articleContent,textLength}),this._flagIsActive(this.FLAG_STRIP_UNLIKELYS))this._removeFlag(this.FLAG_STRIP_UNLIKELYS);else if(this._flagIsActive(this.FLAG_WEIGHT_CLASSES))this._removeFlag(this.FLAG_WEIGHT_CLASSES);else if(this._flagIsActive(this.FLAG_CLEAN_CONDITIONALLY))this._removeFlag(this.FLAG_CLEAN_CONDITIONALLY);else{if(this._attempts.sort(function(a,b){return b.textLength-a.textLength}),!this._attempts[0].textLength)return null;articleContent=this._attempts[0].articleContent,parseSuccessful=!0}if(parseSuccessful){var ancestors=[parentOfTopCandidate,topCandidate].concat(this._getNodeAncestors(parentOfTopCandidate));return this._someNode(ancestors,function(ancestor){if(!ancestor.tagName)return!1;var articleDir=ancestor.getAttribute("dir");return articleDir?(this._articleDir=articleDir,!0):!1}),articleContent}}},_unescapeHtmlEntities(str){if(!str)return str;var htmlEscapeMap=this.HTML_ESCAPE_MAP;return str.replace(/&(quot|amp|apos|lt|gt);/g,function(_,tag){return htmlEscapeMap[tag]}).replace(/&#(?:x([0-9a-f]+)|([0-9]+));/gi,function(_,hex,numStr){var num=parseInt(hex||numStr,hex?16:10);return(num==0||num>1114111||num>=55296&&num<=57343)&&(num=65533),String.fromCodePoint(num)})},_getJSONLD(doc){var scripts=this._getAllNodesWithTag(doc,["script"]),metadata;return this._forEachNode(scripts,function(jsonLdElement){if(!metadata&&jsonLdElement.getAttribute("type")==="application/ld+json")try{var content=jsonLdElement.textContent.replace(/^\s*<!\[CDATA\[|\]\]>\s*$/g,""),parsed=JSON.parse(content);if(Array.isArray(parsed)&&(parsed=parsed.find(it=>it["@type"]&&it["@type"].match(this.REGEXPS.jsonLdArticleTypes)),!parsed))return;var schemaDotOrgRegex=/^https?\:\/\/schema\.org\/?$/,matches=typeof parsed["@context"]=="string"&&parsed["@context"].match(schemaDotOrgRegex)||typeof parsed["@context"]=="object"&&typeof parsed["@context"]["@vocab"]=="string"&&parsed["@context"]["@vocab"].match(schemaDotOrgRegex);if(!matches||(!parsed["@type"]&&Array.isArray(parsed["@graph"])&&(parsed=parsed["@graph"].find(it=>(it["@type"]||"").match(this.REGEXPS.jsonLdArticleTypes))),!parsed||!parsed["@type"]||!parsed["@type"].match(this.REGEXPS.jsonLdArticleTypes)))return;if(metadata={},typeof parsed.name=="string"&&typeof parsed.headline=="string"&&parsed.name!==parsed.headline){var title=this._getArticleTitle(),nameMatches=this._textSimilarity(parsed.name,title)>.75,headlineMatches=this._textSimilarity(parsed.headline,title)>.75;headlineMatches&&!nameMatches?metadata.title=parsed.headline:metadata.title=parsed.name}else typeof parsed.name=="string"?metadata.title=parsed.name.trim():typeof parsed.headline=="string"&&(metadata.title=parsed.headline.trim());parsed.author&&(typeof parsed.author.name=="string"?metadata.byline=parsed.author.name.trim():Array.isArray(parsed.author)&&parsed.author[0]&&typeof parsed.author[0].name=="string"&&(metadata.byline=parsed.author.filter(function(author){return author&&typeof author.name=="string"}).map(function(author){return author.name.trim()}).join(", "))),typeof parsed.description=="string"&&(metadata.excerpt=parsed.description.trim()),parsed.publisher&&typeof parsed.publisher.name=="string"&&(metadata.siteName=parsed.publisher.name.trim()),typeof parsed.datePublished=="string"&&(metadata.datePublished=parsed.datePublished.trim())}catch(err){this.log(err.message)}}),metadata||{}},_getArticleMetadata(jsonld){var metadata={},values={},metaElements=this._doc.getElementsByTagName("meta"),propertyPattern=/\s*(article|dc|dcterm|og|twitter)\s*:\s*(author|creator|description|published_time|title|site_name)\s*/gi,namePattern=/^\s*(?:(dc|dcterm|og|twitter|parsely|weibo:(article|webpage))\s*[-\.:]\s*)?(author|creator|pub-date|description|title|site_name)\s*$/i;this._forEachNode(metaElements,function(element){var elementName=element.getAttribute("name"),elementProperty=element.getAttribute("property"),content=element.getAttribute("content");if(content){var matches=null,name=null;elementProperty&&(matches=elementProperty.match(propertyPattern),matches&&(name=matches[0].toLowerCase().replace(/\s/g,""),values[name]=content.trim())),!matches&&elementName&&namePattern.test(elementName)&&(name=elementName,content&&(name=name.toLowerCase().replace(/\s/g,"").replace(/\./g,":"),values[name]=content.trim()))}}),metadata.title=jsonld.title||values["dc:title"]||values["dcterm:title"]||values["og:title"]||values["weibo:article:title"]||values["weibo:webpage:title"]||values.title||values["twitter:title"]||values["parsely-title"],metadata.title||(metadata.title=this._getArticleTitle());let articleAuthor=typeof values["article:author"]=="string"&&!this._isUrl(values["article:author"])?values["article:author"]:void 0;return metadata.byline=jsonld.byline||values["dc:creator"]||values["dcterm:creator"]||values.author||values["parsely-author"]||articleAuthor,metadata.excerpt=jsonld.excerpt||values["dc:description"]||values["dcterm:description"]||values["og:description"]||values["weibo:article:description"]||values["weibo:webpage:description"]||values.description||values["twitter:description"],metadata.siteName=jsonld.siteName||values["og:site_name"],metadata.publishedTime=jsonld.datePublished||values["article:published_time"]||values["parsely-pub-date"]||null,metadata.title=this._unescapeHtmlEntities(metadata.title),metadata.byline=this._unescapeHtmlEntities(metadata.byline),metadata.excerpt=this._unescapeHtmlEntities(metadata.excerpt),metadata.siteName=this._unescapeHtmlEntities(metadata.siteName),metadata.publishedTime=this._unescapeHtmlEntities(metadata.publishedTime),metadata},_isSingleImage(node){for(;node;){if(node.tagName==="IMG")return!0;if(node.children.length!==1||node.textContent.trim()!=="")return!1;node=node.children[0]}return!1},_unwrapNoscriptImages(doc){var imgs=Array.from(doc.getElementsByTagName("img"));this._forEachNode(imgs,function(img){for(var i=0;i<img.attributes.length;i++){var attr=img.attributes[i];switch(attr.name){case"src":case"srcset":case"data-src":case"data-srcset":return}if(/\.(jpg|jpeg|png|webp)/i.test(attr.value))return}img.remove()});var noscripts=Array.from(doc.getElementsByTagName("noscript"));this._forEachNode(noscripts,function(noscript){if(this._isSingleImage(noscript)){var tmp=doc.createElement("div");tmp.innerHTML=noscript.innerHTML;var prevElement=noscript.previousElementSibling;if(prevElement&&this._isSingleImage(prevElement)){var prevImg=prevElement;prevImg.tagName!=="IMG"&&(prevImg=prevElement.getElementsByTagName("img")[0]);for(var newImg=tmp.getElementsByTagName("img")[0],i=0;i<prevImg.attributes.length;i++){var attr=prevImg.attributes[i];if(attr.value!==""&&(attr.name==="src"||attr.name==="srcset"||/\.(jpg|jpeg|png|webp)/i.test(attr.value))){if(newImg.getAttribute(attr.name)===attr.value)continue;var attrName=attr.name;newImg.hasAttribute(attrName)&&(attrName="data-old-"+attrName),newImg.setAttribute(attrName,attr.value)}}noscript.parentNode.replaceChild(tmp.firstElementChild,prevElement)}}})},_removeScripts(doc){this._removeNodes(this._getAllNodesWithTag(doc,["script","noscript"]))},_hasSingleTagInsideElement(element,tag){return element.children.length!=1||element.children[0].tagName!==tag?!1:!this._someNode(element.childNodes,function(node){return node.nodeType===this.TEXT_NODE&&this.REGEXPS.hasContent.test(node.textContent)})},_isElementWithoutContent(node){return node.nodeType===this.ELEMENT_NODE&&!node.textContent.trim().length&&(!node.children.length||node.children.length==node.getElementsByTagName("br").length+node.getElementsByTagName("hr").length)},_hasChildBlockElement(element){return this._someNode(element.childNodes,function(node){return this.DIV_TO_P_ELEMS.has(node.tagName)||this._hasChildBlockElement(node)})},_isPhrasingContent(node){return node.nodeType===this.TEXT_NODE||this.PHRASING_ELEMS.includes(node.tagName)||(node.tagName==="A"||node.tagName==="DEL"||node.tagName==="INS")&&this._everyNode(node.childNodes,this._isPhrasingContent)},_isWhitespace(node){return node.nodeType===this.TEXT_NODE&&node.textContent.trim().length===0||node.nodeType===this.ELEMENT_NODE&&node.tagName==="BR"},_getInnerText(e,normalizeSpaces){normalizeSpaces=typeof normalizeSpaces>"u"?!0:normalizeSpaces;var textContent=e.textContent.trim();return normalizeSpaces?textContent.replace(this.REGEXPS.normalize," "):textContent},_getCharCount(e,s){return s=s||",",this._getInnerText(e).split(s).length-1},_cleanStyles(e){if(!(!e||e.tagName.toLowerCase()==="svg")){for(var i=0;i<this.PRESENTATIONAL_ATTRIBUTES.length;i++)e.removeAttribute(this.PRESENTATIONAL_ATTRIBUTES[i]);this.DEPRECATED_SIZE_ATTRIBUTE_ELEMS.includes(e.tagName)&&(e.removeAttribute("width"),e.removeAttribute("height"));for(var cur=e.firstElementChild;cur!==null;)this._cleanStyles(cur),cur=cur.nextElementSibling}},_getLinkDensity(element){var textLength=this._getInnerText(element).length;if(textLength===0)return 0;var linkLength=0;return this._forEachNode(element.getElementsByTagName("a"),function(linkNode){var href=linkNode.getAttribute("href"),coefficient=href&&this.REGEXPS.hashUrl.test(href)?.3:1;linkLength+=this._getInnerText(linkNode).length*coefficient}),linkLength/textLength},_getClassWeight(e){if(!this._flagIsActive(this.FLAG_WEIGHT_CLASSES))return 0;var weight=0;return typeof e.className=="string"&&e.className!==""&&(this.REGEXPS.negative.test(e.className)&&(weight-=25),this.REGEXPS.positive.test(e.className)&&(weight+=25)),typeof e.id=="string"&&e.id!==""&&(this.REGEXPS.negative.test(e.id)&&(weight-=25),this.REGEXPS.positive.test(e.id)&&(weight+=25)),weight},_clean(e,tag){var isEmbed=["object","embed","iframe"].includes(tag);this._removeNodes(this._getAllNodesWithTag(e,[tag]),function(element){if(isEmbed){for(var i=0;i<element.attributes.length;i++)if(this._allowedVideoRegex.test(element.attributes[i].value))return!1;if(element.tagName==="object"&&this._allowedVideoRegex.test(element.innerHTML))return!1}return!0})},_hasAncestorTag(node,tagName,maxDepth,filterFn){maxDepth=maxDepth||3,tagName=tagName.toUpperCase();for(var depth=0;node.parentNode;){if(maxDepth>0&&depth>maxDepth)return!1;if(node.parentNode.tagName===tagName&&(!filterFn||filterFn(node.parentNode)))return!0;node=node.parentNode,depth++}return!1},_getRowAndColumnCount(table){for(var rows=0,columns=0,trs=table.getElementsByTagName("tr"),i=0;i<trs.length;i++){var rowspan=trs[i].getAttribute("rowspan")||0;rowspan&&(rowspan=parseInt(rowspan,10)),rows+=rowspan||1;for(var columnsInThisRow=0,cells=trs[i].getElementsByTagName("td"),j=0;j<cells.length;j++){var colspan=cells[j].getAttribute("colspan")||0;colspan&&(colspan=parseInt(colspan,10)),columnsInThisRow+=colspan||1}columns=Math.max(columns,columnsInThisRow)}return{rows,columns}},_markDataTables(root){for(var tables=root.getElementsByTagName("table"),i=0;i<tables.length;i++){var table=tables[i],role=table.getAttribute("role");if(role=="presentation"){table._readabilityDataTable=!1;continue}var datatable=table.getAttribute("datatable");if(datatable=="0"){table._readabilityDataTable=!1;continue}var summary=table.getAttribute("summary");if(summary){table._readabilityDataTable=!0;continue}var caption=table.getElementsByTagName("caption")[0];if(caption&&caption.childNodes.length){table._readabilityDataTable=!0;continue}var dataTableDescendants=["col","colgroup","tfoot","thead","th"],descendantExists=function(tag){return!!table.getElementsByTagName(tag)[0]};if(dataTableDescendants.some(descendantExists)){this.log("Data table because found data-y descendant"),table._readabilityDataTable=!0;continue}if(table.getElementsByTagName("table")[0]){table._readabilityDataTable=!1;continue}var sizeInfo=this._getRowAndColumnCount(table);if(sizeInfo.columns==1||sizeInfo.rows==1){table._readabilityDataTable=!1;continue}if(sizeInfo.rows>=10||sizeInfo.columns>4){table._readabilityDataTable=!0;continue}table._readabilityDataTable=sizeInfo.rows*sizeInfo.columns>10}},_fixLazyImages(root){this._forEachNode(this._getAllNodesWithTag(root,["img","picture","figure"]),function(elem){if(elem.src&&this.REGEXPS.b64DataUrl.test(elem.src)){var parts=this.REGEXPS.b64DataUrl.exec(elem.src);if(parts[1]==="image/svg+xml")return;for(var srcCouldBeRemoved=!1,i=0;i<elem.attributes.length;i++){var attr=elem.attributes[i];if(attr.name!=="src"&&/\.(jpg|jpeg|png|webp)/i.test(attr.value)){srcCouldBeRemoved=!0;break}}if(srcCouldBeRemoved){var b64starts=parts[0].length,b64length=elem.src.length-b64starts;b64length<133&&elem.removeAttribute("src")}}if(!((elem.src||elem.srcset&&elem.srcset!="null")&&!elem.className.toLowerCase().includes("lazy"))){for(var j=0;j<elem.attributes.length;j++)if(attr=elem.attributes[j],!(attr.name==="src"||attr.name==="srcset"||attr.name==="alt")){var copyTo=null;if(/\.(jpg|jpeg|png|webp)\s+\d/.test(attr.value)?copyTo="srcset":/^\s*\S+\.(jpg|jpeg|png|webp)\S*\s*$/.test(attr.value)&&(copyTo="src"),copyTo){if(elem.tagName==="IMG"||elem.tagName==="PICTURE")elem.setAttribute(copyTo,attr.value);else if(elem.tagName==="FIGURE"&&!this._getAllNodesWithTag(elem,["img","picture"]).length){var img=this._doc.createElement("img");img.setAttribute(copyTo,attr.value),elem.appendChild(img)}}}}})},_getTextDensity(e,tags){var textLength=this._getInnerText(e,!0).length;if(textLength===0)return 0;var childrenLength=0,children=this._getAllNodesWithTag(e,tags);return this._forEachNode(children,child=>childrenLength+=this._getInnerText(child,!0).length),childrenLength/textLength},_cleanConditionally(e,tag){this._flagIsActive(this.FLAG_CLEAN_CONDITIONALLY)&&this._removeNodes(this._getAllNodesWithTag(e,[tag]),function(node){var isDataTable=function(t){return t._readabilityDataTable},isList=tag==="ul"||tag==="ol";if(!isList){var listLength=0,listNodes=this._getAllNodesWithTag(node,["ul","ol"]);this._forEachNode(listNodes,list=>listLength+=this._getInnerText(list).length),isList=listLength/this._getInnerText(node).length>.9}if(tag==="table"&&isDataTable(node)||this._hasAncestorTag(node,"table",-1,isDataTable)||this._hasAncestorTag(node,"code")||[...node.getElementsByTagName("table")].some(tbl=>tbl._readabilityDataTable))return!1;var weight=this._getClassWeight(node);this.log("Cleaning Conditionally",node);var contentScore=0;if(weight+contentScore<0)return!0;if(this._getCharCount(node,",")<10){for(var p=node.getElementsByTagName("p").length,img=node.getElementsByTagName("img").length,li=node.getElementsByTagName("li").length-100,input=node.getElementsByTagName("input").length,headingDensity=this._getTextDensity(node,["h1","h2","h3","h4","h5","h6"]),embedCount=0,embeds=this._getAllNodesWithTag(node,["object","embed","iframe"]),i=0;i<embeds.length;i++){for(var j=0;j<embeds[i].attributes.length;j++)if(this._allowedVideoRegex.test(embeds[i].attributes[j].value))return!1;if(embeds[i].tagName==="object"&&this._allowedVideoRegex.test(embeds[i].innerHTML))return!1;embedCount++}var innerText=this._getInnerText(node);if(this.REGEXPS.adWords.test(innerText)||this.REGEXPS.loadingWords.test(innerText))return!0;var contentLength=innerText.length,linkDensity=this._getLinkDensity(node),textishTags=["SPAN","LI","TD"].concat(Array.from(this.DIV_TO_P_ELEMS)),textDensity=this._getTextDensity(node,textishTags),isFigureChild=this._hasAncestorTag(node,"figure"),haveToRemove=(()=>{let errs=[];return!isFigureChild&&img>1&&p/img<.5&&errs.push(`Bad p to img ratio (img=${img}, p=${p})`),!isList&&li>p&&errs.push(`Too many li's outside of a list. (li=${li} > p=${p})`),input>Math.floor(p/3)&&errs.push(`Too many inputs per p. (input=${input}, p=${p})`),!isList&&!isFigureChild&&headingDensity<.9&&contentLength<25&&(img===0||img>2)&&linkDensity>0&&errs.push(`Suspiciously short. (headingDensity=${headingDensity}, img=${img}, linkDensity=${linkDensity})`),!isList&&weight<25&&linkDensity>.2+this._linkDensityModifier&&errs.push(`Low weight and a little linky. (linkDensity=${linkDensity})`),weight>=25&&linkDensity>.5+this._linkDensityModifier&&errs.push(`High weight and mostly links. (linkDensity=${linkDensity})`),(embedCount===1&&contentLength<75||embedCount>1)&&errs.push(`Suspicious embed. (embedCount=${embedCount}, contentLength=${contentLength})`),img===0&&textDensity===0&&errs.push(`No useful content. (img=${img}, textDensity=${textDensity})`),errs.length?(this.log("Checks failed",errs),!0):!1})();if(isList&&haveToRemove){for(var x=0;x<node.children.length;x++)if(node.children[x].children.length>1)return haveToRemove;let li_count=node.getElementsByTagName("li").length;if(img==li_count)return!1}return haveToRemove}return!1})},_cleanMatchedNodes(e,filter){for(var endOfSearchMarkerNode=this._getNextNode(e,!0),next=this._getNextNode(e);next&&next!=endOfSearchMarkerNode;)filter.call(this,next,next.className+" "+next.id)?next=this._removeAndGetNext(next):next=this._getNextNode(next)},_cleanHeaders(e){let headingNodes=this._getAllNodesWithTag(e,["h1","h2"]);this._removeNodes(headingNodes,function(node){let shouldRemove=this._getClassWeight(node)<0;return shouldRemove&&this.log("Removing header with low class weight:",node),shouldRemove})},_headerDuplicatesTitle(node){if(node.tagName!="H1"&&node.tagName!="H2")return!1;var heading=this._getInnerText(node,!1);return this.log("Evaluating similarity of header:",heading,this._articleTitle),this._textSimilarity(this._articleTitle,heading)>.75},_flagIsActive(flag){return(this._flags&flag)>0},_removeFlag(flag){this._flags=this._flags&~flag},_isProbablyVisible(node){return(!node.style||node.style.display!="none")&&(!node.style||node.style.visibility!="hidden")&&!node.hasAttribute("hidden")&&(!node.hasAttribute("aria-hidden")||node.getAttribute("aria-hidden")!="true"||node.className&&node.className.includes&&node.className.includes("fallback-image"))},parse(){if(this._maxElemsToParse>0){var numTags=this._doc.getElementsByTagName("*").length;if(numTags>this._maxElemsToParse)throw new Error("Aborting parsing document; "+numTags+" elements found")}this._unwrapNoscriptImages(this._doc);var jsonLd=this._disableJSONLD?{}:this._getJSONLD(this._doc);this._removeScripts(this._doc),this._prepDocument();var metadata=this._getArticleMetadata(jsonLd);this._metadata=metadata,this._articleTitle=metadata.title;var articleContent=this._grabArticle();if(!articleContent)return null;if(this.log("Grabbed: "+articleContent.innerHTML),this._postProcessContent(articleContent),!metadata.excerpt){var paragraphs=articleContent.getElementsByTagName("p");paragraphs.length&&(metadata.excerpt=paragraphs[0].textContent.trim())}var textContent=articleContent.textContent;return{title:this._articleTitle,byline:metadata.byline||this._articleByline,dir:this._articleDir,lang:this._articleLang,content:this._serializer(articleContent),textContent,length:textContent.length,excerpt:metadata.excerpt,siteName:metadata.siteName||this._articleSiteName,publishedTime:metadata.publishedTime}}};typeof module=="object"&&(module.exports=Readability)}});var require_Readability_readerable=__commonJS({"node_modules/@mozilla/readability/Readability-readerable.js"(exports,module){var REGEXPS={unlikelyCandidates:/-ad-|ai2html|banner|breadcrumbs|combx|comment|community|cover-wrap|disqus|extra|footer|gdpr|header|legends|menu|related|remark|replies|rss|shoutbox|sidebar|skyscraper|social|sponsor|supplemental|ad-break|agegate|pagination|pager|popup|yom-remote/i,okMaybeItsACandidate:/and|article|body|column|content|main|shadow/i};function isNodeVisible(node){return(!node.style||node.style.display!="none")&&!node.hasAttribute("hidden")&&(!node.hasAttribute("aria-hidden")||node.getAttribute("aria-hidden")!="true"||node.className&&node.className.includes&&node.className.includes("fallback-image"))}function isProbablyReaderable(doc,options={}){typeof options=="function"&&(options={visibilityChecker:options});var defaultOptions={minScore:20,minContentLength:140,visibilityChecker:isNodeVisible};options=Object.assign(defaultOptions,options);var nodes=doc.querySelectorAll("p, pre, article"),brNodes=doc.querySelectorAll("div > br");if(brNodes.length){var set=new Set(nodes);[].forEach.call(brNodes,function(node){set.add(node.parentNode)}),nodes=Array.from(set)}var score=0;return[].some.call(nodes,function(node){if(!options.visibilityChecker(node))return!1;var matchString=node.className+" "+node.id;if(REGEXPS.unlikelyCandidates.test(matchString)&&!REGEXPS.okMaybeItsACandidate.test(matchString)||node.matches("li p"))return!1;var textContentLength=node.textContent.trim().length;return textContentLength<options.minContentLength?!1:(score+=Math.sqrt(textContentLength-options.minContentLength),score>options.minScore)})}typeof module=="object"&&(module.exports=isProbablyReaderable)}});var require_readability=__commonJS({"node_modules/@mozilla/readability/index.js"(exports,module){var Readability=require_Readability(),isProbablyReaderable=require_Readability_readerable();module.exports={Readability,isProbablyReaderable}}});export default require_readability();
@@ -0,0 +1,2 @@
1
+ import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
2
+ import{require_turndown_cjs}from"./chunk-XSR434CO.js";import"./chunk-JXWJOIH4.js";export default require_turndown_cjs();
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
3
- import{configureHttpDispatcher,main}from"./chunks/chunk-RM336IEI.js";import{APP_NAME,ENV_PREFIX}from"./chunks/chunk-2LC3S3VV.js";import"./chunks/chunk-MA4UUCYX.js";import"./chunks/chunk-USJZMAIR.js";import"./chunks/chunk-SGTGQNNP.js";import"./chunks/chunk-ECWELYBH.js";import"./chunks/chunk-74NVHVNZ.js";import"./chunks/chunk-PL7O7J4J.js";import"./chunks/chunk-7DDKXS2Q.js";import"./chunks/chunk-D7XAASZM.js";import"./chunks/chunk-E6KP6V7F.js";import"./chunks/chunk-72KO4OMP.js";import"./chunks/chunk-JXWJOIH4.js";function setupCli(){process.title=APP_NAME,process.env.PI_CODING_AGENT="true",process.env[`${ENV_PREFIX}_CODING_AGENT`]="true",process.env.AI_AGENT="pi",process.emitWarning=(()=>{}),configureHttpDispatcher()}setupCli();main(process.argv.slice(2));
3
+ import{configureHttpDispatcher,main}from"./chunks/chunk-I47ZWR55.js";import"./chunks/chunk-D6HHRSB5.js";import{APP_NAME,ENV_PREFIX}from"./chunks/chunk-LI2YVPWP.js";import"./chunks/chunk-EY4DWHQU.js";import"./chunks/chunk-SGTGQNNP.js";import"./chunks/chunk-ECWELYBH.js";import"./chunks/chunk-74NVHVNZ.js";import"./chunks/chunk-PL7O7J4J.js";import"./chunks/chunk-7T6XCLJF.js";import"./chunks/chunk-USJZMAIR.js";import"./chunks/chunk-7DDKXS2Q.js";import"./chunks/chunk-D7XAASZM.js";import"./chunks/chunk-E6KP6V7F.js";import"./chunks/chunk-72KO4OMP.js";import"./chunks/chunk-JXWJOIH4.js";function setupCli(){process.title=APP_NAME,process.env.PI_CODING_AGENT="true",process.env[`${ENV_PREFIX}_CODING_AGENT`]="true",process.env.AI_AGENT="pi",process.emitWarning=(()=>{}),configureHttpDispatcher()}setupCli();main(process.argv.slice(2));
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
2
- import{AgentExecInputError,AgentSession,AgentSessionRuntime,ArminComponent,AssistantMessageComponent,BashExecutionComponent,BorderedLoader,BranchSummaryMessageComponent,CURRENT_SESSION_VERSION,CompactionSummaryMessageComponent,CredentialSynchronizationError,CustomEditor,CustomMessageComponent,DEFAULT_COMPACTION_SETTINGS,DEFAULT_MAX_BYTES,DEFAULT_MAX_LINES,DefaultPackageManager,DefaultResourceLoader,DynamicBorder,ExtensionEditorComponent,ExtensionInputComponent,ExtensionRunner,ExtensionSelectorComponent,FooterComponent,HUMAIN_AGENT_EXECUTION_FAILURE_CODES,HUMAIN_AGENT_EXECUTION_SCHEMA_VERSION,HumainAgentArtifactSchema,HumainAgentExecutionClaimSchema,HumainAgentExecutionControlsSchema,HumainAgentExecutionOutcomeSchema,HumainAgentExecutionRequestSchema,HumainAgentExecutionResponseSchema,HumainAgentRouteRefSchema,HumainAgentUsageSchema,InteractiveMode,LoginDialogComponent,ModelRegistry,ModelRuntime,ModelSelectorComponent,OAuthSelectorComponent,ProjectTrustStore,RpcClient,SessionManager,SessionSelectorComponent,SettingsManager,SettingsSelectorComponent,ShowImagesSelectorComponent,SkillInvocationMessageComponent,Theme,ThemeSelectorComponent,ThinkingSelectorComponent,ToolExecutionComponent,TreeSelectorComponent,UserMessageComponent,UserMessageSelectorComponent,buildContextEntries,buildSessionContext,calculateContextTokens,collectEntriesForBranchSummary,compact,convertToLlm,convertToPng,copyToClipboard,createAgentSession,createAgentSessionFromServices,createAgentSessionRuntime,createAgentSessionServices,createBashTool,createBashToolDefinition,createCodingTools,createEditTool,createEditToolDefinition,createEventBus,createExtensionRuntime,createFindTool,createFindToolDefinition,createGrepTool,createGrepToolDefinition,createLocalBashOperations,createLocalPowerShellOperations,createLsTool,createLsToolDefinition,createPiAgentExecutionHost,createPowerShellTool,createPowerShellToolDefinition,createReadOnlyTools,createReadTool,createReadToolDefinition,createSyntheticSourceInfo,createWriteTool,createWriteToolDefinition,defineTool,detectSupportedImageMimeTypeFromFile,discoverAndLoadExtensions,estimateTokens,executeHumainAgentRequest,findCutPoint,findTurnStartIndex,formatSize,formatSkillsForPrompt,generateBranchSummary,generateDiffString,generateSummary,generateSummaryWithUsage,generateUnifiedPatch,getLanguageFromPath,getLastAssistantUsage,getLatestCompactionEntry,getMarkdownTheme,getPowerShellConfig,getSelectListTheme,getSettingsListTheme,getShellConfig,hasTrustRequiringProjectResources,highlightCode,initTheme,isBashToolResult,isEditToolResult,isFindToolResult,isGrepToolResult,isLsToolResult,isPowerShellToolResult,isReadToolResult,isToolCallEventType,isWriteToolResult,keyHint,keyText,loadProjectContextFiles,loadSkills,loadSkillsFromDir,main,migrateSessionEntries,parseArgs,parseFrontmatter,parseHumainAgentExecutionRequest,parseHumainAgentExecutionResponse,parseSessionEntries,parseSkillBlock,prepareBranchEntries,rawKeyHint,readStoredCredential,renderDiff,resolveCliModel,resolveModelScopeWithDiagnostics,runAgentExecMode,runPrintMode,runRpcMode,serializeConversation,sessionEntryToContextMessages,shouldCompact,stripFrontmatter,truncateHead,truncateLine,truncateTail,truncateToVisualLines,withFileMutationQueue,wrapRegisteredTool,wrapRegisteredTools}from"./chunks/chunk-RM336IEI.js";import{CONFIG_DIR_NAME,UPSTREAM_PI_VERSION,VERSION,formatDimensionNote,getAgentDir,getDocsPath,getExamplesPath,getPackageDir,getReadmePath,resizeImage}from"./chunks/chunk-2LC3S3VV.js";import"./chunks/chunk-MA4UUCYX.js";import"./chunks/chunk-USJZMAIR.js";import"./chunks/chunk-SGTGQNNP.js";import"./chunks/chunk-ECWELYBH.js";import"./chunks/chunk-74NVHVNZ.js";import"./chunks/chunk-PL7O7J4J.js";import"./chunks/chunk-7DDKXS2Q.js";import"./chunks/chunk-D7XAASZM.js";import"./chunks/chunk-E6KP6V7F.js";import"./chunks/chunk-72KO4OMP.js";import"./chunks/chunk-JXWJOIH4.js";export{AgentExecInputError,AgentSession,AgentSessionRuntime,ArminComponent,AssistantMessageComponent,BashExecutionComponent,BorderedLoader,BranchSummaryMessageComponent,CONFIG_DIR_NAME,CURRENT_SESSION_VERSION,CompactionSummaryMessageComponent,CredentialSynchronizationError,CustomEditor,CustomMessageComponent,DEFAULT_COMPACTION_SETTINGS,DEFAULT_MAX_BYTES,DEFAULT_MAX_LINES,DefaultPackageManager,DefaultResourceLoader,DynamicBorder,ExtensionEditorComponent,ExtensionInputComponent,ExtensionRunner,ExtensionSelectorComponent,FooterComponent,HUMAIN_AGENT_EXECUTION_FAILURE_CODES,HUMAIN_AGENT_EXECUTION_SCHEMA_VERSION,HumainAgentArtifactSchema,HumainAgentExecutionClaimSchema,HumainAgentExecutionControlsSchema,HumainAgentExecutionOutcomeSchema,HumainAgentExecutionRequestSchema,HumainAgentExecutionResponseSchema,HumainAgentRouteRefSchema,HumainAgentUsageSchema,InteractiveMode,LoginDialogComponent,ModelRegistry,ModelRuntime,ModelSelectorComponent,OAuthSelectorComponent,ProjectTrustStore,RpcClient,SessionManager,SessionSelectorComponent,SettingsManager,SettingsSelectorComponent,ShowImagesSelectorComponent,SkillInvocationMessageComponent,Theme,ThemeSelectorComponent,ThinkingSelectorComponent,ToolExecutionComponent,TreeSelectorComponent,UPSTREAM_PI_VERSION,UserMessageComponent,UserMessageSelectorComponent,VERSION,buildContextEntries,buildSessionContext,calculateContextTokens,collectEntriesForBranchSummary,compact,convertToLlm,convertToPng,copyToClipboard,createAgentSession,createAgentSessionFromServices,createAgentSessionRuntime,createAgentSessionServices,createBashTool,createBashToolDefinition,createCodingTools,createEditTool,createEditToolDefinition,createEventBus,createExtensionRuntime,createFindTool,createFindToolDefinition,createGrepTool,createGrepToolDefinition,createLocalBashOperations,createLocalPowerShellOperations,createLsTool,createLsToolDefinition,createPiAgentExecutionHost,createPowerShellTool,createPowerShellToolDefinition,createReadOnlyTools,createReadTool,createReadToolDefinition,createSyntheticSourceInfo,createWriteTool,createWriteToolDefinition,defineTool,detectSupportedImageMimeTypeFromFile,discoverAndLoadExtensions,estimateTokens,executeHumainAgentRequest,findCutPoint,findTurnStartIndex,formatDimensionNote,formatSize,formatSkillsForPrompt,generateBranchSummary,generateDiffString,generateSummary,generateSummaryWithUsage,generateUnifiedPatch,getAgentDir,getDocsPath,getExamplesPath,getLanguageFromPath,getLastAssistantUsage,getLatestCompactionEntry,getMarkdownTheme,getPackageDir,getPowerShellConfig,getReadmePath,getSelectListTheme,getSettingsListTheme,getShellConfig,hasTrustRequiringProjectResources,highlightCode,initTheme,isBashToolResult,isEditToolResult,isFindToolResult,isGrepToolResult,isLsToolResult,isPowerShellToolResult,isReadToolResult,isToolCallEventType,isWriteToolResult,keyHint,keyText,loadProjectContextFiles,loadSkills,loadSkillsFromDir,main,migrateSessionEntries,parseArgs,parseFrontmatter,parseHumainAgentExecutionRequest,parseHumainAgentExecutionResponse,parseSessionEntries,parseSkillBlock,prepareBranchEntries,rawKeyHint,readStoredCredential,renderDiff,resizeImage,resolveCliModel,resolveModelScopeWithDiagnostics,runAgentExecMode,runPrintMode,runRpcMode,serializeConversation,sessionEntryToContextMessages,shouldCompact,stripFrontmatter,truncateHead,truncateLine,truncateTail,truncateToVisualLines,withFileMutationQueue,wrapRegisteredTool,wrapRegisteredTools};
2
+ import{AgentExecInputError,AgentSession,AgentSessionRuntime,ArminComponent,AssistantMessageComponent,BashExecutionComponent,BorderedLoader,BranchSummaryMessageComponent,CURRENT_SESSION_VERSION,CompactionSummaryMessageComponent,CredentialSynchronizationError,CustomEditor,CustomMessageComponent,DEFAULT_COMPACTION_SETTINGS,DEFAULT_MAX_BYTES,DEFAULT_MAX_LINES,DefaultPackageManager,DefaultResourceLoader,DynamicBorder,ExtensionEditorComponent,ExtensionInputComponent,ExtensionRunner,ExtensionSelectorComponent,FooterComponent,HUMAIN_AGENT_EXECUTION_FAILURE_CODES,HUMAIN_AGENT_EXECUTION_SCHEMA_VERSION,HumainAgentArtifactSchema,HumainAgentExecutionClaimSchema,HumainAgentExecutionControlsSchema,HumainAgentExecutionOutcomeSchema,HumainAgentExecutionRequestSchema,HumainAgentExecutionResponseSchema,HumainAgentRouteRefSchema,HumainAgentUsageSchema,InteractiveMode,LoginDialogComponent,ModelRegistry,ModelRuntime,ModelSelectorComponent,OAuthSelectorComponent,ProjectTrustStore,RpcClient,SessionManager,SessionSelectorComponent,SettingsManager,SettingsSelectorComponent,ShowImagesSelectorComponent,SkillInvocationMessageComponent,Theme,ThemeSelectorComponent,ThinkingSelectorComponent,ToolExecutionComponent,TreeSelectorComponent,UserMessageComponent,UserMessageSelectorComponent,buildContextEntries,buildSessionContext,calculateContextTokens,collectEntriesForBranchSummary,compact,convertToLlm,convertToPng,copyToClipboard,createAgentSession,createAgentSessionFromServices,createAgentSessionRuntime,createAgentSessionServices,createBashTool,createBashToolDefinition,createCodingTools,createEditTool,createEditToolDefinition,createEventBus,createExtensionRuntime,createFindTool,createFindToolDefinition,createGrepTool,createGrepToolDefinition,createLocalBashOperations,createLocalPowerShellOperations,createLsTool,createLsToolDefinition,createPiAgentExecutionHost,createPowerShellTool,createPowerShellToolDefinition,createReadOnlyTools,createReadTool,createReadToolDefinition,createSyntheticSourceInfo,createWriteTool,createWriteToolDefinition,defineTool,detectSupportedImageMimeTypeFromFile,discoverAndLoadExtensions,estimateTokens,executeHumainAgentRequest,findCutPoint,findTurnStartIndex,formatSize,formatSkillsForPrompt,generateBranchSummary,generateDiffString,generateSummary,generateSummaryWithUsage,generateUnifiedPatch,getLanguageFromPath,getLastAssistantUsage,getLatestCompactionEntry,getMarkdownTheme,getPowerShellConfig,getSelectListTheme,getSettingsListTheme,getShellConfig,hasTrustRequiringProjectResources,highlightCode,initTheme,isBashToolResult,isEditToolResult,isFindToolResult,isGrepToolResult,isLsToolResult,isPowerShellToolResult,isReadToolResult,isToolCallEventType,isWriteToolResult,keyHint,keyText,loadProjectContextFiles,loadSkills,loadSkillsFromDir,main,migrateSessionEntries,parseArgs,parseFrontmatter,parseHumainAgentExecutionRequest,parseHumainAgentExecutionResponse,parseSessionEntries,parseSkillBlock,prepareBranchEntries,rawKeyHint,readStoredCredential,renderDiff,resolveCliModel,resolveModelScopeWithDiagnostics,runAgentExecMode,runPrintMode,runRpcMode,serializeConversation,sessionEntryToContextMessages,shouldCompact,stripFrontmatter,truncateHead,truncateLine,truncateTail,truncateToVisualLines,withFileMutationQueue,wrapRegisteredTool,wrapRegisteredTools}from"./chunks/chunk-I47ZWR55.js";import"./chunks/chunk-D6HHRSB5.js";import{CONFIG_DIR_NAME,UPSTREAM_PI_VERSION,VERSION,formatDimensionNote,getAgentDir,getDocsPath,getExamplesPath,getPackageDir,getReadmePath,resizeImage}from"./chunks/chunk-LI2YVPWP.js";import"./chunks/chunk-EY4DWHQU.js";import"./chunks/chunk-SGTGQNNP.js";import"./chunks/chunk-ECWELYBH.js";import"./chunks/chunk-74NVHVNZ.js";import"./chunks/chunk-PL7O7J4J.js";import"./chunks/chunk-7T6XCLJF.js";import"./chunks/chunk-USJZMAIR.js";import"./chunks/chunk-7DDKXS2Q.js";import"./chunks/chunk-D7XAASZM.js";import"./chunks/chunk-E6KP6V7F.js";import"./chunks/chunk-72KO4OMP.js";import"./chunks/chunk-JXWJOIH4.js";export{AgentExecInputError,AgentSession,AgentSessionRuntime,ArminComponent,AssistantMessageComponent,BashExecutionComponent,BorderedLoader,BranchSummaryMessageComponent,CONFIG_DIR_NAME,CURRENT_SESSION_VERSION,CompactionSummaryMessageComponent,CredentialSynchronizationError,CustomEditor,CustomMessageComponent,DEFAULT_COMPACTION_SETTINGS,DEFAULT_MAX_BYTES,DEFAULT_MAX_LINES,DefaultPackageManager,DefaultResourceLoader,DynamicBorder,ExtensionEditorComponent,ExtensionInputComponent,ExtensionRunner,ExtensionSelectorComponent,FooterComponent,HUMAIN_AGENT_EXECUTION_FAILURE_CODES,HUMAIN_AGENT_EXECUTION_SCHEMA_VERSION,HumainAgentArtifactSchema,HumainAgentExecutionClaimSchema,HumainAgentExecutionControlsSchema,HumainAgentExecutionOutcomeSchema,HumainAgentExecutionRequestSchema,HumainAgentExecutionResponseSchema,HumainAgentRouteRefSchema,HumainAgentUsageSchema,InteractiveMode,LoginDialogComponent,ModelRegistry,ModelRuntime,ModelSelectorComponent,OAuthSelectorComponent,ProjectTrustStore,RpcClient,SessionManager,SessionSelectorComponent,SettingsManager,SettingsSelectorComponent,ShowImagesSelectorComponent,SkillInvocationMessageComponent,Theme,ThemeSelectorComponent,ThinkingSelectorComponent,ToolExecutionComponent,TreeSelectorComponent,UPSTREAM_PI_VERSION,UserMessageComponent,UserMessageSelectorComponent,VERSION,buildContextEntries,buildSessionContext,calculateContextTokens,collectEntriesForBranchSummary,compact,convertToLlm,convertToPng,copyToClipboard,createAgentSession,createAgentSessionFromServices,createAgentSessionRuntime,createAgentSessionServices,createBashTool,createBashToolDefinition,createCodingTools,createEditTool,createEditToolDefinition,createEventBus,createExtensionRuntime,createFindTool,createFindToolDefinition,createGrepTool,createGrepToolDefinition,createLocalBashOperations,createLocalPowerShellOperations,createLsTool,createLsToolDefinition,createPiAgentExecutionHost,createPowerShellTool,createPowerShellToolDefinition,createReadOnlyTools,createReadTool,createReadToolDefinition,createSyntheticSourceInfo,createWriteTool,createWriteToolDefinition,defineTool,detectSupportedImageMimeTypeFromFile,discoverAndLoadExtensions,estimateTokens,executeHumainAgentRequest,findCutPoint,findTurnStartIndex,formatDimensionNote,formatSize,formatSkillsForPrompt,generateBranchSummary,generateDiffString,generateSummary,generateSummaryWithUsage,generateUnifiedPatch,getAgentDir,getDocsPath,getExamplesPath,getLanguageFromPath,getLastAssistantUsage,getLatestCompactionEntry,getMarkdownTheme,getPackageDir,getPowerShellConfig,getReadmePath,getSelectListTheme,getSettingsListTheme,getShellConfig,hasTrustRequiringProjectResources,highlightCode,initTheme,isBashToolResult,isEditToolResult,isFindToolResult,isGrepToolResult,isLsToolResult,isPowerShellToolResult,isReadToolResult,isToolCallEventType,isWriteToolResult,keyHint,keyText,loadProjectContextFiles,loadSkills,loadSkillsFromDir,main,migrateSessionEntries,parseArgs,parseFrontmatter,parseHumainAgentExecutionRequest,parseHumainAgentExecutionResponse,parseSessionEntries,parseSkillBlock,prepareBranchEntries,rawKeyHint,readStoredCredential,renderDiff,resizeImage,resolveCliModel,resolveModelScopeWithDiagnostics,runAgentExecMode,runPrintMode,runRpcMode,serializeConversation,sessionEntryToContextMessages,shouldCompact,stripFrontmatter,truncateHead,truncateLine,truncateTail,truncateToVisualLines,withFileMutationQueue,wrapRegisteredTool,wrapRegisteredTools};
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
3
- import{configureHttpDispatcher,main}from"./chunks/chunk-RM336IEI.js";import{APP_NAME}from"./chunks/chunk-2LC3S3VV.js";import"./chunks/chunk-MA4UUCYX.js";import"./chunks/chunk-USJZMAIR.js";import"./chunks/chunk-SGTGQNNP.js";import"./chunks/chunk-ECWELYBH.js";import"./chunks/chunk-74NVHVNZ.js";import"./chunks/chunk-PL7O7J4J.js";import"./chunks/chunk-7DDKXS2Q.js";import"./chunks/chunk-D7XAASZM.js";import"./chunks/chunk-E6KP6V7F.js";import"./chunks/chunk-72KO4OMP.js";import"./chunks/chunk-JXWJOIH4.js";process.title=`${APP_NAME}-rpc`;process.env.PI_CODING_AGENT="true";process.env.AI_AGENT="pi";process.emitWarning=(()=>{});configureHttpDispatcher();main(["--mode","rpc",...process.argv.slice(2)]);
3
+ import{configureHttpDispatcher,main}from"./chunks/chunk-I47ZWR55.js";import"./chunks/chunk-D6HHRSB5.js";import{APP_NAME}from"./chunks/chunk-LI2YVPWP.js";import"./chunks/chunk-EY4DWHQU.js";import"./chunks/chunk-SGTGQNNP.js";import"./chunks/chunk-ECWELYBH.js";import"./chunks/chunk-74NVHVNZ.js";import"./chunks/chunk-PL7O7J4J.js";import"./chunks/chunk-7T6XCLJF.js";import"./chunks/chunk-USJZMAIR.js";import"./chunks/chunk-7DDKXS2Q.js";import"./chunks/chunk-D7XAASZM.js";import"./chunks/chunk-E6KP6V7F.js";import"./chunks/chunk-72KO4OMP.js";import"./chunks/chunk-JXWJOIH4.js";process.title=`${APP_NAME}-rpc`;process.env.PI_CODING_AGENT="true";process.env.AI_AGENT="pi";process.emitWarning=(()=>{});configureHttpDispatcher();main(["--mode","rpc",...process.argv.slice(2)]);
package/dist/cli.js CHANGED
@@ -1,6 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import { setupCli } from "./cli/setup.js";
3
- import { main } from "./main.js";
4
- setupCli();
5
- main(process.argv.slice(2));
6
- //# sourceMappingURL=cli.js.map
2
+ import "./bundle/cli.js";
@@ -14,7 +14,7 @@
14
14
  */
15
15
  import { readFileSync } from "node:fs";
16
16
  import { basename, dirname } from "node:path";
17
- import { contentText } from "@earendil-works/pi-ai";
17
+ import { contentText, getAssistantRetryDelayMs } from "@earendil-works/pi-ai";
18
18
  import { clampThinkingLevel, cleanupSessionResources, getSupportedThinkingLevels, isContextOverflow, isRecoverableLength, isRetryableAssistantError, modelsAreEqual, resetApiProviders, streamSimple, } from "@earendil-works/pi-ai/compat";
19
19
  import { getThemeByName, theme } from "../modes/interactive/theme/theme.js";
20
20
  import { stripFrontmatter } from "../utils/frontmatter.js";
@@ -2272,7 +2272,7 @@ export class AgentSession {
2272
2272
  this._retryAttempt--;
2273
2273
  return false;
2274
2274
  }
2275
- const delayMs = settings.baseDelayMs * 2 ** (this._retryAttempt - 1);
2275
+ const delayMs = getAssistantRetryDelayMs(message, settings.baseDelayMs * 2 ** (this._retryAttempt - 1));
2276
2276
  this._emit({
2277
2277
  type: "auto_retry_start",
2278
2278
  attempt: this._retryAttempt,