vibe64 0.1.35 → 0.1.37

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 (210) hide show
  1. package/bin/run.js +1984 -1685
  2. package/bin/server.js +158 -111
  3. package/bin/upgrade-state.js +5754 -5522
  4. package/dist/assets/GithubBrowserTabs-BykoCFfz.js +1 -0
  5. package/dist/assets/{StudioErrorNotice-sQfmeR-z.js → StudioErrorNotice-CSrUw1QV.js} +1 -1
  6. package/dist/assets/{Vibe64AsyncModuleState-Dx7YKRPp.js → Vibe64AsyncModuleState-Do9EqX3S.js} +1 -1
  7. package/dist/assets/Vibe64AuthSettingsButton-CIwtchKm.js +5 -0
  8. package/dist/assets/Vibe64AuthSettingsButton-M44SSmZ9.css +1 -0
  9. package/dist/assets/{Vibe64DashboardBackButton-yE6cyYg2.js → Vibe64DashboardBackButton-BH_8j_VR.js} +1 -1
  10. package/dist/assets/Vibe64DashboardShell-DXVDJUAY.js +1 -0
  11. package/dist/assets/{Vibe64DashboardShell-MBkUHjs-.css → Vibe64DashboardShell-De2mbdpI.css} +1 -1
  12. package/dist/assets/{Vibe64DatabaseWorkspace-BONJdxBS.js → Vibe64DatabaseWorkspace-Ca8IHSRq.js} +3 -3
  13. package/dist/assets/{Vibe64DatabaseWorkspace-CR4pzzcf.css → Vibe64DatabaseWorkspace-DPDMxhAW.css} +1 -1
  14. package/dist/assets/Vibe64OutputControls-Co5YzwcK.css +1 -0
  15. package/dist/assets/Vibe64OutputControls-DngQNTTt.js +8 -0
  16. package/dist/assets/{Vibe64RepositoryWorkspace-CVHcT93M.css → Vibe64RepositoryWorkspace-Agyt4O-V.css} +1 -1
  17. package/dist/assets/{Vibe64RepositoryWorkspace-ByQlZbyO.js → Vibe64RepositoryWorkspace-BfsZozSJ.js} +2 -2
  18. package/dist/assets/Vibe64SessionFiles-Bl8wJ5Sk.css +1 -0
  19. package/dist/assets/Vibe64SessionFiles-n87RqqY6.js +41 -0
  20. package/dist/assets/{Vibe64TemporaryAiFixAction-BGlcrq4d.js → Vibe64TemporaryAiFixAction-BiuIE9mC.js} +1 -1
  21. package/dist/assets/{Vibe64UiStoryboardView-Brlwdvqi.js → Vibe64UiStoryboardView-BhKRpL0N.js} +1 -1
  22. package/dist/assets/{Vibe64UnavailableSessions-zwlWlcZD.js → Vibe64UnavailableSessions-Ca5nC7KH.js} +1 -1
  23. package/dist/assets/{_sessionId_-CvOkQbVy.js → _sessionId_-B_TTRB4c.js} +1 -1
  24. package/dist/assets/{_sessionTool_-Dwod5ns9.js → _sessionTool_-1V-z6Pbp.js} +1 -1
  25. package/dist/assets/_slug_-Buxpw0T4.css +1 -0
  26. package/dist/assets/_slug_-DsqilUs_.js +24 -0
  27. package/dist/assets/{access-BVu5XYm2.js → access-tl4ht_d8.js} +1 -1
  28. package/dist/assets/app-CZu7oxUO.css +1 -0
  29. package/dist/assets/app-DT4_MliP.js +1 -0
  30. package/dist/assets/{assistantRouting-CwbwfkwB.js → assistantRouting-D4XpXcEf.js} +1 -1
  31. package/dist/assets/{changes-olY8cnFK.js → changes-DZWHZguL.js} +1 -1
  32. package/dist/assets/client-BWV84wi2.js +2 -0
  33. package/dist/assets/client-DGrP-2AJ.css +1 -0
  34. package/dist/assets/conversation-B90ERX9h.js +17 -0
  35. package/dist/assets/conversation-vxJGwmtW.css +1 -0
  36. package/dist/assets/{dashboard-BnXD-H4R.js → dashboard-iREwhGqv.js} +1 -1
  37. package/dist/assets/definitions-CNu5E87y.js +1 -0
  38. package/dist/assets/{env-DJhnLOH7.css → env-BzRtyO0w.css} +1 -1
  39. package/dist/assets/env-D5KpTEw7.js +1 -0
  40. package/dist/assets/health-BJvooRnJ.css +1 -0
  41. package/dist/assets/health-BhoO1d4h.js +1 -0
  42. package/dist/assets/{history-BxlpB-YH.js → history-DVURy45X.js} +1 -1
  43. package/dist/assets/{incoming-BOxRVlOM.js → incoming-DzADFGqp.js} +1 -1
  44. package/dist/assets/index-GBRpNZLy.js +138 -0
  45. package/dist/assets/index-irlMYzLh.css +1 -0
  46. package/dist/assets/{integrations-BFltGDVI.js → integrations-Dy5jIiJ5.js} +2 -2
  47. package/dist/assets/issues-lh7R775d.js +1 -0
  48. package/dist/assets/learning-_O1PEaam.js +1 -0
  49. package/dist/assets/mdi-CG9pWOSj.js +1 -0
  50. package/dist/assets/placement-BF-zIEhA.js +1 -0
  51. package/dist/assets/pull-requests-ByE-Dvk7.js +1 -0
  52. package/dist/assets/{repository-JWLVST3D.js → repository-BUfUAyS9.js} +1 -1
  53. package/dist/assets/roboto-latin-wght-normal-ccAYIvAh.woff2 +0 -0
  54. package/dist/assets/{session-C5Nj8Dlq.js → session-BdhKrcX4.js} +1 -1
  55. package/dist/assets/settings-CzhIcn9K.js +1 -0
  56. package/dist/assets/shared-DpMvYJO3.js +2 -0
  57. package/dist/assets/studioGateApi-DcCqiD9V.js +1 -0
  58. package/dist/assets/studioUrls-DmMMIScP.js +1 -0
  59. package/dist/assets/useArchivedVibe64Sessions-CLHJOyeW.js +1 -0
  60. package/dist/assets/useCommand-Bqxb-naz.js +1 -0
  61. package/dist/assets/useEndpointResource-DWoQ2keu.js +1 -0
  62. package/dist/assets/useRealtimeEvent-Bwapstla.js +1 -0
  63. package/dist/assets/{useUiFeedback-0FqKuZRP.js → useUiFeedback-BPBF_0bp.js} +1 -1
  64. package/dist/assets/useVibe64ConversationLog-B4JgmxUf.js +1 -0
  65. package/dist/assets/useVibe64DatabaseTools-4o6S8eXq.js +1 -0
  66. package/dist/assets/useVibe64Learning-DyqXkpLw.js +1 -0
  67. package/dist/assets/useVibe64ProjectScope-Bp1ImZlz.js +1 -0
  68. package/dist/assets/useVibe64SessionData-YhhE_5pC.js +1 -0
  69. package/dist/assets/useVibe64SessionSelection-CuZCzAcY.js +1 -0
  70. package/dist/assets/useVibe64SystemGraph-B4RmsC9Y.js +1 -0
  71. package/dist/assets/{useVibe64Terminal-BPnN25WH.js → useVibe64Terminal-Cg3idMcy.js} +1 -1
  72. package/dist/assets/vibe64AssistantHost-CP6oxv5b.js +1 -0
  73. package/dist/assets/{vibe64SessionFocus-kqPOPaOH.js → vibe64SessionFocus-Cz5Vq1re.js} +1 -1
  74. package/dist/assets/{vibe64SessionInfo-BHxtTrLX.js → vibe64SessionInfo-BuBUdL-e.js} +1 -1
  75. package/dist/assets/{vibe64SessionPanelModel-BMf64fv7.js → vibe64SessionPanelModel-DDorOuiL.js} +1 -1
  76. package/dist/assets/{vibe64SessionToolDefinitions-NfLd1HZI.js → vibe64SessionToolDefinitions-BJaJH5LR.js} +1 -1
  77. package/dist/index.html +21 -20
  78. package/docs/colleague-usage/account-profile-and-appearance.md +8 -2
  79. package/docs/colleague-usage/ai-accounts-and-routing.md +127 -16
  80. package/docs/colleague-usage/ai-onboarding.md +229 -0
  81. package/docs/colleague-usage/coding-agent-goal-pause.md +5 -5
  82. package/docs/colleague-usage/coding-agents.md +21 -0
  83. package/docs/colleague-usage/colleague-watches.md +4 -23
  84. package/docs/colleague-usage/colleague.md +10 -2
  85. package/docs/colleague-usage/connected-projects.md +10 -2
  86. package/docs/colleague-usage/conversation-context.md +2 -0
  87. package/docs/colleague-usage/dashboard-navigation.md +19 -27
  88. package/docs/colleague-usage/database.md +6 -11
  89. package/docs/colleague-usage/development-copies.md +2 -1
  90. package/docs/colleague-usage/development-env.md +6 -0
  91. package/docs/colleague-usage/github-work.md +9 -0
  92. package/docs/colleague-usage/health-checks.md +11 -5
  93. package/docs/colleague-usage/integrations.md +3 -1
  94. package/docs/colleague-usage/learning-code-questions.md +23 -51
  95. package/docs/colleague-usage/learning-course-catalogue.md +8 -6
  96. package/docs/colleague-usage/learning-environment.md +337 -0
  97. package/docs/colleague-usage/learning-history.md +70 -101
  98. package/docs/colleague-usage/learning-mode-ui.md +129 -214
  99. package/docs/colleague-usage/learning-practice-projects.md +178 -78
  100. package/docs/colleague-usage/learning-teacher-guide.md +48 -26
  101. package/docs/colleague-usage/learning-with-colleague.md +195 -216
  102. package/docs/colleague-usage/lesson-authoring.md +41 -24
  103. package/docs/colleague-usage/lesson-step-bar.md +99 -0
  104. package/docs/colleague-usage/managed-app-access.md +7 -0
  105. package/docs/colleague-usage/message-delivery-recovery.md +7 -6
  106. package/docs/colleague-usage/preview-browser-checks.md +9 -1
  107. package/docs/colleague-usage/preview-starting-application.md +0 -1
  108. package/docs/colleague-usage/preview.md +12 -1
  109. package/docs/colleague-usage/project-messages.md +2 -2
  110. package/docs/colleague-usage/project-setup.md +9 -2
  111. package/docs/colleague-usage/running-vibe64-on-your-computer.md +61 -0
  112. package/docs/colleague-usage/sessions.md +25 -33
  113. package/docs/colleague-usage/teaching-content.md +14 -40
  114. package/docs/colleague-usage/temporary-chats.md +23 -2
  115. package/docs/colleague-usage/voice-chat.md +5 -10
  116. package/docs/colleague-usage/voice-face-and-speaking-voice.md +6 -8
  117. package/docs/colleague-usage/voice-recovery.md +3 -2
  118. package/docs/templates/learn-topic/README.md +6 -6
  119. package/docs/templates/learn-topic/training/lessons/TOPIC-01/lesson.json +28 -7
  120. package/docs/templates/learn-topic/training/lessons/TOPIC-01/notes.md +19 -0
  121. package/docs/templates/learn-topic/training/lessons/TOPIC-01/steps/check-understanding.md +3 -0
  122. package/docs/templates/learn-topic/training/lessons/TOPIC-01/steps/explain-idea.md +3 -0
  123. package/docs/templates/learn-topic/training/lessons/TOPIC-01/steps/try-it.md +3 -0
  124. package/docs/templates/learn-topic/training/outline.md +1 -1
  125. package/docs/training-content.md +319 -66
  126. package/node_modules/@jskit-ai/assistant-core/package.json +1 -1
  127. package/node_modules/@jskit-ai/assistant-runtime/package.json +1 -1
  128. package/node_modules/@jskit-ai/assistant-runtime/patterns/assistant-surface/PATTERN.md +3 -2
  129. package/node_modules/@jskit-ai/assistant-runtime/patterns/assistant-surface/example/integrations.json +3 -2
  130. package/node_modules/@jskit-ai/assistant-voice/package.json +1 -1
  131. package/node_modules/@jskit-ai/connectors-catalog/package.json +1 -1
  132. package/node_modules/@jskit-ai/connectors-catalog/patterns/ai-connections/PATTERN.md +4 -3
  133. package/node_modules/@jskit-ai/connectors-catalog/src/shared/ai-models.json +0 -1
  134. package/node_modules/@local/vibe64-accounts/package.json +1 -0
  135. package/node_modules/@local/vibe64-colleague/package.json +2 -1
  136. package/node_modules/@local/vibe64-core/package.json +3 -0
  137. package/node_modules/@local/vibe64-execution/package.json +1 -0
  138. package/node_modules/@local/vibe64-execution/src/host/execHelper.js +171 -174
  139. package/node_modules/@local/vibe64-execution/src/server/engines/stdioBridge.js +9 -9
  140. package/node_modules/@local/vibe64-execution/src/server/hostProfile.js +12 -0
  141. package/node_modules/@local/vibe64-genesis/README.md +10 -37
  142. package/node_modules/@local/vibe64-genesis/bin/vibe64-genesis-host-context +790 -779
  143. package/node_modules/@local/vibe64-genesis/package.json +1 -0
  144. package/node_modules/@local/vibe64-genesis/src/server/agentSpecs.js +255 -0
  145. package/node_modules/@local/vibe64-genesis/src/server/index.js +473 -450
  146. package/node_modules/@local/vibe64-genesis/src/server/promptContext.js +148 -148
  147. package/node_modules/@local/vibe64-project/package.json +2 -1
  148. package/node_modules/@local/vibe64-runtime/package.json +1 -2
  149. package/node_modules/@local/vibe64-runtime/src/server/codexAppServerProcess.js +526 -512
  150. package/node_modules/@local/vibe64-runtime/src/shared/assistantRoutingScores.json +0 -1
  151. package/node_modules/@local/vibe64-source-editor/package.json +1 -0
  152. package/node_modules/@local/vibe64-terminals/package.json +2 -0
  153. package/node_modules/@local/vibe64-terminals/src/server/opencodeSessionEnvironmentPlugin.js +129 -131
  154. package/node_modules/@local/vibe64-terminals/src/server/sessionWorkOperationCommand.js +1508 -1456
  155. package/node_modules/@local/vibe64-training/package.json +16 -27
  156. package/package.json +7 -7
  157. package/server.bundle.mjs +41339 -41635
  158. package/dist/assets/GithubBrowserTabs-DO5PHon-.js +0 -1
  159. package/dist/assets/GithubMarkdown-BQ6MfCDJ.js +0 -3
  160. package/dist/assets/GithubMarkdown-U7-j-qNI.css +0 -1
  161. package/dist/assets/Vibe64DashboardShell-CuCVMhOc.js +0 -1
  162. package/dist/assets/Vibe64OutputControls-DAAmA09l.js +0 -8
  163. package/dist/assets/Vibe64OutputControls-DPBsyDZM.css +0 -1
  164. package/dist/assets/Vibe64SessionFiles-B0u9HKdF.js +0 -107
  165. package/dist/assets/Vibe64SessionFiles-NjOMVwPR.css +0 -1
  166. package/dist/assets/_slug_-B31c15cc.css +0 -1
  167. package/dist/assets/_slug_-Dy35qLo1.js +0 -1
  168. package/dist/assets/app-DRXCcv05.css +0 -1
  169. package/dist/assets/app-zt7HwQKT.js +0 -1
  170. package/dist/assets/client-BrV4QPwG.js +0 -2
  171. package/dist/assets/client-C1bwIlu6.css +0 -1
  172. package/dist/assets/definitions-DaOPIkyB.js +0 -1
  173. package/dist/assets/env-DN0vW4EI.js +0 -1
  174. package/dist/assets/health-7oIQODer.css +0 -1
  175. package/dist/assets/health-Z6m96GDr.js +0 -1
  176. package/dist/assets/index-BUq-MczL.js +0 -86
  177. package/dist/assets/index-DtmBqE3h.css +0 -1
  178. package/dist/assets/issues-1iS5zoed.js +0 -1
  179. package/dist/assets/layout-BkWVNT37.js +0 -1
  180. package/dist/assets/mdi-C54lQ0i_.js +0 -1
  181. package/dist/assets/placement-DLsU3pCW.js +0 -1
  182. package/dist/assets/pull-requests-BJOwNL4k.js +0 -1
  183. package/dist/assets/settings-c273Ikrm.js +0 -1
  184. package/dist/assets/shared-YZb7ocaK.js +0 -2
  185. package/dist/assets/studioGateApi-DhA9IJGZ.js +0 -1
  186. package/dist/assets/studioUrls-Dj8rXeXO.js +0 -1
  187. package/dist/assets/useArchivedVibe64Sessions-CVZx2Rtm.js +0 -1
  188. package/dist/assets/useCommand-DWuxfAV0.js +0 -1
  189. package/dist/assets/useEndpointResource-MWVNfmMa.js +0 -1
  190. package/dist/assets/useVibe64ConversationLog-8cKh1eDm.js +0 -1
  191. package/dist/assets/useVibe64DatabaseTools-BcRG1s3i.js +0 -1
  192. package/dist/assets/useVibe64LearningMode-Bl0dGdCh.js +0 -28
  193. package/dist/assets/useVibe64LearningMode-C3PcXdVg.css +0 -1
  194. package/dist/assets/useVibe64ProjectScope-DOEVkBqX.js +0 -1
  195. package/dist/assets/useVibe64SessionData-DFTyLzci.js +0 -1
  196. package/dist/assets/useVibe64SessionSelection-j9lsllx4.js +0 -1
  197. package/dist/assets/useVibe64SystemGraph-tNkIwSBQ.js +0 -1
  198. package/dist/assets/vibe64AssistantHost-DdE_-lZF.js +0 -1
  199. package/dist/assets/vibe64LessonDashboard-DlKYjisq.js +0 -1
  200. package/dist/assets/vibe64ProjectScope.local-DqT6e5un.js +0 -1
  201. package/docs/colleague-usage/learning-chat-retention.md +0 -74
  202. package/docs/colleague-usage/learning-diagrams-and-voice.md +0 -97
  203. package/docs/colleague-usage/learning-lesson-watch.md +0 -95
  204. package/docs/colleague-usage/learning-native-session.md +0 -206
  205. package/docs/colleague-usage/learning-practical-exercises.md +0 -71
  206. package/docs/colleague-usage/learning-practical-gestures.md +0 -48
  207. package/docs/colleague-usage/learning-session-creation.md +0 -95
  208. package/docs/colleague-usage/lesson-practical-assessment.md +0 -54
  209. package/docs/colleague-usage/preview-lesson-presentation.md +0 -56
  210. package/docs/templates/learn-topic/training/lessons/TOPIC-01/lesson.md +0 -44
