@mrciphersmith/keryx 0.2.135 → 0.2.136

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 (2) hide show
  1. package/dist/cli.js +45 -8
  2. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -51141,7 +51141,7 @@ import path47 from "path";
51141
51141
  // package.json
51142
51142
  var package_default = {
51143
51143
  name: "@mrciphersmith/keryx",
51144
- version: "0.2.135",
51144
+ version: "0.2.136",
51145
51145
  description: "Version-controlled project context for AI coding agents: code graph, architecture wiki, project memory, relevant tests, quality signals, and task flows.",
51146
51146
  private: false,
51147
51147
  publishConfig: {
@@ -95032,6 +95032,7 @@ async function createShellChrome(otui, renderer, opts) {
95032
95032
  flexDirection: "column",
95033
95033
  border: ["left"],
95034
95034
  borderColor: getTheme().highlight,
95035
+ backgroundColor: getTheme().panel,
95035
95036
  paddingLeft: SIDEBAR_PADDING_LEFT,
95036
95037
  paddingRight: SIDEBAR_PADDING_RIGHT,
95037
95038
  paddingTop: 1
@@ -95095,10 +95096,14 @@ async function createShellChrome(otui, renderer, opts) {
95095
95096
  flexShrink: 0,
95096
95097
  flexDirection: "row",
95097
95098
  justifyContent: "space-between",
95099
+ backgroundColor: getTheme().panel,
95098
95100
  paddingLeft: 1,
95099
95101
  paddingRight: 1
95100
95102
  });
95101
- const headerLeft = new otui.TextRenderable(r, { id: "header-left", content: otui.t`${otui.dim(opts.title)}` });
95103
+ const headerLeft = new otui.TextRenderable(r, {
95104
+ id: "header-left",
95105
+ content: otui.t`${otui.bold(`\u25C6 ${opts.title}`)}`
95106
+ });
95102
95107
  header.add(headerLeft);
95103
95108
  const headerRight = new otui.TextRenderable(r, { id: "header-right", content: "" });
95104
95109
  header.add(headerRight);
@@ -95215,7 +95220,8 @@ async function createShellChrome(otui, renderer, opts) {
95215
95220
  flexDirection: "column",
95216
95221
  borderStyle: "rounded",
95217
95222
  border: true,
95218
- borderColor: getTheme().border,
95223
+ borderColor: getTheme().highlight,
95224
+ backgroundColor: getTheme().panel,
95219
95225
  paddingLeft: 1,
95220
95226
  paddingRight: 1
95221
95227
  });
@@ -95298,6 +95304,7 @@ async function createShellChrome(otui, renderer, opts) {
95298
95304
  flexShrink: 0,
95299
95305
  flexDirection: "row",
95300
95306
  justifyContent: "space-between",
95307
+ backgroundColor: getTheme().panel,
95301
95308
  paddingLeft: 1,
95302
95309
  paddingRight: 1
95303
95310
  });
@@ -95527,11 +95534,15 @@ async function createShellChrome(otui, renderer, opts) {
95527
95534
  r.setBackgroundColor(theme.bg);
95528
95535
  } catch {}
95529
95536
  sidebar.borderColor = theme.highlight;
95537
+ sidebar.backgroundColor = theme.panel;
95538
+ header.backgroundColor = theme.panel;
95539
+ footer.backgroundColor = theme.panel;
95530
95540
  dock.backgroundColor = theme.panel;
95531
95541
  dock.borderColor = theme.border;
95532
95542
  queueDock.backgroundColor = theme.panel;
95533
95543
  queueDock.borderColor = theme.border;
95534
- composer.borderColor = theme.border;
95544
+ composer.borderColor = theme.highlight;
95545
+ composer.backgroundColor = theme.panel;
95535
95546
  menu.backgroundColor = theme.panel;
95536
95547
  menu.focusedBackgroundColor = theme.panel;
95537
95548
  menu.selectedBackgroundColor = theme.highlight;
@@ -97938,11 +97949,15 @@ function presentSessionInfo(openModal, otui, chrome, options) {
97938
97949
  } catch {}
97939
97950
  };
97940
97951
  let unsubscribeKey;
