@kenkaiiii/gg-boss 4.3.140 → 4.3.142

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.
Files changed (162) hide show
  1. package/dist/{chunk-JVQDTPYR.js → chunk-3EWLK53W.js} +18 -9
  2. package/dist/{chunk-JVQDTPYR.js.map → chunk-3EWLK53W.js.map} +1 -1
  3. package/dist/{chunk-5WNYQQPQ.js → chunk-QT366Y52.js} +4 -3
  4. package/dist/{chunk-5WNYQQPQ.js.map → chunk-QT366Y52.js.map} +1 -1
  5. package/dist/{chunk-PQAHDHVY.js → chunk-WJ4S4TOY.js} +3 -2
  6. package/dist/{chunk-PQAHDHVY.js.map → chunk-WJ4S4TOY.js.map} +1 -1
  7. package/dist/{chunk-B2WQ5E5J.js → chunk-YNWFCUMR.js} +2 -1
  8. package/dist/{chunk-B2WQ5E5J.js.map → chunk-YNWFCUMR.js.map} +1 -1
  9. package/dist/cli.js +2248 -182
  10. package/dist/cli.js.map +1 -1
  11. package/dist/{devtools-VBUDNGEI.js → devtools-4TI4D7F2.js} +3 -2
  12. package/dist/{devtools-VBUDNGEI.js.map → devtools-4TI4D7F2.js.map} +1 -1
  13. package/dist/{dist-7DAPKZGX.js → dist-VXOVSHZ5.js} +3 -2
  14. package/dist/{dist-7DAPKZGX.js.map → dist-VXOVSHZ5.js.map} +1 -1
  15. package/dist/{ignore-3AEIALHQ.js → ignore-76P4EAAU.js} +3 -2
  16. package/dist/{ignore-3AEIALHQ.js.map → ignore-76P4EAAU.js.map} +1 -1
  17. package/dist/index.js +21 -4
  18. package/dist/index.js.map +1 -1
  19. package/dist/{out-D65DTPFZ.js → out-XEXARMKS.js} +3 -2
  20. package/dist/{out-D65DTPFZ.js.map → out-XEXARMKS.js.map} +1 -1
  21. package/dist/pixel-WPYTQADG.js +14 -0
  22. package/dist/{pixel-fix-ALWXCLTS.js → pixel-fix-4WGZAJ5W.js} +4 -3
  23. package/dist/{pixel-fix-ALWXCLTS.js.map → pixel-fix-4WGZAJ5W.js.map} +1 -1
  24. package/package.json +10 -11
  25. package/dist/audio.d.ts +0 -21
  26. package/dist/audio.d.ts.map +0 -1
  27. package/dist/audio.js +0 -231
  28. package/dist/audio.js.map +0 -1
  29. package/dist/audio.test.d.ts +0 -2
  30. package/dist/audio.test.d.ts.map +0 -1
  31. package/dist/audio.test.js +0 -13
  32. package/dist/audio.test.js.map +0 -1
  33. package/dist/auto-update.d.ts +0 -24
  34. package/dist/auto-update.d.ts.map +0 -1
  35. package/dist/auto-update.js +0 -231
  36. package/dist/auto-update.js.map +0 -1
  37. package/dist/banner.d.ts +0 -17
  38. package/dist/banner.d.ts.map +0 -1
  39. package/dist/banner.js +0 -25
  40. package/dist/banner.js.map +0 -1
  41. package/dist/boss-footer.d.ts +0 -25
  42. package/dist/boss-footer.d.ts.map +0 -1
  43. package/dist/boss-footer.js +0 -107
  44. package/dist/boss-footer.js.map +0 -1
  45. package/dist/boss-phrases.d.ts +0 -9
  46. package/dist/boss-phrases.d.ts.map +0 -1
  47. package/dist/boss-phrases.js +0 -71
  48. package/dist/boss-phrases.js.map +0 -1
  49. package/dist/boss-store.d.ts +0 -245
  50. package/dist/boss-store.d.ts.map +0 -1
  51. package/dist/boss-store.js +0 -623
  52. package/dist/boss-store.js.map +0 -1
  53. package/dist/boss-system-prompt.d.ts +0 -3
  54. package/dist/boss-system-prompt.d.ts.map +0 -1
  55. package/dist/boss-system-prompt.js +0 -180
  56. package/dist/boss-system-prompt.js.map +0 -1
  57. package/dist/boss-tasks-overlay.d.ts +0 -22
  58. package/dist/boss-tasks-overlay.d.ts.map +0 -1
  59. package/dist/boss-tasks-overlay.js +0 -157
  60. package/dist/boss-tasks-overlay.js.map +0 -1
  61. package/dist/branding.d.ts +0 -32
  62. package/dist/branding.d.ts.map +0 -1
  63. package/dist/branding.js +0 -59
  64. package/dist/branding.js.map +0 -1
  65. package/dist/cli.d.ts +0 -3
  66. package/dist/cli.d.ts.map +0 -1
  67. package/dist/cli.smoke.test.d.ts +0 -2
  68. package/dist/cli.smoke.test.d.ts.map +0 -1
  69. package/dist/cli.smoke.test.js +0 -48
  70. package/dist/cli.smoke.test.js.map +0 -1
  71. package/dist/colors.d.ts +0 -14
  72. package/dist/colors.d.ts.map +0 -1
  73. package/dist/colors.js +0 -31
  74. package/dist/colors.js.map +0 -1
  75. package/dist/discover.d.ts +0 -13
  76. package/dist/discover.d.ts.map +0 -1
  77. package/dist/discover.js +0 -92
  78. package/dist/discover.js.map +0 -1
  79. package/dist/event-queue.d.ts +0 -16
  80. package/dist/event-queue.d.ts.map +0 -1
  81. package/dist/event-queue.js +0 -39
  82. package/dist/event-queue.js.map +0 -1
  83. package/dist/index.d.ts +0 -6
  84. package/dist/index.d.ts.map +0 -1
  85. package/dist/link-command.d.ts +0 -2
  86. package/dist/link-command.d.ts.map +0 -1
  87. package/dist/link-command.js +0 -120
  88. package/dist/link-command.js.map +0 -1
  89. package/dist/links.d.ts +0 -11
  90. package/dist/links.d.ts.map +0 -1
  91. package/dist/links.js +0 -22
  92. package/dist/links.js.map +0 -1
  93. package/dist/logger.d.ts +0 -41
  94. package/dist/logger.d.ts.map +0 -1
  95. package/dist/logger.js +0 -112
  96. package/dist/logger.js.map +0 -1
  97. package/dist/orchestrator-app.d.ts +0 -15
  98. package/dist/orchestrator-app.d.ts.map +0 -1
  99. package/dist/orchestrator-app.js +0 -599
  100. package/dist/orchestrator-app.js.map +0 -1
  101. package/dist/orchestrator.d.ts +0 -147
  102. package/dist/orchestrator.d.ts.map +0 -1
  103. package/dist/orchestrator.js +0 -707
  104. package/dist/orchestrator.js.map +0 -1
  105. package/dist/orchestrator.test.d.ts +0 -2
  106. package/dist/orchestrator.test.d.ts.map +0 -1
  107. package/dist/orchestrator.test.js +0 -55
  108. package/dist/orchestrator.test.js.map +0 -1
  109. package/dist/pixel-WB6VRJWP.js +0 -13
  110. package/dist/radio-picker.d.ts +0 -20
  111. package/dist/radio-picker.d.ts.map +0 -1
  112. package/dist/radio-picker.js +0 -31
  113. package/dist/radio-picker.js.map +0 -1
  114. package/dist/radio.d.ts +0 -43
  115. package/dist/radio.d.ts.map +0 -1
  116. package/dist/radio.js +0 -150
  117. package/dist/radio.js.map +0 -1
  118. package/dist/sessions.d.ts +0 -21
  119. package/dist/sessions.d.ts.map +0 -1
  120. package/dist/sessions.js +0 -122
  121. package/dist/sessions.js.map +0 -1
  122. package/dist/settings.d.ts +0 -11
  123. package/dist/settings.d.ts.map +0 -1
  124. package/dist/settings.js +0 -38
  125. package/dist/settings.js.map +0 -1
  126. package/dist/slash-commands.d.ts +0 -19
  127. package/dist/slash-commands.d.ts.map +0 -1
  128. package/dist/slash-commands.js +0 -76
  129. package/dist/slash-commands.js.map +0 -1
  130. package/dist/splash.d.ts +0 -21
  131. package/dist/splash.d.ts.map +0 -1
  132. package/dist/splash.js +0 -137
  133. package/dist/splash.js.map +0 -1
  134. package/dist/task-tools.d.ts +0 -18
  135. package/dist/task-tools.d.ts.map +0 -1
  136. package/dist/task-tools.js +0 -172
  137. package/dist/task-tools.js.map +0 -1
  138. package/dist/tasks-store.d.ts +0 -66
  139. package/dist/tasks-store.d.ts.map +0 -1
  140. package/dist/tasks-store.js +0 -199
  141. package/dist/tasks-store.js.map +0 -1
  142. package/dist/tasks-store.test.d.ts +0 -2
  143. package/dist/tasks-store.test.d.ts.map +0 -1
  144. package/dist/tasks-store.test.js +0 -138
  145. package/dist/tasks-store.test.js.map +0 -1
  146. package/dist/tool-formatters.d.ts +0 -7
  147. package/dist/tool-formatters.d.ts.map +0 -1
  148. package/dist/tool-formatters.js +0 -111
  149. package/dist/tool-formatters.js.map +0 -1
  150. package/dist/tools.d.ts +0 -26
  151. package/dist/tools.d.ts.map +0 -1
  152. package/dist/tools.js +0 -133
  153. package/dist/tools.js.map +0 -1
  154. package/dist/types.d.ts +0 -32
  155. package/dist/types.d.ts.map +0 -1
  156. package/dist/types.js +0 -2
  157. package/dist/types.js.map +0 -1
  158. package/dist/worker.d.ts +0 -47
  159. package/dist/worker.d.ts.map +0 -1
  160. package/dist/worker.js +0 -123
  161. package/dist/worker.js.map +0 -1
  162. /package/dist/{pixel-WB6VRJWP.js.map → pixel-WPYTQADG.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"boss-footer.d.ts","sourceRoot":"","sources":["../src/boss-footer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAgC1B,UAAU,eAAe;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,gEAAgE;IAChE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;uEACmE;IACnE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;6BAEyB;IACzB,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC;AAaD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,WAAW,EACX,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,qBAAqB,GACtB,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,CA6HtC"}
@@ -1,107 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import React from "react";
3
- import { Text, Box } from "ink";
4
- import { useTheme } from "@kenkaiiii/ggcoder/ui/theme";
5
- import { useTerminalSize } from "@kenkaiiii/ggcoder/ui/hooks/terminal-size";
6
- import { getContextWindow } from "@kenkaiiii/ggcoder";
7
- import { COLORS } from "./branding.js";
8
- const PARTIAL_BLOCKS = [" ", "▏", "▎", "▍", "▌", "▋", "▊", "▉", "█"];
9
- const LIGHT_SHADE = "░";
10
- const SHORT_MODELS = {
11
- "claude-opus-4-7": "Opus",
12
- "claude-sonnet-4-6": "Sonnet",
13
- "claude-haiku-4-5": "Haiku",
14
- "claude-haiku-4-5-20251001": "Haiku",
15
- "gpt-5.5": "GPT-5.5",
16
- "gpt-5.5-pro": "GPT-5.5 Pro",
17
- "gpt-5.4": "GPT-5.4",
18
- "gpt-5.4-mini": "GPT-5.4 Mini",
19
- "gpt-5.3-codex": "GPT-5.3 Codex",
20
- };
21
- function shortModel(model) {
22
- return SHORT_MODELS[model] ?? model;
23
- }
24
- function getContextPercent(model, tokensIn) {
25
- const limit = getContextWindow(model);
26
- if (!limit || tokensIn === 0)
27
- return 0;
28
- return Math.round((tokensIn / limit) * 100);
29
- }
30
- // Short, recognisable station names for the footer slot. The picker shows the
31
- // full name; here we just want enough to tell stations apart without eating
32
- // column budget. Order matters: more-frequent first because pattern matching
33
- // in the renderer is cheap-but-still-O(n).
34
- const SHORT_RADIO = {
35
- "somafm-groove-salad": "Groove Salad",
36
- "somafm-drone-zone": "Drone Zone",
37
- "radio-paradise": "Radio Paradise",
38
- "george-fm": "George FM",
39
- };
40
- /**
41
- * Footer for gg-boss that mirrors ggcoder's Footer visual style — context bar
42
- * with partial-block precision, percent, then BOTH models displayed in the
43
- * same bold/coloured treatment so neither feels secondary.
44
- */
45
- export function BossFooter({ bossModel, workerModel, tokensIn, exitPending, bossThinkingLevel, updatePending, currentRadioStationId, }) {
46
- const theme = useTheme();
47
- const { columns } = useTerminalSize();
48
- if (exitPending) {
49
- return (_jsx(Box, { paddingX: 1, children: _jsx(Text, { color: theme.warning, children: "Press Ctrl+C again to exit" }) }));
50
- }
51
- const contextPct = getContextPercent(bossModel, tokensIn);
52
- const contextColor = contextPct >= 80 ? theme.error : contextPct >= 50 ? theme.warning : theme.success;
53
- const sep = _jsx(Text, { color: theme.border, children: " │ " });
54
- // Context bar — same partial-block precision as ggcoder's Footer.
55
- const barWidth = 8;
56
- const fillFloat = Math.min((contextPct / 100) * barWidth, barWidth);
57
- const barChars = [];
58
- for (let i = 0; i < barWidth; i++) {
59
- const cellFill = Math.max(0, Math.min(1, fillFloat - i));
60
- const eighths = Math.round(cellFill * 8);
61
- if (eighths === 8) {
62
- barChars.push(_jsx(Text, { color: contextColor, children: PARTIAL_BLOCKS[8] }, i));
63
- }
64
- else if (eighths > 0) {
65
- barChars.push(_jsx(Text, { color: contextColor, children: PARTIAL_BLOCKS[eighths] }, i));
66
- }
67
- else {
68
- barChars.push(_jsx(Text, { color: theme.textDim, children: LIGHT_SHADE }, i));
69
- }
70
- }
71
- // Priority-drop layout: when terminal is narrower than the full footer
72
- // would need, we shed lower-priority chrome to keep the row from wrapping.
73
- // Ranked highest-to-lowest priority:
74
- // 1. context bar + % — always visible (essential)
75
- // 2. update notice — actionable; user needs to know
76
- // 3. radio — visible state of an audio process they started
77
- // 4. boss/worker model names — frequent reference, but stable
78
- // 5. thinking indicator — least chatty, easiest to hide first
79
- // 6. "boss "/"workers " text labels — pure decoration
80
- //
81
- // Approximate per-section widths (with separator " │ "):
82
- // bar+% = ~12, model = ~5+name+3 sep, thinking = ~14, radio ≈ ♪+name+3,
83
- // update = ~30. We compute and degrade in stages.
84
- const radioName = currentRadioStationId
85
- ? (SHORT_RADIO[currentRadioStationId] ?? currentRadioStationId)
86
- : null;
87
- const bossM = shortModel(bossModel);
88
- const wkrM = shortModel(workerModel);
89
- // Rough char estimate; padding=2, separators are " │ " (3 each).
90
- const estFull = 2 +
91
- 12 + // bar + " 99%"
92
- 3 +
93
- 5 +
94
- bossM.length + // " │ boss <model>"
95
- 3 +
96
- 8 +
97
- wkrM.length + // " │ workers <model>"
98
- 3 +
99
- 12 + // " │ Thinking off"
100
- (radioName ? 3 + 2 + radioName.length : 0) + // " │ ♪ Name"
101
- (updatePending ? 3 + 28 : 0); // " │ Update ready. Restart GG Boss."
102
- const dropLabels = estFull > columns; // stage 1: kill "boss "/"workers " words
103
- const dropThinking = estFull > columns + 14; // stage 2: kill thinking indicator
104
- const useShortUpdate = updatePending && estFull > columns + 6; // stage 3: shrink the update notice
105
- return (_jsxs(Box, { paddingX: 1, width: columns, children: [_jsx(Box, { flexGrow: 1 }), _jsxs(Box, { flexShrink: 0, children: [_jsx(Text, { children: barChars }), _jsxs(Text, { color: contextColor, children: [" ", contextPct, "%"] }), sep, !dropLabels && _jsx(Text, { color: theme.textDim, children: "boss " }), _jsx(Text, { color: COLORS.primary, bold: true, children: bossM }), sep, !dropLabels && _jsx(Text, { color: theme.textDim, children: "workers " }), _jsx(Text, { color: COLORS.accent, bold: true, children: wkrM }), !dropThinking && (_jsxs(_Fragment, { children: [sep, _jsx(Text, { color: bossThinkingLevel ? theme.accent : theme.textDim, children: bossThinkingLevel ? "Thinking on" : "Thinking off" })] })), radioName && (_jsxs(_Fragment, { children: [sep, _jsxs(Text, { color: theme.secondary ?? theme.accent, children: ["\u266A ", radioName] })] })), updatePending && (_jsxs(_Fragment, { children: [sep, _jsx(Text, { color: theme.success, bold: true, wrap: "truncate", children: useShortUpdate ? "Update ready" : "Update ready. Restart GG Boss." })] }))] })] }));
106
- }
107
- //# sourceMappingURL=boss-footer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"boss-footer.js","sourceRoot":"","sources":["../src/boss-footer.tsx"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import type { ActivityPhase } from "@kenkaiiii/ggcoder/ui";
2
- /**
3
- * Boss-themed phrase library for the activity indicator. Replaces ggcoder's
4
- * coder-flavored phrases ("Cogitating", "Sleuthing", etc.) with vocabulary
5
- * that fits an orchestrator role — managing, dispatching, reviewing — so the
6
- * spinner reads as "the boss is at work" not "the boss is writing code".
7
- */
8
- export declare const BOSS_PHRASES: Record<ActivityPhase, string[]>;
9
- //# sourceMappingURL=boss-phrases.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"boss-phrases.d.ts","sourceRoot":"","sources":["../src/boss-phrases.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,CAoExD,CAAC"}
@@ -1,71 +0,0 @@
1
- /**
2
- * Boss-themed phrase library for the activity indicator. Replaces ggcoder's
3
- * coder-flavored phrases ("Cogitating", "Sleuthing", etc.) with vocabulary
4
- * that fits an orchestrator role — managing, dispatching, reviewing — so the
5
- * spinner reads as "the boss is at work" not "the boss is writing code".
6
- */
7
- export const BOSS_PHRASES = {
8
- // Generic between-states fallback. Probably never shown but keep for safety.
9
- idle: ["Standing by", "Waiting for orders", "On call"],
10
- // Boss has issued a request, waiting for the LLM to begin streaming.
11
- waiting: [
12
- "Briefing",
13
- "Reviewing the room",
14
- "Triaging",
15
- "Lining up the brief",
16
- "Surveying projects",
17
- "Reading the room",
18
- "Picking the right hand",
19
- "Marshalling thoughts",
20
- "Checking the board",
21
- "Sizing up the work",
22
- ],
23
- // LLM is mid-thinking-block (extended reasoning).
24
- thinking: [
25
- "Strategising",
26
- "Plotting next move",
27
- "Weighing options",
28
- "Reasoning",
29
- "Deliberating",
30
- "Thinking it through",
31
- "Mapping the play",
32
- "Considering angles",
33
- "Calculating odds",
34
- "Drafting the call",
35
- ],
36
- // LLM is streaming text — boss is forming its dispatch / response.
37
- generating: [
38
- "Drafting",
39
- "Composing dispatch",
40
- "Writing the brief",
41
- "Penning instructions",
42
- "Wording it up",
43
- "Putting it on paper",
44
- "Phrasing the ask",
45
- "Forming the directive",
46
- "Scripting the plan",
47
- ],
48
- // Boss is invoking a tool — most often prompt_worker.
49
- tools: [
50
- "Coordinating",
51
- "Dispatching",
52
- "Routing",
53
- "Delegating",
54
- "Issuing orders",
55
- "Handing off",
56
- "Aligning workers",
57
- "Conducting",
58
- "Calling the team",
59
- "Steering",
60
- "Pulling levers",
61
- ],
62
- // Provider retry (overloaded / rate-limited / etc.).
63
- retrying: [
64
- "Reattempting",
65
- "Course correcting",
66
- "Trying again",
67
- "Pushing through",
68
- "Holding the line",
69
- ],
70
- };
71
- //# sourceMappingURL=boss-phrases.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"boss-phrases.js","sourceRoot":"","sources":["../src/boss-phrases.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAoC;IAC3D,6EAA6E;IAC7E,IAAI,EAAE,CAAC,aAAa,EAAE,oBAAoB,EAAE,SAAS,CAAC;IAEtD,qEAAqE;IACrE,OAAO,EAAE;QACP,UAAU;QACV,oBAAoB;QACpB,UAAU;QACV,qBAAqB;QACrB,oBAAoB;QACpB,kBAAkB;QAClB,wBAAwB;QACxB,sBAAsB;QACtB,oBAAoB;QACpB,oBAAoB;KACrB;IAED,kDAAkD;IAClD,QAAQ,EAAE;QACR,cAAc;QACd,oBAAoB;QACpB,kBAAkB;QAClB,WAAW;QACX,cAAc;QACd,qBAAqB;QACrB,kBAAkB;QAClB,oBAAoB;QACpB,kBAAkB;QAClB,mBAAmB;KACpB;IAED,mEAAmE;IACnE,UAAU,EAAE;QACV,UAAU;QACV,oBAAoB;QACpB,mBAAmB;QACnB,sBAAsB;QACtB,eAAe;QACf,qBAAqB;QACrB,kBAAkB;QAClB,uBAAuB;QACvB,oBAAoB;KACrB;IAED,sDAAsD;IACtD,KAAK,EAAE;QACL,cAAc;QACd,aAAa;QACb,SAAS;QACT,YAAY;QACZ,gBAAgB;QAChB,aAAa;QACb,kBAAkB;QAClB,YAAY;QACZ,kBAAkB;QAClB,UAAU;QACV,gBAAgB;KACjB;IAED,qDAAqD;IACrD,QAAQ,EAAE;QACR,cAAc;QACd,mBAAmB;QACnB,cAAc;QACd,iBAAiB;QACjB,kBAAkB;KACnB;CACF,CAAC"}
@@ -1,245 +0,0 @@
1
- import type { ActivityPhase, RetryInfo } from "@kenkaiiii/ggcoder/ui";
2
- import type { Message, Provider, ThinkingLevel } from "@kenkaiiii/gg-ai";
3
- import type { WorkerStatus, WorkerTurnSummary } from "./types.js";
4
- export interface UserItem {
5
- kind: "user";
6
- id: string;
7
- text: string;
8
- timestamp: number;
9
- }
10
- export interface AssistantItem {
11
- kind: "assistant";
12
- id: string;
13
- text: string;
14
- durationMs: number;
15
- thinking?: string;
16
- thinkingMs?: number;
17
- }
18
- export interface ToolItem {
19
- kind: "tool";
20
- id: string;
21
- toolCallId: string;
22
- name: string;
23
- args: Record<string, unknown>;
24
- isError: boolean;
25
- durationMs: number;
26
- result: string;
27
- details?: unknown;
28
- }
29
- export interface WorkerEventItem {
30
- kind: "worker_event";
31
- id: string;
32
- project: string;
33
- status: WorkerStatus;
34
- finalText: string;
35
- toolsUsed: {
36
- name: string;
37
- ok: boolean;
38
- }[];
39
- turnIndex: number;
40
- timestamp: string;
41
- }
42
- export interface WorkerErrorItem {
43
- kind: "worker_error";
44
- id: string;
45
- project: string;
46
- message: string;
47
- timestamp: string;
48
- }
49
- export interface InfoItem {
50
- kind: "info";
51
- id: string;
52
- text: string;
53
- level?: "info" | "warning" | "error";
54
- }
55
- /**
56
- * Task-dispatch announcement. Rendered when the user (or boss) fires a batch
57
- * of tasks via `r` in the overlay or `dispatch_pending`. Structured (vs plain
58
- * info text) so each project name can be drawn in its own projectColor() —
59
- * matching the WorkerStatusBar / WorkerEventRow / scope pill conventions.
60
- */
61
- export interface TaskDispatchItem {
62
- kind: "task_dispatch";
63
- id: string;
64
- tasks: {
65
- project: string;
66
- title: string;
67
- }[];
68
- timestamp: number;
69
- }
70
- export type HistoryItem = UserItem | AssistantItem | ToolItem | WorkerEventItem | WorkerErrorItem | InfoItem | TaskDispatchItem;
71
- export interface StreamingTool {
72
- toolCallId: string;
73
- name: string;
74
- args: Record<string, unknown>;
75
- status: "running" | "done" | "error";
76
- startedAt: number;
77
- durationMs?: number;
78
- result?: string;
79
- details?: unknown;
80
- }
81
- export interface StreamingTurn {
82
- text: string;
83
- thinking: string;
84
- thinkingMs: number;
85
- tools: StreamingTool[];
86
- startedAt: number;
87
- thinkingStartedAt: number | null;
88
- }
89
- export interface CompactionSnapshot {
90
- state: "running" | "done";
91
- originalCount: number;
92
- newCount: number;
93
- tokensBefore: number;
94
- tokensAfter: number;
95
- }
96
- export interface WorkerView {
97
- name: string;
98
- cwd: string;
99
- status: WorkerStatus;
100
- /** When the worker most recently transitioned to "working". Cleared when it
101
- * goes back to idle/error. Drives the elapsed-time readout in the worker
102
- * status bar so users can see "yaatuber working · 1:24" while waiting. */
103
- workStartedAt: number | null;
104
- lastSummary?: WorkerTurnSummary;
105
- }
106
- export interface BossUiState {
107
- bossProvider: Provider;
108
- bossModel: string;
109
- /** Boss extended-thinking level. undefined = off. Toggled via Shift+Tab. */
110
- bossThinkingLevel?: ThinkingLevel;
111
- workerProvider: Provider;
112
- workerModel: string;
113
- /** Providers the user is logged in to — controls which models the picker offers. */
114
- loggedInProviders: Provider[];
115
- history: HistoryItem[];
116
- /**
117
- * Two-phase flush queue. Items here have already been REMOVED from the
118
- * streaming live-area (so it has shrunk) but not yet committed to history.
119
- * A useEffect in BossApp watches `flushGeneration` and calls
120
- * `commitPendingFlush()` on the next render cycle, so Ink's log-update
121
- * doesn't try to clear a tall live area AND write new Static lines in the
122
- * same frame — which clips the bottom of long responses.
123
- */
124
- pendingFlush: HistoryItem[];
125
- flushGeneration: number;
126
- /** Info rows queued by mid-turn tools, flushed when the boss's turn ends.
127
- * See queueEndOfTurnInfo / flushEndOfTurnInfos. */
128
- pendingEndOfTurnInfos: {
129
- text: string;
130
- level: InfoItem["level"];
131
- }[];
132
- streaming: StreamingTurn | null;
133
- phase: "idle" | "working";
134
- /** Fine-grained phase used by ActivityIndicator. */
135
- activityPhase: ActivityPhase;
136
- /** Most recent retry (provider overload, rate limit, etc.), null when not retrying. */
137
- retryInfo: RetryInfo | null;
138
- /** Live compaction status (or recent done-state) for the orchestrator's banner. */
139
- compaction: CompactionSnapshot | null;
140
- /** Cumulative input tokens from boss turn_end events. Drives footer context bar. */
141
- bossInputTokens: number;
142
- /** When the current boss turn started (for elapsed display). */
143
- runStartMs: number | null;
144
- workers: WorkerView[];
145
- pendingUserMessages: number;
146
- exitPending: boolean;
147
- /**
148
- * Scope pill in the input — "all" (default) or a specific worker name.
149
- * Cycled with Tab; gets injected into every prompt the user sends.
150
- */
151
- scope: string;
152
- }
153
- export declare function useBossState(): BossUiState;
154
- export declare const bossStore: {
155
- init(opts: {
156
- bossProvider: Provider;
157
- bossModel: string;
158
- bossThinkingLevel?: ThinkingLevel;
159
- workerProvider: Provider;
160
- workerModel: string;
161
- loggedInProviders: Provider[];
162
- workers: {
163
- name: string;
164
- cwd: string;
165
- }[];
166
- }): void;
167
- setBossThinking(level: ThinkingLevel | undefined): void;
168
- setBossModel(provider: Provider, model: string): void;
169
- setWorkerModel(provider: Provider, model: string): void;
170
- setLoggedInProviders(providers: Provider[]): void;
171
- appendUser(text: string): void;
172
- appendTaskDispatch(tasks: {
173
- project: string;
174
- title: string;
175
- }[]): void;
176
- appendInfo(text: string, level?: InfoItem["level"]): void;
177
- /**
178
- * Queue an info message to be appended AFTER the boss's current turn ends.
179
- * Used by tools (like add_task's keybind hint) that fire mid-turn and would
180
- * otherwise interleave their announcement between the boss's tool calls,
181
- * making it read like the boss issued the message itself.
182
- */
183
- queueEndOfTurnInfo(text: string, level?: InfoItem["level"]): void;
184
- /** Flush any deferred infos as real history rows. Called from the boss's
185
- * turn_end event handler in the orchestrator. */
186
- flushEndOfTurnInfos(): void;
187
- setPendingMessages(n: number): void;
188
- startStreaming(): void;
189
- appendStreamText(text: string): void;
190
- appendStreamThinking(text: string): void;
191
- setActivityPhase(phase: ActivityPhase): void;
192
- setRetryInfo(info: RetryInfo | null): void;
193
- startCompaction(): void;
194
- endCompaction(originalCount: number, newCount: number): void;
195
- cancelCompaction(): void;
196
- /** Read-only accessor for the orchestrator (which lives outside React). */
197
- getInputTokens(): number;
198
- setBossInputTokens(tokens: number): void;
199
- startTool(toolCallId: string, name: string, args: Record<string, unknown>): void;
200
- endTool(toolCallId: string, isError: boolean, durationMs: number, result: string, details?: unknown): void;
201
- /**
202
- * Flush any pending streaming text into the pendingFlush queue. The actual
203
- * commit to history happens on the next render cycle (two-phase flush) so
204
- * Ink doesn't clip long responses.
205
- * Called on tool_call_start and turn_end so text/tool order is preserved.
206
- */
207
- flushPendingText(): void;
208
- /**
209
- * Phase 2 of the two-phase flush. Move queued items into history. Called by
210
- * a useEffect in BossApp when flushGeneration changes — guaranteed to run
211
- * AFTER React has painted the live-area shrinkage from phase 1.
212
- */
213
- commitPendingFlush(): void;
214
- /**
215
- * Called when the user interrupts (ESC / Ctrl+C while running). Stops all
216
- * in-flight running tools, queueing them in pendingFlush as errored "Stopped."
217
- * entries — matches ggcoder's onAborted behavior so the user sees the same
218
- * visual feedback for an aborted run.
219
- */
220
- interruptStreaming(): void;
221
- /**
222
- * Tear down the streaming session. By this point, tool_call_end and turn_end
223
- * handlers have already flushed text + tools into pendingFlush in proper order.
224
- * Anything left is a final text tail (no tool followed it) — also goes through
225
- * the two-phase queue so it doesn't clip.
226
- */
227
- finishStreaming(): void;
228
- setWorkerStatus(name: string, status: WorkerStatus): void;
229
- appendWorkerEvent(summary: WorkerTurnSummary): void;
230
- appendWorkerError(project: string, message: string, timestamp: string): void;
231
- setScope(scope: string): void;
232
- /** Cycle scope through ["all", ...worker names]. Wraps around. */
233
- cycleScope(): void;
234
- setExitPending(pending: boolean): void;
235
- reset(): void;
236
- /**
237
- * Rebuild the visible chat history from a persisted Message[] (boss session
238
- * resume). Pairs assistant tool_use blocks with their tool_result blocks
239
- * so completed tools render in scrollback as if they'd just happened.
240
- */
241
- restoreHistory(messages: Message[]): void;
242
- /** /clear handler: wipe history but keep workers, model info, etc. */
243
- clearHistory(): void;
244
- };
245
- //# sourceMappingURL=boss-store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"boss-store.d.ts","sourceRoot":"","sources":["../src/boss-store.ts"],"names":[],"mappings":"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"}