@@ -20,7 +20,6 @@
20
20
  { "engineId": "claude", "modelProviderId": "deepseek", "modelId": "deepseek-flash", "scores": { "senior": 4, "junior": 4, "helper": 4, "router": 4 } },
21
21
  { "engineId": "claude", "modelProviderId": "zai-coding-plan", "modelId": "glm-5.3", "scores": { "senior": 3, "junior": 3, "helper": 3, "router": 3 } },
22
22
  { "engineId": "claude", "modelProviderId": "zai", "modelId": "glm-5.3", "scores": { "senior": 3, "junior": 3, "helper": 3, "router": 3 } },
23
- { "engineId": "opencode", "modelProviderId": "opencode", "modelId": "big-pickle", "scores": { "senior": 1, "junior": 1, "helper": 1, "router": 1 } },
24
23
  { "engineId": "opencode", "modelProviderId": "deepseek", "modelId": "deepseek-flash", "scores": { "senior": 4, "junior": 4, "helper": 4, "router": 4 } },
25
24
  { "engineId": "opencode", "modelProviderId": "anthropic", "modelId": "claude-haiku-4-5", "scores": { "senior": 8, "junior": 8, "helper": 10, "router": 10 } },
26
25
  { "engineId": "opencode", "modelProviderId": "zai", "modelId": "glm-4.7-flash", "scores": { "senior": 3, "junior": 3, "helper": 3, "router": 3 } },
