repoburg 1.3.140 → 1.3.142

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 (137) hide show
  1. package/backend/.env +2 -1
  2. package/backend/dist/src/ai-actions/ai-action-batch.service.js +2 -4
  3. package/backend/dist/src/ai-actions/ai-action-batch.service.js.map +1 -1
  4. package/backend/dist/src/ai-actions/ai-actions.controller.d.ts +0 -1
  5. package/backend/dist/src/ai-actions/ai-actions.controller.js +0 -17
  6. package/backend/dist/src/ai-actions/ai-actions.controller.js.map +1 -1
  7. package/backend/dist/src/ai-actions/ai-actions.service.d.ts +1 -4
  8. package/backend/dist/src/ai-actions/ai-actions.service.js +2 -31
  9. package/backend/dist/src/ai-actions/ai-actions.service.js.map +1 -1
  10. package/backend/dist/src/application-state/application-state.controller.d.ts +0 -11
  11. package/backend/dist/src/application-state/application-state.controller.js +0 -52
  12. package/backend/dist/src/application-state/application-state.controller.js.map +1 -1
  13. package/backend/dist/src/application-state/application-state.service.d.ts +0 -5
  14. package/backend/dist/src/application-state/application-state.service.js +1 -29
  15. package/backend/dist/src/application-state/application-state.service.js.map +1 -1
  16. package/backend/dist/src/core-entities/session-input.entity.d.ts +0 -4
  17. package/backend/dist/src/core-entities/session-input.entity.js +1 -35
  18. package/backend/dist/src/core-entities/session-input.entity.js.map +1 -1
  19. package/backend/dist/src/core-entities/session.entity.js +1 -1
  20. package/backend/dist/src/core-entities/session.entity.js.map +1 -1
  21. package/backend/dist/src/core-entities/system-prompt.entity.js +2 -2
  22. package/backend/dist/src/core-entities/system-prompt.entity.js.map +1 -1
  23. package/backend/dist/src/events/websocket.events.d.ts +0 -25
  24. package/backend/dist/src/events/websocket.events.js +0 -6
  25. package/backend/dist/src/events/websocket.events.js.map +1 -1
  26. package/backend/dist/src/global-config/dto/update-global-config.dto.d.ts +0 -1
  27. package/backend/dist/src/global-config/dto/update-global-config.dto.js +0 -5
  28. package/backend/dist/src/global-config/dto/update-global-config.dto.js.map +1 -1
  29. package/backend/dist/src/global-config/global-config.service.d.ts +0 -2
  30. package/backend/dist/src/global-config/global-config.service.js.map +1 -1
  31. package/backend/dist/src/interactive-chat/chat.service.d.ts +1 -1
  32. package/backend/dist/src/interactive-chat/chat.service.js +1 -10
  33. package/backend/dist/src/interactive-chat/chat.service.js.map +1 -1
  34. package/backend/dist/src/llm-orchestration/action-handlers/apply-diff.handler.d.ts +1 -1
  35. package/backend/dist/src/llm-orchestration/action-handlers/apply-diff.handler.js +5 -7
  36. package/backend/dist/src/llm-orchestration/action-handlers/apply-diff.handler.js.map +1 -1
  37. package/backend/dist/src/llm-orchestration/action-handlers/ask-user.handler.d.ts +1 -1
  38. package/backend/dist/src/llm-orchestration/action-handlers/ask-user.handler.js +6 -8
  39. package/backend/dist/src/llm-orchestration/action-handlers/ask-user.handler.js.map +1 -1
  40. package/backend/dist/src/llm-orchestration/action-handlers/create-file.handler.d.ts +1 -1
  41. package/backend/dist/src/llm-orchestration/action-handlers/create-file.handler.js +5 -7
  42. package/backend/dist/src/llm-orchestration/action-handlers/create-file.handler.js.map +1 -1
  43. package/backend/dist/src/llm-orchestration/action-handlers/delete-file.handler.d.ts +1 -1
  44. package/backend/dist/src/llm-orchestration/action-handlers/delete-file.handler.js +5 -7
  45. package/backend/dist/src/llm-orchestration/action-handlers/delete-file.handler.js.map +1 -1
  46. package/backend/dist/src/llm-orchestration/action-handlers/execute-code.handler.d.ts +1 -1
  47. package/backend/dist/src/llm-orchestration/action-handlers/execute-code.handler.js +5 -7
  48. package/backend/dist/src/llm-orchestration/action-handlers/execute-code.handler.js.map +1 -1
  49. package/backend/dist/src/llm-orchestration/action-handlers/final.handler.d.ts +1 -1
  50. package/backend/dist/src/llm-orchestration/action-handlers/final.handler.js +6 -8
  51. package/backend/dist/src/llm-orchestration/action-handlers/final.handler.js.map +1 -1
  52. package/backend/dist/src/llm-orchestration/action-handlers/generate-title.handler.d.ts +1 -1
  53. package/backend/dist/src/llm-orchestration/action-handlers/generate-title.handler.js +5 -7
  54. package/backend/dist/src/llm-orchestration/action-handlers/generate-title.handler.js.map +1 -1
  55. package/backend/dist/src/llm-orchestration/action-handlers/get-messages.handler.js +0 -2
  56. package/backend/dist/src/llm-orchestration/action-handlers/get-messages.handler.js.map +1 -1
  57. package/backend/dist/src/llm-orchestration/action-handlers/html-final.handler.d.ts +1 -1
  58. package/backend/dist/src/llm-orchestration/action-handlers/html-final.handler.js +6 -8
  59. package/backend/dist/src/llm-orchestration/action-handlers/html-final.handler.js.map +1 -1
  60. package/backend/dist/src/llm-orchestration/action-handlers/new-session.handler.d.ts +1 -1
  61. package/backend/dist/src/llm-orchestration/action-handlers/new-session.handler.js +5 -7
  62. package/backend/dist/src/llm-orchestration/action-handlers/new-session.handler.js.map +1 -1
  63. package/backend/dist/src/llm-orchestration/action-handlers/overwrite-file.handler.d.ts +1 -1
  64. package/backend/dist/src/llm-orchestration/action-handlers/overwrite-file.handler.js +6 -8
  65. package/backend/dist/src/llm-orchestration/action-handlers/overwrite-file.handler.js.map +1 -1
  66. package/backend/dist/src/llm-orchestration/action-handlers/patch.handler.d.ts +1 -1
  67. package/backend/dist/src/llm-orchestration/action-handlers/patch.handler.js +8 -10
  68. package/backend/dist/src/llm-orchestration/action-handlers/patch.handler.js.map +1 -1
  69. package/backend/dist/src/llm-orchestration/action-handlers/quick-edit.handler.d.ts +1 -1
  70. package/backend/dist/src/llm-orchestration/action-handlers/quick-edit.handler.js +7 -9
  71. package/backend/dist/src/llm-orchestration/action-handlers/quick-edit.handler.js.map +1 -1
  72. package/backend/dist/src/llm-orchestration/action-handlers/request-context.handler.d.ts +1 -1
  73. package/backend/dist/src/llm-orchestration/action-handlers/request-context.handler.js +6 -8
  74. package/backend/dist/src/llm-orchestration/action-handlers/request-context.handler.js.map +1 -1
  75. package/backend/dist/src/llm-orchestration/action-handlers/run-command.handler.d.ts +1 -1
  76. package/backend/dist/src/llm-orchestration/action-handlers/run-command.handler.js +9 -11
  77. package/backend/dist/src/llm-orchestration/action-handlers/run-command.handler.js.map +1 -1
  78. package/backend/dist/src/llm-orchestration/action-handlers/write-todo.handler.d.ts +1 -1
  79. package/backend/dist/src/llm-orchestration/action-handlers/write-todo.handler.js +5 -7
  80. package/backend/dist/src/llm-orchestration/action-handlers/write-todo.handler.js.map +1 -1
  81. package/backend/dist/src/llm-orchestration/llm-orchestration.module.js +1 -5
  82. package/backend/dist/src/llm-orchestration/llm-orchestration.module.js.map +1 -1
  83. package/backend/dist/src/llm-orchestration/parser/llm-output-parser.service.d.ts +0 -1
  84. package/backend/dist/src/llm-orchestration/parser/llm-output-parser.service.js +15 -95
  85. package/backend/dist/src/llm-orchestration/parser/llm-output-parser.service.js.map +1 -1
  86. package/backend/dist/src/llm-orchestration/parser/parsing.constants.d.ts +0 -7
  87. package/backend/dist/src/llm-orchestration/parser/parsing.constants.js +1 -8
  88. package/backend/dist/src/llm-orchestration/parser/parsing.constants.js.map +1 -1
  89. package/backend/dist/src/llm-provider/llm-provider.interface.d.ts +1 -1
  90. package/backend/dist/src/llm-responses/dto/submit-llm-response.dto.d.ts +1 -10
  91. package/backend/dist/src/llm-responses/dto/submit-llm-response.dto.js +3 -54
  92. package/backend/dist/src/llm-responses/dto/submit-llm-response.dto.js.map +1 -1
  93. package/backend/dist/src/llm-responses/llm-responses.controller.d.ts +0 -6
  94. package/backend/dist/src/llm-responses/llm-responses.controller.js +0 -45
  95. package/backend/dist/src/llm-responses/llm-responses.controller.js.map +1 -1
  96. package/backend/dist/src/llm-responses/llm-responses.service.d.ts +1 -5
  97. package/backend/dist/src/llm-responses/llm-responses.service.js +8 -176
  98. package/backend/dist/src/llm-responses/llm-responses.service.js.map +1 -1
  99. package/backend/dist/src/seeding/system-prompt-seeding.service.js +9 -1
  100. package/backend/dist/src/seeding/system-prompt-seeding.service.js.map +1 -1
  101. package/backend/dist/src/session-inputs/session-inputs.service.js +5 -8
  102. package/backend/dist/src/session-inputs/session-inputs.service.js.map +1 -1
  103. package/backend/dist/src/sessions/dto/session.dto.js +2 -2
  104. package/backend/dist/src/sessions/dto/session.dto.js.map +1 -1
  105. package/backend/dist/src/sessions/sessions.service.js +3 -10
  106. package/backend/dist/src/sessions/sessions.service.js.map +1 -1
  107. package/backend/dist/src/system-prompts/dto/system-prompt.dto.js +2 -2
  108. package/backend/dist/src/system-prompts/dto/system-prompt.dto.js.map +1 -1
  109. package/backend/dist/src/system-prompts/system-prompts.controller.d.ts +0 -3
  110. package/backend/dist/src/system-prompts/system-prompts.controller.js +0 -15
  111. package/backend/dist/src/system-prompts/system-prompts.controller.js.map +1 -1
  112. package/backend/dist/src/system-prompts/system-prompts.service.d.ts +2 -4
  113. package/backend/dist/src/system-prompts/system-prompts.service.js +7 -12
  114. package/backend/dist/src/system-prompts/system-prompts.service.js.map +1 -1
  115. package/backend/dist/src/utils/ai-format-generator.d.ts +0 -1
  116. package/backend/dist/src/utils/ai-format-generator.js +0 -20
  117. package/backend/dist/src/utils/ai-format-generator.js.map +1 -1
  118. package/backend/dist/tsconfig.build.tsbuildinfo +1 -1
  119. package/package.json +1 -1
  120. package/backend/dist/src/application-state/dto/set-auto-send-to-ai-studio-enabled.dto.d.ts +0 -3
  121. package/backend/dist/src/application-state/dto/set-auto-send-to-ai-studio-enabled.dto.js +0 -23
  122. package/backend/dist/src/application-state/dto/set-auto-send-to-ai-studio-enabled.dto.js.map +0 -1
  123. package/backend/dist/src/application-state/dto/set-manual-llm-enabled.dto.d.ts +0 -3
  124. package/backend/dist/src/application-state/dto/set-manual-llm-enabled.dto.js +0 -25
  125. package/backend/dist/src/application-state/dto/set-manual-llm-enabled.dto.js.map +0 -1
  126. package/backend/dist/src/llm-orchestration/action-handlers/dto/howto.args.dto.d.ts +0 -2
  127. package/backend/dist/src/llm-orchestration/action-handlers/dto/howto.args.dto.js +0 -7
  128. package/backend/dist/src/llm-orchestration/action-handlers/dto/howto.args.dto.js.map +0 -1
  129. package/backend/dist/src/llm-orchestration/action-handlers/howto.handler.d.ts +0 -11
  130. package/backend/dist/src/llm-orchestration/action-handlers/howto.handler.js +0 -96
  131. package/backend/dist/src/llm-orchestration/action-handlers/howto.handler.js.map +0 -1
  132. package/backend/dist/src/llm-responses/dto/sync-conversation.dto.d.ts +0 -15
  133. package/backend/dist/src/llm-responses/dto/sync-conversation.dto.js +0 -94
  134. package/backend/dist/src/llm-responses/dto/sync-conversation.dto.js.map +0 -1
  135. package/backend/dist/src/seeding/data/system-prompts/master-agent.d.ts +0 -3
  136. package/backend/dist/src/seeding/data/system-prompts/master-agent.js +0 -102
  137. package/backend/dist/src/seeding/data/system-prompts/master-agent.js.map +0 -1
