vibe64 0.1.47 → 0.1.49

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 (150) hide show
  1. package/bin/run.js +1734 -1687
  2. package/bin/server.js +75 -75
  3. package/bin/upgrade-state.js +4539 -4471
  4. package/dist/assets/GithubBrowserTabs-BwpiRS2u.js +1 -0
  5. package/dist/assets/{LocalDatabaseServer-6VzPWZxG.js → LocalDatabaseServer-u_Ky7bNS.js} +1 -1
  6. package/dist/assets/{Vibe64AuthSettingsButton-TLwqAxDo.js → Vibe64AuthSettingsButton-BCwswT1G.js} +1 -1
  7. package/dist/assets/{Vibe64DashboardShell-B4dQ-oHD.js → Vibe64DashboardShell-CWlgrR2B.js} +1 -1
  8. package/dist/assets/{Vibe64DatabaseWorkspace-Bh5WIPOj.js → Vibe64DatabaseWorkspace-Dhs8_H0P.js} +1 -1
  9. package/dist/assets/Vibe64OutputControls-Dn548CZa.js +8 -0
  10. package/dist/assets/{Vibe64RepositoryWorkspace-idDg94lc.js → Vibe64RepositoryWorkspace-C-8S4JUF.js} +1 -1
  11. package/dist/assets/{Vibe64SessionFiles-Z9zxosyl.js → Vibe64SessionFiles-Cx6J7DDN.js} +2 -3
  12. package/dist/assets/{Vibe64UiStoryboardView-CrCDWMdR.js → Vibe64UiStoryboardView-DHyhJiWS.js} +1 -1
  13. package/dist/assets/{Vibe64UnavailableSessions-TqsxvGSf.js → Vibe64UnavailableSessions-Da4RxIhA.js} +1 -1
  14. package/dist/assets/{_sessionId_-7F1VGOou.js → _sessionId_-DCpgDPSI.js} +1 -1
  15. package/dist/assets/_slug_-BbEWp01a.js +25 -0
  16. package/dist/assets/{_slug_-B16mTWjj.css → _slug_-DerKOisL.css} +1 -1
  17. package/dist/assets/{access-Cx9RH95J.js → access-D4di2sCr.js} +1 -1
  18. package/dist/assets/{app-DPx4KKOa.js → app-Adr9Iz8p.js} +1 -1
  19. package/dist/assets/asyncModuleRecovery-DJsn5NrL.js +1 -0
  20. package/dist/assets/{changes-DYsuQLFW.js → changes-3Dd1O8Lu.js} +1 -1
  21. package/dist/assets/client-BAXHGUOC.js +1 -0
  22. package/dist/assets/{client-BYsDPxR3.js → client-CCZIu6yc.js} +1 -1
  23. package/dist/assets/{conversation-3ln-WnbL.css → conversation-CSDHdGDb.css} +1 -1
  24. package/dist/assets/conversation-DG9lp25w.js +8 -0
  25. package/dist/assets/conversation-ErAO1CmH.js +13 -0
  26. package/dist/assets/{dashboard-CWswAbYP.js → dashboard-0tCzDYCX.js} +1 -1
  27. package/dist/assets/english-definitions-DeiQ-jTT.js +1 -0
  28. package/dist/assets/env-DsyQ2MFX.js +1 -0
  29. package/dist/assets/{health-C0f6s-G1.js → health-DyTXU-nb.js} +1 -1
  30. package/dist/assets/{history-BQjETNB9.js → history-BXGAdPMI.js} +1 -1
  31. package/dist/assets/{incoming-COpY201m.js → incoming-yajkdGBY.js} +1 -1
  32. package/dist/assets/{index-MWACm8Pp.css → index-B-dukXUB.css} +1 -1
  33. package/dist/assets/index-CGz4Yow6.js +136 -0
  34. package/dist/assets/{integrations-BBkvNRHu.js → integrations-BMrXET36.js} +10 -2
  35. package/dist/assets/issues-kc1XBZCK.js +1 -0
  36. package/dist/assets/{learning-B8_wHoe1.js → learning-CIE5ghYv.js} +1 -1
  37. package/dist/assets/linkPath-Ch9eft18.js +1 -0
  38. package/dist/assets/{placement-DXvgK433.js → placement-BNmlke_j.js} +1 -1
  39. package/dist/assets/placement-DYM3JJ-F.js +1 -0
  40. package/dist/assets/publish-DTh6amqi.js +3 -0
  41. package/dist/assets/pull-requests-CbfGSSIh.js +1 -0
  42. package/dist/assets/{repository-BNPt7UWc.js → repository-BstMh-bG.js} +1 -1
  43. package/dist/assets/settings-Bf8C6dls.js +1 -0
  44. package/dist/assets/{studioGateApi-BVdclhPL.js → studioGateApi-mkX1eOTX.js} +1 -1
  45. package/dist/assets/{studioUrls-CGKCbM_d.js → studioUrls-B0-GdWh8.js} +1 -1
  46. package/dist/assets/useArchivedVibe64Sessions-DIOpfUxD.js +1 -0
  47. package/dist/assets/useCommand-CVuya6vG.js +1 -0
  48. package/dist/assets/useEndpointResource-7-YDfAxX.js +1 -0
  49. package/dist/assets/usePaths-Y6UuQxmI.js +1 -0
  50. package/dist/assets/{useUiFeedback-B51xtCAK.js → useUiFeedback-Bd3rao6E.js} +1 -1
  51. package/dist/assets/useVibe64ConversationLog-ChJOU2SD.js +1 -0
  52. package/dist/assets/{useVibe64DatabaseTools-BE_yXZFn.js → useVibe64DatabaseTools-DKV-TeNJ.js} +1 -1
  53. package/dist/assets/{useVibe64ProjectScope-D7b8n1gx.js → useVibe64ProjectScope-DXjsKKhl.js} +1 -1
  54. package/dist/assets/useVibe64SessionData-BkIHUrP5.js +1 -0
  55. package/dist/assets/useVibe64SessionSelection-N8wX5oqo.js +1 -0
  56. package/dist/assets/{useVibe64SystemGraph-CDDcsye4.js → useVibe64SystemGraph-Db_eD-X8.js} +1 -1
  57. package/dist/assets/{useVibe64Terminal-Zr3Mig2L.js → useVibe64Terminal-B9EWJ9Ba.js} +2 -2
  58. package/dist/assets/vibe64ProjectScope.local-l5_-E6pq.js +1 -0
  59. package/dist/assets/vibe64RepositoryRealtime-CHT4-6VN.js +1 -0
  60. package/dist/assets/vibe64SessionFocus-CS6Ex53G.js +1 -0
  61. package/dist/assets/vibe64SessionFocus-CSm4YJQD.css +1 -0
  62. package/dist/assets/vibe64SessionRequestConfig-xIx-5jxQ.js +1 -0
  63. package/dist/index.html +26 -22
  64. package/docs/colleague-usage/ai-accounts.md +6 -2
  65. package/docs/colleague-usage/ai-balance-and-allowance.md +15 -2
  66. package/docs/colleague-usage/coding-agent-failures.md +2 -1
  67. package/docs/colleague-usage/coding-agent-goals.md +8 -3
  68. package/docs/colleague-usage/coding-agents.md +16 -0
  69. package/docs/colleague-usage/github-work.md +14 -0
  70. package/docs/colleague-usage/preview-browser-checks.md +5 -3
  71. package/docs/colleague-usage/project-setup.md +6 -3
  72. package/docs/colleague-usage/running-vibe64-on-your-computer.md +3 -1
  73. package/docs/colleague-usage/sessions.md +35 -7
  74. package/docs/colleague-usage/starter-apps.md +3 -0
  75. package/docs/colleague-usage/temporary-chat-context.md +2 -1
  76. package/docs/colleague-usage/temporary-chats.md +17 -5
  77. package/node_modules/@jskit-ai/assistant-core/CHANGELOG.md +539 -0
  78. package/node_modules/@jskit-ai/assistant-core/locales/en.json +383 -0
  79. package/node_modules/@jskit-ai/assistant-core/package.json +3 -2
  80. package/node_modules/@jskit-ai/assistant-runtime/CHANGELOG.md +138 -0
  81. package/node_modules/@jskit-ai/assistant-runtime/README.md +2 -1
  82. package/node_modules/@jskit-ai/assistant-runtime/locales/en.json +137 -0
  83. package/node_modules/@jskit-ai/assistant-runtime/package.json +3 -2
  84. package/node_modules/@jskit-ai/assistant-runtime/src/server/repositories/assistantConfigRepository.js +223 -203
  85. package/node_modules/@jskit-ai/assistant-runtime/src/server/repositories/conversationsRepository.js +286 -266
  86. package/node_modules/@jskit-ai/assistant-runtime/src/server/repositories/messagesRepository.js +270 -250
  87. package/node_modules/@jskit-ai/assistant-voice/locales/en.json +182 -0
  88. package/node_modules/@jskit-ai/assistant-voice/package.json +3 -2
  89. package/node_modules/@jskit-ai/connector-google-calendar/CHANGELOG.md +83 -0
  90. package/node_modules/@jskit-ai/connector-google-calendar/locales/en.json +91 -0
  91. package/node_modules/@jskit-ai/connector-google-calendar/package.json +4 -3
  92. package/node_modules/@jskit-ai/connectors-catalog/CHANGELOG.md +1722 -0
  93. package/node_modules/@jskit-ai/connectors-catalog/README.md +11 -0
  94. package/node_modules/@jskit-ai/connectors-catalog/locales/en.json +3139 -0
  95. package/node_modules/@jskit-ai/connectors-catalog/package.json +5 -4
  96. package/node_modules/@jskit-ai/connectors-core/CHANGELOG.md +183 -0
  97. package/node_modules/@jskit-ai/connectors-core/locales/en.json +92 -0
  98. package/node_modules/@jskit-ai/connectors-core/package.json +3 -2
  99. package/node_modules/@jskit-ai/http-runtime/CHANGELOG.md +31 -0
  100. package/node_modules/@jskit-ai/http-runtime/locales/en.json +14 -0
  101. package/node_modules/@jskit-ai/http-runtime/package.json +3 -2
  102. package/node_modules/@jskit-ai/kernel/CHANGELOG.md +182 -0
  103. package/node_modules/@jskit-ai/kernel/locales/en.json +94 -0
  104. package/node_modules/@jskit-ai/kernel/package.json +6 -2
  105. package/node_modules/@jskit-ai/payments-core/CHANGELOG.md +128 -0
  106. package/node_modules/@jskit-ai/payments-core/locales/en.json +77 -0
  107. package/node_modules/@jskit-ai/payments-core/package.json +3 -2
  108. package/node_modules/@jskit-ai/realtime/CHANGELOG.md +20 -0
  109. package/node_modules/@jskit-ai/realtime/locales/en.json +14 -0
  110. package/node_modules/@jskit-ai/realtime/package.json +3 -2
  111. package/node_modules/@jskit-ai/resource-core/package.json +1 -1
  112. package/node_modules/@jskit-ai/resource-crud-core/package.json +1 -1
  113. package/node_modules/@jskit-ai/uploads-runtime/CHANGELOG.md +35 -0
  114. package/node_modules/@jskit-ai/uploads-runtime/locales/en.json +15 -0
  115. package/node_modules/@jskit-ai/uploads-runtime/package.json +3 -2
  116. package/node_modules/@local/vibe64-execution/src/host/execHelper.js +49 -48
  117. package/node_modules/@local/vibe64-execution/src/server/gitTurnCheckpointCommand.js +1327 -0
  118. package/node_modules/@local/vibe64-genesis/bin/vibe64-genesis-host-context +430 -390
  119. package/node_modules/@local/vibe64-genesis/src/server/index.js +45 -45
  120. package/node_modules/@local/vibe64-genesis/src/server/promptContext.js +119 -119
  121. package/node_modules/@local/vibe64-runtime/src/server/codexAppServerProcess.js +57 -57
  122. package/node_modules/@local/vibe64-sessions/package.json +2 -1
  123. package/node_modules/@local/vibe64-terminals/src/server/opencodeSessionEnvironmentPlugin.js +195 -175
  124. package/node_modules/@local/vibe64-terminals/src/server/sessionWorkOperationCommand.js +1385 -1362
  125. package/package.json +15 -15
  126. package/server.bundle.mjs +44206 -42825
  127. package/dist/assets/GithubBrowserTabs-D-Z3TlA8.js +0 -1
  128. package/dist/assets/Vibe64OutputControls-DtybwgL3.js +0 -8
  129. package/dist/assets/_slug_-Bq84T_Iv.js +0 -24
  130. package/dist/assets/conversation-Bn7wpATa.js +0 -2
  131. package/dist/assets/conversation-CNcCrV-R.js +0 -16
  132. package/dist/assets/definitions-CEbi4qae.js +0 -1
  133. package/dist/assets/env-X7EOFLtl.js +0 -1
  134. package/dist/assets/index-CBo1BEk6.js +0 -138
  135. package/dist/assets/issues-BiSiUd5o.js +0 -1
  136. package/dist/assets/placement-B5T1LR7m.js +0 -1
  137. package/dist/assets/publish-CeLZE2AG.js +0 -3
  138. package/dist/assets/pull-requests-pTdQOT7i.js +0 -1
  139. package/dist/assets/settings-lecRzZ-r.js +0 -1
  140. package/dist/assets/useArchivedVibe64Sessions-DHYRnyJD.js +0 -1
  141. package/dist/assets/useCommand-Epd2yHhQ.js +0 -1
  142. package/dist/assets/useEndpointResource-DBRQISI_.js +0 -1
  143. package/dist/assets/usePaths-DdAnjVDj.js +0 -1
  144. package/dist/assets/useVibe64ConversationLog-DboM3tYN.js +0 -1
  145. package/dist/assets/useVibe64SessionData-CreWtQAO.js +0 -1
  146. package/dist/assets/useVibe64SessionSelection-CDaX4uwY.js +0 -1
  147. package/dist/assets/vibe64ProjectScope.local-BxTBYuRg.js +0 -1
  148. package/dist/assets/vibe64RepositoryRealtime-C-J0I5jY.js +0 -1
  149. package/dist/assets/vibe64SessionFocus-DSW5Irm6.css +0 -1
  150. package/dist/assets/vibe64SessionFocus-DzqbVq60.js +0 -1
