@dsh-enhanced/assistant-growth-driver 0.1.34

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.
@@ -0,0 +1,121 @@
1
+ import { closeSync, constants, lstatSync, mkdirSync, openSync } from 'node:fs';
2
+ import { dirname, isAbsolute } from 'node:path';
3
+ import { DatabaseSync } from 'node:sqlite';
4
+ import { acceptanceDigest } from '@dsh-enhanced/task-acceptance-contract';
5
+ const read = (row) => ({ id: row.id, intent: JSON.parse(row.intent_json),
6
+ digest: row.digest, state: row.state, definitionHash: row.definition_hash, occurrenceId: row.occurrence_id, reason: row.reason });
7
+ /** Intent/index only. Evaluation remains the sole task-result ledger. */
8
+ export class UsageStore {
9
+ db;
10
+ constructor(path) {
11
+ if (!isAbsolute(path))
12
+ throw new Error('usage database path must be absolute');
13
+ mkdirSync(dirname(path), { recursive: true, mode: 0o700 });
14
+ const parent = lstatSync(dirname(path));
15
+ if (!parent.isDirectory() || parent.isSymbolicLink() || (parent.mode & 0o022) !== 0)
16
+ throw new Error('unsafe usage database directory');
17
+ try {
18
+ closeSync(openSync(path, constants.O_CREAT | constants.O_EXCL | constants.O_RDWR | constants.O_NOFOLLOW, 0o600));
19
+ }
20
+ catch (error) {
21
+ if (error.code !== 'EEXIST')
22
+ throw error;
23
+ }
24
+ for (const file of [path, `${path}-wal`, `${path}-shm`]) {
25
+ try {
26
+ const stat = lstatSync(file);
27
+ if (!stat.isFile() || stat.isSymbolicLink() || stat.nlink !== 1 || (stat.mode & 0o077) !== 0)
28
+ throw new Error('unsafe usage database file');
29
+ }
30
+ catch (error) {
31
+ if (error.code !== 'ENOENT')
32
+ throw error;
33
+ }
34
+ }
35
+ this.db = new DatabaseSync(path);
36
+ try {
37
+ const version = this.db.prepare('PRAGMA user_version').get().user_version;
38
+ if (version > 1)
39
+ throw new Error('usage database schema is newer than this plugin');
40
+ this.db.exec(`PRAGMA journal_mode=WAL; PRAGMA synchronous=FULL; PRAGMA busy_timeout=250;
41
+ CREATE TABLE IF NOT EXISTS usage_jobs(id TEXT PRIMARY KEY, lane TEXT NOT NULL, subject TEXT NOT NULL,
42
+ intent_json TEXT NOT NULL, digest TEXT NOT NULL, state TEXT NOT NULL CHECK(state IN ('queued','running','reviewed','failed','unknown','superseded')),
43
+ definition_hash TEXT, occurrence_id TEXT, reason TEXT) STRICT;
44
+ CREATE INDEX IF NOT EXISTS usage_jobs_lane_state ON usage_jobs(lane,state);
45
+ CREATE TABLE IF NOT EXISTS usage_cursors(lane TEXT PRIMARY KEY, scope_key TEXT NOT NULL, watermark INTEGER NOT NULL) STRICT;
46
+ PRAGMA user_version=1;`);
47
+ }
48
+ catch (error) {
49
+ this.db.close();
50
+ throw error;
51
+ }
52
+ }
53
+ close() { this.db.close(); }
54
+ cursor(lane) {
55
+ const row = this.db.prepare('SELECT scope_key,watermark FROM usage_cursors WHERE lane=?').get(lane);
56
+ return row === undefined ? undefined : { scopeKey: row.scope_key, watermark: row.watermark };
57
+ }
58
+ get(id) {
59
+ const row = this.db.prepare('SELECT * FROM usage_jobs WHERE id=?').get(id);
60
+ return row === undefined ? undefined : read(row);
61
+ }
62
+ pending(lane) {
63
+ return this.db.prepare("SELECT * FROM usage_jobs WHERE lane=? AND state IN ('queued','running') ORDER BY rowid").all(lane).map(read);
64
+ }
65
+ counts(lane) {
66
+ return Object.fromEntries(this.db.prepare('SELECT state,COUNT(*) AS count FROM usage_jobs WHERE lane=? GROUP BY state').all(lane).map(row => [row.state, row.count]));
67
+ }
68
+ /** Called only while the caller holds Evaluation's current canonical writer fence. */
69
+ consume(input) {
70
+ this.db.exec('BEGIN IMMEDIATE');
71
+ try {
72
+ const prior = this.cursor(input.lane);
73
+ if (prior && (prior.scopeKey !== input.scopeKey || prior.watermark >= input.watermark)) {
74
+ this.db.exec('COMMIT');
75
+ return true;
76
+ }
77
+ const id = input.intent === undefined ? undefined : `usage-${acceptanceDigest([input.lane, input.subject, input.intent.source.canonical.projection])}`;
78
+ if (id && !this.get(id) && this.pending(input.lane).filter(job => job.state === 'queued' || job.state === 'running').length >= input.maxPending) {
79
+ this.db.exec('COMMIT');
80
+ return false;
81
+ }
82
+ // A newer canonical result invalidates pending work, including retractions.
83
+ // Running work is checked at every model/tool boundary by the consumer.
84
+ this.db.prepare("UPDATE usage_jobs SET state='superseded',reason='canonical-source-changed' WHERE lane=? AND subject=? AND state='queued' AND id<>?")
85
+ .run(input.lane, input.subject, id ?? '');
86
+ if (id && input.intent)
87
+ this.db.prepare("INSERT INTO usage_jobs(id,lane,subject,intent_json,digest,state) VALUES (?,?,?,?,?,'queued') ON CONFLICT(id) DO NOTHING")
88
+ .run(id, input.lane, input.subject, JSON.stringify(input.intent), acceptanceDigest(input.intent));
89
+ this.db.prepare('INSERT INTO usage_cursors(lane,scope_key,watermark) VALUES (?,?,?) ON CONFLICT(lane) DO UPDATE SET scope_key=excluded.scope_key,watermark=excluded.watermark')
90
+ .run(input.lane, input.scopeKey, input.watermark);
91
+ this.db.exec('COMMIT');
92
+ return true;
93
+ }
94
+ catch (error) {
95
+ this.db.exec('ROLLBACK');
96
+ throw error;
97
+ }
98
+ }
99
+ interrupt(lane) {
100
+ this.db.prepare("UPDATE usage_jobs SET state='unknown',reason='interrupted-after-dispatch' WHERE lane=? AND state='running'").run(lane);
101
+ }
102
+ bind(id, definitionHash) {
103
+ this.db.prepare("UPDATE usage_jobs SET definition_hash=? WHERE id=? AND state='queued' AND definition_hash IS NULL").run(definitionHash, id);
104
+ const job = this.get(id);
105
+ if (!job || job.definitionHash !== definitionHash)
106
+ throw new Error('usage definition binding changed');
107
+ return job;
108
+ }
109
+ claim(id, definitionHash, occurrenceId) {
110
+ if (this.db.prepare("UPDATE usage_jobs SET state='running',occurrence_id=? WHERE id=? AND state='queued' AND definition_hash=?").run(occurrenceId, id, definitionHash).changes !== 1)
111
+ throw new Error('usage job already claimed');
112
+ return this.get(id);
113
+ }
114
+ settle(id, state, reason, occurrenceId) {
115
+ if (occurrenceId === undefined)
116
+ this.db.prepare("UPDATE usage_jobs SET state=?,reason=? WHERE id=? AND state='queued'").run(state, reason, id);
117
+ else
118
+ this.db.prepare("UPDATE usage_jobs SET state=?,reason=? WHERE id=? AND state='running' AND occurrence_id=?").run(state, reason, id, occurrenceId);
119
+ }
120
+ }
121
+ //# sourceMappingURL=usage-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-store.js","sourceRoot":"","sources":["../src/usage-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const version = "0.1.34";
2
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,WAAW,CAAA"}
package/lib/version.js ADDED
@@ -0,0 +1,2 @@
1
+ export const version = '0.1.34';
2
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAA"}
package/package.json ADDED
@@ -0,0 +1,142 @@
1
+ {
2
+ "name": "@dsh-enhanced/assistant-growth-driver",
3
+ "version": "0.1.34",
4
+ "description": "Bounded growth agent with durable reviews driven by owner-verified task feedback and frozen source models.",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "main": "./lib/index.js",
8
+ "types": "./lib/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./lib/index.d.ts",
12
+ "default": "./lib/index.js"
13
+ },
14
+ "./cordis.patch.yml": "./cordis.patch.yml",
15
+ "./package.json": "./package.json"
16
+ },
17
+ "files": [
18
+ "lib",
19
+ "cordis.patch.yml",
20
+ "README.md",
21
+ "LICENSE"
22
+ ],
23
+ "engines": {
24
+ "node": "^22.19.0 || >=24.0.0"
25
+ },
26
+ "publishConfig": {
27
+ "access": "public"
28
+ },
29
+ "repository": {
30
+ "type": "git",
31
+ "url": "git+https://github.com/22-ai-00/dsh-enhanced.git",
32
+ "directory": "plugins/assistant-growth-driver"
33
+ },
34
+ "keywords": [
35
+ "deepseek",
36
+ "deepseek-harness",
37
+ "dsh-plugin",
38
+ "growth"
39
+ ],
40
+ "dsh": {
41
+ "bundle": {
42
+ "patch": "./cordis.patch.yml"
43
+ }
44
+ },
45
+ "dependencies": {
46
+ "@deepseek-ai/schemastery": "3.18.2",
47
+ "@dsh-enhanced/task-acceptance-contract": "0.1.34"
48
+ },
49
+ "peerDependencies": {
50
+ "@deepseek-ai/cordis": "^4.0.1",
51
+ "@deepseek-ai/dsh-agent": ">=0.1.2-rc.1 <0.2.0",
52
+ "@deepseek-ai/dsh-agent-presets": ">=0.1.2-rc.1 <0.2.0",
53
+ "@deepseek-ai/dsh-credentials": ">=0.1.2-rc.1 <0.2.0",
54
+ "@deepseek-ai/dsh-llm": ">=0.1.2-rc.1 <0.2.0",
55
+ "@deepseek-ai/dsh-session": ">=0.1.2-rc.1 <0.2.0",
56
+ "@deepseek-ai/dsh-tools": ">=0.1.2-rc.1 <0.2.0",
57
+ "@dsh-enhanced/assistant-delivery": ">=0.1.33 <0.2.0",
58
+ "@dsh-enhanced/assistant-goals": ">=0.1.25 <0.2.0",
59
+ "@dsh-enhanced/assistant-policy": ">=0.1.0 <0.2.0",
60
+ "@dsh-enhanced/assistant-skills": ">=0.1.33 <0.2.0",
61
+ "@dsh-enhanced/assistant-super-relay-budget": ">=0.1.0 <0.2.0",
62
+ "@dsh-enhanced/plugin-control-plane": ">=0.1.33 <0.2.0",
63
+ "@dsh-enhanced/assistant-evaluation": ">=0.1.33 <0.2.0",
64
+ "@dsh-enhanced/assistant-automations": ">=0.1.33 <0.2.0"
65
+ },
66
+ "peerDependenciesMeta": {
67
+ "@deepseek-ai/cordis": {
68
+ "optional": true
69
+ },
70
+ "@deepseek-ai/dsh-agent": {
71
+ "optional": true
72
+ },
73
+ "@deepseek-ai/dsh-agent-presets": {
74
+ "optional": true
75
+ },
76
+ "@deepseek-ai/dsh-credentials": {
77
+ "optional": true
78
+ },
79
+ "@deepseek-ai/dsh-llm": {
80
+ "optional": true
81
+ },
82
+ "@deepseek-ai/dsh-session": {
83
+ "optional": true
84
+ },
85
+ "@deepseek-ai/dsh-tools": {
86
+ "optional": true
87
+ },
88
+ "@dsh-enhanced/assistant-delivery": {
89
+ "optional": true
90
+ },
91
+ "@dsh-enhanced/assistant-goals": {
92
+ "optional": true
93
+ },
94
+ "@dsh-enhanced/assistant-policy": {
95
+ "optional": true
96
+ },
97
+ "@dsh-enhanced/assistant-skills": {
98
+ "optional": true
99
+ },
100
+ "@dsh-enhanced/assistant-super-relay-budget": {
101
+ "optional": true
102
+ },
103
+ "@dsh-enhanced/plugin-control-plane": {
104
+ "optional": true
105
+ },
106
+ "@dsh-enhanced/assistant-evaluation": {
107
+ "optional": true
108
+ },
109
+ "@dsh-enhanced/assistant-automations": {
110
+ "optional": true
111
+ }
112
+ },
113
+ "devDependencies": {
114
+ "@deepseek-ai/cordis": "4.0.2",
115
+ "@deepseek-ai/dsh-agent": "0.1.2-rc.1",
116
+ "@deepseek-ai/dsh-agent-default-model": "0.1.2-rc.1",
117
+ "@deepseek-ai/dsh-agent-loop": "0.1.2-rc.1",
118
+ "@deepseek-ai/dsh-agent-loop-testkit": "0.1.2-rc.1",
119
+ "@deepseek-ai/dsh-agent-presets": "0.1.2-rc.1",
120
+ "@deepseek-ai/dsh-credentials": "0.1.2-rc.1",
121
+ "@deepseek-ai/dsh-llm": "0.1.2-rc.1",
122
+ "@deepseek-ai/dsh-session": "0.1.2-rc.1",
123
+ "@deepseek-ai/dsh-session-projection": "0.1.2-rc.1",
124
+ "@deepseek-ai/dsh-system-prompt": "0.1.2-rc.1",
125
+ "@deepseek-ai/dsh-tools": "0.1.2-rc.1",
126
+ "@types/node": "22.20.0",
127
+ "typescript": "6.0.3",
128
+ "vitest": "4.1.8",
129
+ "@dsh-enhanced/assistant-delivery": "0.1.34",
130
+ "@dsh-enhanced/assistant-goals": "0.1.34",
131
+ "@dsh-enhanced/assistant-super-relay-budget": "0.1.34",
132
+ "@dsh-enhanced/assistant-evaluation": "0.1.34",
133
+ "@dsh-enhanced/assistant-skills": "0.1.34",
134
+ "@dsh-enhanced/assistant-automations": "0.1.34",
135
+ "@dsh-enhanced/assistant-policy": "0.1.34"
136
+ },
137
+ "scripts": {
138
+ "build": "tsc -p tsconfig.build.json",
139
+ "test": "vitest run",
140
+ "typecheck": "tsc -p tsconfig.json --noEmit"
141
+ }
142
+ }