@cursor/july 0.1.20 → 0.1.22

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 (216) hide show
  1. package/dist/bin/agent-serve.js +0 -0
  2. package/dist/channels/github/instrument.d.ts +20 -0
  3. package/dist/channels/github/instrument.d.ts.map +1 -0
  4. package/dist/channels/slack/api.d.ts +2 -0
  5. package/dist/channels/slack/api.d.ts.map +1 -1
  6. package/dist/channels/slack/api.js +3 -0
  7. package/dist/channels/slack/bot-mentions.d.ts +108 -0
  8. package/dist/channels/slack/bot-mentions.d.ts.map +1 -0
  9. package/dist/channels/slack/bot-mentions.js +264 -0
  10. package/dist/channels/slack/dispatch.d.ts +6 -0
  11. package/dist/channels/slack/dispatch.d.ts.map +1 -1
  12. package/dist/channels/slack/dispatch.js +24 -3
  13. package/dist/channels/slack/inbound.d.ts +10 -1
  14. package/dist/channels/slack/inbound.d.ts.map +1 -1
  15. package/dist/channels/slack/inbound.js +12 -4
  16. package/dist/channels/slack/index.d.ts +1 -0
  17. package/dist/channels/slack/index.d.ts.map +1 -1
  18. package/dist/channels/slack/index.js +1 -0
  19. package/dist/channels/slack/slack-channel.d.ts.map +1 -1
  20. package/dist/channels/slack/slack-channel.js +61 -22
  21. package/dist/channels/slack/types.d.ts +69 -0
  22. package/dist/channels/slack/types.d.ts.map +1 -1
  23. package/dist/docs/404.html +1 -1
  24. package/dist/docs/ab.html +2 -2
  25. package/dist/docs/assets/{app.T-5ImnM3.js → app.BKNKMLp4.js} +1 -1
  26. package/dist/docs/assets/chunks/@localSearchIndexroot.YFE6WoMB.js +1 -0
  27. package/dist/docs/assets/chunks/{VPLocalSearchBox.OMGMWH6H.js → VPLocalSearchBox.sOSfEZR6.js} +1 -1
  28. package/dist/docs/assets/chunks/{theme.DLg4yB4D.js → theme.BvCHT5lj.js} +2 -2
  29. package/dist/docs/building-with-agents.html +2 -2
  30. package/dist/docs/concepts.html +2 -2
  31. package/dist/docs/deployment.html +2 -2
  32. package/dist/docs/evals.html +2 -2
  33. package/dist/docs/example-agents/approval-buddy.html +2 -2
  34. package/dist/docs/example-agents/benny.html +2 -2
  35. package/dist/docs/example-agents/bugbot.html +2 -2
  36. package/dist/docs/example-agents/codebase-wiki.html +2 -2
  37. package/dist/docs/example-agents/codeowners-review.html +2 -2
  38. package/dist/docs/example-agents/concierge.html +2 -2
  39. package/dist/docs/example-agents/fsd.html +2 -2
  40. package/dist/docs/example-agents/index.html +2 -2
  41. package/dist/docs/example-agents/knowledge-base.html +2 -2
  42. package/dist/docs/example-agents/oncall.html +2 -2
  43. package/dist/docs/example-agents/security-reviewer.html +2 -2
  44. package/dist/docs/example-agents/slack-agent.html +2 -2
  45. package/dist/docs/example-agents/weather-agent.html +2 -2
  46. package/dist/docs/guides/agent-to-agent.html +2 -2
  47. package/dist/docs/guides/cloud-runtime.html +2 -2
  48. package/dist/docs/guides/github.html +2 -2
  49. package/dist/docs/guides/human-in-the-loop.html +2 -2
  50. package/dist/docs/guides/mcp-oauth.html +2 -2
  51. package/dist/docs/guides/slack.html +2 -2
  52. package/dist/docs/guides/webhooks.html +2 -2
  53. package/dist/docs/hillclimbing.html +2 -2
  54. package/dist/docs/index.html +2 -2
  55. package/dist/docs/quickstart.html +2 -2
  56. package/dist/docs/reference/agent-config.html +2 -2
  57. package/dist/docs/reference/channels.html +2 -2
  58. package/dist/docs/reference/cli.html +2 -2
  59. package/dist/docs/reference/connections.html +2 -2
  60. package/dist/docs/reference/hooks.html +2 -2
  61. package/dist/docs/reference/http-api.html +2 -2
  62. package/dist/docs/reference/instructions.html +2 -2
  63. package/dist/docs/reference/playground.html +2 -2
  64. package/dist/docs/reference/project-layout.html +2 -2
  65. package/dist/docs/reference/prompt.html +2 -2
  66. package/dist/docs/reference/schedules.html +2 -2
  67. package/dist/docs/reference/sessions.html +2 -2
  68. package/dist/docs/reference/skills.html +2 -2
  69. package/dist/docs/reference/subagents.html +2 -2
  70. package/dist/docs/reference/tools.html +2 -2
  71. package/dist/docs/scaffolding-agents.html +2 -2
  72. package/dist/docs/storage.html +2 -2
  73. package/dist/docs/troubleshooting.html +2 -2
  74. package/dist/internal/json-dir-store.d.ts +32 -0
  75. package/dist/internal/json-dir-store.d.ts.map +1 -0
  76. package/dist/internal/json-dir-store.js +100 -0
  77. package/dist/internal/local-env.d.ts +6 -4
  78. package/dist/internal/local-env.d.ts.map +1 -1
  79. package/dist/internal/local-env.js +14 -6
  80. package/dist/internal/resolved-connections.d.ts +1 -1
  81. package/dist/internal/resolved-connections.d.ts.map +1 -1
  82. package/dist/internal/resolved-connections.js +10 -0
  83. package/dist/internal/session-engine.d.ts +4 -1
  84. package/dist/internal/session-engine.d.ts.map +1 -1
  85. package/dist/internal/session-engine.js +13 -2
  86. package/dist/playground/assets/index-CjOQ4hN9.css +1 -0
  87. package/dist/playground/assets/index-dshZQJCp.js +85 -0
  88. package/dist/playground/index.html +2 -2
  89. package/dist/types.d.ts +7 -0
  90. package/dist/types.d.ts.map +1 -1
  91. package/dist/types.js +9 -0
  92. package/package.json +24 -24
  93. package/src/bin/agent-serve.version.test.ts +62 -0
  94. package/src/channels/github/api.test.ts +64 -0
  95. package/src/channels/github/auth.test.ts +105 -0
  96. package/src/channels/github/cursor-account.test.ts +204 -0
  97. package/src/channels/github/forward.test.ts +457 -0
  98. package/src/channels/github/github.test.ts +937 -0
  99. package/src/channels/github/replay.test.ts +179 -0
  100. package/src/channels/slack/api.post-message.test.ts +148 -0
  101. package/src/channels/slack/api.ts +5 -0
  102. package/src/channels/slack/approvals.test.ts +328 -0
  103. package/src/channels/slack/block-actions.test.ts +452 -0
  104. package/src/channels/slack/bot-mentions.test.ts +267 -0
  105. package/src/channels/slack/bot-mentions.ts +339 -0
  106. package/src/channels/slack/channel-watch.test.ts +363 -0
  107. package/src/channels/slack/cursor-account.test.ts +253 -0
  108. package/src/channels/slack/defaults.final-post.test.ts +182 -0
  109. package/src/channels/slack/dispatch.test.ts +795 -0
  110. package/src/channels/slack/dispatch.ts +27 -1
  111. package/src/channels/slack/eval-directive.test.ts +273 -0
  112. package/src/channels/slack/inbound.ts +25 -4
  113. package/src/channels/slack/index.ts +1 -0
  114. package/src/channels/slack/message-body.test.ts +54 -0
  115. package/src/channels/slack/nudge-store.test.ts +143 -0
  116. package/src/channels/slack/slack-channel.ts +66 -8
  117. package/src/channels/slack/slack.test.ts +391 -0
  118. package/src/channels/slack/stop.test.ts +23 -0
  119. package/src/channels/slack/thread-context.test.ts +202 -0
  120. package/src/channels/slack/types.ts +71 -0
  121. package/src/evals/assertions.test.ts +580 -0
  122. package/src/evals/expect.test.ts +144 -0
  123. package/src/evals/judge.test.ts +181 -0
  124. package/src/evals/loaders.test.ts +132 -0
  125. package/src/evals/matchers.test.ts +95 -0
  126. package/src/evals/reporters.test.ts +303 -0
  127. package/src/evals/run-facts.test.ts +259 -0
  128. package/src/internal/ab-snapshot.test.ts +325 -0
  129. package/src/internal/approval-gate.test.ts +49 -0
  130. package/src/internal/approvals.integration.test.ts +383 -0
  131. package/src/internal/authored-loaders.test.ts +31 -0
  132. package/src/internal/builtin-tools/reminders.test.ts +201 -0
  133. package/src/internal/channel-route-schema.test.ts +294 -0
  134. package/src/internal/chat-attach.test.ts +262 -0
  135. package/src/internal/cli-deploy.test.ts +1991 -0
  136. package/src/internal/cli-mcp.test.ts +789 -0
  137. package/src/internal/cli-skills.test.ts +133 -0
  138. package/src/internal/cli-slack.test.ts +1647 -0
  139. package/src/internal/cloud-merge.test.ts +74 -0
  140. package/src/internal/cron.test.ts +22 -0
  141. package/src/internal/cursor/account-mcp.test.ts +807 -0
  142. package/src/internal/cursor/backend-client.test.ts +591 -0
  143. package/src/internal/cursor/credentials.test.ts +351 -0
  144. package/src/internal/cursor/github-credentials.test.ts +136 -0
  145. package/src/internal/cursor-account-mcp-auth.test.ts +310 -0
  146. package/src/internal/cursor-account.integration.test.ts +441 -0
  147. package/src/internal/cursor-event-relay.test.ts +746 -0
  148. package/src/internal/cursor-github-credentials.integration.test.ts +271 -0
  149. package/src/internal/cursor-slack-relay.test.ts +525 -0
  150. package/src/internal/deploy-source.test.ts +111 -0
  151. package/src/internal/discovery.builtin-tools.test.ts +94 -0
  152. package/src/internal/discovery.concurrency.test.ts +60 -0
  153. package/src/internal/discovery.cursor-account.test.ts +133 -0
  154. package/src/internal/discovery.cwd.test.ts +83 -0
  155. package/src/internal/discovery.hosting.test.ts +80 -0
  156. package/src/internal/discovery.identity.test.ts +44 -0
  157. package/src/internal/docs-site.test.ts +66 -0
  158. package/src/internal/duration.test.ts +29 -0
  159. package/src/internal/eval-judge-model.test.ts +187 -0
  160. package/src/internal/eval-run-store.cancel.test.ts +142 -0
  161. package/src/internal/eval-run-store.storage.test.ts +211 -0
  162. package/src/internal/eval-runner.http.test.ts +403 -0
  163. package/src/internal/eval-runner.run.test.ts +928 -0
  164. package/src/internal/evals-client.test.ts +307 -0
  165. package/src/internal/event-mapper.test.ts +243 -0
  166. package/src/internal/github-fanout.test.ts +213 -0
  167. package/src/internal/handleAgentServeTrigger.test.ts +179 -0
  168. package/src/internal/host-kv.test.ts +82 -0
  169. package/src/internal/host-platforms.test.ts +126 -0
  170. package/src/internal/http-channel.test.ts +402 -0
  171. package/src/internal/init-project.test.ts +269 -0
  172. package/src/internal/install-cursor-skills.test.ts +262 -0
  173. package/src/internal/local-env.test.ts +120 -0
  174. package/src/internal/local-env.ts +14 -6
  175. package/src/internal/log-ring.test.ts +31 -0
  176. package/src/internal/logs-client.test.ts +350 -0
  177. package/src/internal/mcp-endpoint.test.ts +436 -0
  178. package/src/internal/mcp-host.test.ts +298 -0
  179. package/src/internal/mcp-oauth.test.ts +148 -0
  180. package/src/internal/net.test.ts +17 -0
  181. package/src/internal/peer-connections.test.ts +128 -0
  182. package/src/internal/peer-mcp.integration.test.ts +289 -0
  183. package/src/internal/playground/toolchain.test.ts +53 -0
  184. package/src/internal/playground-cli.test.ts +187 -0
  185. package/src/internal/playground-proxy.test.ts +376 -0
  186. package/src/internal/prompt-context.integration.test.ts +232 -0
  187. package/src/internal/prompt-context.test.ts +127 -0
  188. package/src/internal/reminder-runner.test.ts +390 -0
  189. package/src/internal/reminder-store.test.ts +53 -0
  190. package/src/internal/request-headers.test.ts +27 -0
  191. package/src/internal/resolve-prod-target.test.ts +787 -0
  192. package/src/internal/resolved-connections.test.ts +295 -0
  193. package/src/internal/resolved-connections.ts +18 -1
  194. package/src/internal/router.test.ts +57 -0
  195. package/src/internal/sdk-runner.test.ts +290 -0
  196. package/src/internal/session-engine.coalesce.test.ts +169 -0
  197. package/src/internal/session-engine.concurrency.test.ts +250 -0
  198. package/src/internal/session-engine.host-oauth-mcp.test.ts +110 -0
  199. package/src/internal/session-engine.interrupt.test.ts +577 -0
  200. package/src/internal/session-engine.storage.test.ts +547 -0
  201. package/src/internal/session-engine.ts +15 -1
  202. package/src/internal/session-urls.test.ts +28 -0
  203. package/src/internal/sessions-client.test.ts +518 -0
  204. package/src/internal/storage-coordinator.test.ts +517 -0
  205. package/src/internal/tool-call.test.ts +458 -0
  206. package/src/internal/tool-result.test.ts +52 -0
  207. package/src/internal/trajectory.approvals.test.ts +83 -0
  208. package/src/internal/trajectory.subagents.test.ts +198 -0
  209. package/src/internal/turn-governor.test.ts +137 -0
  210. package/src/internal/update-check.test.ts +485 -0
  211. package/src/internal/workspace.test.ts +81 -0
  212. package/src/storage-backends/cursor-hosted.test.ts +121 -0
  213. package/src/types.ts +12 -0
  214. package/dist/docs/assets/chunks/@localSearchIndexroot.CvejISXF.js +0 -1
  215. package/dist/playground/assets/index-CidizGZv.css +0 -1
  216. package/dist/playground/assets/index-CuiAKZaP.js +0 -85
