@tianshu-ai/tianshu 0.4.71 → 0.4.80
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/packages/server/dist/chat/agent-loop.d.ts +3 -0
- package/packages/server/dist/chat/agent-loop.d.ts.map +1 -1
- package/packages/server/dist/chat/agent-loop.js +5 -1
- package/packages/server/dist/chat/agent-loop.js.map +1 -1
- package/packages/server/dist/chat/compact.d.ts +2 -1
- package/packages/server/dist/chat/compact.d.ts.map +1 -1
- package/packages/server/dist/chat/compact.js +14 -4
- package/packages/server/dist/chat/compact.js.map +1 -1
- package/packages/server/dist/chat/handler.d.ts +27 -0
- package/packages/server/dist/chat/handler.d.ts.map +1 -1
- package/packages/server/dist/chat/handler.js +187 -2
- package/packages/server/dist/chat/handler.js.map +1 -1
- package/packages/server/dist/chat/ws-protocol.d.ts +51 -0
- package/packages/server/dist/chat/ws-protocol.d.ts.map +1 -1
- package/packages/server/dist/chat/ws-protocol.js.map +1 -1
- package/packages/server/dist/core/config.d.ts +33 -0
- package/packages/server/dist/core/config.d.ts.map +1 -1
- package/packages/server/dist/core/config.js.map +1 -1
- package/packages/server/dist/core/index.d.ts +3 -2
- package/packages/server/dist/core/index.d.ts.map +1 -1
- package/packages/server/dist/core/index.js +1 -0
- package/packages/server/dist/core/index.js.map +1 -1
- package/packages/server/dist/core/model-retry.d.ts +95 -0
- package/packages/server/dist/core/model-retry.d.ts.map +1 -0
- package/packages/server/dist/core/model-retry.js +709 -0
- package/packages/server/dist/core/model-retry.js.map +1 -0
- package/packages/server/dist/core/pi-models.d.ts +15 -1
- package/packages/server/dist/core/pi-models.d.ts.map +1 -1
- package/packages/server/dist/core/pi-models.js +21 -14
- package/packages/server/dist/core/pi-models.js.map +1 -1
- package/packages/web/dist/assets/{bundle-web-D2QPyUVj.js → bundle-web-B7H1TxE7.js} +1 -1
- package/packages/web/dist/assets/index-BLmw-jUN.css +2 -0
- package/packages/web/dist/assets/index-DKoxlYCa.js +75 -0
- package/packages/web/dist/index.html +2 -2
- package/packages/web/dist/assets/index-Bx4LCow7.js +0 -75
- package/packages/web/dist/assets/index-D9-m-JTM.css +0 -2
package/package.json
CHANGED
|
@@ -54,6 +54,9 @@ export interface AgentLoopRequest {
|
|
|
54
54
|
signal?: AbortSignal;
|
|
55
55
|
/** Fires once after the worker session row has been inserted. */
|
|
56
56
|
onSessionStart?: (sessionId: string) => void;
|
|
57
|
+
/** Fires on each transient LLM-call retry (before backoff). Lets a
|
|
58
|
+
* caller surface retries in a worker/task UI. Always also logged. */
|
|
59
|
+
onModelRetry?: (notice: import("../core/model-retry.js").RetryNotice) => void;
|
|
57
60
|
/**
|
|
58
61
|
* Resume an existing worker session instead of creating a fresh
|
|
59
62
|
* one. When set, `initialUserMessage` is treated as a follow-up
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../../src/chat/agent-loop.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA2BtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAKlE,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,aAAa,CAAC;IACnB,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC7B,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5B,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC9B,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;oDAEgD;IAChD,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gCAAgC;IAChC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC;;;2CAGuC;IACvC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;yDAGqD;IACrD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;iEAE6D;IAC7D,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,gDAAgD;IAChD,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,QAAQ,CAAC,EAAE;QACT,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,6BAA6B;IAC7B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,iEAAiE;IACjE,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EACF,eAAe,GACf,eAAe,GACf,wBAAwB,GACxB,cAAc,GACd,iBAAiB,GACjB,SAAS,GACT,cAAc,GACd,WAAW,CAAC;CACjB;AAeD,wBAAsB,YAAY,CAChC,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../../src/chat/agent-loop.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA2BtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAKlE,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,aAAa,CAAC;IACnB,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC7B,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5B,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC9B,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;oDAEgD;IAChD,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gCAAgC;IAChC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC;;;2CAGuC;IACvC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;yDAGqD;IACrD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;iEAE6D;IAC7D,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,gDAAgD;IAChD,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,QAAQ,CAAC,EAAE;QACT,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,6BAA6B;IAC7B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,iEAAiE;IACjE,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C;0EACsE;IACtE,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,wBAAwB,EAAE,WAAW,KAAK,IAAI,CAAC;IAC9E;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EACF,eAAe,GACf,eAAe,GACf,wBAAwB,GACxB,cAAc,GACd,iBAAiB,GACjB,SAAS,GACT,cAAc,GACd,WAAW,CAAC;CACjB;AAeD,wBAAsB,YAAY,CAChC,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC,eAAe,CAAC,CA+lB1B"}
|
|
@@ -412,7 +412,11 @@ export async function runAgentLoop(req) {
|
|
|
412
412
|
tools: adapted.tools,
|
|
413
413
|
systemPrompt,
|
|
414
414
|
model: piModel,
|
|
415
|
-
models: buildModels(piModel, apiKey
|
|
415
|
+
models: buildModels(piModel, apiKey, {
|
|
416
|
+
resilience: ctx.config.models?.resilience,
|
|
417
|
+
reResolveApiKey: () => resolveApiKey(modelInfo),
|
|
418
|
+
onRetry: req.onModelRetry,
|
|
419
|
+
}),
|
|
416
420
|
});
|
|
417
421
|
// Watch harness events for two purposes:
|
|
418
422
|
// 1. Reset the watchdog whenever something happens (timestamps
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-loop.js","sourceRoot":"","sources":["../../src/chat/agent-loop.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-loop.js","sourceRoot":"","sources":["../../src/chat/agent-loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Message } from "@earendil-works/pi-ai";
|
|
2
2
|
import type { TenantContext } from "../core/index.js";
|
|
3
3
|
import { type ResolvedModelInfo } from "../core/index.js";
|
|
4
|
+
import type { ModelResilienceConfig } from "../core/config.js";
|
|
4
5
|
import type { ChatMessage, ChatSession } from "./messages.js";
|
|
5
6
|
/** Trigger threshold: compact when estimated input ≥ this fraction
|
|
6
7
|
* of the active model's context window. Per Yu's call (2026-06-05). */
|
|
@@ -29,7 +30,7 @@ export declare class CompactSkippedError extends Error {
|
|
|
29
30
|
constructor(reason: string);
|
|
30
31
|
}
|
|
31
32
|
/** Run a summarisation LLM call. Returns the plain text summary. */
|
|
32
|
-
export declare function summarise(toSummarise: Message[], modelInfo: ResolvedModelInfo, signal?: AbortSignal): Promise<{
|
|
33
|
+
export declare function summarise(toSummarise: Message[], modelInfo: ResolvedModelInfo, signal?: AbortSignal, resilienceCfg?: ModelResilienceConfig): Promise<{
|
|
33
34
|
summary: string;
|
|
34
35
|
durationMs: number;
|
|
35
36
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../src/chat/compact.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAGV,OAAO,EAKR,MAAM,uBAAuB,CAAC;AAG/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../src/chat/compact.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAGV,OAAO,EAKR,MAAM,uBAAuB,CAAC;AAG/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAG/D,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE9D;wEACwE;AACxE,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAuBrC,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,OAAO,EAAE,CAAC;IACvB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB;;6DAEyD;IACzD,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED;uBACuB;AACvB,wBAAgB,WAAW,CACzB,EAAE,EAAE,OAAO,EAAE,EACb,IAAI,EAAE,WAAW,EAAE,GAClB,WAAW,CA2Bb;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,WAAW,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,IAAI,EAAG,iBAAiB,CAAU;gBAC/B,MAAM,EAAE,MAAM;CAI3B;AAED,oEAAoE;AACpE,wBAAsB,SAAS,CAC7B,WAAW,EAAE,OAAO,EAAE,EACtB,SAAS,EAAE,iBAAiB,EAC5B,MAAM,CAAC,EAAE,WAAW,EACpB,aAAa,CAAC,EAAE,qBAAqB,GACpC,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAiDlD;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE;IACzC,GAAG,EAAE,aAAa,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,WAAW,CAAC;IACxB,EAAE,EAAE,OAAO,EAAE,CAAC;IACd,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,GAAG,OAAO,CAAC,aAAa,CAAC,CAgEzB;AAiCD;;qEAEqE;AACrE,wBAAgB,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAkC3D"}
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
import { completeSimple } from "@earendil-works/pi-ai/compat";
|
|
30
30
|
import { randomUUID } from "node:crypto";
|
|
31
31
|
import { buildModel, resolveApiKey, } from "../core/index.js";
|
|
32
|
+
import { resolveResilience, retryCompletion } from "../core/model-retry.js";
|
|
32
33
|
import { appendMessage } from "./messages.js";
|
|
33
34
|
/** Trigger threshold: compact when estimated input ≥ this fraction
|
|
34
35
|
* of the active model's context window. Per Yu's call (2026-06-05). */
|
|
@@ -89,13 +90,14 @@ export class CompactSkippedError extends Error {
|
|
|
89
90
|
}
|
|
90
91
|
}
|
|
91
92
|
/** Run a summarisation LLM call. Returns the plain text summary. */
|
|
92
|
-
export async function summarise(toSummarise, modelInfo, signal) {
|
|
93
|
+
export async function summarise(toSummarise, modelInfo, signal, resilienceCfg) {
|
|
93
94
|
const transcript = buildTranscript(toSummarise);
|
|
94
95
|
if (!transcript.trim()) {
|
|
95
96
|
return { summary: "(empty conversation)", durationMs: 0 };
|
|
96
97
|
}
|
|
97
98
|
const model = buildModel(modelInfo);
|
|
98
99
|
const apiKey = resolveApiKey(modelInfo);
|
|
100
|
+
const resilience = resolveResilience(resilienceCfg);
|
|
99
101
|
const ctx = {
|
|
100
102
|
systemPrompt: SUMMARY_PROMPT,
|
|
101
103
|
messages: [
|
|
@@ -112,9 +114,17 @@ export async function summarise(toSummarise, modelInfo, signal) {
|
|
|
112
114
|
],
|
|
113
115
|
};
|
|
114
116
|
const t0 = Date.now();
|
|
115
|
-
const result = (await completeSimple(model, ctx, {
|
|
117
|
+
const result = (await retryCompletion((key) => completeSimple(model, ctx, {
|
|
116
118
|
signal,
|
|
117
|
-
apiKey,
|
|
119
|
+
apiKey: key,
|
|
120
|
+
// Retry policy lives in retryCompletion (auth re-resolve +
|
|
121
|
+
// rate-limit aware); disable the SDK's own client retries so
|
|
122
|
+
// the two layers don't compound backoff.
|
|
123
|
+
maxRetries: 0,
|
|
124
|
+
}), apiKey, {
|
|
125
|
+
resilience,
|
|
126
|
+
reResolveApiKey: () => resolveApiKey(modelInfo),
|
|
127
|
+
label: `${modelInfo.providerId}/${modelInfo.modelId} (compact)`,
|
|
118
128
|
}));
|
|
119
129
|
const durationMs = Date.now() - t0;
|
|
120
130
|
const text = result.content
|
|
@@ -135,7 +145,7 @@ export async function compactSession(args) {
|
|
|
135
145
|
if (plan.toSummarise.length === 0) {
|
|
136
146
|
throw new CompactSkippedError("nothing to summarise (≤ KEEP_TAIL_MIN messages)");
|
|
137
147
|
}
|
|
138
|
-
const { summary, durationMs } = await summarise(plan.toSummarise, modelInfo, signal);
|
|
148
|
+
const { summary, durationMs } = await summarise(plan.toSummarise, modelInfo, signal, ctx.config.models?.resilience);
|
|
139
149
|
// Mark the old session compacted + stash the summary for audit.
|
|
140
150
|
ctx.db
|
|
141
151
|
.prepare(`UPDATE sessions
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compact.js","sourceRoot":"","sources":["../../src/chat/compact.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,EAAE;AACF,mDAAmD;AACnD,EAAE;AACF,oEAAoE;AACpE,sEAAsE;AACtE,qBAAqB;AACrB,sDAAsD;AACtD,EAAE;AACF,oBAAoB;AACpB,qDAAqD;AACrD,uEAAuE;AACvE,+CAA+C;AAC/C,uEAAuE;AACvE,4BAA4B;AAC5B,oEAAoE;AACpE,mEAAmE;AACnE,8BAA8B;AAC9B,sEAAsE;AACtE,iEAAiE;AACjE,EAAE;AACF,kEAAkE;AAClE,sEAAsE;AACtE,oEAAoE;AAEpE,kEAAkE;AAClE,yDAAyD;AACzD,mEAAmE;AACnE,iEAAiE;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAU9D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EACL,UAAU,EACV,aAAa,GAEd,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"compact.js","sourceRoot":"","sources":["../../src/chat/compact.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,EAAE;AACF,mDAAmD;AACnD,EAAE;AACF,oEAAoE;AACpE,sEAAsE;AACtE,qBAAqB;AACrB,sDAAsD;AACtD,EAAE;AACF,oBAAoB;AACpB,qDAAqD;AACrD,uEAAuE;AACvE,+CAA+C;AAC/C,uEAAuE;AACvE,4BAA4B;AAC5B,oEAAoE;AACpE,mEAAmE;AACnE,8BAA8B;AAC9B,sEAAsE;AACtE,iEAAiE;AACjE,EAAE;AACF,kEAAkE;AAClE,sEAAsE;AACtE,oEAAoE;AAEpE,kEAAkE;AAClE,yDAAyD;AACzD,mEAAmE;AACnE,iEAAiE;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAU9D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EACL,UAAU,EACV,aAAa,GAEd,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG9C;wEACwE;AACxE,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAErC,+DAA+D;AAC/D,MAAM,aAAa,GAAG,CAAC,CAAC;AAExB,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;6EAgBsD,CAAC;AAW9E;uBACuB;AACvB,MAAM,UAAU,WAAW,CACzB,EAAa,EACb,IAAmB;IAEnB,IAAI,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,EAAE,CAAC,MAAM,IAAI,aAAa,EAAE,CAAC;QAC/B,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACvD,CAAC;IACD,gEAAgE;IAChE,+DAA+D;IAC/D,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;IAClB,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,IAAI,EAAE,CAAC,CAAC,CAAE,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3B,QAAQ,GAAG,CAAC,CAAC;YACb,MAAM;QACR,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GACX,QAAQ,IAAI,CAAC;QACX,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,GAAG,aAAa,CAAC;QAC/C,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,aAAa,CAAC;IAChC,OAAO;QACL,WAAW,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;QACjC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;QACvB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;KAC9B,CAAC;AACJ,CAAC;AAWD,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACnC,IAAI,GAAG,iBAA0B,CAAC;IAC3C,YAAY,MAAc;QACxB,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,oEAAoE;AACpE,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,WAAsB,EACtB,SAA4B,EAC5B,MAAoB,EACpB,aAAqC;IAErC,MAAM,UAAU,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IAChD,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;QACvB,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;IAC5D,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;IACpD,MAAM,GAAG,GAAY;QACnB,YAAY,EAAE,cAAc;QAC5B,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,wCAAwC,UAAU,EAAE;qBAC5C;iBACjB;gBACD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACP;SACjB;KACF,CAAC;IACF,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACtB,MAAM,MAAM,GAAG,CAAC,MAAM,eAAe,CACnC,CAAC,GAAG,EAAE,EAAE,CACN,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE;QACzB,MAAM;QACN,MAAM,EAAE,GAAG;QACX,2DAA2D;QAC3D,6DAA6D;QAC7D,yCAAyC;QACzC,UAAU,EAAE,CAAC;KACd,CAA8B,EACjC,MAAM,EACN;QACE,UAAU;QACV,eAAe,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC;QAC/C,KAAK,EAAE,GAAG,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,OAAO,YAAY;KAChE,CACF,CAAqB,CAAC;IACvB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO;SACxB,MAAM,CAAC,CAAC,CAAC,EAAoB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;SAClD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,IAAI,CAAC,IAAI,CAAC;SACV,IAAI,EAAE,CAAC;IACV,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC3E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAQpC;IACC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACtE,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACnC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,mBAAmB,CAC3B,iDAAiD,CAClD,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,SAAS,CAC7C,IAAI,CAAC,WAAW,EAChB,SAAS,EACT,MAAM,EACN,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAC9B,CAAC;IAEF,gEAAgE;IAChE,GAAG,CAAC,EAAE;SACH,OAAO,CACN;;kBAEY,CACb;SACA,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;IAE3C,iEAAiE;IACjE,kBAAkB;IAClB,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAExD,sDAAsD;IACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5B,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE;QAC7B,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,wCAAwC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,QAAQ,OAAO,EAAE;KACnG,CAAC,CAAC;IACH,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE;QAC7B,IAAI,EAAE,WAAW;QACjB,OAAO,EACL,iFAAiF;KACpF,CAAC,CAAC;IAEH,kEAAkE;IAClE,2DAA2D;IAC3D,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,EAAE,GAAG,OAAO,UAAU,EAAE,EAAE,CAAC;QACjC,GAAG,CAAC,EAAE;aACH,OAAO,CAIN;gCACwB,CACzB;aACA,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO;QACL,OAAO;QACP,UAAU;QACV,YAAY,EAAE,UAAU,CAAC,EAAE;QAC3B,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM;QACxC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;QAC3B,UAAU;KACX,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAClB,GAAkB,EAClB,MAAc,EACd,MAAmB;IAEnB,MAAM,EAAE,GAAG,WAAW,UAAU,EAAE,EAAE,CAAC;IACrC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,GAAG,CAAC,EAAE;SACH,OAAO,CAIN;iCAC2B,CAC5B;SACA,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IACrD,OAAO;QACL,EAAE;QACF,MAAM;QACN,QAAQ,EAAE,MAAM,CAAC,EAAE;QACnB,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,GAAG;KACf,CAAC;AACJ,CAAC;AAED,qEAAqE;AAErE,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAElC;;qEAEqE;AACrE,MAAM,UAAU,eAAe,CAAC,QAAmB;IACjD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,aAAa,iBAAiB,CAAC,CAAgB,CAAC,EAAE,CAAC,CAAC;QACjE,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,CAAC,GAAG,CAAqB,CAAC;YAChC,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC1B,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI;oBAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;qBAC/C,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBAC/B,MAAM,EAAE,GAAG,CAAa,CAAC;oBACzB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBAC9D,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,SAAS,IAAI,GAAG,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzE,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACnC,MAAM,EAAE,GAAG,CAAsB,CAAC;YAClC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO;iBACpB,MAAM,CAAC,CAAC,CAAC,EAAoB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;iBAClD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;iBAClB,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,OAAO,GACX,IAAI,CAAC,MAAM,GAAG,qBAAqB;oBACjC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,qBAAqB,CAAC;wBACpC,UAAU,IAAI,CAAC,MAAM,GAAG,qBAAqB,SAAS;oBACxD,CAAC,CAAC,IAAI,CAAC;gBACX,KAAK,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,QAAQ,MAAM,OAAO,EAAE,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAc;IACvC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,OAAO,CAAC;IACpD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACzC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,CAAmE,CAAC;QAC9E,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aAC/C,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,WAAW,GAAG,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -49,8 +49,35 @@ interface RunPromptArgs {
|
|
|
49
49
|
* somehow still over the window. Not part of the public contract.
|
|
50
50
|
*/
|
|
51
51
|
_afterCompactFallback?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Resume the last turn of the session via `harness.continue()`
|
|
54
|
+
* instead of `harness.prompt()`. No new user message is inserted;
|
|
55
|
+
* `content` / `attachments` are ignored. Used by the client's
|
|
56
|
+
* auto-retry loop after a failed / interrupted run so history keeps
|
|
57
|
+
* a single user message. No-op (clean stream_end) if the session's
|
|
58
|
+
* last message isn't a user/tool-result message.
|
|
59
|
+
*/
|
|
60
|
+
retryLastTurn?: boolean;
|
|
52
61
|
}
|
|
53
62
|
export declare function runPrompt(args: RunPromptArgs): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* Retry helper. A failed / interrupted turn leaves the user's prompt
|
|
65
|
+
* as the transcript tail (the assistant reply never completed, or is
|
|
66
|
+
* a partial). To resume WITHOUT duplicating the user message, we:
|
|
67
|
+
* 1. find the trailing turn (from the leaf back to — but not
|
|
68
|
+
* including — the last COMPLETED assistant reply),
|
|
69
|
+
* 2. confirm it contains a user message (else nothing to resume),
|
|
70
|
+
* 3. delete those trailing entries and re-point the session leaf at
|
|
71
|
+
* the prior completed entry,
|
|
72
|
+
* 4. return the user message text so the caller re-runs it via a
|
|
73
|
+
* single fresh `prompt()`.
|
|
74
|
+
* Net effect: history keeps exactly one user message for the turn.
|
|
75
|
+
*
|
|
76
|
+
* Returns null when there's nothing resumable (e.g. the last turn
|
|
77
|
+
* actually completed, or the session is empty) — the caller then ends
|
|
78
|
+
* the stream cleanly instead of erroring.
|
|
79
|
+
*/
|
|
80
|
+
export declare function takeResumableUserPrompt(ctx: TenantContext, sessionId: string): string | null;
|
|
54
81
|
export declare function loadHostSkills(): LoadedSkill[];
|
|
55
82
|
export type { ChatMessage };
|
|
56
83
|
//# sourceMappingURL=handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/chat/handler.ts"],"names":[],"mappings":"AAgDA,OAAO,EACL,mBAAmB,EACnB,cAAc,EAEd,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC9B,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,GAC9B,CAAC;AAGF,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,wBAAwB,EACxB,2BAA2B,EAC3B,2BAA2B,EAC3B,yBAAyB,EACzB,6BAA6B,EAC7B,2BAA2B,EAC3B,4BAA4B,EAC5B,KAAK,oBAAoB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,EAOL,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAiB1B,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAML,KAAK,WAAW,EAEjB,MAAM,eAAe,CAAC;AAMvB,OAAO,EAGL,KAAK,SAAS,EAEd,KAAK,cAAc,EAEpB,MAAM,kBAAkB,CAAC;AAU1B,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,aAAa,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,CAAC;IAClB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,6BAA6B,EAAE,cAAc,CAAC;IACtE,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/chat/handler.ts"],"names":[],"mappings":"AAgDA,OAAO,EACL,mBAAmB,EACnB,cAAc,EAEd,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC9B,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,GAC9B,CAAC;AAGF,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,wBAAwB,EACxB,2BAA2B,EAC3B,2BAA2B,EAC3B,yBAAyB,EACzB,6BAA6B,EAC7B,2BAA2B,EAC3B,4BAA4B,EAC5B,KAAK,oBAAoB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,EAOL,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAiB1B,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAML,KAAK,WAAW,EAEjB,MAAM,eAAe,CAAC;AAMvB,OAAO,EAGL,KAAK,SAAS,EAEd,KAAK,cAAc,EAEpB,MAAM,kBAAkB,CAAC;AAU1B,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,aAAa,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,CAAC;IAClB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,6BAA6B,EAAE,cAAc,CAAC;IACtE,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CAsL7D;AAED,UAAU,aAAa;IACrB,GAAG,EAAE,aAAa,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,6BAA6B,EAAE,cAAc,CAAC;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,OAAO,eAAe,EAAE,WAAW,CAAC;IAC9C;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA8jBlE;AA8SD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,aAAa,EAClB,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI,CA0Ef;AA6QD,wBAAgB,cAAc,IAAI,WAAW,EAAE,CAkC9C;AAGD,YAAY,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -183,6 +183,31 @@ export function attachChatHandler(opts) {
|
|
|
183
183
|
});
|
|
184
184
|
return;
|
|
185
185
|
}
|
|
186
|
+
case "retry": {
|
|
187
|
+
// Resume the last turn of the current session in place (no new
|
|
188
|
+
// user message). The client's auto-retry loop uses this so a
|
|
189
|
+
// failed / interrupted run doesn't spawn duplicate prompts.
|
|
190
|
+
if (aborter)
|
|
191
|
+
aborter.abort();
|
|
192
|
+
aborter = new AbortController();
|
|
193
|
+
runPrompt({
|
|
194
|
+
ctx,
|
|
195
|
+
userId,
|
|
196
|
+
send,
|
|
197
|
+
content: "",
|
|
198
|
+
retryLastTurn: true,
|
|
199
|
+
modelId: parsed.modelId,
|
|
200
|
+
signal: aborter.signal,
|
|
201
|
+
pluginRegistry,
|
|
202
|
+
homeDir,
|
|
203
|
+
}).catch((err) => {
|
|
204
|
+
send({
|
|
205
|
+
type: "stream_error",
|
|
206
|
+
reason: err instanceof Error ? err.message : String(err),
|
|
207
|
+
});
|
|
208
|
+
});
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
186
211
|
case "abort": {
|
|
187
212
|
aborter?.abort();
|
|
188
213
|
aborter = null;
|
|
@@ -198,6 +223,7 @@ export function attachChatHandler(opts) {
|
|
|
198
223
|
}
|
|
199
224
|
export async function runPrompt(args) {
|
|
200
225
|
const { ctx, userId, send, content, modelId, attachments, signal, pluginRegistry, homeDir } = args;
|
|
226
|
+
const retryLastTurn = args.retryLastTurn ?? false;
|
|
201
227
|
const wireOpts = makeWireOpts(ctx);
|
|
202
228
|
const repo = new SqliteSessionRepo(ctx);
|
|
203
229
|
// Caller-provided session wins; for the chat shell this stays
|
|
@@ -410,7 +436,29 @@ export async function runPrompt(args) {
|
|
|
410
436
|
tools: adapted.tools,
|
|
411
437
|
systemPrompt,
|
|
412
438
|
model: piModel,
|
|
413
|
-
models: buildModels(piModel, apiKey
|
|
439
|
+
models: buildModels(piModel, apiKey, {
|
|
440
|
+
resilience: ctx.config.models?.resilience,
|
|
441
|
+
reResolveApiKey: () => resolveApiKey(modelInfo),
|
|
442
|
+
onRetry: (n) => {
|
|
443
|
+
// Rebuilding after partial content: tell the client to drop the
|
|
444
|
+
// half-streamed bubble before the replay's deltas land, so the
|
|
445
|
+
// answer isn't duplicated.
|
|
446
|
+
if (n.contentStreamed) {
|
|
447
|
+
send({ type: "stream_reset", sessionId: session.id });
|
|
448
|
+
}
|
|
449
|
+
send({
|
|
450
|
+
type: "model_retry",
|
|
451
|
+
attempt: n.attempt,
|
|
452
|
+
maxAttempts: n.maxAttempts,
|
|
453
|
+
kind: n.kind,
|
|
454
|
+
delayMs: n.delayMs,
|
|
455
|
+
rateLimited: n.rateLimited,
|
|
456
|
+
message: n.message,
|
|
457
|
+
contentStreamed: n.contentStreamed,
|
|
458
|
+
sessionId: session.id,
|
|
459
|
+
});
|
|
460
|
+
},
|
|
461
|
+
}),
|
|
414
462
|
});
|
|
415
463
|
// External abort → harness.abort()
|
|
416
464
|
const onAbort = () => void harness.abort();
|
|
@@ -535,7 +583,22 @@ export async function runPrompt(args) {
|
|
|
535
583
|
// actionable error.
|
|
536
584
|
throw new HandledTurnAbort();
|
|
537
585
|
}
|
|
538
|
-
|
|
586
|
+
if (retryLastTurn) {
|
|
587
|
+
// Resume the last turn WITHOUT inserting a duplicate user
|
|
588
|
+
// message. The failed/interrupted turn left the user's message
|
|
589
|
+
// as the transcript leaf; we drop that dangling turn and re-run
|
|
590
|
+
// it from the same content, so history keeps exactly one user
|
|
591
|
+
// message. If there's nothing resumable (last message is an
|
|
592
|
+
// assistant reply => the turn actually finished), end cleanly.
|
|
593
|
+
const resume = takeResumableUserPrompt(ctx, session.id);
|
|
594
|
+
if (!resume) {
|
|
595
|
+
throw new HandledTurnAbort();
|
|
596
|
+
}
|
|
597
|
+
await harness.prompt(resume, images.length > 0 ? { images } : undefined);
|
|
598
|
+
}
|
|
599
|
+
else {
|
|
600
|
+
await harness.prompt(promptText, images.length > 0 ? { images } : undefined);
|
|
601
|
+
}
|
|
539
602
|
await harness.waitForIdle();
|
|
540
603
|
}
|
|
541
604
|
catch (err) {
|
|
@@ -895,6 +958,128 @@ function readBackLatestMessage(ctx, sessionId, role) {
|
|
|
895
958
|
createdAt: row.created_at,
|
|
896
959
|
};
|
|
897
960
|
}
|
|
961
|
+
/**
|
|
962
|
+
* Retry helper. A failed / interrupted turn leaves the user's prompt
|
|
963
|
+
* as the transcript tail (the assistant reply never completed, or is
|
|
964
|
+
* a partial). To resume WITHOUT duplicating the user message, we:
|
|
965
|
+
* 1. find the trailing turn (from the leaf back to — but not
|
|
966
|
+
* including — the last COMPLETED assistant reply),
|
|
967
|
+
* 2. confirm it contains a user message (else nothing to resume),
|
|
968
|
+
* 3. delete those trailing entries and re-point the session leaf at
|
|
969
|
+
* the prior completed entry,
|
|
970
|
+
* 4. return the user message text so the caller re-runs it via a
|
|
971
|
+
* single fresh `prompt()`.
|
|
972
|
+
* Net effect: history keeps exactly one user message for the turn.
|
|
973
|
+
*
|
|
974
|
+
* Returns null when there's nothing resumable (e.g. the last turn
|
|
975
|
+
* actually completed, or the session is empty) — the caller then ends
|
|
976
|
+
* the stream cleanly instead of erroring.
|
|
977
|
+
*/
|
|
978
|
+
export function takeResumableUserPrompt(ctx, sessionId) {
|
|
979
|
+
// Pull the message chain newest-first. entry_type='message' skips
|
|
980
|
+
// compaction/system tree entries; we only reason about turns.
|
|
981
|
+
const rows = ctx.db
|
|
982
|
+
.prepare(`SELECT id, role, content
|
|
983
|
+
FROM messages
|
|
984
|
+
WHERE session_id = ? AND entry_type = 'message'
|
|
985
|
+
ORDER BY created_at DESC, rowid DESC`)
|
|
986
|
+
.all(sessionId);
|
|
987
|
+
if (rows.length === 0)
|
|
988
|
+
return null;
|
|
989
|
+
// Walk newest-first, collecting the trailing turn's entries until we
|
|
990
|
+
// reach a SUCCESSFULLY-COMPLETED assistant reply (= the previous
|
|
991
|
+
// turn's end). An assistant row whose persisted message carries
|
|
992
|
+
// stopReason "error"/"aborted" is a failed partial (e.g. the
|
|
993
|
+
// provider "terminated" the stream mid-sentence) — it belongs to the
|
|
994
|
+
// trailing failed turn and must be dropped, NOT treated as a
|
|
995
|
+
// completion boundary. Missing that was why a terminated turn never
|
|
996
|
+
// resumed: takeResumableUserPrompt saw the partial text, called it
|
|
997
|
+
// "done", and refused to retry.
|
|
998
|
+
const toDelete = [];
|
|
999
|
+
let userText = null;
|
|
1000
|
+
let newLeafId = null;
|
|
1001
|
+
for (const row of rows) {
|
|
1002
|
+
if (row.role === "assistant" &&
|
|
1003
|
+
row.content.trim().length > 0 &&
|
|
1004
|
+
!assistantRowFailed(row.content)) {
|
|
1005
|
+
// Boundary: previous turn's completed reply. Stop; this becomes
|
|
1006
|
+
// the new leaf.
|
|
1007
|
+
newLeafId = row.id;
|
|
1008
|
+
break;
|
|
1009
|
+
}
|
|
1010
|
+
// Part of the trailing (failed) turn — includes failed/partial
|
|
1011
|
+
// assistant rows and tool rows.
|
|
1012
|
+
toDelete.push(row.id);
|
|
1013
|
+
if (row.role === "user" && userText === null) {
|
|
1014
|
+
// The user prompt we'll resume (first user seen scanning back).
|
|
1015
|
+
// CRITICAL: user rows are stored as a full AgentMessage JSON
|
|
1016
|
+
// ({"role":"user","content":[{"type":"text","text":"…"}]}).
|
|
1017
|
+
// We must extract the PLAIN TEXT here — re-running prompt() with
|
|
1018
|
+
// the raw JSON string would re-serialize it into another
|
|
1019
|
+
// AgentMessage, nesting the JSON one layer deeper on every
|
|
1020
|
+
// retry (the "repeated JSON messages" bug). Legacy rows may be
|
|
1021
|
+
// plain text; extractUserText handles both.
|
|
1022
|
+
userText = extractUserText(row.content);
|
|
1023
|
+
}
|
|
1024
|
+
}
|
|
1025
|
+
if (userText === null)
|
|
1026
|
+
return null; // nothing to resume
|
|
1027
|
+
// Drop the dangling turn and re-point the leaf at the prior entry.
|
|
1028
|
+
const tx = ctx.db.transaction(() => {
|
|
1029
|
+
const del = ctx.db.prepare(`DELETE FROM messages WHERE id = ?`);
|
|
1030
|
+
for (const id of toDelete)
|
|
1031
|
+
del.run(id);
|
|
1032
|
+
ctx.db
|
|
1033
|
+
.prepare(`UPDATE sessions SET leaf_id = ? WHERE id = ?`)
|
|
1034
|
+
.run(newLeafId, sessionId);
|
|
1035
|
+
});
|
|
1036
|
+
tx();
|
|
1037
|
+
return userText;
|
|
1038
|
+
}
|
|
1039
|
+
/** Extract the plain user text from a persisted user row. Rows are
|
|
1040
|
+
* stored as a full AgentMessage JSON
|
|
1041
|
+
* ({"role":"user","content":[{"type":"text","text":"…"}], …}); we
|
|
1042
|
+
* concat the text blocks. Legacy rows may already be plain text —
|
|
1043
|
+
* return them as-is. This MUST be used before re-running prompt() on
|
|
1044
|
+
* a resumed turn, else the raw JSON gets re-wrapped into a new
|
|
1045
|
+
* AgentMessage and nests one layer deeper each retry. */
|
|
1046
|
+
function extractUserText(content) {
|
|
1047
|
+
const trimmed = content.trim();
|
|
1048
|
+
if (!trimmed.startsWith("{") && !trimmed.startsWith("[")) {
|
|
1049
|
+
return content; // legacy plain-text row
|
|
1050
|
+
}
|
|
1051
|
+
try {
|
|
1052
|
+
const parsed = JSON.parse(content);
|
|
1053
|
+
if (typeof parsed.content === "string")
|
|
1054
|
+
return parsed.content;
|
|
1055
|
+
if (Array.isArray(parsed.content)) {
|
|
1056
|
+
const text = parsed.content
|
|
1057
|
+
.filter((b) => b && b.type === "text" && typeof b.text === "string")
|
|
1058
|
+
.map((b) => b.text)
|
|
1059
|
+
.join("");
|
|
1060
|
+
// If there were only non-text blocks (e.g. images), fall back to
|
|
1061
|
+
// empty string rather than the raw JSON.
|
|
1062
|
+
return text;
|
|
1063
|
+
}
|
|
1064
|
+
return content;
|
|
1065
|
+
}
|
|
1066
|
+
catch {
|
|
1067
|
+
return content; // not JSON after all — treat as plain text
|
|
1068
|
+
}
|
|
1069
|
+
}
|
|
1070
|
+
/** True iff a persisted assistant row's JSON carries a failure
|
|
1071
|
+
* stopReason ("error" / "aborted"). Such a row is a partial/aborted
|
|
1072
|
+
* reply, not a completed turn. Non-JSON or missing stopReason → not
|
|
1073
|
+
* failed (treat as a normal completed reply). */
|
|
1074
|
+
function assistantRowFailed(content) {
|
|
1075
|
+
try {
|
|
1076
|
+
const parsed = JSON.parse(content);
|
|
1077
|
+
return parsed.stopReason === "error" || parsed.stopReason === "aborted";
|
|
1078
|
+
}
|
|
1079
|
+
catch {
|
|
1080
|
+
return false;
|
|
1081
|
+
}
|
|
1082
|
+
}
|
|
898
1083
|
/** Build a `ToWireOpts` bound to the current tenant config. The
|
|
899
1084
|
* resolver lets `toWire` stamp `meta.contextWindow` on every
|
|
900
1085
|
* assistant row without each caller having to do the lookup. */
|