@diffexai/diffex 0.2.3 → 0.2.4

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 (32) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/dist/modes/interactive/interactive-mode.js +2 -19
  3. package/dist/node_modules/@diffexai/diffex-agent-core/distribution-components.json +4 -4
  4. package/dist/node_modules/@diffexai/diffex-agent-core/distribution-files.json +1 -1
  5. package/dist/node_modules/@diffexai/diffex-agent-core/package.json +1 -1
  6. package/dist/node_modules/@diffexai/diffex-ai/dist/providers/data/.manifest.json +1 -1
  7. package/dist/node_modules/@diffexai/diffex-ai/dist/providers/data/openrouter.json +1 -1
  8. package/dist/node_modules/@diffexai/diffex-ai/distribution-components.json +3 -3
  9. package/dist/node_modules/@diffexai/diffex-ai/distribution-files.json +3 -3
  10. package/dist/node_modules/@diffexai/diffex-ai/package.json +1 -1
  11. package/dist/node_modules/@diffexai/diffex-client/distribution-components.json +3 -3
  12. package/dist/node_modules/@diffexai/diffex-client/distribution-files.json +1 -1
  13. package/dist/node_modules/@diffexai/diffex-client/package.json +1 -1
  14. package/dist/node_modules/@diffexai/diffex-harness-state/distribution-components.json +2 -2
  15. package/dist/node_modules/@diffexai/diffex-harness-state/distribution-files.json +1 -1
  16. package/dist/node_modules/@diffexai/diffex-harness-state/package.json +1 -1
  17. package/dist/node_modules/@diffexai/diffex-protocol/distribution-components.json +2 -2
  18. package/dist/node_modules/@diffexai/diffex-protocol/distribution-files.json +1 -1
  19. package/dist/node_modules/@diffexai/diffex-protocol/package.json +1 -1
  20. package/dist/node_modules/@diffexai/diffex-telemetry/distribution-components.json +2 -2
  21. package/dist/node_modules/@diffexai/diffex-telemetry/distribution-files.json +1 -1
  22. package/dist/node_modules/@diffexai/diffex-telemetry/package.json +1 -1
  23. package/dist/node_modules/@diffexai/diffex-tui/distribution-components.json +2 -2
  24. package/dist/node_modules/@diffexai/diffex-tui/distribution-files.json +1 -1
  25. package/dist/node_modules/@diffexai/diffex-tui/package.json +1 -1
  26. package/distribution-components.json +11 -11
  27. package/distribution-files.json +25 -25
  28. package/npm-shrinkwrap.json +2 -2
  29. package/package.json +1 -1
  30. package/release/distribution-manifest.json +4 -4
  31. package/release/install-package-lock.json +5 -5
  32. package/release/install-package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.2.4] - 2026-09-15
4
+
3
5
  ## [0.2.3] - 2026-09-14
4
6
 
5
7
  ### New Features
@@ -7,7 +7,7 @@ import * as fs from "node:fs";
7
7
  import * as os from "node:os";
8
8
  import * as path from "node:path";
9
9
  import * as TuiLayouts from "@diffexai/diffex-tui";
10
- import { CombinedAutocompleteProvider, Container, fuzzyFilter, getCapabilities, getGlyphs, hyperlink, Markdown, matchesKey, ProcessTerminal, Spacer, setKeybindings, Text, TruncatedText, TuiAltScreen, TuiMainScreen, visibleWidth, } from "@diffexai/diffex-tui";
10
+ import { CombinedAutocompleteProvider, Container, fuzzyFilter, getGlyphs, Markdown, matchesKey, ProcessTerminal, Spacer, setKeybindings, Text, TruncatedText, TuiAltScreen, TuiMainScreen, visibleWidth, } from "@diffexai/diffex-tui";
11
11
  import chalk from "chalk";
12
12
  import { spawn, spawnSync } from "child_process";