@@ -9,9 +9,9 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.Bj-IXa5W.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.T-5ImnM3.js"></script>
12
+ <script type="module" src="/docs/assets/app.BKNKMLp4.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/docs/assets/chunks/theme.DLg4yB4D.js">
14
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.BvCHT5lj.js">
15
15
  <link rel="modulepreload" href="/docs/assets/chunks/framework.CAZyNGu9.js">
16
16
  <link rel="modulepreload" href="/docs/assets/example-agents_weather-agent.md.C9Qv-W0o.lean.js">
17
17
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -9,9 +9,9 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.Bj-IXa5W.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.T-5ImnM3.js"></script>
12
+ <script type="module" src="/docs/assets/app.BKNKMLp4.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/docs/assets/chunks/theme.DLg4yB4D.js">
14
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.BvCHT5lj.js">
15
15
  <link rel="modulepreload" href="/docs/assets/chunks/framework.CAZyNGu9.js">
16
16
  <link rel="modulepreload" href="/docs/assets/guides_agent-to-agent.md.Bpzgq2Pq.lean.js">
17
17
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -9,9 +9,9 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.Bj-IXa5W.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.T-5ImnM3.js"></script>
12
+ <script type="module" src="/docs/assets/app.BKNKMLp4.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/docs/assets/chunks/theme.DLg4yB4D.js">
14
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.BvCHT5lj.js">
15
15
  <link rel="modulepreload" href="/docs/assets/chunks/framework.CAZyNGu9.js">
