@koda-sl/baker-bridge 0.71.0-dev.724bad136 → 0.71.0-dev.b1beafb2c.bacce491

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.
@@ -1,41 +1,71 @@
1
1
  import { z } from "zod";
2
2
  export declare const CONNECTION_INPUT_TOOL_NAME = "mcp__baker_ui__request_connection";
3
3
  /**
4
- * Connectable data platforms. Meta and X Ads are deliberately absent — they are
5
- * still `comingSoon`, so asking the user to connect them would promise a
6
- * capability that isn't there.
4
+ * Connectable data platforms — every provider with a working OAuth flow.
5
+ *
6
+ * Meta and X Ads are deliberately absent: they are still `comingSoon`, so asking
7
+ * the user to connect them would promise a capability that isn't there.
8
+ *
9
+ * This list is the schema the agent actually sees, and `normalizeConnectionInputToolInput`
10
+ * drops anything outside it **silently** — so a provider missing here is not a
11
+ * degraded tab, it is no tab at all. It drifted once: the backend, the setup
12
+ * link and the tool docs all offered HubSpot while this tuple still held five
13
+ * platforms, so the CRM — the one system a lead funnel is reconstructed from —
14
+ * could not be asked for in the conversation that needed it, and clients were
15
+ * sent to Settings for a platform we integrate. `connection-input.test.ts` reads
16
+ * the backend's `CONNECTION_PLATFORMS` off disk and fails if the two diverge
17
+ * again; the tuple is spelled out rather than imported because the bridge ships
18
+ * as a standalone package with no workspace dependencies.
7
19
  */
8
- export declare const CONNECTION_PLATFORMS: readonly ["google-ads", "linkedin", "google-analytics", "google-search-console", "google-tag-manager"];
20
+ export declare const CONNECTION_PLATFORMS: readonly ["google-ads", "linkedin", "google-analytics", "google-search-console", "google-tag-manager", "hubspot", "pipedrive", "highlevel", "calendly", "savvycal", "google-drive"];
9
21
  export type ConnectionPlatform = (typeof CONNECTION_PLATFORMS)[number];
10
22
  declare const connectionRequestShape: z.ZodObject<{
11
23
  platform: z.ZodEnum<{
24
+ calendly: "calendly";
12
25
  "google-ads": "google-ads";
13
26
  "google-analytics": "google-analytics";
27
+ "google-drive": "google-drive";
14
28
  "google-search-console": "google-search-console";
15
29
  "google-tag-manager": "google-tag-manager";
30
+ highlevel: "highlevel";
31
+ hubspot: "hubspot";
16
32
  linkedin: "linkedin";
33
+ pipedrive: "pipedrive";
34
+ savvycal: "savvycal";
17
35
  }>;
18
36
  reason: z.ZodString;
19
37
  }, z.core.$strip>;
20
38
  export declare const connectionInputResultSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
21
39
  status: z.ZodLiteral<"connected">;
22
40
  platform: z.ZodEnum<{
41
+ calendly: "calendly";
23
42
  "google-ads": "google-ads";
24
43
  "google-analytics": "google-analytics";
44
+ "google-drive": "google-drive";
25
45
  "google-search-console": "google-search-console";
26
46
  "google-tag-manager": "google-tag-manager";
47
+ highlevel: "highlevel";
48
+ hubspot: "hubspot";
27
49
  linkedin: "linkedin";
50
+ pipedrive: "pipedrive";
51
+ savvycal: "savvycal";
28
52
  }>;
29
53
  accountLabel: z.ZodOptional<z.ZodString>;
30
54
  selected: z.ZodArray<z.ZodString>;
31
55
  }, z.core.$strip>, z.ZodObject<{
32
56
  status: z.ZodLiteral<"declined">;
33
57
  platform: z.ZodEnum<{
58
+ calendly: "calendly";
34
59
  "google-ads": "google-ads";
35
60
  "google-analytics": "google-analytics";
61
+ "google-drive": "google-drive";
36
62
  "google-search-console": "google-search-console";
37
63
  "google-tag-manager": "google-tag-manager";
64
+ highlevel: "highlevel";
65
+ hubspot: "hubspot";
38
66
  linkedin: "linkedin";
67
+ pipedrive: "pipedrive";
68
+ savvycal: "savvycal";
39
69
  }>;
40
70
  reason: z.ZodOptional<z.ZodString>;
41
71
  }, z.core.$strip>], "status">;