13
13
  import { APP_NAME, APP_TITLE, CONFIG_DIR_NAME, getAgentDir, getAuthPath, getDebugLogPath, getDocsPath, getShareViewerUrl, VERSION, } from "../../config.js";
@@ -149,7 +149,6 @@ const AUTH_TYPE_ORDER = { oauth: 0, api_key: 1 };
149
149
  const DIFFEX_ACCOUNT_LOGIN_ID = "diffex";
150
150
  const DIFFEX_ACCOUNT_SELECTOR_ID = "diffex-account";
151
151
  const DIFFEX_ACCOUNT_LOGIN_LABEL = "Sign in to Diffex";
152
- const DIFFEX_UPDATE_AVAILABLE_NOTIFICATION_ENABLED = false;
153
152
  function createFuzzyAutocompleteItems(items, prefix, getSearchText, toAutocompleteItem) {
154
153
  const filtered = fuzzyFilter(items, prefix, getSearchText);
155
154
  if (filtered.length === 0)
@@ -833,7 +832,7 @@ export class InteractiveMode {
833
832
  }
834
833
  // Start version check asynchronously
835
834
  checkForNewDiffexVersion(this.version).then((newRelease) => {
836
- if (newRelease && DIFFEX_UPDATE_AVAILABLE_NOTIFICATION_ENABLED) {
835
+ if (newRelease) {
837
836
  this.showNewVersionNotification(newRelease);
838
837
  }
839
838
  });
@@ -3934,25 +3933,9 @@ export class InteractiveMode {
3934
3933
  this.pendingUserDock = undefined;
3935
3934
  const action = theme.fg("accent", `${APP_NAME} update`);
3936
3935
  const updateInstruction = theme.fg("muted", `New version ${release.version} is available. Run `) + action;
3937
- const changelogUrl = "https://github.com/diffexai/diffex/blob/main/packages/coding-agent/CHANGELOG.md";
3938
- const changelogLink = getCapabilities().hyperlinks
3939
- ? hyperlink(theme.fg("accent", changelogUrl), changelogUrl)
3940
- : theme.fg("accent", changelogUrl);
3941
- const changelogLine = theme.fg("muted", "Changelog: ") + changelogLink;
3942
- const note = release.note?.trim();
3943
3936
  this.chatContainer.addChild(new Spacer(1));
3944
3937
  this.chatContainer.addChild(new DynamicBorder((text) => theme.fg("warning", text)));
3945
3938
  this.chatContainer.addChild(new Text(`${theme.bold(theme.fg("warning", "Update Available"))}\n${updateInstruction}`, 1, 0));
3946
- if (note) {
3947
- this.chatContainer.addChild(new Spacer(1));
3948
- this.chatContainer.addChild(new Markdown(note, 1, 0, this.getMarkdownThemeWithSettings(), {
3949
- color: (text) => theme.fg("muted", text),
3950
- }, {
3951
- tableStyle: "compact",
3952
- }));
3953
- this.chatContainer.addChild(new Spacer(1));
3954
- }
3955
- this.chatContainer.addChild(new Text(changelogLine, 1, 0));
3956
3939
  this.chatContainer.addChild(new DynamicBorder((text) => theme.fg("warning", text)));
3957
3940
  this.ui.requestRender();
3958
3941
  }
@@ -1,8 +1,8 @@
1
1
  [
2
2
  {
3
3
  "name": "@diffexai/diffex-agent-core",
4
- "version": "0.2.3",
5
- "sourceCommit": "a9a2beea7798edd34c62e836d73a0d50b6260950",
4
+ "version": "0.2.4",
5
+ "sourceCommit": "f668f241cac464e993edd0d15ba1e57cd2cb8a32",
6
6
  "license": "Apache-2.0",
7
7
  "portions": "Diffex contributions; Pi-derived portions retain MIT terms in LICENSE",
8
8
  "notice": "LICENSE",
@@ -10,12 +10,12 @@
10
10
  },
11
11
  {
12
12
  "name": "@diffexai/diffex-ai",
13
- "version": "^0.2.3",
13
+ "version": "^0.2.4",
14
14
  "distribution": "resolved separately by package manager; not bundled in this npm tarball"
15
15
  },
16
16
  {
17
17
  "name": "@diffexai/diffex-telemetry",
18
- "version": "^0.2.3",
18
+ "version": "^0.2.4",
19
19
  "distribution": "resolved separately by package manager; not bundled in this npm tarball"
20
20
  },
21
21
  {
@@ -1,5 +1,5 @@
1
1
  {
2
- "sourceCommit": "a9a2beea7798edd34c62e836d73a0d50b6260950",
2
+ "sourceCommit": "f668f241cac464e993edd0d15ba1e57cd2cb8a32",
3
3
  "algorithm": "sha256",
4
4
  "files": [
5
5
  {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@diffexai/diffex-agent-core",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "description": "General-purpose agent with transport abstraction, state management, and attachment support",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1 +1 @@
1
- {"schemaVersion":3,"generatedAt":"2026-09-15T00:01:45.182Z","structureHash":"261eda1c634a9844591f5ec1251a335478ae0d7a2988bb797f56436d05cbbb99","files":{"amazon-bedrock.json":"8e0a8b7d5fe92926e402f0e690e19be3ea4366309c4ca2836fff420b380f73d5","ant-ling.json":"4979fe79d99ed97382d7ce40170c6132e932e77906de1eb54464c042e7d63633","anthropic.json":"6937a397c6c7cf654990d072734efad023b652b294b04961d43a5835d7d08156","azure-openai-responses.json":"787ba62322c46fbc69bc1fcb7c7cfc100b8f74211c72adf9766b6dbf5eae0c41","baseten.json":"c7cf9a7e7e6bee9c53005acf4706c25f954adaa64a9058535fb7e5b1d6920852","cerebras.json":"9eaa554e1b02f3665f8f63e6432d253bf81351af7c72001054dd8108aa528a52","cloudflare-ai-gateway.json":"b558491cae89bc61ef95017e22a1ac3a1bd430d79ab779fb77391ca0a6b7849b","cloudflare-workers-ai.json":"07ef63208ff7517fd1a80962f18143e21de399640423329490b157f459ccf995","deepseek.json":"0dcc807a4e5827b488c6ceac87884ff6e735e01cf4f2ddfec9dd812e6fde041b","fireworks.json":"8fc7c3887a4a8e49451cbe4f57fdb147b889d9cd5a1480c46eaaa6b95c299afc","github-copilot.json":"37cfc1da3a6814e37e14c565ed0a1e41f2eb513b10aa8f11ac18f27fa392308c","google-vertex.json":"e1631109172dc1f7d7977570420a5bb86258bdd1088427e244a2c51545c4f24d","google.json":"7619bf03edd2a7acb06a2274a14b13c3a61354288abe029a758401d4de36a8fd","groq.json":"e4728fd72e358cd8f25e9a518e9b49a521ef44523d3debe38a7db9e0663c4077","huggingface.json":"a488b6f175b382277ccf7d487f877ef0c698994576bb55d2410838bf9c8c7c41","kimi-coding.json":"9da7ea8e9eb8df5d8f73acc25d3da5b41164f522c0f09b45265b4bf104743ac1","minimax-cn.json":"65d37e55a6d9585855f94b3fb7739308d107fe248ebd9e1001d1c5d4606ad2c4","minimax.json":"c7dc5765995ae77242916430929c7cc9a782589f7e483e13f7e01663190d028e","mistral.json":"e3a109306644bf2f2fa38fece50b2d3ce1dbe3b87b1f1b9e2d70cce7eb5c0ea1","moonshotai-cn.json":"63f77de8782dce6a8d4649b6075ee04c9732863ae85561e0867871220c558bde","moonshotai.json":"2a8dfb97eb905e991c22081dc09bd4a61c05b7fa9ac0d5c72d6930f601f490f1","nvidia.json":"7459d845fd752fb70a9be5a28be44dc5e2873fbd788e9c931d3200731db42ba9","openai-codex.json":"4a73818291987693fcb53e9e61b4be3429ffd78b3f64ea877a34c5f9928c89e1","openai.json":"6fa1954abd6c5b301620a02a57412bd60bbfdf20465b9a3eb4d113f88dfb8f7b","opencode-go.json":"31c4434316c8a1b7fcc637b25f1147dd44da946a0b932ca10fb5ac594261dad7","opencode.json":"aa960b0665d65bf2b441ffdb727dbb640074d5232470c06df237f03b5efeacb0","openrouter.json":"64bd70583cd0db09283381b3e7cc10e8750ddcf8b168b6edc64540efe77070e6","qwen-token-plan-cn.json":"b18db950e464e8ea7fd5ef073ac2fe8445d28cf35a7dc2927ae366ac9dc6c8dc","qwen-token-plan-individual.json":"0e1578a5c0e11d65644bb42d1d6efee5af97a55a4881d0421ab68bd970d4d4ef","qwen-token-plan.json":"fe914313157ff41ab2f71977f0fdcfedb3a8a205d1092e3180f6799e5d7942fd","together.json":"927c707d06f2236cdab13f14c870fb58bce0614ba7287bbcd57cc9fd66d191ed","vercel-ai-gateway.json":"66d7477cdca2297252ad79531f11a1bf60b755f2f19fc051180042c9f6d5e40e","xai.json":"282838b0546d63106c81f1703cdf5ed31ebfe0c5f13a4bec0d590472cbbe03f2","xiaomi-token-plan-ams.json":"7ce8ed244672c45737d286ff3ca9c3a2686a5d4b2f0c5f71ab9348c14b14daf3","xiaomi-token-plan-cn.json":"684892b5fe6fa371d6040d2011c0fa33facd650d2eaf19f5dbee8efb33016200","xiaomi-token-plan-sgp.json":"b19e79b82ac4fdcb080e6d220106797504c885ed70b27fc2b3c1aa4810f32963","xiaomi.json":"810368d3828c8bb9498012a0d48639030c0c216b8c13e79da02daa515aa23448","zai-coding-cn.json":"abf4cbc22507b9d545842072b5e34bce230025fc20f7b1cc67db3782c1dc4b56","zai.json":"089af736a622b0a25e417493819f4e174884afba43235c5a1f17814057875627"}}
1
+ {"schemaVersion":3,"generatedAt":"2026-09-15T00:53:08.920Z","structureHash":"261eda1c634a9844591f5ec1251a335478ae0d7a2988bb797f56436d05cbbb99","files":{"amazon-bedrock.json":"8e0a8b7d5fe92926e402f0e690e19be3ea4366309c4ca2836fff420b380f73d5","ant-ling.json":"4979fe79d99ed97382d7ce40170c6132e932e77906de1eb54464c042e7d63633","anthropic.json":"6937a397c6c7cf654990d072734efad023b652b294b04961d43a5835d7d08156","azure-openai-responses.json":"787ba62322c46fbc69bc1fcb7c7cfc100b8f74211c72adf9766b6dbf5eae0c41","baseten.json":"c7cf9a7e7e6bee9c53005acf4706c25f954adaa64a9058535fb7e5b1d6920852","cerebras.json":"9eaa554e1b02f3665f8f63e6432d253bf81351af7c72001054dd8108aa528a52","cloudflare-ai-gateway.json":"b558491cae89bc61ef95017e22a1ac3a1bd430d79ab779fb77391ca0a6b7849b","cloudflare-workers-ai.json":"07ef63208ff7517fd1a80962f18143e21de399640423329490b157f459ccf995","deepseek.json":"0dcc807a4e5827b488c6ceac87884ff6e735e01cf4f2ddfec9dd812e6fde041b","fireworks.json":"8fc7c3887a4a8e49451cbe4f57fdb147b889d9cd5a1480c46eaaa6b95c299afc","github-copilot.json":"37cfc1da3a6814e37e14c565ed0a1e41f2eb513b10aa8f11ac18f27fa392308c","google-vertex.json":"e1631109172dc1f7d7977570420a5bb86258bdd1088427e244a2c51545c4f24d","google.json":"7619bf03edd2a7acb06a2274a14b13c3a61354288abe029a758401d4de36a8fd","groq.json":"e4728fd72e358cd8f25e9a518e9b49a521ef44523d3debe38a7db9e0663c4077","huggingface.json":"a488b6f175b382277ccf7d487f877ef0c698994576bb55d2410838bf9c8c7c41","kimi-coding.json":"9da7ea8e9eb8df5d8f73acc25d3da5b41164f522c0f09b45265b4bf104743ac1","minimax-cn.json":"65d37e55a6d9585855f94b3fb7739308d107fe248ebd9e1001d1c5d4606ad2c4","minimax.json":"c7dc5765995ae77242916430929c7cc9a782589f7e483e13f7e01663190d028e","mistral.json":"e3a109306644bf2f2fa38fece50b2d3ce1dbe3b87b1f1b9e2d70cce7eb5c0ea1","moonshotai-cn.json":"63f77de8782dce6a8d4649b6075ee04c9732863ae85561e0867871220c558bde","moonshotai.json":"2a8dfb97eb905e991c22081dc09bd4a61c05b7fa9ac0d5c72d6930f601f490f1","nvidia.json":"7459d845fd752fb70a9be5a28be44dc5e2873fbd788e9c931d3200731db42ba9","openai-codex.json":"4a73818291987693fcb53e9e61b4be3429ffd78b3f64ea877a34c5f9928c89e1","openai.json":"6fa1954abd6c5b301620a02a57412bd60bbfdf20465b9a3eb4d113f88dfb8f7b","opencode-go.json":"31c4434316c8a1b7fcc637b25f1147dd44da946a0b932ca10fb5ac594261dad7","opencode.json":"aa960b0665d65bf2b441ffdb727dbb640074d5232470c06df237f03b5efeacb0","openrouter.json":"7c7e695c087d40ffc52897aee6167d919aef5e570314023b6ffbd008fd9de782","qwen-token-plan-cn.json":"b18db950e464e8ea7fd5ef073ac2fe8445d28cf35a7dc2927ae366ac9dc6c8dc","qwen-token-plan-individual.json":"0e1578a5c0e11d65644bb42d1d6efee5af97a55a4881d0421ab68bd970d4d4ef","qwen-token-plan.json":"fe914313157ff41ab2f71977f0fdcfedb3a8a205d1092e3180f6799e5d7942fd","together.json":"927c707d06f2236cdab13f14c870fb58bce0614ba7287bbcd57cc9fd66d191ed","vercel-ai-gateway.json":"66d7477cdca2297252ad79531f11a1bf60b755f2f19fc051180042c9f6d5e40e","xai.json":"282838b0546d63106c81f1703cdf5ed31ebfe0c5f13a4bec0d590472cbbe03f2","xiaomi-token-plan-ams.json":"7ce8ed244672c45737d286ff3ca9c3a2686a5d4b2f0c5f71ab9348c14b14daf3","xiaomi-token-plan-cn.json":"684892b5fe6fa371d6040d2011c0fa33facd650d2eaf19f5dbee8efb33016200","xiaomi-token-plan-sgp.json":"b19e79b82ac4fdcb080e6d220106797504c885ed70b27fc2b3c1aa4810f32963","xiaomi.json":"810368d3828c8bb9498012a0d48639030c0c216b8c13e79da02daa515aa23448","zai-coding-cn.json":"abf4cbc22507b9d545842072b5e34bce230025fc20f7b1cc67db3782c1dc4b56","zai.json":"089af736a622b0a25e417493819f4e174884afba43235c5a1f17814057875627"}}