16
16
  <link rel="modulepreload" href="/docs/assets/guides_cloud-runtime.md.gVzabdQL.lean.js">
17
17
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -9,9 +9,9 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.Bj-IXa5W.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.T-5ImnM3.js"></script>
12
+ <script type="module" src="/docs/assets/app.BKNKMLp4.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/docs/assets/chunks/theme.DLg4yB4D.js">
14
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.BvCHT5lj.js">
15
15
  <link rel="modulepreload" href="/docs/assets/chunks/framework.CAZyNGu9.js">
16
16
  <link rel="modulepreload" href="/docs/assets/guides_github.md.DOOCpqsW.lean.js">
17
17
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -9,9 +9,9 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.Bj-IXa5W.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.T-5ImnM3.js"></script>
12
+ <script type="module" src="/docs/assets/app.BKNKMLp4.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/docs/assets/chunks/theme.DLg4yB4D.js">
14
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.BvCHT5lj.js">
15
15
  <link rel="modulepreload" href="/docs/assets/chunks/framework.CAZyNGu9.js">
16
16
  <link rel="modulepreload" href="/docs/assets/guides_human-in-the-loop.md.DlUqsp1S.lean.js">
17
17
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -9,9 +9,9 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.Bj-IXa5W.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.T-5ImnM3.js"></script>
12
+ <script type="module" src="/docs/assets/app.BKNKMLp4.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/docs/assets/chunks/theme.DLg4yB4D.js">
14
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.BvCHT5lj.js">
15
15
  <link rel="modulepreload" href="/docs/assets/chunks/framework.CAZyNGu9.js">
