@townco/ui 0.1.45 → 0.1.47

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 (149) hide show
  1. package/dist/core/hooks/index.d.ts.map +1 -0
  2. package/dist/core/hooks/index.js.map +1 -0
  3. package/dist/core/hooks/use-chat-input.d.ts.map +1 -0
  4. package/dist/core/hooks/use-chat-input.js.map +1 -0
  5. package/dist/core/hooks/use-chat-messages.d.ts +6 -0
  6. package/dist/core/hooks/use-chat-messages.d.ts.map +1 -0
  7. package/dist/core/hooks/use-chat-messages.js +19 -8
  8. package/dist/core/hooks/use-chat-messages.js.map +1 -0
  9. package/dist/core/hooks/use-chat-session.d.ts.map +1 -0
  10. package/dist/core/hooks/use-chat-session.js +19 -3
  11. package/dist/core/hooks/use-chat-session.js.map +1 -0
  12. package/dist/core/hooks/use-tool-calls.d.ts +6 -0
  13. package/dist/core/index.d.ts.map +1 -0
  14. package/dist/core/index.js.map +1 -0
  15. package/dist/core/lib/logger.d.ts +24 -0
  16. package/dist/core/lib/logger.js +108 -0
  17. package/dist/core/schemas/chat.d.ts +18 -0
  18. package/dist/core/schemas/chat.d.ts.map +1 -0
  19. package/dist/core/schemas/chat.js.map +1 -0
  20. package/dist/core/schemas/index.d.ts.map +1 -0
  21. package/dist/core/schemas/index.js.map +1 -0
  22. package/dist/core/schemas/tool-call.d.ts +9 -0
  23. package/dist/core/schemas/tool-call.js +9 -0
  24. package/dist/core/store/chat-store.d.ts +14 -2
  25. package/dist/core/store/chat-store.d.ts.map +1 -0
  26. package/dist/core/store/chat-store.js +3 -3
  27. package/dist/core/store/chat-store.js.map +1 -0
  28. package/dist/gui/components/Button.d.ts.map +1 -0
  29. package/dist/gui/components/Button.js.map +1 -0
  30. package/dist/gui/components/Card.d.ts.map +1 -0
  31. package/dist/gui/components/Card.js.map +1 -0
  32. package/dist/gui/components/ChatInput.d.ts.map +1 -0
  33. package/dist/gui/components/ChatInput.js.map +1 -0
  34. package/dist/gui/components/ChatSecondaryPanel.d.ts.map +1 -0
  35. package/dist/gui/components/ChatSecondaryPanel.js.map +1 -0
  36. package/dist/gui/components/ChatStatus.d.ts.map +1 -0
  37. package/dist/gui/components/ChatStatus.js.map +1 -0
  38. package/dist/gui/components/ChatView.js +29 -12
  39. package/dist/gui/components/ContextUsageButton.d.ts +11 -3
  40. package/dist/gui/components/ContextUsageButton.js +22 -3
  41. package/dist/gui/components/Conversation.d.ts.map +1 -0
  42. package/dist/gui/components/Conversation.js.map +1 -0
  43. package/dist/gui/components/Dialog.d.ts.map +1 -0
  44. package/dist/gui/components/Dialog.js.map +1 -0
  45. package/dist/gui/components/HeightTransition.d.ts.map +1 -0
  46. package/dist/gui/components/HeightTransition.js.map +1 -0
  47. package/dist/gui/components/Input.d.ts.map +1 -0
  48. package/dist/gui/components/Input.js.map +1 -0
  49. package/dist/gui/components/Label.d.ts.map +1 -0
  50. package/dist/gui/components/Label.js.map +1 -0
  51. package/dist/gui/components/MarkdownRenderer.d.ts.map +1 -0
  52. package/dist/gui/components/MarkdownRenderer.js.map +1 -0
  53. package/dist/gui/components/Message.d.ts.map +1 -0
  54. package/dist/gui/components/Message.js.map +1 -0
  55. package/dist/gui/components/MessageContent.d.ts +5 -0
  56. package/dist/gui/components/MessageContent.d.ts.map +1 -0
  57. package/dist/gui/components/MessageContent.js +2 -55
  58. package/dist/gui/components/MessageContent.js.map +1 -0
  59. package/dist/gui/components/MessageList.d.ts.map +1 -0
  60. package/dist/gui/components/MessageList.js.map +1 -0
  61. package/dist/gui/components/Reasoning.d.ts.map +1 -0
  62. package/dist/gui/components/Reasoning.js.map +1 -0
  63. package/dist/gui/components/Response.d.ts.map +1 -0
  64. package/dist/gui/components/Response.js.map +1 -0
  65. package/dist/gui/components/Select.d.ts.map +1 -0
  66. package/dist/gui/components/Select.js.map +1 -0
  67. package/dist/gui/components/Tabs.d.ts.map +1 -0
  68. package/dist/gui/components/Tabs.js.map +1 -0
  69. package/dist/gui/components/Task.d.ts.map +1 -0
  70. package/dist/gui/components/Task.js.map +1 -0
  71. package/dist/gui/components/Textarea.d.ts.map +1 -0
  72. package/dist/gui/components/Textarea.js.map +1 -0
  73. package/dist/gui/components/ThinkingBlock.d.ts.map +1 -0
  74. package/dist/gui/components/ThinkingBlock.js.map +1 -0
  75. package/dist/gui/components/TodoList.d.ts.map +1 -0
  76. package/dist/gui/components/TodoList.js.map +1 -0
  77. package/dist/gui/components/TodoListItem.d.ts.map +1 -0
  78. package/dist/gui/components/TodoListItem.js.map +1 -0
  79. package/dist/gui/components/ToolCall.js +1 -1
  80. package/dist/gui/components/index.d.ts.map +1 -0
  81. package/dist/gui/components/index.js.map +1 -0
  82. package/dist/gui/index.d.ts.map +1 -0
  83. package/dist/gui/index.js.map +1 -0
  84. package/dist/gui/lib/utils.d.ts.map +1 -0
  85. package/dist/gui/lib/utils.js.map +1 -0
  86. package/dist/index.d.ts.map +1 -0
  87. package/dist/index.js.map +1 -0
  88. package/dist/sdk/client/acp-client.d.ts +12 -0
  89. package/dist/sdk/client/acp-client.d.ts.map +1 -0
  90. package/dist/sdk/client/acp-client.js +19 -0
  91. package/dist/sdk/client/acp-client.js.map +1 -0
  92. package/dist/sdk/client/index.d.ts.map +1 -0
  93. package/dist/sdk/client/index.js.map +1 -0
  94. package/dist/sdk/index.d.ts.map +1 -0
  95. package/dist/sdk/index.js.map +1 -0
  96. package/dist/sdk/schemas/agent.d.ts.map +1 -0
  97. package/dist/sdk/schemas/agent.js.map +1 -0
  98. package/dist/sdk/schemas/index.d.ts.map +1 -0
  99. package/dist/sdk/schemas/index.js.map +1 -0
  100. package/dist/sdk/schemas/message.d.ts +13 -2
  101. package/dist/sdk/schemas/message.d.ts.map +1 -0
  102. package/dist/sdk/schemas/message.js +15 -0
  103. package/dist/sdk/schemas/message.js.map +1 -0
  104. package/dist/sdk/schemas/session.d.ts +13 -0
  105. package/dist/sdk/schemas/session.d.ts.map +1 -0
  106. package/dist/sdk/schemas/session.js +1 -0
  107. package/dist/sdk/schemas/session.js.map +1 -0
  108. package/dist/sdk/transports/http.d.ts +8 -0
  109. package/dist/sdk/transports/http.d.ts.map +1 -0
  110. package/dist/sdk/transports/http.js +71 -8
  111. package/dist/sdk/transports/http.js.map +1 -0
  112. package/dist/sdk/transports/index.d.ts.map +1 -0
  113. package/dist/sdk/transports/index.js.map +1 -0
  114. package/dist/sdk/transports/stdio.d.ts +8 -0
  115. package/dist/sdk/transports/stdio.d.ts.map +1 -0
  116. package/dist/sdk/transports/stdio.js +28 -0
  117. package/dist/sdk/transports/stdio.js.map +1 -0
  118. package/dist/sdk/transports/types.d.ts +12 -0
  119. package/dist/sdk/transports/types.d.ts.map +1 -0
  120. package/dist/sdk/transports/types.js.map +1 -0
  121. package/dist/sdk/transports/websocket.d.ts.map +1 -0
  122. package/dist/sdk/transports/websocket.js.map +1 -0
  123. package/dist/test-http-client.d.ts +11 -0
  124. package/dist/test-http-client.d.ts.map +1 -0
  125. package/dist/test-http-client.js +147 -0
  126. package/dist/test-http-client.js.map +1 -0
  127. package/dist/test-http-transport.d.ts +11 -0
  128. package/dist/test-http-transport.d.ts.map +1 -0
  129. package/dist/test-http-transport.js +127 -0
  130. package/dist/test-http-transport.js.map +1 -0
  131. package/dist/tui/components/ChatView.d.ts.map +1 -0
  132. package/dist/tui/components/ChatView.js.map +1 -0
  133. package/dist/tui/components/GameOfLife.d.ts.map +1 -0
  134. package/dist/tui/components/GameOfLife.js.map +1 -0
  135. package/dist/tui/components/InputBox.d.ts.map +1 -0
  136. package/dist/tui/components/InputBox.js.map +1 -0
  137. package/dist/tui/components/MessageList.d.ts.map +1 -0
  138. package/dist/tui/components/MessageList.js.map +1 -0
  139. package/dist/tui/components/ReadlineInput.d.ts.map +1 -0
  140. package/dist/tui/components/ReadlineInput.js.map +1 -0
  141. package/dist/tui/components/StatusBar.d.ts.map +1 -0
  142. package/dist/tui/components/StatusBar.js.map +1 -0
  143. package/dist/tui/components/ToolCall.js +1 -1
  144. package/dist/tui/components/index.d.ts.map +1 -0
  145. package/dist/tui/components/index.js.map +1 -0
  146. package/dist/tui/index.d.ts.map +1 -0
  147. package/dist/tui/index.js.map +1 -0
  148. package/package.json +3 -3
  149. package/src/styles/global.css +15 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/hooks/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/hooks/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-chat-input.d.ts","sourceRoot":"","sources":["../../../src/core/hooks/use-chat-input.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAI3D;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;;;;;;;;;sBAezC,MAAM;;yBAkCP;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;0BAU7D,MAAM;EAejB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-chat-input.js","sourceRoot":"","sources":["../../../src/core/hooks/use-chat-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,MAAwB;IACnD,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,aAAa,GAAG,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACnE,MAAM,kBAAkB,GAAG,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC7E,MAAM,iBAAiB,GAAG,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC3E,MAAM,oBAAoB,GAAG,YAAY,CACvC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,oBAAoB,CACtC,CAAC;IAEF,MAAM,EAAE,WAAW,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAEhD;;OAEG;IACH,MAAM,iBAAiB,GAAG,WAAW,CACnC,CAAC,KAAa,EAAE,EAAE;QAChB,aAAa,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC,EACD,CAAC,aAAa,CAAC,CAChB,CAAC;IAEF;;OAEG;IACH,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC1C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC;QAE5B,wCAAwC;QACxC,aAAa,CAAC,EAAE,CAAC,CAAC;QAClB,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAEzB,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC;gBAAS,CAAC;YACT,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAAC,CAAC;IAE5D;;OAEG;IACH,MAAM,gBAAgB,GAAG,WAAW,CAClC,CAAC,IAAoE,EAAE,EAAE;QACvE,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,EACD,CAAC,iBAAiB,CAAC,CACpB,CAAC;IAEF;;OAEG;IACH,MAAM,gBAAgB,GAAG,WAAW,CAClC,CAAC,KAAa,EAAE,EAAE;QAChB,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC,EACD,CAAC,oBAAoB,CAAC,CACvB,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,QAAQ,EAAE,iBAAiB;QAC3B,QAAQ,EAAE,YAAY;QACtB,YAAY,EAAE,gBAAgB;QAC9B,YAAY,EAAE,gBAAgB;KAC/B,CAAC;AACJ,CAAC"}
