@diffexai/diffex 0.2.1 → 0.2.2
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/CHANGELOG.md +1 -1
- package/README.md +5 -725
- package/THIRD-PARTY-NOTICES.txt +6 -2
- package/dist/config.d.ts +2 -0
- package/dist/config.js +2 -0
- package/dist/core/prompt-templates.js +6 -1
- package/dist/core/system-prompt.js +9 -8
- package/dist/node_modules/@diffexai/diffex-agent-core/THIRD-PARTY-NOTICES.txt +6 -2
- package/dist/node_modules/@diffexai/diffex-agent-core/distribution-components.json +4 -4
- package/dist/node_modules/@diffexai/diffex-agent-core/distribution-files.json +1 -1
- package/dist/node_modules/@diffexai/diffex-agent-core/package.json +1 -6
- package/dist/node_modules/@diffexai/diffex-ai/THIRD-PARTY-NOTICES.txt +6 -2
- package/dist/node_modules/@diffexai/diffex-ai/dist/cli.js +0 -0
- package/dist/node_modules/@diffexai/diffex-ai/dist/providers/data/.manifest.json +1 -1
- package/dist/node_modules/@diffexai/diffex-ai/dist/providers/data/openrouter.json +1 -1
- package/dist/node_modules/@diffexai/diffex-ai/dist/providers/data/vercel-ai-gateway.json +1 -1
- package/dist/node_modules/@diffexai/diffex-ai/distribution-components.json +3 -3
- package/dist/node_modules/@diffexai/diffex-ai/distribution-files.json +4 -4
- package/dist/node_modules/@diffexai/diffex-ai/package.json +1 -6
- package/dist/node_modules/@diffexai/diffex-client/THIRD-PARTY-NOTICES.txt +6 -2
- package/dist/node_modules/@diffexai/diffex-client/distribution-components.json +3 -3
- package/dist/node_modules/@diffexai/diffex-client/distribution-files.json +1 -1
- package/dist/node_modules/@diffexai/diffex-client/package.json +1 -6
- package/dist/node_modules/@diffexai/diffex-harness-state/THIRD-PARTY-NOTICES.txt +6 -2
- package/dist/node_modules/@diffexai/diffex-harness-state/distribution-components.json +2 -2
- package/dist/node_modules/@diffexai/diffex-harness-state/distribution-files.json +1 -1
- package/dist/node_modules/@diffexai/diffex-harness-state/package.json +1 -6
- package/dist/node_modules/@diffexai/diffex-protocol/THIRD-PARTY-NOTICES.txt +6 -2
- package/dist/node_modules/@diffexai/diffex-protocol/distribution-components.json +2 -2
- package/dist/node_modules/@diffexai/diffex-protocol/distribution-files.json +1 -1
- package/dist/node_modules/@diffexai/diffex-protocol/package.json +1 -6
- package/dist/node_modules/@diffexai/diffex-telemetry/THIRD-PARTY-NOTICES.txt +6 -2
- package/dist/node_modules/@diffexai/diffex-telemetry/distribution-components.json +2 -2
- package/dist/node_modules/@diffexai/diffex-telemetry/distribution-files.json +1 -1
- package/dist/node_modules/@diffexai/diffex-telemetry/package.json +1 -6
- package/dist/node_modules/@diffexai/diffex-tui/THIRD-PARTY-NOTICES.txt +6 -2
- package/dist/node_modules/@diffexai/diffex-tui/distribution-components.json +2 -2
- package/dist/node_modules/@diffexai/diffex-tui/distribution-files.json +1 -1
- package/dist/node_modules/@diffexai/diffex-tui/package.json +1 -6
- package/distribution-components.json +13 -13
- package/distribution-files.json +36 -64
- package/docs/installation.md +118 -0
- package/docs/quickstart.md +7 -24
- package/npm-shrinkwrap.json +2 -2
- package/package.json +36 -10
- package/release/distribution-manifest.json +7 -6
- package/release/install-package-lock.json +5 -5
- package/release/install-package.json +2 -2
- package/NOTICE +0 -6
- package/dist/node_modules/@diffexai/diffex-agent-core/NOTICE +0 -6
- package/dist/node_modules/@diffexai/diffex-ai/NOTICE +0 -6
- package/dist/node_modules/@diffexai/diffex-client/NOTICE +0 -6
- package/dist/node_modules/@diffexai/diffex-harness-state/NOTICE +0 -6
- package/dist/node_modules/@diffexai/diffex-protocol/NOTICE +0 -6
- package/dist/node_modules/@diffexai/diffex-telemetry/NOTICE +0 -6
- package/dist/node_modules/@diffexai/diffex-tui/NOTICE +0 -6
- package/docs/development.md +0 -71
- package/docs/docs.json +0 -160
- package/docs/images/doom-extension.png +0 -0
- package/docs/images/exy.png +0 -0
- package/docs/index.md +0 -78
- package/docs/invocation-traces.md +0 -82
- package/docs/termux.md +0 -127
- package/docs/windows.md +0 -17
package/THIRD-PARTY-NOTICES.txt
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
Diffex
|
|
2
|
-
|
|
1
|
+
Diffex
|
|
2
|
+
Copyright 2026 Luntraa, Inc.
|
|
3
|
+
|
|
4
|
+
Where this distribution contains Pi Agent Harness-derived portions,
|
|
5
|
+
those portions retain their MIT terms and copyright notice in LICENSE.
|
|
6
|
+
The Apache-2.0 package declaration does not replace third-party terms.
|
|
3
7
|
|
|
4
8
|
===== highlight.js@11.9.0 (BSD-3-Clause) =====
|
|
5
9
|
BSD 3-Clause License
|
package/dist/config.d.ts
CHANGED
|
@@ -67,6 +67,8 @@ export declare const APP_NAME: string;
|
|
|
67
67
|
export declare const APP_TITLE: string;
|
|
68
68
|
export declare const CONFIG_DIR_NAME: string;
|
|
69
69
|
export declare const VERSION: string;
|
|
70
|
+
/** Set by distribution staging, independently of the user's NODE_ENV. */
|
|
71
|
+
export declare const IS_PRODUCTION_DISTRIBUTION: boolean;
|
|
70
72
|
export declare const ENV_AGENT_DIR = "DIFFEX_CODING_AGENT_DIR";
|
|
71
73
|
export declare const ENV_SESSION_DIR = "DIFFEX_CODING_AGENT_SESSION_DIR";
|
|
72
74
|
export declare function expandTildePath(path: string): string;
|
package/dist/config.js
CHANGED
|
@@ -393,6 +393,8 @@ export const APP_NAME = diffexConfigName || "diffex";
|
|
|
393
393
|
export const APP_TITLE = diffexConfigName ? APP_NAME : "Diffex";
|
|
394
394
|
export const CONFIG_DIR_NAME = pkg.diffexConfig?.configDir || ".diffex";
|
|
395
395
|
export const VERSION = pkg.version || "0.0.0";
|
|
396
|
+
/** Set by distribution staging, independently of the user's NODE_ENV. */
|
|
397
|
+
export const IS_PRODUCTION_DISTRIBUTION = isBunBinary || pkg.diffexConfig?.production === true;
|
|
396
398
|
export const ENV_AGENT_DIR = "DIFFEX_CODING_AGENT_DIR";
|
|
397
399
|
export const ENV_SESSION_DIR = "DIFFEX_CODING_AGENT_SESSION_DIR";
|
|
398
400
|
export function expandTildePath(path) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { existsSync, readdirSync, readFileSync, statSync } from "fs";
|
|
2
2
|
import { basename, dirname, join, resolve, sep } from "path";
|
|
3
|
-
import { CONFIG_DIR_NAME } from "../config.js";
|
|
3
|
+
import { CONFIG_DIR_NAME, IS_PRODUCTION_DISTRIBUTION } from "../config.js";
|
|
4
4
|
import { parseFrontmatter } from "../utils/frontmatter.js";
|
|
5
5
|
import { resolvePath } from "../utils/paths.js";
|
|
6
6
|
import { createSyntheticSourceInfo } from "./source-info.js";
|
|
@@ -83,6 +83,8 @@ function loadTemplateFromFile(filePath, sourceInfo) {
|
|
|
83
83
|
const rawContent = readFileSync(filePath, "utf-8");
|
|
84
84
|
const { frontmatter, body } = parseFrontmatter(rawContent);
|
|
85
85
|
const name = basename(filePath).replace(/\.md$/, "");
|
|
86
|
+
if (IS_PRODUCTION_DISTRIBUTION && name === "cl")
|
|
87
|
+
return null;
|
|
86
88
|
// Get description from frontmatter or first non-empty line
|
|
87
89
|
let description = frontmatter.description || "";
|
|
88
90
|
if (!description) {
|
|
@@ -225,6 +227,9 @@ export function expandPromptTemplate(text, templates) {
|
|
|
225
227
|
if (!match)
|
|
226
228
|
return text;
|
|
227
229
|
const templateName = match[1];
|
|
230
|
+
if (IS_PRODUCTION_DISTRIBUTION && templateName === "cl") {
|
|
231
|
+
throw new Error("/cl is unavailable in production Diffex installations.");
|
|
232
|
+
}
|
|
228
233
|
const argsString = match[2] ?? "";
|
|
229
234
|
const template = templates.find((t) => t.name === templateName);
|
|
230
235
|
if (template) {
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* System prompt construction and project context loading
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { existsSync } from "node:fs";
|
|
5
|
+
import { getDocsPath, getExamplesPath } from "../config.js";
|
|
5
6
|
import { formatSkillsForPrompt } from "./skills.js";
|
|
6
7
|
/** Build the system prompt with tools, guidelines, and context */
|
|
7
8
|
export function buildSystemPrompt(options) {
|
|
@@ -37,7 +38,6 @@ export function buildSystemPrompt(options) {
|
|
|
37
38
|
return prompt;
|
|
38
39
|
}
|
|
39
40
|
// Get absolute paths to documentation and examples
|
|
40
|
-
const readmePath = getReadmePath();
|
|
41
41
|
const docsPath = getDocsPath();
|
|
42
42
|
const examplesPath = getExamplesPath();
|
|
43
43
|
// Build tools list based on selected tools.
|
|
@@ -85,13 +85,14 @@ Guidelines:
|
|
|
85
85
|
${guidelines}
|
|
86
86
|
|
|
87
87
|
Diffex documentation (read only when the user asks about Diffex itself, its SDK, extensions, themes, skills, or TUI):
|
|
88
|
-
|
|
88
|
+
${existsSync(docsPath)
|
|
89
|
+
? `- Product website: https://diffex.ai/
|
|
89
90
|
- Additional docs: ${docsPath}
|
|
90
|
-
|
|
91
|
-
- When
|
|
92
|
-
- When
|
|
93
|
-
-
|
|
94
|
-
-
|
|
91
|
+
${existsSync(examplesPath) ? `- Examples: ${examplesPath} (extensions, custom tools, SDK)\n- When reading Diffex docs or examples, resolve docs/... under Additional docs and examples/... under Examples, not the current working directory` : "- Resolve docs/... under Additional docs, not the current working directory; example source files are not included in this installation"}
|
|
92
|
+
- When asked about: extensions (docs/extensions.md), themes (docs/themes.md), skills (docs/skills.md), prompt templates (docs/prompt-templates.md), TUI components (docs/tui.md), keybindings (docs/keybindings.md), SDK integrations (docs/sdk.md), custom providers (docs/custom-provider.md), adding models (docs/models.md), Diffex packages (docs/packages.md), environment variables (docs/environment-variables.md)
|
|
93
|
+
- When working on Diffex topics, read the docs and follow .md cross-references before implementing
|
|
94
|
+
- Always read Diffex.md files completely and follow links to related docs (e.g., tui.md for TUI API details)`
|
|
95
|
+
: "- Product website: https://diffex.ai/"}`;
|
|
95
96
|
if (appendSection) {
|
|
96
97
|
prompt += appendSection;
|
|
97
98
|
}
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
Diffex
|
|
2
|
-
|
|
1
|
+
Diffex
|
|
2
|
+
Copyright 2026 Luntraa, Inc.
|
|
3
|
+
|
|
4
|
+
Where this distribution contains Pi Agent Harness-derived portions,
|
|
5
|
+
those portions retain their MIT terms and copyright notice in LICENSE.
|
|
6
|
+
The Apache-2.0 package declaration does not replace third-party terms.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
[
|
|
2
2
|
{
|
|
3
3
|
"name": "@diffexai/diffex-agent-core",
|
|
4
|
-
"version": "0.2.
|
|
5
|
-
"sourceCommit": "
|
|
4
|
+
"version": "0.2.2",
|
|
5
|
+
"sourceCommit": "dbe80a9dfe730c776a99be1ea9c439fe6b3cc023",
|
|
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.
|
|
13
|
+
"version": "^0.2.2",
|
|
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.
|
|
18
|
+
"version": "^0.2.2",
|
|
19
19
|
"distribution": "resolved separately by package manager; not bundled in this npm tarball"
|
|
20
20
|
},
|
|
21
21
|
{
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@diffexai/diffex-agent-core",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "General-purpose agent with transport abstraction, state management, and attachment support",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -29,11 +29,6 @@
|
|
|
29
29
|
],
|
|
30
30
|
"author": "Mario Zechner",
|
|
31
31
|
"license": "Apache-2.0",
|
|
32
|
-
"repository": {
|
|
33
|
-
"type": "git",
|
|
34
|
-
"url": "git+https://github.com/diffexai/diffex.git",
|
|
35
|
-
"directory": "packages/agent"
|
|
36
|
-
},
|
|
37
32
|
"engines": {
|
|
38
33
|
"node": ">=22.19.0"
|
|
39
34
|
},
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
Diffex
|
|
2
|
-
|
|
1
|
+
Diffex
|
|
2
|
+
Copyright 2026 Luntraa, Inc.
|
|
3
|
+
|
|
4
|
+
Where this distribution contains Pi Agent Harness-derived portions,
|
|
5
|
+
those portions retain their MIT terms and copyright notice in LICENSE.
|
|
6
|
+
The Apache-2.0 package declaration does not replace third-party terms.
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"schemaVersion":3,"generatedAt":"2026-09-
|
|
1
|
+
{"schemaVersion":3,"generatedAt":"2026-09-14T01:38:43.061Z","structureHash":"c9b9d585746e127a26089c1a10848e04b14ea0f8769b2fc7bc24c55b4895d80c","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":"ba42a26a69e5cb2122c0b384ba572efae93f42239ad86f26c2b7320a14aa75a1","minimax-cn.json":"65d37e55a6d9585855f94b3fb7739308d107fe248ebd9e1001d1c5d4606ad2c4","minimax.json":"c7dc5765995ae77242916430929c7cc9a782589f7e483e13f7e01663190d028e","mistral.json":"e3a109306644bf2f2fa38fece50b2d3ce1dbe3b87b1f1b9e2d70cce7eb5c0ea1","moonshotai-cn.json":"63f77de8782dce6a8d4649b6075ee04c9732863ae85561e0867871220c558bde","moonshotai.json":"2a8dfb97eb905e991c22081dc09bd4a61c05b7fa9ac0d5c72d6930f601f490f1","nvidia.json":"d9fbf18e811fcf04521c3dad7bd8a31c6716938611de392548319acc560c1e0c","openai-codex.json":"4a73818291987693fcb53e9e61b4be3429ffd78b3f64ea877a34c5f9928c89e1","openai.json":"6fa1954abd6c5b301620a02a57412bd60bbfdf20465b9a3eb4d113f88dfb8f7b","opencode-go.json":"31c4434316c8a1b7fcc637b25f1147dd44da946a0b932ca10fb5ac594261dad7","opencode.json":"aa960b0665d65bf2b441ffdb727dbb640074d5232470c06df237f03b5efeacb0","openrouter.json":"54df34bb4328e36b52560e2979bc9da3dcf0501093bd3c82cbbb3d7227eb48bd","qwen-token-plan-cn.json":"e62dde34edb603376a1dc60b2a74a9c2605b9e81d81df55cc259796c45aa4793","qwen-token-plan-individual.json":"0e1578a5c0e11d65644bb42d1d6efee5af97a55a4881d0421ab68bd970d4d4ef","qwen-token-plan.json":"fe914313157ff41ab2f71977f0fdcfedb3a8a205d1092e3180f6799e5d7942fd","together.json":"927c707d06f2236cdab13f14c870fb58bce0614ba7287bbcd57cc9fd66d191ed","vercel-ai-gateway.json":"f9ff06709a675af6723ee6983bf55143d21e1d24b52cd35b16e95834574c6667","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"}}
|