@superblocksteam/vite-plugin-file-sync 2.0.22-next.9 → 2.0.23-next.0

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 (139) hide show
  1. package/dist/ai-service/chat/chat-session-store.d.ts +3 -1
  2. package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
  3. package/dist/ai-service/chat/chat-session-store.js +14 -4
  4. package/dist/ai-service/chat/chat-session-store.js.map +1 -1
  5. package/dist/ai-service/chat/extract-history.d.ts +19 -10
  6. package/dist/ai-service/chat/extract-history.d.ts.map +1 -1
  7. package/dist/ai-service/chat/extract-history.js +58 -15
  8. package/dist/ai-service/chat/extract-history.js.map +1 -1
  9. package/dist/ai-service/evals/fixtures/open-api-example-schemas.d.ts +1591 -0
  10. package/dist/ai-service/evals/fixtures/open-api-example-schemas.d.ts.map +1 -0
  11. package/dist/ai-service/evals/fixtures/open-api-example-schemas.js +1766 -0
  12. package/dist/ai-service/evals/fixtures/open-api-example-schemas.js.map +1 -0
  13. package/dist/ai-service/evals/helpers/critical-scorers.d.ts.map +1 -1
  14. package/dist/ai-service/evals/helpers/critical-scorers.js +17 -57
  15. package/dist/ai-service/evals/helpers/critical-scorers.js.map +1 -1
  16. package/dist/ai-service/evals/helpers/eval-scoring.d.ts +7 -1
  17. package/dist/ai-service/evals/helpers/eval-scoring.d.ts.map +1 -1
  18. package/dist/ai-service/evals/helpers/eval-scoring.js +25 -14
  19. package/dist/ai-service/evals/helpers/eval-scoring.js.map +1 -1
  20. package/dist/ai-service/integrations/metadata/database.d.ts +10 -0
  21. package/dist/ai-service/integrations/metadata/database.d.ts.map +1 -0
  22. package/dist/ai-service/integrations/metadata/database.js +30 -0
  23. package/dist/ai-service/integrations/metadata/database.js.map +1 -0
  24. package/dist/ai-service/integrations/metadata/index.d.ts +9 -0
  25. package/dist/ai-service/integrations/metadata/index.d.ts.map +1 -0
  26. package/dist/ai-service/integrations/metadata/index.js +7 -0
  27. package/dist/ai-service/integrations/metadata/index.js.map +1 -0
  28. package/dist/ai-service/integrations/metadata/open-api.d.ts +17 -0
  29. package/dist/ai-service/integrations/metadata/open-api.d.ts.map +1 -0
  30. package/dist/ai-service/integrations/metadata/open-api.js +61 -0
  31. package/dist/ai-service/integrations/metadata/open-api.js.map +1 -0
  32. package/dist/ai-service/integrations/store.d.ts +9 -6
  33. package/dist/ai-service/integrations/store.d.ts.map +1 -1
  34. package/dist/ai-service/integrations/store.js +66 -47
  35. package/dist/ai-service/integrations/store.js.map +1 -1
  36. package/dist/ai-service/llm/impl/anthropic.d.ts.map +1 -1
  37. package/dist/ai-service/llm/impl/anthropic.js +1 -0
  38. package/dist/ai-service/llm/impl/anthropic.js.map +1 -1
  39. package/dist/ai-service/llm/impl/clark.d.ts.map +1 -1
  40. package/dist/ai-service/llm/impl/clark.js +1 -0
  41. package/dist/ai-service/llm/impl/clark.js.map +1 -1
  42. package/dist/ai-service/llm/provider.d.ts.map +1 -1
  43. package/dist/ai-service/llm/provider.js +1 -0
  44. package/dist/ai-service/llm/provider.js.map +1 -1
  45. package/dist/ai-service/llm/types.d.ts +1 -1
  46. package/dist/ai-service/llm/types.d.ts.map +1 -1
  47. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ButtonPropsDocs.js +1 -1
  48. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/CheckboxPropsDocs.js +1 -1
  49. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ColumnPropsDocs.js +1 -1
  50. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ContainerPropsDocs.js +1 -1
  51. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DatePickerPropsDocs.js +1 -1
  52. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DropdownPropsDocs.js +1 -1
  53. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/IconPropsDocs.js +1 -1
  54. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ImagePropsDocs.js +1 -1
  55. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/InputPropsDocs.js +1 -1
  56. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ModalPropsDocs.js +1 -1
  57. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/PagePropsDocs.js +1 -1
  58. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SectionPropsDocs.js +1 -1
  59. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SlideoutPropsDocs.js +1 -1
  60. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SwitchPropsDocs.js +1 -1
  61. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TablePropsDocs.js +1 -1
  62. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TextPropsDocs.js +1 -1
  63. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/Annotations.js +1 -1
  64. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/Dim.js +1 -1
  65. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/EventFlow.js +1 -1
  66. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/TextStyleWithVariant.js +1 -1
  67. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/full-examples.js +1 -1
  68. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-api.d.ts +1 -1
  69. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-api.d.ts.map +1 -1
  70. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-api.js +2 -2
  71. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-api.js.map +1 -1
  72. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-components-rules.js +1 -1
  73. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-custom-components.js +1 -1
  74. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-data-filtering.js +1 -1
  75. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-event-flow.js +1 -1
  76. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-forms.js +1 -1
  77. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-layouts.js +1 -1
  78. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-page.js +1 -1
  79. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-rbac.js +1 -1
  80. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-routes.js +1 -1
  81. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-state.js +1 -1
  82. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-theming.js +1 -1
  83. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-base.d.ts +1 -1
  84. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-base.d.ts.map +1 -1
  85. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-base.js +2 -2
  86. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-base.js.map +1 -1
  87. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-incremental.d.ts +1 -1
  88. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-incremental.d.ts.map +1 -1
  89. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-incremental.js +2 -2
  90. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-incremental.js.map +1 -1
  91. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-specific-edit.d.ts +1 -1
  92. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-specific-edit.d.ts.map +1 -1
  93. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-specific-edit.js +2 -2
  94. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-specific-edit.js.map +1 -1
  95. package/dist/ai-service/state-machine/clark-fsm.d.ts +5 -1
  96. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
  97. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
  98. package/dist/ai-service/state-machine/handlers/agent-planning.js +12 -5
  99. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
  100. package/dist/ai-service/state-machine/handlers/awaiting-user.d.ts +1 -1
  101. package/dist/ai-service/state-machine/handlers/awaiting-user.d.ts.map +1 -1
  102. package/dist/ai-service/state-machine/handlers/awaiting-user.js +51 -6
  103. package/dist/ai-service/state-machine/handlers/awaiting-user.js.map +1 -1
  104. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
  105. package/dist/ai-service/state-machine/handlers/llm-generating.js +24 -10
  106. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
  107. package/dist/ai-service/state-machine/helpers/change-info.d.ts.map +1 -1
  108. package/dist/ai-service/state-machine/helpers/change-info.js +0 -5
  109. package/dist/ai-service/state-machine/helpers/change-info.js.map +1 -1
  110. package/dist/ai-service/state-machine/mocks.d.ts.map +1 -1
  111. package/dist/ai-service/state-machine/mocks.js +3 -2
  112. package/dist/ai-service/state-machine/mocks.js.map +1 -1
  113. package/dist/ai-service/template-renderer.d.ts +1 -0
  114. package/dist/ai-service/template-renderer.d.ts.map +1 -1
  115. package/dist/ai-service/template-renderer.js +3 -0
  116. package/dist/ai-service/template-renderer.js.map +1 -1
  117. package/dist/ai-service/transform/api-builder/to-sdk-transformer.js +2 -2
  118. package/dist/ai-service/transform/api-builder/to-sdk-transformer.js.map +1 -1
  119. package/dist/file-sync-vite-plugin.d.ts.map +1 -1
  120. package/dist/file-sync-vite-plugin.js +1 -3
  121. package/dist/file-sync-vite-plugin.js.map +1 -1
  122. package/dist/injected-index.d.ts +1 -1
  123. package/dist/injected-index.d.ts.map +1 -1
  124. package/dist/injected-index.js +1 -28
  125. package/dist/injected-index.js.map +1 -1
  126. package/dist/parsing/events/to-code-events.d.ts.map +1 -1
  127. package/dist/parsing/events/to-code-events.js +9 -1
  128. package/dist/parsing/events/to-code-events.js.map +1 -1
  129. package/dist/parsing/events/to-value-events.d.ts.map +1 -1
  130. package/dist/parsing/events/to-value-events.js +22 -0
  131. package/dist/parsing/events/to-value-events.js.map +1 -1
  132. package/dist/plugin-options.d.ts +0 -1
  133. package/dist/plugin-options.d.ts.map +1 -1
  134. package/dist/plugin-options.js.map +1 -1
  135. package/package.json +6 -6
  136. package/dist/ai-service/integrations/from-prompt-context.d.ts +0 -5
  137. package/dist/ai-service/integrations/from-prompt-context.d.ts.map +0 -1
  138. package/dist/ai-service/integrations/from-prompt-context.js +0 -76
  139. package/dist/ai-service/integrations/from-prompt-context.js.map +0 -1
