@dsh-enhanced/assistant-growth-driver 0.1.64 → 0.1.66

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,51 @@
1
+ import { type WorkItemGrowthAuthorityPins, type WorkItemSourceGrowthRunBinding } from '@dsh-enhanced/assistant-growth-contract';
2
+ import type { OwnerForegroundLearningTask, OwnerWorkItemEngineeringContextSource } from '@dsh-enhanced/assistant-delivery';
3
+ export type UsageStableOwner = Pick<OwnerForegroundLearningTask['owner'], 'authorityId' | 'authorityHash' | 'principalId' | 'principalRecordId' | 'principalVersion' | 'workspace' | 'agentPreset'>;
4
+ export declare const workItemStableOwner: (owner: UsageStableOwner) => UsageStableOwner;
5
+ export interface WorkItemUsageLocator {
6
+ protocol: 'assistant-growth/work-item-usage-locator/v1';
7
+ configDigest: string;
8
+ owner: UsageStableOwner;
9
+ itemId: string;
10
+ canonical: {
11
+ outcomeId: string;
12
+ version: number;
13
+ digest: string;
14
+ objectiveStatus: 'not-achieved';
15
+ };
16
+ createdAt: number;
17
+ expiresAt: number;
18
+ }
19
+ export declare function validateWorkItemUsageLocator(value: unknown): asserts value is WorkItemUsageLocator;
20
+ export interface WorkItemUsageSource extends OwnerWorkItemEngineeringContextSource {
21
+ protocol: 'assistant-delivery/work-item-engineering-context/v1';
22
+ parentReports: readonly Readonly<{
23
+ itemId: string;
24
+ revision: number;
25
+ text: string;
26
+ fullTextDigest: string;
27
+ fullBytes: number;
28
+ }>[];
29
+ }
30
+ export interface WorkItemCreationReadiness {
31
+ protocol: 'assistant-growth/work-item-creation-readiness/v1';
32
+ sourceProtocol: 'assistant-delivery/work-item-engineering-context/v1';
33
+ runProtocol: 'assistant-growth/source-run/v2';
34
+ workItemFailures: true;
35
+ pins: WorkItemGrowthAuthorityPins;
36
+ remaining: {
37
+ sourceSubmissions: number;
38
+ creates: number;
39
+ verifications: number;
40
+ adoptions: number;
41
+ };
42
+ available: boolean;
43
+ }
44
+ export declare const workItemTextDigest: (text: string) => string;
45
+ export declare function workItemAuthorityDeadline(pins: WorkItemGrowthAuthorityPins): number;
46
+ export declare function isWorkItemCreationReady(value: unknown, pins: WorkItemGrowthAuthorityPins, now?: number, admission?: boolean): value is WorkItemCreationReadiness;
47
+ /** New source data may contain exact NUL/non-NFC text, but never accessors, proxies or executable values. */
48
+ export declare function ownData<T>(input: T): T;
49
+ export declare function freezeWorkItemData<T>(input: T): T;
50
+ export declare function workItemRunSource(source: WorkItemUsageSource): WorkItemSourceGrowthRunBinding['source'];
51
+ //# sourceMappingURL=work-item-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"work-item-source.d.ts","sourceRoot":"","sources":["../src/work-item-source.ts"],"names":[],"mappings":"AAIA,OAAO,EAAuC,KAAK,2BAA2B,EAAE,KAAK,8BAA8B,EAAE,MAAM,yCAAyC,CAAA;AACpK,OAAO,KAAK,EAAE,2BAA2B,EAAE,qCAAqC,EAAE,MAAM,kCAAkC,CAAA;AAE1H,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,eAAe,GAAG,aAAa,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,WAAW,GAAG,aAAa,CAAC,CAAA;AACnM,eAAO,MAAM,mBAAmB,GAAI,OAAO,gBAAgB,KAAG,gBAA8Q,CAAA;AAC5U,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,6CAA6C,CAAA;IACvD,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,gBAAgB,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,cAAc,CAAA;KAAE,CAAA;IAClG,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AACD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,oBAAoB,CAgBlG;AACD,MAAM,WAAW,mBAAoB,SAAQ,qCAAqC;IAChF,QAAQ,EAAE,qDAAqD,CAAA;IAC/D,aAAa,EAAE,SAAS,QAAQ,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAA;CAClI;AACD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,kDAAkD,CAAA;IAC5D,cAAc,EAAE,qDAAqD,CAAA;IACrE,WAAW,EAAE,gCAAgC,CAAA;IAC7C,gBAAgB,EAAE,IAAI,CAAA;IACtB,IAAI,EAAE,2BAA2B,CAAA;IACjC,SAAS,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;IACnG,SAAS,EAAE,OAAO,CAAA;CACnB;AACD,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,KAAG,MAAiE,CAAA;AACnH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,2BAA2B,GAAG,MAAM,CAEnF;AACD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,2BAA2B,EAAE,GAAG,SAAa,EAAE,SAAS,UAAO,GAAG,KAAK,IAAI,yBAAyB,CAYjK;AACD,6GAA6G;AAC7G,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAoBtC;AACD,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAMjD;AACD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,GAAG,8BAA8B,CAAC,QAAQ,CAAC,CAavG"}
@@ -0,0 +1,105 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { types as utilTypes } from 'node:util';
3
+ import { isAbsolute, resolve } from 'node:path';
4
+ import { acceptanceDigest } from '@dsh-enhanced/task-acceptance-contract';
5
+ import { validateWorkItemGrowthAuthorityPins } from '@dsh-enhanced/assistant-growth-contract';
6
+ export const workItemStableOwner = (owner) => ({ authorityId: owner.authorityId, authorityHash: owner.authorityHash, principalId: owner.principalId, principalRecordId: owner.principalRecordId, principalVersion: owner.principalVersion, workspace: owner.workspace, agentPreset: owner.agentPreset });
7
+ export function validateWorkItemUsageLocator(value) {
8
+ const locator = ownData(value);
9
+ if (Object.keys(locator).sort().join(',') !== 'canonical,configDigest,createdAt,expiresAt,itemId,owner,protocol'
10
+ || locator.protocol !== 'assistant-growth/work-item-usage-locator/v1' || !/^[a-f0-9]{64}$/u.test(locator.configDigest)
11
+ || typeof locator.itemId !== 'string' || !locator.itemId || locator.itemId.length > 500
12
+ || Object.keys(locator.canonical).sort().join(',') !== 'digest,objectiveStatus,outcomeId,version'
13
+ || locator.canonical.objectiveStatus !== 'not-achieved' || typeof locator.canonical.outcomeId !== 'string'
14
+ || !locator.canonical.outcomeId || locator.canonical.outcomeId.length > 500 || !/^[a-f0-9]{64}$/u.test(locator.canonical.digest)
15
+ || !Number.isSafeInteger(locator.canonical.version) || locator.canonical.version < 1
16
+ || !Number.isSafeInteger(locator.createdAt) || locator.createdAt < 0 || !Number.isSafeInteger(locator.expiresAt)
17
+ || locator.expiresAt <= locator.createdAt || locator.expiresAt > 8_640_000_000_000_000)
18
+ throw new Error('invalid work item usage locator');
19
+ const owner = locator.owner;
20
+ if (Object.keys(owner).sort().join(',') !== 'agentPreset,authorityHash,authorityId,principalId,principalRecordId,principalVersion,workspace'
21
+ || !/^[a-f0-9]{64}$/u.test(owner.authorityHash) || !Number.isSafeInteger(owner.principalVersion) || owner.principalVersion < 1
22
+ || [owner.authorityId, owner.principalId, owner.principalRecordId, owner.agentPreset].some(value => typeof value !== 'string' || !value || value.length > 500 || /\p{Cc}/u.test(value))
23
+ || typeof owner.workspace !== 'string' || !isAbsolute(owner.workspace) || resolve(owner.workspace) !== owner.workspace || owner.workspace === '/')
24
+ throw new Error('invalid work item usage owner');
25
+ }
26
+ export const workItemTextDigest = (text) => createHash('sha256').update(text, 'utf8').digest('hex');
27
+ export function workItemAuthorityDeadline(pins) {
28
+ return Math.min(pins.sourceJobs.expiresAt, pins.creationGrant.expiresAt, pins.creationAcceptance.expiresAt, pins.adoption.expiresAt);
29
+ }
30
+ export function isWorkItemCreationReady(value, pins, now = Date.now(), admission = true) {
31
+ try {
32
+ const result = ownData(value);
33
+ if (Object.keys(result).sort().join(',') !== 'available,pins,protocol,remaining,runProtocol,sourceProtocol,workItemFailures'
34
+ || result.protocol !== 'assistant-growth/work-item-creation-readiness/v1'
35
+ || result.sourceProtocol !== 'assistant-delivery/work-item-engineering-context/v1'
36
+ || result.runProtocol !== 'assistant-growth/source-run/v2' || result.workItemFailures !== true || typeof result.available !== 'boolean' || admission && result.available !== true)
37
+ return false;
38
+ validateWorkItemGrowthAuthorityPins(result.pins);
39
+ return acceptanceDigest(result.pins) === acceptanceDigest(pins) && workItemAuthorityDeadline(pins) > now
40
+ && Object.keys(result.remaining).sort().join(',') === 'adoptions,creates,sourceSubmissions,verifications'
41
+ && Object.values(result.remaining).every(count => Number.isSafeInteger(count) && count >= (admission ? 1 : 0));
42
+ }
43
+ catch {
44
+ return false;
45
+ }
46
+ }
47
+ /** New source data may contain exact NUL/non-NFC text, but never accessors, proxies or executable values. */
48
+ export function ownData(input) {
49
+ const seen = new Set();
50
+ let nodes = 0;
51
+ const visit = (value, depth) => {
52
+ if (++nodes > 65_536 || depth > 64)
53
+ throw new Error('work item growth data exceeds bounds');
54
+ if (value === null || typeof value === 'boolean' || typeof value === 'number' && Number.isSafeInteger(value))
55
+ return;
56
+ if (typeof value === 'string' && value.isWellFormed() && Buffer.byteLength(value) <= 524_288)
57
+ return;
58
+ if (typeof value !== 'object' || utilTypes.isProxy(value) || seen.has(value)
59
+ || ![Object.prototype, null, Array.prototype].includes(Object.getPrototypeOf(value)))
60
+ throw new Error('invalid work item growth data');
61
+ seen.add(value);
62
+ const descriptors = Object.getOwnPropertyDescriptors(value);
63
+ if (Array.isArray(value))
64
+ delete descriptors.length;
65
+ if (Reflect.ownKeys(descriptors).some(key => typeof key !== 'string')
66
+ || Object.values(descriptors).some(field => !field.enumerable || !('value' in field)))
67
+ throw new Error('invalid work item growth own data');
68
+ for (const field of Object.values(descriptors))
69
+ visit(field.value, depth + 1);
70
+ seen.delete(value);
71
+ };
72
+ visit(input, 0);
73
+ const json = JSON.stringify(input);
74
+ if (Buffer.byteLength(json) > 1_048_576)
75
+ throw new Error('work item growth snapshot too large');
76
+ return JSON.parse(json);
77
+ }
78
+ export function freezeWorkItemData(input) {
79
+ const value = ownData(input);
80
+ const freeze = (item) => {
81
+ if (item && typeof item === 'object') {
82
+ for (const field of Object.values(item))
83
+ freeze(field);
84
+ Object.freeze(item);
85
+ }
86
+ };
87
+ freeze(value);
88
+ return value;
89
+ }
90
+ export function workItemRunSource(source) {
91
+ const task = source.task, projection = task.canonical.projection;
92
+ if (projection.subjectKind !== 'work-item' || projection.disposition !== 'upsert'
93
+ || task.canonical.objective?.status !== 'not-achieved' || source.manifest.itemId !== task.proofIdentity.itemId
94
+ || Buffer.byteLength(source.objective) !== source.manifest.objective.fullBytes || Buffer.byteLength(source.objective) > 16_384
95
+ || workItemTextDigest(source.objective) !== source.manifest.objective.fullTextDigest)
96
+ throw new Error('work item engineering source changed');
97
+ return { protocol: 'assistant-growth/work-item-source/v1', itemId: task.proofIdentity.itemId,
98
+ outcomeId: task.canonical.objective.outcomeId, projection: { subjectKind: 'work-item', subjectRef: projection.subjectRef,
99
+ version: projection.version, digest: projection.digest, disposition: 'upsert',
100
+ ...(projection.evidenceOutcomeId === undefined ? {} : { evidenceOutcomeId: projection.evidenceOutcomeId }) },
101
+ objectiveStatus: 'not-achieved', sourceDigest: task.sourceDigest, presentationDigest: task.presentationDigest,
102
+ context: { protocol: source.manifest.protocol, manifestDigest: source.manifest.manifestDigest,
103
+ objectiveDigest: source.manifest.objective.fullTextDigest, objectiveBytes: source.manifest.objective.fullBytes } };
104
+ }
105
+ //# sourceMappingURL=work-item-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"work-item-source.js","sourceRoot":"","sources":["../src/work-item-source.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dsh-enhanced/assistant-growth-driver",
3
- "version": "0.1.64",
3
+ "version": "0.1.66",
4
4
  "description": "Bounded growth agent with durable reviews driven by owner-verified task feedback and frozen source models.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -44,17 +44,17 @@
