@koda-sl/baker-bridge 0.49.0-dev.ea15b0199 → 0.50.0-dev.36aef87f5

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.
Files changed (78) hide show
  1. package/README.md +11 -24
  2. package/dist/cli.d.ts +1 -1
  3. package/dist/cli.js +1 -1
  4. package/dist/hono/agent-session.d.ts +2 -2
  5. package/dist/hono/agent-session.d.ts.map +1 -1
  6. package/dist/hono/agent-session.js +2 -2
  7. package/dist/hono/agent-session.js.map +1 -1
  8. package/dist/hono/agent.d.ts +5 -4
  9. package/dist/hono/agent.d.ts.map +1 -1
  10. package/dist/hono/agent.js +30 -13
  11. package/dist/hono/agent.js.map +1 -1
  12. package/dist/hono/agent.test.js +21 -123
  13. package/dist/hono/agent.test.js.map +1 -1
  14. package/dist/hono/bridge-job.d.ts +13 -7
  15. package/dist/hono/bridge-job.d.ts.map +1 -1
  16. package/dist/hono/bridge-job.js +63 -36
  17. package/dist/hono/bridge-job.js.map +1 -1
  18. package/dist/hono/bridge-job.test.js +45 -72
  19. package/dist/hono/bridge-job.test.js.map +1 -1
  20. package/dist/hono/callback.d.ts.map +1 -1
  21. package/dist/hono/callback.js +2 -2
  22. package/dist/hono/callback.js.map +1 -1
  23. package/dist/hono/convex.d.ts +2 -3
  24. package/dist/hono/convex.d.ts.map +1 -1
  25. package/dist/hono/convex.js +3 -4
  26. package/dist/hono/convex.js.map +1 -1
  27. package/dist/hono/convex.test.js +4 -6
  28. package/dist/hono/convex.test.js.map +1 -1
  29. package/dist/hono/prompt-context.d.ts +3 -0
  30. package/dist/hono/prompt-context.d.ts.map +1 -0
  31. package/dist/hono/prompt-context.js +13 -0
  32. package/dist/hono/prompt-context.js.map +1 -0
  33. package/dist/hono/prompt-context.test.d.ts +2 -0
  34. package/dist/hono/prompt-context.test.d.ts.map +1 -0
  35. package/dist/hono/prompt-context.test.js +39 -0
  36. package/dist/hono/prompt-context.test.js.map +1 -0
  37. package/dist/hono/relay.d.ts +1 -3
  38. package/dist/hono/relay.d.ts.map +1 -1
  39. package/dist/hono/relay.js +1 -3
  40. package/dist/hono/relay.js.map +1 -1
  41. package/dist/hono/server.js +5 -5
  42. package/dist/hono/server.js.map +1 -1
  43. package/dist/hono/session-continuity.d.ts +1 -1
  44. package/dist/hono/session-continuity.d.ts.map +1 -1
  45. package/dist/hono/session-continuity.js.map +1 -1
  46. package/dist/hono/tag-input.d.ts +35 -7
  47. package/dist/hono/tag-input.d.ts.map +1 -1
  48. package/dist/hono/tag-input.js +78 -43
  49. package/dist/hono/tag-input.js.map +1 -1
  50. package/dist/hono/tag-input.test.js +72 -42
  51. package/dist/hono/tag-input.test.js.map +1 -1
  52. package/dist/hono/types.d.ts +1 -3
  53. package/dist/hono/types.d.ts.map +1 -1
  54. package/package.json +1 -1
  55. package/dist/hono/chat-change.d.ts +0 -102
  56. package/dist/hono/chat-change.d.ts.map +0 -1
  57. package/dist/hono/chat-change.js +0 -50
  58. package/dist/hono/chat-change.js.map +0 -1
  59. package/dist/hono/guards/__tests__/google-ads-rsa.test.d.ts +0 -2
  60. package/dist/hono/guards/__tests__/google-ads-rsa.test.d.ts.map +0 -1
  61. package/dist/hono/guards/__tests__/google-ads-rsa.test.js +0 -65
  62. package/dist/hono/guards/__tests__/google-ads-rsa.test.js.map +0 -1
  63. package/dist/hono/guards/google-ads-rsa.d.ts +0 -3
  64. package/dist/hono/guards/google-ads-rsa.d.ts.map +0 -1
  65. package/dist/hono/guards/google-ads-rsa.js +0 -32
  66. package/dist/hono/guards/google-ads-rsa.js.map +0 -1
  67. package/dist/hono/guards.d.ts +0 -3
  68. package/dist/hono/guards.d.ts.map +0 -1
  69. package/dist/hono/guards.js +0 -9
  70. package/dist/hono/guards.js.map +0 -1
  71. package/dist/hono/turn-result.d.ts +0 -36
  72. package/dist/hono/turn-result.d.ts.map +0 -1
  73. package/dist/hono/turn-result.js +0 -207
  74. package/dist/hono/turn-result.js.map +0 -1
  75. package/dist/hono/turn-result.test.d.ts +0 -2
  76. package/dist/hono/turn-result.test.d.ts.map +0 -1
  77. package/dist/hono/turn-result.test.js +0 -63
  78. package/dist/hono/turn-result.test.js.map +0 -1
