@seanhogg/builderforce-agents 2026.10.9 → 2026.10.10

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 (96) hide show
  1. package/dist/{audio-preflight-CvvHdoWy.js → audio-preflight-Dm9zyfJq.js} +1 -1
  2. package/dist/build-info.json +3 -3
  3. package/dist/{builderforce-BmrsVdFw.js → builderforce-2EpP2M8q.js} +3 -3
  4. package/dist/{builderforce-Bwyw0GJ6.js → builderforce-Cyg20uU8.js} +3 -3
  5. package/dist/{builderforce-onboarding-DuUfZ6oL.js → builderforce-onboarding-C89jVb-9.js} +1 -1
  6. package/dist/{builderforce-onboarding-Dq6VUSKZ.js → builderforce-onboarding-D5A-wEs-.js} +1 -1
  7. package/dist/chrome-DUBgoZpO.js +4 -0
  8. package/dist/{command-registry-COUcUWby.js → command-registry-CDcuHGpx.js} +1 -1
  9. package/dist/{command-registry-4_K-lfW5.js → command-registry-hHegQvBn.js} +1 -1
  10. package/dist/{completion-cli-DlvHqL86.js → completion-cli-Bqr0W4L6.js} +1 -1
  11. package/dist/{completion-cli-B2qcVd6q.js → completion-cli-Ch9ozmkg.js} +1 -1
  12. package/dist/{completion-cli-SdcQ-kQj.js → completion-cli-Ck0FTqPT.js} +1 -1
  13. package/dist/{completion-cli-DpFvU4Qn.js → completion-cli-Do4vXo1k.js} +1 -1
  14. package/dist/{doctor-completion-BSotFS6p.js → doctor-completion-BjBTLcoC.js} +1 -1
  15. package/dist/{doctor-completion-DVxbs-74.js → doctor-completion-Ccs-JEvV.js} +1 -1
  16. package/dist/{embedded-D-citLF2.js → embedded-cvG_LpfQ.js} +6 -6
  17. package/dist/entry.js +1 -1
  18. package/dist/extensionAPI.js +1 -1
  19. package/dist/{gateway-cli-D2Bg1Um6.js → gateway-cli-CiHNwzdS.js} +1 -1
  20. package/dist/{gateway-cli-DFEo8C0z.js → gateway-cli-z47dfosr.js} +1 -1
  21. package/dist/index.js +2 -2
  22. package/dist/{onboard-DfMVh1bM.js → onboard-D4uXN5Ec.js} +1 -1
  23. package/dist/{onboard-BVmZ4jMw.js → onboard-cB37uVxy.js} +1 -1
  24. package/dist/{onboard-interactive-B3-KBZbZ.js → onboard-interactive-CnXgQrpI.js} +1 -1
  25. package/dist/{onboard-interactive-Dc_7URYb.js → onboard-interactive-CoFFuSJT.js} +1 -1
  26. package/dist/{onboard-interactive-zgjmwJz-.js → onboard-interactive-gvfRcLOt.js} +1 -1
  27. package/dist/{onboard-interactive-DYJttZ2w.js → onboard-interactive-vwqLS6pe.js} +1 -1
  28. package/dist/{onboarding-CP9rrz8y.js → onboarding-B9GqKO5L.js} +2 -2
  29. package/dist/{onboarding-D4-HDbmU.js → onboarding-DdKW5K8Y.js} +2 -2
  30. package/dist/{onboarding.finalize-C2kZi7F0.js → onboarding.finalize-CcuO4Yxw.js} +1 -1
  31. package/dist/{onboarding.finalize-BfWXPgX7.js → onboarding.finalize-D3mTpOdc.js} +1 -1
  32. package/dist/plugin-sdk/{accounts-Cy3WCbWg.js → accounts-BwreSNAR.js} +1 -1
  33. package/dist/plugin-sdk/{active-listener-DVWVNlT9.js → active-listener-DpQ7aGYd.js} +1 -1
  34. package/dist/plugin-sdk/{agent-scope-DgKN27hJ.js → agent-scope-BQByW0cD.js} +1 -1
  35. package/dist/plugin-sdk/{api-key-rotation-ftXf7mBZ.js → api-key-rotation-7YdImWrh.js} +1 -1
  36. package/dist/plugin-sdk/{audio-preflight-CfTmmeS-.js → audio-preflight-EbkaATDO.js} +1 -1
  37. package/dist/plugin-sdk/{auth-json-BrNBg87n.js → auth-json-DK6qod1_.js} +1 -1
  38. package/dist/plugin-sdk/{bindings-CH-YLOLC.js → bindings-CDEzl4kl.js} +1 -1
  39. package/dist/plugin-sdk/{channel-web-B6rg0Rbf.js → channel-web-D2KuONp0.js} +1 -1
  40. package/dist/plugin-sdk/{chrome-CuXP-hes.js → chrome-SOXFIkUM.js} +1 -1
  41. package/dist/plugin-sdk/{chunk-C94IAOuf.js → chunk-cW0POl22.js} +1 -1
  42. package/dist/plugin-sdk/{command-format-B3XMq_73.js → command-format-CAX9XFjI.js} +1 -1
  43. package/dist/plugin-sdk/{common-n0l_XN-S.js → common-BxEWhN2X.js} +1 -1
  44. package/dist/plugin-sdk/{config-DsXZsCkJ.js → config-v1EU9Ll8.js} +2 -2
  45. package/dist/plugin-sdk/{fetch-B-GxSYRO.js → fetch-DH0Y8iyO.js} +1 -1
  46. package/dist/plugin-sdk/index.js +1 -1
  47. package/dist/plugin-sdk/{login-_my8QwPP.js → login-d1zBgykF.js} +1 -1
  48. package/dist/plugin-sdk/{login-qr-BaePtXuG.js → login-qr-B6exvQnN.js} +1 -1
  49. package/dist/plugin-sdk/{manager-BsC-4ymy.js → manager-BH_bmGds.js} +1 -1
  50. package/dist/plugin-sdk/{markdown-tables-BUfhHgfs.js → markdown-tables-Epim9b-0.js} +1 -1
  51. package/dist/plugin-sdk/{message-channel-CuZ2xOAM.js → message-channel-sBPQc_-T.js} +1 -1
  52. package/dist/plugin-sdk/{model-catalog-yuiXVcmw.js → model-catalog-cXsza5GU.js} +1 -1
  53. package/dist/plugin-sdk/{model-selection-BtgvnqB5.js → model-selection-K82MAGlL.js} +1 -1
  54. package/dist/plugin-sdk/{outbound-D_attiyO.js → outbound-Chn_H1O7.js} +1 -1
  55. package/dist/plugin-sdk/{plugins-BdkC9v5E.js → plugins-CaUOZBVb.js} +1 -1
  56. package/dist/plugin-sdk/{pw-ai-A7Rathx6.js → pw-ai-BIiJF7ZD.js} +1 -1
  57. package/dist/plugin-sdk/{qmd-manager-Dxn0jCpE.js → qmd-manager-BRe5fGZw.js} +1 -1
  58. package/dist/plugin-sdk/{registry-CZHRcH-q.js → registry-DJq2Cvo9.js} +1 -1
  59. package/dist/plugin-sdk/{render-CuA_WRX5.js → render-BUCRXPIk.js} +1 -1
  60. package/dist/plugin-sdk/{replies-DmLfO-pg.js → replies-Cz5OD3qN.js} +1 -1
  61. package/dist/plugin-sdk/{reply-3-ne-N_7.js → reply-D5Uk7pUv.js} +9 -9
  62. package/dist/plugin-sdk/{reply-prefix-w7kAvH11.js → reply-prefix-CCymsmsP.js} +1 -1
  63. package/dist/plugin-sdk/{resolve-route-0sbvl4ZN.js → resolve-route-DN1J7Wyc.js} +1 -1
  64. package/dist/plugin-sdk/{runner-4UfrAQnx.js → runner-CYkuO7Fh.js} +4 -4
  65. package/dist/plugin-sdk/{session-BB-yfDWx.js → session-D5jHDo78.js} +1 -1
  66. package/dist/plugin-sdk/{sqlite-JjFgDV-H.js → sqlite-BlMLqMl8.js} +1 -1
  67. package/dist/plugin-sdk/{subsystem-D0Ril4rt.js → subsystem-COTa5Ly_.js} +1 -1
  68. package/dist/plugin-sdk/{tool-images-WRTP95FT.js → tool-images-DSpchb4x.js} +1 -1
  69. package/dist/plugin-sdk/{tool-loop-detection-sC_rhJfb.js → tool-loop-detection-BP6u-mbh.js} +1 -1
  70. package/dist/plugin-sdk/web-BbganhKi.js +1 -0
  71. package/dist/plugin-sdk/{whatsapp-actions-ThxQ5niy.js → whatsapp-actions-CZUqxmP1.js} +1 -1
  72. package/dist/{program-2w7Ue902.js → program-BgDciyOQ.js} +2 -2
  73. package/dist/{program-context-BCwL3wlM.js → program-context-CpxTJP1m.js} +1 -1
  74. package/dist/{prompt-select-styled-Dd5swW2b.js → prompt-select-styled-Bu7WPMzB.js} +1 -1
  75. package/dist/{prompt-select-styled-hB_nLOn1.js → prompt-select-styled-Qb0DubNy.js} +1 -1
  76. package/dist/{pw-ai-DaxMmaVL.js → pw-ai-D8HJAvv-.js} +1 -1
  77. package/dist/{register.maintenance-BELfCO_C.js → register.maintenance-CPnm6L-m.js} +1 -1
  78. package/dist/{register.maintenance-DukWFS_D.js → register.maintenance-D8WmeEaD.js} +1 -1
  79. package/dist/{register.onboard-Dt7rzAq-.js → register.onboard-BoUicPRh.js} +1 -1
  80. package/dist/{register.onboard-B9DMNfHE.js → register.onboard-DMfqe2nX.js} +1 -1
  81. package/dist/{register.setup-CSF-2ImP.js → register.setup-BK6OEvY3.js} +1 -1
  82. package/dist/{register.setup-BRRVPrx7.js → register.setup-CtcAR3JR.js} +1 -1
  83. package/dist/{register.subclis-4eDV9jKH.js → register.subclis-Dl6jPPsc.js} +1 -1
  84. package/dist/{register.subclis-Cr9DoYcv.js → register.subclis-EScCVgbV.js} +1 -1
  85. package/dist/{run-main-DLcDEJgv.js → run-main-C3lmcvyV.js} +1 -1
  86. package/dist/{runner-COldX-El.js → runner-CviGu3Nk.js} +3 -3
  87. package/dist/{tui-DylWbrDx.js → tui-D2sTsa4p.js} +1 -1
  88. package/dist/{tui-BwWMByVp.js → tui-DY2oYbxk.js} +1 -1
  89. package/dist/{tui-cli-C_TTgabr.js → tui-cli-GW-qybY6.js} +1 -1
  90. package/dist/{tui-cli-Bh1V8-w9.js → tui-cli-wn3DmvUG.js} +1 -1
  91. package/dist/{update-cli-CA3LuuJ7.js → update-cli-CN0oxZ_A.js} +1 -1
  92. package/dist/{update-cli-DUrUIrYQ.js → update-cli-K5dGZmg8.js} +1 -1
  93. package/dist/{web-BQPd6gQJ.js → web-DONGrYXq.js} +1 -1
  94. package/package.json +1 -1
  95. package/dist/chrome-Brg9KsB9.js +0 -4
  96. package/dist/plugin-sdk/web-CThgoHQp.js +0 -1