@@ -9,7 +9,6 @@ var LlmOutputParserService_1;
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.LlmOutputParserService = void 0;
11
11
  const common_1 = require("@nestjs/common");
12
- const parsing_constants_1 = require("./parsing.constants");
13
12
  let LlmOutputParserService = LlmOutputParserService_1 = class LlmOutputParserService {
14
13
  constructor() {
15
14
  this.logger = new common_1.Logger(LlmOutputParserService_1.name);
@@ -19,109 +18,30 @@ let LlmOutputParserService = LlmOutputParserService_1 = class LlmOutputParserSer
19
18
  this.logger.log(`Parsing ${toolCalls.length} native tool calls.`);
20
19
  return this.parseNativeToolCalls(rawResponse, toolCalls);
21
20
  }
22
- return this.parseXmlActions(rawResponse);
21
+ const explanation = rawResponse && rawResponse.trim() !== '' ? rawResponse.trim() : null;
22
+ return { explanation, actions: [] };
23
23
  }
24
24
  parseNativeToolCalls(explanation, toolCalls) {
25
- const actions = toolCalls.map((toolCall) => {
25
+ const actions = [];
26
+ for (const toolCall of toolCalls) {
26
27
  const { id, function: fn } = toolCall;
27
28
  const { name, arguments: args } = fn;
28
- const parsedArgs = typeof args === 'string' ? JSON.parse(args) : args;
29
- return {
30
- tool_name: name,
31
- arguments: parsedArgs,
32
- toolCallId: id,
33
- };
34
- });
35
- return {
36
- explanation: explanation || null,
37
- actions,
38
- };
39
- }
40
- parseXmlActions(rawResponse) {
41
- if (!rawResponse || rawResponse.trim() === '') {
42
- return { explanation: null, actions: [] };
43
- }
44
- const startTagRegex = new RegExp(parsing_constants_1.ACTION_ITEM_START_TAG, 'i');
45
- const firstActionStartMatch = rawResponse.match(startTagRegex);
46
- const firstActionStart = firstActionStartMatch
47
- ? firstActionStartMatch.index
48
- : -1;
49
- let explanation = null;
50
- let actionsPart = rawResponse;
51
- if (firstActionStart > 0) {
52
- explanation = rawResponse.substring(0, firstActionStart).trim();
53
- actionsPart = rawResponse.substring(firstActionStart);
54
- }
55
- else if (firstActionStart === -1) {
56
- const partialEndTagRegex = new RegExp(parsing_constants_1.PARTIAL_ACTION_ITEM_END_TAG, 'i');
57
- if (!partialEndTagRegex.test(rawResponse)) {
58
- return { explanation: rawResponse.trim(), actions: [] };
59
- }
60
- }
61
- const actionBlocks = actionsPart
62
- .split(startTagRegex)
63
- .filter((block) => block.trim() !== '');
64
- if (actionBlocks.length === 0) {
65
- this.logger.log('No action item blocks found in response.');
66
- return { explanation, actions: [] };
67
- }
68
- const parsedActions = [];
69
- for (const block of actionBlocks) {
70
29
  try {
71
- const endTagRegex = new RegExp(`${parsing_constants_1.PARTIAL_ACTION_ITEM_END_TAG}${parsing_constants_1.SPECIAL_ACTION_ITEM_TOKEN}?`, 'i');
72
- const cleanBlock = block.split(endTagRegex)[0].trim();
73
- const actionArgs = {};
74
- const fieldRegex = new RegExp(`${parsing_constants_1.SPECIAL_FIELD_TOKEN}(.*?)${parsing_constants_1.SPECIAL_FIELD_TOKEN}`, 'g');
75
- const matches = [];
76
- let match;
77
- while ((match = fieldRegex.exec(cleanBlock)) !== null) {
78
- matches.push({
79
- key: match[1].trim(),
80
- index: match.index,
81
- markerLength: match[0].length,
82
- });
83
- }
84
- if (matches.length === 0) {
85
- this.logger.warn(`Skipping block with no field markers.`);
86
- continue;
87
- }
88
- for (let i = 0; i < matches.length; i++) {
89
- const currentMatch = matches[i];
90
- const nextMatch = matches[i + 1];
91
- const valueStartIndex = currentMatch.index + currentMatch.markerLength;
92
- const valueEndIndex = nextMatch ? nextMatch.index : cleanBlock.length;
93
- const value = cleanBlock
94
- .substring(valueStartIndex, valueEndIndex)
95
- .trim();
96
- const key = currentMatch.key
97
- .toLowerCase()
98
- .replace(/[^a-z0-9_-]/g, '');
99
- if (!key) {
100
- this.logger.warn(`Skipping field with an empty key after sanitization. Original key: '${currentMatch.key}'`);
101
- continue;
102
- }
103
- if (!(key in actionArgs)) {
104
- actionArgs[key] = value;
105
- }
106
- }
107
- const toolNameKey = parsing_constants_1.FIELD_TOOL_NAME.toLowerCase();
108
- const toolName = actionArgs[toolNameKey];
109
- if (!toolName || typeof toolName !== 'string') {
110
- this.logger.warn(`Skipping action block due to missing or invalid 'tool_name'.`);
111
- continue;
112
- }
113
- delete actionArgs[toolNameKey];
114
- const newAction = {
115
- tool_name: toolName,
116
- arguments: actionArgs,
117
- };
118
- parsedActions.push(newAction);
30
+ const parsedArgs = typeof args === 'string' ? JSON.parse(args) : args;
31
+ actions.push({
32
+ tool_name: name,
33
+ arguments: parsedArgs,
34
+ toolCallId: id,
35
+ });
119
36
  }
120
37
  catch (error) {
121
- this.logger.warn(`Skipping malformed action block due to error: ${error.message}`, `Block content: ${block.substring(0, 200)}...`);
38
+ this.logger.warn(`Skipping malformed tool call "${name}" (id: ${id}): ${error instanceof Error ? error.message : String(error)}`);
122
39
  }
123
40
  }
124
- return { explanation, actions: parsedActions };
41
+ return {
42
+ explanation: explanation || null,
43
+ actions,
44
+ };
125
45
  }
126
46
  };
