indusagi-coding-agent 0.1.47 → 0.1.48

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 (85) hide show
  1. package/dist/command-line/session-picker.js +1 -1
  2. package/dist/command-line/session-picker.js.map +1 -1
  3. package/dist/interfaces/react-ink/adapters/command-router.d.ts +2 -0
  4. package/dist/interfaces/react-ink/adapters/command-router.d.ts.map +1 -1
  5. package/dist/interfaces/react-ink/adapters/command-router.js +47 -19
  6. package/dist/interfaces/react-ink/adapters/command-router.js.map +1 -1
  7. package/dist/interfaces/react-ink/adapters/session-events.d.ts.map +1 -1
  8. package/dist/interfaces/react-ink/adapters/session-events.js +9 -2
  9. package/dist/interfaces/react-ink/adapters/session-events.js.map +1 -1
  10. package/dist/interfaces/react-ink/adapters/session-history.d.ts +8 -2
  11. package/dist/interfaces/react-ink/adapters/session-history.d.ts.map +1 -1
  12. package/dist/interfaces/react-ink/adapters/session-history.js +19 -5
  13. package/dist/interfaces/react-ink/adapters/session-history.js.map +1 -1
  14. package/dist/interfaces/react-ink/adapters/tool-state.d.ts.map +1 -1
  15. package/dist/interfaces/react-ink/adapters/tool-state.js +1 -1
  16. package/dist/interfaces/react-ink/adapters/tool-state.js.map +1 -1
  17. package/dist/interfaces/react-ink/components/AppShell.d.ts +3 -2
  18. package/dist/interfaces/react-ink/components/AppShell.d.ts.map +1 -1
  19. package/dist/interfaces/react-ink/components/AppShell.js +914 -48
  20. package/dist/interfaces/react-ink/components/AppShell.js.map +1 -1
  21. package/dist/interfaces/react-ink/components/Header.d.ts +3 -2
  22. package/dist/interfaces/react-ink/components/Header.d.ts.map +1 -1
  23. package/dist/interfaces/react-ink/components/Header.js +5 -3
  24. package/dist/interfaces/react-ink/components/Header.js.map +1 -1
  25. package/dist/interfaces/react-ink/components/PromptInput.d.ts +15 -1
  26. package/dist/interfaces/react-ink/components/PromptInput.d.ts.map +1 -1
  27. package/dist/interfaces/react-ink/components/PromptInput.js +100 -12
  28. package/dist/interfaces/react-ink/components/PromptInput.js.map +1 -1
  29. package/dist/interfaces/react-ink/components/StartupDiagnosticsBlock.d.ts +9 -0
  30. package/dist/interfaces/react-ink/components/StartupDiagnosticsBlock.d.ts.map +1 -0
  31. package/dist/interfaces/react-ink/components/StartupDiagnosticsBlock.js +14 -0
  32. package/dist/interfaces/react-ink/components/StartupDiagnosticsBlock.js.map +1 -0
  33. package/dist/interfaces/react-ink/components/extensions/ExtensionComponentHost.d.ts +30 -0
  34. package/dist/interfaces/react-ink/components/extensions/ExtensionComponentHost.d.ts.map +1 -0
  35. package/dist/interfaces/react-ink/components/extensions/ExtensionComponentHost.js +106 -0
  36. package/dist/interfaces/react-ink/components/extensions/ExtensionComponentHost.js.map +1 -0
  37. package/dist/interfaces/react-ink/components/extensions/ExtensionDialogs.d.ts +20 -0
  38. package/dist/interfaces/react-ink/components/extensions/ExtensionDialogs.d.ts.map +1 -0
  39. package/dist/interfaces/react-ink/components/extensions/ExtensionDialogs.js +144 -0
  40. package/dist/interfaces/react-ink/components/extensions/ExtensionDialogs.js.map +1 -0
  41. package/dist/interfaces/react-ink/hooks/use-agent-session.d.ts +2 -2
  42. package/dist/interfaces/react-ink/hooks/use-agent-session.d.ts.map +1 -1
  43. package/dist/interfaces/react-ink/hooks/use-agent-session.js +6 -1
  44. package/dist/interfaces/react-ink/hooks/use-agent-session.js.map +1 -1
  45. package/dist/interfaces/react-ink/hooks/use-app-keybindings.d.ts +0 -2
  46. package/dist/interfaces/react-ink/hooks/use-app-keybindings.d.ts.map +1 -1
  47. package/dist/interfaces/react-ink/hooks/use-app-keybindings.js +2 -39
  48. package/dist/interfaces/react-ink/hooks/use-app-keybindings.js.map +1 -1
  49. package/dist/interfaces/react-ink/hooks/use-prompt-submit.d.ts +2 -0
  50. package/dist/interfaces/react-ink/hooks/use-prompt-submit.d.ts.map +1 -1
  51. package/dist/interfaces/react-ink/hooks/use-prompt-submit.js +14 -1
  52. package/dist/interfaces/react-ink/hooks/use-prompt-submit.js.map +1 -1
  53. package/dist/interfaces/react-ink/index.d.ts +1 -5
  54. package/dist/interfaces/react-ink/index.d.ts.map +1 -1
  55. package/dist/interfaces/react-ink/index.js +1 -5
  56. package/dist/interfaces/react-ink/index.js.map +1 -1
  57. package/dist/interfaces/react-ink/interactive-mode.d.ts +1 -0
  58. package/dist/interfaces/react-ink/interactive-mode.d.ts.map +1 -1
  59. package/dist/interfaces/react-ink/interactive-mode.js +8 -1
  60. package/dist/interfaces/react-ink/interactive-mode.js.map +1 -1
  61. package/dist/interfaces/react-ink/render-root.d.ts +3 -2
  62. package/dist/interfaces/react-ink/render-root.d.ts.map +1 -1
  63. package/dist/interfaces/react-ink/render-root.js +2 -2
  64. package/dist/interfaces/react-ink/render-root.js.map +1 -1
  65. package/dist/interfaces/react-ink/theme-adapter.d.ts +2 -8
  66. package/dist/interfaces/react-ink/theme-adapter.d.ts.map +1 -1
  67. package/dist/interfaces/react-ink/theme-adapter.js +2 -41
  68. package/dist/interfaces/react-ink/theme-adapter.js.map +1 -1
  69. package/dist/interfaces/react-ink/types.d.ts +4 -93
  70. package/dist/interfaces/react-ink/types.d.ts.map +1 -1
  71. package/dist/interfaces/react-ink/utils/key-data.d.ts +22 -0
  72. package/dist/interfaces/react-ink/utils/key-data.d.ts.map +1 -0
  73. package/dist/interfaces/react-ink/utils/key-data.js +123 -0
  74. package/dist/interfaces/react-ink/utils/key-data.js.map +1 -0
  75. package/dist/interfaces/react-ink/utils/session-actions.d.ts +2 -0
  76. package/dist/interfaces/react-ink/utils/session-actions.d.ts.map +1 -1
  77. package/dist/interfaces/react-ink/utils/session-actions.js +10 -0
  78. package/dist/interfaces/react-ink/utils/session-actions.js.map +1 -1
  79. package/dist/interfaces/react-ink/utils/startup-diagnostics.d.ts +7 -0
  80. package/dist/interfaces/react-ink/utils/startup-diagnostics.d.ts.map +1 -0
  81. package/dist/interfaces/react-ink/utils/startup-diagnostics.js +111 -0
  82. package/dist/interfaces/react-ink/utils/startup-diagnostics.js.map +1 -0
  83. package/dist/interfaces/theme/dark.json +1 -1
  84. package/dist/interfaces/theme/light.json +1 -1
  85. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"render-root.d.ts","sourceRoot":"","sources":["../../../app/interfaces/react-ink/render-root.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAElE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,UAAU,eAAe;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,UAAU,CAAC,EAC1B,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,eAAe,EACf,MAAM,EACN,OAAO,EACP,gBAAgB,EAChB,cAAc,EACd,OAAO,GACP,EAAE,eAAe,2CAajB"}
