@stigmer/ink 3.1.2 → 3.1.4
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/app/SessionView.d.ts.map +1 -1
- package/app/SessionView.js +2 -1
- package/app/SessionView.js.map +1 -1
- package/components/ApprovalPrompt.d.ts +15 -1
- package/components/ApprovalPrompt.d.ts.map +1 -1
- package/components/ApprovalPrompt.js +9 -3
- package/components/ApprovalPrompt.js.map +1 -1
- package/components/FileChangeProgressBar.d.ts +46 -0
- package/components/FileChangeProgressBar.d.ts.map +1 -0
- package/components/FileChangeProgressBar.js +40 -0
- package/components/FileChangeProgressBar.js.map +1 -0
- package/components/FileDiffBody.d.ts +30 -0
- package/components/FileDiffBody.d.ts.map +1 -0
- package/components/FileDiffBody.js +106 -0
- package/components/FileDiffBody.js.map +1 -0
- package/components/FileReviewAtoms.d.ts +23 -0
- package/components/FileReviewAtoms.d.ts.map +1 -0
- package/components/FileReviewAtoms.js +26 -0
- package/components/FileReviewAtoms.js.map +1 -0
- package/components/FileReviewPrompt.d.ts.map +1 -1
- package/components/FileReviewPrompt.js +16 -5
- package/components/FileReviewPrompt.js.map +1 -1
- package/components/FileReviewRecord.d.ts.map +1 -1
- package/components/FileReviewRecord.js +5 -3
- package/components/FileReviewRecord.js.map +1 -1
- package/components/MessageThread.d.ts.map +1 -1
- package/components/MessageThread.js +11 -3
- package/components/MessageThread.js.map +1 -1
- package/file-review.d.ts +27 -3
- package/file-review.d.ts.map +1 -1
- package/file-review.js +43 -6
- package/file-review.js.map +1 -1
- package/index.d.ts +4 -1
- package/index.d.ts.map +1 -1
- package/index.js +4 -1
- package/index.js.map +1 -1
- package/package.json +4 -4
- package/src/__tests__/components.test.tsx +65 -0
- package/src/__tests__/data-pickers.test.tsx +1 -6
- package/src/__tests__/file-change-progress.test.tsx +295 -0
- package/src/__tests__/file-review.test.tsx +318 -3
- package/src/__tests__/test-support.tsx +25 -0
- package/src/app/SessionView.tsx +12 -0
- package/src/components/ApprovalPrompt.tsx +33 -11
- package/src/components/FileChangeProgressBar.tsx +96 -0
- package/src/components/FileDiffBody.tsx +164 -0
- package/src/components/FileReviewAtoms.tsx +37 -0
- package/src/components/FileReviewPrompt.tsx +34 -2
- package/src/components/FileReviewRecord.tsx +11 -0
- package/src/components/MessageThread.tsx +15 -2
- package/src/file-review.ts +59 -6
- package/src/index.ts +9 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileReviewRecord.js","sourceRoot":"","sources":["../../src/components/FileReviewRecord.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,8DAA8D,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,cAAc,GACf,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"FileReviewRecord.js","sourceRoot":"","sources":["../../src/components/FileReviewRecord.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,8DAA8D,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAQrD;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAAE,aAAa,EAAyB;IACvE,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,KAAK,mBAAmB,CAAC,MAAM,CAAC;IACnE,MAAM,QAAQ,GAAG,uBAAuB,CAAC,aAAa,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAEpD,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAE,CAAC,aACxC,MAAC,GAAG,IAAC,GAAG,EAAE,CAAC,aACT,KAAC,IAAI,IAAC,QAAQ,6BAAS,EACvB,MAAC,IAAI,IAAC,QAAQ,0CAAgB,OAAO,IAAQ,EAC7C,KAAC,aAAa,IACZ,UAAU,EAAE,SAAS,CAAC,UAAU,EAChC,YAAY,EAAE,SAAS,CAAC,YAAY,GACpC,IACE,EACL,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBACpC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACxC,MAAM,KAAK,GAAG,MAAM;oBAClB,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,OAAO,KAAK,kBAAkB,CAAC,OAAO;wBACtC,CAAC,CAAC,MAAM;wBACR,CAAC,CAAC,OAAO,KAAK,kBAAkB,CAAC,MAAM;4BACrC,CAAC,CAAC,WAAW;4BACb,CAAC,CAAC,cAAc,CAAC;gBACvB,OAAO,CACL,MAAC,GAAG,IAAiB,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,aACzC,KAAC,IAAI,IAAC,QAAQ,kBAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAQ,EAC/C,KAAC,IAAI,IAAC,QAAQ,QAAC,IAAI,EAAC,cAAc,YAC/B,iBAAiB,CAAC,MAAM,CAAC,GACrB,EACP,KAAC,aAAa,IACZ,UAAU,EAAE,MAAM,CAAC,UAAU,EAC7B,YAAY,EAAE,MAAM,CAAC,YAAY,GACjC,EACD,KAAK,IAAI,MAAC,IAAI,IAAC,QAAQ,wBAAG,KAAK,SAAS,KATjC,MAAM,CAAC,EAAE,CAUb,CACP,CAAC;YACJ,CAAC,CAAC,IACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageThread.d.ts","sourceRoot":"","sources":["../../src/components/MessageThread.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6DAA6D,CAAC;AASlG,OAAO,EACL,cAAc,EAIf,MAAM,8DAA8D,CAAC;AActE,uCAAuC;AACvC,MAAM,WAAW,kBAAkB;IACjC,mDAAmD;IACnD,QAAQ,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,CAAC;IAC/C,uEAAuE;IACvE,QAAQ,CAAC,qBAAqB,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACvD,mEAAmE;IACnE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,sEAAsE;IACtE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAC1B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,cAAc,KACnB,IAAI,CAAC;IACV,mEAAmE;IACnE,QAAQ,CAAC,qBAAqB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACrD,wFAAwF;IACxF,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC;;;;;;OAMG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CAC1C;AAuMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,EAC5B,UAAU,EACV,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,eAAuB,EACvB,qBAA6B,GAC9B,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"MessageThread.d.ts","sourceRoot":"","sources":["../../src/components/MessageThread.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6DAA6D,CAAC;AASlG,OAAO,EACL,cAAc,EAIf,MAAM,8DAA8D,CAAC;AActE,uCAAuC;AACvC,MAAM,WAAW,kBAAkB;IACjC,mDAAmD;IACnD,QAAQ,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,CAAC;IAC/C,uEAAuE;IACvE,QAAQ,CAAC,qBAAqB,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACvD,mEAAmE;IACnE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,sEAAsE;IACtE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAC1B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,cAAc,KACnB,IAAI,CAAC;IACV,mEAAmE;IACnE,QAAQ,CAAC,qBAAqB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACrD,wFAAwF;IACxF,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC;;;;;;OAMG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CAC1C;AAuMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,EAC5B,UAAU,EACV,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,eAAuB,EACvB,qBAA6B,GAC9B,EAAE,kBAAkB,2CAyDpB"}
|
|
@@ -189,11 +189,17 @@ export function MessageThread({ executions, activeStreamExecution, pendingUserMe
|
|
|
189
189
|
showFileReviewRecords,
|
|
190
190
|
]);
|
|
191
191
|
const fileReviewContext = useMemo(() => buildChangeSetsById(executions, activeStreamExecution), [executions, activeStreamExecution]);
|
|
192
|
+
// The single active decision surface: stdin is delivered to every mounted
|
|
193
|
+
// `useInput`, so only the FIRST pending approval owns the keyboard — the rest
|
|
194
|
+
// render inert. The file-review prompt (in `SessionView`) in turn yields while
|
|
195
|
+
// any approval is pending, so the terminal always has exactly one interactive
|
|
196
|
+
// decision surface: first approval → else the file-review prompt.
|
|
197
|
+
const firstApprovalKey = useMemo(() => items.find((it) => it.kind === "approval")?.key, [items]);
|
|
192
198
|
const historyItems = items.slice(0, liveStart);
|
|
193
199
|
const liveItems = items.slice(liveStart);
|
|
194
|
-
return (_jsx(FileReviewContext.Provider, { value: fileReviewContext, children: _jsxs(Box, { flexDirection: "column", children: [_jsx(Static, { items: historyItems, children: (item) => (_jsx(Box, { flexDirection: "column", marginBottom: 1, children: renderItem(item, onApprovalSubmit, submittingApprovalIds, expandToolCalls) }, item.key)) }), liveItems.map((item) => (_jsx(Box, { flexDirection: "column", marginBottom: 1, children: renderItem(item, onApprovalSubmit, submittingApprovalIds, expandToolCalls) }, item.key)))] }) }));
|
|
200
|
+
return (_jsx(FileReviewContext.Provider, { value: fileReviewContext, children: _jsxs(Box, { flexDirection: "column", children: [_jsx(Static, { items: historyItems, children: (item) => (_jsx(Box, { flexDirection: "column", marginBottom: 1, children: renderItem(item, onApprovalSubmit, submittingApprovalIds, expandToolCalls, firstApprovalKey) }, item.key)) }), liveItems.map((item) => (_jsx(Box, { flexDirection: "column", marginBottom: 1, children: renderItem(item, onApprovalSubmit, submittingApprovalIds, expandToolCalls, firstApprovalKey) }, item.key)))] }) }));
|
|
195
201
|
}
|
|
196
|
-
function renderItem(item, onApprovalSubmit, submittingApprovalIds, expandToolCalls) {
|
|
202
|
+
function renderItem(item, onApprovalSubmit, submittingApprovalIds, expandToolCalls, activeApprovalKey) {
|
|
197
203
|
switch (item.kind) {
|
|
198
204
|
case "message":
|
|
199
205
|
return _jsx(MessageEntry, { message: item.message });
|
|
@@ -206,7 +212,9 @@ function renderItem(item, onApprovalSubmit, submittingApprovalIds, expandToolCal
|
|
|
206
212
|
case "file-review-record":
|
|
207
213
|
return _jsx(FileReviewRecord, { fileChangeSet: item.set });
|
|
208
214
|
case "approval":
|
|
209
|
-
return onApprovalSubmit ? (_jsx(ApprovalPrompt, { pendingApproval: item.pendingApproval, onSubmit: (action) => onApprovalSubmit(item.pendingApproval.toolCallId, action), isSubmitting: submittingApprovalIds?.has(item.pendingApproval.toolCallId) ?? false
|
|
215
|
+
return onApprovalSubmit ? (_jsx(ApprovalPrompt, { pendingApproval: item.pendingApproval, onSubmit: (action) => onApprovalSubmit(item.pendingApproval.toolCallId, action), isSubmitting: submittingApprovalIds?.has(item.pendingApproval.toolCallId) ?? false,
|
|
216
|
+
// Only the first pending approval is interactive (see firstApprovalKey).
|
|
217
|
+
isActive: item.key === activeApprovalKey })) : null;
|
|
210
218
|
case "pending-message":
|
|
211
219
|
return (_jsx(Box, { paddingLeft: 1, children: _jsx(Text, { dimColor: true, italic: true, children: item.content }) }));
|
|
212
220
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageThread.js","sourceRoot":"","sources":["../../src/components/MessageThread.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAM5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAIrG,OAAO,EAEL,cAAc,EACd,mBAAmB,EACnB,WAAW,GACZ,MAAM,8DAA8D,CAAC;AACtE,OAAO,EACL,eAAe,EACf,iBAAiB,GAElB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAsCzD,uFAAuF;AACvF,SAAS,YAAY,CAAC,MAA2B;IAC/C,OAAO,CACL,MAAM,KAAK,mBAAmB,CAAC,OAAO;QACtC,MAAM,KAAK,mBAAmB,CAAC,UAAU;QACzC,MAAM,KAAK,mBAAmB,CAAC,MAAM,CACtC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,qBAAqB,CAC5B,IAAoB,EACpB,EAAU,EACV,wBAAiC;IAEjC,MAAM,GAAG,GAAiB,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE,CAAC;IAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,kBAAkB,IAAI,EAAE,CAAC;IAExD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;IACvC,IAAI,WAAW,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC5C,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC,aAAa,CAAC;QAC1C,QAAQ,CAAC,OAAO,GAAG,WAAW,CAAC;QAC/B,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;QAC5C,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC,YAAY;YAAE,SAAS;QAEpD,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAE7E,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC,UAAU,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpE,0DAA0D;YAC1D,kDAAkD;YAClD,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YACtE,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YAEnE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,GAAG,CAAC,IAAI,CAAC;oBACP,IAAI,EAAE,YAAY;oBAClB,SAAS,EAAE,YAAY;oBACvB,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC;YAED,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;gBAC7C,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBACtE,IAAI,UAAU,EAAE,CAAC;oBACf,GAAG,CAAC,IAAI,CAAC;wBACP,IAAI,EAAE,WAAW;wBACjB,QAAQ,EAAE,UAAU;wBACpB,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;qBAC9B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,wBAAwB,EAAE,CAAC;QAC7B,mEAAmE;QACnE,0EAA0E;QAC1E,sEAAsE;QACtE,2EAA2E;QAC3E,oEAAoE;QACpE,KAAK,MAAM,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YACpE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,gBAAgB,CACvB,UAAqC,EACrC,qBAAwD,EACxD,kBAA6C,EAC7C,gBAAyB,EACzB,wBAAiC;IAEjC,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,MAAM,aAAa,GAAG,qBAAqB;QACzC,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,qBAAqB,CAAC;QACxC,CAAC,CAAC,UAAU,CAAC;IAEf,2EAA2E;IAC3E,uEAAuE;IACvE,yEAAyE;IACzE,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,aAAa,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;QACjD,IAAI,qBAAqB,IAAI,EAAE,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;YACtD,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;YACzB,YAAY,GAAG,IAAI,CAAC;QACtB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,wBAAwB,CAAC,CAAC,CAAC;IACxF,CAAC;IAED,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,2EAA2E;QAC3E,uEAAuE;QACvE,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,uCAAuC;IACvC,MAAM,QAAQ,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzD,MAAM,SAAS,GACb,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,cAAc,CAAC,2BAA2B,CAAC;IAExE,IACE,eAAe,CAAC,SAAS,CAAC;QAC1B,SAAS,KAAK,cAAc,CAAC,mBAAmB,EAChD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,SAAS,EAAE,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,SAAS,GAAG,QAAQ,EAAE,MAAM,EAAE,gBAAgB,IAAI,EAAE,CAAC;QAC3D,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,UAAU;gBAChB,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC;gBAC9B,GAAG,EAAE,YAAY,SAAS,CAAC,EAAE,CAAC,CAAC,UAAU,IAAI,EAAE,EAAE;aAClD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,kBAAkB,EAAE,CAAC;QACvB,MAAM,kBAAkB,GAAG,QAAQ,EAAE,IAAI,EAAE,OAAO,KAAK,kBAAkB,CAAC;QAC1E,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,kBAAkB;gBAC3B,GAAG,EAAE,kBAAkB;aACxB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC9B,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAC1B,UAAqC,EACrC,qBAAwD;IAExD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAyB,CAAC;IACxD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,KAAK,MAAM,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACrD,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IACD,IAAI,qBAAqB,EAAE,CAAC;QAC1B,KAAK,MAAM,GAAG,IAAI,qBAAqB,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;YACtE,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IACD,OAAO,EAAE,cAAc,EAAE,CAAC;AAC5B,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,UAAU,EACV,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,GAAG,KAAK,EACvB,qBAAqB,GAAG,KAAK,GACV;IACnB,MAAM,gBAAgB,GAAG,gBAAgB,IAAI,IAAI,CAAC;IAClD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAClC,GAAG,EAAE,CACH,gBAAgB,CACd,UAAU,EACV,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,CACtB,EACH;QACE,UAAU;QACV,qBAAqB;QACrB,kBAAkB;QAClB,gBAAgB;QAChB,qBAAqB;KACtB,CACF,CAAC;IAEF,MAAM,iBAAiB,GAAG,OAAO,CAC/B,GAAG,EAAE,CAAC,mBAAmB,CAAC,UAAU,EAAE,qBAAqB,CAAC,EAC5D,CAAC,UAAU,EAAE,qBAAqB,CAAC,CACpC,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEzC,OAAO,CACL,KAAC,iBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,iBAAiB,YAClD,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,MAAM,IAAC,KAAK,EAAE,YAAY,YACxB,CAAC,IAAI,EAAE,EAAE,CAAC,CACT,KAAC,GAAG,IAAgB,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,YACvD,UAAU,CAAC,IAAI,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"MessageThread.js","sourceRoot":"","sources":["../../src/components/MessageThread.tsx"],"names":[],"mappings":"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"}
|
package/file-review.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CapturedFileChange, FileChangeSet } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/filereview_pb";
|
|
1
|
+
import type { CapturedFileChange, FileChangeProgressEntry, FileChangeSet } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/filereview_pb";
|
|
2
2
|
import { FileChangeKind } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
3
3
|
/**
|
|
4
4
|
* Single-letter badge for a file change's kind, matching the web review card:
|
|
@@ -8,16 +8,40 @@ import { FileChangeKind } from "@stigmer/protos/ai/stigmer/agentic/agentexecutio
|
|
|
8
8
|
*/
|
|
9
9
|
export declare function kindLetter(kind: FileChangeKind): string;
|
|
10
10
|
/**
|
|
11
|
-
* The path to show for a change: the post-edit path, or the pre-edit
|
|
12
|
-
* deletion. A rename shows `before → after` so both sides are visible.
|
|
11
|
+
* The path to show for a reviewable change: the post-edit path, or the pre-edit
|
|
12
|
+
* path for a deletion. A rename shows `before → after` so both sides are visible.
|
|
13
13
|
*/
|
|
14
14
|
export declare function changeDisplayPath(change: CapturedFileChange): string;
|
|
15
|
+
/**
|
|
16
|
+
* The path to show for a mid-run progress entry (DD-32), using the same
|
|
17
|
+
* rename-aware rule as {@link changeDisplayPath}. The slim entry carries no
|
|
18
|
+
* bodies or digests, only the same before/after/kind triple, so the terminal
|
|
19
|
+
* renders its path identically to the reviewable surfaces.
|
|
20
|
+
*/
|
|
21
|
+
export declare function progressEntryDisplayPath(entry: FileChangeProgressEntry): string;
|
|
15
22
|
/**
|
|
16
23
|
* The honest, one-line reason a change cannot be kept as-is, or `null` when it
|
|
17
24
|
* is fully reviewable. Mirrors the web card's per-file block-reason copy so the
|
|
18
25
|
* terminal reviewer sees the same explanation.
|
|
19
26
|
*/
|
|
20
27
|
export declare function blockReasonNote(change: CapturedFileChange): string | null;
|
|
28
|
+
/** The aggregate `+N −M` line counts for a change set. */
|
|
29
|
+
export interface LineStats {
|
|
30
|
+
/** Total lines added across the set's changes. */
|
|
31
|
+
readonly linesAdded: number;
|
|
32
|
+
/** Total lines removed across the set's changes. */
|
|
33
|
+
readonly linesRemoved: number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Sums a change set's per-file `linesAdded`/`linesRemoved` into one aggregate,
|
|
37
|
+
* for the set-level `+N −M` shown beside the prompt header and the settled
|
|
38
|
+
* record summary (parity with the web card's collapsed-bar aggregate). Counts
|
|
39
|
+
* every change regardless of verdict — it reports what changed, not what was
|
|
40
|
+
* kept. A file with no counts (binary, secret-withheld, or a record predating
|
|
41
|
+
* the fields) contributes zero, so the aggregate honestly understates rather
|
|
42
|
+
* than guessing; when NO file has counts it is zero and the stat is hidden.
|
|
43
|
+
*/
|
|
44
|
+
export declare function changeSetLineStats(set: FileChangeSet): LineStats;
|
|
21
45
|
/** The effective per-file verdict counts for a settled change set. */
|
|
22
46
|
export interface SettledCounts {
|
|
23
47
|
/** Files kept (effective verdict APPROVE). */
|
package/file-review.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-review.d.ts","sourceRoot":"","sources":["../src/file-review.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,aAAa,EACd,MAAM,oEAAoE,CAAC;AAC5E,OAAO,EACL,cAAc,EAEf,MAAM,8DAA8D,CAAC;AAGtE;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAWvD;
|
|
1
|
+
{"version":3,"file":"file-review.d.ts","sourceRoot":"","sources":["../src/file-review.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,uBAAuB,EACvB,aAAa,EACd,MAAM,oEAAoE,CAAC;AAC5E,OAAO,EACL,cAAc,EAEf,MAAM,8DAA8D,CAAC;AAGtE;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAWvD;AAoBD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAEpE;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,uBAAuB,GAAG,MAAM,CAE/E;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI,CAiBzE;AAED,0DAA0D;AAC1D,MAAM,WAAW,SAAS;IACxB,kDAAkD;IAClD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,oDAAoD;IACpD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,aAAa,GAAG,SAAS,CAQhE;AAED,sEAAsE;AACtE,MAAM,WAAW,aAAa;IAC5B,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kDAAkD;IAClD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,oEAAoE;IACpE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,aAAa,GAAG,aAAa,CAc/D;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CASzD"}
|
package/file-review.js
CHANGED
|
@@ -19,14 +19,33 @@ export function kindLetter(kind) {
|
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
|
-
* The path
|
|
23
|
-
*
|
|
22
|
+
* The one rename-aware path-display rule for the terminal, over the raw
|
|
23
|
+
* before/after/kind triple shared by every file-change shape (reviewable
|
|
24
|
+
* `CapturedFileChange` and slim `FileChangeProgressEntry` alike). Kept private
|
|
25
|
+
* and fed by the typed adapters below so the two surfaces can never grow
|
|
26
|
+
* divergent rename formatting.
|
|
24
27
|
*/
|
|
25
|
-
|
|
26
|
-
if (
|
|
27
|
-
return `${
|
|
28
|
+
function displayChangePath(pathBefore, pathAfter, kind) {
|
|
29
|
+
if (kind === FileChangeKind.RENAME && pathBefore && pathAfter) {
|
|
30
|
+
return `${pathBefore} → ${pathAfter}`;
|
|
28
31
|
}
|
|
29
|
-
return
|
|
32
|
+
return pathAfter || pathBefore;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* The path to show for a reviewable change: the post-edit path, or the pre-edit
|
|
36
|
+
* path for a deletion. A rename shows `before → after` so both sides are visible.
|
|
37
|
+
*/
|
|
38
|
+
export function changeDisplayPath(change) {
|
|
39
|
+
return displayChangePath(change.pathBefore, change.pathAfter, change.kind);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* The path to show for a mid-run progress entry (DD-32), using the same
|
|
43
|
+
* rename-aware rule as {@link changeDisplayPath}. The slim entry carries no
|
|
44
|
+
* bodies or digests, only the same before/after/kind triple, so the terminal
|
|
45
|
+
* renders its path identically to the reviewable surfaces.
|
|
46
|
+
*/
|
|
47
|
+
export function progressEntryDisplayPath(entry) {
|
|
48
|
+
return displayChangePath(entry.pathBefore, entry.pathAfter, entry.kind);
|
|
30
49
|
}
|
|
31
50
|
/**
|
|
32
51
|
* The honest, one-line reason a change cannot be kept as-is, or `null` when it
|
|
@@ -51,6 +70,24 @@ export function blockReasonNote(change) {
|
|
|
51
70
|
}
|
|
52
71
|
}
|
|
53
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* Sums a change set's per-file `linesAdded`/`linesRemoved` into one aggregate,
|
|
75
|
+
* for the set-level `+N −M` shown beside the prompt header and the settled
|
|
76
|
+
* record summary (parity with the web card's collapsed-bar aggregate). Counts
|
|
77
|
+
* every change regardless of verdict — it reports what changed, not what was
|
|
78
|
+
* kept. A file with no counts (binary, secret-withheld, or a record predating
|
|
79
|
+
* the fields) contributes zero, so the aggregate honestly understates rather
|
|
80
|
+
* than guessing; when NO file has counts it is zero and the stat is hidden.
|
|
81
|
+
*/
|
|
82
|
+
export function changeSetLineStats(set) {
|
|
83
|
+
let linesAdded = 0;
|
|
84
|
+
let linesRemoved = 0;
|
|
85
|
+
for (const change of set.changes) {
|
|
86
|
+
linesAdded += change.linesAdded;
|
|
87
|
+
linesRemoved += change.linesRemoved;
|
|
88
|
+
}
|
|
89
|
+
return { linesAdded, linesRemoved };
|
|
90
|
+
}
|
|
54
91
|
/**
|
|
55
92
|
* Folds a settled change set's decisions into kept / discarded / not-reviewed
|
|
56
93
|
* counts, using the same `deriveEffectiveVerdicts` fold the web uses so a
|
package/file-review.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-review.js","sourceRoot":"","sources":["../src/file-review.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"file-review.js","sourceRoot":"","sources":["../src/file-review.ts"],"names":[],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -10,7 +10,10 @@ export { TodoList, type TodoListProps } from "./components/TodoList.js";
|
|
|
10
10
|
export { ApprovalPrompt, type ApprovalPromptProps } from "./components/ApprovalPrompt.js";
|
|
11
11
|
export { FileReviewPrompt, type FileReviewPromptProps } from "./components/FileReviewPrompt.js";
|
|
12
12
|
export { FileReviewRecord, type FileReviewRecordProps } from "./components/FileReviewRecord.js";
|
|
13
|
-
export {
|
|
13
|
+
export { FileDiffBody, type FileDiffBodyProps } from "./components/FileDiffBody.js";
|
|
14
|
+
export { FileChangeProgressBar, type FileChangeProgressBarProps, } from "./components/FileChangeProgressBar.js";
|
|
15
|
+
export { FileLineStats } from "./components/FileReviewAtoms.js";
|
|
16
|
+
export { kindLetter, changeDisplayPath, progressEntryDisplayPath, blockReasonNote, changeSetLineStats, settledCounts, settledSummary, type LineStats, type SettledCounts, } from "./file-review.js";
|
|
14
17
|
export { ExecutionProgress, type ExecutionProgressProps } from "./components/ExecutionProgress.js";
|
|
15
18
|
export { FollowUpInput, type FollowUpInputProps } from "./components/FollowUpInput.js";
|
|
16
19
|
export { UsageWidget, type UsageWidgetProps } from "./components/UsageWidget.js";
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAGjF,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,KAAK,gBAAgB,GACtB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAGjF,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,KAAK,gBAAgB,GACtB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAChG,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,EACL,qBAAqB,EACrB,KAAK,0BAA0B,GAChC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGhE,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,wBAAwB,EACxB,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,KAAK,SAAS,EACd,KAAK,aAAa,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AACnG,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAGpF,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,KAAK,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC3G,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGvF,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAChG,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
|
package/index.js
CHANGED
|
@@ -14,8 +14,11 @@ export { TodoList } from "./components/TodoList.js";
|
|
|
14
14
|
export { ApprovalPrompt } from "./components/ApprovalPrompt.js";
|
|
15
15
|
export { FileReviewPrompt } from "./components/FileReviewPrompt.js";
|
|
16
16
|
export { FileReviewRecord } from "./components/FileReviewRecord.js";
|
|
17
|
+
export { FileDiffBody } from "./components/FileDiffBody.js";
|
|
18
|
+
export { FileChangeProgressBar, } from "./components/FileChangeProgressBar.js";
|
|
19
|
+
export { FileLineStats } from "./components/FileReviewAtoms.js";
|
|
17
20
|
// File-review pure helpers (kind letters, paths, block reasons, settled counts)
|
|
18
|
-
export { kindLetter, changeDisplayPath, blockReasonNote, settledCounts, settledSummary, } from "./file-review.js";
|
|
21
|
+
export { kindLetter, changeDisplayPath, progressEntryDisplayPath, blockReasonNote, changeSetLineStats, settledCounts, settledSummary, } from "./file-review.js";
|
|
19
22
|
export { ExecutionProgress } from "./components/ExecutionProgress.js";
|
|
20
23
|
export { FollowUpInput } from "./components/FollowUpInput.js";
|
|
21
24
|
export { UsageWidget } from "./components/UsageWidget.js";
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,OAAO,EAAE,kBAAkB,EAAgC,MAAM,eAAe,CAAC;AAEjF,iDAAiD;AACjD,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GAEpB,MAAM,mBAAmB,CAAC;AAE3B,WAAW;AACX,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,aAAa;AACb,OAAO,EAAE,YAAY,EAA0B,MAAM,8BAA8B,CAAC;AACpF,OAAO,EAAE,aAAa,EAA2B,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,YAAY,EAA0B,MAAM,8BAA8B,CAAC;AACpF,OAAO,EAAE,aAAa,EAA2B,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,aAAa,EAA2B,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,QAAQ,EAAsB,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,cAAc,EAA4B,MAAM,gCAAgC,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAA8B,MAAM,kCAAkC,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAA8B,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,OAAO,EAAE,kBAAkB,EAAgC,MAAM,eAAe,CAAC;AAEjF,iDAAiD;AACjD,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GAEpB,MAAM,mBAAmB,CAAC;AAE3B,WAAW;AACX,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,aAAa;AACb,OAAO,EAAE,YAAY,EAA0B,MAAM,8BAA8B,CAAC;AACpF,OAAO,EAAE,aAAa,EAA2B,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,YAAY,EAA0B,MAAM,8BAA8B,CAAC;AACpF,OAAO,EAAE,aAAa,EAA2B,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,aAAa,EAA2B,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,QAAQ,EAAsB,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,cAAc,EAA4B,MAAM,gCAAgC,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAA8B,MAAM,kCAAkC,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAA8B,MAAM,kCAAkC,CAAC;AAChG,OAAO,EAAE,YAAY,EAA0B,MAAM,8BAA8B,CAAC;AACpF,OAAO,EACL,qBAAqB,GAEtB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,gFAAgF;AAChF,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,wBAAwB,EACxB,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,cAAc,GAGf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAA+B,MAAM,mCAAmC,CAAC;AACnG,OAAO,EAAE,aAAa,EAA2B,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,WAAW,EAAyB,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,YAAY,EAA0B,MAAM,8BAA8B,CAAC;AAEpF,0CAA0C;AAC1C,OAAO,EAAE,cAAc,EAA6C,MAAM,gCAAgC,CAAC;AAC3G,OAAO,EAAE,WAAW,EAAyB,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,aAAa,EAA2B,MAAM,+BAA+B,CAAC;AAEvF,iBAAiB;AACjB,OAAO,EAAE,WAAW,EAA+C,MAAM,sBAAsB,CAAC;AAChG,OAAO,EAAE,UAAU,EAAwB,MAAM,qBAAqB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stigmer/ink",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.4",
|
|
4
4
|
"description": "Ink (React for terminals) components for rendering Stigmer agent sessions in the terminal",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@connectrpc/connect-node": "^2.1.1",
|
|
38
|
-
"@stigmer/react": "3.1.
|
|
38
|
+
"@stigmer/react": "3.1.4",
|
|
39
39
|
"ink-spinner": "^5.0.0",
|
|
40
40
|
"ink-text-input": "^6.0.0",
|
|
41
41
|
"marked": "^15.0.7",
|
|
@@ -43,8 +43,8 @@
|
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|
|
45
45
|
"@bufbuild/protobuf": "^2.0.0",
|
|
46
|
-
"@stigmer/protos": "3.1.
|
|
47
|
-
"@stigmer/sdk": "3.1.
|
|
46
|
+
"@stigmer/protos": "3.1.4",
|
|
47
|
+
"@stigmer/sdk": "3.1.4",
|
|
48
48
|
"ink": "^7.0.0",
|
|
49
49
|
"react": ">=19.0.0"
|
|
50
50
|
}
|
|
@@ -7,10 +7,12 @@ import { AgentMessageSchema } from "@stigmer/protos/ai/stigmer/agentic/agentexec
|
|
|
7
7
|
import { MessageType, ExecutionPhase, ToolCallStatus, ApprovalAction, ApprovalPolicySource } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
8
8
|
import { ToolCallSchema } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/message_pb";
|
|
9
9
|
import { PendingApprovalSchema } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/approval_pb";
|
|
10
|
+
import { AgentExecutionSchema } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
|
|
10
11
|
import { MessageEntry } from "../components/MessageEntry.js";
|
|
11
12
|
import { ExecutionProgress } from "../components/ExecutionProgress.js";
|
|
12
13
|
import { ToolCallItem } from "../components/ToolCallItem.js";
|
|
13
14
|
import { ApprovalPrompt } from "../components/ApprovalPrompt.js";
|
|
15
|
+
import { MessageThread } from "../components/MessageThread.js";
|
|
14
16
|
|
|
15
17
|
describe("MessageEntry", () => {
|
|
16
18
|
it("renders a human message with 'You' prefix", () => {
|
|
@@ -221,4 +223,67 @@ describe("ApprovalPrompt", () => {
|
|
|
221
223
|
|
|
222
224
|
expect(onSubmit).toHaveBeenCalledWith(ApprovalAction.APPROVE);
|
|
223
225
|
});
|
|
226
|
+
|
|
227
|
+
it("ignores keyboard input when inactive", () => {
|
|
228
|
+
const pending = create(PendingApprovalSchema);
|
|
229
|
+
pending.toolCallId = "tc-1";
|
|
230
|
+
pending.toolName = "write_file";
|
|
231
|
+
const onSubmit = vi.fn();
|
|
232
|
+
|
|
233
|
+
const { stdin } = render(
|
|
234
|
+
<ApprovalPrompt
|
|
235
|
+
pendingApproval={pending}
|
|
236
|
+
onSubmit={onSubmit}
|
|
237
|
+
isActive={false}
|
|
238
|
+
/>,
|
|
239
|
+
);
|
|
240
|
+
stdin.write("y");
|
|
241
|
+
stdin.write("a");
|
|
242
|
+
|
|
243
|
+
expect(onSubmit).not.toHaveBeenCalled();
|
|
244
|
+
});
|
|
245
|
+
});
|
|
246
|
+
|
|
247
|
+
describe("MessageThread — multi-approval keyboard arbitration", () => {
|
|
248
|
+
function execWithApprovals(...toolCallIds: string[]) {
|
|
249
|
+
const pendingApprovals = toolCallIds.map((id) => {
|
|
250
|
+
const pa = create(PendingApprovalSchema);
|
|
251
|
+
pa.toolCallId = id;
|
|
252
|
+
pa.toolName = "write_file";
|
|
253
|
+
return pa;
|
|
254
|
+
});
|
|
255
|
+
return create(AgentExecutionSchema, {
|
|
256
|
+
metadata: { id: "aex-1" },
|
|
257
|
+
status: { pendingApprovals },
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
it("routes a single keystroke to only the FIRST of multiple pending approvals", () => {
|
|
262
|
+
// The regression lock for the keyboard-sharing bug: two live ApprovalPrompts
|
|
263
|
+
// each had an unconditional useInput, so one keystroke settled both. Now only
|
|
264
|
+
// the first is active.
|
|
265
|
+
const onApprovalSubmit = vi.fn();
|
|
266
|
+
const exec = execWithApprovals("tc-1", "tc-2");
|
|
267
|
+
|
|
268
|
+
const { stdin } = render(
|
|
269
|
+
<MessageThread executions={[exec]} onApprovalSubmit={onApprovalSubmit} />,
|
|
270
|
+
);
|
|
271
|
+
stdin.write("y");
|
|
272
|
+
|
|
273
|
+
expect(onApprovalSubmit).toHaveBeenCalledTimes(1);
|
|
274
|
+
expect(onApprovalSubmit).toHaveBeenCalledWith("tc-1", ApprovalAction.APPROVE);
|
|
275
|
+
});
|
|
276
|
+
|
|
277
|
+
it("keeps the sole pending approval interactive", () => {
|
|
278
|
+
const onApprovalSubmit = vi.fn();
|
|
279
|
+
const exec = execWithApprovals("tc-1");
|
|
280
|
+
|
|
281
|
+
const { stdin } = render(
|
|
282
|
+
<MessageThread executions={[exec]} onApprovalSubmit={onApprovalSubmit} />,
|
|
283
|
+
);
|
|
284
|
+
stdin.write("y");
|
|
285
|
+
|
|
286
|
+
expect(onApprovalSubmit).toHaveBeenCalledTimes(1);
|
|
287
|
+
expect(onApprovalSubmit).toHaveBeenCalledWith("tc-1", ApprovalAction.APPROVE);
|
|
288
|
+
});
|
|
224
289
|
});
|
|
@@ -2,12 +2,12 @@ import React from "react";
|
|
|
2
2
|
import { describe, it, expect, vi } from "vitest";
|
|
3
3
|
import { render } from "ink-testing-library";
|
|
4
4
|
import { create } from "@bufbuild/protobuf";
|
|
5
|
-
import type { Stigmer } from "@stigmer/sdk";
|
|
6
5
|
import { SearchResultSchema } from "@stigmer/protos/ai/stigmer/search/v1/io_pb";
|
|
7
6
|
import { SessionSchema } from "@stigmer/protos/ai/stigmer/agentic/session/v1/api_pb";
|
|
8
7
|
import { InkStigmerProvider } from "../provider.js";
|
|
9
8
|
import { AgentPicker } from "../components/AgentPicker.js";
|
|
10
9
|
import { SessionPicker } from "../components/SessionPicker.js";
|
|
10
|
+
import { fakeClient } from "./test-support.js";
|
|
11
11
|
|
|
12
12
|
const KEY = { enter: "\r" } as const;
|
|
13
13
|
|
|
@@ -27,11 +27,6 @@ function session(id: string, subject: string, agentInstanceId: string) {
|
|
|
27
27
|
});
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
// Minimal Stigmer stub exposing only the methods the picker hooks call.
|
|
31
|
-
function fakeClient(overrides: Record<string, unknown>): Stigmer {
|
|
32
|
-
return overrides as unknown as Stigmer;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
30
|
describe("AgentPicker", () => {
|
|
36
31
|
it("renders search results and returns the chosen agent on Enter", async () => {
|
|
37
32
|
const results = [
|