127
47
  exports.LlmOutputParserService = LlmOutputParserService;
@@ -1 +1 @@
1
- {"version":3,"file":"llm-output-parser.service.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/parser/llm-output-parser.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm-output-parser.service.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/parser/llm-output-parser.service.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAoD;AAK7C,IAAM,sBAAsB,8BAA5B,MAAM,sBAAsB;IAA5B;QACY,WAAM,GAAG,IAAI,eAAM,CAAC,wBAAsB,CAAC,IAAI,CAAC,CAAC;IA6DpE,CAAC;IAnDC,KAAK,CAAC,KAAK,CACT,WAAmB,EACnB,SAAyB;QAGzB,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,SAAS,CAAC,MAAM,qBAAqB,CAAC,CAAC;YAClE,OAAO,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAC3D,CAAC;QAGD,MAAM,WAAW,GACf,WAAW,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACvE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACtC,CAAC;IAKO,oBAAoB,CAC1B,WAAmB,EACnB,SAAwB;QAExB,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAC;YACtC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;YAErC,IAAI,CAAC;gBAEH,MAAM,UAAU,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAEtE,OAAO,CAAC,IAAI,CAAC;oBACX,SAAS,EAAE,IAAI;oBACf,SAAS,EAAE,UAAU;oBACrB,UAAU,EAAE,EAAE;iBACf,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,iCAAiC,IAAI,UAAU,EAAE,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAChH,CAAC;YAEJ,CAAC;QACH,CAAC;QAED,OAAO;YACL,WAAW,EAAE,WAAW,IAAI,IAAI;YAChC,OAAO;SACR,CAAC;IACJ,CAAC;CACF,CAAA;AA9DY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,mBAAU,GAAE;GACA,sBAAsB,CA8DlC"}
@@ -1,11 +1,4 @@
1
- export declare const ACTION_ITEM_START_TAG = "\u00A7ACTION_ITEM_START\u00A7";
2
- export declare const ACTION_ITEM_END_TAG = "\u00A7ACTION_ITEM_END\u00A7";
3
- export declare const PARTIAL_ACTION_ITEM_END_TAG = "\u00A7ACTION_ITEM_END";
4
- export declare const FIELD_TOOL_NAME = "tool_name";
5
- export declare const FIELD_ORDER_OF_EXECUTION = "order_of_execution";
6
1
  export declare const TITLE_START_TAG = "\u00A7TITLE_START\u00A7";
