@rubytech/create-realagent 1.0.829 → 1.0.831
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/package.json +1 -1
- package/payload/platform/config/brand.json +1 -1
- package/payload/platform/lib/oauth-llm/dist/index.d.ts +9 -2
- package/payload/platform/lib/oauth-llm/dist/index.d.ts.map +1 -1
- package/payload/platform/lib/oauth-llm/dist/index.js +26 -1
- package/payload/platform/lib/oauth-llm/dist/index.js.map +1 -1
- package/payload/platform/lib/oauth-llm/src/index.ts +43 -4
- package/payload/platform/neo4j/migrations/007-conversation-archive-source.ts +116 -0
- package/payload/platform/neo4j/migrations/008-adminuser-accountid-backfill.ts +85 -0
- package/payload/platform/neo4j/schema.cypher +12 -3
- package/payload/platform/plugins/admin/hooks/__tests__/archive-ingest-surface-gate.test.sh +54 -39
- package/payload/platform/plugins/admin/hooks/archive-ingest-surface-gate.sh +64 -26
- package/payload/platform/plugins/admin/mcp/dist/index.js +25 -3
- package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/contacts/mcp/dist/index.js +5 -5
- package/payload/platform/plugins/contacts/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/contacts/mcp/dist/tools/contact-create.d.ts +1 -1
- package/payload/platform/plugins/contacts/mcp/dist/tools/contact-create.d.ts.map +1 -1
- package/payload/platform/plugins/contacts/mcp/dist/tools/contact-create.js +29 -23
- package/payload/platform/plugins/contacts/mcp/dist/tools/contact-create.js.map +1 -1
- package/payload/platform/plugins/docs/references/internals.md +1 -1
- package/payload/platform/plugins/docs/references/plugins-guide.md +1 -1
- package/payload/platform/plugins/memory/PLUGIN.md +2 -1
- package/payload/platform/plugins/memory/bin/conversation-archive-ingest.mjs +564 -0
- package/payload/platform/plugins/memory/bin/conversation-archive-ingest.sh +106 -0
- package/payload/platform/plugins/memory/mcp/dist/index.js +30 -16
- package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/llm-classifier.test.js +4 -3
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/llm-classifier.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-loader.test.js +11 -6
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-loader.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/index.d.ts +5 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/index.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/index.js +30 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/index.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/timestamp-scanner.d.ts +49 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/timestamp-scanner.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/timestamp-scanner.js +35 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/timestamp-scanner.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/types.d.ts +47 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/types.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/types.js +31 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/types.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/whatsapp-text.d.ts +3 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/whatsapp-text.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/whatsapp-text.js +155 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/whatsapp-text.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/delta-cursor.d.ts +11 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/delta-cursor.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/delta-cursor.js +20 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/delta-cursor.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/derive-keys.d.ts +14 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/derive-keys.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/derive-keys.js +38 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/derive-keys.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sender-bind.d.ts +16 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sender-bind.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sender-bind.js +59 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sender-bind.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sessionize.d.ts +9 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sessionize.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sessionize.js +32 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sessionize.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/to-turn-text.d.ts +3 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/to-turn-text.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/to-turn-text.js +29 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/to-turn-text.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/document-chunker.d.ts +45 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/document-chunker.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/document-chunker.js +125 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/document-chunker.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.d.ts +34 -9
- 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 +360 -35
- 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 +3 -2
- 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 +46 -17
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-ranker.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-source-agnosticism.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-source-agnosticism.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-source-agnosticism.test.js +73 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-source-agnosticism.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-whatsapp-text.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-whatsapp-text.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-whatsapp-text.test.js +109 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-whatsapp-text.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest.test.js +34 -3
- 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-archive-write.d.ts +17 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.js +34 -13
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.d.ts +18 -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 +24 -8
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-rank.js +2 -2
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-rank.js.map +1 -1
- package/payload/platform/plugins/memory/references/schema-base.md +2 -2
- package/payload/platform/plugins/memory/skills/conversation-archive/SKILL.md +133 -0
- package/payload/platform/plugins/memory/skills/document-ingest/SKILL.md +5 -2
- package/payload/platform/plugins/whatsapp/PLUGIN.md +1 -1
- package/payload/platform/scripts/seed-neo4j.sh +15 -15
- package/payload/platform/templates/specialists/agents/database-operator.md +8 -9
- package/payload/server/chunk-7BO5HDJC.js +10093 -0
- package/payload/server/chunk-BCFM2UPH.js +2305 -0
- package/payload/server/chunk-CV3HPX46.js +10097 -0
- package/payload/server/chunk-EL4DZ56X.js +1116 -0
- package/payload/server/chunk-J6YWEJBN.js +1116 -0
- package/payload/server/chunk-OCPJGZ6S.js +654 -0
- package/payload/server/chunk-QOJ2D26Z.js +654 -0
- package/payload/server/chunk-RC46ZYGT.js +2305 -0
- package/payload/server/client-pool-7NTEFNVQ.js +32 -0
- package/payload/server/client-pool-ZNGN66GN.js +32 -0
- package/payload/server/cloudflare-task-tracker-MHALDN54.js +19 -0
- package/payload/server/cloudflare-task-tracker-WE77WXSI.js +19 -0
- package/payload/server/maxy-edge.js +3 -3
- package/payload/server/neo4j-migrations-4XPNJNM6.js +490 -0
- package/payload/server/neo4j-migrations-6RW423E2.js +530 -0
- package/payload/server/server.js +30 -19
package/package.json
CHANGED
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"plugins": {
|
|
45
45
|
"core": ["admin", "memory", "docs", "cloudflare", "anthropic", "workflows", "tasks", "business-assistant", "contacts", "scheduling", "email"],
|
|
46
46
|
"defaultEnabled": ["sales"],
|
|
47
|
-
"available": ["deep-research", "waitlist", "projects", "whatsapp", "replicate", "linkedin-import"
|
|
47
|
+
"available": ["deep-research", "waitlist", "projects", "whatsapp", "replicate", "linkedin-import"],
|
|
48
48
|
"excluded": ["telegram"]
|
|
49
49
|
}
|
|
50
50
|
}
|
|
@@ -65,16 +65,23 @@ export interface CallOauthLlmParams {
|
|
|
65
65
|
/** Force the model to call this tool. Required when `tools` is provided. */
|
|
66
66
|
toolChoiceName?: string;
|
|
67
67
|
}
|
|
68
|
-
/** Result when the call did not declare any tool — only text or fallback.
|
|
68
|
+
/** Result when the call did not declare any tool — only text or fallback.
|
|
69
|
+
* Task 897: `stopReason` and `outputTokens` are exposed so callers can
|
|
70
|
+
* distinguish a `max_tokens`-truncated response (which can produce a
|
|
71
|
+
* one-sided fence) from a clean `end_turn`. */
|
|
69
72
|
export type CallOauthLlmTextResult = {
|
|
70
73
|
kind: "ok";
|
|
71
74
|
text: string;
|
|
75
|
+
stopReason?: string;
|
|
76
|
+
outputTokens?: number;
|
|
72
77
|
} | CallOauthLlmFallback;
|
|
73
78
|
/** Result when the call forced a tool — only the tool input or fallback. */
|
|
74
79
|
export type CallOauthLlmToolResult = {
|
|
75
80
|
kind: "ok-tool";
|
|
76
81
|
toolName: string;
|
|
77
82
|
input: Record<string, unknown>;
|
|
83
|
+
stopReason?: string;
|
|
84
|
+
outputTokens?: number;
|
|
78
85
|
} | CallOauthLlmFallback;
|
|
79
86
|
/** Discriminated union of every possible result. Returned by the no-overload form. */
|
|
80
87
|
export type CallOauthLlmResult = CallOauthLlmTextResult | CallOauthLlmToolResult;
|
|
@@ -83,7 +90,7 @@ export interface CallOauthLlmFallback {
|
|
|
83
90
|
/** Human-readable single-line reason (for operator-visible blocker). */
|
|
84
91
|
reason: string;
|
|
85
92
|
/** Stable classifier — callers can pattern-match for retry/abort policy. */
|
|
86
|
-
cause: "missing-creds" | "dead-token" | "refresh-failed" | "auth-error" | "rate-limit" | "server-error" | "network-error" | "timeout" | "empty-response" | "malformed-response" | "unexpected";
|
|
93
|
+
cause: "missing-creds" | "dead-token" | "refresh-failed" | "auth-error" | "rate-limit" | "server-error" | "network-error" | "timeout" | "empty-response" | "malformed-response" | "input-too-large" | "unexpected";
|
|
87
94
|
}
|
|
88
95
|
/**
|
|
89
96
|
* Call an Anthropic model via OAuth bearer auth.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAgBH,QAAA,MAAM,iBAAiB,qBAAqB,CAAC;AAe7C,sFAAsF;AACtF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,kBAAkB;IACjC,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,WAAW,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAgBH,QAAA,MAAM,iBAAiB,qBAAqB,CAAC;AAe7C,sFAAsF;AACtF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,kBAAkB;IACjC,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,WAAW,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;gDAGgD;AAChD,MAAM,MAAM,sBAAsB,GAC9B;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GACxE,oBAAoB,CAAC;AAEzB,4EAA4E;AAC5E,MAAM,MAAM,sBAAsB,GAC9B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GACjH,oBAAoB,CAAC;AAEzB,sFAAsF;AACtF,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,GAAG,sBAAsB,CAAC;AAEjF,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,UAAU,CAAC;IACjB,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,KAAK,EACD,eAAe,GACf,YAAY,GACZ,gBAAgB,GAChB,YAAY,GACZ,YAAY,GACZ,cAAc,GACd,eAAe,GACf,SAAS,GACT,gBAAgB,GAChB,oBAAoB,GACpB,iBAAiB,GACjB,YAAY,CAAC;CAClB;AA8OD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,GAAG,gBAAgB,CAAC,GAC3D,OAAO,CAAC,sBAAsB,CAAC,CAAC;AACnC,wBAAgB,YAAY,CAC1B,MAAM,EAAE,kBAAkB,GAAG;IAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GAC7E,OAAO,CAAC,sBAAsB,CAAC,CAAC;AACnC,wBAAgB,YAAY,CAC1B,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAoL/B,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -47,6 +47,20 @@ const OAUTH_BETA_HEADER = "oauth-2025-04-20";
|
|
|
47
47
|
exports.OAUTH_BETA_HEADER = OAUTH_BETA_HEADER;
|
|
48
48
|
/** Refresh proactively when the token expires within this window. */
|
|
49
49
|
const EXPIRING_THRESHOLD_MS = 5 * 60 * 1000;
|
|
50
|
+
// Anthropic's 400 response carries a JSON body whose `error.message` names the
|
|
51
|
+
// failure. The three phrases below are the load-bearing markers for an oversize
|
|
52
|
+
// input across the SDK's vocabulary; matching any one promotes the generic
|
|
53
|
+
// status=400 into a typed cause callers can act on (chunk, defer, surface
|
|
54
|
+
// remediation). Generic 400s still fall through to cause:"unexpected".
|
|
55
|
+
const INPUT_TOO_LARGE_MARKERS = [
|
|
56
|
+
"prompt is too long",
|
|
57
|
+
"context_length_exceeded",
|
|
58
|
+
"too many tokens",
|
|
59
|
+
];
|
|
60
|
+
function isInputTooLargeBody(body) {
|
|
61
|
+
const lower = body.toLowerCase();
|
|
62
|
+
return INPUT_TOO_LARGE_MARKERS.some((m) => lower.includes(m));
|
|
63
|
+
}
|
|
50
64
|
// ---------------------------------------------------------------------------
|
|
51
65
|
// Credential reading + refresh — minimal duplicate of platform/ui claude-auth.
|
|
52
66
|
// We duplicate (not import) so this lib stays self-contained and importable
|
|
@@ -294,6 +308,13 @@ async function callOauthLlm(params) {
|
|
|
294
308
|
reason: `Anthropic server error (status=${res.status}): ${body.slice(0, 200)}`,
|
|
295
309
|
};
|
|
296
310
|
}
|
|
311
|
+
if (res.status === 400 && isInputTooLargeBody(body)) {
|
|
312
|
+
return {
|
|
313
|
+
kind: "fallback",
|
|
314
|
+
cause: "input-too-large",
|
|
315
|
+
reason: `Input exceeds Haiku context window (status=400 body=${body.slice(0, 200)}). Split the source into smaller segments.`,
|
|
316
|
+
};
|
|
317
|
+
}
|
|
297
318
|
return {
|
|
298
319
|
kind: "fallback",
|
|
299
320
|
cause: "unexpected",
|
|
@@ -318,6 +339,8 @@ async function callOauthLlm(params) {
|
|
|
318
339
|
reason: `Anthropic API error: ${payload.error.type ?? "unknown"} ${payload.error.message ?? ""}`,
|
|
319
340
|
};
|
|
320
341
|
}
|
|
342
|
+
const stopReason = typeof payload.stop_reason === "string" ? payload.stop_reason : undefined;
|
|
343
|
+
const outputTokens = typeof payload.usage?.output_tokens === "number" ? payload.usage.output_tokens : undefined;
|
|
321
344
|
// When the caller forced a tool, prefer the tool_use block — its input
|
|
322
345
|
// is the structured output the caller wants.
|
|
323
346
|
if (toolChoiceName) {
|
|
@@ -333,6 +356,8 @@ async function callOauthLlm(params) {
|
|
|
333
356
|
kind: "ok-tool",
|
|
334
357
|
toolName: toolBlock.name ?? toolChoiceName,
|
|
335
358
|
input: toolBlock.input,
|
|
359
|
+
stopReason,
|
|
360
|
+
outputTokens,
|
|
336
361
|
};
|
|
337
362
|
}
|
|
338
363
|
const textBlock = payload.content?.find((block) => {
|
|
@@ -348,6 +373,6 @@ async function callOauthLlm(params) {
|
|
|
348
373
|
reason: "Model returned no text content.",
|
|
349
374
|
};
|
|
350
375
|
}
|
|
351
|
-
return { kind: "ok", text: textBlock.text };
|
|
376
|
+
return { kind: "ok", text: textBlock.text, stopReason, outputTokens };
|
|
352
377
|
}
|
|
353
378
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -96,14 +96,17 @@ export interface CallOauthLlmParams {
|
|
|
96
96
|
toolChoiceName?: string;
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
-
/** Result when the call did not declare any tool — only text or fallback.
|
|
99
|
+
/** Result when the call did not declare any tool — only text or fallback.
|
|
100
|
+
* Task 897: `stopReason` and `outputTokens` are exposed so callers can
|
|
101
|
+
* distinguish a `max_tokens`-truncated response (which can produce a
|
|
102
|
+
* one-sided fence) from a clean `end_turn`. */
|
|
100
103
|
export type CallOauthLlmTextResult =
|
|
101
|
-
| { kind: "ok"; text: string }
|
|
104
|
+
| { kind: "ok"; text: string; stopReason?: string; outputTokens?: number }
|
|
102
105
|
| CallOauthLlmFallback;
|
|
103
106
|
|
|
104
107
|
/** Result when the call forced a tool — only the tool input or fallback. */
|
|
105
108
|
export type CallOauthLlmToolResult =
|
|
106
|
-
| { kind: "ok-tool"; toolName: string; input: Record<string, unknown
|
|
109
|
+
| { kind: "ok-tool"; toolName: string; input: Record<string, unknown>; stopReason?: string; outputTokens?: number }
|
|
107
110
|
| CallOauthLlmFallback;
|
|
108
111
|
|
|
109
112
|
/** Discriminated union of every possible result. Returned by the no-overload form. */
|
|
@@ -125,9 +128,26 @@ export interface CallOauthLlmFallback {
|
|
|
125
128
|
| "timeout"
|
|
126
129
|
| "empty-response"
|
|
127
130
|
| "malformed-response"
|
|
131
|
+
| "input-too-large"
|
|
128
132
|
| "unexpected";
|
|
129
133
|
}
|
|
130
134
|
|
|
135
|
+
// Anthropic's 400 response carries a JSON body whose `error.message` names the
|
|
136
|
+
// failure. The three phrases below are the load-bearing markers for an oversize
|
|
137
|
+
// input across the SDK's vocabulary; matching any one promotes the generic
|
|
138
|
+
// status=400 into a typed cause callers can act on (chunk, defer, surface
|
|
139
|
+
// remediation). Generic 400s still fall through to cause:"unexpected".
|
|
140
|
+
const INPUT_TOO_LARGE_MARKERS = [
|
|
141
|
+
"prompt is too long",
|
|
142
|
+
"context_length_exceeded",
|
|
143
|
+
"too many tokens",
|
|
144
|
+
] as const;
|
|
145
|
+
|
|
146
|
+
function isInputTooLargeBody(body: string): boolean {
|
|
147
|
+
const lower = body.toLowerCase();
|
|
148
|
+
return INPUT_TOO_LARGE_MARKERS.some((m) => lower.includes(m));
|
|
149
|
+
}
|
|
150
|
+
|
|
131
151
|
// ---------------------------------------------------------------------------
|
|
132
152
|
// Credential reading + refresh — minimal duplicate of platform/ui claude-auth.
|
|
133
153
|
// We duplicate (not import) so this lib stays self-contained and importable
|
|
@@ -334,6 +354,13 @@ interface AnthropicMessagesResponse {
|
|
|
334
354
|
| { type: "tool_use"; name?: string; input?: Record<string, unknown> }
|
|
335
355
|
| { type: string }
|
|
336
356
|
>;
|
|
357
|
+
/** Anthropic stop_reason — `end_turn`, `max_tokens`, `stop_sequence`,
|
|
358
|
+
* `tool_use`, or `pause_turn`. Surfaced as `stopReason` on `ok`/`ok-tool`
|
|
359
|
+
* results so callers can distinguish a truncated response from a clean
|
|
360
|
+
* end (Task 897 sub-scope G — fence-handling structurally). */
|
|
361
|
+
stop_reason?: string;
|
|
362
|
+
/** Anthropic output_tokens billing surface, exposed as `outputTokens`. */
|
|
363
|
+
usage?: { output_tokens?: number };
|
|
337
364
|
error?: { type?: string; message?: string };
|
|
338
365
|
}
|
|
339
366
|
|
|
@@ -465,6 +492,13 @@ export async function callOauthLlm(
|
|
|
465
492
|
reason: `Anthropic server error (status=${res.status}): ${body.slice(0, 200)}`,
|
|
466
493
|
};
|
|
467
494
|
}
|
|
495
|
+
if (res.status === 400 && isInputTooLargeBody(body)) {
|
|
496
|
+
return {
|
|
497
|
+
kind: "fallback",
|
|
498
|
+
cause: "input-too-large",
|
|
499
|
+
reason: `Input exceeds Haiku context window (status=400 body=${body.slice(0, 200)}). Split the source into smaller segments.`,
|
|
500
|
+
};
|
|
501
|
+
}
|
|
468
502
|
return {
|
|
469
503
|
kind: "fallback",
|
|
470
504
|
cause: "unexpected",
|
|
@@ -491,6 +525,9 @@ export async function callOauthLlm(
|
|
|
491
525
|
};
|
|
492
526
|
}
|
|
493
527
|
|
|
528
|
+
const stopReason = typeof payload.stop_reason === "string" ? payload.stop_reason : undefined;
|
|
529
|
+
const outputTokens = typeof payload.usage?.output_tokens === "number" ? payload.usage.output_tokens : undefined;
|
|
530
|
+
|
|
494
531
|
// When the caller forced a tool, prefer the tool_use block — its input
|
|
495
532
|
// is the structured output the caller wants.
|
|
496
533
|
if (toolChoiceName) {
|
|
@@ -509,6 +546,8 @@ export async function callOauthLlm(
|
|
|
509
546
|
kind: "ok-tool",
|
|
510
547
|
toolName: toolBlock.name ?? toolChoiceName,
|
|
511
548
|
input: toolBlock.input,
|
|
549
|
+
stopReason,
|
|
550
|
+
outputTokens,
|
|
512
551
|
};
|
|
513
552
|
}
|
|
514
553
|
|
|
@@ -526,7 +565,7 @@ export async function callOauthLlm(
|
|
|
526
565
|
reason: "Model returned no text content.",
|
|
527
566
|
};
|
|
528
567
|
}
|
|
529
|
-
return { kind: "ok", text: textBlock.text };
|
|
568
|
+
return { kind: "ok", text: textBlock.text, stopReason, outputTokens };
|
|
530
569
|
}
|
|
531
570
|
|
|
532
571
|
// ---------------------------------------------------------------------------
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration 007 — Backfill `source` and rename provenance on existing
|
|
3
|
+
* :ConversationArchive parents and :Section:Conversation chunks (Task 894).
|
|
4
|
+
*
|
|
5
|
+
* Pre-Task-894 the conversation-archive write path stamped every node with
|
|
6
|
+
* `createdByAgent = 'whatsapp-import'` and `source = 'whatsapp'`. Task 894
|
|
7
|
+
* generalises the path: `createdByAgent` becomes `'conversation-archive'`
|
|
8
|
+
* (one orchestrator, one skill, regardless of source); `source` is a property
|
|
9
|
+
* carrying the source format ('whatsapp', 'telegram', 'slack', …).
|
|
10
|
+
*
|
|
11
|
+
* Without this migration the diagnostic surface fragments — queries that
|
|
12
|
+
* filter by createdByAgent return only post-894 data; the new
|
|
13
|
+
* (accountId, source) index is empty for legacy archives. This migration
|
|
14
|
+
* rewrites both sides idempotently:
|
|
15
|
+
*
|
|
16
|
+
* 1. :ConversationArchive without `source` → SET source='whatsapp'
|
|
17
|
+
* (every pre-894 archive came from the whatsapp-import bin script).
|
|
18
|
+
* 2. :ConversationArchive.createdByAgent='whatsapp-import' →
|
|
19
|
+
* SET createdByAgent='conversation-archive'.
|
|
20
|
+
* 3. :Section:Conversation without `source` → SET source='whatsapp'.
|
|
21
|
+
* 4. :Section:Conversation.createdByAgent='whatsapp-import' →
|
|
22
|
+
* SET createdByAgent='conversation-archive'.
|
|
23
|
+
* 5. :HAS_SECTION / :NEXT / :PARTICIPANT_IN edges with
|
|
24
|
+
* createdByAgent='whatsapp-import' → SET createdByAgent='conversation-archive'.
|
|
25
|
+
*
|
|
26
|
+
* Re-runs are no-ops (each WHERE clause excludes the post-rename state).
|
|
27
|
+
*
|
|
28
|
+
* Observability:
|
|
29
|
+
* `[migration:conversation-archive-source]
|
|
30
|
+
* archives-source-set=N archives-agent-renamed=N
|
|
31
|
+
* chunks-source-set=N chunks-agent-renamed=N edges-agent-renamed=N`
|
|
32
|
+
*
|
|
33
|
+
* REMOVE WHEN: every install we ship has been booted once on a version
|
|
34
|
+
* ≥ Task 894 AND no live archive carries the legacy provenance string.
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
type Neo4jDriverLike = {
|
|
38
|
+
session(): {
|
|
39
|
+
run(
|
|
40
|
+
cypher: string,
|
|
41
|
+
params?: Record<string, unknown>,
|
|
42
|
+
): Promise<{ records: Array<{ get(key: string): unknown }> }>;
|
|
43
|
+
close(): Promise<void>;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
export async function backfillConversationArchiveSource(
|
|
48
|
+
driver: Neo4jDriverLike,
|
|
49
|
+
): Promise<void> {
|
|
50
|
+
const session = driver.session();
|
|
51
|
+
try {
|
|
52
|
+
const archivesSourceSet = await runCount(
|
|
53
|
+
session,
|
|
54
|
+
`MATCH (a:ConversationArchive)
|
|
55
|
+
WHERE a.source IS NULL
|
|
56
|
+
SET a.source = 'whatsapp'
|
|
57
|
+
RETURN count(a) AS n`,
|
|
58
|
+
);
|
|
59
|
+
|
|
60
|
+
const archivesAgentRenamed = await runCount(
|
|
61
|
+
session,
|
|
62
|
+
`MATCH (a:ConversationArchive)
|
|
63
|
+
WHERE a.createdByAgent = 'whatsapp-import'
|
|
64
|
+
SET a.createdByAgent = 'conversation-archive'
|
|
65
|
+
RETURN count(a) AS n`,
|
|
66
|
+
);
|
|
67
|
+
|
|
68
|
+
const chunksSourceSet = await runCount(
|
|
69
|
+
session,
|
|
70
|
+
`MATCH (c:Section:Conversation)
|
|
71
|
+
WHERE c.source IS NULL
|
|
72
|
+
SET c.source = 'whatsapp'
|
|
73
|
+
RETURN count(c) AS n`,
|
|
74
|
+
);
|
|
75
|
+
|
|
76
|
+
const chunksAgentRenamed = await runCount(
|
|
77
|
+
session,
|
|
78
|
+
`MATCH (c:Section:Conversation)
|
|
79
|
+
WHERE c.createdByAgent = 'whatsapp-import'
|
|
80
|
+
SET c.createdByAgent = 'conversation-archive'
|
|
81
|
+
RETURN count(c) AS n`,
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
const edgesAgentRenamed = await runCount(
|
|
85
|
+
session,
|
|
86
|
+
`MATCH (a:ConversationArchive)-[r]-()
|
|
87
|
+
WHERE r.createdByAgent = 'whatsapp-import'
|
|
88
|
+
SET r.createdByAgent = 'conversation-archive'
|
|
89
|
+
RETURN count(r) AS n`,
|
|
90
|
+
);
|
|
91
|
+
|
|
92
|
+
console.error(
|
|
93
|
+
`[migration:conversation-archive-source] ` +
|
|
94
|
+
`archives-source-set=${archivesSourceSet} ` +
|
|
95
|
+
`archives-agent-renamed=${archivesAgentRenamed} ` +
|
|
96
|
+
`chunks-source-set=${chunksSourceSet} ` +
|
|
97
|
+
`chunks-agent-renamed=${chunksAgentRenamed} ` +
|
|
98
|
+
`edges-agent-renamed=${edgesAgentRenamed}`,
|
|
99
|
+
);
|
|
100
|
+
} finally {
|
|
101
|
+
await session.close();
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
async function runCount(
|
|
106
|
+
session: { run(c: string, p?: Record<string, unknown>): Promise<{ records: Array<{ get(k: string): unknown }> }> },
|
|
107
|
+
cypher: string,
|
|
108
|
+
): Promise<number> {
|
|
109
|
+
const res = await session.run(cypher);
|
|
110
|
+
const v = res.records[0]?.get("n");
|
|
111
|
+
if (typeof v === "number") return v;
|
|
112
|
+
if (v && typeof (v as { toNumber?: () => number }).toNumber === "function") {
|
|
113
|
+
return (v as { toNumber: () => number }).toNumber();
|
|
114
|
+
}
|
|
115
|
+
return 0;
|
|
116
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration 008 — Backfill `accountId` on legacy `:AdminUser` nodes (Task 897).
|
|
3
|
+
*
|
|
4
|
+
* Pre-Task-897 the `admin-add` MERGE in admin/mcp/src/index.ts stamped only
|
|
5
|
+
* `userId/name/createdAt` on `:AdminUser` ON CREATE. Migration 004
|
|
6
|
+
* (pruneAlienAccounts) DETACH DELETEs every node whose `accountId` is not
|
|
7
|
+
* a valid on-disk account UUID, including null-accountId :AdminUser entries
|
|
8
|
+
* — silently wiping the admin's pin and Person ownership.
|
|
9
|
+
*
|
|
10
|
+
* The fix in admin/mcp/src/index.ts now stamps `accountId` ON CREATE and
|
|
11
|
+
* COALESCEs ON MATCH. This migration cleans the existing graphs that already
|
|
12
|
+
* carry the legacy null-accountId fingerprint, by reading the surviving
|
|
13
|
+
* `:ADMIN_OF` edge to `:LocalBusiness` and copying the LocalBusiness's
|
|
14
|
+
* `accountId` onto the orphan AdminUser.
|
|
15
|
+
*
|
|
16
|
+
* Migration ordering: this runs AFTER pruneAlienAccounts (migration 004).
|
|
17
|
+
* pruneAlienAccounts only deletes nodes whose `accountId` is *non-null but
|
|
18
|
+
* unknown* — null-accountId nodes survive its sweep and reach this backfill.
|
|
19
|
+
* After backfill, any remaining null-accountId AdminUser is a structural bug
|
|
20
|
+
* (no ADMIN_OF edge → cannot derive accountId) and the boot fails loudly.
|
|
21
|
+
*
|
|
22
|
+
* Observability:
|
|
23
|
+
* `[migration:adminuser-accountid] backfilled=N residual-null=M` — info
|
|
24
|
+
* once per boot. residual-null > 0 throws and crashes boot.
|
|
25
|
+
*
|
|
26
|
+
* REMOVE WHEN: every install we ship has been booted at least once on a
|
|
27
|
+
* version ≥ Task 897 AND no live `:AdminUser` carries a null accountId.
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
type Neo4jDriverLike = {
|
|
31
|
+
session(): {
|
|
32
|
+
run(
|
|
33
|
+
cypher: string,
|
|
34
|
+
params?: Record<string, unknown>,
|
|
35
|
+
): Promise<{ records: Array<{ get(key: string): unknown }> }>;
|
|
36
|
+
close(): Promise<void>;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export async function backfillAdminUserAccountId(
|
|
41
|
+
driver: Neo4jDriverLike,
|
|
42
|
+
): Promise<void> {
|
|
43
|
+
const session = driver.session();
|
|
44
|
+
try {
|
|
45
|
+
const backfilled = await runCount(
|
|
46
|
+
session,
|
|
47
|
+
`MATCH (au:AdminUser) WHERE au.accountId IS NULL
|
|
48
|
+
OPTIONAL MATCH (au)-[:ADMIN_OF]->(b:LocalBusiness)
|
|
49
|
+
WITH au, b WHERE b IS NOT NULL AND b.accountId IS NOT NULL
|
|
50
|
+
SET au.accountId = b.accountId
|
|
51
|
+
RETURN count(au) AS n`,
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
const residualNull = await runCount(
|
|
55
|
+
session,
|
|
56
|
+
`MATCH (au:AdminUser) WHERE au.accountId IS NULL
|
|
57
|
+
RETURN count(au) AS n`,
|
|
58
|
+
);
|
|
59
|
+
|
|
60
|
+
console.error(
|
|
61
|
+
`[migration:adminuser-accountid] backfilled=${backfilled} residual-null=${residualNull}`,
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
if (residualNull > 0) {
|
|
65
|
+
throw new Error(
|
|
66
|
+
`migration:adminuser-accountid: ${residualNull} :AdminUser node(s) still carry a null accountId after backfill — no ADMIN_OF edge to derive from. Manual reconciliation required (cypher-shell into the graph; either DELETE the orphan or attach a valid ADMIN_OF edge and re-run boot).`,
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
} finally {
|
|
70
|
+
await session.close();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
async function runCount(
|
|
75
|
+
session: { run(c: string, p?: Record<string, unknown>): Promise<{ records: Array<{ get(k: string): unknown }> }> },
|
|
76
|
+
cypher: string,
|
|
77
|
+
): Promise<number> {
|
|
78
|
+
const res = await session.run(cypher);
|
|
79
|
+
const v = res.records[0]?.get("n");
|
|
80
|
+
if (typeof v === "number") return v;
|
|
81
|
+
if (v && typeof (v as { toNumber?: () => number }).toNumber === "function") {
|
|
82
|
+
return (v as { toNumber: () => number }).toNumber();
|
|
83
|
+
}
|
|
84
|
+
return 0;
|
|
85
|
+
}
|
|
@@ -259,7 +259,10 @@ OPTIONS {
|
|
|
259
259
|
};
|
|
260
260
|
|
|
261
261
|
// ----------------------------------------------------------
|
|
262
|
-
// ConversationArchive — chunked
|
|
262
|
+
// ConversationArchive — chunked conversation archive (Task 894 generalises
|
|
263
|
+
// Task 891). Source-agnostic: WhatsApp `_chat.txt`, Telegram, Signal,
|
|
264
|
+
// LinkedIn DMs, Zoom transcript, meeting minutes, iMessage, Slack — every
|
|
265
|
+
// source flows through the same shape with `source` as the discriminator.
|
|
263
266
|
//
|
|
264
267
|
// :ConversationArchive parent + :Section:Conversation chunks (HAS_SECTION + NEXT chain).
|
|
265
268
|
// MERGE-keyed on conversationIdentity = sha256(accountId + ":" + sortedParticipantElementIds).
|
|
@@ -269,8 +272,11 @@ OPTIONS {
|
|
|
269
272
|
//
|
|
270
273
|
// :PARTICIPANT_IN edges from :Person/:AdminUser to :ConversationArchive are
|
|
271
274
|
// MERGEd on every ingest (idempotent); the operator confirms each participant
|
|
272
|
-
// up front via the
|
|
273
|
-
//
|
|
275
|
+
// up front via the conversation-archive skill flow.
|
|
276
|
+
//
|
|
277
|
+
// `source` is a closed enum ('whatsapp' | 'telegram' | 'signal' |
|
|
278
|
+
// 'linkedin-messages' | 'zoom-transcript' | 'meeting-minutes' | 'imessage' |
|
|
279
|
+
// 'slack' | 'other') — see `conversation-normalisers/types.ts`.
|
|
274
280
|
// ----------------------------------------------------------
|
|
275
281
|
|
|
276
282
|
CREATE CONSTRAINT conversation_archive_identity_unique IF NOT EXISTS
|
|
@@ -282,6 +288,9 @@ FOR (a:ConversationArchive) ON (a.accountId);
|
|
|
282
288
|
CREATE INDEX conversation_archive_session IF NOT EXISTS
|
|
283
289
|
FOR (a:ConversationArchive) ON (a.createdBySession);
|
|
284
290
|
|
|
291
|
+
CREATE INDEX conversation_archive_account_source IF NOT EXISTS
|
|
292
|
+
FOR (a:ConversationArchive) ON (a.accountId, a.source);
|
|
293
|
+
|
|
285
294
|
CREATE VECTOR INDEX conversation_archive_embedding IF NOT EXISTS
|
|
286
295
|
FOR (a:ConversationArchive) ON (a.embedding)
|
|
287
296
|
OPTIONS {
|