@@ -1,22 +1,22 @@
1
1
  import { createRequire as __vibe64CreateRequire } from 'node:module';const require=__vibe64CreateRequire(import.meta.url);
2
- import{execFile as vn}from"node:child_process";import{fileURLToPath as In}from"node:url";import _n from"node:path";var xn=Object.freeze(["none","pending","committed","rolledBack","unknown"]);function O(t,{fallback:e=""}={}){return String(t||"").trim()||e}function S(t){return!!(t&&typeof t=="object"&&!Array.isArray(t))}function x(t){return String(t??"").trim()}var Fn=2*1024*1024,Un=32*1024*1024,Bn=2*1024*1024;import{execFile as $t,spawn as Gn}from"node:child_process";import{promisify as Ft}from"node:util";var Yn=Ft($t);var ze=/^[a-z][a-z0-9_.-]*$/u,Bt=/^[A-Za-z_$][A-Za-z0-9_$]*$/u;function Le(t,e){let n=String(t||"").trim().toLowerCase();
3
- if(!ze.test(n))throw new TypeError(`${e} must match ${ze.toString()}.`);return n}function ue(t,e){if(t==null)return Object.
4
- freeze({});if(!S(t))throw new TypeError(`${e} must be an object mapping local names to capability ids.`);let n={},r=new Set;
5
- for(let[o,s]of Object.entries(t)){let i=String(o||"").trim();if(!Bt.test(i))throw new TypeError(`${e} local name "${i}" \
2
+ import{execFile as Sn}from"node:child_process";import{fileURLToPath as In}from"node:url";import _n from"node:path";var Pn=Object.freeze(["none","pending","committed","rolledBack","unknown"]);function v(t,{fallback:e=""}={}){return String(t||"").trim()||e}function b(t){return!!(t&&typeof t=="object"&&!Array.isArray(t))}function P(t){return String(t??"").trim()}var Fn=2*1024*1024,Un=32*1024*1024,Vn=2*1024*1024;import{execFile as $t,spawn as Gn}from"node:child_process";import{promisify as Ft}from"node:util";var Yn=Ft($t);var ze=/^[a-z][a-z0-9_.-]*$/u,Vt=/^[A-Za-z_$][A-Za-z0-9_$]*$/u;function Le(t,e){let n=String(t||"").trim().toLowerCase();
3
+ if(!ze.test(n))throw new TypeError(`${e} must match ${ze.toString()}.`);return n}function le(t,e){if(t==null)return Object.
4
+ freeze({});if(!b(t))throw new TypeError(`${e} must be an object mapping local names to capability ids.`);let n={},r=new Set;
5
+ for(let[o,s]of Object.entries(t)){let i=String(o||"").trim();if(!Vt.test(i))throw new TypeError(`${e} local name "${i}" \
6
6
  must be a JavaScript identifier.`);let a=Le(s,`${e}.${i}`);if(r.has(a))throw new TypeError(`${e} declares capability "${a}\
7
- " more than once.`);r.add(a),n[i]=a}return Object.freeze(n)}function Vt(t){let e=new Map;for(let[n,r]of Object.entries(t))
7
+ " more than once.`);r.add(a),n[i]=a}return Object.freeze(n)}function Bt(t){let e=new Map;for(let[n,r]of Object.entries(t))
8
8
  for(let o of Object.keys(r)){if(e.has(o))throw new TypeError(`Provider local name "${o}" is declared by both ${e.get(o)}\
9
- and ${n}.`);e.set(o,n)}}function le(t,e){if(t==null)return null;if(typeof t!="function")throw new TypeError(`${e} must \
9
+ and ${n}.`);e.set(o,n)}}function ue(t,e){if(t==null)return null;if(typeof t!="function")throw new TypeError(`${e} must \
10
10
  be a function when provided.`);return t}function X({id:t,requires:e={},optional:n={},provides:r={},setup:o,boot:s=null,shutdown:i=null}={}){
11
- let a=Le(t,"Provider id"),c=ue(e,`${a}.requires`),u=ue(n,`${a}.optional`),l=ue(r,`${a}.provides`);Vt({requires:c,optional:u,
12
- provides:l});let d=le(o,`${a}.setup`);if(!d)throw new TypeError(`${a}.setup is required.`);return Object.freeze({id:a,requires:c,
13
- optional:u,provides:l,setup:d,boot:le(s,`${a}.boot`),shutdown:le(i,`${a}.shutdown`)})}var $e="public";function Fe(){let t=[],e=new Set,n=!1;function r({id:a,order:c=0,contribute:u}={}){if(n)throw new Error("Bootstrap regis\
14
- tration is closed after the first payload is resolved.");let l=O(a);if(!l)throw new TypeError("Bootstrap contributor id \
15
- is required.");if(typeof u!="function")throw new TypeError(`Bootstrap contributor "${l}" requires contribute().`);if(e.has(
16
- l))throw new Error(`Bootstrap contributor "${l}" is duplicated.`);return e.add(l),t.push(Object.freeze({id:l,order:Number.
17
- isFinite(c)?Number(c):0,contribute:u})),i}async function o(a={}){n=!0;let c={},u=t.map((l,d)=>({entry:l,index:d})).sort(
18
- (l,d)=>l.entry.order-d.entry.order||l.index-d.index).map(({entry:l})=>l);for(let l of u){let d=await l.contribute(Object.
19
- freeze({...S(a)?a:{},payload:Object.freeze({...c})}));c={...c,...S(d)?d:{}}}return Object.freeze(c)}function s(){return Object.
11
+ let a=Le(t,"Provider id"),c=le(e,`${a}.requires`),l=le(n,`${a}.optional`),u=le(r,`${a}.provides`);Bt({requires:c,optional:l,
12
+ provides:u});let d=ue(o,`${a}.setup`);if(!d)throw new TypeError(`${a}.setup is required.`);return Object.freeze({id:a,requires:c,
13
+ optional:l,provides:u,setup:d,boot:ue(s,`${a}.boot`),shutdown:ue(i,`${a}.shutdown`)})}var $e="public";function Fe(){let t=[],e=new Set,n=!1;function r({id:a,order:c=0,contribute:l}={}){if(n)throw new Error("Bootstrap regis\
14
+ tration is closed after the first payload is resolved.");let u=v(a);if(!u)throw new TypeError("Bootstrap contributor id \
15
+ is required.");if(typeof l!="function")throw new TypeError(`Bootstrap contributor "${u}" requires contribute().`);if(e.has(
16
+ u))throw new Error(`Bootstrap contributor "${u}" is duplicated.`);return e.add(u),t.push(Object.freeze({id:u,order:Number.
17
+ isFinite(c)?Number(c):0,contribute:l})),i}async function o(a={}){n=!0;let c={},l=t.map((u,d)=>({entry:u,index:d})).sort(
18
+ (u,d)=>u.entry.order-d.entry.order||u.index-d.index).map(({entry:u})=>u);for(let u of l){let d=await u.contribute(Object.
19
+ freeze({...b(a)?a:{},payload:Object.freeze({...c})}));c={...c,...b(d)?d:{}}}return Object.freeze(c)}function s(){return Object.
20
20
  freeze({sealed:n,contributorIds:Object.freeze(t.map(a=>a.id).sort())})}let i=Object.freeze({register:r,resolve:o,diagnostics:s});
21
21
  return i}var qt=X({id:"runtime.bootstrap",requires:{http:"runtime.http"},provides:{bootstrap:"runtime.bootstrap"},setup({
22
22
  http:t}){let e=Fe();return t.router.register("GET","/api/bootstrap",{auth:$e,meta:{tags:["bootstrap"],summary:"Resolve a\
@@ -43,8 +43,8 @@ ues.`);if(o&&e.additionalProperties!==!0)throw new Error(`Object field "${t}" on
43
43
  if(r&&e.additionalProperties===!0)throw new Error(`Object field "${t}" cannot define both values and additionalPropertie\
44
44
  s: true.`);if(n){if(!de(e.schema))throw new Error(`Object field "${t}" must define schema as a Schema instance.`);return{
45
45
  kind:"nested",schema:e.schema,allowAdditionalProperties:e.additionalProperties===!0}}return r?{kind:"map",valuesConfig:q(
46
- t,e)}:e.additionalProperties===!0?{kind:"opaque"}:{kind:"plain"}}function j(t){return t?.type==="number"||t?.type==="integer"||t?.type==="epochMilliseconds"||t?.type==="epochSeconds"}var fe="^(?:0|-?[1-9]\\d*)$",Be="\\d{4}",Ve="0[1-9]|1[0-2]",qe="0[1-9]|[12]\\d|3[01]",Ge="[01]\\d|2[0-3]",N="[0-5]\\d",Q=`\
47
- (?:${Ge}):${N}`,He=`(?:Z|[+-](?:${Ge}):${N})`,Je=`(${Be})-(${Ve})-(${qe})`,We=`${Be}-(?:${Ve})-(?:${qe})`,Ye=`^${We}$`,Xt=new RegExp(
46
+ t,e)}:e.additionalProperties===!0?{kind:"opaque"}:{kind:"plain"}}function j(t){return t?.type==="number"||t?.type==="integer"||t?.type==="epochMilliseconds"||t?.type==="epochSeconds"}var fe="^(?:0|-?[1-9]\\d*)$",Ve="\\d{4}",Be="0[1-9]|1[0-2]",qe="0[1-9]|[12]\\d|3[01]",Ge="[01]\\d|2[0-3]",N="[0-5]\\d",Q=`\
47
+ (?:${Ge}):${N}`,He=`(?:Z|[+-](?:${Ge}):${N})`,Je=`(${Ve})-(${Be})-(${qe})`,We=`${Ve}-(?:${Be})-(?:${qe})`,Ye=`^${We}$`,Xt=new RegExp(
48
48
  `^${Je}$`),Kt=new RegExp(`^${Q}(?::${N}(?:\\.(\\d+))?)?$`),Zt=new RegExp(`^${Je}T${Q}:${N}(?:\\.(\\d+))?${He}$`),Qt=new RegExp(
49
49
  fe),er=[31,28,31,30,31,30,31,31,30,31,30,31];function tr(t){return t%4===0&&(t%100!==0||t%400===0)}function rr(t,e){return e===
50
50
  2?tr(t)?29:28:er[e-1]}function Xe(t,e,n){let r=Number(t),o=Number(e),s=Number(n);return o>=1&&o<=12&&s>=1&&s<=rr(r,o)}function G(t,e){
@@ -60,9 +60,9 @@ has(t))throw new Error(`${e}() received unsafe path segment "${t}".`)}function s
60
60
  /\[(.+?)\]/g,".$1").replace(/^\.+/,"").replace(/\.+/g,".").replace(/\.$/,"")}function me(t,e,{normalize:n=!1,allowEmpty:r=!1}={}){
61
61
  let o=n?sr(t):t;if(typeof o!="string"||o.trim()===""){if(r&&o==="")return[];throw new Error(`${e}() expects a non-empty \
62
62
  dotted path string.`)}let s=o.split(".");if(s.some(i=>i===""))throw new Error(`${e}() received an invalid path "${o}".`);
63
- for(let i of s)or(i,e);return s}var ir="http://json-schema.org/draft-07/schema#",v="x-json-rest-schema",he=["object","array","string","number","boolean"],
63
+ for(let i of s)or(i,e);return s}var ir="http://json-schema.org/draft-07/schema#",S="x-json-rest-schema",he=["object","array","string","number","boolean"],
64
64
  ye=Symbol("json-rest-schema.exportContext"),ar=["true","1","yes","y","on"],cr=["false","0","no","n","off"];function ot(t){
65
- return{anyOf:[{type:"integer",minimum:-t,maximum:t},{type:"string",pattern:fe}]}}function _(t,e){return{[v]:{[t]:e}}}var ur={
65
+ return{anyOf:[{type:"integer",minimum:-t,maximum:t},{type:"string",pattern:fe}]}}function _(t,e){return{[S]:{[t]:e}}}var lr={
66
66
  none:()=>({type:he}),blob:()=>({type:he}),serialize:()=>({type:he}),object:()=>({type:"object"}),array:()=>({type:"array"}),
67
67
  file:()=>({type:"string"}),string:()=>({type:"string"}),number:()=>({type:["number","string"]}),integer:()=>({type:["int\
68
68
  eger","string"]}),epochMilliseconds:()=>ot(864e13),epochSeconds:()=>ot(864e10),dateTime:({definition:t,fieldName:e})=>({
@@ -70,7 +70,7 @@ type:"string",format:"date-time",pattern:nt(t,e)}),date:()=>({type:"string",form
70
70
  fieldName:e})=>({type:"string",pattern:rt(t,e)}),boolean:({definition:t})=>{if(t.strictBoolean===!0)return{type:"boolean"};
71
71
  let e=new Set([...ar,String(t.stringTrueWhen||"true").trim().toLowerCase()]),n=new Set([...cr,String(t.stringFalseWhen||
72
72
  "false").trim().toLowerCase()]);return{anyOf:[{type:"boolean"},{type:"number",enum:[0,1]},{type:"string",enum:[...n,...e]}]}},
73
- id:()=>({type:["integer","string"],minimum:1,pattern:"^[1-9][0-9]*$"})},lr={minLength:({definition:t,parameterValue:e})=>t.
73
+ id:()=>({type:["integer","string"],minimum:1,pattern:"^[1-9][0-9]*$"})},ur={minLength:({definition:t,parameterValue:e})=>t.
74
74
  type==="string"?{minLength:e}:null,maxLength:({definition:t,parameterValue:e})=>t.type==="string"?{maxLength:e}:null,min:({
75
75
  definition:t,parameterValue:e})=>j(t)?{minimum:e}:null,max:({definition:t,parameterValue:e})=>j(t)?{maximum:e}:null,pattern:({
76
76
  definition:t,parameterValue:e})=>t.type==="string"?{pattern:e instanceof RegExp?e.source:e}:null,enum:({parameterValue:t})=>({
@@ -81,13 +81,13 @@ _("transforms",{uppercase:!0}):null,lowercase:({parameterValue:t})=>t?_("transfo
81
81
  "metadata",{temporalPrecision:t}),strictBoolean:()=>null,required:()=>null,nullable:()=>null,nullOnEmpty:()=>null,defaultTo:()=>null};
82
82
  function Ee(t,e){for(let n of Object.keys(e)){let r=e[n],o=t[n];if(r&&o&&typeof r=="object"&&typeof o=="object"&&!Array.
83
83
  isArray(r)&&!Array.isArray(o)){Ee(o,r);continue}t[n]=r}}function dr(t,e){if(!e||typeof e!="object"||Array.isArray(e))throw new Error(
84
- "JSON Schema export hooks must return an object or null.");for(let n of Object.keys(e)){if(n===v&&t[n]&&typeof t[n]=="ob\
84
+ "JSON Schema export hooks must return an object or null.");for(let n of Object.keys(e)){if(n===S&&t[n]&&typeof t[n]=="ob\
85
85
  ject"&&typeof e[n]=="object"&&!Array.isArray(t[n])&&!Array.isArray(e[n])){Ee(t[n],e[n]);continue}t[n]=e[n]}}function fr(t,e){
86
86
  let r=[...Array.isArray(t.anyOf)&&Object.keys(t).length===1?t.anyOf:[t],...e];return r.length===1?t:{anyOf:r}}function pr(t,e){
87
87
  if(!Object.hasOwn(t.types,e.type))throw new Error(`No casting function for type: ${e.type}`);let n=t.types[e.type];if(typeof n.
88
- toJsonSchema=="function")return n.toJsonSchema;let r=ur[e.type];if(!r)throw new Error(`Type '${e.type}' cannot be export\
88
+ toJsonSchema=="function")return n.toJsonSchema;let r=lr[e.type];if(!r)throw new Error(`Type '${e.type}' cannot be export\
89
89
  ed to JSON Schema without a toJsonSchema hook.`);return r}function mr(t,e,n){if(!Object.hasOwn(t.validators,e))return null;
90
- let r=t.validators[e];if(typeof r.toJsonSchema=="function")return r.toJsonSchema;let o=lr[e];if(o)return o;throw new Error(
90
+ let r=t.validators[e];if(typeof r.toJsonSchema=="function")return r.toJsonSchema;let o=ur[e];if(o)return o;throw new Error(
91
91
  `Validator '${e}' on field '${n}' cannot be exported to JSON Schema without a toJsonSchema hook.`)}function st(t){if(t===
92
92
  void 0)return"create";if(["create","replace","patch"].includes(t))return t;throw new Error(`Unsupported JSON Schema expo\
93
93
  rt mode '${t}'. Expected 'create', 'replace', or 'patch'.`)}function hr(t,e={}){if(e.mode!==void 0&&e.operation!==void 0){
@@ -108,66 +108,66 @@ if(t.status==="building")return{$ref:t.pointer};let n=te(e);t.status="building",
108
108
  {});let r=Or(t.schema,e,t.operationName,t.operation,t.additionalProperties);return t.status="built",t.pointer==="#"?r:(n.
109
109
  definitions[t.definitionName]=r,{$ref:t.pointer})}function Oe(t,e,n,r,o=!1){let s=te(e),i=it(t,e,n,r,o);return s.rootNode===
110
110
  i?{$ref:"#"}:at(i,e)}function H(t,{referenceBacked:e=!1}={}){return{schema:t,referenceBacked:e}}function Or(t,e,n,r,o=!1){
111
- let s={},i=[];for(let[c,u]of Object.entries(t.structure))p(s,c,Se(t,c,u,e,n,r)),r.enforceRequired&&u.required===!0&&i.push(
112
- c);let a={type:"object",properties:s,additionalProperties:o};return i.length>0&&(a.required=i),a}function Sr(t,e,n,r,o,s){
111
+ let s={},i=[];for(let[c,l]of Object.entries(t.structure))p(s,c,ve(t,c,l,e,n,r)),r.enforceRequired&&l.required===!0&&i.push(
112
+ c);let a={type:"object",properties:s,additionalProperties:o};return i.length>0&&(a.required=i),a}function vr(t,e,n,r,o,s){
113
113
  let i=K(e,n);if(!i)return null;if(i.kind==="schema")return{...ee(Oe(i.schema,r,"replace",i.schema.operations.replace,!1)),
114
- [v]:{castType:"object"}};let a=n.items.type==="object"&&Object.hasOwn(n.items,"schema")?"replace":o,c=a==="replace"?t.operations.
115
- replace:s;return Se(t,`${e}[]`,n.items,r,a,c)}function vr(t,e,n,r,o,s){let i=q(e,n);if(!i)return null;if(i.kind==="schem\
116
- a")return{...ee(Oe(i.schema,r,"replace",i.schema.operations.replace,!1)),[v]:{castType:"object"}};let a=i.definition.type===
117
- "object"&&Object.hasOwn(i.definition,"schema")?"replace":o,c=a==="replace"?t.operations.replace:s;return Se(t,`${e}.*`,i.
114
+ [S]:{castType:"object"}};let a=n.items.type==="object"&&Object.hasOwn(n.items,"schema")?"replace":o,c=a==="replace"?t.operations.
115
+ replace:s;return ve(t,`${e}[]`,n.items,r,a,c)}function Sr(t,e,n,r,o,s){let i=q(e,n);if(!i)return null;if(i.kind==="schem\
116
+ a")return{...ee(Oe(i.schema,r,"replace",i.schema.operations.replace,!1)),[S]:{castType:"object"}};let a=i.definition.type===
117
+ "object"&&Object.hasOwn(i.definition,"schema")?"replace":o,c=a==="replace"?t.operations.replace:s;return ve(t,`${e}.*`,i.
118
118
  definition,r,a,c)}function Ir(t,e,n,r,o,s){if(n.type==="object"){let a=Z(e,n);if(a.kind==="nested")return H(Oe(a.schema,
119
119
  r,o,s,a.allowAdditionalProperties===!0),{referenceBacked:!0});if(a.kind==="opaque")return H({type:"object",additionalProperties:!0});
120
- if(a.kind==="map")return H({type:"object",additionalProperties:vr(t,e,n,r,o,s)})}let i=pr(t,n)({schema:t,fieldName:e,definition:n,
120
+ if(a.kind==="map")return H({type:"object",additionalProperties:Sr(t,e,n,r,o,s)})}let i=pr(t,n)({schema:t,fieldName:e,definition:n,
121
121
  operation:o,mode:o,options:r});if(!i||typeof i!="object"||Array.isArray(i))throw new Error(`Type '${n.type}' on field '${e}\
122
- ' returned an invalid JSON Schema fragment.`);if(n.type==="array"){let a=Sr(t,e,n,r,o,s);if(a)return H({...i,items:a},{referenceBacked:we(
123
- i)})}return H(i,{referenceBacked:we(i)})}function Se(t,e,n,r,o,s){let i={schema:t,fieldName:e,definition:n,operation:o,mode:o,
124
- options:r},a=Ir(t,e,n,r,o,s),c=a.referenceBacked?ee(a.schema):{...a.schema},u={castType:n.type};for(let f of Object.keys(
122
+ ' returned an invalid JSON Schema fragment.`);if(n.type==="array"){let a=vr(t,e,n,r,o,s);if(a)return H({...i,items:a},{referenceBacked:we(
123
+ i)})}return H(i,{referenceBacked:we(i)})}function ve(t,e,n,r,o,s){let i={schema:t,fieldName:e,definition:n,operation:o,mode:o,
124
+ options:r},a=Ir(t,e,n,r,o,s),c=a.referenceBacked?ee(a.schema):{...a.schema},l={castType:n.type};for(let f of Object.keys(
125
125
  n)){if(f==="type"||!Object.hasOwn(t.validators,f))continue;let m=mr(t,f,e);if(!m)continue;let h=m({...i,parameterName:f,
126
- parameterValue:n[f],fieldSchema:{...c}});h&&dr(c,h)}c[v]&&(Ee(u,c[v]),delete c[v]);let l=[];n.nullable===!0&&l.push({type:"\
127
- null"}),n.nullOnEmpty===!0&&l.push({const:""});let d=ee(fr(c,l));if(n.defaultTo!==void 0&&s.applyDefaults)if(typeof n.defaultTo!=
126
+ parameterValue:n[f],fieldSchema:{...c}});h&&dr(c,h)}c[S]&&(Ee(l,c[S]),delete c[S]);let u=[];n.nullable===!0&&u.push({type:"\
127
+ null"}),n.nullOnEmpty===!0&&u.push({const:""});let d=ee(fr(c,u));if(n.defaultTo!==void 0&&s.applyDefaults)if(typeof n.defaultTo!=
128
128
  "function"){let f=t._normalizeDefault(n,n.defaultTo,{fieldPath:e,currentObject:{},containerKey:e,objectBeforeCast:{},options:{},
129
129
  settings:t._buildOperationSettings(o,s,{})});if(Object.keys(f.errors).length>0){let m=Object.values(f.errors)[0];throw new Error(
130
- `defaultTo for "${e}" is invalid (${m.code}).`)}d.default=f.value}else u.defaults={providedByFunction:!0};return d[v]=u,
130
+ `defaultTo for "${e}" is invalid (${m.code}).`)}d.default=f.value}else l.defaults={providedByFunction:!0};return d[S]=l,
131
131
  d}function ct(t,e={}){let n=wr(e),{operationName:r,operation:o}=yr(t,n),s=n.additionalProperties===void 0?!1:n.additionalProperties,
132
132
  i=te(n),a=it(t,n,r,o,s,{root:!0}),c={$schema:ir,...at(a,n)};return Object.keys(i.definitions).length>0&&(c.definitions=i.
133
- definitions),c}function ut(t){return t!==null&&(typeof t=="object"||typeof t=="function")&&typeof t.then=="function"}function Ae(t){return t instanceof
134
- D}function _r(){return{self:!1,children:{}}}function lt(t){return Object.keys(t.children).length>0}function T(t,e){return`${t}\
135
- .${String(e)}`}function yt(t,e){return t===""?String(e):T(t,e)}function dt(t,e){if(t===e)return"";let n=`${e}.`;return t.
136
- startsWith(n)?t.slice(n.length):null}function R(t,e){let n={};for(let r of Object.values(t)){let o=T(e,r.field);p(n,o,{...r,
133
+ definitions),c}function lt(t){return t!==null&&(typeof t=="object"||typeof t=="function")&&typeof t.then=="function"}function Te(t){return t instanceof
134
+ k}function _r(){return{self:!1,children:{}}}function ut(t){return Object.keys(t.children).length>0}function A(t,e){return`${t}\
135
+ .${String(e)}`}function yt(t,e){return t===""?String(e):A(t,e)}function dt(t,e){if(t===e)return"";let n=`${e}.`;return t.
136
+ startsWith(n)?t.slice(n.length):null}function R(t,e){let n={};for(let r of Object.values(t)){let o=A(e,r.field);p(n,o,{...r,
137
137
  field:o})}return n}function _e(t){return me(t,"validatePath")}function ft(t){let e={};for(let n of t){let r=_e(n),o=e;for(let s=0;s<
138
- r.length;s++){let i=r[s];Object.hasOwn(o,i)||p(o,i,_r()),s===r.length-1&&(o[i].self=!0),o=o[i].children}}return e}function Tr(t,e){
138
+ r.length;s++){let i=r[s];Object.hasOwn(o,i)||p(o,i,_r()),s===r.length-1&&(o[i].self=!0),o=o[i].children}}return e}function Ar(t,e){
139
139
  let n=t;for(let r of e){if(n==null||typeof n!="object"||!Object.hasOwn(n,r))return;n=n[r]}return n}function re(t){return t===
140
140
  null?!0:Array.isArray(t)||y(t)?Object.keys(t).length>0:t!==void 0}function pt(t){return[...t].sort((e,n)=>{let r=/^[0-9]+$/.
141
- test(e),o=/^[0-9]+$/.test(n);return r&&o?Number(e)-Number(n):r?-1:o?1:e.localeCompare(n)})}function Ar(t){return/^[0-9]+$/.
142
- test(t)}function Cr(t,e=new WeakMap){if(e.has(t))return e.get(t);let n=Object.create(D.prototype);return e.set(t,n),n.structure=
141
+ test(e),o=/^[0-9]+$/.test(n);return r&&o?Number(e)-Number(n):r?-1:o?1:e.localeCompare(n)})}function Tr(t){return/^[0-9]+$/.
142
+ test(t)}function Cr(t,e=new WeakMap){if(e.has(t))return e.get(t);let n=Object.create(k.prototype);return e.set(t,n),n.structure=
143
143
  null,n.types=t.types,n.validators=t.validators,n.operations=t.operations,n.structure=oe(ne(t.structure,e)),n._installOperationMethods(),
144
- Object.freeze(n)}function ne(t,e=new WeakMap){if(t===null||typeof t!="object")return t;if(Ae(t))return Cr(t,e);if(t instanceof
144
+ Object.freeze(n)}function ne(t,e=new WeakMap){if(t===null||typeof t!="object")return t;if(Te(t))return Cr(t,e);if(t instanceof
145
145
  Date)return new Date(t.getTime());if(t instanceof RegExp){let r=new RegExp(t.source,t.flags);return r.lastIndex=t.lastIndex,
146
146
  r}if(e.has(t))return e.get(t);if(Array.isArray(t)){let r=[];e.set(t,r);for(let o of t)r.push(ne(o,e));return r}if(!y(t))
147
147
  return t;let n={};e.set(t,n);for(let[r,o]of Object.entries(t))p(n,r,ne(o,e));return n}function oe(t,e=new WeakSet){if(t===
148
- null||typeof t!="object"||e.has(t)||Ae(t))return t;if(e.add(t),Array.isArray(t))for(let n of t)oe(n,e);else for(let n of Reflect.
149
- ownKeys(t))oe(t[n],e);return Object.freeze(t)}function ve(t){return oe(ne(t))}function Te(t,e,n=""){if(!Ae(t)||!Array.isArray(
148
+ null||typeof t!="object"||e.has(t)||Te(t))return t;if(e.add(t),Array.isArray(t))for(let n of t)oe(n,e);else for(let n of Reflect.
149
+ ownKeys(t))oe(t[n],e);return Object.freeze(t)}function Se(t){return oe(ne(t))}function Ae(t,e,n=""){if(!Te(t)||!Array.isArray(
150
150
  e)||e.length<1)return null;let[r,...o]=e;if(!Object.hasOwn(t.structure,r))return null;let s=t.structure[r];if(o.length<1)
151
151
  return s;let i=yt(n,r);return wt(t,s,o,i)}function wt(t,e,n,r){if(e?.type==="object"){let o=t._resolveObjectFieldMode(r,
152
- e);return o.kind!=="nested"?null:Te(o.schema,n,r)}if(e?.type==="array"){let o=t._resolveArrayItemsConfig(r,e);if(!o||n.length<
153
- 1)return null;let[s,...i]=n;if(!Ar(s))return null;let a=T(r,s);return o.kind==="schema"?i.length<1?null:Te(o.schema,i,a):
152
+ e);return o.kind!=="nested"?null:Ae(o.schema,n,r)}if(e?.type==="array"){let o=t._resolveArrayItemsConfig(r,e);if(!o||n.length<
153
+ 1)return null;let[s,...i]=n;if(!Tr(s))return null;let a=A(r,s);return o.kind==="schema"?i.length<1?null:Ae(o.schema,i,a):
154
154
  i.length<1?o.definition:wt(t,o.definition,i,a)}return null}function M(t,e){let n={...t};if(Array.isArray(t.skipFields)){
155
155
  let r=t.skipFields.map(o=>dt(o,e)).filter(o=>o!==null&&o!=="");r.length>0?n.skipFields=r:delete n.skipFields}if(y(t.skipParams)){
156
156
  let r={};for(let[o,s]of Object.entries(t.skipParams)){let i=dt(o,e);i===null||i===""||p(r,i,s)}Object.keys(r).length>0?n.
157
- skipParams=r:delete n.skipParams}return n}var Pr=Object.freeze({create:Object.freeze({targetFields:"schema",enforceRequired:!0,
157
+ skipParams=r:delete n.skipParams}return n}var xr=Object.freeze({create:Object.freeze({targetFields:"schema",enforceRequired:!0,
158
158
  applyDefaults:!0,outputFields:"validated",rejectExplicitUndefined:!0}),replace:Object.freeze({targetFields:"schema",enforceRequired:!0,
159
159
  applyDefaults:!0,outputFields:"validated",rejectExplicitUndefined:!0}),patch:Object.freeze({targetFields:"input",enforceRequired:!1,
160
160
  applyDefaults:!1,outputFields:"input",rejectExplicitUndefined:!0})});function mt(t,e,n,r){let o=e[n];if(!r.includes(o))throw new Error(
161
161
  `Operation "${t}" must define ${n} as one of: ${r.join(", ")}.`)}function Ie(t,e,n,r=!0){let o=e[n];if(!(o===void 0&&!r)&&
162
- typeof o!="boolean")throw new Error(`Operation "${t}" must define ${n} as a boolean.`)}function xr(t,e){if(typeof e!="ob\
162
+ typeof o!="boolean")throw new Error(`Operation "${t}" must define ${n} as a boolean.`)}function Pr(t,e){if(typeof e!="ob\
163
163
  ject"||e===null||Array.isArray(e))throw new Error(`Operation "${t}" must be an object.`);return mt(t,e,"targetFields",["\
164
164
  schema","input"]),Ie(t,e,"enforceRequired"),Ie(t,e,"applyDefaults"),mt(t,e,"outputFields",["validated","input"]),Ie(t,e,
165
165
  "rejectExplicitUndefined",!1),Object.freeze({targetFields:e.targetFields,enforceRequired:e.enforceRequired,applyDefaults:e.
166
166
  applyDefaults,outputFields:e.outputFields,rejectExplicitUndefined:e.rejectExplicitUndefined===void 0?!0:e.rejectExplicitUndefined})}
167
167
  function jr(t={}){if(typeof t!="object"||t===null||Array.isArray(t))throw new Error("Schema operations must be an object\
168
- .");let e=Object.create(null);for(let[n,r]of Object.entries(Pr))p(e,n,r);for(let[n,r]of Object.entries(t))p(e,n,xr(n,r));
168
+ .");let e=Object.create(null);for(let[n,r]of Object.entries(xr))p(e,n,r);for(let[n,r]of Object.entries(t))p(e,n,Pr(n,r));
169
169
  return Object.freeze(e)}function ht(t){let e=Object.create(null);for(let[n,r]of Object.entries(t))p(e,n,r);return Object.
170
- freeze(e)}function Nr(t){let e={...t};return delete e.operation,delete e.mode,e}var D=class{constructor(e,n,r,o={}){this.
170
+ freeze(e)}function Nr(t){let e={...t};return delete e.operation,delete e.mode,e}var k=class{constructor(e,n,r,o={}){this.
171
171
  structure=e,this.types=ht(n),this.validators=ht(r),this.operations=jr(o),this._installOperationMethods()}_typeError(e){return this.
172
172
  _paramError(e,"TYPE_CAST_FAILED","Value could not be cast to the required type.")}_paramError(e,n,r,o={}){let s=new Error(
173
173
  r);return s.errorObject={field:e,code:n,message:r,params:o},s}_paramToBeSkipped(e,n,r){return typeof n!="object"||n===null?
@@ -188,95 +188,95 @@ let o={};for(let s of r.outputFieldNames){if(!Object.hasOwn(this.structure,s))co
188
188
  void 0||i&&e[s]===null||r.defaultedFields.has(s))&&(!i&&!r.defaultedFields.has(s)||p(o,s,n[s]))}return o}_resolveObjectFieldMode(e,n){
189
189
  return Z(e,n)}_resolveArrayItemsConfig(e,n){return K(e,n)}_resolveObjectValuesConfig(e,n){return q(e,n)}_buildArrayItemSettings(e,n){
190
190
  return e.type==="object"&&Object.hasOwn(e,"schema")?{...n,operationName:"replace",operation:this.operations.replace}:n}_castValue(e,n,r,o,s,i,a,c){
191
- let u=e.nullable===!0||a.nullable===!0,l=e.nullOnEmpty===!0||a.nullOnEmpty===!0;if(!Object.hasOwn(this.types,e.type))throw new Error(
192
- `No casting function for type: ${e.type}`);let d=this.types[e.type];if(n===null)return u?(p(o,s,null),{errors:{},shouldContinue:!1}):
191
+ let l=e.nullable===!0||a.nullable===!0,u=e.nullOnEmpty===!0||a.nullOnEmpty===!0;if(!Object.hasOwn(this.types,e.type))throw new Error(
192
+ `No casting function for type: ${e.type}`);let d=this.types[e.type];if(n===null)return l?(p(o,s,null),{errors:{},shouldContinue:!1}):
193
193
  {errors:this._singleErrorMap({field:r,code:"NOT_NULLABLE",message:"Field cannot be null",params:{}}),shouldContinue:!1};
194
- if(n===""&&l)return p(o,s,null),{errors:{},shouldContinue:!1};let f={schema:this,definition:e,value:n,fieldName:r,object:o,
194
+ if(n===""&&u)return p(o,s,null),{errors:{},shouldContinue:!1};let f={schema:this,definition:e,value:n,fieldName:r,object:o,
195
195
  objectBeforeCast:i,valueBeforeCast:n,options:a,mode:c.operationName,operation:c.operationName,fieldPresent:!0,computedOptions:{
196
- nullable:u||l,nullOnEmpty:l},throwTypeError:()=>{throw this._typeError(r)},throwParamError:(m,h,g)=>{throw this._paramError(
197
- r,m,h,g)}};try{let m=d(f);if(ut(m))throw new Error(`Type handler for "${e.type}" must be synchronous.`);m!==void 0&&(p(o,
196
+ nullable:l||u,nullOnEmpty:u},throwTypeError:()=>{throw this._typeError(r)},throwParamError:(m,h,g)=>{throw this._paramError(
197
+ r,m,h,g)}};try{let m=d(f);if(lt(m))throw new Error(`Type handler for "${e.type}" must be synchronous.`);m!==void 0&&(p(o,
198
198
  s,m),f.value=m)}catch(m){if(m.errorObject)return{errors:this._singleErrorMap(m.errorObject),shouldContinue:!1};throw m}return{
199
199
  errors:{},context:f,shouldContinue:!0}}_runFieldValidators(e,n,r,o,s,i){for(let a of Object.keys(e)){if(a==="type"||this.
200
200
  _paramToBeSkipped(a,i.skipParams,n)||!Object.hasOwn(this.validators,a))continue;let c=this.validators[a];try{s.parameterName=
201
- a,s.parameterValue=e[a];let u=c(s);if(ut(u))throw new Error(`Validator handler for "${a}" must be synchronous.`);u!==void 0&&
202
- (p(r,o,u),s.value=u)}catch(u){if(u.errorObject)return this._singleErrorMap(u.errorObject);throw u}}return{}}_normalizeAndValidateValue(e,n,r,o,s,i,a,c){
203
- let u=this._castValue(e,n,r,o,s,i,a,c);if(Object.keys(u.errors).length>0)return u.errors;if(!u.shouldContinue)return{};let{
204
- context:l}=u,d=this._validateNestedValue(e,r,o,s,a,c);return Object.keys(d).length>0?d:(l.value=o[s],this._runFieldValidators(
205
- e,r,o,s,l,a))}_normalizeDefault(e,n,{fieldPath:r,currentObject:o,containerKey:s,objectBeforeCast:i,options:a,settings:c}){
206
- let u={...o};return p(u,s,n),{errors:this._normalizeAndValidateValue(e,n,r,u,s,i,a,c),value:u[s]}}_validateNestedValue(e,n,r,o,s,i){
201
+ a,s.parameterValue=e[a];let l=c(s);if(lt(l))throw new Error(`Validator handler for "${a}" must be synchronous.`);l!==void 0&&
202
+ (p(r,o,l),s.value=l)}catch(l){if(l.errorObject)return this._singleErrorMap(l.errorObject);throw l}}return{}}_normalizeAndValidateValue(e,n,r,o,s,i,a,c){
203
+ let l=this._castValue(e,n,r,o,s,i,a,c);if(Object.keys(l.errors).length>0)return l.errors;if(!l.shouldContinue)return{};let{
204
+ context:u}=l,d=this._validateNestedValue(e,r,o,s,a,c);return Object.keys(d).length>0?d:(u.value=o[s],this._runFieldValidators(
205
+ e,r,o,s,u,a))}_normalizeDefault(e,n,{fieldPath:r,currentObject:o,containerKey:s,objectBeforeCast:i,options:a,settings:c}){
206
+ let l={...o};return p(l,s,n),{errors:this._normalizeAndValidateValue(e,n,r,l,s,i,a,c),value:l[s]}}_validateNestedValue(e,n,r,o,s,i){
207
207
  if(e.type==="object"){let c=this._resolveObjectFieldMode(n,e);return c.kind==="nested"?this._validateNestedObjectSchema(
208
208
  c,n,r,o,s,i):c.kind==="map"?this._validateObjectValues(n,r,o,c.valuesConfig,s,i):{}}if(e.type!=="array")return{};let a=this.
209
209
  _resolveArrayItemsConfig(n,e);return a?this._validateArrayItems(n,r,o,a,s,i):{}}_validateNestedObjectSchema(e,n,r,o,s,i){
210
- let a=r[o],c=e.allowAdditionalProperties?this._extractKnownObjectFields(a,e.schema):a,u=e.schema._validateWithOperation(
210
+ let a=r[o],c=e.allowAdditionalProperties?this._extractKnownObjectFields(a,e.schema):a,l=e.schema._validateWithOperation(
211
211
  i.operationName,i.operation,c,M(s,n));return p(r,o,e.allowAdditionalProperties?this._mergeKnownAndPassthroughObjectFields(
212
- a,e.schema,u.validatedObject):u.validatedObject),R(u.errors,n)}_extractKnownObjectFields(e,n){let r={};for(let[o,s]of Object.
212
+ a,e.schema,l.validatedObject):l.validatedObject),R(l.errors,n)}_extractKnownObjectFields(e,n){let r={};for(let[o,s]of Object.
213
213
  entries(e))Object.hasOwn(n.structure,o)&&p(r,o,s);return r}_mergeKnownAndPassthroughObjectFields(e,n,r){let o={};for(let s of Object.
214
214
  keys(e)){if(!Object.hasOwn(n.structure,s)){p(o,s,e[s]);continue}Object.hasOwn(r,s)&&p(o,s,r[s])}for(let[s,i]of Object.entries(
215
- r))Object.hasOwn(o,s)||p(o,s,i);return o}_validateObjectValues(e,n,r,o,s,i){let a=n[r],c={...a},u={};p(n,r,c);for(let l of Object.
216
- keys(a)){let d=T(e,l);if(this._fieldToBeSkipped(d,s))continue;let f=c[l];if(f===void 0){i.rejectExplicitUndefined?this._mergeErrors(
217
- u,this._singleErrorMap(this._typeError(d).errorObject)):delete c[l];continue}if(o.kind==="schema"){let h=o.schema._validateWithOperation(
218
- "replace",o.schema.operations.replace,f,M(s,d));p(c,l,h.validatedObject),this._mergeErrors(u,R(h.errors,d));continue}let m=this.
219
- _normalizeAndValidateValue(o.definition,f,d,c,l,a,s,this._buildArrayItemSettings(o.definition,i));this._mergeErrors(u,m)}
220
- return u}_validateArrayItems(e,n,r,o,s,i){let a=n[r],c=a.slice(),u={};p(n,r,c);for(let l=0;l<c.length;l++){let d=T(e,l);
221
- if(this._fieldToBeSkipped(d,s))continue;if(!Object.hasOwn(a,l)||c[l]===void 0){i.rejectExplicitUndefined?this._mergeErrors(
222
- u,this._singleErrorMap(this._typeError(d).errorObject)):delete c[l];continue}if(o.kind==="schema"){let m=o.schema._validateWithOperation(
223
- "replace",o.schema.operations.replace,c[l],M(s,d));p(c,l,m.validatedObject),this._mergeErrors(u,R(m.errors,d));continue}
224
- let f=this._normalizeAndValidateValue(o.definition,c[l],d,c,l,a,s,this._buildArrayItemSettings(o.definition,i));this._mergeErrors(
225
- u,f)}return u}_validateField(e,n,r,o,s){if(!Object.hasOwn(this.structure,e))return{};let i=this.structure[e];if(this._fieldToBeSkipped(
226
- e,o))return{};let a=s.isFieldPresent(e),c=n[e],u=c===void 0;return s.enforceRequired&&i.required&&(!a||u)&&!this._paramToBeSkipped(
227
- "required",o.skipParams,e)?this._singleErrorMap({field:e,code:"REQUIRED",message:"Field is required",params:{}}):a?u?s.rejectExplicitUndefined?
215
+ r))Object.hasOwn(o,s)||p(o,s,i);return o}_validateObjectValues(e,n,r,o,s,i){let a=n[r],c={...a},l={};p(n,r,c);for(let u of Object.
216
+ keys(a)){let d=A(e,u);if(this._fieldToBeSkipped(d,s))continue;let f=c[u];if(f===void 0){i.rejectExplicitUndefined?this._mergeErrors(
217
+ l,this._singleErrorMap(this._typeError(d).errorObject)):delete c[u];continue}if(o.kind==="schema"){let h=o.schema._validateWithOperation(
218
+ "replace",o.schema.operations.replace,f,M(s,d));p(c,u,h.validatedObject),this._mergeErrors(l,R(h.errors,d));continue}let m=this.
219
+ _normalizeAndValidateValue(o.definition,f,d,c,u,a,s,this._buildArrayItemSettings(o.definition,i));this._mergeErrors(l,m)}
220
+ return l}_validateArrayItems(e,n,r,o,s,i){let a=n[r],c=a.slice(),l={};p(n,r,c);for(let u=0;u<c.length;u++){let d=A(e,u);
221
+ if(this._fieldToBeSkipped(d,s))continue;if(!Object.hasOwn(a,u)||c[u]===void 0){i.rejectExplicitUndefined?this._mergeErrors(
222
+ l,this._singleErrorMap(this._typeError(d).errorObject)):delete c[u];continue}if(o.kind==="schema"){let m=o.schema._validateWithOperation(
223
+ "replace",o.schema.operations.replace,c[u],M(s,d));p(c,u,m.validatedObject),this._mergeErrors(l,R(m.errors,d));continue}
224
+ let f=this._normalizeAndValidateValue(o.definition,c[u],d,c,u,a,s,this._buildArrayItemSettings(o.definition,i));this._mergeErrors(
225
+ l,f)}return l}_validateField(e,n,r,o,s){if(!Object.hasOwn(this.structure,e))return{};let i=this.structure[e];if(this._fieldToBeSkipped(
226
+ e,o))return{};let a=s.isFieldPresent(e),c=n[e],l=c===void 0;return s.enforceRequired&&i.required&&(!a||l)&&!this._paramToBeSkipped(
227
+ "required",o.skipParams,e)?this._singleErrorMap({field:e,code:"REQUIRED",message:"Field is required",params:{}}):a?l?s.rejectExplicitUndefined?
228
228
  this._singleErrorMap(this._typeError(e).errorObject):{}:this._normalizeAndValidateValue(i,c,e,r,e,n,o,s):{}}_validateWithOperation(e,n,r,o){
229
229
  this._assertSupportedOptions(o);let s={},i={...r},a=this._buildOperationSettings(e,n,r);for(let c of Object.keys(r))Object.
230
230
  hasOwn(this.structure,c)||p(s,c,{field:c,code:"FIELD_NOT_ALLOWED",message:"Field not allowed",params:{}});for(let c of a.
231
- targetFieldNames){let u=this._validateField(c,r,i,o,a);this._mergeErrors(s,u)}if(a.applyDefaults){for(let c of Object.keys(
232
- this.structure))if(!a.isFieldPresent(c)&&this.structure[c].defaultTo!==void 0){let u=this.structure[c],l=typeof u.defaultTo==
233
- "function"?u.defaultTo():u.defaultTo,d=this._normalizeDefault(u,l,{fieldPath:c,currentObject:i,containerKey:c,objectBeforeCast:r,
231
+ targetFieldNames){let l=this._validateField(c,r,i,o,a);this._mergeErrors(s,l)}if(a.applyDefaults){for(let c of Object.keys(
232
+ this.structure))if(!a.isFieldPresent(c)&&this.structure[c].defaultTo!==void 0){let l=this.structure[c],u=typeof l.defaultTo==
233
+ "function"?l.defaultTo():l.defaultTo,d=this._normalizeDefault(l,u,{fieldPath:c,currentObject:i,containerKey:c,objectBeforeCast:r,
234
234
  options:o,settings:a});if(this._mergeErrors(s,d.errors),Object.keys(d.errors).length>0)continue;p(i,c,d.value),a.defaultedFields.
235
235
  add(c)}}return{validatedObject:this._buildOperationResult(r,i,a),errors:s}}_validateSelectedTree(e,n,r,o,s=""){let i={},
236
- a={};for(let c of pt(Object.keys(e))){let u=yt(s,c);if(!Object.hasOwn(this.structure,c))throw new Error(`Unknown schema \
237
- path "${u}".`);let l=this._validateSelectedField(c,e[c],n,a,r,o,u);this._mergeErrors(i,l)}return{validatedObject:a,errors:i}}_validateSelectedField(e,n,r,o,s,i,a){
238
- if(!Object.hasOwn(this.structure,e))return{};let c=this.structure[e],u=n.self===!0,l=lt(n);if(this._fieldToBeSkipped(a,s))
239
- return{};let d=Object.hasOwn(r,e),f=r[e],m={};if(!d){if(u&&i.enforceRequired&&c.required&&!this._paramToBeSkipped("requi\
236
+ a={};for(let c of pt(Object.keys(e))){let l=yt(s,c);if(!Object.hasOwn(this.structure,c))throw new Error(`Unknown schema \
237
+ path "${l}".`);let u=this._validateSelectedField(c,e[c],n,a,r,o,l);this._mergeErrors(i,u)}return{validatedObject:a,errors:i}}_validateSelectedField(e,n,r,o,s,i,a){
238
+ if(!Object.hasOwn(this.structure,e))return{};let c=this.structure[e],l=n.self===!0,u=ut(n);if(this._fieldToBeSkipped(a,s))
239
+ return{};let d=Object.hasOwn(r,e),f=r[e],m={};if(!d){if(l&&i.enforceRequired&&c.required&&!this._paramToBeSkipped("requi\
240
240
  red",s.skipParams,a)&&this._mergeErrors(m,this._singleErrorMap({field:a,code:"REQUIRED",message:"Field is required",params:{}})),
241
- u&&i.applyDefaults&&c.defaultTo!==void 0){let b=typeof c.defaultTo=="function"?c.defaultTo():c.defaultTo,I=this._normalizeDefault(
242
- c,b,{fieldPath:a,currentObject:o,containerKey:e,objectBeforeCast:r,options:s,settings:i});this._mergeErrors(m,I.errors),
243
- Object.keys(I.errors).length===0&&p(o,e,I.value)}return m}if(f===void 0)return u&&i.rejectExplicitUndefined?this._singleErrorMap(
244
- this._typeError(a).errorObject):{};let h={[e]:f};if(u){let b=this._normalizeAndValidateValue(c,f,a,h,e,r,s,i);return Object.
245
- hasOwn(h,e)&&h[e]!==void 0?p(o,e,h[e]):h[e]===null&&p(o,e,null),b}if(!l)return{};let g=this._castValue(c,f,a,h,e,r,s,i);
246
- if(Object.keys(g.errors).length>0)return g.errors;if(!g.shouldContinue)return{};let P=this._validateSelectedDescendants(
247
- c,n.children,a,h,e,s,i);return re(h[e])&&p(o,e,h[e]),P}_validateSelectedDescendants(e,n,r,o,s,i,a){if(e.type==="object"){
241
+ l&&i.applyDefaults&&c.defaultTo!==void 0){let E=typeof c.defaultTo=="function"?c.defaultTo():c.defaultTo,I=this._normalizeDefault(
242
+ c,E,{fieldPath:a,currentObject:o,containerKey:e,objectBeforeCast:r,options:s,settings:i});this._mergeErrors(m,I.errors),
243
+ Object.keys(I.errors).length===0&&p(o,e,I.value)}return m}if(f===void 0)return l&&i.rejectExplicitUndefined?this._singleErrorMap(
244
+ this._typeError(a).errorObject):{};let h={[e]:f};if(l){let E=this._normalizeAndValidateValue(c,f,a,h,e,r,s,i);return Object.
245
+ hasOwn(h,e)&&h[e]!==void 0?p(o,e,h[e]):h[e]===null&&p(o,e,null),E}if(!u)return{};let g=this._castValue(c,f,a,h,e,r,s,i);
246
+ if(Object.keys(g.errors).length>0)return g.errors;if(!g.shouldContinue)return{};let x=this._validateSelectedDescendants(
247
+ c,n.children,a,h,e,s,i);return re(h[e])&&p(o,e,h[e]),x}_validateSelectedDescendants(e,n,r,o,s,i,a){if(e.type==="object"){
248
248
  let c=this._resolveObjectFieldMode(r,e);if(c.kind!=="nested")throw new Error(`Schema path "${r}" does not support nested\
249
- field selection.`);let u=o[s];if(!y(u))return{};let l=c.schema._validateSelectedTree(n,u,M(i,r),{...a,defaultedFields:new Set});
250
- return p(o,s,l.validatedObject),R(l.errors,r)}if(e.type==="array"){let c=this._resolveArrayItemsConfig(r,e);if(!c)throw new Error(
249
+ field selection.`);let l=o[s];if(!y(l))return{};let u=c.schema._validateSelectedTree(n,l,M(i,r),{...a,defaultedFields:new Set});
250
+ return p(o,s,u.validatedObject),R(u.errors,r)}if(e.type==="array"){let c=this._resolveArrayItemsConfig(r,e);if(!c)throw new Error(
251
251
  `Schema path "${r}" does not define array items for nested selection.`);return this._validateSelectedArrayItems(r,o,s,c,
252
252
  n,i,a)}throw new Error(`Schema path "${r}" does not support nested field selection.`)}_validateSelectedArrayItems(e,n,r,o,s,i,a){
253
- let c=[],u=n[r],l={};p(n,r,c);for(let d of pt(Object.keys(s))){if(!/^[0-9]+$/.test(d))throw new Error(`Schema path "${T(
254
- e,d)}" is invalid because array segments must use numeric indexes.`);let f=Number(d),m=T(e,f),h=s[d],g=h.self===!0,P=lt(
255
- h);if(this._fieldToBeSkipped(m,i))continue;if(!Object.hasOwn(u,f)){g&&a.rejectExplicitUndefined&&p(l,m,this._typeError(m).
256
- errorObject);continue}let b=u[f];if(b===void 0){g&&a.rejectExplicitUndefined&&p(l,m,this._typeError(m).errorObject);continue}
257
- if(o.kind==="schema"){if(g){let ae=o.schema._validateWithOperation("replace",o.schema.operations.replace,b,M(i,m));re(ae.
258
- validatedObject)&&p(c,f,ae.validatedObject),this._mergeErrors(l,R(ae.errors,m));continue}if(!P)continue;let V=o.schema._validateSelectedTree(
259
- h.children,b,M(i,m),{...a,operationName:"replace",operation:o.schema.operations.replace,defaultedFields:new Set});re(V.validatedObject)&&
260
- p(c,f,V.validatedObject),this._mergeErrors(l,R(V.errors,m));continue}let I=this._buildArrayItemSettings(o.definition,a),
261
- E=[b];if(g){let V=this._normalizeAndValidateValue(o.definition,b,m,E,0,u,i,I);Object.hasOwn(E,0)&&E[0]!==void 0?p(c,f,E[0]):
262
- E[0]===null&&p(c,f,null),this._mergeErrors(l,V);continue}if(!P)continue;let ie=this._castValue(o.definition,b,m,E,0,u,i,
263
- I);if(Object.keys(ie.errors).length>0){this._mergeErrors(l,ie.errors);continue}if(!ie.shouldContinue)continue;let Lt=this.
264
- _validateSelectedDescendants(o.definition,h.children,m,E,0,i,I);re(E[0])&&p(c,f,E[0]),this._mergeErrors(l,Lt)}return l}validateWith(e,n,r={}){
253
+ let c=[],l=n[r],u={};p(n,r,c);for(let d of pt(Object.keys(s))){if(!/^[0-9]+$/.test(d))throw new Error(`Schema path "${A(
254
+ e,d)}" is invalid because array segments must use numeric indexes.`);let f=Number(d),m=A(e,f),h=s[d],g=h.self===!0,x=ut(
255
+ h);if(this._fieldToBeSkipped(m,i))continue;if(!Object.hasOwn(l,f)){g&&a.rejectExplicitUndefined&&p(u,m,this._typeError(m).
256
+ errorObject);continue}let E=l[f];if(E===void 0){g&&a.rejectExplicitUndefined&&p(u,m,this._typeError(m).errorObject);continue}
257
+ if(o.kind==="schema"){if(g){let ae=o.schema._validateWithOperation("replace",o.schema.operations.replace,E,M(i,m));re(ae.
258
+ validatedObject)&&p(c,f,ae.validatedObject),this._mergeErrors(u,R(ae.errors,m));continue}if(!x)continue;let B=o.schema._validateSelectedTree(
259
+ h.children,E,M(i,m),{...a,operationName:"replace",operation:o.schema.operations.replace,defaultedFields:new Set});re(B.validatedObject)&&
260
+ p(c,f,B.validatedObject),this._mergeErrors(u,R(B.errors,m));continue}let I=this._buildArrayItemSettings(o.definition,a),
261
+ O=[E];if(g){let B=this._normalizeAndValidateValue(o.definition,E,m,O,0,l,i,I);Object.hasOwn(O,0)&&O[0]!==void 0?p(c,f,O[0]):
262
+ O[0]===null&&p(c,f,null),this._mergeErrors(u,B);continue}if(!x)continue;let ie=this._castValue(o.definition,E,m,O,0,l,i,
263
+ I);if(Object.keys(ie.errors).length>0){this._mergeErrors(u,ie.errors);continue}if(!ie.shouldContinue)continue;let Lt=this.
264
+ _validateSelectedDescendants(o.definition,h.children,m,O,0,i,I);re(O[0])&&p(c,f,O[0]),this._mergeErrors(u,Lt)}return u}validateWith(e,n,r={}){
265
265
  if(!Object.hasOwn(this.operations,e))throw new Error(`Unknown operation "${e}".`);let o=this.operations[e];return this._assertPlainObjectInput(
266
266
  e,n),this._validateWithOperation(e,o,n,r)}validateAt(e,n,r={}){this._assertPlainObjectInput("validateAt",n);let o=_e(e),
267
267
  {operationName:s,operation:i,validationOptions:a}=this._resolvePathValidationRequest(r),c=this._validateSelectedTree(ft(
268
- [e]),n,a,this._buildOperationSettings(s,i,n));return{validatedValue:Tr(c.validatedObject,o),errors:c.errors}}validatePaths(e,n,r={}){
268
+ [e]),n,a,this._buildOperationSettings(s,i,n));return{validatedValue:Ar(c.validatedObject,o),errors:c.errors}}validatePaths(e,n,r={}){
269
269
  if(this._assertPlainObjectInput("validatePaths",n),!Array.isArray(e)||e.length===0)throw new Error("validatePaths() expe\
270
270
  cts a non-empty array of schema paths.");let{operationName:o,operation:s,validationOptions:i}=this._resolvePathValidationRequest(
271
271
  r);return this._validateSelectedTree(ft(e),n,i,this._buildOperationSettings(o,s,n))}_installOperationMethods(){for(let e of Object.
272
272
  keys(this.operations)){if(e in this)throw new Error(`Operation name "${e}" is reserved and cannot be used as a schema me\
273
- thod.`);this[e]=(n,r={})=>this.validateWith(e,n,r)}}toJsonSchema(e={}){return ct(this,e)}getFieldDefinitions(){return ve(
273
+ thod.`);this[e]=(n,r={})=>this.validateWith(e,n,r)}}toJsonSchema(e={}){return ct(this,e)}getFieldDefinitions(){return Se(
274
274
  this.structure)}getFieldDefinition(e){if(typeof e!="string"||e.trim()==="")throw new Error("Field path must be a non-emp\
275
- ty string.");let n=Te(this,_e(e.trim()));return n===null?null:ve(n)}getFieldMessages(e){let n=this.getFieldDefinition(e);
276
- return!n||typeof n.messages!="object"||n.messages===null?Object.freeze({}):ve(n.messages)}cleanup(e,n){let r={};for(let o of Object.
277
- keys(e))Object.hasOwn(this.structure,o)&&this.structure[o][n]&&p(r,o,e[o]);return r}};var{parse:Ho,stringify:Rr}=JSON,{keys:Jo}=Object,Mr=String,Dr="string";var gt="object",kr=(t,e)=>e;var bt=(t,e,n)=>{let r=Mr(e.push(n)-1);return t.set(n,r),r};var Et=(t,e,n)=>{let r=e&&typeof e===gt?(l,d)=>l===""||-1<e.indexOf(l)?d:void 0:e||kr,o=new Map,s=[],i=[],a=+bt(o,s,r.call(
278
- {"":t},"",t)),c=!a;for(;a<s.length;)c=!0,i[a]=Rr(s[a++],u,n);return"["+i.join(",")+"]";function u(l,d){if(c)return c=!c,
279
- d;let f=r.call(this,l,d);switch(typeof f){case gt:if(f===null)return f;case Dr:return o.get(f)||bt(o,s,f)}return f}};var Lr=new Set(["true","1","yes","y","on"]),$r=new Set(["false","0","no","n","off"]);function Fr(t){return t!==null&&(typeof t==
275
+ ty string.");let n=Ae(this,_e(e.trim()));return n===null?null:Se(n)}getFieldMessages(e){let n=this.getFieldDefinition(e);
276
+ return!n||typeof n.messages!="object"||n.messages===null?Object.freeze({}):Se(n.messages)}cleanup(e,n){let r={};for(let o of Object.
277
+ keys(e))Object.hasOwn(this.structure,o)&&this.structure[o][n]&&p(r,o,e[o]);return r}};var{parse:Ho,stringify:Rr}=JSON,{keys:Jo}=Object,Mr=String,kr="string";var gt="object",Dr=(t,e)=>e;var bt=(t,e,n)=>{let r=Mr(e.push(n)-1);return t.set(n,r),r};var Et=(t,e,n)=>{let r=e&&typeof e===gt?(u,d)=>u===""||-1<e.indexOf(u)?d:void 0:e||Dr,o=new Map,s=[],i=[],a=+bt(o,s,r.call(
278
+ {"":t},"",t)),c=!a;for(;a<s.length;)c=!0,i[a]=Rr(s[a++],l,n);return"["+i.join(",")+"]";function l(u,d){if(c)return c=!c,
279
+ d;let f=r.call(this,u,d);switch(typeof f){case gt:if(f===null)return f;case kr:return o.get(f)||bt(o,s,f)}return f}};var Lr=new Set(["true","1","yes","y","on"]),$r=new Set(["false","0","no","n","off"]);function Fr(t){return t!==null&&(typeof t==
280
280
  "object"||typeof t=="function")&&typeof t.then=="function"}function Ot(t){if(typeof t=="number")return Number.isFinite(t)?
281
281
  t:null;if(typeof t=="bigint"){let e=Number(t);return Number.isSafeInteger(e)?e:null}if(typeof t=="string"){let e=t.trim();
282
282
  if(e==="")return null;let n=Number(e);return Number.isFinite(n)?n:null}return null}function Ce(t,e){if(Object.is(t,e))return!0;
@@ -329,13 +329,13 @@ ed character range.",{max:r.parameterValue,actual:String(r.valueBeforeCast).leng
329
329
  typeof r.value=="string"&&r.value===""&&r.throwParamError("NOT_EMPTY","Field cannot be empty.")}),n("required",()=>{}),n(
330
330
  "unsigned",()=>{}),n("precision",()=>{}),n("scale",()=>{}),n("temporalPrecision",r=>{if(r.definition.type!=="time"&&r.definition.
331
331
  type!=="dateTime")throw new Error(`temporalPrecision can only be used on time or dateTime fields (${r.fieldName}).`)}),n(
332
- "nullable",()=>{}),n("nullOnEmpty",()=>{}),n("defaultTo",()=>{})}},St=Ur;var _t=new WeakMap,Tt=new WeakMap,At=Symbol.for("json-rest-schema.registry-metadata");function Br(t,e,n){if(typeof n!="f\
333
- unction")throw new Error(`Type handler for '${e}' must be a function.`);p(t,e,n)}function Vr(t,e,n){if(typeof n!="functi\
332
+ "nullable",()=>{}),n("nullOnEmpty",()=>{}),n("defaultTo",()=>{})}},vt=Ur;var _t=new WeakMap,At=new WeakMap,Tt=Symbol.for("json-rest-schema.registry-metadata");function Vr(t,e,n){if(typeof n!="f\
333
+ unction")throw new Error(`Type handler for '${e}' must be a function.`);p(t,e,n)}function Br(t,e,n){if(typeof n!="functi\
334
334
  on")throw new Error(`Validator handler for '${e}' must be a function.`);p(t,e,n)}function se(t={}){let e=Object.create(null);
335
335
  for(let[n,r]of Object.entries(t))p(e,n,r);return e}function qr(t,e){if(typeof t.install!="function")throw new Error("Plu\
336
- gin must have an install method.");t.install(e)}function vt(t,e,n){_t.set(t,e),Tt.set(t,n),Object.defineProperty(t,At,{value:Object.
336
+ gin must have an install method.");t.install(e)}function St(t,e,n){_t.set(t,e),At.set(t,n),Object.defineProperty(t,Tt,{value:Object.
337
337
  freeze({getTypes:()=>e,getValidators:()=>n}),enumerable:!1,configurable:!1,writable:!1})}function Gr(t){if(!t||typeof t!=
338
- "object"&&typeof t!="function")return null;let e=_t.get(t),n=Tt.get(t);if(e&&n)return{types:e,validators:n};let r=t[At];
338
+ "object"&&typeof t!="function")return null;let e=_t.get(t),n=At.get(t);if(e&&n)return{types:e,validators:n};let r=t[Tt];
339
339
  return r&&typeof r.getTypes=="function"&&typeof r.getValidators=="function"?{types:r.getTypes(),validators:r.getValidators()}:
340
340
  typeof t=="object"&&t.types&&typeof t.types=="object"&&t.validators&&typeof t.validators=="object"&&typeof t.create=="fu\
341
341
  nction"&&typeof t.replace=="function"&&typeof t.patch=="function"&&typeof t.toJsonSchema=="function"?{types:t.types,validators:t.
@@ -345,15 +345,35 @@ for(let[r,o]of Object.entries(e)){if(Object.hasOwn(t,r)&&!Jr(t[r],o))throw new E
345
345
  e)};let o=Object.create(null),s=Object.create(null);for(let i of r){let a=Gr(i);if(!a)throw new Error("Factory sources m\
346
346
  ust be schema instances or schema factories created by json-rest-schema.");It(o,a.types,"type"),It(s,a.validators,"valid\
347
347
  ator")}return{types:o,validators:s}}function Ct({types:t={},validators:e={},installCore:n=!0}={}){let r=se(t),o=se(e),s=(i,a={})=>{
348
- let c=new D(i,r,o,a.operations);return vt(c,r,o),c};return vt(s,r,o),s.addType=(i,a)=>{Br(r,i,a)},s.addValidator=(i,a)=>{
349
- Vr(o,i,a)},s.use=i=>{qr(i,{addType:s.addType,addValidator:s.addValidator})},s.createFactory=(...i)=>{let a=Wr(r,o,i);return Ct(
350
- {types:a.types,validators:a.validators,installCore:!1})},n&&s.use(St),s}var A=Ct({installCore:!0});function C(t,e=new WeakSet){if(!t||typeof t!="object"||e.has(t))return t;e.add(t);for(let n of Object.getOwnPropertyNames(
351
- t))C(t[n],e);return Object.freeze(t)}var hs=Object.freeze({REQUIRED:"required",TYPE_CAST_FAILED:"default",NOT_NULLABLE:"default",MIN_LENGTH:"minLength",MAX_LENGTH:"\
352
- maxLength",MIN_VALUE:"min",MAX_VALUE:"max",PATTERN:"pattern",ENUM_VALUE:"enum",FIELD_NOT_ALLOWED:"additionalProperties",
353
- CUSTOM_VALIDATOR_FAILED:"default"});var Kr=A({cursor:{type:"id",required:!1},limit:{type:"number",required:!1,min:1,unsigned:!0}}),Zr=Object.freeze({schema:Kr,
354
- mode:"patch"});var xt=Object.freeze({type:"string",pattern:"^(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d)?$",minLength:5}),Qr=Object.freeze(
355
- {...xt,nullable:!0});var jt="^[1-9][0-9]*$",Pe=C({type:"string",minLength:1,pattern:jt}),tn=C({...Pe,nullable:!0}),rn=C({schema:A({recordId:{
356
- ...Pe,required:!0,messages:{pattern:"Record id must be a canonical positive integer string."}}}),mode:"patch"});var Nt=20,gi=32*1024,bi=48*1024,xe=Object.freeze({search:"assistant_action_search",contract:"assistant_action_contract",
348
+ let c=new k(i,r,o,a.operations);return St(c,r,o),c};return St(s,r,o),s.addType=(i,a)=>{Vr(r,i,a)},s.addValidator=(i,a)=>{
349
+ Br(o,i,a)},s.use=i=>{qr(i,{addType:s.addType,addValidator:s.addValidator})},s.createFactory=(...i)=>{let a=Wr(r,o,i);return Ct(
350
+ {types:a.types,validators:a.validators,installCore:!1})},n&&s.use(vt),s}var T=Ct({installCore:!0});function C(t,e=new WeakSet){if(!t||typeof t!="object"||e.has(t))return t;e.add(t);for(let n of Object.getOwnPropertyNames(
351
+ t))C(t[n],e);return Object.freeze(t)}var hs=Object.freeze({REQUIRED:{messageKey:"required",code:"kernel.validation.field.required"},TYPE_CAST_FAILED:{messageKey:"\
352
+ default",code:"kernel.validation.field.typeCastFailed"},NOT_NULLABLE:{messageKey:"default",code:"kernel.validation.field\
353
+ .notNullable"},MIN_LENGTH:{messageKey:"minLength",code:"kernel.validation.field.minLength"},MAX_LENGTH:{messageKey:"maxL\
354
+ ength",code:"kernel.validation.field.maxLength"},MIN_VALUE:{messageKey:"min",code:"kernel.validation.field.minValue"},MAX_VALUE:{
355
+ messageKey:"max",code:"kernel.validation.field.maxValue"},PATTERN:{messageKey:"pattern",code:"kernel.validation.field.pa\
356
+ ttern"},ENUM_VALUE:{messageKey:"enum",code:"kernel.validation.field.enumValue"},FIELD_NOT_ALLOWED:{messageKey:"additiona\
357
+ lProperties",code:"kernel.validation.field.notAllowed"},CUSTOM_VALIDATOR_FAILED:{messageKey:"validator",code:""},STRICT_BOOLEAN:{
358
+ messageKey:"default",code:"kernel.validation.field.strictBoolean"},RANGE_EXCEEDED:{messageKey:"default",code:"kernel.val\
359
+ idation.field.rangeExceeded"},NOT_EMPTY:{messageKey:"default",code:"kernel.validation.field.notEmpty"}}),ys=Object.freeze(
360
+ {code:"kernel.validation.invalid",message:"Invalid value."});var Kr=T({cursor:{type:"id",required:!1},limit:{type:"number",required:!1,min:1,unsigned:!0}}),Zr=Object.freeze({schema:Kr,
361
+ mode:"patch"});var Pt=Object.freeze({type:"string",pattern:"^(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d)?$",minLength:5}),Qr=Object.freeze(
362
+ {...Pt,nullable:!0});var Fs=new Map([{keyword:"required",code:"kernel.validation.required"},{keyword:"type",code:"kernel.validation.type"},{keyword:"\
363
+ minLength",code:"kernel.validation.minLength"},{keyword:"maxLength",code:"kernel.validation.maxLength"},{keyword:"minimu\
364
+ m",code:"kernel.validation.minimum"},{keyword:"maximum",code:"kernel.validation.maximum"},{keyword:"exclusiveMinimum",code:"\
365
+ kernel.validation.exclusiveMinimum"},{keyword:"exclusiveMaximum",code:"kernel.validation.exclusiveMaximum"},{keyword:"mu\
366
+ ltipleOf",code:"kernel.validation.multipleOf"},{keyword:"pattern",code:"kernel.validation.pattern"},{keyword:"format",code:"\
367
+ kernel.validation.format"},{keyword:"enum",code:"kernel.validation.enum"},{keyword:"const",code:"kernel.validation.const"},
368
+ {keyword:"minItems",code:"kernel.validation.minItems"},{keyword:"maxItems",code:"kernel.validation.maxItems"},{keyword:"\
369
+ additionalItems",code:"kernel.validation.additionalItems"},{keyword:"uniqueItems",code:"kernel.validation.uniqueItems"},
370
+ {keyword:"minProperties",code:"kernel.validation.minProperties"},{keyword:"maxProperties",code:"kernel.validation.maxPro\
371
+ perties"},{keyword:"additionalProperties",code:"kernel.validation.additionalProperties"},{keyword:"propertyNames",code:"\
372
+ kernel.validation.propertyNames"},{keyword:"oneOf",code:"kernel.validation.oneOf"},{keyword:"anyOf",code:"kernel.validat\
373
+ ion.anyOf"},{keyword:"not",code:"kernel.validation.not"},{keyword:"if",code:"kernel.validation.if"}].map(({keyword:t,code:e})=>[
374
+ t,e]));var jt="^[1-9][0-9]*$",xe=C({type:"string",minLength:1,pattern:jt}),tn=C({...xe,nullable:!0}),rn=C({schema:T({recordId:{
375
+ ...xe,required:!0,messages:{pattern:{code:"kernel.validation.recordIdInvalid",message:"Record id must be a canonical pos\
376
+ itive integer string."}}}}),mode:"patch"});var Nt=20,Ai=32*1024,Ti=48*1024,Pe=Object.freeze({search:"assistant_action_search",contract:"assistant_action_contract",
357
377
  execute:"assistant_action_execute"}),je=Object.freeze({type:"object",additionalProperties:!0}),sn=Object.freeze({type:"o\
358
378
  bject",additionalProperties:!1,properties:{query:{type:"string",maxLength:200,description:"Optional literal words or act\
359
379
  ion-id fragments; every word must match. Use short resource or operation terms such as list. Omit query to browse all av\
@@ -363,24 +383,24 @@ object",additionalProperties:!1,required:["items","nextCursor","total"],properti
363
383
  type:"object",additionalProperties:!1,required:["actionId","version","kind","description"],properties:{actionId:{type:"s\
364
384
  tring"},version:{type:"integer",minimum:1},kind:{type:"string"},description:{type:"string"}}}},nextCursor:{anyOf:[{type:"\
365
385
  string"},{type:"null"}]},total:{type:"integer",minimum:0}}}),cn=Object.freeze({type:"object",additionalProperties:!1,required:[
366
- "actionId"],properties:{actionId:{type:"string",minLength:1,maxLength:300},version:{type:"integer",minimum:1}}}),un=Object.
386
+ "actionId"],properties:{actionId:{type:"string",minLength:1,maxLength:300},version:{type:"integer",minimum:1}}}),ln=Object.
367
387
  freeze({type:"object",additionalProperties:!1,required:["actionId","version","kind","description","inputSchema","outputS\
368
388
  chema"],properties:{actionId:{type:"string"},version:{type:"integer",minimum:1},kind:{type:"string"},description:{type:"\
369
- string"},inputSchema:je,outputSchema:je}}),ln=Object.freeze({type:"object",additionalProperties:!1,required:["actionId",
389
+ string"},inputSchema:je,outputSchema:je}}),un=Object.freeze({type:"object",additionalProperties:!1,required:["actionId",
370
390
  "input"],properties:{actionId:{type:"string",minLength:1,maxLength:300},version:{type:"integer",minimum:1},input:je}}),dn=Object.
371
391
  freeze({type:"object",additionalProperties:!1,required:["actionId","version","result"],properties:{actionId:{type:"strin\
372
- g"},version:{type:"integer",minimum:1},result:{}}}),Rt=Object.freeze([Object.freeze({name:xe.search,description:"Discove\
392
+ g"},version:{type:"integer",minimum:1},result:{}}}),Rt=Object.freeze([Object.freeze({name:Pe.search,description:"Discove\
373
393
  r application actions available to the current user and surface, including list, search, and query operations for multip\
374
394
  le records. Search before claiming a capability is unavailable. If terminology does not match, use broader terms or omit\
375
395
  query to browse. Returns compact paged matches without schemas; follow nextCursor when more discovery is needed.",parameters:sn,
376
- outputSchema:an}),Object.freeze({name:xe.contract,description:"Load the exact input and output contract for one availabl\
377
- e action before executing it.",parameters:cn,outputSchema:un}),Object.freeze({name:xe.execute,description:"Execute one a\
378
- vailable action after loading its exact contract in this turn. The action result is returned in result.",parameters:ln,outputSchema:dn})]);var Ne="This conversation has no authorization for that native tool.";import{mkdir as Hi,readFile as pn,rename as Ji,writeFile as Wi}from"node:fs/promises";import k from"node:path";var J=x;function z(t,e={}){if(t?.modelProviderId&&e.model?.providerID!==t.modelProviderId)throw new Error("Assistants must use t\
396
+ outputSchema:an}),Object.freeze({name:Pe.contract,description:"Load the exact input and output contract for one availabl\
397
+ e action before executing it.",parameters:cn,outputSchema:ln}),Object.freeze({name:Pe.execute,description:"Execute one a\
398
+ vailable action after loading its exact contract in this turn. The action result is returned in result.",parameters:un,outputSchema:dn})]);var Ne="This conversation has no authorization for that native tool.";import{mkdir as ea,readFile as pn,rename as ta,writeFile as ra}from"node:fs/promises";import D from"node:path";var J=P;function z(t,e={}){if(t?.modelProviderId&&e.model?.providerID!==t.modelProviderId)throw new Error("Assistants must use t\
379
399
  he session's selected AI account.")}function L(t={},e={}){let n=t.model?.limit?.output,r=Number.isSafeInteger(n)&&n>0?n:
380
400
  32e3;Number.isSafeInteger(e.maxOutputTokens)&&e.maxOutputTokens>r&&(e.maxOutputTokens=r)}async function $(t=""){if(!t)return[];
381
- let e=JSON.parse(await pn(t,"utf8"));return Array.isArray(e?.sessions)?e.sessions:[]}function mn(t="",e=""){let n=k.relative(
382
- t,e);return n===""||!n.startsWith("..")&&!k.isAbsolute(n)}function F(t,e=""){let n=k.resolve(J(e)||process.cwd());return t.
383
- filter(r=>J(r?.workdir)&&mn(k.resolve(r.workdir),n)).sort((r,o)=>k.resolve(o.workdir).length-k.resolve(r.workdir).length)[0]||
401
+ let e=JSON.parse(await pn(t,"utf8"));return Array.isArray(e?.sessions)?e.sessions:[]}function mn(t="",e=""){let n=D.relative(
402
+ t,e);return n===""||!n.startsWith("..")&&!D.isAbsolute(n)}function F(t,e=""){let n=D.resolve(J(e)||process.cwd());return t.
403
+ filter(r=>J(r?.workdir)&&mn(D.resolve(r.workdir),n)).sort((r,o)=>D.resolve(o.workdir).length-D.resolve(r.workdir).length)[0]||
384
404
  null}async function U(t,e="",n=null){let r=new Set,o=J(e);for(;o&&!r.has(o)&&r.size<32;){let s=t.find(a=>J(a?.upstreamSessionId)===
385
405
  o);if(s)return s;if(!n)return null;r.add(o);let i=await n.session.get({path:{id:o}});if(i.error)throw Object.assign(new Error(
386
406
  "The subagent's parent session could not be verified."),{code:"assistant_opencode_parent_unverified"});o=J(i.data?.parentID)}
@@ -388,68 +408,68 @@ return null}function Re({resolveInstructions:t}={}){if(typeof t!="function")thro
388
408
  solver.");let e=new Map,n=new WeakMap;async function r(s={},i={}){let a=String(s.sessionID||s.sessionId||"").trim();if(!a)
389
409
  return;let c=await t(a);if(!c)return;if(c.identity!==void 0&&(typeof c.identity!="string"||!c.identity)||typeof c.read!=
390
410
  "function"||![void 0,"append","replace"].includes(c.placement))throw new TypeError("Conversation instructions require re\
391
- ad() and an optional non-empty identity.");let u=e.get(a);(c.identity===void 0||u?.identity!==c.identity)&&(u={identity:c.
411
+ ad() and an optional non-empty identity.");let l=e.get(a);(c.identity===void 0||l?.identity!==c.identity)&&(l={identity:c.
392
412
  identity,text:Promise.resolve().then(c.read).then(f=>{if(typeof f!="string"||!f.trim())throw new TypeError("Conversation\
393
- instructions must contain text.");return f})},e.set(a,u),u.text.catch(()=>{e.get(a)===u&&e.delete(a)}));let l=await u.text;
394
- if(e.get(a)!==u)throw new Error("Conversation context changed while reading instructions. Retry before sending.");let d=n.
413
+ instructions must contain text.");return f})},e.set(a,l),l.text.catch(()=>{e.get(a)===l&&e.delete(a)}));let u=await l.text;
414
+ if(e.get(a)!==l)throw new Error("Conversation context changed while reading instructions. Retry before sending.");let d=n.
395
415
  get(i.system);if(d!==void 0){let f=i.system.indexOf(d);f>=0&&i.system.splice(f,1)}c.placement==="replace"?i.system.splice(
396
- 0,i.system.length,l):i.system.includes(l)||i.system.push(l),n.set(i.system,l)}function o({event:s}={}){if(!["session.com\
416
+ 0,i.system.length,u):i.system.includes(u)||i.system.push(u),n.set(i.system,u)}function o({event:s}={}){if(!["session.com\
397
417
  pacted","session.deleted"].includes(s?.type))return;let i=String(s.properties?.sessionID||s.properties?.info?.id||"").trim();
398
- i&&e.delete(i)}return Object.freeze({transformSystem:r,event:o,invalidate:s=>e.delete(s),close:()=>e.clear()})}import{isAbsolute as hn}from"node:path";var Zi=new URL("./../../../../@jskit-ai/assistant-core/src/server/conversation/commandWrapper.js",import.meta.url).href,
418
+ i&&e.delete(i)}return Object.freeze({transformSystem:r,event:o,invalidate:s=>e.delete(s),close:()=>e.clear()})}import{isAbsolute as hn}from"node:path";var ia=new URL("./../../../../@jskit-ai/assistant-core/src/server/conversation/commandWrapper.js",import.meta.url).href,
399
419
  Mt=t=>`'${t.replaceAll("'",`'"'"'`)}'`;function yn(t){if(typeof t!="string"||!hn(t)||t.includes("\0"))throw new TypeError(
400
- "host.commandWrapper must name an absolute executable path.")}function Dt(t,e){if(yn(t),typeof e!="string"||!e.trim()||e.
420
+ "host.commandWrapper must name an absolute executable path.")}function kt(t,e){if(yn(t),typeof e!="string"||!e.trim()||e.
401
421
  includes("\0"))throw new TypeError("The native shell tool requires valid command text.");return`${Mt(t)} ${Mt(e)}`}async function W({client:t,registryPath:e=process.env.JSKIT_OPENCODE_ENV_REGISTRY,resolveHostInstructions:n}={}){let r=JSON.
402
- parse(process.env.JSKIT_OPENCODE_TOOL_SCHEMAS||"[]"),o=new Map(r.map(({function:u})=>[u.name,u])),s=()=>$(e);async function i(u){
403
- let l=await U(await s(),u,t);if(!l)throw new Error("This native conversation has no instruction owner.");return l}let a=Re(
404
- {async resolveInstructions(u){let{conversation:l}=await i(u);return l?{identity:l.systemPrompt,placement:"replace",read:()=>l.
405
- systemPrompt}:null}}),c=n?Re({resolveInstructions:async u=>(await n(u))?.instructions}):null;return{"experimental.chat.s\
406
- ystem.transform":c?async(u,l)=>(await n(u.sessionID||u.sessionId))?.conversation?a.transformSystem(u,l):c.transformSystem(
407
- u,l):a.transformSystem,event:c?u=>{c.event(u),a.event(u)}:a.event,"chat.params":async(u,l)=>{let d=await i(u.sessionID);
408
- z(d,u),L(u,l)},"tool.execute.before":async({tool:u,sessionID:l},d)=>{let{conversation:f}=await i(l);if(!(o.has(u)?f?.tools?.
409
- schemas.some(({function:h})=>h.name===u):f?.nativeTools))throw new Error(Ne);u==="bash"&&f.commandWrapper&&(d.args.command=
410
- Dt(f.commandWrapper,d.args.command))},"shell.env":async({sessionID:u,cwd:l},d)=>{let f=u?await i(u):F(await s(),l);f?.conversation?.
411
- nativeTools&&Object.assign(d.env,f.env)},"tool.definition":({toolID:u},l)=>{let d=o.get(u);d&&(l.jsonSchema=d.parameters)},
412
- tool:Object.fromEntries([...o].map(([u,l])=>[u,{description:l.description,args:l.parameters.properties,async execute(d,f){
422
+ parse(process.env.JSKIT_OPENCODE_TOOL_SCHEMAS||"[]"),o=new Map(r.map(({function:l})=>[l.name,l])),s=()=>$(e);async function i(l){
423
+ let u=await U(await s(),l,t);if(!u)throw new Error("This native conversation has no instruction owner.");return u}let a=Re(
424
+ {async resolveInstructions(l){let{conversation:u}=await i(l);return u?{identity:u.systemPrompt,placement:"replace",read:()=>u.
425
+ systemPrompt}:null}}),c=n?Re({resolveInstructions:async l=>(await n(l))?.instructions}):null;return{"experimental.chat.s\
426
+ ystem.transform":c?async(l,u)=>(await n(l.sessionID||l.sessionId))?.conversation?a.transformSystem(l,u):c.transformSystem(
427
+ l,u):a.transformSystem,event:c?l=>{c.event(l),a.event(l)}:a.event,"chat.params":async(l,u)=>{let d=await i(l.sessionID);
428
+ z(d,l),L(l,u)},"tool.execute.before":async({tool:l,sessionID:u},d)=>{let{conversation:f}=await i(u);if(!(o.has(l)?f?.tools?.
429
+ schemas.some(({function:h})=>h.name===l):f?.nativeTools))throw new Error(Ne);l==="bash"&&f.commandWrapper&&(d.args.command=
430
+ kt(f.commandWrapper,d.args.command))},"shell.env":async({sessionID:l,cwd:u},d)=>{let f=l?await i(l):F(await s(),u);f?.conversation?.
431
+ nativeTools&&Object.assign(d.env,f.env)},"tool.definition":({toolID:l},u)=>{let d=o.get(l);d&&(u.jsonSchema=d.parameters)},
432
+ tool:Object.fromEntries([...o].map(([l,u])=>[l,{description:u.description,args:u.parameters.properties,async execute(d,f){
413
433
  if(!f.callID||!f.sessionID||!f.messageID)throw new Error("OpenCode did not supply an application tool identity.");let m=(await i(
414
- f.sessionID)).conversation?.tools;if(!m?.schemas.some(({function:P})=>P.name===u))throw new Error(Ne);let h=await fetch(
434
+ f.sessionID)).conversation?.tools;if(!m?.schemas.some(({function:x})=>x.name===l))throw new Error(Ne);let h=await fetch(
415
435
  m.url,{method:"POST",signal:f.abort,headers:{authorization:`Bearer ${m.token}`,"content-type":"application/json"},body:JSON.
416
- stringify({sessionId:f.sessionID,messageId:f.messageID,id:f.callID,name:u,input:d})}),g=await h.json();if(!h.ok)throw new Error(
417
- g.error||"The application tool request failed.");return JSON.stringify(g)}}]))}}var ua=new URL("./../../../../@jskit-ai/assistant-core/src/server/conversation/openCodeProcess.js",import.meta.url).href;var ma=256*1024;var ha=2*1024*1024;var Sn=Rt.map(({name:t,description:e,parameters:n})=>({type:"function",function:{name:t,description:e,parameters:n}}));import{vibe64Driver as Tn}from"@local/vibe64-genesis/server/promptContext";function w(t=""){return String(t??"").trim()}
418
- async function De(){return $(w(process.env.VIBE64_OPENCODE_SESSION_ENV_REGISTRY))}async function An(t=""){return F(await De(),
419
- t)}async function B(t="",e=null){try{return await U(await De(),t,e)}catch(n){throw n.code==="assistant_opencode_parent_u\
436
+ stringify({sessionId:f.sessionID,messageId:f.messageID,id:f.callID,name:l,input:d})}),g=await h.json();if(!h.ok)throw new Error(
437
+ g.error||"The application tool request failed.");return JSON.stringify(g)}}]))}}var wa=new URL("./../../../../@jskit-ai/assistant-core/src/server/conversation/openCodeProcess.js",import.meta.url).href;var va=256*1024;var Sa=2*1024*1024;var vn=Rt.map(({name:t,description:e,parameters:n})=>({type:"function",function:{name:t,description:e,parameters:n}}));import{vibe64Driver as An}from"@local/vibe64-genesis/server/promptContext";function w(t=""){return String(t??"").trim()}
438
+ async function ke(){return $(w(process.env.VIBE64_OPENCODE_SESSION_ENV_REGISTRY))}async function Tn(t=""){return F(await ke(),
439
+ t)}async function V(t="",e=null){try{return await U(await ke(),t,e)}catch(n){throw n.code==="assistant_opencode_parent_u\
420
440
  nverified"?new Error("Vibe64 could not verify the subagent's parent session."):n}}function Me(t,e){return!!(e?.helperModelId&&
421
441
  t===`vibe64-helper-${e.modelProviderId}`)}function Y(t=""){return`'${String(t??"").replaceAll("'",`'"'"'`)}'`}function Cn(){
422
442
  return"printf '%s\\n' 'vibe64_agent_control_unavailable: Session command control is unavailable. Reconnect the assistant.\
423
- ' >&2; exit 126"}function kt(t="",e=null){let n=String(t),r=w(e?.env?.VIBE64_WRAPPER);if(!r)return n;let o=`${Y(r)} '`;if(!n.
443
+ ' >&2; exit 126"}function Dt(t="",e=null){let n=String(t),r=w(e?.env?.VIBE64_WRAPPER);if(!r)return n;let o=`${Y(r)} '`;if(!n.
424
444
  startsWith(o)||!n.endsWith("'"))return n;let s=n.slice(o.length,-1).replaceAll(`'"'"'`,"'");return`${Y(r)} ${Y(s)}`===n?
425
- s:n}function zt(t="",e=null){let n=String(t),r=kt(n,e);for(;r!==n;)n=r,r=kt(n,e);return n}function Pn(t="",e=null){let n=w(
426
- e?.env?.VIBE64_WRAPPER);if(!n)return Cn();let r=zt(t,e);return[Y(n),Y(r)].join(" ")}var ka=async({client:t}={})=>{let e=await W(
427
- {client:t,registryPath:w(process.env.VIBE64_OPENCODE_SESSION_ENV_REGISTRY),resolveHostInstructions:async n=>{let r=await B(
445
+ s:n}function zt(t="",e=null){let n=String(t),r=Dt(n,e);for(;r!==n;)n=r,r=Dt(n,e);return n}function xn(t="",e=null){let n=w(
446
+ e?.env?.VIBE64_WRAPPER);if(!n)return Cn();let r=zt(t,e);return[Y(n),Y(r)].join(" ")}var qa=async({client:t}={})=>{let e=await W(
447
+ {client:t,registryPath:w(process.env.VIBE64_OPENCODE_SESSION_ENV_REGISTRY),resolveHostInstructions:async n=>{let r=await V(
428
448
  n,t);if(!r?.promptContext)return{conversation:r?.conversation,instructions:null};let{workdir:o,promptContext:s}=r;return s.
429
- scope==="ephemeral"?{conversation:r.conversation,instructions:{identity:JSON.stringify(s),placement:"replace",read:()=>Tn(
449
+ scope==="ephemeral"?{conversation:r.conversation,instructions:{identity:JSON.stringify(s),placement:"replace",read:()=>An(
430
450
  s)}}:{conversation:r.conversation,instructions:{placement:"append",read:()=>{let i=In(new URL("../../bin/vibe64-genesis-\
431
- host-context",import.meta.resolve("@local/vibe64-genesis/server/promptContext")));return new Promise((a,c)=>{let u=vn(i,
432
- ["--instructions"],{cwd:o,timeout:3e4,maxBuffer:262144,encoding:"utf8"},(l,d)=>{l?c(new Error("Project instructions coul\
433
- d not be loaded. Retry the conversation.",{cause:l})):a(d)});u.stdin.on("error",()=>{}),u.stdin.end(JSON.stringify({workdir:o,
451
+ host-context",import.meta.resolve("@local/vibe64-genesis/server/promptContext")));return new Promise((a,c)=>{let l=Sn(i,
452
+ ["--instructions"],{cwd:o,timeout:3e4,maxBuffer:262144,encoding:"utf8"},(u,d)=>{u?c(new Error("Project instructions coul\
453
+ d not be loaded. Retry the conversation.",{cause:u})):a(d)});l.stdin.on("error",()=>{}),l.stdin.end(JSON.stringify({workdir:o,
434
454
  promptContext:s}))})}}}}});return{...e,"chat.message":async(n={},r={})=>{if(!w(n.agent).startsWith("vibe64-helper-"))return;
435
- let o=await B(n.sessionID,t);if(!Me(n.agent,o))throw new Error("This helper is not available through the session's selec\
455
+ let o=await V(n.sessionID,t);if(!Me(n.agent,o))throw new Error("This helper is not available through the session's selec\
436
456
  ted AI account.");r.message.model={providerID:o.modelProviderId,modelID:o.helperModelId}},"chat.params":async(n={},r={})=>{
437
- let o=await B(n.sessionID,t);if(z(o,n),w(n.agent).startsWith("vibe64-helper-")&&(!Me(n.agent,o)||n.model?.providerID!==o.
457
+ let o=await V(n.sessionID,t);if(z(o,n),w(n.agent).startsWith("vibe64-helper-")&&(!Me(n.agent,o)||n.model?.providerID!==o.
438
458
  modelProviderId||n.model?.id!==o.helperModelId))throw new Error("This helper is not available through the session's sele\
439
459
  cted AI account.");L(n,r)},"experimental.chat.messages.transform":async(...n)=>{let r=n[1]||{},o=Array.isArray(r.messages)?
440
- r.messages:[],s=await De();r.messages=await Promise.all(o.map(async i=>{let a=s.find(l=>w(l?.upstreamSessionId)===w(i?.info?.
441
- sessionID))||await B(i?.info?.sessionID,t);if(!a||!Array.isArray(i?.parts))return i;let c=!1,u=i.parts.map(l=>{if(l?.type!==
442
- "tool"||!["bash","shell"].includes(w(l.tool).toLowerCase())||typeof l?.state?.input?.command!="string")return l;let d=zt(
443
- l.state.input.command,a);return d===l.state.input.command?l:(c=!0,{...l,state:{...l.state,input:{...l.state.input,command:d}}})});
444
- return c?{...i,parts:u}:i}))},"shell.env":async(n={},r={})=>{let o=await An(n.cwd);if(!o)return;if(o.conversation)return e["\
460
+ r.messages:[],s=await ke();r.messages=await Promise.all(o.map(async i=>{let a=s.find(u=>w(u?.upstreamSessionId)===w(i?.info?.
461
+ sessionID))||await V(i?.info?.sessionID,t);if(!a||!Array.isArray(i?.parts))return i;let c=!1,l=i.parts.map(u=>{if(u?.type!==
462
+ "tool"||!["bash","shell"].includes(w(u.tool).toLowerCase())||typeof u?.state?.input?.command!="string")return u;let d=zt(
463
+ u.state.input.command,a);return d===u.state.input.command?u:(c=!0,{...u,state:{...u.state,input:{...u.state.input,command:d}}})});
464
+ return c?{...i,parts:l}:i}))},"shell.env":async(n={},r={})=>{let o=await Tn(n.cwd);if(!o)return;if(o.conversation)return e["\
445
465
  shell.env"](n,r);let s=o.env&&typeof o.env=="object"&&!Array.isArray(o.env)?o.env:{},i=r.env&&typeof r.env=="object"&&!Array.
446
466
  isArray(r.env)?r.env:{};r.env=i,Object.assign(i,s);let a=Array.isArray(o.pathEntries)?o.pathEntries.map(w).filter(Boolean):
447
467
  [];i.PATH=[...a,w(s.PATH),w(process.env.PATH)].filter(Boolean).join(_n.delimiter)},"tool.execute.before":async(n={},r={})=>{
448
- let o=await B(n.sessionID||n.sessionId,t);if(!o)throw new Error("Vibe64 could not verify this conversation's tool access\
468
+ let o=await V(n.sessionID||n.sessionId,t);if(!o)throw new Error("Vibe64 could not verify this conversation's tool access\
449
469
  . Reconnect the assistant.");if(o.conversation)return e["tool.execute.before"](n,r);if(o.promptContext?.scope==="ephemer\
450
470
  al")throw new Error("Tools are unavailable in this host conversation. Use only the supplied context.");if(n.tool==="task"){
451
471
  if(w(r.args?.subagent_type).startsWith("vibe64-helper-")&&!Me(r.args.subagent_type,o))throw new Error("Choose the helper\
452
- belonging to this session's selected AI account.");if(w(r.args?.task_id)){let i=await B(r.args.task_id,t);if(!o||i?.upstreamSessionId!==
472
+ belonging to this session's selected AI account.");if(w(r.args?.task_id)){let i=await V(r.args.task_id,t);if(!o||i?.upstreamSessionId!==
453
473
  o.upstreamSessionId)throw new Error("This helper conversation does not belong to the current session.")}}if(!["bash","sh\
454
474
  ell"].includes(w(n.tool).toLowerCase()))return;let s=r.args&&typeof r.args=="object"&&!Array.isArray(r.args)?r.args:null;
455
- !s||typeof s.command!="string"||(s.command=Pn(s.command,o))}}};export{ka as Vibe64SessionEnvironment};
475
+ !s||typeof s.command!="string"||(s.command=xn(s.command,o))}}};export{qa as Vibe64SessionEnvironment};