@namzu/sdk 61.4.0 → 62.1.0

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 (338) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/dist/agents/QueryAgent.d.ts.map +1 -1
  3. package/dist/agents/QueryAgent.js +2 -0
  4. package/dist/agents/QueryAgent.js.map +1 -1
  5. package/dist/bridge/a2a/mapper.d.ts.map +1 -1
  6. package/dist/bridge/a2a/mapper.js +2 -0
  7. package/dist/bridge/a2a/mapper.js.map +1 -1
  8. package/dist/bridge/acp/permission.d.ts +8 -0
  9. package/dist/bridge/acp/permission.d.ts.map +1 -1
  10. package/dist/bridge/acp/permission.js.map +1 -1
  11. package/dist/bridge/acp/server.d.ts.map +1 -1
  12. package/dist/bridge/acp/server.js +8 -1
  13. package/dist/bridge/acp/server.js.map +1 -1
  14. package/dist/bridge/sse/mapper.d.ts.map +1 -1
  15. package/dist/bridge/sse/mapper.js +13 -0
  16. package/dist/bridge/sse/mapper.js.map +1 -1
  17. package/dist/constants/tools/index.d.ts +2 -0
  18. package/dist/constants/tools/index.d.ts.map +1 -1
  19. package/dist/constants/tools/index.js +23 -0
  20. package/dist/constants/tools/index.js.map +1 -1
  21. package/dist/contracts/session/api.d.ts +1 -1
  22. package/dist/contracts/session/api.d.ts.map +1 -1
  23. package/dist/eval/harness-protection.js +1 -1
  24. package/dist/eval/harness-protection.js.map +1 -1
  25. package/dist/learning/cycle.d.ts +5 -3
  26. package/dist/learning/cycle.d.ts.map +1 -1
  27. package/dist/learning/cycle.js +11 -13
  28. package/dist/learning/cycle.js.map +1 -1
  29. package/dist/learning/guidance.d.ts +74 -0
  30. package/dist/learning/guidance.d.ts.map +1 -0
  31. package/dist/learning/guidance.js +259 -0
  32. package/dist/learning/guidance.js.map +1 -0
  33. package/dist/learning/skill.d.ts +2 -2
  34. package/dist/learning/skill.d.ts.map +1 -1
  35. package/dist/learning/skill.js +6 -6
  36. package/dist/learning/skill.js.map +1 -1
  37. package/dist/learning/store.d.ts.map +1 -1
  38. package/dist/learning/store.js +6 -6
  39. package/dist/learning/store.js.map +1 -1
  40. package/dist/pals/communication/ingress-schema.d.ts +8 -8
  41. package/dist/pals/communication/schema.d.ts +2 -2
  42. package/dist/peers/client.d.ts +2 -3
  43. package/dist/peers/client.d.ts.map +1 -1
  44. package/dist/peers/client.js +2 -3
  45. package/dist/peers/client.js.map +1 -1
  46. package/dist/peers/endpoint.d.ts +1 -2
  47. package/dist/peers/endpoint.d.ts.map +1 -1
  48. package/dist/peers/endpoint.js +1 -2
  49. package/dist/peers/endpoint.js.map +1 -1
  50. package/dist/peers/protocol.d.ts.map +1 -1
  51. package/dist/peers/protocol.js +1 -0
  52. package/dist/peers/protocol.js.map +1 -1
  53. package/dist/prompt/coding-agent-doctrine.d.ts +4 -4
  54. package/dist/prompt/coding-agent-doctrine.d.ts.map +1 -1
  55. package/dist/prompt/coding-agent-doctrine.js +5 -3
  56. package/dist/prompt/coding-agent-doctrine.js.map +1 -1
  57. package/dist/prompt/index.d.ts +0 -4
  58. package/dist/prompt/index.d.ts.map +1 -1
  59. package/dist/prompt/index.js +0 -2
  60. package/dist/prompt/index.js.map +1 -1
  61. package/dist/provider/fallback.d.ts.map +1 -1
  62. package/dist/provider/fallback.js +3 -0
  63. package/dist/provider/fallback.js.map +1 -1
  64. package/dist/provider/idle-timeout.d.ts.map +1 -1
  65. package/dist/provider/idle-timeout.js +5 -0
  66. package/dist/provider/idle-timeout.js.map +1 -1
  67. package/dist/provider/model-window-suffix.d.ts.map +1 -1
  68. package/dist/provider/model-window-suffix.js +1 -0
  69. package/dist/provider/model-window-suffix.js.map +1 -1
  70. package/dist/provider/retry.d.ts.map +1 -1
  71. package/dist/provider/retry.js +5 -0
  72. package/dist/provider/retry.js.map +1 -1
  73. package/dist/provider/step-stopped.d.ts +19 -0
  74. package/dist/provider/step-stopped.d.ts.map +1 -0
  75. package/dist/provider/step-stopped.js +25 -0
  76. package/dist/provider/step-stopped.js.map +1 -0
  77. package/dist/provider/token-budget.d.ts.map +1 -1
  78. package/dist/provider/token-budget.js +6 -1
  79. package/dist/provider/token-budget.js.map +1 -1
  80. package/dist/public-runtime.d.ts +4 -15
  81. package/dist/public-runtime.d.ts.map +1 -1
  82. package/dist/public-runtime.js +4 -15
  83. package/dist/public-runtime.js.map +1 -1
  84. package/dist/public-tools.d.ts +0 -2
  85. package/dist/public-tools.d.ts.map +1 -1
  86. package/dist/public-tools.js +0 -2
  87. package/dist/public-tools.js.map +1 -1
  88. package/dist/public-types.d.ts +4 -22
  89. package/dist/public-types.d.ts.map +1 -1
  90. package/dist/runtime/query/iteration/index.d.ts +17 -0
  91. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  92. package/dist/runtime/query/iteration/index.js +176 -6
  93. package/dist/runtime/query/iteration/index.js.map +1 -1
  94. package/dist/runtime/query/iteration/phases/per-call-review.d.ts.map +1 -1
  95. package/dist/runtime/query/iteration/phases/per-call-review.js +4 -5
  96. package/dist/runtime/query/iteration/phases/per-call-review.js.map +1 -1
  97. package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
  98. package/dist/runtime/query/iteration/phases/tool-review.js +6 -3
  99. package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
  100. package/dist/runtime/query/iteration/recorded-context.d.ts +1 -1
  101. package/dist/runtime/query/iteration/recorded-context.d.ts.map +1 -1
  102. package/dist/runtime/query/iteration/recorded-context.js +2 -1
  103. package/dist/runtime/query/iteration/recorded-context.js.map +1 -1
  104. package/dist/runtime/query/iteration/stream-turn.d.ts +9 -1
  105. package/dist/runtime/query/iteration/stream-turn.d.ts.map +1 -1
  106. package/dist/runtime/query/iteration/stream-turn.js +48 -2
  107. package/dist/runtime/query/iteration/stream-turn.js.map +1 -1
  108. package/dist/runtime/query/resume-pending.d.ts.map +1 -1
  109. package/dist/runtime/query/resume-pending.js +7 -4
  110. package/dist/runtime/query/resume-pending.js.map +1 -1
  111. package/dist/runtime/query/review-policy.d.ts +40 -8
  112. package/dist/runtime/query/review-policy.d.ts.map +1 -1
  113. package/dist/runtime/query/review-policy.js +139 -24
  114. package/dist/runtime/query/review-policy.js.map +1 -1
  115. package/dist/runtime/query/turn/completion-audit.d.ts +32 -0
  116. package/dist/runtime/query/turn/completion-audit.d.ts.map +1 -0
  117. package/dist/runtime/query/turn/completion-audit.js +56 -0
  118. package/dist/runtime/query/turn/completion-audit.js.map +1 -0
  119. package/dist/runtime/query/turn/stall-monitor.d.ts +78 -0
  120. package/dist/runtime/query/turn/stall-monitor.d.ts.map +1 -0
  121. package/dist/runtime/query/turn/stall-monitor.js +101 -0
  122. package/dist/runtime/query/turn/stall-monitor.js.map +1 -0
  123. package/dist/session/paths.d.ts +1 -2
  124. package/dist/session/paths.d.ts.map +1 -1
  125. package/dist/session/paths.js +1 -4
  126. package/dist/session/paths.js.map +1 -1
  127. package/dist/store/index.d.ts +2 -0
  128. package/dist/store/index.d.ts.map +1 -1
  129. package/dist/store/index.js +1 -0
  130. package/dist/store/index.js.map +1 -1
  131. package/dist/tools/builtins/bash.d.ts +2 -1
  132. package/dist/tools/builtins/bash.d.ts.map +1 -1
  133. package/dist/tools/builtins/bash.js +5 -2
  134. package/dist/tools/builtins/bash.js.map +1 -1
  135. package/dist/tools/builtins/content-fingerprint.d.ts +13 -0
  136. package/dist/tools/builtins/content-fingerprint.d.ts.map +1 -1
  137. package/dist/tools/builtins/content-fingerprint.js +25 -0
  138. package/dist/tools/builtins/content-fingerprint.js.map +1 -1
  139. package/dist/tools/builtins/edit.d.ts.map +1 -1
  140. package/dist/tools/builtins/edit.js +7 -2
  141. package/dist/tools/builtins/edit.js.map +1 -1
  142. package/dist/tools/builtins/shell-read-credit.d.ts +15 -0
  143. package/dist/tools/builtins/shell-read-credit.d.ts.map +1 -0
  144. package/dist/tools/builtins/shell-read-credit.js +161 -0
  145. package/dist/tools/builtins/shell-read-credit.js.map +1 -0
  146. package/dist/tools/paths.d.ts +15 -2
  147. package/dist/tools/paths.d.ts.map +1 -1
  148. package/dist/tools/paths.js +17 -2
  149. package/dist/tools/paths.js.map +1 -1
  150. package/dist/turn/evidence-recall.d.ts +1 -1
  151. package/dist/turn/evidence-recall.d.ts.map +1 -1
  152. package/dist/turn/evidence-recall.js +5 -14
  153. package/dist/turn/evidence-recall.js.map +1 -1
  154. package/dist/turn/memory-recall.d.ts.map +1 -1
  155. package/dist/turn/memory-recall.js +18 -4
  156. package/dist/turn/memory-recall.js.map +1 -1
  157. package/dist/turn/reporter.d.ts.map +1 -1
  158. package/dist/turn/reporter.js +5 -0
  159. package/dist/turn/reporter.js.map +1 -1
  160. package/dist/types/acp/index.d.ts +6 -0
  161. package/dist/types/acp/index.d.ts.map +1 -1
  162. package/dist/types/agent/base.d.ts +4 -0
  163. package/dist/types/agent/base.d.ts.map +1 -1
  164. package/dist/types/hitl/index.d.ts +8 -0
  165. package/dist/types/hitl/index.d.ts.map +1 -1
  166. package/dist/types/hitl/index.js.map +1 -1
  167. package/dist/types/ids/index.d.ts +1 -1
  168. package/dist/types/message/index.d.ts +1 -1
  169. package/dist/types/message/index.d.ts.map +1 -1
  170. package/dist/types/message/index.js +1 -0
  171. package/dist/types/message/index.js.map +1 -1
  172. package/dist/types/provider/interface.d.ts +12 -0
  173. package/dist/types/provider/interface.d.ts.map +1 -1
  174. package/dist/types/session/config.d.ts +25 -0
  175. package/dist/types/session/config.d.ts.map +1 -1
  176. package/dist/types/session/events.d.ts +19 -0
  177. package/dist/types/session/events.d.ts.map +1 -1
  178. package/dist/types/session/events.js.map +1 -1
  179. package/dist/types/session/prepare-step.d.ts +16 -0
  180. package/dist/types/session/prepare-step.d.ts.map +1 -1
  181. package/dist/types/session/records.d.ts.map +1 -1
  182. package/dist/types/session/records.js +3 -0
  183. package/dist/types/session/records.js.map +1 -1
  184. package/dist/types/session/turn.d.ts +1 -1
  185. package/dist/types/session/turn.d.ts.map +1 -1
  186. package/dist/types/session/turn.js.map +1 -1
  187. package/package.json +1 -1
  188. package/src/agents/QueryAgent.ts +2 -0
  189. package/src/bridge/a2a/mapper.ts +2 -0
  190. package/src/bridge/acp/permission.ts +8 -0
  191. package/src/bridge/acp/server.ts +7 -1
  192. package/src/bridge/sse/mapper.ts +13 -0
  193. package/src/constants/tools/index.ts +27 -0
  194. package/src/contracts/session/api.ts +1 -0
  195. package/src/eval/harness-protection.ts +1 -1
  196. package/src/learning/cycle.ts +15 -16
  197. package/src/learning/guidance.ts +339 -0
  198. package/src/learning/skill.ts +7 -7
  199. package/src/learning/store.ts +5 -6
  200. package/src/peers/client.ts +2 -3
  201. package/src/peers/endpoint.ts +1 -2
  202. package/src/peers/protocol.ts +1 -0
  203. package/src/prompt/coding-agent-doctrine.ts +5 -3
  204. package/src/prompt/index.ts +0 -4
  205. package/src/provider/fallback.ts +7 -0
  206. package/src/provider/idle-timeout.ts +8 -0
  207. package/src/provider/model-window-suffix.ts +1 -0
  208. package/src/provider/retry.ts +8 -0
  209. package/src/provider/step-stopped.ts +27 -0
  210. package/src/provider/token-budget.ts +6 -1
  211. package/src/public-runtime.ts +7 -28
  212. package/src/public-tools.ts +0 -3
  213. package/src/public-types.ts +6 -137
  214. package/src/runtime/query/iteration/index.ts +218 -6
  215. package/src/runtime/query/iteration/phases/per-call-review.ts +7 -5
  216. package/src/runtime/query/iteration/phases/tool-review.ts +5 -3
  217. package/src/runtime/query/iteration/recorded-context.ts +2 -0
  218. package/src/runtime/query/iteration/stream-turn.ts +51 -1
  219. package/src/runtime/query/resume-pending.ts +11 -4
  220. package/src/runtime/query/review-policy.ts +157 -24
  221. package/src/runtime/query/turn/completion-audit.ts +71 -0
  222. package/src/runtime/query/turn/stall-monitor.ts +158 -0
  223. package/src/session/paths.ts +2 -6
  224. package/src/store/index.ts +2 -0
  225. package/src/tools/builtins/bash.ts +6 -2
  226. package/src/tools/builtins/content-fingerprint.ts +25 -0
  227. package/src/tools/builtins/edit.ts +11 -2
  228. package/src/tools/builtins/shell-read-credit.ts +159 -0
  229. package/src/tools/paths.ts +18 -2
  230. package/src/turn/evidence-recall.ts +7 -15
  231. package/src/turn/memory-recall.ts +26 -7
  232. package/src/turn/reporter.ts +5 -0
  233. package/src/types/acp/index.ts +6 -0
  234. package/src/types/agent/base.ts +4 -0
  235. package/src/types/hitl/index.ts +8 -0
  236. package/src/types/ids/index.ts +1 -1
  237. package/src/types/message/index.ts +1 -0
  238. package/src/types/provider/interface.ts +13 -0
  239. package/src/types/session/config.ts +27 -0
  240. package/src/types/session/events.ts +19 -0
  241. package/src/types/session/prepare-step.ts +17 -0
  242. package/src/types/session/records.ts +3 -0
  243. package/src/types/session/turn.ts +2 -1
  244. package/dist/learning/deprecated.d.ts +0 -86
  245. package/dist/learning/deprecated.d.ts.map +0 -1
  246. package/dist/learning/deprecated.js +0 -22
  247. package/dist/learning/deprecated.js.map +0 -1
  248. package/dist/manager/resident/activity.d.ts +0 -74
  249. package/dist/manager/resident/activity.d.ts.map +0 -1
  250. package/dist/manager/resident/activity.js +0 -125
  251. package/dist/manager/resident/activity.js.map +0 -1
  252. package/dist/manager/resident/agenda.d.ts +0 -167
  253. package/dist/manager/resident/agenda.d.ts.map +0 -1
  254. package/dist/manager/resident/agenda.js +0 -588
  255. package/dist/manager/resident/agenda.js.map +0 -1
  256. package/dist/manager/resident/consumption.d.ts +0 -98
  257. package/dist/manager/resident/consumption.d.ts.map +0 -1
  258. package/dist/manager/resident/consumption.js +0 -237
  259. package/dist/manager/resident/consumption.js.map +0 -1
  260. package/dist/manager/resident/delivery-window.d.ts +0 -28
  261. package/dist/manager/resident/delivery-window.d.ts.map +0 -1
  262. package/dist/manager/resident/delivery-window.js +0 -80
  263. package/dist/manager/resident/delivery-window.js.map +0 -1
  264. package/dist/manager/resident/evidence-recall.d.ts +0 -30
  265. package/dist/manager/resident/evidence-recall.d.ts.map +0 -1
  266. package/dist/manager/resident/evidence-recall.js +0 -297
  267. package/dist/manager/resident/evidence-recall.js.map +0 -1
  268. package/dist/manager/resident/history-disk.d.ts +0 -10
  269. package/dist/manager/resident/history-disk.d.ts.map +0 -1
  270. package/dist/manager/resident/history-disk.js +0 -50
  271. package/dist/manager/resident/history-disk.js.map +0 -1
  272. package/dist/manager/resident/history.d.ts +0 -115
  273. package/dist/manager/resident/history.d.ts.map +0 -1
  274. package/dist/manager/resident/history.js +0 -203
  275. package/dist/manager/resident/history.js.map +0 -1
  276. package/dist/manager/resident/host.d.ts +0 -112
  277. package/dist/manager/resident/host.d.ts.map +0 -1
  278. package/dist/manager/resident/host.js +0 -254
  279. package/dist/manager/resident/host.js.map +0 -1
  280. package/dist/manager/resident/initiative.d.ts +0 -86
  281. package/dist/manager/resident/initiative.d.ts.map +0 -1
  282. package/dist/manager/resident/initiative.js +0 -131
  283. package/dist/manager/resident/initiative.js.map +0 -1
  284. package/dist/manager/resident/loop.d.ts +0 -49
  285. package/dist/manager/resident/loop.d.ts.map +0 -1
  286. package/dist/manager/resident/loop.js +0 -75
  287. package/dist/manager/resident/loop.js.map +0 -1
  288. package/dist/manager/resident/outbox.d.ts +0 -124
  289. package/dist/manager/resident/outbox.d.ts.map +0 -1
  290. package/dist/manager/resident/outbox.js +0 -216
  291. package/dist/manager/resident/outbox.js.map +0 -1
  292. package/dist/manager/resident/proposal.d.ts +0 -65
  293. package/dist/manager/resident/proposal.d.ts.map +0 -1
  294. package/dist/manager/resident/proposal.js +0 -77
  295. package/dist/manager/resident/proposal.js.map +0 -1
  296. package/dist/manager/resident/store.d.ts +0 -108
  297. package/dist/manager/resident/store.d.ts.map +0 -1
  298. package/dist/manager/resident/store.js +0 -205
  299. package/dist/manager/resident/store.js.map +0 -1
  300. package/dist/manager/resident/tool-evidence.d.ts +0 -112
  301. package/dist/manager/resident/tool-evidence.d.ts.map +0 -1
  302. package/dist/manager/resident/tool-evidence.js +0 -289
  303. package/dist/manager/resident/tool-evidence.js.map +0 -1
  304. package/dist/prompt/resident-learning.d.ts +0 -29
  305. package/dist/prompt/resident-learning.d.ts.map +0 -1
  306. package/dist/prompt/resident-learning.js +0 -126
  307. package/dist/prompt/resident-learning.js.map +0 -1
  308. package/dist/prompt/resident-step.d.ts +0 -42
  309. package/dist/prompt/resident-step.d.ts.map +0 -1
  310. package/dist/prompt/resident-step.js +0 -137
  311. package/dist/prompt/resident-step.js.map +0 -1
  312. package/dist/tools/resident-history.d.ts +0 -12
  313. package/dist/tools/resident-history.d.ts.map +0 -1
  314. package/dist/tools/resident-history.js +0 -82
  315. package/dist/tools/resident-history.js.map +0 -1
  316. package/dist/tools/resident-tool-evidence.d.ts +0 -9
  317. package/dist/tools/resident-tool-evidence.d.ts.map +0 -1
  318. package/dist/tools/resident-tool-evidence.js +0 -61
  319. package/dist/tools/resident-tool-evidence.js.map +0 -1
  320. package/src/learning/deprecated.ts +0 -124
  321. package/src/manager/resident/activity.ts +0 -211
  322. package/src/manager/resident/agenda.ts +0 -937
  323. package/src/manager/resident/consumption.ts +0 -335
  324. package/src/manager/resident/delivery-window.ts +0 -99
  325. package/src/manager/resident/evidence-recall.ts +0 -369
  326. package/src/manager/resident/history-disk.ts +0 -63
  327. package/src/manager/resident/history.ts +0 -348
  328. package/src/manager/resident/host.ts +0 -390
  329. package/src/manager/resident/initiative.ts +0 -231
  330. package/src/manager/resident/loop.ts +0 -119
  331. package/src/manager/resident/outbox.ts +0 -341
  332. package/src/manager/resident/proposal.ts +0 -119
  333. package/src/manager/resident/store.ts +0 -279
  334. package/src/manager/resident/tool-evidence.ts +0 -455
  335. package/src/prompt/resident-learning.ts +0 -152
  336. package/src/prompt/resident-step.ts +0 -182
  337. package/src/tools/resident-history.ts +0 -88
  338. package/src/tools/resident-tool-evidence.ts +0 -72
