memstack-skill-loader 4.1.0__tar.gz → 4.1.1__tar.gz
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.
- {memstack_skill_loader-4.1.0/src/memstack_skill_loader.egg-info → memstack_skill_loader-4.1.1}/PKG-INFO +1 -1
- {memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/pyproject.toml +1 -1
- {memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader/__init__.py +1 -1
- {memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader/dashboard.html +50 -10
- {memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1/src/memstack_skill_loader.egg-info}/PKG-INFO +1 -1
- {memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/MANIFEST.in +0 -0
- {memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/README.md +0 -0
- {memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/setup.cfg +0 -0
- {memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader/__main__.py +0 -0
- {memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader/agent_runner.py +0 -0
- {memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader/categories.py +0 -0
- {memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader/compression.py +0 -0
- {memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader/config.py +0 -0
- {memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader/dashboard.py +0 -0
- {memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader/indexer.py +0 -0
- {memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader/license.py +0 -0
- {memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader/memory_db.py +0 -0
- {memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader/search.py +0 -0
- {memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader/server.py +0 -0
- {memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader/skill_config.py +0 -0
- {memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader/stats.py +0 -0
- {memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader/tfidf_search.py +0 -0
- {memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader/version_check.py +0 -0
- {memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader.egg-info/SOURCES.txt +0 -0
- {memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader.egg-info/dependency_links.txt +0 -0
- {memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader.egg-info/entry_points.txt +0 -0
- {memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader.egg-info/requires.txt +0 -0
- {memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader.egg-info/top_level.txt +0 -0
{memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader/dashboard.html
RENAMED
|
@@ -1163,6 +1163,9 @@
|
|
|
1163
1163
|
min-height: 2.4em;
|
|
1164
1164
|
overflow-y: hidden;
|
|
1165
1165
|
box-sizing: border-box;
|
|
1166
|
+
word-wrap: break-word;
|
|
1167
|
+
white-space: pre-wrap;
|
|
1168
|
+
overflow-wrap: break-word;
|
|
1166
1169
|
}
|
|
1167
1170
|
.diary-summary-card {
|
|
1168
1171
|
display: none;
|
|
@@ -1660,6 +1663,7 @@
|
|
|
1660
1663
|
<div style="max-width:640px;margin:0 auto;text-align:center;">
|
|
1661
1664
|
<div style="font-size:2.5rem;margin-bottom:0.5rem;">✅</div>
|
|
1662
1665
|
<h2 style="color:#e6edf3;font-size:1.1rem;margin-bottom:0.8rem;">Task Completed</h2>
|
|
1666
|
+
<span id="agent-completed-session-badge" style="display:inline-block;font-size:0.75rem;color:#8b949e;background:#21262d;padding:2px 8px;border-radius:4px;margin-bottom:0.8rem;"></span>
|
|
1663
1667
|
<div id="agent-result-summary" style="background:#161b22;border:1px solid #30363d;border-radius:8px;padding:1rem;text-align:left;font-size:0.85rem;color:#c9d1d9;margin-bottom:1.2rem;white-space:pre-wrap;"></div>
|
|
1664
1668
|
<div id="agent-token-summary" class="token-summary-card"></div>
|
|
1665
1669
|
<div style="display:flex;gap:0.5rem;justify-content:center;margin-bottom:1.5rem;">
|
|
@@ -1667,7 +1671,7 @@
|
|
|
1667
1671
|
<button onclick="saveDiaryCompleted()" class="btn-diary" id="completed-diary-btn">Save Diary</button>
|
|
1668
1672
|
</div>
|
|
1669
1673
|
<div id="diary-summary-card" class="diary-summary-card"></div>
|
|
1670
|
-
<div style="text-align:left;background:#161b22;border:1px solid #30363d;border-radius:8px;padding:1rem;margin-bottom:1.2rem;">
|
|
1674
|
+
<div id="agent-commit-section" style="text-align:left;background:#161b22;border:1px solid #30363d;border-radius:8px;padding:1rem;margin-bottom:1.2rem;">
|
|
1671
1675
|
<label style="display:block;font-size:0.82rem;color:#8b949e;margin-bottom:0.4rem;font-weight:600;">Commit Message</label>
|
|
1672
1676
|
<textarea id="agent-commit-msg" rows="2" class="commit-msg-input"></textarea>
|
|
1673
1677
|
<div style="display:flex;gap:0.5rem;">
|
|
@@ -1677,6 +1681,7 @@
|
|
|
1677
1681
|
</div>
|
|
1678
1682
|
<pre id="agent-git-output" style="display:none;margin-top:0.8rem;padding:0.6rem;background:#0d1117;border:1px solid #30363d;border-radius:6px;color:#8b949e;font-size:0.78rem;white-space:pre-wrap;max-height:200px;overflow-y:auto;"></pre>
|
|
1679
1683
|
</div>
|
|
1684
|
+
<div id="agent-no-changes-note" style="display:none;text-align:center;font-size:0.82rem;color:#8b949e;margin-bottom:1.2rem;">No files changed. Nothing to commit.</div>
|
|
1680
1685
|
</div>
|
|
1681
1686
|
<h3 style="color:#e6edf3;font-size:0.95rem;margin-bottom:0.8rem;">Message Log</h3>
|
|
1682
1687
|
<div id="agent-completed-messages" style="max-height:400px;overflow-y:auto;border:1px solid #30363d;border-radius:8px;background:#0d1117;padding:0.5rem;"></div>
|
|
@@ -2806,6 +2811,12 @@ function _renderDiarySummary(summary) {
|
|
|
2806
2811
|
html += '<span class="ds-label">Insights saved:</span> <span class="ds-value">' + insightsSaved + '</span>';
|
|
2807
2812
|
card.innerHTML = html;
|
|
2808
2813
|
card.style.display = 'block';
|
|
2814
|
+
if (filesChanged === 0) {
|
|
2815
|
+
const cs = document.getElementById('agent-commit-section');
|
|
2816
|
+
const nc = document.getElementById('agent-no-changes-note');
|
|
2817
|
+
if (cs) cs.style.display = 'none';
|
|
2818
|
+
if (nc) nc.style.display = '';
|
|
2819
|
+
}
|
|
2809
2820
|
}
|
|
2810
2821
|
|
|
2811
2822
|
async function saveDiary() {
|
|
@@ -3015,6 +3026,8 @@ async function resetAgentUI() {
|
|
|
3015
3026
|
document.getElementById('agent-completed').style.display = 'none';
|
|
3016
3027
|
document.getElementById('agent-commit-msg').value = '';
|
|
3017
3028
|
document.getElementById('agent-git-output').style.display = 'none';
|
|
3029
|
+
document.getElementById('agent-commit-section').style.display = '';
|
|
3030
|
+
document.getElementById('agent-no-changes-note').style.display = 'none';
|
|
3018
3031
|
// Clear task and context inputs
|
|
3019
3032
|
document.getElementById('agent-task-input').value = '';
|
|
3020
3033
|
document.getElementById('agent-context-input').value = '';
|
|
@@ -3767,6 +3780,7 @@ function renderAgentUI(data) {
|
|
|
3767
3780
|
document.querySelector('#agent-completed div div:first-child').innerHTML = icon;
|
|
3768
3781
|
const h2 = document.querySelector('#agent-completed h2');
|
|
3769
3782
|
if (h2) h2.textContent = title;
|
|
3783
|
+
document.getElementById('agent-completed-session-badge').textContent = 'Session: ' + (currentAgentSessionId || '—');
|
|
3770
3784
|
document.getElementById('agent-result-summary').textContent = status === 'stopped' ? (data.result || 'Task stopped by user') : (data.result || `Session ${status}`);
|
|
3771
3785
|
const COMPACTION_LIMIT = 200000;
|
|
3772
3786
|
const COMPACTION_WARN = 155000;
|
|
@@ -3798,19 +3812,34 @@ function renderAgentUI(data) {
|
|
|
3798
3812
|
document.getElementById('agent-token-summary').innerHTML = '<h4>Token Usage</h4>' + tokenRows;
|
|
3799
3813
|
const commitInput = document.getElementById('agent-commit-msg');
|
|
3800
3814
|
if (commitInput && !commitInput.value) {
|
|
3801
|
-
|
|
3815
|
+
let taskDesc = (data.task || '').trim();
|
|
3816
|
+
taskDesc = taskDesc.replace(/^Working directory:.*$/gm, '').replace(/^Branch:.*$/gm, '').replace(/^Task:\s*/gm, '').trim();
|
|
3802
3817
|
const prefix = /fix|bug|error/i.test(taskDesc) ? 'fix' : 'feat';
|
|
3803
|
-
let
|
|
3804
|
-
|
|
3805
|
-
|
|
3806
|
-
if (!
|
|
3807
|
-
|
|
3808
|
-
|
|
3809
|
-
|
|
3818
|
+
let summary = '';
|
|
3819
|
+
const firstLine = taskDesc.split(/\n/)[0].trim();
|
|
3820
|
+
const looksLikePath = /^(In\s|src\/|\.\/|[A-Za-z]:\\|\/|.*[\/\\]\S+\.\w+)/.test(firstLine);
|
|
3821
|
+
if (firstLine && !looksLikePath) {
|
|
3822
|
+
summary = firstLine.split(/\.\s+|\.$|,\s+|\s+and\s+/i)[0].trim();
|
|
3823
|
+
}
|
|
3824
|
+
if (!summary) {
|
|
3825
|
+
let rev = (data.result || '').trim();
|
|
3826
|
+
rev = rev.replace(/^approved\s+after\s+\d+\s+iteration\(s\):?\s*/i, '');
|
|
3827
|
+
rev = rev.replace(/^approved:?\s*/i, '');
|
|
3828
|
+
rev = rev.replace(/^the\s+builder\s+/i, '');
|
|
3829
|
+
rev = rev.replace(/\bcorrectly\s+/gi, '');
|
|
3830
|
+
rev = rev.split(/\.\s+|\.$|,\s+|\s+and\s+/i)[0].trim();
|
|
3831
|
+
rev = rev.replace(/^(has|have|had)\s+/i, '');
|
|
3832
|
+
summary = rev || 'dashboard updates';
|
|
3833
|
+
}
|
|
3834
|
+
summary = summary.charAt(0).toUpperCase() + summary.slice(1);
|
|
3835
|
+
const tag = 'agent: ' + prefix + ': ';
|
|
3836
|
+
const maxLen = 72 - tag.length;
|
|
3837
|
+
if (summary.length > maxLen) {
|
|
3838
|
+
const cut = summary.substring(0, maxLen);
|
|
3810
3839
|
const sp = cut.lastIndexOf(' ');
|
|
3811
3840
|
summary = sp > 0 ? cut.substring(0, sp) : cut;
|
|
3812
3841
|
}
|
|
3813
|
-
commitInput.value =
|
|
3842
|
+
commitInput.value = tag + summary;
|
|
3814
3843
|
autoResize(commitInput);
|
|
3815
3844
|
}
|
|
3816
3845
|
const commitBtn = document.getElementById('agent-commit-btn');
|
|
@@ -3838,6 +3867,17 @@ function renderAgentUI(data) {
|
|
|
3838
3867
|
} else {
|
|
3839
3868
|
gitEl.style.display = 'none';
|
|
3840
3869
|
}
|
|
3870
|
+
const resultText = (data.result || '').toLowerCase();
|
|
3871
|
+
const noChanges = /no files were modified|no code changes|files changed:\s*0|nothing to commit/i.test(resultText);
|
|
3872
|
+
const commitSection = document.getElementById('agent-commit-section');
|
|
3873
|
+
const noChangesNote = document.getElementById('agent-no-changes-note');
|
|
3874
|
+
if (noChanges) {
|
|
3875
|
+
commitSection.style.display = 'none';
|
|
3876
|
+
noChangesNote.style.display = '';
|
|
3877
|
+
} else {
|
|
3878
|
+
commitSection.style.display = '';
|
|
3879
|
+
noChangesNote.style.display = 'none';
|
|
3880
|
+
}
|
|
3841
3881
|
renderMessageLog(document.getElementById('agent-completed-messages'), messages);
|
|
3842
3882
|
return;
|
|
3843
3883
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader/__main__.py
RENAMED
|
File without changes
|
|
File without changes
|
{memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader/categories.py
RENAMED
|
File without changes
|
{memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader/compression.py
RENAMED
|
File without changes
|
{memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader/config.py
RENAMED
|
File without changes
|
{memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader/dashboard.py
RENAMED
|
File without changes
|
{memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader/indexer.py
RENAMED
|
File without changes
|
{memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader/license.py
RENAMED
|
File without changes
|
{memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader/memory_db.py
RENAMED
|
File without changes
|
{memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader/search.py
RENAMED
|
File without changes
|
{memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader/server.py
RENAMED
|
File without changes
|
|
File without changes
|
{memstack_skill_loader-4.1.0 → memstack_skill_loader-4.1.1}/src/memstack_skill_loader/stats.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|