@zooique/memora 5.0.0 → 5.2.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 +142 -7
- package/README.en.md +7 -3
- package/README.md +7 -3
- package/dist/agent/agent.d.ts +5 -2
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js +8 -3
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/assembler.d.ts.map +1 -1
- package/dist/agent/assembler.js +37 -19
- package/dist/agent/assembler.js.map +1 -1
- package/dist/agent/builtinToolHandlers.d.ts +23 -2
- package/dist/agent/builtinToolHandlers.d.ts.map +1 -1
- package/dist/agent/builtinToolHandlers.js +22 -11
- package/dist/agent/builtinToolHandlers.js.map +1 -1
- package/dist/agent/builtinTools.d.ts +16 -0
- package/dist/agent/builtinTools.d.ts.map +1 -1
- package/dist/agent/builtinTools.js +11 -1
- package/dist/agent/builtinTools.js.map +1 -1
- package/dist/agent/constants.d.ts +27 -0
- package/dist/agent/constants.d.ts.map +1 -1
- package/dist/agent/constants.js +27 -0
- package/dist/agent/constants.js.map +1 -1
- package/dist/agent/contextManager.d.ts +31 -3
- package/dist/agent/contextManager.d.ts.map +1 -1
- package/dist/agent/contextManager.js +39 -2
- package/dist/agent/contextManager.js.map +1 -1
- package/dist/agent/guardRail.d.ts +24 -9
- package/dist/agent/guardRail.d.ts.map +1 -1
- package/dist/agent/guardRail.js +153 -45
- package/dist/agent/guardRail.js.map +1 -1
- package/dist/agent/loop.d.ts +3 -3
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +23 -12
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/managers/llmCaller.d.ts.map +1 -1
- package/dist/agent/managers/llmCaller.js +14 -1
- package/dist/agent/managers/llmCaller.js.map +1 -1
- package/dist/agent/managers/sessionManager.d.ts.map +1 -1
- package/dist/agent/managers/sessionManager.js +1 -0
- package/dist/agent/managers/sessionManager.js.map +1 -1
- package/dist/agent/messageHistory.d.ts +3 -0
- package/dist/agent/messageHistory.d.ts.map +1 -1
- package/dist/agent/messageHistory.js +14 -0
- package/dist/agent/messageHistory.js.map +1 -1
- package/dist/agent/seed/orchestrator.d.ts +2 -1
- package/dist/agent/seed/orchestrator.d.ts.map +1 -1
- package/dist/agent/seed/orchestrator.js +3 -3
- package/dist/agent/seed/orchestrator.js.map +1 -1
- package/dist/agent/seed/prepare.d.ts +3 -1
- package/dist/agent/seed/prepare.d.ts.map +1 -1
- package/dist/agent/seed/prepare.js +10 -2
- package/dist/agent/seed/prepare.js.map +1 -1
- package/dist/agent/sessionStateMachine.d.ts +3 -0
- package/dist/agent/sessionStateMachine.d.ts.map +1 -1
- package/dist/agent/sessionStateMachine.js.map +1 -1
- package/dist/agent/textSanitize.d.ts +1 -1
- package/dist/agent/textSanitize.js +1 -1
- package/dist/agent/toolExecutor.d.ts +18 -12
- package/dist/agent/toolExecutor.d.ts.map +1 -1
- package/dist/agent/toolExecutor.js +114 -19
- package/dist/agent/toolExecutor.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/llm/factory.d.ts +21 -0
- package/dist/llm/factory.d.ts.map +1 -1
- package/dist/llm/factory.js +4 -1
- package/dist/llm/factory.js.map +1 -1
- package/dist/llm/openaiCompatible.d.ts +8 -1
- package/dist/llm/openaiCompatible.d.ts.map +1 -1
- package/dist/llm/openaiCompatible.js +26 -0
- package/dist/llm/openaiCompatible.js.map +1 -1
- package/dist/llm/provider.d.ts +65 -0
- package/dist/llm/provider.d.ts.map +1 -1
- package/dist/llm/provider.js +10 -0
- package/dist/llm/provider.js.map +1 -1
- package/dist/memory/inMemorySessionStore.d.ts.map +1 -1
- package/dist/memory/inMemorySessionStore.js +11 -0
- package/dist/memory/inMemorySessionStore.js.map +1 -1
- package/dist/memory/roundStore.d.ts +7 -0
- package/dist/memory/roundStore.d.ts.map +1 -1
- package/dist/memory/roundStore.js.map +1 -1
- package/dist/memory/sessionStore.d.ts +8 -0
- package/dist/memory/sessionStore.d.ts.map +1 -1
- package/dist/memory/sessionStore.js.map +1 -1
- package/dist/security/confirmEntries.d.ts +21 -6
- package/dist/security/confirmEntries.d.ts.map +1 -1
- package/dist/security/confirmEntries.js +21 -6
- package/dist/security/confirmEntries.js.map +1 -1
- package/dist/security/pathGuard.d.ts +43 -9
- package/dist/security/pathGuard.d.ts.map +1 -1
- package/dist/security/pathGuard.js +69 -9
- package/dist/security/pathGuard.js.map +1 -1
- package/docs/architecture/role-pack-authoring-guide.md +4 -0
- package/docs/architecture/role-pack-spec.md +9 -5
- package/docs/memora-api-reference.md +21 -7
- package/docs/memora-/346/216/245/345/205/245/346/214/207/345/215/227.md +47 -17
- package/package.json +7 -1
- package/role-packs/memora/345/212/251/346/211/213/rules.md +1 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/rules.md +1 -0
- package/role-packs//347/231/275/350/257/235/346/226/271/346/241/210/350/256/276/350/256/241/345/270/210/rules.md +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pathGuard.d.ts","sourceRoot":"","sources":["../../src/security/pathGuard.ts"],"names":[],"mappings":"AAkFA,aAAa;AACb,MAAM,MAAM,cAAc;AACxB,4BAA4B;AAC1B,MAAM;AACR,qCAAqC;GACnC,YAAY;AACd,yCAAyC;GACvC,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"pathGuard.d.ts","sourceRoot":"","sources":["../../src/security/pathGuard.ts"],"names":[],"mappings":"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"}
|
|
@@ -115,6 +115,12 @@ const ALWAYS_ASK_COMMAND_PREFIXES = [
|
|
|
115
115
|
'git rebase',
|
|
116
116
|
'git merge',
|
|
117
117
|
'git checkout --',
|
|
118
|
+
/**
|
|
119
|
+
* `git clean`(2026-10-25 补):**删除未跟踪文件**——与 reset / checkout -- 同量级的
|
|
120
|
+
* 不可逆操作,此前**不在清单内** ⇒ 落 `normal` 档 = owner 默认直接执行(真洞,不是定案)。
|
|
121
|
+
* 补进来后 `-fd` / `-fxd` 各形态均恒弹(两段式条目允许插入全局选项)。
|
|
122
|
+
*/
|
|
123
|
+
'git clean',
|
|
118
124
|
'npm publish',
|
|
119
125
|
];
|
|
120
126
|
/**
|
|
@@ -356,8 +362,39 @@ export class SecurityGuard {
|
|
|
356
362
|
* 判据与写入确认同构:guest 模式或 confirmScripts 需确认;未注入 confirmationHandler 时
|
|
357
363
|
* fail-closed 拒绝。owner + confirmScripts=false 自动批准(默认),审计仍记录。
|
|
358
364
|
* target 为脚本绝对路径(run_project_script)或描述型标识(run_code 内联代码无落盘路径)。
|
|
365
|
+
*
|
|
366
|
+
* **内容裁决(2026-10-25 补齐,CMD-1-BYPASS)**:可选 `content` = 将被执行的脚本/代码正文。
|
|
367
|
+
* 此前本闸**只看权限档位、不看执行内容** ⇒ 「git push」「rm -rf /」写进脚本即可绕过
|
|
368
|
+
* `classifyCommand`(命令面的内容裁决)——恒弹清单成了纸墙。此处把正文喂给**同一个**
|
|
369
|
+
* `classifyCommand`(判据仍单点,不新造第二套):
|
|
370
|
+
* - `deny` ⇒ **恒拦**(不入确认流程,任何档位/权限都拦);
|
|
371
|
+
* - `always-ask` ⇒ **恒弹**(owner + confirmScripts=false 也弹,与命令面同判据);
|
|
372
|
+
* - `normal` ⇒ 回落到原判据(guest || confirmScripts)。
|
|
373
|
+
*
|
|
374
|
+
* 不传 `content`(拿不到正文的面 ⇒ 只判档位;如未注入解析回调的技能脚本执行)⇒
|
|
375
|
+
* 行为与补齐前完全一致。
|
|
376
|
+
*
|
|
377
|
+
* @param content 将被执行的正文(**整份裁决,不做截断**——截断即裁决盲区)
|
|
359
378
|
*/
|
|
360
|
-
async confirmScriptRun(targetPath, tool, description) {
|
|
379
|
+
async confirmScriptRun(targetPath, tool, description, content) {
|
|
380
|
+
if (content) {
|
|
381
|
+
const verdict = classifyCommand(content);
|
|
382
|
+
if (verdict === 'deny') {
|
|
383
|
+
this.emitAudit({
|
|
384
|
+
type: 'write-decline',
|
|
385
|
+
path: targetPath,
|
|
386
|
+
tool,
|
|
387
|
+
decision: 'auto-denied',
|
|
388
|
+
reason: '脚本/代码内容命中命令黑名单(恒拦,不进确认流程)',
|
|
389
|
+
timestamp: nowIso(),
|
|
390
|
+
});
|
|
391
|
+
return false;
|
|
392
|
+
}
|
|
393
|
+
if (verdict === 'always-ask') {
|
|
394
|
+
// 恒弹:与 confirmCommandRun 的 always-ask 分支同判据(不可被档位豁免)
|
|
395
|
+
return this.confirmGate(targetPath, tool, description, true);
|
|
396
|
+
}
|
|
397
|
+
}
|
|
361
398
|
return this.confirmGate(targetPath, tool, description,
|
|
362
399
|
// 脚本执行确认判据:guest 或 confirmScripts(独立于写入确认)
|
|
363
400
|
this.permission === 'guest' || this.confirmScripts);
|
|
@@ -387,20 +424,40 @@ export class SecurityGuard {
|
|
|
387
424
|
return this.confirmGate(command, tool, description, verdict === 'always-ask' || this.permission === 'guest' || this.confirmScripts);
|
|
388
425
|
}
|
|
389
426
|
/**
|
|
390
|
-
*
|
|
427
|
+
* 自定义工具调用确认(自定义工具的执行闸;外部工具接入的唯一审批入口)
|
|
428
|
+
*
|
|
429
|
+
* 与 `confirmCommandRun` / `confirmScriptRun` 共用同一个 `confirmGate`(不新造第二套确认路径)。
|
|
430
|
+
* 单一入口、两种模式(由 ToolExecutor 按 `ToolDefinition.confirmPolicy` 映射):
|
|
431
|
+
* - `needConfirm=true`('always'):每次弹宿主确认 UI;
|
|
432
|
+
* - `needConfirm=false`('audit'):过闸自动放行,仍落 write-auto 审计。
|
|
433
|
+
*
|
|
434
|
+
* @param toolName 工具名(如 mcp__server__tool)
|
|
435
|
+
* @param summary 调用摘要(被裁决对象标识,落审计 path 字段 + 确认卡文案,与 run_command 把命令塞 path 同构)
|
|
436
|
+
* @param needConfirm 是否需要用户逐次确认(false = 自动放行 + 审计)
|
|
437
|
+
* @returns true 放行(调用方才可执行 handler)/ false 拒绝(fail-closed 安全优先)
|
|
438
|
+
*/
|
|
439
|
+
async requestToolCallConfirmation(toolName, summary, needConfirm) {
|
|
440
|
+
return this.confirmGate(summary, toolName, summary, needConfirm, undefined, 'custom');
|
|
441
|
+
}
|
|
442
|
+
/**
|
|
443
|
+
* 确认闸公共核心(SSOT:**全部确认**——写入 / 命令 / 代码 / 脚本执行 / 自定义工具——的唯一执行路径)
|
|
391
444
|
*
|
|
392
445
|
* needConfirm=false → 自动批准(审计 write-auto);为 true 且未注入 confirmationHandler
|
|
393
446
|
* → fail-closed 拒绝(审计 write-decline);否则经 confirmViaHandler 走宿主确认 UI。
|
|
394
|
-
* diff 仅写入场景有(`requestWriteConfirmation` 唯一传 diff
|
|
447
|
+
* diff 仅写入场景有(`requestWriteConfirmation` 唯一传 diff),其余类别不传(域留空),
|
|
395
448
|
* 宿主据此判「本卡无 diff 域」并跳过写入前后对比渲染。
|
|
449
|
+
*
|
|
450
|
+
* `source` 可选:标记本次确认的调用链来源,透传进全部审计出口;
|
|
451
|
+
* 既有四类调用方不传 = undefined,审计事件缺省不带该字段,行为零变化。
|
|
396
452
|
*/
|
|
397
|
-
async confirmGate(targetPath, tool, description, needConfirm, diff) {
|
|
453
|
+
async confirmGate(targetPath, tool, description, needConfirm, diff, source) {
|
|
398
454
|
// 无需确认:直接放行并记录审计
|
|
399
455
|
if (!needConfirm) {
|
|
400
456
|
this.emitAudit({
|
|
401
457
|
type: 'write-auto',
|
|
402
458
|
path: targetPath,
|
|
403
459
|
tool,
|
|
460
|
+
source,
|
|
404
461
|
decision: 'auto-approved',
|
|
405
462
|
timestamp: nowIso(),
|
|
406
463
|
});
|
|
@@ -415,7 +472,7 @@ export class SecurityGuard {
|
|
|
415
472
|
needsConfirm: needConfirm,
|
|
416
473
|
beforeContent: diff?.beforeContent,
|
|
417
474
|
afterContent: diff?.afterContent,
|
|
418
|
-
// diff 域语义判定单点:写入场景传了 diff 参数 →
|
|
475
|
+
// diff 域语义判定单点:写入场景传了 diff 参数 → 有域;命令/代码/脚本/自定义工具不传 → 无域
|
|
419
476
|
hasDiff: diff !== undefined,
|
|
420
477
|
};
|
|
421
478
|
// 未注入 confirmationHandler 时 fail-closed 拒绝
|
|
@@ -425,6 +482,7 @@ export class SecurityGuard {
|
|
|
425
482
|
type: 'write-decline',
|
|
426
483
|
path: targetPath,
|
|
427
484
|
tool,
|
|
485
|
+
source,
|
|
428
486
|
decision: 'declined',
|
|
429
487
|
reason: '未注入 confirmationHandler(fail-closed)',
|
|
430
488
|
timestamp: nowIso(),
|
|
@@ -432,19 +490,20 @@ export class SecurityGuard {
|
|
|
432
490
|
return false;
|
|
433
491
|
}
|
|
434
492
|
// 走宿主注入的 confirmationHandler(此处 handler 必非空,上方已 fail-closed 拦截)
|
|
435
|
-
return this.confirmViaHandler(info, targetPath, tool);
|
|
493
|
+
return this.confirmViaHandler(info, targetPath, tool, source);
|
|
436
494
|
}
|
|
437
495
|
/**
|
|
438
|
-
* 通过宿主注入的 confirmationHandler
|
|
439
|
-
* 写入 / 命令 / 代码 /
|
|
496
|
+
* 通过宿主注入的 confirmationHandler 执行确认(**全部确认**的唯一执行路径:
|
|
497
|
+
* 写入 / 命令 / 代码 / 脚本执行 / 自定义工具)。抛错视为拒绝(fail-closed 安全优先)。
|
|
440
498
|
*/
|
|
441
|
-
async confirmViaHandler(info, targetPath, tool) {
|
|
499
|
+
async confirmViaHandler(info, targetPath, tool, source) {
|
|
442
500
|
try {
|
|
443
501
|
const ok = await this.confirmationHandler(info);
|
|
444
502
|
this.emitAudit({
|
|
445
503
|
type: ok ? 'write-confirm' : 'write-decline',
|
|
446
504
|
path: targetPath,
|
|
447
505
|
tool,
|
|
506
|
+
source,
|
|
448
507
|
decision: ok ? 'confirmed' : 'declined',
|
|
449
508
|
timestamp: nowIso(),
|
|
450
509
|
});
|
|
@@ -457,6 +516,7 @@ export class SecurityGuard {
|
|
|
457
516
|
type: 'write-decline',
|
|
458
517
|
path: targetPath,
|
|
459
518
|
tool,
|
|
519
|
+
source,
|
|
460
520
|
decision: 'declined',
|
|
461
521
|
reason: `回调异常:${toError(err).message}`,
|
|
462
522
|
timestamp: nowIso(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pathGuard.js","sourceRoot":"","sources":["../../src/security/pathGuard.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pathGuard.js","sourceRoot":"","sources":["../../src/security/pathGuard.ts"],"names":[],"mappings":"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"}
|
|
@@ -79,6 +79,10 @@
|
|
|
79
79
|
|
|
80
80
|
**推荐**:规则用**列表写**(每条一行,语义独立、可读性强);长段说明自然写成段落,会被合并为一条完整规则。写作时避免把示例代码/表格塞进 rules.md(会被忽略)——需要代码/资源放 `skills/` 目录(渐进披露 L3)。
|
|
81
81
|
|
|
82
|
+
**工具纪律基线(2026-10-25 增补)**:除角色专属规则外,建议每个包写一条**领域无关的编辑纪律**——增量写入优先(write_file 的 replace / insert / append)、同一文件的多处修订在**同一回复内连续发出**、整文件覆盖仅用于确需重建且不反复覆盖、复核只读改动片段。**为什么**:内核写侧护栏按「无进展」判据拦截(真源 `src/agent/guardRail.ts`;拒绝消息里的定位令牌只属运行时消息,见下方禁令),且同一 step 内同路径写已串行(`src/agent/loop.ts` 的同路径写链)——规则不写,模型会退化成「一处一停 + 反复整篇重写」(真机 `round-1792904123909`:7 次被拦、5 处修订拖到下轮、27 分钟 / 116 万输入 token)。三个内置包(`memora助手` / `共鸣小说家` / `白话方案设计师`)与宿主 `role-pack-creator` 模板均已内置该条。
|
|
83
|
+
|
|
84
|
+
> ⚠️ **令牌只在本指南里解释,勿写进 L1**:`[WRITE_LOOP_STOP]` / `[WRITE_FAIL_STOP]` 是**运行时拒绝消息**里的定位令牌,而 `rules.md` / `persona.md` 会常驻 system prompt——把令牌抄进 L1 会干扰「按令牌定位运行时拒绝消息」的消费方(纪律真源:`src/agent/guardRail.ts` 的 GUIDELINES)。L1 里只写行为纪律本身(如「反复整文件覆盖会被写侧护栏拦下」),不带令牌。
|
|
85
|
+
|
|
82
86
|
### 2.5 技能使用引导(persona/rules 里明确"何时用")
|
|
83
87
|
|
|
84
88
|
> **推荐(2026-09-13 双锚点结论)**:角色包每内置一个 `skills/*.md`,都应在设定文本(persona.md 工作流程 / rules.md 纪律)里为它补一处**「使用时机」引导**——明示「什么情况使用这个 skill」。
|
|
@@ -258,9 +258,11 @@ description: 把成稿写入本地文件
|
|
|
258
258
|
|
|
259
259
|
**技能引用格式(内容面约定)**:技能名同时是**文件名**与**引用名**——**名字即契约**(`skills/<name>.md` 的 `name` 与载入标识一致,改名属破坏性变更)。设定文本(persona / rules)引用技能时须用**反引号包裹技能名**(写成 `foreshadow` 这样的形式),使引用可被机器**双向校验**:每个技能至少被引用一次(防僵尸技能)+ 每条引用都指向真实存在的技能(防改名残留的悬空引用)。完整作者侧规范见 [role-pack-authoring-guide.md](./role-pack-authoring-guide.md) §2.6。
|
|
260
260
|
|
|
261
|
-
**具体连接桥(L2 可选,`mcp.json
|
|
261
|
+
**具体连接桥(L2 可选,`mcp.json`)——⛔ 已撤销(2026-10-25),见下条状态行**:capabilities 是**抽象能力声明**(要什么能力、实现无关);当角色包需要**开箱即用**的具象连接时,可在文件夹根放 `mcp.json`(对齐 Agent Plugins 1.0 的 transport 声明:`stdio` / `streamable-http` / `http+sse`),由实现映射到自有运行时。两者不冲突:**capabilities 是 L1 中立契约,mcp.json 是 L2 可选实现加速**——不声明 mcp.json 的角色包仍可被任何实现按 capabilities 装载。
|
|
262
262
|
|
|
263
|
-
> **`[草案]`(2026-09-08
|
|
263
|
+
> **`[草案]`(2026-09-08 状态收敛,已被下条取代)**:`mcp.json` 为 L2 可选机制,当前**无参考实现消费**(memora 参考实现不装载 mcp.json,实现按「未知文件忽略」回退 L1 capabilities)。按 §六 双闸门纪律标注 `[草案]`,征集实现验证后冻结。
|
|
264
|
+
|
|
265
|
+
> **⛔ 已撤销(2026-10-25 定案)**:上面 `[草案]` 的语义是「暂无参考实现消费,征集验证后冻结」——**该语义已不成立**。同日用户拍板 **角色包不得声明 MCP server**,这是**性质否决**而非「暂无实现」:角色包管**内容面**(persona / rules / skills = 你是谁、怎么做事),MCP server = **在本机拉起的任意进程**(写一条配置 = 授权一条命令在你的机器上执行 = **用户授权面**);两者不同源,塞进同一容器即「配置来源与授权来源合流」= 仓库作者替使用者点同意。⇒ **不再征集实现验证**,任何实现不得据此装载角色包级 MCP 声明。现行锚点(仓库内,不随本文件发布):`docs/方案-MCP工具接入-20261023.md` §4.4(授权边界)· `.trae/rules/memory-role-pack-boundary-rules.md` R10。
|
|
264
266
|
|
|
265
267
|
### 四·一 标准能力命名空间(中立语义字典,v1 最小集)
|
|
266
268
|
|
|
@@ -287,9 +289,11 @@ description: 把成稿写入本地文件
|
|
|
287
289
|
2. **中立门**:冻结后的能力名不可重命名,语义不可变更——实现向标准看齐,而非标准向实现看齐;
|
|
288
290
|
3. 已知能力名(不在本表内)按「未知能力跳过」装载(§四),不阻塞。
|
|
289
291
|
|
|
290
|
-
### 四·二 MCP
|
|
292
|
+
### 四·二 MCP 集成设计(⛔ 已撤销 · 仅历史记录,不属现行标准)
|
|
291
293
|
|
|
292
294
|
> **定位**:MCP(Model Context Protocol)是 2026 年行业标准工具调用协议。角色包标准不要求任何实现必须支持 MCP,但支持 MCP 的实现应遵循本节定义的抽象接口和声明路径,以保证角色包跨实现可移植性。
|
|
295
|
+
>
|
|
296
|
+
> **⛔ 本节已整体撤销(2026-10-25)**:以下 `mcp.json` 声明格式与 `IMcpTransport` 接口**仅为历史设计记录,不属现行标准**——「支持 MCP 的实现应遵循本节」这句已失效。角色包不得声明 MCP server(判据见 §四 末条状态行);memora 参考实现的 MCP 接入是**宿主侧用户级配置**,与角色包无关。
|
|
293
297
|
|
|
294
298
|
**核心原则**:MCP 是 L2 传输层细节,不是 L1 能力声明。
|
|
295
299
|
|
|
@@ -757,12 +761,12 @@ loop 何时收敛停止,由以下三条确定性信号 OR 触发,任一命
|
|
|
757
761
|
|
|
758
762
|
1. **角色包不自洽**:角色包不包含执行引擎,依赖宿主 Agent 的闭环引擎运行。这一特性天然适用于多 Agent 场景——每个角色包实例是一个独立 Agent,由宿主编排。
|
|
759
763
|
2. **interactionType 扩展点**:`interactionType` 字段(§七)当前为 `tool_assistant` / `companion` 二分,未来可扩展 `gateway` 或 `coordinator` 等角色类型,由宿主注入 A2A 路由逻辑。
|
|
760
|
-
3. **能力声明可路由**:`capabilities` 声明(§四)是中立能力名,多 Agent 宿主可基于能力名将子任务路由到对应角色包实例——memora 的插卡模型天然支持这种"Triage and Specialist"架构(2026
|
|
764
|
+
3. **能力声明可路由**:`capabilities` 声明(§四)是中立能力名,多 Agent 宿主可基于能力名将子任务路由到对应角色包实例——memora 的插卡模型天然支持这种"Triage and Specialist"架构(2026 年行业标准;宿主注入范式可参考既有 `IWebSearchProvider` / `ICodeExecutionProvider`)。
|
|
761
765
|
4. **当前不实现**:memora 内核不包含 A2A 客户端代码,不定义 A2A 传输接口。多 Agent 编排由宿主在闭环引擎之上实现,内核不感知。
|
|
762
766
|
|
|
763
767
|
**未来演进方向**(非承诺):
|
|
764
768
|
|
|
765
769
|
* 当生态需要多角色包协作时,可定义 `A2A 声明` 字段(如 `dependsOn: ["role-pack-a", "role-pack-b"]`),由宿主负责解析依赖并启动对应的 Agent 实例;
|
|
766
770
|
|
|
767
|
-
* A2A
|
|
771
|
+
* A2A 传输层可复用宿主侧的依赖倒置注入范式(与 `IWebSearchProvider` 同构、由宿主注入),不引入内核依赖。
|
|
768
772
|
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
# Memora 内核 API 参考手册(v5.
|
|
1
|
+
# Memora 内核 API 参考手册(v5.1.0)
|
|
2
2
|
|
|
3
3
|
> **核心定位**:Memora 是一个**无法独立运行**的智能大脑内核——它只有接口,没有"形态"。CLI、WebUI、桌面精灵、小说生成器都是它的"宿主",宿主负责给它身体(UI)、血管(Provider)、神经网络(事件回路)。
|
|
4
4
|
>
|
|
5
5
|
> **本文件用途**:列出内核对外暴露的**全部公开接口**——从最基础的接入接口(〇),到 Agent 面类、对话、记忆、角色包、工具、各 Manager,再到类型导出与安全约束。
|
|
6
6
|
>
|
|
7
|
-
> **版本**:v5.
|
|
7
|
+
> **版本**:v5.1.0(对齐当前内核包版本 `package.json`。纯净接口文档,不含历史变更流水)
|
|
8
|
+
>
|
|
9
|
+
> **最新已发布版本**:以 npm registry 为准(`npm view @zooique/memora dist-tags.latest`),不在包内复述。
|
|
8
10
|
|
|
9
11
|
---
|
|
10
12
|
|
|
@@ -261,6 +263,8 @@ Agent 通过一组 getter 暴露专职 Manager 与组件。详见后续章节。
|
|
|
261
263
|
| `security` | `SecurityGuard \| null` | 安全守卫(未注入 `createSecurityGuard` 工厂时为 `null`) |
|
|
262
264
|
| `bootstrapMemories` | `Memory[]` | 启动必召记忆——**恒为空数组**(设定记忆归角色包内容层,ADR-025) |
|
|
263
265
|
|
|
266
|
+
> **`security` 的方法(经公开成员可达,不是包入口导出符号)**:`SecurityGuard` 类本身未从 `src/index.ts` 导出,但 `agent.security` 是公开成员(`publicMemberSurfaceGuard` 成员表在册),其方法对消费者**可达**。5.1.0 新增 `requestToolCallConfirmation(toolName, summary, needConfirm)`——动态工具源(如宿主接入的 MCP 工具)的**单一确认入口**,与写入 / 命令 / 脚本确认复用同一个私有 `confirmGate`;`needConfirm` 由工具声明的 `ToolDefinition.confirmPolicy` 派生(`'always'` 弹窗 / `'audit'` 自动放行但仍落审计 / 缺省不过闸),拒绝时工具不执行并回 `[ERR:TOOL_DECLINE]`。
|
|
267
|
+
|
|
264
268
|
### 2.7 事件订阅(`agent.on()` / `agent.off()` / `agent.once()`)
|
|
265
269
|
|
|
266
270
|
Agent 继承 `TypedEventEmitter<AgentEventMap>`,向宿主项目广播对话外事件。
|
|
@@ -319,13 +323,17 @@ agent.on('memoryAdded', (e) => console.log(`新记忆: ${e.source}:${e.name}`));
|
|
|
319
323
|
|
|
320
324
|
## 三、对话 API
|
|
321
325
|
|
|
322
|
-
### 3.1 `chat(input, signal?)` — 流式对话(唯一入口)
|
|
326
|
+
### 3.1 `chat(input, signal?, attachments?)` — 流式对话(唯一入口)
|
|
323
327
|
|
|
324
328
|
```typescript
|
|
325
|
-
async *chat(
|
|
329
|
+
async *chat(
|
|
330
|
+
input: string,
|
|
331
|
+
signal?: AbortSignal,
|
|
332
|
+
attachments?: readonly ImageRef[],
|
|
333
|
+
): AsyncGenerator<AgentChunk, void, unknown>
|
|
326
334
|
```
|
|
327
335
|
|
|
328
|
-
流式返回 `AgentChunk` 事件,可选传入 `signal`
|
|
336
|
+
流式返回 `AgentChunk` 事件,可选传入 `signal` 支持取消。可选 `attachments`(图片附件,5.2.0 起)为多模态输入入口:仅流式 `chat()` 承载(`chatSync` 不收图);要求当前模型声明 `supportsVision`,未声明时明确拒绝(不静默);不传时行为与签名升级前完全一致。见 §十六 `ImageRef` / `ImageResolver` / `imageTokens`。
|
|
329
337
|
|
|
330
338
|
```typescript
|
|
331
339
|
type AgentChunk =
|
|
@@ -720,6 +728,7 @@ interface ToolDefinition {
|
|
|
720
728
|
};
|
|
721
729
|
readonly?: boolean; // 只读工具标记:true = readonly 模式下保留;缺省 false = 写操作,readonly 模式被阻止
|
|
722
730
|
diskWrite?: 'path' | 'opaque'; // 改盘声明(与 readonly 正交):'path' 按 args.path 定位目标做写串行;'opaque' 与一切写互斥;缺省 = 不改盘
|
|
731
|
+
confirmPolicy?: 'always' | 'audit'; // 自定义工具审批策略:'always' 每次过确认闸;'audit' 过闸自动放行仍落审计;缺省 = 不过闸不审计(历史行为)
|
|
723
732
|
}
|
|
724
733
|
|
|
725
734
|
// 宿主注册领域工具示例
|
|
@@ -1022,7 +1031,7 @@ Agent 不再管理 Provider 映射表,宿主自行管理。
|
|
|
1022
1031
|
| 分组 | 方法 |
|
|
1023
1032
|
|------|------|
|
|
1024
1033
|
| 生命周期 | `init()` / `close()` |
|
|
1025
|
-
| 对话 | `chat(input, signal?)` / `chatSync(input, signal?)` / `resumeExecution()` |
|
|
1034
|
+
| 对话 | `chat(input, signal?, attachments?)` / `chatSync(input, signal?)` / `resumeExecution()` |
|
|
1026
1035
|
| 事件 | `on()` / `off()` / `once()`(继承自 TypedEventEmitter) |
|
|
1027
1036
|
| 暂停/继续 | `pause(reason, source?)` / `resume()` / `requestPause(reason, source?)` / `cancelPauseRequest()` / `isPausePending()` / `interject(content)` / `removePendingInterject(index)` / `clearPendingInterjections()` / `getPendingInterjections()` / `discardCurrentCheckpoint()` |
|
|
1028
1037
|
| 会话 | `forkSession(targetSession?)` / `createCheckpoint()` / `getCheckpoint()` |
|
|
@@ -1292,6 +1301,11 @@ export { createProviderFromConfig } from '@zooique/memora';
|
|
|
1292
1301
|
export type { ProviderConfig } from '@zooique/memora';
|
|
1293
1302
|
export type { LlmProvider, ChatOptions } from '@zooique/memora';
|
|
1294
1303
|
export type { LlmChunk } from '@zooique/memora';
|
|
1304
|
+
// 图片输入(宿主注入解析器 + 视觉能力位;内核不直连外部存储与网络)
|
|
1305
|
+
export type { ImageRef, ImageResolver } from '@zooique/memora';
|
|
1306
|
+
// 单图折算成多少个令牌(方案五点九节的公式,对外只此一份);
|
|
1307
|
+
// 宿主在还没拼出完整文件信息、只拿到宽高时也能算,避免各侧重写该公式。
|
|
1308
|
+
export { imageTokens } from '@zooique/memora';
|
|
1295
1309
|
|
|
1296
1310
|
// 配置
|
|
1297
1311
|
export { loadConfig } from '@zooique/memora';
|
|
@@ -1345,5 +1359,5 @@ Agent 内部只维护一个状态文件,路径全部由宿主传入的路径
|
|
|
1345
1359
|
|
|
1346
1360
|
---
|
|
1347
1361
|
|
|
1348
|
-
**版本**:v5.
|
|
1362
|
+
**版本**:v5.1.0
|
|
1349
1363
|
**配套文档**:[memora-接入指南.md](./memora-接入指南.md)(步骤式教程)
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
# Memora · 接入指南
|
|
1
|
+
# Memora · 接入指南
|
|
2
2
|
|
|
3
3
|
> 帮助宿主项目开发者快速理解 Memora 的设计理念和接入方法。
|
|
4
4
|
>
|
|
5
|
-
>
|
|
5
|
+
> **本文档对应的内核版本**:即你安装的包版本(以包内 `package.json` 的 `version` 为准)。**刻意不在此写死版本号**——本文件随包发布,写死即会与包版本脱钩(无闸门能保证二者同步,故不陈述值就无从腐化)。各版完整变更见 [CHANGELOG](../CHANGELOG.md)。
|
|
6
|
+
>
|
|
7
|
+
> **最新已发布版本**:以 npm registry 为准(`npm view @zooique/memora dist-tags.latest`),不在包内复述。
|
|
6
8
|
>
|
|
7
9
|
> **对接入者有影响的迁移结论**(不含历史流水,细节见 [API 参考手册](./memora-api-reference.md)):
|
|
8
10
|
> - 1.0 为正式发布,API 已稳定;2.0 起设定记忆(persona/rules/skills)解耦为纯文件 + 内存缓存,唯一归角色包、不进记忆库(ADR-025),角色管理统一走 `agent.rolePack`。
|
|
@@ -38,7 +40,7 @@
|
|
|
38
40
|
|
|
39
41
|
**内核零越界。** 核心库模块不直接调用 `console.*`(唯一日志出口为 `logging/` 单例,默认实现写 stderr)、不读 `process.stdin`、不管理 API Key、不写用户配置文件。
|
|
40
42
|
|
|
41
|
-
**Manager 委托模式。** Agent 面类只做编排,领域操作委托给专职 Manager:`agent.rolePack`(角色包)/ `agent.tools`(工具)/ `agent.skills`(技能)/ `agent.memory`(记忆查询+写入)/ `agent.works`(作品投影)/ `agent.polish`(文本润色)共 6 个业务 Manager(另有 `
|
|
43
|
+
**Manager 委托模式。** Agent 面类只做编排,领域操作委托给专职 Manager:`agent.rolePack`(角色包)/ `agent.tools`(工具)/ `agent.skills`(技能)/ `agent.memory`(记忆查询+写入)/ `agent.works`(作品投影)/ `agent.polish`(文本润色)共 6 个业务 Manager(另有 `security` / `sessionManager` / `agentHistory` / `rolePackManager` 等)。
|
|
42
44
|
|
|
43
45
|
```
|
|
44
46
|
┌────────────────────────────────────────────────────────────┐
|
|
@@ -88,6 +90,8 @@
|
|
|
88
90
|
npm install @zooique/memora
|
|
89
91
|
```
|
|
90
92
|
|
|
93
|
+
> **运行时要求**:Node.js ≥ 22.0.0(与 `package.json#engines` 同口径)。其中 SQLite 落盘工厂 `createNodeSqliteStorage`(`node:sqlite`)需 **Node ≥ 22.13**——22.13 起 `node:sqlite` 才免 `--experimental-sqlite` 标志。低于 22.13 时包可正常加载、内存存储照常可用,仅调用该工厂会抛出明确的「需 Node ≥22.13」专属错误(`ToolErrorCode.NOT_AVAILABLE`),不会静默失败。
|
|
94
|
+
|
|
91
95
|
### 2. 创建 Provider + Agent
|
|
92
96
|
|
|
93
97
|
```typescript
|
|
@@ -327,20 +331,46 @@ Memora 通过 `ISessionStore` 接口支持会话消息的持久化。宿主实
|
|
|
327
331
|
> **检查点持久化已退役(2026-09-10 减法)**:`saveCheckpoint` / `loadCheckpoint` / `deleteCheckpoint` 已从接口删除;跨重启恢复链整体下线,中止/断电一律把未完成 turn 补全为完整 turn 身份并在下次会话按历史加载,运行时暂停是同 turn 内续跑(内存态)。
|
|
328
332
|
|
|
329
333
|
```typescript
|
|
330
|
-
import type { ISessionStore, SessionMessage } from '@zooique/memora';
|
|
334
|
+
import type { ISessionStore, SessionMessage, SessionMeta } from '@zooique/memora';
|
|
331
335
|
|
|
332
|
-
//
|
|
336
|
+
// 宿主实现接口:round-based 单一模式 —— 消息内容存 RoundStore,本接口只持「Round 指针 + 会话元数据」
|
|
337
|
+
// 以下为接口全集(11 个必需方法,照抄可编译通过);`setSessionTitle` 可选,未实现亦可
|
|
333
338
|
class FileSessionStore implements ISessionStore {
|
|
334
|
-
|
|
335
|
-
|
|
339
|
+
// ── 会话元数据 ──
|
|
340
|
+
getSessionMeta(sessionId: string): SessionMeta | undefined {
|
|
341
|
+
return undefined; // 读元数据;不存在返回 undefined
|
|
336
342
|
}
|
|
337
|
-
|
|
338
|
-
//
|
|
339
|
-
|
|
343
|
+
updateSessionMeta(sessionId: string, meta: Partial<SessionMeta>): void {
|
|
344
|
+
// 按 partial 合并写(内核对 sessionId 只做透传,不改写 key)
|
|
345
|
+
}
|
|
346
|
+
listSessionMetas(): SessionMeta[] {
|
|
347
|
+
return []; // 全量元数据(宿主自用;内核当前不主动调用)
|
|
340
348
|
}
|
|
341
349
|
listSessions(): string[] {
|
|
342
|
-
//
|
|
343
|
-
|
|
350
|
+
return []; // 会话 ID 列表
|
|
351
|
+
}
|
|
352
|
+
createSession(meta: SessionMeta): void {
|
|
353
|
+
// 建会话元数据(宿主自用;内核当前不主动调用)
|
|
354
|
+
}
|
|
355
|
+
deleteSession(sessionId: string): void {
|
|
356
|
+
// 删会话元数据(宿主自用;内核当前不主动调用)。契约:删除后 getSessionMeta 应为 undefined
|
|
357
|
+
}
|
|
358
|
+
// ── Round 指针(消息内容不在此,归 RoundStore)──
|
|
359
|
+
appendRoundId(sessionId: string, roundId: string): void {
|
|
360
|
+
// 追加单个 Round 指针
|
|
361
|
+
}
|
|
362
|
+
appendRoundIds(sessionId: string, roundIds: string[]): void {
|
|
363
|
+
// 批量追加(批量语义由宿主定义去重/顺序)
|
|
364
|
+
}
|
|
365
|
+
getRoundIds(sessionId: string): string[] {
|
|
366
|
+
return []; // 内核据此把 Round 展开成对话历史
|
|
367
|
+
}
|
|
368
|
+
setRoundIds(sessionId: string, roundIds: string[]): void {
|
|
369
|
+
// 整体覆盖(用于修剪/重排)
|
|
370
|
+
}
|
|
371
|
+
// ── 消息读取 ──
|
|
372
|
+
loadMessages(date: string, session: string): SessionMessage[] {
|
|
373
|
+
return []; // 按「日期 + 会话」读消息(兼容旧存储形态;round-based 下内容由 RoundStore 提供)
|
|
344
374
|
}
|
|
345
375
|
}
|
|
346
376
|
|
|
@@ -352,10 +382,10 @@ const agent = new Agent({
|
|
|
352
382
|
```
|
|
353
383
|
|
|
354
384
|
**会话持久化特性:**
|
|
355
|
-
-
|
|
356
|
-
-
|
|
357
|
-
-
|
|
358
|
-
- `SessionMessage.role` 支持 `'user' | 'assistant' | 'system'
|
|
385
|
+
- **round-based 单一模式**:消息内容只存 `IRoundStore`,`ISessionStore` 只持 Round 指针 + 会话元数据;两者必须**同源单例**(见 十.6 存储单例约束),双实例会互相覆盖。
|
|
386
|
+
- 日期使用 `todayDate()` 动态获取,确保跨日后消息写入当天目录。
|
|
387
|
+
- 内核真实调用的方法 = `loadMessages` / `listSessions` / `getSessionMeta` / `updateSessionMeta` / `appendRoundId` / `getRoundIds` / `setRoundIds`;`createSession` / `deleteSession` / `listSessionMetas` 是**契约方法**(宿主自管理与实现完整性所需),**内核当前不主动调用**。
|
|
388
|
+
- `SessionMessage.role` 支持 `'user' | 'assistant' | 'system'`。
|
|
359
389
|
|
|
360
390
|
---
|
|
361
391
|
|
|
@@ -640,7 +670,7 @@ for (const chapter of chapters) {
|
|
|
640
670
|
|
|
641
671
|
**前提:存储方案由宿主自选,内核只定契约。** 内核只定义 `IMemoryStorage` / `ISessionStore` 接口,**不规定后端**——SQLite、JSON 文件、内存实现一视同仁,任何后端都不得被写进内核逻辑(5.0.0 起内核**提供**可选的 SQLite 实现 `createNodeSqliteStorage`,但那是「多一个可选实现」,**不是**把后端写进逻辑——选哪个仍归宿主,`Agent` 构造契约不变)。接口方法为**同步语义**(对齐 better-sqlite3),异步后端需另行扩展接口;JSON 落地实现在同步路径上做全量重写,记忆量增长时由宿主自行评估更优后端(阈值与权衡见 `storageInterface.ts` 头注释)。第一宿主 memora-vscode 当前用 JSON 文件,换成 SQLite **不需要改内核**。
|
|
642
672
|
|
|
643
|
-
1.
|
|
673
|
+
1. **必填三项:`projectPath` / `provider` / `dataDir`** — 三者均无缺省值,缺一即无法构造(`AgentOptions` 中这三个字段**不带 `?`**,其余全部可选)。`projectPath` 决定项目级配置与锁的锚点,`provider` 是前台 LLM 调用入口,`dataDir` 是 Agent 级资源目录。**`storage` 缺省为内置内存实现**(对话与记忆闭环照常,仅不持久化)⇒ 想落盘直接用 `createNodeSqliteStorage`,**无需自实现存储接口**。
|
|
644
674
|
2. **configDir** 指向 Agent 级配置目录,所有项目共享
|
|
645
675
|
3. **项目级 `.memora/`** 放项目级配置(`rules/`、`skills/`)与内核写入的项目锁 `.lock`;`dataDir` 若指向此处(第一宿主 memora-vscode 即如此),记忆库与会话也落在这里
|
|
646
676
|
4. **角色包只能手动切换**(`agent.switchRolePack(name)` / `agent.rolePack.activate(name)`)——无输入自动匹配、无粘性锁存、无互斥触发;已激活的角色包在当前会话内保持固定(v0.13 已移除自动匹配全链)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zooique/memora",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.2.0",
|
|
4
4
|
"description": "Node.js 专用 Agent 架构 — 本地、私有、领域无关,摘要即记忆(memory-as-summary;零第三方运行时依赖,依赖 Node.js 内置模块)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -50,6 +50,10 @@
|
|
|
50
50
|
"lint:fix": "eslint . --fix",
|
|
51
51
|
"ci:local": "node scripts/local-ci.mjs",
|
|
52
52
|
"verify:dist-contract": "node scripts/verify-dist-contract.mjs",
|
|
53
|
+
"verify:changelog": "node scripts/verify-changelog-version.mjs",
|
|
54
|
+
"verify:publish-docs": "node scripts/verify-publish-docs.mjs",
|
|
55
|
+
"verify:ledger-hygiene": "node scripts/verify-ledger-hygiene.mjs",
|
|
56
|
+
"verify:ledger-fold": "node scripts/verify-ledger-fold.mjs",
|
|
53
57
|
"format": "prettier --write \"**/*.{ts,mjs,md,json}\"",
|
|
54
58
|
"format:check": "prettier --check \"**/*.{ts,mjs,md,json}\"",
|
|
55
59
|
"typecheck": "tsc --noEmit && tsc --noEmit -p tsconfig.scripts.json",
|
|
@@ -61,6 +65,8 @@
|
|
|
61
65
|
"docs:links": "tsx scripts/check-publish-links.ts",
|
|
62
66
|
"docs:links:repo": "tsx scripts/check-publish-links.ts --repo",
|
|
63
67
|
"rules:refs": "tsx scripts/check-rule-refs.ts",
|
|
68
|
+
"scan:docs:refs": "node scripts/doc-ref-scan.mjs",
|
|
69
|
+
"scan:docs:refs:check": "node scripts/doc-ref-scan.mjs --check",
|
|
64
70
|
"scan:phrase": "tsx scripts/scan-phrase-class.ts",
|
|
65
71
|
"scan:phrase:check": "tsx scripts/scan-phrase-class.ts --check",
|
|
66
72
|
"prepare": "lefthook install || true",
|
|
@@ -14,3 +14,4 @@
|
|
|
14
14
|
- **目标产出完整成稿**:以完整成稿为交付目标;过程中遇到方向性问题(内核锁定/转折走向/主角命运)主动提问、有更好的建议直接提出,与用户讨论推进——不闷头写完也不每题必问;成稿是候选稿,由用户审阅定稿
|
|
15
15
|
- **情绪只展示不命名**:禁止"伤心/愤怒/开心"等直接情绪形容词,用动作/细节/他人反应表达(见 `empathy-craft`)
|
|
16
16
|
- **文风服务情节**:按场景切换文风(短句快切=紧张、长句留白=抒情),一部作品基线文风稳定、场景渐变不乱切(见 `style-weaver`)
|
|
17
|
+
- **改稿只增量、不整章重写**:已写章节的修订用 write_file 的 replace(old_string 取原文唯一片段)/insert(按行)/append(追加),同一章的多处修订**在一次回复内连续改完**(内核按目标路径串行落地,不会互相覆盖);整章重建最多一次且先 read_file 取最新全文——反复整文件覆盖会被写侧护栏拦下;复核只读改动的段落,不整章回读
|
|
@@ -16,4 +16,5 @@
|
|
|
16
16
|
- 完成前对照风格规范校对:语气、层级、可读性(用 `style-guide`:术语一致、语气、可读性)
|
|
17
17
|
- **可开发性收敛**:方案末尾给出可开发性结论——技术选型、模块边界、依赖关系
|
|
18
18
|
- 产出结构:方案设计文档应依次覆盖——问题定义与种子、白话总览、搜索养分及结论、最小单元设计、层层生长推演、文档结构(依受众选形态)、边界与决策点、风险与回退、可开发性结论;完成后对照 SSOT 三问自查(这套逻辑是否只在某场景生效/去掉特殊处理核心是否完整/是否需在最小单元外引入新机制)
|
|
19
|
-
- 只产设计方案与设计文档,不越界生成代码实现或骨架
|
|
19
|
+
- 只产设计方案与设计文档,不越界生成代码实现或骨架
|
|
20
|
+
- **文档修订只增量、不整篇重写**:局部改动用 write_file 的 replace(old_string 取原文唯一片段)/insert(按行)/append(追加章节),同一文档的多处修订**在一次回复内连续改完**(内核按目标路径串行落地,不会互相覆盖);整篇重写只用于结构翻新且最多一次——反复整文件覆盖会被写侧护栏拦下;复核只读改动处(offset/limit),不整篇回读
|