44
44
  },
45
45
  "dependencies": {
46
46
  "@deepseek-ai/schemastery": "3.18.5",
47
- "@dsh-enhanced/assistant-growth-contract": "0.1.64",
48
- "@dsh-enhanced/task-acceptance-contract": "0.1.64"
47
+ "@dsh-enhanced/assistant-growth-contract": "0.1.66",
48
+ "@dsh-enhanced/task-acceptance-contract": "0.1.66"
49
49
  },
50
50
  "peerDependencies": {
51
51
  "@deepseek-ai/cordis": "^4.0.1",
52
- "@deepseek-ai/dsh-agent": "0.2.1-rc.2",
53
- "@deepseek-ai/dsh-agent-preset-registry": "0.2.1-rc.2",
54
- "@deepseek-ai/dsh-credentials": "0.2.1-rc.2",
55
- "@deepseek-ai/dsh-llm": "0.2.1-rc.2",
56
- "@deepseek-ai/dsh-session": "0.2.1-rc.2",
57
- "@deepseek-ai/dsh-tools": "0.2.1-rc.2",
52
+ "@deepseek-ai/dsh-agent": ">=0.2.1-rc.2 <0.3.0",
53
+ "@deepseek-ai/dsh-agent-preset-registry": ">=0.2.1-rc.2 <0.3.0",
54
+ "@deepseek-ai/dsh-credentials": ">=0.2.1-rc.2 <0.3.0",
55
+ "@deepseek-ai/dsh-llm": ">=0.2.1-rc.2 <0.3.0",
56
+ "@deepseek-ai/dsh-session": ">=0.2.1-rc.2 <0.3.0",
57
+ "@deepseek-ai/dsh-tools": ">=0.2.1-rc.2 <0.3.0",
58
58
  "@dsh-enhanced/assistant-automations": ">=0.1.33 <0.2.0",
59
59
  "@dsh-enhanced/assistant-delivery": ">=0.1.33 <0.2.0",
60
60
  "@dsh-enhanced/assistant-evaluation": ">=0.1.33 <0.2.0",
@@ -113,6 +113,7 @@
113
113
  },