@@ -1,66 +1,96 @@
1
1
  import { describe, expect, it } from "vitest";
2
- import { parseTagInputResult, sanitizeTagInputRequest } from "./tag-input.js";
3
- describe("sanitizeTagInputRequest", () => {
4
- it("moves leaked secret prefill values into requested fields, dropping the value", () => {
5
- const sanitized = sanitizeTagInputRequest({
2
+ import { normalizeTagInputToolInput, parseTagChangeResolution, sanitizeTagChanges } from "./tag-input.js";
3
+ describe("normalizeTagInputToolInput", () => {
4
+ it("passes a valid changes array through", () => {
5
+ const changes = normalizeTagInputToolInput({
6
+ changes: [{ mode: "create", tagType: "meta", prefilledConfig: { pixelId: "123" } }],
7
+ });
8
+ expect(changes).toHaveLength(1);
9
+ expect(changes[0]).toMatchObject({ mode: "create", tagType: "meta" });
10
+ });
11
+ it("wraps the legacy single-change shape (mode/tagType at top level) instead of hanging the turn", () => {
12
+ const changes = normalizeTagInputToolInput({
6
13
  mode: "create",
7
14
  tagType: "meta",
8
- prefilledConfig: { pixelId: "123", accessToken: "EAAB-leak" },
15
+ prefilledConfig: { pixelId: "555000111" },
16
+ requestedSecretFields: ["accessToken"],
17
+ message: "Adding Meta pixel",
9
18
  });
19
+ expect(changes).toHaveLength(1);
20
+ expect(changes[0]).toMatchObject({ mode: "create", tagType: "meta", prefilledConfig: { pixelId: "555000111" } });
21
+ });
22
+ it("drops invalid entries and returns [] for garbage so the caller can deny with a clear error", () => {
23
+ expect(normalizeTagInputToolInput({ changes: [{ mode: "explode", tagType: "meta" }] })).toEqual([]);
24
+ expect(normalizeTagInputToolInput({ changes: "nope" })).toEqual([]);
25
+ expect(normalizeTagInputToolInput({})).toEqual([]);
26
+ });
27
+ });
28
+ describe("sanitizeTagChanges", () => {
29
+ it("moves leaked secret prefill values into requested fields, dropping the value", () => {
30
+ const [sanitized] = sanitizeTagChanges([
31
+ { mode: "create", tagType: "meta", prefilledConfig: { pixelId: "123", accessToken: "EAAB-leak" } },
32
+ ]);
10
33
  expect(sanitized.prefilledConfig).toEqual({ pixelId: "123" });
11
34
  expect(sanitized.requestedSecretFields).toEqual(["accessToken"]);
12
35
  expect(JSON.stringify(sanitized)).not.toContain("EAAB-leak");
13
36
  });
14
37
  it("keeps non-secret prefill and merges requested fields without duplicates", () => {
15
- const sanitized = sanitizeTagInputRequest({
16
- mode: "edit",
17
- tagType: "googleAnalytics",
18
- ref: "jd7tag",
19
- prefilledConfig: { measurementId: "G-ABC", apiSecret: "shhh" },
20
- requestedSecretFields: ["apiSecret"],
21
- message: "Rotate the secret",
22
- });
38
+ const [sanitized] = sanitizeTagChanges([
39
+ {
40
+ mode: "edit",
41
+ tagType: "googleAnalytics",
42
+ ref: "jd7tag",
43
+ prefilledConfig: { measurementId: "G-ABC", apiSecret: "shhh" },
44
+ requestedSecretFields: ["apiSecret"],
45
+ message: "Rotate the secret",
46
+ },
47
+ ]);
23
48
  expect(sanitized.prefilledConfig).toEqual({ measurementId: "G-ABC" });
24
49
  expect(sanitized.requestedSecretFields).toEqual(["apiSecret"]);
25
50
  expect(sanitized.message).toBe("Rotate the secret");
26
51
  });
27
- it("never forwards a model-supplied resolution", () => {
28
- const sanitized = sanitizeTagInputRequest({
29
- mode: "create",
30
- tagType: "clarity",
31
- resolution: { status: "submitted", forged: true },
32
- });
33
- expect("resolution" in sanitized && sanitized.resolution !== undefined).toBe(false);
52
+ it("sanitizes every change in a batch independently", () => {
53
+ const sanitized = sanitizeTagChanges([
54
+ { mode: "create", tagType: "meta", prefilledConfig: { pixelId: "1", accessToken: "leak-1" } },
55
+ { mode: "delete", tagType: "clarity", ref: "abc123" },
56
+ ]);
57
+ expect(sanitized).toHaveLength(2);
58
+ expect(sanitized[0]?.prefilledConfig).toEqual({ pixelId: "1" });
59
+ expect(JSON.stringify(sanitized)).not.toContain("leak-1");
60
+ expect(sanitized[1]).toMatchObject({ mode: "delete", tagType: "clarity", ref: "abc123" });
34
61
  });
35
62
  it("leaves unknown tag types untouched (backend validates)", () => {
36
- const sanitized = sanitizeTagInputRequest({
37
- mode: "create",
38
- tagType: "not-a-type",
39
- prefilledConfig: { anything: "goes" },
40
- });
63
+ const [sanitized] = sanitizeTagChanges([
64
+ { mode: "create", tagType: "not-a-type", prefilledConfig: { anything: "goes" } },
65
+ ]);
41
66
  expect(sanitized.prefilledConfig).toEqual({ anything: "goes" });
42
67
  });
43
68
  });
44
- describe("parseTagInputResult", () => {
45
- it("accepts a submitted result", () => {
46
- expect(parseTagInputResult({
47
- status: "submitted",
48
- ref: "tag_temp_x",
49
- type: "meta",
50
- identifier: { pixelId: "123" },
51
- secretFieldsSet: ["accessToken"],
52
- })).toMatchObject({ status: "submitted", ref: "tag_temp_x" });
53
- });
54
- it("accepts a declined result", () => {
55
- expect(parseTagInputResult({ status: "declined", reason: "skipped" })).toEqual({
56
- status: "declined",
57
- reason: "skipped",
69
+ describe("parseTagChangeResolution", () => {
70
+ it("accepts a per-tab results array", () => {
71
+ const resolution = parseTagChangeResolution({
72
+ results: [
73
+ {
74
+ status: "submitted",
75
+ ref: "tag_temp_x",
76
+ type: "meta",
77
+ identifier: { pixelId: "123" },
78
+ secretFieldsSet: ["accessToken"],
79
+ },
80
+ { status: "declined", reason: "skipped" },
81
+ ],
58
82
  });
83
+ expect(resolution?.results).toHaveLength(2);
84
+ expect(resolution?.results[0]).toMatchObject({ status: "submitted", ref: "tag_temp_x" });
85
+ expect(resolution?.results[1]).toEqual({ status: "declined", reason: "skipped" });
86
+ });
87
+ it("accepts an empty results array (all declined / nothing resolved)", () => {
88
+ expect(parseTagChangeResolution({ results: [] })).toEqual({ results: [] });
59
89
  });
60
90
  it("rejects malformed payloads", () => {
61
- expect(parseTagInputResult({ status: "submitted" })).toBeNull();
62
- expect(parseTagInputResult("nope")).toBeNull();
63
- expect(parseTagInputResult(null)).toBeNull();
91
+ expect(parseTagChangeResolution({ results: [{ status: "submitted" }] })).toBeNull();
92
+ expect(parseTagChangeResolution({ results: "nope" })).toBeNull();
93
+ expect(parseTagChangeResolution(null)).toBeNull();
64
94
  });
65
95
  });
66
96
  //# sourceMappingURL=tag-input.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tag-input.test.js","sourceRoot":"","sources":["../../src/hono/tag-input.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tag-input.test.js","sourceRoot":"","sources":["../../src/hono/tag-input.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,3 @@
1
- import type { ChatChange } from "./chat-change.ts";
2
- export type { ChatChange };
3
1
  /** Attachment shape — used by the chat dispatch endpoint and downstream. */
4
2
  export interface ChatAttachment {
5
3
  url: string;
@@ -55,9 +53,9 @@ export interface AsyncMessageRequest {
55
53
  attachments?: ChatAttachment[];
56
54
  history?: DispatchHistorySnapshot;
57
55
  turnId: string;
58
- currentChanges?: ChatChange[];
59
56
  currentReference?: CurrentReference;
60
57
  currentSender?: DispatchSender;
61
58
  planMode?: boolean;
62
59
  }
60
+ export {};
63
61
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/hono/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,YAAY,EAAE,UAAU,EAAE,CAAC;AAE3B,4EAA4E;AAC5E,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,yBAAyB;IACjC,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yGAAyG;IACzG,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAC1C,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,uEAAuE;AACvE,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,UAAU,EAAE,CAAC;IAC9B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/hono/types.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,yBAAyB;IACjC,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yGAAyG;IACzG,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAC1C,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,uEAAuE;AACvE,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@koda-sl/baker-bridge",
3
- "version": "0.49.0-dev.ea15b0199",
3
+ "version": "0.50.0-dev.36aef87f5",
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",
@@ -1,102 +0,0 @@
1
- export declare const CHANGE_TYPES: readonly ["landing", "document", "knowledge", "brand", "company", "flow", "action", "report"];
2
- export declare const CHANGE_ACTIONS: readonly ["created", "updated", "deleted"];
3
- export declare const REPORT_STATUSES: readonly ["draft", "active", "error", "archived"];
4
- export declare const DOCUMENT_FORMATS: readonly ["pdf", "pptx", "docx", "xlsx", "csv", "json"];
5
- export type ChangeType = (typeof CHANGE_TYPES)[number];
6
- export type ChangeAction = (typeof CHANGE_ACTIONS)[number];
7
- export type ReportStatus = (typeof REPORT_STATUSES)[number];
8
- export type DocumentFormat = (typeof DOCUMENT_FORMATS)[number];
9
- type BaseChatChange<T extends ChangeType> = {
10
- type: T;
11
- slug: string;
12
- action: ChangeAction;
13
- contentVersion?: number;
14
- };
15
- type DocumentChatChange = BaseChatChange<"document"> & {
16
- format?: DocumentFormat;
17
- };
18
- type ReportChatChange = BaseChatChange<"report"> & {
19
- title?: string;
20
- description?: string;
21
- intent?: string;
22
- status?: ReportStatus;
23
- sourcePath?: string;
24
- definitionContentVersion?: number;
25
- dashboardContentVersion?: number;
26
- endpointContentVersion?: number;
27
- errorMessage?: string;
28
- };
29
- export type ChatChange = DocumentChatChange | ReportChatChange | BaseChatChange<Exclude<ChangeType, "document" | "report">>;
30
- export declare const chatChangeJsonSchema: {
31
- readonly oneOf: readonly [...{
32
- type: string;
33
- additionalProperties: boolean;
34
- required: string[];
35
- properties: {
36
- type: {
37
- const: "action" | "brand" | "company" | "document" | "flow" | "knowledge" | "landing";
38
- };
39
- slug: {
40
- type: string;
41
- minLength: number;
42
- };
43
- action: {
44
- enum: readonly ["created", "updated", "deleted"];
45
- };
46
- contentVersion: {
47
- type: string;
48
- };
49
- format?: {
50
- enum: readonly ["pdf", "pptx", "docx", "xlsx", "csv", "json"];
51
- } | undefined;
52
- };
53
- }[], {
54
- readonly type: "object";
55
- readonly additionalProperties: false;
56
- readonly required: readonly ["type", "slug", "action"];
57
- readonly properties: {
58
- readonly type: {
59
- readonly const: "report";
60
- };
61
- readonly slug: {
62
- readonly type: "string";
63
- readonly minLength: 1;
64
- };
65
- readonly action: {
66
- readonly enum: readonly ["created", "updated", "deleted"];
67
- };
68
- readonly contentVersion: {
69
- readonly type: "number";
70
- };
71
- readonly title: {
72
- readonly type: "string";
73
- };
74
- readonly description: {
75
- readonly type: "string";
76
- };
77
- readonly intent: {
78
- readonly type: "string";
79
- };
80
- readonly status: {
81
- readonly enum: readonly ["draft", "active", "error", "archived"];
82
- };
83
- readonly sourcePath: {
84
- readonly type: "string";
85
- };
86
- readonly definitionContentVersion: {
87
- readonly type: "number";
88
- };
89
- readonly dashboardContentVersion: {
90
- readonly type: "number";
91
- };
92
- readonly endpointContentVersion: {
93
- readonly type: "number";
94
- };
95
- readonly errorMessage: {
96
- readonly type: "string";
97
- };
98
- };
99
- }];
100
- };
101
- export {};
102
- //# sourceMappingURL=chat-change.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chat-change.d.ts","sourceRoot":"","sources":["../../src/hono/chat-change.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,YACvB,SAAS,EACT,UAAU,EACV,WAAW,EACX,OAAO,EACP,SAAS,EACT,MAAM,EACN,QAAQ,EACR,QAAQ,CACA,CAAC;AACX,eAAO,MAAM,cAAc,YAAI,SAAS,EAAE,SAAS,EAAE,SAAS,CAAU,CAAC;AACzE,eAAO,MAAM,eAAe,YAAI,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAU,CAAC;AACjF,eAAO,MAAM,gBAAgB,YAAI,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAU,CAAC;AAExF,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AACvD,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAC3D,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAC5D,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D,KAAK,cAAc,CAAC,CAAC,SAAS,UAAU,IAAI;IAC1C,IAAI,EAAE,CAAC,CAAC;IACR,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,KAAK,kBAAkB,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG;IACrD,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB,CAAC;AAEF,KAAK,gBAAgB,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,UAAU,GAClB,kBAAkB,GAClB,gBAAgB,GAChB,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC;AAE/D,eAAO,MAAM,oBAAoB;;;;;;;gBAOjB,KAAK;;;gBACL,IAAI;gBAAY,SAAS;;;gBACvB,IAAI;;;gBACI,IAAI;;;;;;;uBAKlB,QAAQ;;qCAEH,MAAM,EAAE,MAAM,EAAE,QAAQ;;qBAEjC,IAAI;yBAAI,KAAK,EAAE,QAAQ;;qBACvB,IAAI;yBAAI,IAAI,EAAE,QAAQ;yBAAE,SAAS,EAAE,CAAC;;qBACpC,MAAM;yBAAI,IAAI;;qBACd,cAAc;yBAAI,IAAI,EAAE,QAAQ;;qBAChC,KAAK;yBAAI,IAAI,EAAE,QAAQ;;qBACvB,WAAW;yBAAI,IAAI,EAAE,QAAQ;;qBAC7B,MAAM;yBAAI,IAAI,EAAE,QAAQ;;qBACxB,MAAM;yBAAI,IAAI;;qBACd,UAAU;yBAAI,IAAI,EAAE,QAAQ;;qBAC5B,wBAAwB;yBAAI,IAAI,EAAE,QAAQ;;qBAC1C,uBAAuB;yBAAI,IAAI,EAAE,QAAQ;;qBACzC,sBAAsB;yBAAI,IAAI,EAAE,QAAQ;;qBACxC,YAAY;yBAAI,IAAI,EAAE,QAAQ;;;;CAI5B,CAAC"}
@@ -1,50 +0,0 @@
1
- export const CHANGE_TYPES = [
2
- "landing",
3
- "document",
4
- "knowledge",
5
- "brand",
6
- "company",
7
- "flow",
8
- "action",
9
- "report",
10
- ];
11
- export const CHANGE_ACTIONS = ["created", "updated", "deleted"];
12
- export const REPORT_STATUSES = ["draft", "active", "error", "archived"];
13
- export const DOCUMENT_FORMATS = ["pdf", "pptx", "docx", "xlsx", "csv", "json"];
14
- export const chatChangeJsonSchema = {
15
- oneOf: [
16
- ...CHANGE_TYPES.filter((type) => type !== "report").map((type) => ({
17
- type: "object",
18
- additionalProperties: false,
19
- required: ["type", "slug", "action"],
20
- properties: {
21
- type: { const: type },
22
- slug: { type: "string", minLength: 1 },
23
- action: { enum: CHANGE_ACTIONS },
24
- contentVersion: { type: "number" },
25
- ...(type === "document" ? { format: { enum: DOCUMENT_FORMATS } } : {}),
26
- },
27
- })),
28
- {
29
- type: "object",
30
- additionalProperties: false,
31
- required: ["type", "slug", "action"],
32
- properties: {
33
- type: { const: "report" },
34
- slug: { type: "string", minLength: 1 },
35
- action: { enum: CHANGE_ACTIONS },
36
- contentVersion: { type: "number" },
37
- title: { type: "string" },
38
- description: { type: "string" },
39
- intent: { type: "string" },
40
- status: { enum: REPORT_STATUSES },
41
- sourcePath: { type: "string" },
42
- definitionContentVersion: { type: "number" },
43
- dashboardContentVersion: { type: "number" },
44
- endpointContentVersion: { type: "number" },
45
- errorMessage: { type: "string" },
46
- },
47
- },
48
- ],
49
- };
50
- //# sourceMappingURL=chat-change.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chat-change.js","sourceRoot":"","sources":["../../src/hono/chat-change.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,SAAS;IACT,UAAU;IACV,WAAW;IACX,OAAO;IACP,SAAS;IACT,MAAM;IACN,QAAQ;IACR,QAAQ;CACA,CAAC;AACX,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAU,CAAC;AACzE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAU,CAAC;AACjF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAU,CAAC;AAmCxF,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,KAAK,EAAE;QACL,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACjE,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,KAAK;YAC3B,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;YACpC,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;gBACrB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;gBACtC,MAAM,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;gBAChC,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAClC,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvE;SACF,CAAC,CAAC;QACH;YACE,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,KAAK;YAC3B,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;YACpC,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;gBACzB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;gBACtC,MAAM,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;gBAChC,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAClC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC/B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,MAAM,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;gBACjC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC9B,wBAAwB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC5C,uBAAuB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC3C,sBAAsB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1C,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aACjC;SACF;KACF;CACO,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=google-ads-rsa.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"google-ads-rsa.test.d.ts","sourceRoot":"","sources":["../../../../src/hono/guards/__tests__/google-ads-rsa.test.ts"],"names":[],"mappings":""}
@@ -1,65 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { validateAssistantOutputGuards } from "../../guards.js";
3
- import { TurnResultIntake } from "../../turn-result.js";
4
- import { validateGoogleAdsRsaAssets } from "../google-ads-rsa.js";
5
- function turnResultWithAssets(headlines, descriptions) {
6
- const result = TurnResultIntake.fromStructuredOutput({
7
- changes: [],
8
- outputGuards: {
9
- googleAdsRsa: {
10
- assets: { headlines, descriptions },
11
- },
12
- },
13
- });
14
- expect(result).not.toBeNull();
15
- return result;
16
- }
17
- describe("Google Ads RSA output guard", () => {
18
- it("accepts valid RSA headlines and descriptions declared in Turn Result output", () => {
19
- const result = turnResultWithAssets(["Book a Free Demo", "Cut Wasted Ad Spend"], ["Find leaks in your account and fix wasted spend before next month."]);
20
- expect(() => validateAssistantOutputGuards(result)).not.toThrow();
21
- });
22
- it("rejects RSA assets over Google character limits with a clear error", () => {
23
- const result = turnResultWithAssets(["This Headline Is Definitely Over Thirty Characters"], ["This description is intentionally longer than ninety characters so the bridge rejects it before completion."]);
24
- expect(() => validateAssistantOutputGuards(result)).toThrow('Google Ads RSA output guard failed: headline 1 is 50 characters (max 30): "This Headline Is Definitely Over Thirty Characters"; description 1 is 107 characters (max 90): "This description is intentionally longer than ninety characters so the bridge rejects it before completion."');
25
- });
26
- it("allows legacy Turn Result output without output guards", () => {
27
- const result = TurnResultIntake.fromStructuredOutput({ changes: [] });
28
- expect(result).toEqual({ changes: [] });
29
- expect(() => validateAssistantOutputGuards(result)).not.toThrow();
30
- });
31
- it("exposes optional googleAdsRsa assets in the structured output schema", () => {
32
- const outputFormat = TurnResultIntake.outputFormat();
33
- expect(outputFormat).toMatchObject({
34
- type: "json_schema",
35
- schema: {
36
- properties: {
37
- outputGuards: {
38
- properties: {
39
- googleAdsRsa: {
40
- required: ["assets"],
41
- properties: {
42
- assets: {
43
- properties: {
44
- headlines: { type: "array", items: { type: "string" } },
45
- descriptions: { type: "array", items: { type: "string" } },
46
- },
47
- },
48
- },
49
- },
50
- },
51
- },
52
- },
53
- },
54
- });
55
- });
56
- });
57
- describe("validateGoogleAdsRsaAssets", () => {
58
- it("recomputes lengths from asset text", () => {
59
- expect(() => validateGoogleAdsRsaAssets({
60
- headlines: ["123456789012345678901234567890"],
61
- descriptions: ["1".repeat(90)],
62
- })).not.toThrow();
63
- });
64
- });
65
- //# sourceMappingURL=google-ads-rsa.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"google-ads-rsa.test.js","sourceRoot":"","sources":["../../../../src/hono/guards/__tests__/google-ads-rsa.test.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { GoogleAdsRsaAssets } from "../turn-result.ts";
2
- export declare function validateGoogleAdsRsaAssets(assets: GoogleAdsRsaAssets): void;
3
- //# sourceMappingURL=google-ads-rsa.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"google-ads-rsa.d.ts","sourceRoot":"","sources":["../../../src/hono/guards/google-ads-rsa.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAkC5D,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAc3E"}
@@ -1,32 +0,0 @@
1
- const HEADLINE_MAX_LENGTH = 30;
2
- const DESCRIPTION_MAX_LENGTH = 90;
3
- function countGoogleAdsCharacters(value) {
4
- return Array.from(value).length;
5
- }
6
- function collectViolations(assets) {
7
- const violations = [];
8
- assets.headlines.forEach((text, index) => {
9
- const length = countGoogleAdsCharacters(text);
10
- if (length > HEADLINE_MAX_LENGTH) {
11
- violations.push({ kind: "headline", index, maxLength: HEADLINE_MAX_LENGTH, text, length });
12
- }
13
- });
14
- assets.descriptions.forEach((text, index) => {
15
- const length = countGoogleAdsCharacters(text);
16
- if (length > DESCRIPTION_MAX_LENGTH) {
17
- violations.push({ kind: "description", index, maxLength: DESCRIPTION_MAX_LENGTH, text, length });
18
- }
19
- });
20
- return violations;
21
- }
22
- export function validateGoogleAdsRsaAssets(assets) {
23
- const violations = collectViolations(assets);
24
- if (violations.length === 0) {
25
- return;
26
- }
27
- const details = violations
28
- .map((violation) => `${violation.kind} ${String(violation.index + 1)} is ${String(violation.length)} characters (max ${String(violation.maxLength)}): "${violation.text}"`)
29
- .join("; ");
30
- throw new Error(`Google Ads RSA output guard failed: ${details}`);
31
- }
32
- //# sourceMappingURL=google-ads-rsa.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"google-ads-rsa.js","sourceRoot":"","sources":["../../../src/hono/guards/google-ads-rsa.ts"],"names":[],"mappings":"AAEA,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAC/B,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAElC,SAAS,wBAAwB,CAAC,KAAa;IAC7C,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAClC,CAAC;AAUD,SAAS,iBAAiB,CAAC,MAA0B;IACnD,MAAM,UAAU,GAAgB,EAAE,CAAC;IACnC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACvC,MAAM,MAAM,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,MAAM,GAAG,mBAAmB,EAAE,CAAC;YACjC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC1C,MAAM,MAAM,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,MAAM,GAAG,sBAAsB,EAAE,CAAC;YACpC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,sBAAsB,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACnG,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,MAA0B;IACnE,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO;IACT,CAAC;IACD,MAAM,OAAO,GAAG,UAAU;SACvB,GAAG,CACF,CAAC,SAAS,EAAE,EAAE,CACZ,GAAG,SAAS,CAAC,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,oBAAoB,MAAM,CACvG,SAAS,CAAC,SAAS,CACpB,OAAO,SAAS,CAAC,IAAI,GAAG,CAC5B;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,IAAI,KAAK,CAAC,uCAAuC,OAAO,EAAE,CAAC,CAAC;AACpE,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { NormalizedTurnResult } from "./turn-result.ts";
2
- export declare function validateAssistantOutputGuards(turnResult: NormalizedTurnResult | null): void;
3
- //# sourceMappingURL=guards.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/hono/guards.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,oBAAoB,GAAG,IAAI,GAAG,IAAI,CAM3F"}
@@ -1,9 +0,0 @@
1
- import { validateGoogleAdsRsaAssets } from "./guards/google-ads-rsa.js";
2
- export function validateAssistantOutputGuards(turnResult) {
3
- const googleAdsRsa = turnResult?.outputGuards?.googleAdsRsa;
4
- if (!googleAdsRsa) {
5
- return;
6
- }
7
- validateGoogleAdsRsaAssets(googleAdsRsa.assets);
8
- }
9
- //# sourceMappingURL=guards.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"guards.js","sourceRoot":"","sources":["../../src/hono/guards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAGxE,MAAM,UAAU,6BAA6B,CAAC,UAAuC;IACnF,MAAM,YAAY,GAAG,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC;IAC5D,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO;IACT,CAAC;IACD,0BAA0B,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAClD,CAAC"}
@@ -1,36 +0,0 @@
1
- import type { OutputFormat, SDKMessage } from "@anthropic-ai/claude-agent-sdk";
2
- import type { ChatChange } from "./chat-change.ts";
3
- import type { CurrentReference } from "./types.ts";
4
- declare function turnResultOutputFormat(): OutputFormat;
5
- export interface GoogleAdsRsaAssets {
6
- headlines: string[];
7
- descriptions: string[];
8
- }
9
- export interface NormalizedOutputGuards {
10
- googleAdsRsa?: {
11
- assets: GoogleAdsRsaAssets;
12
- };
13
- }
14
- export interface NormalizedTurnResult {
15
- changes: ChatChange[];
16
- outputGuards?: NormalizedOutputGuards;
17
- }
18
- type TurnResultCallbackPayload = {
19
- turnResult?: {
20
- changes: ChatChange[];
21
- };
22
- };
23
- declare function normalizeTurnResult(input: unknown): NormalizedTurnResult | null;
24
- declare function callbackPayload(turnResult: NormalizedTurnResult | null | undefined, isError: boolean): TurnResultCallbackPayload;
25
- declare function appendCurrentChangesContext(prompt: string, currentChanges: ChatChange[] | undefined): string;
26
- declare function appendCurrentReferenceContext(prompt: string, currentReference: CurrentReference | undefined): string;
27
- export declare const TurnResultIntake: {
28
- readonly outputFormat: typeof turnResultOutputFormat;
29
- readonly appendCurrentChangesContext: typeof appendCurrentChangesContext;
30
- readonly appendCurrentReferenceContext: typeof appendCurrentReferenceContext;
31
- readonly fromStructuredOutput: typeof normalizeTurnResult;
32
- readonly fromSdkMessage: (message: SDKMessage) => NormalizedTurnResult | null;
33
- readonly callbackPayload: typeof callbackPayload;
34
- };
35
- export {};
36
- //# sourceMappingURL=turn-result.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"turn-result.d.ts","sourceRoot":"","sources":["../../src/hono/turn-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,KAAK,EAA4B,UAAU,EAAgC,MAAM,kBAAkB,CAAC;AAQ3G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,iBAAS,sBAAsB,IAAI,YAAY,CAmD9C;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,CAAC,EAAE;QACb,MAAM,EAAE,kBAAkB,CAAC;KAC5B,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,sBAAsB,CAAC;CACvC;AAED,KAAK,yBAAyB,GAAG;IAAE,UAAU,CAAC,EAAE;QAAE,OAAO,EAAE,UAAU,EAAE,CAAA;KAAE,CAAA;CAAE,CAAC;AAsG5E,iBAAS,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,oBAAoB,GAAG,IAAI,CAuBxE;AAMD,iBAAS,eAAe,CACtB,UAAU,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,EACnD,OAAO,EAAE,OAAO,GACf,yBAAyB,CAK3B;AAED,iBAAS,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,SAAS,GAAG,MAAM,CAKrG;AAED,iBAAS,6BAA6B,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,GAAG,SAAS,GAAG,MAAM,CAW7G;AAED,eAAO,MAAM,gBAAgB;;;;;uCAKH,UAAU,KAAG,oBAAoB,GAAG,IAAI;;CAIxD,CAAC"}