zelari-code 0.2.2 → 0.4.3
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/README.md +55 -2
- package/dist/agents/councilApi.js +7 -7
- package/dist/agents/councilApi.js.map +1 -1
- package/dist/agents/councilDirectives.js +3 -3
- package/dist/agents/promoteMember.js +2 -2
- package/dist/agents/roles.js +32 -32
- package/dist/agents/roles.js.map +1 -1
- package/dist/agents/skills/builtin/debugging.js +4 -4
- package/dist/agents/skills/builtin/debugging.js.map +1 -1
- package/dist/agents/skills/builtin/docs.js +13 -23
- package/dist/agents/skills/builtin/docs.js.map +1 -1
- package/dist/agents/skills/builtin/git-ops.js +3 -3
- package/dist/agents/skills/builtin/git-ops.js.map +1 -1
- package/dist/agents/skills/builtin/planning.js +4 -4
- package/dist/agents/skills/builtin/planning.js.map +1 -1
- package/dist/agents/skills/builtin/refactoring.js +3 -3
- package/dist/agents/skills/builtin/refactoring.js.map +1 -1
- package/dist/agents/skills/builtin/review.js +9 -9
- package/dist/agents/skills/builtin/review.js.map +1 -1
- package/dist/agents/skills/builtin/testing.js +3 -3
- package/dist/agents/skills/builtin/testing.js.map +1 -1
- package/dist/agents/tools.js +9 -2
- package/dist/agents/tools.js.map +1 -1
- package/dist/cli/app.js +78 -1850
- package/dist/cli/app.js.map +1 -1
- package/dist/cli/components/ChatStream.js +25 -5
- package/dist/cli/components/ChatStream.js.map +1 -1
- package/dist/cli/components/CollapsibleToolOutput.js +21 -3
- package/dist/cli/components/CollapsibleToolOutput.js.map +1 -1
- package/dist/cli/components/Header.js +20 -1
- package/dist/cli/components/Header.js.map +1 -1
- package/dist/cli/components/InputBar.js +34 -2
- package/dist/cli/components/InputBar.js.map +1 -1
- package/dist/cli/components/Sidebar.js +30 -10
- package/dist/cli/components/Sidebar.js.map +1 -1
- package/dist/cli/councilDispatcher.js +9 -1
- package/dist/cli/councilDispatcher.js.map +1 -1
- package/dist/cli/hooks/chatStats.js +28 -0
- package/dist/cli/hooks/chatStats.js.map +1 -0
- package/dist/cli/hooks/eventsToMessages.js +80 -0
- package/dist/cli/hooks/eventsToMessages.js.map +1 -0
- package/dist/cli/hooks/messageHelpers.js +75 -0
- package/dist/cli/hooks/messageHelpers.js.map +1 -0
- package/dist/cli/hooks/skillCompare.js +69 -0
- package/dist/cli/hooks/skillCompare.js.map +1 -0
- package/dist/cli/hooks/steer.js +28 -0
- package/dist/cli/hooks/steer.js.map +1 -0
- package/dist/cli/hooks/useChatTurn.js +307 -0
- package/dist/cli/hooks/useChatTurn.js.map +1 -0
- package/dist/cli/hooks/useSession.js +107 -0
- package/dist/cli/hooks/useSession.js.map +1 -0
- package/dist/cli/hooks/useSlashDispatch.js +300 -0
- package/dist/cli/hooks/useSlashDispatch.js.map +1 -0
- package/dist/cli/hooks/useTerminalSize.js +60 -0
- package/dist/cli/hooks/useTerminalSize.js.map +1 -0
- package/dist/cli/main.bundled.js +24214 -21747
- package/dist/cli/main.bundled.js.map +4 -4
- package/dist/cli/main.js +1 -1
- package/dist/cli/sessionManager.js +46 -0
- package/dist/cli/sessionManager.js.map +1 -1
- package/dist/cli/slashCommands.js +72 -3
- package/dist/cli/slashCommands.js.map +1 -1
- package/dist/cli/slashHandlers/branch.js +48 -0
- package/dist/cli/slashHandlers/branch.js.map +1 -0
- package/dist/cli/slashHandlers/git.js +115 -0
- package/dist/cli/slashHandlers/git.js.map +1 -0
- package/dist/cli/slashHandlers/provider.js +199 -0
- package/dist/cli/slashHandlers/provider.js.map +1 -0
- package/dist/cli/slashHandlers/skills.js +82 -0
- package/dist/cli/slashHandlers/skills.js.map +1 -0
- package/dist/cli/slashHandlers/workspace.js +118 -0
- package/dist/cli/slashHandlers/workspace.js.map +1 -0
- package/dist/cli/toolRegistry.js +12 -3
- package/dist/cli/toolRegistry.js.map +1 -1
- package/dist/cli/utils/duration.js +34 -0
- package/dist/cli/utils/duration.js.map +1 -0
- package/dist/cli/workspace/agentsMd.js +314 -0
- package/dist/cli/workspace/agentsMd.js.map +1 -0
- package/dist/cli/workspace/index.js +24 -0
- package/dist/cli/workspace/index.js.map +1 -0
- package/dist/cli/workspace/paths.js +88 -0
- package/dist/cli/workspace/paths.js.map +1 -0
- package/dist/cli/workspace/postCouncilHook.js +38 -0
- package/dist/cli/workspace/postCouncilHook.js.map +1 -0
- package/dist/cli/workspace/storage.js +392 -0
- package/dist/cli/workspace/storage.js.map +1 -0
- package/dist/cli/workspace/stubs.js +528 -0
- package/dist/cli/workspace/stubs.js.map +1 -0
- package/dist/cli/workspace/toolRegistry.js +61 -0
- package/dist/cli/workspace/toolRegistry.js.map +1 -0
- package/dist/cli/workspace/types.js +10 -0
- package/dist/cli/workspace/types.js.map +1 -0
- package/dist/main/core/tools/builtin/_walk.js +129 -0
- package/dist/main/core/tools/builtin/_walk.js.map +1 -0
- package/dist/main/core/tools/builtin/diff.js +477 -0
- package/dist/main/core/tools/builtin/diff.js.map +1 -0
- package/dist/main/core/tools/builtin/listFiles.js +5 -43
- package/dist/main/core/tools/builtin/listFiles.js.map +1 -1
- package/dist/main/core/tools/builtin/search.js +120 -28
- package/dist/main/core/tools/builtin/search.js.map +1 -1
- package/package.json +5 -2
package/dist/cli/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/cli/app.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/cli/app.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Box, Text } from 'ink';
|
|
3
3
|
import { CollapsibleToolOutput } from './CollapsibleToolOutput.js';
|
|
4
|
+
/** Estimate the rendered row count for a single message. */
|
|
4
5
|
function estimateMessageHeight(m, width) {
|
|
5
6
|
if (m.role === 'tool') {
|
|
6
7
|
// Collapsed tool output takes 1 line of summary
|
|
@@ -14,12 +15,11 @@ function estimateMessageHeight(m, width) {
|
|
|
14
15
|
return 1 + textRows + 1; // header + textRows + margin-bottom
|
|
15
16
|
}
|
|
16
17
|
/**
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
18
|
+
* Pure helper: pick which messages fit in `height`, applying a top-truncation
|
|
19
|
+
* to the first message that overflows. Extracted so it's unit-testable and
|
|
20
|
+
* memoizable in the component.
|
|
20
21
|
*/
|
|
21
|
-
export function
|
|
22
|
-
// Let's compute the visible messages that fit in the height
|
|
22
|
+
export function pickVisibleMessages(messages, height, width) {
|
|
23
23
|
const visibleMessages = [];
|
|
24
24
|
let remainingHeight = height - 1; // 1 row buffer for safety
|
|
25
25
|
for (let i = messages.length - 1; i >= 0; i--) {
|
|
@@ -56,6 +56,25 @@ export function ChatStream({ messages, height, width }) {
|
|
|
56
56
|
break;
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
|
+
return visibleMessages;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Stateless rendering of the chat transcript. Tool messages (role === 'tool')
|
|
63
|
+
* are rendered via CollapsibleToolOutput so each invocation can be expanded
|
|
64
|
+
* to inspect its body (Task B.2.2).
|
|
65
|
+
*
|
|
66
|
+
* Performance: `visibleMessages` is computed via `React.useMemo` keyed on
|
|
67
|
+
* [messages, height, width]. Without this, every streaming token delta from
|
|
68
|
+
* the LLM (≈20-50/sec) would trigger:
|
|
69
|
+
* - O(N) `estimateMessageHeight` calls per render
|
|
70
|
+
* - O(N) `m.content.split('\n')` calls inside the truncation branch
|
|
71
|
+
* - A new `visibleMessages` array, which causes every child to re-render
|
|
72
|
+
*
|
|
73
|
+
* Wrapped in React.memo so the component re-renders only when its props
|
|
74
|
+
* actually change (messages array identity, height, width).
|
|
75
|
+
*/
|
|
76
|
+
function ChatStreamImpl({ messages, height, width }) {
|
|
77
|
+
const visibleMessages = React.useMemo(() => pickVisibleMessages(messages, height, width), [messages, height, width]);
|
|
59
78
|
return (React.createElement(Box, { flexDirection: "column", flexGrow: 1, paddingX: 1, height: height }, visibleMessages.length === 0 ? (React.createElement(Text, { dimColor: true }, "Ready. Type a prompt or /skill <name> to invoke a skill.")) : (visibleMessages.map((m) => {
|
|
60
79
|
if (m.role === 'tool') {
|
|
61
80
|
return (React.createElement(CollapsibleToolOutput, { key: m.id, toolName: m.toolName ?? 'tool', summary: m.content, body: m.content, ok: m.toolOk, durationMs: m.toolDurationMs, defaultExpanded: false }));
|
|
@@ -69,4 +88,5 @@ export function ChatStream({ messages, height, width }) {
|
|
|
69
88
|
React.createElement(Text, null, m.content))));
|
|
70
89
|
}))));
|
|
71
90
|
}
|
|
91
|
+
export const ChatStream = React.memo(ChatStreamImpl);
|
|
72
92
|
//# sourceMappingURL=ChatStream.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatStream.js","sourceRoot":"","sources":["../../../src/cli/components/ChatStream.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAqBnE,SAAS,qBAAqB,CAAC,CAAc,EAAE,KAAa;IAC1D,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACtB,gDAAgD;QAChD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,oCAAoC;AAC/D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"ChatStream.js","sourceRoot":"","sources":["../../../src/cli/components/ChatStream.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useState } from 'react';
|
|
1
|
+
import React, { useState, useEffect } from 'react';
|
|
2
2
|
import { Box, Text } from 'ink';
|
|
3
3
|
function borderColor(toolName, ok) {
|
|
4
4
|
if (ok === false)
|
|
@@ -12,10 +12,18 @@ function borderColor(toolName, ok) {
|
|
|
12
12
|
return 'red';
|
|
13
13
|
return 'cyan';
|
|
14
14
|
}
|
|
15
|
-
|
|
15
|
+
function CollapsibleToolOutputImpl(props) {
|
|
16
16
|
const { toolName, summary, body, durationMs, ok, defaultExpanded = false } = props;
|
|
17
17
|
const isControlled = typeof props.expanded === 'boolean';
|
|
18
18
|
const [localExpanded, setLocalExpanded] = useState(defaultExpanded);
|
|
19
|
+
// Sync uncontrolled state when the controlled prop is undefined and
|
|
20
|
+
// defaultExpanded changes post-mount (rare but possible on session
|
|
21
|
+
// resume, where the restored message carries defaultExpanded=true).
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
if (!isControlled)
|
|
24
|
+
setLocalExpanded(defaultExpanded);
|
|
25
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
26
|
+
}, [defaultExpanded, isControlled]);
|
|
19
27
|
const expanded = isControlled ? props.expanded : localExpanded;
|
|
20
28
|
const color = borderColor(toolName, ok);
|
|
21
29
|
const summaryLine = [
|
|
@@ -27,8 +35,18 @@ export function CollapsibleToolOutput(props) {
|
|
|
27
35
|
return (React.createElement(Box, { flexDirection: "column", marginLeft: 2 },
|
|
28
36
|
React.createElement(Box, null,
|
|
29
37
|
React.createElement(Text, { color: color }, summaryLine)),
|
|
30
|
-
expanded && (React.createElement(Box, { flexDirection: "column", marginLeft: 2, borderStyle: "single", borderColor: color, paddingX: 1 },
|
|
38
|
+
expanded && (React.createElement(Box, { flexDirection: "column", marginLeft: 2, borderStyle: "single", borderColor: color, paddingX: 1 },
|
|
39
|
+
React.createElement(Text, { dimColor: ok === false }, body)))));
|
|
31
40
|
}
|
|
41
|
+
export const CollapsibleToolOutput = React.memo(CollapsibleToolOutputImpl, (prev, next) => {
|
|
42
|
+
return (prev.toolName === next.toolName &&
|
|
43
|
+
prev.summary === next.summary &&
|
|
44
|
+
prev.body === next.body &&
|
|
45
|
+
prev.durationMs === next.durationMs &&
|
|
46
|
+
prev.ok === next.ok &&
|
|
47
|
+
prev.expanded === next.expanded &&
|
|
48
|
+
prev.defaultExpanded === next.defaultExpanded);
|
|
49
|
+
});
|
|
32
50
|
/**
|
|
33
51
|
* Pure helper: classify tool color (exported for unit tests).
|
|
34
52
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CollapsibleToolOutput.js","sourceRoot":"","sources":["../../../src/cli/components/CollapsibleToolOutput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CollapsibleToolOutput.js","sourceRoot":"","sources":["../../../src/cli/components/CollapsibleToolOutput.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Box, Text } from 'ink';
|
|
3
3
|
import { formatCost, formatTokens } from '../modelPricing.js';
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Header bar — model, provider, skill count, session id, cost, tokens.
|
|
6
|
+
*
|
|
7
|
+
* Performance: wrapped in React.memo with a custom comparator. The Header
|
|
8
|
+
* re-renders only when one of its primitive props actually changes. This is
|
|
9
|
+
* critical because the parent App re-renders on EVERY streaming token delta
|
|
10
|
+
* (≈20-50/sec during LLM response); without memo the Header would redraw its
|
|
11
|
+
* border 50×/sec, causing visible flicker on the top edge of the terminal.
|
|
12
|
+
*/
|
|
13
|
+
function HeaderImpl({ model, provider, skillCount, sessionActive, sessionId, totalTokens, totalCostUsd }) {
|
|
5
14
|
const hasCost = typeof totalCostUsd === 'number' && totalCostUsd > 0;
|
|
6
15
|
const costStr = hasCost ? formatCost(totalCostUsd) : '$0.0000';
|
|
7
16
|
const tokStr = formatTokens(totalTokens ?? 0);
|
|
@@ -28,4 +37,14 @@ export function Header({ model, provider, skillCount, sessionActive, sessionId,
|
|
|
28
37
|
tokStr,
|
|
29
38
|
" tok")));
|
|
30
39
|
}
|
|
40
|
+
export const Header = React.memo(HeaderImpl, (prev, next) => {
|
|
41
|
+
// Custom shallow-equal for primitives — avoids Object.is on every render.
|
|
42
|
+
return (prev.model === next.model &&
|
|
43
|
+
prev.provider === next.provider &&
|
|
44
|
+
prev.skillCount === next.skillCount &&
|
|
45
|
+
prev.sessionActive === next.sessionActive &&
|
|
46
|
+
prev.sessionId === next.sessionId &&
|
|
47
|
+
prev.totalTokens === next.totalTokens &&
|
|
48
|
+
prev.totalCostUsd === next.totalCostUsd);
|
|
49
|
+
});
|
|
31
50
|
//# sourceMappingURL=Header.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/cli/components/Header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAc9D,
|
|
1
|
+
{"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/cli/components/Header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAc9D;;;;;;;;GAQG;AACH,SAAS,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAe;IACnH,MAAM,OAAO,GAAG,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,GAAG,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;IAC9C,OAAO,CACL,oBAAC,GAAG,IAAC,WAAW,EAAC,OAAO,EAAC,WAAW,EAAC,MAAM,EAAC,QAAQ,EAAE,CAAC,EAAE,aAAa,EAAC,KAAK;QAC1E,oBAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,MAAM,kBAAmB;QAC1C,oBAAC,IAAI,IAAC,QAAQ,qBAAW;QACzB,oBAAC,IAAI,QAAE,KAAK,CAAQ;QACpB,oBAAC,IAAI,IAAC,QAAQ,qBAAW;QACzB,oBAAC,IAAI,QAAE,QAAQ,CAAQ;QACvB,oBAAC,IAAI,IAAC,QAAQ,qBAAW;QACzB,oBAAC,IAAI;YAAE,UAAU;sBAAe;QAChC,oBAAC,IAAI,IAAC,QAAQ,qBAAW;QACzB,oBAAC,IAAI,IAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,IAC1C,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CACjC;QACP,oBAAC,IAAI,IAAC,QAAQ,qBAAW;QACzB,oBAAC,IAAI,IAAC,QAAQ;;YAAU,SAAS,CAAQ;QACzC,oBAAC,IAAI,IAAC,QAAQ,qBAAW;QACzB,oBAAC,IAAI,IAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,IAAG,OAAO,CAAQ;QAC1D,oBAAC,IAAI,IAAC,QAAQ,qBAAW;QACzB,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM;YAAE,MAAM;mBAAY,CAClC,CACP,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;IAC1D,0EAA0E;IAC1E,OAAO,CACL,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;QACzB,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;QAC/B,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU;QACnC,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa;QACzC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS;QACjC,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW;QACrC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY,CACxC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1,9 +1,41 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Box, Text } from 'ink';
|
|
3
3
|
import TextInput from 'ink-text-input';
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Input bar — the user prompt editor at the bottom of the TUI.
|
|
6
|
+
*
|
|
7
|
+
* Performance: React.memo with custom comparator. `onChange` and `onSubmit`
|
|
8
|
+
* are arrow functions created in App's render (line 2183-2185) which would
|
|
9
|
+
* defeat React.memo's default shallow equal. The custom comparator ignores
|
|
10
|
+
* those function identities — the InputBar re-renders only when value or
|
|
11
|
+
* disabled actually change. This stops the input cursor from being reset on
|
|
12
|
+
* every streaming token delta from the LLM (visible jitter on the bottom
|
|
13
|
+
* row of the terminal).
|
|
14
|
+
*/
|
|
15
|
+
function InputBarImpl({ value, onChange, onSubmit, disabled }) {
|
|
16
|
+
// The App-level React.memo comparator intentionally ignores onChange/onSubmit
|
|
17
|
+
// identity changes (those are fresh closures every App render). To still
|
|
18
|
+
// pick up the latest closures inside the (sometimes-skipped) memo'd
|
|
19
|
+
// render, mirror them through refs that are always read at call-time.
|
|
20
|
+
// v0.4.3 audit fix: without this, typing a long prompt while the parent
|
|
21
|
+
// re-renders (e.g. on streaming tokens) would route /submit through a
|
|
22
|
+
// stale closure capturing pre-stream values of messages/sessionId/etc.
|
|
23
|
+
const onSubmitRef = React.useRef(onSubmit);
|
|
24
|
+
const onChangeRef = React.useRef(onChange);
|
|
25
|
+
onSubmitRef.current = onSubmit;
|
|
26
|
+
onChangeRef.current = onChange;
|
|
27
|
+
const stableSubmit = React.useCallback((v) => onSubmitRef.current(v), []);
|
|
28
|
+
const stableChange = React.useCallback((v) => onChangeRef.current(v), []);
|
|
5
29
|
return (React.createElement(Box, { borderStyle: "single", borderColor: "gray", paddingX: 1 },
|
|
6
30
|
React.createElement(Text, { color: "cyan", bold: true }, "\u276F "),
|
|
7
|
-
React.createElement(TextInput, { value: value, onChange:
|
|
31
|
+
React.createElement(TextInput, { value: value, onChange: stableChange, onSubmit: stableSubmit, placeholder: disabled ? '...' : 'Type a prompt or /skill <name>' })));
|
|
8
32
|
}
|
|
33
|
+
export const InputBar = React.memo(InputBarImpl, (prev, next) => {
|
|
34
|
+
return (prev.value === next.value &&
|
|
35
|
+
prev.disabled === next.disabled
|
|
36
|
+
// onChange/onSubmit identity changes ignored: App passes fresh arrows each
|
|
37
|
+
// render. The TextInput handles its own internal state; re-binding to the
|
|
38
|
+
// new closures is safe.
|
|
39
|
+
);
|
|
40
|
+
});
|
|
9
41
|
//# sourceMappingURL=InputBar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputBar.js","sourceRoot":"","sources":["../../../src/cli/components/InputBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,SAAS,MAAM,gBAAgB,CAAC;AASvC,
|
|
1
|
+
{"version":3,"file":"InputBar.js","sourceRoot":"","sources":["../../../src/cli/components/InputBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,SAAS,MAAM,gBAAgB,CAAC;AASvC;;;;;;;;;;GAUG;AACH,SAAS,YAAY,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAiB;IAC1E,8EAA8E;IAC9E,yEAAyE;IACzE,oEAAoE;IACpE,sEAAsE;IACtE,wEAAwE;IACxE,sEAAsE;IACtE,uEAAuE;IACvE,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IAC/B,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IAC/B,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClF,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAElF,OAAO,CACL,oBAAC,GAAG,IAAC,WAAW,EAAC,QAAQ,EAAC,WAAW,EAAC,MAAM,EAAC,QAAQ,EAAE,CAAC;QACtD,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,oBAAU;QACjC,oBAAC,SAAS,IACR,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,gCAAgC,GAChE,CACE,CACP,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;IAC9D,OAAO,CACL,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;QACzB,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;IAC/B,2EAA2E;IAC3E,0EAA0E;IAC1E,wBAAwB;KACzB,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -3,22 +3,42 @@ import { Box, Text } from 'ink';
|
|
|
3
3
|
/**
|
|
4
4
|
* Sidebar showing: formatted skill list (from formatSkillList), session count,
|
|
5
5
|
* and an indicator when the user is typing a slash command.
|
|
6
|
+
*
|
|
7
|
+
* Performance: React.memo with custom comparator. sessionCount changes only on
|
|
8
|
+
* message append, not on every streaming delta — but React.memo's default
|
|
9
|
+
* shallow equal still triggers re-render because the parent passes a fresh
|
|
10
|
+
* primitive int each render. The custom comparator avoids that. Sidebar also
|
|
11
|
+
* rebuilds its visibleSkills slice via useMemo to avoid re-splitting on every
|
|
12
|
+
* parent render.
|
|
6
13
|
*/
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
function SidebarImpl({ skillList, sessionCount, isSlashMode, height }) {
|
|
15
|
+
// Truncate visible skills list to fit the available height. useMemo so we
|
|
16
|
+
// don't re-split on every render (e.g. during streaming token deltas).
|
|
17
|
+
const { visibleLines, truncated } = React.useMemo(() => {
|
|
18
|
+
const lines = skillList.split('\n');
|
|
19
|
+
const headerLines = 3 + (isSlashMode ? 1 : 0);
|
|
20
|
+
const maxSkillLines = Math.max(2, height - headerLines - 3); // 3 for border + padding
|
|
21
|
+
return {
|
|
22
|
+
visibleLines: lines.slice(0, maxSkillLines),
|
|
23
|
+
truncated: lines.length > maxSkillLines,
|
|
24
|
+
};
|
|
25
|
+
}, [skillList, isSlashMode, height]);
|
|
16
26
|
return (React.createElement(Box, { flexDirection: "column", width: 40, height: height, borderStyle: "single", borderColor: "gray", paddingX: 1 },
|
|
17
27
|
React.createElement(Text, { bold: true, color: "cyan" }, "Skills & sessions"),
|
|
18
28
|
React.createElement(Text, { dimColor: true },
|
|
19
29
|
"Sessions: ",
|
|
20
30
|
sessionCount),
|
|
21
31
|
isSlashMode && React.createElement(Text, { color: "yellow" }, "\u2328 slash command mode"),
|
|
22
|
-
React.createElement(Box, { marginTop: 1, flexDirection: "column" },
|
|
32
|
+
React.createElement(Box, { marginTop: 1, flexDirection: "column" },
|
|
33
|
+
visibleLines.map((line, idx) => (
|
|
34
|
+
// key={idx} is OK here: order is stable, content is what changes.
|
|
35
|
+
React.createElement(Text, { key: idx }, line))),
|
|
36
|
+
truncated && React.createElement(Text, { dimColor: true }, " ... (more in /skills)"))));
|
|
23
37
|
}
|
|
38
|
+
export const Sidebar = React.memo(SidebarImpl, (prev, next) => {
|
|
39
|
+
return (prev.skillList === next.skillList &&
|
|
40
|
+
prev.sessionCount === next.sessionCount &&
|
|
41
|
+
prev.isSlashMode === next.isSlashMode &&
|
|
42
|
+
prev.height === next.height);
|
|
43
|
+
});
|
|
24
44
|
//# sourceMappingURL=Sidebar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sidebar.js","sourceRoot":"","sources":["../../../src/cli/components/Sidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAShC
|
|
1
|
+
{"version":3,"file":"Sidebar.js","sourceRoot":"","sources":["../../../src/cli/components/Sidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAShC;;;;;;;;;;GAUG;AACH,SAAS,WAAW,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAgB;IACjF,0EAA0E;IAC1E,uEAAuE;IACvE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACrD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,yBAAyB;QACtF,OAAO;YACL,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC;YAC3C,SAAS,EAAE,KAAK,CAAC,MAAM,GAAG,aAAa;SACxC,CAAC;IACJ,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IAErC,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAC,QAAQ,EAAC,WAAW,EAAC,MAAM,EAAC,QAAQ,EAAE,CAAC;QACxG,oBAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,MAAM,wBAA6B;QACpD,oBAAC,IAAI,IAAC,QAAQ;;YAAY,YAAY,CAAQ;QAC7C,WAAW,IAAI,oBAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,gCAA4B;QAChE,oBAAC,GAAG,IAAC,SAAS,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ;YACtC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;YAC/B,kEAAkE;YAClE,oBAAC,IAAI,IAAC,GAAG,EAAE,GAAG,IAAG,IAAI,CAAQ,CAC9B,CAAC;YACD,SAAS,IAAI,oBAAC,IAAI,IAAC,QAAQ,oCAA+B,CACvD,CACF,CACP,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;IAC5D,OAAO,CACL,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS;QACjC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY;QACvC,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW;QACrC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAC5B,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -16,6 +16,8 @@
|
|
|
16
16
|
* @see docs/plans/2026-06-28-zelari-code.md (Task 14.7)
|
|
17
17
|
*/
|
|
18
18
|
import { runCouncilPure, } from '../agents/councilApi.js';
|
|
19
|
+
import { createWorkspaceContext } from './workspace/stubs.js';
|
|
20
|
+
import { createWorkspaceToolRegistry } from './workspace/toolRegistry.js';
|
|
19
21
|
export class CouncilDispatchError extends Error {
|
|
20
22
|
constructor(message) {
|
|
21
23
|
super(message);
|
|
@@ -47,7 +49,13 @@ export async function* dispatchCouncil(userMessage, options) {
|
|
|
47
49
|
providerStream: options.providerStream,
|
|
48
50
|
eventBus: options.eventBus,
|
|
49
51
|
sessionId: options.sessionId,
|
|
50
|
-
|
|
52
|
+
// Default to the workspace tool registry (CLI standalone has no
|
|
53
|
+
// AnathemaBrain Electron ctx). Pass `tools: undefined` via options
|
|
54
|
+
// to skip workspace wiring (e.g. in tests).
|
|
55
|
+
tools: options.tools
|
|
56
|
+
?? (options.disableWorkspaceTools
|
|
57
|
+
? undefined
|
|
58
|
+
: createWorkspaceToolRegistry(createWorkspaceContext())),
|
|
51
59
|
maxToolCallsPerTurn: options.maxToolCallsPerTurn,
|
|
52
60
|
feedbackStore: options.feedbackStore,
|
|
53
61
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"councilDispatcher.js","sourceRoot":"","sources":["../../src/cli/councilDispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,cAAc,GAEf,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"councilDispatcher.js","sourceRoot":"","sources":["../../src/cli/councilDispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,cAAc,GAEf,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAoD1E,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,eAAe,CACpC,WAAmB,EACnB,OAA+B;IAE/B,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,oBAAoB,CAC5B,oFAAoF,CACrF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,oBAAoB,CAAC,0DAA0D,CAAC,CAAC;IAC7F,CAAC;IAED,MAAM,MAAM,GAAsB;QAChC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,mBAAmB;QACjD,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,CAAC;QACrC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,KAAK;QACvC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;QACpC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,EAAE;QAChD,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,gEAAgE;QAChE,mEAAmE;QACnE,4CAA4C;QAC5C,KAAK,EAAE,OAAO,CAAC,KAAK;eACf,CAAC,OAAO,CAAC,qBAAqB;gBAC/B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,2BAA2B,CAAC,sBAAsB,EAAE,CAAC,CAAC;QAC5D,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;QAChD,aAAa,EAAE,OAAO,CAAC,aAAa;KACrC,CAAC;IAEF,KAAK,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { calculateCost } from '../modelPricing.js';
|
|
2
|
+
/**
|
|
3
|
+
* Compute the next session-stats snapshot after a chat turn (Task G.4.5).
|
|
4
|
+
* Pure helper extracted from app.tsx so the "real usage vs ~4-char fallback"
|
|
5
|
+
* branch is testable without React/Ink.
|
|
6
|
+
*
|
|
7
|
+
* Behavior:
|
|
8
|
+
* - When `realUsage` is present (provider honored `stream_options.include_usage`),
|
|
9
|
+
* use those numbers exactly.
|
|
10
|
+
* - When `realUsage` is null, fall back to the v3-B approximation:
|
|
11
|
+
* `Math.ceil(text.length / 4)` for both prompt and completion tokens.
|
|
12
|
+
*
|
|
13
|
+
* Cost is computed via `calculateCost(model, prompt, completion)` from
|
|
14
|
+
* `modelPricing.ts`. The result is the new stats object; the caller is
|
|
15
|
+
* responsible for merging it into state via `setSessionStats(prev => ...)`.
|
|
16
|
+
*/
|
|
17
|
+
export function computeSessionStatsDelta(realUsage, userText, assistantContent, model, prev) {
|
|
18
|
+
const promptTokens = realUsage ? realUsage.promptTokens : Math.ceil(userText.length / 4);
|
|
19
|
+
const completionTokens = realUsage
|
|
20
|
+
? realUsage.completionTokens
|
|
21
|
+
: Math.ceil(assistantContent.length / 4);
|
|
22
|
+
const turnCost = calculateCost(model, promptTokens, completionTokens);
|
|
23
|
+
return {
|
|
24
|
+
totalTokens: prev.totalTokens + promptTokens + completionTokens,
|
|
25
|
+
totalCostUsd: prev.totalCostUsd + turnCost,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=chatStats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chatStats.js","sourceRoot":"","sources":["../../../src/cli/hooks/chatStats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,wBAAwB,CACtC,SAAyF,EACzF,QAAgB,EAChB,gBAAwB,EACxB,KAAa,EACb,IAAmD;IAEnD,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzF,MAAM,gBAAgB,GAAG,SAAS;QAChC,CAAC,CAAC,SAAS,CAAC,gBAAgB;QAC5B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC;IACtE,OAAO;QACL,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,YAAY,GAAG,gBAAgB;QAC/D,YAAY,EAAE,IAAI,CAAC,YAAY,GAAG,QAAQ;KAC3C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { newSessionId } from '../sessionManager.js';
|
|
2
|
+
/**
|
|
3
|
+
* eventsToMessages — pure helper: replay a BrainEvent log into ChatMessage[].
|
|
4
|
+
*
|
|
5
|
+
* Streaming message_delta events are coalesced into a single growing
|
|
6
|
+
* assistant message (keyed by assistantId) so the chat transcript doesn't
|
|
7
|
+
* show N messages per LLM response.
|
|
8
|
+
*
|
|
9
|
+
* Extracted from app.tsx (Task v0.4.2 audit split) so it can be unit-tested
|
|
10
|
+
* without booting React/Ink.
|
|
11
|
+
*/
|
|
12
|
+
export function eventsToMessages(events) {
|
|
13
|
+
const out = [];
|
|
14
|
+
let assistantBuffer = '';
|
|
15
|
+
let assistantId = '';
|
|
16
|
+
for (const e of events) {
|
|
17
|
+
if (e.type === 'message_delta') {
|
|
18
|
+
if (assistantId === '')
|
|
19
|
+
assistantId = `resumed-${newSessionId()}`;
|
|
20
|
+
assistantBuffer += e.delta;
|
|
21
|
+
const last = out[out.length - 1];
|
|
22
|
+
if (last && last.role === 'assistant' && last.id === assistantId) {
|
|
23
|
+
out[out.length - 1] = { ...last, content: assistantBuffer };
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
out.push({ id: assistantId, role: 'assistant', content: assistantBuffer, ts: e.ts });
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
else if (e.type === 'tool_execution_start') {
|
|
30
|
+
// v0.4.3 audit fix: the v3-W event schema renamed `tool_call` →
|
|
31
|
+
// `tool_execution_start` and added the `args` field. The old branches
|
|
32
|
+
// here silently dropped every tool invocation during session resume.
|
|
33
|
+
assistantBuffer = '';
|
|
34
|
+
assistantId = '';
|
|
35
|
+
const argsPreview = JSON.stringify(e.args).slice(0, 80);
|
|
36
|
+
out.push({
|
|
37
|
+
id: crypto.randomUUID(),
|
|
38
|
+
role: 'system',
|
|
39
|
+
content: `[tool_call] ${e.toolName}(${argsPreview})`,
|
|
40
|
+
ts: e.ts,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
else if (e.type === 'tool_execution_end') {
|
|
44
|
+
// v0.4.3 audit fix: same — `tool_result` → `tool_execution_end` with
|
|
45
|
+
// `isError` / `durationMs` instead of `ok`.
|
|
46
|
+
out.push({
|
|
47
|
+
id: crypto.randomUUID(),
|
|
48
|
+
role: 'system',
|
|
49
|
+
content: `[tool_result] ${e.toolName} → ${e.isError ? 'error' : 'ok'}`,
|
|
50
|
+
ts: e.ts,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
else if (e.type === 'agent_start') {
|
|
54
|
+
out.push({
|
|
55
|
+
id: crypto.randomUUID(),
|
|
56
|
+
role: 'system',
|
|
57
|
+
content: `[agent_start] model=${e.model} provider=${e.provider}`,
|
|
58
|
+
ts: e.ts,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
else if (e.type === 'agent_end') {
|
|
62
|
+
out.push({
|
|
63
|
+
id: crypto.randomUUID(),
|
|
64
|
+
role: 'system',
|
|
65
|
+
content: `[agent_end] reason=${e.reason} duration=${e.durationMs}ms`,
|
|
66
|
+
ts: e.ts,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
else if (e.type === 'error') {
|
|
70
|
+
out.push({
|
|
71
|
+
id: crypto.randomUUID(),
|
|
72
|
+
role: 'system',
|
|
73
|
+
content: `[error] ${e.message}`,
|
|
74
|
+
ts: e.ts,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return out;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=eventsToMessages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventsToMessages.js","sourceRoot":"","sources":["../../../src/cli/hooks/eventsToMessages.ts"],"names":[],"mappings":"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"}
|