ei-tui 0.7.0 → 0.7.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ei-tui",
3
- "version": "0.7.0",
3
+ "version": "0.7.2",
4
4
  "author": "Flare576",
5
5
  "repository": {
6
6
  "type": "git",
package/src/cli.ts CHANGED
@@ -16,6 +16,13 @@ import { join } from "path";
16
16
  import { retrieveBalanced, lookupById, loadLatestState } from "./cli/retrieval";
17
17
  import type { StorageState } from "./core/types";
18
18
  import { resolvePersonaId, filterByPersona, filterTypeSpecificByPersona, filterBySource, filterTypeSpecificBySource } from "./cli/persona-filter.js";
19
+ import pkg from "../package.json" assert { type: "json" };
20
+
21
+ const rawArgs = process.argv.slice(2);
22
+ if (rawArgs.includes("--version") || rawArgs.includes("-v")) {
23
+ process.stdout.write(`${pkg.version}\n`);
24
+ process.exit(0);
25
+ }
19
26
 
20
27
  const TYPE_ALIASES: Record<string, string> = {
21
28
  quote: "quotes",
@@ -16,6 +16,7 @@ export interface EnsureAgentPersonaOptions {
16
16
  }
17
17
 
18
18
  export function resolveCanonicalAgent(agentName: string): { canonical: string; aliases: string[] } {
19
+ agentName = agentName.replace(/^\p{Z}+|\p{Z}+$/gu, "");
19
20
  for (const [canonical, variants] of Object.entries(AGENT_ALIASES)) {
20
21
  if (variants.includes(agentName)) {
21
22
  return { canonical, aliases: variants };
@@ -25,6 +26,7 @@ export function resolveCanonicalAgent(agentName: string): { canonical: string; a
25
26
  let name = agentName;
26
27
  name = name.replace(/^ai-sdlc[:-]/, "");
27
28
  name = name.replace(/\s*\([^)]+\)\s*$/, "").trim();
29
+ name = name.replace(/\s{2,}\S+.*$/, "").trim();
28
30
  name = name.replace(/-/g, " ");
29
31
  const canonical = name.replace(/\b\w/g, (c) => c.toUpperCase());
30
32
 
@@ -46,8 +46,8 @@ export class PersonaState {
46
46
  return this.personas.get(id)?.entity ?? null;
47
47
  }
48
48
 
49
- getByName(nameOrAlias: string): PersonaEntity | null {
50
- const searchTerm = nameOrAlias.toLowerCase();
49
+ getByName(nameOrAlias: string): PersonaEntity | null {
50
+ const searchTerm = nameOrAlias.replace(/^\p{Z}+|\p{Z}+$/gu, "").toLowerCase();
51
51
 
52
52
  // Priority 1: Exact display_name match
53
53
  for (const data of this.personas.values()) {
@@ -180,6 +180,8 @@ export const AGENT_ALIASES: Record<string, string[]> = {
180
180
  "sisyphus",
181
181
  "Sisyphus",
182
182
  "Sisyphus (Ultraworker)",
183
+ "Sisyphus Ultraworker",
184
+ "sisyphus ultraworker",
183
185
  "Planner-Sisyphus",
184
186
  "planner-sisyphus",
185
187
  ],
@@ -368,7 +368,6 @@ Rooms are shared multi-persona conversations — a space where the Human and mul
368
368
  ## Learning About the Human
369
369
  As the human chats, the system learns about them:
370
370
  - **Facts**: Objective information (job, location, family members)
371
- - **Traits**: Personality characteristics and tendencies
372
371
  - **Topics**: Interests and how they feel about them
373
372
  - **People**: Relationships in their life
374
373
  - **Quotes**: Memorable things said in conversation (human selects these with ${viewQuotesAction})
package/tui/README.md CHANGED
@@ -105,8 +105,8 @@ Rooms have three modes, set at creation time:
105
105
 
106
106
  | Command | Aliases | Description |
107
107
  |---------|---------|-------------|
108
- | `/me` | | Edit all your data (facts, traits, topics, people) in `$EDITOR` |
109
- | `/me <type>` | | Edit one type: `facts`, `traits`, `topics`, or `people` |
108
+ | `/me` | | Edit all your data (facts, topics, people) in `$EDITOR` |
109
+ | `/me <type>` | | Edit one type: `facts`, `topics`, or `people` |
110
110
  | `/dedupe <person\|topic> <term> [term2 ...]` | | Fuzzy-search and merge duplicate people or topics in `$EDITOR`. Unquoted words are individual OR terms; quoted strings match as exact phrases: `/dedupe person Flare "Jeremy Scherer"` finds records matching `Flare` OR `Jeremy Scherer` |
111
111
  | `/settings` | `/set` | Edit your global settings in `$EDITOR` |
112
112
  | `/setsync <user> <pass>` | `/ss` | Set sync credentials (triggers restart) |
@@ -7,6 +7,9 @@ export function buildRoomYAMLTemplate(personas: PersonaSummary[], initialName =
7
7
  const personaLines = activePersonas.map((p) => ` ${p.display_name}: false`).join("\n");
8
8
  return `# Room configuration
9
9
  # mode: MAP | CYP | FFA
10
+ #
11
+ # CYP NOTE: Ei will NOT automatically extract Topics and People in Choose Your Path rooms.
12
+ # When you reach an important moment, use the /capture command to extract data manually.
10
13
  display_name: "${initialName}"
11
14
  mode: FFA
12
15
  persona_ids: