@steerable/agent-shell 0.8.0 → 0.8.1
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/dist/local-executor.d.ts
CHANGED
|
@@ -239,8 +239,14 @@ export declare class LocalExecutor {
|
|
|
239
239
|
/**
|
|
240
240
|
* P2b:会话恢复时重灌 read-before-write 证据。sidecar 扫描持久记录里的
|
|
241
241
|
* 文件工具结果,把 path → version 经 `read_state.seed` 推到这里——进程
|
|
242
|
-
* 重启后自动 CAS 仍然成立(CC `seed_read_state`
|
|
243
|
-
*
|
|
242
|
+
* 重启后自动 CAS 仍然成立(CC `seed_read_state` 语义)。
|
|
243
|
+
*
|
|
244
|
+
* 键必须过一遍 `resolvePath`:读证据的每一次读写都用规范化后的路径做键,
|
|
245
|
+
* 而 seed 来的路径是 sidecar 记录的原文。两者不一致时自动 CAS 永远查不
|
|
246
|
+
* 中,write/edit 会退回「未读先写已拒绝」。macOS 上 `/var/folders/…` 与
|
|
247
|
+
* `/private/var/folders/…` 就是这种情形(`os.tmpdir()` 返回未解析的
|
|
248
|
+
* 形式),Linux 的 `/tmp` 符号链接同理。
|
|
249
|
+
*
|
|
244
250
|
* 返回实际收录的条目数(畸形条目跳过)。
|
|
245
251
|
*/
|
|
246
252
|
seedReadState(state: Record<string, unknown>): number;
|
package/dist/local-executor.js
CHANGED
|
@@ -329,15 +329,21 @@ export class LocalExecutor {
|
|
|
329
329
|
/**
|
|
330
330
|
* P2b:会话恢复时重灌 read-before-write 证据。sidecar 扫描持久记录里的
|
|
331
331
|
* 文件工具结果,把 path → version 经 `read_state.seed` 推到这里——进程
|
|
332
|
-
* 重启后自动 CAS 仍然成立(CC `seed_read_state`
|
|
333
|
-
*
|
|
332
|
+
* 重启后自动 CAS 仍然成立(CC `seed_read_state` 语义)。
|
|
333
|
+
*
|
|
334
|
+
* 键必须过一遍 `resolvePath`:读证据的每一次读写都用规范化后的路径做键,
|
|
335
|
+
* 而 seed 来的路径是 sidecar 记录的原文。两者不一致时自动 CAS 永远查不
|
|
336
|
+
* 中,write/edit 会退回「未读先写已拒绝」。macOS 上 `/var/folders/…` 与
|
|
337
|
+
* `/private/var/folders/…` 就是这种情形(`os.tmpdir()` 返回未解析的
|
|
338
|
+
* 形式),Linux 的 `/tmp` 符号链接同理。
|
|
339
|
+
*
|
|
334
340
|
* 返回实际收录的条目数(畸形条目跳过)。
|
|
335
341
|
*/
|
|
336
342
|
seedReadState(state) {
|
|
337
343
|
let seeded = 0;
|
|
338
344
|
for (const [p, version] of Object.entries(state)) {
|
|
339
345
|
if (typeof p === 'string' && p.length > 0 && typeof version === 'string') {
|
|
340
|
-
this.readFileState.set(p, version);
|
|
346
|
+
this.readFileState.set(this.resolvePath(p), version);
|
|
341
347
|
seeded += 1;
|
|
342
348
|
}
|
|
343
349
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@steerable/agent-shell",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.1",
|
|
4
4
|
"description": "Steerable framework — product-neutral Node HostRuntime and headless HTTP server shared by Tauri desktop and browser deployments; scenario packs extend it through @steerable/pack-sdk.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"homepage": "https://steerableframework.com/",
|
|
@@ -53,9 +53,9 @@
|
|
|
53
53
|
"jpeg-js": "^0.4.4",
|
|
54
54
|
"node-pty": "^1.1.0",
|
|
55
55
|
"pngjs": "^7.0.0",
|
|
56
|
-
"@steerable/agent-harness": "0.8.
|
|
57
|
-
"@steerable/agent-protocol": "0.8.
|
|
58
|
-
"@steerable/pack-sdk": "0.8.
|
|
56
|
+
"@steerable/agent-harness": "0.8.1",
|
|
57
|
+
"@steerable/agent-protocol": "0.8.1",
|
|
58
|
+
"@steerable/pack-sdk": "0.8.1"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
61
|
"@types/better-sqlite3": "^7.6.13",
|