16
16
  <link rel="modulepreload" href="/docs/assets/guides_mcp-oauth.md.Dd8EgSem.lean.js">
17
17
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -9,9 +9,9 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.Bj-IXa5W.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.T-5ImnM3.js"></script>
12
+ <script type="module" src="/docs/assets/app.BKNKMLp4.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/docs/assets/chunks/theme.DLg4yB4D.js">
14
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.BvCHT5lj.js">
15
15
  <link rel="modulepreload" href="/docs/assets/chunks/framework.CAZyNGu9.js">
16
16
  <link rel="modulepreload" href="/docs/assets/guides_slack.md.D_xFKlnF.lean.js">
17
17
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -9,9 +9,9 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.Bj-IXa5W.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.T-5ImnM3.js"></script>
12
+ <script type="module" src="/docs/assets/app.BKNKMLp4.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/docs/assets/chunks/theme.DLg4yB4D.js">
14
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.BvCHT5lj.js">
15
15
  <link rel="modulepreload" href="/docs/assets/chunks/framework.CAZyNGu9.js">
16
16
  <link rel="modulepreload" href="/docs/assets/guides_webhooks.md.B1EswtUu.lean.js">
17
17
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -9,9 +9,9 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.Bj-IXa5W.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.T-5ImnM3.js"></script>
12
+ <script type="module" src="/docs/assets/app.BKNKMLp4.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/docs/assets/chunks/theme.DLg4yB4D.js">
14
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.BvCHT5lj.js">
15
15
  <link rel="modulepreload" href="/docs/assets/chunks/framework.CAZyNGu9.js">