@@ -1 +1 @@
1
- import{t as __exportAll}from"./rolldown-runtime-BlRA8w72.js";import{n as resolveAgentConfig}from"./agent-scope-DgKN27hJ.js";function resolveAgentIdentity(cfg,agentId){return resolveAgentConfig(cfg,agentId)?.identity}function resolveAckReaction(cfg,agentId,opts){if(opts?.channel&&opts?.accountId){let accountReaction=(getChannelConfig(cfg,opts.channel)?.accounts)?.[opts.accountId]?.ackReaction;if(accountReaction!==void 0)return accountReaction.trim()}if(opts?.channel){let channelReaction=getChannelConfig(cfg,opts.channel)?.ackReaction;if(channelReaction!==void 0)return channelReaction.trim()}let configured=cfg.messages?.ackReaction;return configured===void 0?resolveAgentIdentity(cfg,agentId)?.emoji?.trim()||`👀`:configured.trim()}function resolveIdentityNamePrefix(cfg,agentId){let name=resolveAgentIdentity(cfg,agentId)?.name?.trim();if(name)return`[${name}]`}function resolveIdentityName(cfg,agentId){return resolveAgentIdentity(cfg,agentId)?.name?.trim()||void 0}function resolveMessagePrefix(cfg,agentId,opts){let configured=opts?.configured??cfg.messages?.messagePrefix;return configured===void 0?opts?.hasAllowFrom===!0?``:resolveIdentityNamePrefix(cfg,agentId)??opts?.fallback??`[builderforce]`:configured}function getChannelConfig(cfg,channel){let value=cfg.channels?.[channel];return typeof value==`object`&&value?value:void 0}function resolveResponsePrefix(cfg,agentId,opts){if(opts?.channel&&opts?.accountId){let accountPrefix=(getChannelConfig(cfg,opts.channel)?.accounts)?.[opts.accountId]?.responsePrefix;if(accountPrefix!==void 0)return accountPrefix===`auto`?resolveIdentityNamePrefix(cfg,agentId):accountPrefix}if(opts?.channel){let channelPrefix=getChannelConfig(cfg,opts.channel)?.responsePrefix;if(channelPrefix!==void 0)return channelPrefix===`auto`?resolveIdentityNamePrefix(cfg,agentId):channelPrefix}let configured=cfg.messages?.responsePrefix;if(configured!==void 0)return configured===`auto`?resolveIdentityNamePrefix(cfg,agentId):configured}function resolveEffectiveMessagesConfig(cfg,agentId,opts){return{messagePrefix:resolveMessagePrefix(cfg,agentId,{hasAllowFrom:opts?.hasAllowFrom,fallback:opts?.fallbackMessagePrefix}),responsePrefix:resolveResponsePrefix(cfg,agentId,{channel:opts?.channel,accountId:opts?.accountId})}}function resolveHumanDelayConfig(cfg,agentId){let defaults=cfg.agents?.defaults?.humanDelay,overrides=resolveAgentConfig(cfg,agentId)?.humanDelay;if(!(!defaults&&!overrides))return{mode:overrides?.mode??defaults?.mode,minMs:overrides?.minMs??defaults?.minMs,maxMs:overrides?.maxMs??defaults?.maxMs}}const TEMPLATE_VAR_PATTERN=/\{([a-zA-Z][a-zA-Z0-9.]*)\}/g;function resolveResponsePrefixTemplate(template,context){if(template)return template.replace(TEMPLATE_VAR_PATTERN,(match,varName)=>{switch(varName.toLowerCase()){case`model`:return context.model??match;case`modelfull`:return context.modelFull??match;case`provider`:return context.provider??match;case`thinkinglevel`:case`think`:return context.thinkingLevel??match;case`identity.name`:case`identityname`:return context.identityName??match;default:return match}})}function extractShortModelName(fullModel){let slash=fullModel.lastIndexOf(`/`);return(slash>=0?fullModel.slice(slash+1):fullModel).replace(/-\d{8}$/,``).replace(/-latest$/,``)}var reply_prefix_exports=__exportAll({createReplyPrefixContext:()=>createReplyPrefixContext,createReplyPrefixOptions:()=>createReplyPrefixOptions});function createReplyPrefixContext(params){let{cfg,agentId}=params,prefixContext={identityName:resolveIdentityName(cfg,agentId)};return{prefixContext,responsePrefix:resolveEffectiveMessagesConfig(cfg,agentId,{channel:params.channel,accountId:params.accountId}).responsePrefix,responsePrefixContextProvider:()=>prefixContext,onModelSelected:ctx=>{prefixContext.provider=ctx.provider,prefixContext.model=extractShortModelName(ctx.model),prefixContext.modelFull=`${ctx.provider}/${ctx.model}`,prefixContext.thinkingLevel=ctx.thinkLevel??`off`}}}function createReplyPrefixOptions(params){let{responsePrefix,responsePrefixContextProvider,onModelSelected}=createReplyPrefixContext(params);return{responsePrefix,responsePrefixContextProvider,onModelSelected}}export{resolveAckReaction as a,resolveIdentityNamePrefix as c,resolveResponsePrefixTemplate as i,resolveMessagePrefix as l,createReplyPrefixOptions as n,resolveEffectiveMessagesConfig as o,reply_prefix_exports as r,resolveHumanDelayConfig as s,createReplyPrefixContext as t};
1
+ import{t as __exportAll}from"./rolldown-runtime-BlRA8w72.js";import{n as resolveAgentConfig}from"./agent-scope-BQByW0cD.js";function resolveAgentIdentity(cfg,agentId){return resolveAgentConfig(cfg,agentId)?.identity}function resolveAckReaction(cfg,agentId,opts){if(opts?.channel&&opts?.accountId){let accountReaction=(getChannelConfig(cfg,opts.channel)?.accounts)?.[opts.accountId]?.ackReaction;if(accountReaction!==void 0)return accountReaction.trim()}if(opts?.channel){let channelReaction=getChannelConfig(cfg,opts.channel)?.ackReaction;if(channelReaction!==void 0)return channelReaction.trim()}let configured=cfg.messages?.ackReaction;return configured===void 0?resolveAgentIdentity(cfg,agentId)?.emoji?.trim()||`👀`:configured.trim()}function resolveIdentityNamePrefix(cfg,agentId){let name=resolveAgentIdentity(cfg,agentId)?.name?.trim();if(name)return`[${name}]`}function resolveIdentityName(cfg,agentId){return resolveAgentIdentity(cfg,agentId)?.name?.trim()||void 0}function resolveMessagePrefix(cfg,agentId,opts){let configured=opts?.configured??cfg.messages?.messagePrefix;return configured===void 0?opts?.hasAllowFrom===!0?``:resolveIdentityNamePrefix(cfg,agentId)??opts?.fallback??`[builderforce]`:configured}function getChannelConfig(cfg,channel){let value=cfg.channels?.[channel];return typeof value==`object`&&value?value:void 0}function resolveResponsePrefix(cfg,agentId,opts){if(opts?.channel&&opts?.accountId){let accountPrefix=(getChannelConfig(cfg,opts.channel)?.accounts)?.[opts.accountId]?.responsePrefix;if(accountPrefix!==void 0)return accountPrefix===`auto`?resolveIdentityNamePrefix(cfg,agentId):accountPrefix}if(opts?.channel){let channelPrefix=getChannelConfig(cfg,opts.channel)?.responsePrefix;if(channelPrefix!==void 0)return channelPrefix===`auto`?resolveIdentityNamePrefix(cfg,agentId):channelPrefix}let configured=cfg.messages?.responsePrefix;if(configured!==void 0)return configured===`auto`?resolveIdentityNamePrefix(cfg,agentId):configured}function resolveEffectiveMessagesConfig(cfg,agentId,opts){return{messagePrefix:resolveMessagePrefix(cfg,agentId,{hasAllowFrom:opts?.hasAllowFrom,fallback:opts?.fallbackMessagePrefix}),responsePrefix:resolveResponsePrefix(cfg,agentId,{channel:opts?.channel,accountId:opts?.accountId})}}function resolveHumanDelayConfig(cfg,agentId){let defaults=cfg.agents?.defaults?.humanDelay,overrides=resolveAgentConfig(cfg,agentId)?.humanDelay;if(!(!defaults&&!overrides))return{mode:overrides?.mode??defaults?.mode,minMs:overrides?.minMs??defaults?.minMs,maxMs:overrides?.maxMs??defaults?.maxMs}}const TEMPLATE_VAR_PATTERN=/\{([a-zA-Z][a-zA-Z0-9.]*)\}/g;function resolveResponsePrefixTemplate(template,context){if(template)return template.replace(TEMPLATE_VAR_PATTERN,(match,varName)=>{switch(varName.toLowerCase()){case`model`:return context.model??match;case`modelfull`:return context.modelFull??match;case`provider`:return context.provider??match;case`thinkinglevel`:case`think`:return context.thinkingLevel??match;case`identity.name`:case`identityname`:return context.identityName??match;default:return match}})}function extractShortModelName(fullModel){let slash=fullModel.lastIndexOf(`/`);return(slash>=0?fullModel.slice(slash+1):fullModel).replace(/-\d{8}$/,``).replace(/-latest$/,``)}var reply_prefix_exports=__exportAll({createReplyPrefixContext:()=>createReplyPrefixContext,createReplyPrefixOptions:()=>createReplyPrefixOptions});function createReplyPrefixContext(params){let{cfg,agentId}=params,prefixContext={identityName:resolveIdentityName(cfg,agentId)};return{prefixContext,responsePrefix:resolveEffectiveMessagesConfig(cfg,agentId,{channel:params.channel,accountId:params.accountId}).responsePrefix,responsePrefixContextProvider:()=>prefixContext,onModelSelected:ctx=>{prefixContext.provider=ctx.provider,prefixContext.model=extractShortModelName(ctx.model),prefixContext.modelFull=`${ctx.provider}/${ctx.model}`,prefixContext.thinkingLevel=ctx.thinkLevel??`off`}}}function createReplyPrefixOptions(params){let{responsePrefix,responsePrefixContextProvider,onModelSelected}=createReplyPrefixContext(params);return{responsePrefix,responsePrefixContextProvider,onModelSelected}}export{resolveAckReaction as a,resolveIdentityNamePrefix as c,resolveResponsePrefixTemplate as i,resolveMessagePrefix as l,createReplyPrefixOptions as n,resolveEffectiveMessagesConfig as o,reply_prefix_exports as r,resolveHumanDelayConfig as s,createReplyPrefixContext as t};
@@ -1 +1 @@
1
- import{t as __exportAll}from"./rolldown-runtime-BlRA8w72.js";import{a as buildAgentPeerSessionKey,i as buildAgentMainSessionKey,l as normalizeAgentId,n as DEFAULT_AGENT_ID,p as sanitizeAgentId,r as DEFAULT_MAIN_KEY,t as DEFAULT_ACCOUNT_ID}from"./session-key-5J69DULS.js";import{G as shouldLogVerbose}from"./registry-CZHRcH-q.js";import{A as logDebug,c as resolveDefaultAgentId}from"./agent-scope-DgKN27hJ.js";import{t as normalizeChatType}from"./chat-type-Dv7EB0qD.js";import{t as listBindings}from"./bindings-CH-YLOLC.js";var resolve_route_exports=__exportAll({DEFAULT_ACCOUNT_ID:()=>DEFAULT_ACCOUNT_ID,DEFAULT_AGENT_ID:()=>DEFAULT_AGENT_ID,buildAgentSessionKey:()=>buildAgentSessionKey,resolveAgentRoute:()=>resolveAgentRoute});function normalizeToken(value){return(value??``).trim().toLowerCase()}function normalizeId(value){return typeof value==`string`?value.trim():typeof value==`number`||typeof value==`bigint`?String(value).trim():``}function normalizeAccountId(value){return(value??``).trim()||DEFAULT_ACCOUNT_ID}function matchesAccountId(match,actual){let trimmed=(match??``).trim();return trimmed?trimmed===`*`?!0:trimmed===actual:actual===DEFAULT_ACCOUNT_ID}function buildAgentSessionKey(params){let channel=normalizeToken(params.channel)||`unknown`,peer=params.peer;return buildAgentPeerSessionKey({agentId:params.agentId,mainKey:DEFAULT_MAIN_KEY,channel,accountId:params.accountId,peerKind:peer?.kind??`direct`,peerId:peer?normalizeId(peer.id)||`unknown`:null,dmScope:params.dmScope,identityLinks:params.identityLinks})}function listAgents(cfg){let agents=cfg.agents?.list;return Array.isArray(agents)?agents:[]}function pickFirstExistingAgentId(cfg,agentId){let trimmed=(agentId??``).trim();if(!trimmed)return sanitizeAgentId(resolveDefaultAgentId(cfg));let normalized=normalizeAgentId(trimmed),agents=listAgents(cfg);if(agents.length===0)return sanitizeAgentId(trimmed);let match=agents.find(agent=>normalizeAgentId(agent.id)===normalized);return match?.id?.trim()?sanitizeAgentId(match.id.trim()):sanitizeAgentId(resolveDefaultAgentId(cfg))}function matchesChannel(match,channel){let key=normalizeToken(match?.channel);return key?key===channel:!1}const evaluatedBindingsCacheByCfg=new WeakMap;function getEvaluatedBindingsForChannelAccount(cfg,channel,accountId){let bindingsRef=cfg.bindings,existing=evaluatedBindingsCacheByCfg.get(cfg),cache=existing&&existing.bindingsRef===bindingsRef?existing:{bindingsRef,byChannelAccount:new Map};cache!==existing&&evaluatedBindingsCacheByCfg.set(cfg,cache);let cacheKey=`${channel}\t${accountId}`,hit=cache.byChannelAccount.get(cacheKey);if(hit)return hit;let evaluated=listBindings(cfg).flatMap(binding=>!binding||typeof binding!=`object`||!matchesChannel(binding.match,channel)||!matchesAccountId(binding.match?.accountId,accountId)?[]:[{binding,match:normalizeBindingMatch(binding.match)}]);return cache.byChannelAccount.set(cacheKey,evaluated),cache.byChannelAccount.size>2e3&&(cache.byChannelAccount.clear(),cache.byChannelAccount.set(cacheKey,evaluated)),evaluated}function normalizePeerConstraint(peer){if(!peer)return{state:`none`};let kind=normalizeChatType(peer.kind),id=normalizeId(peer.id);return!kind||!id?{state:`invalid`}:{state:`valid`,kind,id}}function normalizeBindingMatch(match){let rawRoles=match?.roles;return{accountPattern:(match?.accountId??``).trim(),peer:normalizePeerConstraint(match?.peer),guildId:normalizeId(match?.guildId)||null,teamId:normalizeId(match?.teamId)||null,roles:Array.isArray(rawRoles)&&rawRoles.length>0?rawRoles:null}}function hasGuildConstraint(match){return!!match.guildId}function hasTeamConstraint(match){return!!match.teamId}function hasRolesConstraint(match){return!!match.roles}function matchesBindingScope(match,scope){if(match.peer.state===`invalid`||match.peer.state===`valid`&&(!scope.peer||scope.peer.kind!==match.peer.kind||scope.peer.id!==match.peer.id)||match.guildId&&match.guildId!==scope.guildId||match.teamId&&match.teamId!==scope.teamId)return!1;if(match.roles){for(let role of match.roles)if(scope.memberRoleIds.has(role))return!0;return!1}return!0}function resolveAgentRoute(input){let channel=normalizeToken(input.channel),accountId=normalizeAccountId(input.accountId),peer=input.peer?{kind:input.peer.kind,id:normalizeId(input.peer.id)}:null,guildId=normalizeId(input.guildId),teamId=normalizeId(input.teamId),memberRoleIds=input.memberRoleIds??[],memberRoleIdSet=new Set(memberRoleIds),bindings=getEvaluatedBindingsForChannelAccount(input.cfg,channel,accountId),dmScope=input.cfg.session?.dmScope??`main`,identityLinks=input.cfg.session?.identityLinks,choose=(agentId,matchedBy)=>{let resolvedAgentId=pickFirstExistingAgentId(input.cfg,agentId);return{agentId:resolvedAgentId,channel,accountId,sessionKey:buildAgentSessionKey({agentId:resolvedAgentId,channel,accountId,peer,dmScope,identityLinks}).toLowerCase(),mainSessionKey:buildAgentMainSessionKey({agentId:resolvedAgentId,mainKey:DEFAULT_MAIN_KEY}).toLowerCase(),matchedBy}},shouldLogDebug=shouldLogVerbose(),formatPeer=value=>value?.kind&&value?.id?`${value.kind}:${value.id}`:`none`,formatNormalizedPeer=value=>value.state===`none`?`none`:value.state===`invalid`?`invalid`:`${value.kind}:${value.id}`;if(shouldLogDebug){logDebug(`[routing] resolveAgentRoute: channel=${channel} accountId=${accountId} peer=${formatPeer(peer)} guildId=${guildId||`none`} teamId=${teamId||`none`} bindings=${bindings.length}`);for(let entry of bindings)logDebug(`[routing] binding: agentId=${entry.binding.agentId} accountPattern=${entry.match.accountPattern||`default`} peer=${formatNormalizedPeer(entry.match.peer)} guildId=${entry.match.guildId??`none`} teamId=${entry.match.teamId??`none`} roles=${entry.match.roles?.length??0}`)}let parentPeer=input.parentPeer?{kind:input.parentPeer.kind,id:normalizeId(input.parentPeer.id)}:null,baseScope={guildId,teamId,memberRoleIds:memberRoleIdSet},tiers=[{matchedBy:`binding.peer`,enabled:!!peer,scopePeer:peer,predicate:candidate=>candidate.match.peer.state===`valid`},{matchedBy:`binding.peer.parent`,enabled:!!(parentPeer&&parentPeer.id),scopePeer:parentPeer&&parentPeer.id?parentPeer:null,predicate:candidate=>candidate.match.peer.state===`valid`},{matchedBy:`binding.guild+roles`,enabled:!!(guildId&&memberRoleIds.length>0),scopePeer:peer,predicate:candidate=>hasGuildConstraint(candidate.match)&&hasRolesConstraint(candidate.match)},{matchedBy:`binding.guild`,enabled:!!guildId,scopePeer:peer,predicate:candidate=>hasGuildConstraint(candidate.match)&&!hasRolesConstraint(candidate.match)},{matchedBy:`binding.team`,enabled:!!teamId,scopePeer:peer,predicate:candidate=>hasTeamConstraint(candidate.match)},{matchedBy:`binding.account`,enabled:!0,scopePeer:peer,predicate:candidate=>candidate.match.accountPattern!==`*`},{matchedBy:`binding.channel`,enabled:!0,scopePeer:peer,predicate:candidate=>candidate.match.accountPattern===`*`}];for(let tier of tiers){if(!tier.enabled)continue;let matched=bindings.find(candidate=>tier.predicate(candidate)&&matchesBindingScope(candidate.match,{...baseScope,peer:tier.scopePeer}));if(matched)return shouldLogDebug&&logDebug(`[routing] match: matchedBy=${tier.matchedBy} agentId=${matched.binding.agentId}`),choose(matched.binding.agentId,tier.matchedBy)}return choose(resolveDefaultAgentId(input.cfg),`default`)}export{resolveAgentRoute as n,resolve_route_exports as r,buildAgentSessionKey as t};
1
+ import{t as __exportAll}from"./rolldown-runtime-BlRA8w72.js";import{a as buildAgentPeerSessionKey,i as buildAgentMainSessionKey,l as normalizeAgentId,n as DEFAULT_AGENT_ID,p as sanitizeAgentId,r as DEFAULT_MAIN_KEY,t as DEFAULT_ACCOUNT_ID}from"./session-key-5J69DULS.js";import{G as shouldLogVerbose}from"./registry-DJq2Cvo9.js";import{A as logDebug,c as resolveDefaultAgentId}from"./agent-scope-BQByW0cD.js";import{t as normalizeChatType}from"./chat-type-Dv7EB0qD.js";import{t as listBindings}from"./bindings-CDEzl4kl.js";var resolve_route_exports=__exportAll({DEFAULT_ACCOUNT_ID:()=>DEFAULT_ACCOUNT_ID,DEFAULT_AGENT_ID:()=>DEFAULT_AGENT_ID,buildAgentSessionKey:()=>buildAgentSessionKey,resolveAgentRoute:()=>resolveAgentRoute});function normalizeToken(value){return(value??``).trim().toLowerCase()}function normalizeId(value){return typeof value==`string`?value.trim():typeof value==`number`||typeof value==`bigint`?String(value).trim():``}function normalizeAccountId(value){return(value??``).trim()||DEFAULT_ACCOUNT_ID}function matchesAccountId(match,actual){let trimmed=(match??``).trim();return trimmed?trimmed===`*`?!0:trimmed===actual:actual===DEFAULT_ACCOUNT_ID}function buildAgentSessionKey(params){let channel=normalizeToken(params.channel)||`unknown`,peer=params.peer;return buildAgentPeerSessionKey({agentId:params.agentId,mainKey:DEFAULT_MAIN_KEY,channel,accountId:params.accountId,peerKind:peer?.kind??`direct`,peerId:peer?normalizeId(peer.id)||`unknown`:null,dmScope:params.dmScope,identityLinks:params.identityLinks})}function listAgents(cfg){let agents=cfg.agents?.list;return Array.isArray(agents)?agents:[]}function pickFirstExistingAgentId(cfg,agentId){let trimmed=(agentId??``).trim();if(!trimmed)return sanitizeAgentId(resolveDefaultAgentId(cfg));let normalized=normalizeAgentId(trimmed),agents=listAgents(cfg);if(agents.length===0)return sanitizeAgentId(trimmed);let match=agents.find(agent=>normalizeAgentId(agent.id)===normalized);return match?.id?.trim()?sanitizeAgentId(match.id.trim()):sanitizeAgentId(resolveDefaultAgentId(cfg))}function matchesChannel(match,channel){let key=normalizeToken(match?.channel);return key?key===channel:!1}const evaluatedBindingsCacheByCfg=new WeakMap;function getEvaluatedBindingsForChannelAccount(cfg,channel,accountId){let bindingsRef=cfg.bindings,existing=evaluatedBindingsCacheByCfg.get(cfg),cache=existing&&existing.bindingsRef===bindingsRef?existing:{bindingsRef,byChannelAccount:new Map};cache!==existing&&evaluatedBindingsCacheByCfg.set(cfg,cache);let cacheKey=`${channel}\t${accountId}`,hit=cache.byChannelAccount.get(cacheKey);if(hit)return hit;let evaluated=listBindings(cfg).flatMap(binding=>!binding||typeof binding!=`object`||!matchesChannel(binding.match,channel)||!matchesAccountId(binding.match?.accountId,accountId)?[]:[{binding,match:normalizeBindingMatch(binding.match)}]);return cache.byChannelAccount.set(cacheKey,evaluated),cache.byChannelAccount.size>2e3&&(cache.byChannelAccount.clear(),cache.byChannelAccount.set(cacheKey,evaluated)),evaluated}function normalizePeerConstraint(peer){if(!peer)return{state:`none`};let kind=normalizeChatType(peer.kind),id=normalizeId(peer.id);return!kind||!id?{state:`invalid`}:{state:`valid`,kind,id}}function normalizeBindingMatch(match){let rawRoles=match?.roles;return{accountPattern:(match?.accountId??``).trim(),peer:normalizePeerConstraint(match?.peer),guildId:normalizeId(match?.guildId)||null,teamId:normalizeId(match?.teamId)||null,roles:Array.isArray(rawRoles)&&rawRoles.length>0?rawRoles:null}}function hasGuildConstraint(match){return!!match.guildId}function hasTeamConstraint(match){return!!match.teamId}function hasRolesConstraint(match){return!!match.roles}function matchesBindingScope(match,scope){if(match.peer.state===`invalid`||match.peer.state===`valid`&&(!scope.peer||scope.peer.kind!==match.peer.kind||scope.peer.id!==match.peer.id)||match.guildId&&match.guildId!==scope.guildId||match.teamId&&match.teamId!==scope.teamId)return!1;if(match.roles){for(let role of match.roles)if(scope.memberRoleIds.has(role))return!0;return!1}return!0}function resolveAgentRoute(input){let channel=normalizeToken(input.channel),accountId=normalizeAccountId(input.accountId),peer=input.peer?{kind:input.peer.kind,id:normalizeId(input.peer.id)}:null,guildId=normalizeId(input.guildId),teamId=normalizeId(input.teamId),memberRoleIds=input.memberRoleIds??[],memberRoleIdSet=new Set(memberRoleIds),bindings=getEvaluatedBindingsForChannelAccount(input.cfg,channel,accountId),dmScope=input.cfg.session?.dmScope??`main`,identityLinks=input.cfg.session?.identityLinks,choose=(agentId,matchedBy)=>{let resolvedAgentId=pickFirstExistingAgentId(input.cfg,agentId);return{agentId:resolvedAgentId,channel,accountId,sessionKey:buildAgentSessionKey({agentId:resolvedAgentId,channel,accountId,peer,dmScope,identityLinks}).toLowerCase(),mainSessionKey:buildAgentMainSessionKey({agentId:resolvedAgentId,mainKey:DEFAULT_MAIN_KEY}).toLowerCase(),matchedBy}},shouldLogDebug=shouldLogVerbose(),formatPeer=value=>value?.kind&&value?.id?`${value.kind}:${value.id}`:`none`,formatNormalizedPeer=value=>value.state===`none`?`none`:value.state===`invalid`?`invalid`:`${value.kind}:${value.id}`;if(shouldLogDebug){logDebug(`[routing] resolveAgentRoute: channel=${channel} accountId=${accountId} peer=${formatPeer(peer)} guildId=${guildId||`none`} teamId=${teamId||`none`} bindings=${bindings.length}`);for(let entry of bindings)logDebug(`[routing] binding: agentId=${entry.binding.agentId} accountPattern=${entry.match.accountPattern||`default`} peer=${formatNormalizedPeer(entry.match.peer)} guildId=${entry.match.guildId??`none`} teamId=${entry.match.teamId??`none`} roles=${entry.match.roles?.length??0}`)}let parentPeer=input.parentPeer?{kind:input.parentPeer.kind,id:normalizeId(input.parentPeer.id)}:null,baseScope={guildId,teamId,memberRoleIds:memberRoleIdSet},tiers=[{matchedBy:`binding.peer`,enabled:!!peer,scopePeer:peer,predicate:candidate=>candidate.match.peer.state===`valid`},{matchedBy:`binding.peer.parent`,enabled:!!(parentPeer&&parentPeer.id),scopePeer:parentPeer&&parentPeer.id?parentPeer:null,predicate:candidate=>candidate.match.peer.state===`valid`},{matchedBy:`binding.guild+roles`,enabled:!!(guildId&&memberRoleIds.length>0),scopePeer:peer,predicate:candidate=>hasGuildConstraint(candidate.match)&&hasRolesConstraint(candidate.match)},{matchedBy:`binding.guild`,enabled:!!guildId,scopePeer:peer,predicate:candidate=>hasGuildConstraint(candidate.match)&&!hasRolesConstraint(candidate.match)},{matchedBy:`binding.team`,enabled:!!teamId,scopePeer:peer,predicate:candidate=>hasTeamConstraint(candidate.match)},{matchedBy:`binding.account`,enabled:!0,scopePeer:peer,predicate:candidate=>candidate.match.accountPattern!==`*`},{matchedBy:`binding.channel`,enabled:!0,scopePeer:peer,predicate:candidate=>candidate.match.accountPattern===`*`}];for(let tier of tiers){if(!tier.enabled)continue;let matched=bindings.find(candidate=>tier.predicate(candidate)&&matchesBindingScope(candidate.match,{...baseScope,peer:tier.scopePeer}));if(matched)return shouldLogDebug&&logDebug(`[routing] match: matchedBy=${tier.matchedBy} agentId=${matched.binding.agentId}`),choose(matched.binding.agentId,tier.matchedBy)}return choose(resolveDefaultAgentId(input.cfg),`default`)}export{resolveAgentRoute as n,resolve_route_exports as r,buildAgentSessionKey as t};