@dsh-enhanced/assistant-work-items 0.0.0-stage → 0.1.67

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.
Files changed (152) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +685 -2
  3. package/cordis.patch.yml +11 -0
  4. package/lib/acceptance-binding.d.ts +86 -0
  5. package/lib/acceptance-binding.d.ts.map +1 -0
  6. package/lib/acceptance-binding.js +250 -0
  7. package/lib/acceptance-binding.js.map +1 -0
  8. package/lib/admission.d.ts +95 -0
  9. package/lib/admission.d.ts.map +1 -0
  10. package/lib/admission.js +642 -0
  11. package/lib/admission.js.map +1 -0
  12. package/lib/authority.d.ts +99 -0
  13. package/lib/authority.d.ts.map +1 -0
  14. package/lib/authority.js +233 -0
  15. package/lib/authority.js.map +1 -0
  16. package/lib/config.d.ts +365 -0
  17. package/lib/config.d.ts.map +1 -0
  18. package/lib/config.js +672 -0
  19. package/lib/config.js.map +1 -0
  20. package/lib/continuation-contract.d.ts +126 -0
  21. package/lib/continuation-contract.d.ts.map +1 -0
  22. package/lib/continuation-contract.js +109 -0
  23. package/lib/continuation-contract.js.map +1 -0
  24. package/lib/continuation-record.d.ts +32 -0
  25. package/lib/continuation-record.d.ts.map +1 -0
  26. package/lib/continuation-record.js +57 -0
  27. package/lib/continuation-record.js.map +1 -0
  28. package/lib/continuation.d.ts +89 -0
  29. package/lib/continuation.d.ts.map +1 -0
  30. package/lib/continuation.js +607 -0
  31. package/lib/continuation.js.map +1 -0
  32. package/lib/diagnosis-contract.d.ts +95 -0
  33. package/lib/diagnosis-contract.d.ts.map +1 -0
  34. package/lib/diagnosis-contract.js +167 -0
  35. package/lib/diagnosis-contract.js.map +1 -0
  36. package/lib/diagnosis.d.ts +70 -0
  37. package/lib/diagnosis.d.ts.map +1 -0
  38. package/lib/diagnosis.js +466 -0
  39. package/lib/diagnosis.js.map +1 -0
  40. package/lib/dispatch.d.ts +100 -0
  41. package/lib/dispatch.d.ts.map +1 -0
  42. package/lib/dispatch.js +317 -0
  43. package/lib/dispatch.js.map +1 -0
  44. package/lib/engineering-context.d.ts +86 -0
  45. package/lib/engineering-context.d.ts.map +1 -0
  46. package/lib/engineering-context.js +263 -0
  47. package/lib/engineering-context.js.map +1 -0
  48. package/lib/evaluation.d.ts +125 -0
  49. package/lib/evaluation.d.ts.map +1 -0
  50. package/lib/evaluation.js +295 -0
  51. package/lib/evaluation.js.map +1 -0
  52. package/lib/event-follow.d.ts +93 -0
  53. package/lib/event-follow.d.ts.map +1 -0
  54. package/lib/event-follow.js +150 -0
  55. package/lib/event-follow.js.map +1 -0
  56. package/lib/feedback-targets.d.ts +91 -0
  57. package/lib/feedback-targets.d.ts.map +1 -0
  58. package/lib/feedback-targets.js +362 -0
  59. package/lib/feedback-targets.js.map +1 -0
  60. package/lib/index.d.ts +27 -0
  61. package/lib/index.d.ts.map +1 -0
  62. package/lib/index.js +25 -0
  63. package/lib/index.js.map +1 -0
  64. package/lib/intake-admission.d.ts +49 -0
  65. package/lib/intake-admission.d.ts.map +1 -0
  66. package/lib/intake-admission.js +100 -0
  67. package/lib/intake-admission.js.map +1 -0
  68. package/lib/intake-evaluation-runtime.d.ts +74 -0
  69. package/lib/intake-evaluation-runtime.d.ts.map +1 -0
  70. package/lib/intake-evaluation-runtime.js +343 -0
  71. package/lib/intake-evaluation-runtime.js.map +1 -0
  72. package/lib/intake-evaluation.d.ts +180 -0
  73. package/lib/intake-evaluation.d.ts.map +1 -0
  74. package/lib/intake-evaluation.js +440 -0
  75. package/lib/intake-evaluation.js.map +1 -0
  76. package/lib/intake.d.ts +118 -0
  77. package/lib/intake.d.ts.map +1 -0
  78. package/lib/intake.js +137 -0
  79. package/lib/intake.js.map +1 -0
  80. package/lib/ledger.d.ts +86 -0
  81. package/lib/ledger.d.ts.map +1 -0
  82. package/lib/ledger.js +145 -0
  83. package/lib/ledger.js.map +1 -0
  84. package/lib/mandate.d.ts +45 -0
  85. package/lib/mandate.d.ts.map +1 -0
  86. package/lib/mandate.js +168 -0
  87. package/lib/mandate.js.map +1 -0
  88. package/lib/outcome.d.ts +137 -0
  89. package/lib/outcome.d.ts.map +1 -0
  90. package/lib/outcome.js +303 -0
  91. package/lib/outcome.js.map +1 -0
  92. package/lib/owner-access.d.ts +35 -0
  93. package/lib/owner-access.d.ts.map +1 -0
  94. package/lib/owner-access.js +152 -0
  95. package/lib/owner-access.js.map +1 -0
  96. package/lib/owner-continuation.d.ts +27 -0
  97. package/lib/owner-continuation.d.ts.map +1 -0
  98. package/lib/owner-continuation.js +131 -0
  99. package/lib/owner-continuation.js.map +1 -0
  100. package/lib/owner-recall.d.ts +85 -0
  101. package/lib/owner-recall.d.ts.map +1 -0
  102. package/lib/owner-recall.js +134 -0
  103. package/lib/owner-recall.js.map +1 -0
  104. package/lib/owner-replies.d.ts +44 -0
  105. package/lib/owner-replies.d.ts.map +1 -0
  106. package/lib/owner-replies.js +268 -0
  107. package/lib/owner-replies.js.map +1 -0
  108. package/lib/peers.d.ts +624 -0
  109. package/lib/peers.d.ts.map +1 -0
  110. package/lib/peers.js +10 -0
  111. package/lib/peers.js.map +1 -0
  112. package/lib/policy-notice.d.ts +31 -0
  113. package/lib/policy-notice.d.ts.map +1 -0
  114. package/lib/policy-notice.js +137 -0
  115. package/lib/policy-notice.js.map +1 -0
  116. package/lib/reply-contract.d.ts +67 -0
  117. package/lib/reply-contract.d.ts.map +1 -0
  118. package/lib/reply-contract.js +58 -0
  119. package/lib/reply-contract.js.map +1 -0
  120. package/lib/service.d.ts +632 -0
  121. package/lib/service.d.ts.map +1 -0
  122. package/lib/service.js +2447 -0
  123. package/lib/service.js.map +1 -0
  124. package/lib/settlement.d.ts +74 -0
  125. package/lib/settlement.d.ts.map +1 -0
  126. package/lib/settlement.js +233 -0
  127. package/lib/settlement.js.map +1 -0
  128. package/lib/signals.d.ts +176 -0
  129. package/lib/signals.d.ts.map +1 -0
  130. package/lib/signals.js +497 -0
  131. package/lib/signals.js.map +1 -0
  132. package/lib/store.d.ts +791 -0
  133. package/lib/store.d.ts.map +1 -0
  134. package/lib/store.js +3266 -0
  135. package/lib/store.js.map +1 -0
  136. package/lib/tools.d.ts +7 -0
  137. package/lib/tools.d.ts.map +1 -0
  138. package/lib/tools.js +443 -0
  139. package/lib/tools.js.map +1 -0
  140. package/lib/types.d.ts +831 -0
  141. package/lib/types.d.ts.map +1 -0
  142. package/lib/types.js +29 -0
  143. package/lib/types.js.map +1 -0
  144. package/lib/version.d.ts +2 -0
  145. package/lib/version.d.ts.map +1 -0
  146. package/lib/version.js +2 -0
  147. package/lib/version.js.map +1 -0
  148. package/lib/workspace.d.ts +43 -0
  149. package/lib/workspace.d.ts.map +1 -0
  150. package/lib/workspace.js +137 -0
  151. package/lib/workspace.js.map +1 -0
  152. package/package.json +101 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback-targets.d.ts","sourceRoot":"","sources":["../src/feedback-targets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,362 @@
