llmed 0.3.1 → 0.3.3
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.
- checksums.yaml +4 -4
- data/lib/llmed/application.rb +5 -2
- data/lib/llmed/release.rb +16 -4
- data/lib/llmed.rb +1 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: de4af1bcbd459b42e93cad731da1334f599065200111aa13363367c07d715477
|
4
|
+
data.tar.gz: 7b64d48d886baa7a9c7d7ea1882248032e0b380fdc8438d4b025ca23783a6948
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3b6c12c3c7cc03b333fbf849f6692bddbd423ef203a8a2e51b37ae6dc6b7e6257e43f0008c66f1b02fea5752e350ac6785612cc26bd176f5145ecb4607fa2021
|
7
|
+
data.tar.gz: 8ded8e1efef05559f9bc6ff14d5cbb23abc6fb76aac73f550aa46fc804c9b890d22c8b6848a318aefdff56d9b890a90109ebc52e8f2addf6cea77a8380fe0f12
|
data/lib/llmed/application.rb
CHANGED
@@ -77,7 +77,7 @@ class LLMed
|
|
77
77
|
if @release && File.exist?(release_source_code) && !release_contexts.empty?
|
78
78
|
output_release = Release.load(File.read(release_source_code), code_comment)
|
79
79
|
input_release = Release.load(output, code_comment)
|
80
|
-
output_content = output_release.merge!(input_release).content
|
80
|
+
output_content = output_release.merge!(input_release, user_contexts).content
|
81
81
|
output_release.changes do |change|
|
82
82
|
action, ctx = change
|
83
83
|
case action
|
@@ -107,7 +107,9 @@ class LLMed
|
|
107
107
|
!digests_of_context_to_update.tap do |digests|
|
108
108
|
digests.each do |digest|
|
109
109
|
context_by_digest = release_contexts.invert
|
110
|
+
|
110
111
|
if context_by_digest[digest].nil?
|
112
|
+
|
111
113
|
@logger.info("APPLICATION #{@name} ADDING CONTEXT #{user_contexts.invert[digest]}")
|
112
114
|
else
|
113
115
|
@logger.info("APPLICATION #{@name} REBUILDING CONTEXT #{context_by_digest[digest]}")
|
@@ -158,7 +160,7 @@ class LLMed
|
|
158
160
|
@contexts.each do |ctx|
|
159
161
|
release_context = release_instance.context_by(ctx.name)
|
160
162
|
|
161
|
-
if update_rest
|
163
|
+
if update_rest && release_context.digest?
|
162
164
|
update_context_digest << release_context.digest
|
163
165
|
next
|
164
166
|
end
|
@@ -170,6 +172,7 @@ class LLMed
|
|
170
172
|
elsif release_context.digest? && !ctx.same_digest?(release_context.digest)
|
171
173
|
update_rest = true
|
172
174
|
update_context_digest << release_context.digest
|
175
|
+
next
|
173
176
|
elsif release_context.digest?
|
174
177
|
# maybe the context is not connected to the source code
|
175
178
|
next
|
data/lib/llmed/release.rb
CHANGED
@@ -25,7 +25,7 @@ class LLMed
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def content
|
28
|
-
out =
|
28
|
+
out = String.new
|
29
29
|
|
30
30
|
@contexts.each do |ctx|
|
31
31
|
out += ctx.to_llmed_code(@code_comment)
|
@@ -61,7 +61,7 @@ class LLMed
|
|
61
61
|
context_by(name).digest?
|
62
62
|
end
|
63
63
|
|
64
|
-
def merge!(release)
|
64
|
+
def merge!(release, user_contexts)
|
65
65
|
contexts = []
|
66
66
|
|
67
67
|
# updates
|
@@ -97,6 +97,12 @@ class LLMed
|
|
97
97
|
@changes << [:added, new_ctx]
|
98
98
|
end
|
99
99
|
|
100
|
+
# fix user contexts digest
|
101
|
+
contexts.each do |ctx|
|
102
|
+
user_context_digest = user_contexts[ctx.name]
|
103
|
+
ctx.digest = user_context_digest unless user_context_digest.nil?
|
104
|
+
end
|
105
|
+
|
100
106
|
@contexts = contexts
|
101
107
|
self
|
102
108
|
end
|
@@ -110,8 +116,14 @@ class LLMed
|
|
110
116
|
@code_comment = code_comment
|
111
117
|
@contexts = []
|
112
118
|
|
113
|
-
@origin.scan(%r{<llmed-code context='(.+?)' digest='(.+?)'
|
114
|
-
name, digest,
|
119
|
+
@origin.scan(%r{<llmed-code context='(.+?)' digest='(.+?)'\s*(after='.*?')?>(.+?)#{@code_comment}+\s*</llmed-code>}im).each do |match|
|
120
|
+
name, digest, after_block, code = match
|
121
|
+
after = if after_block.nil?
|
122
|
+
''
|
123
|
+
else
|
124
|
+
after_block[/after='(.*?)'/, 1]
|
125
|
+
end
|
126
|
+
|
115
127
|
@contexts << ContextCode.new(name, digest, code, after)
|
116
128
|
end
|
117
129
|
end
|
data/lib/llmed.rb
CHANGED
@@ -71,6 +71,7 @@ class LLMed
|
|
71
71
|
|
72
72
|
llm_response = llm.chat(messages: messages)
|
73
73
|
@logger.info("APPLICATION #{app.name} TOTAL TOKENS #{llm_response.total_tokens}")
|
74
|
+
|
74
75
|
app.patch_or_create(llm_response.source_code)
|
75
76
|
app.write_statistics(llm_response)
|
76
77
|
app.notify("COMPILE DONE #{llm_response.duration_seconds}")
|