@namzu/sdk 61.3.0 → 62.0.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 (307) hide show
  1. package/CHANGELOG.md +61 -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/acp/permission.d.ts +8 -0
  6. package/dist/bridge/acp/permission.d.ts.map +1 -1
  7. package/dist/bridge/acp/permission.js.map +1 -1
  8. package/dist/bridge/acp/server.d.ts.map +1 -1
  9. package/dist/bridge/acp/server.js +8 -1
  10. package/dist/bridge/acp/server.js.map +1 -1
  11. package/dist/constants/tools/index.d.ts +2 -0
  12. package/dist/constants/tools/index.d.ts.map +1 -1
  13. package/dist/constants/tools/index.js +23 -0
  14. package/dist/constants/tools/index.js.map +1 -1
  15. package/dist/eval/harness-protection.js +1 -1
  16. package/dist/eval/harness-protection.js.map +1 -1
  17. package/dist/learning/cycle.d.ts +5 -3
  18. package/dist/learning/cycle.d.ts.map +1 -1
  19. package/dist/learning/cycle.js +11 -13
  20. package/dist/learning/cycle.js.map +1 -1
  21. package/dist/learning/guidance.d.ts +74 -0
  22. package/dist/learning/guidance.d.ts.map +1 -0
  23. package/dist/learning/guidance.js +259 -0
  24. package/dist/learning/guidance.js.map +1 -0
  25. package/dist/learning/skill.d.ts +2 -2
  26. package/dist/learning/skill.d.ts.map +1 -1
  27. package/dist/learning/skill.js +6 -6
  28. package/dist/learning/skill.js.map +1 -1
  29. package/dist/learning/store.d.ts.map +1 -1
  30. package/dist/learning/store.js +6 -6
  31. package/dist/learning/store.js.map +1 -1
  32. package/dist/pals/communication/ingress-schema.d.ts +8 -8
  33. package/dist/pals/communication/schema.d.ts +2 -2
  34. package/dist/peers/client.d.ts +2 -3
  35. package/dist/peers/client.d.ts.map +1 -1
  36. package/dist/peers/client.js +2 -3
  37. package/dist/peers/client.js.map +1 -1
  38. package/dist/peers/endpoint.d.ts +1 -2
  39. package/dist/peers/endpoint.d.ts.map +1 -1
  40. package/dist/peers/endpoint.js +1 -2
  41. package/dist/peers/endpoint.js.map +1 -1
  42. package/dist/peers/protocol.d.ts.map +1 -1
  43. package/dist/peers/protocol.js +1 -0
  44. package/dist/peers/protocol.js.map +1 -1
  45. package/dist/prompt/coding-agent-doctrine.d.ts +4 -4
  46. package/dist/prompt/coding-agent-doctrine.d.ts.map +1 -1
  47. package/dist/prompt/coding-agent-doctrine.js +5 -3
  48. package/dist/prompt/coding-agent-doctrine.js.map +1 -1
  49. package/dist/prompt/index.d.ts +0 -4
  50. package/dist/prompt/index.d.ts.map +1 -1
  51. package/dist/prompt/index.js +0 -2
  52. package/dist/prompt/index.js.map +1 -1
  53. package/dist/provider/fallback.d.ts.map +1 -1
  54. package/dist/provider/fallback.js +3 -0
  55. package/dist/provider/fallback.js.map +1 -1
  56. package/dist/provider/idle-timeout.d.ts.map +1 -1
  57. package/dist/provider/idle-timeout.js +5 -0
  58. package/dist/provider/idle-timeout.js.map +1 -1
  59. package/dist/provider/model-window-suffix.d.ts.map +1 -1
  60. package/dist/provider/model-window-suffix.js +1 -0
  61. package/dist/provider/model-window-suffix.js.map +1 -1
  62. package/dist/provider/retry.d.ts.map +1 -1
  63. package/dist/provider/retry.js +5 -0
  64. package/dist/provider/retry.js.map +1 -1
  65. package/dist/provider/step-stopped.d.ts +19 -0
  66. package/dist/provider/step-stopped.d.ts.map +1 -0
  67. package/dist/provider/step-stopped.js +25 -0
  68. package/dist/provider/step-stopped.js.map +1 -0
  69. package/dist/provider/token-budget.d.ts.map +1 -1
  70. package/dist/provider/token-budget.js +6 -1
  71. package/dist/provider/token-budget.js.map +1 -1
  72. package/dist/public-runtime.d.ts +4 -15
  73. package/dist/public-runtime.d.ts.map +1 -1
  74. package/dist/public-runtime.js +3 -14
  75. package/dist/public-runtime.js.map +1 -1
  76. package/dist/public-tools.d.ts +0 -2
  77. package/dist/public-tools.d.ts.map +1 -1
  78. package/dist/public-tools.js +0 -2
  79. package/dist/public-tools.js.map +1 -1
  80. package/dist/public-types.d.ts +3 -21
  81. package/dist/public-types.d.ts.map +1 -1
  82. package/dist/runtime/query/iteration/index.d.ts +17 -0
  83. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  84. package/dist/runtime/query/iteration/index.js +168 -5
  85. package/dist/runtime/query/iteration/index.js.map +1 -1
  86. package/dist/runtime/query/iteration/phases/per-call-review.d.ts.map +1 -1
  87. package/dist/runtime/query/iteration/phases/per-call-review.js +4 -5
  88. package/dist/runtime/query/iteration/phases/per-call-review.js.map +1 -1
  89. package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
  90. package/dist/runtime/query/iteration/phases/tool-review.js +6 -3
  91. package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
  92. package/dist/runtime/query/iteration/stream-turn.d.ts +9 -1
  93. package/dist/runtime/query/iteration/stream-turn.d.ts.map +1 -1
  94. package/dist/runtime/query/iteration/stream-turn.js +48 -2
  95. package/dist/runtime/query/iteration/stream-turn.js.map +1 -1
  96. package/dist/runtime/query/resume-pending.d.ts.map +1 -1
  97. package/dist/runtime/query/resume-pending.js +7 -4
  98. package/dist/runtime/query/resume-pending.js.map +1 -1
  99. package/dist/runtime/query/review-policy.d.ts +40 -8
  100. package/dist/runtime/query/review-policy.d.ts.map +1 -1
  101. package/dist/runtime/query/review-policy.js +139 -24
  102. package/dist/runtime/query/review-policy.js.map +1 -1
  103. package/dist/runtime/query/turn/completion-audit.d.ts +32 -0
  104. package/dist/runtime/query/turn/completion-audit.d.ts.map +1 -0
  105. package/dist/runtime/query/turn/completion-audit.js +56 -0
  106. package/dist/runtime/query/turn/completion-audit.js.map +1 -0
  107. package/dist/runtime/query/turn/stall-monitor.d.ts +78 -0
  108. package/dist/runtime/query/turn/stall-monitor.d.ts.map +1 -0
  109. package/dist/runtime/query/turn/stall-monitor.js +101 -0
  110. package/dist/runtime/query/turn/stall-monitor.js.map +1 -0
  111. package/dist/session/paths.d.ts +1 -2
  112. package/dist/session/paths.d.ts.map +1 -1
  113. package/dist/session/paths.js +1 -4
  114. package/dist/session/paths.js.map +1 -1
  115. package/dist/tools/builtins/bash.d.ts +2 -1
  116. package/dist/tools/builtins/bash.d.ts.map +1 -1
  117. package/dist/tools/builtins/bash.js +5 -2
  118. package/dist/tools/builtins/bash.js.map +1 -1
  119. package/dist/tools/builtins/computer-use.d.ts +80 -0
  120. package/dist/tools/builtins/computer-use.d.ts.map +1 -1
  121. package/dist/tools/builtins/computer-use.js +172 -9
  122. package/dist/tools/builtins/computer-use.js.map +1 -1
  123. package/dist/tools/builtins/content-fingerprint.d.ts +13 -0
  124. package/dist/tools/builtins/content-fingerprint.d.ts.map +1 -1
  125. package/dist/tools/builtins/content-fingerprint.js +25 -0
  126. package/dist/tools/builtins/content-fingerprint.js.map +1 -1
  127. package/dist/tools/builtins/edit.d.ts.map +1 -1
  128. package/dist/tools/builtins/edit.js +7 -2
  129. package/dist/tools/builtins/edit.js.map +1 -1
  130. package/dist/tools/builtins/shell-read-credit.d.ts +15 -0
  131. package/dist/tools/builtins/shell-read-credit.d.ts.map +1 -0
  132. package/dist/tools/builtins/shell-read-credit.js +161 -0
  133. package/dist/tools/builtins/shell-read-credit.js.map +1 -0
  134. package/dist/tools/paths.d.ts +15 -2
  135. package/dist/tools/paths.d.ts.map +1 -1
  136. package/dist/tools/paths.js +17 -2
  137. package/dist/tools/paths.js.map +1 -1
  138. package/dist/turn/evidence-recall.d.ts +1 -1
  139. package/dist/turn/evidence-recall.d.ts.map +1 -1
  140. package/dist/turn/evidence-recall.js +5 -14
  141. package/dist/turn/evidence-recall.js.map +1 -1
  142. package/dist/types/acp/index.d.ts +6 -0
  143. package/dist/types/acp/index.d.ts.map +1 -1
  144. package/dist/types/agent/base.d.ts +4 -0
  145. package/dist/types/agent/base.d.ts.map +1 -1
  146. package/dist/types/hitl/index.d.ts +8 -0
  147. package/dist/types/hitl/index.d.ts.map +1 -1
  148. package/dist/types/hitl/index.js.map +1 -1
  149. package/dist/types/ids/index.d.ts +1 -1
  150. package/dist/types/message/index.d.ts +1 -1
  151. package/dist/types/message/index.d.ts.map +1 -1
  152. package/dist/types/message/index.js +1 -0
  153. package/dist/types/message/index.js.map +1 -1
  154. package/dist/types/provider/interface.d.ts +12 -0
  155. package/dist/types/provider/interface.d.ts.map +1 -1
  156. package/dist/types/session/config.d.ts +25 -0
  157. package/dist/types/session/config.d.ts.map +1 -1
  158. package/dist/types/session/records.d.ts.map +1 -1
  159. package/dist/types/session/records.js +2 -0
  160. package/dist/types/session/records.js.map +1 -1
  161. package/dist/types/session/turn.d.ts +1 -1
  162. package/dist/types/session/turn.d.ts.map +1 -1
  163. package/dist/types/session/turn.js.map +1 -1
  164. package/package.json +1 -1
  165. package/src/agents/QueryAgent.ts +2 -0
  166. package/src/bridge/acp/permission.ts +8 -0
  167. package/src/bridge/acp/server.ts +7 -1
  168. package/src/constants/tools/index.ts +27 -0
  169. package/src/eval/harness-protection.ts +1 -1
  170. package/src/learning/cycle.ts +15 -16
  171. package/src/learning/guidance.ts +339 -0
  172. package/src/learning/skill.ts +7 -7
  173. package/src/learning/store.ts +5 -6
  174. package/src/peers/client.ts +2 -3
  175. package/src/peers/endpoint.ts +1 -2
  176. package/src/peers/protocol.ts +1 -0
  177. package/src/prompt/coding-agent-doctrine.ts +5 -3
  178. package/src/prompt/index.ts +0 -4
  179. package/src/provider/fallback.ts +7 -0
  180. package/src/provider/idle-timeout.ts +8 -0
  181. package/src/provider/model-window-suffix.ts +1 -0
  182. package/src/provider/retry.ts +8 -0
  183. package/src/provider/step-stopped.ts +27 -0
  184. package/src/provider/token-budget.ts +6 -1
  185. package/src/public-runtime.ts +10 -28
  186. package/src/public-tools.ts +0 -3
  187. package/src/public-types.ts +5 -137
  188. package/src/runtime/query/iteration/index.ts +207 -5
  189. package/src/runtime/query/iteration/phases/per-call-review.ts +7 -5
  190. package/src/runtime/query/iteration/phases/tool-review.ts +5 -3
  191. package/src/runtime/query/iteration/stream-turn.ts +51 -1
  192. package/src/runtime/query/resume-pending.ts +11 -4
  193. package/src/runtime/query/review-policy.ts +157 -24
  194. package/src/runtime/query/turn/completion-audit.ts +71 -0
  195. package/src/runtime/query/turn/stall-monitor.ts +158 -0
  196. package/src/session/paths.ts +2 -6
  197. package/src/tools/builtins/bash.ts +6 -2
  198. package/src/tools/builtins/computer-use.ts +245 -7
  199. package/src/tools/builtins/content-fingerprint.ts +25 -0
  200. package/src/tools/builtins/edit.ts +11 -2
  201. package/src/tools/builtins/shell-read-credit.ts +159 -0
  202. package/src/tools/paths.ts +18 -2
  203. package/src/turn/evidence-recall.ts +7 -15
  204. package/src/types/acp/index.ts +6 -0
  205. package/src/types/agent/base.ts +4 -0
  206. package/src/types/hitl/index.ts +8 -0
  207. package/src/types/ids/index.ts +1 -1
  208. package/src/types/message/index.ts +1 -0
  209. package/src/types/provider/interface.ts +13 -0
  210. package/src/types/session/config.ts +27 -0
  211. package/src/types/session/records.ts +2 -0
  212. package/src/types/session/turn.ts +2 -1
  213. package/dist/learning/deprecated.d.ts +0 -86
  214. package/dist/learning/deprecated.d.ts.map +0 -1
  215. package/dist/learning/deprecated.js +0 -22
  216. package/dist/learning/deprecated.js.map +0 -1
  217. package/dist/manager/resident/activity.d.ts +0 -74
  218. package/dist/manager/resident/activity.d.ts.map +0 -1
  219. package/dist/manager/resident/activity.js +0 -125
  220. package/dist/manager/resident/activity.js.map +0 -1
  221. package/dist/manager/resident/agenda.d.ts +0 -167
  222. package/dist/manager/resident/agenda.d.ts.map +0 -1
  223. package/dist/manager/resident/agenda.js +0 -588
  224. package/dist/manager/resident/agenda.js.map +0 -1
  225. package/dist/manager/resident/consumption.d.ts +0 -98
  226. package/dist/manager/resident/consumption.d.ts.map +0 -1
  227. package/dist/manager/resident/consumption.js +0 -237
  228. package/dist/manager/resident/consumption.js.map +0 -1
  229. package/dist/manager/resident/delivery-window.d.ts +0 -28
  230. package/dist/manager/resident/delivery-window.d.ts.map +0 -1
  231. package/dist/manager/resident/delivery-window.js +0 -80
  232. package/dist/manager/resident/delivery-window.js.map +0 -1
  233. package/dist/manager/resident/evidence-recall.d.ts +0 -30
  234. package/dist/manager/resident/evidence-recall.d.ts.map +0 -1
  235. package/dist/manager/resident/evidence-recall.js +0 -297
  236. package/dist/manager/resident/evidence-recall.js.map +0 -1
  237. package/dist/manager/resident/history-disk.d.ts +0 -10
  238. package/dist/manager/resident/history-disk.d.ts.map +0 -1
  239. package/dist/manager/resident/history-disk.js +0 -50
  240. package/dist/manager/resident/history-disk.js.map +0 -1
  241. package/dist/manager/resident/history.d.ts +0 -115
  242. package/dist/manager/resident/history.d.ts.map +0 -1
  243. package/dist/manager/resident/history.js +0 -203
  244. package/dist/manager/resident/history.js.map +0 -1
  245. package/dist/manager/resident/host.d.ts +0 -112
  246. package/dist/manager/resident/host.d.ts.map +0 -1
  247. package/dist/manager/resident/host.js +0 -254
  248. package/dist/manager/resident/host.js.map +0 -1
  249. package/dist/manager/resident/initiative.d.ts +0 -86
  250. package/dist/manager/resident/initiative.d.ts.map +0 -1
  251. package/dist/manager/resident/initiative.js +0 -131
  252. package/dist/manager/resident/initiative.js.map +0 -1
  253. package/dist/manager/resident/loop.d.ts +0 -49
  254. package/dist/manager/resident/loop.d.ts.map +0 -1
  255. package/dist/manager/resident/loop.js +0 -75
  256. package/dist/manager/resident/loop.js.map +0 -1
  257. package/dist/manager/resident/outbox.d.ts +0 -124
  258. package/dist/manager/resident/outbox.d.ts.map +0 -1
  259. package/dist/manager/resident/outbox.js +0 -216
  260. package/dist/manager/resident/outbox.js.map +0 -1
  261. package/dist/manager/resident/proposal.d.ts +0 -65
  262. package/dist/manager/resident/proposal.d.ts.map +0 -1
  263. package/dist/manager/resident/proposal.js +0 -77
  264. package/dist/manager/resident/proposal.js.map +0 -1
  265. package/dist/manager/resident/store.d.ts +0 -108
  266. package/dist/manager/resident/store.d.ts.map +0 -1
  267. package/dist/manager/resident/store.js +0 -205
  268. package/dist/manager/resident/store.js.map +0 -1
  269. package/dist/manager/resident/tool-evidence.d.ts +0 -112
  270. package/dist/manager/resident/tool-evidence.d.ts.map +0 -1
  271. package/dist/manager/resident/tool-evidence.js +0 -289
  272. package/dist/manager/resident/tool-evidence.js.map +0 -1
  273. package/dist/prompt/resident-learning.d.ts +0 -29
  274. package/dist/prompt/resident-learning.d.ts.map +0 -1
  275. package/dist/prompt/resident-learning.js +0 -126
  276. package/dist/prompt/resident-learning.js.map +0 -1
  277. package/dist/prompt/resident-step.d.ts +0 -42
  278. package/dist/prompt/resident-step.d.ts.map +0 -1
  279. package/dist/prompt/resident-step.js +0 -137
  280. package/dist/prompt/resident-step.js.map +0 -1
  281. package/dist/tools/resident-history.d.ts +0 -12
  282. package/dist/tools/resident-history.d.ts.map +0 -1
  283. package/dist/tools/resident-history.js +0 -82
  284. package/dist/tools/resident-history.js.map +0 -1
  285. package/dist/tools/resident-tool-evidence.d.ts +0 -9
  286. package/dist/tools/resident-tool-evidence.d.ts.map +0 -1
  287. package/dist/tools/resident-tool-evidence.js +0 -61
  288. package/dist/tools/resident-tool-evidence.js.map +0 -1
  289. package/src/learning/deprecated.ts +0 -124
  290. package/src/manager/resident/activity.ts +0 -211
  291. package/src/manager/resident/agenda.ts +0 -937
  292. package/src/manager/resident/consumption.ts +0 -335
  293. package/src/manager/resident/delivery-window.ts +0 -99
  294. package/src/manager/resident/evidence-recall.ts +0 -369
  295. package/src/manager/resident/history-disk.ts +0 -63
  296. package/src/manager/resident/history.ts +0 -348
  297. package/src/manager/resident/host.ts +0 -390
  298. package/src/manager/resident/initiative.ts +0 -231
  299. package/src/manager/resident/loop.ts +0 -119
  300. package/src/manager/resident/outbox.ts +0 -341
  301. package/src/manager/resident/proposal.ts +0 -119
  302. package/src/manager/resident/store.ts +0 -279
  303. package/src/manager/resident/tool-evidence.ts +0 -455
  304. package/src/prompt/resident-learning.ts +0 -152
  305. package/src/prompt/resident-step.ts +0 -182
  306. package/src/tools/resident-history.ts +0 -88
  307. package/src/tools/resident-tool-evidence.ts +0 -72
