@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.
- package/LICENSE +21 -0
- package/README.md +685 -2
- package/cordis.patch.yml +11 -0
- package/lib/acceptance-binding.d.ts +86 -0
- package/lib/acceptance-binding.d.ts.map +1 -0
- package/lib/acceptance-binding.js +250 -0
- package/lib/acceptance-binding.js.map +1 -0
- package/lib/admission.d.ts +95 -0
- package/lib/admission.d.ts.map +1 -0
- package/lib/admission.js +642 -0
- package/lib/admission.js.map +1 -0
- package/lib/authority.d.ts +99 -0
- package/lib/authority.d.ts.map +1 -0
- package/lib/authority.js +233 -0
- package/lib/authority.js.map +1 -0
- package/lib/config.d.ts +365 -0
- package/lib/config.d.ts.map +1 -0
- package/lib/config.js +672 -0
- package/lib/config.js.map +1 -0
- package/lib/continuation-contract.d.ts +126 -0
- package/lib/continuation-contract.d.ts.map +1 -0
- package/lib/continuation-contract.js +109 -0
- package/lib/continuation-contract.js.map +1 -0
- package/lib/continuation-record.d.ts +32 -0
- package/lib/continuation-record.d.ts.map +1 -0
- package/lib/continuation-record.js +57 -0
- package/lib/continuation-record.js.map +1 -0
- package/lib/continuation.d.ts +89 -0
- package/lib/continuation.d.ts.map +1 -0
- package/lib/continuation.js +607 -0
- package/lib/continuation.js.map +1 -0
- package/lib/diagnosis-contract.d.ts +95 -0
- package/lib/diagnosis-contract.d.ts.map +1 -0
- package/lib/diagnosis-contract.js +167 -0
- package/lib/diagnosis-contract.js.map +1 -0
- package/lib/diagnosis.d.ts +70 -0
- package/lib/diagnosis.d.ts.map +1 -0
- package/lib/diagnosis.js +466 -0
- package/lib/diagnosis.js.map +1 -0
- package/lib/dispatch.d.ts +100 -0
- package/lib/dispatch.d.ts.map +1 -0
- package/lib/dispatch.js +317 -0
- package/lib/dispatch.js.map +1 -0
- package/lib/engineering-context.d.ts +86 -0
- package/lib/engineering-context.d.ts.map +1 -0
- package/lib/engineering-context.js +263 -0
- package/lib/engineering-context.js.map +1 -0
- package/lib/evaluation.d.ts +125 -0
- package/lib/evaluation.d.ts.map +1 -0
- package/lib/evaluation.js +295 -0
- package/lib/evaluation.js.map +1 -0
- package/lib/event-follow.d.ts +93 -0
- package/lib/event-follow.d.ts.map +1 -0
- package/lib/event-follow.js +150 -0
- package/lib/event-follow.js.map +1 -0
- package/lib/feedback-targets.d.ts +91 -0
- package/lib/feedback-targets.d.ts.map +1 -0
- package/lib/feedback-targets.js +362 -0
- package/lib/feedback-targets.js.map +1 -0
- package/lib/index.d.ts +27 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +25 -0
- package/lib/index.js.map +1 -0
- package/lib/intake-admission.d.ts +49 -0
- package/lib/intake-admission.d.ts.map +1 -0
- package/lib/intake-admission.js +100 -0
- package/lib/intake-admission.js.map +1 -0
- package/lib/intake-evaluation-runtime.d.ts +74 -0
- package/lib/intake-evaluation-runtime.d.ts.map +1 -0
- package/lib/intake-evaluation-runtime.js +343 -0
- package/lib/intake-evaluation-runtime.js.map +1 -0
- package/lib/intake-evaluation.d.ts +180 -0
- package/lib/intake-evaluation.d.ts.map +1 -0
- package/lib/intake-evaluation.js +440 -0
- package/lib/intake-evaluation.js.map +1 -0
- package/lib/intake.d.ts +118 -0
- package/lib/intake.d.ts.map +1 -0
- package/lib/intake.js +137 -0
- package/lib/intake.js.map +1 -0
- package/lib/ledger.d.ts +86 -0
- package/lib/ledger.d.ts.map +1 -0
- package/lib/ledger.js +145 -0
- package/lib/ledger.js.map +1 -0
- package/lib/mandate.d.ts +45 -0
- package/lib/mandate.d.ts.map +1 -0
- package/lib/mandate.js +168 -0
- package/lib/mandate.js.map +1 -0
- package/lib/outcome.d.ts +137 -0
- package/lib/outcome.d.ts.map +1 -0
- package/lib/outcome.js +303 -0
- package/lib/outcome.js.map +1 -0
- package/lib/owner-access.d.ts +35 -0
- package/lib/owner-access.d.ts.map +1 -0
- package/lib/owner-access.js +152 -0
- package/lib/owner-access.js.map +1 -0
- package/lib/owner-continuation.d.ts +27 -0
- package/lib/owner-continuation.d.ts.map +1 -0
- package/lib/owner-continuation.js +131 -0
- package/lib/owner-continuation.js.map +1 -0
- package/lib/owner-recall.d.ts +85 -0
- package/lib/owner-recall.d.ts.map +1 -0
- package/lib/owner-recall.js +134 -0
- package/lib/owner-recall.js.map +1 -0
- package/lib/owner-replies.d.ts +44 -0
- package/lib/owner-replies.d.ts.map +1 -0
- package/lib/owner-replies.js +268 -0
- package/lib/owner-replies.js.map +1 -0
- package/lib/peers.d.ts +624 -0
- package/lib/peers.d.ts.map +1 -0
- package/lib/peers.js +10 -0
- package/lib/peers.js.map +1 -0
- package/lib/policy-notice.d.ts +31 -0
- package/lib/policy-notice.d.ts.map +1 -0
- package/lib/policy-notice.js +137 -0
- package/lib/policy-notice.js.map +1 -0
- package/lib/reply-contract.d.ts +67 -0
- package/lib/reply-contract.d.ts.map +1 -0
- package/lib/reply-contract.js +58 -0
- package/lib/reply-contract.js.map +1 -0
- package/lib/service.d.ts +632 -0
- package/lib/service.d.ts.map +1 -0
- package/lib/service.js +2447 -0
- package/lib/service.js.map +1 -0
- package/lib/settlement.d.ts +74 -0
- package/lib/settlement.d.ts.map +1 -0
- package/lib/settlement.js +233 -0
- package/lib/settlement.js.map +1 -0
- package/lib/signals.d.ts +176 -0
- package/lib/signals.d.ts.map +1 -0
- package/lib/signals.js +497 -0
- package/lib/signals.js.map +1 -0
- package/lib/store.d.ts +791 -0
- package/lib/store.d.ts.map +1 -0
- package/lib/store.js +3266 -0
- package/lib/store.js.map +1 -0
- package/lib/tools.d.ts +7 -0
- package/lib/tools.d.ts.map +1 -0
- package/lib/tools.js +443 -0
- package/lib/tools.js.map +1 -0
- package/lib/types.d.ts +831 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +29 -0
- package/lib/types.js.map +1 -0
- package/lib/version.d.ts +2 -0
- package/lib/version.d.ts.map +1 -0
- package/lib/version.js +2 -0
- package/lib/version.js.map +1 -0
- package/lib/workspace.d.ts +43 -0
- package/lib/workspace.d.ts.map +1 -0
- package/lib/workspace.js +137 -0
- package/lib/workspace.js.map +1 -0
- package/package.json +101 -3
package/lib/service.d.ts
ADDED
|
@@ -0,0 +1,632 @@
|
|
|
1
|
+
import { type WorkItemEngineeringMaterial } from './engineering-context.js';
|
|
2
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
3
|
+
import { Service } from '@deepseek-ai/cordis';
|
|
4
|
+
import type { WorkItemIntakeInput, WorkItemIntakeResult } from './intake.js';
|
|
5
|
+
import type { WorkItemIntakeEvaluationRecord } from './intake-evaluation.js';
|
|
6
|
+
import { type WorkItemIntakeEvaluationHealth, type WorkItemIntakeEvaluatorRegistration } from './intake-evaluation-runtime.js';
|
|
7
|
+
import { type WorkItemIntakeAdmissionRecord } from './intake-admission.js';
|
|
8
|
+
import type { Agent } from '@deepseek-ai/dsh-agent';
|
|
9
|
+
import type { ToolExecution } from '@deepseek-ai/dsh-tools';
|
|
10
|
+
import { type Config } from './config.js';
|
|
11
|
+
import { type WorkItemEvaluationRegistration } from './evaluation.js';
|
|
12
|
+
import { type OwnerWorkItemExecution, type OwnerWorkItemListInput, type OwnerWorkItemRecallInput } from './owner-recall.js';
|
|
13
|
+
export type { OwnerWorkItemExecution, OwnerWorkItemListInput, OwnerWorkItemRecallInput, OwnerWorkItemSummary } from './owner-recall.js';
|
|
14
|
+
import { type WorkItemFollowUpCursor } from './store.js';
|
|
15
|
+
import { type WorkItemSignalRegistration, type WorkItemSignalSweepReport } from './signals.js';
|
|
16
|
+
import type { WorkItemAcceptanceSettleResult, WorkItemAcceptanceVerdict, WorkItemAdmitInput, WorkItemDecisionAdmitResult, WorkItemExecuteDecision, WorkItemAdmitResult, WorkItemFollowUpOwnResult, WorkItemFollowUpRecord, WorkItemPolicyChangeResult, WorkItemPolicyNotice, WorkItemWithdrawResult, WorkItemClaimRecord, WorkItemHealth, WorkItemOutcomeEvidenceState, WorkItemOutcomeView, WorkItemRecord, WorkItemReportRecord, WorkItemReportStatus, WorkItemResumeContext, WorkItemSettlementReport, WorkItemThreadSourceRegistration, WorkItemIntakeProvenance } from './types.js';
|
|
17
|
+
import { type DiagnosisSourcePage } from './diagnosis.js';
|
|
18
|
+
import { WorkItemContinuation } from './continuation.js';
|
|
19
|
+
import { WorkItemOwnerReplies } from './owner-replies.js';
|
|
20
|
+
import { type OwnerWorkItemFeedbackProof, type OwnerWorkItemFeedbackSelector } from './feedback-targets.js';
|
|
21
|
+
import type { WorkItemReplyConsumerRegistration } from './peers.js';
|
|
22
|
+
/** Bounded, model-facing view of one successful claim. */
|
|
23
|
+
export interface WorkItemClaimView {
|
|
24
|
+
readonly itemId: string;
|
|
25
|
+
readonly runId: string;
|
|
26
|
+
readonly state: string;
|
|
27
|
+
readonly kind: string;
|
|
28
|
+
readonly externalId: string;
|
|
29
|
+
readonly title: string;
|
|
30
|
+
readonly brief: string;
|
|
31
|
+
readonly briefTruncated: boolean;
|
|
32
|
+
readonly acceptanceRef: string | null;
|
|
33
|
+
readonly workDir: string;
|
|
34
|
+
readonly attempt: number;
|
|
35
|
+
readonly maxAttempts: number;
|
|
36
|
+
readonly leaseUntil: number | null;
|
|
37
|
+
readonly replayed: boolean;
|
|
38
|
+
readonly resume: WorkItemResumeContext;
|
|
39
|
+
}
|
|
40
|
+
/** Bounded, model-facing view of one appended report. */
|
|
41
|
+
export interface WorkItemReportView {
|
|
42
|
+
readonly itemId: string;
|
|
43
|
+
readonly revision: number;
|
|
44
|
+
readonly status: WorkItemReportStatus;
|
|
45
|
+
readonly state: string;
|
|
46
|
+
readonly truncated: boolean;
|
|
47
|
+
readonly artifactPaths: readonly string[];
|
|
48
|
+
readonly delivery: string;
|
|
49
|
+
readonly replayed: boolean;
|
|
50
|
+
readonly notified: boolean;
|
|
51
|
+
}
|
|
52
|
+
/** Bounded, read-only view of the current run's item. */
|
|
53
|
+
export interface WorkItemStatusView {
|
|
54
|
+
readonly item: WorkItemRecord;
|
|
55
|
+
readonly claim: WorkItemClaimRecord | undefined;
|
|
56
|
+
readonly reports: readonly WorkItemReportRecord[];
|
|
57
|
+
readonly openItems: number;
|
|
58
|
+
/** Latest independent-outcome revision; `undefined` before any terminal move. */
|
|
59
|
+
readonly outcome: WorkItemOutcomeView | undefined;
|
|
60
|
+
}
|
|
61
|
+
/** One byte-bounded page of an immutable, persisted report. */
|
|
62
|
+
export interface WorkItemReportPage {
|
|
63
|
+
readonly itemId: string;
|
|
64
|
+
readonly revision: number;
|
|
65
|
+
readonly status: WorkItemReportStatus;
|
|
66
|
+
readonly summary: string;
|
|
67
|
+
/** UTF-8 byte offsets into the stored summary, never into arbitrary files. */
|
|
68
|
+
readonly offset: number;
|
|
69
|
+
readonly nextOffset: number | null;
|
|
70
|
+
readonly summaryBytes: number;
|
|
71
|
+
/** Whether the original report was truncated before it entered the ledger. */
|
|
72
|
+
readonly storedTruncated: boolean;
|
|
73
|
+
readonly artifactPaths: readonly string[];
|
|
74
|
+
readonly recordedAt: number;
|
|
75
|
+
readonly previousRevision: number | null;
|
|
76
|
+
readonly nextRevision: number | null;
|
|
77
|
+
}
|
|
78
|
+
export interface WorkItemReportInput {
|
|
79
|
+
readonly status: WorkItemReportStatus;
|
|
80
|
+
readonly summary: string;
|
|
81
|
+
readonly artifactPaths?: readonly string[];
|
|
82
|
+
readonly idempotencyKey: string;
|
|
83
|
+
}
|
|
84
|
+
export interface WorkItemSchedulerWakeHealth {
|
|
85
|
+
/** A listener is installed; this does not attest schedulerEnabled or duty. */
|
|
86
|
+
readonly subscribed: boolean;
|
|
87
|
+
readonly lastWakeAt: number | null;
|
|
88
|
+
readonly lastError: string | null;
|
|
89
|
+
}
|
|
90
|
+
type WorkItemToolExecution = Pick<ToolExecution, 'name' | 'agent' | 'arguments'> & {
|
|
91
|
+
readonly signal?: AbortSignal;
|
|
92
|
+
};
|
|
93
|
+
declare module '@deepseek-ai/cordis' {
|
|
94
|
+
interface Context {
|
|
95
|
+
assistantWorkItems: AssistantWorkItemsService;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Work-item intake kernel.
|
|
100
|
+
*
|
|
101
|
+
* This service owns configuration, the private ledger and identity resolution;
|
|
102
|
+
* it deliberately owns no agent loop, timer, outbox, budget or session. Every
|
|
103
|
+
* side effect is a call into an existing peer plugin (`assistant-automations`
|
|
104
|
+
* for the worker run, `assistant-delivery` for the owner notification), and the
|
|
105
|
+
* disabled default opens no file at all.
|
|
106
|
+
*/
|
|
107
|
+
export declare class AssistantWorkItemsService extends Service {
|
|
108
|
+
static Config: import("@deepseek-ai/schemastery").default<Config>;
|
|
109
|
+
private readonly workItemsConfig;
|
|
110
|
+
private readonly workItemsEvaluation;
|
|
111
|
+
/** Host-registered followed-thread sources; empty means no follow can close. */
|
|
112
|
+
private readonly workItemsThreadSources;
|
|
113
|
+
private workItemsFollowDegraded;
|
|
114
|
+
private workItemsComponents;
|
|
115
|
+
private workItemsClosed;
|
|
116
|
+
private workItemsIntakeObserver;
|
|
117
|
+
/** Present only when `intakeLedger.evaluation` is enabled. */
|
|
118
|
+
private readonly workItemsIntakeEvaluation;
|
|
119
|
+
/** Present only when `intakeLedger.evaluation.admit` is enabled. */
|
|
120
|
+
private readonly workItemsIntakeAdmission;
|
|
121
|
+
private readonly workItemsDiagnosisKey;
|
|
122
|
+
private readonly workItemsContinuationKey;
|
|
123
|
+
private readonly workItemsReplyKey;
|
|
124
|
+
private readonly workItemsFeedbackKey;
|
|
125
|
+
private workItemsDiagnosisError;
|
|
126
|
+
private workItemsHasDiagnosisHistory;
|
|
127
|
+
private readonly workItemsSchedulerUnsubscribers;
|
|
128
|
+
private workItemsSchedulerWaking;
|
|
129
|
+
private workItemsSchedulerLastWakeAt;
|
|
130
|
+
private workItemsSchedulerLastError;
|
|
131
|
+
/** In-memory round-robin position of `acceptance.autoSettle`; a restart rescans from the start. */
|
|
132
|
+
private workItemsAutoSettleCursor;
|
|
133
|
+
/** In-memory round-robin position of `acceptance.bindWorkerRun`; a restart rescans from the start. */
|
|
134
|
+
private workItemsBindWorkerRunCursor;
|
|
135
|
+
/** In-memory round-robin position of `acceptance.holdReport`; a restart rescans from the start. */
|
|
136
|
+
private workItemsHeldReportCursor;
|
|
137
|
+
/** itemId → occurrenceId refused deterministically by `bindWorkerRun`; in memory, bounded, dropped on occurrence change. */
|
|
138
|
+
private readonly workItemsBindWorkerRunSkips;
|
|
139
|
+
/**
|
|
140
|
+
* itemId → consecutive `owner-route-drift` streak of `bindWorkerRun` for one
|
|
141
|
+
* occurrence; in memory, bounded. Any other outcome or a new occurrence
|
|
142
|
+
* drops it. Only for visibility: drift is re-read either way.
|
|
143
|
+
*/
|
|
144
|
+
private readonly workItemsBindWorkerRunDrifts;
|
|
145
|
+
/** Whether the missing Delivery `inspectOwnerRouteBinding` was already warned about. */
|
|
146
|
+
private workItemsOwnerRouteBindingWarned;
|
|
147
|
+
/** `itemId:row` malformed `acceptance-bound` rows already warned about. */
|
|
148
|
+
private readonly workItemsMalformedBindingWarned;
|
|
149
|
+
private readonly workItemsOwnerReads;
|
|
150
|
+
private readonly workItemsOwnerContinuations;
|
|
151
|
+
constructor(ctx: Context, input: Config);
|
|
152
|
+
/** One native wake may admit at most ten already-due waiting occurrences. */
|
|
153
|
+
private workItemsOnSchedulerWake;
|
|
154
|
+
/**
|
|
155
|
+
* P1-1: a changed Policy configuration notices every live item whose frozen
|
|
156
|
+
* mandate basis no longer matches. The digest is read from the detached Policy
|
|
157
|
+
* host snapshot; no Policy audit or budget is consumed. Notices are durable
|
|
158
|
+
* and idempotent, and this path never cancels, parks or wakes an item.
|
|
159
|
+
*/
|
|
160
|
+
private workItemsNoticePolicyChange;
|
|
161
|
+
/**
|
|
162
|
+
* WP21 slice 6: on the same native wake, bind at most `maxPerTick`
|
|
163
|
+
* dispatched items to the acceptance contract their own worker run froze.
|
|
164
|
+
* Automations only names the handle for the exact occurrence; the contract
|
|
165
|
+
* itself is re-read from the verifier and checked against the live owner
|
|
166
|
+
* route. Items whose mandate already binds a contract are never touched.
|
|
167
|
+
* Round-robin like auto-settle. A deterministic refusal parks the
|
|
168
|
+
* (item, occurrence) pair in memory so it is not re-read until the item's
|
|
169
|
+
* occurrence changes; transient ones (no contract yet, peer missing or
|
|
170
|
+
* throwing, Delivery failing other than `missing-binding`) are simply
|
|
171
|
+
* tried again on a later wake. Parked pairs do not consume the per-wake budget.
|
|
172
|
+
*/
|
|
173
|
+
private workItemsBindWorkerRuns;
|
|
174
|
+
/**
|
|
175
|
+
* Count consecutive `owner-route-drift` outcomes of one (item, occurrence)
|
|
176
|
+
* and warn once when the streak reaches `WORKER_RUN_DRIFT_WARN_AFTER`: a
|
|
177
|
+
* route that keeps moving between the two Delivery reads would otherwise be
|
|
178
|
+
* re-read silently forever. Any other outcome, including a successful bind,
|
|
179
|
+
* or a new occurrence restarts the streak. Never changes the re-read.
|
|
180
|
+
*/
|
|
181
|
+
private workItemsTrackBindWorkerRunDrift;
|
|
182
|
+
/**
|
|
183
|
+
* Warn once per (item, row) about a malformed latest `acceptance-bound`
|
|
184
|
+
* row. The item stays fail-closed (never bound or settled); later reads of
|
|
185
|
+
* the same row stay silent. Returns whether `error` was that condition.
|
|
186
|
+
*/
|
|
187
|
+
private workItemsWarnMalformedLateBinding;
|
|
188
|
+
private workItemsBindWorkerRun;
|
|
189
|
+
/**
|
|
190
|
+
* The exact Delivery binding id behind `owner`, read through Delivery's
|
|
191
|
+
* Host-only `inspectOwnerRouteBinding`. Its embedded receipt must equal
|
|
192
|
+
* `owner` field for field, so the id belongs to the very route state just
|
|
193
|
+
* validated. Fails closed without a binding id when Delivery lacks the
|
|
194
|
+
* method (`unsupported`), when the embedded receipt differs from `owner`
|
|
195
|
+
* (`drift`: the route moved between the two reads) or when the answer is
|
|
196
|
+
* malformed; Delivery errors propagate like `validateOwnerRoute`'s.
|
|
197
|
+
*/
|
|
198
|
+
private workItemsOwnerRouteBindingId;
|
|
199
|
+
/**
|
|
200
|
+
* WP21 slice 5: on the same native wake, read back at most `maxPerTick`
|
|
201
|
+
* executed, acceptance-bound items without a verdict through the Host-only
|
|
202
|
+
* `settleAcceptance`. Round-robin over an in-memory cursor so items still
|
|
203
|
+
* pending at the verifier cannot starve later ones. Anything short of a
|
|
204
|
+
* validated receipt writes nothing and is simply read again on a later wake.
|
|
205
|
+
*/
|
|
206
|
+
private workItemsAutoSettle;
|
|
207
|
+
/**
|
|
208
|
+
* WP21 slice 8 (`acceptance.holdReport`): the mandate binding, or else the
|
|
209
|
+
* latest late binding while it still belongs to the item's current
|
|
210
|
+
* occurrence. A malformed late row throws `storage`; callers decide whether
|
|
211
|
+
* to hold (fail closed) or treat the item as unbound.
|
|
212
|
+
*/
|
|
213
|
+
private workItemsAcceptanceBinding;
|
|
214
|
+
/**
|
|
215
|
+
* Whether this report must be held instead of dispatched: `holdReport` is
|
|
216
|
+
* on, it is the terminal `ready` self-report of an executed item, the status
|
|
217
|
+
* is notifiable, and the item already has an independent acceptance binding.
|
|
218
|
+
* An item that has not been bound yet (for example a run that reports before
|
|
219
|
+
* the wake that binds it) is reported normally, exactly as today.
|
|
220
|
+
*
|
|
221
|
+
* A verdict recorded for an earlier generation can never settle this report
|
|
222
|
+
* (the store keeps at most one verdict per item and excludes settled items
|
|
223
|
+
* from auto-settle), so holding it would just wait out `holdTimeoutMs` before
|
|
224
|
+
* releasing it unverified. It is dispatched now, exactly like flag-off.
|
|
225
|
+
* An unreadable verdict row fails closed and holds, like a malformed binding.
|
|
226
|
+
*/
|
|
227
|
+
private workItemsHoldsReport;
|
|
228
|
+
/**
|
|
229
|
+
* Whether this `ready` report is still held. Used to imply the verdict gate
|
|
230
|
+
* for held items even when `acceptance.verdictGate` itself is off: the gate
|
|
231
|
+
* must move the item before the held report can be replaced by the blocked
|
|
232
|
+
* one. A malformed binding row fails closed (treated as bound).
|
|
233
|
+
*/
|
|
234
|
+
private workItemsReportIsHeld;
|
|
235
|
+
/**
|
|
236
|
+
* WP21 slice 8: on the same native wake, release at most
|
|
237
|
+
* `HELD_REPORT_RELEASE_LIMIT` held reports through an in-memory
|
|
238
|
+
* `(recordedAt, itemId)` round-robin cursor. A full page advances the cursor
|
|
239
|
+
* past rows that are still waiting, so they cannot starve a releasable row
|
|
240
|
+
* behind them; a short page resets it and the next wake restarts from the
|
|
241
|
+
* oldest row. Achievement sends the ordinary report; any other settled
|
|
242
|
+
* verdict (or a verdict-gate `blocked` item) sends a blocked report instead;
|
|
243
|
+
* a still-pending item stays held, and one whose `holdTimeoutMs` elapsed is
|
|
244
|
+
* sent marked unverified. A row with no acceptance binding any more was never
|
|
245
|
+
* really held and is recovered as an ordinary report instead of stranded.
|
|
246
|
+
* One unreadable row (a malformed binding or verdict event) is warned about
|
|
247
|
+
* and skipped without aborting the remaining releases; the fail-closed hold
|
|
248
|
+
* itself is unchanged.
|
|
249
|
+
*/
|
|
250
|
+
private workItemsReleaseHeldReports;
|
|
251
|
+
/** Decide one held report without writing: release it, or wait for a later wake. */
|
|
252
|
+
private workItemsHeldRelease;
|
|
253
|
+
get enabled(): boolean;
|
|
254
|
+
get mode(): 'observe' | 'active';
|
|
255
|
+
get diagnosisEnabled(): boolean;
|
|
256
|
+
get ownerContinuationEnabled(): boolean;
|
|
257
|
+
/** Delivery's ownership fence for the single inbound intake observer. */
|
|
258
|
+
ownsInboundIntakeObserver: (observer: unknown) => boolean;
|
|
259
|
+
ownsWorkItemReplyRegistration: (registration: WorkItemReplyConsumerRegistration) => boolean;
|
|
260
|
+
issueOwnerWorkItemFeedbackTarget: (input: OwnerWorkItemFeedbackSelector) => unknown | undefined;
|
|
261
|
+
resolveOwnerWorkItemFeedbackTarget: (capability: unknown) => Readonly<OwnerWorkItemFeedbackProof> | undefined;
|
|
262
|
+
withOwnerWorkItemFeedbackTargetsFence: <T>(capabilities: readonly unknown[], callback: (proofs: readonly (Readonly<OwnerWorkItemFeedbackProof> | undefined)[]) => T) => T;
|
|
263
|
+
issueOwnerWorkItemEngineeringTarget: (feedbackCapability: unknown) => unknown | undefined;
|
|
264
|
+
resolveOwnerWorkItemEngineeringTarget: (capability: unknown) => Readonly<WorkItemEngineeringMaterial> | undefined;
|
|
265
|
+
withOwnerWorkItemEngineeringTargetsFence: <T>(capabilities: readonly unknown[], callback: (materials: readonly (Readonly<WorkItemEngineeringMaterial> | undefined)[]) => T) => T;
|
|
266
|
+
get ownerRecallEnabled(): boolean;
|
|
267
|
+
/** Foreground-only historical reads, independent of occurrence/worker authority. */
|
|
268
|
+
listForOwner: (execution: OwnerWorkItemExecution, input: OwnerWorkItemListInput) => Readonly<{
|
|
269
|
+
nextCursor?: string;
|
|
270
|
+
items: readonly Readonly<{
|
|
271
|
+
lastReport?: import("./types.js").WorkItemResumeReport;
|
|
272
|
+
continuation?: Readonly<{
|
|
273
|
+
parentItemId: string;
|
|
274
|
+
rootItemId: string;
|
|
275
|
+
}>;
|
|
276
|
+
itemId: string;
|
|
277
|
+
kind: string;
|
|
278
|
+
title: string;
|
|
279
|
+
state: string;
|
|
280
|
+
stateReason: string | null;
|
|
281
|
+
attempt: number;
|
|
282
|
+
maxAttempts: number;
|
|
283
|
+
lastReportStatus: string | null;
|
|
284
|
+
observed: boolean;
|
|
285
|
+
createdAt: number;
|
|
286
|
+
updatedAt: number;
|
|
287
|
+
}>[];
|
|
288
|
+
}>;
|
|
289
|
+
recallForOwner: (execution: OwnerWorkItemExecution, input: OwnerWorkItemRecallInput) => Readonly<{
|
|
290
|
+
item: Readonly<import("./owner-recall.js").OwnerWorkItemSummary>;
|
|
291
|
+
content: Readonly<{
|
|
292
|
+
storedTruncated: boolean;
|
|
293
|
+
nextOffset?: number;
|
|
294
|
+
text: string;
|
|
295
|
+
fullBytes: number;
|
|
296
|
+
returnedBytes: number;
|
|
297
|
+
offset: number;
|
|
298
|
+
nextRevision?: number;
|
|
299
|
+
previousRevision?: number;
|
|
300
|
+
reportRevision?: number;
|
|
301
|
+
status?: WorkItemReportStatus;
|
|
302
|
+
recordedAt?: number;
|
|
303
|
+
kind: "brief" | "report";
|
|
304
|
+
}>;
|
|
305
|
+
reports: readonly Readonly<{
|
|
306
|
+
summary: string;
|
|
307
|
+
summaryTruncated: boolean;
|
|
308
|
+
revision: number;
|
|
309
|
+
status: WorkItemReportStatus;
|
|
310
|
+
recordedAt: number;
|
|
311
|
+
}>[];
|
|
312
|
+
reportsTotal: number;
|
|
313
|
+
latestOutcome: import("./types.js").WorkItemResumeOutcome | null;
|
|
314
|
+
}>;
|
|
315
|
+
continueForOwner: (execution: OwnerWorkItemExecution, input: {
|
|
316
|
+
item_id: string;
|
|
317
|
+
}) => Readonly<{
|
|
318
|
+
itemId: string;
|
|
319
|
+
parentItemId: string;
|
|
320
|
+
rootItemId: string;
|
|
321
|
+
state: string;
|
|
322
|
+
replayed: boolean;
|
|
323
|
+
}>;
|
|
324
|
+
/** Bounded admission check; no work-item recovery, writes, dispatch or model. */
|
|
325
|
+
preauthorizeTool(execution: ToolExecution): boolean;
|
|
326
|
+
/** Approval cannot extend the live occurrence/owner mandate at execution. */
|
|
327
|
+
assertToolExecution(execution: WorkItemToolExecution): void;
|
|
328
|
+
private workItemsCheckToolExecution;
|
|
329
|
+
/**
|
|
330
|
+
* Admit one external work signal.
|
|
331
|
+
*
|
|
332
|
+
* Host-side entry point for a future external source plugin. It performs no
|
|
333
|
+
* dispatch work beyond the same bounded wake the ledger does on recovery, so
|
|
334
|
+
* observe mode stays free of external effects.
|
|
335
|
+
*/
|
|
336
|
+
admit(input: WorkItemAdmitInput): WorkItemAdmitResult;
|
|
337
|
+
/**
|
|
338
|
+
* Admit one execute decision under a frozen mandate (Host-only, never a tool).
|
|
339
|
+
*
|
|
340
|
+
* Same wake semantics as `admit(...)`. A replayed decision id returns its one
|
|
341
|
+
* existing item; a refusal is a value, not an error, and writes nothing.
|
|
342
|
+
*/
|
|
343
|
+
admitDecision(decision: WorkItemExecuteDecision): WorkItemDecisionAdmitResult;
|
|
344
|
+
/**
|
|
345
|
+
* Host-only (WP21): the Policy peer now runs under `policyVersion`.
|
|
346
|
+
*
|
|
347
|
+
* Never cancels, parks or wakes work. Each live item whose frozen mandate
|
|
348
|
+
* basis the current Policy no longer upholds gets one durable notice per
|
|
349
|
+
* version; replaying the same version (for example after a restart) writes
|
|
350
|
+
* nothing new. Uses Policy `evaluate`, so no audit row or budget is spent.
|
|
351
|
+
*/
|
|
352
|
+
noticePolicyChange(change: unknown): WorkItemPolicyChangeResult;
|
|
353
|
+
/**
|
|
354
|
+
* Host-only (WP21 slice 4): read a bound item's verdict back from the
|
|
355
|
+
* independent verifier. Takes no verdict input; a worker report, the
|
|
356
|
+
* decision caller or this call's caller can never assert completion. Writes
|
|
357
|
+
* one append-only verdict event once the verifier's receipt validates
|
|
358
|
+
* against the frozen contract; anything short of that writes nothing.
|
|
359
|
+
*/
|
|
360
|
+
settleAcceptance(itemId: string): WorkItemAcceptanceSettleResult;
|
|
361
|
+
/** Host-only: the verifier verdict recorded for one item, or null. */
|
|
362
|
+
acceptanceVerdict(itemId: string): WorkItemAcceptanceVerdict | null;
|
|
363
|
+
/** Host-only: every Policy-change notice recorded for one item. */
|
|
364
|
+
policyNotices(itemId: string): readonly WorkItemPolicyNotice[];
|
|
365
|
+
/**
|
|
366
|
+
* Host-only (WP21): a human follow-up on an item's work thread is owned by
|
|
367
|
+
* that item while it is live. An ended item takes nothing (`item-ended`).
|
|
368
|
+
*/
|
|
369
|
+
ownFollowUp(input: unknown): WorkItemFollowUpOwnResult;
|
|
370
|
+
/** Host-only: the live item processed one of its owned follow-ups. */
|
|
371
|
+
markFollowUpProcessed(itemId: string, messageId: string): WorkItemFollowUpRecord;
|
|
372
|
+
/** Host-only: follow-ups owned by one item. */
|
|
373
|
+
followUps(itemId: string): readonly WorkItemFollowUpRecord[];
|
|
374
|
+
/**
|
|
375
|
+
* Host-only: release every unprocessed follow-up of an ended item back to
|
|
376
|
+
* judgment and return the newly released ones. No message is sent; the
|
|
377
|
+
* caller decides what judgment does with them.
|
|
378
|
+
*/
|
|
379
|
+
releaseFollowUps(limit?: number): readonly WorkItemFollowUpRecord[];
|
|
380
|
+
/** Host-only: released follow-ups in release order (restart-safe re-read). */
|
|
381
|
+
listReleasedFollowUps(options?: {
|
|
382
|
+
limit?: number;
|
|
383
|
+
after?: WorkItemFollowUpCursor;
|
|
384
|
+
}): Readonly<{
|
|
385
|
+
items: readonly WorkItemFollowUpRecord[];
|
|
386
|
+
next: WorkItemFollowUpCursor | null;
|
|
387
|
+
}>;
|
|
388
|
+
/**
|
|
389
|
+
* Record one inbound item's deterministic intake decision (WP20 slice 1).
|
|
390
|
+
*
|
|
391
|
+
* Host-only and metadata-only: the input carries normalized booleans and an
|
|
392
|
+
* optional content digest, never a body. It works in observe mode, writes
|
|
393
|
+
* only the intake ledger, and never admits, wakes or delivers anything. A
|
|
394
|
+
* replay of the same `(source, sourceEventId)` returns the original row.
|
|
395
|
+
*/
|
|
396
|
+
recordIntake(input: WorkItemIntakeInput, sourceText?: string): WorkItemIntakeResult;
|
|
397
|
+
/**
|
|
398
|
+
* Host-only: register the injectable WP20 inferred-evaluation supplier
|
|
399
|
+
* (Policy snapshot + model call). Requires `intakeLedger.evaluation`.
|
|
400
|
+
*/
|
|
401
|
+
registerIntakeEvaluator(registration: WorkItemIntakeEvaluatorRegistration): () => void;
|
|
402
|
+
/** Host-only drive of one bounded evaluation run; the scheduler wake calls the same path. */
|
|
403
|
+
runIntakeEvaluation(): Promise<readonly WorkItemIntakeEvaluationRecord[]>;
|
|
404
|
+
/**
|
|
405
|
+
* Host-only drive of one bounded admission pass over persisted accepting
|
|
406
|
+
* evaluations (WP21); the scheduler wake calls it after each evaluation run.
|
|
407
|
+
* Requires `intakeLedger.evaluation.admit`; never throws.
|
|
408
|
+
*/
|
|
409
|
+
runIntakeAdmission(): readonly WorkItemIntakeAdmissionRecord[];
|
|
410
|
+
/** Durable admission outcomes (`would-admit`, `admitted`, `replayed`, `refused`) for one intake row. */
|
|
411
|
+
intakeAdmissions(source: string, sourceEventId: string): readonly WorkItemIntakeAdmissionRecord[];
|
|
412
|
+
/**
|
|
413
|
+
* Host-only, read-only (WP22): the WP20 intake judgment that admitted one
|
|
414
|
+
* work item, for Evaluation's intake/attention agreement metric. Undefined
|
|
415
|
+
* when the item does not exist or was not admitted from intake
|
|
416
|
+
* (observe-mode `would-admit` never creates an item). Throws `disabled`
|
|
417
|
+
* when the intake ledger is off, so "cannot tell" is never read as "not
|
|
418
|
+
* intake". Carries the item's owner scope and no source text.
|
|
419
|
+
*/
|
|
420
|
+
inspectIntakeProvenance(itemId: string): WorkItemIntakeProvenance | undefined;
|
|
421
|
+
/** Persisted evaluation results for one intake row; replay reads these, never re-evaluates. */
|
|
422
|
+
intakeEvaluations(source: string, sourceEventId: string): readonly WorkItemIntakeEvaluationRecord[];
|
|
423
|
+
intakeEvaluationHealth(): WorkItemIntakeEvaluationHealth | undefined;
|
|
424
|
+
/** Explicit Host-only reduction of a canonical work signal; never a model tool or a plan mint. */
|
|
425
|
+
withdraw(input: WorkItemAdmitInput): WorkItemWithdrawResult;
|
|
426
|
+
/**
|
|
427
|
+
* Claim the item bound to the calling automation occurrence.
|
|
428
|
+
*
|
|
429
|
+
* Identity comes exclusively from the frozen, production automation
|
|
430
|
+
* execution context installed by `assistant-automations`; a foreground
|
|
431
|
+
* session, a preview run and another automation all fail closed.
|
|
432
|
+
*
|
|
433
|
+
* An armed signal source is swept here (bounded by the persisted
|
|
434
|
+
* `sweepIntervalMs`) so ordinary use keeps producing work without a timer or
|
|
435
|
+
* developer orchestration. A sweep failure never fails the claim.
|
|
436
|
+
*/
|
|
437
|
+
claim(agent: Agent | undefined): WorkItemClaimView;
|
|
438
|
+
/**
|
|
439
|
+
* Append one report revision under the caller's active claim.
|
|
440
|
+
*
|
|
441
|
+
* Reporting is the only worker write path. A terminal status additionally
|
|
442
|
+
* enqueues one owner notification through `assistant-delivery`; a delivery
|
|
443
|
+
* failure is recorded against the report instead of erasing report evidence.
|
|
444
|
+
*/
|
|
445
|
+
report(agent: Agent | undefined, input: WorkItemReportInput): Promise<WorkItemReportView>;
|
|
446
|
+
/**
|
|
447
|
+
* Register one additional automatic source and return an idempotent disposer.
|
|
448
|
+
*
|
|
449
|
+
* This is the public extension point for an external signal producer (a
|
|
450
|
+
* repository watcher, a chat bridge, a scheduler): the producer supplies a
|
|
451
|
+
* read-only `WorkItemSignalSource`, gets the same bounded sweep, provenance,
|
|
452
|
+
* dedupe, cooldown and settled-item fence as the built-in adapter, and can be
|
|
453
|
+
* withdrawn by disposing the registration. Registration fails closed when the
|
|
454
|
+
* intake is disabled or already disposed, and never admits retroactively.
|
|
455
|
+
*/
|
|
456
|
+
registerSignalSource(registration: WorkItemSignalRegistration): () => void;
|
|
457
|
+
/**
|
|
458
|
+
* Register the only resolver for one followed-thread source.
|
|
459
|
+
*
|
|
460
|
+
* Host-only extension point. Registration is one-per-source, validated
|
|
461
|
+
* synchronously and revoked by the returned disposer. A follow recorded while
|
|
462
|
+
* a source is registered stores that source's generation, so replacing the
|
|
463
|
+
* source later degrades the follow to `unresolved` instead of trusting a
|
|
464
|
+
* stale closure. This adds resolution capability only: it is not authority to
|
|
465
|
+
* end an item, and a closure never claims an objective was achieved.
|
|
466
|
+
*/
|
|
467
|
+
registerThreadSource(registration: WorkItemThreadSourceRegistration): () => void;
|
|
468
|
+
/**
|
|
469
|
+
* Trusted Evaluation producer generation (fourth trusted producer).
|
|
470
|
+
*
|
|
471
|
+
* `assistant-evaluation` reads this before registering a sink; returning a
|
|
472
|
+
* fresh value on a new service instance is what makes a stale capability
|
|
473
|
+
* fail closed instead of appending to the wrong host.
|
|
474
|
+
*/
|
|
475
|
+
trustedWorkItemProducerGeneration(): string;
|
|
476
|
+
/**
|
|
477
|
+
* Install the Evaluation-owned sink this plugin exports settled outcomes to.
|
|
478
|
+
*
|
|
479
|
+
* The registration is opaque: Evaluation passes its own capability and this
|
|
480
|
+
* plugin only validates the protocol, generation and ownership before using
|
|
481
|
+
* it. Exactly one sink is accepted; the returned disposer withdraws it.
|
|
482
|
+
*/
|
|
483
|
+
registerTrustedWorkItemEvaluationSink(registration: Readonly<WorkItemEvaluationRegistration>): () => void;
|
|
484
|
+
/**
|
|
485
|
+
* Sweep every armed automatic source once and report what it did.
|
|
486
|
+
*
|
|
487
|
+
* Explicit host entry point; `force` ignores the persisted interval. The
|
|
488
|
+
* disabled default and a missing optional peer both return an empty report,
|
|
489
|
+
* so a caller never has to special-case activation.
|
|
490
|
+
*/
|
|
491
|
+
sweepSignals(force?: boolean): WorkItemSignalSweepReport;
|
|
492
|
+
/**
|
|
493
|
+
* Run one bounded settlement pass over the pending outcome windows.
|
|
494
|
+
*
|
|
495
|
+
* Host-only by design: there is deliberately no model tool for this, so a
|
|
496
|
+
* worker can never settle or launder its own outcome. Returns a report instead
|
|
497
|
+
* of throwing, and a disabled intake returns `skipped: 'disabled'`.
|
|
498
|
+
*/
|
|
499
|
+
settleOutcomes(force?: boolean): WorkItemSettlementReport;
|
|
500
|
+
/**
|
|
501
|
+
* Read the latest outcome revision per item, newest first.
|
|
502
|
+
*
|
|
503
|
+
* Host-only projection for status/health consumers; the disabled default
|
|
504
|
+
* returns an empty list rather than opening the ledger.
|
|
505
|
+
*/
|
|
506
|
+
outcomes(options?: {
|
|
507
|
+
limit?: number;
|
|
508
|
+
evidenceState?: WorkItemOutcomeEvidenceState;
|
|
509
|
+
}): readonly WorkItemOutcomeView[];
|
|
510
|
+
/** Read-only status of the item bound to the calling occurrence. */
|
|
511
|
+
status(agent: Agent | undefined): WorkItemStatusView;
|
|
512
|
+
/**
|
|
513
|
+
* Recall one report belonging to the caller's exact production occurrence.
|
|
514
|
+
* This path performs no recovery, parking, settlement or ledger mutation.
|
|
515
|
+
*/
|
|
516
|
+
readReport(agent: Agent | undefined, input: {
|
|
517
|
+
revision: number;
|
|
518
|
+
offset?: number;
|
|
519
|
+
maxBytes?: number;
|
|
520
|
+
}): WorkItemReportPage;
|
|
521
|
+
readContext(agent: Agent | undefined, input: {
|
|
522
|
+
kind: 'input' | 'parent-brief' | 'parent-report' | 'parent-outcome';
|
|
523
|
+
revision?: number;
|
|
524
|
+
offset?: number;
|
|
525
|
+
maxBytes?: number;
|
|
526
|
+
}): Readonly<{
|
|
527
|
+
nextRevision?: number;
|
|
528
|
+
previousRevision?: number;
|
|
529
|
+
sourceDigest?: string;
|
|
530
|
+
nextOffset?: number;
|
|
531
|
+
parentReportRevision: number | null;
|
|
532
|
+
parentOutcomeRevision: number | null;
|
|
533
|
+
text: string;
|
|
534
|
+
fullTextDigest: string;
|
|
535
|
+
fullBytes: number;
|
|
536
|
+
returnedBytes: number;
|
|
537
|
+
offset: number;
|
|
538
|
+
revision?: number;
|
|
539
|
+
itemId: string;
|
|
540
|
+
parentItemId: string;
|
|
541
|
+
rootItemId: string;
|
|
542
|
+
kind: "input" | "parent-brief" | "parent-report" | "parent-outcome";
|
|
543
|
+
}>;
|
|
544
|
+
private workItemsAssertRuntime;
|
|
545
|
+
readSource(agent: Agent | undefined, input: {
|
|
546
|
+
offset?: number;
|
|
547
|
+
maxBytes?: number;
|
|
548
|
+
}): DiagnosisSourcePage;
|
|
549
|
+
/** Pure SELECT/UTF-8 projection shared by preflight and the read tool. */
|
|
550
|
+
private workItemsReadReportPage;
|
|
551
|
+
/** Bounded health projection; never creates the ledger when disabled. */
|
|
552
|
+
health(): WorkItemHealth & {
|
|
553
|
+
readonly schedulerWake: WorkItemSchedulerWakeHealth;
|
|
554
|
+
readonly diagnosis?: Readonly<{
|
|
555
|
+
enabled: true;
|
|
556
|
+
ready: boolean;
|
|
557
|
+
running: number;
|
|
558
|
+
lastError: string | null;
|
|
559
|
+
interventionRequired: boolean;
|
|
560
|
+
}>;
|
|
561
|
+
readonly ownerContinuation?: ReturnType<WorkItemContinuation['health']>;
|
|
562
|
+
readonly ownerReplyContinuation?: ReturnType<WorkItemOwnerReplies['health']>;
|
|
563
|
+
readonly ownerReportFeedback?: Readonly<{
|
|
564
|
+
enabled: true;
|
|
565
|
+
available: boolean;
|
|
566
|
+
registered: boolean;
|
|
567
|
+
}>;
|
|
568
|
+
};
|
|
569
|
+
/** Close the ledger exactly once; safe on an intake that never opened. */
|
|
570
|
+
close(): void;
|
|
571
|
+
/** Export is possible only from an active intake with settlement armed. */
|
|
572
|
+
private workItemsEvaluationEnabled;
|
|
573
|
+
/** One bounded counts read for the export projection. */
|
|
574
|
+
private workItemsEvaluationHealth;
|
|
575
|
+
/**
|
|
576
|
+
* Health degradation: a settled revision can never reach the trusted lane.
|
|
577
|
+
*
|
|
578
|
+
* A missing optional sink is only a *gap* once something actually awaits
|
|
579
|
+
* export; a deployment that never installs Evaluation must not look degraded
|
|
580
|
+
* while it has nothing to export.
|
|
581
|
+
*/
|
|
582
|
+
private workItemsEvaluationDegraded;
|
|
583
|
+
/** Fire-and-forget bounded drain; export failures must never fail a caller. */
|
|
584
|
+
private workItemsDrainEvaluation;
|
|
585
|
+
private workItemsAvailable;
|
|
586
|
+
/** Best-effort bounded sweep; log and continue on any failure. */
|
|
587
|
+
private workItemsSweepQuietly;
|
|
588
|
+
/** Best-effort bounded re-dispatch sweep behind ordinary claim activity. */
|
|
589
|
+
private workItemsWakeQuietly;
|
|
590
|
+
/** Best-effort settlement pass behind ordinary claim activity. */
|
|
591
|
+
private workItemsSettleQuietly;
|
|
592
|
+
/** Build the bounded settlement pass from config; never admits or wakes. */
|
|
593
|
+
private workItemsSettlement;
|
|
594
|
+
/**
|
|
595
|
+
* Resolve one open follow against its registered source.
|
|
596
|
+
*
|
|
597
|
+
* Synchronous and read-only: no timer, no promise, no write. Every refusal
|
|
598
|
+
* returns `unresolved` so the item stays parked and health can name the
|
|
599
|
+
* degradation, rather than a missing source or a stale generation being read
|
|
600
|
+
* as a closure.
|
|
601
|
+
*/
|
|
602
|
+
private workItemsResolveThread;
|
|
603
|
+
/** Live follow counts and degradation; never resolves or writes anything. */
|
|
604
|
+
private workItemsFollowHealth;
|
|
605
|
+
/** Degradation visible in health without running a pass or touching SQLite. */
|
|
606
|
+
private workItemsSettlementDegraded;
|
|
607
|
+
private workItemsRequired;
|
|
608
|
+
private workItemsOpen;
|
|
609
|
+
/** Resolve the exact production automation occurrence for this agent. */
|
|
610
|
+
private workItemsOccurrenceId;
|
|
611
|
+
/** Re-anchor a claim against the live owner route above the stored receipt. */
|
|
612
|
+
private workItemsAssertOwnerRoute;
|
|
613
|
+
/**
|
|
614
|
+
* Re-validate the stored admission mandate before this claim is allowed.
|
|
615
|
+
*
|
|
616
|
+
* Policy remains the only authority: the exact admission request is replayed
|
|
617
|
+
* against the live policy under the same idempotency key. A denied, failing
|
|
618
|
+
* or malformed decision parks the item in `waiting` with a typed reason and
|
|
619
|
+
* fails the claim closed; the item is never claimed and never marked failed.
|
|
620
|
+
* A later allow resumes it through the same wake path.
|
|
621
|
+
*/
|
|
622
|
+
private workItemsRevalidateAuthority;
|
|
623
|
+
private workItemsAuthorityHealth;
|
|
624
|
+
private workItemsOwnerRouteValid;
|
|
625
|
+
private workItemsPolicy;
|
|
626
|
+
/** Live owner scope for Event Triggers reads; throws when the owner route is unavailable. */
|
|
627
|
+
private workItemsEventFollowOwner;
|
|
628
|
+
private workItemsDelivery;
|
|
629
|
+
private workItemsVerifier;
|
|
630
|
+
private workItemsAutomations;
|
|
631
|
+
}
|
|
632
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|