@@ -44,22 +74,34 @@ export declare const connectionInputResolutionSchema: z.ZodObject<{
44
74
  results: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
45
75
  status: z.ZodLiteral<"connected">;
46
76
  platform: z.ZodEnum<{
77
+ calendly: "calendly";
47
78
  "google-ads": "google-ads";
48
79
  "google-analytics": "google-analytics";
80
+ "google-drive": "google-drive";
49
81
  "google-search-console": "google-search-console";
50
82
  "google-tag-manager": "google-tag-manager";
83
+ highlevel: "highlevel";
84
+ hubspot: "hubspot";
51
85
  linkedin: "linkedin";
86
+ pipedrive: "pipedrive";
87
+ savvycal: "savvycal";
52
88
  }>;
53
89
  accountLabel: z.ZodOptional<z.ZodString>;
54
90
  selected: z.ZodArray<z.ZodString>;
55
91
  }, z.core.$strip>, z.ZodObject<{
56
92
  status: z.ZodLiteral<"declined">;
57
93
  platform: z.ZodEnum<{
94
+ calendly: "calendly";
58
95
  "google-ads": "google-ads";
59
96
  "google-analytics": "google-analytics";
97
+ "google-drive": "google-drive";
60
98
  "google-search-console": "google-search-console";
61
99
  "google-tag-manager": "google-tag-manager";
100
+ highlevel: "highlevel";
101
+ hubspot: "hubspot";
62
102
  linkedin: "linkedin";
103
+ pipedrive: "pipedrive";
104
+ savvycal: "savvycal";
63
105
  }>;
64
106
  reason: z.ZodOptional<z.ZodString>;
65
107
  }, z.core.$strip>], "status">>;