114
114
  "devDependencies": {
115
115
  "@deepseek-ai/cordis": "4.0.5",
116
+ "@deepseek-ai/cordis-plugin-loader": "1.0.6",
116
117
  "@deepseek-ai/dsh-agent": "0.2.1-rc.2",
117
118
  "@deepseek-ai/dsh-agent-default-model": "0.2.1-rc.2",
118
119
  "@deepseek-ai/dsh-agent-loop": "0.2.1-rc.2",
@@ -121,19 +122,25 @@
121
122
  "@deepseek-ai/dsh-credentials": "0.2.1-rc.2",
122
123
  "@deepseek-ai/dsh-llm": "0.2.1-rc.2",
123
124
  "@deepseek-ai/dsh-session": "0.2.1-rc.2",
125
+ "@deepseek-ai/dsh-session-persistence-jsonl": "0.2.1-rc.2",
124
126
  "@deepseek-ai/dsh-session-projection": "0.2.1-rc.2",
125
127
  "@deepseek-ai/dsh-system-prompt": "0.2.1-rc.2",
126
128
  "@deepseek-ai/dsh-tools": "0.2.1-rc.2",
127
129
  "@types/node": "22.20.0",
128
130
  "typescript": "6.0.3",
129
131
  "vitest": "4.1.8",
130
- "@dsh-enhanced/assistant-delivery": "0.1.64",
131
- "@dsh-enhanced/assistant-evaluation": "0.1.64",
132
- "@dsh-enhanced/assistant-automations": "0.1.64",
133
- "@dsh-enhanced/assistant-goals": "0.1.64",
134
- "@dsh-enhanced/assistant-skills": "0.1.64",
135
- "@dsh-enhanced/assistant-super-relay-budget": "0.1.64",
136
- "@dsh-enhanced/assistant-policy": "0.1.64"
132
+ "@dsh-enhanced/assistant-delivery": "0.1.66",
133
+ "@dsh-enhanced/assistant-automations": "0.1.66",
134
+ "@dsh-enhanced/assistant-evaluation": "0.1.66",
135
+ "@dsh-enhanced/assistant-goals": "0.1.66",
136
+ "@dsh-enhanced/assistant-isolation": "0.1.66",
137
+ "@dsh-enhanced/assistant-policy": "0.1.66",
138
+ "@dsh-enhanced/assistant-skills": "0.1.66",
139
+ "@dsh-enhanced/assistant-super-relay-budget": "0.1.66",
140
+ "@dsh-enhanced/assistant-work-items": "0.1.66",
141
+ "@dsh-enhanced/lark-channel": "0.1.66",
142
+ "@dsh-enhanced/plugin-control-plane": "0.1.66",
143
+ "@dsh-enhanced/assistant-verifier": "0.1.66"
137
144
  },
138
145
  "scripts": {
139
146
  "build": "tsc -p tsconfig.build.json",