winter-super-cli 2026.5.24 → 2026.5.26
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.
- package/README.md +1 -1
- package/WINTER.md +6 -0
- package/bin/winter.js +77 -220
- package/package.json +1 -1
- package/resources/local/manifest.json +60 -57
- package/src/ai/providers.js +64 -13
- package/src/ai/providers.test.js +35 -0
- package/src/cli/commands.js +61 -3
- package/src/cli/commands.test.js +179 -0
- package/src/cli/config.js +12 -0
- package/src/cli/repl.js +475 -150
- package/src/cli/repl.test.js +234 -2
- package/src/cli/snowflake-logo.js +15 -7
- package/src/cli/terminal-ui.js +125 -0
- package/src/cli/terminal-ui.test.js +33 -0
- package/src/plugins/manager.js +3 -1
- package/src/session/manager.js +44 -0
- package/src/session/manager.test.js +72 -0
- package/src/tools/executor.js +1 -1
- package/src/tools/executor.test.js +110 -0
- package/resources/local/claude/settings.json +0 -33
- package/resources/local/claude/todos/022bdc3c-e2c0-4a20-a74f-b348ed022c75-agent-022bdc3c-e2c0-4a20-a74f-b348ed022c75.json +0 -1
- package/resources/local/claude/todos/316f0e7d-5512-49fa-8c7f-edc75b777612-agent-316f0e7d-5512-49fa-8c7f-edc75b777612.json +0 -1
- package/resources/local/claude/todos/3676dc17-fca1-4692-934b-ce35e1965af6-agent-3676dc17-fca1-4692-934b-ce35e1965af6.json +0 -1
- package/resources/local/claude/todos/464493de-7f2a-45cf-93e8-ad73214afa10-agent-464493de-7f2a-45cf-93e8-ad73214afa10.json +0 -1
- package/resources/local/claude/todos/51f2e7a7-3f31-4692-a9b2-d3f3906aafea-agent-51f2e7a7-3f31-4692-a9b2-d3f3906aafea.json +0 -1
- package/resources/local/claude/todos/64a67dce-3d62-4a98-a548-b9c91a8e87e8-agent-64a67dce-3d62-4a98-a548-b9c91a8e87e8.json +0 -1
- package/resources/local/claude/todos/727a06e6-0ac2-41ca-8b81-2c14e4d40182-agent-727a06e6-0ac2-41ca-8b81-2c14e4d40182.json +0 -1
- package/resources/local/claude/todos/7d34d296-9b5a-4525-9b68-600d2ae20b59-agent-7d34d296-9b5a-4525-9b68-600d2ae20b59.json +0 -1
- package/resources/local/claude/todos/8c0606f1-5bcc-4176-8125-c5174fd69002-agent-8c0606f1-5bcc-4176-8125-c5174fd69002.json +0 -1
- package/resources/local/claude/todos/905aab16-5225-43f6-8ae4-c94491fd3a6f-agent-905aab16-5225-43f6-8ae4-c94491fd3a6f.json +0 -1
- package/resources/local/claude/todos/9dbe93f0-d62c-4c12-b4eb-0eecc437d625-agent-9dbe93f0-d62c-4c12-b4eb-0eecc437d625.json +0 -1
- package/resources/local/claude/todos/ad48500f-02a5-4f18-970b-82fb595d171f-agent-ad48500f-02a5-4f18-970b-82fb595d171f.json +0 -1
- package/resources/local/claude/todos/af86ea71-9907-4066-907c-68055e6c0081-agent-af86ea71-9907-4066-907c-68055e6c0081.json +0 -1
- package/resources/local/claude/todos/dbb0dc16-5d71-4f1d-a56c-db0741b3d485-agent-dbb0dc16-5d71-4f1d-a56c-db0741b3d485.json +0 -1
- package/resources/local/claude/todos/ff1ac487-eb0f-4c63-9360-fbb0a81bb5ae-agent-ff1ac487-eb0f-4c63-9360-fbb0a81bb5ae.json +0 -1
- package/resources/local/codex/config.toml +0 -84
- package/resources/local/codex/memories/MEMORY.md +0 -972
- package/resources/local/codex/memories/extensions/ad_hoc/instructions.md +0 -13
- package/resources/local/codex/memories/memory_summary.md +0 -188
- package/resources/local/codex/memories/raw_memories.md +0 -1488
- package/resources/local/codex/memories/rollout_summaries/2026-03-27T04-05-14-Iirb-nsis_full_installer_build_cpp_ocr_translator.md +0 -46
- package/resources/local/codex/memories/rollout_summaries/2026-03-28T06-18-17-Si3U-my_translator_overlay_lockfix_portable_nsis.md +0 -112
- package/resources/local/codex/memories/rollout_summaries/2026-04-15T06-42-11-2JMi-qelasy_timeout_and_watch_control_stability.md +0 -90
- package/resources/local/codex/memories/rollout_summaries/2026-04-16T03-12-59-z6Wi-request_all_row_click_detail_navigation.md +0 -42
- package/resources/local/codex/memories/rollout_summaries/2026-04-17T05-49-03-tNBk-my_translator_project_readability_audio_latency_clear_button.md +0 -75
- package/resources/local/codex/memories/rollout_summaries/2026-04-21T04-05-04-EXnh-nsis_packaging_harfbuzz_dll_qml_runtime_debug.md +0 -108
- package/resources/local/codex/memories/rollout_summaries/2026-04-22T03-48-40-VnNG-openclaw_opencode_sync_and_runtime_repair.md +0 -86
- package/resources/local/codex/memories/rollout_summaries/2026-04-22T06-49-49-R8yZ-web_book_user_portal_and_lint_fixes.md +0 -82
- package/resources/local/codex/memories/rollout_summaries/2026-04-22T06-50-35-ZaS1-smoke_admin_rbac_refund_connection_refused.md +0 -35
- package/resources/local/codex/memories/rollout_summaries/2026-04-22T11-05-04-aotT-nextjs_build_fix_statswidget_leaflet_ssr.md +0 -78
- package/resources/local/codex/memories/rollout_summaries/2026-04-23T03-22-24-a5q4-ui_still_looks_cloudflare_only.md +0 -41
- package/resources/local/codex/memories/rollout_summaries/2026-04-23T04-35-47-amlb-bayre247_hero_slide_above_search_form.md +0 -49
- package/resources/local/codex/memories/rollout_summaries/2026-04-23T04-59-21-lZWv-ocr_backend_parity_easyocr_tesseract_paddle_fallback.md +0 -92
- package/resources/local/codex/memories/rollout_summaries/2026-04-23T07-36-22-tPuo-request_workflow_editor_drag_edge_smaller_arrows_roadmap.md +0 -72
- package/resources/local/codex/memories/rollout_summaries/2026-04-24T08-01-05-Gb3B-checkin_shifts_workdays_assignments_and_checkout_overhaul.md +0 -90
- package/resources/local/codex/memories/rollout_summaries/2026-04-25T03-39-02-mbDr-web_book_refund_admin_popup_pagination_responsiveness.md +0 -151
- package/resources/local/codex/memories/rollout_summaries/2026-04-25T09-20-30-4usS-tool_scv_9router_custom_provider_and_paddle_ocr.md +0 -130
- package/resources/local/codex/memories/rollout_summaries/2026-05-06T10-19-38-mt2X-find_db_config_in_web_book_app_env.md +0 -40
- package/resources/local/codex/memories/rollout_summaries/2026-05-06T11-10-23-TkwP-goirong_backend_title_crash_and_client_audio_tcp_tunnel_debu.md +0 -85
- package/resources/local/codex/memories/rollout_summaries/2026-05-09T07-52-18-On1F-chakra_git_cleanup_readme_bilingual_publish_config.md +0 -88
- package/resources/local/codex/memories/rollout_summaries/2026-05-11T08-05-34-oMEl-check_crack_gui_logo_onefile_build.md +0 -68
- package/resources/local/codex/memories/skills/windows-packaged-app-smoke-check/SKILL.md +0 -72
|
@@ -174,3 +174,113 @@ test('Read lists directories instead of failing on directory paths', async () =>
|
|
|
174
174
|
assert.match(result.content, /\[file\] a\.txt/);
|
|
175
175
|
assert.match(result.content, /\[dir\]\s+sub/);
|
|
176
176
|
});
|
|
177
|
+
|
|
178
|
+
test('LSP reports the requested operation and file path', async () => {
|
|
179
|
+
const tools = new ToolExecutor({ projectPath: process.cwd() });
|
|
180
|
+
const result = await tools.execute('LSP', {
|
|
181
|
+
operation: 'goto_definition',
|
|
182
|
+
file_path: 'src/cli/repl.js',
|
|
183
|
+
line: 1,
|
|
184
|
+
character: 1,
|
|
185
|
+
});
|
|
186
|
+
|
|
187
|
+
assert.equal(result.success, true);
|
|
188
|
+
assert.equal(result.operation, 'goto_definition');
|
|
189
|
+
assert.match(result.filePath, /src[\\/]cli[\\/]repl\.js$/);
|
|
190
|
+
});
|
|
191
|
+
|
|
192
|
+
test('Task tools create, update, and list session plans', async () => {
|
|
193
|
+
const plans = [];
|
|
194
|
+
const repl = {
|
|
195
|
+
projectPath: process.cwd(),
|
|
196
|
+
session: {
|
|
197
|
+
createPlan: async (title, description) => {
|
|
198
|
+
const plan = { id: `plan-${plans.length + 1}`, title, description, status: 'pending' };
|
|
199
|
+
plans.push(plan);
|
|
200
|
+
return plan;
|
|
201
|
+
},
|
|
202
|
+
updatePlan: async (id, updates) => {
|
|
203
|
+
const plan = plans.find(item => item.id === id);
|
|
204
|
+
if (!plan) return null;
|
|
205
|
+
Object.assign(plan, updates);
|
|
206
|
+
return plan;
|
|
207
|
+
},
|
|
208
|
+
getPlans: () => plans,
|
|
209
|
+
},
|
|
210
|
+
};
|
|
211
|
+
const tools = new ToolExecutor(repl);
|
|
212
|
+
|
|
213
|
+
const created = await tools.execute('TaskCreate', { title: 'Bootstrap Winter', description: 'Verify task tools' });
|
|
214
|
+
assert.equal(created.success, true);
|
|
215
|
+
assert.equal(created.task.title, 'Bootstrap Winter');
|
|
216
|
+
|
|
217
|
+
const updated = await tools.execute('TaskUpdate', { task_id: created.task.id, status: 'completed' });
|
|
218
|
+
assert.equal(updated.success, true);
|
|
219
|
+
assert.equal(updated.task.status, 'completed');
|
|
220
|
+
|
|
221
|
+
const listed = await tools.execute('TaskList', {});
|
|
222
|
+
assert.equal(listed.success, true);
|
|
223
|
+
assert.equal(listed.tasks.length, 1);
|
|
224
|
+
});
|
|
225
|
+
|
|
226
|
+
test('WebFetch strips markup and returns page text', async () => {
|
|
227
|
+
const originalFetch = globalThis.fetch;
|
|
228
|
+
globalThis.fetch = async () => ({
|
|
229
|
+
async text() {
|
|
230
|
+
return '<html><head><style>body{color:red}</style></head><body><h1>Hello</h1><script>console.log(1)</script><p>World</p></body></html>';
|
|
231
|
+
},
|
|
232
|
+
});
|
|
233
|
+
|
|
234
|
+
try {
|
|
235
|
+
const tools = new ToolExecutor({ projectPath: process.cwd() });
|
|
236
|
+
const result = await tools.execute('WebFetch', { url: 'https://example.test', prompt: 'summarize' });
|
|
237
|
+
|
|
238
|
+
assert.equal(result.success, true);
|
|
239
|
+
assert.equal(result.url, 'https://example.test');
|
|
240
|
+
assert.match(result.content, /Hello/);
|
|
241
|
+
assert.match(result.content, /World/);
|
|
242
|
+
assert(!result.content.includes('<script>'));
|
|
243
|
+
assert(!result.content.includes('<style>'));
|
|
244
|
+
assert.equal(result.length, result.content.length);
|
|
245
|
+
} finally {
|
|
246
|
+
globalThis.fetch = originalFetch;
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
|
|
250
|
+
test('WebSearch returns parsed search results', async () => {
|
|
251
|
+
const originalFetch = globalThis.fetch;
|
|
252
|
+
globalThis.fetch = async () => ({
|
|
253
|
+
async text() {
|
|
254
|
+
return '<a rel="nofollow" class="result__a" href="/l/?uddg=https%3A%2F%2Fexample.com">Example Title</a>';
|
|
255
|
+
},
|
|
256
|
+
});
|
|
257
|
+
|
|
258
|
+
try {
|
|
259
|
+
const tools = new ToolExecutor({ projectPath: process.cwd() });
|
|
260
|
+
const result = await tools.execute('WebSearch', { query: 'winter cli' });
|
|
261
|
+
|
|
262
|
+
assert.equal(result.success, true);
|
|
263
|
+
assert.equal(result.count, 1);
|
|
264
|
+
assert.equal(result.results[0].title, 'Example Title');
|
|
265
|
+
assert.equal(result.results[0].url, 'https://example.com');
|
|
266
|
+
} finally {
|
|
267
|
+
globalThis.fetch = originalFetch;
|
|
268
|
+
}
|
|
269
|
+
});
|
|
270
|
+
|
|
271
|
+
test('BrowserDebug can inspect a simple data URL', async (t) => {
|
|
272
|
+
const tools = new ToolExecutor({ projectPath: process.cwd() });
|
|
273
|
+
const result = await tools.execute('BrowserDebug', {
|
|
274
|
+
url: 'data:text/html,<html><body><h1 id="title">Winter</h1><script>console.error("boom")</script></body></html>',
|
|
275
|
+
action: 'document.querySelector("#title").textContent',
|
|
276
|
+
});
|
|
277
|
+
|
|
278
|
+
if (result.success === false) {
|
|
279
|
+
t.skip(`BrowserDebug unavailable in this environment: ${result.error}`);
|
|
280
|
+
return;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
assert.equal(result.success, true);
|
|
284
|
+
assert.equal(result.actionResult, 'Winter');
|
|
285
|
+
assert.match(result.domSnippet, /Winter/);
|
|
286
|
+
});
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"env": {
|
|
3
|
-
"ANTHROPIC_BASE_URL": "http://localhost:4000/v1",
|
|
4
|
-
"ANTHROPIC_API_KEY": "<redacted>",
|
|
5
|
-
"ANTHROPIC_AUTH_TOKEN": "<redacted>",
|
|
6
|
-
"ANTHROPIC_MODEL": "nvidia/moonshotai/kimi-k2.6",
|
|
7
|
-
"ANTHROPIC_SMALL_FAST_MODEL": "kr/claude-haiku-4.5",
|
|
8
|
-
"ANTHROPIC_DEFAULT_SONNET_MODEL": "kr/claude-sonnet-4.5",
|
|
9
|
-
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "kr/claude-haiku-4.5",
|
|
10
|
-
"ANTHROPIC_DEFAULT_OPUS_MODEL": "kr/claude-opus-4.6",
|
|
11
|
-
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
|
|
12
|
-
},
|
|
13
|
-
"permissions": {
|
|
14
|
-
"allow": []
|
|
15
|
-
},
|
|
16
|
-
"model": "nvidia/openai/gpt-oss-120b",
|
|
17
|
-
"enabledPlugins": {
|
|
18
|
-
"document-skills@anthropic-agent-skills": true,
|
|
19
|
-
"example-skills@anthropic-agent-skills": true,
|
|
20
|
-
"claude-mem@thedotmack": true,
|
|
21
|
-
"rust-analyzer-lsp@claude-plugins-official": true
|
|
22
|
-
},
|
|
23
|
-
"extraKnownMarketplaces": {
|
|
24
|
-
"anthropic-agent-skills": {
|
|
25
|
-
"source": {
|
|
26
|
-
"source": "github",
|
|
27
|
-
"repo": "anthropics/skills"
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
|
-
"autoUpdatesChannel": "latest",
|
|
32
|
-
"theme": "light-ansi"
|
|
33
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[]
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
model = "gpt-5.5"
|
|
2
|
-
model_reasoning_effort = "medium"
|
|
3
|
-
personality = "pragmatic"
|
|
4
|
-
[mcp_servers]
|
|
5
|
-
|
|
6
|
-
[windows]
|
|
7
|
-
sandbox = "elevated"
|
|
8
|
-
|
|
9
|
-
[features]
|
|
10
|
-
multi_agent = true
|
|
11
|
-
memories = true
|
|
12
|
-
|
|
13
|
-
[projects.'E:\\dev\\28.01\\app']
|
|
14
|
-
trust_level = "trusted"
|
|
15
|
-
|
|
16
|
-
[projects.'E:\\dev\\07.03']
|
|
17
|
-
trust_level = "trusted"
|
|
18
|
-
|
|
19
|
-
[projects.'E:\\dev\\quản trị hệ thống']
|
|
20
|
-
trust_level = "trusted"
|
|
21
|
-
|
|
22
|
-
[projects.'E:\\dev\\18.03\\my-translator']
|
|
23
|
-
trust_level = "trusted"
|
|
24
|
-
|
|
25
|
-
[projects.'C:\\']
|
|
26
|
-
trust_level = "trusted"
|
|
27
|
-
|
|
28
|
-
[projects.'e:\\dev\\video-platform']
|
|
29
|
-
trust_level = "trusted"
|
|
30
|
-
|
|
31
|
-
[projects.'e:\\dev\\openclaw\\openclaw-dock']
|
|
32
|
-
trust_level = "trusted"
|
|
33
|
-
|
|
34
|
-
[projects.'e:\\dev\\web-book']
|
|
35
|
-
trust_level = "trusted"
|
|
36
|
-
|
|
37
|
-
[projects.'e:\\dev\\openclaw\\openclaw-dock\\openclaw-workspace']
|
|
38
|
-
trust_level = "trusted"
|
|
39
|
-
|
|
40
|
-
[projects.'e:\\dev\\autoipupdate']
|
|
41
|
-
trust_level = "trusted"
|
|
42
|
-
|
|
43
|
-
[projects.'e:\\dev\\24.03']
|
|
44
|
-
trust_level = "trusted"
|
|
45
|
-
|
|
46
|
-
[projects.'e:\\dev\\game']
|
|
47
|
-
trust_level = "trusted"
|
|
48
|
-
|
|
49
|
-
[projects.'e:\\dev\\app\\chakra']
|
|
50
|
-
trust_level = "trusted"
|
|
51
|
-
|
|
52
|
-
[projects.'e:\\dev\\app\\check-crack']
|
|
53
|
-
trust_level = "trusted"
|
|
54
|
-
|
|
55
|
-
[projects.'c:\\users\\phucansolutions']
|
|
56
|
-
trust_level = "trusted"
|
|
57
|
-
|
|
58
|
-
[projects.'e:\dev\app\winter']
|
|
59
|
-
trust_level = "trusted"
|
|
60
|
-
|
|
61
|
-
[tui.model_availability_nux]
|
|
62
|
-
"gpt-5.5" = 4
|
|
63
|
-
|
|
64
|
-
[marketplaces.openai-bundled]
|
|
65
|
-
last_updated = "2026-05-06T10:19:28Z"
|
|
66
|
-
source_type = "local"
|
|
67
|
-
source = '\\\\?\\C:\\Users\\PHUCANSOLUTIONS\\.codex\\.tmp\\bundled-marketplaces\\openai-bundled'
|
|
68
|
-
|
|
69
|
-
[marketplaces.openai-primary-runtime]
|
|
70
|
-
last_updated = "2026-05-06T10:20:35Z"
|
|
71
|
-
source_type = "local"
|
|
72
|
-
source = '\\\\?\\C:\\Users\\PHUCANSOLUTIONS\\.cache\\codex-runtimes\\codex-primary-runtime\\plugins\\openai-primary-runtime'
|
|
73
|
-
|
|
74
|
-
[plugins."browser-use@openai-bundled"]
|
|
75
|
-
enabled = true
|
|
76
|
-
|
|
77
|
-
[plugins."documents@openai-primary-runtime"]
|
|
78
|
-
enabled = true
|
|
79
|
-
|
|
80
|
-
[plugins."spreadsheets@openai-primary-runtime"]
|
|
81
|
-
enabled = true
|
|
82
|
-
|
|
83
|
-
[plugins."presentations@openai-primary-runtime"]
|
|
84
|
-
enabled = true
|