97952
+ const contextRows = Math.max(1, formatContextUsageText(snapshot.context).trimEnd().split(`
97953
+ `).length);
97954
+ const contentRows = Math.max(snapshot.sessionRows.length + snapshot.usageRows.length, contextRows, snapshot.workspaceLines.length, snapshot.flowLines.length);
97941
97955
  const handle = openModal(otui, chrome, {
97942
97956
  title: "/status",
97943
97957
  tabs: statusModalTabs(snapshot),
97944
97958
  initialTab: "status",
97945
97959
  footer: SESSION_INFO_FOOTER,
97960
+ contentRows,
97946
97961
  renderTab: (tabId, body, ctx) => {
97947
97962
  const renderer = options.renderer ?? chrome?.renderer;
97948
97963
  const width = ctx?.width;
@@ -98437,6 +98452,7 @@ function presentThemePicker(openModal, otui, chrome, options) {
98437
98452
  tabs: [{ id: "picker", label: "Theme" }],
98438
98453
  initialTab: "picker",
98439
98454
  footer: THEME_PICKER_FOOTER,
98455
+ contentRows: 22,
98440
98456
  renderTab: (_tabId, body) => {
98441
98457
  if (core === undefined || body === undefined || body === null) {
98442
98458
  return;
@@ -103972,11 +103988,12 @@ function sessionPickerOptions(sessions, leaseState = () => "free") {
103972
103988
  const updated = formatSessionDate(s.updatedAt);
103973
103989
  const short = shortSessionId(s.id);
103974
103990
  const title = s.title.length > 52 ? `${s.title.slice(0, 49)}\u2026` : s.title;
103975
- const label = withLeaseMarker(`${short} \xB7 ${title}`, leaseState(s.id));
103991
+ const label = withLeaseMarker(`${title} \xB7 ${short}`, leaseState(s.id));
103992
+ const messages = `${s.messageCount} ${s.messageCount === 1 ? "message" : "messages"}`;
103976
103993
  return {
103977
103994
  value: s.id,
103978
103995
  label,
103979
- description: `${s.projectPath} \xB7 created ${created} \xB7 updated ${updated}`,
103996
+ description: `updated ${updated} \xB7 created ${created} \xB7 ${messages}`,
103980
103997
  search: `${s.id} ${label} ${s.projectPath} ${s.title} ${created} ${updated}`.toLowerCase()
103981
103998
  };
103982
103999
  });
@@ -104025,7 +104042,7 @@ function pickSessionInTui(otui, rOrChrome, sessions, leaseState) {
104025
104042
  renderTab: (_tabId, body, ctx) => {
104026
104043
  const list = mountFilterList(otui, r, body, {
104027
104044
  ...listSpec,
104028
- idleHint: "type to filter by id, title, project, created, updated",
104045
+ idleHint: "type to filter \xB7 title, id, date",
104029
104046
  width: "100%",
104030
104047
  height: adaptiveSelectHeight(all.length, Math.max(1, ctx.height - 1), ROWS_PER_SESSION),
104031
104048
  onPick: (row) => {
@@ -104849,6 +104866,26 @@ async function launchTuiAgentShell(opts) {
104849
104866
  const mainWidth = chrome.main.width > 0 ? chrome.main.width : r.width - SIDEBAR_WIDTH;
104850
104867
  return renderCommandHelp("agent", undefined, Math.max(HELP_MIN_COLS, mainWidth - TRANSCRIPT_CHROME_COLS));
104851
104868
  };
104869
+ const openHelp = () => {
104870
+ const content = helpText().trimEnd();
104871
+ openModal(otui, chrome, {
104872
+ title: "/help",
104873
+ tabs: [{ id: "commands", label: "Commands" }],
104874
+ initialTab: "commands",
104875
+ footer: [
104876
+ { key: "\u2191/\u2193", label: "scroll" },
104877
+ { key: "esc", label: "close" }
104878
+ ],
104879
+ contentRows: Math.max(1, content.split(`
104880
+ `).length),
104881
+ renderTab: (_tabId, body) => {
104882
+ body.add(new otui.TextRenderable(r, {
104883
+ id: `help-${uid++}`,
104884
+ content
104885
+ }));
104886
+ }
104887
+ });
104888
+ };
104852
104889
  const sessionCwd = opts.session?.cwd ?? process.cwd();
104853
104890
  let permissionMode = opts.initialPermissionMode ?? getProjectPermissionMode(sessionCwd) ?? DEFAULT_PERMISSION_MODE;
104854
104891
  io.permissionMode = () => permissionMode;
@@ -106581,7 +106618,7 @@ Usage: /reasoning <${REASONING_EFFORT_LEVELS.join("|")}>
106581
106618
  })();
106582
106619
  return;
106583
106620
  }
106584
- io.onSystem?.(helpText());
106621
+ openHelp();
106585
106622
  return;
106586
106623
  }
106587
106624
  if (line.startsWith("/")) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mrciphersmith/keryx",
3
- "version": "0.2.135",
3
+ "version": "0.2.136",
4
4
  "description": "Version-controlled project context for AI coding agents: code graph, architecture wiki, project memory, relevant tests, quality signals, and task flows.",
5
5
  "private": false,
6
6
  "publishConfig": {