oharness 0.9.3 → 0.11.0
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/dist/ui/auth.d.ts +16 -0
- package/dist/ui/auth.js +51 -3
- package/dist/ui/auth.js.map +1 -1
- package/dist/ui/claude.d.ts +20 -0
- package/dist/ui/claude.js +39 -0
- package/dist/ui/claude.js.map +1 -0
- package/dist/ui/commands.js +3 -0
- package/dist/ui/commands.js.map +1 -1
- package/dist/ui/main.js +178 -17
- package/dist/ui/main.js.map +1 -1
- package/dist/ui/render.d.ts +3 -0
- package/dist/ui/render.js +12 -0
- package/dist/ui/render.js.map +1 -1
- package/dist/ui/tui/app.d.ts +54 -2
- package/dist/ui/tui/app.js +221 -29
- package/dist/ui/tui/app.js.map +1 -1
- package/dist/ui/tui/layout.d.ts +2 -0
- package/dist/ui/tui/layout.js +8 -0
- package/dist/ui/tui/layout.js.map +1 -1
- package/dist/ui/tui/login.js +1 -1
- package/dist/ui/tui/login.js.map +1 -1
- package/dist/ui/tui/screen.d.ts +9 -0
- package/dist/ui/tui/screen.js +30 -1
- package/dist/ui/tui/screen.js.map +1 -1
- package/package.json +4 -4
package/dist/ui/tui/login.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/ui/tui/login.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,KAAK,CAAC,GAAQ;IAC5B,OAAO;QACL,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM;YAC3B,OAAO,GAAG,CAAC,MAAM,CAAC;gBAChB,KAAK;gBACL,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7B,OAAO,EAAE,OAAO;aACjB,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,OAAO,EAAE,IAAI;YACjB,OAAO,GAAG,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/ui/tui/login.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,KAAK,CAAC,GAAQ;IAC5B,OAAO;QACL,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM;YAC3B,OAAO,GAAG,CAAC,MAAM,CAAC;gBAChB,KAAK;gBACL,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7B,OAAO,EAAE,OAAO;aACjB,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,OAAO,EAAE,IAAI;YACjB,OAAO,GAAG,CAAC,OAAO,CAChB;gBACE,KAAK,EAAE,OAAO;gBACd,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChE,EACD,IAAI,EAAE,MAAM,CACb,CAAC;QACJ,CAAC;QAED,GAAG,CAAC,IAAI;YACN,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/ui/tui/screen.d.ts
CHANGED
|
@@ -19,6 +19,15 @@ export interface Screen {
|
|
|
19
19
|
}): void;
|
|
20
20
|
onKey(handler: (key: string) => void): void;
|
|
21
21
|
onResize(handler: () => void): void;
|
|
22
|
+
/**
|
|
23
|
+
* Hand the terminal to a program run in the foreground — Claude Code, for
|
|
24
|
+
* `/claude` — and take it back afterwards. While suspended nothing is drawn,
|
|
25
|
+
* keys are not read, and Ctrl-C belongs to that program: it reaches this
|
|
26
|
+
* process too, being in the same process group, and must not end it.
|
|
27
|
+
*/
|
|
28
|
+
suspend(): void;
|
|
29
|
+
/** Take the terminal back; the next frame redraws everything. */
|
|
30
|
+
resume(): void;
|
|
22
31
|
/** Restore the terminal. Safe to call more than once. */
|
|
23
32
|
close(): void;
|
|
24
33
|
}
|
package/dist/ui/tui/screen.js
CHANGED
|
@@ -43,6 +43,7 @@ export function openScreen(streams, opts) {
|
|
|
43
43
|
const input = (streams?.input ?? process.stdin);
|
|
44
44
|
const wasRaw = input.isRaw ?? false;
|
|
45
45
|
let closed = false;
|
|
46
|
+
let suspended = false;
|
|
46
47
|
let keyHandler;
|
|
47
48
|
let resizeHandler;
|
|
48
49
|
const restore = () => {
|
|
@@ -69,6 +70,9 @@ export function openScreen(streams, opts) {
|
|
|
69
70
|
input.off("data", onData);
|
|
70
71
|
};
|
|
71
72
|
const onSignal = () => {
|
|
73
|
+
// Meant for the program in the foreground, not for us.
|
|
74
|
+
if (suspended)
|
|
75
|
+
return;
|
|
72
76
|
// Restore before waiting, not after: the terminal has to come back even if
|
|
73
77
|
// the flush below hangs, and `render` is a no-op once closed, so nothing
|
|
74
78
|
// can draw over the restored screen in the meantime. `restore` also
|
|
@@ -119,7 +123,7 @@ export function openScreen(streams, opts) {
|
|
|
119
123
|
return out.columns || 80;
|
|
120
124
|
},
|
|
121
125
|
render(lines, cursor) {
|
|
122
|
-
if (closed)
|
|
126
|
+
if (closed || suspended)
|
|
123
127
|
return;
|
|
124
128
|
const height = out.rows || 24;
|
|
125
129
|
const frame = lines.slice(0, height);
|
|
@@ -144,6 +148,31 @@ export function openScreen(streams, opts) {
|
|
|
144
148
|
onResize(handler) {
|
|
145
149
|
resizeHandler = handler;
|
|
146
150
|
},
|
|
151
|
+
suspend() {
|
|
152
|
+
if (closed || suspended)
|
|
153
|
+
return;
|
|
154
|
+
suspended = true;
|
|
155
|
+
input.off("data", onData);
|
|
156
|
+
try {
|
|
157
|
+
if (input.isTTY)
|
|
158
|
+
input.setRawMode(wasRaw);
|
|
159
|
+
}
|
|
160
|
+
catch {
|
|
161
|
+
// Torn down already; the child gets the terminal as it is.
|
|
162
|
+
}
|
|
163
|
+
input.pause();
|
|
164
|
+
out.write(`${CURSOR_SHOW}${ALT_SCREEN_OFF}`);
|
|
165
|
+
},
|
|
166
|
+
resume() {
|
|
167
|
+
if (closed || !suspended)
|
|
168
|
+
return;
|
|
169
|
+
suspended = false;
|
|
170
|
+
if (input.isTTY)
|
|
171
|
+
input.setRawMode(true);
|
|
172
|
+
input.on("data", onData);
|
|
173
|
+
input.resume();
|
|
174
|
+
out.write(`${ALT_SCREEN_ON}${CURSOR_HIDE}${CURSOR_HOME}${CLEAR_BELOW}`);
|
|
175
|
+
},
|
|
147
176
|
close: restore,
|
|
148
177
|
};
|
|
149
178
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen.js","sourceRoot":"","sources":["../../../src/ui/tui/screen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,GAAG,GAAG,QAAQ,CAAC;AACrB,MAAM,aAAa,GAAG,GAAG,GAAG,SAAS,CAAC;AACtC,MAAM,cAAc,GAAG,GAAG,GAAG,SAAS,CAAC;AACvC,MAAM,WAAW,GAAG,GAAG,GAAG,OAAO,CAAC;AAClC,MAAM,WAAW,GAAG,GAAG,GAAG,OAAO,CAAC;AAClC,MAAM,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC;AAC/B,MAAM,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC;AAC/B,MAAM,cAAc,GAAG,GAAG,GAAG,IAAI,CAAC;AAClC;;;;GAIG;AACH,MAAM,UAAU,GAAG,GAAG,GAAG,SAAS,CAAC;AACnC,MAAM,QAAQ,GAAG,GAAG,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"screen.js","sourceRoot":"","sources":["../../../src/ui/tui/screen.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oharness",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"description": "OHarness is a model-agnostic AI coding agent: Claude Code's architecture — agent loop, tools, permissions and MCP — running on any model, from Anthropic, OpenAI and Gemini to DeepSeek or a local Ollama model.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -67,9 +67,9 @@
|
|
|
67
67
|
"build": "rm -rf dist && tsc -p tsconfig.build.json"
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@oharness/engine": "0.
|
|
71
|
-
"@oharness/server": "0.
|
|
72
|
-
"@oharness/sync": "0.
|
|
70
|
+
"@oharness/engine": "0.11.0",
|
|
71
|
+
"@oharness/server": "0.11.0",
|
|
72
|
+
"@oharness/sync": "0.11.0",
|
|
73
73
|
"ink": "^7.1.1",
|
|
74
74
|
"react": "^19.2.8"
|
|
75
75
|
}
|