ei-tui 1.6.1 → 1.6.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/README.md +21 -6
- package/package.json +1 -1
- package/src/cli/README.md +9 -7
- package/src/cli/mcp.ts +3 -3
- package/src/cli/retrieval.ts +22 -0
- package/src/cli.ts +210 -11
- package/src/core/context-utils.ts +0 -1
- package/src/core/orchestrators/ceremony.ts +1 -1
- package/src/core/processor.ts +81 -0
- package/src/core/types/data-items.ts +1 -1
- package/src/core/types/entities.ts +1 -0
- package/src/core/types/llm.ts +1 -1
- package/src/core/utils/message-id.ts +16 -0
- package/src/integrations/codex/importer.ts +258 -0
- package/src/integrations/codex/index.ts +11 -0
- package/src/integrations/codex/reader.ts +241 -0
- package/src/integrations/codex/types.ts +117 -0
- package/src/integrations/opencode/reader-factory.ts +4 -4
- package/tui/README.md +4 -3
- package/tui/src/util/yaml-settings.ts +28 -0
package/tui/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Ei TUI is built with OpenTUI and SolidJS.
|
|
4
4
|
|
|
5
|
-
Coding tool integrations (OpenCode, Claude Code, Cursor): enable via `/settings` · export data via [CLI](../src/cli/README.md)
|
|
5
|
+
Coding tool integrations (OpenCode, Claude Code, Cursor, Codex): enable via `/settings` · export data via [CLI](../src/cli/README.md)
|
|
6
6
|
|
|
7
7
|
## How Ei Handles Configuration
|
|
8
8
|
|
|
@@ -29,17 +29,18 @@ The one exception is `EI_DATA_PATH` (and `EI_SYNC_USERNAME` / `EI_SYNC_PASSWORD`
|
|
|
29
29
|
|
|
30
30
|
## Coding Tool Integrations
|
|
31
31
|
|
|
32
|
-
Enable any or all
|
|
32
|
+
Enable any or all four in `/settings`. They work independently and feed into the same knowledge base.
|
|
33
33
|
|
|
34
34
|
| Tool | Settings key | Session data location |
|
|
35
35
|
|------|-------------|----------------------|
|
|
36
36
|
| OpenCode | `opencode.integration: true` | OpenCode's local SQLite / JSON session store |
|
|
37
37
|
| Claude Code | `claudeCode.integration: true` | `~/.claude/projects/` (JSONL files) |
|
|
38
38
|
| Cursor | `cursor.integration: true` | `~/Library/Application Support/Cursor/User/` (macOS)<br>`%APPDATA%\Cursor\User\` (Windows)<br>`~/.config/Cursor/User/` (Linux) |
|
|
39
|
+
| Codex | `codex.integration: true` | `~/.codex/state_*.sqlite` + `~/.codex/sessions/` rollout JSONL files |
|
|
39
40
|
|
|
40
41
|
Sessions are processed oldest-first, one per queue cycle. On first run Ei works through your backlog gradually — it won't flood your LLM provider.
|
|
41
42
|
|
|
42
|
-
All
|
|
43
|
+
All four tools also support reading Ei's knowledge back out via the [CLI tool](../src/cli/README.md). Run `ei --install` to wire up MCP everywhere it is detected, plus automatic context injection where hooks/plugins are available.
|
|
43
44
|
|
|
44
45
|
## Slack Integration
|
|
45
46
|
|
|
@@ -7,6 +7,7 @@ import type {
|
|
|
7
7
|
} from "../../../src/core/types.js";
|
|
8
8
|
import type { ClaudeCodeSettings } from "../../../src/integrations/claude-code/types.js";
|
|
9
9
|
import type { CursorSettings } from "../../../src/integrations/cursor/types.js";
|
|
10
|
+
import type { CodexSettings } from "../../../src/integrations/codex/types.js";
|
|
10
11
|
import type { SlackSettings, SlackAuth } from "../../../src/integrations/slack/types.js";
|
|
11
12
|
import { modelGuidToDisplay, displayToModelGuid } from "./yaml-shared.js";
|
|
12
13
|
import { parseDuration, formatDuration } from "./duration.js";
|
|
@@ -47,6 +48,13 @@ interface EditableSettingsData {
|
|
|
47
48
|
last_sync?: string | null;
|
|
48
49
|
extraction_point?: string | null;
|
|
49
50
|
};
|
|
51
|
+
codex?: {
|
|
52
|
+
integration?: boolean | null;
|
|
53
|
+
polling_interval_ms?: string | null;
|
|
54
|
+
last_sync?: string | null;
|
|
55
|
+
extraction_point?: string | null;
|
|
56
|
+
extraction_model?: string | null;
|
|
57
|
+
};
|
|
50
58
|
slack?: {
|
|
51
59
|
polling_interval_ms?: string | null;
|
|
52
60
|
workspaces?: Record<string, {
|
|
@@ -112,6 +120,13 @@ export function settingsToYAML(settings: HumanSettings | undefined, accounts: Pr
|
|
|
112
120
|
last_sync: settings?.cursor?.last_sync ?? null,
|
|
113
121
|
extraction_point: settings?.cursor?.extraction_point ?? null,
|
|
114
122
|
},
|
|
123
|
+
codex: {
|
|
124
|
+
integration: settings?.codex?.integration ?? false,
|
|
125
|
+
polling_interval_ms: formatDuration(settings?.codex?.polling_interval_ms ?? 60000),
|
|
126
|
+
extraction_model: guidToDisplay(settings?.codex?.extraction_model) ?? 'default',
|
|
127
|
+
last_sync: settings?.codex?.last_sync ?? null,
|
|
128
|
+
extraction_point: settings?.codex?.extraction_point ?? null,
|
|
129
|
+
},
|
|
115
130
|
slack: {
|
|
116
131
|
polling_interval_ms: formatDuration(settings?.slack?.polling_interval_ms ?? 60000),
|
|
117
132
|
workspaces: Object.fromEntries(
|
|
@@ -204,6 +219,18 @@ export function settingsFromYAML(yamlContent: string, original: HumanSettings |
|
|
|
204
219
|
};
|
|
205
220
|
}
|
|
206
221
|
|
|
222
|
+
let codex: CodexSettings | undefined;
|
|
223
|
+
if (data.codex) {
|
|
224
|
+
codex = {
|
|
225
|
+
integration: nullToUndefined(data.codex.integration),
|
|
226
|
+
polling_interval_ms: parseMsDuration(data.codex.polling_interval_ms, 60000),
|
|
227
|
+
last_sync: original?.codex?.last_sync,
|
|
228
|
+
extraction_point: original?.codex?.extraction_point,
|
|
229
|
+
processed_sessions: original?.codex?.processed_sessions,
|
|
230
|
+
extraction_model: displayToGuid(data.codex.extraction_model),
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
|
|
207
234
|
let slack: SlackSettings | undefined;
|
|
208
235
|
if (data.slack) {
|
|
209
236
|
const parsedWorkspaces: SlackSettings["workspaces"] = {};
|
|
@@ -249,6 +276,7 @@ export function settingsFromYAML(yamlContent: string, original: HumanSettings |
|
|
|
249
276
|
opencode,
|
|
250
277
|
claudeCode,
|
|
251
278
|
cursor,
|
|
279
|
+
codex,
|
|
252
280
|
slack,
|
|
253
281
|
backup,
|
|
254
282
|
};
|