@@ -12,10 +12,12 @@ export declare class ChatSessionStore {
12
12
  private logger;
13
13
  private messages;
14
14
  private inFlightLoadFromServer;
15
+ private loadedFromServer;
15
16
  constructor(config: ChatSessionStoreConfig);
16
17
  private validateChatMessageV1;
17
18
  private loadFromServer;
18
- getMessagesFromHistory(): {
19
+ getLastUserMessage(): AiChatMessage | undefined;
20
+ getRecentExchanges(): {
19
21
  role: "user" | "assistant";
20
22
  content: string;
21
23
  }[];
@@ -1 +1 @@
1
- {"version":3,"file":"chat-session-store.d.ts","sourceRoot":"","sources":["../../../src/ai-service/chat/chat-session-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,aAAa,EACd,MAAM,uCAAuC,CAAC;AAE/C,UAAU,sBAAsB;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,uBAAuB,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,sBAAsB,CAAmB;gBAErC,MAAM,EAAE,sBAAsB;IAW1C,OAAO,CAAC,qBAAqB;YAoDf,cAAc;IA4BrB,sBAAsB,IAAI;QAC/B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAC3B,OAAO,EAAE,MAAM,CAAC;KACjB,EAAE;IAIU,WAAW;IAKX,OAAO;IAgBP,UAAU,CAAC,IAAI,EAAE,MAAM;IAWvB,oBAAoB;IAWpB,mBAAmB;IAWnB,eAAe,CAAC,OAAO,EAAE,aAAa;IAatC,yBAAyB,CAAC,OAAO,EAAE,gBAAgB;YAclD,aAAa;CAmB5B"}
1
+ {"version":3,"file":"chat-session-store.d.ts","sourceRoot":"","sources":["../../../src/ai-service/chat/chat-session-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAKjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,aAAa,EACd,MAAM,uCAAuC,CAAC;AAE/C,UAAU,sBAAsB;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,uBAAuB,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,sBAAsB,CAAmB;IACjD,OAAO,CAAC,gBAAgB,CAAkB;gBAE9B,MAAM,EAAE,sBAAsB;IAW1C,OAAO,CAAC,qBAAqB;YAoDf,cAAc;IA6BrB,kBAAkB,IAAI,aAAa,GAAG,SAAS;IAI/C,kBAAkB,IAAI;QAC3B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAC3B,OAAO,EAAE,MAAM,CAAC;KACjB,EAAE;IAOU,WAAW;IAOX,OAAO;IAgBP,UAAU,CAAC,IAAI,EAAE,MAAM;IAWvB,oBAAoB;IAWpB,mBAAmB;IAWnB,eAAe,CAAC,OAAO,EAAE,aAAa;IAatC,yBAAyB,CAAC,OAAO,EAAE,gBAAgB;YAclD,aAAa;CAmB5B"}
@@ -1,11 +1,12 @@
1
1
  import { getErrorMeta } from "../../util/logger.js";
2
- import { extractHistoryForContext } from "./extract-history.js";
2
+ import { extractProductiveHistoryForContext, getLastUserMessage, } from "./extract-history.js";
3
3
  export class ChatSessionStore {
4
4
  applicationId;
5
5
  rpcClient;
6
6
  logger;
7
7
  messages;
8
8
  inFlightLoadFromServer;
9
+ loadedFromServer = false;
9
10
  constructor(config) {
10
11
  this.rpcClient = config.rpcClient;
11
12
  this.applicationId = config.applicationId;
@@ -74,16 +75,25 @@ export class ChatSessionStore {
74
75
  });
75
76
  });
76
77
  await this.inFlightLoadFromServer;
78
+ this.loadedFromServer = true;
77
79
  }
78
80
  catch (error) {
79
81
  this.logger.error("[ai-service] Failed to load chat messages from server", getErrorMeta(error));
80
82
  }
81
83
  }
82
- getMessagesFromHistory() {
83
- return extractHistoryForContext(this.messages, { maxExchanges: 5 });
84
+ getLastUserMessage() {
85
+ return getLastUserMessage(this.messages);
86
+ }
87
+ getRecentExchanges() {
88
+ return extractProductiveHistoryForContext(this.messages, {
89
+ maxAcceptedExchanges: 2,
90
+ includeRecentUnknown: true,
91
+ });
84
92
  }
85
93
  async getMessages() {
86
- await this.loadFromServer();
94
+ if (!this.loadedFromServer) {
95
+ await this.loadFromServer();
96
+ }
87
97
  return this.messages;
88
98
  }
89
99
  async newChat() {
@@ -1 +1 @@
1
- {"version":3,"file":"chat-session-store.js","sourceRoot":"","sources":["../../../src/ai-service/chat/chat-session-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-session-store.js","sourceRoot":"","sources":["../../../src/ai-service/chat/chat-session-store.ts"],"names":[],"mappings":"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"}
@@ -45,20 +45,29 @@ export declare function identifyMessageExchanges(messages: AiChatMessage[]): Arr
45
45
  endIndex: number;
46
46
  }>;
47
47
  /**
48
- * Extract the N most recent complete message exchanges for LLM context
48
+ * Determine the outcome of a message exchange based on subsequent user actions
49
+ */
50
+ export declare function determineExchangeOutcome(exchange: {
51
+ userMessage: AiChatMessage;
52
+ assistantMessages: AiChatMessage[];
53
+ startIndex: number;
54
+ endIndex: number;
55
+ }, allMessages: AiChatMessage[]): "accepted" | "rejected" | "unknown";
56
+ export declare function getLastUserMessage(messages: AiChatMessage[]): AiChatMessage | undefined;
57
+ /**
58
+ * Extract productive conversation history for LLM context
49
59
  *
50
- * This function:
51
60
  * 1. Removes the most recent user message and anything after it (incomplete exchange)
52
61
  * 2. Identifies complete message exchanges (user prompt + assistant responses)
53
- * 3. Takes the N most recent complete exchanges
54
- * 4. Filters for text-only messages and applies summary logic
55
- *
56
- * @param messages - Array of chat messages
57
- * @param options - Configuration options
58
- * @returns Filtered messages suitable for LLM context
62
+ * 3. Categorizes exchanges by outcome (accepted, rejected, unknown)
63
+ * 4. Filters for accepted exchanges
64
+ * 5. Optionally includes the most recent exchange if outcome is unknown
65
+ * 6. Sorts exchanges by original order and flattens to messages
66
+ * 7. Processes messages to apply filtering and summary logic
59
67
  */
60
- export declare function extractHistoryForContext(messages: AiChatMessage[], options?: {
61
- maxExchanges?: number;
68
+ export declare function extractProductiveHistoryForContext(messages: AiChatMessage[], options?: {
69
+ maxAcceptedExchanges?: number;
70
+ includeRecentUnknown?: boolean;
62
71
  }): Array<{
63
72
  role: "user" | "assistant";
64
73
  content: string;
@@ -1 +1 @@
1
- {"version":3,"file":"extract-history.d.ts","sourceRoot":"","sources":["../../../src/ai-service/chat/extract-history.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAE3E;;;GAGG;AAEH;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,aAAa,EAAE,EACzB,KAAK,GAAE,MAAY,GAClB,aAAa,EAAE,CAEjB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,MAAM,CAO1E;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,aAAa,EAAE,EACzB,SAAS,EAAE,MAAM,GAChB,aAAa,EAAE,CAEjB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,aAAa,EAAE,EACzB,YAAY,EAAE,MAAM,GACnB,MAAM,CAmBR;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,GAAG,OAAO,CAEtE;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,aAAa,EAAE,EACzB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,aAAa,GACrB,OAAO,CAOT;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IACxE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CA2BD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IACzE,WAAW,EAAE,aAAa,CAAC;IAC3B,iBAAiB,EAAE,aAAa,EAAE,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CA+CD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,aAAa,EAAE,EACzB,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAO,GACtC,KAAK,CAAC;IACP,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CAyBD"}
1
+ {"version":3,"file":"extract-history.d.ts","sourceRoot":"","sources":["../../../src/ai-service/chat/extract-history.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAE3E;;;GAGG;AAEH;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,aAAa,EAAE,EACzB,KAAK,GAAE,MAAY,GAClB,aAAa,EAAE,CAEjB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,MAAM,CAO1E;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,aAAa,EAAE,EACzB,SAAS,EAAE,MAAM,GAChB,aAAa,EAAE,CAEjB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,aAAa,EAAE,EACzB,YAAY,EAAE,MAAM,GACnB,MAAM,CAmBR;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,GAAG,OAAO,CAEtE;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,aAAa,EAAE,EACzB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,aAAa,GACrB,OAAO,CAOT;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IACxE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CA2BD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IACzE,WAAW,EAAE,aAAa,CAAC;IAC3B,iBAAiB,EAAE,aAAa,EAAE,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CA+CD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE;IACR,WAAW,EAAE,aAAa,CAAC;IAC3B,iBAAiB,EAAE,aAAa,EAAE,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,EACD,WAAW,EAAE,aAAa,EAAE,GAC3B,UAAU,GAAG,UAAU,GAAG,SAAS,CAqBrC;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,aAAa,EAAE,GACxB,aAAa,GAAG,SAAS,CAG3B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,aAAa,EAAE,EACzB,OAAO,GAAE;IACP,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAC3B,GACL,KAAK,CAAC;IACP,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CAmDD"}
@@ -124,34 +124,77 @@ export function identifyMessageExchanges(messages) {
124
124
  return exchanges;
125
125
  }
126
126
  /**
127
- * Extract the N most recent complete message exchanges for LLM context
127
+ * Determine the outcome of a message exchange based on subsequent user actions
128
+ */
129
+ export function determineExchangeOutcome(exchange, allMessages) {
130
+ // Look for acceptance/rejection messages after this exchange
131
+ const messagesAfterExchange = allMessages.slice(exchange.endIndex + 1);
132
+ for (const message of messagesAfterExchange) {
133
+ if (message.role === "user") {
134
+ if (message.type === "draftAccepted") {
135
+ return "accepted";
136
+ }
137
+ if (message.type === "draftRejected") {
138
+ return "rejected";
139
+ }
140
+ // If we hit another user text message before finding acceptance/rejection,
141
+ // the outcome is unknown (user moved on without explicitly accepting/rejecting)
142
+ if (message.type === "text") {
143
+ return "unknown";
144
+ }
145
+ }
146
+ }
147
+ return "unknown";
148
+ }
149
+ export function getLastUserMessage(messages) {
150
+ const lastUserIndex = findLastUserMessageIndex(messages);
151
+ return lastUserIndex >= 0 ? messages[lastUserIndex] : undefined;
152
+ }
153
+ /**
154
+ * Extract productive conversation history for LLM context
128
155
  *
129
- * This function:
130
156
  * 1. Removes the most recent user message and anything after it (incomplete exchange)
131
157
  * 2. Identifies complete message exchanges (user prompt + assistant responses)
132
- * 3. Takes the N most recent complete exchanges
133
- * 4. Filters for text-only messages and applies summary logic
134
- *
135
- * @param messages - Array of chat messages
136
- * @param options - Configuration options
137
- * @returns Filtered messages suitable for LLM context
158
+ * 3. Categorizes exchanges by outcome (accepted, rejected, unknown)
159
+ * 4. Filters for accepted exchanges
160
+ * 5. Optionally includes the most recent exchange if outcome is unknown
161
+ * 6. Sorts exchanges by original order and flattens to messages
162
+ * 7. Processes messages to apply filtering and summary logic
138
163
  */
139
- export function extractHistoryForContext(messages, options = {}) {
140
- const { maxExchanges = 5 } = options;
164
+ export function extractProductiveHistoryForContext(messages, options = {}) {
165
+ const { maxAcceptedExchanges = 2, includeRecentUnknown = true } = options;
141
166
  // Step 1: Remove the most recent user message and anything after it
142
167
  const lastUserIndex = findLastUserMessageIndex(messages);
143
168
  const messagesWithoutMostRecentPrompt = removeMessagesFromIndex(messages, lastUserIndex);
144
169
  // Step 2: Identify complete message exchanges
145
170
  const exchanges = identifyMessageExchanges(messagesWithoutMostRecentPrompt);
146
- // Step 3: Take the N most recent complete exchanges
147
- const recentExchanges = exchanges.slice(-maxExchanges);
148
- // Step 4: Flatten exchanges back to messages and process them
171
+ // Step 3: Categorize exchanges by outcome
172
+ const exchangesWithOutcomes = exchanges.map((exchange) => ({
173
+ ...exchange,
174
+ outcome: determineExchangeOutcome(exchange, messages),
175
+ }));
176
+ // Step 4: Filter exchanges based on acceptance criteria
177
+ const acceptedExchanges = exchangesWithOutcomes
178
+ .filter((exchange) => exchange.outcome === "accepted")
179
+ .slice(-maxAcceptedExchanges); // Take the most recent accepted exchanges
180
+ let finalExchanges = acceptedExchanges;
181
+ // Step 5: Optionally include the most recent exchange if it has unknown outcome
182
+ // This covers the draft case where the user has not accepted or rejected the draft
183
+ if (includeRecentUnknown && exchanges.length > 0) {
184
+ const mostRecentExchange = exchangesWithOutcomes[exchangesWithOutcomes.length - 1];
185
+ if (mostRecentExchange?.outcome === "unknown" &&
186
+ !acceptedExchanges.includes(mostRecentExchange)) {
187
+ finalExchanges = [...acceptedExchanges, mostRecentExchange];
188
+ }
189
+ }
190
+ // Step 6: Sort by original order and flatten to messages
191
+ const sortedExchanges = finalExchanges.sort((a, b) => a.startIndex - b.startIndex);
149
192
  const exchangeMessages = [];
150
- for (const exchange of recentExchanges) {
193
+ for (const exchange of sortedExchanges) {
151
194
  exchangeMessages.push(exchange.userMessage);
152
195
  exchangeMessages.push(...exchange.assistantMessages);
153
196
  }
154
- // Step 5: Process messages to apply filtering and summary logic
197
+ // Step 7: Process messages to apply filtering and summary logic
155
198
  return processMessageExchanges(exchangeMessages);
156
199
  }
157
200
  //# sourceMappingURL=extract-history.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"extract-history.js","sourceRoot":"","sources":["../../../src/ai-service/chat/extract-history.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extract-history.js","sourceRoot":"","sources":["../../../src/ai-service/chat/extract-history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAG3D;;;GAGG;AAEH;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,QAAyB,EACzB,QAAgB,GAAG;IAEnB,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,QAAyB;IAChE,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;YACjC,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAAyB,EACzB,SAAiB;IAEjB,OAAO,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;AACvE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAyB,EACzB,YAAoB;IAEpB,KAAK,IAAI,CAAC,GAAG,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAEhC,wBAAwB;QACxB,IACE,WAAW,EAAE,IAAI,KAAK,WAAW;YACjC,WAAW,EAAE,KAAK,KAAK,OAAO;YAC9B,WAAW,EAAE,OAAO,KAAK,4BAA4B,EACrD,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC;QAED,4DAA4D;QAC5D,IAAI,WAAW,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;YACjC,MAAM;QACR,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,OAAkC;IAC3D,OAAO,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,8BAA8B,CAC5C,QAAyB,EACzB,YAAoB,EACpB,OAAsB;IAEtB,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,YAAY,GAAG,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC9D,OAAO,YAAY,IAAI,CAAC,IAAI,YAAY,GAAG,YAAY,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAyB;IAI/D,MAAM,iBAAiB,GAGlB,EAAE,CAAC;IAER,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE5B,yCAAyC;QACzC,IAAI,OAAO,EAAE,IAAI,KAAK,MAAM,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACpD,iBAAiB,CAAC,IAAI,CAAC;gBACrB,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC,CAAC;QACL,CAAC;QAED,0EAA0E;QAC1E,IAAI,OAAO,IAAI,8BAA8B,CAAC,QAAQ,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;YACpE,iBAAiB,CAAC,IAAI,CAAC;gBACrB,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,QAAyB;IAMhE,MAAM,SAAS,GAKV,EAAE,CAAC;IAER,IAAI,eAAe,GAIR,IAAI,CAAC;IAEhB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE5B,IAAI,OAAO,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;YAC7B,6CAA6C;YAC7C,IAAI,eAAe,EAAE,CAAC;gBACpB,SAAS,CAAC,IAAI,CAAC;oBACb,GAAG,eAAe;oBAClB,QAAQ,EAAE,CAAC,GAAG,CAAC;iBAChB,CAAC,CAAC;YACL,CAAC;YAED,uBAAuB;YACvB,eAAe,GAAG;gBAChB,WAAW,EAAE,OAAO;gBACpB,iBAAiB,EAAE,EAAE;gBACrB,UAAU,EAAE,CAAC;aACd,CAAC;QACJ,CAAC;aAAM,IAAI,OAAO,EAAE,IAAI,KAAK,WAAW,IAAI,eAAe,EAAE,CAAC;YAC5D,4CAA4C;YAC5C,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,IAAI,eAAe,EAAE,CAAC;QACpB,SAAS,CAAC,IAAI,CAAC;YACb,GAAG,eAAe;YAClB,QAAQ,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,QAKC,EACD,WAA4B;IAE5B,6DAA6D;IAC7D,MAAM,qBAAqB,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAEvE,KAAK,MAAM,OAAO,IAAI,qBAAqB,EAAE,CAAC;QAC5C,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5B,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBACrC,OAAO,UAAU,CAAC;YACpB,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBACrC,OAAO,UAAU,CAAC;YACpB,CAAC;YACD,2EAA2E;YAC3E,gFAAgF;YAChF,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC5B,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,QAAyB;IAEzB,MAAM,aAAa,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IACzD,OAAO,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAClE,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kCAAkC,CAChD,QAAyB,EACzB,UAGI,EAAE;IAKN,MAAM,EAAE,oBAAoB,GAAG,CAAC,EAAE,oBAAoB,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAE1E,oEAAoE;IACpE,MAAM,aAAa,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,+BAA+B,GAAG,uBAAuB,CAC7D,QAAQ,EACR,aAAa,CACd,CAAC;IAEF,8CAA8C;IAC9C,MAAM,SAAS,GAAG,wBAAwB,CAAC,+BAA+B,CAAC,CAAC;IAE5E,0CAA0C;IAC1C,MAAM,qBAAqB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACzD,GAAG,QAAQ;QACX,OAAO,EAAE,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,CAAC;KACtD,CAAC,CAAC,CAAC;IAEJ,wDAAwD;IACxD,MAAM,iBAAiB,GAAG,qBAAqB;SAC5C,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,KAAK,UAAU,CAAC;SACrD,KAAK,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,0CAA0C;IAE3E,IAAI,cAAc,GAAG,iBAAiB,CAAC;IAEvC,gFAAgF;IAChF,mFAAmF;IACnF,IAAI,oBAAoB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,MAAM,kBAAkB,GACtB,qBAAqB,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1D,IACE,kBAAkB,EAAE,OAAO,KAAK,SAAS;YACzC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAC/C,CAAC;YACD,cAAc,GAAG,CAAC,GAAG,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,yDAAyD;IACzD,MAAM,eAAe,GAAG,cAAc,CAAC,IAAI,CACzC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CACtC,CAAC;IACF,MAAM,gBAAgB,GAAoB,EAAE,CAAC;IAC7C,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;QACvC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC5C,gBAAgB,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IACvD,CAAC;IAED,gEAAgE;IAChE,OAAO,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;AACnD,CAAC"}