@lmzhen/dsh-evolution-activity 0.9.0 → 0.10.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/README.md +1 -0
- package/lib/index.js +2 -1
- package/lib/types/index.d.ts +4 -0
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -15,6 +15,7 @@ durability lives here; a storage-domain table is deferred until a consumer needs
|
|
|
15
15
|
|
|
16
16
|
## Configuration
|
|
17
17
|
|
|
18
|
+
- Payload fields it folds: `sessionId`, `planId`, `policyFingerprint`, `memoryApplied`, `skillApplied`, `rejectedOps`, `skippedUnread`, `executionFailures`, `executionError` and `evidenceClassReports` (ops whose whole evidence list cites a turn/step boundary — the plan path's report-only phase-1 dimension; they are counted, never refused, so the field is not a "work not done" cause). Fields the fold does not name are ignored, so the payload can gain dimensions without a schema migration here.
|
|
18
19
|
- `maxItems` (default `DEFAULT_MAX_ITEMS = 200`): bound on the retained sidecar; a non-finite value falls back to the default, a non-positive value fails loud at the schema.
|
|
19
20
|
|
|
20
21
|
## Known limitations
|
package/lib/index.js
CHANGED
|
@@ -41,6 +41,7 @@ function applyActivityEvent(items, event, maxItems, at = Date.now()) {
|
|
|
41
41
|
...event.executionError !== void 0 ? { executionError: event.executionError } : {},
|
|
42
42
|
...event.evidenceQuotes !== void 0 ? { evidenceQuotes: event.evidenceQuotes } : {},
|
|
43
43
|
...event.estimatedInputChars !== void 0 ? { estimatedInputChars: event.estimatedInputChars } : {},
|
|
44
|
+
...event.evidenceClassReports !== void 0 ? { evidenceClassReports: event.evidenceClassReports } : {},
|
|
44
45
|
at
|
|
45
46
|
};
|
|
46
47
|
const cap = Number.isFinite(maxItems) ? Math.max(1, maxItems) : 200;
|
|
@@ -63,7 +64,7 @@ function parseActivityContent(raw) {
|
|
|
63
64
|
const isOptionalCount = (value) => value === void 0 || isCount(value);
|
|
64
65
|
try {
|
|
65
66
|
const parsed = JSON.parse(raw);
|
|
66
|
-
return (typeof parsed === "object" && parsed !== null && Array.isArray(parsed.items) ? parsed.items : []).filter((item) => typeof item === "object" && item !== null && typeof item.planId === "string" && typeof item.sessionId === "string" && isCount(item.memoryApplied) && isCount(item.skillApplied) && isCount(item.rejectedOps) && isTimestampEpochMs(item.at) && isOptionalCount(item.skippedUnread) && isOptionalCount(item.executionFailures) && isOptionalCount(item.evidenceQuotes) && isOptionalCount(item.estimatedInputChars));
|
|
67
|
+
return (typeof parsed === "object" && parsed !== null && Array.isArray(parsed.items) ? parsed.items : []).filter((item) => typeof item === "object" && item !== null && typeof item.planId === "string" && typeof item.sessionId === "string" && isCount(item.memoryApplied) && isCount(item.skillApplied) && isCount(item.rejectedOps) && isTimestampEpochMs(item.at) && isOptionalCount(item.skippedUnread) && isOptionalCount(item.executionFailures) && isOptionalCount(item.evidenceQuotes) && isOptionalCount(item.estimatedInputChars) && isOptionalCount(item.evidenceClassReports));
|
|
67
68
|
} catch {
|
|
68
69
|
return [];
|
|
69
70
|
}
|
package/lib/types/index.d.ts
CHANGED
|
@@ -36,6 +36,10 @@ export interface EvolutionActivityRecord {
|
|
|
36
36
|
executionError?: string | undefined;
|
|
37
37
|
evidenceQuotes?: number | undefined;
|
|
38
38
|
estimatedInputChars?: number | undefined;
|
|
39
|
+
/** Batch D (2026-09-27): ops whose whole evidence list cites a turn/step boundary
|
|
40
|
+
* (the plan path's report-only phase-1 dimension). NOT a "work not done" cause —
|
|
41
|
+
* those ops executed. Optional so sidecars written before the dimension parse. */
|
|
42
|
+
evidenceClassReports?: number | undefined;
|
|
39
43
|
at: number;
|
|
40
44
|
}
|
|
41
45
|
/** Version of the `activity.json` shape; writers always emit the current one. */
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lmzhen/dsh-evolution-activity",
|
|
3
3
|
"description": "Durable activity store for self-evolution plan outcomes (community build)",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.10.0",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -27,15 +27,15 @@
|
|
|
27
27
|
"license": "MIT",
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@deepseek-ai/schemastery": "^3.18.1",
|
|
30
|
-
"@lmzhen/dsh-evolution-core": "^0.
|
|
30
|
+
"@lmzhen/dsh-evolution-core": "^0.10.0"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
33
|
"@deepseek-ai/cordis": "^4.0.1"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@deepseek-ai/cordis": "^4.0.1",
|
|
37
|
-
"@lmzhen/dsh-evolution-core": "^0.
|
|
38
|
-
"@lmzhen/dsh-evolution-io": "^0.
|
|
39
|
-
"@lmzhen/dsh-evolution-io-node": "^0.
|
|
37
|
+
"@lmzhen/dsh-evolution-core": "^0.10.0",
|
|
38
|
+
"@lmzhen/dsh-evolution-io": "^0.10.0",
|
|
39
|
+
"@lmzhen/dsh-evolution-io-node": "^0.10.0"
|
|
40
40
|
}
|
|
41
41
|
}
|