@@ -52,6 +52,12 @@ export declare function useChatMessages(client: AcpClient | null, startSession:
52
52
  outputTokens?: number | undefined;
53
53
  totalTokens?: number | undefined;
54
54
  } | undefined;
55
+ _meta?: {
56
+ truncationWarning?: string | undefined;
57
+ compactionAction?: "compacted" | "truncated" | undefined;
58
+ originalTokens?: number | undefined;
59
+ finalTokens?: number | undefined;
60
+ } | undefined;
55
61
  }[] | undefined;
56
62
  tokenUsage?: {
57
63
  inputTokens?: number | undefined;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-chat-messages.d.ts","sourceRoot":"","sources":["../../../src/core/hooks/use-chat-messages.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAI3D;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;;;;;;;;;;;2BAgBpC,MAAM;EAsHzB"}
@@ -14,7 +14,7 @@ export function useChatMessages(client, startSession) {
14
14
  const addMessage = useChatStore((state) => state.addMessage);
15
15
  const updateMessage = useChatStore((state) => state.updateMessage);
16
16
  const setError = useChatStore((state) => state.setError);
17
- const setLatestContextInputTokens = useChatStore((state) => state.setLatestContextInputTokens);
17
+ const setLatestContextSize = useChatStore((state) => state.setLatestContextSize);
18
18
  /**
19
19
  * Send a message to the agent
20
20
  */
@@ -79,14 +79,24 @@ export function useChatMessages(client, startSession) {
79
79
  let accumulatedContent = "";
80
80
  let streamCompleted = false;
81
81
  for await (const chunk of messageStream) {
82
- // Update context input tokens if provided
83
- if ("contextInputTokens" in chunk &&
84
- chunk.contextInputTokens != null) {
85
- const tokens = chunk.contextInputTokens;
86
- logger.debug("Received contextInputTokens from backend", {
87
- contextInputTokens: tokens,
82
+ // Update context size if provided (check both _meta.context_size and direct context_size)
83
+ const chunkMeta = chunk._meta;
84
+ const contextSizeData = chunkMeta?.context_size || chunk.context_size;
85
+ if (contextSizeData != null) {
86
+ const contextSize = contextSizeData;
87
+ logger.info("✅ Received context_size from backend", {
88
+ context_size: contextSize,
89
+ totalEstimated: contextSize.totalEstimated,
90
+ source: chunkMeta?.context_size ? "_meta" : "direct",
91
+ });
92
+ setLatestContextSize(contextSize);
93
+ }
94
+ else {
95
+ logger.debug("Chunk does not have context_size", {
96
+ hasContextSize: "context_size" in chunk,
97
+ hasMeta: "_meta" in chunk,
98
+ metaKeys: chunkMeta ? Object.keys(chunkMeta) : null,
88
99
  });
89
- setLatestContextInputTokens(tokens);
90
100
  }
91
101
  if (chunk.tokenUsage) {
92
102
  logger.debug("Received tokenUsage from backend", {
@@ -150,6 +160,7 @@ export function useChatMessages(client, startSession) {
150
160
  setIsStreaming,
151
161
  setStreamingStartTime,
152
162
  setError,
163
+ setLatestContextSize,
153
164
  ]);
154
165
  return {
155
166
  messages,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-chat-messages.js","sourceRoot":"","sources":["../../../src/core/hooks/use-chat-messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGpC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAwB;IACtD,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3D,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACrE,MAAM,qBAAqB,GAAG,YAAY,CACxC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,qBAAqB,CACvC,CAAC;IACF,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC7D,MAAM,aAAa,GAAG,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEzD;;OAEG;IACH,MAAM,WAAW,GAAG,WAAW,CAC7B,KAAK,EAAE,OAAe,EAAE,EAAE;QACxB,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;YACvC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;YAChC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACrC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,6CAA6C;YAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,cAAc,CAAC,IAAI,CAAC,CAAC;YACrB,qBAAqB,CAAC,SAAS,CAAC,CAAC;YAEjC,yBAAyB;YACzB,MAAM,WAAW,GAAmB;gBAClC,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,OAAO;gBAC5B,IAAI,EAAE,MAAM;gBACZ,OAAO;gBACP,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,WAAW,EAAE,KAAK;aACnB,CAAC;YACF,UAAU,CAAC,WAAW,CAAC,CAAC;YAExB,0DAA0D;YAC1D,MAAM,kBAAkB,GAAG,OAAO,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC;YACzD,MAAM,gBAAgB,GAAmB;gBACvC,EAAE,EAAE,kBAAkB;gBACtB,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,EAAE;gBACX,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,WAAW,EAAE,IAAI;gBACjB,kBAAkB,EAAE,SAAS,EAAE,sDAAsD;aACtF,CAAC;YACF,UAAU,CAAC,gBAAgB,CAAC,CAAC;YAE7B,8DAA8D;YAC9D,MAAM,mBAAmB,GAAG,QAAQ;iBACjC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC;iBACtC,GAAG,CACF,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,KAAK,GAAG,CAAC,OAAO,EAAE,CACnE;iBACA,IAAI,CAAC,MAAM,CAAC,CAAC;YAEhB,mCAAmC;YACnC,MAAM,UAAU,GAAG,mBAAmB;gBACpC,CAAC,CAAC,GAAG,mBAAmB,cAAc,OAAO,EAAE;gBAC/C,CAAC,CAAC,OAAO,CAAC;YAEZ,0CAA0C;YAC1C,MAAM,aAAa,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;YAE/C,4DAA4D;YAC5D,6DAA6D;YAC7D,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACxD,MAAM,OAAO,GACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACzD,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAClB,cAAc,CAAC,KAAK,CAAC,CAAC;gBACtB,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;YAEH,8BAA8B;YAC9B,IAAI,kBAAkB,GAAG,EAAE,CAAC;YAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;gBACxC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;oBACrB,uBAAuB;oBACvB,aAAa,CAAC,kBAAkB,EAAE;wBAChC,OAAO,EAAE,kBAAkB;wBAC3B,WAAW,EAAE,KAAK;wBAClB,kBAAkB,EAAE,SAAS,EAAE,6BAA6B;qBAC7D,CAAC,CAAC;oBACH,cAAc,CAAC,KAAK,CAAC,CAAC;oBACtB,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,oCAAoC;oBACjE,MAAM;gBACR,CAAC;qBAAM,CAAC;oBACN,2BAA2B;oBAC3B,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;wBACvC,kBAAkB,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC;wBAC9C,aAAa,CAAC,kBAAkB,EAAE;4BAChC,OAAO,EAAE,kBAAkB;yBAC5B,CAAC,CAAC;wBAEH,6DAA6D;wBAC7D,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;oBAC1D,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,QAAQ,CAAC,OAAO,CAAC,CAAC;YAClB,cAAc,CAAC,KAAK,CAAC,CAAC;YACtB,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,sCAAsC;QACrE,CAAC;IACH,CAAC,EACD;QACE,MAAM;QACN,SAAS;QACT,QAAQ;QACR,UAAU;QACV,aAAa;QACb,cAAc;QACd,qBAAqB;QACrB,QAAQ;KACT,CACF,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,WAAW;QACX,WAAW;KACZ,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-chat-session.d.ts","sourceRoot":"","sources":["../../../src/core/hooks/use-chat-session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAG3D;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;;;;;;EAuFtD"}
@@ -14,11 +14,24 @@ export function useChatSession(client, initialSessionId) {
14
14
  const clearMessages = useChatStore((state) => state.clearMessages);
15
15
  const resetTokens = useChatStore((state) => state.resetTokens);
16
16
  const addMessage = useChatStore((state) => state.addMessage);
17
+ const setLatestContextSize = useChatStore((state) => state.setLatestContextSize);
17
18
  // Subscribe to session updates to handle replayed messages
18
19
  useEffect(() => {
19
20
  if (!client)
20
21
  return;
21
22
  const unsubscribe = client.onSessionUpdate((update) => {
23
+ // Extract context size from update metadata if available
24
+ const updateMeta = update._meta;
25
+ const contextSizeData = updateMeta?.context_size || update.context_size;
26
+ if (contextSizeData != null) {
27
+ const contextSize = contextSizeData;
28
+ logger.info("✅ Received context_size from session update", {
29
+ context_size: contextSize,
30
+ totalEstimated: contextSize.totalEstimated,
31
+ isReplay: updateMeta?.isReplay,
32
+ });
33
+ setLatestContextSize(contextSize);
34
+ }
22
35
  // Handle replayed messages during session loading
23
36
  if (update.message) {
24
37
  logger.debug("Session update with message", {
@@ -64,7 +77,7 @@ export function useChatSession(client, initialSessionId) {
64
77
  }
65
78
  });
66
79
  return unsubscribe;
67
- }, [client, addMessage]);
80
+ }, [client, addMessage, setLatestContextSize]);
68
81
  /**
69
82
  * Connect to the agent (without creating a session)
70
83
  */
@@ -99,12 +112,15 @@ export function useChatSession(client, initialSessionId) {
99
112
  try {
100
113
  setConnectionStatus("connecting");
101
114
  setError(null);
115
+ // Clear existing UI state before loading
116
+ clearMessages();
117
+ resetTokens(); // Clears latestContextSize temporarily
102
118
  // Try to load session (this will also connect and replay messages)
103
119
  const id = await client.loadSession(sessionIdToLoad);
104
120
  setSessionId(id);
105
121
  setConnectionStatus("connected");
106
- // Don't clear messages - they will be populated by session replay
107
- resetTokens();
122
+ // Messages and context size will be restored from backend during replay
123
+ // Backend sends context_size after replay completes (see adapter.ts:369-401)
108
124
  logger.info("Session loaded successfully", { sessionId: id });
109
125
  }
110
126
  catch (error) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-chat-session.js","sourceRoot":"","sources":["../../../src/core/hooks/use-chat-session.ts"],"names":[],"mappings":"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"}
@@ -50,6 +50,12 @@ export declare function useToolCalls(client: AcpClient | null): {
50
50
  outputTokens?: number | undefined;
51
51
  totalTokens?: number | undefined;
52
52
  } | undefined;
53
+ _meta?: {
54
+ truncationWarning?: string | undefined;
55
+ compactionAction?: "compacted" | "truncated" | undefined;
56
+ originalTokens?: number | undefined;
57
+ finalTokens?: number | undefined;
58
+ } | undefined;
53
59
  }[]>;
54
60
  getToolCallsForSession: (sessionId: string) => ToolCall[];
55
61
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Browser-compatible logger
3
+ * Outputs structured JSON logs to console with color-coding
4
+ */
5
+ export type LogLevel = "trace" | "debug" | "info" | "warn" | "error" | "fatal";
6
+ export declare class Logger {
7
+ private service;
8
+ private minLevel;
9
+ constructor(service: string, minLevel?: LogLevel);
10
+ private shouldLog;
11
+ private log;
12
+ trace(message: string, metadata?: Record<string, unknown>): void;
13
+ debug(message: string, metadata?: Record<string, unknown>): void;
14
+ info(message: string, metadata?: Record<string, unknown>): void;
15
+ warn(message: string, metadata?: Record<string, unknown>): void;
16
+ error(message: string, metadata?: Record<string, unknown>): void;
17
+ fatal(message: string, metadata?: Record<string, unknown>): void;
18
+ }
19
+ /**
20
+ * Create a logger instance for a service
21
+ * @param service - Service name (e.g., "gui", "http-agent", "tui")
22
+ * @param minLevel - Minimum log level to display (default: "debug")
23
+ */
24
+ export declare function createLogger(service: string, minLevel?: LogLevel): Logger;
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Browser-compatible logger
3
+ * Outputs structured JSON logs to console with color-coding
4
+ */
5
+ const LOG_LEVELS = {
6
+ trace: 0,
7
+ debug: 1,
8
+ info: 2,
9
+ warn: 3,
10
+ error: 4,
11
+ fatal: 5,
12
+ };
13
+ const _LOG_COLORS = {
14
+ trace: "#6B7280", // gray
15
+ debug: "#3B82F6", // blue
16
+ info: "#10B981", // green
17
+ warn: "#F59E0B", // orange
18
+ error: "#EF4444", // red
19
+ fatal: "#DC2626", // dark red
20
+ };
21
+ const LOG_STYLES = {
22
+ trace: "color: #6B7280",
23
+ debug: "color: #3B82F6; font-weight: bold",
24
+ info: "color: #10B981; font-weight: bold",
25
+ warn: "color: #F59E0B; font-weight: bold",
26
+ error: "color: #EF4444; font-weight: bold",
27
+ fatal: "color: #DC2626; font-weight: bold; background: #FEE2E2",
28
+ };
29
+ export class Logger {
30
+ service;
31
+ minLevel;
32
+ constructor(service, minLevel = "debug") {
33
+ this.service = service;
34
+ this.minLevel = minLevel;
35
+ // In production, suppress trace and debug logs
36
+ if (typeof process !== "undefined" &&
37
+ process.env?.NODE_ENV === "production") {
38
+ this.minLevel = "info";
39
+ }
40
+ }
41
+ shouldLog(level) {
42
+ return LOG_LEVELS[level] >= LOG_LEVELS[this.minLevel];
43
+ }
44
+ log(level, message, metadata) {
45
+ if (!this.shouldLog(level)) {
46
+ return;
47
+ }
48
+ const entry = {
49
+ timestamp: new Date().toISOString(),
50
+ level,
51
+ service: this.service,
52
+ message,
53
+ ...(metadata && { metadata }),
54
+ };
55
+ // Console output with color-coding
56
+ const style = LOG_STYLES[level];
57
+ const levelUpper = level.toUpperCase().padEnd(5);
58
+ if (typeof console !== "undefined") {
59
+ // Format: [timestamp] [SERVICE] [LEVEL] message
60
+ const prefix = `%c[${entry.timestamp}] [${this.service}] [${levelUpper}]`;
61
+ const msg = metadata ? `${message} %o` : message;
62
+ switch (level) {
63
+ case "trace":
64
+ case "debug":
65
+ case "info":
66
+ console.log(prefix, style, msg, ...(metadata ? [metadata] : []));
67
+ break;
68
+ case "warn":
69
+ console.warn(prefix, style, msg, ...(metadata ? [metadata] : []));
70
+ break;
71
+ case "error":
72
+ case "fatal":
73
+ console.error(prefix, style, msg, ...(metadata ? [metadata] : []));
74
+ break;
75
+ }
76
+ }
77
+ // Also log the structured JSON for debugging
78
+ if (level === "fatal" || level === "error") {
79
+ console.debug("Structured log:", JSON.stringify(entry));
80
+ }
81
+ }
82
+ trace(message, metadata) {
83
+ this.log("trace", message, metadata);
84
+ }
85
+ debug(message, metadata) {
86
+ this.log("debug", message, metadata);
87
+ }
88
+ info(message, metadata) {
89
+ this.log("info", message, metadata);
90
+ }
91
+ warn(message, metadata) {
92
+ this.log("warn", message, metadata);
93
+ }
94
+ error(message, metadata) {
95
+ this.log("error", message, metadata);
96
+ }
97
+ fatal(message, metadata) {
98
+ this.log("fatal", message, metadata);
99
+ }
100
+ }
101
+ /**
102
+ * Create a logger instance for a service
103
+ * @param service - Service name (e.g., "gui", "http-agent", "tui")
104
+ * @param minLevel - Minimum log level to display (default: "debug")
105
+ */
106
+ export function createLogger(service, minLevel = "debug") {
107
+ return new Logger(service, minLevel);
108
+ }
@@ -74,6 +74,15 @@ export declare const DisplayMessage: z.ZodObject<{
74
74
  outputTokens: z.ZodOptional<z.ZodNumber>;
75
75
  totalTokens: z.ZodOptional<z.ZodNumber>;
76
76
  }, z.core.$strip>>;
77
+ _meta: z.ZodOptional<z.ZodObject<{
78
+ truncationWarning: z.ZodOptional<z.ZodString>;
79
+ compactionAction: z.ZodOptional<z.ZodEnum<{
80
+ compacted: "compacted";
81
+ truncated: "truncated";
82
+ }>>;
83
+ originalTokens: z.ZodOptional<z.ZodNumber>;
84
+ finalTokens: z.ZodOptional<z.ZodNumber>;
85
+ }, z.core.$strip>>;
77
86
  }, z.core.$strip>>>;
78
87
  tokenUsage: z.ZodOptional<z.ZodObject<{
79
88
  inputTokens: z.ZodOptional<z.ZodNumber>;
@@ -172,6 +181,15 @@ export declare const ChatSessionState: z.ZodObject<{
172
181
  outputTokens: z.ZodOptional<z.ZodNumber>;
173
182
  totalTokens: z.ZodOptional<z.ZodNumber>;
174
183
  }, z.core.$strip>>;
184
+ _meta: z.ZodOptional<z.ZodObject<{
185
+ truncationWarning: z.ZodOptional<z.ZodString>;
186
+ compactionAction: z.ZodOptional<z.ZodEnum<{
187
+ compacted: "compacted";
188
+ truncated: "truncated";
189
+ }>>;
190
+ originalTokens: z.ZodOptional<z.ZodNumber>;
191
+ finalTokens: z.ZodOptional<z.ZodNumber>;
192
+ }, z.core.$strip>>;
175
193
  }, z.core.$strip>>>;
176
194
  tokenUsage: z.ZodOptional<z.ZodObject<{
177
195
  inputTokens: z.ZodOptional<z.ZodNumber>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/core/schemas/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;EAQzB,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWrB,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO3B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,gBAAgB,iEAK3B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/core/schemas/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACvC,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,wCAAwC;IACnF,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAGH;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE;IACzB,aAAa,EAAE,CAAC,CAAC,KAAK,CACpB,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;KACrB,CAAC,CACH;CACF,CAAC,CAAC;AAGH;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;IACxB,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;IACxB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC;IACjC,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAGH;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC;IACrC,cAAc;IACd,YAAY;IACZ,WAAW;IACX,OAAO;CACR,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/schemas/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,WAAW,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/schemas/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,WAAW,CAAC"}
@@ -125,6 +125,15 @@ export declare const ToolCallSchema: z.ZodObject<{
125
125
  outputTokens: z.ZodOptional<z.ZodNumber>;
126
126
  totalTokens: z.ZodOptional<z.ZodNumber>;
127
127
  }, z.core.$strip>>;
128
+ _meta: z.ZodOptional<z.ZodObject<{
129
+ truncationWarning: z.ZodOptional<z.ZodString>;
130
+ compactionAction: z.ZodOptional<z.ZodEnum<{
131
+ compacted: "compacted";
132
+ truncated: "truncated";
133
+ }>>;
134
+ originalTokens: z.ZodOptional<z.ZodNumber>;
135
+ finalTokens: z.ZodOptional<z.ZodNumber>;
136
+ }, z.core.$strip>>;
128
137
  }, z.core.$strip>;
129
138
  export type ToolCall = z.infer<typeof ToolCallSchema>;
130
139
  /**
@@ -101,6 +101,15 @@ export const ToolCallSchema = z.object({
101
101
  completedAt: z.number().optional(),
102
102
  /** Token usage metadata for this tool call */
103
103
  tokenUsage: TokenUsageSchema.optional(),
104
+ /** Internal metadata (e.g., truncation warnings) */
105
+ _meta: z
106
+ .object({
107
+ truncationWarning: z.string().optional(),
108
+ compactionAction: z.enum(["compacted", "truncated"]).optional(),
109
+ originalTokens: z.number().optional(),
110
+ finalTokens: z.number().optional(),
111
+ })
112
+ .optional(),
104
113
  });
105
114
  /**
106
115
  * Partial update for an existing tool call
@@ -1,6 +1,18 @@
1
1
  import { type LogEntry } from "@townco/core";
2
2
  import type { ConnectionStatus, DisplayMessage, InputState } from "../schemas/index.js";
3
3
  import type { ToolCall, ToolCallUpdate } from "../schemas/tool-call.js";
4
+ /**
5
+ * Context size breakdown from agent
6
+ */
7
+ export interface ContextSize {
8
+ systemPromptTokens: number;
9
+ userMessagesTokens: number;
10
+ assistantMessagesTokens: number;
11
+ toolInputTokens: number;
12
+ toolResultsTokens: number;
13
+ totalEstimated: number;
14
+ llmReportedInputTokens?: number;
15
+ }
4
16
  /**
5
17
  * Chat store state
6
18
  */
@@ -22,7 +34,7 @@ export interface ChatStore {
22
34
  outputTokens: number;
23
35
  totalTokens: number;
24
36
  };
25
- latestContextInputTokens: number | null;
37
+ latestContextSize: ContextSize | null;
26
38
  currentModel: string | null;
27
39
  tokenDisplayMode: "context" | "input" | "output";
28
40
  logs: LogEntry[];
@@ -50,7 +62,7 @@ export interface ChatStore {
50
62
  outputTokens?: number;
51
63
  totalTokens?: number;
52
64
  }) => void;
53
- setLatestContextInputTokens: (tokens: number | null) => void;
65
+ setLatestContextSize: (contextSize: ContextSize | null) => void;
54
66
  setCurrentModel: (model: string) => void;
55
67
  resetTokens: () => void;
56
68
  cycleTokenDisplayMode: () => void;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-store.d.ts","sourceRoot":"","sources":["../../../src/core/store/chat-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,UAAU,EACX,MAAM,qBAAqB,CAAC;AAE7B;;GAEG;AACH,MAAM,WAAW,SAAS;IAExB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAGrB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAGlC,KAAK,EAAE,UAAU,CAAC;IAGlB,mBAAmB,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACxD,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,UAAU,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9C,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IACtE,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,cAAc,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,qBAAqB,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACrD,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,kBAAkB,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD,iBAAiB,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IACvE,oBAAoB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,wEAyEtB,CAAC"}
@@ -24,7 +24,7 @@ export const useChatStore = create((set) => ({
24
24
  outputTokens: 0,
25
25
  totalTokens: 0,
26
26
  },
27
- latestContextInputTokens: null,
27
+ latestContextSize: null,
28
28
  currentModel: "claude-sonnet-4-5-20250929", // Default model, TODO: get from server
29
29
  tokenDisplayMode: "context", // Default to showing context (both billed and current)
30
30
  logs: [],
@@ -279,7 +279,7 @@ export const useChatStore = create((set) => ({
279
279
  (state.currentContext.outputTokens + (tokenUsage.outputTokens ?? 0)),
280
280
  },
281
281
  })),
282
- setLatestContextInputTokens: (tokens) => set({ latestContextInputTokens: tokens }),
282
+ setLatestContextSize: (contextSize) => set({ latestContextSize: contextSize }),
283
283
  setCurrentModel: (model) => set({ currentModel: model }),
284
284
  resetTokens: () => set({
285
285
  totalBilled: {
@@ -292,7 +292,7 @@ export const useChatStore = create((set) => ({
292
292
  outputTokens: 0,
293
293
  totalTokens: 0,
294
294
  },
295
- latestContextInputTokens: null,
295
+ latestContextSize: null,
296
296
  }),
297
297
  cycleTokenDisplayMode: () => set((state) => {
298
298
  const modes = [
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-store.js","sourceRoot":"","sources":["../../../src/core/store/chat-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAwCjC;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAY,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACtD,gBAAgB;IAChB,gBAAgB,EAAE,cAAc;IAChC,SAAS,EAAE,IAAI;IACf,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,EAAE;IACZ,WAAW,EAAE,KAAK;IAClB,kBAAkB,EAAE,IAAI;IACxB,KAAK,EAAE;QACL,KAAK,EAAE,EAAE;QACT,YAAY,EAAE,KAAK;QACnB,aAAa,EAAE,EAAE;KAClB;IAED,UAAU;IACV,mBAAmB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAElE,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAE5C,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;IAEnC,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CACtB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACd,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC;KACvC,CAAC,CAAC;IAEL,aAAa,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,CAC7B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACd,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACnC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,CAC7C;KACF,CAAC,CAAC;IAEL,aAAa,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAE1C,cAAc,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;IAE9D,qBAAqB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;IAElE,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CACvB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACd,KAAK,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE;KACjC,CAAC,CAAC;IAEL,kBAAkB,EAAE,CAAC,UAAU,EAAE,EAAE,CACjC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACd,KAAK,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE;KACpD,CAAC,CAAC;IAEL,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAC1B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACd,KAAK,EAAE;YACL,GAAG,KAAK,CAAC,KAAK;YACd,aAAa,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC;SACpD;KACF,CAAC,CAAC;IAEL,oBAAoB,EAAE,CAAC,KAAK,EAAE,EAAE,CAC9B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACd,KAAK,EAAE;YACL,GAAG,KAAK,CAAC,KAAK;YACd,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC;SACvE;KACF,CAAC,CAAC;IAEL,UAAU,EAAE,GAAG,EAAE,CACf,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACf,KAAK,EAAE;YACL,KAAK,EAAE,EAAE;YACT,YAAY,EAAE,KAAK;YACnB,aAAa,EAAE,EAAE;SAClB;KACF,CAAC,CAAC;CACN,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/gui/components/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIlE,QAAA,MAAM,cAAc;;;8EA2BnB,CAAC;AAEF,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EACnD,YAAY,CAAC,OAAO,cAAc,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,QAAA,MAAM,MAAM,uFAWX,CAAC;AAGF,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/gui/components/Button.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,MAAM,cAAc,GAAG,GAAG,CACxB,0VAA0V,EAC1V;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,wDAAwD;YACjE,WAAW,EACT,oEAAoE;YACtE,OAAO,EACL,gFAAgF;YAClF,SAAS,EACP,8DAA8D;YAChE,KAAK,EAAE,8CAA8C;YACrD,IAAI,EAAE,iDAAiD;SACxD;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,gBAAgB;YACzB,EAAE,EAAE,qBAAqB;YACzB,EAAE,EAAE,sBAAsB;YAC1B,IAAI,EAAE,WAAW;SAClB;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;KAChB;CACF,CACF,CAAC;AAQF,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAC7B,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IAC/D,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;IACvC,OAAO,CACL,KAAC,IAAI,IACH,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,EAC3D,GAAG,EAAE,GAAG,KACJ,KAAK,GACT,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AACF,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC;AAE9B,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../src/gui/components/Card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,QAAA,MAAM,IAAI,6GAYR,CAAC;AAGH,QAAA,MAAM,UAAU,6GASd,CAAC;AAGH,QAAA,MAAM,SAAS,6GAYb,CAAC;AAGH,QAAA,MAAM,eAAe,6GASnB,CAAC;AAGH,QAAA,MAAM,WAAW,6GAKf,CAAC;AAGH,QAAA,MAAM,UAAU,6GASd,CAAC;AAGH,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Card.js","sourceRoot":"","sources":["../../../src/gui/components/Card.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAG3B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,0DAA0D,EAC1D,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC,CAAC;AACH,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;AAE1B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAGjC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,KACrD,KAAK,GACT,CACH,CAAC,CAAC;AACH,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC;AAEtC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAGhC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,oDAAoD,EACpD,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC,CAAC;AACH,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;AAEpC,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAGtC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,KACrD,KAAK,GACT,CACH,CAAC,CAAC;AACH,eAAe,CAAC,WAAW,GAAG,iBAAiB,CAAC;AAEhD,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAGlC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,cAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CACnE,CAAC,CAAC;AACH,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC;AAExC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAGjC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,4BAA4B,EAAE,SAAS,CAAC,KAClD,KAAK,GACT,CACH,CAAC,CAAC;AACH,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC;AAEtC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatInput.d.ts","sourceRoot":"","sources":["../../../src/gui/components/ChatInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAmC3D,MAAM,WAAW,kBACf,SAAQ,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,eAAe,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IAChF;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAE1B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC,gCAAgC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,qDAAqD;IACrD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,QAAA,MAAM,aAAa,4FA8DlB,CAAC;AAOF,MAAM,WAAW,mBACf,SAAQ,IAAI,CACV,KAAK,CAAC,wBAAwB,CAAC,OAAO,QAAQ,CAAC,EAC/C,OAAO,GAAG,UAAU,CACrB;IACD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,QAAA,MAAM,cAAc,iGAkDlB,CAAC;AAOH,MAAM,WAAW,oBACf,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IACrD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,QAAA,MAAM,eAAe,gGAwBnB,CAAC;AAOH,OAAO,EACL,aAAa,IAAI,IAAI,EACrB,cAAc,IAAI,KAAK,EACvB,eAAe,IAAI,MAAM,GAC1B,CAAC;AAGF;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAE1B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,yBAAyB;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,wFAiCrB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatInput.js","sourceRoot":"","sources":["../../../src/gui/components/ChatInput.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatSecondaryPanel.d.ts","sourceRoot":"","sources":["../../../src/gui/components/ChatSecondaryPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAG3D;;;;GAIG;AACH,MAAM,WAAW,uBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC5C;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAE1B;;;OAGG;IACH,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;CACpB;AAED,eAAO,MAAM,kBAAkB,gGAwG7B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatSecondaryPanel.js","sourceRoot":"","sources":["../../../src/gui/components/ChatSecondaryPanel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatStatus.d.ts","sourceRoot":"","sources":["../../../src/gui/components/ChatStatus.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGpE,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;IAC5E,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,eAAO,MAAM,UAAU,yFAqDtB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatStatus.js","sourceRoot":"","sources":["../../../src/gui/components/ChatStatus.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AACpE,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAMrC,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CACxC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IACzC,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/D,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9D,MAAM,kBAAkB,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAEvC,SAAS,CAAC,GAAG,EAAE;QACb,mCAAmC;QACnC,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC;YAC9B,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC;YAClC,kBAAkB,CAAC,OAAO,GAAG,QAAQ,CAAC;YACtC,OAAO;QACT,CAAC;QAED,8CAA8C;QAC9C,IAAI,kBAAkB,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,uBAAuB;QACvB,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAEzB,6CAA6C;QAC7C,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAChC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAC5B,kBAAkB,CAAC,OAAO,GAAG,QAAQ,CAAC;YAEtC,kBAAkB;YAClB,qBAAqB,CAAC,GAAG,EAAE;gBACzB,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,4CAA4C;QAErD,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,CACL,eACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,6EAA6E,EAC7E,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,EAC5C,SAAS,CACV,KACG,KAAK,YAER,cAAc,GACV,CACR,CAAC;AACJ,CAAC,CACF,CAAC;AACF,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC"}