7
2
  export declare const TITLE_END_TAG = "\u00A7TITLE_END\u00A7";
8
- export declare const SPECIAL_FIELD_TOKEN = "\u00A6";
9
- export declare const SPECIAL_ACTION_ITEM_TOKEN = "\u00A7";
10
3
  export declare const SPECIAL_PATCH_BEGIN_FILE_MARKER = "@begin-of-file";
11
4
  export declare const SPECIAL_PATCH_END_FILE_MARKER = "@end-of-file";
@@ -1,15 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SPECIAL_PATCH_END_FILE_MARKER = exports.SPECIAL_PATCH_BEGIN_FILE_MARKER = exports.SPECIAL_ACTION_ITEM_TOKEN = exports.SPECIAL_FIELD_TOKEN = exports.TITLE_END_TAG = exports.TITLE_START_TAG = exports.FIELD_ORDER_OF_EXECUTION = exports.FIELD_TOOL_NAME = exports.PARTIAL_ACTION_ITEM_END_TAG = exports.ACTION_ITEM_END_TAG = exports.ACTION_ITEM_START_TAG = void 0;
4
- exports.ACTION_ITEM_START_TAG = '§ACTION_ITEM_START§';
5
- exports.ACTION_ITEM_END_TAG = '§ACTION_ITEM_END§';
6
- exports.PARTIAL_ACTION_ITEM_END_TAG = '§ACTION_ITEM_END';
7
- exports.FIELD_TOOL_NAME = 'tool_name';
8
- exports.FIELD_ORDER_OF_EXECUTION = 'order_of_execution';
3
+ exports.SPECIAL_PATCH_END_FILE_MARKER = exports.SPECIAL_PATCH_BEGIN_FILE_MARKER = exports.TITLE_END_TAG = exports.TITLE_START_TAG = void 0;
9
4
  exports.TITLE_START_TAG = '§TITLE_START§';
10
5
  exports.TITLE_END_TAG = '§TITLE_END§';
11
- exports.SPECIAL_FIELD_TOKEN = '¦';
12
- exports.SPECIAL_ACTION_ITEM_TOKEN = '§';
13
6
  exports.SPECIAL_PATCH_BEGIN_FILE_MARKER = '@begin-of-file';
14
7
  exports.SPECIAL_PATCH_END_FILE_MARKER = '@end-of-file';
15
8
  //# sourceMappingURL=parsing.constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parsing.constants.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/parser/parsing.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG,qBAAqB,CAAC;AAC9C,QAAA,mBAAmB,GAAG,mBAAmB,CAAC;AAC1C,QAAA,2BAA2B,GAAG,kBAAkB,CAAC;AAEjD,QAAA,eAAe,GAAG,WAAW,CAAC;AAC9B,QAAA,wBAAwB,GAAG,oBAAoB,CAAC;AAChD,QAAA,eAAe,GAAG,eAAe,CAAC;AAClC,QAAA,aAAa,GAAG,aAAa,CAAC;AAE9B,QAAA,mBAAmB,GAAG,GAAG,CAAC;AAC1B,QAAA,yBAAyB,GAAG,GAAG,CAAC;AAEhC,QAAA,+BAA+B,GAAG,gBAAgB,CAAC;AACnD,QAAA,6BAA6B,GAAG,cAAc,CAAC"}