16
16
  <link rel="modulepreload" href="/docs/assets/hillclimbing.md.DHNast08.lean.js">
17
17
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -9,9 +9,9 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.Bj-IXa5W.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.T-5ImnM3.js"></script>
12
+ <script type="module" src="/docs/assets/app.BKNKMLp4.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/docs/assets/chunks/theme.DLg4yB4D.js">
14
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.BvCHT5lj.js">
15
15
  <link rel="modulepreload" href="/docs/assets/chunks/framework.CAZyNGu9.js">
16
16
  <link rel="modulepreload" href="/docs/assets/index.md.t0TM2Qzz.lean.js">
17
17
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -9,9 +9,9 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.Bj-IXa5W.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.T-5ImnM3.js"></script>
12
+ <script type="module" src="/docs/assets/app.BKNKMLp4.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/docs/assets/chunks/theme.DLg4yB4D.js">
14
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.BvCHT5lj.js">
15
15
  <link rel="modulepreload" href="/docs/assets/chunks/framework.CAZyNGu9.js">
16
16
  <link rel="modulepreload" href="/docs/assets/quickstart.md.BU6Iwi_9.lean.js">
17
17
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -9,9 +9,9 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.Bj-IXa5W.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.T-5ImnM3.js"></script>
12
+ <script type="module" src="/docs/assets/app.BKNKMLp4.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/docs/assets/chunks/theme.DLg4yB4D.js">
14
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.BvCHT5lj.js">
15
15
  <link rel="modulepreload" href="/docs/assets/chunks/framework.CAZyNGu9.js">
16
16
  <link rel="modulepreload" href="/docs/assets/reference_agent-config.md.DrW2JUM8.lean.js">
17
17
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -9,9 +9,9 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.Bj-IXa5W.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.T-5ImnM3.js"></script>
12
+ <script type="module" src="/docs/assets/app.BKNKMLp4.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/docs/assets/chunks/theme.DLg4yB4D.js">
14
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.BvCHT5lj.js">
15
15
  <link rel="modulepreload" href="/docs/assets/chunks/framework.CAZyNGu9.js">
16
16
  <link rel="modulepreload" href="/docs/assets/reference_channels.md.DdmiKgqf.lean.js">
17
17
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -9,9 +9,9 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.Bj-IXa5W.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.T-5ImnM3.js"></script>
12
+ <script type="module" src="/docs/assets/app.BKNKMLp4.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/docs/assets/chunks/theme.DLg4yB4D.js">
14
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.BvCHT5lj.js">
15
15
  <link rel="modulepreload" href="/docs/assets/chunks/framework.CAZyNGu9.js">
16
16
  <link rel="modulepreload" href="/docs/assets/reference_cli.md.DnYfr5V2.lean.js">
17
17
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -9,9 +9,9 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.Bj-IXa5W.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.T-5ImnM3.js"></script>
12
+ <script type="module" src="/docs/assets/app.BKNKMLp4.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/docs/assets/chunks/theme.DLg4yB4D.js">
14
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.BvCHT5lj.js">
15
15
  <link rel="modulepreload" href="/docs/assets/chunks/framework.CAZyNGu9.js">
16
16
  <link rel="modulepreload" href="/docs/assets/reference_connections.md.B9Q3TOve.lean.js">
17
17
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -9,9 +9,9 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.Bj-IXa5W.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.T-5ImnM3.js"></script>
12
+ <script type="module" src="/docs/assets/app.BKNKMLp4.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/docs/assets/chunks/theme.DLg4yB4D.js">
14
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.BvCHT5lj.js">
15
15
  <link rel="modulepreload" href="/docs/assets/chunks/framework.CAZyNGu9.js">
16
16
  <link rel="modulepreload" href="/docs/assets/reference_hooks.md.DyLVfE1O.lean.js">
