@felan-ai/felan 0.10.0 → 0.11.1

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 CHANGED
@@ -35,8 +35,10 @@ other host paths directly.
35
35
 
36
36
  Only source-controlled built-in Felan extensions can be imported. External
37
37
  packages, extensions, configured skill paths, prompts, themes, and Pi context
38
- files remain filtered. Agent Skills are loaded from `~/.agents/skills` and
39
- `<workspace>/.agents/skills` and are shared with local subagents.
38
+ files remain filtered. Agent Core separately loads one instruction file from
39
+ the session cwd, preferring `AGENTS.md` over `CLAUDE.md`. Agent Skills are
40
+ loaded from `~/.agents/skills` and `<workspace>/.agents/skills` and are shared
41
+ with local subagents.
40
42
  The built-in powerline reads `~/.felan/powerline.json` (or
41
43
  `$FELAN_AGENT_DIR/powerline.json`) once when it initializes. Its subscription
42
44
  segment obtains the active Codex or Claude OAuth token through Felan's
@@ -63,6 +65,21 @@ All built-in extensions are enabled by default. Toggle them in
63
65
  }
64
66
  ```
65
67
 
68
+ The local transcript groups adjacent tool calls by default. Press `Ctrl+O` to
69
+ switch between group summaries and bounded per-call previews. Use `/tools` or
70
+ `Alt+T` to inspect the complete arguments and result for one call. To restore
71
+ Pi's original ungrouped rendering, set:
72
+
73
+ ```json
74
+ {
75
+ "felanTui": {
76
+ "toolDisplay": "full"
77
+ }
78
+ }
79
+ ```
80
+
81
+ Supported values are `grouped` and `full`; `grouped` is the default.
82
+
66
83
  `askUser` provides the sequential `ask_user` tool. The local host presents
67
84
  single questions or 1-4 question wizards as searchable overlays or inline
68
85
  dialogs, with multi-select, freeform answers, and optional comments.
@@ -150,13 +167,22 @@ The TUI reads one optional `$FELAN_AGENT_DIR/APPEND_SYSTEM.md` file when each
150
167
  session is constructed (`~/.felan/APPEND_SYSTEM.md` by default). Missing and
151
168
  blank files add nothing; other read failures stop session construction with the
152
169
  filesystem error. The file extends Agent Core's Felan prompt after enabled
153
- extension capabilities. Child persona instructions follow this application
154
- append. Explicit Agent Skills and the current working directory are added last.
170
+ extension capabilities.
171
+
172
+ Agent Core also reads at most one instruction file from each session's cwd
173
+ through the active `AgentRuntime`, with `AGENTS.md` taking precedence over
174
+ `CLAUDE.md`. Missing, unreadable, and blank instruction files are nonfatal.
175
+ Child persona instructions follow the application append, root project
176
+ instructions follow those consumer appends using Pi's path-labeled context-file
177
+ format, and explicit Agent Skills and the current working directory are added
178
+ last. The progressive-context extension remains responsible only for instruction
179
+ files below the session cwd.
155
180
 
156
181
  System prompt inputs are limited to Agent Core, enabled capabilities, the
157
- single application append above, explicit Agent Skills, and the current working
158
- directory. Pi `SYSTEM.md`, project `APPEND_SYSTEM.md`, and project
159
- prompt/context files stay outside local composition.
182
+ single application append above, the selected cwd instruction file, explicit
183
+ Agent Skills, and the current working directory. Pi `SYSTEM.md`, project
184
+ `APPEND_SYSTEM.md`, and other Pi-discovered prompt/context files stay outside
185
+ local composition.
160
186
 
161
187
  When enabled, `@felan-ai/ext-subagents` uses the session-bound local host and
162
188
  provides `Agent`, `list_subagents`,
@@ -1 +1 @@
1
- {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,oBAAqB,SAAQ,8BAA8B;IAC1E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAsB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoCrF"}
1
+ {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,cAAc,CAAC;AAGtB,MAAM,WAAW,oBAAqB,SAAQ,8BAA8B;IAC1E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAsB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoCrF"}
@@ -1,5 +1,6 @@
1
1
  import { InteractiveMode } from '@earendil-works/pi-coding-agent';
2
2
  import { createLocalFelanRuntime, } from './runtime.js';
3
+ import { createToolActivityRuntimeView } from './tool-activity/runtime-view.js';
3
4
  export async function runLocalFelan(options = {}) {
4
5
  const runtime = await createLocalFelanRuntime(options);
5
6
  const previousPiAgentDir = process.env.PI_CODING_AGENT_DIR;
@@ -9,7 +10,7 @@ export async function runLocalFelan(options = {}) {
9
10
  process.env.PI_SKIP_VERSION_CHECK = '1';
10
11
  process.env.PI_TELEMETRY = '0';
11
12
  try {
12
- const mode = new InteractiveMode(runtime, {
13
+ const mode = new InteractiveMode(createToolActivityRuntimeView(runtime), {
13
14
  ...(options.initialMessage === undefined ? {} : { initialMessage: options.initialMessage }),
14
15
  ...(options.verbose === undefined ? {} : { verbose: options.verbose }),
15
16
  });
@@ -1 +1 @@
1
- {"version":3,"file":"application.js","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EACL,uBAAuB,GAExB,MAAM,cAAc,CAAC;AAOtB,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,UAAgC,EAAE;IACpE,MAAM,OAAO,GAAG,MAAM,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAC3D,MAAM,0BAA0B,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IACrE,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,GAAG,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC;IAE/B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC,OAAO,EAAE;YACxC,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3F,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;SACvE,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;IACnB,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC;gBAAS,CAAC;YACT,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;gBACrC,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,kBAAkB,CAAC;YACvD,CAAC;YACD,IAAI,0BAA0B,KAAK,SAAS,EAAE,CAAC;gBAC7C,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,0BAA0B,CAAC;YACjE,CAAC;YACD,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;gBACtC,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,mBAAmB,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"application.js","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EACL,uBAAuB,GAExB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAOhF,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,UAAgC,EAAE;IACpE,MAAM,OAAO,GAAG,MAAM,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAC3D,MAAM,0BAA0B,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IACrE,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,GAAG,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC;IAE/B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC,6BAA6B,CAAC,OAAO,CAAC,EAAE;YACvE,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3F,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;SACvE,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;IACnB,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC;gBAAS,CAAC;YACT,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;gBACrC,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,kBAAkB,CAAC;YACvD,CAAC;YACD,IAAI,0BAA0B,KAAK,SAAS,EAAE,CAAC;gBAC7C,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,0BAA0B,CAAC;YACjE,CAAC;YACD,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;gBACtC,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,mBAAmB,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,YAAY,EACZ,cAAc,EAId,KAAK,gCAAgC,EACrC,KAAK,wBAAwB,EAC9B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,iCAAiC,CAAC;AASzC,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,iBAAiB,EACjB,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAe7B,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,GAAG;IACpD,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,0BAA0B,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CACrF,CAAC;AAEF,MAAM,WAAW,uCAAuC;IACtD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,eAAe,CAAC,EAAE,wBAAwB,CAAC;IACpD,QAAQ,CAAC,cAAc,CAAC,EAAE,wBAAwB,CAAC;IACnD,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;CACnD;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,wBAAwB,CAAC;IACnD,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;CACnD;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,MAAkB,GAAG,SAAS,MAAM,EAAE,CAK9F;AAED,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,uCAAuC,GAC/C,gCAAgC,CAkGlC;AAED,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAKrF;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,GAAE,8BAAmC,GAC3C,OAAO,CAAC,iBAAiB,CAAC,CAyB5B"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,YAAY,EACZ,cAAc,EAId,KAAK,gCAAgC,EACrC,KAAK,wBAAwB,EAC9B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,iCAAiC,CAAC;AAazC,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,iBAAiB,EACjB,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAkB7B,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,GAAG;IACpD,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,0BAA0B,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CACrF,CAAC;AAEF,MAAM,WAAW,uCAAuC;IACtD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,eAAe,CAAC,EAAE,wBAAwB,CAAC;IACpD,QAAQ,CAAC,cAAc,CAAC,EAAE,wBAAwB,CAAC;IACnD,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;CACnD;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,wBAAwB,CAAC;IACnD,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;CACnD;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,MAAkB,GAAG,SAAS,MAAM,EAAE,CAK9F;AAED,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,uCAAuC,GAC/C,gCAAgC,CAsHlC;AAED,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAKrF;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,GAAE,8BAAmC,GAC3C,OAAO,CAAC,iBAAiB,CAAC,CAyB5B"}
package/dist/runtime.js CHANGED
@@ -7,10 +7,13 @@ import { bindSubagentSession } from '@felan-ai/ext-subagents';
7
7
  import { resolveModelScopeWithDiagnostics, } from '@earendil-works/pi-coding-agent';
8
8
  import { createLocalCodexStreamFunctionWrapper } from './codex.js';
9
9
  import { createLocalExtensionImporter, importLocalExtension, resolveBuiltinExtensionPackages, } from './extensions.js';
10
- import { createLocalSettingsManager, getFelanSettings } from './settings.js';
10
+ import { createLocalSettingsManager, getFelanSettings, getLocalToolDisplayMode, } from './settings.js';
11
11
  import { loadLocalAppendSystemPrompt } from './system-prompt.js';
12
12
  import { createLocalAgentRuntimeFactoryRequest, } from './runtime-factory.js';
13
13
  import { LocalSubagentHost, } from './subagents/host.js';
14
+ import { createToolActivityExtension } from './tool-activity/extension.js';
15
+ import { registerToolActivitySession } from './tool-activity/runtime-view.js';
16
+ import { ToolActivityState } from './tool-activity/state.js';
14
17
  const localSubagentHost = Symbol('localSubagentHost');
15
18
  const localSubagentShutdown = Symbol('localSubagentShutdown');
16
19
  export function getLocalAgentDir() {
@@ -32,6 +35,12 @@ export function createLocalSessionRuntimeFactory(options) {
32
35
  ]);
33
36
  const settingsManager = createLocalSettingsManager(cwd, options.agentDir);
34
37
  const felanSettings = getFelanSettings(settingsManager);
38
+ const toolActivityState = new ToolActivityState(getLocalToolDisplayMode(settingsManager));
39
+ const reloadSettings = settingsManager.reload.bind(settingsManager);
40
+ settingsManager.reload = async () => {
41
+ await reloadSettings();
42
+ toolActivityState.setMode(getLocalToolDisplayMode(settingsManager));
43
+ };
35
44
  const modelPatterns = settingsManager.getEnabledModels();
36
45
  const modelScope = modelPatterns && modelPatterns.length > 0
37
46
  ? await resolveModelScopeWithDiagnostics(modelPatterns, options.modelRuntime)
@@ -68,7 +77,12 @@ export function createLocalSessionRuntimeFactory(options) {
68
77
  throw error;
69
78
  }
70
79
  };
71
- sessions.set(sessionManager, { host, modelScope, shutdownState });
80
+ sessions.set(sessionManager, {
81
+ host,
82
+ modelScope,
83
+ shutdownState,
84
+ toolActivityState,
85
+ });
72
86
  return {
73
87
  runtime,
74
88
  ...(wrapStreamFunction === undefined ? {} : { wrapStreamFunction }),
@@ -77,13 +91,16 @@ export function createLocalSessionRuntimeFactory(options) {
77
91
  modelRuntime: options.modelRuntime,
78
92
  settingsManager,
79
93
  skillPaths,
94
+ inlineExtensions: [createToolActivityExtension(toolActivityState)],
80
95
  ...(appendSystemPrompt === undefined ? {} : { appendSystemPrompt: [appendSystemPrompt] }),
81
96
  ...(modelScope.scopedModels.length === 0 ? {} : { scopedModels: modelScope.scopedModels }),
82
97
  };
83
98
  });
84
99
  return async (request) => {
85
100
  const result = await createCoreRuntime(request);
86
- const { host, modelScope, shutdownState } = sessions.get(request.sessionManager);
101
+ const { host, modelScope, shutdownState, toolActivityState, } = sessions.get(request.sessionManager);
102
+ toolActivityState.attach(result.session);
103
+ registerToolActivitySession(result.session, toolActivityState);
87
104
  bindSubagentSession({ host, session: result.session });
88
105
  Object.defineProperty(result.services, localSubagentHost, { value: host });
89
106
  Object.defineProperty(result.services, localSubagentShutdown, { value: shutdownState });
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,13 @@ import type { LocalSubagentSettings } from './subagents/host.js';
4
4
  export interface FelanSettings {
5
5
  readonly builtinExtensions?: BuiltinExtensionSettings;
6
6
  readonly felanSubagents?: LocalSubagentSettings;
7
+ readonly felanTui?: FelanTuiSettings;
7
8
  }
9
+ export interface FelanTuiSettings {
10
+ readonly toolDisplay?: LocalToolDisplayMode;
11
+ }
12
+ export type LocalToolDisplayMode = 'grouped' | 'full';
8
13
  export declare function createLocalSettingsManager(cwd: string, agentDir: string): SettingsManager;
9
14
  export declare function getFelanSettings(settingsManager: SettingsManager): FelanSettings;
15
+ export declare function getLocalToolDisplayMode(settingsManager: SettingsManager): LocalToolDisplayMode;
10
16
  //# sourceMappingURL=settings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEjE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IACtD,QAAQ,CAAC,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACjD;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,eAAe,CAmCzF;AAED,wBAAgB,gBAAgB,CAAC,eAAe,EAAE,eAAe,GAAG,aAAa,CAEhF"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEjE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IACtD,QAAQ,CAAC,cAAc,CAAC,EAAE,qBAAqB,CAAC;IAChD,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CACtC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,oBAAoB,CAAC;CAC7C;AAED,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,MAAM,CAAC;AAEtD,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,eAAe,CAmCzF;AAED,wBAAgB,gBAAgB,CAAC,eAAe,EAAE,eAAe,GAAG,aAAa,CAEhF;AAED,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,eAAe,GAAG,oBAAoB,CAU9F"}
package/dist/settings.js CHANGED
@@ -38,4 +38,21 @@ export function createLocalSettingsManager(cwd, agentDir) {
38
38
  export function getFelanSettings(settingsManager) {
39
39
  return settingsManager.getGlobalSettings();
40
40
  }
41
+ export function getLocalToolDisplayMode(settingsManager) {
42
+ const rawSettings = settingsManager.getGlobalSettings();
43
+ const rawTui = rawSettings.felanTui;
44
+ if (rawTui === undefined)
45
+ return 'grouped';
46
+ if (!isRecord(rawTui))
47
+ throw new Error('felanTui must be an object');
48
+ const mode = rawTui.toolDisplay;
49
+ if (mode === undefined)
50
+ return 'grouped';
51
+ if (mode === 'grouped' || mode === 'full')
52
+ return mode;
53
+ throw new Error('felanTui.toolDisplay must be "grouped" or "full"');
54
+ }
55
+ function isRecord(value) {
56
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
57
+ }
41
58
  //# sourceMappingURL=settings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AASvD,MAAM,UAAU,0BAA0B,CAAC,GAAW,EAAE,QAAgB;IACtE,MAAM,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;IACzF,oEAAoE;IACpE,eAAe,CAAC,gBAAgB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC;IAC9C,eAAe,CAAC,iBAAiB,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;IAC7C,MAAM,iBAAiB,GAAG;QACxB,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,EAAE;QACd,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;KACX,CAAC;IACF,MAAM,gBAAgB,GAAG;QACvB,GAAG,iBAAiB;QACpB,sBAAsB,EAAE,KAAK;QAC7B,oBAAoB,EAAE,UAAU;KACjC,CAAC;IACF,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5D,MAAM,iBAAiB,GAAG,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAClF,MAAM,kBAAkB,GAAG,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAEpF,eAAe,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IACjD,eAAe,CAAC,MAAM,GAAG,KAAK,IAAI,EAAE;QAClC,MAAM,MAAM,EAAE,CAAC;QACf,eAAe,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IACnD,CAAC,CAAC;IACF,eAAe,CAAC,iBAAiB,GAAG,GAAG,EAAE,CAAC,CAAC;QACzC,GAAG,iBAAiB,EAAE;QACtB,GAAG,iBAAiB;KACrB,CAAC,CAAC;IACH,eAAe,CAAC,kBAAkB,GAAG,GAAG,EAAE,CAAC,CAAC;QAC1C,GAAG,kBAAkB,EAAE;QACvB,GAAG,iBAAiB;KACrB,CAAC,CAAC;IACH,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,eAAgC;IAC/D,OAAO,eAAe,CAAC,iBAAiB,EAAmB,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAgBvD,MAAM,UAAU,0BAA0B,CAAC,GAAW,EAAE,QAAgB;IACtE,MAAM,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;IACzF,oEAAoE;IACpE,eAAe,CAAC,gBAAgB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC;IAC9C,eAAe,CAAC,iBAAiB,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;IAC7C,MAAM,iBAAiB,GAAG;QACxB,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,EAAE;QACd,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;KACX,CAAC;IACF,MAAM,gBAAgB,GAAG;QACvB,GAAG,iBAAiB;QACpB,sBAAsB,EAAE,KAAK;QAC7B,oBAAoB,EAAE,UAAU;KACjC,CAAC;IACF,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5D,MAAM,iBAAiB,GAAG,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAClF,MAAM,kBAAkB,GAAG,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAEpF,eAAe,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IACjD,eAAe,CAAC,MAAM,GAAG,KAAK,IAAI,EAAE;QAClC,MAAM,MAAM,EAAE,CAAC;QACf,eAAe,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IACnD,CAAC,CAAC;IACF,eAAe,CAAC,iBAAiB,GAAG,GAAG,EAAE,CAAC,CAAC;QACzC,GAAG,iBAAiB,EAAE;QACtB,GAAG,iBAAiB;KACrB,CAAC,CAAC;IACH,eAAe,CAAC,kBAAkB,GAAG,GAAG,EAAE,CAAC,CAAC;QAC1C,GAAG,kBAAkB,EAAE;QACvB,GAAG,iBAAiB;KACrB,CAAC,CAAC;IACH,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,eAAgC;IAC/D,OAAO,eAAe,CAAC,iBAAiB,EAAmB,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,eAAgC;IACtE,MAAM,WAAW,GAAG,eAAe,CAAC,iBAAiB,EAA6B,CAAC;IACnF,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC;IACpC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAErE,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;IAChC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACvD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { InlineExtension } from '@earendil-works/pi-coding-agent';
2
+ import { ToolActivityState } from './state.js';
3
+ export declare const TOOL_ACTIVITY_EXTENSION_NAME = "@felan-ai/felan/tool-activity";
4
+ export declare const TOOL_ACTIVITY_SHORTCUT: "alt+t";
5
+ export declare function createToolActivityExtension(state: ToolActivityState): InlineExtension;
6
+ //# sourceMappingURL=extension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../../src/tool-activity/extension.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,eAAe,EAChB,MAAM,iCAAiC,CAAC;AAMzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,4BAA4B,kCAAkC,CAAC;AAC5E,eAAO,MAAM,sBAAsB,SAAe,CAAC;AAUnD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,iBAAiB,GAAG,eAAe,CA4BrF"}
@@ -0,0 +1,55 @@
1
+ import { Key, } from '@earendil-works/pi-tui';
2
+ import { ToolActivityInspector } from './inspector.js';
3
+ import { ToolActivityState } from './state.js';
4
+ export const TOOL_ACTIVITY_EXTENSION_NAME = '@felan-ai/felan/tool-activity';
5
+ export const TOOL_ACTIVITY_SHORTCUT = Key.alt('t');
6
+ const TOOL_ACTIVITY_OVERLAY_OPTIONS = {
7
+ anchor: 'center',
8
+ width: '90%',
9
+ minWidth: 50,
10
+ maxHeight: '90%',
11
+ margin: 1,
12
+ };
13
+ export function createToolActivityExtension(state) {
14
+ return {
15
+ name: TOOL_ACTIVITY_EXTENSION_NAME,
16
+ hidden: true,
17
+ factory: (pi) => {
18
+ const overlays = new Set();
19
+ const open = (ctx) => openToolActivityInspector(ctx, state, overlays);
20
+ pi.registerCommand('tools', {
21
+ description: 'Inspect full tool call arguments and results',
22
+ handler: async (_args, ctx) => open(ctx),
23
+ });
24
+ pi.registerShortcut(TOOL_ACTIVITY_SHORTCUT, {
25
+ description: 'Inspect full tool call arguments and results',
26
+ handler: open,
27
+ });
28
+ pi.on('session_start', () => {
29
+ state.refreshMode();
30
+ state.rebuild();
31
+ });
32
+ pi.on('session_tree', () => state.rebuild());
33
+ pi.on('session_shutdown', (event) => {
34
+ for (const overlay of overlays)
35
+ overlay.close();
36
+ overlays.clear();
37
+ if (event.reason !== 'reload')
38
+ state.dispose();
39
+ });
40
+ },
41
+ };
42
+ }
43
+ async function openToolActivityInspector(ctx, state, overlays) {
44
+ if (ctx.mode !== 'tui') {
45
+ ctx.ui.notify('Tool activity inspector is available only in the local TUI', 'warning');
46
+ return;
47
+ }
48
+ await ctx.ui.custom((tui, theme, _keybindings, done) => {
49
+ let overlay;
50
+ overlay = new ToolActivityInspector(state, theme, tui, () => done(undefined), () => overlays.delete(overlay));
51
+ overlays.add(overlay);
52
+ return overlay;
53
+ }, { overlay: true, overlayOptions: TOOL_ACTIVITY_OVERLAY_OPTIONS });
54
+ }
55
+ //# sourceMappingURL=extension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension.js","sourceRoot":"","sources":["../../src/tool-activity/extension.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,GAAG,GAEJ,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,CAAC,MAAM,4BAA4B,GAAG,+BAA+B,CAAC;AAC5E,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEnD,MAAM,6BAA6B,GAAmB;IACpD,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,KAAK;IACZ,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,CAAC;CACV,CAAC;AAEF,MAAM,UAAU,2BAA2B,CAAC,KAAwB;IAClE,OAAO;QACL,IAAI,EAAE,4BAA4B;QAClC,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE;YACd,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;YAClD,MAAM,IAAI,GAAG,CAAC,GAAqB,EAAE,EAAE,CAAC,yBAAyB,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAExF,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE;gBAC1B,WAAW,EAAE,8CAA8C;gBAC3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;aACzC,CAAC,CAAC;YACH,EAAE,CAAC,gBAAgB,CAAC,sBAAsB,EAAE;gBAC1C,WAAW,EAAE,8CAA8C;gBAC3D,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;YACH,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;gBAC1B,KAAK,CAAC,WAAW,EAAE,CAAC;gBACpB,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7C,EAAE,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,EAAE;gBAClC,KAAK,MAAM,OAAO,IAAI,QAAQ;oBAAE,OAAO,CAAC,KAAK,EAAE,CAAC;gBAChD,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACjB,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ;oBAAE,KAAK,CAAC,OAAO,EAAE,CAAC;YACjD,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,yBAAyB,CACtC,GAAqB,EACrB,KAAwB,EACxB,QAAoC;IAEpC,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACvB,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,4DAA4D,EAAE,SAAS,CAAC,CAAC;QACvF,OAAO;IACT,CAAC;IAED,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CACjB,CAAC,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE;QACjC,IAAI,OAA+B,CAAC;QACpC,OAAO,GAAG,IAAI,qBAAqB,CACjC,KAAK,EACL,KAAK,EACL,GAAG,EACH,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EACrB,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAC/B,CAAC;QACF,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,OAAO,CAAC;IACjB,CAAC,EACD,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,6BAA6B,EAAE,CACjE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { type Theme } from '@earendil-works/pi-coding-agent';
2
+ import { type Component, type TUI } from '@earendil-works/pi-tui';
3
+ import { ToolActivityState } from './state.js';
4
+ export declare class ToolActivityInspector implements Component {
5
+ #private;
6
+ private readonly state;
7
+ private readonly theme;
8
+ private readonly tui;
9
+ private readonly done;
10
+ private readonly onDispose;
11
+ constructor(state: ToolActivityState, theme: Theme, tui: TUI, done: () => void, onDispose?: () => void);
12
+ handleInput(data: string): void;
13
+ render(width: number): string[];
14
+ invalidate(): void;
15
+ dispose(): void;
16
+ close(): void;
17
+ }
18
+ //# sourceMappingURL=inspector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspector.d.ts","sourceRoot":"","sources":["../../src/tool-activity/inspector.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,KAAK,EACX,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAKL,KAAK,SAAS,EACd,KAAK,GAAG,EACT,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAEL,iBAAiB,EAClB,MAAM,YAAY,CAAC;AASpB,qBAAa,qBAAsB,YAAW,SAAS;;IAkBnD,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAJT,KAAK,EAAE,iBAAiB,EACxB,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,MAAM,IAAI,EAChB,SAAS,GAAE,MAAM,IAAe;IAkBnD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAc/B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IA2C/B,UAAU,IAAI,IAAI;IAElB,OAAO,IAAI,IAAI;IAOf,KAAK,IAAI,IAAI;CA4Ed"}
@@ -0,0 +1,269 @@
1
+ import { ToolExecutionComponent, } from '@earendil-works/pi-coding-agent';
2
+ import { matchesKey, stripTerminalSequences, truncateToWidth, wrapTextWithAnsi, } from '@earendil-works/pi-tui';
3
+ import { toolCallLabel } from './presentation.js';
4
+ import { ToolActivityState, } from './state.js';
5
+ const LIST_ROWS = 8;
6
+ const MIN_DETAIL_ROWS = 6;
7
+ const MAX_DETAIL_ROWS = 24;
8
+ const MAX_SERIALIZED_CHARACTERS = 200_000;
9
+ const PADDING_X = 2;
10
+ const PADDING_Y = 1;
11
+ export class ToolActivityInspector {
12
+ state;
13
+ theme;
14
+ tui;
15
+ done;
16
+ onDispose;
17
+ #unsubscribe;
18
+ #detailRows;
19
+ #selected = 0;
20
+ #listScroll = 0;
21
+ #detailScroll = 0;
22
+ #detailLength = 0;
23
+ #detailComponent;
24
+ #detailSource;
25
+ #disposed = false;
26
+ constructor(state, theme, tui, done, onDispose = () => { }) {
27
+ this.state = state;
28
+ this.theme = theme;
29
+ this.tui = tui;
30
+ this.done = done;
31
+ this.onDispose = onDispose;
32
+ this.#detailRows = Math.max(MIN_DETAIL_ROWS, Math.min(MAX_DETAIL_ROWS, tui.terminal.rows - LIST_ROWS - 9));
33
+ this.#selected = Math.max(0, state.calls().length - 1);
34
+ this.#clampList();
35
+ this.#syncDetailComponent();
36
+ this.#unsubscribe = state.subscribe(() => {
37
+ if (this.#disposed)
38
+ return;
39
+ this.#selected = Math.min(this.#selected, Math.max(0, state.calls().length - 1));
40
+ this.#clampList();
41
+ this.#syncDetailComponent();
42
+ this.tui.requestRender();
43
+ });
44
+ }
45
+ handleInput(data) {
46
+ if (this.#disposed)
47
+ return;
48
+ if (matchesKey(data, 'escape') || data === 'q') {
49
+ this.close();
50
+ return;
51
+ }
52
+ if (matchesKey(data, 'up') || data === 'k')
53
+ this.#select(-1);
54
+ if (matchesKey(data, 'down') || data === 'j')
55
+ this.#select(1);
56
+ if (matchesKey(data, 'ctrl+u') || matchesKey(data, 'pageUp'))
57
+ this.#scrollDetail(-this.#detailRows);
58
+ if (matchesKey(data, 'ctrl+d') || matchesKey(data, 'pageDown'))
59
+ this.#scrollDetail(this.#detailRows);
60
+ if (matchesKey(data, 'home'))
61
+ this.#scrollDetail(-this.#detailLength);
62
+ if (matchesKey(data, 'end'))
63
+ this.#scrollDetail(this.#detailLength);
64
+ }
65
+ render(width) {
66
+ const innerWidth = Math.max(1, width - PADDING_X * 2);
67
+ const calls = this.state.calls();
68
+ const lines = [
69
+ this.theme.fg('accent', this.theme.bold('Tool Activity'))
70
+ + this.theme.fg('dim', ' ↑↓ select • ctrl+u/d detail • home/end • q/esc close'),
71
+ this.theme.fg('muted', `${calls.length} tool call${calls.length === 1 ? '' : 's'}`),
72
+ '',
73
+ ];
74
+ if (calls.length === 0) {
75
+ lines.push(this.theme.fg('dim', 'No tool activity in this session.'));
76
+ return pad(lines, innerWidth);
77
+ }
78
+ const listEnd = Math.min(calls.length, this.#listScroll + LIST_ROWS);
79
+ lines.push(this.theme.fg('dim', `Showing calls ${this.#listScroll + 1}-${listEnd}/${calls.length}`));
80
+ for (let index = this.#listScroll; index < listEnd; index += 1) {
81
+ const call = calls[index];
82
+ const marker = index === this.#selected ? this.theme.fg('accent', '▶') : ' ';
83
+ lines.push(`${marker} ${statusIcon(call, this.theme)} ${toolCallLabel(call)}`);
84
+ }
85
+ const selected = calls[this.#selected];
86
+ const renderedView = this.#detailComponent
87
+ ?.render(innerWidth)
88
+ .map((line) => line.trimEnd())
89
+ .filter((line) => stripTerminalSequences(line).trim().length > 0) ?? [];
90
+ const detailLines = wrapTextWithAnsi(formatDetail(selected, this.theme, renderedView), innerWidth);
91
+ this.#detailLength = detailLines.length;
92
+ this.#clampDetail();
93
+ const detailEnd = Math.min(detailLines.length, this.#detailScroll + this.#detailRows);
94
+ lines.push('', this.theme.fg('muted', '─'.repeat(Math.max(1, Math.min(innerWidth, 80)))));
95
+ if (detailLines.length > this.#detailRows) {
96
+ lines.push(this.theme.fg('dim', `Showing detail lines ${this.#detailScroll + 1}-${detailEnd}/${detailLines.length}`));
97
+ }
98
+ lines.push(...detailLines.slice(this.#detailScroll, detailEnd));
99
+ return pad(lines, innerWidth);
100
+ }
101
+ invalidate() { }
102
+ dispose() {
103
+ if (this.#disposed)
104
+ return;
105
+ this.#disposed = true;
106
+ this.#unsubscribe();
107
+ this.onDispose();
108
+ }
109
+ close() {
110
+ if (this.#disposed)
111
+ return;
112
+ this.dispose();
113
+ this.done();
114
+ }
115
+ #select(delta) {
116
+ const calls = this.state.calls();
117
+ if (calls.length === 0)
118
+ return;
119
+ this.#selected = Math.max(0, Math.min(calls.length - 1, this.#selected + delta));
120
+ this.#detailScroll = 0;
121
+ this.#clampList();
122
+ this.#syncDetailComponent();
123
+ this.tui.requestRender();
124
+ }
125
+ #clampList() {
126
+ const length = this.state.calls().length;
127
+ if (this.#selected < this.#listScroll)
128
+ this.#listScroll = this.#selected;
129
+ if (this.#selected >= this.#listScroll + LIST_ROWS) {
130
+ this.#listScroll = this.#selected - LIST_ROWS + 1;
131
+ }
132
+ this.#listScroll = Math.max(0, Math.min(this.#listScroll, Math.max(0, length - LIST_ROWS)));
133
+ }
134
+ #scrollDetail(delta) {
135
+ this.#detailScroll += delta;
136
+ this.#clampDetail();
137
+ this.tui.requestRender();
138
+ }
139
+ #clampDetail() {
140
+ this.#detailScroll = Math.max(0, Math.min(this.#detailScroll, Math.max(0, this.#detailLength - this.#detailRows)));
141
+ }
142
+ #syncDetailComponent() {
143
+ const call = this.state.calls()[this.#selected];
144
+ const definition = call ? this.state.definition(call.name) : undefined;
145
+ if (call
146
+ && this.#detailSource?.callId === call.id
147
+ && this.#detailSource.args === call.args
148
+ && this.#detailSource.result === call.result
149
+ && this.#detailSource.status === call.status
150
+ && this.#detailSource.definition === definition)
151
+ return;
152
+ this.#detailSource = call
153
+ ? { callId: call.id, args: call.args, result: call.result, status: call.status, definition }
154
+ : undefined;
155
+ this.#detailComponent = undefined;
156
+ if (!call || !definition || !call.result || call.status === 'pending' || call.status === 'running')
157
+ return;
158
+ const component = new ToolExecutionComponent(call.name, call.id, call.args, { showImages: false }, definition, this.tui, this.state.cwd);
159
+ component.markExecutionStarted();
160
+ const renderedResult = definition.renderResult ? call.result : { content: [] };
161
+ component.updateResult({
162
+ content: [...renderedResult.content],
163
+ ...(renderedResult.details === undefined ? {} : { details: renderedResult.details }),
164
+ isError: call.isError,
165
+ });
166
+ component.setArgsComplete();
167
+ component.setExpanded(true);
168
+ this.#detailComponent = component;
169
+ }
170
+ }
171
+ function formatDetail(call, theme, renderedView) {
172
+ const lines = [
173
+ `${statusIcon(call, theme)} ${theme.bold(toolCallLabel(call))}`,
174
+ theme.fg('muted', `${call.name} · ${call.id} · ${statusLabel(call)}`),
175
+ ];
176
+ if (renderedView.length > 0) {
177
+ lines.push('', theme.fg('accent', theme.bold('Rendered view')), ...renderedView);
178
+ }
179
+ lines.push('', theme.fg('accent', theme.bold('Arguments')), sanitize(serialized(call.args)));
180
+ if (call.result) {
181
+ lines.push('', theme.fg('accent', theme.bold(call.isError ? 'Error result' : 'Result')));
182
+ if (call.result.content.length === 0) {
183
+ lines.push(theme.fg('dim', '(no content)'));
184
+ }
185
+ else {
186
+ for (const content of call.result.content) {
187
+ if (content.type === 'text')
188
+ lines.push(sanitize(content.text ?? ''));
189
+ else if (content.type === 'image') {
190
+ lines.push(theme.fg('dim', `[${content.mimeType ?? 'image'} · ${content.data?.length ?? 0} encoded characters]`));
191
+ }
192
+ else {
193
+ lines.push(theme.fg('dim', `[${content.type}]`));
194
+ }
195
+ }
196
+ }
197
+ if (call.result.details !== undefined) {
198
+ lines.push('', theme.fg('accent', theme.bold('Details')), sanitize(serialized(call.result.details)));
199
+ }
200
+ }
201
+ else {
202
+ lines.push('', theme.fg('warning', 'Result pending…'));
203
+ }
204
+ return lines.join('\n');
205
+ }
206
+ function serialized(value) {
207
+ try {
208
+ const seen = new WeakSet();
209
+ const text = JSON.stringify(value, (key, entry) => {
210
+ if (isSensitiveKey(key))
211
+ return '[redacted]';
212
+ if (typeof entry === 'bigint')
213
+ return entry.toString();
214
+ if (typeof entry === 'string' && entry.length > MAX_SERIALIZED_CHARACTERS) {
215
+ return `${entry.slice(0, MAX_SERIALIZED_CHARACTERS)}… ${entry.length - MAX_SERIALIZED_CHARACTERS} characters omitted`;
216
+ }
217
+ if (typeof entry !== 'object' || entry === null)
218
+ return entry;
219
+ if (seen.has(entry))
220
+ return '[Circular]';
221
+ seen.add(entry);
222
+ return entry;
223
+ }, 2) ?? String(value);
224
+ if (text.length <= MAX_SERIALIZED_CHARACTERS)
225
+ return text;
226
+ return `${text.slice(0, MAX_SERIALIZED_CHARACTERS)}\n… ${text.length - MAX_SERIALIZED_CHARACTERS} characters omitted`;
227
+ }
228
+ catch {
229
+ return String(value);
230
+ }
231
+ }
232
+ function isSensitiveKey(key) {
233
+ const normalized = key.replace(/[^a-z0-9]/gi, '').toLowerCase();
234
+ return [
235
+ 'apikey',
236
+ 'authorization',
237
+ 'cookie',
238
+ 'password',
239
+ 'privatekey',
240
+ 'refreshtoken',
241
+ 'secret',
242
+ 'token',
243
+ 'accesstoken',
244
+ ].includes(normalized);
245
+ }
246
+ function sanitize(value) {
247
+ return stripTerminalSequences(value);
248
+ }
249
+ function statusIcon(call, theme) {
250
+ if (call.isError)
251
+ return theme.fg('error', '✗');
252
+ if (call.status === 'pending' || call.status === 'running')
253
+ return theme.fg('warning', '◌');
254
+ return theme.fg('success', '✓');
255
+ }
256
+ function statusLabel(call) {
257
+ if (call.isPartial && call.status === 'running')
258
+ return 'running · partial result';
259
+ return call.status;
260
+ }
261
+ function pad(lines, width) {
262
+ const prefix = ' '.repeat(PADDING_X);
263
+ return [
264
+ ...Array(PADDING_Y).fill(''),
265
+ ...lines.map((line) => `${prefix}${truncateToWidth(line, width, '…')}${prefix}`),
266
+ ...Array(PADDING_Y).fill(''),
267
+ ];
268
+ }
269
+ //# sourceMappingURL=inspector.js.map