chore: project setup and tooling cleanup (#26)

* add project setup

* add tools to eslint

* remove contributing.md

* update claude md

* chore: simplify CI to single Node.js version (22)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* use node 20

* adjust formatting

* fix linting

* format

* fix layout

* fix: align CI node version to .nvmrc (22), remove redundant gotcha

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: arkon <arkon.85@hotmail.com>
This commit is contained in:
Noah Waldner
2026-02-27 13:16:23 +01:00
committed by GitHub
co-authored by Claude Sonnet 4.6 arkon
parent 2b2829ebde
commit 480584de63
61 changed files with 4306 additions and 4013 deletions
+17 -25
View File
@@ -139,13 +139,10 @@ export class RunSummaryTracker {
// Record state transition
if (oldState && oldState !== newState) {
this.stats.stateTransitions++;
this.addEvent(
'respawn_state_change',
'info',
`State: ${oldState} → ${newState}`,
details,
{ from: oldState, to: newState }
);
this.addEvent('respawn_state_change', 'info', `State: ${oldState} → ${newState}`, details, {
from: oldState,
to: newState,
});
}
// Update state tracking
@@ -214,7 +211,11 @@ export class RunSummaryTracker {
'info',
`Token milestone: ${this.formatTokens(currentMilestone)}`,
`Input: ${this.formatTokens(inputTokens)}, Output: ${this.formatTokens(outputTokens)}`,
{ total, input: inputTokens, output: outputTokens }
{
total,
input: inputTokens,
output: outputTokens,
}
);
}
}
@@ -264,13 +265,9 @@ export class RunSummaryTracker {
* Record a Ralph completion detection.
*/
recordRalphCompletion(phrase: string): void {
this.addEvent(
'ralph_completion',
'success',
'Ralph completion detected',
`Phrase: ${phrase}`,
{ phrase }
);
this.addEvent('ralph_completion', 'success', 'Ralph completion detected', `Phrase: ${phrase}`, {
phrase,
});
}
/**
@@ -278,9 +275,7 @@ export class RunSummaryTracker {
*/
recordHookEvent(eventType: string, data?: Record<string, unknown>): void {
const severity: RunSummaryEventSeverity =
eventType === 'stop' ? 'warning' :
eventType === 'permission_prompt' ? 'info' :
'info';
eventType === 'stop' ? 'warning' : eventType === 'permission_prompt' ? 'info' : 'info';
this.addEvent(
'hook_event',
@@ -311,13 +306,10 @@ export class RunSummaryTracker {
* Record session started.
*/
recordSessionStarted(mode: string, workingDir: string): void {
this.addEvent(
'session_started',
'success',
'Session started',
`Mode: ${mode}, Dir: ${workingDir}`,
{ mode, workingDir }
);
this.addEvent('session_started', 'success', 'Session started', `Mode: ${mode}, Dir: ${workingDir}`, {
mode,
workingDir,
});
}
/**