17
17
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -9,9 +9,9 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.Bj-IXa5W.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.T-5ImnM3.js"></script>
12
+ <script type="module" src="/docs/assets/app.BKNKMLp4.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/docs/assets/chunks/theme.DLg4yB4D.js">
14
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.BvCHT5lj.js">
15
15
  <link rel="modulepreload" href="/docs/assets/chunks/framework.CAZyNGu9.js">
16
16
  <link rel="modulepreload" href="/docs/assets/reference_http-api.md.BncLd3PZ.lean.js">
17
17
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -9,9 +9,9 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.Bj-IXa5W.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.T-5ImnM3.js"></script>
12
+ <script type="module" src="/docs/assets/app.BKNKMLp4.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/docs/assets/chunks/theme.DLg4yB4D.js">
14
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.BvCHT5lj.js">
15
15
  <link rel="modulepreload" href="/docs/assets/chunks/framework.CAZyNGu9.js">
16
16
  <link rel="modulepreload" href="/docs/assets/reference_instructions.md.CgoV-YEb.lean.js">
17
17
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -9,9 +9,9 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.Bj-IXa5W.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.T-5ImnM3.js"></script>
12
+ <script type="module" src="/docs/assets/app.BKNKMLp4.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/docs/assets/chunks/theme.DLg4yB4D.js">
14
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.BvCHT5lj.js">
15
15
  <link rel="modulepreload" href="/docs/assets/chunks/framework.CAZyNGu9.js">
16
16
  <link rel="modulepreload" href="/docs/assets/reference_playground.md.CPZhfYaO.lean.js">
17
17
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -9,9 +9,9 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.Bj-IXa5W.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.T-5ImnM3.js"></script>
12
+ <script type="module" src="/docs/assets/app.BKNKMLp4.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/docs/assets/chunks/theme.DLg4yB4D.js">
14
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.BvCHT5lj.js">
15
15
  <link rel="modulepreload" href="/docs/assets/chunks/framework.CAZyNGu9.js">
16
16
  <link rel="modulepreload" href="/docs/assets/reference_project-layout.md.Bd_CKtNS.lean.js">
17
17
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -9,9 +9,9 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.Bj-IXa5W.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.T-5ImnM3.js"></script>
12
+ <script type="module" src="/docs/assets/app.BKNKMLp4.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/docs/assets/chunks/theme.DLg4yB4D.js">
14
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.BvCHT5lj.js">
15
15
  <link rel="modulepreload" href="/docs/assets/chunks/framework.CAZyNGu9.js">
16
16
  <link rel="modulepreload" href="/docs/assets/reference_prompt.md.BaiweQxE.lean.js">
17
17
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -9,9 +9,9 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.Bj-IXa5W.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.T-5ImnM3.js"></script>
12
+ <script type="module" src="/docs/assets/app.BKNKMLp4.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/docs/assets/chunks/theme.DLg4yB4D.js">
14
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.BvCHT5lj.js">
15
15
  <link rel="modulepreload" href="/docs/assets/chunks/framework.CAZyNGu9.js">
16
16
  <link rel="modulepreload" href="/docs/assets/reference_schedules.md.w_F2mXB6.lean.js">
17
17
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -9,9 +9,9 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.Bj-IXa5W.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.T-5ImnM3.js"></script>
12
+ <script type="module" src="/docs/assets/app.BKNKMLp4.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/docs/assets/chunks/theme.DLg4yB4D.js">
14
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.BvCHT5lj.js">
15
15
  <link rel="modulepreload" href="/docs/assets/chunks/framework.CAZyNGu9.js">
16
16
  <link rel="modulepreload" href="/docs/assets/reference_sessions.md.DLd6mvbv.lean.js">
17
17
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -9,9 +9,9 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.Bj-IXa5W.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.T-5ImnM3.js"></script>
12
+ <script type="module" src="/docs/assets/app.BKNKMLp4.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/docs/assets/chunks/theme.DLg4yB4D.js">
14
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.BvCHT5lj.js">
15
15
  <link rel="modulepreload" href="/docs/assets/chunks/framework.CAZyNGu9.js">
16
16
  <link rel="modulepreload" href="/docs/assets/reference_skills.md.B_jHN7JL.lean.js">
17
17
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -9,9 +9,9 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.Bj-IXa5W.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.T-5ImnM3.js"></script>
12
+ <script type="module" src="/docs/assets/app.BKNKMLp4.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/docs/assets/chunks/theme.DLg4yB4D.js">
14
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.BvCHT5lj.js">
15
15
  <link rel="modulepreload" href="/docs/assets/chunks/framework.CAZyNGu9.js">
16
16
  <link rel="modulepreload" href="/docs/assets/reference_subagents.md.zWAMNfi1.lean.js">