@@ -1,205 +0,0 @@
1
- import { createHash, randomUUID } from 'node:crypto';
2
- import { join } from 'node:path';
3
- import { z } from 'zod';
4
- import { DiskRevisionRecordStore, revisionFileSegment, } from '../../store/kv/revision-record-store.js';
5
- import { defineSchema } from '../../store/schema.js';
6
- import { asTenantId } from '../../utils/id.js';
7
- const text = z.string().trim().min(1).max(8_000);
8
- const time = z.number().int().nonnegative().safe();
9
- const MAX_WAKE_EVIDENCE_CHARS = 16_000;
10
- const wakeEvidence = z
11
- .array(z.object({ reason: text, receivedAt: time }).readonly())
12
- .min(1)
13
- .max(16, 'Resident has 16 pending wake inputs; process them before adding more.')
14
- .refine((entries) => entries.reduce((total, entry) => total + entry.reason.length, 0) <= MAX_WAKE_EVIDENCE_CHARS, 'Resident wake evidence exceeds 16000 characters; process pending evidence before adding more.')
15
- .readonly();
16
- export const residentDecisionSchema = z.discriminatedUnion('kind', [
17
- z.object({ kind: z.literal('wait'), summary: text, wakeAt: time.nullable() }),
18
- z.object({ kind: z.literal('complete'), summary: text }),
19
- z.object({ kind: z.literal('blocked'), summary: text }),
20
- ]);
21
- export const residentStateSchema = z
22
- .object({
23
- tenantId: z.string().uuid(),
24
- agentKey: z.string().min(1).max(200),
25
- pursuitId: z.string().uuid().optional(),
26
- identity: text,
27
- objective: text,
28
- revision: z.number().int().positive().safe(),
29
- stepsAdmitted: time,
30
- phase: z.enum(['waiting', 'running', 'complete', 'blocked']),
31
- wakeAt: time.nullable(),
32
- reason: text,
33
- /** Accepted wake inputs, in commit order, retained until this step settles. */
34
- wakeEvidence: wakeEvidence.optional(),
35
- summary: text.nullable(),
36
- claimId: z.string().uuid().nullable(),
37
- })
38
- .superRefine((state, context) => {
39
- if ((state.phase === 'running') !== (state.claimId !== null)) {
40
- context.addIssue({
41
- code: z.ZodIssueCode.custom,
42
- message: 'Running state requires a claim.',
43
- });
44
- }
45
- if (state.phase !== 'waiting' && state.wakeAt !== null) {
46
- context.addIssue({
47
- code: z.ZodIssueCode.custom,
48
- message: 'Only waiting state may have a wake time.',
49
- });
50
- }
51
- if (state.wakeEvidence && state.phase !== 'waiting' && state.phase !== 'running') {
52
- context.addIssue({
53
- code: z.ZodIssueCode.custom,
54
- message: 'Only waiting or unresolved running work may retain wake evidence.',
55
- });
56
- }
57
- });
58
- /** Bounded addressing for local resident state. Stored scope is still validated. */
59
- export function residentKeySegment(key) {
60
- const encoded = revisionFileSegment(key);
61
- return encoded.length <= 255
62
- ? encoded
63
- : `~sha256-${createHash('sha256').update(encoded).digest('hex')}`;
64
- }
65
- /**
66
- * A competing owner advanced this resident's immutable revision.
67
- *
68
- * @deprecated Residents are deprecated and removed in the next major release. Learning (`runLearningCycle` and the other `Learning*` names) keeps working, but `runLearningCycle` still takes a resident agenda until learning gets its own activation target in the next major release; for long-running work use scheduled tasks (`LocalTaskScheduler`), session goals and background agents.
69
- */
70
- export class ResidentConflictError extends Error {
71
- constructor() {
72
- super('Resident state changed; read the current state before retrying.');
73
- this.name = 'ResidentConflictError';
74
- }
75
- }
76
- /**
77
- * @experimental Local-filesystem state for one tenant/agent key and one pursuit.
78
- * A running claim never expires automatically: a crashed step may have effects.
79
- * Uses exclusive immutable revision publication, not a read/rename lock.
80
- *
81
- * @deprecated Residents are deprecated and removed in the next major release. Learning (`runLearningCycle` and the other `Learning*` names) keeps working, but `runLearningCycle` still takes a resident agenda until learning gets its own activation target in the next major release; for long-running work use scheduled tasks (`LocalTaskScheduler`), session goals and background agents.
82
- */
83
- export class DiskResidentStore {
84
- records = new DiskRevisionRecordStore(defineSchema({ kind: 'resident', current: 2, migrations: { 1: (record) => record } }), 'resident store', (record) => record.revision);
85
- location;
86
- tenantId;
87
- agentKey;
88
- constructor(root, scope) {
89
- this.tenantId = asTenantId(scope.tenantId);
90
- this.agentKey = z.string().min(1).max(200).parse(scope.agentKey);
91
- const directory = join(root, this.tenantId, residentKeySegment(this.agentKey));
92
- this.location = {
93
- legacyPath: join(directory, 'state.json'),
94
- revisionsDir: join(directory, 'revisions'),
95
- publishLegacyProjection: false,
96
- };
97
- }
98
- checked(record) {
99
- const state = residentStateSchema.parse(record);
100
- if (state.pursuitId !== undefined ||
101
- state.tenantId !== this.tenantId ||
102
- state.agentKey !== this.agentKey) {
103
- throw new Error('Resident record does not match the bound tenant and agent.');
104
- }
105
- return Object.freeze(state);
106
- }
107
- async read() {
108
- const state = await this.records.read(this.location);
109
- return state === null ? null : this.checked(state);
110
- }
111
- async create(identity, objective) {
112
- const initial = this.checked({
113
- tenantId: this.tenantId,
114
- agentKey: this.agentKey,
115
- identity,
116
- objective,
117
- revision: 1,
118
- stepsAdmitted: 0,
119
- phase: 'waiting',
120
- wakeAt: 0,
121
- reason: 'Initial pursuit',
122
- summary: null,
123
- claimId: null,
124
- });
125
- return this.records.transact(this.location, (current) => {
126
- if (current !== null)
127
- throw new ResidentConflictError();
128
- return { record: initial, result: initial };
129
- });
130
- }
131
- async change(expected, mutate) {
132
- this.checked(expected);
133
- return this.records.transact(this.location, (record) => {
134
- if (record === null)
135
- throw new ResidentConflictError();
136
- const current = this.checked(record);
137
- if (current.revision !== expected.revision || current.claimId !== expected.claimId) {
138
- throw new ResidentConflictError();
139
- }
140
- const next = this.checked({
141
- ...mutate(current),
142
- revision: current.revision + 1,
143
- });
144
- return { record: next, result: next };
145
- });
146
- }
147
- /** Persist admission before invoking a model, tool or developer callback. */
148
- async claim(expected, now) {
149
- return this.change(expected, (state) => claimResidentState(state, now));
150
- }
151
- /** Only the exact admitted revision may settle; late owners cannot overwrite recovery. */
152
- async settle(expected, decision, now) {
153
- return this.change(expected, (state) => settleResidentState(state, decision, now));
154
- }
155
- /** Host-supplied new evidence can wake a waiting pursuit; terminal work stays terminal. */
156
- async wake(expected, reason, now) {
157
- return this.change(expected, (state) => wakeResidentState(state, reason, now));
158
- }
159
- }
160
- /** Internal transitions shared by single-pursuit and whole-agent admission. */
161
- export function claimResidentState(state, now) {
162
- time.parse(now);
163
- if (state.phase !== 'waiting' || state.wakeAt === null || state.wakeAt > now)
164
- throw new Error('Resident is not due.');
165
- return {
166
- ...state,
167
- phase: 'running',
168
- wakeAt: null,
169
- claimId: randomUUID(),
170
- stepsAdmitted: state.stepsAdmitted + 1,
171
- };
172
- }
173
- export function settleResidentState(state, decision, now) {
174
- time.parse(now);
175
- const outcome = residentDecisionSchema.parse(decision);
176
- if (outcome.kind === 'wait' && outcome.wakeAt !== null && outcome.wakeAt <= now)
177
- throw new Error('A scheduled continuation must be in the future.');
178
- if (state.phase !== 'running')
179
- throw new Error('Resident has no admitted step to settle.');
180
- // Admission alone is not acknowledgment: an interrupted step retains every
181
- // input. Only successful exact-claim settlement consumes the captured batch.
182
- const { wakeEvidence: _consumed, ...settled } = state;
183
- return {
184
- ...settled,
185
- phase: outcome.kind === 'wait' ? 'waiting' : outcome.kind,
186
- wakeAt: outcome.kind === 'wait' ? outcome.wakeAt : null,
187
- summary: outcome.summary,
188
- reason: 'Scheduled continuation',
189
- claimId: null,
190
- };
191
- }
192
- export function wakeResidentState(state, reason, now) {
193
- time.parse(now);
194
- const evidence = text.parse(reason);
195
- if (state.phase !== 'waiting')
196
- throw new Error('Only a waiting resident can be woken.');
197
- // Never evict an accepted input to admit another. Backpressure leaves both
198
- // the durable state and its revision untouched, so the sender can retry later.
199
- const pending = wakeEvidence.parse([
200
- ...(state.wakeEvidence ?? []),
201
- { reason: evidence, receivedAt: now },
202
- ]);
203
- return { ...state, wakeAt: now, reason: evidence, wakeEvidence: pending };
204
- }
205
- //# sourceMappingURL=store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/manager/resident/store.ts"],"names":[],"mappings":"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"}
@@ -1,112 +0,0 @@
1
- import type { SessionEvidenceReadOptions, SessionEvidenceReadResult, SessionEvidenceSearchResult, SessionEvidenceSource } from '../../store/evidence/types.js';
2
- import type { ResidentHistoryMatch, ResidentHistoryScope, ResidentHistorySource } from './history.js';
3
- /**
4
- * @experimental Host authority for one pursuit, project and admission boundary.
5
- *
6
- * @deprecated Residents are deprecated and removed in the next major release. Learning (`runLearningCycle` and the other `Learning*` names) keeps working, but `runLearningCycle` still takes a resident agenda until learning gets its own activation target in the next major release; for long-running work use scheduled tasks (`LocalTaskScheduler`), session goals and background agents.
7
- */
8
- export interface ResidentToolEvidenceScope extends ResidentHistoryScope {
9
- readonly projectId: string;
10
- }
11
- /**
12
- * @experimental Identity of an agenda-verified settlement, not a fabricated transcript.
13
- *
14
- * @deprecated Residents are deprecated and removed in the next major release. Learning (`runLearningCycle` and the other `Learning*` names) keeps working, but `runLearningCycle` still takes a resident agenda until learning gets its own activation target in the next major release; for long-running work use scheduled tasks (`LocalTaskScheduler`), session goals and background agents.
15
- */
16
- export type ResidentSettledInvocation = Pick<ResidentHistoryMatch, 'revision' | 'claimId' | 'step' | 'kind'>;
17
- /**
18
- * @experimental Settlement is checked before the host resolves the attempt's invocation.
19
- *
20
- * @deprecated Residents are deprecated and removed in the next major release. Learning (`runLearningCycle` and the other `Learning*` names) keeps working, but `runLearningCycle` still takes a resident agenda until learning gets its own activation target in the next major release; for long-running work use scheduled tasks (`LocalTaskScheduler`), session goals and background agents.
21
- */
22
- export interface ResidentToolEvidenceOptions {
23
- readonly history: ResidentHistorySource;
24
- readonly projectId: string;
25
- /** Host-enforced upper bound for resolveTurn's document reads, charged in full.
26
- * Required only when an operation supplies maxReadBytes. Zero asserts no
27
- * document reads. This is a declared bound, not a measured receipt.
28
- */
29
- readonly resolutionReadBytes?: number;
30
- /**
31
- * The evidence of the one turn that performed a settled invocation. Its
32
- * scope must name that turn (`turnId` present): a source spanning a whole
33
- * session could answer with another turn's records.
34
- */
35
- readonly resolveTurn: (settled: ResidentSettledInvocation, signal?: AbortSignal) => Promise<SessionEvidenceSource>;
36
- }
37
- /**
38
- * @experimental An optional shared ceiling covers history, resolution and turn evidence.
39
- *
40
- * @deprecated Residents are deprecated and removed in the next major release. Learning (`runLearningCycle` and the other `Learning*` names) keeps working, but `runLearningCycle` still takes a resident agenda until learning gets its own activation target in the next major release; for long-running work use scheduled tasks (`LocalTaskScheduler`), session goals and background agents.
41
- */
42
- export interface ResidentToolEvidenceSearchOptions {
43
- readonly query?: string;
44
- /** Token discovery: 1–16 terms, matched case-insensitively. Combined query/filter JSON ≤512 UTF-8 bytes. */
45
- readonly terms?: readonly string[];
46
- /** Omit successful retrieval copies before they consume candidate slots. */
47
- readonly excludeSuccessfulTools?: readonly string[];
48
- /** Omit query/terms/filter to continue the exact captured search. */
49
- readonly cursor?: string;
50
- /** With a token cursor, continue using a strict subset of its terms. Requires
51
- * supportsTermRefinement. Scope, exclusions and the original cursor stay intact.
52
- */
53
- readonly refineTerms?: readonly string[];
54
- readonly maxReadBytes?: number;
55
- }
56
- /**
57
- * @experimental Tool records from at most one settled invocation per bounded search page.
58
- *
59
- * @deprecated Residents are deprecated and removed in the next major release. Learning (`runLearningCycle` and the other `Learning*` names) keeps working, but `runLearningCycle` still takes a resident agenda until learning gets its own activation target in the next major release; for long-running work use scheduled tasks (`LocalTaskScheduler`), session goals and background agents.
60
- */
61
- export interface ResidentToolEvidenceSearchResult {
62
- readonly scope: ResidentToolEvidenceScope;
63
- readonly revision: number | null;
64
- readonly claimId: string | null;
65
- readonly evidence: SessionEvidenceSearchResult | null;
66
- readonly nextCursor: string | null;
67
- readonly incomplete: boolean;
68
- readonly unavailableRevisions: readonly number[];
69
- readonly historyBytes: number;
70
- /** Present for bounded calls: history + declared resolution + turn evidence reads.
71
- * Failed source reads without a receipt conservatively consume the remainder.
72
- */
73
- readonly chargedBytes?: number;
74
- }
75
- /**
76
- * @experimental The revision is authorized anew on every read, including after restart.
77
- *
78
- * @deprecated Residents are deprecated and removed in the next major release. Learning (`runLearningCycle` and the other `Learning*` names) keeps working, but `runLearningCycle` still takes a resident agenda until learning gets its own activation target in the next major release; for long-running work use scheduled tasks (`LocalTaskScheduler`), session goals and background agents.
79
- */
80
- export interface ResidentToolEvidenceReadOptions extends Omit<SessionEvidenceReadOptions, 'maxReadBytes'> {
81
- readonly revision: number;
82
- /** Shared operation ceiling, at most 8 MiB; reserves at least 1 MiB for turn evidence reads. */
83
- readonly maxReadBytes?: number;
84
- }
85
- /**
86
- * @experimental Exact invocation text plus the settled claim that authorized access.
87
- *
88
- * @deprecated Residents are deprecated and removed in the next major release. Learning (`runLearningCycle` and the other `Learning*` names) keeps working, but `runLearningCycle` still takes a resident agenda until learning gets its own activation target in the next major release; for long-running work use scheduled tasks (`LocalTaskScheduler`), session goals and background agents.
89
- */
90
- export interface ResidentToolEvidenceReadResult extends SessionEvidenceReadResult {
91
- readonly revision: number;
92
- readonly claimId: string;
93
- readonly chargedBytes?: number;
94
- }
95
- /**
96
- * @experimental A host must bind tool access to the executing turn, not just this source.
97
- *
98
- * @deprecated Residents are deprecated and removed in the next major release. Learning (`runLearningCycle` and the other `Learning*` names) keeps working, but `runLearningCycle` still takes a resident agenda until learning gets its own activation target in the next major release; for long-running work use scheduled tasks (`LocalTaskScheduler`), session goals and background agents.
99
- */
100
- export interface ResidentToolEvidenceSource {
101
- readonly scope: ResidentToolEvidenceScope;
102
- readonly supportsTermRefinement?: boolean;
103
- search(options?: ResidentToolEvidenceSearchOptions, signal?: AbortSignal): Promise<ResidentToolEvidenceSearchResult>;
104
- read(options: ResidentToolEvidenceReadOptions, signal?: AbortSignal): Promise<ResidentToolEvidenceReadResult>;
105
- }
106
- /**
107
- * @experimental Reuses the immutable agenda boundary; it never enumerates arbitrary sessions.
108
- *
109
- * @deprecated Residents are deprecated and removed in the next major release. Learning (`runLearningCycle` and the other `Learning*` names) keeps working, but `runLearningCycle` still takes a resident agenda until learning gets its own activation target in the next major release; for long-running work use scheduled tasks (`LocalTaskScheduler`), session goals and background agents.
110
- */
111
- export declare function createResidentToolEvidenceSource(options: ResidentToolEvidenceOptions): ResidentToolEvidenceSource;
112
- //# sourceMappingURL=tool-evidence.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-evidence.d.ts","sourceRoot":"","sources":["../../../src/manager/resident/tool-evidence.ts"],"names":[],"mappings":"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"}
@@ -1,289 +0,0 @@
1
- import { z } from 'zod';
2
- import { evidenceSearchInput, evidenceTermRefinement, evidenceTermsSchema, } from '../../store/evidence/search-input.js';
3
- import { evidenceExclusionsSchema } from '../../store/evidence/selection.js';
4
- /**
5
- * @experimental Reuses the immutable agenda boundary; it never enumerates arbitrary sessions.
6
- *
7
- * @deprecated Residents are deprecated and removed in the next major release. Learning (`runLearningCycle` and the other `Learning*` names) keeps working, but `runLearningCycle` still takes a resident agenda until learning gets its own activation target in the next major release; for long-running work use scheduled tasks (`LocalTaskScheduler`), session goals and background agents.
8
- */
9
- export function createResidentToolEvidenceSource(options) {
10
- const { history, resolveTurn } = options;
11
- const resolutionReadBytes = z
12
- .number()
13
- .int()
14
- .min(0)
15
- .max(8 * 1024 * 1024)
16
- .optional()
17
- .parse(options.resolutionReadBytes);
18
- function operationBudget(maxReadBytes) {
19
- if (maxReadBytes === undefined)
20
- return undefined;
21
- if (resolutionReadBytes === undefined)
22
- throw new Error('Bounded resident retrieval requires a declared resolution read bound.');
23
- const limit = z
24
- .number()
25
- .int()
26
- .positive()
27
- .max(8 * 1024 * 1024)
28
- .parse(maxReadBytes);
29
- const historyLimit = limit - resolutionReadBytes - 1024 * 1024;
30
- if (historyLimit < 1)
31
- throw new Error('Resident read budget cannot fit history, resolution and turn evidence reads.');
32
- let charged = 0;
33
- return {
34
- historyLimit,
35
- get remaining() {
36
- return limit - charged;
37
- },
38
- get chargedBytes() {
39
- return charged;
40
- },
41
- charge(bytes, allowance) {
42
- if (!Number.isSafeInteger(bytes) ||
43
- bytes < 0 ||
44
- bytes > allowance ||
45
- charged + bytes > limit)
46
- throw new Error('Resident evidence returned an invalid read budget receipt.');
47
- charged += bytes;
48
- },
49
- resolve() {
50
- charged += resolutionReadBytes;
51
- },
52
- exhaust() {
53
- charged = limit;
54
- },
55
- };
56
- }
57
- const scope = Object.freeze({
58
- ...history.scope,
59
- projectId: z.string().uuid().parse(options.projectId),
60
- });
61
- const revision = z.number().int().min(1).max(scope.throughRevision).safe();
62
- const searchSchema = z
63
- .object({
64
- query: z.string().max(256).optional(),
65
- terms: evidenceTermsSchema,
66
- excludeSuccessfulTools: evidenceExclusionsSchema.optional(),
67
- })
68
- .strict();
69
- function searchInput(value) {
70
- const parsed = searchSchema.parse(value);
71
- const search = evidenceSearchInput({
72
- ...parsed,
73
- ...(parsed.terms ? { matchMode: 'token' } : {}),
74
- });
75
- const result = {
76
- ...(search.terms ? { terms: search.terms } : { query: search.query }),
77
- ...(parsed.excludeSuccessfulTools?.length
78
- ? { excludeSuccessfulTools: [...new Set(parsed.excludeSuccessfulTools)].sort() }
79
- : {}),
80
- };
81
- if ((search.terms || result.excludeSuccessfulTools) &&
82
- Buffer.byteLength(JSON.stringify(result)) > 512)
83
- throw new Error('Resident search terms and filters exceed 512 UTF-8 bytes.');
84
- return result;
85
- }
86
- const cursorBase = {
87
- scope: z.literal(JSON.stringify(scope)),
88
- revision,
89
- turnCursor: z.string().max(4096).optional(),
90
- };
91
- const cursorSchema = z.discriminatedUnion('version', [
92
- z.object({ ...cursorBase, version: z.literal(1), query: z.string().max(256) }).strict(),
93
- z.object({ ...cursorBase, version: z.literal(2), search: searchSchema }).strict(),
94
- ]);
95
- const encode = (value) => {
96
- const encoded = Buffer.from(JSON.stringify(cursorSchema.parse(value))).toString('base64url');
97
- if (encoded.length > 8192)
98
- throw new Error('Resident continuation exceeds its encoded bound.');
99
- return encoded;
100
- };
101
- async function turn(entry, signal) {
102
- signal?.throwIfAborted();
103
- const source = await resolveTurn(entry, signal);
104
- signal?.throwIfAborted();
105
- if (source.scope.tenantId !== scope.tenantId || source.scope.projectId !== scope.projectId)
106
- throw new Error('Historical invocation belongs to a different owner.');
107
- const owner = z
108
- .object({
109
- tenantId: z.string().uuid(),
110
- projectId: z.string().uuid(),
111
- sessionId: z.string().uuid(),
112
- turnId: z.string().uuid(),
113
- })
114
- .parse(source.scope);
115
- return { source, owner };
116
- }
117
- function assertOwner(page, owner, signal) {
118
- signal?.throwIfAborted();
119
- if (!page?.scope ||
120
- Object.entries(owner).some(([key, value]) => page.scope[key] !== value))
121
- throw new Error('Historical evidence result belongs to a different owner.');
122
- }
123
- return Object.freeze({
124
- scope,
125
- supportsTermRefinement: true,
126
- async search(input = {}, signal) {
127
- signal?.throwIfAborted();
128
- const budget = operationBudget(input.maxReadBytes);
129
- const prior = input.cursor
130
- ? cursorSchema.parse(JSON.parse(Buffer.from(z.string().max(8192).parse(input.cursor), 'base64url').toString('utf8')))
131
- : undefined;
132
- const supplied = input.query !== undefined ||
133
- input.terms !== undefined ||
134
- input.excludeSuccessfulTools !== undefined;
135
- const previous = prior
136
- ? searchInput(prior.version === 1 ? { query: prior.query } : prior.search)
137
- : undefined;
138
- const search = supplied || !previous
139
- ? searchInput({
140
- ...(input.query !== undefined ? { query: input.query } : {}),
141
- ...(input.terms !== undefined ? { terms: input.terms } : {}),
142
- ...(input.excludeSuccessfulTools !== undefined
143
- ? { excludeSuccessfulTools: input.excludeSuccessfulTools }
144
- : {}),
145
- })
146
- : previous;
147
- if (previous && JSON.stringify(previous) !== JSON.stringify(search))
148
- throw new Error('Resident tool search query changed.');
149
- const refined = input.refineTerms !== undefined
150
- ? searchInput({
151
- terms: evidenceTermRefinement({
152
- terms: search.terms,
153
- cursor: input.cursor,
154
- matchMode: 'token',
155
- caseSensitive: false,
156
- }, input.refineTerms),
157
- excludeSuccessfulTools: search.excludeSuccessfulTools,
158
- })
159
- : undefined;
160
- const cursor = prior ??
161
- (search.terms || search.excludeSuccessfulTools
162
- ? {
163
- version: 2,
164
- scope: JSON.stringify(scope),
165
- search,
166
- revision: scope.throughRevision,
167
- }
168
- : {
169
- version: 1,
170
- scope: JSON.stringify(scope),
171
- query: search.query ?? '',
172
- revision: scope.throughRevision,
173
- });
174
- let selected = null;
175
- const advancedCursor = refined ? { ...cursor, version: 2, search: refined } : cursor;
176
- let nextRevision = null;
177
- let historyBytes = 0;
178
- const unavailable = new Set();
179
- if (cursor.turnCursor) {
180
- const page = await history.read({
181
- revision: cursor.revision,
182
- part: 0,
183
- ...(budget ? { maxReadBytes: budget.historyLimit } : {}),
184
- }, signal);
185
- signal?.throwIfAborted();
186
- budget?.charge(page.scannedBytes, budget.historyLimit);
187
- selected = page.entry;
188
- historyBytes += page.scannedBytes;
189
- for (const missing of page.unavailableRevisions)
190
- unavailable.add(missing);
191
- nextRevision = cursor.revision > 2 ? cursor.revision - 1 : null;
192
- }
193
- else {
194
- const page = await history.search({
195
- cursor: cursor.revision,
196
- limit: 1,
197
- ...(budget ? { maxReadBytes: budget.historyLimit } : {}),
198
- }, signal);
199
- signal?.throwIfAborted();
200
- budget?.charge(page.scannedBytes, budget.historyLimit);
201
- historyBytes += page.scannedBytes;
202
- for (const missing of page.unavailableRevisions)
203
- unavailable.add(missing);
204
- nextRevision = page.nextCursor;
205
- const match = page.matches[0];
206
- // Browse always selects the settled summary (part 0). The bounded history
207
- // source has already verified both sides of this settlement transition.
208
- if (match)
209
- selected = match;
210
- }
211
- let evidence = null;
212
- if (selected) {
213
- try {
214
- budget?.resolve();
215
- const { source, owner } = await turn(selected, signal);
216
- const narrowAtCursor = !!refined && !!cursor.turnCursor && source.supportsTermRefinement === true;
217
- const page = await source.search({
218
- ...(refined && !narrowAtCursor ? refined : search),
219
- ...(search.terms ? { matchMode: 'token', caseSensitive: false } : {}),
220
- ...(cursor.turnCursor && (!refined || narrowAtCursor)
221
- ? { cursor: cursor.turnCursor }
222
- : {}),
223
- ...(narrowAtCursor ? { refineTerms: refined?.terms } : {}),
224
- ...(budget ? { maxReadBytes: budget.remaining } : {}),
225
- }, signal);
226
- assertOwner(page, owner, signal);
227
- budget?.charge(page.scannedBytes, budget.remaining);
228
- evidence = page;
229
- }
230
- catch {
231
- signal?.throwIfAborted();
232
- // A throwing host/source returned no reliable byte receipt. The
233
- // caller must not reuse that allowance for another automatic page.
234
- budget?.exhaust();
235
- unavailable.add(selected.revision);
236
- }
237
- }
238
- const nextCursor = evidence?.nextCursor && selected
239
- ? encode({
240
- ...advancedCursor,
241
- revision: selected.revision,
242
- turnCursor: evidence.nextCursor,
243
- })
244
- : nextRevision
245
- ? encode({ ...advancedCursor, revision: nextRevision, turnCursor: undefined })
246
- : null;
247
- return {
248
- scope,
249
- revision: selected?.revision ?? null,
250
- claimId: selected?.claimId ?? null,
251
- evidence,
252
- nextCursor,
253
- incomplete: unavailable.size > 0 || !!evidence?.incomplete || nextCursor !== null,
254
- unavailableRevisions: [...unavailable],
255
- historyBytes,
256
- ...(budget ? { chargedBytes: budget.chargedBytes } : {}),
257
- };
258
- },
259
- async read(input, signal) {
260
- signal?.throwIfAborted();
261
- const budget = operationBudget(input.maxReadBytes);
262
- const page = await history.read({
263
- revision: revision.parse(input.revision),
264
- part: 0,
265
- ...(budget ? { maxReadBytes: budget.historyLimit } : {}),
266
- }, signal);
267
- signal?.throwIfAborted();
268
- budget?.charge(page.scannedBytes, budget.historyLimit);
269
- if (!page.entry)
270
- throw new Error('The requested settled claim is unavailable.');
271
- budget?.resolve();
272
- const { source, owner } = await turn(page.entry, signal);
273
- const result = await source.read({
274
- address: input.address,
275
- ...(input.byteOffset !== undefined ? { byteOffset: input.byteOffset } : {}),
276
- ...(budget ? { maxReadBytes: budget.remaining } : {}),
277
- }, signal);
278
- assertOwner(result, owner, signal);
279
- budget?.charge(result.scannedBytes, budget.remaining);
280
- return {
281
- ...result,
282
- revision: page.entry.revision,
283
- claimId: page.entry.claimId,
284
- ...(budget ? { chargedBytes: budget.chargedBytes } : {}),
285
- };
286
- },
287
- });
288
- }
289
- //# sourceMappingURL=tool-evidence.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-evidence.js","sourceRoot":"","sources":["../../../src/manager/resident/tool-evidence.ts"],"names":[],"mappings":"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"}