@rubytech/create-realagent 1.0.832 → 1.0.834
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/index.js +131 -9
- package/package.json +1 -1
- package/payload/platform/lib/admins-write/dist/index.d.ts +87 -0
- package/payload/platform/lib/admins-write/dist/index.d.ts.map +1 -0
- package/payload/platform/lib/admins-write/dist/index.js +248 -0
- package/payload/platform/lib/admins-write/dist/index.js.map +1 -0
- package/payload/platform/lib/admins-write/src/index.ts +311 -0
- package/payload/platform/lib/admins-write/tsconfig.json +8 -0
- package/payload/platform/neo4j/migrations/009-conversation-archive-title.ts +197 -0
- package/payload/platform/neo4j/schema.cypher +1 -1
- package/payload/platform/package.json +2 -2
- package/payload/platform/plugins/admin/PLUGIN.md +1 -1
- package/payload/platform/plugins/admin/mcp/dist/index.js +37 -44
- package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/docs/references/internals.md +4 -3
- package/payload/platform/plugins/memory/bin/conversation-archive-ingest.mjs +215 -43
- package/payload/platform/plugins/memory/bin/conversation-archive-ingest.sh +7 -2
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/llm-classifier.test.js +75 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/llm-classifier.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.d.ts +16 -10
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.js +155 -100
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-ranker.d.ts +13 -5
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-ranker.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-ranker.js +53 -59
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-ranker.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest.test.js +9 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.d.ts +24 -7
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.js +47 -11
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.js.map +1 -1
- package/payload/platform/plugins/memory/skills/conversation-archive/SKILL.md +45 -8
- package/payload/platform/scripts/lib/resolve-account-dir.sh +3 -1
- package/payload/platform/scripts/migrate-import.sh +3 -1
- package/payload/platform/scripts/seed-neo4j.sh +13 -3
- package/payload/server/chunk-CRAIGEXY.js +654 -0
- package/payload/server/chunk-GK4WHM3H.js +9961 -0
- package/payload/server/chunk-I2NOLBQA.js +2123 -0
- package/payload/server/chunk-IVTESKFR.js +9961 -0
- package/payload/server/chunk-KD3XP4IK.js +1116 -0
- package/payload/server/chunk-KKGGT5RH.js +654 -0
- package/payload/server/chunk-MRJGG6CS.js +2124 -0
- package/payload/server/chunk-OJZPS4BL.js +367 -0
- package/payload/server/chunk-ZVW5XKPU.js +1116 -0
- package/payload/server/client-pool-FM3YJWV5.js +32 -0
- package/payload/server/client-pool-J5BCVVI2.js +32 -0
- package/payload/server/cloudflare-task-tracker-FSPEJOTH.js +19 -0
- package/payload/server/cloudflare-task-tracker-XCUO4N74.js +19 -0
- package/payload/server/maxy-edge.js +6 -5
- package/payload/server/neo4j-migrations-5AN2U3YO.js +664 -0
- package/payload/server/neo4j-migrations-XP7XDVPX.js +664 -0
- package/payload/server/public/assets/{Checkbox-CTGhpDKq.js → Checkbox-Bq6ORjz2.js} +1 -1
- package/payload/server/public/assets/admin-CstEkw-G.js +352 -0
- package/payload/server/public/assets/data-DwZZ7qbH.js +1 -0
- package/payload/server/public/assets/graph-DceEv42K.js +1 -0
- package/payload/server/public/assets/{jsx-runtime-D4WovFYk.css → jsx-runtime-DidQeNoZ.css} +1 -1
- package/payload/server/public/assets/page-Bpi_jPw6.js +50 -0
- package/payload/server/public/assets/{page-DkBfWy4C.js → page-CFWoVkgV.js} +1 -1
- package/payload/server/public/assets/{public-BdVIVpv8.js → public-BWMwq5Jj.js} +1 -1
- package/payload/server/public/assets/{useAdminFetch-DmHu0oCx.js → useAdminFetch-B93ig7ef.js} +1 -1
- package/payload/server/public/assets/{useVoiceRecorder-CSc_hxjV.js → useVoiceRecorder-Cb0nAtOo.js} +1 -1
- package/payload/server/public/data.html +5 -5
- package/payload/server/public/graph.html +6 -6
- package/payload/server/public/index.html +8 -8
- package/payload/server/public/public.html +5 -5
- package/payload/server/server.js +376 -167
- package/payload/platform/plugins/admin/mcp/dist/lib/review-tools.d.ts +0 -31
- package/payload/platform/plugins/admin/mcp/dist/lib/review-tools.d.ts.map +0 -1
- package/payload/platform/plugins/admin/mcp/dist/lib/review-tools.js +0 -666
- package/payload/platform/plugins/admin/mcp/dist/lib/review-tools.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/semantic-chunker.d.ts +0 -61
- package/payload/platform/plugins/memory/mcp/dist/lib/semantic-chunker.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/semantic-chunker.js +0 -266
- package/payload/platform/plugins/memory/mcp/dist/lib/semantic-chunker.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-insight-pass.d.ts +0 -27
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-insight-pass.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-insight-pass.js +0 -477
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-insight-pass.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-insight-write.d.ts +0 -27
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-insight-write.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-insight-write.js +0 -160
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-insight-write.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-parse.d.ts +0 -10
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-parse.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-parse.js +0 -29
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-parse.js.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-preview.d.ts +0 -28
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-preview.d.ts.map +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-preview.js +0 -34
- package/payload/platform/plugins/memory/mcp/dist/tools/whatsapp-export-preview.js.map +0 -1
- package/payload/server/public/assets/admin-BNwPsMhJ.js +0 -352
- package/payload/server/public/assets/data-Y77FLKjs.js +0 -1
- package/payload/server/public/assets/graph-N_Bw-8oT.js +0 -1
- package/payload/server/public/assets/page-BKLGP-th.js +0 -50
- /package/payload/server/public/assets/{jsx-runtime-DkaAusaX.js → jsx-runtime-DH5S-MwB.js} +0 -0
|
@@ -14,13 +14,16 @@
|
|
|
14
14
|
* the Anthropic API key. The API-key path is reserved for the public
|
|
15
15
|
* agent.
|
|
16
16
|
*
|
|
17
|
-
* Hallucination defence:
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
17
|
+
* Hallucination defence: section `kind` is enforced as a closed enum in
|
|
18
|
+
* `ClassifierOutputTool.input_schema`, so a hallucinated kind cannot reach
|
|
19
|
+
* this module — Anthropic rejects the tool_use input at the API boundary.
|
|
20
|
+
* For `related[].kind` and `documentEdges[].targetKind` (which the static
|
|
21
|
+
* schema cannot constrain because the live ontology label set is a runtime
|
|
22
|
+
* input), the post-validator drops any label not in `ontologyLabels`.
|
|
23
|
+
* Failure of the LLM call (missing creds, network, schema-violating
|
|
24
|
+
* `tool_use.input`) returns `{kind: "error", reason}`. The caller decides
|
|
25
|
+
* whether to abort the ingest or degrade-on-error per session; classifier
|
|
26
|
+
* never silently substitutes a degraded write.
|
|
24
27
|
*/
|
|
25
28
|
import { callOauthLlm } from "../../../../../lib/oauth-llm/dist/index.js";
|
|
26
29
|
import { HAIKU_MODEL } from "../../../../../lib/models/dist/index.js";
|
|
@@ -94,9 +97,10 @@ function projectOutputTokens(documentTextLength) {
|
|
|
94
97
|
}
|
|
95
98
|
/**
|
|
96
99
|
* Closed enumeration of section `kind` values. Each becomes a secondary
|
|
97
|
-
* label on the `:Section` node (e.g. `:Section:Position`).
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
+
* label on the `:Section` node (e.g. `:Section:Position`). The `kind` field
|
|
101
|
+
* is enforced as an `enum` in `ClassifierOutputTool.input_schema`, so a
|
|
102
|
+
* hallucinated kind cannot reach the post-validator — Anthropic rejects the
|
|
103
|
+
* tool_use input at the API boundary (Task 898).
|
|
100
104
|
*
|
|
101
105
|
* Source of truth: schema-base.md "Section kinds" table. Changes here MUST
|
|
102
106
|
* be mirrored there or the validator will reject the secondary label.
|
|
@@ -154,6 +158,109 @@ export const ALL_SECTION_KINDS = new Set([
|
|
|
154
158
|
...STANDALONE_NODE_KINDS,
|
|
155
159
|
SECTION_KIND_OTHER,
|
|
156
160
|
]);
|
|
161
|
+
// ---------------------------------------------------------------------------
|
|
162
|
+
// Task 898 — structured tool-use schema.
|
|
163
|
+
//
|
|
164
|
+
// Forces Haiku to emit its output as `tool_use.input` matching this JSON-Schema-
|
|
165
|
+
// draft-7 contract. Anthropic validates the payload at the API boundary, so:
|
|
166
|
+
// - hallucinated `kind` values are impossible (enum constraint);
|
|
167
|
+
// - markdown fences cannot wrap the response (no text block at all);
|
|
168
|
+
// - `max_tokens` truncation surfaces as a structurally-invalid `tool_use.input`
|
|
169
|
+
// (missing required fields on the trailing section), which the existing
|
|
170
|
+
// missing-offsets loud-fail at classifyDocument catches without ambiguity.
|
|
171
|
+
//
|
|
172
|
+
// Open-ended fields (`properties`, `targetProperties`, edge `properties`) use
|
|
173
|
+
// `additionalProperties: true` because per-section property keys are domain-
|
|
174
|
+
// specific (Position has jobTitle/startDate; Education has degree/fieldOfStudy;
|
|
175
|
+
// chat-mode chunks have firstMessageAt/messageCount). Ontology validation of
|
|
176
|
+
// `related[].kind` and `documentEdges[].targetKind` stays in the post-validator —
|
|
177
|
+
// the live ontology label set is a runtime input the static schema cannot encode.
|
|
178
|
+
// ---------------------------------------------------------------------------
|
|
179
|
+
const ALL_SECTION_KINDS_LIST = Array.from(ALL_SECTION_KINDS);
|
|
180
|
+
export const ClassifierOutputTool = {
|
|
181
|
+
name: "emit_classifier_output",
|
|
182
|
+
description: "Emit the classified document structure for a Neo4j knowledge graph: per-section typed chunks with anchor edges, optional related-entity edges, document-level edges, and orphan candidates.",
|
|
183
|
+
input_schema: {
|
|
184
|
+
type: "object",
|
|
185
|
+
required: ["documentSummary", "documentKeywords", "sections", "orphanCandidates"],
|
|
186
|
+
properties: {
|
|
187
|
+
documentSummary: { type: "string" },
|
|
188
|
+
documentKeywords: { type: "array", items: { type: "string" } },
|
|
189
|
+
sections: {
|
|
190
|
+
type: "array",
|
|
191
|
+
items: {
|
|
192
|
+
type: "object",
|
|
193
|
+
required: ["kind", "title", "summary", "sourceStart", "sourceEnd", "properties", "anchorEdge"],
|
|
194
|
+
properties: {
|
|
195
|
+
kind: { type: "string", enum: ALL_SECTION_KINDS_LIST },
|
|
196
|
+
title: { type: "string", maxLength: 200 },
|
|
197
|
+
summary: { type: "string", maxLength: SUMMARY_MAX_CHARS },
|
|
198
|
+
sourceStart: { type: "integer", minimum: 0 },
|
|
199
|
+
sourceEnd: { type: "integer", minimum: 0 },
|
|
200
|
+
properties: { type: "object", additionalProperties: true },
|
|
201
|
+
anchorEdge: {
|
|
202
|
+
type: ["object", "null"],
|
|
203
|
+
required: ["type", "direction"],
|
|
204
|
+
properties: {
|
|
205
|
+
type: { type: "string" },
|
|
206
|
+
direction: { type: "string", enum: ["from-anchor", "to-anchor"] },
|
|
207
|
+
properties: { type: "object", additionalProperties: true },
|
|
208
|
+
},
|
|
209
|
+
},
|
|
210
|
+
related: {
|
|
211
|
+
type: "array",
|
|
212
|
+
items: {
|
|
213
|
+
type: "object",
|
|
214
|
+
required: ["kind", "properties", "edge"],
|
|
215
|
+
properties: {
|
|
216
|
+
kind: { type: "string" },
|
|
217
|
+
properties: { type: "object", additionalProperties: true },
|
|
218
|
+
edge: {
|
|
219
|
+
type: "object",
|
|
220
|
+
required: ["type", "direction"],
|
|
221
|
+
properties: {
|
|
222
|
+
type: { type: "string" },
|
|
223
|
+
direction: { type: "string", enum: ["outgoing", "incoming"] },
|
|
224
|
+
properties: { type: "object", additionalProperties: true },
|
|
225
|
+
},
|
|
226
|
+
},
|
|
227
|
+
merge: { type: "boolean" },
|
|
228
|
+
},
|
|
229
|
+
},
|
|
230
|
+
},
|
|
231
|
+
classifierReason: { type: "string" },
|
|
232
|
+
},
|
|
233
|
+
},
|
|
234
|
+
},
|
|
235
|
+
documentEdges: {
|
|
236
|
+
type: "array",
|
|
237
|
+
items: {
|
|
238
|
+
type: "object",
|
|
239
|
+
required: ["type", "direction", "targetKind", "targetProperties"],
|
|
240
|
+
properties: {
|
|
241
|
+
type: { type: "string" },
|
|
242
|
+
direction: { type: "string", enum: ["outgoing", "incoming"] },
|
|
243
|
+
targetKind: { type: "string" },
|
|
244
|
+
targetProperties: { type: "object", additionalProperties: true },
|
|
245
|
+
merge: { type: "boolean" },
|
|
246
|
+
},
|
|
247
|
+
},
|
|
248
|
+
},
|
|
249
|
+
orphanCandidates: {
|
|
250
|
+
type: "array",
|
|
251
|
+
items: {
|
|
252
|
+
type: "object",
|
|
253
|
+
required: ["kind", "label", "reason"],
|
|
254
|
+
properties: {
|
|
255
|
+
kind: { type: "string" },
|
|
256
|
+
label: { type: "string" },
|
|
257
|
+
reason: { type: "string" },
|
|
258
|
+
},
|
|
259
|
+
},
|
|
260
|
+
},
|
|
261
|
+
},
|
|
262
|
+
},
|
|
263
|
+
};
|
|
157
264
|
// Task 894 — chat-mode system prompt. Used when ClassifyParams.mode === 'chat'.
|
|
158
265
|
// Input is the raw text body of a WhatsApp `_chat.txt` export (or any chat
|
|
159
266
|
// export that follows the bracketed-timestamp + sender + colon line shape);
|
|
@@ -209,7 +316,7 @@ const CHAT_SYSTEM_PROMPT = [
|
|
|
209
316
|
"- Even a one-message archive must produce one chunk — never return zero chunks for non-empty input.",
|
|
210
317
|
"- Offset coverage: chunks MUST cover every message in chronological order. Adjacent chunks should be contiguous (chunk N's sourceEnd equals chunk N+1's sourceStart) so no message is skipped. messageCount summed across chunks equals total archive messages.",
|
|
211
318
|
"",
|
|
212
|
-
"
|
|
319
|
+
"Call the `emit_classifier_output` tool with the structured result. Do not emit any text response.",
|
|
213
320
|
].join("\n");
|
|
214
321
|
const SYSTEM_PROMPT = [
|
|
215
322
|
"You are a document section classifier for a Neo4j knowledge graph. You map sections of an unstructured document onto a closed enumeration of section kinds, each of which becomes a secondary label on a `:Section` node.",
|
|
@@ -256,35 +363,11 @@ const SYSTEM_PROMPT = [
|
|
|
256
363
|
"- Never invent edge names. Use the natural-edge map exactly as given. The graph validator rejects writes with unknown edge types.",
|
|
257
364
|
"- Be conservative with 'related' entities — only include them when the section explicitly names them.",
|
|
258
365
|
"- Offsets cover the source: sourceStart and sourceEnd are integer character positions in the supplied document text. Do not re-emit body text — the server reconstructs it from your offsets.",
|
|
259
|
-
"-
|
|
366
|
+
"- Call the `emit_classifier_output` tool with the structured result. Do not emit any text response.",
|
|
260
367
|
].join("\n");
|
|
261
368
|
// ---------------------------------------------------------------------------
|
|
262
369
|
// Helpers
|
|
263
370
|
// ---------------------------------------------------------------------------
|
|
264
|
-
/**
|
|
265
|
-
* Strip a balanced markdown fence from a JSON response. Returns:
|
|
266
|
-
* { kind: "ok", json } when the text was bare JSON or fully fenced.
|
|
267
|
-
* { kind: "truncated", reason } when the text opens a fence but never closes
|
|
268
|
-
* it — a structural fingerprint of `max_tokens` mid-response (Task 897
|
|
269
|
-
* sub-scope G, replacing the pre-897 silent fall-through to JSON.parse
|
|
270
|
-
* which masked truncation as `malformed JSON`).
|
|
271
|
-
*/
|
|
272
|
-
function extractJson(raw) {
|
|
273
|
-
const trimmed = raw.trim();
|
|
274
|
-
const balanced = trimmed.match(/^```(?:json)?\s*([\s\S]*?)```$/);
|
|
275
|
-
if (balanced)
|
|
276
|
-
return { kind: "ok", json: balanced[1].trim() };
|
|
277
|
-
// One-sided fence — opens with ``` (optionally `json`) but no closing fence.
|
|
278
|
-
// This is the truncation fingerprint: the model started a fenced response
|
|
279
|
-
// and ran out of output tokens before closing it.
|
|
280
|
-
if (/^```(?:json)?/.test(trimmed) && !/```\s*$/.test(trimmed)) {
|
|
281
|
-
return {
|
|
282
|
-
kind: "truncated",
|
|
283
|
-
reason: "response-truncated: opening ``` fence with no closing — model likely hit max_tokens mid-response",
|
|
284
|
-
};
|
|
285
|
-
}
|
|
286
|
-
return { kind: "ok", json: trimmed };
|
|
287
|
-
}
|
|
288
371
|
function logError(accountId, reason) {
|
|
289
372
|
process.stderr.write(`[memory-classify] [${accountId}] ERROR reason="${reason}"\n`);
|
|
290
373
|
}
|
|
@@ -328,34 +411,32 @@ function asNonNegativeInt(v) {
|
|
|
328
411
|
export async function classifyDocument(params) {
|
|
329
412
|
const { accountId, anchorDescription, ontologyLabels, naturalEdgeMap, documentText } = params;
|
|
330
413
|
const mode = params.mode ?? "document";
|
|
331
|
-
// Task 896 clause 3 + Task 897 sub-scope F dispatch.
|
|
414
|
+
// Task 896 clause 3 + Task 897 sub-scope F + Task 902 sub-scope C dispatch.
|
|
332
415
|
//
|
|
333
|
-
//
|
|
416
|
+
// BOTH modes force the chunked path when EITHER:
|
|
334
417
|
// - the input exceeds CHUNK_CHAR_SIZE (input-size gate, defence-in-depth), OR
|
|
335
418
|
// - the projected output tokens exceed PROMPT_OUTPUT_TOKEN_BUDGET
|
|
336
419
|
// (output-size gate, the primary trigger post-Task-896 since the
|
|
337
420
|
// offsets-only schema means input size no longer predicts output size).
|
|
338
421
|
//
|
|
339
|
-
//
|
|
340
|
-
//
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
422
|
+
// Pre-902 chat mode loud-failed instead of dispatching chunked, which
|
|
423
|
+
// forced operators to re-issue with a smaller --session-gap-hours to
|
|
424
|
+
// chunk-via-sessionize — a path that combined with cleanup-by-archiveSha256
|
|
425
|
+
// to silently destroy 138 chunks (Adam Mackay incident, 2026-05-04).
|
|
426
|
+
// Removing the per-mode gate, plus removing --session-gap-hours (sub-scope
|
|
427
|
+
// D), means oversize chat sessions are absorbed by the chunker — no
|
|
428
|
+
// operator lever required.
|
|
429
|
+
const projected = projectOutputTokens(documentText.length);
|
|
430
|
+
if (documentText.length > CHUNK_CHAR_SIZE || projected > PROMPT_OUTPUT_TOKEN_BUDGET) {
|
|
431
|
+
process.stderr.write(`[memory-classify] [${accountId}] dispatch=chunked-${mode} chars=${documentText.length} projectedOutputTokens=${projected} budget=${PROMPT_OUTPUT_TOKEN_BUDGET}\n`);
|
|
432
|
+
return classifyDocumentChunked(params);
|
|
347
433
|
}
|
|
348
434
|
if (documentText.length > INPUT_CHAR_CEILING) {
|
|
435
|
+
// Should be unreachable post-902 since CHUNK_CHAR_SIZE < INPUT_CHAR_CEILING
|
|
436
|
+
// by construction, but kept as defence-in-depth in case constants drift
|
|
437
|
+
// between the chunker and the input ceiling.
|
|
349
438
|
const overage = `chars=${documentText.length}, ceiling=${INPUT_CHAR_CEILING}`;
|
|
350
|
-
|
|
351
|
-
logError(accountId, `input-too-large: chat session exceeds Haiku input ceiling (${overage}). Sessionize must split sessions before classify (Task 894).`);
|
|
352
|
-
}
|
|
353
|
-
else {
|
|
354
|
-
// Document mode > INPUT_CHAR_CEILING but ≤ CHUNK_CHAR_SIZE shouldn't
|
|
355
|
-
// happen since CHUNK_CHAR_SIZE < INPUT_CHAR_CEILING — kept as
|
|
356
|
-
// defence-in-depth in case constants drift.
|
|
357
|
-
logError(accountId, `input-too-large: document exceeds Haiku input ceiling without chunking (${overage}). Constants drift between CHUNK_CHAR_SIZE and INPUT_CHAR_CEILING.`);
|
|
358
|
-
}
|
|
439
|
+
logError(accountId, `input-too-large: ${mode} input exceeds Haiku ceiling without chunking (${overage}). Constants drift between CHUNK_CHAR_SIZE and INPUT_CHAR_CEILING.`);
|
|
359
440
|
return {
|
|
360
441
|
kind: "error",
|
|
361
442
|
reason: `Input is ${documentText.length} chars; classifier ceiling is ${INPUT_CHAR_CEILING}.`,
|
|
@@ -395,57 +476,35 @@ export async function classifyDocument(params) {
|
|
|
395
476
|
// which keep the wrapper's 60s default.
|
|
396
477
|
process.stderr.write(`[memory-classify] [${accountId}] calling haiku (mode=${mode}, chars=${documentText.length}, labels=${ontologyLabels.size}, timeoutMs=180000)\n`);
|
|
397
478
|
const haikuStart = Date.now();
|
|
479
|
+
// Task 898 — forced tool-use makes Haiku emit its output as a structured
|
|
480
|
+
// `tool_use.input` payload validated by Anthropic against
|
|
481
|
+
// `ClassifierOutputTool.input_schema`. Removes the markdown-fence /
|
|
482
|
+
// malformed-JSON / response-truncated failure modes by construction:
|
|
483
|
+
// truncation now manifests as a structurally-invalid `tool_use.input`
|
|
484
|
+
// (missing required fields on the trailing section), caught by the
|
|
485
|
+
// existing missing-offsets loud-fail below.
|
|
398
486
|
const llmResult = await callOauthLlm({
|
|
399
487
|
model: HAIKU_MODEL,
|
|
400
488
|
system: systemPrompt,
|
|
401
489
|
userMessage,
|
|
402
490
|
maxTokens: MAX_OUTPUT_TOKENS,
|
|
403
491
|
timeoutMs: 180_000,
|
|
492
|
+
tools: [ClassifierOutputTool],
|
|
493
|
+
toolChoiceName: ClassifierOutputTool.name,
|
|
404
494
|
});
|
|
405
495
|
const haikuMs = Date.now() - haikuStart;
|
|
406
496
|
if (llmResult.kind === "fallback") {
|
|
407
497
|
logError(accountId, `${llmResult.cause}: ${llmResult.reason}`);
|
|
408
498
|
return { kind: "error", reason: llmResult.reason };
|
|
409
499
|
}
|
|
410
|
-
const responseText = llmResult.text;
|
|
411
|
-
// Task 897 sub-scope G — surface finish-reason + output-tokens per call so
|
|
412
|
-
// a `max_tokens` from Haiku appears directly in observability instead of
|
|
413
|
-
// surfacing downstream as `malformed JSON`.
|
|
414
500
|
const stopReason = llmResult.stopReason ?? "(unknown)";
|
|
415
501
|
const outputTokens = llmResult.outputTokens ?? -1;
|
|
416
|
-
process.stderr.write(`[memory-classify] [${accountId}]
|
|
417
|
-
//
|
|
418
|
-
//
|
|
419
|
-
//
|
|
420
|
-
//
|
|
421
|
-
|
|
422
|
-
const fence = extractJson(responseText);
|
|
423
|
-
if (fence.kind === "truncated") {
|
|
424
|
-
logError(accountId, `${fence.reason} stop-reason=${stopReason} output-tokens=${outputTokens} len=${responseText.length} pre-strip-tail=${JSON.stringify(responseText.slice(-200))}`);
|
|
425
|
-
return { kind: "error", reason: "Haiku response truncated mid-fence (likely max_tokens hit)" };
|
|
426
|
-
}
|
|
427
|
-
const jsonText = fence.json;
|
|
428
|
-
let parsed;
|
|
429
|
-
try {
|
|
430
|
-
parsed = JSON.parse(jsonText);
|
|
431
|
-
}
|
|
432
|
-
catch (err) {
|
|
433
|
-
// Task 896 clause 5: surface diagnostics so a malformed-JSON error
|
|
434
|
-
// distinguishes fence drift and genuine model junk. The truncation case
|
|
435
|
-
// is now caught above by `extractJson` returning `kind: "truncated"`,
|
|
436
|
-
// so this branch covers genuinely malformed JSON only.
|
|
437
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
438
|
-
const fenceStripped = jsonText !== responseText;
|
|
439
|
-
logError(accountId, `malformed JSON: parse-error=${JSON.stringify(message)} len=${responseText.length} fence-stripped=${fenceStripped} stop-reason=${stopReason} ` +
|
|
440
|
-
`pre-strip-head=${JSON.stringify(responseText.slice(0, 200))} ` +
|
|
441
|
-
`pre-strip-tail=${JSON.stringify(responseText.slice(-200))}`);
|
|
442
|
-
return { kind: "error", reason: "Haiku returned malformed JSON" };
|
|
443
|
-
}
|
|
444
|
-
const root = asObject(parsed);
|
|
445
|
-
if (!root) {
|
|
446
|
-
logError(accountId, "response is not an object");
|
|
447
|
-
return { kind: "error", reason: "invalid response shape" };
|
|
448
|
-
}
|
|
502
|
+
process.stderr.write(`[memory-classify] [${accountId}] structured-output ok stop-reason=${stopReason} output-tokens=${outputTokens}\n`);
|
|
503
|
+
// Task 898 — `tool_use.input` is already a typed object, validated by
|
|
504
|
+
// Anthropic against the tool's input_schema. No JSON.parse, no fence
|
|
505
|
+
// stripping. The `as*` helpers below still defensively narrow each field
|
|
506
|
+
// because TS sees `Record<string, unknown>` at the wrapper boundary.
|
|
507
|
+
const root = llmResult.input;
|
|
449
508
|
const documentSummary = asString(root.documentSummary) ?? "";
|
|
450
509
|
const documentKeywords = Array.isArray(root.documentKeywords)
|
|
451
510
|
? root.documentKeywords.filter((k) => typeof k === "string")
|
|
@@ -513,14 +572,10 @@ export async function classifyDocument(params) {
|
|
|
513
572
|
});
|
|
514
573
|
continue;
|
|
515
574
|
}
|
|
516
|
-
//
|
|
517
|
-
//
|
|
518
|
-
//
|
|
519
|
-
|
|
520
|
-
// ontology doesn't yet have a kind for.
|
|
521
|
-
const rawKind = asString(obj.kind) ?? SECTION_KIND_OTHER;
|
|
522
|
-
const isKnownKind = ALL_SECTION_KINDS.has(rawKind);
|
|
523
|
-
const kind = isKnownKind ? rawKind : SECTION_KIND_OTHER;
|
|
575
|
+
// Task 898 — the `kind` enum is enforced by Anthropic's schema validator,
|
|
576
|
+
// so a hallucinated kind cannot reach this point. The pre-Task-898
|
|
577
|
+
// collapse-to-Other branch is unreachable dead code on the structured path.
|
|
578
|
+
const kind = asString(obj.kind) ?? SECTION_KIND_OTHER;
|
|
524
579
|
const classifierReason = asString(obj.classifierReason) ?? undefined;
|
|
525
580
|
let anchorEdge = null;
|
|
526
581
|
const rawAnchor = asObject(obj.anchorEdge);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-classifier.js","sourceRoot":"","sources":["../../src/lib/llm-classifier.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"llm-classifier.js","sourceRoot":"","sources":["../../src/lib/llm-classifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Given a pool of candidate entities (from memory-search) and a natural-language
|
|
5
5
|
* ranking criterion, returns a ranked ordering with per-item reasoning. When the
|
|
6
|
-
* LLM is unavailable (
|
|
7
|
-
* hallucinated nodeIds), returns
|
|
8
|
-
* an unranked result with a visible
|
|
6
|
+
* LLM is unavailable (missing OAuth credentials, network error, schema-violating
|
|
7
|
+
* `tool_use.input`, or all hallucinated nodeIds), returns an error reason that
|
|
8
|
+
* callers use to produce an unranked result with a visible
|
|
9
|
+
* "[Ranking unavailable: ...]" notice.
|
|
9
10
|
*
|
|
10
11
|
* Trust boundary: the `criteria` string comes from an agent (admin, public, or
|
|
11
12
|
* workflow). The system prompt explicitly sandboxes it as a ranking directive —
|
|
@@ -13,9 +14,15 @@
|
|
|
13
14
|
* same pattern as email/screening.ts.
|
|
14
15
|
*
|
|
15
16
|
* Hallucination defence: Haiku only sees nodeIds from the candidate pool, and
|
|
16
|
-
* the
|
|
17
|
-
* If all rankings are hallucinated, we
|
|
17
|
+
* the post-validator discards any nodeId in its response that is not in the
|
|
18
|
+
* input set. If all rankings are hallucinated, we return an error.
|
|
19
|
+
*
|
|
20
|
+
* Output is structured by construction: forced tool-use against
|
|
21
|
+
* `RankerOutputTool.input_schema` so Anthropic validates the response shape at
|
|
22
|
+
* the API boundary. Markdown-fence and malformed-JSON failure modes are
|
|
23
|
+
* impossible under this contract.
|
|
18
24
|
*/
|
|
25
|
+
import { type OauthLlmTool } from "../../../../../lib/oauth-llm/dist/index.js";
|
|
19
26
|
export interface RankCandidate {
|
|
20
27
|
nodeId: string;
|
|
21
28
|
labels: string[];
|
|
@@ -40,6 +47,7 @@ export type RankResult = {
|
|
|
40
47
|
kind: "error";
|
|
41
48
|
reason: string;
|
|
42
49
|
};
|
|
50
|
+
export declare const RankerOutputTool: OauthLlmTool;
|
|
43
51
|
/**
|
|
44
52
|
* Rank a pool of candidates against a natural-language criterion via Haiku.
|
|
45
53
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-ranker.d.ts","sourceRoot":"","sources":["../../src/lib/llm-ranker.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"llm-ranker.d.ts","sourceRoot":"","sources":["../../src/lib/llm-ranker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAO7F,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,OAAO,EAAE,KAAK,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACrC,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAgCtC,eAAO,MAAM,gBAAgB,EAAE,YAsB9B,CAAC;AAsDF;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,aAAa,EAAE,EAC3B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,CAAC,CAqFrB"}
|