@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.
- package/CHANGELOG.md +62 -0
- package/dist/agents/QueryAgent.d.ts.map +1 -1
- package/dist/agents/QueryAgent.js +2 -0
- package/dist/agents/QueryAgent.js.map +1 -1
- package/dist/bridge/a2a/mapper.d.ts.map +1 -1
- package/dist/bridge/a2a/mapper.js +2 -0
- package/dist/bridge/a2a/mapper.js.map +1 -1
- package/dist/bridge/acp/permission.d.ts +8 -0
- package/dist/bridge/acp/permission.d.ts.map +1 -1
- package/dist/bridge/acp/permission.js.map +1 -1
- package/dist/bridge/acp/server.d.ts.map +1 -1
- package/dist/bridge/acp/server.js +8 -1
- package/dist/bridge/acp/server.js.map +1 -1
- package/dist/bridge/sse/mapper.d.ts.map +1 -1
- package/dist/bridge/sse/mapper.js +13 -0
- package/dist/bridge/sse/mapper.js.map +1 -1
- package/dist/constants/tools/index.d.ts +2 -0
- package/dist/constants/tools/index.d.ts.map +1 -1
- package/dist/constants/tools/index.js +23 -0
- package/dist/constants/tools/index.js.map +1 -1
- package/dist/contracts/session/api.d.ts +1 -1
- package/dist/contracts/session/api.d.ts.map +1 -1
- package/dist/eval/harness-protection.js +1 -1
- package/dist/eval/harness-protection.js.map +1 -1
- package/dist/learning/cycle.d.ts +5 -3
- package/dist/learning/cycle.d.ts.map +1 -1
- package/dist/learning/cycle.js +11 -13
- package/dist/learning/cycle.js.map +1 -1
- package/dist/learning/guidance.d.ts +74 -0
- package/dist/learning/guidance.d.ts.map +1 -0
- package/dist/learning/guidance.js +259 -0
- package/dist/learning/guidance.js.map +1 -0
- package/dist/learning/skill.d.ts +2 -2
- package/dist/learning/skill.d.ts.map +1 -1
- package/dist/learning/skill.js +6 -6
- package/dist/learning/skill.js.map +1 -1
- package/dist/learning/store.d.ts.map +1 -1
- package/dist/learning/store.js +6 -6
- package/dist/learning/store.js.map +1 -1
- package/dist/pals/communication/ingress-schema.d.ts +8 -8
- package/dist/pals/communication/schema.d.ts +2 -2
- package/dist/peers/client.d.ts +2 -3
- package/dist/peers/client.d.ts.map +1 -1
- package/dist/peers/client.js +2 -3
- package/dist/peers/client.js.map +1 -1
- package/dist/peers/endpoint.d.ts +1 -2
- package/dist/peers/endpoint.d.ts.map +1 -1
- package/dist/peers/endpoint.js +1 -2
- package/dist/peers/endpoint.js.map +1 -1
- package/dist/peers/protocol.d.ts.map +1 -1
- package/dist/peers/protocol.js +1 -0
- package/dist/peers/protocol.js.map +1 -1
- package/dist/prompt/coding-agent-doctrine.d.ts +4 -4
- package/dist/prompt/coding-agent-doctrine.d.ts.map +1 -1
- package/dist/prompt/coding-agent-doctrine.js +5 -3
- package/dist/prompt/coding-agent-doctrine.js.map +1 -1
- package/dist/prompt/index.d.ts +0 -4
- package/dist/prompt/index.d.ts.map +1 -1
- package/dist/prompt/index.js +0 -2
- package/dist/prompt/index.js.map +1 -1
- package/dist/provider/fallback.d.ts.map +1 -1
- package/dist/provider/fallback.js +3 -0
- package/dist/provider/fallback.js.map +1 -1
- package/dist/provider/idle-timeout.d.ts.map +1 -1
- package/dist/provider/idle-timeout.js +5 -0
- package/dist/provider/idle-timeout.js.map +1 -1
- package/dist/provider/model-window-suffix.d.ts.map +1 -1
- package/dist/provider/model-window-suffix.js +1 -0
- package/dist/provider/model-window-suffix.js.map +1 -1
- package/dist/provider/retry.d.ts.map +1 -1
- package/dist/provider/retry.js +5 -0
- package/dist/provider/retry.js.map +1 -1
- package/dist/provider/step-stopped.d.ts +19 -0
- package/dist/provider/step-stopped.d.ts.map +1 -0
- package/dist/provider/step-stopped.js +25 -0
- package/dist/provider/step-stopped.js.map +1 -0
- package/dist/provider/token-budget.d.ts.map +1 -1
- package/dist/provider/token-budget.js +6 -1
- package/dist/provider/token-budget.js.map +1 -1
- package/dist/public-runtime.d.ts +4 -15
- package/dist/public-runtime.d.ts.map +1 -1
- package/dist/public-runtime.js +4 -15
- package/dist/public-runtime.js.map +1 -1
- package/dist/public-tools.d.ts +0 -2
- package/dist/public-tools.d.ts.map +1 -1
- package/dist/public-tools.js +0 -2
- package/dist/public-tools.js.map +1 -1
- package/dist/public-types.d.ts +4 -22
- package/dist/public-types.d.ts.map +1 -1
- package/dist/runtime/query/iteration/index.d.ts +17 -0
- package/dist/runtime/query/iteration/index.d.ts.map +1 -1
- package/dist/runtime/query/iteration/index.js +176 -6
- package/dist/runtime/query/iteration/index.js.map +1 -1
- package/dist/runtime/query/iteration/phases/per-call-review.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/per-call-review.js +4 -5
- package/dist/runtime/query/iteration/phases/per-call-review.js.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.js +6 -3
- package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
- package/dist/runtime/query/iteration/recorded-context.d.ts +1 -1
- package/dist/runtime/query/iteration/recorded-context.d.ts.map +1 -1
- package/dist/runtime/query/iteration/recorded-context.js +2 -1
- package/dist/runtime/query/iteration/recorded-context.js.map +1 -1
- package/dist/runtime/query/iteration/stream-turn.d.ts +9 -1
- package/dist/runtime/query/iteration/stream-turn.d.ts.map +1 -1
- package/dist/runtime/query/iteration/stream-turn.js +48 -2
- package/dist/runtime/query/iteration/stream-turn.js.map +1 -1
- package/dist/runtime/query/resume-pending.d.ts.map +1 -1
- package/dist/runtime/query/resume-pending.js +7 -4
- package/dist/runtime/query/resume-pending.js.map +1 -1
- package/dist/runtime/query/review-policy.d.ts +40 -8
- package/dist/runtime/query/review-policy.d.ts.map +1 -1
- package/dist/runtime/query/review-policy.js +139 -24
- package/dist/runtime/query/review-policy.js.map +1 -1
- package/dist/runtime/query/turn/completion-audit.d.ts +32 -0
- package/dist/runtime/query/turn/completion-audit.d.ts.map +1 -0
- package/dist/runtime/query/turn/completion-audit.js +56 -0
- package/dist/runtime/query/turn/completion-audit.js.map +1 -0
- package/dist/runtime/query/turn/stall-monitor.d.ts +78 -0
- package/dist/runtime/query/turn/stall-monitor.d.ts.map +1 -0
- package/dist/runtime/query/turn/stall-monitor.js +101 -0
- package/dist/runtime/query/turn/stall-monitor.js.map +1 -0
- package/dist/session/paths.d.ts +1 -2
- package/dist/session/paths.d.ts.map +1 -1
- package/dist/session/paths.js +1 -4
- package/dist/session/paths.js.map +1 -1
- package/dist/store/index.d.ts +2 -0
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +1 -0
- package/dist/store/index.js.map +1 -1
- package/dist/tools/builtins/bash.d.ts +2 -1
- package/dist/tools/builtins/bash.d.ts.map +1 -1
- package/dist/tools/builtins/bash.js +5 -2
- package/dist/tools/builtins/bash.js.map +1 -1
- package/dist/tools/builtins/content-fingerprint.d.ts +13 -0
- package/dist/tools/builtins/content-fingerprint.d.ts.map +1 -1
- package/dist/tools/builtins/content-fingerprint.js +25 -0
- package/dist/tools/builtins/content-fingerprint.js.map +1 -1
- package/dist/tools/builtins/edit.d.ts.map +1 -1
- package/dist/tools/builtins/edit.js +7 -2
- package/dist/tools/builtins/edit.js.map +1 -1
- package/dist/tools/builtins/shell-read-credit.d.ts +15 -0
- package/dist/tools/builtins/shell-read-credit.d.ts.map +1 -0
- package/dist/tools/builtins/shell-read-credit.js +161 -0
- package/dist/tools/builtins/shell-read-credit.js.map +1 -0
- package/dist/tools/paths.d.ts +15 -2
- package/dist/tools/paths.d.ts.map +1 -1
- package/dist/tools/paths.js +17 -2
- package/dist/tools/paths.js.map +1 -1
- package/dist/turn/evidence-recall.d.ts +1 -1
- package/dist/turn/evidence-recall.d.ts.map +1 -1
- package/dist/turn/evidence-recall.js +5 -14
- package/dist/turn/evidence-recall.js.map +1 -1
- package/dist/turn/memory-recall.d.ts.map +1 -1
- package/dist/turn/memory-recall.js +18 -4
- package/dist/turn/memory-recall.js.map +1 -1
- package/dist/turn/reporter.d.ts.map +1 -1
- package/dist/turn/reporter.js +5 -0
- package/dist/turn/reporter.js.map +1 -1
- package/dist/types/acp/index.d.ts +6 -0
- package/dist/types/acp/index.d.ts.map +1 -1
- package/dist/types/agent/base.d.ts +4 -0
- package/dist/types/agent/base.d.ts.map +1 -1
- package/dist/types/hitl/index.d.ts +8 -0
- package/dist/types/hitl/index.d.ts.map +1 -1
- package/dist/types/hitl/index.js.map +1 -1
- package/dist/types/ids/index.d.ts +1 -1
- package/dist/types/message/index.d.ts +1 -1
- package/dist/types/message/index.d.ts.map +1 -1
- package/dist/types/message/index.js +1 -0
- package/dist/types/message/index.js.map +1 -1
- package/dist/types/provider/interface.d.ts +12 -0
- package/dist/types/provider/interface.d.ts.map +1 -1
- package/dist/types/session/config.d.ts +25 -0
- package/dist/types/session/config.d.ts.map +1 -1
- package/dist/types/session/events.d.ts +19 -0
- package/dist/types/session/events.d.ts.map +1 -1
- package/dist/types/session/events.js.map +1 -1
- package/dist/types/session/prepare-step.d.ts +16 -0
- package/dist/types/session/prepare-step.d.ts.map +1 -1
- package/dist/types/session/records.d.ts.map +1 -1
- package/dist/types/session/records.js +3 -0
- package/dist/types/session/records.js.map +1 -1
- package/dist/types/session/turn.d.ts +1 -1
- package/dist/types/session/turn.d.ts.map +1 -1
- package/dist/types/session/turn.js.map +1 -1
- package/package.json +1 -1
- package/src/agents/QueryAgent.ts +2 -0
- package/src/bridge/a2a/mapper.ts +2 -0
- package/src/bridge/acp/permission.ts +8 -0
- package/src/bridge/acp/server.ts +7 -1
- package/src/bridge/sse/mapper.ts +13 -0
- package/src/constants/tools/index.ts +27 -0
- package/src/contracts/session/api.ts +1 -0
- package/src/eval/harness-protection.ts +1 -1
- package/src/learning/cycle.ts +15 -16
- package/src/learning/guidance.ts +339 -0
- package/src/learning/skill.ts +7 -7
- package/src/learning/store.ts +5 -6
- package/src/peers/client.ts +2 -3
- package/src/peers/endpoint.ts +1 -2
- package/src/peers/protocol.ts +1 -0
- package/src/prompt/coding-agent-doctrine.ts +5 -3
- package/src/prompt/index.ts +0 -4
- package/src/provider/fallback.ts +7 -0
- package/src/provider/idle-timeout.ts +8 -0
- package/src/provider/model-window-suffix.ts +1 -0
- package/src/provider/retry.ts +8 -0
- package/src/provider/step-stopped.ts +27 -0
- package/src/provider/token-budget.ts +6 -1
- package/src/public-runtime.ts +7 -28
- package/src/public-tools.ts +0 -3
- package/src/public-types.ts +6 -137
- package/src/runtime/query/iteration/index.ts +218 -6
- package/src/runtime/query/iteration/phases/per-call-review.ts +7 -5
- package/src/runtime/query/iteration/phases/tool-review.ts +5 -3
- package/src/runtime/query/iteration/recorded-context.ts +2 -0
- package/src/runtime/query/iteration/stream-turn.ts +51 -1
- package/src/runtime/query/resume-pending.ts +11 -4
- package/src/runtime/query/review-policy.ts +157 -24
- package/src/runtime/query/turn/completion-audit.ts +71 -0
- package/src/runtime/query/turn/stall-monitor.ts +158 -0
- package/src/session/paths.ts +2 -6
- package/src/store/index.ts +2 -0
- package/src/tools/builtins/bash.ts +6 -2
- package/src/tools/builtins/content-fingerprint.ts +25 -0
- package/src/tools/builtins/edit.ts +11 -2
- package/src/tools/builtins/shell-read-credit.ts +159 -0
- package/src/tools/paths.ts +18 -2
- package/src/turn/evidence-recall.ts +7 -15
- package/src/turn/memory-recall.ts +26 -7
- package/src/turn/reporter.ts +5 -0
- package/src/types/acp/index.ts +6 -0
- package/src/types/agent/base.ts +4 -0
- package/src/types/hitl/index.ts +8 -0
- package/src/types/ids/index.ts +1 -1
- package/src/types/message/index.ts +1 -0
- package/src/types/provider/interface.ts +13 -0
- package/src/types/session/config.ts +27 -0
- package/src/types/session/events.ts +19 -0
- package/src/types/session/prepare-step.ts +17 -0
- package/src/types/session/records.ts +3 -0
- package/src/types/session/turn.ts +2 -1
- package/dist/learning/deprecated.d.ts +0 -86
- package/dist/learning/deprecated.d.ts.map +0 -1
- package/dist/learning/deprecated.js +0 -22
- package/dist/learning/deprecated.js.map +0 -1
- package/dist/manager/resident/activity.d.ts +0 -74
- package/dist/manager/resident/activity.d.ts.map +0 -1
- package/dist/manager/resident/activity.js +0 -125
- package/dist/manager/resident/activity.js.map +0 -1
- package/dist/manager/resident/agenda.d.ts +0 -167
- package/dist/manager/resident/agenda.d.ts.map +0 -1
- package/dist/manager/resident/agenda.js +0 -588
- package/dist/manager/resident/agenda.js.map +0 -1
- package/dist/manager/resident/consumption.d.ts +0 -98
- package/dist/manager/resident/consumption.d.ts.map +0 -1
- package/dist/manager/resident/consumption.js +0 -237
- package/dist/manager/resident/consumption.js.map +0 -1
- package/dist/manager/resident/delivery-window.d.ts +0 -28
- package/dist/manager/resident/delivery-window.d.ts.map +0 -1
- package/dist/manager/resident/delivery-window.js +0 -80
- package/dist/manager/resident/delivery-window.js.map +0 -1
- package/dist/manager/resident/evidence-recall.d.ts +0 -30
- package/dist/manager/resident/evidence-recall.d.ts.map +0 -1
- package/dist/manager/resident/evidence-recall.js +0 -297
- package/dist/manager/resident/evidence-recall.js.map +0 -1
- package/dist/manager/resident/history-disk.d.ts +0 -10
- package/dist/manager/resident/history-disk.d.ts.map +0 -1
- package/dist/manager/resident/history-disk.js +0 -50
- package/dist/manager/resident/history-disk.js.map +0 -1
- package/dist/manager/resident/history.d.ts +0 -115
- package/dist/manager/resident/history.d.ts.map +0 -1
- package/dist/manager/resident/history.js +0 -203
- package/dist/manager/resident/history.js.map +0 -1
- package/dist/manager/resident/host.d.ts +0 -112
- package/dist/manager/resident/host.d.ts.map +0 -1
- package/dist/manager/resident/host.js +0 -254
- package/dist/manager/resident/host.js.map +0 -1
- package/dist/manager/resident/initiative.d.ts +0 -86
- package/dist/manager/resident/initiative.d.ts.map +0 -1
- package/dist/manager/resident/initiative.js +0 -131
- package/dist/manager/resident/initiative.js.map +0 -1
- package/dist/manager/resident/loop.d.ts +0 -49
- package/dist/manager/resident/loop.d.ts.map +0 -1
- package/dist/manager/resident/loop.js +0 -75
- package/dist/manager/resident/loop.js.map +0 -1
- package/dist/manager/resident/outbox.d.ts +0 -124
- package/dist/manager/resident/outbox.d.ts.map +0 -1
- package/dist/manager/resident/outbox.js +0 -216
- package/dist/manager/resident/outbox.js.map +0 -1
- package/dist/manager/resident/proposal.d.ts +0 -65
- package/dist/manager/resident/proposal.d.ts.map +0 -1
- package/dist/manager/resident/proposal.js +0 -77
- package/dist/manager/resident/proposal.js.map +0 -1
- package/dist/manager/resident/store.d.ts +0 -108
- package/dist/manager/resident/store.d.ts.map +0 -1
- package/dist/manager/resident/store.js +0 -205
- package/dist/manager/resident/store.js.map +0 -1
- package/dist/manager/resident/tool-evidence.d.ts +0 -112
- package/dist/manager/resident/tool-evidence.d.ts.map +0 -1
- package/dist/manager/resident/tool-evidence.js +0 -289
- package/dist/manager/resident/tool-evidence.js.map +0 -1
- package/dist/prompt/resident-learning.d.ts +0 -29
- package/dist/prompt/resident-learning.d.ts.map +0 -1
- package/dist/prompt/resident-learning.js +0 -126
- package/dist/prompt/resident-learning.js.map +0 -1
- package/dist/prompt/resident-step.d.ts +0 -42
- package/dist/prompt/resident-step.d.ts.map +0 -1
- package/dist/prompt/resident-step.js +0 -137
- package/dist/prompt/resident-step.js.map +0 -1
- package/dist/tools/resident-history.d.ts +0 -12
- package/dist/tools/resident-history.d.ts.map +0 -1
- package/dist/tools/resident-history.js +0 -82
- package/dist/tools/resident-history.js.map +0 -1
- package/dist/tools/resident-tool-evidence.d.ts +0 -9
- package/dist/tools/resident-tool-evidence.d.ts.map +0 -1
- package/dist/tools/resident-tool-evidence.js +0 -61
- package/dist/tools/resident-tool-evidence.js.map +0 -1
- package/src/learning/deprecated.ts +0 -124
- package/src/manager/resident/activity.ts +0 -211
- package/src/manager/resident/agenda.ts +0 -937
- package/src/manager/resident/consumption.ts +0 -335
- package/src/manager/resident/delivery-window.ts +0 -99
- package/src/manager/resident/evidence-recall.ts +0 -369
- package/src/manager/resident/history-disk.ts +0 -63
- package/src/manager/resident/history.ts +0 -348
- package/src/manager/resident/host.ts +0 -390
- package/src/manager/resident/initiative.ts +0 -231
- package/src/manager/resident/loop.ts +0 -119
- package/src/manager/resident/outbox.ts +0 -341
- package/src/manager/resident/proposal.ts +0 -119
- package/src/manager/resident/store.ts +0 -279
- package/src/manager/resident/tool-evidence.ts +0 -455
- package/src/prompt/resident-learning.ts +0 -152
- package/src/prompt/resident-step.ts +0 -182
- package/src/tools/resident-history.ts +0 -88
- package/src/tools/resident-tool-evidence.ts +0 -72
package/src/turn/reporter.ts
CHANGED
|
@@ -317,6 +317,11 @@ export function createTurnReporter(parentLogger?: Logger): TurnReporter {
|
|
|
317
317
|
'namzu.monitor.chars': event.text.length,
|
|
318
318
|
})
|
|
319
319
|
break
|
|
320
|
+
case 'memory_recalled':
|
|
321
|
+
log.debug('Stored memories recalled into the turn', {
|
|
322
|
+
'namzu.memory.count': event.memories.length,
|
|
323
|
+
})
|
|
324
|
+
break
|
|
320
325
|
case 'memory_consolidated':
|
|
321
326
|
log.info('Turn learnings consolidated into the memory store', {
|
|
322
327
|
'namzu.memory.id': event.memoryId,
|
package/src/types/acp/index.ts
CHANGED
|
@@ -118,6 +118,12 @@ export interface AcpRequestPermissionParams {
|
|
|
118
118
|
readonly isDestructive: boolean
|
|
119
119
|
/** For `edit` and `write` calls, when the agent could compute it. */
|
|
120
120
|
readonly preview?: AcpFileChangePreview
|
|
121
|
+
/**
|
|
122
|
+
* True on a call the agent asks about every time, whatever the person
|
|
123
|
+
* said before. An `approve_all` given to a request holding one approves
|
|
124
|
+
* that request only. Absent on an ordinary call and from an older agent.
|
|
125
|
+
*/
|
|
126
|
+
readonly alwaysAsk?: true
|
|
121
127
|
}[]
|
|
122
128
|
}
|
|
123
129
|
|
package/src/types/agent/base.ts
CHANGED
|
@@ -226,6 +226,10 @@ export interface BaseAgentConfig {
|
|
|
226
226
|
*/
|
|
227
227
|
thinking?: import('../provider/index.js').ThinkingConfig
|
|
228
228
|
effort?: import('../provider/index.js').ReasoningEffort
|
|
229
|
+
/** How the turn bounds its reasoning; see {@link import('../session/config.js').TurnConfig.reasoning}. */
|
|
230
|
+
reasoning?: import('../session/config.js').TurnConfig['reasoning']
|
|
231
|
+
/** Ask once for a check of edits before a turn ends; see {@link import('../session/config.js').TurnConfig.completionAudit}. */
|
|
232
|
+
completionAudit?: boolean
|
|
229
233
|
|
|
230
234
|
/**
|
|
231
235
|
* Deduplicate a retried invocation instead of running it twice.
|
package/src/types/hitl/index.ts
CHANGED
|
@@ -70,6 +70,14 @@ export type HITLResumeDecision =
|
|
|
70
70
|
modifications: ToolModification[]
|
|
71
71
|
/** See the `approve_tools` field of the same name. */
|
|
72
72
|
confirmedEscalations?: readonly string[]
|
|
73
|
+
/**
|
|
74
|
+
* Why a policy (not a person) denied a call, by call id. A `deny` modification
|
|
75
|
+
* whose id is listed here carries this text to the model in place of the
|
|
76
|
+
* generic "declined" answer and is not recorded as a person's No. It lets a
|
|
77
|
+
* handler with nobody to ask refuse one call of a batch for its own reason
|
|
78
|
+
* while the other calls in the batch run.
|
|
79
|
+
*/
|
|
80
|
+
policyRefusals?: Readonly<Record<string, string>>
|
|
73
81
|
}
|
|
74
82
|
| {
|
|
75
83
|
action: 'reject_tools'
|
package/src/types/ids/index.ts
CHANGED
|
@@ -11,7 +11,7 @@ import type { Id } from './brand.js'
|
|
|
11
11
|
* for values received from JSON, flags, URLs, or other untyped boundaries.
|
|
12
12
|
*/
|
|
13
13
|
/**
|
|
14
|
-
* One turn of a session: a user prompt (or a goal round
|
|
14
|
+
* One turn of a session: a user prompt (or a goal round or a
|
|
15
15
|
* verification step) and everything the agent did to answer it. Recorded in
|
|
16
16
|
* the session log between `turn_started` and `turn_completed`/`turn_failed`.
|
|
17
17
|
*/
|
|
@@ -179,6 +179,19 @@ export interface LLMProvider {
|
|
|
179
179
|
thinking?: import('./chat.js').ThinkingConfig,
|
|
180
180
|
): readonly import('./chat.js').ReasoningEffort[] | undefined
|
|
181
181
|
|
|
182
|
+
/**
|
|
183
|
+
* Whether `model` takes a forced tool choice (`toolChoice: 'required'` or a
|
|
184
|
+
* named function) under the thinking configuration the request will carry.
|
|
185
|
+
*
|
|
186
|
+
* The kernel asks before it requires a tool call on a step it wants to act,
|
|
187
|
+
* and when the answer is `false` it keeps the step at low effort and asks the
|
|
188
|
+
* model in words instead of sending a choice the driver would refuse. Optional:
|
|
189
|
+
* a provider that does not declare it is treated as taking the choice, so
|
|
190
|
+
* every existing driver behaves as before. A wrapper that rebuilds a provider
|
|
191
|
+
* forwards it.
|
|
192
|
+
*/
|
|
193
|
+
acceptsForcedToolChoiceFor?(model: string, thinking?: import('./chat.js').ThinkingConfig): boolean
|
|
194
|
+
|
|
182
195
|
/**
|
|
183
196
|
* The effort a model uses when a request omits an explicit level.
|
|
184
197
|
*
|
|
@@ -68,6 +68,33 @@ export interface TurnConfig {
|
|
|
68
68
|
* high-effort and silently was not is worse than a startup error.
|
|
69
69
|
*/
|
|
70
70
|
effort?: import('../provider/index.js').ReasoningEffort
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* How the turn bounds its reasoning. On by default.
|
|
74
|
+
*
|
|
75
|
+
* Two guards live here. A step that streams more than `maxTokens` of
|
|
76
|
+
* reasoning before it has made a call is cut short, and the model is told
|
|
77
|
+
* to act; when the cap is absent it is 24,000 tokens at medium effort and
|
|
78
|
+
* above and not applied below that, and `0` removes it. The stall monitor
|
|
79
|
+
* counts steps that changed nothing (the task list does not count), nudges
|
|
80
|
+
* the model after a run of them and then makes the next step an action step;
|
|
81
|
+
* `stall: false` turns it off.
|
|
82
|
+
*/
|
|
83
|
+
reasoning?: import('../../runtime/query/turn/stall-monitor.js').ReasoningPaceConfig
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Ask once, before a turn that changed files ends, for a check of the change.
|
|
87
|
+
*
|
|
88
|
+
* The audit reads the turn's own record: a successful `edit`, `write`,
|
|
89
|
+
* `apply_patch` or `notebook_edit` call is a change, and a successful shell
|
|
90
|
+
* call after the last change that runs a test, lint, format-check, typecheck
|
|
91
|
+
* or build target is a check. When the model tries to end the turn with a
|
|
92
|
+
* change and no check after it, one reminder is added and the loop goes on.
|
|
93
|
+
* That is the only block a turn gets, so the audit cannot trap a run.
|
|
94
|
+
*
|
|
95
|
+
* Off when absent, so an embedding host sees no change.
|
|
96
|
+
*/
|
|
97
|
+
completionAudit?: boolean
|
|
71
98
|
/** Provider-hosted search for this turn. Explicit opt-in; no local network permission. */
|
|
72
99
|
webSearch?: import('../provider/index.js').ChatCompletionParams['webSearch']
|
|
73
100
|
/** Cumulative parent-and-descendant tokens; 0 is unlimited with usage accounting. */
|
|
@@ -736,6 +736,25 @@ type CoreSessionEvent =
|
|
|
736
736
|
kind: 'output' | 'notice'
|
|
737
737
|
text: string
|
|
738
738
|
}
|
|
739
|
+
/**
|
|
740
|
+
* A recall step put stored memories into the conversation for this turn:
|
|
741
|
+
* the ones newly added on that step, never ones the history already
|
|
742
|
+
* carried. Emitted after the entry was recorded, so a host can show which
|
|
743
|
+
* memories went with a message and let the person delete them.
|
|
744
|
+
*/
|
|
745
|
+
| {
|
|
746
|
+
type: 'memory_recalled'
|
|
747
|
+
sessionId: SessionId
|
|
748
|
+
turnId?: TurnId
|
|
749
|
+
memories: Array<{
|
|
750
|
+
id: string
|
|
751
|
+
name?: string
|
|
752
|
+
type?: string
|
|
753
|
+
title: string
|
|
754
|
+
origin: 'operator' | 'model' | 'derived'
|
|
755
|
+
updatedAt: number
|
|
756
|
+
}>
|
|
757
|
+
}
|
|
739
758
|
/**
|
|
740
759
|
* What the turn learned was written to the host's memory store: its
|
|
741
760
|
* decisions, discoveries and failures as one entry a later session can
|
|
@@ -255,6 +255,23 @@ export interface RecordedContextItem {
|
|
|
255
255
|
/** Lowercase words joined by hyphens (for example `repository`). */
|
|
256
256
|
readonly key: string
|
|
257
257
|
readonly text: string
|
|
258
|
+
/**
|
|
259
|
+
* The stored memories the text carries, when it is recalled memory. Once
|
|
260
|
+
* the entry is recorded the loop reports them with a `memory_recalled`
|
|
261
|
+
* event; an item that adds nothing reports nothing.
|
|
262
|
+
*/
|
|
263
|
+
readonly recalledMemories?: readonly RecalledMemory[]
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/** One stored memory a recall step put into the conversation. */
|
|
267
|
+
export interface RecalledMemory {
|
|
268
|
+
readonly id: string
|
|
269
|
+
readonly name?: string
|
|
270
|
+
readonly type?: string
|
|
271
|
+
readonly title: string
|
|
272
|
+
/** Who wrote it: the operator, the model (`save_memory`), or a turn on its own. */
|
|
273
|
+
readonly origin: 'operator' | 'model' | 'derived'
|
|
274
|
+
readonly updatedAt: number
|
|
258
275
|
}
|
|
259
276
|
|
|
260
277
|
/**
|
|
@@ -141,6 +141,8 @@ export interface RecordEnvelope {
|
|
|
141
141
|
|
|
142
142
|
export const OriginSchema = z
|
|
143
143
|
.object({
|
|
144
|
+
// 'resident' and 'resident-step' are no longer written; they stay so logs
|
|
145
|
+
// recorded while the resident feature existed still parse.
|
|
144
146
|
protocol: z.enum(['cli', 'sdk', 'ag-ui', 'a2a', 'acp', 'http', 'desktop', 'resident']),
|
|
145
147
|
externalSessionId: text.optional(),
|
|
146
148
|
externalTurnId: text.optional(),
|
|
@@ -671,6 +673,7 @@ const SESSION_EVENT_TYPE_TABLE: Record<SessionEventType, true> = {
|
|
|
671
673
|
background_job_exited: true,
|
|
672
674
|
monitor_event: true,
|
|
673
675
|
memory_consolidated: true,
|
|
676
|
+
memory_recalled: true,
|
|
674
677
|
turn_completed: true,
|
|
675
678
|
turn_failed: true,
|
|
676
679
|
capability_warning: true,
|
|
@@ -92,9 +92,10 @@ export type OriginProtocol =
|
|
|
92
92
|
| 'acp'
|
|
93
93
|
| 'http'
|
|
94
94
|
| 'desktop'
|
|
95
|
+
// Kept so logs written while the resident feature existed still parse.
|
|
95
96
|
| 'resident'
|
|
96
97
|
|
|
97
|
-
/** What kind of work a turn is. A prompt, a goal round
|
|
98
|
+
/** What kind of work a turn is. A prompt, a goal round and a verification step are each a new turn. 'resident-step' is no longer written; it stays in the union so older logs still parse. */
|
|
98
99
|
export type TurnOriginKind = 'prompt' | 'goal-round' | 'resident-step' | 'verification'
|
|
99
100
|
|
|
100
101
|
export interface Origin {
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The learning module used to live under `manager/resident` and carried a
|
|
3
|
-
* `Resident` prefix. Learning is a feature of all of Namzu, not of residents,
|
|
4
|
-
* so every name now lives in `learning/` without the prefix. The old names stay
|
|
5
|
-
* as aliases of the new ones until the next major release.
|
|
6
|
-
*/
|
|
7
|
-
import { runLearningCycle } from './cycle.js';
|
|
8
|
-
import type * as Cycle from './cycle.js';
|
|
9
|
-
import type * as Observation from './observation.js';
|
|
10
|
-
import { hashLearningSkill, projectLearning } from './skill.js';
|
|
11
|
-
import type * as Skill from './skill.js';
|
|
12
|
-
import { SqliteLearningStore, runStoredLearningCycle, runStoredLearningFromObservations } from './store.js';
|
|
13
|
-
import type * as Store from './store.js';
|
|
14
|
-
/** @deprecated Renamed to `LearningEvidence`; the old name is removed in the next major release. */
|
|
15
|
-
export type ResidentLearningEvidence = Skill.LearningEvidence;
|
|
16
|
-
/** @deprecated Renamed to `LearningSkillCandidate`; the old name is removed in the next major release. */
|
|
17
|
-
export type ResidentSkillCandidate = Skill.LearningSkillCandidate;
|
|
18
|
-
/** @deprecated Renamed to `LearnedSkill`; the old name is removed in the next major release. */
|
|
19
|
-
export type ResidentLearnedSkill = Skill.LearnedSkill;
|
|
20
|
-
/** @deprecated Renamed to `LearningState`; the old name is removed in the next major release. */
|
|
21
|
-
export type ResidentLearningState = Skill.LearningState;
|
|
22
|
-
/** @deprecated Renamed to `LearningProfileUpdate`; the old name is removed in the next major release. */
|
|
23
|
-
export type ResidentProfileUpdate = Skill.LearningProfileUpdate;
|
|
24
|
-
/** @deprecated Renamed to `LearningSkillEvaluation`; the old name is removed in the next major release. */
|
|
25
|
-
export type ResidentSkillEvaluation = Skill.LearningSkillEvaluation;
|
|
26
|
-
/** @deprecated Renamed to `LearningProjectionOptions`; the old name is removed in the next major release. */
|
|
27
|
-
export type ResidentLearningProjectionOptions = Skill.LearningProjectionOptions;
|
|
28
|
-
/** @deprecated Renamed to `LearningSource`; the old name is removed in the next major release. */
|
|
29
|
-
export type ResidentLearningSource = Skill.LearningSource;
|
|
30
|
-
/** @deprecated Renamed to `LearningProjection`; the old name is removed in the next major release. */
|
|
31
|
-
export type ResidentLearningProjection = Skill.LearningProjection;
|
|
32
|
-
/** @deprecated Renamed to `LearningStage`; the old name is removed in the next major release. */
|
|
33
|
-
export type ResidentLearningStage = Cycle.LearningStage;
|
|
34
|
-
/** @deprecated Renamed to `LearningReceipt`; the old name is removed in the next major release. */
|
|
35
|
-
export type ResidentLearningReceipt = Cycle.LearningReceipt;
|
|
36
|
-
/** @deprecated Renamed to `LearningConsumption`; the old name is removed in the next major release. */
|
|
37
|
-
export type ResidentLearningConsumption = Cycle.LearningConsumption;
|
|
38
|
-
/** @deprecated Renamed to `LearningCycleEvent`; the old name is removed in the next major release. */
|
|
39
|
-
export type ResidentLearningCycleEvent = Cycle.LearningCycleEvent;
|
|
40
|
-
/** @deprecated Renamed to `LearningCycleContext`; the old name is removed in the next major release. */
|
|
41
|
-
export type ResidentLearningCycleContext = Cycle.LearningCycleContext;
|
|
42
|
-
/** @deprecated Renamed to `LearningGenerationContext`; the old name is removed in the next major release. */
|
|
43
|
-
export type ResidentLearningGenerationContext = Cycle.LearningGenerationContext;
|
|
44
|
-
/** @deprecated Renamed to `LearningExplorationContext`; the old name is removed in the next major release. */
|
|
45
|
-
export type ResidentLearningExplorationContext = Cycle.LearningExplorationContext;
|
|
46
|
-
/** @deprecated Renamed to `LearningExploration`; the old name is removed in the next major release. */
|
|
47
|
-
export type ResidentLearningExploration = Cycle.LearningExploration;
|
|
48
|
-
/** @deprecated Renamed to `LearningEvaluationContext`; the old name is removed in the next major release. */
|
|
49
|
-
export type ResidentLearningEvaluationContext = Cycle.LearningEvaluationContext;
|
|
50
|
-
/** @deprecated Renamed to `LearningCycleOptions`; the old name is removed in the next major release. */
|
|
51
|
-
export type ResidentLearningCycleOptions = Cycle.LearningCycleOptions;
|
|
52
|
-
/** @deprecated Renamed to `LearningCycleResult`; the old name is removed in the next major release. */
|
|
53
|
-
export type ResidentLearningCycleResult = Cycle.LearningCycleResult;
|
|
54
|
-
/** @deprecated Renamed to `SqliteLearningStoreOptions`; the old name is removed in the next major release. */
|
|
55
|
-
export type SqliteResidentLearningStoreOptions = Store.SqliteLearningStoreOptions;
|
|
56
|
-
/** @deprecated Renamed to `LearningArtifact`; the old name is removed in the next major release. */
|
|
57
|
-
export type ResidentLearningArtifact = Store.LearningArtifact;
|
|
58
|
-
/** @deprecated Renamed to `LearningRecordedUsage`; the old name is removed in the next major release. */
|
|
59
|
-
export type ResidentLearningRecordedUsage = Store.LearningRecordedUsage;
|
|
60
|
-
/** @deprecated Renamed to `LearningCycleSummary`; the old name is removed in the next major release. */
|
|
61
|
-
export type ResidentLearningCycleSummary = Store.LearningCycleSummary;
|
|
62
|
-
/** @deprecated Renamed to `LearningDiscoveryOptions`; the old name is removed in the next major release. */
|
|
63
|
-
export type ResidentLearningDiscoveryOptions = Store.LearningDiscoveryOptions;
|
|
64
|
-
/** @deprecated Renamed to `LearningDiscoveryResult`; the old name is removed in the next major release. */
|
|
65
|
-
export type ResidentLearningDiscoveryResult = Store.LearningDiscoveryResult;
|
|
66
|
-
/** @deprecated Renamed to `LearningObservation`; the old name is removed in the next major release. */
|
|
67
|
-
export type ResidentLearningObservation = Observation.LearningObservation;
|
|
68
|
-
/** @deprecated Renamed to `LearningObservationRecord`; the old name is removed in the next major release. */
|
|
69
|
-
export type ResidentLearningObservationRecord = Observation.LearningObservationRecord;
|
|
70
|
-
/** @deprecated Renamed to `LearningTarget`; the old name is removed in the next major release. */
|
|
71
|
-
export type ResidentLearningTarget = Observation.LearningTarget;
|
|
72
|
-
/** @deprecated Renamed to `hashLearningSkill`; the old name is removed in the next major release. */
|
|
73
|
-
export declare const hashResidentSkill: typeof hashLearningSkill;
|
|
74
|
-
/** @deprecated Renamed to `projectLearning`; the old name is removed in the next major release. */
|
|
75
|
-
export declare const projectResidentLearning: typeof projectLearning;
|
|
76
|
-
/** @deprecated Renamed to `runLearningCycle`; the old name is removed in the next major release. */
|
|
77
|
-
export declare const runResidentLearningCycle: typeof runLearningCycle;
|
|
78
|
-
/** @deprecated Renamed to `runStoredLearningCycle`; the old name is removed in the next major release. */
|
|
79
|
-
export declare const runStoredResidentLearningCycle: typeof runStoredLearningCycle;
|
|
80
|
-
/** @deprecated Renamed to `runStoredLearningFromObservations`; the old name is removed in the next major release. */
|
|
81
|
-
export declare const runStoredResidentLearningFromObservations: typeof runStoredLearningFromObservations;
|
|
82
|
-
/** @deprecated Renamed to `SqliteLearningStore`; the old name is removed in the next major release. */
|
|
83
|
-
export declare const SqliteResidentLearningStore: typeof SqliteLearningStore;
|
|
84
|
-
/** @deprecated Renamed to `SqliteLearningStore`; the old name is removed in the next major release. */
|
|
85
|
-
export type SqliteResidentLearningStore = SqliteLearningStore;
|
|
86
|
-
//# sourceMappingURL=deprecated.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deprecated.d.ts","sourceRoot":"","sources":["../../src/learning/deprecated.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The learning module used to live under `manager/resident` and carried a
|
|
3
|
-
* `Resident` prefix. Learning is a feature of all of Namzu, not of residents,
|
|
4
|
-
* so every name now lives in `learning/` without the prefix. The old names stay
|
|
5
|
-
* as aliases of the new ones until the next major release.
|
|
6
|
-
*/
|
|
7
|
-
import { runLearningCycle } from './cycle.js';
|
|
8
|
-
import { hashLearningSkill, projectLearning } from './skill.js';
|
|
9
|
-
import { SqliteLearningStore, runStoredLearningCycle, runStoredLearningFromObservations, } from './store.js';
|
|
10
|
-
/** @deprecated Renamed to `hashLearningSkill`; the old name is removed in the next major release. */
|
|
11
|
-
export const hashResidentSkill = hashLearningSkill;
|
|
12
|
-
/** @deprecated Renamed to `projectLearning`; the old name is removed in the next major release. */
|
|
13
|
-
export const projectResidentLearning = projectLearning;
|
|
14
|
-
/** @deprecated Renamed to `runLearningCycle`; the old name is removed in the next major release. */
|
|
15
|
-
export const runResidentLearningCycle = runLearningCycle;
|
|
16
|
-
/** @deprecated Renamed to `runStoredLearningCycle`; the old name is removed in the next major release. */
|
|
17
|
-
export const runStoredResidentLearningCycle = runStoredLearningCycle;
|
|
18
|
-
/** @deprecated Renamed to `runStoredLearningFromObservations`; the old name is removed in the next major release. */
|
|
19
|
-
export const runStoredResidentLearningFromObservations = runStoredLearningFromObservations;
|
|
20
|
-
/** @deprecated Renamed to `SqliteLearningStore`; the old name is removed in the next major release. */
|
|
21
|
-
export const SqliteResidentLearningStore = SqliteLearningStore;
|
|
22
|
-
//# sourceMappingURL=deprecated.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deprecated.js","sourceRoot":"","sources":["../../src/learning/deprecated.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAG7C,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE/D,OAAO,EACN,mBAAmB,EACnB,sBAAsB,EACtB,iCAAiC,GACjC,MAAM,YAAY,CAAA;AA0FnB,qGAAqG;AACrG,MAAM,CAAC,MAAM,iBAAiB,GAAG,iBAAiB,CAAA;AAElD,mGAAmG;AACnG,MAAM,CAAC,MAAM,uBAAuB,GAAG,eAAe,CAAA;AAEtD,oGAAoG;AACpG,MAAM,CAAC,MAAM,wBAAwB,GAAG,gBAAgB,CAAA;AAExD,0GAA0G;AAC1G,MAAM,CAAC,MAAM,8BAA8B,GAAG,sBAAsB,CAAA;AAEpE,qHAAqH;AACrH,MAAM,CAAC,MAAM,yCAAyC,GAAG,iCAAiC,CAAA;AAE1F,uGAAuG;AACvG,MAAM,CAAC,MAAM,2BAA2B,GAAG,mBAAmB,CAAA"}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import type { ResidentAgendaState } from './agenda.js';
|
|
2
|
-
import { type ResidentHistoryReadBudget } from './history-disk.js';
|
|
3
|
-
/**
|
|
4
|
-
* @experimental An immutable upper boundary; new work requires a new source.
|
|
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 ResidentActivityScope {
|
|
9
|
-
readonly tenantId: string;
|
|
10
|
-
readonly agentKey: string;
|
|
11
|
-
readonly throughRevision: number;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* @experimental Admission is authority to inspect an attempt, not proof that it executed.
|
|
15
|
-
*
|
|
16
|
-
* @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.
|
|
17
|
-
*/
|
|
18
|
-
export interface ResidentAdmission {
|
|
19
|
-
readonly revision: number;
|
|
20
|
-
readonly pursuitRevision: number;
|
|
21
|
-
readonly pursuitId: string;
|
|
22
|
-
readonly claimId: string;
|
|
23
|
-
readonly step: number;
|
|
24
|
-
readonly objective: string;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* @experimental Settlement is an agenda decision, not proof of verification or delivery.
|
|
28
|
-
*
|
|
29
|
-
* @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.
|
|
30
|
-
*/
|
|
31
|
-
export interface ResidentSettlement {
|
|
32
|
-
readonly revision: number;
|
|
33
|
-
readonly pursuitId: string;
|
|
34
|
-
readonly claimId: string;
|
|
35
|
-
readonly outcome: 'wait' | 'complete' | 'blocked';
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* @experimental Forward pages; cursor is the next revision to inspect, initially 1.
|
|
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 ResidentActivityOptions {
|
|
43
|
-
readonly cursor?: number;
|
|
44
|
-
readonly maxRevisions?: number;
|
|
45
|
-
readonly maxReadBytes?: number;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* @experimental Gaps stay explicit; counts cover only the scanned revision range.
|
|
49
|
-
*
|
|
50
|
-
* @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.
|
|
51
|
-
*/
|
|
52
|
-
export interface ResidentActivityPage {
|
|
53
|
-
readonly scope: ResidentActivityScope;
|
|
54
|
-
readonly fromRevision: number;
|
|
55
|
-
readonly throughRevision: number;
|
|
56
|
-
readonly nextCursor: number | null;
|
|
57
|
-
readonly scannedBytes: number;
|
|
58
|
-
readonly unavailableRevisions: readonly number[];
|
|
59
|
-
readonly admissions: readonly ResidentAdmission[];
|
|
60
|
-
readonly settlements: readonly ResidentSettlement[];
|
|
61
|
-
readonly archivedPursuits: readonly string[];
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* @experimental A backend must enforce scope, cancellation and read bounds.
|
|
65
|
-
*
|
|
66
|
-
* @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.
|
|
67
|
-
*/
|
|
68
|
-
export interface ResidentActivitySource {
|
|
69
|
-
readonly scope: ResidentActivityScope;
|
|
70
|
-
read(options?: ResidentActivityOptions, signal?: AbortSignal): Promise<ResidentActivityPage>;
|
|
71
|
-
}
|
|
72
|
-
/** Internal adapter for the immutable disk agenda. */
|
|
73
|
-
export declare function createResidentActivitySource(scopeInput: ResidentActivityScope, load: (revision: number, budget: ResidentHistoryReadBudget) => Promise<ResidentAgendaState>): ResidentActivitySource;
|
|
74
|
-
//# sourceMappingURL=activity.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../../src/manager/resident/activity.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,EAA4B,KAAK,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAE5F;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;CAChC;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC1B;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAA;CACjD;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAC9B;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAA;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,oBAAoB,EAAE,SAAS,MAAM,EAAE,CAAA;IAChD,QAAQ,CAAC,UAAU,EAAE,SAAS,iBAAiB,EAAE,CAAA;IACjD,QAAQ,CAAC,WAAW,EAAE,SAAS,kBAAkB,EAAE,CAAA;IACnD,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAA;CAC5C;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAA;IACrC,IAAI,CAAC,OAAO,CAAC,EAAE,uBAAuB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;CAC5F;AAED,sDAAsD;AACtD,wBAAgB,4BAA4B,CAC3C,UAAU,EAAE,qBAAqB,EACjC,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,yBAAyB,KAAK,OAAO,CAAC,mBAAmB,CAAC,GACzF,sBAAsB,CA+HxB"}
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { ResidentHistoryPageLimit } from './history-disk.js';
|
|
3
|
-
/** Internal adapter for the immutable disk agenda. */
|
|
4
|
-
export function createResidentActivitySource(scopeInput, load) {
|
|
5
|
-
const scope = Object.freeze(z
|
|
6
|
-
.object({
|
|
7
|
-
tenantId: z.string().uuid(),
|
|
8
|
-
agentKey: z.string().min(1).max(200),
|
|
9
|
-
throughRevision: z.number().int().positive().safe(),
|
|
10
|
-
})
|
|
11
|
-
.parse(scopeInput));
|
|
12
|
-
return {
|
|
13
|
-
scope,
|
|
14
|
-
async read(options = {}, signal) {
|
|
15
|
-
const from = z
|
|
16
|
-
.number()
|
|
17
|
-
.int()
|
|
18
|
-
.positive()
|
|
19
|
-
.max(scope.throughRevision)
|
|
20
|
-
.parse(options.cursor ?? 1);
|
|
21
|
-
const count = z
|
|
22
|
-
.number()
|
|
23
|
-
.int()
|
|
24
|
-
.positive()
|
|
25
|
-
.max(32)
|
|
26
|
-
.parse(options.maxRevisions ?? 32);
|
|
27
|
-
const budget = {
|
|
28
|
-
remaining: z
|
|
29
|
-
.number()
|
|
30
|
-
.int()
|
|
31
|
-
.positive()
|
|
32
|
-
.max(8 * 1024 * 1024)
|
|
33
|
-
.parse(options.maxReadBytes ?? 8 * 1024 * 1024),
|
|
34
|
-
bytesRead: 0,
|
|
35
|
-
signal,
|
|
36
|
-
};
|
|
37
|
-
const unavailable = new Set();
|
|
38
|
-
const read = async (revision) => {
|
|
39
|
-
signal?.throwIfAborted();
|
|
40
|
-
try {
|
|
41
|
-
const state = await load(revision, budget);
|
|
42
|
-
if (state.tenantId !== scope.tenantId ||
|
|
43
|
-
state.agentKey !== scope.agentKey ||
|
|
44
|
-
state.revision !== revision)
|
|
45
|
-
throw new Error('Resident activity scope mismatch.');
|
|
46
|
-
return state;
|
|
47
|
-
}
|
|
48
|
-
catch (error) {
|
|
49
|
-
signal?.throwIfAborted();
|
|
50
|
-
if (error instanceof ResidentHistoryPageLimit)
|
|
51
|
-
throw error;
|
|
52
|
-
unavailable.add(revision);
|
|
53
|
-
return null;
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
const admissions = [];
|
|
57
|
-
const settlements = [];
|
|
58
|
-
const archivedPursuits = [];
|
|
59
|
-
let through = from - 1;
|
|
60
|
-
try {
|
|
61
|
-
let before = from > 1 ? await read(from - 1) : null;
|
|
62
|
-
for (let revision = from; revision <= Math.min(scope.throughRevision, from + count - 1); revision++) {
|
|
63
|
-
const after = await read(revision);
|
|
64
|
-
if (before && after) {
|
|
65
|
-
for (const pursuit of after.pursuits) {
|
|
66
|
-
const previous = before.pursuits.find((p) => p.id === pursuit.id)?.state;
|
|
67
|
-
const current = pursuit.state;
|
|
68
|
-
if (!previous)
|
|
69
|
-
continue;
|
|
70
|
-
if (current.revision === previous.revision + 1 &&
|
|
71
|
-
previous.phase !== 'running' &&
|
|
72
|
-
current.phase === 'running' &&
|
|
73
|
-
current.claimId &&
|
|
74
|
-
current.stepsAdmitted === previous.stepsAdmitted + 1) {
|
|
75
|
-
admissions.push({
|
|
76
|
-
revision,
|
|
77
|
-
pursuitRevision: current.revision,
|
|
78
|
-
pursuitId: pursuit.id,
|
|
79
|
-
claimId: current.claimId,
|
|
80
|
-
step: current.stepsAdmitted,
|
|
81
|
-
objective: current.objective,
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
if (current.revision === previous.revision + 1 &&
|
|
85
|
-
previous.phase === 'running' &&
|
|
86
|
-
previous.claimId &&
|
|
87
|
-
current.phase !== 'running' &&
|
|
88
|
-
current.claimId === null &&
|
|
89
|
-
current.stepsAdmitted === previous.stepsAdmitted) {
|
|
90
|
-
settlements.push({
|
|
91
|
-
revision,
|
|
92
|
-
pursuitId: pursuit.id,
|
|
93
|
-
claimId: previous.claimId,
|
|
94
|
-
outcome: current.phase === 'waiting' ? 'wait' : current.phase,
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
if (after.archiveHead === revision)
|
|
99
|
-
for (const pursuit of before.pursuits)
|
|
100
|
-
if (!after.pursuits.some((p) => p.id === pursuit.id))
|
|
101
|
-
archivedPursuits.push(pursuit.id);
|
|
102
|
-
}
|
|
103
|
-
through = revision;
|
|
104
|
-
before = after;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
catch (error) {
|
|
108
|
-
if (!(error instanceof ResidentHistoryPageLimit))
|
|
109
|
-
throw error;
|
|
110
|
-
}
|
|
111
|
-
return {
|
|
112
|
-
scope,
|
|
113
|
-
fromRevision: from,
|
|
114
|
-
throughRevision: through,
|
|
115
|
-
nextCursor: through < scope.throughRevision ? through + 1 : null,
|
|
116
|
-
scannedBytes: budget.bytesRead,
|
|
117
|
-
unavailableRevisions: [...unavailable],
|
|
118
|
-
admissions,
|
|
119
|
-
settlements,
|
|
120
|
-
archivedPursuits,
|
|
121
|
-
};
|
|
122
|
-
},
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
//# sourceMappingURL=activity.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"activity.js","sourceRoot":"","sources":["../../../src/manager/resident/activity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,wBAAwB,EAAkC,MAAM,mBAAmB,CAAA;AA6E5F,sDAAsD;AACtD,MAAM,UAAU,4BAA4B,CAC3C,UAAiC,EACjC,IAA2F;IAE3F,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAC1B,CAAC;SACC,MAAM,CAAC;QACP,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;QAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QACpC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE;KACnD,CAAC;SACD,KAAK,CAAC,UAAU,CAAC,CACnB,CAAA;IACD,OAAO;QACN,KAAK;QACL,KAAK,CAAC,IAAI,CAAC,UAAmC,EAAE,EAAE,MAAoB;YACrE,MAAM,IAAI,GAAG,CAAC;iBACZ,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC;iBAC1B,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAA;YAC5B,MAAM,KAAK,GAAG,CAAC;iBACb,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,GAAG,CAAC,EAAE,CAAC;iBACP,KAAK,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAA;YACnC,MAAM,MAAM,GAA8B;gBACzC,SAAS,EAAE,CAAC;qBACV,MAAM,EAAE;qBACR,GAAG,EAAE;qBACL,QAAQ,EAAE;qBACV,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;qBACpB,KAAK,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;gBAChD,SAAS,EAAE,CAAC;gBACZ,MAAM;aACN,CAAA;YACD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAA;YACrC,MAAM,IAAI,GAAG,KAAK,EAAE,QAAgB,EAAE,EAAE;gBACvC,MAAM,EAAE,cAAc,EAAE,CAAA;gBACxB,IAAI,CAAC;oBACJ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;oBAC1C,IACC,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ;wBACjC,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ;wBACjC,KAAK,CAAC,QAAQ,KAAK,QAAQ;wBAE3B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;oBACrD,OAAO,KAAK,CAAA;gBACb,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,MAAM,EAAE,cAAc,EAAE,CAAA;oBACxB,IAAI,KAAK,YAAY,wBAAwB;wBAAE,MAAM,KAAK,CAAA;oBAC1D,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;oBACzB,OAAO,IAAI,CAAA;gBACZ,CAAC;YACF,CAAC,CAAA;YACD,MAAM,UAAU,GAAwB,EAAE,CAAA;YAC1C,MAAM,WAAW,GAAyB,EAAE,CAAA;YAC5C,MAAM,gBAAgB,GAAa,EAAE,CAAA;YACrC,IAAI,OAAO,GAAG,IAAI,GAAG,CAAC,CAAA;YACtB,IAAI,CAAC;gBACJ,IAAI,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;gBACnD,KACC,IAAI,QAAQ,GAAG,IAAI,EACnB,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,EAC7D,QAAQ,EAAE,EACT,CAAC;oBACF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAA;oBAClC,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;wBACrB,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;4BACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,EAAE,KAAK,CAAA;4BACxE,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAA;4BAC7B,IAAI,CAAC,QAAQ;gCAAE,SAAQ;4BACvB,IACC,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,GAAG,CAAC;gCAC1C,QAAQ,CAAC,KAAK,KAAK,SAAS;gCAC5B,OAAO,CAAC,KAAK,KAAK,SAAS;gCAC3B,OAAO,CAAC,OAAO;gCACf,OAAO,CAAC,aAAa,KAAK,QAAQ,CAAC,aAAa,GAAG,CAAC,EACnD,CAAC;gCACF,UAAU,CAAC,IAAI,CAAC;oCACf,QAAQ;oCACR,eAAe,EAAE,OAAO,CAAC,QAAQ;oCACjC,SAAS,EAAE,OAAO,CAAC,EAAE;oCACrB,OAAO,EAAE,OAAO,CAAC,OAAO;oCACxB,IAAI,EAAE,OAAO,CAAC,aAAa;oCAC3B,SAAS,EAAE,OAAO,CAAC,SAAS;iCAC5B,CAAC,CAAA;4BACH,CAAC;4BACD,IACC,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,GAAG,CAAC;gCAC1C,QAAQ,CAAC,KAAK,KAAK,SAAS;gCAC5B,QAAQ,CAAC,OAAO;gCAChB,OAAO,CAAC,KAAK,KAAK,SAAS;gCAC3B,OAAO,CAAC,OAAO,KAAK,IAAI;gCACxB,OAAO,CAAC,aAAa,KAAK,QAAQ,CAAC,aAAa,EAC/C,CAAC;gCACF,WAAW,CAAC,IAAI,CAAC;oCAChB,QAAQ;oCACR,SAAS,EAAE,OAAO,CAAC,EAAE;oCACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;oCACzB,OAAO,EAAE,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK;iCAC7D,CAAC,CAAA;4BACH,CAAC;wBACF,CAAC;wBACD,IAAI,KAAK,CAAC,WAAW,KAAK,QAAQ;4BACjC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ;gCACpC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;oCACnD,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;oBACrC,CAAC;oBACD,OAAO,GAAG,QAAQ,CAAA;oBAClB,MAAM,GAAG,KAAK,CAAA;gBACf,CAAC;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,CAAC,CAAC,KAAK,YAAY,wBAAwB,CAAC;oBAAE,MAAM,KAAK,CAAA;YAC9D,CAAC;YACD,OAAO;gBACN,KAAK;gBACL,YAAY,EAAE,IAAI;gBAClB,eAAe,EAAE,OAAO;gBACxB,UAAU,EAAE,OAAO,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;gBAChE,YAAY,EAAE,MAAM,CAAC,SAAS;gBAC9B,oBAAoB,EAAE,CAAC,GAAG,WAAW,CAAC;gBACtC,UAAU;gBACV,WAAW;gBACX,gBAAgB;aAChB,CAAA;QACF,CAAC;KACD,CAAA;AACF,CAAC"}
|