@lmzhen/dsh-evolution-core 0.30.28 → 0.30.30
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/README.md
CHANGED
|
@@ -60,9 +60,11 @@ session log made the session unresumable (A-line P0-1), which is why the payload
|
|
|
60
60
|
| `evolution/skills-refresh` | emit (notification) | `evolution-commands` `/evolution` verbs |
|
|
61
61
|
| `evolution/review-scheduled` | emit (notification) | `evolution-review` cadence paths |
|
|
62
62
|
| `evolution/review-error` | emit (notification) | `evolution-review` failure paths |
|
|
63
|
-
| `evolution/
|
|
63
|
+
| `evolution/review-completed` | emit (notification) | `evolution-review` after a plugin branch settles |
|
|
64
64
|
| `evolution/memory-applied` | emit (notification) | `memory` after a memory write |
|
|
65
65
|
|
|
66
|
+
Legacy `evolution/plan-applied` remains declared so old activity ledgers stay readable, but the current production tree has no plan emitter after the review subagent/plan path was removed.
|
|
67
|
+
|
|
66
68
|
The mode column is what the code does today: every one of them is an announcement, and each
|
|
67
69
|
declaration carries it as a `@mode` tag (finding O-1, landed) — `verify-arch-guards`' rule **N33** checks that
|
|
68
70
|
tag against THIS table and against the dispatch site (`ctx.emit('…'`), so a declaration that drifts from
|
package/lib/index.js
CHANGED
|
@@ -7987,8 +7987,18 @@ function renderLongRunTable() {
|
|
|
7987
7987
|
* `client` probes run in the browser half, where the host has no view of the seats.
|
|
7988
7988
|
* @module @lmzhen/dsh-evolution-core
|
|
7989
7989
|
*/
|
|
7990
|
-
/** The
|
|
7990
|
+
/** The 28 probes, in service-name order (the guard checks this list against the tree). */
|
|
7991
7991
|
const PLATFORM_SERVICE_PROBES = Object.freeze([
|
|
7992
|
+
{
|
|
7993
|
+
service: "agentDefaultModel",
|
|
7994
|
+
feature: "the model route inherited by a plugin review branch",
|
|
7995
|
+
side: "host"
|
|
7996
|
+
},
|
|
7997
|
+
{
|
|
7998
|
+
service: "agentPresets",
|
|
7999
|
+
feature: "the preset mount that gives a plugin review branch its tools/system",
|
|
8000
|
+
side: "host"
|
|
8001
|
+
},
|
|
7992
8002
|
{
|
|
7993
8003
|
service: "agents",
|
|
7994
8004
|
feature: "review and curator subagent wake-ups",
|
|
@@ -13967,13 +13977,13 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
13967
13977
|
owner: "evolution-review",
|
|
13968
13978
|
applies: "live",
|
|
13969
13979
|
docAnchor: "PARAMETERS.md#review",
|
|
13970
|
-
summary: "Run the review in the parent session (inject) or
|
|
13980
|
+
summary: "Run the review in the parent session (inject), on a subagent, or in a background branch.",
|
|
13971
13981
|
label: "运行位置",
|
|
13972
|
-
hint: "
|
|
13982
|
+
hint: "在哪里运行检查:在当前会话里/交给子代理/后台分支。",
|
|
13973
13983
|
control: "select",
|
|
13974
13984
|
unit: "",
|
|
13975
|
-
values: "
|
|
13976
|
-
valueLabels: "
|
|
13985
|
+
values: "inject|branch",
|
|
13986
|
+
valueLabels: "在当前会话里|后台分支",
|
|
13977
13987
|
card: "evolution-review"
|
|
13978
13988
|
},
|
|
13979
13989
|
{
|
package/lib/types/events.d.ts
CHANGED
|
@@ -29,7 +29,47 @@ export interface EvolutionReviewScheduledEvent {
|
|
|
29
29
|
* `'subagent'` (spawned review run), `'inject'` (prompt injected into the
|
|
30
30
|
* parent — direct, fallback, or deferred-drain), `'completion'`
|
|
31
31
|
* (completion-trigger prompt, direct or deferred-drain). */
|
|
32
|
-
channel?: 'subagent' | 'inject' | 'completion' | undefined;
|
|
32
|
+
channel?: 'subagent' | 'inject' | 'completion' | 'branch' | undefined;
|
|
33
|
+
}
|
|
34
|
+
/** One normalized skill/memory action performed by a review branch. */
|
|
35
|
+
export interface EvolutionReviewAction {
|
|
36
|
+
readonly type: 'skill' | 'memory' | 'tool';
|
|
37
|
+
readonly action: string;
|
|
38
|
+
readonly target: string;
|
|
39
|
+
readonly status: 'ok' | 'error';
|
|
40
|
+
readonly revision?: string | undefined;
|
|
41
|
+
readonly summary?: string | undefined;
|
|
42
|
+
}
|
|
43
|
+
/** One durable review outcome emitted after a branch settles. */
|
|
44
|
+
export interface EvolutionReviewCompletedEvent {
|
|
45
|
+
readonly version: 1;
|
|
46
|
+
readonly reviewId: string;
|
|
47
|
+
readonly sessionId: string;
|
|
48
|
+
readonly branchSessionId?: string | undefined;
|
|
49
|
+
readonly kind: ReviewKind;
|
|
50
|
+
readonly status: 'completed' | 'failed' | 'timeout' | 'aborted';
|
|
51
|
+
readonly trigger: {
|
|
52
|
+
readonly reason: string;
|
|
53
|
+
readonly toolCalls: number;
|
|
54
|
+
readonly userChars: number;
|
|
55
|
+
readonly assistantChars: number;
|
|
56
|
+
};
|
|
57
|
+
readonly finalText: string;
|
|
58
|
+
readonly actions: readonly EvolutionReviewAction[];
|
|
59
|
+
readonly usage?: {
|
|
60
|
+
readonly inputTokens: number;
|
|
61
|
+
readonly outputTokens: number;
|
|
62
|
+
readonly cacheReadTokens: number;
|
|
63
|
+
readonly cacheWriteTokens: number;
|
|
64
|
+
} | undefined;
|
|
65
|
+
readonly startedAt: number;
|
|
66
|
+
readonly finishedAt: number;
|
|
67
|
+
readonly model?: {
|
|
68
|
+
readonly provider: string;
|
|
69
|
+
readonly model: string;
|
|
70
|
+
} | undefined;
|
|
71
|
+
readonly promptVersion?: string | undefined;
|
|
72
|
+
readonly error?: string | undefined;
|
|
33
73
|
}
|
|
34
74
|
export interface EvolutionPlanAppliedEvent {
|
|
35
75
|
/** Owning session (payload v2): process events carry no session envelope. */
|
|
@@ -92,11 +132,17 @@ declare module '@deepseek-ai/cordis' {
|
|
|
92
132
|
* @mode emit
|
|
93
133
|
*/
|
|
94
134
|
'evolution/review-scheduled'(event: EvolutionReviewScheduledEvent): void;
|
|
135
|
+
/**
|
|
136
|
+
* One review branch settled with its durable result. An ANNOUNCEMENT: the
|
|
137
|
+
* activity ledger folds it into review history; it decides nothing.
|
|
138
|
+
* @param event - the review identity, status, summary, actions, and usage.
|
|
139
|
+
* @mode emit
|
|
140
|
+
*/
|
|
141
|
+
'evolution/review-completed'(event: EvolutionReviewCompletedEvent): void;
|
|
95
142
|
/**
|
|
96
143
|
* A reviewed plan finished its write leg, with the counts that describe what landed. An
|
|
97
144
|
* ANNOUNCEMENT: the family's own ledger of plan outcomes (A98 / O-1).
|
|
98
145
|
* @param event - the outcome counts, the first failure message, and the policy fingerprint.
|
|
99
|
-
* @mode emit
|
|
100
146
|
*/
|
|
101
147
|
'evolution/plan-applied'(event: EvolutionPlanAppliedEvent): void;
|
|
102
148
|
/**
|
package/lib/types/params.js
CHANGED
|
@@ -105,7 +105,7 @@ export const PARAM_EXPOSURE = Object.freeze([
|
|
|
105
105
|
{ id: 'skillReviewTrigger', group: 'review', tier: 'E3', authority: 'cordis', owner: 'evolution-review', applies: 'live', docAnchor: 'PARAMETERS.md#review', summary: 'Which channel may inject a skill review (cadence, completion, both).', label: '技能检查时机', hint: '什么时候检查技能:按间隔/按任务完成/两者。', control: 'select', unit: '', values: 'cadence|completion|both', valueLabels: '按间隔|按任务完成|两者', card: 'evolution-review' },
|
|
106
106
|
{ id: 'skillReviewCompletionMinToolCalls', group: 'review', tier: 'E3', authority: 'cordis', owner: 'evolution-review', applies: 'live', docAnchor: 'PARAMETERS.md#review', summary: 'Tool calls a task needs before the completion channel injects.', label: '完成时的最少工具调用', hint: '选「按任务完成」时,任务至少用了几次工具才检查。', control: 'number', unit: '次', values: '', card: 'evolution-review' },
|
|
107
107
|
{ id: 'reviewEnabled', group: 'review', tier: 'E3', authority: 'cordis', owner: 'evolution-review', applies: 'live', docAnchor: 'PARAMETERS.md#review', summary: 'Master switch for the review plugin.', label: '启用自动检查', hint: '关闭后不再自动回顾会话。', control: 'switch', unit: '', values: '', card: 'evolution-review' },
|
|
108
|
-
{ id: 'reviewMode', group: 'review', tier: 'E3', authority: 'cordis', owner: 'evolution-review', applies: 'live', docAnchor: 'PARAMETERS.md#review', summary: 'Run the review in the parent session (inject) or
|
|
108
|
+
{ id: 'reviewMode', group: 'review', tier: 'E3', authority: 'cordis', owner: 'evolution-review', applies: 'live', docAnchor: 'PARAMETERS.md#review', summary: 'Run the review in the parent session (inject), on a subagent, or in a background branch.', label: '运行位置', hint: '在哪里运行检查:在当前会话里/交给子代理/后台分支。', control: 'select', unit: '', values: 'inject|branch', valueLabels: '在当前会话里|后台分支', card: 'evolution-review' },
|
|
109
109
|
{ id: 'reviewWakeInject', group: 'review', tier: 'E3', authority: 'cordis', owner: 'evolution-review', applies: 'live', docAnchor: 'PARAMETERS.md#review', summary: 'Deliver the deferred review as a waking follow-up message.', label: '延后结果发提醒', hint: '会话空闲时,把延后的检查结果作为一条提醒发给你。', control: 'switch', unit: '', values: '', card: 'evolution-review' },
|
|
110
110
|
{ id: 'reviewNotice', group: 'review', tier: 'E3', authority: 'cordis', owner: 'evolution-review', applies: 'live', docAnchor: 'PARAMETERS.md#review', summary: 'Deliver result notices into the parent conversation.', label: '结果通知', hint: '关闭后检查结果不再写进对话;检查本身照常运行,结果留在审计记录里。', control: 'switch', unit: '', values: '', card: 'evolution-review' },
|
|
111
111
|
{ id: 'reviewProvider', group: 'review', tier: 'E2', authority: 'cordis', owner: 'evolution-review', applies: 'none', docAnchor: 'PARAMETERS.md#review', summary: 'LLM provider for review subagents (deployment identity).', why: 'identity' },
|
|
@@ -20,7 +20,7 @@ export interface PlatformServiceProbe {
|
|
|
20
20
|
/** Where the probe runs. */
|
|
21
21
|
readonly side: 'host' | 'client';
|
|
22
22
|
}
|
|
23
|
-
/** The
|
|
23
|
+
/** The 28 probes, in service-name order (the guard checks this list against the tree). */
|
|
24
24
|
export declare const PLATFORM_SERVICE_PROBES: readonly PlatformServiceProbe[];
|
|
25
25
|
/**
|
|
26
26
|
* The HOST-side probes that do not resolve in this runtime — what `/evolution doctor` prints as
|
|
@@ -11,8 +11,10 @@
|
|
|
11
11
|
* `client` probes run in the browser half, where the host has no view of the seats.
|
|
12
12
|
* @module @lmzhen/dsh-evolution-core
|
|
13
13
|
*/
|
|
14
|
-
/** The
|
|
14
|
+
/** The 28 probes, in service-name order (the guard checks this list against the tree). */
|
|
15
15
|
export const PLATFORM_SERVICE_PROBES = Object.freeze([
|
|
16
|
+
{ service: 'agentDefaultModel', feature: 'the model route inherited by a plugin review branch', side: 'host' },
|
|
17
|
+
{ service: 'agentPresets', feature: 'the preset mount that gives a plugin review branch its tools/system', side: 'host' },
|
|
16
18
|
{ service: 'agents', feature: 'review and curator subagent wake-ups', side: 'host' },
|
|
17
19
|
{ service: 'approval', feature: 'the platform approval policy the approval row shadows', side: 'host' },
|
|
18
20
|
{ service: 'configEditor', feature: 'the params view inherited-vs-override column', side: 'host' },
|
|
@@ -214,7 +214,7 @@ export declare class UnitTransactions implements UnitTransaction {
|
|
|
214
214
|
phase: "target-pending" | "target-written" | "source-archiving" | "sources-archived";
|
|
215
215
|
} | {
|
|
216
216
|
ok: boolean;
|
|
217
|
-
phase: "prepared" | "support-pending" | "unit-written" | "committed" | "
|
|
217
|
+
phase: "failed" | "prepared" | "support-pending" | "unit-written" | "committed" | "rolled-back";
|
|
218
218
|
}>;
|
|
219
219
|
}
|
|
220
220
|
//# sourceMappingURL=unit-transaction.d.ts.map
|
package/package.json
CHANGED