17
17
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -9,9 +9,9 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.Bj-IXa5W.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.T-5ImnM3.js"></script>
12
+ <script type="module" src="/docs/assets/app.BKNKMLp4.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/docs/assets/chunks/theme.DLg4yB4D.js">
14
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.BvCHT5lj.js">
15
15
  <link rel="modulepreload" href="/docs/assets/chunks/framework.CAZyNGu9.js">
16
16
  <link rel="modulepreload" href="/docs/assets/reference_tools.md.BRSDnTbN.lean.js">
17
17
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -9,9 +9,9 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.Bj-IXa5W.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.T-5ImnM3.js"></script>
12
+ <script type="module" src="/docs/assets/app.BKNKMLp4.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/docs/assets/chunks/theme.DLg4yB4D.js">
14
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.BvCHT5lj.js">
15
15
  <link rel="modulepreload" href="/docs/assets/chunks/framework.CAZyNGu9.js">
16
16
  <link rel="modulepreload" href="/docs/assets/scaffolding-agents.md.C3pTrmoE.lean.js">
17
17
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -9,9 +9,9 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.Bj-IXa5W.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.T-5ImnM3.js"></script>
12
+ <script type="module" src="/docs/assets/app.BKNKMLp4.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/docs/assets/chunks/theme.DLg4yB4D.js">
14
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.BvCHT5lj.js">
15
15
  <link rel="modulepreload" href="/docs/assets/chunks/framework.CAZyNGu9.js">
16
16
  <link rel="modulepreload" href="/docs/assets/storage.md.DRTdnFvd.lean.js">
17
17
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -9,9 +9,9 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.Bj-IXa5W.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.T-5ImnM3.js"></script>
12
+ <script type="module" src="/docs/assets/app.BKNKMLp4.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/docs/assets/chunks/theme.DLg4yB4D.js">
14
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.BvCHT5lj.js">
15
15
  <link rel="modulepreload" href="/docs/assets/chunks/framework.CAZyNGu9.js">
16
16
  <link rel="modulepreload" href="/docs/assets/troubleshooting.md.CmQkmnzC.lean.js">