@@ -6,6 +6,7 @@
6
6
  "exports": {
7
7
  "./server/registerRoutes": "./src/server/registerRoutes.js",
8
8
  "./server/service": "./src/server/service.js",
9
+ "./server/agentSpecs": "./src/server/agentSpecs.js",
9
10
  "./server/integrationAssistantContracts": "./src/server/integrationAssistantContracts.js",
10
11
  "./server/integrationSetupInput": "./src/server/integrationSetupInput.js",
11
12
  "./docs/application-integration-setup.md": "./docs/application-integration-setup.md",
@@ -9,6 +9,7 @@
9
9
  "./server/conversationConfiguration": "./src/server/conversationConfiguration.js",
10
10
  "./server/projectStackInspection": "./src/server/projectStackInspection.js",
11
11
  "./server/actions": "./src/server/actions.js",
12
+ "./server/agentSpecs": "./src/server/agentSpecs.js",
12
13
  "./server/codexGitCommand": "./src/server/codexGitCommand.js",
13
14
  "./server/vibe64OutputTargets": "./src/server/vibe64OutputTargets.js",
14
15
  "./server/launchPreviewProxy": "./src/server/launchPreviewProxy.js",
@@ -17,6 +18,7 @@
17
18
  "./shared/launchPreviewProtocol": "./src/shared/launchPreviewProtocol.js",
18
19
  "./shared/assistantWorkPlan": "./src/shared/assistantWorkPlan.js",
19
20
  "./server/retainedConversationHelper": "./src/server/retainedConversationHelper.js",
21
+ "./server/practiceAgentGuidance": "./src/server/practiceAgentGuidance.js",
20
22
  "./server/assistantClaudeCommandUpgrade": "./src/server/assistantClaudeCommandUpgrade.js",
21
23
  "./server/assistantClaudeDeliveryUpgrade": "./src/server/assistantClaudeDeliveryUpgrade.js",
22
24
  "./server/assistantPlanProgressUpgrade": "./src/server/assistantPlanProgressUpgrade.js"
@@ -1,16 +1,16 @@
1
1
  import { createRequire as __vibe64CreateRequire } from 'node:module';const require=__vibe64CreateRequire(import.meta.url);
2
- import{execFile as wn}from"node:child_process";import{fileURLToPath as gn}from"node:url";import bn from"node:path";var jn=2*1024*1024,Pn=32*1024*1024,xn=2*1024*1024;var $n=Object.freeze(["none","pending","committed","rolledBack","unknown"]);function O(t,{fallback:e=""}={}){return String(t||"").trim()||e}function B(t){return!!(t&&typeof t=="object"&&!Array.isArray(t))}var Fn=Object.freeze(["bundled","dev_server"]),Un=Object.freeze(["capacitor"]),Bn=Object.freeze({callbackPath:"/auth/log\
3
- in",customScheme:"",appLinkDomains:Object.freeze([])}),Vn=Object.freeze({packageName:"",minSdk:26,targetSdk:35,versionCode:1,
4
- versionName:"1.0.0"});var De=/^[a-z][a-z0-9_.-]*$/u,zt=/^[A-Za-z_$][A-Za-z0-9_$]*$/u;function ke(t,e){let n=String(t||"").trim().toLowerCase();
2
+ import{execFile as En}from"node:child_process";import{fileURLToPath as On}from"node:url";import Sn from"node:path";var Nn=2*1024*1024,Rn=32*1024*1024,Mn=2*1024*1024;import{execFile as zt,spawn as Fn}from"node:child_process";import{promisify as Lt}from"node:util";var Vn=Lt(zt);var Hn=Object.freeze(["none","pending","committed","rolledBack","unknown"]);function O(t,{fallback:e=""}={}){return String(t||"").trim()||e}function B(t){return!!(t&&typeof t=="object"&&!Array.isArray(t))}var Jn=Object.freeze(["bundled","dev_server"]),Wn=Object.freeze(["capacitor"]),Yn=Object.freeze({callbackPath:"/auth/log\
3
+ in",customScheme:"",appLinkDomains:Object.freeze([])}),Xn=Object.freeze({packageName:"",minSdk:26,targetSdk:35,versionCode:1,
4
+ versionName:"1.0.0"});var De=/^[a-z][a-z0-9_.-]*$/u,Ft=/^[A-Za-z_$][A-Za-z0-9_$]*$/u;function ke(t,e){let n=String(t||"").trim().toLowerCase();
5
5
  if(!De.test(n))throw new TypeError(`${e} must match ${De.toString()}.`);return n}function ce(t,e){if(t==null)return Object.
6
6
  freeze({});if(!B(t))throw new TypeError(`${e} must be an object mapping local names to capability ids.`);let n={},r=new Set;
7
- for(let[o,s]of Object.entries(t)){let i=String(o||"").trim();if(!zt.test(i))throw new TypeError(`${e} local name "${i}" \
7
+ for(let[o,s]of Object.entries(t)){let i=String(o||"").trim();if(!Ft.test(i))throw new TypeError(`${e} local name "${i}" \
8
8
  must be a JavaScript identifier.`);let a=ke(s,`${e}.${i}`);if(r.has(a))throw new TypeError(`${e} declares capability "${a}\
9
- " more than once.`);r.add(a),n[i]=a}return Object.freeze(n)}function Lt(t){let e=new Map;for(let[n,r]of Object.entries(t))
9
+ " more than once.`);r.add(a),n[i]=a}return Object.freeze(n)}function Ut(t){let e=new Map;for(let[n,r]of Object.entries(t))
10
10
  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)}\
11
11
  and ${n}.`);e.set(o,n)}}function ue(t,e){if(t==null)return null;if(typeof t!="function")throw new TypeError(`${e} must \
12
12
  be a function when provided.`);return t}function Y({id:t,requires:e={},optional:n={},provides:r={},setup:o,boot:s=null,shutdown:i=null}={}){
13
- let a=ke(t,"Provider id"),c=ce(e,`${a}.requires`),u=ce(n,`${a}.optional`),l=ce(r,`${a}.provides`);Lt({requires:c,optional:u,
13
+ let a=ke(t,"Provider id"),c=ce(e,`${a}.requires`),u=ce(n,`${a}.optional`),l=ce(r,`${a}.provides`);Ut({requires:c,optional:u,
14
14
  provides:l});let d=ue(o,`${a}.setup`);if(!d)throw new TypeError(`${a}.setup is required.`);return Object.freeze({id:a,requires:c,
15
15
  optional:u,provides:l,setup:d,boot:ue(s,`${a}.boot`),shutdown:ue(i,`${a}.shutdown`)})}var ze="public";function Le(){let t=[],e=new Set,n=!1;function r({id:a,order:c=0,contribute:u}={}){if(n)throw new Error("Bootstrap regis\
16
16
  tration is closed after the first payload is resolved.");let l=O(a);if(!l)throw new TypeError("Bootstrap contributor id \
@@ -20,20 +20,20 @@ isFinite(c)?Number(c):0,contribute:u})),i}async function o(a={}){n=!0;let c={},u
20
20
  (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.
21
21
  freeze({...B(a)?a:{},payload:Object.freeze({...c})}));c={...c,...B(d)?d:{}}}return Object.freeze(c)}function s(){return Object.
22
22
  freeze({sealed:n,contributorIds:Object.freeze(t.map(a=>a.id).sort())})}let i=Object.freeze({register:r,resolve:o,diagnostics:s});
23
- return i}var $t=Y({id:"runtime.bootstrap",requires:{http:"runtime.http"},provides:{bootstrap:"runtime.bootstrap"},setup({
23
+ return i}var Bt=Y({id:"runtime.bootstrap",requires:{http:"runtime.http"},provides:{bootstrap:"runtime.bootstrap"},setup({
24
24
  http:t}){let e=Le();return t.router.register("GET","/api/bootstrap",{auth:ze,meta:{tags:["bootstrap"],summary:"Resolve a\
25
- pp bootstrap payload"}},async(n,r)=>{r.code(200).send(await e.resolve({request:n,reply:r,query:n.query||{}}))}),{bootstrap:e}}});function Ft(t){if(!t||typeof t!="object"||Array.isArray(t))throw new TypeError("Event listener must be an object.");let e=String(
25
+ pp bootstrap payload"}},async(n,r)=>{r.code(200).send(await e.resolve({request:n,reply:r,query:n.query||{}}))}),{bootstrap:e}}});function Vt(t){if(!t||typeof t!="object"||Array.isArray(t))throw new TypeError("Event listener must be an object.");let e=String(
26
26
  t.id||"").trim();if(!e)throw new TypeError("Event listener id is required.");if(typeof t.handle!="function")throw new TypeError(
27
27
  `Event listener "${e}" requires handle().`);if(t.matches!=null&&typeof t.matches!="function")throw new TypeError(`Event \
28
28
  listener "${e}" matches must be a function when provided.`);return Object.freeze({id:e,handle:t.handle,matches:typeof t.
29
- matches=="function"?t.matches:null})}function Ut(t){if(!t||typeof t!="object"||Array.isArray(t))throw new TypeError("Pub\
29
+ matches=="function"?t.matches:null})}function qt(t){if(!t||typeof t!="object"||Array.isArray(t))throw new TypeError("Pub\
30
30
  lished event must be an object.");let e=String(t.type||"").trim();if(!e)throw new TypeError("Published event type is req\
31
- uired.");return Object.freeze({...t,type:e})}function $e(){let t=[],e=new Set;function n(i){let a=Ft(i);if(e.has(a.id))throw new Error(
32
- `Event listener "${a.id}" is duplicated.`);return e.add(a.id),t.push(a),s}async function r(i){let a=Ut(i);for(let c of t)
31
+ uired.");return Object.freeze({...t,type:e})}function $e(){let t=[],e=new Set;function n(i){let a=Vt(i);if(e.has(a.id))throw new Error(
32
+ `Event listener "${a.id}" is duplicated.`);return e.add(a.id),t.push(a),s}async function r(i){let a=qt(i);for(let c of t)
33
33
  c.matches&&c.matches(a)!==!0||await c.handle(a);return a}function o(){return Object.freeze({listenerIds:Object.freeze(t.
34
- map(i=>i.id))})}let s=Object.freeze({register:n,publish:r,diagnostics:o});return s}var Bt=Y({id:"runtime.events",provides:{
34
+ map(i=>i.id))})}let s=Object.freeze({register:n,publish:r,diagnostics:o});return s}var Gt=Y({id:"runtime.events",provides:{
35
35
  events:"runtime.events"},setup(){return{events:$e()}}});function y(t){if(t===null||typeof t!="object")return!1;let e=Object.getPrototypeOf(t);return e===Object.prototype||e===null||
36
- qt(e)}function qt(t){return t!==null&&typeof t=="object"&&Object.getPrototypeOf(t)===null&&Reflect.ownKeys(t).length===0}function le(t){return t!==null&&typeof t=="object"&&y(t.structure)&&y(t.operations)&&typeof t.validateWith=="function"&&
36
+ Jt(e)}function Jt(t){return t!==null&&typeof t=="object"&&Object.getPrototypeOf(t)===null&&Reflect.ownKeys(t).length===0}function le(t){return t!==null&&typeof t=="object"&&y(t.structure)&&y(t.operations)&&typeof t.validateWith=="function"&&
37
37
  typeof t.toJsonSchema=="function"&&typeof t.cleanup=="function"}function X(t,e){if(!Object.hasOwn(e,"items"))return null;
38
38
  let{items:n}=e;if(le(n))return{kind:"schema",schema:n};if(!y(n)||typeof n.type!="string")throw new Error(`Array field "${t}\
39
39
  " must define items as either a Schema instance or a field definition object.`);return{kind:"definition",definition:n}}function V(t,e){
@@ -46,33 +46,33 @@ if(r&&e.additionalProperties===!0)throw new Error(`Object field "${t}" cannot de
46
46
  s: true.`);if(n){if(!le(e.schema))throw new Error(`Object field "${t}" must define schema as a Schema instance.`);return{
47
47
  kind:"nested",schema:e.schema,allowAdditionalProperties:e.additionalProperties===!0}}return r?{kind:"map",valuesConfig:V(
48
48
  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 de="^(?:0|-?[1-9]\\d*)$",Fe="\\d{4}",Ue="0[1-9]|1[0-2]",Be="0[1-9]|[12]\\d|3[01]",Ve="[01]\\d|2[0-3]",P="[0-5]\\d",Z=`\
49
- (?:${Ve}):${P}`,qe=`(?:Z|[+-](?:${Ve}):${P})`,Ge=`(${Fe})-(${Ue})-(${Be})`,He=`${Fe}-(?:${Ue})-(?:${Be})`,Je=`^${He}$`,Gt=new RegExp(
50
- `^${Ge}$`),Ht=new RegExp(`^${Z}(?::${P}(?:\\.(\\d+))?)?$`),Jt=new RegExp(`^${Ge}T${Z}:${P}(?:\\.(\\d+))?${qe}$`),Wt=new RegExp(
51
- de),Yt=[31,28,31,30,31,30,31,31,30,31,30,31];function Xt(t){return t%4===0&&(t%100!==0||t%400===0)}function Kt(t,e){return e===
52
- 2?Xt(t)?29:28:Yt[e-1]}function We(t,e,n){let r=Number(t),o=Number(e),s=Number(n);return o>=1&&o<=12&&s>=1&&s<=Kt(r,o)}function q(t,e){
49
+ (?:${Ve}):${P}`,qe=`(?:Z|[+-](?:${Ve}):${P})`,Ge=`(${Fe})-(${Ue})-(${Be})`,He=`${Fe}-(?:${Ue})-(?:${Be})`,Je=`^${He}$`,Wt=new RegExp(
50
+ `^${Ge}$`),Yt=new RegExp(`^${Z}(?::${P}(?:\\.(\\d+))?)?$`),Xt=new RegExp(`^${Ge}T${Z}:${P}(?:\\.(\\d+))?${qe}$`),Kt=new RegExp(
51
+ de),Zt=[31,28,31,30,31,30,31,31,30,31,30,31];function Qt(t){return t%4===0&&(t%100!==0||t%400===0)}function er(t,e){return e===
52
+ 2?Qt(t)?29:28:Zt[e-1]}function We(t,e,n){let r=Number(t),o=Number(e),s=Number(n);return o>=1&&o<=12&&s>=1&&s<=er(r,o)}function q(t,e){
53
53
  let n=t.temporalPrecision;if(n!==void 0){if(!Number.isInteger(n)||n<0)throw new Error(`temporalPrecision for "${e}" must\
54
54
  be a non-negative integer.`);return n}}function Ye(t,e){return t===void 0?!0:e===void 0||t.length<=e}function Xe(t){if(typeof t!=
55
- "string")return!1;let e=Gt.exec(t);return e!==null&&We(e[1],e[2],e[3])}function Ke(t,e){if(typeof t!="string")return!1;let n=Ht.
56
- exec(t);return n!==null&&Ye(n[1],e)}function Ze(t,e){if(typeof t!="string")return!1;let n=Jt.exec(t);return n===null?!1:
55
+ "string")return!1;let e=Wt.exec(t);return e!==null&&We(e[1],e[2],e[3])}function Ke(t,e){if(typeof t!="string")return!1;let n=Yt.
56
+ exec(t);return n!==null&&Ye(n[1],e)}function Ze(t,e){if(typeof t!="string")return!1;let n=Xt.exec(t);return n===null?!1:
57
57
  We(n[1],n[2],n[3])&&Ye(n[4],e)}function Qe(t){return t===void 0?"(?:\\.\\d+)?":t===0?"":`(?:\\.\\d{1,${t}})?`}function et(t,e){
58
58
  let n=q(t,e);return`^${Z}(?::${P}${Qe(n)})?$`}function tt(t,e){let n=q(t,e);return`^${He}T${Z}:${P}${Qe(n)}${qe}$`}function fe(t,e){
59
- let n;if(typeof t=="number")n=t;else if(typeof t=="string"&&Wt.test(t))n=Number(t);else return null;return!Number.isSafeInteger(
60
- n)||n<-e||n>e?null:n===0?0:n}var Zt=new Set(["__proto__","prototype","constructor"]);function p(t,e,n){Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0})}function Qt(t,e){if(Zt.
61
- has(t))throw new Error(`${e}() received unsafe path segment "${t}".`)}function er(t){return typeof t!="string"?t:t.replace(
59
+ let n;if(typeof t=="number")n=t;else if(typeof t=="string"&&Kt.test(t))n=Number(t);else return null;return!Number.isSafeInteger(
60
+ n)||n<-e||n>e?null:n===0?0:n}var tr=new Set(["__proto__","prototype","constructor"]);function p(t,e,n){Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0})}function rr(t,e){if(tr.
61
+ has(t))throw new Error(`${e}() received unsafe path segment "${t}".`)}function nr(t){return typeof t!="string"?t:t.replace(
62
62
  /\[(.+?)\]/g,".$1").replace(/^\.+/,"").replace(/\.+/g,".").replace(/\.$/,"")}function pe(t,e,{normalize:n=!1,allowEmpty:r=!1}={}){
63
- let o=n?er(t):t;if(typeof o!="string"||o.trim()===""){if(r&&o==="")return[];throw new Error(`${e}() expects a non-empty \
63
+ let o=n?nr(t):t;if(typeof o!="string"||o.trim()===""){if(r&&o==="")return[];throw new Error(`${e}() expects a non-empty \
64
64
  dotted path string.`)}let s=o.split(".");if(s.some(i=>i===""))throw new Error(`${e}() received an invalid path "${o}".`);
65
- for(let i of s)Qt(i,e);return s}var tr="http://json-schema.org/draft-07/schema#",S="x-json-rest-schema",me=["object","array","string","number","boolean"],
66
- he=Symbol("json-rest-schema.exportContext"),rr=["true","1","yes","y","on"],nr=["false","0","no","n","off"];function rt(t){
67
- return{anyOf:[{type:"integer",minimum:-t,maximum:t},{type:"string",pattern:de}]}}function I(t,e){return{[S]:{[t]:e}}}var or={
65
+ for(let i of s)rr(i,e);return s}var or="http://json-schema.org/draft-07/schema#",S="x-json-rest-schema",me=["object","array","string","number","boolean"],
66
+ he=Symbol("json-rest-schema.exportContext"),sr=["true","1","yes","y","on"],ir=["false","0","no","n","off"];function rt(t){
67
+ return{anyOf:[{type:"integer",minimum:-t,maximum:t},{type:"string",pattern:de}]}}function I(t,e){return{[S]:{[t]:e}}}var ar={
68
68
  none:()=>({type:me}),blob:()=>({type:me}),serialize:()=>({type:me}),object:()=>({type:"object"}),array:()=>({type:"array"}),
69
69
  file:()=>({type:"string"}),string:()=>({type:"string"}),number:()=>({type:["number","string"]}),integer:()=>({type:["int\
70
70
  eger","string"]}),epochMilliseconds:()=>rt(864e13),epochSeconds:()=>rt(864e10),dateTime:({definition:t,fieldName:e})=>({
71
71
  type:"string",format:"date-time",pattern:tt(t,e)}),date:()=>({type:"string",format:"date",pattern:Je}),time:({definition:t,
72
72
  fieldName:e})=>({type:"string",pattern:et(t,e)}),boolean:({definition:t})=>{if(t.strictBoolean===!0)return{type:"boolean"};
73
- let e=new Set([...rr,String(t.stringTrueWhen||"true").trim().toLowerCase()]),n=new Set([...nr,String(t.stringFalseWhen||
73
+ let e=new Set([...sr,String(t.stringTrueWhen||"true").trim().toLowerCase()]),n=new Set([...ir,String(t.stringFalseWhen||
74
74
  "false").trim().toLowerCase()]);return{anyOf:[{type:"boolean"},{type:"number",enum:[0,1]},{type:"string",enum:[...n,...e]}]}},
75
- id:()=>({type:["integer","string"],minimum:1,pattern:"^[1-9][0-9]*$"})},sr={minLength:({definition:t,parameterValue:e})=>t.
75
+ id:()=>({type:["integer","string"],minimum:1,pattern:"^[1-9][0-9]*$"})},cr={minLength:({definition:t,parameterValue:e})=>t.
76
76
  type==="string"?{minLength:e}:null,maxLength:({definition:t,parameterValue:e})=>t.type==="string"?{maxLength:e}:null,min:({
77
77
  definition:t,parameterValue:e})=>j(t)?{minimum:e}:null,max:({definition:t,parameterValue:e})=>j(t)?{maximum:e}:null,pattern:({
78
78
  definition:t,parameterValue:e})=>t.type==="string"?{pattern:e instanceof RegExp?e.source:e}:null,enum:({parameterValue:t})=>({
@@ -82,68 +82,68 @@ I("transforms",{uppercase:!0}):null,lowercase:({parameterValue:t})=>t?I("transfo
82
82
  "metadata",{precision:t}),scale:({parameterValue:t})=>I("metadata",{scale:t}),temporalPrecision:({parameterValue:t})=>I(
83
83
  "metadata",{temporalPrecision:t}),strictBoolean:()=>null,required:()=>null,nullable:()=>null,nullOnEmpty:()=>null,defaultTo:()=>null};
84
84
  function be(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.
85
- isArray(r)&&!Array.isArray(o)){be(o,r);continue}t[n]=r}}function ir(t,e){if(!e||typeof e!="object"||Array.isArray(e))throw new Error(
85
+ isArray(r)&&!Array.isArray(o)){be(o,r);continue}t[n]=r}}function ur(t,e){if(!e||typeof e!="object"||Array.isArray(e))throw new Error(
86
86
  "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\
87
- ject"&&typeof e[n]=="object"&&!Array.isArray(t[n])&&!Array.isArray(e[n])){be(t[n],e[n]);continue}t[n]=e[n]}}function ar(t,e){
88
- let r=[...Array.isArray(t.anyOf)&&Object.keys(t).length===1?t.anyOf:[t],...e];return r.length===1?t:{anyOf:r}}function cr(t,e){
87
+ ject"&&typeof e[n]=="object"&&!Array.isArray(t[n])&&!Array.isArray(e[n])){be(t[n],e[n]);continue}t[n]=e[n]}}function lr(t,e){
88
+ let r=[...Array.isArray(t.anyOf)&&Object.keys(t).length===1?t.anyOf:[t],...e];return r.length===1?t:{anyOf:r}}function dr(t,e){
89
89
  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.
90
- toJsonSchema=="function")return n.toJsonSchema;let r=or[e.type];if(!r)throw new Error(`Type '${e.type}' cannot be export\
91
- ed to JSON Schema without a toJsonSchema hook.`);return r}function ur(t,e,n){if(!Object.hasOwn(t.validators,e))return null;
92
- let r=t.validators[e];if(typeof r.toJsonSchema=="function")return r.toJsonSchema;let o=sr[e];if(o)return o;throw new Error(
90
+ toJsonSchema=="function")return n.toJsonSchema;let r=ar[e.type];if(!r)throw new Error(`Type '${e.type}' cannot be export\
91
+ ed to JSON Schema without a toJsonSchema hook.`);return r}function fr(t,e,n){if(!Object.hasOwn(t.validators,e))return null;
92
+ let r=t.validators[e];if(typeof r.toJsonSchema=="function")return r.toJsonSchema;let o=cr[e];if(o)return o;throw new Error(
93
93
  `Validator '${e}' on field '${n}' cannot be exported to JSON Schema without a toJsonSchema hook.`)}function nt(t){if(t===
94
94
  void 0)return"create";if(["create","replace","patch"].includes(t))return t;throw new Error(`Unsupported JSON Schema expo\
95
- rt mode '${t}'. Expected 'create', 'replace', or 'patch'.`)}function lr(t,e={}){if(e.mode!==void 0&&e.operation!==void 0){
95
+ rt mode '${t}'. Expected 'create', 'replace', or 'patch'.`)}function pr(t,e={}){if(e.mode!==void 0&&e.operation!==void 0){
96
96
  let n=nt(e.mode);if(n!==e.operation)throw new Error(`Conflicting JSON Schema export options: mode '${n}' does not match \
97
97
  operation '${e.operation}'.`)}if(e.operation!==void 0){if(!Object.hasOwn(t.operations,e.operation))throw new Error(`Unkn\
98
- own JSON Schema export operation '${e.operation}'.`);return e.operation}return nt(e.mode)}function dr(t,e={}){if(e.operationName!==
99
- void 0&&e.operationDescriptor!==void 0)return{operationName:e.operationName,operation:e.operationDescriptor};let n=lr(t,
100
- e);return{operationName:n,operation:t.operations[n]}}function fr(t={}){let e={...t};return Object.defineProperty(e,he,{value:{
98
+ own JSON Schema export operation '${e.operation}'.`);return e.operation}return nt(e.mode)}function mr(t,e={}){if(e.operationName!==
99
+ void 0&&e.operationDescriptor!==void 0)return{operationName:e.operationName,operation:e.operationDescriptor};let n=pr(t,
100
+ e);return{operationName:n,operation:t.operations[n]}}function hr(t={}){let e={...t};return Object.defineProperty(e,he,{value:{
101
101
  definitions:{},nodes:[],nextDefinitionId:1,rootNode:null},enumerable:!1}),e}function ee(t={}){return t[he]?t[he]:{definitions:{},
102
- nodes:[],nextDefinitionId:1,rootNode:null}}function pr(t){return String(t).replace(/[^a-zA-Z0-9]+/g,"_").replace(/^_+|_+$/g,
102
+ nodes:[],nextDefinitionId:1,rootNode:null}}function yr(t){return String(t).replace(/[^a-zA-Z0-9]+/g,"_").replace(/^_+|_+$/g,
103
103
  "")||"operation"}function ye(t){return y(t)&&Object.keys(t).length===1&&typeof t.$ref=="string"}function Q(t){return ye(
104
- t)?{allOf:[t]}:t}function mr(t,e,n,r,o){return t.nodes.find(s=>s.schema===e&&s.operationName===n&&s.operation===r&&s.additionalProperties===
105
- o)||null}function hr(t,e){let n=pr(e),r=`SchemaNode_${t.nextDefinitionId}_${n}`;return t.nextDefinitionId+=1,r}function ot(t,e,n,r,o,{
106
- root:s=!1}={}){let i=ee(e),a=mr(i,t,n,r,o);if(a)return s&&(a.pointer="#",i.rootNode=a),a;let c={schema:t,operationName:n,
107
- operation:r,additionalProperties:o,status:"new",definitionName:s?null:hr(i,n),pointer:s?"#":null};return s?i.rootNode=c:
104
+ t)?{allOf:[t]}:t}function wr(t,e,n,r,o){return t.nodes.find(s=>s.schema===e&&s.operationName===n&&s.operation===r&&s.additionalProperties===
105
+ o)||null}function gr(t,e){let n=yr(e),r=`SchemaNode_${t.nextDefinitionId}_${n}`;return t.nextDefinitionId+=1,r}function ot(t,e,n,r,o,{
106
+ root:s=!1}={}){let i=ee(e),a=wr(i,t,n,r,o);if(a)return s&&(a.pointer="#",i.rootNode=a),a;let c={schema:t,operationName:n,
107
+ operation:r,additionalProperties:o,status:"new",definitionName:s?null:gr(i,n),pointer:s?"#":null};return s?i.rootNode=c:
108
108
  c.pointer=`#/definitions/${c.definitionName}`,i.nodes.push(c),c}function st(t,e){if(t.status==="built")return{$ref:t.pointer};
109
109
  if(t.status==="building")return{$ref:t.pointer};let n=ee(e);t.status="building",t.pointer!=="#"&&(n.definitions[t.definitionName]=
110
- {});let r=yr(t.schema,e,t.operationName,t.operation,t.additionalProperties);return t.status="built",t.pointer==="#"?r:(n.
110
+ {});let r=br(t.schema,e,t.operationName,t.operation,t.additionalProperties);return t.status="built",t.pointer==="#"?r:(n.
111
111
  definitions[t.definitionName]=r,{$ref:t.pointer})}function Ee(t,e,n,r,o=!1){let s=ee(e),i=ot(t,e,n,r,o);return s.rootNode===
112
- i?{$ref:"#"}:st(i,e)}function G(t,{referenceBacked:e=!1}={}){return{schema:t,referenceBacked:e}}function yr(t,e,n,r,o=!1){
112
+ i?{$ref:"#"}:st(i,e)}function G(t,{referenceBacked:e=!1}={}){return{schema:t,referenceBacked:e}}function br(t,e,n,r,o=!1){
113
113
  let s={},i=[];for(let[c,u]of Object.entries(t.structure))p(s,c,Oe(t,c,u,e,n,r)),r.enforceRequired&&u.required===!0&&i.push(
114
- c);let a={type:"object",properties:s,additionalProperties:o};return i.length>0&&(a.required=i),a}function wr(t,e,n,r,o,s){
114
+ c);let a={type:"object",properties:s,additionalProperties:o};return i.length>0&&(a.required=i),a}function Er(t,e,n,r,o,s){
115
115
  let i=X(e,n);if(!i)return null;if(i.kind==="schema")return{...Q(Ee(i.schema,r,"replace",i.schema.operations.replace,!1)),
116
116
  [S]:{castType:"object"}};let a=n.items.type==="object"&&Object.hasOwn(n.items,"schema")?"replace":o,c=a==="replace"?t.operations.
117
- replace:s;return Oe(t,`${e}[]`,n.items,r,a,c)}function gr(t,e,n,r,o,s){let i=V(e,n);if(!i)return null;if(i.kind==="schem\
117
+ replace:s;return Oe(t,`${e}[]`,n.items,r,a,c)}function Or(t,e,n,r,o,s){let i=V(e,n);if(!i)return null;if(i.kind==="schem\
118
118
  a")return{...Q(Ee(i.schema,r,"replace",i.schema.operations.replace,!1)),[S]:{castType:"object"}};let a=i.definition.type===
119
119
  "object"&&Object.hasOwn(i.definition,"schema")?"replace":o,c=a==="replace"?t.operations.replace:s;return Oe(t,`${e}.*`,i.
120
- definition,r,a,c)}function br(t,e,n,r,o,s){if(n.type==="object"){let a=K(e,n);if(a.kind==="nested")return G(Ee(a.schema,
120
+ definition,r,a,c)}function Sr(t,e,n,r,o,s){if(n.type==="object"){let a=K(e,n);if(a.kind==="nested")return G(Ee(a.schema,
121
121
  r,o,s,a.allowAdditionalProperties===!0),{referenceBacked:!0});if(a.kind==="opaque")return G({type:"object",additionalProperties:!0});
122
- if(a.kind==="map")return G({type:"object",additionalProperties:gr(t,e,n,r,o,s)})}let i=cr(t,n)({schema:t,fieldName:e,definition:n,
122
+ if(a.kind==="map")return G({type:"object",additionalProperties:Or(t,e,n,r,o,s)})}let i=dr(t,n)({schema:t,fieldName:e,definition:n,
123
123
  operation:o,mode:o,options:r});if(!i||typeof i!="object"||Array.isArray(i))throw new Error(`Type '${n.type}' on field '${e}\
124
- ' returned an invalid JSON Schema fragment.`);if(n.type==="array"){let a=wr(t,e,n,r,o,s);if(a)return G({...i,items:a},{referenceBacked:ye(
124
+ ' returned an invalid JSON Schema fragment.`);if(n.type==="array"){let a=Er(t,e,n,r,o,s);if(a)return G({...i,items:a},{referenceBacked:ye(
125
125
  i)})}return G(i,{referenceBacked:ye(i)})}function Oe(t,e,n,r,o,s){let i={schema:t,fieldName:e,definition:n,operation:o,mode:o,
126
- options:r},a=br(t,e,n,r,o,s),c=a.referenceBacked?Q(a.schema):{...a.schema},u={castType:n.type};for(let f of Object.keys(
127
- n)){if(f==="type"||!Object.hasOwn(t.validators,f))continue;let m=ur(t,f,e);if(!m)continue;let h=m({...i,parameterName:f,
128
- parameterValue:n[f],fieldSchema:{...c}});h&&ir(c,h)}c[S]&&(be(u,c[S]),delete c[S]);let l=[];n.nullable===!0&&l.push({type:"\
129
- null"}),n.nullOnEmpty===!0&&l.push({const:""});let d=Q(ar(c,l));if(n.defaultTo!==void 0&&s.applyDefaults)if(typeof n.defaultTo!=
126
+ options:r},a=Sr(t,e,n,r,o,s),c=a.referenceBacked?Q(a.schema):{...a.schema},u={castType:n.type};for(let f of Object.keys(
127
+ n)){if(f==="type"||!Object.hasOwn(t.validators,f))continue;let m=fr(t,f,e);if(!m)continue;let h=m({...i,parameterName:f,
128
+ parameterValue:n[f],fieldSchema:{...c}});h&&ur(c,h)}c[S]&&(be(u,c[S]),delete c[S]);let l=[];n.nullable===!0&&l.push({type:"\
129
+ null"}),n.nullOnEmpty===!0&&l.push({const:""});let d=Q(lr(c,l));if(n.defaultTo!==void 0&&s.applyDefaults)if(typeof n.defaultTo!=
130
130
  "function"){let f=t._normalizeDefault(n,n.defaultTo,{fieldPath:e,currentObject:{},containerKey:e,objectBeforeCast:{},options:{},
131
131
  settings:t._buildOperationSettings(o,s,{})});if(Object.keys(f.errors).length>0){let m=Object.values(f.errors)[0];throw new Error(
132
132
  `defaultTo for "${e}" is invalid (${m.code}).`)}d.default=f.value}else u.defaults={providedByFunction:!0};return d[S]=u,
133
- d}function it(t,e={}){let n=fr(e),{operationName:r,operation:o}=dr(t,n),s=n.additionalProperties===void 0?!1:n.additionalProperties,
134
- i=ee(n),a=ot(t,n,r,o,s,{root:!0}),c={$schema:tr,...st(a,n)};return Object.keys(i.definitions).length>0&&(c.definitions=i.
133
+ d}function it(t,e={}){let n=hr(e),{operationName:r,operation:o}=mr(t,n),s=n.additionalProperties===void 0?!1:n.additionalProperties,
134
+ i=ee(n),a=ot(t,n,r,o,s,{root:!0}),c={$schema:or,...st(a,n)};return Object.keys(i.definitions).length>0&&(c.definitions=i.
135
135
  definitions),c}function at(t){return t!==null&&(typeof t=="object"||typeof t=="function")&&typeof t.then=="function"}function _e(t){return t instanceof
136
- R}function Er(){return{self:!1,children:{}}}function ct(t){return Object.keys(t.children).length>0}function A(t,e){return`${t}\
136
+ R}function vr(){return{self:!1,children:{}}}function ct(t){return Object.keys(t.children).length>0}function A(t,e){return`${t}\
137
137
  .${String(e)}`}function mt(t,e){return t===""?String(e):A(t,e)}function ut(t,e){if(t===e)return"";let n=`${e}.`;return t.
138
138
  startsWith(n)?t.slice(n.length):null}function x(t,e){let n={};for(let r of Object.values(t)){let o=A(e,r.field);p(n,o,{...r,
139
139
  field:o})}return n}function Ie(t){return pe(t,"validatePath")}function lt(t){let e={};for(let n of t){let r=Ie(n),o=e;for(let s=0;s<
140
- r.length;s++){let i=r[s];Object.hasOwn(o,i)||p(o,i,Er()),s===r.length-1&&(o[i].self=!0),o=o[i].children}}return e}function Or(t,e){
140
+ r.length;s++){let i=r[s];Object.hasOwn(o,i)||p(o,i,vr()),s===r.length-1&&(o[i].self=!0),o=o[i].children}}return e}function Ir(t,e){
141
141
  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 te(t){return t===
142
142
  null?!0:Array.isArray(t)||y(t)?Object.keys(t).length>0:t!==void 0}function dt(t){return[...t].sort((e,n)=>{let r=/^[0-9]+$/.
143
- test(e),o=/^[0-9]+$/.test(n);return r&&o?Number(e)-Number(n):r?-1:o?1:e.localeCompare(n)})}function Sr(t){return/^[0-9]+$/.
144
- test(t)}function vr(t,e=new WeakMap){if(e.has(t))return e.get(t);let n=Object.create(R.prototype);return e.set(t,n),n.structure=
143
+ 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]+$/.
144
+ test(t)}function _r(t,e=new WeakMap){if(e.has(t))return e.get(t);let n=Object.create(R.prototype);return e.set(t,n),n.structure=
145
145
  null,n.types=t.types,n.validators=t.validators,n.operations=t.operations,n.structure=ne(re(t.structure,e)),n._installOperationMethods(),
146
- Object.freeze(n)}function re(t,e=new WeakMap){if(t===null||typeof t!="object")return t;if(_e(t))return vr(t,e);if(t instanceof
146
+ Object.freeze(n)}function re(t,e=new WeakMap){if(t===null||typeof t!="object")return t;if(_e(t))return _r(t,e);if(t instanceof
147
147
  Date)return new Date(t.getTime());if(t instanceof RegExp){let r=new RegExp(t.source,t.flags);return r.lastIndex=t.lastIndex,
148
148
  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(re(o,e));return r}if(!y(t))
149
149
  return t;let n={};e.set(t,n);for(let[r,o]of Object.entries(t))p(n,r,re(o,e));return n}function ne(t,e=new WeakSet){if(t===
@@ -152,25 +152,25 @@ ownKeys(t))ne(t[n],e);return Object.freeze(t)}function Se(t){return ne(re(t))}fu
152
152
  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)
153
153
  return s;let i=mt(n,r);return ht(t,s,o,i)}function ht(t,e,n,r){if(e?.type==="object"){let o=t._resolveObjectFieldMode(r,
154
154
  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<
155
- 1)return null;let[s,...i]=n;if(!Sr(s))return null;let a=A(r,s);return o.kind==="schema"?i.length<1?null:Ae(o.schema,i,a):
155
+ 1)return null;let[s,...i]=n;if(!Ar(s))return null;let a=A(r,s);return o.kind==="schema"?i.length<1?null:Ae(o.schema,i,a):
156
156
  i.length<1?o.definition:ht(t,o.definition,i,a)}return null}function N(t,e){let n={...t};if(Array.isArray(t.skipFields)){
157
157
  let r=t.skipFields.map(o=>ut(o,e)).filter(o=>o!==null&&o!=="");r.length>0?n.skipFields=r:delete n.skipFields}if(y(t.skipParams)){
158
158
  let r={};for(let[o,s]of Object.entries(t.skipParams)){let i=ut(o,e);i===null||i===""||p(r,i,s)}Object.keys(r).length>0?n.
159
- skipParams=r:delete n.skipParams}return n}var Ir=Object.freeze({create:Object.freeze({targetFields:"schema",enforceRequired:!0,
159
+ skipParams=r:delete n.skipParams}return n}var Tr=Object.freeze({create:Object.freeze({targetFields:"schema",enforceRequired:!0,
160
160
  applyDefaults:!0,outputFields:"validated",rejectExplicitUndefined:!0}),replace:Object.freeze({targetFields:"schema",enforceRequired:!0,
161
161
  applyDefaults:!0,outputFields:"validated",rejectExplicitUndefined:!0}),patch:Object.freeze({targetFields:"input",enforceRequired:!1,
162
162
  applyDefaults:!1,outputFields:"input",rejectExplicitUndefined:!0})});function ft(t,e,n,r){let o=e[n];if(!r.includes(o))throw new Error(
163
163
  `Operation "${t}" must define ${n} as one of: ${r.join(", ")}.`)}function ve(t,e,n,r=!0){let o=e[n];if(!(o===void 0&&!r)&&
164
- typeof o!="boolean")throw new Error(`Operation "${t}" must define ${n} as a boolean.`)}function Ar(t,e){if(typeof e!="ob\
164
+ typeof o!="boolean")throw new Error(`Operation "${t}" must define ${n} as a boolean.`)}function Cr(t,e){if(typeof e!="ob\
165
165
  ject"||e===null||Array.isArray(e))throw new Error(`Operation "${t}" must be an object.`);return ft(t,e,"targetFields",["\
166
166
  schema","input"]),ve(t,e,"enforceRequired"),ve(t,e,"applyDefaults"),ft(t,e,"outputFields",["validated","input"]),ve(t,e,
167
167
  "rejectExplicitUndefined",!1),Object.freeze({targetFields:e.targetFields,enforceRequired:e.enforceRequired,applyDefaults:e.
168
168
  applyDefaults,outputFields:e.outputFields,rejectExplicitUndefined:e.rejectExplicitUndefined===void 0?!0:e.rejectExplicitUndefined})}
169
- function _r(t={}){if(typeof t!="object"||t===null||Array.isArray(t))throw new Error("Schema operations must be an object\
170
- .");let e=Object.create(null);for(let[n,r]of Object.entries(Ir))p(e,n,r);for(let[n,r]of Object.entries(t))p(e,n,Ar(n,r));
169
+ function jr(t={}){if(typeof t!="object"||t===null||Array.isArray(t))throw new Error("Schema operations must be an object\
170
+ .");let e=Object.create(null);for(let[n,r]of Object.entries(Tr))p(e,n,r);for(let[n,r]of Object.entries(t))p(e,n,Cr(n,r));
171
171
  return Object.freeze(e)}function pt(t){let e=Object.create(null);for(let[n,r]of Object.entries(t))p(e,n,r);return Object.
172
- freeze(e)}function Tr(t){let e={...t};return delete e.operation,delete e.mode,e}var R=class{constructor(e,n,r,o={}){this.
173
- structure=e,this.types=pt(n),this.validators=pt(r),this.operations=_r(o),this._installOperationMethods()}_typeError(e){return this.
172
+ freeze(e)}function Pr(t){let e={...t};return delete e.operation,delete e.mode,e}var R=class{constructor(e,n,r,o={}){this.
173
+ structure=e,this.types=pt(n),this.validators=pt(r),this.operations=jr(o),this._installOperationMethods()}_typeError(e){return this.
174
174
  _paramError(e,"TYPE_CAST_FAILED","Value could not be cast to the required type.")}_paramError(e,n,r,o={}){let s=new Error(
175
175
  r);return s.errorObject={field:e,code:n,message:r,params:o},s}_paramToBeSkipped(e,n,r){return typeof n!="object"||n===null?
176
176
  !1:!!(Array.isArray(n[r])&&n[r].includes(e))}_fieldToBeSkipped(e,n){return Array.isArray(n.skipFields)&&n.skipFields.includes(
@@ -185,7 +185,7 @@ rejectExplicitUndefined,defaultedFields:new Set,isFieldPresent:o=>Object.hasOwn(
185
185
  n))throw new Error(`${e}() expects a plain object input.`)}_resolvePathValidationRequest(e={}){let n=e.operation??e.mode??
186
186
  "patch";if(Object.hasOwn(e,"operation")&&Object.hasOwn(e,"mode")&&e.operation!==e.mode)throw new Error("Path validation \
187
187
  options `operation` and `mode` must match when both are provided.");if(!Object.hasOwn(this.operations,n))throw new Error(
188
- `Unknown operation "${n}".`);let r=this.operations[n];return{operationName:n,operation:r,validationOptions:Tr(e)}}_buildOperationResult(e,n,r){
188
+ `Unknown operation "${n}".`);let r=this.operations[n];return{operationName:n,operation:r,validationOptions:Pr(e)}}_buildOperationResult(e,n,r){
189
189
  let o={};for(let s of r.outputFieldNames){if(!Object.hasOwn(this.structure,s))continue;let i=r.isFieldPresent(s);(n[s]!==
190
190
  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){
191
191
  return K(e,n)}_resolveArrayItemsConfig(e,n){return X(e,n)}_resolveObjectValuesConfig(e,n){return V(e,n)}_buildArrayItemSettings(e,n){
@@ -262,12 +262,12 @@ h.children,b,N(i,m),{...a,operationName:"replace",operation:o.schema.operations.
262
262
  p(c,f,U.validatedObject),this._mergeErrors(l,x(U.errors,m));continue}let v=this._buildArrayItemSettings(o.definition,a),
263
263
  E=[b];if(g){let U=this._normalizeAndValidateValue(o.definition,b,m,E,0,u,i,v);Object.hasOwn(E,0)&&E[0]!==void 0?p(c,f,E[0]):
264
264
  E[0]===null&&p(c,f,null),this._mergeErrors(l,U);continue}if(!C)continue;let se=this._castValue(o.definition,b,m,E,0,u,i,
265
- v);if(Object.keys(se.errors).length>0){this._mergeErrors(l,se.errors);continue}if(!se.shouldContinue)continue;let Dt=this.
266
- _validateSelectedDescendants(o.definition,h.children,m,E,0,i,v);te(E[0])&&p(c,f,E[0]),this._mergeErrors(l,Dt)}return l}validateWith(e,n,r={}){
265
+ v);if(Object.keys(se.errors).length>0){this._mergeErrors(l,se.errors);continue}if(!se.shouldContinue)continue;let kt=this.
266
+ _validateSelectedDescendants(o.definition,h.children,m,E,0,i,v);te(E[0])&&p(c,f,E[0]),this._mergeErrors(l,kt)}return l}validateWith(e,n,r={}){
267
267
  if(!Object.hasOwn(this.operations,e))throw new Error(`Unknown operation "${e}".`);let o=this.operations[e];return this._assertPlainObjectInput(
268
268
  e,n),this._validateWithOperation(e,o,n,r)}validateAt(e,n,r={}){this._assertPlainObjectInput("validateAt",n);let o=Ie(e),
269
269
  {operationName:s,operation:i,validationOptions:a}=this._resolvePathValidationRequest(r),c=this._validateSelectedTree(lt(
270
- [e]),n,a,this._buildOperationSettings(s,i,n));return{validatedValue:Or(c.validatedObject,o),errors:c.errors}}validatePaths(e,n,r={}){
270
+ [e]),n,a,this._buildOperationSettings(s,i,n));return{validatedValue:Ir(c.validatedObject,o),errors:c.errors}}validatePaths(e,n,r={}){
271
271
  if(this._assertPlainObjectInput("validatePaths",n),!Array.isArray(e)||e.length===0)throw new Error("validatePaths() expe\
272
272
  cts a non-empty array of schema paths.");let{operationName:o,operation:s,validationOptions:i}=this._resolvePathValidationRequest(
273
273
  r);return this._validateSelectedTree(lt(e),n,i,this._buildOperationSettings(o,s,n))}_installOperationMethods(){for(let e of Object.
@@ -276,9 +276,9 @@ thod.`);this[e]=(n,r={})=>this.validateWith(e,n,r)}}toJsonSchema(e={}){return it
276
276
  this.structure)}getFieldDefinition(e){if(typeof e!="string"||e.trim()==="")throw new Error("Field path must be a non-emp\
277
277
  ty string.");let n=Ae(this,Ie(e.trim()));return n===null?null:Se(n)}getFieldMessages(e){let n=this.getFieldDefinition(e);
278
278
  return!n||typeof n.messages!="object"||n.messages===null?Object.freeze({}):Se(n.messages)}cleanup(e,n){let r={};for(let o of Object.
279
- keys(e))Object.hasOwn(this.structure,o)&&this.structure[o][n]&&p(r,o,e[o]);return r}};var{parse:Fo,stringify:Cr}=JSON,{keys:Uo}=Object,jr=String,Pr="string";var yt="object",xr=(t,e)=>e;var wt=(t,e,n)=>{let r=jr(e.push(n)-1);return t.set(n,r),r};var gt=(t,e,n)=>{let r=e&&typeof e===yt?(l,d)=>l===""||-1<e.indexOf(l)?d:void 0:e||xr,o=new Map,s=[],i=[],a=+wt(o,s,r.call(
280
- {"":t},"",t)),c=!a;for(;a<s.length;)c=!0,i[a]=Cr(s[a++],u,n);return"["+i.join(",")+"]";function u(l,d){if(c)return c=!c,
281
- d;let f=r.call(this,l,d);switch(typeof f){case yt:if(f===null)return f;case Pr:return o.get(f)||wt(o,s,f)}return f}};var Rr=new Set(["true","1","yes","y","on"]),Mr=new Set(["false","0","no","n","off"]);function Dr(t){return t!==null&&(typeof t==
279
+ keys(e))Object.hasOwn(this.structure,o)&&this.structure[o][n]&&p(r,o,e[o]);return r}};var{parse:Jo,stringify:xr}=JSON,{keys:Wo}=Object,Nr=String,Rr="string";var yt="object",Mr=(t,e)=>e;var wt=(t,e,n)=>{let r=Nr(e.push(n)-1);return t.set(n,r),r};var gt=(t,e,n)=>{let r=e&&typeof e===yt?(l,d)=>l===""||-1<e.indexOf(l)?d:void 0:e||Mr,o=new Map,s=[],i=[],a=+wt(o,s,r.call(
280
+ {"":t},"",t)),c=!a;for(;a<s.length;)c=!0,i[a]=xr(s[a++],u,n);return"["+i.join(",")+"]";function u(l,d){if(c)return c=!c,
281
+ d;let f=r.call(this,l,d);switch(typeof f){case yt:if(f===null)return f;case Rr:return o.get(f)||wt(o,s,f)}return f}};var kr=new Set(["true","1","yes","y","on"]),zr=new Set(["false","0","no","n","off"]);function Lr(t){return t!==null&&(typeof t==
282
282
  "object"||typeof t=="function")&&typeof t.then=="function"}function bt(t){if(typeof t=="number")return Number.isFinite(t)?
283
283
  t:null;if(typeof t=="bigint"){let e=Number(t);return Number.isSafeInteger(e)?e:null}if(typeof t=="string"){let e=t.trim();
284
284
  if(e==="")return null;let n=Number(e);return Number.isFinite(n)?n:null}return null}function Te(t,e){if(Object.is(t,e))return!0;
@@ -286,7 +286,7 @@ if(t instanceof Date&&e instanceof Date)return t.getTime()===e.getTime();if(t in
286
286
  source===e.source&&t.flags===e.flags;if(Array.isArray(t)||Array.isArray(e)){if(!Array.isArray(t)||!Array.isArray(e)||t.length!==
287
287
  e.length)return!1;for(let o=0;o<t.length;o++)if(!Te(t[o],e[o]))return!1;return!0}if(t===null||e===null||typeof t!="objec\
288
288
  t"||typeof e!="object"||Object.getPrototypeOf(t)!==Object.getPrototypeOf(e))return!1;let n=Object.keys(t),r=Object.keys(
289
- e);if(n.length!==r.length)return!1;for(let o of n)if(!Object.hasOwn(e,o)||!Te(t[o],e[o]))return!1;return!0}var kr={install(t){
289
+ e);if(n.length!==r.length)return!1;for(let o of n)if(!Object.hasOwn(e,o)||!Te(t[o],e[o]))return!1;return!0}var $r={install(t){
290
290
  let{addType:e,addValidator:n}=t;e("none",r=>r.value),e("file",r=>{let o=r.value;o==null&&r.throwTypeError();let s=typeof o;
291
291
  if(s==="string"||s==="number"||s==="boolean"){let i=o.toString();return r.definition.noTrim?i:i.trim()}r.throwTypeError()}),
292
292
  e("string",r=>{let o=r.value;if(o==null)return"";let s=typeof o;if(s==="string"||s==="number"||s==="boolean"){let i=o.toString();
@@ -301,7 +301,7 @@ r.value)}catch{try{return gt(r.value)}catch{r.throwTypeError()}}}),e("boolean",r
301
301
  value;if(typeof r.value=="number"){if(r.value===1)return!0;if(r.value===0)return!1;r.throwTypeError()}if(typeof r.value==
302
302
  "bigint"){if(r.value===1n)return!0;if(r.value===0n)return!1;r.throwTypeError()}if(typeof r.value=="string"){let o=String(
303
303
  r.definition.stringFalseWhen||"false").trim().toLowerCase(),s=String(r.definition.stringTrueWhen||"true").trim().toLowerCase(),
304
- i=r.value.trim().toLowerCase(),a=new Set([...Mr,o]),c=new Set([...Rr,s]);if(a.has(i))return!1;if(c.has(i))return!0}r.throwTypeError()}),
304
+ i=r.value.trim().toLowerCase(),a=new Set([...zr,o]),c=new Set([...kr,s]);if(a.has(i))return!1;if(c.has(i))return!0}r.throwTypeError()}),
305
305
  e("id",r=>{if(typeof r.value=="number"){if(Number.isSafeInteger(r.value)&&r.value>0)return r.value;r.throwTypeError()}if(typeof r.
306
306
  value=="bigint"){if(r.value>0n&&r.value<=BigInt(Number.MAX_SAFE_INTEGER))return Number(r.value);r.throwTypeError()}if(typeof r.
307
307
  value=="string"){let o=r.value.trim();/^[1-9][0-9]*$/.test(o)||r.throwTypeError();let s=Number(o);return Number.isSafeInteger(
@@ -322,7 +322,7 @@ r.throwParamError("PATTERN","Value does not match the required pattern.",{patter
322
322
  parameterValue){if(r.definition.type!=="boolean")throw new Error(`strictBoolean can only be used on boolean fields (${r.
323
323
  fieldName}).`);typeof r.valueBeforeCast!="boolean"&&r.throwParamError("STRICT_BOOLEAN","Value must be a boolean.")}}),n(
324
324
  "validator",r=>{if(typeof r.parameterValue!="function")throw new Error(`Validator for ${r.fieldName} must be a function.`);
325
- let o=r.parameterValue(r.value,r.object,r);if(Dr(o))throw new Error(`Custom validator for "${r.fieldName}" must be synch\
325
+ let o=r.parameterValue(r.value,r.object,r);if(Lr(o))throw new Error(`Custom validator for "${r.fieldName}" must be synch\
326
326
  ronous.`);typeof o=="string"&&r.throwParamError("CUSTOM_VALIDATOR_FAILED",o)}),n("uppercase",r=>{if(typeof r.value=="str\
327
327
  ing")return r.value.toUpperCase()}),n("lowercase",r=>{if(typeof r.value=="string")return r.value.toLowerCase()}),n("leng\
328
328
  th",r=>{if(typeof r.value=="string")return r.value.substr(0,r.parameterValue);Number.isInteger(Number(r.valueBeforeCast))&&
@@ -331,59 +331,59 @@ ed character range.",{max:r.parameterValue,actual:String(r.valueBeforeCast).leng
331
331
  typeof r.value=="string"&&r.value===""&&r.throwParamError("NOT_EMPTY","Field cannot be empty.")}),n("required",()=>{}),n(
332
332
  "unsigned",()=>{}),n("precision",()=>{}),n("scale",()=>{}),n("temporalPrecision",r=>{if(r.definition.type!=="time"&&r.definition.
333
333
  type!=="dateTime")throw new Error(`temporalPrecision can only be used on time or dateTime fields (${r.fieldName}).`)}),n(
334
- "nullable",()=>{}),n("nullOnEmpty",()=>{}),n("defaultTo",()=>{})}},Et=kr;var vt=new WeakMap,It=new WeakMap,At=Symbol.for("json-rest-schema.registry-metadata");function zr(t,e,n){if(typeof n!="f\
335
- unction")throw new Error(`Type handler for '${e}' must be a function.`);p(t,e,n)}function Lr(t,e,n){if(typeof n!="functi\
334
+ "nullable",()=>{}),n("nullOnEmpty",()=>{}),n("defaultTo",()=>{})}},Et=$r;var vt=new WeakMap,It=new WeakMap,At=Symbol.for("json-rest-schema.registry-metadata");function Fr(t,e,n){if(typeof n!="f\
335
+ unction")throw new Error(`Type handler for '${e}' must be a function.`);p(t,e,n)}function Ur(t,e,n){if(typeof n!="functi\
336
336
  on")throw new Error(`Validator handler for '${e}' must be a function.`);p(t,e,n)}function oe(t={}){let e=Object.create(null);
337
- for(let[n,r]of Object.entries(t))p(e,n,r);return e}function $r(t,e){if(typeof t.install!="function")throw new Error("Plu\
337
+ for(let[n,r]of Object.entries(t))p(e,n,r);return e}function Br(t,e){if(typeof t.install!="function")throw new Error("Plu\
338
338
  gin must have an install method.");t.install(e)}function Ot(t,e,n){vt.set(t,e),It.set(t,n),Object.defineProperty(t,At,{value:Object.
339
- freeze({getTypes:()=>e,getValidators:()=>n}),enumerable:!1,configurable:!1,writable:!1})}function Fr(t){if(!t||typeof t!=
339
+ freeze({getTypes:()=>e,getValidators:()=>n}),enumerable:!1,configurable:!1,writable:!1})}function Vr(t){if(!t||typeof t!=
340
340
  "object"&&typeof t!="function")return null;let e=vt.get(t),n=It.get(t);if(e&&n)return{types:e,validators:n};let r=t[At];
341
341
  return r&&typeof r.getTypes=="function"&&typeof r.getValidators=="function"?{types:r.getTypes(),validators:r.getValidators()}:
342
342
  typeof t=="object"&&t.types&&typeof t.types=="object"&&t.validators&&typeof t.validators=="object"&&typeof t.create=="fu\
343
343
  nction"&&typeof t.replace=="function"&&typeof t.patch=="function"&&typeof t.toJsonSchema=="function"?{types:t.types,validators:t.
344
- validators}:null}function Ur(t){return t.length===1&&Array.isArray(t[0])?t[0]:t}function Br(t,e){return t===e}function St(t,e,n){
345
- for(let[r,o]of Object.entries(e)){if(Object.hasOwn(t,r)&&!Br(t[r],o))throw new Error(`Cannot merge schema factories with\
346
- conflicting ${n} "${r}".`);p(t,r,o)}}function Vr(t,e,n){let r=Ur(n).filter(Boolean);if(r.length<1)return{types:oe(t),validators:oe(
347
- e)};let o=Object.create(null),s=Object.create(null);for(let i of r){let a=Fr(i);if(!a)throw new Error("Factory sources m\
344
+ validators}:null}function qr(t){return t.length===1&&Array.isArray(t[0])?t[0]:t}function Gr(t,e){return t===e}function St(t,e,n){
345
+ for(let[r,o]of Object.entries(e)){if(Object.hasOwn(t,r)&&!Gr(t[r],o))throw new Error(`Cannot merge schema factories with\
346
+ conflicting ${n} "${r}".`);p(t,r,o)}}function Hr(t,e,n){let r=qr(n).filter(Boolean);if(r.length<1)return{types:oe(t),validators:oe(
347
+ e)};let o=Object.create(null),s=Object.create(null);for(let i of r){let a=Vr(i);if(!a)throw new Error("Factory sources m\
348
348
  ust be schema instances or schema factories created by json-rest-schema.");St(o,a.types,"type"),St(s,a.validators,"valid\
349
349
  ator")}return{types:o,validators:s}}function _t({types:t={},validators:e={},installCore:n=!0}={}){let r=oe(t),o=oe(e),s=(i,a={})=>{
350
- let c=new R(i,r,o,a.operations);return Ot(c,r,o),c};return Ot(s,r,o),s.addType=(i,a)=>{zr(r,i,a)},s.addValidator=(i,a)=>{
351
- Lr(o,i,a)},s.use=i=>{$r(i,{addType:s.addType,addValidator:s.addValidator})},s.createFactory=(...i)=>{let a=Vr(r,o,i);return _t(
350
+ let c=new R(i,r,o,a.operations);return Ot(c,r,o),c};return Ot(s,r,o),s.addType=(i,a)=>{Fr(r,i,a)},s.addValidator=(i,a)=>{
351
+ Ur(o,i,a)},s.use=i=>{Br(i,{addType:s.addType,addValidator:s.addValidator})},s.createFactory=(...i)=>{let a=Hr(r,o,i);return _t(
352
352
  {types:a.types,validators:a.validators,installCore:!1})},n&&s.use(Et),s}var _=_t({installCore:!0});function T(t,e=new WeakSet){if(!t||typeof t!="object"||e.has(t))return t;e.add(t);for(let n of Object.getOwnPropertyNames(
353
- t))T(t[n],e);return Object.freeze(t)}var us=Object.freeze({REQUIRED:"required",TYPE_CAST_FAILED:"default",NOT_NULLABLE:"default",MIN_LENGTH:"minLength",MAX_LENGTH:"\
353
+ t))T(t[n],e);return Object.freeze(t)}var ys=Object.freeze({REQUIRED:"required",TYPE_CAST_FAILED:"default",NOT_NULLABLE:"default",MIN_LENGTH:"minLength",MAX_LENGTH:"\
354
354
  maxLength",MIN_VALUE:"min",MAX_VALUE:"max",PATTERN:"pattern",ENUM_VALUE:"enum",FIELD_NOT_ALLOWED:"additionalProperties",
355
- CUSTOM_VALIDATOR_FAILED:"default"});var Gr=_({cursor:{type:"id",required:!1},limit:{type:"number",required:!1,min:1,unsigned:!0}}),Hr=Object.freeze({schema:Gr,
356
- mode:"patch"});var Ct=Object.freeze({type:"string",pattern:"^(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d)?$",minLength:5}),Jr=Object.freeze(
357
- {...Ct,nullable:!0});var jt="^[1-9][0-9]*$",Ce=T({type:"string",minLength:1,pattern:jt});var Yr=T({...Ce,nullable:!0});var Xr=T({schema:_({recordId:{...Ce,required:!0,messages:{pattern:"Record id must be a canonical positive integer string\
358
- ."}}}),mode:"patch"});var Pt=20,wi=32*1024,gi=48*1024,je=Object.freeze({search:"assistant_action_search",contract:"assistant_action_contract",
359
- execute:"assistant_action_execute"}),Pe=Object.freeze({type:"object",additionalProperties:!0}),Qr=Object.freeze({type:"o\
355
+ CUSTOM_VALIDATOR_FAILED:"default"});var Wr=_({cursor:{type:"id",required:!1},limit:{type:"number",required:!1,min:1,unsigned:!0}}),Yr=Object.freeze({schema:Wr,
356
+ mode:"patch"});var Ct=Object.freeze({type:"string",pattern:"^(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d)?$",minLength:5}),Xr=Object.freeze(
357
+ {...Ct,nullable:!0});var jt="^[1-9][0-9]*$",Ce=T({type:"string",minLength:1,pattern:jt});var Zr=T({...Ce,nullable:!0});var Qr=T({schema:_({recordId:{...Ce,required:!0,messages:{pattern:"Record id must be a canonical positive integer string\
358
+ ."}}}),mode:"patch"});var Pt=20,Ii=32*1024,Ai=48*1024,je=Object.freeze({search:"assistant_action_search",contract:"assistant_action_contract",
359
+ execute:"assistant_action_execute"}),Pe=Object.freeze({type:"object",additionalProperties:!0}),rn=Object.freeze({type:"o\
360
360
  bject",additionalProperties:!1,properties:{query:{type:"string",maxLength:200,description:"Optional literal words or act\
361
361
  ion-id fragments; every word must match. Use short resource or operation terms such as list. Omit query to browse all av\
362
362
  ailable actions."},cursor:{type:"string",maxLength:1e3,description:"Opaque cursor returned by the previous search page."},
363
- limit:{type:"integer",minimum:1,maximum:Pt,description:"Maximum compact matches to return."}}}),en=Object.freeze({type:"\
363
+ limit:{type:"integer",minimum:1,maximum:Pt,description:"Maximum compact matches to return."}}}),nn=Object.freeze({type:"\
364
364
  object",additionalProperties:!1,required:["items","nextCursor","total"],properties:{items:{type:"array",maxItems:Pt,items:{
365
365
  type:"object",additionalProperties:!1,required:["actionId","version","kind","description"],properties:{actionId:{type:"s\
366
366
  tring"},version:{type:"integer",minimum:1},kind:{type:"string"},description:{type:"string"}}}},nextCursor:{anyOf:[{type:"\
367
- string"},{type:"null"}]},total:{type:"integer",minimum:0}}}),tn=Object.freeze({type:"object",additionalProperties:!1,required:[
368
- "actionId"],properties:{actionId:{type:"string",minLength:1,maxLength:300},version:{type:"integer",minimum:1}}}),rn=Object.
367
+ string"},{type:"null"}]},total:{type:"integer",minimum:0}}}),on=Object.freeze({type:"object",additionalProperties:!1,required:[
368
+ "actionId"],properties:{actionId:{type:"string",minLength:1,maxLength:300},version:{type:"integer",minimum:1}}}),sn=Object.
369
369
  freeze({type:"object",additionalProperties:!1,required:["actionId","version","kind","description","inputSchema","outputS\
370
370
  chema"],properties:{actionId:{type:"string"},version:{type:"integer",minimum:1},kind:{type:"string"},description:{type:"\
371
- string"},inputSchema:Pe,outputSchema:Pe}}),nn=Object.freeze({type:"object",additionalProperties:!1,required:["actionId",
372
- "input"],properties:{actionId:{type:"string",minLength:1,maxLength:300},version:{type:"integer",minimum:1},input:Pe}}),on=Object.
371
+ string"},inputSchema:Pe,outputSchema:Pe}}),an=Object.freeze({type:"object",additionalProperties:!1,required:["actionId",
372
+ "input"],properties:{actionId:{type:"string",minLength:1,maxLength:300},version:{type:"integer",minimum:1},input:Pe}}),cn=Object.
373
373
  freeze({type:"object",additionalProperties:!1,required:["actionId","version","result"],properties:{actionId:{type:"strin\
374
- g"},version:{type:"integer",minimum:1},result:{}}}),xe=Object.freeze([Object.freeze({name:je.search,description:"Discove\
374
+ g"},version:{type:"integer",minimum:1},result:{}}}),xt=Object.freeze([Object.freeze({name:je.search,description:"Discove\
375
375
  r application actions available to the current user and surface, including list, search, and query operations for multip\
376
376
  le records. Search before claiming a capability is unavailable. If terminology does not match, use broader terms or omit\
377
- query to browse. Returns compact paged matches without schemas; follow nextCursor when more discovery is needed.",parameters:Qr,
378
- outputSchema:en}),Object.freeze({name:je.contract,description:"Load the exact input and output contract for one availabl\
379
- e action before executing it.",parameters:tn,outputSchema:rn}),Object.freeze({name:je.execute,description:"Execute one a\
380
- vailable action after loading its exact contract in this turn. The action result is returned in result.",parameters:nn,outputSchema:on})]);import{mkdir as Fi,readFile as an,rename as Ui,writeFile as Bi}from"node:fs/promises";import M from"node:path";var H=t=>String(
377
+ query to browse. Returns compact paged matches without schemas; follow nextCursor when more discovery is needed.",parameters:rn,
378
+ outputSchema:nn}),Object.freeze({name:je.contract,description:"Load the exact input and output contract for one availabl\
379
+ e action before executing it.",parameters:on,outputSchema:sn}),Object.freeze({name:je.execute,description:"Execute one a\
380
+ vailable action after loading its exact contract in this turn. The action result is returned in result.",parameters:an,outputSchema:cn})]);var xe="This conversation has no authorization for that native tool.";import{mkdir as Ji,readFile as ln,rename as Wi,writeFile as Yi}from"node:fs/promises";import M from"node:path";var H=t=>String(
381
381
  t??"").trim();function D(t,e={}){if(t?.modelProviderId&&e.model?.providerID!==t.modelProviderId)throw new Error("Assistants must use t\
382
382
  he session's selected AI account.")}function k(t={},e={}){let n=t.model?.limit?.output,r=Number.isSafeInteger(n)&&n>0?n:
383
383
  32e3;Number.isSafeInteger(e.maxOutputTokens)&&e.maxOutputTokens>r&&(e.maxOutputTokens=r)}async function z(t=""){if(!t)return[];
384
- let e=JSON.parse(await an(t,"utf8"));return Array.isArray(e?.sessions)?e.sessions:[]}function cn(t="",e=""){let n=M.relative(
384
+ let e=JSON.parse(await ln(t,"utf8"));return Array.isArray(e?.sessions)?e.sessions:[]}function dn(t="",e=""){let n=M.relative(
385
385
  t,e);return n===""||!n.startsWith("..")&&!M.isAbsolute(n)}function L(t,e=""){let n=M.resolve(H(e)||process.cwd());return t.
386
- filter(r=>H(r?.workdir)&&cn(M.resolve(r.workdir),n)).sort((r,o)=>M.resolve(o.workdir).length-M.resolve(r.workdir).length)[0]||
386
+ filter(r=>H(r?.workdir)&&dn(M.resolve(r.workdir),n)).sort((r,o)=>M.resolve(o.workdir).length-M.resolve(r.workdir).length)[0]||
387
387
  null}async function $(t,e="",n=null){let r=new Set,o=H(e);for(;o&&!r.has(o)&&r.size<32;){let s=t.find(a=>H(a?.upstreamSessionId)===
388
388
  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(
389
389
  "The subagent's parent session could not be verified."),{code:"assistant_opencode_parent_unverified"});o=H(i.data?.parentID)}
@@ -398,10 +398,10 @@ if(e.get(a)!==u)throw new Error("Conversation context changed while reading inst
398
398
  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(
399
399
  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\
400
400
  pacted","session.deleted"].includes(s?.type))return;let i=String(s.properties?.sessionID||s.properties?.info?.id||"").trim();
401
- i&&e.delete(i)}return Object.freeze({transformSystem:r,event:o,invalidate:s=>e.delete(s),close:()=>e.clear()})}import{isAbsolute as un}from"node:path";var Hi=new URL("./../../../../@jskit-ai/assistant-core/src/server/conversation/commandWrapper.js",import.meta.url).href,
402
- xt=t=>`'${t.replaceAll("'",`'"'"'`)}'`;function ln(t){if(typeof t!="string"||!un(t)||t.includes("\0"))throw new TypeError(
403
- "host.commandWrapper must name an absolute executable path.")}function Nt(t,e){if(ln(t),typeof e!="string"||!e.trim()||e.
404
- includes("\0"))throw new TypeError("The native shell tool requires valid command text.");return`${xt(t)} ${xt(e)}`}async function J({client:t,registryPath:e=process.env.JSKIT_OPENCODE_ENV_REGISTRY,resolveHostInstructions:n}={}){let r=JSON.
401
+ i&&e.delete(i)}return Object.freeze({transformSystem:r,event:o,invalidate:s=>e.delete(s),close:()=>e.clear()})}import{isAbsolute as fn}from"node:path";var Qi=new URL("./../../../../@jskit-ai/assistant-core/src/server/conversation/commandWrapper.js",import.meta.url).href,
402
+ Nt=t=>`'${t.replaceAll("'",`'"'"'`)}'`;function pn(t){if(typeof t!="string"||!fn(t)||t.includes("\0"))throw new TypeError(
403
+ "host.commandWrapper must name an absolute executable path.")}function Rt(t,e){if(pn(t),typeof e!="string"||!e.trim()||e.
404
+ includes("\0"))throw new TypeError("The native shell tool requires valid command text.");return`${Nt(t)} ${Nt(e)}`}async function J({client:t,registryPath:e=process.env.JSKIT_OPENCODE_ENV_REGISTRY,resolveHostInstructions:n}={}){let r=JSON.
405
405
  parse(process.env.JSKIT_OPENCODE_TOOL_SCHEMAS||"[]"),o=new Map(r.map(({function:u})=>[u.name,u])),s=()=>z(e);async function i(u){
406
406
  let l=await $(await s(),u,t);if(!l)throw new Error("This native conversation has no instruction owner.");return l}let a=Ne(
407
407
  {async resolveInstructions(u){let{conversation:l}=await i(u);return l?{identity:l.systemPrompt,placement:"replace",read:()=>l.
@@ -409,31 +409,29 @@ systemPrompt}:null}}),c=n?Ne({resolveInstructions:async u=>(await n(u))?.instruc
409
409
  ystem.transform":c?async(u,l)=>(await n(u.sessionID||u.sessionId))?.conversation?a.transformSystem(u,l):c.transformSystem(
410
410
  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);
411
411
  D(d,u),k(u,l)},"tool.execute.before":async({tool:u,sessionID:l},d)=>{let{conversation:f}=await i(l);if(!(o.has(u)?f?.tools?.
412
- schemas.some(({function:h})=>h.name===u):f?.nativeTools))throw new Error("This conversation has no authorization for tha\
413
- t native tool.");u==="bash"&&f.commandWrapper&&(d.args.command=Nt(f.commandWrapper,d.args.command))},"shell.env":async({
414
- sessionID:u,cwd:l},d)=>{let f=u?await i(u):L(await s(),l);f?.conversation?.nativeTools&&Object.assign(d.env,f.env)},"too\
415
- l.definition":({toolID:u},l)=>{let d=o.get(u);d&&(l.jsonSchema=d.parameters)},tool:Object.fromEntries([...o].map(([u,l])=>[
416
- u,{description:l.description,args:l.parameters.properties,async execute(d,f){if(!f.callID||!f.sessionID||!f.messageID)throw new Error(
417
- "OpenCode did not supply an application tool identity.");let m=(await i(f.sessionID)).conversation?.tools;if(!m?.schemas.
418
- some(({function:C})=>C.name===u))throw new Error("This conversation has no authorization for that native tool.");let h=await fetch(
412
+ schemas.some(({function:h})=>h.name===u):f?.nativeTools))throw new Error(xe);u==="bash"&&f.commandWrapper&&(d.args.command=
413
+ Rt(f.commandWrapper,d.args.command))},"shell.env":async({sessionID:u,cwd:l},d)=>{let f=u?await i(u):L(await s(),l);f?.conversation?.
414
+ nativeTools&&Object.assign(d.env,f.env)},"tool.definition":({toolID:u},l)=>{let d=o.get(u);d&&(l.jsonSchema=d.parameters)},
415
+ tool:Object.fromEntries([...o].map(([u,l])=>[u,{description:l.description,args:l.parameters.properties,async execute(d,f){
416
+ if(!f.callID||!f.sessionID||!f.messageID)throw new Error("OpenCode did not supply an application tool identity.");let m=(await i(
417
+ f.sessionID)).conversation?.tools;if(!m?.schemas.some(({function:C})=>C.name===u))throw new Error(xe);let h=await fetch(
419
418
  m.url,{method:"POST",signal:f.abort,headers:{authorization:`Bearer ${m.token}`,"content-type":"application/json"},body:JSON.
420
419
  stringify({sessionId:f.sessionID,messageId:f.messageID,id:f.callID,name:u,input:d})}),g=await h.json();if(!h.ok)throw new Error(
421
- g.error||"The application tool request failed.");return JSON.stringify(g)}}]))}}var ra=new URL("./../../../../@jskit-ai/assistant-core/src/server/conversation/openCodeProcess.js",import.meta.url).href;var ia=256*1024;var aa=2*1024*1024;var ca=Object.fromEntries(xe.map(t=>[t.name,"allow"]));var yn=xe.map(({name:t,description:e,parameters:n})=>({type:"function",function:{name:t,description:e,parameters:n}}));import{vibe64Driver as En}from"@local/vibe64-genesis/server/promptContext";function w(t=""){return String(t??"").trim()}
422
- async function Me(){return z(w(process.env.VIBE64_OPENCODE_SESSION_ENV_REGISTRY))}async function On(t=""){return L(await Me(),
420
+ g.error||"The application tool request failed.");return JSON.stringify(g)}}]))}}var la=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 bn=xt.map(({name:t,description:e,parameters:n})=>({type:"function",function:{name:t,description:e,parameters:n}}));import{vibe64Driver as vn}from"@local/vibe64-genesis/server/promptContext";function w(t=""){return String(t??"").trim()}
421
+ async function Me(){return z(w(process.env.VIBE64_OPENCODE_SESSION_ENV_REGISTRY))}async function In(t=""){return L(await Me(),
423
422
  t)}async function F(t="",e=null){try{return await $(await Me(),t,e)}catch(n){throw n.code==="assistant_opencode_parent_u\
424
423
  nverified"?new Error("Vibe64 could not verify the subagent's parent session."):n}}function Re(t,e){return!!(e?.helperModelId&&
425
- t===`vibe64-helper-${e.modelProviderId}`)}function W(t=""){return`'${String(t??"").replaceAll("'",`'"'"'`)}'`}function Sn(){
424
+ t===`vibe64-helper-${e.modelProviderId}`)}function W(t=""){return`'${String(t??"").replaceAll("'",`'"'"'`)}'`}function An(){
426
425
  return"printf '%s\\n' 'vibe64_agent_control_unavailable: Session command control is unavailable. Reconnect the assistant.\
427
- ' >&2; exit 126"}function Rt(t="",e=null){let n=String(t),r=w(e?.env?.VIBE64_WRAPPER);if(!r)return n;let o=`${W(r)} '`;if(!n.
426
+ ' >&2; exit 126"}function Mt(t="",e=null){let n=String(t),r=w(e?.env?.VIBE64_WRAPPER);if(!r)return n;let o=`${W(r)} '`;if(!n.
428
427
  startsWith(o)||!n.endsWith("'"))return n;let s=n.slice(o.length,-1).replaceAll(`'"'"'`,"'");return`${W(r)} ${W(s)}`===n?
429
- s:n}function Mt(t="",e=null){let n=String(t),r=Rt(n,e);for(;r!==n;)n=r,r=Rt(n,e);return n}function vn(t="",e=null){let n=w(
430
- e?.env?.VIBE64_WRAPPER);if(!n)return Sn();let r=Mt(t,e);return[W(n),W(r)].join(" ")}var ja=async({client:t}={})=>{let e=await J(
428
+ s:n}function Dt(t="",e=null){let n=String(t),r=Mt(n,e);for(;r!==n;)n=r,r=Mt(n,e);return n}function _n(t="",e=null){let n=w(
429
+ e?.env?.VIBE64_WRAPPER);if(!n)return An();let r=Dt(t,e);return[W(n),W(r)].join(" ")}var ka=async({client:t}={})=>{let e=await J(
431
430
  {client:t,registryPath:w(process.env.VIBE64_OPENCODE_SESSION_ENV_REGISTRY),resolveHostInstructions:async n=>{let r=await F(
432
431
  n,t);if(!r?.promptContext)return{conversation:r?.conversation,instructions:null};let{workdir:o,promptContext:s}=r;return s.
433
- scope==="learning"?{conversation:r.conversation,instructions:{identity:JSON.stringify(s),placement:"append",read:()=>s.instructions}}:
434
- s.scope==="ephemeral"?{conversation:r.conversation,instructions:{identity:JSON.stringify(s),placement:"replace",read:()=>En(
435
- s)}}:{conversation:r.conversation,instructions:{placement:"append",read:()=>{let i=gn(new URL("../../bin/vibe64-genesis-\
436
- host-context",import.meta.resolve("@local/vibe64-genesis/server/promptContext")));return new Promise((a,c)=>{let u=wn(i,
432
+ scope==="ephemeral"?{conversation:r.conversation,instructions:{identity:JSON.stringify(s),placement:"replace",read:()=>vn(
433
+ s)}}:{conversation:r.conversation,instructions:{placement:"append",read:()=>{let i=On(new URL("../../bin/vibe64-genesis-\
434
+ host-context",import.meta.resolve("@local/vibe64-genesis/server/promptContext")));return new Promise((a,c)=>{let u=En(i,
437
435
  ["--instructions"],{cwd:o,timeout:3e4,maxBuffer:262144,encoding:"utf8"},(l,d)=>{l?c(new Error("Project instructions coul\
438
436
  d not be loaded. Retry the conversation.",{cause:l})):a(d)});u.stdin.on("error",()=>{}),u.stdin.end(JSON.stringify({workdir:o,
439
437
  promptContext:s}))})}}}}});return{...e,"chat.message":async(n={},r={})=>{if(!w(n.agent).startsWith("vibe64-helper-"))return;
@@ -444,12 +442,12 @@ modelProviderId||n.model?.id!==o.helperModelId))throw new Error("This helper is
444
442
  cted AI account.");k(n,r)},"experimental.chat.messages.transform":async(...n)=>{let r=n[1]||{},o=Array.isArray(r.messages)?
445
443
  r.messages:[],s=await Me();r.messages=await Promise.all(o.map(async i=>{let a=s.find(l=>w(l?.upstreamSessionId)===w(i?.info?.
446
444
  sessionID))||await F(i?.info?.sessionID,t);if(!a||!Array.isArray(i?.parts))return i;let c=!1,u=i.parts.map(l=>{if(l?.type!==
447
- "tool"||!["bash","shell"].includes(w(l.tool).toLowerCase())||typeof l?.state?.input?.command!="string")return l;let d=Mt(
445
+ "tool"||!["bash","shell"].includes(w(l.tool).toLowerCase())||typeof l?.state?.input?.command!="string")return l;let d=Dt(
448
446
  l.state.input.command,a);return d===l.state.input.command?l:(c=!0,{...l,state:{...l.state,input:{...l.state.input,command:d}}})});
449
- return c?{...i,parts:u}:i}))},"shell.env":async(n={},r={})=>{let o=await On(n.cwd);if(!o)return;if(o.conversation)return e["\
447
+ return c?{...i,parts:u}:i}))},"shell.env":async(n={},r={})=>{let o=await In(n.cwd);if(!o)return;if(o.conversation)return e["\
450
448
  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.
451
449
  isArray(r.env)?r.env:{};r.env=i,Object.assign(i,s);let a=Array.isArray(o.pathEntries)?o.pathEntries.map(w).filter(Boolean):
452
- [];i.PATH=[...a,w(s.PATH),w(process.env.PATH)].filter(Boolean).join(bn.delimiter)},"tool.execute.before":async(n={},r={})=>{
450
+ [];i.PATH=[...a,w(s.PATH),w(process.env.PATH)].filter(Boolean).join(Sn.delimiter)},"tool.execute.before":async(n={},r={})=>{
453
451
  let o=await F(n.sessionID||n.sessionId,t);if(!o)throw new Error("Vibe64 could not verify this conversation's tool access\
454
452
  . Reconnect the assistant.");if(o.conversation)return e["tool.execute.before"](n,r);if(o.promptContext?.scope==="ephemer\
455
453
  al")throw new Error("Tools are unavailable in this host conversation. Use only the supplied context.");if(n.tool==="task"){
@@ -457,4 +455,4 @@ if(w(r.args?.subagent_type).startsWith("vibe64-helper-")&&!Re(r.args.subagent_ty
457
455
  belonging to this session's selected AI account.");if(w(r.args?.task_id)){let i=await F(r.args.task_id,t);if(!o||i?.upstreamSessionId!==
458
456
  o.upstreamSessionId)throw new Error("This helper conversation does not belong to the current session.")}}if(!["bash","sh\
459
457
  ell"].includes(w(n.tool).toLowerCase()))return;let s=r.args&&typeof r.args=="object"&&!Array.isArray(r.args)?r.args:null;
460
- !s||typeof s.command!="string"||(s.command=vn(s.command,o))}}};export{ja as Vibe64SessionEnvironment};
458
+ !s||typeof s.command!="string"||(s.command=_n(s.command,o))}}};export{ka as Vibe64SessionEnvironment};