klyro 0.1.60 → 0.1.61

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/READ.md CHANGED
@@ -22,7 +22,7 @@
22
22
  |-------|--------|-----|
23
23
  | Language | TypeScript 5.5, Node 20+ | Strict, `NodeNext`, `tsc` → `dist/` |
24
24
  | CLI | `commander 12.1` | Stable, `InvalidArgumentError` for `exit 2` |
25
- | TUI | `ink 7.1` + `react 19` + `ink-spinner 5` | React for terminal, proven by Claude Code/Gemini |
25
+ | TUI | `ink 7.1` + `react 19` + `ink-spinner 5` | React renderer for the terminal |
26
26
  | Schema | `zod 4.5` | Tool input validation + config schema |
27
27
  | Test | `vitest 4.1` `fileParallelism:false` `10s timeout` | `node` env, deterministic mocks |
28
28
  | Build | `tsc` (not `tsup`) | `tsc --noEmit` `typecheck`, `tsc` `build` |
@@ -106,7 +106,7 @@ async function* streamAnthropic(req, opts) {
106
106
  }
107
107
  yield { kind: 'message_start' };
108
108
  // Stream SSE: lines are `event: <type>\ndata: <json>\n\n`.
109
- // We use a simple incremental parser; Claude's API guarantees
109
+ // We use a simple incremental parser; Anthropic's API guarantees
110
110
  // well-formed SSE.
111
111
  const reader = resp.body.getReader();
112
112
  const decoder = new TextDecoder('utf-8');
package/dist/cli/repl.js CHANGED
@@ -533,7 +533,7 @@ export async function startRepl(opts = {}) {
533
533
  const rec = await tuiStore.create({ cwd, task: taskText, config: { model, maxSteps: currentMaxSteps } });
534
534
  sessionId = rec.id;
535
535
  tuiSessionId = rec.id;
536
- // Session info goes to status bar, not transcript (clean like Claude Code)
536
+ // Session info goes to status bar, not transcript (clean Klyro transcript)
537
537
  queuedStatus({ status: 'running', step: 0, model });
538
538
  }
539
539
  catch {
@@ -37,7 +37,7 @@ export async function loadKlyroMd(cwd) {
37
37
  }
38
38
  }
39
39
  // Root (imports resolved relative to each file, contained to cwd)
40
- for (const name of ['KLYRO.md', 'KLYRO.local.md', 'AGENTS.md', 'CLAUDE.md', '.cursorrules']) {
40
+ for (const name of ['KLYRO.md', 'KLYRO.local.md', 'AGENTS.md', '.cursorrules']) {
41
41
  const p = path.join(cwd, name);
42
42
  try {
43
43
  const t = await fs.readFile(p, 'utf-8');
@@ -6,8 +6,8 @@ describe('App', () => {
6
6
  it('shows the empty-state hint and the status line', () => {
7
7
  const { lastFrame } = render(_jsx(App, { initialModel: "mock", maxSteps: 10, cwd: "/test", onPrompt: async () => { }, onSlash: async () => { } }));
8
8
  const out = lastFrame();
9
- // design.md: top bar shows claude-code + sessions, center shows Message Klyro placeholder
10
- expect(out).toMatch(/claude-code|Sessions|Message Klyro/i);
9
+ // Top bar shows KLYRO + sessions, center shows Message Klyro placeholder
10
+ expect(out).toMatch(/Sessions|Message Klyro/i);
11
11
  expect(out).toMatch(/Message Klyro|Type a message/i);
12
12
  });
13
13
  it('renders initial transcript items', () => {
@@ -16,11 +16,11 @@ describe('App visual snapshot', () => {
16
16
  it('renders header + statusline + transcript + input at idle', () => {
17
17
  const { lastFrame } = render(_jsx(App, { ...DEFAULT_PROPS, initialModel: "gpt-4o-mini", maxSteps: 30, initialStatus: { status: 'idle', model: 'gpt-4o-mini', step: 0, maxSteps: 30, usageInput: 0, usageOutput: 0, repairs: 0 } }));
18
18
  const frame = lastFrame();
19
- // design.md: top bar shows ▌ claude-code, not KLYRO, and sessions/files
20
- expect(frame).toMatch(/claude-code|KLYRO/i);
19
+ // Top bar shows KLYRO, transcript shows sessions/files context
20
+ expect(frame).toMatch(/KLYRO/i);
21
21
  expect(frame).toMatch(/demo|Sessions|Files/i);
22
22
  expect(frame).toMatch(/shift\+tab|for history|Message Klyro|Type a message/i);
23
- expect(frame).toMatch(/Message Klyro|claude-code|>/i);
23
+ expect(frame).toMatch(/Message Klyro|>/i);
24
24
  });
25
25
  it('renders a transcript with assistant text', () => {
26
26
  const { lastFrame } = render(_jsx(App, { ...DEFAULT_PROPS, initialModel: "gpt-4o-mini", maxSteps: 30, initialStatus: { status: 'idle', model: 'gpt-4o-mini', step: 0, maxSteps: 30, usageInput: 0, usageOutput: 0, repairs: 0 }, initialTranscript: [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "klyro",
3
- "version": "0.1.60",
3
+ "version": "0.1.61",
4
4
  "description": "Klyro \u2014 autonomous coding harness CLI that streams from any OpenAI-compatible or Anthropic LLM endpoint.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",