winter-super-cli 2026.5.22 → 2026.5.25

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 (63) hide show
  1. package/README.md +1 -1
  2. package/WINTER.md +6 -0
  3. package/bin/winter.js +77 -220
  4. package/package.json +1 -1
  5. package/resources/local/manifest.json +60 -57
  6. package/rules/default.md +1 -0
  7. package/src/ai/providers.js +38 -11
  8. package/src/cli/commands.js +24 -3
  9. package/src/cli/commands.test.js +116 -0
  10. package/src/cli/config.js +12 -0
  11. package/src/cli/repl.js +490 -141
  12. package/src/cli/repl.test.js +203 -2
  13. package/src/cli/snowflake-logo.js +15 -7
  14. package/src/cli/terminal-ui.js +125 -0
  15. package/src/cli/terminal-ui.test.js +33 -0
  16. package/src/plugins/manager.js +3 -1
  17. package/src/session/manager.js +44 -0
  18. package/src/session/manager.test.js +72 -0
  19. package/src/tools/executor.js +1 -1
  20. package/src/tools/executor.test.js +110 -0
  21. package/resources/local/claude/settings.json +0 -33
  22. package/resources/local/claude/todos/022bdc3c-e2c0-4a20-a74f-b348ed022c75-agent-022bdc3c-e2c0-4a20-a74f-b348ed022c75.json +0 -1
  23. package/resources/local/claude/todos/316f0e7d-5512-49fa-8c7f-edc75b777612-agent-316f0e7d-5512-49fa-8c7f-edc75b777612.json +0 -1
  24. package/resources/local/claude/todos/3676dc17-fca1-4692-934b-ce35e1965af6-agent-3676dc17-fca1-4692-934b-ce35e1965af6.json +0 -1
  25. package/resources/local/claude/todos/464493de-7f2a-45cf-93e8-ad73214afa10-agent-464493de-7f2a-45cf-93e8-ad73214afa10.json +0 -1
  26. package/resources/local/claude/todos/51f2e7a7-3f31-4692-a9b2-d3f3906aafea-agent-51f2e7a7-3f31-4692-a9b2-d3f3906aafea.json +0 -1
  27. package/resources/local/claude/todos/64a67dce-3d62-4a98-a548-b9c91a8e87e8-agent-64a67dce-3d62-4a98-a548-b9c91a8e87e8.json +0 -1
  28. package/resources/local/claude/todos/727a06e6-0ac2-41ca-8b81-2c14e4d40182-agent-727a06e6-0ac2-41ca-8b81-2c14e4d40182.json +0 -1
  29. package/resources/local/claude/todos/7d34d296-9b5a-4525-9b68-600d2ae20b59-agent-7d34d296-9b5a-4525-9b68-600d2ae20b59.json +0 -1
  30. package/resources/local/claude/todos/8c0606f1-5bcc-4176-8125-c5174fd69002-agent-8c0606f1-5bcc-4176-8125-c5174fd69002.json +0 -1
  31. package/resources/local/claude/todos/905aab16-5225-43f6-8ae4-c94491fd3a6f-agent-905aab16-5225-43f6-8ae4-c94491fd3a6f.json +0 -1
  32. package/resources/local/claude/todos/9dbe93f0-d62c-4c12-b4eb-0eecc437d625-agent-9dbe93f0-d62c-4c12-b4eb-0eecc437d625.json +0 -1
  33. package/resources/local/claude/todos/ad48500f-02a5-4f18-970b-82fb595d171f-agent-ad48500f-02a5-4f18-970b-82fb595d171f.json +0 -1
  34. package/resources/local/claude/todos/af86ea71-9907-4066-907c-68055e6c0081-agent-af86ea71-9907-4066-907c-68055e6c0081.json +0 -1
  35. package/resources/local/claude/todos/dbb0dc16-5d71-4f1d-a56c-db0741b3d485-agent-dbb0dc16-5d71-4f1d-a56c-db0741b3d485.json +0 -1
  36. package/resources/local/claude/todos/ff1ac487-eb0f-4c63-9360-fbb0a81bb5ae-agent-ff1ac487-eb0f-4c63-9360-fbb0a81bb5ae.json +0 -1
  37. package/resources/local/codex/config.toml +0 -84
  38. package/resources/local/codex/memories/MEMORY.md +0 -972
  39. package/resources/local/codex/memories/extensions/ad_hoc/instructions.md +0 -13
  40. package/resources/local/codex/memories/memory_summary.md +0 -188
  41. package/resources/local/codex/memories/raw_memories.md +0 -1488
  42. package/resources/local/codex/memories/rollout_summaries/2026-03-27T04-05-14-Iirb-nsis_full_installer_build_cpp_ocr_translator.md +0 -46
  43. package/resources/local/codex/memories/rollout_summaries/2026-03-28T06-18-17-Si3U-my_translator_overlay_lockfix_portable_nsis.md +0 -112
  44. package/resources/local/codex/memories/rollout_summaries/2026-04-15T06-42-11-2JMi-qelasy_timeout_and_watch_control_stability.md +0 -90
  45. package/resources/local/codex/memories/rollout_summaries/2026-04-16T03-12-59-z6Wi-request_all_row_click_detail_navigation.md +0 -42
  46. package/resources/local/codex/memories/rollout_summaries/2026-04-17T05-49-03-tNBk-my_translator_project_readability_audio_latency_clear_button.md +0 -75
  47. package/resources/local/codex/memories/rollout_summaries/2026-04-21T04-05-04-EXnh-nsis_packaging_harfbuzz_dll_qml_runtime_debug.md +0 -108
  48. package/resources/local/codex/memories/rollout_summaries/2026-04-22T03-48-40-VnNG-openclaw_opencode_sync_and_runtime_repair.md +0 -86
  49. package/resources/local/codex/memories/rollout_summaries/2026-04-22T06-49-49-R8yZ-web_book_user_portal_and_lint_fixes.md +0 -82
  50. package/resources/local/codex/memories/rollout_summaries/2026-04-22T06-50-35-ZaS1-smoke_admin_rbac_refund_connection_refused.md +0 -35
  51. package/resources/local/codex/memories/rollout_summaries/2026-04-22T11-05-04-aotT-nextjs_build_fix_statswidget_leaflet_ssr.md +0 -78
  52. package/resources/local/codex/memories/rollout_summaries/2026-04-23T03-22-24-a5q4-ui_still_looks_cloudflare_only.md +0 -41
  53. package/resources/local/codex/memories/rollout_summaries/2026-04-23T04-35-47-amlb-bayre247_hero_slide_above_search_form.md +0 -49
  54. package/resources/local/codex/memories/rollout_summaries/2026-04-23T04-59-21-lZWv-ocr_backend_parity_easyocr_tesseract_paddle_fallback.md +0 -92
  55. package/resources/local/codex/memories/rollout_summaries/2026-04-23T07-36-22-tPuo-request_workflow_editor_drag_edge_smaller_arrows_roadmap.md +0 -72
  56. package/resources/local/codex/memories/rollout_summaries/2026-04-24T08-01-05-Gb3B-checkin_shifts_workdays_assignments_and_checkout_overhaul.md +0 -90
  57. package/resources/local/codex/memories/rollout_summaries/2026-04-25T03-39-02-mbDr-web_book_refund_admin_popup_pagination_responsiveness.md +0 -151
  58. package/resources/local/codex/memories/rollout_summaries/2026-04-25T09-20-30-4usS-tool_scv_9router_custom_provider_and_paddle_ocr.md +0 -130
  59. package/resources/local/codex/memories/rollout_summaries/2026-05-06T10-19-38-mt2X-find_db_config_in_web_book_app_env.md +0 -40
  60. 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
  61. package/resources/local/codex/memories/rollout_summaries/2026-05-09T07-52-18-On1F-chakra_git_cleanup_readme_bilingual_publish_config.md +0 -88
  62. package/resources/local/codex/memories/rollout_summaries/2026-05-11T08-05-34-oMEl-check_crack_gui_logo_onefile_build.md +0 -68
  63. 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,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