@@ -78,11 +120,17 @@ export declare function normalizeConnectionInputToolInput(input: unknown): Conne
78
120
  export declare function createConnectionInputTool(): import("@anthropic-ai/claude-agent-sdk").SdkMcpToolDefinition<{
79
121
  connections: z.ZodArray<z.ZodObject<{
80
122
  platform: z.ZodEnum<{
123
+ calendly: "calendly";
81
124
  "google-ads": "google-ads";
82
125
  "google-analytics": "google-analytics";
126
+ "google-drive": "google-drive";
83
127
  "google-search-console": "google-search-console";
84
128
  "google-tag-manager": "google-tag-manager";
129
+ highlevel: "highlevel";
130
+ hubspot: "hubspot";
85
131
  linkedin: "linkedin";
132
+ pipedrive: "pipedrive";
133
+ savvycal: "savvycal";
86
134
  }>;
87
135
  reason: z.ZodString;
88
136
  }, z.core.$strip>>;
@@ -1 +1 @@
1
- {"version":3,"file":"connection-input.d.ts","sourceRoot":"","sources":["../../src/hono/connection-input.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,0BAA0B,sCAAsC,CAAC;AAE9E;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,YAC/B,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,CACZ,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE,QAAA,MAAM,sBAAsB;;;;;;;;;iBAK1B,CAAC;AAgBH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;6BActC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;iBAA8D,CAAC;AAC3G,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF,wFAAwF;AACxF,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,OAAO,GAAG,yBAAyB,GAAG,IAAI,CAG/F;AAED,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE5E;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,EAAE,CAgB1F;AASD,wBAAgB,yBAAyB;;;;;;;;;;;;GAUxC"}
1
+ {"version":3,"file":"connection-input.d.ts","sourceRoot":"","sources":["../../src/hono/connection-input.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,0BAA0B,sCAAsC,CAAC;AAE9E;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,oBAAoB,YAC/B,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,SAAS,EACT,WAAW,EACX,WAAW,EACX,UAAU,EACV,UAAU,EACV,cAAc,CACN,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;iBAK1B,CAAC;AAgBH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BActC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA8D,CAAC;AAC3G,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF,wFAAwF;AACxF,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,OAAO,GAAG,yBAAyB,GAAG,IAAI,CAG/F;AAED,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE5E;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,EAAE,CAgB1F;AASD,wBAAgB,yBAAyB;;;;;;;;;;;;;;;;;;GAUxC"}
@@ -19,9 +19,21 @@ import { z } from "zod";
19
19
  import { toToolInputArray } from "./tool-input.js";
20
20
  export const CONNECTION_INPUT_TOOL_NAME = "mcp__baker_ui__request_connection";
21
21
  /**
22
- * Connectable data platforms. Meta and X Ads are deliberately absent — they are
23
- * still `comingSoon`, so asking the user to connect them would promise a
24
- * capability that isn't there.
22
+ * Connectable data platforms — every provider with a working OAuth flow.
23
+ *
24
+ * Meta and X Ads are deliberately absent: they are still `comingSoon`, so asking
25
+ * the user to connect them would promise a capability that isn't there.
26
+ *
27
+ * This list is the schema the agent actually sees, and `normalizeConnectionInputToolInput`
28
+ * drops anything outside it **silently** — so a provider missing here is not a
29
+ * degraded tab, it is no tab at all. It drifted once: the backend, the setup
30
+ * link and the tool docs all offered HubSpot while this tuple still held five
31
+ * platforms, so the CRM — the one system a lead funnel is reconstructed from —
32
+ * could not be asked for in the conversation that needed it, and clients were
33
+ * sent to Settings for a platform we integrate. `connection-input.test.ts` reads
34
+ * the backend's `CONNECTION_PLATFORMS` off disk and fails if the two diverge
35
+ * again; the tuple is spelled out rather than imported because the bridge ships
36
+ * as a standalone package with no workspace dependencies.
25
37
  */
26
38
  export const CONNECTION_PLATFORMS = [
27
39
  "google-ads",
@@ -29,6 +41,12 @@ export const CONNECTION_PLATFORMS = [
29
41
  "google-analytics",
30
42
  "google-search-console",
31
43
  "google-tag-manager",
44
+ "hubspot",
45
+ "pipedrive",
46
+ "highlevel",
47
+ "calendly",
48
+ "savvycal",
49
+ "google-drive",
32
50
  ];
33
51
  const connectionRequestShape = z.object({
34
52
  platform: z.enum(CONNECTION_PLATFORMS).describe("Which platform the user needs to connect"),
@@ -93,7 +111,7 @@ export function normalizeConnectionInputToolInput(input) {
93
111
  return requests;
94
112
  }
95
113
  const CONNECTION_INPUT_TOOL_DESCRIPTION = [
96
- "Ask the user to connect a data platform — Google Ads, LinkedIn Ads, Google Analytics 4, Google Search Console, or Google Tag Manager — and pick which accounts Baker may read. BLOCKS until they resolve it in the dashboard.",
114
+ "Ask the user to connect a data platform — Google Ads, LinkedIn Ads, Google Analytics 4, Google Search Console, Google Tag Manager, HubSpot, Pipedrive, GoHighLevel, Calendly, SavvyCal, or Google Drive — and pick which accounts Baker may read. BLOCKS until they resolve it in the dashboard.",
97
115
  "Use it the moment a command tells you the platform isn't connected, instead of telling the user to go to Settings. Each entry in `connections` becomes a tab, so ask for everything the task needs in ONE call.",
98
116
  "`reason` is shown to the user: say what connecting unlocks in their terms ('so I can see which campaigns are actually converting'), never in technical terms.",
99
117
  "A declined tab is not an error — carry on with what you can do without it and say what stays unavailable. Results name only the account and what was selected; no credentials ever reach you.",
@@ -1 +1 @@
1
- {"version":3,"file":"connection-input.js","sourceRoot":"","sources":["../../src/hono/connection-input.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,CAAC,MAAM,0BAA0B,GAAG,mCAAmC,CAAC;AAE9E;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,YAAY;IACZ,UAAU;IACV,kBAAkB;IAClB,uBAAuB;IACvB,oBAAoB;CACZ,CAAC;AAIX,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IAC3F,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,CAAC,+FAA+F,CAAC;CAC7G,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG;IAC/B,WAAW,EAAE,CAAC;SACX,KAAK,CAAC,sBAAsB,CAAC;SAC7B,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,wEAAwE,CAAC;IACrF,UAAU,EAAE,CAAC;SACV,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;SAC/B,QAAQ,EAAE;SACV,QAAQ,CAAC,8FAA8F,CAAC;CAC5G,CAAC;AAEF,uDAAuD;AAEvD,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE;IACxE,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;QAC9B,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC;QACtC,wDAAwD;QACxD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACnC,0EAA0E;QAC1E,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KAC9B,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QAC7B,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC;QACtC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC9B,CAAC;CACH,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC;AAG3G,wFAAwF;AACxF,MAAM,UAAU,8BAA8B,CAAC,KAAc;IAC3D,MAAM,MAAM,GAAG,+BAA+B,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAChE,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC;AAID;;;;;GAKG;AACH,MAAM,UAAU,iCAAiC,CAAC,KAAc;IAC9D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAAG,gBAAgB,CAAE,KAAmC,CAAC,WAAW,CAAC,CAAC;IAC/E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,QAAQ,GAA6B,EAAE,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,sBAAsB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtD,SAAS;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,iCAAiC,GAAG;IACxC,+NAA+N;IAC/N,iNAAiN;IACjN,+JAA+J;IAC/J,+LAA+L;CAChM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,UAAU,yBAAyB;IACvC,OAAO,IAAI,CACT,oBAAoB,EACpB,iCAAiC,EACjC,wBAAwB,EACxB,CAAC,IAAI,EAA+D,EAAE;QACpE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAK,EAAE,OAAO,EAAE,EAAE,EAAuC,CAAC;QAC5F,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5F,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"connection-input.js","sourceRoot":"","sources":["../../src/hono/connection-input.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,24 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { dirname, join } from "node:path";
3
+ import { fileURLToPath } from "node:url";
1
4
  import { describe, expect, it } from "vitest";
2
- import { normalizeConnectionInputToolInput, parseConnectionInputResolution } from "./connection-input.js";
5
+ import { CONNECTION_PLATFORMS, normalizeConnectionInputToolInput, parseConnectionInputResolution, } from "./connection-input.js";
6
+ describe("CONNECTION_PLATFORMS", () => {
7
+ // This tuple is the schema the agent sees, and unknown platforms are dropped in
8
+ // silence — so when it fell behind the backend, HubSpot was offered by the docs,
9
+ // accepted by Convex, and simply had no tab. A client's CRM stayed unconnected
10
+ // through an entire setup because of it. The bridge ships standalone and cannot
11
+ // import the backend, so parity is read off disk instead of assumed.
12
+ it("matches the backend's list of what a client can be asked to connect", () => {
13
+ const validators = join(dirname(fileURLToPath(import.meta.url)), "../../../backend/convex/lib/validators.ts");
14
+ const source = readFileSync(validators, "utf8");
15
+ const tuple = /export const CONNECTION_PLATFORMS = \[([^\]]*)\] as const;/.exec(source);
16
+ expect(tuple, "backend no longer declares CONNECTION_PLATFORMS as a literal tuple").not.toBeNull();
17
+ const backend = [...(tuple?.[1] ?? "").matchAll(/"([^"]+)"/g)].map((match) => match[1]);
18
+ expect(backend.length).toBeGreaterThan(0);
19
+ expect([...CONNECTION_PLATFORMS].sort()).toEqual([...backend].sort());
20
+ });
21
+ });
3
22
  describe("normalizeConnectionInputToolInput", () => {
4
23
  it("keeps well-formed requests in the order the agent asked for them", () => {
5
24
  expect(normalizeConnectionInputToolInput({
@@ -1 +1 @@
1
- {"version":3,"file":"connection-input.test.js","sourceRoot":"","sources":["../../src/hono/connection-input.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection-input.test.js","sourceRoot":"","sources":["../../src/hono/connection-input.test.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ export type SessionAttempt = {
14
14
  usedBoundary?: ClaudeSessionBoundary;
15
15
  resumeOptions: Pick<Options, "resume" | "resumeSessionAt" | "forkSession">;
16
16
  contextSource?: "local_resume" | "rehydrated_missing_session";
17
+ autoCompact?: boolean;
17
18
  };
18
19
  export declare function emptyInProgressSession(): InProgressSession;
19
20
  export declare function prepareSessionAttempt(input: {
@@ -35,6 +36,29 @@ export declare const STALL_RESUME_PROMPT: string;
35
36
  * touches.
36
37
  */
37
38
  export declare function stallContinuationAttempt(attempt: SessionAttempt, inProgress: InProgressSession): SessionAttempt;
39
+ export declare const COMPACTION_RESUME_PROMPT: string;
40
+ /**
41
+ * Retry the turn with compaction allowed. Used once, and only after a request was
42
+ * actually refused for size: this is the point where summarizing has stopped
43
+ * being a precaution and become the only way the turn can run.
44
+ *
45
+ * When the agent had already produced work, resume THAT session (forked, as in
46
+ * `stallContinuationAttempt`) — its transcript holds the steps completed before
47
+ * the overflow, and re-sending the original prompt would make the agent start
48
+ * them over. The test for "produced work" is `resumeSessionAt`, set only on an
49
+ * assistant message: `sessionId` arrives with the CLI's `system`/`init`, before
50
+ * the first model request, so on the case this retry exists for — a full chat
51
+ * whose very first publish request is refused — an id-based test would send a
52
+ * "continue where you left off" note into a session where nothing ran, instead
53
+ * of the `/publish` the turn still has to deliver.
54
+ */
55
+ export declare function compactionRetryAttempt(attempt: SessionAttempt, inProgress?: InProgressSession): SessionAttempt;
56
+ /**
57
+ * A request the provider refused because it no longer fits the context window.
58
+ * Distinct from the CLI's own auto-compact threshold, which trips well before
59
+ * this — these are the upstream messages that mean the turn cannot proceed as-is.
60
+ */
61
+ export declare function isContextOverflowError(error: unknown): boolean;
38
62
  export declare function observeInProgressSession(inProgress: InProgressSession, msg: SDKMessage): InProgressSession;
39
63
  export declare function buildCleanBoundary(input: {
40
64
  inProgress: InProgressSession;
@@ -1 +1 @@
1
- {"version":3,"file":"session-continuity.d.ts","sourceRoot":"","sources":["../../src/hono/session-continuity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEvF,OAAO,KAAK,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE1E,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,cAAc,GAAG,gBAAgB,CAAC;AAEpH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,GAAG,iBAAiB,GAAG,aAAa,CAAC,CAAC;IAC3E,aAAa,CAAC,EAAE,cAAc,GAAG,4BAA4B,CAAC;CAC/D,CAAC;AAEF,wBAAgB,sBAAsB,IAAI,iBAAiB,CAE1D;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAClC,MAAM,CAAC,EAAE,qBAAqB,CAAC;CAChC,GAAG,cAAc,CAkCjB;AAMD,eAAO,MAAM,mBAAmB,QAE6D,CAAC;AAE9F;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,iBAAiB,GAAG,cAAc,CAU/G;AAED,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,iBAAiB,EAAE,GAAG,EAAE,UAAU,GAAG,iBAAiB,CAqB1G;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACxC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,qBAAqB,GAAG,SAAS,CAWpC;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,MAAM,CAMhG;AAaD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAIhE;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,MAAM,CAK9F;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAY5D"}
1
+ {"version":3,"file":"session-continuity.d.ts","sourceRoot":"","sources":["../../src/hono/session-continuity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEvF,OAAO,KAAK,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE1E,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,cAAc,GAAG,gBAAgB,CAAC;AAEpH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,GAAG,iBAAiB,GAAG,aAAa,CAAC,CAAC;IAC3E,aAAa,CAAC,EAAE,cAAc,GAAG,4BAA4B,CAAC;IAI9D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,wBAAgB,sBAAsB,IAAI,iBAAiB,CAE1D;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAClC,MAAM,CAAC,EAAE,qBAAqB,CAAC;CAChC,GAAG,cAAc,CA0CjB;AAMD,eAAO,MAAM,mBAAmB,QAE6D,CAAC;AAE9F;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,iBAAiB,GAAG,cAAc,CAc/G;AAKD,eAAO,MAAM,wBAAwB,QAE+C,CAAC;AAErF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,CAAC,EAAE,iBAAiB,GAAG,cAAc,CAW9G;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAY9D;AAED,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,iBAAiB,EAAE,GAAG,EAAE,UAAU,GAAG,iBAAiB,CAqB1G;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACxC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,qBAAqB,GAAG,SAAS,CAWpC;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,MAAM,CAMhG;AAaD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAIhE;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,MAAM,CAK9F;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAY5D"}
@@ -1,8 +1,14 @@
1
- import { isVerbatimSlashCommandPrompt } from "./slash-commands.js";
1
+ import { isPublishCommandPrompt, isVerbatimSlashCommandPrompt } from "./slash-commands.js";
2
2
  export function emptyInProgressSession() {
3
3
  return { sawSessionId: false, sawCleanResult: false };
4
4
  }
5
5
  export function prepareSessionAttempt(input) {
6
+ // Publish resumes the conversation like any other turn, but does not let the
7
+ // CLI summarize it on the way in. Auto-compact fires on a *threshold*, not on
8
+ // a real overflow, so a long chat paid for a summary between the Publish click
9
+ // and any progress — every time. Let the turn start and run; if a request
10
+ // genuinely overflows, `compactionRetryAttempt` compacts and retries then.
11
+ const autoCompact = isPublishCommandPrompt(input.requestPrompt) ? { autoCompact: false } : {};
6
12
  if (input.loaded?.kind === "clean") {
7
13
  const boundary = input.loaded.boundary;
8
14
  return {
@@ -15,6 +21,7 @@ export function prepareSessionAttempt(input) {
15
21
  ...(boundary.resumeSessionAt ? { resumeSessionAt: boundary.resumeSessionAt } : {}),
16
22
  },
17
23
  contextSource: "local_resume",
24
+ ...autoCompact,
18
25
  };
19
26
  }
20
27
  // A verbatim command (e.g. `/compact`) must stay the leading token. If there
@@ -62,8 +69,61 @@ export function stallContinuationAttempt(attempt, inProgress) {
62
69
  attemptedRehydration: attempt.attemptedRehydration,
63
70
  usedBoundary: attempt.usedBoundary,
64
71
  resumeOptions: { resume: inProgress.sessionId, forkSession: true },
72
+ // Carried, not defaulted: a stall is a connection failure, not evidence the
73
+ // session needs summarizing, so a publish continuation keeps the opt-out —
74
+ // and stays eligible for the one compaction retry a real overflow earns.
75
+ autoCompact: attempt.autoCompact,
65
76
  };
66
77
  }
78
+ // Agent-facing note for a retry after a request was refused for size. Older
79
+ // turns have just been summarized away, so this says why the session got shorter
80
+ // and to carry on rather than restart the steps it already completed.
81
+ export const COMPACTION_RESUME_PROMPT = "[Older parts of this conversation were summarized to make room. The session has been restored. " +
82
+ "Continue exactly where you left off; do not repeat work that already completed.]";
83
+ /**
84
+ * Retry the turn with compaction allowed. Used once, and only after a request was
85
+ * actually refused for size: this is the point where summarizing has stopped
86
+ * being a precaution and become the only way the turn can run.
87
+ *
88
+ * When the agent had already produced work, resume THAT session (forked, as in
89
+ * `stallContinuationAttempt`) — its transcript holds the steps completed before
90
+ * the overflow, and re-sending the original prompt would make the agent start
91
+ * them over. The test for "produced work" is `resumeSessionAt`, set only on an
92
+ * assistant message: `sessionId` arrives with the CLI's `system`/`init`, before
93
+ * the first model request, so on the case this retry exists for — a full chat
94
+ * whose very first publish request is refused — an id-based test would send a
95
+ * "continue where you left off" note into a session where nothing ran, instead
96
+ * of the `/publish` the turn still has to deliver.
97
+ */
98
+ export function compactionRetryAttempt(attempt, inProgress) {
99
+ if (!inProgress?.sessionId || !inProgress.resumeSessionAt) {
100
+ return { ...attempt, autoCompact: true };
101
+ }
102
+ return {
103
+ prompt: COMPACTION_RESUME_PROMPT,
104
+ attemptedRehydration: attempt.attemptedRehydration,
105
+ usedBoundary: attempt.usedBoundary,
106
+ resumeOptions: { resume: inProgress.sessionId, forkSession: true },
107
+ autoCompact: true,
108
+ };
109
+ }
110
+ /**
111
+ * A request the provider refused because it no longer fits the context window.
112
+ * Distinct from the CLI's own auto-compact threshold, which trips well before
113
+ * this — these are the upstream messages that mean the turn cannot proceed as-is.
114
+ */
115
+ export function isContextOverflowError(error) {
116
+ const message = errorMessage(error).toLowerCase();
117
+ return (
118
+ // Anthropic: "prompt is too long: 215424 tokens > 200000 maximum".
119
+ // OpenRouter / OpenAI-compatible: "This endpoint's maximum context length is
120
+ // N tokens" + the `context_length_exceeded` code.
121
+ message.includes("prompt is too long") ||
122
+ message.includes("context_length_exceeded") ||
123
+ message.includes("context length exceeded") ||
124
+ message.includes("maximum context length") ||
125
+ message.includes("exceed context limit"));
126
+ }
67
127
  export function observeInProgressSession(inProgress, msg) {
68
128
  let next = inProgress;
69
129
  const sessionId = messageSessionId(msg);
@@ -1 +1 @@
1
- {"version":3,"file":"session-continuity.js","sourceRoot":"","sources":["../../src/hono/session-continuity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-continuity.js","sourceRoot":"","sources":["../../src/hono/session-continuity.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAwB3F,MAAM,UAAU,sBAAsB;IACpC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAIrC;IACC,6EAA6E;IAC7E,8EAA8E;IAC9E,+EAA+E;IAC/E,0EAA0E;IAC1E,2EAA2E;IAC3E,MAAM,WAAW,GAAG,sBAAsB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAE9F,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;QACvC,OAAO;YACL,MAAM,EAAE,KAAK,CAAC,aAAa;YAC3B,oBAAoB,EAAE,KAAK;YAC3B,YAAY,EAAE,QAAQ;YACtB,aAAa,EAAE;gBACb,MAAM,EAAE,QAAQ,CAAC,SAAS;gBAC1B,WAAW,EAAE,IAAI;gBACjB,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACnF;YACD,aAAa,EAAE,cAAc;YAC7B,GAAG,WAAW;SACf,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,yEAAyE;IACzE,wEAAwE;IACxE,oEAAoE;IACpE,IAAI,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;QACzF,OAAO;YACL,MAAM,EAAE,qBAAqB,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC;YACjE,oBAAoB,EAAE,IAAI;YAC1B,aAAa,EAAE,EAAE;YACjB,aAAa,EAAE,4BAA4B;SAC5C,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,aAAa;QAC3B,oBAAoB,EAAE,KAAK;QAC3B,aAAa,EAAE,EAAE;KAClB,CAAC;AACJ,CAAC;AAED,6EAA6E;AAC7E,+EAA+E;AAC/E,6EAA6E;AAC7E,iEAAiE;AACjE,MAAM,CAAC,MAAM,mBAAmB,GAC9B,yGAAyG;IACzG,2FAA2F,CAAC;AAE9F;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAuB,EAAE,UAA6B;IAC7F,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO;QACL,MAAM,EAAE,mBAAmB;QAC3B,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;QAClD,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,aAAa,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE;QAClE,4EAA4E;QAC5E,2EAA2E;QAC3E,yEAAyE;QACzE,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,iFAAiF;AACjF,sEAAsE;AACtE,MAAM,CAAC,MAAM,wBAAwB,GACnC,iGAAiG;IACjG,kFAAkF,CAAC;AAErF;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAuB,EAAE,UAA8B;IAC5F,IAAI,CAAC,UAAU,EAAE,SAAS,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;QAC1D,OAAO,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC3C,CAAC;IACD,OAAO;QACL,MAAM,EAAE,wBAAwB;QAChC,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;QAClD,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,aAAa,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE;QAClE,WAAW,EAAE,IAAI;KAClB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IAClD,OAAO;IACL,mEAAmE;IACnE,6EAA6E;IAC7E,kDAAkD;IAClD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QACtC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QAC3C,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QAC3C,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QAC1C,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CACzC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,UAA6B,EAAE,GAAe;IACrF,IAAI,IAAI,GAAG,UAAU,CAAC;IACtB,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAExC,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IACpD,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7D,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,eAAe,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;IAChD,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC3C,IAAI,GAAG;YACL,GAAG,IAAI;YACP,cAAc,EAAE,IAAI;YACpB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxD,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAGlC;IACC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QACpE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS;QACrC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClG,WAAW,EAAE,KAAK,CAAC,KAAK;KACzB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAe,EAAE,OAAiC;IACtF,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,GAAG,OAAO,CAAC,eAAe,iCAAiC,OAAO,EAAE,CAAC;AAC9E,CAAC;AAED,4EAA4E;AAC5E,sEAAsE;AACtE,+EAA+E;AAC/E,8EAA8E;AAC9E,SAAS,mBAAmB,CAAC,KAAa;IACxC,OAAO,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAClD,CAAC;AAED,iDAAiD;AACjD,gFAAgF;AAChF,gFAAgF;AAChF,MAAM,UAAU,iBAAiB,CAAC,MAAsB;IACtD,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAAC,OAAe,EAAE,MAAuB;IACpF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,qBAAqB,iBAAiB,CAAC,MAAM,CAAC,QAAQ,OAAO,EAAE,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IAClD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CACL,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC1B,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;YAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC3B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CACtC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,OAA4C;IACnE,OAAO,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;AAChG,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAe;IACvC,IAAI,YAAY,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3F,OAAO,GAAG,CAAC,UAAU,CAAC;IACxB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { describe, expect, it } from "vitest";
2
- import { applyCurrentSenderAttribution, formatSenderLabel, prepareSessionAttempt } from "./session-continuity.js";
2
+ import { applyCurrentSenderAttribution, COMPACTION_RESUME_PROMPT, compactionRetryAttempt, formatSenderLabel, isContextOverflowError, prepareSessionAttempt, stallContinuationAttempt, } from "./session-continuity.js";
3
3
  const historyWith = (text) => ({
4
4
  entries: [{ role: "user", text, createdAt: 0 }],
5
5
  omittedEntryCount: 0,
@@ -59,6 +59,14 @@ describe("prepareSessionAttempt", () => {
59
59
  expect(attempt.prompt).toContain("earlier turn");
60
60
  expect(attempt.prompt).not.toBe("Make the hero blue");
61
61
  });
62
+ it("resumes the chat session for publish but lets it start without compacting first", () => {
63
+ const attempt = prepareSessionAttempt({
64
+ requestPrompt: "/publish",
65
+ loaded: { kind: "clean", boundary: { version: 2, sessionId: "s1", updatedAtMs: 1 } },
66
+ });
67
+ expect(attempt.resumeOptions.resume).toBe("s1");
68
+ expect(attempt.autoCompact).toBe(false);
69
+ });
62
70
  it("never wraps a verbatim command in a history preamble, keeping it the leading token", () => {
63
71
  const attempt = prepareSessionAttempt({
64
72
  requestPrompt: "/compact",
@@ -68,4 +76,73 @@ describe("prepareSessionAttempt", () => {
68
76
  expect(attempt.attemptedRehydration).toBe(false);
69
77
  });
70
78
  });
79
+ describe("isContextOverflowError", () => {
80
+ it("recognizes the request that no longer fits the context window", () => {
81
+ expect(isContextOverflowError(new Error("prompt is too long: 215424 tokens > 200000 maximum"))).toBe(true);
82
+ expect(isContextOverflowError(new Error("This endpoint's maximum context length is 200000 tokens"))).toBe(true);
83
+ expect(isContextOverflowError(new Error("context_length_exceeded"))).toBe(true);
84
+ });
85
+ it("leaves unrelated failures alone", () => {
86
+ expect(isContextOverflowError(new Error("Cannot resume: session not found"))).toBe(false);
87
+ expect(isContextOverflowError(new Error("fetch failed"))).toBe(false);
88
+ });
89
+ });
90
+ describe("stallContinuationAttempt", () => {
91
+ it("keeps publish's opt-out of precautionary compaction across a stall resume", () => {
92
+ const attempt = prepareSessionAttempt({
93
+ requestPrompt: "/publish",
94
+ loaded: { kind: "clean", boundary: { version: 2, sessionId: "s1", updatedAtMs: 1 } },
95
+ });
96
+ const continuation = stallContinuationAttempt(attempt, {
97
+ sessionId: "s_live",
98
+ sawSessionId: true,
99
+ sawCleanResult: false,
100
+ });
101
+ expect(continuation.resumeOptions.resume).toBe("s_live");
102
+ expect(continuation.autoCompact).toBe(false);
103
+ });
104
+ });
105
+ describe("compactionRetryAttempt", () => {
106
+ it("re-sends the same turn with compaction allowed", () => {
107
+ const attempt = prepareSessionAttempt({
108
+ requestPrompt: "/publish",
109
+ loaded: { kind: "clean", boundary: { version: 2, sessionId: "s1", updatedAtMs: 1 } },
110
+ });
111
+ const retry = compactionRetryAttempt(attempt);
112
+ expect(retry.prompt).toBe("/publish");
113
+ expect(retry.resumeOptions.resume).toBe("s1");
114
+ expect(retry.autoCompact).toBe(true);
115
+ });
116
+ it("re-sends the command when the very first request was refused, session id notwithstanding", () => {
117
+ const attempt = prepareSessionAttempt({
118
+ requestPrompt: "/publish",
119
+ loaded: { kind: "clean", boundary: { version: 2, sessionId: "s1", updatedAtMs: 1 } },
120
+ });
121
+ // The CLI announces its session id (`system`/`init`) before the first model
122
+ // request, so an id alone does not mean the agent ran anything.
123
+ const retry = compactionRetryAttempt(attempt, {
124
+ sessionId: "s_live",
125
+ sawSessionId: true,
126
+ sawCleanResult: false,
127
+ });
128
+ expect(retry.prompt).toBe("/publish");
129
+ expect(retry.resumeOptions.resume).toBe("s1");
130
+ expect(retry.autoCompact).toBe(true);
131
+ });
132
+ it("continues the in-flight session once the agent has produced work", () => {
133
+ const attempt = prepareSessionAttempt({
134
+ requestPrompt: "/publish",
135
+ loaded: { kind: "clean", boundary: { version: 2, sessionId: "s1", updatedAtMs: 1 } },
136
+ });
137
+ const retry = compactionRetryAttempt(attempt, {
138
+ sessionId: "s_live",
139
+ resumeSessionAt: "assistant_1",
140
+ sawSessionId: true,
141
+ sawCleanResult: false,
142
+ });
143
+ expect(retry.prompt).toBe(COMPACTION_RESUME_PROMPT);
144
+ expect(retry.resumeOptions.resume).toBe("s_live");
145
+ expect(retry.autoCompact).toBe(true);
146
+ });
147
+ });
71
148
  //# sourceMappingURL=session-continuity.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-continuity.test.js","sourceRoot":"","sources":["../../src/hono/session-continuity.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-continuity.test.js","sourceRoot":"","sources":["../../src/hono/session-continuity.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AAGjC,MAAM,WAAW,GAAG,CAAC,IAAY,EAA2B,EAAE,CAAC,CAAC;IAC9D,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAC/C,iBAAiB,EAAE,CAAC;IACpB,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE,EAAE;IACd,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,0BAA0B,IAAI,EAAE;CAClD,CAAC,CAAC;AAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,KAAK,GAAG,iBAAiB,CAAC,EAAE,IAAI,EAAE,wCAAwC,EAAE,CAAC,CAAC;QACpF,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC7C,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,MAAM,GAAG,6BAA6B,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAErG,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,CAAC,6BAA6B,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACpG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,GAAG,EAAE;QACzF,MAAM,MAAM,GAAG,6BAA6B,CAAC,oBAAoB,EAAE;YACjE,IAAI,EAAE,2DAA2D;YACjE,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAChC,kFAAkF,CACnF,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,gFAAgF,EAAE,GAAG,EAAE;QACxF,MAAM,OAAO,GAAG,qBAAqB,CAAC;YACpC,aAAa,EAAE,UAAU;YACzB,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE;SACrF,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;QAC/E,MAAM,OAAO,GAAG,qBAAqB,CAAC;YACpC,aAAa,EAAE,oBAAoB;YACnC,OAAO,EAAE,WAAW,CAAC,cAAc,CAAC;SACrC,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACjD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,GAAG,EAAE;QACzF,MAAM,OAAO,GAAG,qBAAqB,CAAC;YACpC,aAAa,EAAE,UAAU;YACzB,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE;SACrF,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oFAAoF,EAAE,GAAG,EAAE;QAC5F,MAAM,OAAO,GAAG,qBAAqB,CAAC;YACpC,aAAa,EAAE,UAAU;YACzB,OAAO,EAAE,WAAW,CAAC,cAAc,CAAC;SACrC,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,CAAC,sBAAsB,CAAC,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3G,MAAM,CAAC,sBAAsB,CAAC,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChH,MAAM,CAAC,sBAAsB,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,CAAC,sBAAsB,CAAC,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1F,MAAM,CAAC,sBAAsB,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,2EAA2E,EAAE,GAAG,EAAE;QACnF,MAAM,OAAO,GAAG,qBAAqB,CAAC;YACpC,aAAa,EAAE,UAAU;YACzB,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE;SACrF,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,wBAAwB,CAAC,OAAO,EAAE;YACrD,SAAS,EAAE,QAAQ;YACnB,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,KAAK;SACtB,CAAC,CAAC;QAEH,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,OAAO,GAAG,qBAAqB,CAAC;YACpC,aAAa,EAAE,UAAU;YACzB,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE;SACrF,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAE9C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0FAA0F,EAAE,GAAG,EAAE;QAClG,MAAM,OAAO,GAAG,qBAAqB,CAAC;YACpC,aAAa,EAAE,UAAU;YACzB,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE;SACrF,CAAC,CAAC;QAEH,4EAA4E;QAC5E,gEAAgE;QAChE,MAAM,KAAK,GAAG,sBAAsB,CAAC,OAAO,EAAE;YAC5C,SAAS,EAAE,QAAQ;YACnB,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,KAAK;SACtB,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,MAAM,OAAO,GAAG,qBAAqB,CAAC;YACpC,aAAa,EAAE,UAAU;YACzB,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE;SACrF,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,sBAAsB,CAAC,OAAO,EAAE;YAC5C,SAAS,EAAE,QAAQ;YACnB,eAAe,EAAE,aAAa;YAC9B,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,KAAK;SACtB,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@koda-sl/baker-bridge",
3
- "version": "0.71.0-dev.724bad136",
3
+ "version": "0.71.0-dev.b1beafb2c.bacce491",
4
4
  "description": "HTTP server wrapping the Claude Agent SDK. Persists chat events to Convex; the dashboard subscribes via Convex realtime",
5
5
  "license": "MIT",
6
6
  "type": "module",