1
+ {"version":3,"file":"render-root.d.ts","sourceRoot":"","sources":["../../../app/interfaces/react-ink/render-root.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEtF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,UAAU,eAAe;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,UAAU,CAAC,EAC1B,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,eAAe,EACf,MAAM,EACN,OAAO,EACP,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,OAAO,GACP,EAAE,eAAe,2CAcjB"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { AppShell } from "./components/AppShell.js";
3
- export function RenderRoot({ footerDataProvider, initialImages, initialMessage, initialMessages, onExit, session, startupChangelog, startupNotices, verbose, }) {
4
- return (_jsx(AppShell, { context: { session, requestExit: onExit }, footerDataProvider: footerDataProvider, initialImages: initialImages, initialMessage: initialMessage, initialMessages: initialMessages, startupChangelog: startupChangelog, verbose: verbose, startupNotices: startupNotices }));
3
+ export function RenderRoot({ footerDataProvider, initialImages, initialMessage, initialMessages, onExit, session, startupChangelog, startupDiagnostics, startupNotices, verbose, }) {
4
+ return (_jsx(AppShell, { context: { session, requestExit: onExit }, footerDataProvider: footerDataProvider, initialImages: initialImages, initialMessage: initialMessage, initialMessages: initialMessages, startupChangelog: startupChangelog, startupDiagnostics: startupDiagnostics, verbose: verbose, startupNotices: startupNotices }));
5
5
  }
6
6
  //# sourceMappingURL=render-root.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"render-root.js","sourceRoot":"","sources":["../../../app/interfaces/react-ink/render-root.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAepD,MAAM,UAAU,UAAU,CAAC,EAC1B,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,eAAe,EACf,MAAM,EACN,OAAO,EACP,gBAAgB,EAChB,cAAc,EACd,OAAO,GACU;IACjB,OAAO,CACN,KAAC,QAAQ,IACR,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,EACzC,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,cAAc,GAC7B,CACF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"render-root.js","sourceRoot":"","sources":["../../../app/interfaces/react-ink/render-root.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAgBpD,MAAM,UAAU,UAAU,CAAC,EAC1B,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,eAAe,EACf,MAAM,EACN,OAAO,EACP,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,OAAO,GACU;IACjB,OAAO,CACN,KAAC,QAAQ,IACR,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,EACzC,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,cAAc,GAC7B,CACF,CAAC;AACH,CAAC"}
@@ -1,10 +1,4 @@
1
- export interface InkThemeAdapter {
2
- name: string;
3
- colors: Record<string, string>;
4
- color: (key: string, text: string) => string;
5
- background: (key: string, text: string, textKey?: string) => string;
6
- dim: (text: string) => string;
7
- muted: (text: string) => string;
8
- }
1
+ import { type InkThemeAdapter } from "indusagi/react-ink";
2
+ export type { InkThemeAdapter } from "indusagi/react-ink";
9
3
  export declare function createThemeAdapter(themeName?: string): InkThemeAdapter;
10
4
  //# sourceMappingURL=theme-adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme-adapter.d.ts","sourceRoot":"","sources":["../../../app/interfaces/react-ink/theme-adapter.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7C,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACpE,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9B,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAChC;AA+BD,wBAAgB,kBAAkB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,eAAe,CAsBtE"}
1
+ {"version":3,"file":"theme-adapter.d.ts","sourceRoot":"","sources":["../../../app/interfaces/react-ink/theme-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkD,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1G,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,wBAAgB,kBAAkB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,eAAe,CAYtE"}
@@ -1,36 +1,5 @@
1
- import chalk from "chalk";
2
- import stripAnsi from "strip-ansi";
1
+ import { createThemeAdapter as createSharedThemeAdapter } from "indusagi/react-ink";
3
2
  import { getResolvedThemeColors } from "../theme/theme.js";
4
- function applyForeground(color, text) {
5
- if (!color)
6
- return text;
7
- try {
8
- return chalk.hex(color)(text);
9
- }
10
- catch {
11
- return text;
12
- }
13
- }
14
- function resolveColorToken(value, fallback) {
15
- if (typeof value === "string" && value.trim().length > 0) {
16
- return value;
17
- }
18
- return fallback;
19
- }
20
- function applyBackground(background, foreground, text) {
21
- if (!background)
22
- return applyForeground(foreground, text);
23
- try {
24
- let styled = chalk.bgHex(background);
25
- if (foreground) {
26
- styled = styled.hex(foreground);
27
- }
28
- return styled(text);
29
- }
30
- catch {
31
- return applyForeground(foreground, text);
32
- }
33
- }
34
3
  export function createThemeAdapter(themeName) {
35
4
  let effectiveName = themeName ?? "dark";
36
5
  let colors;
@@ -41,14 +10,6 @@ export function createThemeAdapter(themeName) {
41
10
  effectiveName = "dark";
42
11
  colors = getResolvedThemeColors("dark");
43
12
  }
44
- const fallback = colors.text ?? "#e5e5e7";
45
- return {
46
- name: effectiveName,
47
- colors,
48
- color: (key, text) => applyForeground(resolveColorToken(colors[key], fallback), text),
49
- background: (key, text, textKey = "text") => applyBackground(resolveColorToken(colors[key]), resolveColorToken(colors[textKey], fallback), ` ${stripAnsi(text)} `),
50
- dim: (text) => applyForeground(resolveColorToken(colors.dim, "#666666"), text),
51
- muted: (text) => applyForeground(resolveColorToken(colors.muted, "#808080"), text),
52
- };
13
+ return createSharedThemeAdapter(effectiveName, colors);
53
14
  }
54
15
  //# sourceMappingURL=theme-adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme-adapter.js","sourceRoot":"","sources":["../../../app/interfaces/react-ink/theme-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAW3D,SAAS,eAAe,CAAC,KAAyB,EAAE,IAAY;IAC/D,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,IAAI,CAAC;QACJ,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAyB,EAAE,QAAiB;IACtE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACd,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,SAAS,eAAe,CAAC,UAA8B,EAAE,UAA8B,EAAE,IAAY;IACpG,IAAI,CAAC,UAAU;QAAE,OAAO,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC1D,IAAI,CAAC;QACJ,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACrC,IAAI,UAAU,EAAE,CAAC;YAChB,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;AACF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,SAAkB;IACpD,IAAI,aAAa,GAAG,SAAS,IAAI,MAAM,CAAC;IACxC,IAAI,MAA8B,CAAC;IAEnC,IAAI,CAAC;QACJ,MAAM,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACR,aAAa,GAAG,MAAM,CAAC;QACvB,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC;IAE1C,OAAO;QACN,IAAI,EAAE,aAAa;QACnB,MAAM;QACN,KAAK,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC;QACrF,UAAU,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,EAAE,EAAE,CAC3C,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;QACtH,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC;QAC9E,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC;KAClF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"theme-adapter.js","sourceRoot":"","sources":["../../../app/interfaces/react-ink/theme-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,IAAI,wBAAwB,EAAwB,MAAM,oBAAoB,CAAC;AAC1G,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAI3D,MAAM,UAAU,kBAAkB,CAAC,SAAkB;IACpD,IAAI,aAAa,GAAG,SAAS,IAAI,MAAM,CAAC;IACxC,IAAI,MAA8B,CAAC;IAEnC,IAAI,CAAC;QACJ,MAAM,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACR,aAAa,GAAG,MAAM,CAAC;QACvB,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,wBAAwB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AACxD,CAAC"}
@@ -1,57 +1,7 @@
1
- import type { AgentMessage, ThinkingLevel } from "indusagi/agent";
2
- import type { AuthInputPrompt, AuthRedirectInfo, Model } from "indusagi/ai";
3
- import type { AgentSession, SessionStats } from "../../runtime/agent-session.js";
4
- import type { SessionInfo } from "../../runtime/session-manager.js";
5
- export type StatusKind = "info" | "success" | "warning" | "error" | "busy";
6
- export interface StatusMessage {
7
- kind: StatusKind;
8
- text: string;
9
- }
10
- export interface ToolExecutionState {
11
- toolCallId: string;
12
- toolName: string;
13
- argsText: string;
14
- status: "running" | "success" | "error";
15
- outputText: string;
16
- args?: unknown;
17
- output?: unknown;
18
- updatedAt: number;
19
- }
20
- export interface UserMessageOption {
21
- entryId: string;
22
- text: string;
23
- preview: string;
24
- }
25
- export interface SessionTreeOption {
26
- id: string | null;
27
- label: string;
28
- depth: number;
29
- isLeaf: boolean;
30
- isCurrent: boolean;
31
- }
32
- export interface LoginProviderOption {
33
- id: string;
34
- label: string;
35
- authKind: "oauth" | "apiKey";
36
- }
37
- export interface SavedAccountOption {
38
- provider: string;
39
- accountId: string;
40
- label: string;
41
- }
42
- export interface OAuthOverlayState {
43
- kind: "oauth";
44
- providerId: string;
45
- providerName: string;
46
- mode: "oauth" | "apiKey";
47
- inputLabel: string;
48
- inputValue: string;
49
- accountId: string;
50
- accountName: string;
51
- authInfo?: AuthRedirectInfo;
52
- prompt?: AuthInputPrompt;
53
- progress?: string;
54
- }
1
+ import type { AgentSession } from "../../runtime/agent-session.js";
2
+ import type { Model } from "indusagi/ai";
3
+ import type { LoginProviderOption, OAuthOverlayState, SavedAccountOption, SessionTreeOption, StatusMessage, ToolExecutionState, UserMessageOption } from "indusagi/react-ink";
4
+ export type { LoginProviderOption, OAuthOverlayState, PendingMessageItem, SavedAccountOption, SessionInfo, StartupDiagnostics, StartupDiagnosticsSection, SessionSnapshot, SessionTreeOption, StartupChangelog, StartupNotice, StatusKind, StatusMessage, ToolExecutionState, UiDisplayBlock, UserMessageOption, } from "indusagi/react-ink";
55
5
  export type OverlayState = {
56
6
  kind: "none";
57
7
  } | {
@@ -67,9 +17,6 @@ export type OverlayState = {
67
17
  kind: "theme";
68
18
  } | {
69
19
  kind: "session";
70
- sessions: SessionInfo[];
71
- loading: boolean;
72
- error?: string;
73
20
  } | {
74
21
  kind: "tree";
75
22
  items: SessionTreeOption[];
@@ -97,42 +44,6 @@ export interface UiState {
97
44
  showImages: boolean;
98
45
  footerTick: number;
99
46
  }
100
- export interface SessionSnapshot {
101
- messages: AgentMessage[];
102
- model: Model<any> | undefined;
103
- thinkingLevel: ThinkingLevel;
104
- isStreaming: boolean;
105
- isCompacting: boolean;
106
- isBashRunning: boolean;
107
- pendingMessageCount: number;
108
- pendingToolCallCount: number;
109
- sessionId: string;
110
- sessionFile: string | undefined;
111
- sessionName: string | undefined;
112
- leafId: string | null | undefined;
113
- error?: string;
114
- stats: SessionStats;
115
- contextUsage?: {
116
- tokens: number;
117
- contextWindow: number;
118
- percent: number;
119
- };
120
- }
121
- export interface StartupNotice {
122
- kind: StatusKind;
123
- text: string;
124
- }
125
- export interface StartupChangelog {
126
- latestVersion: string;
127
- markdown: string;
128
- }
129
- export interface UiDisplayBlock {
130
- id: string;
131
- kind: "changelog";
132
- title: string;
133
- markdown: string;
134
- timestamp: number;
135
- }
136
47
  export interface InteractiveAppContext {
137
48
  session: AgentSession;
138
49
  requestExit: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../app/interfaces/react-ink/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../app/interfaces/react-ink/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EACX,mBAAmB,EACnB,iBAAiB,EAEjB,kBAAkB,EAKlB,iBAAiB,EAGjB,aAAa,EACb,kBAAkB,EAElB,iBAAiB,EACjB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACX,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,yBAAyB,EACzB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,iBAAiB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,YAAY,GACrB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,GACrE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,iBAAiB,EAAE,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,iBAAiB,EAAE,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,mBAAmB,EAAE,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,kBAAkB,EAAE,CAAA;CAAE,GAClD,iBAAiB,CAAC;AAErB,MAAM,WAAW,OAAO;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACrC,OAAO,EAAE,YAAY,CAAC;IACtB,WAAW,EAAE,MAAM,IAAI,CAAC;CACxB"}
@@ -0,0 +1,22 @@
1
+ export interface InkKeyLike {
2
+ return?: boolean;
3
+ escape?: boolean;
4
+ backspace?: boolean;
5
+ delete?: boolean;
6
+ tab?: boolean;
7
+ upArrow?: boolean;
8
+ downArrow?: boolean;
9
+ leftArrow?: boolean;
10
+ rightArrow?: boolean;
11
+ home?: boolean;
12
+ end?: boolean;
13
+ pageUp?: boolean;
14
+ pageDown?: boolean;
15
+ ctrl?: boolean;
16
+ meta?: boolean;
17
+ alt?: boolean;
18
+ shift?: boolean;
19
+ }
20
+ export declare function toKeybindingId(input: string, key: InkKeyLike): string | null;
21
+ export declare function toTerminalKeyData(input: string, key: InkKeyLike): string | null;
22
+ //# sourceMappingURL=key-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-data.d.ts","sourceRoot":"","sources":["../../../../app/interfaces/react-ink/utils/key-data.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB;AAoBD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CA4B5E;AAsBD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CA6B/E"}
@@ -0,0 +1,123 @@
1
+ function normalizePrintableKey(input) {
2
+ if (input.length !== 1) {
3
+ return null;
4
+ }
5
+ const char = input.toLowerCase();
6
+ const code = char.charCodeAt(0);
7
+ if ((code >= 97 && code <= 122) || (code >= 48 && code <= 57)) {
8
+ return char;
9
+ }
10
+ if (char === " ") {
11
+ return "space";
12
+ }
13
+ return input;
14
+ }
15
+ export function toKeybindingId(input, key) {
16
+ const modifiers = [];
17
+ if (key.shift)
18
+ modifiers.push("shift");
19
+ if (key.ctrl)
20
+ modifiers.push("ctrl");
21
+ if (key.alt || key.meta)
22
+ modifiers.push("alt");
23
+ let base = null;
24
+ if (key.upArrow)
25
+ base = "up";
26
+ else if (key.downArrow)
27
+ base = "down";
28
+ else if (key.rightArrow)
29
+ base = "right";
30
+ else if (key.leftArrow)
31
+ base = "left";
32
+ else if (key.home)
33
+ base = "home";
34
+ else if (key.end)
35
+ base = "end";
36
+ else if (key.pageUp)
37
+ base = "pageUp";
38
+ else if (key.pageDown)
39
+ base = "pageDown";
40
+ else if (key.delete)
41
+ base = "delete";
42
+ else if (key.backspace)
43
+ base = "backspace";
44
+ else if (key.escape)
45
+ base = "escape";
46
+ else if (key.return)
47
+ base = "enter";
48
+ else if (key.tab)
49
+ base = "tab";
50
+ else
51
+ base = normalizePrintableKey(input);
52
+ if (!base) {
53
+ return null;
54
+ }
55
+ return modifiers.length > 0 ? `${modifiers.join("+")}+${base}` : base;
56
+ }
57
+ function toControlCharacter(input) {
58
+ if (input.length !== 1) {
59
+ return null;
60
+ }
61
+ const char = input.toLowerCase();
62
+ const code = char.charCodeAt(0);
63
+ if (code >= 97 && code <= 122) {
64
+ return String.fromCharCode(code & 0x1f);
65
+ }
66
+ if (char === "[")
67
+ return "\x1b";
68
+ if (char === "\\")
69
+ return "\x1c";
70
+ if (char === "]")
71
+ return "\x1d";
72
+ if (char === "^")
73
+ return "\x1e";
74
+ if (char === "_")
75
+ return "\x1f";
76
+ return null;
77
+ }
78
+ export function toTerminalKeyData(input, key) {
79
+ if ((key.meta || key.alt) && key.return)
80
+ return "\x1b\r";
81
+ if ((key.meta || key.alt) && key.upArrow)
82
+ return "\x1bp";
83
+ if ((key.meta || key.alt) && key.downArrow)
84
+ return "\x1bn";
85
+ if ((key.meta || key.alt) && key.rightArrow)
86
+ return "\x1bf";
87
+ if ((key.meta || key.alt) && key.leftArrow)
88
+ return "\x1bb";
89
+ if (key.upArrow)
90
+ return "\x1b[A";
91
+ if (key.downArrow)
92
+ return "\x1b[B";
93
+ if (key.rightArrow)
94
+ return "\x1b[C";
95
+ if (key.leftArrow)
96
+ return "\x1b[D";
97
+ if (key.home)
98
+ return "\x1b[H";
99
+ if (key.end)
100
+ return "\x1b[F";
101
+ if (key.pageUp)
102
+ return "\x1b[5~";
103
+ if (key.pageDown)
104
+ return "\x1b[6~";
105
+ if (key.delete)
106
+ return "\x1b[3~";
107
+ if (key.backspace)
108
+ return "\x7f";
109
+ if (key.escape)
110
+ return "\x1b";
111
+ if (key.return)
112
+ return "\r";
113
+ if (key.tab)
114
+ return key.shift ? "\x1b[Z" : "\t";
115
+ if (key.ctrl) {
116
+ return toControlCharacter(input);
117
+ }
118
+ if (key.meta || key.alt) {
119
+ return input ? `\x1b${input}` : "\x1b";
120
+ }
121
+ return input || null;
122
+ }
123
+ //# sourceMappingURL=key-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-data.js","sourceRoot":"","sources":["../../../../app/interfaces/react-ink/utils/key-data.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@ import type { AgentSession } from "../../../runtime/agent-session.js";
2
2
  import type { LoginProviderOption, SavedAccountOption } from "../types.js";
3
3
  export declare function formatSessionStats(session: AgentSession): string;
4
4
  export declare function setSessionName(session: AgentSession, name: string): string;
5
+ export declare function renameSessionAtPath(sessionPath: string, name: string): Promise<string>;
6
+ export declare function deleteSessionAtPath(sessionPath: string): Promise<void>;
5
7
  export declare function copyLastAssistantMessage(session: AgentSession): string;
6
8
  export declare function buildLoginProviders(session: AgentSession): LoginProviderOption[];
7
9
  export declare function buildSavedAccounts(session: AgentSession): SavedAccountOption[];
@@ -1 +1 @@
1
- {"version":3,"file":"session-actions.d.ts","sourceRoot":"","sources":["../../../../app/interfaces/react-ink/utils/session-actions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE3E,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAWhE;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAG1E;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAOtE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,mBAAmB,EAAE,CAiBhF;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,kBAAkB,EAAE,CAa9E"}
1
+ {"version":3,"file":"session-actions.d.ts","sourceRoot":"","sources":["../../../../app/interfaces/react-ink/utils/session-actions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE3E,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAWhE;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAG1E;AAED,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAI5F;AAED,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5E;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAOtE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,mBAAmB,EAAE,CAiBhF;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,kBAAkB,EAAE,CAa9E"}
@@ -1,4 +1,6 @@
1
+ import { unlink } from "node:fs/promises";
1
2
  import { copyToClipboard } from "../../../helpers/clipboard.js";
3
+ import { SessionManager } from "../../../runtime/session-manager.js";
2
4
  export function formatSessionStats(session) {
3
5
  const stats = session.getSessionStats();
4
6
  const lines = [
@@ -15,6 +17,14 @@ export function setSessionName(session, name) {
15
17
  session.sessionManager.appendSessionInfo(name);
16
18
  return session.sessionManager.getSessionName() ?? name.trim();
17
19
  }
20
+ export async function renameSessionAtPath(sessionPath, name) {
21
+ const manager = SessionManager.open(sessionPath);
22
+ manager.appendSessionInfo(name);
23
+ return manager.getSessionName() ?? name.trim();
24
+ }
25
+ export async function deleteSessionAtPath(sessionPath) {
26
+ await unlink(sessionPath);
27
+ }
18
28
  export function copyLastAssistantMessage(session) {
19
29
  const text = session.getLastAssistantText();
20
30
  if (!text) {
@@ -1 +1 @@
1
- {"version":3,"file":"session-actions.js","sourceRoot":"","sources":["../../../../app/interfaces/react-ink/utils/session-actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-actions.js","sourceRoot":"","sources":["../../../../app/interfaces/react-ink/utils/session-actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAGrE,MAAM,UAAU,kBAAkB,CAAC,OAAqB;IACvD,MAAM,KAAK,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG;QACb,YAAY,KAAK,CAAC,SAAS,EAAE;QAC7B,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS;QAC5D,aAAa,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,YAAY,UAAU,KAAK,CAAC,iBAAiB,aAAa;QACrG,eAAe,KAAK,CAAC,SAAS,mBAAmB,KAAK,CAAC,WAAW,EAAE;QACpE,WAAW,KAAK,CAAC,MAAM,CAAC,KAAK,WAAW,KAAK,CAAC,MAAM,CAAC,KAAK,SAAS,KAAK,CAAC,MAAM,CAAC,MAAM,OAAO;QAC7F,UAAU,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;KACjC,CAAC;IACF,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAqB,EAAE,IAAY;IACjE,OAAO,CAAC,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC/C,OAAO,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;AAC/D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,WAAmB,EAAE,IAAY;IAC1E,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACjD,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO,OAAO,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,WAAmB;IAC5D,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAqB;IAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAC5C,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC7D,CAAC;IACD,eAAe,CAAC,IAAI,CAAC,CAAC;IACtB,OAAO,IAAI,CAAC;AACb,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAqB;IACxD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;QACpD,IAAI,OAAO,CAAC,aAAa,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7D,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;IACF,CAAC;IAED,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IAEvH,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;SAC9B,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACnB,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ;KAC7D,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAqB;IACvD,MAAM,OAAO,GAAyB,EAAE,CAAC;IACzC,KAAK,MAAM,QAAQ,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAChE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC;gBACZ,QAAQ,EAAE,QAAQ,CAAC,EAAE;gBACrB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,KAAK,EAAE,GAAG,QAAQ,CAAC,EAAE,IAAI,OAAO,CAAC,SAAS,EAAE;aAC5C,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7E,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { AgentSession } from "../../../runtime/agent-session.js";
2
+ import type { StartupDiagnostics } from "../types.js";
3
+ export declare function buildStartupDiagnostics(session: AgentSession, options?: {
4
+ force?: boolean;
5
+ verbose?: boolean;
6
+ }): Promise<StartupDiagnostics | undefined>;
7
+ //# sourceMappingURL=startup-diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startup-diagnostics.d.ts","sourceRoot":"","sources":["../../../../app/interfaces/react-ink/utils/startup-diagnostics.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAGtE,OAAO,KAAK,EAAE,kBAAkB,EAA6B,MAAM,aAAa,CAAC;AAiDjF,wBAAsB,uBAAuB,CAC5C,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9C,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAwGzC"}
@@ -0,0 +1,111 @@
1
+ import { existsSync } from "node:fs";
2
+ import { detectSupportedImageMimeTypeFromFile } from "../../../helpers/mime.js";
3
+ function shortenPath(path) {
4
+ const cwd = process.cwd();
5
+ const home = process.env.HOME || process.env.USERPROFILE || "";
6
+ if (cwd && path.startsWith(cwd)) {
7
+ const relative = path.slice(cwd.length).replace(/^\/+/, "");
8
+ return relative.length > 0 ? `./${relative}` : ".";
9
+ }
10
+ if (home && path.startsWith(home)) {
11
+ return `~${path.slice(home.length)}`;
12
+ }
13
+ return path;
14
+ }
15
+ function limitLines(lines, maxLines = 6) {
16
+ if (lines.length <= maxLines) {
17
+ return lines;
18
+ }
19
+ return [...lines.slice(0, maxLines), `... ${lines.length - maxLines} more`];
20
+ }
21
+ function makeSection(title, lines, tone) {
22
+ const filtered = lines.map((line) => line.trim()).filter(Boolean);
23
+ if (filtered.length === 0) {
24
+ return null;
25
+ }
26
+ return {
27
+ title,
28
+ lines: limitLines(filtered),
29
+ tone,
30
+ };
31
+ }
32
+ function formatDiagnostics(label, diagnostics) {
33
+ return makeSection(label, diagnostics.map((diagnostic) => diagnostic.path ? `${diagnostic.message} (${shortenPath(diagnostic.path)})` : diagnostic.message), diagnostics.some((diagnostic) => diagnostic.type === "error") ? "error" : "warning");
34
+ }
35
+ export async function buildStartupDiagnostics(session, options) {
36
+ const shouldShow = options?.force || options?.verbose || !session.settingsManager.getQuietStartup();
37
+ if (!shouldShow) {
38
+ return undefined;
39
+ }
40
+ const sections = [];
41
+ const resourceLoader = session.resourceLoader;
42
+ const contextSection = makeSection("Context", resourceLoader.getAgentsFiles().agentsFiles.map((file) => shortenPath(file.path)));
43
+ if (contextSection)
44
+ sections.push(contextSection);
45
+ const skills = resourceLoader.getSkills().skills;
46
+ const skillsSection = makeSection("Skills", skills.map((skill) => `${skill.name} ${shortenPath(skill.filePath)}`));
47
+ if (skillsSection)
48
+ sections.push(skillsSection);
49
+ const prompts = resourceLoader.getPrompts().prompts;
50
+ const promptsSection = makeSection("Prompts", prompts.map((prompt) => `/${prompt.name} ${shortenPath(prompt.filePath)}`));
51
+ if (promptsSection)
52
+ sections.push(promptsSection);
53
+ const extensionPaths = session.extensionRunner?.getExtensionPaths() ??
54
+ resourceLoader.getExtensions().extensions.map((extension) => extension.path);
55
+ const extensionsSection = makeSection("Extensions", extensionPaths.map((path) => shortenPath(path)));
56
+ if (extensionsSection)
57
+ sections.push(extensionsSection);
58
+ const hooks = resourceLoader.getHooks().hooks;
59
+ const hooksSection = makeSection("Hooks", hooks.map((hook) => shortenPath(hook.path)));
60
+ if (hooksSection)
61
+ sections.push(hooksSection);
62
+ const themes = resourceLoader.getThemes().themes.filter((theme) => Boolean(theme.sourcePath));
63
+ const themesSection = makeSection("Themes", themes.map((theme) => `${theme.name} ${shortenPath(theme.sourcePath)}`));
64
+ if (themesSection)
65
+ sections.push(themesSection);
66
+ const startupImagePath = session.settingsManager.getStartupImagePath();
67
+ if (startupImagePath) {
68
+ if (!session.settingsManager.getShowImages()) {
69
+ const section = makeSection("Startup Image", [`Configured but hidden because image display is disabled: ${shortenPath(startupImagePath)}`], "warning");
70
+ if (section)
71
+ sections.push(section);
72
+ }
73
+ else if (!existsSync(startupImagePath)) {
74
+ const section = makeSection("Startup Image", [`Configured image not found: ${shortenPath(startupImagePath)}`], "warning");
75
+ if (section)
76
+ sections.push(section);
77
+ }
78
+ else {
79
+ const mimeType = await detectSupportedImageMimeTypeFromFile(startupImagePath);
80
+ const section = makeSection("Startup Image", [
81
+ mimeType
82
+ ? `${shortenPath(startupImagePath)} ${mimeType}`
83
+ : `Unsupported format: ${shortenPath(startupImagePath)}`,
84
+ ], mimeType ? "default" : "warning");
85
+ if (section)
86
+ sections.push(section);
87
+ }
88
+ }
89
+ const skillIssues = formatDiagnostics("Skill Conflicts", resourceLoader.getSkills().diagnostics);
90
+ if (skillIssues)
91
+ sections.push(skillIssues);
92
+ const promptIssues = formatDiagnostics("Prompt Conflicts", resourceLoader.getPrompts().diagnostics);
93
+ if (promptIssues)
94
+ sections.push(promptIssues);
95
+ const themeIssues = formatDiagnostics("Theme Conflicts", resourceLoader.getThemes().diagnostics);
96
+ if (themeIssues)
97
+ sections.push(themeIssues);
98
+ const hookIssues = formatDiagnostics("Hook Issues", resourceLoader.getHooks().errors.map((error) => ({ type: "error", message: error.error, path: error.path })));
99
+ if (hookIssues)
100
+ sections.push(hookIssues);
101
+ const extensionIssues = formatDiagnostics("Extension Issues", [
102
+ ...resourceLoader
103
+ .getExtensions()
104
+ .errors.map((error) => ({ type: "error", message: error.error, path: error.path })),
105
+ ...(session.extensionRunner?.getShortcutDiagnostics() ?? []),
106
+ ]);
107
+ if (extensionIssues)
108
+ sections.push(extensionIssues);
109
+ return sections.length > 0 ? { sections } : undefined;
110
+ }
111
+ //# sourceMappingURL=startup-diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startup-diagnostics.js","sourceRoot":"","sources":["../../../../app/interfaces/react-ink/utils/startup-diagnostics.ts"],"names":[],"mappings":"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"}
@@ -34,7 +34,7 @@
34
34
  "surfaces": {
35
35
  "selected": "activeSurface",
36
36
  "userMessage": "promptSurface",
37
- "userMessageText": "",
37
+ "userMessageText": "#ffffff",
38
38
  "customMessage": "customSurface",
39
39
  "customMessageText": "",
40
40
  "customMessageLabel": "#9575cd",
@@ -33,7 +33,7 @@
33
33
  "surfaces": {
34
34
  "selected": "activeSurface",
35
35
  "userMessage": "promptSurface",
36
- "userMessageText": "",
36
+ "userMessageText": "#ffffff",
37
37
  "customMessage": "customSurface",
38
38
  "customMessageText": "",
39
39
  "customMessageLabel": "#7e57c2",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "indusagi-coding-agent",
3
- "version": "0.1.47",
4
- "description": "Terminal-first TypeScript coding agent built on the published indusagi framework package.",
3
+ "version": "0.1.48",
4
+ "description": "Terminal-first TypeScript coding agent built on the indusagi framework package.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
@@ -51,12 +51,12 @@
51
51
  "chalk": "^5.6.2",
52
52
  "cli-highlight": "^2.1.11",
53
53
  "diff": "^8.0.2",
54
+ "figures": "^6.1.0",
54
55
  "file-type": "^21.1.1",
55
56
  "glob": "^11.0.3",
56
- "figures": "^6.1.0",
57
57
  "highlight.js": "^11.11.1",
58
58
  "i": "^0.3.7",
59
- "indusagi": "0.12.24",
59
+ "indusagi": "0.12.26",
60
60
  "indusagi-coding-agent": "^0.1.42",
61
61
  "ink": "^5.2.1",
62
62
  "marked": "^17.0.5",