1
+ import { symbols } from '@deepseek-ai/cordis';
2
+ import { acceptanceCanonicalJson, acceptanceDigest } from '@dsh-enhanced/task-acceptance-contract';
3
+ import { CONTINUATION_OWNER, continuationItemBasis, parseContinuationActivation } from './continuation-contract.js';
4
+ import { continuationDigest } from './continuation-record.js';
5
+ import { DIAGNOSIS_OWNER } from './diagnosis-contract.js';
6
+ import { isReplyContinuationPlan, parseStoredContinuationPlan } from './reply-contract.js';
7
+ import { OPEN_STATES, WorkItemError } from './types.js';
8
+ const HEX = /^[a-f0-9]{64}$/u;
9
+ function bounded(value, maximum) {
10
+ return typeof value === 'string' && value.length > 0 && value.trim() === value && Buffer.byteLength(value) <= maximum
11
+ && !/\p{Cc}/u.test(value) && Buffer.from(value, 'utf8').toString('utf8') === value;
12
+ }
13
+ function positive(value) { return typeof value === 'number' && Number.isSafeInteger(value) && value > 0; }
14
+ function peerIdentity(peer) { return peer[symbols.original] ?? peer; }
15
+ /** Snapshot foreign metadata before the final local fence. Accessors, custom
16
+ * prototypes and cycles cannot execute late code while a proof is assembled. */
17
+ function inert(value) {
18
+ const ancestors = new Set();
19
+ const inspect = (current, depth) => {
20
+ if (current === null || typeof current === 'string' || typeof current === 'boolean' || typeof current === 'number' && Number.isFinite(current))
21
+ return;
22
+ if (!current || typeof current !== 'object' || depth > 12 || ancestors.has(current))
23
+ throw new Error('invalid peer data');
24
+ const array = Array.isArray(current), prototype = Object.getPrototypeOf(current);
25
+ if (prototype !== (array ? Array.prototype : Object.prototype) && prototype !== null)
26
+ throw new Error('invalid peer prototype');
27
+ const descriptors = Object.getOwnPropertyDescriptors(current), keys = Reflect.ownKeys(descriptors);
28
+ if (keys.length > 256)
29
+ throw new Error('peer data too large');
30
+ ancestors.add(current);
31
+ for (const key of keys) {
32
+ if (typeof key !== 'string')
33
+ throw new Error('peer data symbols invalid');
34
+ const descriptor = descriptors[key];
35
+ if (array && key === 'length')
36
+ continue;
37
+ if (!descriptor.enumerable || !Object.hasOwn(descriptor, 'value'))
38
+ throw new Error('peer accessors invalid');
39
+ inspect(descriptor.value, depth + 1);
40
+ }
41
+ ancestors.delete(current);
42
+ };
43
+ inspect(value, 0);
44
+ const text = acceptanceCanonicalJson(value);
45
+ if (Buffer.byteLength(text) > 65536)
46
+ throw new Error('peer metadata exceeds byte bound');
47
+ return JSON.parse(text);
48
+ }
49
+ function freeze(value) {
50
+ if (value && typeof value === 'object') {
51
+ for (const child of Object.values(value))
52
+ freeze(child);
53
+ Object.freeze(value);
54
+ }
55
+ return value;
56
+ }
57
+ function supplierOf(contract) {
58
+ if (!bounded(contract.provider, 4096) || !bounded(contract.model, 4096)
59
+ || Object.hasOwn(contract, 'reasoningEffort') && !bounded(contract.reasoningEffort, 4096))
60
+ throw new Error('invalid frozen supplier');
61
+ return { provider: contract.provider, model: contract.model, ...(Object.hasOwn(contract, 'reasoningEffort') ? { reasoningEffort: contract.reasoningEffort } : {}) };
62
+ }
63
+ /** Preserve the existing typed-report identity, including v1/v2 plan digest,
64
+ * while excluding mutable outbox delivery bookkeeping. */
65
+ export function workItemReportDigest(item, report, text, planDigest) {
66
+ return acceptanceDigest({ itemId: item.id, revision: report.revision, status: report.status, summary: text, truncated: report.truncated,
67
+ artifactPaths: report.artifactPaths, deliveryKey: report.deliveryKey, recordedAt: report.recordedAt, planDigest });
68
+ }
69
+ function sealedReport(store, config, itemId, revision) {
70
+ const scope = config.scope, item = store.findItemById(itemId), found = store.feedbackReportByRevision(itemId, revision), last = store.lastReport(itemId);
71
+ if (!scope || !item || item.observed || OPEN_STATES.includes(item.state) || !found || !last || last.revision !== revision
72
+ || !['ready', 'blocked', 'failed'].includes(found.status) || item.scope.workspace !== scope.workspace || item.scope.preset !== scope.preset
73
+ || item.scope.ownerRouteId !== scope.ownerRouteId || item.scope.principalId !== scope.principalId || item.sourceId !== config.intakeSourceId
74
+ || !bounded(item.id, 256) || !bounded(item.sourceId, 128) || !bounded(item.kind, 64) || !bounded(item.originBindingId, 256)
75
+ || !bounded(scope.workspace, 4096) || !bounded(scope.preset, 128) || !bounded(scope.principalId, 256) || !bounded(scope.ownerRouteId, 256)
76
+ || !bounded(item.owner.principalRecordId, 256) || !positive(item.owner.principalVersion) || !positive(found.recordedAt))
77
+ return undefined;
78
+ const record = store.getContinuation(item.id);
79
+ let planDigest, streamId, supplier, producer;
80
+ if (record) {
81
+ const plan = parseStoredContinuationPlan(record.planJson);
82
+ if (acceptanceCanonicalJson(plan.item) !== acceptanceCanonicalJson(continuationItemBasis(item))
83
+ || plan.source.digest !== record.sourceDigest || plan.source.inputSha256 !== record.inputSha256 || plan.source.inputBytes !== record.inputBytes
84
+ || plan.parent.itemId !== record.parentItemId || plan.parent.rootItemId !== record.rootItemId
85
+ || plan.parent.reportRevision !== record.parentReportRevision || plan.parent.outcomeRevision !== record.parentOutcomeRevision)
86
+ return undefined;
87
+ const activation = parseContinuationActivation(plan.activation);
88
+ if (activation.stage !== 'established' || activation.ownerLineage.receiptVersion !== 2
89
+ || activation.ownerLineage.authorityId !== item.scope.ownerRouteId || activation.ownerLineage.principalId !== item.scope.principalId
90
+ || activation.ownerLineage.principalRecordId !== item.owner.principalRecordId || activation.ownerLineage.principalVersion !== item.owner.principalVersion
91
+ || activation.ownerLineage.workspace !== item.scope.workspace || activation.ownerLineage.agentPreset !== item.scope.preset)
92
+ return undefined;
93
+ supplier = supplierOf(plan.contract);
94
+ if (acceptanceCanonicalJson(supplier) !== acceptanceCanonicalJson(plan.source.modelSelection))
95
+ return undefined;
96
+ planDigest = record.planDigest;
97
+ streamId = isReplyContinuationPlan(plan) ? plan.source.origin.reply.target.streamId : item.id;
98
+ producer = { owner: CONTINUATION_OWNER, automationId: item.workerAutomationId, definitionHash: activation.definitionHash, definitionVersion: activation.definitionVersion };
99
+ }
100
+ else {
101
+ const plan = store.readDiagnosisPlan(item.id);
102
+ if (!plan || plan.worker.owner !== DIAGNOSIS_OWNER || plan.worker.automationId !== item.workerAutomationId
103
+ || plan.source.owner.principalRecordId !== item.owner.principalRecordId || plan.source.owner.principalVersion !== item.owner.principalVersion
104
+ || plan.source.binding.id !== item.originBindingId || plan.source.binding.version !== item.owner.bindingVersion || plan.source.binding.generation !== item.owner.generation)
105
+ return undefined;
106
+ supplier = supplierOf(plan.contract);
107
+ planDigest = continuationDigest(acceptanceCanonicalJson(plan));
108
+ streamId = item.id;
109
+ producer = { owner: DIAGNOSIS_OWNER, automationId: item.workerAutomationId, definitionHash: plan.worker.definitionHash, definitionVersion: plan.worker.definitionVersion };
110
+ }
111
+ if (!HEX.test(planDigest) || !HEX.test(producer.definitionHash) || !positive(producer.definitionVersion) || !bounded(producer.automationId, 256) || !bounded(streamId, 256))
112
+ return undefined;
113
+ const text = store.ownerRecallText(item.id, revision), brief = store.ownerRecallText(item.id);
114
+ if (Buffer.byteLength(text) > 65536 || Buffer.byteLength(brief) > 65536 || Buffer.from(text, 'utf8').toString('utf8') !== text || Buffer.from(brief, 'utf8').toString('utf8') !== brief)
115
+ return undefined;
116
+ const binding = store.diagnosisReportOccurrence(item.id, revision);
117
+ if (binding.status !== found.status || !bounded(binding.occurrenceId, 512))
118
+ return undefined;
119
+ const report = found, reportDigest = workItemReportDigest(item, report, text, planDigest);
120
+ const immutableReport = { itemId: item.id, revision: report.revision, status: report.status, text, truncated: report.truncated, artifactPaths: report.artifactPaths,
121
+ idempotencyKey: report.idempotencyKey, deliveryKey: report.deliveryKey, recordedAt: report.recordedAt };
122
+ const fingerprint = acceptanceDigest({ item, report: immutableReport, brief, planDigest, supplier, producer, occurrenceId: binding.occurrenceId });
123
+ return { item, report, text, brief, streamId, planDigest, supplier, producer, occurrenceId: binding.occurrenceId, reportDigest, fingerprint };
124
+ }
125
+ function selectorOf(value) {
126
+ if (!value || typeof value !== 'object' || Array.isArray(value) || ![Object.prototype, null].includes(Object.getPrototypeOf(value)))
127
+ return undefined;
128
+ const fields = Object.getOwnPropertyDescriptors(value);
129
+ if (Reflect.ownKeys(fields).some(key => typeof key !== 'string' || !['itemId', 'reportRevision', 'reportDigest'].includes(key))
130
+ || Object.keys(fields).length !== 3 || Object.values(fields).some(field => !field.enumerable || !Object.hasOwn(field, 'value')))
131
+ return undefined;
132
+ const itemId = fields.itemId?.value, reportRevision = fields.reportRevision?.value, reportDigest = fields.reportDigest?.value;
133
+ if (!bounded(itemId, 256) || !positive(reportRevision) || typeof reportDigest !== 'string' || !HEX.test(reportDigest))
134
+ return undefined;
135
+ return Object.freeze({ itemId, reportRevision, reportDigest });
136
+ }
137
+ /** Historical result reader. It never starts/reconciles an automation, checks
138
+ * a live execution grant, reserves budget, or turns testimony into success. */
139
+ export class WorkItemOwnerFeedbackTargets {
140
+ dependencies;
141
+ #closed = false;
142
+ #capabilities = new WeakMap();
143
+ #engineeringFrameOwner;
144
+ constructor(dependencies) {
145
+ this.dependencies = dependencies;
146
+ }
147
+ current() { return !this.#closed && this.dependencies.current(); }
148
+ /** Local-only metadata for an engineering callback already inside this
149
+ * reader's writer frame. It never mints authority outside that frame. */
150
+ engineeringFrameOwner() { return this.current() ? this.#engineeringFrameOwner : undefined; }
151
+ inspectReport(input, notification) {
152
+ try {
153
+ const { config } = this.dependencies, store = this.dependencies.store();
154
+ if (!config.ownerReportFeedback || !this.current() || !store || store.closed)
155
+ return undefined;
156
+ const snapshot = sealedReport(store, config, input.itemId, input.reportRevision);
157
+ if (!snapshot || snapshot.item.originBindingId !== input.bindingId || snapshot.report.deliveryKey !== input.idempotencyKey || input.format !== 'markdown'
158
+ || notification(snapshot.item, { ...snapshot.report, summary: snapshot.text }).text !== input.text)
159
+ return undefined;
160
+ const again = sealedReport(store, config, input.itemId, input.reportRevision);
161
+ if (!again || again.fingerprint !== snapshot.fingerprint || !this.current() || store.closed)
162
+ return undefined;
163
+ return freeze({ protocol: 'assistant-delivery/work-item-report/v1', itemId: snapshot.item.id, reportRevision: snapshot.report.revision,
164
+ streamId: snapshot.streamId, reportDigest: snapshot.reportDigest, sourceId: snapshot.item.sourceId,
165
+ scope: { workspace: snapshot.item.scope.workspace, preset: snapshot.item.scope.preset },
166
+ owner: { principalRecordId: snapshot.item.owner.principalRecordId, principalVersion: snapshot.item.owner.principalVersion } });
167
+ }
168
+ catch {
169
+ return undefined;
170
+ }
171
+ }
172
+ read(selector) {
173
+ const { config } = this.dependencies, scope = config.scope, store = this.dependencies.store();
174
+ if (!config.ownerReportFeedback || !scope || !config.ownerContinuation || !this.current() || !store || store.closed)
175
+ return undefined;
176
+ const snapshot = sealedReport(store, config, selector.itemId, selector.reportRevision);
177
+ if (!snapshot || snapshot.reportDigest !== selector.reportDigest)
178
+ return undefined;
179
+ const delivery = this.dependencies.delivery(), automations = this.dependencies.automations();
180
+ if (!delivery || !automations?.inspectProductionOccurrence)
181
+ return undefined;
182
+ const deliveryIdentity = peerIdentity(delivery), automationsIdentity = peerIdentity(automations);
183
+ const readOwner = () => inert(delivery.validateOwnerRoute({ authorityId: scope.ownerRouteId, principalId: scope.principalId, workspace: scope.workspace, agentPreset: scope.preset }));
184
+ const validOwner = (owner) => owner.receiptVersion === 2 && owner.authorityId === scope.ownerRouteId && owner.principalId === scope.principalId
185
+ && owner.workspace === scope.workspace && owner.agentPreset === scope.preset && bounded(owner.authorityHash, 256)
186
+ && owner.principalRecordId === snapshot.item.owner.principalRecordId && owner.principalVersion === snapshot.item.owner.principalVersion
187
+ && positive(owner.generation) && positive(owner.bindingVersion);
188
+ const owner = readOwner();
189
+ if (!validOwner(owner))
190
+ return undefined;
191
+ const observed = automations.inspectProductionOccurrence({ automationId: snapshot.producer.automationId, occurrenceId: snapshot.occurrenceId,
192
+ workspace: scope.workspace, agentPreset: scope.preset });
193
+ const production = observed === undefined ? undefined : inert(observed);
194
+ if (!production || production.protocol !== 'assistant-automations/production-occurrence/v1' || production.executionMode !== 'production'
195
+ || production.automationId !== snapshot.producer.automationId || production.occurrenceId !== snapshot.occurrenceId || !bounded(production.runId, 512)
196
+ || !bounded(production.taskId, 512) || !bounded(production.attemptId, 512)
197
+ || !positive(production.completedAt) || production.quiescent !== true || production.budgetSettlementState !== 'finalized'
198
+ || production.immutableContext.state !== 'verified' || production.immutableContext.owner !== snapshot.producer.owner
199
+ || production.immutableContext.definitionHash !== snapshot.producer.definitionHash || production.immutableContext.definitionVersion !== snapshot.producer.definitionVersion
200
+ || production.immutableContext.scope.workspace !== scope.workspace || production.immutableContext.scope.agentPreset !== scope.preset)
201
+ return undefined;
202
+ const statuses = { succeeded: 'succeeded', failed: 'failed', timed_out: 'timed-out', cancelled: 'cancelled' };
203
+ if (!Object.hasOwn(statuses, production.status))
204
+ return undefined;
205
+ const executionStatus = statuses[production.status];
206
+ const currentOwner = readOwner();
207
+ if (!validOwner(currentOwner) || acceptanceCanonicalJson(currentOwner) !== acceptanceCanonicalJson(owner))
208
+ return undefined;
209
+ const currentDelivery = this.dependencies.delivery(), currentAutomations = this.dependencies.automations();
210
+ if (!currentDelivery || !currentAutomations || peerIdentity(currentDelivery) !== deliveryIdentity || peerIdentity(currentAutomations) !== automationsIdentity)
211
+ return undefined;
212
+ // Everything below is local: the last peer callback cannot replace the
213
+ // report/plan, change its bytes, or dispose the current capability owner.
214
+ const final = sealedReport(store, config, selector.itemId, selector.reportRevision);
215
+ if (!final || final.fingerprint !== snapshot.fingerprint || !this.current() || store.closed)
216
+ return undefined;
217
+ const unsigned = { protocol: 'assistant-work-items/owner-report-feedback/v1', itemId: snapshot.item.id, reportRevision: snapshot.report.revision,
218
+ reportDigest: snapshot.reportDigest, sourceId: snapshot.item.sourceId, itemKind: snapshot.item.kind, scope: { workspace: scope.workspace, preset: scope.preset },
219
+ owner: { ownerRouteId: scope.ownerRouteId, principalId: scope.principalId, principalRecordId: owner.principalRecordId, principalVersion: owner.principalVersion },
220
+ originBindingId: snapshot.item.originBindingId, production: { automationId: production.automationId, occurrenceId: production.occurrenceId, runId: production.runId,
221
+ definitionHash: production.immutableContext.definitionHash, definitionVersion: production.immutableContext.definitionVersion,
222
+ executionStatus, completedAt: production.completedAt, quiescent: true, budgetSettlementState: 'finalized' }, supplier: snapshot.supplier,
223
+ planDigest: snapshot.planDigest, task: { brief: snapshot.brief, briefTruncated: snapshot.item.briefTruncated },
224
+ report: { status: snapshot.report.status, text: snapshot.text, truncated: snapshot.report.truncated, recordedAt: snapshot.report.recordedAt } };
225
+ const proof = { ...unsigned, proofDigest: acceptanceDigest(unsigned) };
226
+ return { proof: freeze(proof), fingerprint: snapshot.fingerprint, authorityHash: owner.authorityHash, deliveryIdentity, automationsIdentity };
227
+ }
228
+ issue(input) {
229
+ try {
230
+ const selector = selectorOf(input);
231
+ if (!selector)
232
+ return undefined;
233
+ const result = this.read(selector);
234
+ if (!result)
235
+ return undefined;
236
+ const capability = Object.freeze(Object.create(null));
237
+ this.#capabilities.set(capability, { selector, proofDigest: result.proof.proofDigest, fingerprint: result.fingerprint, authorityHash: result.authorityHash,
238
+ deliveryIdentity: result.deliveryIdentity, automationsIdentity: result.automationsIdentity });
239
+ return capability;
240
+ }
241
+ catch {
242
+ return undefined;
243
+ }
244
+ }
245
+ resolve(capability) {
246
+ try {
247
+ if (!capability || typeof capability !== 'object' || !this.current())
248
+ return undefined;
249
+ const issued = this.#capabilities.get(capability);
250
+ if (!issued)
251
+ return undefined;
252
+ const result = this.read(issued.selector);
253
+ if (!result || result.proof.proofDigest !== issued.proofDigest || result.fingerprint !== issued.fingerprint || result.authorityHash !== issued.authorityHash
254
+ || result.deliveryIdentity !== issued.deliveryIdentity || result.automationsIdentity !== issued.automationsIdentity)
255
+ return undefined;
256
+ return result.proof;
257
+ }
258
+ catch {
259
+ return undefined;
260
+ }
261
+ }
262
+ /** A group is validated as one source frame, rather than trusting A's cached
263
+ * result after a later B producer callback. The last phase reads only this
264
+ * owned ledger, configuration and local service identities. */
265
+ withTargetsFence(capabilities, callback) {
266
+ if (!Array.isArray(capabilities) || typeof callback !== 'function')
267
+ throw new WorkItemError('invalid-input', 'feedback target fence arguments are invalid');
268
+ const descriptors = Object.getOwnPropertyDescriptors(capabilities);
269
+ const length = descriptors.length?.value;
270
+ if (!Number.isSafeInteger(length) || Number(length) < 0 || Number(length) > 1000
271
+ || Reflect.ownKeys(descriptors).some(key => typeof key !== 'string' || key !== 'length' && !/^(?:0|[1-9][0-9]*)$/u.test(key))) {
272
+ throw new WorkItemError('invalid-input', 'feedback target fence requires at most 1000 dense capabilities');
273
+ }
274
+ const input = [];
275
+ for (let index = 0; index < Number(length); index++) {
276
+ const descriptor = descriptors[String(index)];
277
+ if (!descriptor || !descriptor.enumerable || !Object.hasOwn(descriptor, 'value'))
278
+ throw new WorkItemError('invalid-input', 'feedback target fence capabilities must be data values');
279
+ input.push(descriptor.value);
280
+ }
281
+ const config = this.dependencies.config, configurationDigest = acceptanceDigest(config), store = this.dependencies.store();
282
+ if (!this.current() || !config.ownerReportFeedback || !store || store.closed)
283
+ throw new WorkItemError('missing-dependency', 'feedback target source fence is unavailable');
284
+ return store.withFeedbackSourceFence(() => {
285
+ const ownership = this.#capabilities;
286
+ const entries = input.map(capability => {
287
+ if (!capability || typeof capability !== 'object')
288
+ return undefined;
289
+ const issued = ownership.get(capability);
290
+ return issued ? { capability, issued } : undefined;
291
+ });
292
+ const reads = new Map();
293
+ for (const entry of entries) {
294
+ if (!entry || reads.has(entry.capability))
295
+ continue;
296
+ try {
297
+ reads.set(entry.capability, this.read(entry.issued.selector));
298
+ }
299
+ catch {
300
+ reads.set(entry.capability, undefined);
301
+ }
302
+ }
303
+ // One final owner read belongs to the foreign-read phase. A later
304
+ // source's callback may have changed the shared route after A was read;
305
+ // never keep A's cached authority hash as the group authority.
306
+ const ownerDelivery = this.dependencies.delivery(), scope = config.scope;
307
+ const ownerDeliveryIdentity = ownerDelivery ? peerIdentity(ownerDelivery) : undefined;
308
+ let owner;
309
+ try {
310
+ if (ownerDelivery && scope)
311
+ owner = inert(ownerDelivery.validateOwnerRoute({ authorityId: scope.ownerRouteId,
312
+ principalId: scope.principalId, workspace: scope.workspace, agentPreset: scope.preset }));
313
+ }
314
+ catch {
315
+ owner = undefined;
316
+ }
317
+ // These dependency accessors are owned ctx-local lookups, not producer
318
+ // methods. Capture all identities before the final local source pass.
319
+ const currentConfig = this.dependencies.config, currentStore = this.dependencies.store();
320
+ const delivery = this.dependencies.delivery(), automations = this.dependencies.automations();
321
+ const deliveryIdentity = delivery ? peerIdentity(delivery) : undefined, automationsIdentity = automations ? peerIdentity(automations) : undefined;
322
+ const currentConfigurationDigest = acceptanceDigest(currentConfig), active = this.current();
323
+ if (!active || this.#capabilities !== ownership || currentStore !== store || store.closed || !delivery || !automations) {
324
+ throw new WorkItemError('missing-dependency', 'feedback target source owner or store is no longer current');
325
+ }
326
+ const configurationCurrent = currentConfig === config && currentConfigurationDigest === configurationDigest;
327
+ const proofs = entries.map(entry => {
328
+ if (!entry || !configurationCurrent || this.#capabilities.get(entry.capability) !== entry.issued)
329
+ return undefined;
330
+ const result = reads.get(entry.capability), issued = entry.issued;
331
+ if (!result || result.proof.proofDigest !== issued.proofDigest || result.fingerprint !== issued.fingerprint
332
+ || result.authorityHash !== issued.authorityHash || result.deliveryIdentity !== issued.deliveryIdentity
333
+ || result.automationsIdentity !== issued.automationsIdentity || deliveryIdentity !== issued.deliveryIdentity
334
+ || automationsIdentity !== issued.automationsIdentity || ownerDeliveryIdentity !== deliveryIdentity
335
+ || !owner || owner.receiptVersion !== 2 || owner.authorityHash !== issued.authorityHash
336
+ || owner.authorityId !== result.proof.owner.ownerRouteId || owner.principalId !== result.proof.owner.principalId
337
+ || owner.principalRecordId !== result.proof.owner.principalRecordId || owner.principalVersion !== result.proof.owner.principalVersion
338
+ || owner.workspace !== result.proof.scope.workspace || owner.agentPreset !== result.proof.scope.preset)
339
+ return undefined;
340
+ try {
341
+ const final = sealedReport(store, config, issued.selector.itemId, issued.selector.reportRevision);
342
+ return final && final.fingerprint === issued.fingerprint && final.reportDigest === issued.selector.reportDigest ? result.proof : undefined;
343
+ }
344
+ catch {
345
+ return undefined;
346
+ }
347
+ });
348
+ // No producer, owner or lifecycle callback is invoked after this pass.
349
+ const previousOwner = this.#engineeringFrameOwner;
350
+ this.#engineeringFrameOwner = owner === undefined ? undefined : freeze(owner);
351
+ try {
352
+ return callback(Object.freeze(proofs));
353
+ }
354
+ finally {
355
+ this.#engineeringFrameOwner = this.#closed ? undefined : previousOwner;
356
+ }
357
+ });
358
+ }
359
+ available() { return this.current() && this.dependencies.config.ownerReportFeedback === true && this.dependencies.store()?.closed === false; }
360
+ close() { this.#closed = true; this.#capabilities = new WeakMap(); this.#engineeringFrameOwner = undefined; }
361
+ }
362
+ //# sourceMappingURL=feedback-targets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback-targets.js","sourceRoot":"","sources":["../src/feedback-targets.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,27 @@
1
+ import type { Context } from '@deepseek-ai/cordis';
2
+ import type { Config } from './config.js';
3
+ import { AssistantWorkItemsService } from './service.js';
4
+ import { version } from './version.js';
5
+ export declare const name = "dsh-enhanced-assistant-work-items";
6
+ export { AssistantWorkItemsService, version };
7
+ export * from './authority.js';
8
+ export { decisionExternalId } from './mandate.js';
9
+ export * from './config.js';
10
+ export * from './evaluation.js';
11
+ export * from './intake.js';
12
+ export * from './intake-evaluation.js';
13
+ export * from './intake-evaluation-runtime.js';
14
+ export * from './intake-admission.js';
15
+ export type { OwnerWorkItemFeedbackProof, OwnerWorkItemFeedbackSelector } from './feedback-targets.js';
16
+ export * from './outcome.js';
17
+ export { normalizeFollowUp, normalizePolicyChange, MAX_POLICY_NOTICE_ITEMS } from './policy-notice.js';
18
+ export { POLICY_NOTICE_EVENT, FOLLOW_UP_OWNED_EVENT, FOLLOW_UP_PROCESSED_EVENT, FOLLOW_UP_RELEASED_EVENT, ACCEPTANCE_VERIFIED_EVENT, type WorkItemFollowUpCursor } from './store.js';
19
+ export { ACCEPTANCE_EXECUTOR, ACCEPTANCE_VERIFIER, acceptanceAuthorFor, acceptanceIsIndependent } from './acceptance-binding.js';
20
+ export * from './service.js';
21
+ export * from './settlement.js';
22
+ export * from './signals.js';
23
+ export * from './types.js';
24
+ export declare function apply(ctx: Context, config: Config): void;
25
+ export default AssistantWorkItemsService;
26
+ export type { EngineeringReportRef, EngineeringNode, WorkItemEngineeringMaterial } from './engineering-context.js';
27
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,eAAO,MAAM,IAAI,sCAAsC,CAAA;AACvD,OAAO,EAAE,yBAAyB,EAAE,OAAO,EAAE,CAAA;AAC7C,cAAc,gBAAgB,CAAA;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,wBAAwB,CAAA;AACtC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,uBAAuB,CAAA;AACrC,YAAY,EAAE,0BAA0B,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAA;AACtG,cAAc,cAAc,CAAA;AAC5B,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AACtG,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,KAAK,sBAAsB,EAAE,MAAM,YAAY,CAAA;AACpL,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAChI,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAE1B,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAExD;AAED,eAAe,yBAAyB,CAAA;AAExC,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAA"}
package/lib/index.js ADDED
@@ -0,0 +1,25 @@
1
+ import { AssistantWorkItemsService } from './service.js';
2
+ import { version } from './version.js';
3
+ export const name = 'dsh-enhanced-assistant-work-items';
4
+ export { AssistantWorkItemsService, version };
5
+ export * from './authority.js';
6
+ export { decisionExternalId } from './mandate.js';
7
+ export * from './config.js';
8
+ export * from './evaluation.js';
9
+ export * from './intake.js';
10
+ export * from './intake-evaluation.js';
11
+ export * from './intake-evaluation-runtime.js';
12
+ export * from './intake-admission.js';
13
+ export * from './outcome.js';
14
+ export { normalizeFollowUp, normalizePolicyChange, MAX_POLICY_NOTICE_ITEMS } from './policy-notice.js';
15
+ export { POLICY_NOTICE_EVENT, FOLLOW_UP_OWNED_EVENT, FOLLOW_UP_PROCESSED_EVENT, FOLLOW_UP_RELEASED_EVENT, ACCEPTANCE_VERIFIED_EVENT } from './store.js';
16
+ export { ACCEPTANCE_EXECUTOR, ACCEPTANCE_VERIFIER, acceptanceAuthorFor, acceptanceIsIndependent } from './acceptance-binding.js';
17
+ export * from './service.js';
18
+ export * from './settlement.js';
19
+ export * from './signals.js';
20
+ export * from './types.js';
21
+ export function apply(ctx, config) {
22
+ new AssistantWorkItemsService(ctx, config);
23
+ }
24
+ export default AssistantWorkItemsService;
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,MAAM,CAAC,MAAM,IAAI,GAAG,mCAAmC,CAAA;AACvD,OAAO,EAAE,yBAAyB,EAAE,OAAO,EAAE,CAAA;AAC7C,cAAc,gBAAgB,CAAA;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,wBAAwB,CAAA;AACtC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,uBAAuB,CAAA;AAErC,cAAc,cAAc,CAAA;AAC5B,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AACtG,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,yBAAyB,EAA+B,MAAM,YAAY,CAAA;AACpL,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAChI,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAE1B,MAAM,UAAU,KAAK,CAAC,GAAY,EAAE,MAAc;IAChD,IAAI,yBAAyB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;AAC5C,CAAC;AAED,eAAe,yBAAyB,CAAA"}
@@ -0,0 +1,49 @@
1
+ import type { NormalizedIntakeAdmit } from './config.ts';
2
+ import type { WorkItemIntakeEvaluationRecord } from './intake-evaluation.ts';
3
+ import type { WorkItemStore } from './store.ts';
4
+ import type { WorkItemDecisionAdmitResult, WorkItemDecisionRefusal, WorkItemErrorCode, WorkItemExecuteDecision } from './types.ts';
5
+ /**
6
+ * WP21 slice 3: the first caller of `admitDecision`.
7
+ *
8
+ * Reads persisted WP20 evaluation rows (only `inferred` intake is evaluated)
9
+ * whose verdict would accept and that have no admission row yet. In `auto`
10
+ * mode each one becomes one execute decision under a deterministic id; in
11
+ * `observe` mode it is recorded as `would-admit` and nothing is admitted.
12
+ * Every outcome is one append-only row, so a replay or restart never decides
13
+ * the same evaluation twice and a refusal is final (no retry). Runs on the
14
+ * existing scheduler wake; it owns no loop or timer.
15
+ */
16
+ export type WorkItemIntakeAdmissionOutcome = 'would-admit' | 'admitted' | 'replayed' | 'refused';
17
+ export interface WorkItemIntakeAdmissionRecord {
18
+ readonly source: string;
19
+ readonly sourceEventId: string;
20
+ readonly ruleId: string;
21
+ readonly policyVersion: string;
22
+ readonly mode: 'observe' | 'auto';
23
+ readonly outcome: WorkItemIntakeAdmissionOutcome;
24
+ /** Refusal value or admission error code; set only for `refused`. */
25
+ readonly reasonCode: WorkItemDecisionRefusal | WorkItemErrorCode | null;
26
+ readonly decisionId: string;
27
+ /** The one item the decision owns; set only for `admitted` and `replayed`. */
28
+ readonly itemId: string | null;
29
+ readonly recordedAt: number;
30
+ }
31
+ /** Stable decision id over the evaluated row, rule and Policy version; never the text. */
32
+ export declare function intakeDecisionIdFor(record: Pick<WorkItemIntakeEvaluationRecord, 'source' | 'sourceEventId' | 'ruleId' | 'policyVersion'>): string;
33
+ /** Metadata-only mandate: the brief names the rule and event, never the inbound text. */
34
+ export declare function intakeDecisionFor(record: WorkItemIntakeEvaluationRecord, config: NormalizedIntakeAdmit, budgetRemaining: number): WorkItemExecuteDecision;
35
+ export declare class WorkItemIntakeAdmissionBridge {
36
+ #private;
37
+ constructor(options: {
38
+ config: NormalizedIntakeAdmit;
39
+ maxPerRun: number;
40
+ store: () => WorkItemStore | undefined;
41
+ admit: (decision: WorkItemExecuteDecision) => WorkItemDecisionAdmitResult;
42
+ log: (message: string) => void;
43
+ now?: () => number;
44
+ });
45
+ /** One bounded pass over accepting evaluations without an admission row; never throws. */
46
+ run(): readonly WorkItemIntakeAdmissionRecord[];
47
+ lastError(): string | null;
48
+ }
49
+ //# sourceMappingURL=intake-admission.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intake-admission.d.ts","sourceRoot":"","sources":["../src/intake-admission.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAA;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,KAAK,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAGlI;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,8BAA8B,GAAG,aAAa,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAA;AAEhG,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAAA;IACjC,QAAQ,CAAC,OAAO,EAAE,8BAA8B,CAAA;IAChD,qEAAqE;IACrE,QAAQ,CAAC,UAAU,EAAE,uBAAuB,GAAG,iBAAiB,GAAG,IAAI,CAAA;IACvE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,8EAA8E;IAC9E,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B;AAOD,0FAA0F;AAC1F,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,8BAA8B,EAAE,QAAQ,GAAG,eAAe,GAAG,QAAQ,GAAG,eAAe,CAAC,GAAG,MAAM,CAEjJ;AAED,yFAAyF;AACzF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,8BAA8B,EAAE,MAAM,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,GAAG,uBAAuB,CAkBzJ;AAED,qBAAa,6BAA6B;;gBAS5B,OAAO,EAAE;QACnB,MAAM,EAAE,qBAAqB,CAAA;QAC7B,SAAS,EAAE,MAAM,CAAA;QACjB,KAAK,EAAE,MAAM,aAAa,GAAG,SAAS,CAAA;QACtC,KAAK,EAAE,CAAC,QAAQ,EAAE,uBAAuB,KAAK,2BAA2B,CAAA;QACzE,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;QAC9B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;KACnB;IASD,0FAA0F;IAC1F,GAAG,IAAI,SAAS,6BAA6B,EAAE;IAe/C,SAAS,IAAI,MAAM,GAAG,IAAI;CA6B3B"}