@opendatalabs/personal-server-ts-core 1.13.1 → 1.15.0
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/dist/api/index.d.ts +8 -0
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +8 -1
- package/dist/api/index.js.map +1 -1
- package/dist/derivatives/answer-shape.d.ts +83 -0
- package/dist/derivatives/answer-shape.d.ts.map +1 -0
- package/dist/derivatives/answer-shape.js +320 -0
- package/dist/derivatives/answer-shape.js.map +1 -0
- package/dist/derivatives/api.d.ts +11 -2
- package/dist/derivatives/api.d.ts.map +1 -1
- package/dist/derivatives/api.js +114 -1
- package/dist/derivatives/api.js.map +1 -1
- package/dist/derivatives/compute.d.ts +6 -0
- package/dist/derivatives/compute.d.ts.map +1 -1
- package/dist/derivatives/compute.js +106 -10
- package/dist/derivatives/compute.js.map +1 -1
- package/dist/derivatives/index.d.ts +3 -2
- package/dist/derivatives/index.d.ts.map +1 -1
- package/dist/derivatives/index.js +2 -1
- package/dist/derivatives/index.js.map +1 -1
- package/dist/derivatives/prompt.d.ts +35 -0
- package/dist/derivatives/prompt.d.ts.map +1 -1
- package/dist/derivatives/prompt.js +96 -8
- package/dist/derivatives/prompt.js.map +1 -1
- package/dist/derivatives/registration.d.ts +2 -0
- package/dist/derivatives/registration.d.ts.map +1 -1
- package/dist/derivatives/registration.js +8 -0
- package/dist/derivatives/registration.js.map +1 -1
- package/dist/derivatives/scheduler.d.ts +28 -2
- package/dist/derivatives/scheduler.d.ts.map +1 -1
- package/dist/derivatives/scheduler.js +106 -9
- package/dist/derivatives/scheduler.js.map +1 -1
- package/dist/derivatives/store.d.ts.map +1 -1
- package/dist/derivatives/store.js +4 -0
- package/dist/derivatives/store.js.map +1 -1
- package/dist/derivatives/types.d.ts +20 -1
- package/dist/derivatives/types.d.ts.map +1 -1
- package/dist/derivatives/types.js +3 -0
- package/dist/derivatives/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -12,8 +12,9 @@ import { isBinaryEnvelope } from "../contracts/binary.js";
|
|
|
12
12
|
import { assertDerivedScopeNaming } from "../lineage/lineage.js";
|
|
13
13
|
import { computeDataPointId } from "../sync/data-point-id.js";
|
|
14
14
|
import { verifyDataWritePolicy, } from "../policy/data-write.js";
|
|
15
|
-
import { InferenceRequestError } from "./inference.js";
|
|
16
|
-
import {
|
|
15
|
+
import { InferenceRequestError, } from "./inference.js";
|
|
16
|
+
import { compileAnswerShape, renderShapedAnswer, validateAnswerShape, } from "./answer-shape.js";
|
|
17
|
+
import { buildQuestionMessages, buildShapeRetryMessages, parseAnswer, parseShapedAnswer, trimSourceData, } from "./prompt.js";
|
|
17
18
|
const DEFAULT_RETRY_DELAYS_MS = [1_000, 4_000];
|
|
18
19
|
/**
|
|
19
20
|
* Transient: no response, rate limited or a provider-side failure. An
|
|
@@ -47,11 +48,37 @@ async function withRetries(deps, attempt, retryable) {
|
|
|
47
48
|
}
|
|
48
49
|
/** A failure message safe to persist: never the prompt, never the data. */
|
|
49
50
|
class ComputeFailure extends Error {
|
|
50
|
-
|
|
51
|
+
code;
|
|
52
|
+
constructor(message, code) {
|
|
51
53
|
super(message);
|
|
52
54
|
this.name = "ComputeFailure";
|
|
55
|
+
this.code = code;
|
|
53
56
|
}
|
|
54
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* The machine-readable failure class stored next to the short reason. It is
|
|
60
|
+
* what the status route serves to readers of the derived scope, so it is a
|
|
61
|
+
* CLOSED vocabulary: never a scope name, never provider detail. It also
|
|
62
|
+
* drives the scheduler's automatic retry — `inference_unavailable` is the
|
|
63
|
+
* one transient class.
|
|
64
|
+
*/
|
|
65
|
+
function classifyComputeError(err) {
|
|
66
|
+
if (err instanceof ComputeFailure)
|
|
67
|
+
return err.code ?? "internal";
|
|
68
|
+
if (err instanceof InferenceRequestError) {
|
|
69
|
+
return isRetryableInferenceError(err)
|
|
70
|
+
? "inference_unavailable"
|
|
71
|
+
: "internal";
|
|
72
|
+
}
|
|
73
|
+
if (err instanceof ProtocolError) {
|
|
74
|
+
const grantShaped = err.errorCode === "DERIVATIVE_SOURCE_NOT_GRANTED" ||
|
|
75
|
+
err.errorCode === "SCOPE_MISMATCH" ||
|
|
76
|
+
err.errorCode === "UNREGISTERED_BUILDER" ||
|
|
77
|
+
err.errorCode.startsWith("GRANT_");
|
|
78
|
+
return grantShaped ? "grant_invalid" : "internal";
|
|
79
|
+
}
|
|
80
|
+
return "internal";
|
|
81
|
+
}
|
|
55
82
|
function shortError(err) {
|
|
56
83
|
if (err instanceof ComputeFailure)
|
|
57
84
|
return err.message;
|
|
@@ -63,6 +90,65 @@ function shortError(err) {
|
|
|
63
90
|
// keep the class name only.
|
|
64
91
|
return `compute failed (${err instanceof Error ? err.name : "Error"})`;
|
|
65
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* Ask the model, and for a question that declared an answer shape hold the
|
|
95
|
+
* reply to it. A reply that does not match gets ONE corrective turn (the
|
|
96
|
+
* model's own reply plus what was wrong with it); a second miss fails the
|
|
97
|
+
* compute rather than writing a derivative the builder cannot trust. The
|
|
98
|
+
* failure class is `internal`: the reader-facing vocabulary is closed and
|
|
99
|
+
* an unknown value would break clients parsing it as an enum.
|
|
100
|
+
*/
|
|
101
|
+
async function produceAnswer(deps, registration, model, messages) {
|
|
102
|
+
const ask = (turns) => withRetries(deps, () => deps.provider.chat({
|
|
103
|
+
model,
|
|
104
|
+
messages: turns,
|
|
105
|
+
maxTokens: deps.maxTokens,
|
|
106
|
+
}), isRetryableInferenceError);
|
|
107
|
+
const shape = registration.answerShape;
|
|
108
|
+
if (!shape) {
|
|
109
|
+
const reply = await ask(messages);
|
|
110
|
+
const parsed = parseAnswer(reply.content);
|
|
111
|
+
return {
|
|
112
|
+
reply,
|
|
113
|
+
answer: parsed.answer,
|
|
114
|
+
evidence: parsed.evidence,
|
|
115
|
+
answerData: null,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
const compiled = compileAnswerShape(shape);
|
|
119
|
+
let turns = messages;
|
|
120
|
+
for (let attempt = 0;; attempt += 1) {
|
|
121
|
+
const reply = await ask(turns);
|
|
122
|
+
const candidates = parseShapedAnswer(reply.content);
|
|
123
|
+
let issues = ["the reply was not a JSON object"];
|
|
124
|
+
for (const [index, candidate] of candidates.entries()) {
|
|
125
|
+
const checked = validateAnswerShape(shape, compiled, candidate.answer);
|
|
126
|
+
if (checked.ok) {
|
|
127
|
+
return {
|
|
128
|
+
reply,
|
|
129
|
+
answer: renderShapedAnswer(shape, checked.value),
|
|
130
|
+
evidence: candidate.evidence,
|
|
131
|
+
answerData: checked.value,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
// The first candidate is the best framing of the reply, so its
|
|
135
|
+
// issues are the ones worth handing back.
|
|
136
|
+
if (index === 0)
|
|
137
|
+
issues = checked.issues;
|
|
138
|
+
}
|
|
139
|
+
if (attempt >= 1)
|
|
140
|
+
break;
|
|
141
|
+
turns = buildShapeRetryMessages({
|
|
142
|
+
messages,
|
|
143
|
+
reply: reply.content,
|
|
144
|
+
issues,
|
|
145
|
+
answerShape: shape,
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
throw new ComputeFailure(`answer did not match the declared shape (fields: ${shape.fields
|
|
149
|
+
.map((field) => field.name)
|
|
150
|
+
.join(", ")})`, "internal");
|
|
151
|
+
}
|
|
66
152
|
/**
|
|
67
153
|
* Version stamp for the derived record, second precision like an HTTP
|
|
68
154
|
* ingest. A recompute inside the same second as the previous one would
|
|
@@ -162,10 +248,10 @@ async function loadSource(deps, scope) {
|
|
|
162
248
|
// (410 on the read path) whether or not a stale local copy remains.
|
|
163
249
|
const deletion = await resolveReadDeletion({ scopeDeletions: deps.scopeDeletions, serverOwner: deps.serverOwner }, scope, entry);
|
|
164
250
|
if (deletion) {
|
|
165
|
-
throw new ComputeFailure(`source scope ${scope} is deleted
|
|
251
|
+
throw new ComputeFailure(`source scope ${scope} is deleted`, "source_missing");
|
|
166
252
|
}
|
|
167
253
|
if (!entry) {
|
|
168
|
-
throw new ComputeFailure(`source scope ${scope} has no local data
|
|
254
|
+
throw new ComputeFailure(`source scope ${scope} has no local data`, "source_missing");
|
|
169
255
|
}
|
|
170
256
|
let envelope;
|
|
171
257
|
try {
|
|
@@ -267,17 +353,19 @@ export async function computeQuestion(questionId, deps) {
|
|
|
267
353
|
const messages = buildQuestionMessages({
|
|
268
354
|
question: registration.question,
|
|
269
355
|
sources,
|
|
356
|
+
answerShape: registration.answerShape,
|
|
270
357
|
});
|
|
271
358
|
const model = registration.model ?? deps.provider.defaultModel;
|
|
272
|
-
const
|
|
273
|
-
const
|
|
359
|
+
const produced = await produceAnswer(deps, registration, model, messages);
|
|
360
|
+
const reply = produced.reply;
|
|
274
361
|
const computedAt = now().toISOString();
|
|
275
362
|
const lineageIds = registration.sourceScopes.map((scope) => computeDataPointId(serverOwner, scope));
|
|
276
363
|
const record = {
|
|
277
364
|
questionId: registration.questionId,
|
|
278
365
|
question: registration.question,
|
|
279
|
-
answer:
|
|
280
|
-
|
|
366
|
+
answer: produced.answer,
|
|
367
|
+
...(produced.answerData ? { answerData: produced.answerData } : {}),
|
|
368
|
+
evidence: produced.evidence,
|
|
281
369
|
model,
|
|
282
370
|
computedAt,
|
|
283
371
|
sources: sources.map((source) => ({
|
|
@@ -323,6 +411,7 @@ export async function computeQuestion(questionId, deps) {
|
|
|
323
411
|
const updated = await deps.store.update(questionId, {
|
|
324
412
|
status: "ready",
|
|
325
413
|
error: null,
|
|
414
|
+
errorCode: null,
|
|
326
415
|
updatedAt: computedAt,
|
|
327
416
|
lastComputedAt: computedAt,
|
|
328
417
|
derivedVersion: entry?.version ?? null,
|
|
@@ -363,16 +452,23 @@ export async function computeQuestion(questionId, deps) {
|
|
|
363
452
|
}
|
|
364
453
|
catch (err) {
|
|
365
454
|
const error = shortError(err);
|
|
455
|
+
const errorCode = classifyComputeError(err);
|
|
366
456
|
const at = now().toISOString();
|
|
367
457
|
const updated = await deps.store.update(questionId, {
|
|
368
458
|
status: "failed",
|
|
369
459
|
error,
|
|
460
|
+
errorCode,
|
|
370
461
|
updatedAt: at,
|
|
371
462
|
});
|
|
372
463
|
deps.logger?.warn?.({ questionId, derivedScope: registration.derivedScope, error }, "Derivative question compute failed");
|
|
373
464
|
return {
|
|
374
465
|
status: "failed",
|
|
375
|
-
registration: updated ?? {
|
|
466
|
+
registration: updated ?? {
|
|
467
|
+
...registration,
|
|
468
|
+
status: "failed",
|
|
469
|
+
error,
|
|
470
|
+
errorCode,
|
|
471
|
+
},
|
|
376
472
|
error,
|
|
377
473
|
};
|
|
378
474
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compute.js","sourceRoot":"","sources":["../../src/derivatives/compute.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"compute.js","sourceRoot":"","sources":["../../src/derivatives/compute.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
export { questionRegistrationView, type QuestionRecompute, type QuestionRegisteredBy, type QuestionRegistration, type QuestionRegistrationPatch, type QuestionRegistrationView, type QuestionStatus, type QuestionStore, type QuestionStoreListFilter, } from "./types.js";
|
|
1
|
+
export { questionRegistrationView, type QuestionErrorCode, type QuestionRecompute, type QuestionRegisteredBy, type QuestionRegistration, type QuestionRegistrationPatch, type QuestionRegistrationView, type QuestionStatus, type QuestionStore, type QuestionStoreListFilter, } from "./types.js";
|
|
2
|
+
export { MAX_ANSWER_ENUM_VALUES, MAX_ANSWER_ENUM_VALUE_CHARS, MAX_ANSWER_FIELD_NAME_CHARS, MAX_ANSWER_SHAPE_FIELDS, MAX_ANSWER_STRING_CHARS, cloneAnswerShape, compileAnswerShape, describeAnswerShape, parseAnswerShapeInput, renderShapedAnswer, validateAnswerShape, type AnswerFieldType, type AnswerShape, type AnswerShapeField, type AnswerShapeValidation, type CompiledAnswerShape, } from "./answer-shape.js";
|
|
2
3
|
export { createInMemoryQuestionStore, matchesQuestionFilter, sortQuestions, } from "./store.js";
|
|
3
4
|
export { MAX_ECHOED_SCOPE_CHARS, MAX_MODEL_CHARS, MAX_QUESTION_CHARS, MAX_QUESTION_SOURCE_SCOPES, createQuestionRegistration, findDerivationCycle, parseQuestionInput, uncoveredSourceScopes, type CreateQuestionRegistrationInput, type ParsedQuestionInput, } from "./registration.js";
|
|
4
|
-
export { DEFAULT_MAX_SOURCE_CHARS, DEFAULT_MAX_SOURCE_ITEMS, SYSTEM_PROMPT, buildQuestionMessages, parseAnswer, sortNewestFirst, trimSourceData, type ParsedAnswer, type PromptSource, type TrimResult, } from "./prompt.js";
|
|
5
|
+
export { DEFAULT_MAX_SOURCE_CHARS, DEFAULT_MAX_SOURCE_ITEMS, SYSTEM_PROMPT, buildQuestionMessages, buildShapeRetryMessages, parseAnswer, parseShapedAnswer, shapedSystemPrompt, sortNewestFirst, trimSourceData, type ParsedAnswer, type ParsedShapedAnswer, type PromptSource, type TrimResult, } from "./prompt.js";
|
|
5
6
|
export { DEFAULT_INFERENCE_BASE_URL, DEFAULT_INFERENCE_MAX_TOKENS, DEFAULT_INFERENCE_MODEL, DEFAULT_INFERENCE_REQUEST_FIELDS, DEFAULT_INFERENCE_TIMEOUT_MS, InferenceRequestError, createFakeInferenceProvider, createOpenAiCompatibleInferenceProvider, type EncryptedInferenceRequest, type FakeInferenceProvider, type FakeInferenceProviderOptions, type InferenceChatInput, type InferenceChatResult, type InferenceMessage, type InferenceProvider, type InferenceRequestEncryption, type InferenceRole, type InferenceUsage, type OpenAiCompatibleInferenceOptions, } from "./inference.js";
|
|
6
7
|
export { computeQuestion, type ComputeLogger, type ComputeOutcome, type ComputeSyncNotifier, type DerivativeAnswerRecord, type QuestionComputeDeps, } from "./compute.js";
|
|
7
8
|
export { createRecomputeScheduler, type RecomputeScheduler, type RecomputeSchedulerOptions, type SchedulerTimers, } from "./scheduler.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/derivatives/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,uBAAuB,GAC7B,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,0BAA0B,EAC1B,0BAA0B,EAC1B,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,KAAK,+BAA+B,EACpC,KAAK,mBAAmB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,aAAa,EACb,qBAAqB,EACrB,WAAW,EACX,eAAe,EACf,cAAc,EACd,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,UAAU,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,uBAAuB,EACvB,gCAAgC,EAChC,4BAA4B,EAC5B,qBAAqB,EACrB,2BAA2B,EAC3B,uCAAuC,EACvC,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,EACjC,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,0BAA0B,EAC/B,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,gCAAgC,GACtC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,EACf,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,GACzB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,eAAe,GACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,uBAAuB,EACvB,sCAAsC,EACtC,KAAK,gCAAgC,GACtC,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,yBAAyB,EACzB,mBAAmB,EACnB,sBAAsB,EACtB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,GAChC,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/derivatives/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,uBAAuB,GAC7B,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,2BAA2B,EAC3B,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,0BAA0B,EAC1B,0BAA0B,EAC1B,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,KAAK,+BAA+B,EACpC,KAAK,mBAAmB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,aAAa,EACb,qBAAqB,EACrB,uBAAuB,EACvB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,UAAU,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,uBAAuB,EACvB,gCAAgC,EAChC,4BAA4B,EAC5B,qBAAqB,EACrB,2BAA2B,EAC3B,uCAAuC,EACvC,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,EACjC,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,0BAA0B,EAC/B,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,gCAAgC,GACtC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,EACf,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,GACzB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,eAAe,GACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,uBAAuB,EACvB,sCAAsC,EACtC,KAAK,gCAAgC,GACtC,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,yBAAyB,EACzB,mBAAmB,EACnB,sBAAsB,EACtB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,GAChC,MAAM,iBAAiB,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export { questionRegistrationView, } from "./types.js";
|
|
2
|
+
export { MAX_ANSWER_ENUM_VALUES, MAX_ANSWER_ENUM_VALUE_CHARS, MAX_ANSWER_FIELD_NAME_CHARS, MAX_ANSWER_SHAPE_FIELDS, MAX_ANSWER_STRING_CHARS, cloneAnswerShape, compileAnswerShape, describeAnswerShape, parseAnswerShapeInput, renderShapedAnswer, validateAnswerShape, } from "./answer-shape.js";
|
|
2
3
|
export { createInMemoryQuestionStore, matchesQuestionFilter, sortQuestions, } from "./store.js";
|
|
3
4
|
export { MAX_ECHOED_SCOPE_CHARS, MAX_MODEL_CHARS, MAX_QUESTION_CHARS, MAX_QUESTION_SOURCE_SCOPES, createQuestionRegistration, findDerivationCycle, parseQuestionInput, uncoveredSourceScopes, } from "./registration.js";
|
|
4
|
-
export { DEFAULT_MAX_SOURCE_CHARS, DEFAULT_MAX_SOURCE_ITEMS, SYSTEM_PROMPT, buildQuestionMessages, parseAnswer, sortNewestFirst, trimSourceData, } from "./prompt.js";
|
|
5
|
+
export { DEFAULT_MAX_SOURCE_CHARS, DEFAULT_MAX_SOURCE_ITEMS, SYSTEM_PROMPT, buildQuestionMessages, buildShapeRetryMessages, parseAnswer, parseShapedAnswer, shapedSystemPrompt, sortNewestFirst, trimSourceData, } from "./prompt.js";
|
|
5
6
|
export { DEFAULT_INFERENCE_BASE_URL, DEFAULT_INFERENCE_MAX_TOKENS, DEFAULT_INFERENCE_MODEL, DEFAULT_INFERENCE_REQUEST_FIELDS, DEFAULT_INFERENCE_TIMEOUT_MS, InferenceRequestError, createFakeInferenceProvider, createOpenAiCompatibleInferenceProvider, } from "./inference.js";
|
|
6
7
|
export { computeQuestion, } from "./compute.js";
|
|
7
8
|
export { createRecomputeScheduler, } from "./scheduler.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/derivatives/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/derivatives/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,GAUzB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,2BAA2B,EAC3B,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,GAMpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,0BAA0B,EAC1B,0BAA0B,EAC1B,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,GAGtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,aAAa,EACb,qBAAqB,EACrB,uBAAuB,EACvB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,cAAc,GAKf,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,uBAAuB,EACvB,gCAAgC,EAChC,4BAA4B,EAC5B,qBAAqB,EACrB,2BAA2B,EAC3B,uCAAuC,GAYxC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,GAMhB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,wBAAwB,GAIzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,uBAAuB,EACvB,sCAAsC,GAEvC,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,yBAAyB,EACzB,mBAAmB,EACnB,sBAAsB,GAOvB,MAAM,iBAAiB,CAAC"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* Nothing here leaves the Personal Server except through the inference
|
|
7
7
|
* provider call the compute step makes.
|
|
8
8
|
*/
|
|
9
|
+
import { type AnswerShape } from "./answer-shape.js";
|
|
9
10
|
import type { InferenceMessage } from "./inference.js";
|
|
10
11
|
export declare const DEFAULT_MAX_SOURCE_ITEMS = 50;
|
|
11
12
|
/** Upper bound on the serialized size of one source's trimmed data. */
|
|
@@ -46,10 +47,31 @@ export interface PromptSource {
|
|
|
46
47
|
truncated: boolean;
|
|
47
48
|
}
|
|
48
49
|
export declare const SYSTEM_PROMPT: string;
|
|
50
|
+
/**
|
|
51
|
+
* The system prompt for a question that declared an answer shape: the same
|
|
52
|
+
* grounding, but `answer` is the declared object rather than prose. The
|
|
53
|
+
* prompt is not the boundary (the reply is validated against the compiled
|
|
54
|
+
* shape afterwards); it is what makes the model produce a matching reply
|
|
55
|
+
* on the first try.
|
|
56
|
+
*/
|
|
57
|
+
export declare function shapedSystemPrompt(shape: AnswerShape): string;
|
|
49
58
|
/** Assemble the chat messages for one compute. */
|
|
50
59
|
export declare function buildQuestionMessages(input: {
|
|
51
60
|
question: string;
|
|
52
61
|
sources: readonly PromptSource[];
|
|
62
|
+
answerShape?: AnswerShape | null;
|
|
63
|
+
}): InferenceMessage[];
|
|
64
|
+
/**
|
|
65
|
+
* The corrective turn after a reply that did not match the declared shape:
|
|
66
|
+
* the model's own reply back as context, then what was wrong with it. The
|
|
67
|
+
* issue list comes from zod and states constraints only, so nothing of the
|
|
68
|
+
* user data is restated here that the model did not already send.
|
|
69
|
+
*/
|
|
70
|
+
export declare function buildShapeRetryMessages(input: {
|
|
71
|
+
messages: readonly InferenceMessage[];
|
|
72
|
+
reply: string;
|
|
73
|
+
issues: readonly string[];
|
|
74
|
+
answerShape: AnswerShape;
|
|
53
75
|
}): InferenceMessage[];
|
|
54
76
|
export interface ParsedAnswer {
|
|
55
77
|
answer: string;
|
|
@@ -61,4 +83,17 @@ export interface ParsedAnswer {
|
|
|
61
83
|
* no object can be parsed (the answer is still the model's, just unframed).
|
|
62
84
|
*/
|
|
63
85
|
export declare function parseAnswer(content: string): ParsedAnswer;
|
|
86
|
+
export interface ParsedShapedAnswer {
|
|
87
|
+
/** The object to check against the compiled shape; never validated here. */
|
|
88
|
+
answer: Record<string, unknown>;
|
|
89
|
+
evidence: string | null;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Read the model's reply for a question that declared a shape. Returns
|
|
93
|
+
* every object worth checking, best first: the `answer` member of the
|
|
94
|
+
* envelope, then the envelope itself for a model that put the declared
|
|
95
|
+
* fields at the top level. Empty when nothing parsed as an object at all,
|
|
96
|
+
* which is a shape failure like any other.
|
|
97
|
+
*/
|
|
98
|
+
export declare function parseShapedAnswer(content: string): ParsedShapedAnswer[];
|
|
64
99
|
//# sourceMappingURL=prompt.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/derivatives/prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,uEAAuE;AACvE,eAAO,MAAM,wBAAwB,SAAU,CAAC;AAyChD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,CAW3D;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,OAAO,EACb,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GACrD,UAAU,CAqDZ;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/derivatives/prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,uEAAuE;AACvE,eAAO,MAAM,wBAAwB,SAAU,CAAC;AAyChD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,CAW3D;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,OAAO,EACb,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GACrD,UAAU,CAqDZ;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;CACpB;AAOD,eAAO,MAAM,aAAa,QAKd,CAAC;AAEb;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAW7D;AAED,kDAAkD;AAClD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IACjC,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAClC,GAAG,gBAAgB,EAAE,CAiCrB;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,WAAW,EAAE,WAAW,CAAC;CAC1B,GAAG,gBAAgB,EAAE,CAgBrB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAmBD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAgBzD;AAED,MAAM,WAAW,kBAAkB;IACjC,4EAA4E;IAC5E,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAkBvE"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* Nothing here leaves the Personal Server except through the inference
|
|
7
7
|
* provider call the compute step makes.
|
|
8
8
|
*/
|
|
9
|
+
import { describeAnswerShape } from "./answer-shape.js";
|
|
9
10
|
export const DEFAULT_MAX_SOURCE_ITEMS = 50;
|
|
10
11
|
/** Upper bound on the serialized size of one source's trimmed data. */
|
|
11
12
|
export const DEFAULT_MAX_SOURCE_CHARS = 200_000;
|
|
@@ -125,13 +126,35 @@ export function trimSourceData(data, options = {}) {
|
|
|
125
126
|
}
|
|
126
127
|
return { data: result, kept, total, truncated: false };
|
|
127
128
|
}
|
|
128
|
-
|
|
129
|
+
const GROUNDING = [
|
|
129
130
|
"You answer a question about a person using ONLY the user data provided in the message.",
|
|
130
131
|
"Do not use outside knowledge and do not guess; if the data does not support an answer, say so in the answer.",
|
|
132
|
+
];
|
|
133
|
+
export const SYSTEM_PROMPT = [
|
|
134
|
+
...GROUNDING,
|
|
131
135
|
"Respond with a single JSON object and nothing else, with exactly these fields:",
|
|
132
136
|
' "answer": string, the answer to the question, written for the person the data belongs to;',
|
|
133
137
|
' "evidence": string, a short summary of which parts of the data support the answer.',
|
|
134
138
|
].join("\n");
|
|
139
|
+
/**
|
|
140
|
+
* The system prompt for a question that declared an answer shape: the same
|
|
141
|
+
* grounding, but `answer` is the declared object rather than prose. The
|
|
142
|
+
* prompt is not the boundary (the reply is validated against the compiled
|
|
143
|
+
* shape afterwards); it is what makes the model produce a matching reply
|
|
144
|
+
* on the first try.
|
|
145
|
+
*/
|
|
146
|
+
export function shapedSystemPrompt(shape) {
|
|
147
|
+
return [
|
|
148
|
+
...GROUNDING,
|
|
149
|
+
"Respond with a single JSON object and nothing else, with exactly these fields:",
|
|
150
|
+
' "answer": object, holding exactly the fields listed below and no others;',
|
|
151
|
+
' "evidence": string, a short summary of which parts of the data support the answer.',
|
|
152
|
+
'The "answer" object holds:',
|
|
153
|
+
...describeAnswerShape(shape),
|
|
154
|
+
"Use the declared type for every field: a number field is a JSON number, not a string.",
|
|
155
|
+
"Do not add fields, do not rename them and do not put prose outside them.",
|
|
156
|
+
].join("\n");
|
|
157
|
+
}
|
|
135
158
|
/** Assemble the chat messages for one compute. */
|
|
136
159
|
export function buildQuestionMessages(input) {
|
|
137
160
|
const sections = input.sources.map((source) => {
|
|
@@ -152,19 +175,49 @@ export function buildQuestionMessages(input) {
|
|
|
152
175
|
"## User data",
|
|
153
176
|
...sections,
|
|
154
177
|
"",
|
|
155
|
-
|
|
178
|
+
input.answerShape
|
|
179
|
+
? "Answer the question as a JSON object with the fields answer and evidence, where answer holds exactly the declared fields."
|
|
180
|
+
: "Answer the question as a JSON object with the fields answer and evidence.",
|
|
156
181
|
].join("\n");
|
|
157
182
|
return [
|
|
158
|
-
{
|
|
183
|
+
{
|
|
184
|
+
role: "system",
|
|
185
|
+
content: input.answerShape
|
|
186
|
+
? shapedSystemPrompt(input.answerShape)
|
|
187
|
+
: SYSTEM_PROMPT,
|
|
188
|
+
},
|
|
159
189
|
{ role: "user", content: user },
|
|
160
190
|
];
|
|
161
191
|
}
|
|
162
192
|
/**
|
|
163
|
-
*
|
|
164
|
-
*
|
|
165
|
-
*
|
|
193
|
+
* The corrective turn after a reply that did not match the declared shape:
|
|
194
|
+
* the model's own reply back as context, then what was wrong with it. The
|
|
195
|
+
* issue list comes from zod and states constraints only, so nothing of the
|
|
196
|
+
* user data is restated here that the model did not already send.
|
|
166
197
|
*/
|
|
167
|
-
export function
|
|
198
|
+
export function buildShapeRetryMessages(input) {
|
|
199
|
+
return [
|
|
200
|
+
...input.messages,
|
|
201
|
+
{ role: "assistant", content: input.reply },
|
|
202
|
+
{
|
|
203
|
+
role: "user",
|
|
204
|
+
content: [
|
|
205
|
+
"That reply did not match the required answer shape:",
|
|
206
|
+
...input.issues.map((issue) => `- ${issue}`),
|
|
207
|
+
"",
|
|
208
|
+
'Answer again as a single JSON object with the fields answer and evidence, where "answer" holds:',
|
|
209
|
+
...describeAnswerShape(input.answerShape),
|
|
210
|
+
"Return the JSON object and nothing else.",
|
|
211
|
+
].join("\n"),
|
|
212
|
+
},
|
|
213
|
+
];
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* The framings a model wraps its JSON in: a fenced code block, the bare
|
|
217
|
+
* text, and the span between the first `{` and the last `}`. Deduplicated,
|
|
218
|
+
* because a bare object is all three at once.
|
|
219
|
+
*/
|
|
220
|
+
function jsonFramings(content) {
|
|
168
221
|
const candidates = [content.trim()];
|
|
169
222
|
const fenced = /```(?:json)?\s*([\s\S]*?)```/i.exec(content);
|
|
170
223
|
if (fenced?.[1])
|
|
@@ -174,7 +227,15 @@ export function parseAnswer(content) {
|
|
|
174
227
|
if (first !== -1 && last > first) {
|
|
175
228
|
candidates.push(content.slice(first, last + 1));
|
|
176
229
|
}
|
|
177
|
-
|
|
230
|
+
return [...new Set(candidates)];
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Read the model's JSON answer. Tolerates a fenced code block or leading
|
|
234
|
+
* prose around the object; falls back to the whole text as the answer when
|
|
235
|
+
* no object can be parsed (the answer is still the model's, just unframed).
|
|
236
|
+
*/
|
|
237
|
+
export function parseAnswer(content) {
|
|
238
|
+
for (const candidate of jsonFramings(content)) {
|
|
178
239
|
try {
|
|
179
240
|
const parsed = JSON.parse(candidate);
|
|
180
241
|
if (isRecord(parsed) && typeof parsed.answer === "string") {
|
|
@@ -190,4 +251,31 @@ export function parseAnswer(content) {
|
|
|
190
251
|
}
|
|
191
252
|
return { answer: content.trim(), evidence: null };
|
|
192
253
|
}
|
|
254
|
+
/**
|
|
255
|
+
* Read the model's reply for a question that declared a shape. Returns
|
|
256
|
+
* every object worth checking, best first: the `answer` member of the
|
|
257
|
+
* envelope, then the envelope itself for a model that put the declared
|
|
258
|
+
* fields at the top level. Empty when nothing parsed as an object at all,
|
|
259
|
+
* which is a shape failure like any other.
|
|
260
|
+
*/
|
|
261
|
+
export function parseShapedAnswer(content) {
|
|
262
|
+
const found = [];
|
|
263
|
+
for (const candidate of jsonFramings(content)) {
|
|
264
|
+
let parsed;
|
|
265
|
+
try {
|
|
266
|
+
parsed = JSON.parse(candidate);
|
|
267
|
+
}
|
|
268
|
+
catch {
|
|
269
|
+
continue;
|
|
270
|
+
}
|
|
271
|
+
if (!isRecord(parsed))
|
|
272
|
+
continue;
|
|
273
|
+
const evidence = typeof parsed.evidence === "string" ? parsed.evidence : null;
|
|
274
|
+
if (isRecord(parsed.answer)) {
|
|
275
|
+
found.push({ answer: parsed.answer, evidence });
|
|
276
|
+
}
|
|
277
|
+
found.push({ answer: parsed, evidence });
|
|
278
|
+
}
|
|
279
|
+
return found;
|
|
280
|
+
}
|
|
193
281
|
//# sourceMappingURL=prompt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/derivatives/prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/derivatives/prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* lineage write path) and the cycle guard that keeps recompute-on-refresh
|
|
4
4
|
* bounded.
|
|
5
5
|
*/
|
|
6
|
+
import { type AnswerShape } from "./answer-shape.js";
|
|
6
7
|
import type { QuestionRecompute, QuestionRegisteredBy, QuestionRegistration, QuestionStore } from "./types.js";
|
|
7
8
|
export declare const MAX_QUESTION_SOURCE_SCOPES = 16;
|
|
8
9
|
export declare const MAX_QUESTION_CHARS = 8000;
|
|
@@ -14,6 +15,7 @@ export interface ParsedQuestionInput {
|
|
|
14
15
|
sourceScopes: string[];
|
|
15
16
|
question: string;
|
|
16
17
|
model: string | null;
|
|
18
|
+
answerShape: AnswerShape | null;
|
|
17
19
|
recompute: QuestionRecompute;
|
|
18
20
|
}
|
|
19
21
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registration.d.ts","sourceRoot":"","sources":["../../src/derivatives/registration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"registration.d.ts","sourceRoot":"","sources":["../../src/derivatives/registration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,EAAyB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE5E,OAAO,KAAK,EACV,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAC7C,eAAO,MAAM,kBAAkB,OAAQ,CAAC;AACxC,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC,uEAAuE;AACvE,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAK1C,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,SAAS,EAAE,iBAAiB,CAAC;CAC9B;AAyBD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,mBAAmB,CAqFrE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,IAAI,CAAC,oBAAoB,EAAE,cAAc,GAAG,cAAc,CAAC,EACtE,QAAQ,EAAE,SAAS,IAAI,CACrB,oBAAoB,EACpB,cAAc,GAAG,cAAc,CAChC,EAAE,GACF,MAAM,EAAE,GAAG,IAAI,CA+BjB;AAED,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,oBAAoB,CAAC;IACnC,KAAK,EAAE,aAAa,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,IAAI,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,+BAA+B,GACrC,OAAO,CAAC,oBAAoB,CAAC,CA8B/B;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GACzC,MAAM,EAAE,CAOV"}
|
|
@@ -7,6 +7,7 @@ import { DerivativeCycleError, DerivativeQuestionInvalidError, } from "../errors
|
|
|
7
7
|
import { parseDataScopeContract } from "../contracts/data.js";
|
|
8
8
|
import { assertDerivedScopeNaming } from "../lineage/lineage.js";
|
|
9
9
|
import { isWriteScopeEntry } from "../policy/data-write.js";
|
|
10
|
+
import { parseAnswerShapeInput } from "./answer-shape.js";
|
|
10
11
|
import { scopeCoveredByGrant } from "@opendatalabs/vana-sdk/browser";
|
|
11
12
|
export const MAX_QUESTION_SOURCE_SCOPES = 16;
|
|
12
13
|
export const MAX_QUESTION_CHARS = 8_000;
|
|
@@ -74,6 +75,10 @@ export function parseQuestionInput(body) {
|
|
|
74
75
|
}
|
|
75
76
|
model = body.model;
|
|
76
77
|
}
|
|
78
|
+
// Absent (or null) keeps the free-text answer: the model is asked for a
|
|
79
|
+
// prose answer and nothing about the reply is enforced beyond the token
|
|
80
|
+
// cap, exactly as before this field existed.
|
|
81
|
+
const answerShape = parseAnswerShapeInput(body.answerShape);
|
|
77
82
|
// Absent (or null, like model) keeps the original follow-every-change
|
|
78
83
|
// behavior, so existing builder clients register exactly as before.
|
|
79
84
|
let recompute = "on-change";
|
|
@@ -89,6 +94,7 @@ export function parseQuestionInput(body) {
|
|
|
89
94
|
sourceScopes,
|
|
90
95
|
question: body.question,
|
|
91
96
|
model,
|
|
97
|
+
answerShape,
|
|
92
98
|
recompute,
|
|
93
99
|
};
|
|
94
100
|
}
|
|
@@ -152,10 +158,12 @@ export async function createQuestionRegistration(input) {
|
|
|
152
158
|
sourceScopes: parsed.sourceScopes,
|
|
153
159
|
question: parsed.question,
|
|
154
160
|
model: parsed.model,
|
|
161
|
+
answerShape: parsed.answerShape,
|
|
155
162
|
recompute: parsed.recompute,
|
|
156
163
|
registeredBy: input.registeredBy,
|
|
157
164
|
status: "pending",
|
|
158
165
|
error: null,
|
|
166
|
+
errorCode: null,
|
|
159
167
|
createdAt: at,
|
|
160
168
|
updatedAt: at,
|
|
161
169
|
lastComputedAt: null,
|