@migor/agentia 0.10.5 → 0.10.6
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 +128 -1
- package/README.md +1 -1
- package/dist/AGENTS.md +9 -1
- package/dist/container/container.js +3 -0
- package/dist/container/container.js.map +1 -1
- package/dist/core/abort.js +6 -1
- package/dist/core/abort.js.map +1 -1
- package/dist/core/json.js +4 -0
- package/dist/core/json.js.map +1 -1
- package/dist/core/limits.d.ts +5 -5
- package/dist/core/limits.js +5 -5
- package/dist/core/limits.js.map +1 -1
- package/dist/core/sse.d.ts +0 -13
- package/dist/core/sse.js +28 -2
- package/dist/core/sse.js.map +1 -1
- package/dist/core/timeout.d.ts +8 -0
- package/dist/core/timeout.js +19 -1
- package/dist/core/timeout.js.map +1 -1
- package/dist/core/trace.d.ts +7 -0
- package/dist/core/trace.js +7 -0
- package/dist/core/trace.js.map +1 -1
- package/dist/engine/loop.js +37 -11
- package/dist/engine/loop.js.map +1 -1
- package/dist/engine/mcp-server.d.ts +17 -1
- package/dist/engine/mcp-server.js +36 -2
- package/dist/engine/mcp-server.js.map +1 -1
- package/dist/engine/policy.js +5 -1
- package/dist/engine/policy.js.map +1 -1
- package/dist/engine/replay.js +63 -1
- package/dist/engine/replay.js.map +1 -1
- package/dist/engine/run-config.d.ts +6 -0
- package/dist/engine/run-config.js +15 -6
- package/dist/engine/run-config.js.map +1 -1
- package/dist/engine/spec.d.ts +6 -0
- package/dist/engine/spec.js.map +1 -1
- package/dist/engine/stop-reason.js +19 -1
- package/dist/engine/stop-reason.js.map +1 -1
- package/dist/engine/tool-events.d.ts +1 -0
- package/dist/engine/tool-events.js +7 -0
- package/dist/engine/tool-events.js.map +1 -1
- package/dist/engine/tracer.js +10 -3
- package/dist/engine/tracer.js.map +1 -1
- package/dist/engine/turn.d.ts +4 -12
- package/dist/engine/turn.js +89 -8
- package/dist/engine/turn.js.map +1 -1
- package/dist/engine/types.d.ts +10 -1
- package/dist/engine/types.js +1 -0
- package/dist/engine/types.js.map +1 -1
- package/dist/engine/usage.js +12 -4
- package/dist/engine/usage.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/integrations/anthropic.d.ts +9 -1
- package/dist/integrations/anthropic.js +42 -7
- package/dist/integrations/anthropic.js.map +1 -1
- package/dist/integrations/file-sink.d.ts +1 -0
- package/dist/integrations/file-sink.js +35 -32
- package/dist/integrations/file-sink.js.map +1 -1
- package/dist/integrations/mcp-http.js +33 -9
- package/dist/integrations/mcp-http.js.map +1 -1
- package/dist/integrations/mcp-protocol.js +33 -16
- package/dist/integrations/mcp-protocol.js.map +1 -1
- package/dist/integrations/metrics-otlp.js +4 -0
- package/dist/integrations/metrics-otlp.js.map +1 -1
- package/dist/integrations/metrics.js +17 -2
- package/dist/integrations/metrics.js.map +1 -1
- package/dist/integrations/openai.d.ts +6 -1
- package/dist/integrations/openai.js +45 -8
- package/dist/integrations/openai.js.map +1 -1
- package/dist/integrations/otlp.js +6 -0
- package/dist/integrations/otlp.js.map +1 -1
- package/dist/runtime/memory.d.ts +0 -8
- package/dist/runtime/memory.js +24 -2
- package/dist/runtime/memory.js.map +1 -1
- package/dist/runtime/run.js +34 -9
- package/dist/runtime/run.js.map +1 -1
- package/dist/store/fsStore.d.ts +2 -0
- package/dist/store/fsStore.js +38 -5
- package/dist/store/fsStore.js.map +1 -1
- package/dist/store/record.d.ts +40 -0
- package/dist/store/record.js +72 -0
- package/dist/store/record.js.map +1 -1
- package/dist/store/redisStore.js +15 -4
- package/dist/store/redisStore.js.map +1 -1
- package/dist/store/sqliteStore.js +39 -14
- package/dist/store/sqliteStore.js.map +1 -1
- package/dist/store/store.js +10 -4
- package/dist/store/store.js.map +1 -1
- package/dist/toolkit/module.js +1 -0
- package/dist/toolkit/module.js.map +1 -1
- package/dist/toolkit/prompt.js +12 -3
- package/dist/toolkit/prompt.js.map +1 -1
- package/dist/transport/approval-policy.d.ts +1 -1
- package/dist/transport/approval-policy.js +18 -3
- package/dist/transport/approval-policy.js.map +1 -1
- package/dist/transport/approval-supervisor.d.ts +15 -3
- package/dist/transport/approval-supervisor.js +37 -11
- package/dist/transport/approval-supervisor.js.map +1 -1
- package/dist/transport/async.d.ts +1 -0
- package/dist/transport/async.js +143 -23
- package/dist/transport/async.js.map +1 -1
- package/dist/transport/drain-gate.js +13 -1
- package/dist/transport/drain-gate.js.map +1 -1
- package/dist/transport/http-endpoints.js +7 -0
- package/dist/transport/http-endpoints.js.map +1 -1
- package/dist/transport/resume-scanner.d.ts +3 -0
- package/dist/transport/resume-scanner.js +10 -1
- package/dist/transport/resume-scanner.js.map +1 -1
- package/dist/transport/run-call-options.js +43 -1
- package/dist/transport/run-call-options.js.map +1 -1
- package/dist/transport/run-outcome.js +18 -1
- package/dist/transport/run-outcome.js.map +1 -1
- package/dist/transport/serve.js +10 -0
- package/dist/transport/serve.js.map +1 -1
- package/dist/transport/signal-supervisor.d.ts +3 -0
- package/dist/transport/signal-supervisor.js +5 -1
- package/dist/transport/signal-supervisor.js.map +1 -1
- package/dist/transport/stream-janitor.d.ts +45 -0
- package/dist/transport/stream-janitor.js +137 -0
- package/dist/transport/stream-janitor.js.map +1 -0
- package/dist/transport/task-wake-gate.d.ts +40 -0
- package/dist/transport/task-wake-gate.js +69 -0
- package/dist/transport/task-wake-gate.js.map +1 -0
- package/package.json +2 -2
package/dist/store/fsStore.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { appendFileSync, existsSync, mkdirSync, readFileSync, renameSync, rmSync, truncateSync, writeFileSync, } from 'node:fs';
|
|
1
|
+
import { appendFileSync, existsSync, mkdirSync, readFileSync, renameSync, rmSync, statSync, truncateSync, writeFileSync, } from 'node:fs';
|
|
2
2
|
import { dirname } from 'node:path';
|
|
3
|
-
import { parseTaskRecord } from './record.js';
|
|
3
|
+
import { parseTaskRecord, serializeTaskRecord } from './record.js';
|
|
4
4
|
import { cloneTaskRecord } from './store.js';
|
|
5
5
|
/**
|
|
6
6
|
* Agentia —— 文件宿主 TaskStore(spec §6.6:异步耐久 = 换宿主不换语义)。
|
|
@@ -25,6 +25,8 @@ export class FileTaskStore {
|
|
|
25
25
|
// (实测读数见 spec §10 2026-09-28 ref-due-index-measure)。runner 对缺失的 listDue 回退全表,语义不变。
|
|
26
26
|
byTask = new Map();
|
|
27
27
|
byKey = new Map(); // idempotencyKey → taskId
|
|
28
|
+
/** 启动读取失败后进入降级态:仍可追加新记录,但**禁止 compact**(否则空内存会重写掉旧文件) */
|
|
29
|
+
degraded = false;
|
|
28
30
|
constructor(file, onLoadError) {
|
|
29
31
|
this.file = file;
|
|
30
32
|
this.onLoadError = onLoadError;
|
|
@@ -41,7 +43,10 @@ export class FileTaskStore {
|
|
|
41
43
|
raw = readFileSync(this.file, 'utf8');
|
|
42
44
|
}
|
|
43
45
|
catch (err) {
|
|
44
|
-
//
|
|
46
|
+
// 读失败按空宿主启动(不击穿业务),但**必须出声**:否则宿主以为续跑扫描跑了,
|
|
47
|
+
// 实际一条旧任务都没读到;再调 compact 会把旧文件永久清空(2026-11-07 深评)。
|
|
48
|
+
this.degraded = true;
|
|
49
|
+
console.warn(`[agentia] FileTaskStore 读取 ${this.file} 失败,按空库启动(续跑将看不到旧任务;已禁用 compact):`, err instanceof Error ? err.message : err);
|
|
45
50
|
this.onLoadError?.(err);
|
|
46
51
|
return;
|
|
47
52
|
}
|
|
@@ -94,7 +99,30 @@ export class FileTaskStore {
|
|
|
94
99
|
}
|
|
95
100
|
}
|
|
96
101
|
append(rec) {
|
|
97
|
-
|
|
102
|
+
// 半行自愈(2026-11-07 深评):此前只在启动时 healTail;同进程一次写残(ENOSPC /
|
|
103
|
+
// 中断)后,下一次 append 会粘在残行尾部,重启时整行非法被跳过(丢一条记录)。
|
|
104
|
+
// 记录写前长度,失败时截回去。
|
|
105
|
+
let before = -1;
|
|
106
|
+
try {
|
|
107
|
+
before = existsSync(this.file) ? statSync(this.file).size : 0;
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
before = -1;
|
|
111
|
+
}
|
|
112
|
+
try {
|
|
113
|
+
writeFileSync(this.file, `${serializeTaskRecord(rec)}\n`, { flag: 'a' });
|
|
114
|
+
}
|
|
115
|
+
catch (e) {
|
|
116
|
+
if (before >= 0) {
|
|
117
|
+
try {
|
|
118
|
+
truncateSync(this.file, before);
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
/* 截不回去也没别的补救;至少原错误照抛 */
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
throw e;
|
|
125
|
+
}
|
|
98
126
|
}
|
|
99
127
|
save(rec) {
|
|
100
128
|
// **先落盘、后更新内存**(2026-09-20):落盘抛错时内存不得先推进 —— 否则内存说
|
|
@@ -133,6 +161,11 @@ export class FileTaskStore {
|
|
|
133
161
|
* 旧文件也完整),内存态不受影响。
|
|
134
162
|
*/
|
|
135
163
|
compact() {
|
|
164
|
+
if (this.degraded) {
|
|
165
|
+
// 读失败时内存是空的;compact 会把文件重写成空/只剩新记录 —— 等于永久删除旧历史。
|
|
166
|
+
console.warn(`[agentia] FileTaskStore 处于降级态(启动读取失败),拒绝 compact:${this.file}`);
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
136
169
|
// 赢家殿后:内存语义是「同幂等键最后 save 的 taskId 赢」(save 覆写 byKey),
|
|
137
170
|
// 而 load 回放按行序 last-wins。直接按 Map 首次插入序写盘会丢掉「最后 save」
|
|
138
171
|
// 信息 —— 同键重提的新任务插入在后,旧任务又被 save 赢回时,插入序恰与赢家
|
|
@@ -140,7 +173,7 @@ export class FileTaskStore {
|
|
|
140
173
|
// 殿后即等价内存语义);Array.prototype.sort 稳定,同组内仍按插入序。
|
|
141
174
|
const winners = new Set(this.byKey.values());
|
|
142
175
|
const rows = [...this.byTask.values()].sort((a, b) => Number(winners.has(a.taskId)) - Number(winners.has(b.taskId)));
|
|
143
|
-
const body = rows.map((r) => `${
|
|
176
|
+
const body = rows.map((r) => `${serializeTaskRecord(r)}\n`).join('');
|
|
144
177
|
// 原子重写:先写临时文件再 rename。直接 writeFileSync 截断重写,中途被杀会留下
|
|
145
178
|
// 半截文件、丢掉全部记录;同目录 rename 是原子的,旧文件在新文件就位前保持完整。
|
|
146
179
|
// 临时文件名固定(单写者前提,见头注释)—— 上次被杀留下的残临时文件会被本次覆写。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fsStore.js","sourceRoot":"","sources":["../../src/store/fsStore.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,UAAU,EACV,SAAS,EACT,YAAY,EACZ,UAAU,EACV,MAAM,EACN,YAAY,EACZ,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"fsStore.js","sourceRoot":"","sources":["../../src/store/fsStore.ts"],"names":[],"mappings":"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"}
|
package/dist/store/record.d.ts
CHANGED
|
@@ -32,6 +32,46 @@ import type { TaskRecord } from './store.js';
|
|
|
32
32
|
* 返回值留给需要自己决定要不要回写的调用方(`sqliteStore` 的派生列)。
|
|
33
33
|
*/
|
|
34
34
|
export declare function normalizeLegacyRecord(rec: TaskRecord): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* 「哪些进程内引用在落库时被剥掉了」的键。
|
|
37
|
+
*
|
|
38
|
+
* ⚠️ **内部键,刻意不进 `RunInvocationOptions` 公共类型面**(AGENTS.md「内部工具不进公共面」):
|
|
39
|
+
* 它只在一条记录自「save」到「恢复段读回」之间活着,是给恢复路径的一句提示,不是使用者该
|
|
40
|
+
* 配置的东西。读侧一律走 `droppedRuntimeRefsOf`,别在别处直接摸这个键名。
|
|
41
|
+
*/
|
|
42
|
+
export declare const DROPPED_REFS_KEY = "__agentiaDroppedRefs";
|
|
43
|
+
/** 被剥掉的进程内引用(只有 `true` 的那些有意义;键名对应 `RunInvocationOptions` 上的位置) */
|
|
44
|
+
export interface DroppedRuntimeRefs {
|
|
45
|
+
/** 主 `client`:恢复段会退回 runner 级 / 默认 client */
|
|
46
|
+
client: boolean;
|
|
47
|
+
/** `tools` 菜单:恢复段会退回装配菜单(`app.tools`) */
|
|
48
|
+
tools: boolean;
|
|
49
|
+
/** fallback 环里的 `client`:只保留 `model`,client 由 runner/应用级配置兜住 */
|
|
50
|
+
fallbacks: boolean;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* 读一条落库记录上的剥离标记(2026-11-09 深评 P1)。
|
|
54
|
+
*
|
|
55
|
+
* 为什么需要标记:`serializeTaskRecord` 会剥掉主 `client` 与 `tools`,而恢复段的
|
|
56
|
+
* `buildRunCallOptions` 无从区分「提交时本来没传」与「传了但落库时被剥掉了」—— 两种情况下
|
|
57
|
+
* `rec.spec.options.client` 都是 `undefined`。没有这个标记,per-task 自定义 client(典型是
|
|
58
|
+
* OpenAI 兼容端点)的任务重启续跑时会**静默**打到 runner 的端点,自定义工具菜单也会静默
|
|
59
|
+
* 换回装配菜单。标记只用来让恢复段**出声**,不改变任何装配结果。
|
|
60
|
+
*/
|
|
61
|
+
export declare function droppedRuntimeRefsOf(options: object | undefined): DroppedRuntimeRefs | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* 落库前的**可序列化清洗**(2026-11-07 深评):`JSON.stringify` 会把 `AbortSignal` 变成
|
|
64
|
+
* `{}`、把 `ModelClient` 变成 `{messages:{}}`、把 `tools` 里的 run 函数丢掉。读回后这些
|
|
65
|
+
* 空壳会在恢复段被当成真对象使用(`combineSignals({})` 直接 TypeError / 工具菜单半残)。
|
|
66
|
+
*
|
|
67
|
+
* 因此三条 JSON store 统一走这里:
|
|
68
|
+
* - 去掉 `signal` / `client` / 回调 / `tools`(它们属于提交进程,不能跨重启);
|
|
69
|
+
* - fallback 环只保留 `model`(client 由 runner/应用级配置兜住,与文档口径一致);
|
|
70
|
+
* - 剥掉的「主 client / tools / fallback client」记进 `DROPPED_REFS_KEY`,让恢复段能出声
|
|
71
|
+
* (2026-11-09 深评 P1:此前剥得比文档承诺的多,且恢复路径看不到这件事)。
|
|
72
|
+
* 返回的是**新对象**,不改调用方记录。
|
|
73
|
+
*/
|
|
74
|
+
export declare function serializeTaskRecord(rec: TaskRecord): string;
|
|
35
75
|
/**
|
|
36
76
|
* bytes → 记录(**唯一入口**):解析 + 形状守卫 + 读时归一。
|
|
37
77
|
*
|
package/dist/store/record.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { cloneTaskRecord } from './store.js';
|
|
1
2
|
/**
|
|
2
3
|
* ① 之前的状态值。它在本版的 `RunStatus` 联合类型里**不存在**,所以下面那处比较只能走字符串
|
|
3
4
|
* (`rec.status === 'awaiting_approval'` 根本编译不过)—— 这本身就说明问题:类型看不见盘上的数据。
|
|
@@ -38,6 +39,77 @@ export function normalizeLegacyRecord(rec) {
|
|
|
38
39
|
}
|
|
39
40
|
return changed;
|
|
40
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* 「哪些进程内引用在落库时被剥掉了」的键。
|
|
44
|
+
*
|
|
45
|
+
* ⚠️ **内部键,刻意不进 `RunInvocationOptions` 公共类型面**(AGENTS.md「内部工具不进公共面」):
|
|
46
|
+
* 它只在一条记录自「save」到「恢复段读回」之间活着,是给恢复路径的一句提示,不是使用者该
|
|
47
|
+
* 配置的东西。读侧一律走 `droppedRuntimeRefsOf`,别在别处直接摸这个键名。
|
|
48
|
+
*/
|
|
49
|
+
export const DROPPED_REFS_KEY = '__agentiaDroppedRefs';
|
|
50
|
+
/**
|
|
51
|
+
* 读一条落库记录上的剥离标记(2026-11-09 深评 P1)。
|
|
52
|
+
*
|
|
53
|
+
* 为什么需要标记:`serializeTaskRecord` 会剥掉主 `client` 与 `tools`,而恢复段的
|
|
54
|
+
* `buildRunCallOptions` 无从区分「提交时本来没传」与「传了但落库时被剥掉了」—— 两种情况下
|
|
55
|
+
* `rec.spec.options.client` 都是 `undefined`。没有这个标记,per-task 自定义 client(典型是
|
|
56
|
+
* OpenAI 兼容端点)的任务重启续跑时会**静默**打到 runner 的端点,自定义工具菜单也会静默
|
|
57
|
+
* 换回装配菜单。标记只用来让恢复段**出声**,不改变任何装配结果。
|
|
58
|
+
*/
|
|
59
|
+
export function droppedRuntimeRefsOf(options) {
|
|
60
|
+
if (options === undefined)
|
|
61
|
+
return undefined;
|
|
62
|
+
const raw = options[DROPPED_REFS_KEY];
|
|
63
|
+
if (!Array.isArray(raw))
|
|
64
|
+
return undefined;
|
|
65
|
+
return {
|
|
66
|
+
client: raw.includes('client'),
|
|
67
|
+
tools: raw.includes('tools'),
|
|
68
|
+
fallbacks: raw.includes('fallbacks[].client'),
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* 落库前的**可序列化清洗**(2026-11-07 深评):`JSON.stringify` 会把 `AbortSignal` 变成
|
|
73
|
+
* `{}`、把 `ModelClient` 变成 `{messages:{}}`、把 `tools` 里的 run 函数丢掉。读回后这些
|
|
74
|
+
* 空壳会在恢复段被当成真对象使用(`combineSignals({})` 直接 TypeError / 工具菜单半残)。
|
|
75
|
+
*
|
|
76
|
+
* 因此三条 JSON store 统一走这里:
|
|
77
|
+
* - 去掉 `signal` / `client` / 回调 / `tools`(它们属于提交进程,不能跨重启);
|
|
78
|
+
* - fallback 环只保留 `model`(client 由 runner/应用级配置兜住,与文档口径一致);
|
|
79
|
+
* - 剥掉的「主 client / tools / fallback client」记进 `DROPPED_REFS_KEY`,让恢复段能出声
|
|
80
|
+
* (2026-11-09 深评 P1:此前剥得比文档承诺的多,且恢复路径看不到这件事)。
|
|
81
|
+
* 返回的是**新对象**,不改调用方记录。
|
|
82
|
+
*/
|
|
83
|
+
export function serializeTaskRecord(rec) {
|
|
84
|
+
const copy = cloneTaskRecord(rec);
|
|
85
|
+
const options = copy.spec.options;
|
|
86
|
+
if (options !== undefined) {
|
|
87
|
+
const rest = { ...options };
|
|
88
|
+
// 剥之前先记:这几样是「提交进程的运行时引用」,恢复段只能退回配置兜底
|
|
89
|
+
const dropped = [];
|
|
90
|
+
if (options.client !== undefined)
|
|
91
|
+
dropped.push('client');
|
|
92
|
+
if (options.tools !== undefined && options.tools.length > 0)
|
|
93
|
+
dropped.push('tools');
|
|
94
|
+
if (options.fallbacks?.some((link) => link.client !== undefined)) {
|
|
95
|
+
dropped.push('fallbacks[].client');
|
|
96
|
+
}
|
|
97
|
+
// 只摘「进程内对象」;纯数据(approvals / events / blackboard / 预算 / labels)保留。
|
|
98
|
+
delete rest.signal;
|
|
99
|
+
delete rest.client;
|
|
100
|
+
delete rest.onText;
|
|
101
|
+
delete rest.onTraceEvent;
|
|
102
|
+
delete rest.tools;
|
|
103
|
+
if (rest.fallbacks !== undefined) {
|
|
104
|
+
rest.fallbacks = rest.fallbacks.map((link) => ({ model: link.model }));
|
|
105
|
+
}
|
|
106
|
+
if (dropped.length > 0) {
|
|
107
|
+
rest[DROPPED_REFS_KEY] = dropped;
|
|
108
|
+
}
|
|
109
|
+
copy.spec = { ...copy.spec, options: rest };
|
|
110
|
+
}
|
|
111
|
+
return JSON.stringify(copy);
|
|
112
|
+
}
|
|
41
113
|
/**
|
|
42
114
|
* bytes → 记录(**唯一入口**):解析 + 形状守卫 + 读时归一。
|
|
43
115
|
*
|
package/dist/store/record.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.js","sourceRoot":"","sources":["../../src/store/record.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"record.js","sourceRoot":"","sources":["../../src/store/record.ts"],"names":[],"mappings":"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"}
|
package/dist/store/redisStore.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { isTerminalStatus } from '../core/run.js';
|
|
2
|
-
import { parseTaskRecord } from './record.js';
|
|
2
|
+
import { parseTaskRecord, serializeTaskRecord } from './record.js';
|
|
3
3
|
export class RedisTaskStore {
|
|
4
4
|
client;
|
|
5
5
|
prefix;
|
|
@@ -41,7 +41,7 @@ export class RedisTaskStore {
|
|
|
41
41
|
return `${this.prefix}idem:${key}`;
|
|
42
42
|
}
|
|
43
43
|
async save(rec) {
|
|
44
|
-
const json =
|
|
44
|
+
const json = serializeTaskRecord(rec);
|
|
45
45
|
// TTL 只加在**终态**记录上(2026-09-28 外部深评 S1)。此前无条件加:一条在等审批的
|
|
46
46
|
// 任务,TTL 一到记录就没了 —— 那条「批了它」的决定无家可归(`InMemoryTaskStore.evict`
|
|
47
47
|
// 里那句「suspended 不可淘汰」是同一条道理,两处此前读数相反)。
|
|
@@ -86,10 +86,21 @@ export class RedisTaskStore {
|
|
|
86
86
|
return taskId ? this.get(taskId) : undefined;
|
|
87
87
|
}
|
|
88
88
|
async list() {
|
|
89
|
-
|
|
89
|
+
// Redis SCAN 契约允许同一个 key 返回多次(rehash / 过期时真实发生)。不去重会让
|
|
90
|
+
// `resumePending` 把同一条记录认领两次并派发两次(2026-11-07 深评)。
|
|
91
|
+
const keys = [...new Set(await this.enumerate(this.taskPattern()))];
|
|
90
92
|
const recs = [];
|
|
91
93
|
for (const k of keys) {
|
|
92
|
-
|
|
94
|
+
let raw;
|
|
95
|
+
try {
|
|
96
|
+
raw = await this.client.get(k);
|
|
97
|
+
}
|
|
98
|
+
catch (e) {
|
|
99
|
+
// 单 key 读失败不该让整次 resume 扫描 reject(扫描会因此完全停摆)。
|
|
100
|
+
console.warn(`[agentia] RedisTaskStore.list 读取 ${k} 失败,跳过该条:`, e instanceof Error ? e.message : e);
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
const rec = parseRecord(raw);
|
|
93
104
|
if (rec)
|
|
94
105
|
recs.push(rec);
|
|
95
106
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redisStore.js","sourceRoot":"","sources":["../../src/store/redisStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"redisStore.js","sourceRoot":"","sources":["../../src/store/redisStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';
|
|
2
|
-
import { parseTaskRecord } from './record.js';
|
|
2
|
+
import { parseTaskRecord, serializeTaskRecord } from './record.js';
|
|
3
3
|
// node:sqlite 是 Node ≥22.5 才有的内置模块。这里**延迟加载**而非顶层静态 import:
|
|
4
4
|
// 顶层 import 会让**整个包**在未提供该模块的运行时「加载即崩」——`src/index.ts` 对
|
|
5
5
|
// SqliteTaskStore 是 eager 再导出,于是连不用 SQLite 的用户也被殃及。延迟到真正构造
|
|
@@ -65,19 +65,37 @@ export class SqliteTaskStore {
|
|
|
65
65
|
// 读时自愈判据扩到两列(见 healRow)。存量库走下面的**就地迁移**:
|
|
66
66
|
// CREATE TABLE IF NOT EXISTS 不会给旧表加列,所以查列 → 缺则 ALTER + 从 json 回填。
|
|
67
67
|
const cols = this.db.prepare('PRAGMA table_info(tasks)').all();
|
|
68
|
+
// 迁移事务化(2026-11-07 深评):ALTER 与回填是两条 DDL/DML,中间被杀会留下
|
|
69
|
+
// 「列在、wake_at 全 NULL」的半迁移;两个 worker 同时首启还会 duplicate column 崩。
|
|
70
|
+
// BEGIN IMMEDIATE 串行化;duplicate column 视为「别的进程刚做完」并继续。
|
|
68
71
|
if (!cols.some((c) => c.name === 'wake_at')) {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
try {
|
|
73
|
+
this.db.exec('BEGIN IMMEDIATE');
|
|
74
|
+
this.db.exec('ALTER TABLE tasks ADD COLUMN wake_at INTEGER');
|
|
75
|
+
this.db.exec("UPDATE tasks SET wake_at = json_extract(json, '$.wakeAt') " +
|
|
76
|
+
"WHERE json_extract(json, '$.wakeAt') IS NOT NULL");
|
|
77
|
+
this.db.exec('COMMIT');
|
|
78
|
+
}
|
|
79
|
+
catch (e) {
|
|
80
|
+
try {
|
|
81
|
+
this.db.exec('ROLLBACK');
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
/* 已回滚 / 事务未开始 */
|
|
85
|
+
}
|
|
86
|
+
if (!/duplicate column/i.test(e?.message ?? String(e)))
|
|
87
|
+
throw e;
|
|
88
|
+
}
|
|
74
89
|
}
|
|
90
|
+
// 幂等回填:半迁移窗口留下的 NULL 也在这里补(只扫 wake_at IS NULL 的行)。
|
|
91
|
+
this.db.exec("UPDATE tasks SET wake_at = json_extract(json, '$.wakeAt') " +
|
|
92
|
+
"WHERE wake_at IS NULL AND json_extract(json, '$.wakeAt') IS NOT NULL");
|
|
75
93
|
this.db.exec('CREATE INDEX IF NOT EXISTS idx_tasks_due ON tasks(status, wake_at)');
|
|
76
94
|
}
|
|
77
95
|
save(rec) {
|
|
78
96
|
this.db
|
|
79
97
|
.prepare('INSERT OR REPLACE INTO tasks (task_id, idempotency_key, status, wake_at, json) VALUES (?, ?, ?, ?, ?)')
|
|
80
|
-
.run(rec.taskId, rec.idempotencyKey ?? null, rec.status, rec.wakeAt ?? null,
|
|
98
|
+
.run(rec.taskId, rec.idempotencyKey ?? null, rec.status, rec.wakeAt ?? null, serializeTaskRecord(rec));
|
|
81
99
|
}
|
|
82
100
|
/**
|
|
83
101
|
* 把派生列(`status` / `wake_at`)拉回与 json 一致(**只在不一致时写**,一次代价)。
|
|
@@ -91,14 +109,21 @@ export class SqliteTaskStore {
|
|
|
91
109
|
* 判据是「列 ≠ json」而不是「刚才归一过没有」:任何原因(手改过、旧版本写的、将来又一次
|
|
92
110
|
* 改名)造成的漂移都该被顺手修掉,不依赖调用方传一个「我改过」的旗子。
|
|
93
111
|
*/
|
|
94
|
-
healRow(storedStatus, storedWakeAt, rec) {
|
|
112
|
+
healRow(storedStatus, storedWakeAt, storedJson, rec) {
|
|
95
113
|
const wakeAt = rec.wakeAt ?? null;
|
|
96
114
|
if (storedStatus === rec.status && storedWakeAt === wakeAt)
|
|
97
115
|
return;
|
|
98
116
|
try {
|
|
117
|
+
// 派生列先拉正(不碰 json,绝无覆盖并发 save 的风险)。
|
|
118
|
+
this.db
|
|
119
|
+
.prepare('UPDATE tasks SET status = ?, wake_at = ? WHERE task_id = ?')
|
|
120
|
+
.run(rec.status, wakeAt, rec.taskId);
|
|
121
|
+
// json 回写带 CAS(`json = 旧值`):多进程下若并发 save 已经换了新快照,这一条不生效,
|
|
122
|
+
// 留给下一次真实 save 归一。旧形状的归一化会改 json,所以不能把两者合并成一条
|
|
123
|
+
// (合并后 WHERE json=旧值 会因“写的是新 json”而永远不命中)。
|
|
99
124
|
this.db
|
|
100
|
-
.prepare('UPDATE tasks SET
|
|
101
|
-
.run(
|
|
125
|
+
.prepare('UPDATE tasks SET json = ? WHERE task_id = ? AND json = ?')
|
|
126
|
+
.run(serializeTaskRecord(rec), rec.taskId, storedJson);
|
|
102
127
|
}
|
|
103
128
|
catch (err) {
|
|
104
129
|
// 只读库 / 他进程占锁超时:读照常返回归一后的记录,只有列这一处没自愈。**响亮一次**,
|
|
@@ -117,7 +142,7 @@ export class SqliteTaskStore {
|
|
|
117
142
|
return undefined;
|
|
118
143
|
const rec = parseTaskRecord(row.json);
|
|
119
144
|
if (rec)
|
|
120
|
-
this.healRow(row.status, row.wake_at, rec);
|
|
145
|
+
this.healRow(row.status, row.wake_at, row.json, rec);
|
|
121
146
|
return rec;
|
|
122
147
|
}
|
|
123
148
|
byIdempotency(key) {
|
|
@@ -129,7 +154,7 @@ export class SqliteTaskStore {
|
|
|
129
154
|
return undefined;
|
|
130
155
|
const rec = parseTaskRecord(row.json);
|
|
131
156
|
if (rec)
|
|
132
|
-
this.healRow(row.status, row.wake_at, rec);
|
|
157
|
+
this.healRow(row.status, row.wake_at, row.json, rec);
|
|
133
158
|
return rec;
|
|
134
159
|
}
|
|
135
160
|
list() {
|
|
@@ -142,7 +167,7 @@ export class SqliteTaskStore {
|
|
|
142
167
|
const rec = parseTaskRecord(r.json);
|
|
143
168
|
if (!rec)
|
|
144
169
|
continue;
|
|
145
|
-
this.healRow(r.status, r.wake_at, rec);
|
|
170
|
+
this.healRow(r.status, r.wake_at, r.json, rec);
|
|
146
171
|
out.push(rec);
|
|
147
172
|
}
|
|
148
173
|
return out;
|
|
@@ -162,7 +187,7 @@ export class SqliteTaskStore {
|
|
|
162
187
|
const rec = parseTaskRecord(r.json);
|
|
163
188
|
if (!rec)
|
|
164
189
|
continue;
|
|
165
|
-
this.healRow(r.status, r.wake_at, rec);
|
|
190
|
+
this.healRow(r.status, r.wake_at, r.json, rec);
|
|
166
191
|
out.push(rec);
|
|
167
192
|
}
|
|
168
193
|
return out;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqliteStore.js","sourceRoot":"","sources":["../../src/store/sqliteStore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"sqliteStore.js","sourceRoot":"","sources":["../../src/store/sqliteStore.ts"],"names":[],"mappings":"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"}
|
package/dist/store/store.js
CHANGED
|
@@ -18,11 +18,17 @@ export function nextTaskId() {
|
|
|
18
18
|
* `RunInvocationOptions.fallbacks` 的序列化边界注释)。
|
|
19
19
|
*/
|
|
20
20
|
export function cloneTaskRecord(rec) {
|
|
21
|
-
return cloneData(rec);
|
|
21
|
+
return cloneData(rec, 0);
|
|
22
22
|
}
|
|
23
|
-
|
|
23
|
+
/** 记录应是浅层 JSON 数据;超过这个深度按事故级输入响亮拒绝,而不是让 V8 爆栈 */
|
|
24
|
+
const MAX_CLONE_DEPTH = 256;
|
|
25
|
+
function cloneData(value, depth) {
|
|
26
|
+
if (depth > MAX_CLONE_DEPTH) {
|
|
27
|
+
throw new TypeError(`TaskRecord 的嵌套超过 ${MAX_CLONE_DEPTH} 层 —— 记录应是浅层 JSON 数据,` +
|
|
28
|
+
'拒绝深拷以免 RangeError 掩盖真实问题(2026-11-07 深评)');
|
|
29
|
+
}
|
|
24
30
|
if (Array.isArray(value))
|
|
25
|
-
return value.map(cloneData);
|
|
31
|
+
return value.map((v) => cloneData(v, depth + 1));
|
|
26
32
|
if (value !== null && typeof value === 'object') {
|
|
27
33
|
const proto = Object.getPrototypeOf(value);
|
|
28
34
|
// 类实例(AbortSignal 等)按引用保留:克隆它没有意义,也克隆不了
|
|
@@ -32,7 +38,7 @@ function cloneData(value) {
|
|
|
32
38
|
for (const [k, v] of Object.entries(value)) {
|
|
33
39
|
// 直接赋值 '__proto__' 会走原型 setter:自有键丢失且副本原型被改。
|
|
34
40
|
Object.defineProperty(out, k, {
|
|
35
|
-
value: cloneData(v),
|
|
41
|
+
value: cloneData(v, depth + 1),
|
|
36
42
|
writable: true,
|
|
37
43
|
enumerable: true,
|
|
38
44
|
configurable: true,
|
package/dist/store/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAsBzC,oDAAoD;AACpD,MAAM,UAAU,UAAU,CAAI,CAAkB;IAC9C,OAAO,CAAC,CAAC,CAAC,IAAI,OAAQ,CAAgB,CAAC,IAAI,KAAK,UAAU,CAAC;AAC7D,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,UAAU;IACxB,OAAO,QAAQ,UAAU,EAAE,EAAE,CAAC;AAChC,CAAC;AAgID;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,GAAe;IAC7C,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"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"}
|
package/dist/toolkit/module.js
CHANGED
|
@@ -355,6 +355,7 @@ export class AgentApp {
|
|
|
355
355
|
// HITL:审批决定(tool_use_id → 决定)原样进引擎;恢复挂起任务时由
|
|
356
356
|
// AsyncRunner 经它把落库的决定喂回来
|
|
357
357
|
approvals: opts.approvals,
|
|
358
|
+
approvalEpoch: opts.approvalEpoch,
|
|
358
359
|
// 事件投入口(2026-09-28 ref-run-event-input):与 approvals 同一条「契约字段必须原样透传」的规则
|
|
359
360
|
// (漏掉这一行 = AsyncRunner 投递的事件在 app.run 门口静默丢掉)
|
|
360
361
|
events: opts.events,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/toolkit/module.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/toolkit/module.ts"],"names":[],"mappings":"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"}
|
package/dist/toolkit/prompt.js
CHANGED
|
@@ -44,9 +44,18 @@ export function collectPromptEntries(instance) {
|
|
|
44
44
|
: {}),
|
|
45
45
|
run: (input) => Reflect.apply(target[key], target, [input]),
|
|
46
46
|
});
|
|
47
|
-
// 版本表以最终菜单名(capabilityName 校验后的 name
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
// 版本表以最终菜单名(capabilityName 校验后的 name)为键;缺省无版本不进表。
|
|
48
|
+
// 判定用**归一后的 version**(metadata.version 优先):此前只看 spec.version,
|
|
49
|
+
// 只写 metadata.version 的能力在 manifest 有版本、trace 查不到(2026-11-07 深评)。
|
|
50
|
+
if (version !== undefined) {
|
|
51
|
+
// defineProperty 而非赋值:能力名允许 `__proto__`,赋值会走原型 setter 静默丢条目。
|
|
52
|
+
Object.defineProperty(versions, spec.name ?? name, {
|
|
53
|
+
value: version,
|
|
54
|
+
writable: true,
|
|
55
|
+
enumerable: true,
|
|
56
|
+
configurable: true,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
50
59
|
};
|
|
51
60
|
// 实例方法(沿原型链)
|
|
52
61
|
const found = scanDecoratedMethods(instance, promptSpecs);
|