17
17
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Small filesystem helpers for one-JSON-file-per-id persistence under a
3
+ * project-relative directory (eval run snapshots, A/B aggregate snapshots).
4
+ */
5
+ export declare function assertNonEmptyDir(dir: string, fnName: string): string;
6
+ /** Resolve `dir` against `projectRoot` when relative. */
7
+ export declare function resolveProjectRelativeDir(args: {
8
+ dir: string;
9
+ projectRoot: string;
10
+ }): string;
11
+ /** List `*.json` basenames in `root` (any order). Missing dir → []. */
12
+ export declare function listJsonBasenames(root: string): Promise<string[]>;
13
+ /**
14
+ * Read and JSON.parse every `*.json` file under `root`. Missing dir → [].
15
+ * Unreadable or corrupt files are skipped so one bad snapshot cannot wipe
16
+ * the rest of the history.
17
+ */
18
+ export declare function readJsonDir<T>(root: string, options?: {
19
+ sortBasenames?: "asc" | "desc";
20
+ }): Promise<T[]>;
21
+ /** Atomically write JSON under `root`/`fileName` (temp file + rename). */
22
+ export declare function writeJsonFile(args: {
23
+ root: string;
24
+ fileName: string;
25
+ value: unknown;
26
+ }): Promise<void>;
27
+ /** Best-effort delete; ignores missing files. */
28
+ export declare function deleteFileInDir(args: {
29
+ root: string;
30
+ fileName: string;
31
+ }): Promise<void>;
32
+ //# sourceMappingURL=json-dir-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-dir-store.d.ts","sourceRoot":"","sources":["../../src/internal/json-dir-store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAKrE;AAED,yDAAyD;AACzD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAET;AAWD,uEAAuE;AACvE,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAWvE;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;CAAE,GAC3C,OAAO,CAAC,CAAC,EAAE,CAAC,CAiBd;AAED,0EAA0E;AAC1E,wBAAsB,aAAa,CAAC,IAAI,EAAE;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB,GAAG,OAAO,CAAC,IAAI,CAAC,CAUhB;AAED,iDAAiD;AACjD,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CAMhB"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Small filesystem helpers for one-JSON-file-per-id persistence under a
3
+ * project-relative directory (eval run snapshots, A/B aggregate snapshots).
4
+ */
5
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
6
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
7
+ return new (P || (P = Promise))(function (resolve, reject) {
8
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
9
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
10
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
11
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
12
+ });
13
+ };
14
+ import { randomBytes } from "node:crypto";
15
+ import { mkdir, readdir, readFile, rename, rm, writeFile, } from "node:fs/promises";
16
+ import { isAbsolute, join } from "node:path";
17
+ export function assertNonEmptyDir(dir, fnName) {
18
+ if (typeof dir !== "string" || dir.trim() === "") {
19
+ throw new Error(`${fnName}: dir must be a non-empty string`);
20
+ }
21
+ return dir;
22
+ }
23
+ /** Resolve `dir` against `projectRoot` when relative. */
24
+ export function resolveProjectRelativeDir(args) {
25
+ return isAbsolute(args.dir) ? args.dir : join(args.projectRoot, args.dir);
26
+ }
27
+ function isEnoent(error) {
28
+ return (error !== null &&
29
+ typeof error === "object" &&
30
+ "code" in error &&
31
+ error.code === "ENOENT");
32
+ }
33
+ /** List `*.json` basenames in `root` (any order). Missing dir → []. */
34
+ export function listJsonBasenames(root) {
35
+ return __awaiter(this, void 0, void 0, function* () {
36
+ let names;
37
+ try {
38
+ names = yield readdir(root);
39
+ }
40
+ catch (error) {
41
+ if (isEnoent(error)) {
42
+ return [];
43
+ }
44
+ throw error;
45
+ }
46
+ return names.filter((name) => name.endsWith(".json"));
47
+ });
48
+ }
49
+ /**
50
+ * Read and JSON.parse every `*.json` file under `root`. Missing dir → [].
51
+ * Unreadable or corrupt files are skipped so one bad snapshot cannot wipe
52
+ * the rest of the history.
53
+ */
54
+ export function readJsonDir(root, options) {
55
+ return __awaiter(this, void 0, void 0, function* () {
56
+ let names = yield listJsonBasenames(root);
57
+ if ((options === null || options === void 0 ? void 0 : options.sortBasenames) === "asc") {
58
+ names = [...names].sort();
59
+ }
60
+ else if ((options === null || options === void 0 ? void 0 : options.sortBasenames) === "desc") {
61
+ names = [...names].sort().reverse();
62
+ }
63
+ const out = [];
64
+ for (const name of names) {
65
+ try {
66
+ const raw = yield readFile(join(root, name), "utf8");
67
+ out.push(JSON.parse(raw));
68
+ }
69
+ catch (_a) {
70
+ // skip corrupt / unreadable files
71
+ }
72
+ }
73
+ return out;
74
+ });
75
+ }
76
+ /** Atomically write JSON under `root`/`fileName` (temp file + rename). */
77
+ export function writeJsonFile(args) {
78
+ return __awaiter(this, void 0, void 0, function* () {
79
+ const { root, fileName, value } = args;
80
+ // Serialize before any await so callers get a stable snapshot even if they
81
+ // mutate `value` afterward.
82
+ const body = `${JSON.stringify(value, null, 2)}\n`;
83
+ yield mkdir(root, { recursive: true });
84
+ const finalPath = join(root, fileName);
85
+ const tmpPath = `${finalPath}.${randomBytes(4).toString("hex")}.tmp`;
86
+ yield writeFile(tmpPath, body, "utf8");
87
+ yield rename(tmpPath, finalPath);
88
+ });
89
+ }
90
+ /** Best-effort delete; ignores missing files. */
91
+ export function deleteFileInDir(args) {
92
+ return __awaiter(this, void 0, void 0, function* () {
93
+ try {
94
+ yield rm(join(args.root, args.fileName), { force: true });
95
+ }
96
+ catch (_a) {
97
+ // ignore
98
+ }
99
+ });
100
+ }
@@ -1,8 +1,10 @@
1
1
  /**
2
- * Loads an agent directory's `.env.local` (and each immediate child's,
3
- * for multi-agent hosts) into process.env. Real env always wins
4
- * `process.loadEnvFile` never overrides. Values a previous call loaded are
5
- * refreshed, so a reload picks up edits made since.
2
+ * Loads an agent directory's env files (and each immediate child's, for
3
+ * multi-agent hosts) into process.env. Load order per directory is
4
+ * `.env.local` then `.env` — `process.loadEnvFile` never overrides, so
5
+ * real env wins over both, and `.env.local` wins over checked-in `.env`
6
+ * defaults. Values a previous call loaded are refreshed, so a reload
7
+ * picks up edits made since.
6
8
  */
7
9
  export declare function loadAgentLocalEnv(dir: string): string[];
8
10
  //# sourceMappingURL=local-env.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"local-env.d.ts","sourceRoot":"","sources":["../../src/internal/local-env.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAsCvD"}
1
+ {"version":3,"file":"local-env.d.ts","sourceRoot":"","sources":["../../src/internal/local-env.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CA4CvD"}