0sec-cli 0.17.0 → 0.18.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/0sec.js +40 -35
- package/README.md +9 -0
- package/chunks/{adapt-loop-ECQG7454.js → adapt-loop-SMH6V4PD.js} +4 -4
- package/chunks/{artifact-scraper-GJEZMOHF.js → artifact-scraper-HQ7HLP6V.js} +2 -2
- package/chunks/{assumption-mining-BVMMUZHB.js → assumption-mining-5SNIVVDN.js} +13 -13
- package/chunks/{chunk-SZJCPG2I.js → chunk-242TMK6G.js} +1 -1
- package/chunks/{chunk-HE7LCA7G.js → chunk-2JCCA2JL.js} +1 -1
- package/chunks/{chunk-SNKTC4BP.js → chunk-3KPWWJCI.js} +1 -1
- package/chunks/{chunk-IORC6MQX.js → chunk-5JI7L7KV.js} +1557 -145
- package/chunks/{chunk-KKGE5RQE.js → chunk-6L26OBWI.js} +1 -1
- package/chunks/{chunk-HT6P7RY3.js → chunk-72CISA2D.js} +1 -1
- package/chunks/{chunk-VGRDNSHA.js → chunk-AD7WXDH6.js} +3 -2
- package/chunks/{chunk-QOKTUOU2.js → chunk-ADOLI6DT.js} +1 -1
- package/chunks/{chunk-HDWV7PGI.js → chunk-AHTBZC3E.js} +2 -2
- package/chunks/{chunk-D6S3IIPG.js → chunk-ASUR522M.js} +3 -3
- package/chunks/{chunk-CLHCDHP4.js → chunk-ATATQACO.js} +1 -1
- package/chunks/{chunk-KTQDLNSR.js → chunk-BATRQBOR.js} +1 -1
- package/chunks/{chunk-K26SZ37E.js → chunk-BFR2CDV5.js} +7 -7
- package/chunks/{chunk-A6CLR72I.js → chunk-BFRB6HB2.js} +1 -1
- package/chunks/{chunk-H44E2CRN.js → chunk-BVAZO4WA.js} +1 -1
- package/chunks/{chunk-O462Y7P2.js → chunk-BZNEY2ZS.js} +334 -128
- package/chunks/{chunk-DN25OQQA.js → chunk-C2WXWFBB.js} +1 -1
- package/chunks/{chunk-QJQKHO7G.js → chunk-CMKXP5RR.js} +1 -1
- package/chunks/{chunk-2CJ776PV.js → chunk-GMT2AZKM.js} +23 -14
- package/chunks/{chunk-47TQJWDH.js → chunk-JQHOLLTD.js} +3 -3
- package/chunks/{chunk-MMLDQR4H.js → chunk-N7BOUYEV.js} +3 -3
- package/chunks/{chunk-QKICO43A.js → chunk-SVJEDVYK.js} +1 -1
- package/chunks/{chunk-3QFDYBZQ.js → chunk-TSK2AG6J.js} +18 -18
- package/chunks/{chunk-UJ4IK5PO.js → chunk-U5FLXGHT.js} +1 -1
- package/chunks/{chunk-SOG2U7B3.js → chunk-UCYRA73C.js} +1 -1
- package/chunks/{chunk-2SANI5RH.js → chunk-UR4ELX2Y.js} +61 -5
- package/chunks/{chunk-UM3ZNQIM.js → chunk-WEBMRWEG.js} +17 -9
- package/chunks/{chunk-RDZYQQLW.js → chunk-WXQ6BJ6A.js} +1 -1
- package/chunks/{chunk-4Y4KQJXE.js → chunk-XM5NLHYU.js} +6 -6
- package/chunks/{chunk-LOHTE223.js → chunk-YYRBQVFE.js} +1 -1
- package/chunks/{chunk-WKNNZVJS.js → chunk-Z5FA2XOX.js} +1 -1
- package/chunks/{commands-U3AMV5ZU.js → commands-TBC2F5CE.js} +635 -431
- package/chunks/{cost-ledger-ZCKMBJEN.js → cost-ledger-NU63MYZM.js} +2 -2
- package/chunks/{db-26NGQFKO.js → db-KFWOAUUB.js} +3 -3
- package/chunks/{disclose-A6AEIEDA.js → disclose-EKTWSCGW.js} +2 -2
- package/chunks/{dist-GL66KMUX.js → dist-4MAW5X6L.js} +2 -2
- package/chunks/{dist-FDKALV4R.js → dist-4YICS2J2.js} +29 -25
- package/chunks/{dist-JR67XKYO.js → dist-FMGSR3DW.js} +1 -1
- package/chunks/{eval-runner-DDLE5RQ3.js → eval-runner-7ZF472KV.js} +8 -8
- package/chunks/{exploit-agent-XP23ISN7.js → exploit-agent-45YQOHPJ.js} +1 -1
- package/chunks/{exploit-autoclimb-E6T7RRSC.js → exploit-autoclimb-UZGEMGYT.js} +1 -1
- package/chunks/{exploit-climb-2FAUP6XU.js → exploit-climb-SG23KB2G.js} +2 -2
- package/chunks/{harness-HWOYFKFY.js → harness-7ODOLOWU.js} +3 -3
- package/chunks/{hunt-scan-XPELSPQQ.js → hunt-scan-MMKUOETU.js} +11 -11
- package/chunks/{kernel-primitive-TENE3R7T.js → kernel-primitive-7U6CWHXD.js} +2 -2
- package/chunks/{kernel-vm-runner-4F6QSNFY.js → kernel-vm-runner-3JAU4O6J.js} +2 -2
- package/chunks/{native-loop-NTONUDP7.js → native-loop-RJCJPOUS.js} +7 -7
- package/chunks/{orchestrate-ZUWAUWBC.js → orchestrate-OC2VZN2X.js} +26 -26
- package/chunks/{pipeline-FCARFZU3.js → pipeline-BZK5BLJR.js} +2 -2
- package/chunks/{process-3Q7QJIOZ.js → process-LQRCS5OY.js} +3 -3
- package/chunks/{replay-runner-RRR4E2A7.js → replay-runner-45G3VU7X.js} +2 -2
- package/chunks/{run-ESNN4V5W.js → run-D56MPDKY.js} +324 -240
- package/chunks/{runtime-62ZQAH7H.js → runtime-G7YWIO3B.js} +5 -5
- package/chunks/{session-store-BCFQYDCE.js → session-store-GZ4A4KYT.js} +2 -2
- package/chunks/{variant-candidates-6KM6F6MD.js → variant-candidates-YERCYMPD.js} +3 -3
- package/chunks/{web-recon-prepass-DPVCBRZA.js → web-recon-prepass-JJGPEOLE.js} +3 -3
- package/package.json +1 -1
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
startCodexDeviceAuth,
|
|
25
25
|
watchLensSynthCommand,
|
|
26
26
|
wrapText
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-TSK2AG6J.js";
|
|
28
28
|
import {
|
|
29
29
|
deleteSession,
|
|
30
30
|
listSessions,
|
|
@@ -32,7 +32,7 @@ import {
|
|
|
32
32
|
pruneSessions,
|
|
33
33
|
relativeAge,
|
|
34
34
|
saveSession
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-BVAZO4WA.js";
|
|
36
36
|
import {
|
|
37
37
|
reportHerdrActivity,
|
|
38
38
|
reportHerdrCompaction,
|
|
@@ -82,7 +82,7 @@ import {
|
|
|
82
82
|
useSettings,
|
|
83
83
|
validateTheme,
|
|
84
84
|
writeInstalledTheme
|
|
85
|
-
} from "./chunk-
|
|
85
|
+
} from "./chunk-GMT2AZKM.js";
|
|
86
86
|
import {
|
|
87
87
|
DEFAULT_REGISTRY_URL,
|
|
88
88
|
appendStageAction,
|
|
@@ -96,59 +96,60 @@ import {
|
|
|
96
96
|
parseMcpConfig,
|
|
97
97
|
releaseClaim,
|
|
98
98
|
releaseStaleClaims
|
|
99
|
-
} from "./chunk-
|
|
100
|
-
import "./chunk-
|
|
99
|
+
} from "./chunk-5JI7L7KV.js";
|
|
100
|
+
import "./chunk-CMKXP5RR.js";
|
|
101
101
|
import "./chunk-SF4KZ4O3.js";
|
|
102
|
-
import "./chunk-
|
|
102
|
+
import "./chunk-AHTBZC3E.js";
|
|
103
103
|
import "./chunk-WVTBZEQO.js";
|
|
104
104
|
import "./chunk-5G3ZXFBW.js";
|
|
105
105
|
import "./chunk-7DQEV5QI.js";
|
|
106
106
|
import "./chunk-RWONANDA.js";
|
|
107
|
-
import "./chunk-
|
|
108
|
-
import "./chunk-
|
|
109
|
-
import "./chunk-
|
|
110
|
-
import "./chunk-
|
|
111
|
-
import "./chunk-
|
|
112
|
-
import "./chunk-
|
|
107
|
+
import "./chunk-BATRQBOR.js";
|
|
108
|
+
import "./chunk-2JCCA2JL.js";
|
|
109
|
+
import "./chunk-ASUR522M.js";
|
|
110
|
+
import "./chunk-BFRB6HB2.js";
|
|
111
|
+
import "./chunk-JQHOLLTD.js";
|
|
112
|
+
import "./chunk-3KPWWJCI.js";
|
|
113
113
|
import "./chunk-F3WBKITT.js";
|
|
114
|
-
import "./chunk-
|
|
114
|
+
import "./chunk-C2WXWFBB.js";
|
|
115
115
|
import "./chunk-IOL7D5YV.js";
|
|
116
116
|
import "./chunk-2RMLOJVB.js";
|
|
117
117
|
import "./chunk-BKZFDZ23.js";
|
|
118
118
|
import "./chunk-53G27VPS.js";
|
|
119
|
-
import "./chunk-
|
|
119
|
+
import "./chunk-BFR2CDV5.js";
|
|
120
120
|
import "./chunk-RJWOYEOG.js";
|
|
121
121
|
import {
|
|
122
122
|
TOOL_DEFINITIONS,
|
|
123
|
+
analyticsPipeline,
|
|
123
124
|
getWorkspaceHarnessTrust,
|
|
124
125
|
peekInbox,
|
|
125
126
|
renderInboundMessage,
|
|
126
127
|
sendOperatorMessage,
|
|
127
128
|
setWorkspaceHarnessTrust
|
|
128
|
-
} from "./chunk-
|
|
129
|
-
import "./chunk-
|
|
129
|
+
} from "./chunk-BZNEY2ZS.js";
|
|
130
|
+
import "./chunk-YYRBQVFE.js";
|
|
130
131
|
import "./chunk-3MOLBTLS.js";
|
|
131
132
|
import "./chunk-P6WKNFWX.js";
|
|
132
|
-
import "./chunk-
|
|
133
|
+
import "./chunk-UCYRA73C.js";
|
|
133
134
|
import "./chunk-LP3HHYQU.js";
|
|
134
135
|
import "./chunk-KLTNTE2Z.js";
|
|
135
|
-
import "./chunk-
|
|
136
|
+
import "./chunk-72CISA2D.js";
|
|
136
137
|
import "./chunk-QI233I24.js";
|
|
137
|
-
import "./chunk-
|
|
138
|
-
import "./chunk-
|
|
138
|
+
import "./chunk-242TMK6G.js";
|
|
139
|
+
import "./chunk-Z5FA2XOX.js";
|
|
139
140
|
import "./chunk-RRMJC3ZE.js";
|
|
140
141
|
import "./chunk-H2FFLZNK.js";
|
|
141
|
-
import "./chunk-
|
|
142
|
+
import "./chunk-U5FLXGHT.js";
|
|
142
143
|
import {
|
|
143
144
|
redactSensitiveHeaders,
|
|
144
145
|
renderCvssSection,
|
|
145
146
|
renderPlatformReport
|
|
146
|
-
} from "./chunk-
|
|
147
|
-
import "./chunk-
|
|
147
|
+
} from "./chunk-WEBMRWEG.js";
|
|
148
|
+
import "./chunk-SVJEDVYK.js";
|
|
148
149
|
import {
|
|
149
150
|
ScopePolicy
|
|
150
151
|
} from "./chunk-57ZENEX2.js";
|
|
151
|
-
import "./chunk-
|
|
152
|
+
import "./chunk-N7BOUYEV.js";
|
|
152
153
|
import {
|
|
153
154
|
CloudClient,
|
|
154
155
|
CloudError,
|
|
@@ -156,11 +157,11 @@ import {
|
|
|
156
157
|
CloudUnauthorizedError,
|
|
157
158
|
claimDiagnostics,
|
|
158
159
|
loadCloudCredentials
|
|
159
|
-
} from "./chunk-
|
|
160
|
-
import "./chunk-
|
|
160
|
+
} from "./chunk-UR4ELX2Y.js";
|
|
161
|
+
import "./chunk-ATATQACO.js";
|
|
161
162
|
import {
|
|
162
163
|
eventBus
|
|
163
|
-
} from "./chunk-
|
|
164
|
+
} from "./chunk-ADOLI6DT.js";
|
|
164
165
|
import {
|
|
165
166
|
DEFAULT_AUTONOMY_MODE,
|
|
166
167
|
MODEL_PRICING,
|
|
@@ -170,7 +171,7 @@ import {
|
|
|
170
171
|
getRates,
|
|
171
172
|
homeStateDir,
|
|
172
173
|
modelProvider
|
|
173
|
-
} from "./chunk-
|
|
174
|
+
} from "./chunk-6L26OBWI.js";
|
|
174
175
|
import "./chunk-YLMN3N25.js";
|
|
175
176
|
import "./chunk-6LKRLK2R.js";
|
|
176
177
|
import "./chunk-SAFFWQW4.js";
|
|
@@ -193,8 +194,8 @@ var require_emoji_regex = __commonJS({
|
|
|
193
194
|
|
|
194
195
|
// packages/cli/src/tui/run.tsx
|
|
195
196
|
import { randomUUID as randomUUID4 } from "node:crypto";
|
|
196
|
-
import
|
|
197
|
-
import { CliRenderEvents, createCliRenderer } from "@opentui/core";
|
|
197
|
+
import React30, { useContext as useContext6, useEffect as useEffect25, useRef as useRef25, useState as useState32 } from "react";
|
|
198
|
+
import { CliRenderEvents as CliRenderEvents2, createCliRenderer } from "@opentui/core";
|
|
198
199
|
import { AppContext as AppContext3, createRoot, useKeyboard as useKeyboard27 } from "@opentui/react";
|
|
199
200
|
|
|
200
201
|
// packages/cli/src/tui/theme-context.ts
|
|
@@ -1887,12 +1888,26 @@ function leaveCurrentScreen(shell, onExit) {
|
|
|
1887
1888
|
import { useEffect as useEffect4, useMemo as useMemo6, useRef as useRef5, useState as useState6 } from "react";
|
|
1888
1889
|
|
|
1889
1890
|
// packages/cli/src/tui/scrollbar.ts
|
|
1891
|
+
function renderThinThumb(buffer) {
|
|
1892
|
+
if (this.orientation !== "vertical" || this.height <= 0) return;
|
|
1893
|
+
const track = this.height * 2;
|
|
1894
|
+
const range = this.max - this.min;
|
|
1895
|
+
const viewport = Math.max(1, this.viewPortSize);
|
|
1896
|
+
const size = range <= 0 ? track : Math.max(1, Math.min(Math.floor(track * viewport / (range + viewport)), track));
|
|
1897
|
+
const start = range <= 0 ? 0 : Math.round((this.value - this.min) / range * (track - size));
|
|
1898
|
+
const endRow = Math.ceil((start + size) / 2);
|
|
1899
|
+
for (let row = Math.floor(start / 2); row < endRow; row++) {
|
|
1900
|
+
buffer.setCellWithAlphaBlending(this.x, this.y + row, "\u258F", this.foregroundColor, this.backgroundColor);
|
|
1901
|
+
}
|
|
1902
|
+
}
|
|
1890
1903
|
function sleekScrollbar(theme, surface = theme.PANEL) {
|
|
1891
1904
|
return {
|
|
1905
|
+
width: 1,
|
|
1892
1906
|
showArrows: false,
|
|
1893
1907
|
trackOptions: {
|
|
1894
1908
|
backgroundColor: surface,
|
|
1895
|
-
foregroundColor: theme.BORDER
|
|
1909
|
+
foregroundColor: theme.BORDER,
|
|
1910
|
+
renderAfter: renderThinThumb
|
|
1896
1911
|
},
|
|
1897
1912
|
arrowOptions: {
|
|
1898
1913
|
foregroundColor: surface,
|
|
@@ -5996,7 +6011,7 @@ function OpsScreen({ dbPath, refreshMs, onExit, shell }) {
|
|
|
5996
6011
|
let alive = true;
|
|
5997
6012
|
const refresh = async () => {
|
|
5998
6013
|
try {
|
|
5999
|
-
const { osecDB } = await import("./dist-
|
|
6014
|
+
const { osecDB } = await import("./dist-4MAW5X6L.js");
|
|
6000
6015
|
const db = new osecDB(dbPath);
|
|
6001
6016
|
try {
|
|
6002
6017
|
const scans = db.listScans(12);
|
|
@@ -6535,7 +6550,7 @@ function HistoryScreen({ dbPath, limit, onResolve, onExit, shell }) {
|
|
|
6535
6550
|
let alive = true;
|
|
6536
6551
|
const load = async () => {
|
|
6537
6552
|
try {
|
|
6538
|
-
const { osecDB } = await import("./dist-
|
|
6553
|
+
const { osecDB } = await import("./dist-4MAW5X6L.js");
|
|
6539
6554
|
const db = new osecDB(dbPath);
|
|
6540
6555
|
try {
|
|
6541
6556
|
const rows = db.listScans(limit);
|
|
@@ -7057,7 +7072,7 @@ function FindingsScreen({ options, onExit, shell }) {
|
|
|
7057
7072
|
let alive = true;
|
|
7058
7073
|
const load = async () => {
|
|
7059
7074
|
try {
|
|
7060
|
-
const { osecDB } = await import("./dist-
|
|
7075
|
+
const { osecDB } = await import("./dist-4MAW5X6L.js");
|
|
7061
7076
|
const db = new osecDB(options.dbPath);
|
|
7062
7077
|
try {
|
|
7063
7078
|
const findings = db.listFindings({
|
|
@@ -7250,7 +7265,7 @@ function FindingsScreen({ options, onExit, shell }) {
|
|
|
7250
7265
|
setError(null);
|
|
7251
7266
|
setNotice(`Updating ${selectedRow2.fingerprint.slice(0, 10)} to ${triageStatus}...`);
|
|
7252
7267
|
try {
|
|
7253
|
-
const { osecDB } = await import("./dist-
|
|
7268
|
+
const { osecDB } = await import("./dist-4MAW5X6L.js");
|
|
7254
7269
|
const db = new osecDB(options.dbPath);
|
|
7255
7270
|
try {
|
|
7256
7271
|
db.updateFindingTriageByFingerprint(selectedRow2.fingerprint, triageStatus);
|
|
@@ -7267,7 +7282,7 @@ function FindingsScreen({ options, onExit, shell }) {
|
|
|
7267
7282
|
};
|
|
7268
7283
|
const runSourceFixForRow = async (row, finding, repoRoot, testCommand) => {
|
|
7269
7284
|
try {
|
|
7270
|
-
const { createRuntime, runSourceFix } = await import("./dist-
|
|
7285
|
+
const { createRuntime, runSourceFix } = await import("./dist-4YICS2J2.js");
|
|
7271
7286
|
const runtime = createRuntime({ type: "api", timeout: FIX_MODEL_TIMEOUT_MS });
|
|
7272
7287
|
if (!isNativeRuntime(runtime)) {
|
|
7273
7288
|
throw new Error("runtime 'api' does not support structured source remediation");
|
|
@@ -7607,7 +7622,7 @@ function ReplayScreen({ dbPath, scanId, onExit, shell }) {
|
|
|
7607
7622
|
let alive = true;
|
|
7608
7623
|
const load = async () => {
|
|
7609
7624
|
try {
|
|
7610
|
-
const { osecDB } = await import("./dist-
|
|
7625
|
+
const { osecDB } = await import("./dist-4MAW5X6L.js");
|
|
7611
7626
|
const db = new osecDB(dbPath);
|
|
7612
7627
|
try {
|
|
7613
7628
|
let selected = scanId ? db.getScan(scanId) : void 0;
|
|
@@ -7947,7 +7962,7 @@ function ShutdownDialog({ auditCount, onForceQuit }) {
|
|
|
7947
7962
|
}
|
|
7948
7963
|
|
|
7949
7964
|
// packages/cli/src/tui/chat-screen.tsx
|
|
7950
|
-
import
|
|
7965
|
+
import React15, {
|
|
7951
7966
|
useCallback as useCallback5,
|
|
7952
7967
|
useEffect as useEffect16,
|
|
7953
7968
|
useMemo as useMemo13,
|
|
@@ -8294,7 +8309,7 @@ function formatHostedBalance(state) {
|
|
|
8294
8309
|
import {
|
|
8295
8310
|
useKeyboard as useKeyboard13,
|
|
8296
8311
|
usePaste as usePaste2,
|
|
8297
|
-
useRenderer as
|
|
8312
|
+
useRenderer as useRenderer5,
|
|
8298
8313
|
useTerminalDimensions as useTerminalDimensions4
|
|
8299
8314
|
} from "@opentui/react";
|
|
8300
8315
|
import { decodePasteBytes as decodePasteBytes2 } from "@opentui/core";
|
|
@@ -13395,6 +13410,14 @@ function useToast(config = {}) {
|
|
|
13395
13410
|
// packages/cli/src/tui/chat/logo.ts
|
|
13396
13411
|
import { TextAttributes as TextAttributes6 } from "@opentui/core";
|
|
13397
13412
|
var TERMINAL_BLOCK_LOGO = [
|
|
13413
|
+
" ###### ###### ####### ###### ## ## ####### ###### ######## ## ##",
|
|
13414
|
+
"## //## ## ## ## ## ## ## ## ## ## ## ## ",
|
|
13415
|
+
"## // ## ###### ###### ## ## ## ####### ## ## #### ",
|
|
13416
|
+
"##// ## ## ## ## ## ## ## ## ## ## ## ",
|
|
13417
|
+
" ###### ###### ####### ###### ###### ## ## ###### ## ## "
|
|
13418
|
+
];
|
|
13419
|
+
var TERMINAL_BLOCK_LOGO_FULL_WIDTH = 88;
|
|
13420
|
+
var TERMINAL_BLOCK_LOGO_COMPACT = [
|
|
13398
13421
|
" ###### ####### ####### ######",
|
|
13399
13422
|
"## //## ## ## ## ",
|
|
13400
13423
|
"## // ## ####### ##### ## ",
|
|
@@ -15372,7 +15395,7 @@ function TaskCard({
|
|
|
15372
15395
|
] }) });
|
|
15373
15396
|
}
|
|
15374
15397
|
const inner = frame.innerWidth;
|
|
15375
|
-
const bodyWidth =
|
|
15398
|
+
const bodyWidth = inner;
|
|
15376
15399
|
const sections = taskMarkdownSections(entry);
|
|
15377
15400
|
const { rows: subRows, hidden: hiddenAgents } = subReportRows(
|
|
15378
15401
|
entry.subReports,
|
|
@@ -15381,10 +15404,6 @@ function TaskCard({
|
|
|
15381
15404
|
);
|
|
15382
15405
|
const todos = entry.taskTodos ?? [];
|
|
15383
15406
|
const expandHint = toggleable ? ` \xB7 ${expandLegend(true)}` : "";
|
|
15384
|
-
const scrollbarOptions = {
|
|
15385
|
-
trackOptions: { backgroundColor: PANEL, foregroundColor: MUTED },
|
|
15386
|
-
arrowOptions: { foregroundColor: MUTED, backgroundColor: PANEL }
|
|
15387
|
-
};
|
|
15388
15407
|
const allBodyLines = taskBodyLines(sections);
|
|
15389
15408
|
const retainedBody = allBodyLines.slice(0, EXPANDED_OUTPUT_LINES);
|
|
15390
15409
|
const { visible: visibleBody, hidden: hiddenBody } = capTaskBodyLines(
|
|
@@ -15583,12 +15602,8 @@ function CodeCard({
|
|
|
15583
15602
|
] }) });
|
|
15584
15603
|
}
|
|
15585
15604
|
const inner = frame.innerWidth;
|
|
15586
|
-
const bodyWidth =
|
|
15605
|
+
const bodyWidth = inner;
|
|
15587
15606
|
const expandHint = toggleable ? ` \xB7 ${expandLegend(true)}` : "";
|
|
15588
|
-
const scrollbarOptions = {
|
|
15589
|
-
trackOptions: { backgroundColor: PANEL, foregroundColor: MUTED },
|
|
15590
|
-
arrowOptions: { foregroundColor: MUTED, backgroundColor: PANEL }
|
|
15591
|
-
};
|
|
15592
15607
|
const codeLinesAll = (entry.codeSource ?? "").split("\n");
|
|
15593
15608
|
const codeRetained = codeLinesAll.slice(0, EXPANDED_OUTPUT_LINES);
|
|
15594
15609
|
const codeVisible = codeRetained.slice(0, expanded ? EXPANDED_OUTPUT_LINES : COLLAPSED_OUTPUT_LINES);
|
|
@@ -15717,7 +15732,7 @@ function ToolCard({
|
|
|
15717
15732
|
] }) });
|
|
15718
15733
|
}
|
|
15719
15734
|
const inner = frame.innerWidth;
|
|
15720
|
-
const bodyWidth =
|
|
15735
|
+
const bodyWidth = inner;
|
|
15721
15736
|
const retained = preview.lines.slice(0, EXPANDED_OUTPUT_LINES).map((line4) => sanitizeTuiText(line4.slice(0, 512)));
|
|
15722
15737
|
const outputWindow = capOutputLines(retained, expanded ? EXPANDED_OUTPUT_LINES : COLLAPSED_OUTPUT_LINES);
|
|
15723
15738
|
const visible = outputWindow.visible;
|
|
@@ -17241,68 +17256,50 @@ function OperatorQuestionCard({
|
|
|
17241
17256
|
);
|
|
17242
17257
|
}
|
|
17243
17258
|
|
|
17259
|
+
// packages/cli/src/tui/chat/Masthead.tsx
|
|
17260
|
+
import React14 from "react";
|
|
17261
|
+
import { CliRenderEvents, resolveImageRenderProtocol } from "@opentui/core";
|
|
17262
|
+
import { useRenderer as useRenderer4 } from "@opentui/react";
|
|
17263
|
+
|
|
17244
17264
|
// packages/cli/src/tui/chat/mascot.ts
|
|
17245
|
-
|
|
17246
|
-
|
|
17247
|
-
|
|
17248
|
-
|
|
17249
|
-
|
|
17250
|
-
"OOXX OO",
|
|
17251
|
-
|
|
17252
|
-
|
|
17253
|
-
var
|
|
17254
|
-
function
|
|
17255
|
-
|
|
17256
|
-
|
|
17257
|
-
|
|
17258
|
-
|
|
17259
|
-
|
|
17260
|
-
|
|
17261
|
-
|
|
17262
|
-
|
|
17263
|
-
|
|
17264
|
-
|
|
17265
|
-
|
|
17266
|
-
|
|
17267
|
-
|
|
17268
|
-
|
|
17269
|
-
|
|
17270
|
-
|
|
17271
|
-
|
|
17272
|
-
|
|
17273
|
-
|
|
17274
|
-
}
|
|
17275
|
-
}
|
|
17276
|
-
function rowRuns(row) {
|
|
17277
|
-
const runs = [];
|
|
17278
|
-
for (const ch of row) {
|
|
17279
|
-
const tone = cellTone(ch);
|
|
17280
|
-
const last = runs[runs.length - 1];
|
|
17281
|
-
if (last && last.tone === tone) last.length += 1;
|
|
17282
|
-
else runs.push({ glyph: cellGlyph(tone), length: 1, tone });
|
|
17283
|
-
}
|
|
17284
|
-
return runs;
|
|
17285
|
-
}
|
|
17286
|
-
function mascotRows() {
|
|
17287
|
-
return [...HEAD_ROWS, BAND_ROW].map(rowRuns);
|
|
17288
|
-
}
|
|
17289
|
-
function mascotToneStyle(tone, theme) {
|
|
17290
|
-
switch (tone) {
|
|
17291
|
-
case "slash":
|
|
17292
|
-
return { fg: theme.BRAND };
|
|
17293
|
-
case "band":
|
|
17294
|
-
return { fg: theme.PRIMARY };
|
|
17295
|
-
case "ring":
|
|
17296
|
-
case "empty":
|
|
17297
|
-
default:
|
|
17298
|
-
return { fg: theme.TEXT };
|
|
17265
|
+
import { NativeImage, parseColor } from "@opentui/core";
|
|
17266
|
+
|
|
17267
|
+
// packages/cli/src/tui/chat/zero-art.ts
|
|
17268
|
+
var ZERO_WIDTH = 24;
|
|
17269
|
+
var ZERO_HEIGHT = 9;
|
|
17270
|
+
var ZERO_PNG_BASE64 = "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";
|
|
17271
|
+
|
|
17272
|
+
// packages/cli/src/tui/chat/mascot.ts
|
|
17273
|
+
var imageBytes = Buffer.from(ZERO_PNG_BASE64, "base64");
|
|
17274
|
+
function createZeroImage(canvas) {
|
|
17275
|
+
const source = NativeImage.decode(imageBytes);
|
|
17276
|
+
try {
|
|
17277
|
+
const raw = source.raw();
|
|
17278
|
+
const [red, green, blue] = parseColor(canvas).toInts();
|
|
17279
|
+
const pixels = new Uint8Array(raw.width * raw.height * 4);
|
|
17280
|
+
for (let y = 0; y < raw.height; y++) {
|
|
17281
|
+
for (let x = 0; x < raw.width; x++) {
|
|
17282
|
+
const offset = y * raw.stride + x * 4;
|
|
17283
|
+
const target = (y * raw.width + x) * 4;
|
|
17284
|
+
const alpha = raw.data[offset + 3] / 255;
|
|
17285
|
+
pixels[target] = Math.round(raw.data[offset] * alpha + red * (1 - alpha));
|
|
17286
|
+
pixels[target + 1] = Math.round(raw.data[offset + 1] * alpha + green * (1 - alpha));
|
|
17287
|
+
pixels[target + 2] = Math.round(raw.data[offset + 2] * alpha + blue * (1 - alpha));
|
|
17288
|
+
pixels[target + 3] = 255;
|
|
17289
|
+
}
|
|
17290
|
+
}
|
|
17291
|
+
return NativeImage.fromRgba(pixels, raw.width, raw.height);
|
|
17292
|
+
} finally {
|
|
17293
|
+
source.dispose();
|
|
17299
17294
|
}
|
|
17300
17295
|
}
|
|
17301
17296
|
|
|
17302
17297
|
// packages/cli/src/tui/chat/Masthead.tsx
|
|
17303
17298
|
import { Fragment as Fragment8, jsx as jsx36, jsxs as jsxs29 } from "@opentui/react/jsx-runtime";
|
|
17299
|
+
var COMPACT_LOGO_FRAME = finalLogoFrame(TERMINAL_BLOCK_LOGO_COMPACT);
|
|
17304
17300
|
function Masthead({
|
|
17305
17301
|
showTerminalMark,
|
|
17302
|
+
showMascot = true,
|
|
17306
17303
|
showTagline,
|
|
17307
17304
|
contentWidth,
|
|
17308
17305
|
logoFrameGrid,
|
|
@@ -17310,27 +17307,47 @@ function Masthead({
|
|
|
17310
17307
|
theme
|
|
17311
17308
|
}) {
|
|
17312
17309
|
const { MUTED, TEXT } = theme;
|
|
17310
|
+
const renderer = useRenderer4();
|
|
17311
|
+
const subscribe = React14.useCallback((changed) => {
|
|
17312
|
+
renderer.on(CliRenderEvents.CAPABILITIES, changed);
|
|
17313
|
+
renderer.on(CliRenderEvents.RESIZE, changed);
|
|
17314
|
+
renderer.on(CliRenderEvents.FRAME, changed);
|
|
17315
|
+
return () => {
|
|
17316
|
+
renderer.off(CliRenderEvents.CAPABILITIES, changed);
|
|
17317
|
+
renderer.off(CliRenderEvents.FRAME, changed);
|
|
17318
|
+
renderer.off(CliRenderEvents.RESIZE, changed);
|
|
17319
|
+
};
|
|
17320
|
+
}, [renderer]);
|
|
17321
|
+
const getProtocol = React14.useCallback(() => {
|
|
17322
|
+
const resolution = renderer.resolution;
|
|
17323
|
+
const hasResolution = renderer.terminalWidth > 0 && renderer.terminalHeight > 0 && Boolean(resolution && resolution.width > 0 && resolution.height > 0);
|
|
17324
|
+
return resolveImageRenderProtocol("auto", renderer.capabilities, hasResolution);
|
|
17325
|
+
}, [renderer]);
|
|
17326
|
+
const protocol = React14.useSyncExternalStore(subscribe, getProtocol);
|
|
17327
|
+
const [portrait, setPortrait] = React14.useState();
|
|
17328
|
+
const showImage = protocol !== "blocks" && showTerminalMark && showMascot;
|
|
17329
|
+
React14.useEffect(() => {
|
|
17330
|
+
if (!showImage) {
|
|
17331
|
+
setPortrait(void 0);
|
|
17332
|
+
return;
|
|
17333
|
+
}
|
|
17334
|
+
const image = createZeroImage(theme.CANVAS);
|
|
17335
|
+
setPortrait({ canvas: theme.CANVAS, image });
|
|
17336
|
+
return () => image.dispose();
|
|
17337
|
+
}, [showImage, theme.CANVAS]);
|
|
17338
|
+
const portraitImage = showImage && portrait?.canvas === theme.CANVAS ? portrait.image : void 0;
|
|
17339
|
+
const fullWord = contentWidth >= TERMINAL_BLOCK_LOGO_FULL_WIDTH;
|
|
17340
|
+
const blockFrame = fullWord ? logoFrameGrid : COMPACT_LOGO_FRAME;
|
|
17341
|
+
const blockWidth = fullWord ? TERMINAL_BLOCK_LOGO_FULL_WIDTH : TERMINAL_BLOCK_LOGO_WIDTH;
|
|
17313
17342
|
const facts = [
|
|
17314
17343
|
{ label: "Target", value: String(engagement?.target ?? "").trim() },
|
|
17315
17344
|
{ label: "Scope", value: String(engagement?.scope ?? "").trim() },
|
|
17316
17345
|
{ label: "Session", value: String(engagement?.sessionState ?? "").trim() }
|
|
17317
17346
|
].filter((fact) => fact.value.length > 0);
|
|
17318
|
-
const mascotArt = mascotRows();
|
|
17319
|
-
const mascotHead = mascotArt.slice(0, mascotArt.length - 1);
|
|
17320
|
-
const mascotBand = mascotArt[mascotArt.length - 1];
|
|
17321
17347
|
return /* @__PURE__ */ jsxs29(Fragment8, { children: [
|
|
17322
|
-
showTerminalMark ? /* @__PURE__ */ jsx36("text", { fg: MUTED, marginBottom: 1, children: fitTuiText("Swiss Applied AI Cybersecurity Research Lab", contentWidth, { mode: "middle" }) }) : null,
|
|
17323
|
-
|
|
17324
|
-
|
|
17325
|
-
{
|
|
17326
|
-
width: run.length,
|
|
17327
|
-
flexShrink: 0,
|
|
17328
|
-
fg: mascotToneStyle(run.tone, theme).fg,
|
|
17329
|
-
children: run.glyph.repeat(run.length)
|
|
17330
|
-
},
|
|
17331
|
-
`mascot-${rowIndex}-${runIndex}`
|
|
17332
|
-
)) }, `mascot-${rowIndex}`)) }) : null,
|
|
17333
|
-
showTerminalMark ? /* @__PURE__ */ jsx36("box", { flexDirection: "column", width: TERMINAL_BLOCK_LOGO_WIDTH, minWidth: TERMINAL_BLOCK_LOGO_WIDTH, flexShrink: 0, children: logoFrameGrid.map((row, index) => /* @__PURE__ */ jsx36("box", { flexDirection: "row", width: TERMINAL_BLOCK_LOGO_WIDTH, flexShrink: 0, minWidth: 0, children: logoRowRuns(row).map((run, runIndex) => {
|
|
17348
|
+
showTerminalMark ? /* @__PURE__ */ jsx36("text", { fg: MUTED, marginBottom: 1, children: fitTuiText("Swiss Applied AI & Cybersecurity Research Lab", contentWidth, { mode: "middle" }) }) : null,
|
|
17349
|
+
portraitImage ? /* @__PURE__ */ jsx36("box", { flexDirection: "column", width: ZERO_WIDTH, height: ZERO_HEIGHT, flexShrink: 0, marginBottom: 1, backgroundColor: theme.CANVAS, children: /* @__PURE__ */ jsx36("image", { source: portraitImage, protocol, fit: "fit", width: ZERO_WIDTH, height: ZERO_HEIGHT, flexShrink: 0 }) }) : null,
|
|
17350
|
+
showTerminalMark ? /* @__PURE__ */ jsx36("box", { flexDirection: "column", width: blockWidth, minWidth: blockWidth, flexShrink: 0, children: blockFrame.map((row, index) => /* @__PURE__ */ jsx36("box", { flexDirection: "row", width: blockWidth, flexShrink: 0, minWidth: 0, children: logoRowRuns(row).map((run, runIndex) => {
|
|
17334
17351
|
const style = logoRunStyle(run.tone, theme);
|
|
17335
17352
|
const glyph = run.visible ? "\u2588" : " ";
|
|
17336
17353
|
return /* @__PURE__ */ jsx36(
|
|
@@ -17344,8 +17361,8 @@ function Masthead({
|
|
|
17344
17361
|
},
|
|
17345
17362
|
`logo-${index}-${runIndex}`
|
|
17346
17363
|
);
|
|
17347
|
-
}) }, `logo-${index}`)) }) : /* @__PURE__ */ jsx36("box", { flexDirection: "row", width: contentWidth, flexShrink: 0, minWidth: 0, children: /* @__PURE__ */ jsx36("text", { width: contentWidth, height: 1, wrapMode: "none", truncate: true, fg: TEXT, children: fitTuiText("
|
|
17348
|
-
showTerminalMark ? /* @__PURE__ */ jsx36("box", { flexDirection: "row", width:
|
|
17364
|
+
}) }, `logo-${index}`)) }) : /* @__PURE__ */ jsx36("box", { flexDirection: "row", width: contentWidth, flexShrink: 0, minWidth: 0, children: /* @__PURE__ */ jsx36("text", { width: contentWidth, height: 1, wrapMode: "none", truncate: true, fg: TEXT, children: fitTuiText("0SECURITY \xB7 OPERATOR CONSOLE", contentWidth, { mode: "middle" }) }) }),
|
|
17365
|
+
showTerminalMark ? /* @__PURE__ */ jsx36("box", { flexDirection: "row", width: 9, height: 1, flexShrink: 0, marginTop: 1, children: /* @__PURE__ */ jsx36("text", { width: 9, flexShrink: 0, fg: "#FD802E", children: "\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501" }) }) : null,
|
|
17349
17366
|
showTagline ? /* @__PURE__ */ jsx36("text", { fg: TEXT, marginTop: 1, children: fitTuiText("Make software secure itself.", contentWidth, { mode: "middle" }) }) : null,
|
|
17350
17367
|
facts.length > 0 ? /* @__PURE__ */ jsx36("box", { flexDirection: "column", width: contentWidth, flexShrink: 0, minWidth: 0, marginTop: 1, alignItems: "center", children: facts.map((fact) => /* @__PURE__ */ jsx36("text", { width: contentWidth, height: 1, wrapMode: "none", truncate: true, fg: MUTED, children: fitTuiText(`${fact.label}: ${fact.value}`, contentWidth, { mode: "middle" }) }, fact.label)) }) : null
|
|
17351
17368
|
] });
|
|
@@ -18273,7 +18290,7 @@ function ChatScreen({
|
|
|
18273
18290
|
BORDER
|
|
18274
18291
|
} = theme;
|
|
18275
18292
|
const headerFg = readableOnPrimary(theme);
|
|
18276
|
-
const renderer =
|
|
18293
|
+
const renderer = useRenderer5();
|
|
18277
18294
|
const { showToast: showToast2, frame: toastFrame } = useToast({ reduceMotion: settings.reduceMotion });
|
|
18278
18295
|
const copySelection = useCallback5((text, opts) => {
|
|
18279
18296
|
const bytes = Buffer.byteLength(text, "utf8");
|
|
@@ -20416,8 +20433,8 @@ ${preview.warnings.join("\n")}` : "") + "\n\n/feedback send to submit \xB7 /feed
|
|
|
20416
20433
|
input: prev.input + outcome.usage.inputTokens,
|
|
20417
20434
|
output: prev.output + outcome.usage.outputTokens
|
|
20418
20435
|
}));
|
|
20419
|
-
if (
|
|
20420
|
-
setLastContext(outcome.
|
|
20436
|
+
if (outcome.contextInputTokens !== void 0 && outcome.contextInputTokens > 0) {
|
|
20437
|
+
setLastContext(outcome.contextInputTokens);
|
|
20421
20438
|
}
|
|
20422
20439
|
turnUsage = { inputTokens: outcome.usage.inputTokens, outputTokens: outcome.usage.outputTokens };
|
|
20423
20440
|
const producedText = Boolean(assistantText || outcome.assistantText);
|
|
@@ -21425,10 +21442,12 @@ Operator request: ${expandedInput}`);
|
|
|
21425
21442
|
outerWidth: heroComposerWidth,
|
|
21426
21443
|
padY: 1
|
|
21427
21444
|
});
|
|
21445
|
+
const [heroMastheadRows, setHeroMastheadRows] = useState18(0);
|
|
21446
|
+
const [heroComposerRows, setHeroComposerRows] = useState18(0);
|
|
21428
21447
|
const heroMenuMaxRows = commandMenuBoxHeight(commandMenuLimit, commandRowsPerCommand);
|
|
21429
21448
|
const heroBottomSpacer = Math.max(
|
|
21430
21449
|
1,
|
|
21431
|
-
Math.min(Math.floor((height -
|
|
21450
|
+
Math.min(Math.floor((height - 4 - heroMastheadRows - heroComposerRows - 2) / 2), height - 12 - heroMenuMaxRows)
|
|
21432
21451
|
);
|
|
21433
21452
|
const buildCommandMenu = (ml, boxWidth) => /* @__PURE__ */ jsx39(
|
|
21434
21453
|
CommandMenu,
|
|
@@ -21965,13 +21984,27 @@ Operator request: ${expandedInput}`);
|
|
|
21965
21984
|
/* @__PURE__ */ jsxs32("box", { flexDirection: "column", flexGrow: 1, minHeight: 0, width: heroContentWidth, minWidth: 0, alignItems: "center", children: [
|
|
21966
21985
|
/* @__PURE__ */ jsxs32("box", { flexDirection: "column", flexGrow: 1, minHeight: 0, width: "100%", minWidth: 0, justifyContent: "flex-end", alignItems: "center", children: [
|
|
21967
21986
|
showMasthead ? /* @__PURE__ */ jsx39(
|
|
21968
|
-
|
|
21987
|
+
"box",
|
|
21969
21988
|
{
|
|
21970
|
-
|
|
21971
|
-
|
|
21972
|
-
|
|
21973
|
-
|
|
21974
|
-
|
|
21989
|
+
flexDirection: "column",
|
|
21990
|
+
width: "100%",
|
|
21991
|
+
minWidth: 0,
|
|
21992
|
+
flexShrink: 0,
|
|
21993
|
+
alignItems: "center",
|
|
21994
|
+
onSizeChange: function() {
|
|
21995
|
+
setHeroMastheadRows(this.height);
|
|
21996
|
+
},
|
|
21997
|
+
children: /* @__PURE__ */ jsx39(
|
|
21998
|
+
Masthead,
|
|
21999
|
+
{
|
|
22000
|
+
showTerminalMark: showTerminalMark && heroContentWidth >= TERMINAL_BLOCK_LOGO_WIDTH,
|
|
22001
|
+
showMascot: ledgerRows >= LEDGER_MARK_ROWS + ZERO_HEIGHT + 1,
|
|
22002
|
+
showTagline: showEmptyStateTagline,
|
|
22003
|
+
contentWidth: heroContentWidth,
|
|
22004
|
+
logoFrameGrid,
|
|
22005
|
+
theme
|
|
22006
|
+
}
|
|
22007
|
+
)
|
|
21975
22008
|
}
|
|
21976
22009
|
) : null,
|
|
21977
22010
|
workingIndicator,
|
|
@@ -21981,7 +22014,19 @@ Operator request: ${expandedInput}`);
|
|
|
21981
22014
|
] }) : null,
|
|
21982
22015
|
heroOverlaysNode
|
|
21983
22016
|
] }),
|
|
21984
|
-
/* @__PURE__ */ jsx39(
|
|
22017
|
+
/* @__PURE__ */ jsx39(
|
|
22018
|
+
"box",
|
|
22019
|
+
{
|
|
22020
|
+
flexDirection: "column",
|
|
22021
|
+
width: heroComposerWidth,
|
|
22022
|
+
minWidth: 0,
|
|
22023
|
+
flexShrink: 0,
|
|
22024
|
+
onSizeChange: function() {
|
|
22025
|
+
setHeroComposerRows(this.height);
|
|
22026
|
+
},
|
|
22027
|
+
children: heroComposerNode
|
|
22028
|
+
}
|
|
22029
|
+
),
|
|
21985
22030
|
/* @__PURE__ */ jsx39("box", { flexShrink: 0, minWidth: 0, marginTop: 1, children: keyHintsLength(heroHintPairs, " \xB7 ") <= heroContentWidth ? /* @__PURE__ */ jsx39(KeyHints, { pairs: heroHintPairs, theme }) : /* @__PURE__ */ jsx39("text", { fg: MUTED, children: fitLegend(heroContentWidth, "/connect \xB7 /resume \xB7 [\u2303P]") }) }),
|
|
21986
22031
|
/* @__PURE__ */ jsx39("box", { height: heroBottomSpacer, flexShrink: 0, minWidth: 0 })
|
|
21987
22032
|
] }),
|
|
@@ -21998,7 +22043,7 @@ Operator request: ${expandedInput}`);
|
|
|
21998
22043
|
] }),
|
|
21999
22044
|
/* @__PURE__ */ jsxs32("box", { flexDirection: "row", width: controlsWidth, height: 1, flexShrink: 0, minWidth: 0, overflow: "hidden", children: [
|
|
22000
22045
|
loadingLabel ? /* @__PURE__ */ jsx39("text", { fg: animationKind === "awaiting-operator" ? WARNING : ACCENT, children: `${loadingLabel} \xB7 ` }) : null,
|
|
22001
|
-
statusPills.length > 0 ? /* @__PURE__ */ jsx39("box", { flexDirection: "row", flexShrink: 0, minWidth: 0, children: statusPills.map((segment, index) => /* @__PURE__ */ jsxs32(
|
|
22046
|
+
statusPills.length > 0 ? /* @__PURE__ */ jsx39("box", { flexDirection: "row", flexShrink: 0, minWidth: 0, children: statusPills.map((segment, index) => /* @__PURE__ */ jsxs32(React15.Fragment, { children: [
|
|
22002
22047
|
index > 0 ? /* @__PURE__ */ jsx39("text", { fg: MUTED, children: " \xB7 " }) : null,
|
|
22003
22048
|
/* @__PURE__ */ jsx39("text", { fg: statusRoleColor(segment.colorRole, theme, mode), children: pillText(segment) })
|
|
22004
22049
|
] }, segment.kind)) }) : /* @__PURE__ */ jsx39("text", { fg: MUTED, children: fitTuiText(statusBarText, statusContentWidth) })
|
|
@@ -22335,6 +22380,7 @@ import {
|
|
|
22335
22380
|
useCallback as useCallback6,
|
|
22336
22381
|
useEffect as useEffect18,
|
|
22337
22382
|
useMemo as useMemo14,
|
|
22383
|
+
useRef as useRef15,
|
|
22338
22384
|
useState as useState20
|
|
22339
22385
|
} from "react";
|
|
22340
22386
|
import { useKeyboard as useKeyboard14 } from "@opentui/react";
|
|
@@ -23120,11 +23166,7 @@ function finalizeOnboarding() {
|
|
|
23120
23166
|
}
|
|
23121
23167
|
function recordAnalyticsConsent(level) {
|
|
23122
23168
|
updateSetting("analyticsLevel", level);
|
|
23123
|
-
|
|
23124
|
-
updateSetting("diagnosticReportingPrompted", true);
|
|
23125
|
-
}
|
|
23126
|
-
function skipAnalyticsConsent() {
|
|
23127
|
-
updateSetting("diagnosticReportingPrompted", true);
|
|
23169
|
+
if (level === "off") updateSetting("diagnosticReporting", "off");
|
|
23128
23170
|
}
|
|
23129
23171
|
function paragraph(text, tone, width) {
|
|
23130
23172
|
return wrapCells3(text, width).map((line4) => ({ text: line4, tone }));
|
|
@@ -23172,39 +23214,45 @@ var STEP_HINT = {
|
|
|
23172
23214
|
connect: "connect or [esc] to skip \xB7 [\u2303C] cancel",
|
|
23173
23215
|
models: "select a model or [esc] to skip \xB7 [\u2303C] cancel",
|
|
23174
23216
|
preferences: "[\u2190\u2192] change \xB7 [\u23CE] confirm \xB7 [s] skip \xB7 [esc] cancel",
|
|
23175
|
-
analytics: "[\u2191\u2193] choose \xB7 [\u23CE] confirm \xB7 [s] skip \xB7 [esc] cancel",
|
|
23217
|
+
analytics: "[\u2191\u2193] choose \xB7 [PgUp/PgDn] read \xB7 [\u23CE] confirm \xB7 [s] skip \xB7 [esc] cancel",
|
|
23176
23218
|
done: "[\u23CE] start working \xB7 [esc] review later"
|
|
23177
23219
|
};
|
|
23178
23220
|
var ANALYTICS_OPTIONS = [
|
|
23179
23221
|
{
|
|
23180
23222
|
level: "usage",
|
|
23181
|
-
label: "
|
|
23182
|
-
detail: "
|
|
23223
|
+
label: "Usage metrics only",
|
|
23224
|
+
detail: "Feature counters and error categories. No tool content, code, scope or findings."
|
|
23183
23225
|
},
|
|
23184
23226
|
{
|
|
23185
23227
|
level: "commands",
|
|
23186
|
-
label: "
|
|
23187
|
-
detail: "Also
|
|
23228
|
+
label: "Tool content and code",
|
|
23229
|
+
detail: "Also tool arguments/results and submitted code for training, with recognized credentials scrubbed."
|
|
23188
23230
|
},
|
|
23189
23231
|
{
|
|
23190
23232
|
level: "full",
|
|
23191
|
-
label: "
|
|
23192
|
-
detail: "
|
|
23233
|
+
label: "Full training data (new-install default)",
|
|
23234
|
+
detail: "Usage, tool arguments/results, submitted code, scope and findings; recognized credentials scrubbed."
|
|
23193
23235
|
},
|
|
23194
23236
|
{
|
|
23195
23237
|
level: "off",
|
|
23196
|
-
label: "
|
|
23197
|
-
detail: "
|
|
23238
|
+
label: "Off",
|
|
23239
|
+
detail: "No analytics or training uploads. Also turns automatic problem reports off."
|
|
23198
23240
|
}
|
|
23199
23241
|
];
|
|
23200
23242
|
function analyticsLines(width) {
|
|
23201
23243
|
return [
|
|
23202
|
-
...paragraph("
|
|
23244
|
+
...paragraph("Analytics and training data", "title", width),
|
|
23203
23245
|
BLANK,
|
|
23204
23246
|
...paragraph(
|
|
23205
|
-
"
|
|
23247
|
+
"Full sharing is on by default for new installs. Usage metrics are separate from training data: tool arguments/results, submitted code, scope and findings for model improvement and security research. Recognized credentials are scrubbed; emails, URLs, identifiers and other content are retained. This is not anonymous. Sending requires Cloud sign-in.",
|
|
23206
23248
|
"text",
|
|
23207
23249
|
width
|
|
23250
|
+
),
|
|
23251
|
+
BLANK,
|
|
23252
|
+
...paragraph(
|
|
23253
|
+
`Active in this process: ${analyticsPipeline.getLevel()}. Saved choices and environment restrictions are preserved. 0SEC_ANALYTICS_LEVEL, 0SEC_OFFLINE, 0SEC_NO_TELEMETRY and DO_NOT_TRACK can restrict collection. Skip keeps the current setting; change it anytime in /settings.`,
|
|
23254
|
+
"muted",
|
|
23255
|
+
width
|
|
23208
23256
|
)
|
|
23209
23257
|
];
|
|
23210
23258
|
}
|
|
@@ -23315,7 +23363,15 @@ function OnboardingScreen({
|
|
|
23315
23363
|
if (n === 0) return;
|
|
23316
23364
|
setChoiceIndex((i) => ((i + delta) % n + n) % n);
|
|
23317
23365
|
}, [prefChoices.length]);
|
|
23318
|
-
const [analyticsIndex, setAnalyticsIndex] = useState20(
|
|
23366
|
+
const [analyticsIndex, setAnalyticsIndex] = useState20(() => {
|
|
23367
|
+
const idx = ANALYTICS_OPTIONS.findIndex((o) => o.level === settings.analyticsLevel);
|
|
23368
|
+
return idx >= 0 ? idx : 2;
|
|
23369
|
+
});
|
|
23370
|
+
useEffect18(() => {
|
|
23371
|
+
if (currentStep === "analytics") {
|
|
23372
|
+
setAnalyticsIndex(ANALYTICS_OPTIONS.findIndex((option) => option.level === settings.analyticsLevel));
|
|
23373
|
+
}
|
|
23374
|
+
}, [currentStep, settings.analyticsLevel]);
|
|
23319
23375
|
const cycleAnalytics = useCallback6((delta) => {
|
|
23320
23376
|
const n = ANALYTICS_OPTIONS.length;
|
|
23321
23377
|
setAnalyticsIndex((i) => ((i + delta) % n + n) % n);
|
|
@@ -23326,7 +23382,6 @@ function OnboardingScreen({
|
|
|
23326
23382
|
advanceTo("done");
|
|
23327
23383
|
}, [analyticsIndex, advanceTo]);
|
|
23328
23384
|
const skipAnalytics = useCallback6(() => {
|
|
23329
|
-
skipAnalyticsConsent();
|
|
23330
23385
|
advanceTo("done");
|
|
23331
23386
|
}, [advanceTo]);
|
|
23332
23387
|
useKeyboard14((key) => {
|
|
@@ -23389,14 +23444,17 @@ function OnboardingScreen({
|
|
|
23389
23444
|
] });
|
|
23390
23445
|
let body;
|
|
23391
23446
|
if (currentStep === "analytics") {
|
|
23392
|
-
body =
|
|
23393
|
-
|
|
23394
|
-
|
|
23395
|
-
|
|
23396
|
-
|
|
23397
|
-
|
|
23398
|
-
|
|
23399
|
-
|
|
23447
|
+
body = /* @__PURE__ */ jsx42(
|
|
23448
|
+
AnalyticsCard,
|
|
23449
|
+
{
|
|
23450
|
+
lines: analyticsLines(cardTextWidth),
|
|
23451
|
+
choiceIndex: analyticsIndex,
|
|
23452
|
+
theme,
|
|
23453
|
+
contentWidth: cardWidth,
|
|
23454
|
+
textWidth: cardTextWidth,
|
|
23455
|
+
bodyRows
|
|
23456
|
+
}
|
|
23457
|
+
);
|
|
23400
23458
|
} else if (currentStep === "preferences" && prefDef) {
|
|
23401
23459
|
body = renderPreferences({
|
|
23402
23460
|
def: prefDef,
|
|
@@ -23502,7 +23560,7 @@ function renderPreferences({
|
|
|
23502
23560
|
) : null
|
|
23503
23561
|
] });
|
|
23504
23562
|
}
|
|
23505
|
-
function
|
|
23563
|
+
function AnalyticsCard({
|
|
23506
23564
|
lines,
|
|
23507
23565
|
choiceIndex,
|
|
23508
23566
|
theme,
|
|
@@ -23511,6 +23569,8 @@ function renderAnalytics({
|
|
|
23511
23569
|
bodyRows
|
|
23512
23570
|
}) {
|
|
23513
23571
|
const rows = [];
|
|
23572
|
+
const scroll = useRef15(null);
|
|
23573
|
+
let selectedRow = 0;
|
|
23514
23574
|
lines.forEach((line4, index) => {
|
|
23515
23575
|
rows.push(
|
|
23516
23576
|
/* @__PURE__ */ jsx42(
|
|
@@ -23530,6 +23590,7 @@ function renderAnalytics({
|
|
|
23530
23590
|
const detailWidth = Math.max(1, textWidth - 2);
|
|
23531
23591
|
ANALYTICS_OPTIONS.forEach((option, index) => {
|
|
23532
23592
|
const active = index === choiceIndex;
|
|
23593
|
+
if (active) selectedRow = rows.length;
|
|
23533
23594
|
rows.push(
|
|
23534
23595
|
/* @__PURE__ */ jsx42(
|
|
23535
23596
|
Cells,
|
|
@@ -23550,6 +23611,29 @@ function renderAnalytics({
|
|
|
23550
23611
|
});
|
|
23551
23612
|
}
|
|
23552
23613
|
});
|
|
23614
|
+
useEffect18(() => {
|
|
23615
|
+
const viewport = scroll.current;
|
|
23616
|
+
if (!viewport) return;
|
|
23617
|
+
viewport.scrollTo(Math.min(selectedRow, Math.max(0, rows.length - bodyRows)));
|
|
23618
|
+
}, [choiceIndex, selectedRow, rows.length, bodyRows]);
|
|
23619
|
+
useKeyboard14((key) => {
|
|
23620
|
+
if (key.name === "pageup") scroll.current?.scrollBy(-1, "viewport");
|
|
23621
|
+
if (key.name === "pagedown") scroll.current?.scrollBy(1, "viewport");
|
|
23622
|
+
});
|
|
23623
|
+
if (rows.length > bodyRows) {
|
|
23624
|
+
return /* @__PURE__ */ jsx42(
|
|
23625
|
+
"scrollbox",
|
|
23626
|
+
{
|
|
23627
|
+
ref: scroll,
|
|
23628
|
+
width: contentWidth,
|
|
23629
|
+
height: bodyRows,
|
|
23630
|
+
flexShrink: 0,
|
|
23631
|
+
scrollX: false,
|
|
23632
|
+
verticalScrollbarOptions: sleekScrollbar(theme),
|
|
23633
|
+
children: /* @__PURE__ */ jsx42("box", { flexDirection: "column", width: textWidth, flexShrink: 0, children: rows })
|
|
23634
|
+
}
|
|
23635
|
+
);
|
|
23636
|
+
}
|
|
23553
23637
|
return /* @__PURE__ */ jsx42(
|
|
23554
23638
|
"box",
|
|
23555
23639
|
{
|
|
@@ -23566,7 +23650,7 @@ function renderAnalytics({
|
|
|
23566
23650
|
}
|
|
23567
23651
|
|
|
23568
23652
|
// packages/cli/src/tui/herd-screen.tsx
|
|
23569
|
-
import
|
|
23653
|
+
import React18, { useEffect as useEffect19, useMemo as useMemo15, useRef as useRef16, useState as useState21 } from "react";
|
|
23570
23654
|
import { useKeyboard as useKeyboard15, usePaste as usePaste3 } from "@opentui/react";
|
|
23571
23655
|
import { decodePasteBytes as decodePasteBytes3, TextAttributes as TextAttributes18 } from "@opentui/core";
|
|
23572
23656
|
import { Fragment as Fragment12, jsx as jsx43, jsxs as jsxs36 } from "@opentui/react/jsx-runtime";
|
|
@@ -23670,15 +23754,15 @@ function HerdScreen({
|
|
|
23670
23754
|
const scoped = parentScanId !== void 0;
|
|
23671
23755
|
const mailboxHome = messagingHomeDir ?? home;
|
|
23672
23756
|
const owner = useMemo15(() => ({}), [parentScanId, cwd, mailboxHome]);
|
|
23673
|
-
const ownerRef =
|
|
23757
|
+
const ownerRef = useRef16(owner);
|
|
23674
23758
|
ownerRef.current = owner;
|
|
23675
|
-
const readAgentsRef =
|
|
23759
|
+
const readAgentsRef = useRef16(readAgents);
|
|
23676
23760
|
readAgentsRef.current = readAgents;
|
|
23677
|
-
const readRosterRef =
|
|
23761
|
+
const readRosterRef = useRef16(readRoster);
|
|
23678
23762
|
readRosterRef.current = readRoster;
|
|
23679
|
-
const peekRef =
|
|
23763
|
+
const peekRef = useRef16(peekInboxFor);
|
|
23680
23764
|
peekRef.current = peekInboxFor;
|
|
23681
|
-
const peekOne =
|
|
23765
|
+
const peekOne = React18.useCallback(
|
|
23682
23766
|
(peerId) => {
|
|
23683
23767
|
if (scoped && (!parentScanId || !mailboxHome)) return [];
|
|
23684
23768
|
if (peekRef.current) return peekRef.current(peerId);
|
|
@@ -23697,34 +23781,34 @@ function HerdScreen({
|
|
|
23697
23781
|
const [now, setNow] = useState21(() => clock());
|
|
23698
23782
|
const [peers, setPeers] = useState21(() => readRoster?.(clock()) ?? []);
|
|
23699
23783
|
const [selected, setSelected] = useState21(0);
|
|
23700
|
-
const selectedRef =
|
|
23701
|
-
const prefixArmedRef =
|
|
23784
|
+
const selectedRef = useRef16(0);
|
|
23785
|
+
const prefixArmedRef = useRef16(false);
|
|
23702
23786
|
const applySelected = (next) => {
|
|
23703
23787
|
selectedRef.current = next;
|
|
23704
23788
|
setSelected(next);
|
|
23705
23789
|
};
|
|
23706
23790
|
const [subagents, setSubagents] = useState21({});
|
|
23707
|
-
const subagentsRef =
|
|
23791
|
+
const subagentsRef = useRef16(subagents);
|
|
23708
23792
|
subagentsRef.current = subagents;
|
|
23709
23793
|
const [telemetry, setTelemetry] = useState21({});
|
|
23710
23794
|
const [focusId, setFocusId] = useState21(null);
|
|
23711
|
-
const focusIdRef =
|
|
23795
|
+
const focusIdRef = useRef16(null);
|
|
23712
23796
|
const applyFocusId = (next) => {
|
|
23713
23797
|
focusIdRef.current = next;
|
|
23714
23798
|
setFocusId(next);
|
|
23715
23799
|
};
|
|
23716
23800
|
const [scrollOffset, setScrollOffset] = useState21(0);
|
|
23717
23801
|
const [composing, setComposing] = useState21(false);
|
|
23718
|
-
const composingRef =
|
|
23802
|
+
const composingRef = useRef16(false);
|
|
23719
23803
|
const [draft, setDraft] = useState21("");
|
|
23720
|
-
const draftRef =
|
|
23804
|
+
const draftRef = useRef16("");
|
|
23721
23805
|
const [composeTarget, setComposeTarget] = useState21(null);
|
|
23722
|
-
const composeTargetRef =
|
|
23806
|
+
const composeTargetRef = useRef16(null);
|
|
23723
23807
|
const [notice, setNotice] = useState21(null);
|
|
23724
23808
|
const [searching, setSearching] = useState21(false);
|
|
23725
|
-
const searchingRef =
|
|
23809
|
+
const searchingRef = useRef16(false);
|
|
23726
23810
|
const [searchQuery, setSearchQuery] = useState21("");
|
|
23727
|
-
const searchQueryRef =
|
|
23811
|
+
const searchQueryRef = useRef16("");
|
|
23728
23812
|
const setSearchingBoth = (value) => {
|
|
23729
23813
|
searchingRef.current = value;
|
|
23730
23814
|
setSearching(value);
|
|
@@ -23760,7 +23844,7 @@ function HerdScreen({
|
|
|
23760
23844
|
setDraftBoth("");
|
|
23761
23845
|
setComposingBoth(true);
|
|
23762
23846
|
};
|
|
23763
|
-
const signatureRef =
|
|
23847
|
+
const signatureRef = useRef16("");
|
|
23764
23848
|
useEffect19(() => {
|
|
23765
23849
|
const poll = () => {
|
|
23766
23850
|
const at = clock();
|
|
@@ -24278,7 +24362,7 @@ function HerdScreen({
|
|
|
24278
24362
|
}
|
|
24279
24363
|
|
|
24280
24364
|
// packages/cli/src/tui/agents-comms-screen.tsx
|
|
24281
|
-
import { useCallback as useCallback8, useEffect as useEffect20, useMemo as useMemo16, useRef as
|
|
24365
|
+
import { useCallback as useCallback8, useEffect as useEffect20, useMemo as useMemo16, useRef as useRef17, useState as useState22 } from "react";
|
|
24282
24366
|
import { useKeyboard as useKeyboard16 } from "@opentui/react";
|
|
24283
24367
|
import { TextAttributes as TextAttributes19 } from "@opentui/core";
|
|
24284
24368
|
import { Fragment as Fragment13, jsx as jsx44, jsxs as jsxs37 } from "@opentui/react/jsx-runtime";
|
|
@@ -24350,7 +24434,7 @@ function AgentsCommsScreen({
|
|
|
24350
24434
|
const { width, height } = useSurfaceDimensions();
|
|
24351
24435
|
const inDialog = useDialogSurface();
|
|
24352
24436
|
const clock = nowFn ?? Date.now;
|
|
24353
|
-
const readAgentsRef =
|
|
24437
|
+
const readAgentsRef = useRef17(readAgents);
|
|
24354
24438
|
readAgentsRef.current = readAgents;
|
|
24355
24439
|
const [agents, setAgents] = useState22(() => readAgents?.() ?? {});
|
|
24356
24440
|
const [telemetry, setTelemetry] = useState22({});
|
|
@@ -24360,9 +24444,9 @@ function AgentsCommsScreen({
|
|
|
24360
24444
|
const settings = useSettings();
|
|
24361
24445
|
const rosterSort = settings.rosterSort;
|
|
24362
24446
|
const leaderKey = settings.leaderKey;
|
|
24363
|
-
const prefixArmedRef =
|
|
24447
|
+
const prefixArmedRef = useRef17(false);
|
|
24364
24448
|
const [, setTick] = useState22(0);
|
|
24365
|
-
const seqRef =
|
|
24449
|
+
const seqRef = useRef17(0);
|
|
24366
24450
|
useEffect20(() => {
|
|
24367
24451
|
const sub = subscribe ?? ((sink) => eventBus.subscribe(sink));
|
|
24368
24452
|
const unsub = sub({
|
|
@@ -24380,7 +24464,7 @@ function AgentsCommsScreen({
|
|
|
24380
24464
|
});
|
|
24381
24465
|
return unsub;
|
|
24382
24466
|
}, [subscribe]);
|
|
24383
|
-
const signatureRef =
|
|
24467
|
+
const signatureRef = useRef17("");
|
|
24384
24468
|
useEffect20(() => {
|
|
24385
24469
|
const poll = () => {
|
|
24386
24470
|
const next = readAgentsRef.current?.() ?? {};
|
|
@@ -24629,7 +24713,7 @@ function Region(props) {
|
|
|
24629
24713
|
}
|
|
24630
24714
|
|
|
24631
24715
|
// packages/cli/src/tui/settings-screen.tsx
|
|
24632
|
-
import { useMemo as useMemo17, useRef as
|
|
24716
|
+
import { useMemo as useMemo17, useRef as useRef18, useState as useState23 } from "react";
|
|
24633
24717
|
import { useKeyboard as useKeyboard17, usePaste as usePaste4, useTerminalDimensions as useTerminalDimensions5 } from "@opentui/react";
|
|
24634
24718
|
import { decodePasteBytes as decodePasteBytes4, TextAttributes as TextAttributes20 } from "@opentui/core";
|
|
24635
24719
|
import { Fragment as Fragment14, jsx as jsx45, jsxs as jsxs38 } from "@opentui/react/jsx-runtime";
|
|
@@ -24728,17 +24812,17 @@ function SettingsScreen({ frame, onBack, onExit }) {
|
|
|
24728
24812
|
const settings = useSettings();
|
|
24729
24813
|
const [filter, setFilter] = useState23("");
|
|
24730
24814
|
const [filtering, setFiltering] = useState23(false);
|
|
24731
|
-
const filterRef =
|
|
24732
|
-
const filteringRef =
|
|
24815
|
+
const filterRef = useRef18("");
|
|
24816
|
+
const filteringRef = useRef18(false);
|
|
24733
24817
|
const setFilterMode = (value) => {
|
|
24734
24818
|
filteringRef.current = value;
|
|
24735
24819
|
setFiltering(value);
|
|
24736
24820
|
};
|
|
24737
24821
|
const [selected, setSelected] = useState23(0);
|
|
24738
|
-
const selectedRef =
|
|
24822
|
+
const selectedRef = useRef18(0);
|
|
24739
24823
|
const [notice, setNotice] = useState23(null);
|
|
24740
24824
|
const { push: push2 } = usePopupStack();
|
|
24741
|
-
const confirmId =
|
|
24825
|
+
const confirmId = useRef18(null);
|
|
24742
24826
|
const settingsRows = useMemo17(() => buildSettingsRows(SETTING_DEFS, filter), [filter]);
|
|
24743
24827
|
const items = useMemo17(() => settingsDialogItems(settingsRows, settings), [settingsRows, settings]);
|
|
24744
24828
|
const defByKey = useMemo17(() => {
|
|
@@ -25013,7 +25097,7 @@ function SettingsScreen({ frame, onBack, onExit }) {
|
|
|
25013
25097
|
}
|
|
25014
25098
|
|
|
25015
25099
|
// packages/cli/src/tui/keybindings-editor-screen.tsx
|
|
25016
|
-
import { useRef as
|
|
25100
|
+
import { useRef as useRef19, useState as useState24 } from "react";
|
|
25017
25101
|
import { TextAttributes as TextAttributes21 } from "@opentui/core";
|
|
25018
25102
|
import { useKeyboard as useKeyboard18 } from "@opentui/react";
|
|
25019
25103
|
|
|
@@ -25201,14 +25285,14 @@ function KeybindingsEditorScreen({ frame, onBack, onExit }) {
|
|
|
25201
25285
|
const inDialog = useDialogSurface();
|
|
25202
25286
|
const overrides = useSettings().keybindings;
|
|
25203
25287
|
const [query, setQuery] = useState24("");
|
|
25204
|
-
const queryRef =
|
|
25288
|
+
const queryRef = useRef19("");
|
|
25205
25289
|
const allRows = buildKeybindingEditorRows(overrides);
|
|
25206
25290
|
const rows = filterKeybindingEditorRows(allRows, query);
|
|
25207
25291
|
const editable = rebindableRowIndices(rows);
|
|
25208
25292
|
const [selected, setSelected] = useState24(0);
|
|
25209
|
-
const selectedRef =
|
|
25293
|
+
const selectedRef = useRef19(0);
|
|
25210
25294
|
const [capturing, setCapturing] = useState24(false);
|
|
25211
|
-
const capturingRef =
|
|
25295
|
+
const capturingRef = useRef19(false);
|
|
25212
25296
|
const [message, setMessage] = useState24(null);
|
|
25213
25297
|
const setFilter = (next) => {
|
|
25214
25298
|
queryRef.current = next;
|
|
@@ -25386,7 +25470,7 @@ import { useState as useState26 } from "react";
|
|
|
25386
25470
|
import { useKeyboard as useKeyboard20 } from "@opentui/react";
|
|
25387
25471
|
|
|
25388
25472
|
// packages/cli/src/tui/harness-view.tsx
|
|
25389
|
-
import
|
|
25473
|
+
import React22, { useEffect as useEffect21, useMemo as useMemo18, useRef as useRef20, useState as useState25 } from "react";
|
|
25390
25474
|
import { useKeyboard as useKeyboard19, usePaste as usePaste5 } from "@opentui/react";
|
|
25391
25475
|
import { decodePasteBytes as decodePasteBytes5 } from "@opentui/core";
|
|
25392
25476
|
|
|
@@ -25745,7 +25829,7 @@ import { Fragment as Fragment16, jsx as jsx47, jsxs as jsxs40 } from "@opentui/r
|
|
|
25745
25829
|
function ViewBlocks({ blocks, width }) {
|
|
25746
25830
|
const theme = useTheme();
|
|
25747
25831
|
return /* @__PURE__ */ jsx47(Fragment16, { children: blocks.map((block, index) => {
|
|
25748
|
-
if (block.type === "markdown") return /* @__PURE__ */ jsx47(
|
|
25832
|
+
if (block.type === "markdown") return /* @__PURE__ */ jsx47(React22.Fragment, { children: renderMarkdownBlocks(renderMarkdown(block.text, width), `harness-${index}`, theme) }, index);
|
|
25749
25833
|
if (block.type === "text") {
|
|
25750
25834
|
const color = block.tone === "error" ? theme.ERROR : block.tone === "warning" ? theme.WARNING : block.tone === "success" ? theme.SUCCESS : block.tone === "muted" ? theme.MUTED : theme.TEXT;
|
|
25751
25835
|
return /* @__PURE__ */ jsx47("text", { fg: color, wrapMode: "word", children: sanitizeTuiText(block.text) }, index);
|
|
@@ -25768,12 +25852,12 @@ function HarnessViewPanel({ contentWidth, onBack }) {
|
|
|
25768
25852
|
const [cursor, setCursor] = useState25(0);
|
|
25769
25853
|
const [documentId, setDocumentId] = useState25(null);
|
|
25770
25854
|
const [edit, setEditState] = useState25(null);
|
|
25771
|
-
const editRef =
|
|
25855
|
+
const editRef = useRef20(edit);
|
|
25772
25856
|
const setEdit = (next) => {
|
|
25773
25857
|
editRef.current = next;
|
|
25774
25858
|
setEditState(next);
|
|
25775
25859
|
};
|
|
25776
|
-
const scroll =
|
|
25860
|
+
const scroll = useRef20(null);
|
|
25777
25861
|
useEffect21(() => {
|
|
25778
25862
|
setEdit(null);
|
|
25779
25863
|
setDocumentId(null);
|
|
@@ -26008,7 +26092,7 @@ Providers: ${snapshot.providers.map((provider) => provider.id).join(", ") || "bu
|
|
|
26008
26092
|
}
|
|
26009
26093
|
|
|
26010
26094
|
// packages/cli/src/tui/model-screen.tsx
|
|
26011
|
-
import { useEffect as useEffect22, useMemo as useMemo19, useRef as
|
|
26095
|
+
import { useEffect as useEffect22, useMemo as useMemo19, useRef as useRef21, useState as useState27 } from "react";
|
|
26012
26096
|
import { useKeyboard as useKeyboard21, usePaste as usePaste6 } from "@opentui/react";
|
|
26013
26097
|
import { decodePasteBytes as decodePasteBytes6, TextAttributes as TextAttributes22 } from "@opentui/core";
|
|
26014
26098
|
import { Fragment as Fragment17, jsx as jsx49, jsxs as jsxs42 } from "@opentui/react/jsx-runtime";
|
|
@@ -26077,8 +26161,8 @@ function ModelScreen({
|
|
|
26077
26161
|
const [filter, setFilter] = useState27("");
|
|
26078
26162
|
const [showAll, setShowAll] = useState27(false);
|
|
26079
26163
|
const [refreshing, setRefreshing] = useState27(true);
|
|
26080
|
-
const filterRef =
|
|
26081
|
-
const showAllRef =
|
|
26164
|
+
const filterRef = useRef21("");
|
|
26165
|
+
const showAllRef = useRef21(false);
|
|
26082
26166
|
const states = useMemo19(() => providerStates(env ?? process.env), [env]);
|
|
26083
26167
|
const configured = useMemo19(() => configuredProviderLabels(states), [states]);
|
|
26084
26168
|
const source = useMemo19(() => ({ providerId, env, reload }), [providerId, env, reload]);
|
|
@@ -26186,7 +26270,7 @@ function ModelScreen({
|
|
|
26186
26270
|
return count;
|
|
26187
26271
|
}, [items]);
|
|
26188
26272
|
const [selectedItem, setSelectedItem] = useState27();
|
|
26189
|
-
const selectedItemRef =
|
|
26273
|
+
const selectedItemRef = useRef21(selectedItem);
|
|
26190
26274
|
const offeredId = preferredHostedModel(hostedCatalog, activeModel)?.id;
|
|
26191
26275
|
const selectionIndex = (visible, selection = selectedItemRef.current) => clampDialogSelection(visible, visible.findIndex(
|
|
26192
26276
|
(item) => item.id === (selection?.id ?? (isHosted ? offeredId : activeModel)) && (!selection || item.category === selection.category)
|
|
@@ -26440,7 +26524,7 @@ function ModelScreen({
|
|
|
26440
26524
|
}
|
|
26441
26525
|
|
|
26442
26526
|
// packages/cli/src/tui/resume-screen.tsx
|
|
26443
|
-
import { useMemo as useMemo20, useRef as
|
|
26527
|
+
import { useMemo as useMemo20, useRef as useRef22, useState as useState28 } from "react";
|
|
26444
26528
|
import { useKeyboard as useKeyboard22, usePaste as usePaste7 } from "@opentui/react";
|
|
26445
26529
|
import { decodePasteBytes as decodePasteBytes7, TextAttributes as TextAttributes23 } from "@opentui/core";
|
|
26446
26530
|
|
|
@@ -26690,13 +26774,13 @@ function ResumeScreen({
|
|
|
26690
26774
|
const [pendingDelete, setPendingDeleteState] = useState28(null);
|
|
26691
26775
|
const [deleteError, setDeleteError] = useState28(null);
|
|
26692
26776
|
const [deleted, setDeleted] = useState28(() => /* @__PURE__ */ new Set());
|
|
26693
|
-
const selectedIdRef =
|
|
26694
|
-
const pendingDeleteRef =
|
|
26695
|
-
const filterRef =
|
|
26696
|
-
const filteringRef =
|
|
26697
|
-
const scopeRef =
|
|
26698
|
-
const deletedRef =
|
|
26699
|
-
const baseSelectedRef =
|
|
26777
|
+
const selectedIdRef = useRef22(null);
|
|
26778
|
+
const pendingDeleteRef = useRef22(null);
|
|
26779
|
+
const filterRef = useRef22("");
|
|
26780
|
+
const filteringRef = useRef22(false);
|
|
26781
|
+
const scopeRef = useRef22(scope);
|
|
26782
|
+
const deletedRef = useRef22(deleted);
|
|
26783
|
+
const baseSelectedRef = useRef22(0);
|
|
26700
26784
|
const setFiltering = (value) => {
|
|
26701
26785
|
filteringRef.current = value;
|
|
26702
26786
|
setFilteringState(value);
|
|
@@ -26980,7 +27064,7 @@ function ResumeScreen({
|
|
|
26980
27064
|
}
|
|
26981
27065
|
|
|
26982
27066
|
// packages/cli/src/tui/market-screen.tsx
|
|
26983
|
-
import { useEffect as useEffect23, useMemo as useMemo21, useRef as
|
|
27067
|
+
import { useEffect as useEffect23, useMemo as useMemo21, useRef as useRef23, useState as useState29 } from "react";
|
|
26984
27068
|
import { useKeyboard as useKeyboard23 } from "@opentui/react";
|
|
26985
27069
|
import { TextAttributes as TextAttributes24 } from "@opentui/core";
|
|
26986
27070
|
|
|
@@ -26992,7 +27076,7 @@ function coreLoader(injected) {
|
|
|
26992
27076
|
if (injected) return async () => injected;
|
|
26993
27077
|
let cached;
|
|
26994
27078
|
return () => {
|
|
26995
|
-
if (!cached) cached = import("./dist-
|
|
27079
|
+
if (!cached) cached = import("./dist-4YICS2J2.js");
|
|
26996
27080
|
return cached;
|
|
26997
27081
|
};
|
|
26998
27082
|
}
|
|
@@ -27802,9 +27886,9 @@ function MarketScreen({
|
|
|
27802
27886
|
const [mode, setMode] = useState29("browse");
|
|
27803
27887
|
const [selected, setSelected] = useState29(0);
|
|
27804
27888
|
const [notice, setNotice] = useState29("");
|
|
27805
|
-
const filterRef =
|
|
27806
|
-
const modeRef =
|
|
27807
|
-
const selectedRef =
|
|
27889
|
+
const filterRef = useRef23("");
|
|
27890
|
+
const modeRef = useRef23("browse");
|
|
27891
|
+
const selectedRef = useRef23(0);
|
|
27808
27892
|
const applyFilter = (next) => {
|
|
27809
27893
|
filterRef.current = next;
|
|
27810
27894
|
setFilter(next);
|
|
@@ -27818,7 +27902,7 @@ function MarketScreen({
|
|
|
27818
27902
|
setSelected(next);
|
|
27819
27903
|
};
|
|
27820
27904
|
const [pendingIntent, setPendingIntent] = useState29(null);
|
|
27821
|
-
const pendingIntentRef =
|
|
27905
|
+
const pendingIntentRef = useRef23(null);
|
|
27822
27906
|
const applyPendingIntent = (next) => {
|
|
27823
27907
|
pendingIntentRef.current = next;
|
|
27824
27908
|
setPendingIntent(next);
|
|
@@ -28106,7 +28190,7 @@ function coreLoader2(injected) {
|
|
|
28106
28190
|
if (injected) return async () => injected;
|
|
28107
28191
|
let cached;
|
|
28108
28192
|
return () => {
|
|
28109
|
-
if (!cached) cached = import("./dist-
|
|
28193
|
+
if (!cached) cached = import("./dist-4YICS2J2.js");
|
|
28110
28194
|
return cached;
|
|
28111
28195
|
};
|
|
28112
28196
|
}
|
|
@@ -28286,7 +28370,7 @@ async function createSessionPluginHostManager(deps = {}) {
|
|
|
28286
28370
|
}
|
|
28287
28371
|
|
|
28288
28372
|
// packages/cli/src/tui/connect-screen.tsx
|
|
28289
|
-
import { useEffect as useEffect24, useMemo as useMemo22, useRef as
|
|
28373
|
+
import { useEffect as useEffect24, useMemo as useMemo22, useRef as useRef24, useState as useState30 } from "react";
|
|
28290
28374
|
import { decodePasteBytes as decodePasteBytes8, TextAttributes as TextAttributes25 } from "@opentui/core";
|
|
28291
28375
|
import { useKeyboard as useKeyboard24, usePaste as usePaste8 } from "@opentui/react";
|
|
28292
28376
|
|
|
@@ -29297,8 +29381,8 @@ function ConnectScreen({ frame, onBack, onExit, recovery, onConnected, env, home
|
|
|
29297
29381
|
const inDialog = useDialogSurface();
|
|
29298
29382
|
const [filter, setFilter] = useState30("");
|
|
29299
29383
|
const [filtering, setFiltering] = useState30(false);
|
|
29300
|
-
const filterRef =
|
|
29301
|
-
const filteringRef =
|
|
29384
|
+
const filterRef = useRef24("");
|
|
29385
|
+
const filteringRef = useRef24(false);
|
|
29302
29386
|
const setFilterMode = (next) => {
|
|
29303
29387
|
filteringRef.current = next;
|
|
29304
29388
|
setFiltering(next);
|
|
@@ -29306,8 +29390,8 @@ function ConnectScreen({ frame, onBack, onExit, recovery, onConnected, env, home
|
|
|
29306
29390
|
const [stored, setStored] = useState30(() => loadCredentials(homeDir));
|
|
29307
29391
|
const [inputProviderId, setInputProviderId] = useState30(void 0);
|
|
29308
29392
|
const [inputValue, setInputValue] = useState30("");
|
|
29309
|
-
const inputProviderRef =
|
|
29310
|
-
const inputValueRef =
|
|
29393
|
+
const inputProviderRef = useRef24(void 0);
|
|
29394
|
+
const inputValueRef = useRef24("");
|
|
29311
29395
|
const applyInputProviderId = (next) => {
|
|
29312
29396
|
inputProviderRef.current = next;
|
|
29313
29397
|
setInputProviderId(next);
|
|
@@ -29318,12 +29402,12 @@ function ConnectScreen({ frame, onBack, onExit, recovery, onConnected, env, home
|
|
|
29318
29402
|
setInputValue(next);
|
|
29319
29403
|
};
|
|
29320
29404
|
const [notice, setNotice] = useState30(void 0);
|
|
29321
|
-
const oauthSessionRef =
|
|
29322
|
-
const hostedSessionRef =
|
|
29405
|
+
const oauthSessionRef = useRef24(void 0);
|
|
29406
|
+
const hostedSessionRef = useRef24(void 0);
|
|
29323
29407
|
const [oauth, setOauth] = useState30(void 0);
|
|
29324
29408
|
const [hosted, setHosted] = useState30(void 0);
|
|
29325
|
-
const oauthRef =
|
|
29326
|
-
const hostedRef =
|
|
29409
|
+
const oauthRef = useRef24(void 0);
|
|
29410
|
+
const hostedRef = useRef24(void 0);
|
|
29327
29411
|
const applyOauth = (next) => {
|
|
29328
29412
|
oauthRef.current = next;
|
|
29329
29413
|
setOauth(next);
|
|
@@ -29355,9 +29439,9 @@ function ConnectScreen({ frame, onBack, onExit, recovery, onConnected, env, home
|
|
|
29355
29439
|
[rows, cloudConnected, recovery?.providerId, theme.SUCCESS, theme.ERROR]
|
|
29356
29440
|
);
|
|
29357
29441
|
const totalRows = useMemo22(() => connectDisplayRowCount(items), [items]);
|
|
29358
|
-
const recoveredProviderRef =
|
|
29442
|
+
const recoveredProviderRef = useRef24(void 0);
|
|
29359
29443
|
const [selected, setSelected] = useState30(0);
|
|
29360
|
-
const selectedRef =
|
|
29444
|
+
const selectedRef = useRef24(0);
|
|
29361
29445
|
const highlight = (next) => {
|
|
29362
29446
|
selectedRef.current = next;
|
|
29363
29447
|
setSelected(next);
|
|
@@ -29814,7 +29898,7 @@ function ConnectScreen({ frame, onBack, onExit, recovery, onConnected, env, home
|
|
|
29814
29898
|
}
|
|
29815
29899
|
|
|
29816
29900
|
// packages/cli/src/tui/usage-screen.tsx
|
|
29817
|
-
import
|
|
29901
|
+
import React28, { useMemo as useMemo23 } from "react";
|
|
29818
29902
|
import { TextAttributes as TextAttributes26 } from "@opentui/core";
|
|
29819
29903
|
import { useKeyboard as useKeyboard25 } from "@opentui/react";
|
|
29820
29904
|
|
|
@@ -30186,7 +30270,7 @@ function UsageScreen({ frame, usage, onBack, onExit }) {
|
|
|
30186
30270
|
headerRows: HEADER_ROWS5,
|
|
30187
30271
|
...inDialog ? { hostRows: DIALOG_HOST_ROWS, hostPaddingX: 0 } : {}
|
|
30188
30272
|
});
|
|
30189
|
-
const [offset, setOffset] =
|
|
30273
|
+
const [offset, setOffset] = React28.useState(0);
|
|
30190
30274
|
const maxOffset = Math.max(0, report.length - Math.max(1, layout.visibleRows));
|
|
30191
30275
|
const currentOffset = Math.min(offset, maxOffset);
|
|
30192
30276
|
const visible = clipUsageRows(report.slice(currentOffset), layout.visibleRows);
|
|
@@ -30224,7 +30308,7 @@ function UsageScreen({ frame, usage, onBack, onExit }) {
|
|
|
30224
30308
|
}
|
|
30225
30309
|
|
|
30226
30310
|
// packages/cli/src/tui/finding-detail-screen.tsx
|
|
30227
|
-
import
|
|
30311
|
+
import React29, { useMemo as useMemo24, useState as useState31 } from "react";
|
|
30228
30312
|
import { useKeyboard as useKeyboard26 } from "@opentui/react";
|
|
30229
30313
|
import { TextAttributes as TextAttributes27 } from "@opentui/core";
|
|
30230
30314
|
|
|
@@ -30668,7 +30752,7 @@ function ActionBar({
|
|
|
30668
30752
|
const action = layout.action;
|
|
30669
30753
|
if (action.count <= 0) return null;
|
|
30670
30754
|
const visible = actions.slice(0, action.count);
|
|
30671
|
-
return /* @__PURE__ */ jsx54("box", { flexDirection: "row", width: action.width, flexShrink: 0, minWidth: 0, children: visible.map((item, index) => /* @__PURE__ */ jsxs47(
|
|
30755
|
+
return /* @__PURE__ */ jsx54("box", { flexDirection: "row", width: action.width, flexShrink: 0, minWidth: 0, children: visible.map((item, index) => /* @__PURE__ */ jsxs47(React29.Fragment, { children: [
|
|
30672
30756
|
index > 0 ? /* @__PURE__ */ jsx54(Cells, { width: action.gap, children: "" }) : null,
|
|
30673
30757
|
/* @__PURE__ */ jsx54(Cells, { width: action.cellWidth, fg: theme.ACCENT, children: `[${item.key}] ${item.label}` })
|
|
30674
30758
|
] }, item.key)) });
|
|
@@ -31376,7 +31460,7 @@ function ResumeRoute({ onResume, protectedSessionIds, currentId, onExit, shell }
|
|
|
31376
31460
|
) });
|
|
31377
31461
|
}
|
|
31378
31462
|
function MarketRoute({ onExit, shell, pluginHostManager }) {
|
|
31379
|
-
const registryUrl =
|
|
31463
|
+
const registryUrl = React30.useMemo(
|
|
31380
31464
|
// Unset → the default Hackstore index. An explicitly-set value (even empty)
|
|
31381
31465
|
// is honoured verbatim, so `0SEC_REGISTRY_URL=` stays a deliberate "no
|
|
31382
31466
|
// store" rather than silently reverting to the default.
|
|
@@ -31386,7 +31470,7 @@ function MarketRoute({ onExit, shell, pluginHostManager }) {
|
|
|
31386
31470
|
},
|
|
31387
31471
|
[]
|
|
31388
31472
|
);
|
|
31389
|
-
const service =
|
|
31473
|
+
const service = React30.useMemo(
|
|
31390
31474
|
// Route ENABLE/RUN through the shell's plugin-host manager (when present) so
|
|
31391
31475
|
// changed enablement is prepared for new audits while existing runtimes
|
|
31392
31476
|
// retain their approved leases. Without a manager, the service owns only
|
|
@@ -31524,7 +31608,7 @@ function ConsoleApp({
|
|
|
31524
31608
|
const initialChatOptions = initialRoute.type === "chat" ? initialRoute.options : void 0;
|
|
31525
31609
|
const tuiSettings = useSettings();
|
|
31526
31610
|
const [firstRun, setFirstRun] = useState32(() => initialRoute.type === "chat" && !tuiSettings.onboardingCompleted && initialChatOptions?.initialMessages === void 0 && !initialChatOptions?.initialPrompt);
|
|
31527
|
-
const workspaceRef =
|
|
31611
|
+
const workspaceRef = useRef25(null);
|
|
31528
31612
|
if (!workspaceRef.current) workspaceRef.current = new AuditWorkspace(initialChatOptions);
|
|
31529
31613
|
const workspace = workspaceRef.current;
|
|
31530
31614
|
const rootRoute = { type: "chat", auditId: workspace.selectedId };
|
|
@@ -31554,11 +31638,11 @@ function ConsoleApp({
|
|
|
31554
31638
|
const [workspaceRoot] = useState32(() => process.cwd());
|
|
31555
31639
|
const [shellError, setShellError] = useState32(null);
|
|
31556
31640
|
const [closingAll, setClosingAll] = useState32(false);
|
|
31557
|
-
const exitRequested =
|
|
31558
|
-
const creations =
|
|
31559
|
-
const openingSessions =
|
|
31560
|
-
const legacyLaunches =
|
|
31561
|
-
const navigationEpoch =
|
|
31641
|
+
const exitRequested = useRef25(false);
|
|
31642
|
+
const creations = useRef25(/* @__PURE__ */ new Set());
|
|
31643
|
+
const openingSessions = useRef25(/* @__PURE__ */ new Map());
|
|
31644
|
+
const legacyLaunches = useRef25(/* @__PURE__ */ new Map());
|
|
31645
|
+
const navigationEpoch = useRef25(0);
|
|
31562
31646
|
const reportError = (error) => setShellError(error instanceof Error ? error.message : String(error));
|
|
31563
31647
|
const currentRoute = routes[routeIndex] ?? rootRoute;
|
|
31564
31648
|
const routeOwner = currentRoute.type === "chat" ? selectedRecord : workspace.get(currentRoute.auditId);
|
|
@@ -31749,8 +31833,8 @@ function ConsoleApp({
|
|
|
31749
31833
|
const [pluginHostManager, setPluginHostManager] = useState32(null);
|
|
31750
31834
|
const [pluginHostReady, setPluginHostReady] = useState32(false);
|
|
31751
31835
|
const [pluginError, setPluginError] = useState32(null);
|
|
31752
|
-
const pluginPreparation =
|
|
31753
|
-
const appAlive =
|
|
31836
|
+
const pluginPreparation = useRef25(null);
|
|
31837
|
+
const appAlive = useRef25(true);
|
|
31754
31838
|
useEffect25(() => {
|
|
31755
31839
|
appAlive.current = true;
|
|
31756
31840
|
return () => {
|
|
@@ -32416,7 +32500,7 @@ async function mountApp(mode) {
|
|
|
32416
32500
|
frameCount: stats.frameCount
|
|
32417
32501
|
});
|
|
32418
32502
|
};
|
|
32419
|
-
if (traceRender) renderer.on(
|
|
32503
|
+
if (traceRender) renderer.on(CliRenderEvents2.FRAME, traceFrame);
|
|
32420
32504
|
const outputGuard = installTuiOutputGuard();
|
|
32421
32505
|
const root = createRoot(renderer);
|
|
32422
32506
|
const lensEvolution = createTuiLensEvolutionController();
|
|
@@ -32438,7 +32522,7 @@ async function mountApp(mode) {
|
|
|
32438
32522
|
maxFrameTime: stats.maxFrameTime,
|
|
32439
32523
|
frameCount: stats.frameCount
|
|
32440
32524
|
});
|
|
32441
|
-
renderer.off(
|
|
32525
|
+
renderer.off(CliRenderEvents2.FRAME, traceFrame);
|
|
32442
32526
|
}
|
|
32443
32527
|
appendTuiEvent({ kind: "shutdown", stage: "unmount" });
|
|
32444
32528
|
root.unmount();
|