@happyvertical/smrt-ingestion 0.57.29 → 0.57.31
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/PROPOSALS.md +145 -9
- package/README.md +12 -0
- package/REVIEW.md +9 -0
- package/dist/chunks/{execution-Dv3G0d62.js → execution-BxkUOtLf.js} +119 -3
- package/dist/chunks/execution-BxkUOtLf.js.map +1 -0
- package/dist/chunks/{feedback-PLOZth0a.js → feedback-D69e1hX5.js} +3 -3
- package/dist/chunks/{feedback-PLOZth0a.js.map → feedback-D69e1hX5.js.map} +1 -1
- package/dist/chunks/proposal-contracts-CqVVPvqq.js.map +1 -1
- package/dist/chunks/{reviewer-instruction-zn11aVA5.js → reviewer-instruction-Ip4W4f0j.js} +2 -2
- package/dist/chunks/{reviewer-instruction-zn11aVA5.js.map → reviewer-instruction-Ip4W4f0j.js.map} +1 -1
- package/dist/execution-internal.d.ts +4 -0
- package/dist/execution-internal.d.ts.map +1 -1
- package/dist/execution.d.ts +7 -0
- package/dist/execution.d.ts.map +1 -1
- package/dist/execution.js +1 -1
- package/dist/failure-capture.d.ts +73 -0
- package/dist/failure-capture.d.ts.map +1 -0
- package/dist/manifest.json +1 -1
- package/dist/models.js +1 -1
- package/dist/models.js.map +1 -1
- package/dist/proposal-contracts.d.ts +8 -0
- package/dist/proposal-contracts.d.ts.map +1 -1
- package/dist/proposal-dto.d.ts +39 -0
- package/dist/proposal-dto.d.ts.map +1 -1
- package/dist/proposal-sdk.d.ts.map +1 -1
- package/dist/proposal-validation.d.ts +2 -1
- package/dist/proposal-validation.d.ts.map +1 -1
- package/dist/proposals.d.ts +2 -0
- package/dist/proposals.d.ts.map +1 -1
- package/dist/proposals.js +235 -22
- package/dist/proposals.js.map +1 -1
- package/dist/provider-failure.d.ts +15 -0
- package/dist/provider-failure.d.ts.map +1 -1
- package/dist/server.d.ts +15 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +39 -6
- package/dist/server.js.map +1 -1
- package/dist/smrt-knowledge.json +14 -14
- package/package.json +17 -17
- package/dist/chunks/execution-Dv3G0d62.js.map +0 -1
|
@@ -94,6 +94,14 @@ export interface ProposalConfiguration extends DecisionSettings {
|
|
|
94
94
|
identity: ProviderIdentity;
|
|
95
95
|
};
|
|
96
96
|
limits: GenerationLimits;
|
|
97
|
+
/**
|
|
98
|
+
* Opt-in, bounded, redacted capture of the model output on a failed
|
|
99
|
+
* interpretation attempt (#4285). Text requires a host redactor; absent or
|
|
100
|
+
* failed redaction retains no text. Off when absent. Not public read
|
|
101
|
+
* configuration: it never enters frozen configuration, digests or
|
|
102
|
+
* `proposalReadConfiguration`. See PROPOSALS.md.
|
|
103
|
+
*/
|
|
104
|
+
failureCapture?: import('./failure-capture.js').FailureCaptureConfiguration;
|
|
97
105
|
}
|
|
98
106
|
/** Credential-free configuration for validating persisted proposal snapshots. */
|
|
99
107
|
export interface ProposalReadConfiguration extends DecisionSettings {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proposal-contracts.d.ts","sourceRoot":"","sources":["../src/proposal-contracts.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"proposal-contracts.d.ts","sourceRoot":"","sources":["../src/proposal-contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EAEtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAE3B,mFAAmF;AACnF,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,kFAAkF;IAClF,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAC7D,2EAA2E;IAC3E,UAAU,CAAC,CACT,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GACtB,OAAO,CAAC;QACT,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7C,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC,CAAC;CACJ;AACD,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AACD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,KAAK,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,gBAAgB,CAAA;SAAE,CAAC,CAAC;KAC/D,CAAC,CAAC;IACH,OAAO,EAAE,KAAK,CAAC;QACb,OAAO,EAAE,oBAAoB,CAAC;QAC9B,UAAU,EAAE,iBAAiB,EAAE,CAAC;KACjC,CAAC,CAAC;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,mBAAmB,EAAE,iBAAiB,CAAC;IACzD,8FAA8F;IAC9F,eAAe,CAAC,EAAE,YAAY,CAAC;IAC/B,mGAAmG;IACnG,mBAAmB,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACpD;AACD,qFAAqF;AACrF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,CACN,KAAK,EAAE,uBAAuB,EAC9B,OAAO,EAAE;QAAE,MAAM,EAAE,WAAW,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,GACvD,OAAO,CAAC;QACT,MAAM,EAAE,OAAO,CAAC;QAChB,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC;QACnC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,8FAA8F;QAC9F,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;CACJ;AACD;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,QAAQ,CAAC;AAClD,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB;IAC/B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AACD,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,kFAAkF;IAClF,QAAQ,CAAC,EAAE;QAAE,MAAM,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,gBAAgB,CAAA;KAAE,CAAC;IAClE,MAAM,EAAE,gBAAgB,CAAC;IACzB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,OAAO,sBAAsB,EAAE,2BAA2B,CAAC;CAC7E;AACD,iFAAiF;AACjF,MAAM,WAAW,yBAA0B,SAAQ,gBAAgB;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AACD,wFAAwF;AACxF,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,qBAAqB,GAAG,yBAAyB,GACxD,yBAAyB,CAuC3B;AACD,MAAM,WAAW,4BAA6B,SAAQ,YAAY;IAChE,KAAK,EAAE,WAAW,CAAC;IACnB,gGAAgG;IAChG,mBAAmB,CAAC,EAAE,YAAY,CAAC;IACnC,SAAS,EAAE;QACT,MAAM,EAAE,OAAO,mBAAmB,EAAE,mBAAmB,CAAC;QACxD,oBAAoB,EAAE,MAAM,CAAC;QAC7B,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,gBAAgB,CAAC;QAC5B,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;QAClC,MAAM,EAAE,gBAAgB,CAAC;QACzB,0BAA0B,EAAE,MAAM,CAAC;QACnC,SAAS,EAAE,MAAM,CAAC;QAClB,oEAAoE;QACpE,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,wDAAwD;QACxD,iBAAiB,CAAC,EAAE,QAAQ,CAAC;KAC9B,CAAC;CACH"}
|
package/dist/proposal-dto.d.ts
CHANGED
|
@@ -77,6 +77,16 @@ export interface MissingFieldsCorrection {
|
|
|
77
77
|
/** Declared fields that were not actually missing. */
|
|
78
78
|
removed: number;
|
|
79
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* Value-free record that the validator dropped invented targets from offered
|
|
82
|
+
* candidate fields (#4289): counts only, never IDs, labels or field names.
|
|
83
|
+
*/
|
|
84
|
+
export interface UnofferedTargetsDropped {
|
|
85
|
+
/** Suggestions that had at least one target dropped. */
|
|
86
|
+
suggestions: number;
|
|
87
|
+
/** Candidate fields whose unoffered value was dropped. */
|
|
88
|
+
fields: number;
|
|
89
|
+
}
|
|
80
90
|
export interface GenerationOutput {
|
|
81
91
|
version: 1;
|
|
82
92
|
outcome: 'proposals' | 'unknown' | 'ambiguous' | 'no_action' | 'needs_review' | 'provider_error';
|
|
@@ -146,6 +156,8 @@ export interface GenerationOutput {
|
|
|
146
156
|
};
|
|
147
157
|
/** Present only when a declaration was corrected; absent output is unchanged. */
|
|
148
158
|
missingFieldsCorrection?: MissingFieldsCorrection;
|
|
159
|
+
/** Present only when an invented target was dropped; absent output is unchanged. */
|
|
160
|
+
unofferedTargetsDropped?: UnofferedTargetsDropped;
|
|
149
161
|
};
|
|
150
162
|
automaticActionEligible: false;
|
|
151
163
|
}
|
|
@@ -171,4 +183,31 @@ export type GeneratedPreview = {
|
|
|
171
183
|
export interface GenerationAnalysisOutput {
|
|
172
184
|
proposals: GenerationOutput;
|
|
173
185
|
}
|
|
186
|
+
/** What a failed-attempt capture holds (#4285). */
|
|
187
|
+
export type FailedAttemptCaptureSource =
|
|
188
|
+
/** The provider's reply text, refused by the SDK adapter (e.g. invalid JSON). */
|
|
189
|
+
'raw_response'
|
|
190
|
+
/** The generator's parsed output that failed validation or a limit, as JSON. */
|
|
191
|
+
| 'generated_output';
|
|
192
|
+
export type FailedAttemptCaptureStatus = 'captured' | 'redaction_failed';
|
|
193
|
+
/**
|
|
194
|
+
* Opt-in diagnostic capture of a failed interpretation attempt. It contains
|
|
195
|
+
* document-derived model output: read it only through the reviewer-authorized
|
|
196
|
+
* `getFailedAttemptCapture`, and never put it in lists, logs or telemetry.
|
|
197
|
+
*/
|
|
198
|
+
export interface FailedAttemptCapture {
|
|
199
|
+
itemId: string;
|
|
200
|
+
attemptId: string;
|
|
201
|
+
source: FailedAttemptCaptureSource;
|
|
202
|
+
/** `redaction_failed`: the host hook was missing or failed; no text stored. */
|
|
203
|
+
status: FailedAttemptCaptureStatus;
|
|
204
|
+
/** Redacted, bounded text; present only when `status` is `captured`. */
|
|
205
|
+
text?: string;
|
|
206
|
+
/** The text was cut at `maxBytes` (or at the generation output bound). */
|
|
207
|
+
truncated: boolean;
|
|
208
|
+
/** A hook was configured; the host owns its semantic redaction policy. */
|
|
209
|
+
redacted: boolean;
|
|
210
|
+
maxBytes: number;
|
|
211
|
+
capturedAt: string;
|
|
212
|
+
}
|
|
174
213
|
//# sourceMappingURL=proposal-dto.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proposal-dto.d.ts","sourceRoot":"","sources":["../src/proposal-dto.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"proposal-dto.d.ts","sourceRoot":"","sources":["../src/proposal-dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proposal-sdk.d.ts","sourceRoot":"","sources":["../src/proposal-sdk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EAGZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,KAAK,gBAAgB,EAAoB,MAAM,uBAAuB,CAAC;AAChF,OAAO,KAAK,EACV,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"proposal-sdk.d.ts","sourceRoot":"","sources":["../src/proposal-sdk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EAGZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,KAAK,gBAAgB,EAAoB,MAAM,uBAAuB,CAAC;AAChF,OAAO,KAAK,EACV,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AA4BjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,MAAM,CAuBzD,CAAC;AAgCH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAsEtD;AAiDD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEpE;AAiKD,8FAA8F;AAC9F,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,EACjC,kBAAkB,EAAE,gBAAgB,EACpC,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC/C,iBAAiB,CAwFnB;AAED,gFAAgF;AAChF,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,iBAAiB,GAAG,QAAQ,CAAC,GACtD,cAAc,CAYhB"}
|
|
@@ -2,7 +2,7 @@ import { type ErrorObject } from 'ajv';
|
|
|
2
2
|
import type { IntakeValues } from './execution-dto.js';
|
|
3
3
|
import type { ExtractionResult } from './extraction-types.js';
|
|
4
4
|
import type { GenerationLimits } from './proposal-contracts.js';
|
|
5
|
-
import type { GenerationOutput, MissingFieldsCorrection } from './proposal-dto.js';
|
|
5
|
+
import type { GenerationOutput, MissingFieldsCorrection, UnofferedTargetsDropped } from './proposal-dto.js';
|
|
6
6
|
export { schemaOwnedPath } from './argument-issues.js';
|
|
7
7
|
/** Longest persisted reason; the rest is cut so the publication envelope stays bounded. */
|
|
8
8
|
export declare const PROPOSAL_REASON_LIMIT = 1000;
|
|
@@ -235,5 +235,6 @@ export declare function dedupeGeneratedLists(raw: unknown): {
|
|
|
235
235
|
export declare function validateSuggestions(raw: unknown, offered: GenerationOutput['offered'], extraction: ExtractionResult[], limits: GenerationLimits, revision: number): Pick<GenerationOutput, 'outcome' | 'suggestions' | 'splits'> & {
|
|
236
236
|
missingFieldsCorrection?: MissingFieldsCorrection;
|
|
237
237
|
splitsDropped?: NonNullable<GenerationOutput['provenance']['splitsDropped']>;
|
|
238
|
+
unofferedTargetsDropped?: UnofferedTargetsDropped;
|
|
238
239
|
};
|
|
239
240
|
//# sourceMappingURL=proposal-validation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proposal-validation.d.ts","sourceRoot":"","sources":["../src/proposal-validation.ts"],"names":[],"mappings":"AAAA,OAAY,EAAE,KAAK,WAAW,EAAE,MAAM,KAAK,CAAC;AAG5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAEV,gBAAgB,EAChB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"proposal-validation.d.ts","sourceRoot":"","sources":["../src/proposal-validation.ts"],"names":[],"mappings":"AAAA,OAAY,EAAE,KAAK,WAAW,EAAE,MAAM,KAAK,CAAC;AAG5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAEV,gBAAgB,EAChB,uBAAuB,EAEvB,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,2FAA2F;AAC3F,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAC1C;;;;GAIG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBACZ,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;CAO7C;AACD;;;GAGG;AACH,4DAA4D;AAC5D,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAG9C,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,GAAG,SAAS,EACxC,MAAM,EAAE,OAAO,EACf,QAAQ,CAAC,EAAE,OAAO,EAClB,KAAK,SAAK,EACV,QAAQ,SAA8B,GACrC,MAAM,CAkDR;AACD,gHAAgH;AAChH,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAGhD;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,GAAG,SAAS,EACxC,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,OAAO,GAChB,MAAM,EAAE,GAAG,SAAS,CAuBtB;AACD,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAInD;AACD,wBAAgB,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,SAAM,GAAG,MAAM,CAItD;AACD,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAehE;AAwCD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuFxD;AACD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG;IAClD,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAsCA;AACD,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,EACpC,UAAU,EAAE,gBAAgB,EAAE,EAC9B,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,MAAM,GACf,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,aAAa,GAAG,QAAQ,CAAC,GAAG;IAChE,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;IAClD,aAAa,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;IAC7E,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;CACnD,CA6NA"}
|
package/dist/proposals.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { generationSnapshotRead, type TransactionRunner } from './execution-inte
|
|
|
3
3
|
import type { GenerationStageConfiguration, GenerativeProposalInput, ProposalConfiguration, ProposalReadConfiguration } from './proposal-contracts.js';
|
|
4
4
|
import type { CandidatePage, CompletedAnalysisSnapshot, GeneratedPreview, GenerationOutput, PreviewGeneratedInput, ProposalCatalogEntry } from './proposal-dto.js';
|
|
5
5
|
import type { AnalysisLease, IngestionOptions, IngestionService } from './server.js';
|
|
6
|
+
export { FAILURE_CAPTURE_DEFAULT_MAX_BYTES, FAILURE_CAPTURE_MAX_BYTES, type FailureCaptureConfiguration, } from './failure-capture.js';
|
|
6
7
|
export type * from './proposal-contracts.js';
|
|
7
8
|
export type { ProposalConfiguration, ProposalReadConfiguration, } from './proposal-contracts.js';
|
|
8
9
|
export { proposalReadConfiguration } from './proposal-contracts.js';
|
|
@@ -26,6 +27,7 @@ export declare class IngestionProposalService {
|
|
|
26
27
|
/** Frozen public decision settings; defaults are omitted so existing digests hold. */
|
|
27
28
|
private decisionSettings;
|
|
28
29
|
private readonly config;
|
|
30
|
+
private readonly failureCapture?;
|
|
29
31
|
private generation;
|
|
30
32
|
private handler;
|
|
31
33
|
private entry;
|
package/dist/proposals.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proposals.d.ts","sourceRoot":"","sources":["../src/proposals.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAa5D,OAAO,
|
|
1
|
+
{"version":3,"file":"proposals.d.ts","sourceRoot":"","sources":["../src/proposals.ts"],"names":[],"mappings":"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"}
|
package/dist/proposals.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { A as __toESM, D as generationSnapshotRead, E as discoveryTransaction, S as prepareFailureCapture, T as completeWithFailureCapture, _ as HandlerArgumentsInvalidError, b as FAILURE_CAPTURE_MAX_BYTES, d as schemaOwnedPath, f as require_ajv, h as GenerationSnapshotStaleError, i as intakeBindingDigest, n as IntakeExecutionService, u as describeArgumentRefusal, w as analysisLeaseRemaining, x as assertFailureCapture, y as FAILURE_CAPTURE_DEFAULT_MAX_BYTES } from "./chunks/execution-BxkUOtLf.js";
|
|
2
2
|
import { a as providerIdentity } from "./chunks/extraction-providers-C66ADDVe.js";
|
|
3
3
|
import { n as assertProposalLimits, o as proposeDocumentSplits, r as SplitGroupError, t as proposalReadConfiguration } from "./chunks/proposal-contracts-CqVVPvqq.js";
|
|
4
|
-
import { i as reviewerInstructionView } from "./chunks/reviewer-instruction-
|
|
5
|
-
import { n as IntakeFeedbackService, t as FeedbackRetrievalDeniedError } from "./chunks/feedback-
|
|
4
|
+
import { i as reviewerInstructionView } from "./chunks/reviewer-instruction-Ip4W4f0j.js";
|
|
5
|
+
import { n as IntakeFeedbackService, t as FeedbackRetrievalDeniedError } from "./chunks/feedback-D69e1hX5.js";
|
|
6
6
|
import { executeDecision, isEmbeddedDatabase, withEmbeddedWriteTransaction } from "@happyvertical/smrt-core";
|
|
7
7
|
import { AIError } from "@happyvertical/ai";
|
|
8
8
|
//#region src/proposal-validation.ts
|
|
@@ -307,13 +307,42 @@ function validateSuggestions(raw, offered, extraction, limits, revision) {
|
|
|
307
307
|
added: 0,
|
|
308
308
|
removed: 0
|
|
309
309
|
};
|
|
310
|
+
const unoffered = {
|
|
311
|
+
suggestions: 0,
|
|
312
|
+
fields: 0
|
|
313
|
+
};
|
|
314
|
+
const droppedValues = [];
|
|
310
315
|
const suggestions = input.suggestions.map((suggestion, index) => {
|
|
311
316
|
const path = `/suggestions/${index}`;
|
|
312
317
|
const entry = offered.find(({ handler }) => handler.id === suggestion.handlerId && handler.version === suggestion.handlerVersion);
|
|
313
318
|
if (!entry || suggestion.alternatives.some((key) => !offeredKeys.has(key))) throw new ProposalValidationError("Unoffered handler", path);
|
|
314
319
|
const schema = ajv.compile(entry.handler.argsSchema);
|
|
315
|
-
|
|
320
|
+
let missing = schema(suggestion.args) ? [] : missingRequiredFields(schema.errors, entry.handler.argsSchema, suggestion.args);
|
|
316
321
|
if (!missing) throw new ProposalValidationError("Invalid handler arguments", `${path}/args ${describeSchemaErrors(schema.errors, entry.handler.argsSchema, suggestion.args)}`);
|
|
322
|
+
const declaredProperties = entry.handler.argsSchema.properties;
|
|
323
|
+
const dropped2 = [];
|
|
324
|
+
for (const [field, reference] of Object.entries(entry.handler.references)) {
|
|
325
|
+
if (!Object.hasOwn(suggestion.args, field)) continue;
|
|
326
|
+
const value = suggestion.args[field];
|
|
327
|
+
if (reference.kind === "candidate") {
|
|
328
|
+
if (!entry.candidates.some((candidate) => candidate.model === reference.model && candidate.id === value)) {
|
|
329
|
+
if (typeof value !== "string" || !declaredProperties || typeof declaredProperties !== "object" || !Object.hasOwn(declaredProperties, field)) throw new ProposalValidationError("Unoffered target", `${path}/args/${field}`);
|
|
330
|
+
dropped2.push(field);
|
|
331
|
+
}
|
|
332
|
+
} else if (!extraction.some((result) => result.evidence.id === value)) throw new ProposalValidationError("Unknown evidence", `${path}/args/${field}`);
|
|
333
|
+
}
|
|
334
|
+
let args = suggestion.args;
|
|
335
|
+
if (dropped2.length) {
|
|
336
|
+
args = Object.fromEntries(Object.entries(suggestion.args).filter(([field]) => !dropped2.includes(field)));
|
|
337
|
+
missing = schema(args) ? [] : missingRequiredFields(schema.errors, entry.handler.argsSchema, args);
|
|
338
|
+
if (!missing) throw new ProposalValidationError("Unoffered target", `${path}/args/${dropped2[0]}`);
|
|
339
|
+
for (const field of dropped2) droppedValues.push({
|
|
340
|
+
value: suggestion.args[field],
|
|
341
|
+
path: `${path}/args/${field}`
|
|
342
|
+
});
|
|
343
|
+
unoffered.suggestions += 1;
|
|
344
|
+
unoffered.fields += dropped2.length;
|
|
345
|
+
}
|
|
317
346
|
const declared = suggestion.missingFields;
|
|
318
347
|
const added = missing.filter((field) => !declared.includes(field));
|
|
319
348
|
const removed = declared.filter((field) => !missing.includes(field));
|
|
@@ -324,18 +353,12 @@ function validateSuggestions(raw, offered, extraction, limits, revision) {
|
|
|
324
353
|
correction.added += added.length;
|
|
325
354
|
correction.removed += removed.length;
|
|
326
355
|
}
|
|
327
|
-
for (const [field, reference] of Object.entries(entry.handler.references)) {
|
|
328
|
-
if (!Object.hasOwn(suggestion.args, field)) continue;
|
|
329
|
-
const value = suggestion.args[field];
|
|
330
|
-
if (reference.kind === "candidate") {
|
|
331
|
-
if (!entry.candidates.some((candidate) => candidate.model === reference.model && candidate.id === value)) throw new ProposalValidationError("Unoffered target", `${path}/args/${field}`);
|
|
332
|
-
} else if (!extraction.some((result) => result.evidence.id === value)) throw new ProposalValidationError("Unknown evidence", `${path}/args/${field}`);
|
|
333
|
-
}
|
|
334
356
|
for (const [position, reference] of suggestion.evidence.entries()) assertEvidenceReference(reference, extraction, `${path}/evidence/${position}`);
|
|
335
357
|
return {
|
|
336
358
|
...structuredClone(suggestion),
|
|
359
|
+
args: structuredClone(args),
|
|
337
360
|
missingFields,
|
|
338
|
-
disposition: corrected || missingFields.length || input.outcome !== "proposals" ? "needs_review" : "ready_for_review"
|
|
361
|
+
disposition: corrected || dropped2.length || missingFields.length || input.outcome !== "proposals" ? "needs_review" : "ready_for_review"
|
|
339
362
|
};
|
|
340
363
|
});
|
|
341
364
|
const seen = /* @__PURE__ */ new Set();
|
|
@@ -358,6 +381,14 @@ function validateSuggestions(raw, offered, extraction, limits, revision) {
|
|
|
358
381
|
digest: result.digest
|
|
359
382
|
}];
|
|
360
383
|
});
|
|
384
|
+
if (droppedValues.length) {
|
|
385
|
+
const kept = JSON.stringify({
|
|
386
|
+
suggestions,
|
|
387
|
+
splits
|
|
388
|
+
});
|
|
389
|
+
const echoed = droppedValues.find(({ value }) => kept.includes(JSON.stringify(value).slice(1, -1)));
|
|
390
|
+
if (echoed) throw new ProposalValidationError("Unoffered target", echoed.path);
|
|
391
|
+
}
|
|
361
392
|
return {
|
|
362
393
|
outcome: input.outcome,
|
|
363
394
|
suggestions,
|
|
@@ -366,12 +397,98 @@ function validateSuggestions(raw, offered, extraction, limits, revision) {
|
|
|
366
397
|
...dropped ? { splitsDropped: {
|
|
367
398
|
count: dropped,
|
|
368
399
|
checks: ["split_groups"]
|
|
369
|
-
} } : {}
|
|
400
|
+
} } : {},
|
|
401
|
+
...unoffered.suggestions ? { unofferedTargetsDropped: unoffered } : {}
|
|
370
402
|
};
|
|
371
403
|
}
|
|
372
404
|
function assertEvidenceReference(reference, extraction, path) {
|
|
373
405
|
if (!extraction.find((entry) => entry.evidence.id === reference.evidenceId)?.segments.some((segment) => intakeBindingDigest(segment.location) === intakeBindingDigest(reference.location))) throw new ProposalValidationError("Unknown evidence location", path);
|
|
374
406
|
}
|
|
407
|
+
var FINISH_REASONS = /* @__PURE__ */ new Set([
|
|
408
|
+
"stop",
|
|
409
|
+
"length",
|
|
410
|
+
"tool_calls",
|
|
411
|
+
"content_filter"
|
|
412
|
+
]);
|
|
413
|
+
var RESPONSE_PROBLEMS = {
|
|
414
|
+
finish_reason: "provider response incomplete",
|
|
415
|
+
truncated: "provider response incomplete (truncated)",
|
|
416
|
+
tool_calls: "provider response contained tool calls",
|
|
417
|
+
unexpected_model: "provider response came from an unexpected model",
|
|
418
|
+
no_text_content: "provider response had no text content",
|
|
419
|
+
empty_content: "provider response was empty",
|
|
420
|
+
output_limit: "provider response exceeded the output limit",
|
|
421
|
+
invalid_json: "provider response was not valid JSON"
|
|
422
|
+
};
|
|
423
|
+
var ProposalResponseError = class extends Error {
|
|
424
|
+
constructor(problem, message, finishReason) {
|
|
425
|
+
super(message);
|
|
426
|
+
this.problem = problem;
|
|
427
|
+
if (problem === "finish_reason") this.finishReason = typeof finishReason === "string" && FINISH_REASONS.has(finishReason) ? finishReason : "other";
|
|
428
|
+
}
|
|
429
|
+
problem;
|
|
430
|
+
name = "ProposalResponseError";
|
|
431
|
+
finishReason;
|
|
432
|
+
};
|
|
433
|
+
var rawOutputs = /* @__PURE__ */ new WeakMap();
|
|
434
|
+
function attachRawProviderOutput(error, text) {
|
|
435
|
+
if (typeof text === "string") rawOutputs.set(error, text);
|
|
436
|
+
return error;
|
|
437
|
+
}
|
|
438
|
+
function rawProviderOutput(error) {
|
|
439
|
+
return error && typeof error === "object" ? rawOutputs.get(error) : void 0;
|
|
440
|
+
}
|
|
441
|
+
var NETWORK_CODES = /* @__PURE__ */ new Set([
|
|
442
|
+
"ECONNABORTED",
|
|
443
|
+
"ECONNREFUSED",
|
|
444
|
+
"ECONNRESET",
|
|
445
|
+
"EAI_AGAIN",
|
|
446
|
+
"EHOSTDOWN",
|
|
447
|
+
"EHOSTUNREACH",
|
|
448
|
+
"ENETDOWN",
|
|
449
|
+
"ENETRESET",
|
|
450
|
+
"ENETUNREACH",
|
|
451
|
+
"ENOTFOUND",
|
|
452
|
+
"EPIPE",
|
|
453
|
+
"EPROTO",
|
|
454
|
+
"ETIMEDOUT",
|
|
455
|
+
"ERR_SSL_WRONG_VERSION_NUMBER",
|
|
456
|
+
"ERR_STREAM_PREMATURE_CLOSE",
|
|
457
|
+
"ERR_TLS_CERT_ALTNAME_INVALID",
|
|
458
|
+
"CERT_HAS_EXPIRED",
|
|
459
|
+
"DEPTH_ZERO_SELF_SIGNED_CERT",
|
|
460
|
+
"SELF_SIGNED_CERT_IN_CHAIN",
|
|
461
|
+
"UNABLE_TO_VERIFY_LEAF_SIGNATURE",
|
|
462
|
+
"UND_ERR_ABORTED",
|
|
463
|
+
"UND_ERR_BODY_TIMEOUT",
|
|
464
|
+
"UND_ERR_CLOSED",
|
|
465
|
+
"UND_ERR_CONNECT_TIMEOUT",
|
|
466
|
+
"UND_ERR_DESTROYED",
|
|
467
|
+
"UND_ERR_HEADERS_OVERFLOW",
|
|
468
|
+
"UND_ERR_HEADERS_TIMEOUT",
|
|
469
|
+
"UND_ERR_INFO",
|
|
470
|
+
"UND_ERR_INVALID_ARG",
|
|
471
|
+
"UND_ERR_INVALID_RETURN_VALUE",
|
|
472
|
+
"UND_ERR_NOT_SUPPORTED",
|
|
473
|
+
"UND_ERR_REQ_CONTENT_LENGTH_MISMATCH",
|
|
474
|
+
"UND_ERR_RES_CONTENT_LENGTH_MISMATCH",
|
|
475
|
+
"UND_ERR_RES_EXCEEDED_MAX_SIZE",
|
|
476
|
+
"UND_ERR_RESPONSE_STATUS_CODE",
|
|
477
|
+
"UND_ERR_SOCKET"
|
|
478
|
+
]);
|
|
479
|
+
var NETWORK_TIMEOUT_CODES = /* @__PURE__ */ new Set([
|
|
480
|
+
"ETIMEDOUT",
|
|
481
|
+
"UND_ERR_BODY_TIMEOUT",
|
|
482
|
+
"UND_ERR_CONNECT_TIMEOUT",
|
|
483
|
+
"UND_ERR_HEADERS_TIMEOUT"
|
|
484
|
+
]);
|
|
485
|
+
var ABORT_NAMES = /* @__PURE__ */ new Set(["AbortError", "TimeoutError"]);
|
|
486
|
+
var SDK_TRANSPORT_MESSAGES = {
|
|
487
|
+
"Connection error.": "connection error",
|
|
488
|
+
"Request timed out.": "timeout",
|
|
489
|
+
"Request was aborted.": "aborted",
|
|
490
|
+
"(no status code or body)": "no status or body"
|
|
491
|
+
};
|
|
375
492
|
var SCHEMA_KEYWORDS = /* @__PURE__ */ new Set([
|
|
376
493
|
"$anchor",
|
|
377
494
|
"$comment",
|
|
@@ -482,16 +599,65 @@ function rejectedKeywords(message) {
|
|
|
482
599
|
for (const [, token] of message.matchAll(/["'`]([$A-Za-z]{2,40})["'`]/g)) if (SCHEMA_KEYWORDS.has(token)) found.add(token);
|
|
483
600
|
return [...found].sort();
|
|
484
601
|
}
|
|
602
|
+
function className(error) {
|
|
603
|
+
if (!error || typeof error !== "object") return void 0;
|
|
604
|
+
const ctor = Object.getPrototypeOf(error)?.constructor;
|
|
605
|
+
const name = typeof ctor === "function" && Object.getOwnPropertyDescriptor(ctor, "name")?.value;
|
|
606
|
+
return typeof name === "string" && /^[A-Z][A-Za-z0-9]{0,63}$/.test(name) && /(?:Error|Exception)$/.test(name) ? name : void 0;
|
|
607
|
+
}
|
|
608
|
+
function networkCode(error) {
|
|
609
|
+
let current = error;
|
|
610
|
+
for (let depth = 0; depth < 4 && current; depth++) {
|
|
611
|
+
const code = field$1(current, "code");
|
|
612
|
+
if (typeof code === "string" && NETWORK_CODES.has(code)) return code;
|
|
613
|
+
const errors = field$1(current, "errors");
|
|
614
|
+
if (Array.isArray(errors)) for (const entry of errors.slice(0, 4)) {
|
|
615
|
+
const nested = field$1(entry, "code");
|
|
616
|
+
if (typeof nested === "string" && NETWORK_CODES.has(nested)) return nested;
|
|
617
|
+
}
|
|
618
|
+
current = field$1(current, "cause");
|
|
619
|
+
}
|
|
620
|
+
}
|
|
621
|
+
function abortName(error) {
|
|
622
|
+
let current = error;
|
|
623
|
+
for (let depth = 0; depth < 4 && current; depth++) {
|
|
624
|
+
const name = field$1(current, "name");
|
|
625
|
+
if (typeof name === "string" && ABORT_NAMES.has(name)) return name;
|
|
626
|
+
current = field$1(current, "cause");
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
function responseReason(error) {
|
|
630
|
+
const phrase = RESPONSE_PROBLEMS[error.problem];
|
|
631
|
+
return error.problem === "finish_reason" ? `${phrase} (finish reason ${error.finishReason ?? "other"})` : phrase;
|
|
632
|
+
}
|
|
485
633
|
function providerFailureReason(error) {
|
|
486
|
-
|
|
634
|
+
if (error instanceof ProposalResponseError && Object.hasOwn(RESPONSE_PROBLEMS, error.problem)) return responseReason(error);
|
|
487
635
|
const sdk = error instanceof AIError && typeof error.code === "string" && SDK_ERROR_CODES.has(error.code) ? error : void 0;
|
|
488
|
-
if (name === "AbortError" || name === "TimeoutError" || sdk && SDK_ABORT_CODES.has(sdk.code)) return "provider call aborted or timed out";
|
|
489
636
|
const message = sdk && typeof sdk.message === "string" ? sdk.message : "";
|
|
637
|
+
const transport = sdk && Object.hasOwn(SDK_TRANSPORT_MESSAGES, message) ? SDK_TRANSPORT_MESSAGES[message] : void 0;
|
|
638
|
+
const foreign = !sdk;
|
|
639
|
+
const cls = foreign ? className(error) : void 0;
|
|
640
|
+
const network = networkCode(error);
|
|
641
|
+
const aborted = foreign ? abortName(error) : void 0;
|
|
642
|
+
const facts = [
|
|
643
|
+
...cls ? [`class ${cls}`] : [],
|
|
644
|
+
...aborted ? [`name ${aborted}`] : [],
|
|
645
|
+
...network ? [`network ${network}`] : [],
|
|
646
|
+
...transport ? [`transport ${transport}`] : []
|
|
647
|
+
];
|
|
490
648
|
const status = structuredStatus(error) ?? structuredStatus(field$1(error, "cause")) ?? (sdk ? sdkMessageStatus(sdk.code, message) : void 0);
|
|
649
|
+
if (sdk && SDK_ABORT_CODES.has(sdk.code) || transport === "timeout" || transport === "aborted" || status === void 0 && (aborted !== void 0 || network !== void 0 && NETWORK_TIMEOUT_CODES.has(network))) {
|
|
650
|
+
const details2 = [...sdk ? [`code ${sdk.code}`] : [], ...facts];
|
|
651
|
+
return `provider call aborted or timed out${details2.length ? ` (${details2.join(", ")})` : ""}`.slice(0, 500);
|
|
652
|
+
}
|
|
491
653
|
const code = sdk?.code;
|
|
492
654
|
const keywords = sdk ? rejectedKeywords(message) : [];
|
|
493
655
|
const category = keywords.length ? "rejected the response schema" : status !== void 0 && status >= 400 && status < 500 ? "rejected the request" : status !== void 0 && status >= 500 ? "returned a server error" : "call failed";
|
|
494
|
-
const details = [
|
|
656
|
+
const details = [
|
|
657
|
+
...status !== void 0 ? [`HTTP ${status}`] : [],
|
|
658
|
+
...code ? [`code ${code}`] : [],
|
|
659
|
+
...facts
|
|
660
|
+
];
|
|
495
661
|
let reason = `provider ${category}${details.length ? ` (${details.join(", ")})` : ""}`;
|
|
496
662
|
if (keywords.length) reason += `; unsupported response-schema keywords: ${keywords.join(", ")}`;
|
|
497
663
|
return reason.slice(0, 500);
|
|
@@ -831,10 +997,23 @@ function createSDKProposalGenerator(client, configuredIdentity, limits) {
|
|
|
831
997
|
responseSchema,
|
|
832
998
|
continueOnLength: false
|
|
833
999
|
});
|
|
834
|
-
|
|
835
|
-
|
|
1000
|
+
const refusal = (problem, message, finishReason) => attachRawProviderOutput(new ProposalResponseError(problem, message, finishReason), response.content);
|
|
1001
|
+
const incomplete = "Incomplete or unexpected proposal response";
|
|
1002
|
+
if (response.finishReason !== "stop") throw refusal("finish_reason", incomplete, response.finishReason);
|
|
1003
|
+
if (response.truncated) throw refusal("truncated", incomplete);
|
|
1004
|
+
if (response.toolCalls?.length) throw refusal("tool_calls", incomplete);
|
|
1005
|
+
if (!acceptsResponseModel(identity, response.model)) throw refusal("unexpected_model", incomplete);
|
|
1006
|
+
if (typeof response.content !== "string") throw refusal("no_text_content", "Proposal output limit");
|
|
1007
|
+
if (Buffer.byteLength(response.content) > options.maxOutputBytes) throw refusal("output_limit", "Proposal output limit");
|
|
1008
|
+
if (!response.content.trim()) throw refusal("empty_content", "Proposal response was empty");
|
|
1009
|
+
let output;
|
|
1010
|
+
try {
|
|
1011
|
+
output = JSON.parse(response.content);
|
|
1012
|
+
} catch {
|
|
1013
|
+
throw refusal("invalid_json", "Proposal response was not valid JSON");
|
|
1014
|
+
}
|
|
836
1015
|
return {
|
|
837
|
-
output
|
|
1016
|
+
output,
|
|
838
1017
|
completion: "unknown",
|
|
839
1018
|
usage: safeUsage(response.usage),
|
|
840
1019
|
...response.model && response.model !== identity.model ? { responseModel: response.model } : {}
|
|
@@ -915,6 +1094,15 @@ var IngestionProposalService = class {
|
|
|
915
1094
|
text(this.config.version);
|
|
916
1095
|
text(this.config.promptVersion);
|
|
917
1096
|
assertProposalLimits(this.config.limits);
|
|
1097
|
+
if ("failureCapture" in config) assertFailureCapture(config.failureCapture);
|
|
1098
|
+
if ("failureCapture" in config && config.failureCapture) {
|
|
1099
|
+
const capture = config.failureCapture;
|
|
1100
|
+
this.failureCapture = Object.freeze({
|
|
1101
|
+
enabled: capture.enabled,
|
|
1102
|
+
...capture.maxBytes === void 0 ? {} : { maxBytes: capture.maxBytes },
|
|
1103
|
+
...capture.redact ? { redact: capture.redact.bind(capture) } : {}
|
|
1104
|
+
});
|
|
1105
|
+
}
|
|
918
1106
|
if ("identity" in config.generator) this.generator = {
|
|
919
1107
|
identity: this.identity,
|
|
920
1108
|
generate: config.generator.generate.bind(config.generator)
|
|
@@ -944,6 +1132,7 @@ var IngestionProposalService = class {
|
|
|
944
1132
|
};
|
|
945
1133
|
}
|
|
946
1134
|
config;
|
|
1135
|
+
failureCapture;
|
|
947
1136
|
generation() {
|
|
948
1137
|
if (!this.generator) throw new Error("Intake proposal generation is not configured");
|
|
949
1138
|
return this.generator;
|
|
@@ -1206,6 +1395,8 @@ var IngestionProposalService = class {
|
|
|
1206
1395
|
automaticActionEligible: false
|
|
1207
1396
|
};
|
|
1208
1397
|
let failure;
|
|
1398
|
+
let captureCandidate;
|
|
1399
|
+
let capture;
|
|
1209
1400
|
const publication = () => ({
|
|
1210
1401
|
status: failure ? "partial" : "completed",
|
|
1211
1402
|
provider: "smrt-ingestion-proposals",
|
|
@@ -1313,25 +1504,37 @@ var IngestionProposalService = class {
|
|
|
1313
1504
|
maxOutputBytes: maxBytes
|
|
1314
1505
|
});
|
|
1315
1506
|
} catch (error) {
|
|
1507
|
+
const raw = rawProviderOutput(error);
|
|
1508
|
+
if (raw !== void 0) captureCandidate = {
|
|
1509
|
+
source: "raw_response",
|
|
1510
|
+
text: () => raw
|
|
1511
|
+
};
|
|
1316
1512
|
throw new StageFailure("unavailable", providerFailureReason(error));
|
|
1317
1513
|
}
|
|
1318
1514
|
});
|
|
1319
1515
|
await this.live(lease, expected.catalogDigest, output.offered, output.provenance.feedback);
|
|
1516
|
+
captureCandidate = {
|
|
1517
|
+
source: "generated_output",
|
|
1518
|
+
text: () => JSON.stringify(generated.output)
|
|
1519
|
+
};
|
|
1320
1520
|
if (!["complete", "unknown"].includes(generated.completion)) throw new StageFailure("malformed_output", "Generator declared no validated completion");
|
|
1321
1521
|
if (generated.completion === "unknown") output.warnings.push("generation_completion_unknown");
|
|
1322
1522
|
if (bytes(generated.output) > maxBytes) throw new StageFailure("limit");
|
|
1323
1523
|
const deduped = dedupeGeneratedLists(generated.output);
|
|
1324
|
-
const { missingFieldsCorrection, splitsDropped, ...validated } = validateSuggestions(deduped.output, output.offered, extraction, this.config.limits, generation.revision);
|
|
1524
|
+
const { missingFieldsCorrection, splitsDropped, unofferedTargetsDropped, ...validated } = validateSuggestions(deduped.output, output.offered, extraction, this.config.limits, generation.revision);
|
|
1325
1525
|
Object.assign(output, validated);
|
|
1326
1526
|
if (missingFieldsCorrection) output.provenance.missingFieldsCorrection = missingFieldsCorrection;
|
|
1327
1527
|
if (deduped.removed) output.provenance.duplicatesRemoved = deduped.removed;
|
|
1328
1528
|
if (splitsDropped) output.provenance.splitsDropped = splitsDropped;
|
|
1529
|
+
if (unofferedTargetsDropped) output.provenance.unofferedTargetsDropped = unofferedTargetsDropped;
|
|
1530
|
+
captureCandidate = void 0;
|
|
1329
1531
|
if (humanCorrection) {
|
|
1330
1532
|
const correction = record(humanCorrection);
|
|
1331
1533
|
if (correction.kind !== "logical_split" || !output.splits.some((split) => split.evidenceId === correction.evidenceId && intakeBindingDigest(split.groups) === intakeBindingDigest(correction.groups))) {
|
|
1332
1534
|
output.outcome = "needs_review";
|
|
1333
1535
|
output.suggestions = [];
|
|
1334
1536
|
delete output.provenance.missingFieldsCorrection;
|
|
1537
|
+
delete output.provenance.unofferedTargetsDropped;
|
|
1335
1538
|
output.warnings.push("human_split_not_respected");
|
|
1336
1539
|
}
|
|
1337
1540
|
}
|
|
@@ -1346,7 +1549,14 @@ var IngestionProposalService = class {
|
|
|
1346
1549
|
}
|
|
1347
1550
|
}
|
|
1348
1551
|
} catch (error) {
|
|
1552
|
+
const candidate = captureCandidate;
|
|
1553
|
+
captureCandidate = void 0;
|
|
1349
1554
|
await this.live(lease, expected.catalogDigest);
|
|
1555
|
+
if (candidate && this.failureCapture?.enabled === true) capture = await prepareFailureCapture(this.failureCapture, candidate, {
|
|
1556
|
+
inputBytes: this.config.limits.maxOutputBytes,
|
|
1557
|
+
timeoutMs: this.failureCapture.redact ? Math.min(this.config.limits.timeoutMs, Math.floor(await this.service[analysisLeaseRemaining](lease).catch(() => 0) / 2)) : this.config.limits.timeoutMs,
|
|
1558
|
+
now: this.options.now?.() ?? /* @__PURE__ */ new Date()
|
|
1559
|
+
});
|
|
1350
1560
|
failure = error instanceof StageFailure ? error.category : "malformed_output";
|
|
1351
1561
|
const reason = error instanceof StageFailure || error instanceof ProposalValidationError ? error.reason : void 0;
|
|
1352
1562
|
if (reason) output.provenance.failure = {
|
|
@@ -1359,6 +1569,7 @@ var IngestionProposalService = class {
|
|
|
1359
1569
|
output.splits = [];
|
|
1360
1570
|
delete output.provenance.duplicatesRemoved;
|
|
1361
1571
|
delete output.provenance.splitsDropped;
|
|
1572
|
+
delete output.provenance.unofferedTargetsDropped;
|
|
1362
1573
|
output.warnings.push(failure);
|
|
1363
1574
|
}
|
|
1364
1575
|
if (bytes(publication()) > maxBytes) {
|
|
@@ -1372,11 +1583,13 @@ var IngestionProposalService = class {
|
|
|
1372
1583
|
delete output.provenance.missingFieldsCorrection;
|
|
1373
1584
|
delete output.provenance.duplicatesRemoved;
|
|
1374
1585
|
delete output.provenance.splitsDropped;
|
|
1586
|
+
delete output.provenance.unofferedTargetsDropped;
|
|
1375
1587
|
output.warnings.push("output_limit");
|
|
1376
1588
|
if (bytes(publication()) > maxBytes) return this.service.failAnalysis(lease, "limit");
|
|
1377
1589
|
}
|
|
1378
1590
|
await this.live(lease, expected.catalogDigest, output.offered, output.provenance.feedback);
|
|
1379
|
-
return this.service.completeAnalysis(lease, publication());
|
|
1591
|
+
if (!failure || !capture) return this.service.completeAnalysis(lease, publication());
|
|
1592
|
+
return this.service[completeWithFailureCapture](lease, publication(), capture);
|
|
1380
1593
|
}
|
|
1381
1594
|
async decide(lease, output, input) {
|
|
1382
1595
|
const configured = this.decision;
|
|
@@ -1682,6 +1895,6 @@ var IngestionProposalService = class {
|
|
|
1682
1895
|
}
|
|
1683
1896
|
};
|
|
1684
1897
|
//#endregion
|
|
1685
|
-
export { IngestionProposalService, createSDKProposalDecisionClient, createSDKProposalGenerator, proposalInstructions, proposalInstructionsFor, proposalReadConfiguration, reviewerGuidanceInstructions };
|
|
1898
|
+
export { FAILURE_CAPTURE_DEFAULT_MAX_BYTES, FAILURE_CAPTURE_MAX_BYTES, IngestionProposalService, createSDKProposalDecisionClient, createSDKProposalGenerator, proposalInstructions, proposalInstructionsFor, proposalReadConfiguration, reviewerGuidanceInstructions };
|
|
1686
1899
|
|
|
1687
1900
|
//# sourceMappingURL=proposals.js.map
|