@@ -1,203 +0,0 @@
1
- import { z } from 'zod';
2
- import { ResidentHistoryPageLimit } from './history-disk.js';
3
- const SCAN_BYTES = 8 * 1024 * 1024;
4
- const SCAN_REVISIONS = 32;
5
- const TEXT_PAGE_CHARS = 6_000;
6
- function episode(before, after, id) {
7
- const previous = before?.pursuits.find((p) => p.id === id)?.state;
8
- const current = after?.pursuits.find((p) => p.id === id)?.state;
9
- if (!before ||
10
- !after ||
11
- !previous ||
12
- !current ||
13
- previous.phase !== 'running' ||
14
- !previous.claimId ||
15
- current.phase === 'running' ||
16
- current.claimId !== null ||
17
- current.summary === null ||
18
- current.stepsAdmitted !== previous.stepsAdmitted ||
19
- current.revision !== previous.revision + 1)
20
- return null;
21
- return {
22
- step: current.stepsAdmitted,
23
- claimId: previous.claimId,
24
- kind: current.phase === 'waiting' ? 'wait' : current.phase,
25
- parts: [
26
- { source: 'summary', text: current.summary },
27
- ...(previous.wakeEvidence ?? []).map((entry) => ({
28
- source: 'wake',
29
- text: entry.reason,
30
- receivedAt: entry.receivedAt,
31
- })),
32
- ],
33
- };
34
- }
35
- function boundary(text, offset) {
36
- const current = text.charCodeAt(offset);
37
- const previous = text.charCodeAt(offset - 1);
38
- return !(current >= 0xdc00 && current <= 0xdfff && previous >= 0xd800 && previous <= 0xdbff);
39
- }
40
- function textSlice(text, offset, maxChars) {
41
- let end = Math.min(text.length, offset + maxChars);
42
- if (!boundary(text, end))
43
- end--;
44
- return text.slice(offset, end);
45
- }
46
- /** Internal disk adapter. Other backends may implement ResidentHistorySource directly. */
47
- export function createResidentHistorySource(scopeInput, identity, load) {
48
- const scope = Object.freeze({ ...scopeInput });
49
- const expected = { ...identity };
50
- const revisionSchema = z.number().int().min(1).max(scope.throughRevision).safe();
51
- function page(signal, requestedBytes) {
52
- const limit = z
53
- .number()
54
- .int()
55
- .min(1)
56
- .max(SCAN_BYTES)
57
- .parse(requestedBytes ?? SCAN_BYTES);
58
- const budget = { remaining: limit, bytesRead: 0, signal };
59
- const unavailable = new Set();
60
- let scanned = 0;
61
- const cache = new Map();
62
- return {
63
- budget,
64
- async load(revision) {
65
- signal?.throwIfAborted();
66
- if (cache.has(revision))
67
- return cache.get(revision) ?? null;
68
- if (scanned >= SCAN_REVISIONS)
69
- throw new ResidentHistoryPageLimit();
70
- scanned++;
71
- let record = null;
72
- try {
73
- record = await load(revision, budget);
74
- const pursuit = record.pursuits.find((p) => p.id === scope.pursuitId);
75
- if (record.revision !== revision ||
76
- record.tenantId !== scope.tenantId ||
77
- record.agentKey !== scope.agentKey ||
78
- (pursuit &&
79
- (pursuit.state.identity !== expected.identity ||
80
- pursuit.state.objective !== expected.objective)))
81
- throw new Error('History identity does not match its bound pursuit.');
82
- }
83
- catch (error) {
84
- signal?.throwIfAborted();
85
- if (error instanceof ResidentHistoryPageLimit)
86
- throw error;
87
- unavailable.add(revision);
88
- record = null;
89
- }
90
- // Adjacent revisions are reused on the next scan iteration, without
91
- // keeping the whole archive in memory.
92
- if (cache.size >= 2)
93
- cache.delete(cache.keys().next().value);
94
- cache.set(revision, record);
95
- return record;
96
- },
97
- counts: () => ({
98
- scannedRevisions: scanned,
99
- scannedBytes: budget.bytesRead,
100
- unavailableRevisions: [...unavailable],
101
- }),
102
- };
103
- }
104
- return Object.freeze({
105
- scope,
106
- async search(options = {}, signal) {
107
- signal?.throwIfAborted();
108
- const query = z
109
- .string()
110
- .max(256)
111
- .parse(options.query ?? '');
112
- const limit = z
113
- .number()
114
- .int()
115
- .min(1)
116
- .max(8)
117
- .parse(options.limit ?? 5);
118
- let revision = revisionSchema.parse(options.cursor ?? scope.throughRevision);
119
- const reader = page(signal, options.maxReadBytes);
120
- const matches = [];
121
- while (revision >= 2 && matches.length < limit) {
122
- let found;
123
- try {
124
- const after = await reader.load(revision);
125
- const before = await reader.load(revision - 1);
126
- found = episode(before, after, scope.pursuitId);
127
- }
128
- catch (error) {
129
- if (!(error instanceof ResidentHistoryPageLimit))
130
- throw error;
131
- break;
132
- }
133
- if (found) {
134
- const matchingParts = found.parts.flatMap((part, index) => part.text.includes(query) ? [index] : []);
135
- const part = matchingParts[0];
136
- const matched = part === undefined ? undefined : found.parts[part];
137
- if (matched && part !== undefined) {
138
- let start = Math.max(0, matched.text.indexOf(query) - 120);
139
- if (!boundary(matched.text, start))
140
- start--;
141
- matches.push({
142
- revision,
143
- part,
144
- step: found.step,
145
- claimId: found.claimId,
146
- kind: found.kind,
147
- source: matched.source,
148
- excerpt: textSlice(matched.text, start, 512),
149
- matchingParts,
150
- });
151
- }
152
- }
153
- revision--;
154
- }
155
- const nextCursor = revision >= 2 ? revision : null;
156
- const counts = reader.counts();
157
- return {
158
- matches,
159
- nextCursor,
160
- ...counts,
161
- incomplete: nextCursor !== null || counts.unavailableRevisions.length > 0,
162
- };
163
- },
164
- async read(options, signal) {
165
- const revision = revisionSchema.parse(options.revision);
166
- const part = z.number().int().min(0).max(16).parse(options.part);
167
- const offset = z
168
- .number()
169
- .int()
170
- .nonnegative()
171
- .safe()
172
- .parse(options.offset ?? 0);
173
- const reader = page(signal, options.maxReadBytes);
174
- const after = await reader.load(revision);
175
- const before = revision >= 2 ? await reader.load(revision - 1) : null;
176
- const found = episode(before, after, scope.pursuitId);
177
- const selected = found?.parts[part];
178
- if (!selected || !found)
179
- return { entry: null, ...reader.counts() };
180
- if (offset > selected.text.length || !boundary(selected.text, offset))
181
- throw new Error('Invalid retained text offset; use nextOffset from the previous page.');
182
- const text = textSlice(selected.text, offset, TEXT_PAGE_CHARS);
183
- const end = offset + text.length;
184
- return {
185
- entry: {
186
- revision,
187
- part,
188
- step: found.step,
189
- claimId: found.claimId,
190
- kind: found.kind,
191
- source: selected.source,
192
- ...(selected.receivedAt !== undefined ? { receivedAt: selected.receivedAt } : {}),
193
- text,
194
- offset,
195
- totalChars: selected.text.length,
196
- nextOffset: end < selected.text.length ? end : null,
197
- },
198
- ...reader.counts(),
199
- };
200
- },
201
- });
202
- }
203
- //# sourceMappingURL=history.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"history.js","sourceRoot":"","sources":["../../../src/manager/resident/history.ts"],"names":[],"mappings":"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"}
@@ -1,112 +0,0 @@
1
- import { type LearningState } from '../../learning/skill.js';
2
- import type { ResidentAgendaStore, ResidentPursuit } from './agenda.js';
3
- import { type ResidentObservation, type ResidentSelection, type ResidentSelector } from './initiative.js';
4
- import { type ResidentStep } from './loop.js';
5
- import { type ResidentMessageInput } from './outbox.js';
6
- import { type ResidentDecision } from './store.js';
7
- /**
8
- * @experimental Host result describes execution, not external-effect rollback.
9
- *
10
- * @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.
11
- */
12
- export interface ResidentHostResult {
13
- readonly status: 'idle' | 'paused' | 'unresolved' | 'cancelled' | 'limit' | 'contended';
14
- readonly stepsSettled: number;
15
- readonly nextWakeAt: number | null;
16
- readonly selection?: ResidentSelection;
17
- }
18
- /**
19
- * @experimental Explicit authorization to drive a finite number of background steps.
20
- *
21
- * @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.
22
- */
23
- export interface ResidentHostRunOptions {
24
- readonly signal: AbortSignal;
25
- readonly maxSteps: number;
26
- /** Maximum single idle wait; with keepAlive, also bounds local agenda polling. */
27
- readonly maxIdleMs?: number;
28
- /** Keep waiting for useful work within this invocation's finite step cap. Default false. */
29
- readonly keepAlive?: boolean;
30
- }
31
- /**
32
- * @experimental Immutable context from the agenda snapshot that authorized this admission.
33
- *
34
- * @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.
35
- */
36
- export interface ResidentStepContext {
37
- readonly agendaRevision: number;
38
- readonly learning?: LearningState;
39
- }
40
- /**
41
- * @experimental A developer callback may bind a different SDK turn for each pursuit.
42
- *
43
- * @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.
44
- */
45
- export type ResidentPursuitStep = (pursuit: ResidentPursuit, signal: AbortSignal) => ReturnType<ResidentStep>;
46
- /**
47
- * @experimental Context-aware callback; existing two-argument steps remain assignable.
48
- *
49
- * @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.
50
- */
51
- export type ResidentContextualStep = (pursuit: ResidentPursuit, signal: AbortSignal, context: ResidentStepContext) => ReturnType<ResidentStep>;
52
- /**
53
- * @experimental Inspect actual outcomes and resource receipts independently of model prose.
54
- *
55
- * @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.
56
- */
57
- export type ResidentObserver = (pursuit: ResidentPursuit, decision: ResidentDecision, signal: AbortSignal) => Promise<ResidentObservation>;
58
- /**
59
- * @experimental Host validates content and destination; null means no communication.
60
- *
61
- * @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.
62
- */
63
- export type ResidentMessageFactory = (pursuit: ResidentPursuit, decision: ResidentDecision, signal: AbortSignal) => Promise<ResidentMessageInput | null>;
64
- /**
65
- * @experimental Opt-in local selection, observed settlement and atomic outbound intent.
66
- *
67
- * @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.
68
- */
69
- export interface ResidentHostOptions {
70
- readonly select?: ResidentSelector;
71
- readonly observe?: ResidentObserver;
72
- readonly prepareMessage?: ResidentMessageFactory;
73
- /** Bind approved learning to the exact admission snapshot. Default false. */
74
- readonly learning?: boolean;
75
- }
76
- /**
77
- * @experimental Local driver for one durable agenda. Shared agenda admission
78
- * prevents overlapping pursuits across processes. Notifications are local;
79
- * opt-in keepAlive also rereads durable state on bounded idle timers.
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 declare class ResidentHost {
84
- private readonly agenda;
85
- private readonly step;
86
- private controller;
87
- private active;
88
- private idle;
89
- private generation;
90
- private controls;
91
- private controlsPending;
92
- private readonly options;
93
- constructor(agenda: ResidentAgendaStore, step: ResidentContextualStep, options?: ResidentHostOptions);
94
- /** Interrupt local idle waiting after the host learns of new durable state. */
95
- notify(): void;
96
- private snapshot;
97
- private paused;
98
- private control;
99
- /**
100
- * Signal current work and durably close future admission. Resolving this method
101
- * is NOT quiescence: await the turn promise before claiming the callback stopped.
102
- * An interrupted admitted pursuit remains unresolved until reconciled explicitly.
103
- */
104
- pause(): Promise<void>;
105
- /** Reauthorize future work only after this host's previous invocation drained. */
106
- resume(): Promise<void>;
107
- /** Persist fresh evidence and interrupt this host's idle timer. */
108
- wake(id: string, reason: string): Promise<void>;
109
- run(options: ResidentHostRunOptions): Promise<ResidentHostResult>;
110
- private drive;
111
- }
112
- //# sourceMappingURL=host.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../../src/manager/resident/host.ts"],"names":[],"mappings":"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"}
@@ -1,254 +0,0 @@
1
- import { setTimeout as sleep } from 'node:timers/promises';
2
- import { freezeLearning } from '../../learning/skill.js';
3
- import { residentObservationSchema, } from './initiative.js';
4
- import { stepResident } from './loop.js';
5
- import { residentMessageInputSchema } from './outbox.js';
6
- import { ResidentConflictError, residentDecisionSchema } from './store.js';
7
- /**
8
- * @experimental Local driver for one durable agenda. Shared agenda admission
9
- * prevents overlapping pursuits across processes. Notifications are local;
10
- * opt-in keepAlive also rereads durable state on bounded idle timers.
11
- *
12
- * @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.
13
- */
14
- export class ResidentHost {
15
- agenda;
16
- step;
17
- controller;
18
- active;
19
- idle;
20
- generation = 0;
21
- controls = Promise.resolve();
22
- controlsPending = 0;
23
- options;
24
- constructor(agenda, step, options = {}) {
25
- this.agenda = agenda;
26
- this.step = step;
27
- if (options.learning !== undefined && typeof options.learning !== 'boolean')
28
- throw new TypeError('Resident learning must be explicitly enabled with a boolean.');
29
- if ((options.select || options.learning) && !agenda.executionAt)
30
- throw new TypeError('Resident selection or learning requires atomic executionAt support.');
31
- if (options.observe && !agenda.settleObserved)
32
- throw new TypeError('Resident observation requires atomic settleObserved support.');
33
- if (options.prepareMessage && !agenda.settleWithMessage)
34
- throw new TypeError('Resident messages require atomic settleWithMessage support.');
35
- this.options = Object.freeze({ ...options });
36
- }
37
- /** Interrupt local idle waiting after the host learns of new durable state. */
38
- notify() {
39
- this.generation++;
40
- this.idle?.abort();
41
- }
42
- async snapshot() {
43
- const state = await this.agenda.read();
44
- if (!state)
45
- throw new Error('Create the resident agenda before running the host.');
46
- return state;
47
- }
48
- async paused(value) {
49
- for (let attempt = 0; attempt < 8; attempt++) {
50
- const state = await this.snapshot();
51
- if (state.paused === value)
52
- return;
53
- try {
54
- await this.agenda.setPaused(state, value);
55
- return;
56
- }
57
- catch (error) {
58
- if (!(error instanceof ResidentConflictError) || attempt === 7)
59
- throw error;
60
- }
61
- }
62
- }
63
- control(update) {
64
- this.controlsPending++;
65
- const pending = this.controls.then(update);
66
- this.controls = pending.catch(() => { });
67
- return pending.finally(() => {
68
- this.controlsPending--;
69
- });
70
- }
71
- /**
72
- * Signal current work and durably close future admission. Resolving this method
73
- * is NOT quiescence: await the turn promise before claiming the callback stopped.
74
- * An interrupted admitted pursuit remains unresolved until reconciled explicitly.
75
- */
76
- async pause() {
77
- this.controller?.abort();
78
- this.notify();
79
- await this.control(() => this.paused(true));
80
- }
81
- /** Reauthorize future work only after this host's previous invocation drained. */
82
- async resume() {
83
- if (this.controlsPending)
84
- throw new Error('Wait for pending resident controls before resuming.');
85
- if (this.active)
86
- throw new Error('Wait for the active resident invocation to drain before resuming.');
87
- await this.control(() => this.paused(false));
88
- this.notify();
89
- }
90
- /** Persist fresh evidence and interrupt this host's idle timer. */
91
- async wake(id, reason) {
92
- const state = await this.snapshot();
93
- const pursuit = state.pursuits.find((p) => p.id === id);
94
- if (!pursuit)
95
- throw new Error('Unknown resident pursuit.');
96
- await this.agenda.wake(id, pursuit.state, reason, Date.now());
97
- this.notify();
98
- }
99
- run(options) {
100
- if (this.controlsPending)
101
- throw new Error('Wait for pending resident controls before running.');
102
- if (this.active)
103
- throw new Error('A resident host invocation is already active.');
104
- const maxIdleMs = options.maxIdleMs ?? 60_000;
105
- const keepAlive = options.keepAlive ?? false;
106
- if (options.keepAlive !== undefined && typeof options.keepAlive !== 'boolean')
107
- throw new TypeError('Resident keepAlive must be explicitly enabled with a boolean.');
108
- if (!Number.isSafeInteger(options.maxSteps) ||
109
- options.maxSteps < 1 ||
110
- !Number.isSafeInteger(maxIdleMs) ||
111
- maxIdleMs < 0 ||
112
- maxIdleMs > 2_147_483_647 ||
113
- (keepAlive && maxIdleMs === 0))
114
- throw new TypeError('Invalid resident host limits.');
115
- const controller = new AbortController();
116
- this.controller = controller;
117
- const signal = AbortSignal.any([controller.signal, options.signal]);
118
- this.active = this.drive(options.maxSteps, maxIdleMs, keepAlive, signal).finally(() => {
119
- this.active = undefined;
120
- this.controller = undefined;
121
- this.idle = undefined;
122
- });
123
- return this.active;
124
- }
125
- async drive(maxSteps, maxIdleMs, keepAlive, signal) {
126
- let stepsSettled = 0;
127
- try {
128
- while (true) {
129
- signal.throwIfAborted();
130
- const observed = this.generation;
131
- const state = await this.snapshot();
132
- signal.throwIfAborted();
133
- if (state.paused)
134
- return { status: 'paused', stepsSettled, nextWakeAt: null };
135
- if (state.pursuits.some((p) => p.state.phase === 'running'))
136
- return { status: 'unresolved', stepsSettled, nextWakeAt: null };
137
- const waiting = state.pursuits.filter((p) => p.state.phase === 'waiting' && p.state.wakeAt !== null);
138
- const now = Date.now();
139
- // Fair, deterministic baseline; this is not model-authored initiative.
140
- let due = waiting
141
- .filter((p) => (p.state.wakeAt ?? 0) <= now)
142
- .sort((a, b) => a.state.stepsAdmitted - b.state.stepsAdmitted ||
143
- (a.state.wakeAt ?? 0) - (b.state.wakeAt ?? 0) ||
144
- a.id.localeCompare(b.id))[0];
145
- let selection;
146
- if (due && this.options.select) {
147
- selection = this.options.select(state, now);
148
- signal.throwIfAborted();
149
- if (selection.agendaRevision !== state.revision)
150
- throw new Error('Resident selector returned a stale agenda revision.');
151
- if (selection.pursuitId === null)
152
- due = undefined;
153
- else {
154
- const selectedId = selection.pursuitId;
155
- due = waiting.find((p) => p.id === selectedId && (p.state.wakeAt ?? 0) <= now);
156
- if (!due)
157
- throw new Error('Resident selector chose an ineligible pursuit.');
158
- }
159
- }
160
- if (due) {
161
- const selected = due;
162
- const context = Object.freeze({
163
- agendaRevision: state.revision,
164
- ...(this.options.learning && state.learning
165
- ? { learning: freezeLearning(state.learning) }
166
- : {}),
167
- });
168
- const execution = this.options.select || this.options.learning
169
- ? this.agenda.executionAt?.(selected.id, state)
170
- : this.agenda.execution(selected.id);
171
- if (!execution)
172
- throw new Error('Resident executionAt support was removed.');
173
- const observe = this.options.observe;
174
- const prepareMessage = this.options.prepareMessage;
175
- const observedExecution = observe || prepareMessage
176
- ? {
177
- read: () => execution.read(),
178
- claim: (...args) => execution.claim(...args),
179
- settle: async (current, decision, at) => {
180
- const disposition = Object.freeze(residentDecisionSchema.parse(decision));
181
- const observed = await observe?.({ ...selected, state: current }, disposition, signal);
182
- signal.throwIfAborted();
183
- const observation = observe
184
- ? Object.freeze(residentObservationSchema.parse(observed))
185
- : undefined;
186
- const prepared = await prepareMessage?.({ ...selected, state: current }, disposition, signal);
187
- signal.throwIfAborted();
188
- const message = prepareMessage && prepared !== null
189
- ? Object.freeze(residentMessageInputSchema.parse(prepared))
190
- : null;
191
- if (message !== null) {
192
- if (!this.agenda.settleWithMessage)
193
- throw new Error('Resident settleWithMessage support was removed.');
194
- return this.agenda.settleWithMessage(selected.id, current, disposition, message, at, observation);
195
- }
196
- if (observation) {
197
- if (!this.agenda.settleObserved)
198
- throw new Error('Resident settleObserved support was removed.');
199
- return this.agenda.settleObserved(selected.id, current, disposition, observation, at);
200
- }
201
- return execution.settle(current, disposition, at);
202
- },
203
- }
204
- : execution;
205
- const result = await stepResident(observedExecution, (current, abort) => this.step({ ...selected, state: current }, abort, context), signal);
206
- if (result.status === 'idle')
207
- return {
208
- status: result.reason === 'unresolved' ? 'unresolved' : 'contended',
209
- stepsSettled,
210
- nextWakeAt: null,
211
- };
212
- stepsSettled++;
213
- if (stepsSettled >= maxSteps)
214
- return { status: 'limit', stepsSettled, nextWakeAt: null };
215
- continue;
216
- }
217
- const scheduled = selection?.pursuitId === null
218
- ? waiting.filter((p) => (p.state.wakeAt ?? 0) > now)
219
- : waiting;
220
- const nextWakeAt = scheduled.length === 0 ? null : Math.min(...scheduled.map((p) => p.state.wakeAt ?? now));
221
- if (observed !== this.generation)
222
- continue;
223
- if (!keepAlive && (nextWakeAt === null || nextWakeAt - now > maxIdleMs))
224
- return { status: 'idle', stepsSettled, nextWakeAt, ...(selection ? { selection } : {}) };
225
- const delay = nextWakeAt === null
226
- ? maxIdleMs
227
- : keepAlive
228
- ? Math.min(maxIdleMs, nextWakeAt - now)
229
- : nextWakeAt - now;
230
- const idle = new AbortController();
231
- this.idle = idle;
232
- try {
233
- await sleep(Math.max(1, delay), undefined, {
234
- signal: AbortSignal.any([signal, idle.signal]),
235
- });
236
- }
237
- catch (error) {
238
- if (!idle.signal.aborted || signal.aborted)
239
- throw error;
240
- }
241
- finally {
242
- if (this.idle === idle)
243
- this.idle = undefined;
244
- }
245
- }
246
- }
247
- catch (error) {
248
- if (!signal.aborted)
249
- throw error;
250
- return { status: 'cancelled', stepsSettled, nextWakeAt: null };
251
- }
252
- }
253
- }
254
- //# sourceMappingURL=host.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"host.js","sourceRoot":"","sources":["../../../src/manager/resident/host.ts"],"names":[],"mappings":"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"}