1
+ {"version":3,"file":"parsing.constants.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/parser/parsing.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG,eAAe,CAAC;AAClC,QAAA,aAAa,GAAG,aAAa,CAAC;AAE9B,QAAA,+BAA+B,GAAG,gBAAgB,CAAC;AACnD,QAAA,6BAA6B,GAAG,cAAc,CAAC"}
@@ -52,7 +52,7 @@ export interface LlmProviderRequest {
52
52
  export interface LlmModel {
53
53
  id: string;
54
54
  name: string;
55
- provider: 'openrouter' | 'zai' | 'alibaba' | 'ollama' | 'openai' | 'manual';
55
+ provider: 'openrouter' | 'zai' | 'alibaba' | 'ollama' | 'openai' | 'custom';
56
56
  }
57
57
  export interface LlmUsage {
58
58
  inputTokens?: number;
@@ -1,16 +1,7 @@
1
- export declare enum SessionType {
2
- LATEST = "latest",
3
- ACTIVE = "active"
4
- }
5
1
  export declare class SubmitLlmResponseDto {
6
2
  raw_llm_response: string;
7
- inputId?: string;
3
+ inputId: string;
8
4
  execution_strategy?: string;
9
- session?: SessionType;
10
- idempotency_key?: string;
11
- url?: string;
12
- user_prompt?: string;
13
- external_turn_id?: string;
14
5
  input_token_count?: number;
15
6
  output_token_count?: number;
16
7
  cached_token_count?: number;
@@ -9,14 +9,9 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.SubmitLlmResponseDto = exports.SessionType = void 0;
12
+ exports.SubmitLlmResponseDto = void 0;
13
13
  const class_validator_1 = require("class-validator");
14
14
  const swagger_1 = require("@nestjs/swagger");
15
- var SessionType;
16
- (function (SessionType) {
17
- SessionType["LATEST"] = "latest";
18
- SessionType["ACTIVE"] = "active";
19
- })(SessionType || (exports.SessionType = SessionType = {}));
20
15
  class SubmitLlmResponseDto {
21
16
  }
22
17
  exports.SubmitLlmResponseDto = SubmitLlmResponseDto;
@@ -29,69 +24,23 @@ __decorate([
29
24
  __metadata("design:type", String)
30
25
  ], SubmitLlmResponseDto.prototype, "raw_llm_response", void 0);
31
26
  __decorate([
32
- (0, swagger_1.ApiPropertyOptional)({
27
+ (0, swagger_1.ApiProperty)({
33
28
  description: 'UUID of existing SessionInput to attach response to',
34
29
  format: 'uuid',
35
30
  }),
36
- (0, class_validator_1.IsOptional)(),
37
31
  (0, class_validator_1.IsUUID)(),
38
32
  __metadata("design:type", String)
39
33
  ], SubmitLlmResponseDto.prototype, "inputId", void 0);
40
34
  __decorate([
41
35
  (0, swagger_1.ApiPropertyOptional)({
42
- description: 'Execution strategy (required if inputId not provided)',
36
+ description: 'Execution strategy',
43
37
  enum: ['review_first', 'apply_revert'],
44
38
  }),
45
39
  (0, class_validator_1.IsOptional)(),
46
40
  (0, class_validator_1.IsString)(),
47
41
  (0, class_validator_1.IsNotEmpty)(),
48
- (0, class_validator_1.ValidateIf)((o) => !o.inputId),
49
42
  __metadata("design:type", String)
50
43
  ], SubmitLlmResponseDto.prototype, "execution_strategy", void 0);
51
- __decorate([
52
- (0, swagger_1.ApiPropertyOptional)({
53
- description: 'Session target (required if inputId not provided)',
54
- enum: SessionType,
55
- }),
56
- (0, class_validator_1.IsOptional)(),
57
- (0, class_validator_1.IsEnum)(SessionType),
58
- (0, class_validator_1.ValidateIf)((o) => !o.inputId),
59
- __metadata("design:type", String)
60
- ], SubmitLlmResponseDto.prototype, "session", void 0);
61
- __decorate([
62
- (0, swagger_1.ApiPropertyOptional)({
63
- description: 'Idempotency key to prevent duplicate submissions',
64
- format: 'uuid',
65
- }),
66
- (0, class_validator_1.IsOptional)(),
67
- (0, class_validator_1.IsUUID)(),
68
- __metadata("design:type", String)
69
- ], SubmitLlmResponseDto.prototype, "idempotency_key", void 0);
70
- __decorate([
71
- (0, swagger_1.ApiPropertyOptional)({
72
- description: 'External URL (e.g., AI Studio or Claude chat URL)',
73
- example: 'https://claude.ai/chat/abc123',
74
- }),
75
- (0, class_validator_1.IsOptional)(),
76
- (0, class_validator_1.IsUrl)(),
77
- __metadata("design:type", String)
78
- ], SubmitLlmResponseDto.prototype, "url", void 0);
79
- __decorate([
80
- (0, swagger_1.ApiPropertyOptional)({
81
- description: 'Original user prompt that generated this response',
82
- }),
83
- (0, class_validator_1.IsOptional)(),
84
- (0, class_validator_1.IsString)(),
85
- __metadata("design:type", String)
86
- ], SubmitLlmResponseDto.prototype, "user_prompt", void 0);
87
- __decorate([
88
- (0, swagger_1.ApiPropertyOptional)({
89
- description: 'External turn ID from source conversation',
90
- }),
91
- (0, class_validator_1.IsOptional)(),
92
- (0, class_validator_1.IsString)(),
93
- __metadata("design:type", String)
94
- ], SubmitLlmResponseDto.prototype, "external_turn_id", void 0);
95
44
  __decorate([
96
45
  (0, swagger_1.ApiPropertyOptional)({
97
46
  description: 'Number of input tokens used',
@@ -1 +1 @@
1
- {"version":3,"file":"submit-llm-response.dto.js","sourceRoot":"","sources":["../../../../src/llm-responses/dto/submit-llm-response.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAWyB;AACzB,6CAAmE;AAEnE,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,gCAAiB,CAAA;AACnB,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB;AAED,MAAa,oBAAoB;CAiGhC;AAjGD,oDAiGC;AA3FC;IALC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,qDAAqD;KACnE,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;8DACY;AAQzB;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,qDAAqD;QAClE,MAAM,EAAE,MAAM;KACf,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;;qDACQ;AAUjB;IARC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,uDAAuD;QACpE,IAAI,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC;KACvC,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,4BAAU,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;;gEACF;AAS5B;IAPC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,mDAAmD;QAChE,IAAI,EAAE,WAAW;KAClB,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,EAAC,WAAW,CAAC;IACnB,IAAA,4BAAU,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;;qDACR;AAQtB;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,kDAAkD;QAC/D,MAAM,EAAE,MAAM;KACf,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;;6DACgB;AAQzB;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,mDAAmD;QAChE,OAAO,EAAE,+BAA+B;KACzC,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;;iDACK;AAOb;IALC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,mDAAmD;KACjE,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;yDACU;AAOrB;IALC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,2CAA2C;KACzD,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;8DACe;AAQ1B;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,6BAA6B;QAC1C,OAAO,EAAE,CAAC;KACX,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;;+DACmB;AAQ3B;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,mCAAmC;QAChD,OAAO,EAAE,CAAC;KACX,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;;gEACoB;AAQ5B;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,8BAA8B;QAC3C,OAAO,EAAE,CAAC;KACX,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;;gEACoB;AAS5B;IAPC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EACT,kEAAkE;KACrE,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;IACT,IAAA,0BAAQ,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;wDACN"}
1
+ {"version":3,"file":"submit-llm-response.dto.js","sourceRoot":"","sources":["../../../../src/llm-responses/dto/submit-llm-response.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAQyB;AACzB,6CAAmE;AAEnE,MAAa,oBAAoB;CAwDhC;AAxDD,oDAwDC;AAlDC;IALC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,qDAAqD;KACnE,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;8DACY;AAOzB;IALC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,qDAAqD;QAClE,MAAM,EAAE,MAAM;KACf,CAAC;IACD,IAAA,wBAAM,GAAE;;qDACO;AAShB;IAPC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,oBAAoB;QACjC,IAAI,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC;KACvC,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;gEACe;AAQ5B;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,6BAA6B;QAC1C,OAAO,EAAE,CAAC;KACX,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;;+DACmB;AAQ3B;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,mCAAmC;QAChD,OAAO,EAAE,CAAC;KACX,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;;gEACoB;AAQ5B;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,8BAA8B;QAC3C,OAAO,EAAE,CAAC;KACX,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;;gEACoB;AAS5B;IAPC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EACT,kEAAkE;KACrE,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;IACT,IAAA,0BAAQ,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;wDACN"}
@@ -1,14 +1,8 @@
1
1
  import { LlmResponsesService } from './llm-responses.service';
2
2
  import { SubmitLlmResponseDto } from './dto/submit-llm-response.dto';
3
3
  import { SessionInput } from '../core-entities';
4
- import { SyncConversationDto } from './dto/sync-conversation.dto';
5
4
  export declare class LlmResponsesController {
6
5
  private readonly llmResponsesService;
7
6
  constructor(llmResponsesService: LlmResponsesService);
8
7
  submit(dto: SubmitLlmResponseDto): Promise<SessionInput>;
9
- submitExternal(dto: SubmitLlmResponseDto): Promise<SessionInput>;
10
- syncConversation(dto: SyncConversationDto): Promise<{
11
- status: string;
12
- sessionId: string;
13
- }>;
14
8
  }
@@ -18,7 +18,6 @@ const swagger_1 = require("@nestjs/swagger");
18
18
  const llm_responses_service_1 = require("./llm-responses.service");
19
19
  const submit_llm_response_dto_1 = require("./dto/submit-llm-response.dto");
20
20
  const core_entities_1 = require("../core-entities");
21
- const sync_conversation_dto_1 = require("./dto/sync-conversation.dto");
22
21
  let LlmResponsesController = class LlmResponsesController {
23
22
  constructor(llmResponsesService) {
24
23
  this.llmResponsesService = llmResponsesService;
@@ -26,13 +25,6 @@ let LlmResponsesController = class LlmResponsesController {
26
25
  async submit(dto) {
27
26
  return this.llmResponsesService.submit(dto);
28
27
  }
29
- async submitExternal(dto) {
30
- return this.llmResponsesService.submitExternal(dto);
31
- }
32
- async syncConversation(dto) {
33
- const sessionId = await this.llmResponsesService.syncConversation(dto);
34
- return { status: 'ok', sessionId };
35
- }
36
28
  };
37
29
  exports.LlmResponsesController = LlmResponsesController;
38
30
  __decorate([
@@ -51,43 +43,6 @@ __decorate([
51
43
  __metadata("design:paramtypes", [submit_llm_response_dto_1.SubmitLlmResponseDto]),
52
44
  __metadata("design:returntype", Promise)
53
45
  ], LlmResponsesController.prototype, "submit", null);
54
- __decorate([
55
- (0, common_1.Post)('submit-external'),
56
- (0, common_1.HttpCode)(common_1.HttpStatus.OK),
57
- (0, swagger_1.ApiOperation)({
58
- summary: 'Submit LLM response from external source (userscript/manual mode)',
59
- }),
60
- (0, swagger_1.ApiResponse)({
61
- status: 200,
62
- description: 'External response processed',
63
- type: core_entities_1.SessionInput,
64
- }),
65
- __param(0, (0, common_1.Body)()),
66
- __metadata("design:type", Function),
67
- __metadata("design:paramtypes", [submit_llm_response_dto_1.SubmitLlmResponseDto]),
68
- __metadata("design:returntype", Promise)
69
- ], LlmResponsesController.prototype, "submitExternal", null);
70
- __decorate([
71
- (0, common_1.Post)('sync-conversation'),
72
- (0, common_1.HttpCode)(common_1.HttpStatus.OK),
73
- (0, swagger_1.ApiOperation)({
74
- summary: 'Sync full conversation history from external source',
75
- }),
76
- (0, swagger_1.ApiResponse)({
77
- status: 200,
78
- description: 'Conversation synced',
79
- schema: {
80
- properties: {
81
- status: { type: 'string' },
82
- sessionId: { type: 'string', format: 'uuid' },
83
- },
84
- },
85
- }),
86
- __param(0, (0, common_1.Body)()),
87
- __metadata("design:type", Function),
88
- __metadata("design:paramtypes", [sync_conversation_dto_1.SyncConversationDto]),
89
- __metadata("design:returntype", Promise)
90
- ], LlmResponsesController.prototype, "syncConversation", null);
91
46
  exports.LlmResponsesController = LlmResponsesController = __decorate([
92
47
  (0, swagger_1.ApiTags)('llm-responses'),
93
48
  (0, common_1.Controller)('llm-responses'),
@@ -1 +1 @@
1
- {"version":3,"file":"llm-responses.controller.js","sourceRoot":"","sources":["../../../src/llm-responses/llm-responses.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA8E;AAC9E,6CAAqE;AACrE,mEAA8D;AAC9D,2EAAqE;AACrE,oDAAgD;AAChD,uEAAkE;AAI3D,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IACjC,YAA6B,mBAAwC;QAAxC,wBAAmB,GAAnB,mBAAmB,CAAqB;IAAG,CAAC;IAYnE,AAAN,KAAK,CAAC,MAAM,CAAS,GAAyB;QAC5C,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;IAaK,AAAN,KAAK,CAAC,cAAc,CACV,GAAyB;QAEjC,OAAO,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC;IAiBK,AAAN,KAAK,CAAC,gBAAgB,CAAS,GAAwB;QAIrD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACvE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IACrC,CAAC;CACF,CAAA;AAxDY,wDAAsB;AAa3B;IAVL,IAAA,aAAI,EAAC,QAAQ,CAAC;IACd,IAAA,iBAAQ,EAAC,mBAAU,CAAC,EAAE,CAAC;IACvB,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,gEAAgE;KAC1E,CAAC;IACD,IAAA,qBAAW,EAAC;QACX,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,wCAAwC;QACrD,IAAI,EAAE,4BAAY;KACnB,CAAC;IACY,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,8CAAoB;;oDAE7C;AAaK;IAXL,IAAA,aAAI,EAAC,iBAAiB,CAAC;IACvB,IAAA,iBAAQ,EAAC,mBAAU,CAAC,EAAE,CAAC;IACvB,IAAA,sBAAY,EAAC;QACZ,OAAO,EACL,mEAAmE;KACtE,CAAC;IACD,IAAA,qBAAW,EAAC;QACX,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,6BAA6B;QAC1C,IAAI,EAAE,4BAAY;KACnB,CAAC;IAEC,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,8CAAoB;;4DAGlC;AAiBK;IAfL,IAAA,aAAI,EAAC,mBAAmB,CAAC;IACzB,IAAA,iBAAQ,EAAC,mBAAU,CAAC,EAAE,CAAC;IACvB,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,qDAAqD;KAC/D,CAAC;IACD,IAAA,qBAAW,EAAC;QACX,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,qBAAqB;QAClC,MAAM,EAAE;YACN,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;aAC9C;SACF;KACF,CAAC;IACsB,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,2CAAmB;;8DAMtD;iCAvDU,sBAAsB;IAFlC,IAAA,iBAAO,EAAC,eAAe,CAAC;IACxB,IAAA,mBAAU,EAAC,eAAe,CAAC;qCAEwB,2CAAmB;GAD1D,sBAAsB,CAwDlC"}
1
+ {"version":3,"file":"llm-responses.controller.js","sourceRoot":"","sources":["../../../src/llm-responses/llm-responses.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA8E;AAC9E,6CAAqE;AACrE,mEAA8D;AAC9D,2EAAqE;AACrE,oDAAgD;AAIzC,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IACjC,YAA6B,mBAAwC;QAAxC,wBAAmB,GAAnB,mBAAmB,CAAqB;IAAG,CAAC;IAYnE,AAAN,KAAK,CAAC,MAAM,CAAS,GAAyB;QAC5C,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;CACF,CAAA;AAhBY,wDAAsB;AAa3B;IAVL,IAAA,aAAI,EAAC,QAAQ,CAAC;IACd,IAAA,iBAAQ,EAAC,mBAAU,CAAC,EAAE,CAAC;IACvB,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,gEAAgE;KAC1E,CAAC;IACD,IAAA,qBAAW,EAAC;QACX,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,wCAAwC;QACrD,IAAI,EAAE,4BAAY;KACnB,CAAC;IACY,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,8CAAoB;;oDAE7C;iCAfU,sBAAsB;IAFlC,IAAA,iBAAO,EAAC,eAAe,CAAC;IACxB,IAAA,mBAAU,EAAC,eAAe,CAAC;qCAEwB,2CAAmB;GAD1D,sBAAsB,CAgBlC"}
@@ -7,7 +7,6 @@ import { Repository } from 'typeorm';
7
7
  import { EventsGateway } from '../events/events.gateway';
8
8
  import { ChatService } from '../interactive-chat/chat.service';
9
9
  import { SystemPromptsService } from '../system-prompts/system-prompts.service';
10
- import { SyncConversationDto } from './dto/sync-conversation.dto';
11
10
  import { LlmTurnProcessorService } from '../llm-orchestration/llm-turn-processor.service';
12
11
  export declare class LlmResponsesService {
13
12
  private sessionsRepository;
@@ -23,12 +22,9 @@ export declare class LlmResponsesService {
23
22
  constructor(sessionsRepository: Repository<Session>, sessionInputsRepository: Repository<SessionInput>, systemPromptsService: SystemPromptsService, sessionsService: SessionsService, applicationStateService: ApplicationStateService, sessionInputsService: SessionInputsService, eventsGateway: EventsGateway, chatService: ChatService, newTurnProcessor: LlmTurnProcessorService);
24
23
  createPendingAiInput(sessionId: string, executionStrategy: string): Promise<SessionInput>;
25
24
  updatePendingAiInputWithError(pendingInputId: string, errorMessage: string): Promise<SessionInput>;
26
- finalizePendingAiInput(pendingInputId: string, dto: Omit<SubmitLlmResponseDto, 'inputId' | 'session' | 'idempotency_key'> & {
25
+ finalizePendingAiInput(pendingInputId: string, dto: Omit<SubmitLlmResponseDto, 'inputId'> & {
27
26
  thoughts?: string;
28
27
  }): Promise<SessionInput>;
29
28
  private extractAndUpdateSessionTitle;
30
29
  submit(dto: SubmitLlmResponseDto): Promise<SessionInput>;
31
- private createInputForExternalSubmission;
32
- submitExternal(dto: SubmitLlmResponseDto): Promise<SessionInput>;
33
- syncConversation(dto: SyncConversationDto): Promise<string>;
34
30
  }
@@ -18,7 +18,6 @@ const common_1 = require("@nestjs/common");
18
18
  const sessions_service_1 = require("../sessions/sessions.service");
19
19
  const application_state_service_1 = require("../application-state/application-state.service");
20
20
  const session_inputs_service_1 = require("../session-inputs/session-inputs.service");
21
- const submit_llm_response_dto_1 = require("./dto/submit-llm-response.dto");
22
21
  const core_entities_1 = require("../core-entities");
23
22
  const typeorm_1 = require("@nestjs/typeorm");
24
23
  const typeorm_2 = require("typeorm");
@@ -112,19 +111,15 @@ let LlmResponsesService = LlmResponsesService_1 = class LlmResponsesService {
112
111
  }
113
112
  async submit(dto) {
114
113
  const { inputId, raw_llm_response, input_token_count, output_token_count, cached_token_count, tool_calls, } = dto;
115
- let sessionInput;
116
- if (inputId) {
117
- this.logger.log(`Processing LLM response for existing input ${inputId}`);
118
- sessionInput = await this.sessionInputsRepository.findOneBy({
119
- id: inputId,
120
- });
121
- if (!sessionInput) {
122
- throw new common_1.NotFoundException(`SessionInput with ID "${inputId}" not found.`);
123
- }
114
+ if (!inputId) {
115
+ throw new Error('inputId is required for LLM response submission.');
124
116
  }
125
- else {
126
- this.logger.log('Processing LLM response for external submission.');
127
- sessionInput = await this.createInputForExternalSubmission(dto);
117
+ this.logger.log(`Processing LLM response for existing input ${inputId}`);
118
+ const sessionInput = await this.sessionInputsRepository.findOneBy({
119
+ id: inputId,
120
+ });
121
+ if (!sessionInput) {
122
+ throw new common_1.NotFoundException(`SessionInput with ID "${inputId}" not found.`);
128
123
  }
129
124
  if (!sessionInput.execution_strategy && dto.execution_strategy) {
130
125
  sessionInput.execution_strategy = dto.execution_strategy;
@@ -151,169 +146,6 @@ let LlmResponsesService = LlmResponsesService_1 = class LlmResponsesService {
151
146
  });
152
147
  return result;
153
148
  }
154
- async createInputForExternalSubmission(dto) {
155
- let sessionId = null;
156
- if (dto.session === submit_llm_response_dto_1.SessionType.ACTIVE) {
157
- sessionId = await this.applicationStateService.getActiveSessionId();
158
- }
159
- if (!sessionId || dto.session === submit_llm_response_dto_1.SessionType.LATEST) {
160
- const latestSession = await this.sessionsService.findLatest();
161
- if (!latestSession)
162
- throw new common_1.NotFoundException('No sessions found to submit response to.');
163
- sessionId = latestSession.id;
164
- }
165
- if (dto.idempotency_key) {
166
- const existing = await this.sessionInputsRepository.findOne({
167
- where: { session_id: sessionId, idempotency_key: dto.idempotency_key },
168
- relations: ['aiActions'],
169
- });
170
- if (existing) {
171
- this.logger.log(`Idempotency key hit for session ${sessionId}. Returning existing input ${existing.id}.`);
172
- return existing;
173
- }
174
- }
175
- const newSessionInput = this.sessionInputsRepository.create({
176
- session: { id: sessionId },
177
- user_prompt: dto.user_prompt || 'Pasted LLM response directly.',
178
- execution_strategy: dto.execution_strategy,
179
- generated_context_string: '',
180
- idempotency_key: dto.idempotency_key,
181
- external_turn_id: dto.idempotency_key,
182
- input_token_count: dto.input_token_count,
183
- output_token_count: dto.output_token_count,
184
- cached_token_count: dto.cached_token_count,
185
- });
186
- if (dto.url) {
187
- await this.sessionsService.update(sessionId, { url: dto.url });
188
- }
189
- return this.sessionInputsRepository.save(newSessionInput);
190
- }
191
- async submitExternal(dto) {
192
- const result = await this.submit(dto);
193
- return result;
194
- }
195
- async syncConversation(dto) {
196
- this.logger.log(`Syncing conversation. External ID: ${dto.id ?? 'N/A'}. Title: ${dto.title}`);
197
- let session = await this.sessionsService.findActive();
198
- if (!session) {
199
- this.logger.log('No active session found. Creating a new one.');
200
- session = await this.sessionsService.create({
201
- session_title: dto.title,
202
- url: dto.session_url,
203
- });
204
- }
205
- else {
206
- this.logger.log(`Syncing conversation into active session ${session.id}`);
207
- const updates = {};
208
- if (session.session_title !== dto.title) {
209
- updates.session_title = dto.title;
210
- }
211
- if (dto.session_url && session.url !== dto.session_url) {
212
- updates.url = dto.session_url;
213
- }
214
- if (Object.keys(updates).length > 0) {
215
- await this.sessionsService.update(session.id, updates);
216
- }
217
- }
218
- const lastModelTurn = [...dto.turns]
219
- .reverse()
220
- .find((t) => t.role === 'model');
221
- const existingInputs = await this.sessionInputsRepository.findBy({
222
- session_id: session.id,
223
- });
224
- const existingInputsMap = new Map(existingInputs.map((input) => [input.external_turn_id, input]));
225
- const inputsToSave = [];
226
- for (const turn of dto.turns) {
227
- const existingInput = existingInputsMap.get(turn.id);
228
- if (existingInput) {
229
- let needsUpdate = false;
230
- const newContent = turn.role === 'user' ? turn.content : existingInput.user_prompt;
231
- const newResponse = turn.role === 'model' ? turn.content : existingInput.raw_llm_response;
232
- const newThoughts = turn.role === 'model'
233
- ? (turn.thoughts ?? null)
234
- : existingInput.thoughts;
235
- if (existingInput.user_prompt !== newContent) {
236
- existingInput.user_prompt = newContent;
237
- needsUpdate = true;
238
- }
239
- if (existingInput.raw_llm_response !== newResponse) {
240
- existingInput.raw_llm_response = newResponse;
241
- needsUpdate = true;
242
- }
243
- if (existingInput.thoughts !== newThoughts) {
244
- existingInput.thoughts = newThoughts;
245
- needsUpdate = true;
246
- }
247
- if (dto.id && existingInput.external_conversation_id !== dto.id) {
248
- existingInput.external_conversation_id = dto.id;
249
- needsUpdate = true;
250
- }
251
- if (lastModelTurn &&
252
- turn.id === lastModelTurn.id &&
253
- dto.rawRequestBody) {
254
- existingInput.raw_studio_request_body = JSON.stringify(dto.rawRequestBody, null, 2);
255
- needsUpdate = true;
256
- }
257
- if (needsUpdate) {
258
- inputsToSave.push(existingInput);
259
- }
260
- existingInputsMap.delete(turn.id);
261
- }
262
- else {
263
- const newInput = this.sessionInputsRepository.create({
264
- session_id: session.id,
265
- role: turn.role,
266
- user_prompt: turn.role === 'user' ? turn.content : null,
267
- raw_llm_response: turn.role === 'model' ? turn.content : null,
268
- thoughts: turn.role === 'model' ? (turn.thoughts ?? null) : null,
269
- external_conversation_id: dto.id,
270
- external_turn_id: turn.id,
271
- });
272
- if (lastModelTurn &&
273
- turn.id === lastModelTurn.id &&
274
- dto.rawRequestBody) {
275
- newInput.raw_studio_request_body = JSON.stringify(dto.rawRequestBody, null, 2);
276
- }
277
- inputsToSave.push(newInput);
278
- }
279
- }
280
- const idsToDelete = Array.from(existingInputsMap.values())
281
- .map((i) => i.id)
282
- .filter((id) => id);
283
- if (inputsToSave.length > 0) {
284
- await this.sessionInputsRepository.save(inputsToSave);
285
- this.logger.log(`Saved ${inputsToSave.length} session inputs.`);
286
- }
287
- if (idsToDelete.length > 0) {
288
- await this.sessionInputsRepository.delete(idsToDelete);
289
- this.logger.log(`Deleted ${idsToDelete.length} session inputs.`);
290
- }
291
- const lastTurn = dto.turns.length > 0 ? dto.turns[dto.turns.length - 1] : null;
292
- if (lastTurn && lastTurn.role === 'model') {
293
- const lastModelTurn = lastTurn;
294
- this.logger.log(`Found last model turn ${lastModelTurn.id}, processing for actions.`);
295
- const lastModelInput = await this.sessionInputsRepository.findOneBy({
296
- external_turn_id: lastModelTurn.id,
297
- session_id: session.id,
298
- });
299
- if (lastModelInput) {
300
- const executionStrategy = await this.applicationStateService.getExecutionStrategy();
301
- await this.submit({
302
- inputId: lastModelInput.id,
303
- raw_llm_response: lastModelInput.raw_llm_response,
304
- execution_strategy: executionStrategy,
305
- });
306
- }
307
- else {
308
- this.logger.warn(`Could not find the session input for the last model turn ${lastModelTurn.id} after sync.`);
309
- }
310
- }
311
- else {
312
- this.eventsGateway.sendToAll('refresh-ui', { sessionId: session.id });
313
- }
314
- this.logger.log(`Sync complete for session ${session.id}`);
315
- return session.id;
316
- }
317
149
  };
318
150
  exports.LlmResponsesService = LlmResponsesService;
319
151
  exports.LlmResponsesService = LlmResponsesService = LlmResponsesService_1 = __decorate([