@mono-agent/tui 0.4.0 → 0.4.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.
Files changed (124) hide show
  1. package/README.md +60 -10
  2. package/dist/bin/cli.d.ts +4 -1
  3. package/dist/bin/cli.d.ts.map +1 -1
  4. package/dist/bin/cli.js +36 -53
  5. package/dist/bin/cli.js.map +1 -1
  6. package/dist/bin/mono-agent-tui.js +21 -10
  7. package/dist/bin/mono-agent-tui.js.map +1 -1
  8. package/dist/config/pane.d.ts +9 -9
  9. package/dist/config/pane.d.ts.map +1 -1
  10. package/dist/config/pane.js +15 -196
  11. package/dist/config/pane.js.map +1 -1
  12. package/dist/data/instances.d.ts +48 -0
  13. package/dist/data/instances.d.ts.map +1 -0
  14. package/dist/data/instances.js +101 -0
  15. package/dist/data/instances.js.map +1 -0
  16. package/dist/data/replay.d.ts +68 -0
  17. package/dist/data/replay.d.ts.map +1 -0
  18. package/dist/data/replay.js +149 -0
  19. package/dist/data/replay.js.map +1 -0
  20. package/dist/index.d.ts +10 -10
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +5 -5
  23. package/dist/index.js.map +1 -1
  24. package/dist/remote/client.d.ts +44 -0
  25. package/dist/remote/client.d.ts.map +1 -0
  26. package/dist/remote/client.js +173 -0
  27. package/dist/remote/client.js.map +1 -0
  28. package/dist/runtime/start.d.ts +11 -18
  29. package/dist/runtime/start.d.ts.map +1 -1
  30. package/dist/runtime/start.js +19 -33
  31. package/dist/runtime/start.js.map +1 -1
  32. package/dist/ui/app.d.ts +142 -0
  33. package/dist/ui/app.d.ts.map +1 -0
  34. package/dist/ui/app.js +586 -0
  35. package/dist/ui/app.js.map +1 -0
  36. package/dist/ui/components/event-list.d.ts +60 -0
  37. package/dist/ui/components/event-list.d.ts.map +1 -0
  38. package/dist/ui/components/event-list.js +369 -0
  39. package/dist/ui/components/event-list.js.map +1 -0
  40. package/dist/ui/components/status-bar.d.ts +65 -0
  41. package/dist/ui/components/status-bar.d.ts.map +1 -0
  42. package/dist/ui/components/status-bar.js +126 -0
  43. package/dist/ui/components/status-bar.js.map +1 -0
  44. package/dist/ui/components/tool-panel.d.ts +30 -0
  45. package/dist/ui/components/tool-panel.d.ts.map +1 -0
  46. package/dist/ui/components/tool-panel.js +59 -0
  47. package/dist/ui/components/tool-panel.js.map +1 -0
  48. package/dist/ui/components/transcript-cells.d.ts +49 -0
  49. package/dist/ui/components/transcript-cells.d.ts.map +1 -0
  50. package/dist/ui/components/transcript-cells.js +110 -0
  51. package/dist/ui/components/transcript-cells.js.map +1 -0
  52. package/dist/ui/format.d.ts +29 -0
  53. package/dist/ui/format.d.ts.map +1 -0
  54. package/dist/ui/format.js +105 -0
  55. package/dist/ui/format.js.map +1 -0
  56. package/dist/ui/theme.d.ts +25 -0
  57. package/dist/ui/theme.d.ts.map +1 -0
  58. package/dist/ui/theme.js +62 -0
  59. package/dist/ui/theme.js.map +1 -0
  60. package/dist/ui/turn-presenter.d.ts +72 -0
  61. package/dist/ui/turn-presenter.d.ts.map +1 -0
  62. package/dist/ui/turn-presenter.js +334 -0
  63. package/dist/ui/turn-presenter.js.map +1 -0
  64. package/dist/ui/views/chat.d.ts +128 -0
  65. package/dist/ui/views/chat.d.ts.map +1 -0
  66. package/dist/ui/views/chat.js +313 -0
  67. package/dist/ui/views/chat.js.map +1 -0
  68. package/dist/ui/views/config.d.ts +23 -0
  69. package/dist/ui/views/config.d.ts.map +1 -0
  70. package/dist/ui/views/config.js +87 -0
  71. package/dist/ui/views/config.js.map +1 -0
  72. package/dist/ui/views/picker.d.ts +17 -0
  73. package/dist/ui/views/picker.d.ts.map +1 -0
  74. package/dist/ui/views/picker.js +57 -0
  75. package/dist/ui/views/picker.js.map +1 -0
  76. package/dist/ui/views/replay-detail.d.ts +60 -0
  77. package/dist/ui/views/replay-detail.d.ts.map +1 -0
  78. package/dist/ui/views/replay-detail.js +328 -0
  79. package/dist/ui/views/replay-detail.js.map +1 -0
  80. package/dist/ui/views/replay.d.ts +74 -0
  81. package/dist/ui/views/replay.d.ts.map +1 -0
  82. package/dist/ui/views/replay.js +460 -0
  83. package/dist/ui/views/replay.js.map +1 -0
  84. package/package.json +9 -12
  85. package/dist/agent/message-stream.d.ts +0 -52
  86. package/dist/agent/message-stream.d.ts.map +0 -1
  87. package/dist/agent/message-stream.js +0 -110
  88. package/dist/agent/message-stream.js.map +0 -1
  89. package/dist/components/ChatPane.d.ts +0 -20
  90. package/dist/components/ChatPane.d.ts.map +0 -1
  91. package/dist/components/ChatPane.js +0 -142
  92. package/dist/components/ChatPane.js.map +0 -1
  93. package/dist/components/ConfigPane.d.ts +0 -12
  94. package/dist/components/ConfigPane.d.ts.map +0 -1
  95. package/dist/components/ConfigPane.js +0 -70
  96. package/dist/components/ConfigPane.js.map +0 -1
  97. package/dist/components/HelpOverlay.d.ts +0 -6
  98. package/dist/components/HelpOverlay.d.ts.map +0 -1
  99. package/dist/components/HelpOverlay.js +0 -18
  100. package/dist/components/HelpOverlay.js.map +0 -1
  101. package/dist/components/HistoryPane.d.ts +0 -9
  102. package/dist/components/HistoryPane.d.ts.map +0 -1
  103. package/dist/components/HistoryPane.js +0 -125
  104. package/dist/components/HistoryPane.js.map +0 -1
  105. package/dist/components/StatusBar.d.ts +0 -10
  106. package/dist/components/StatusBar.d.ts.map +0 -1
  107. package/dist/components/StatusBar.js +0 -15
  108. package/dist/components/StatusBar.js.map +0 -1
  109. package/dist/components/TuiApp.d.ts +0 -29
  110. package/dist/components/TuiApp.d.ts.map +0 -1
  111. package/dist/components/TuiApp.js +0 -81
  112. package/dist/components/TuiApp.js.map +0 -1
  113. package/dist/components/primitives/Badge.d.ts +0 -8
  114. package/dist/components/primitives/Badge.d.ts.map +0 -1
  115. package/dist/components/primitives/Badge.js +0 -14
  116. package/dist/components/primitives/Badge.js.map +0 -1
  117. package/dist/components/primitives/Spinner.d.ts +0 -6
  118. package/dist/components/primitives/Spinner.d.ts.map +0 -1
  119. package/dist/components/primitives/Spinner.js +0 -8
  120. package/dist/components/primitives/Spinner.js.map +0 -1
  121. package/dist/components/primitives/TranscriptLine.d.ts +0 -10
  122. package/dist/components/primitives/TranscriptLine.d.ts.map +0 -1
  123. package/dist/components/primitives/TranscriptLine.js +0 -15
  124. package/dist/components/primitives/TranscriptLine.js.map +0 -1
package/README.md CHANGED
@@ -6,36 +6,86 @@ Category: `operator-surface`
6
6
 
7
7
  ## Responsibility
8
8
 
9
- Terminal operator surface built with Ink. It provides local chat, in-memory transcript display, cancellation handling, and a redacted read-only core config pane for hosts that want a terminal console.
9
+ pi-tui operator console for mono-agent: live chat with **full insight into the
10
+ agent's thinking process** — reasoning blocks, tool calls with
11
+ arguments/progress/results/timing, token usage, cost, provider lifecycle and
12
+ failover — plus recorded-run replay and a read-only source-annotated config
13
+ view. Built on `@earendil-works/pi-tui` differential rendering (no React/Ink).
14
+
15
+ It connects to agents two ways:
16
+
17
+ - **Remote (primary)**: `mono-agent tui` from any directory discovers running
18
+ agents via the trace-source registry (`~/.mono-agent/trace-sources`) and
19
+ chats over the agent's `tui` channel (NDJSON stream served by
20
+ `@mono-agent/operator-adapter`). One running agent connects directly; several
21
+ open a picker.
22
+ - **In-process (embedded)**: hosts pass an `AgentResponder` to
23
+ `startMonoAgentTui({ responder, … })`, or
24
+ run the `mono-agent-tui` bin with `--responder <module>`.
10
25
 
11
26
  ## Install / Usage
12
27
 
13
28
  ```bash
14
29
  pnpm --filter @mono-agent/tui run build
15
- mono-agent-tui --help
16
30
  ```
17
31
 
18
32
  ```ts
19
33
  import { startMonoAgentTui } from "@mono-agent/tui";
34
+
35
+ // Embedded host:
36
+ const handle = startMonoAgentTui({ responder, title: "My Agent", conversationId: "local" });
37
+ await handle.waitUntilExit();
38
+
39
+ // Remote client:
40
+ startMonoAgentTui({ connection: { baseUrl: "http://127.0.0.1:52341/tui" } });
41
+
42
+ // Discovery (agent picker):
43
+ startMonoAgentTui({ discovery: {} });
20
44
  ```
21
45
 
22
- Hosts supply a structural responder compatible with `@mono-agent/agent-contracts` and decide how config files are loaded.
46
+ Exactly one of `responder` | `connection` | `discovery` is required. Replay
47
+ and config views activate when `instance`/`config` provide the agent's
48
+ `artifactDir`/`configPath` (both are read directly from disk — the manifest
49
+ carries the paths).
50
+
51
+ ## Views & keys
52
+
53
+ | View | Content |
54
+ | --- | --- |
55
+ | chat | Streaming markdown answer, collapsed thinking cells (`ctrl+t` expands), tool panels (pending → success/error with args/progress/result/duration), warnings/failover notices, status bar (model · tokens · cost · hints). |
56
+ | replay | Recorded runs from the agent's artifact dir; open any run for its full coalesced event timeline (any channel's turns, nothing dropped). |
57
+ | config | Redacted, source-annotated resolved config (same builder as `mono-agent config`). |
58
+ | agents | Running-instance picker over the trace-source registry. |
59
+
60
+ Keys: `f2..f5` switch views (`tab` cycles outside chat) · `esc` cancels the
61
+ in-flight turn / goes back · `ctrl+t` thinking · `ctrl+c ×2` quits. Slash
62
+ commands: `/help /agents /replay /config /cancel /thinking /quit`.
23
63
 
24
64
  ## Public API
25
65
 
26
- - `startMonoAgentTui`
27
- - TUI app/component types and message-stream helpers
28
- - Structural `AgentResponder` aliases and cancellation helpers backed by `@mono-agent/agent-contracts`
29
- - Read-only config summary helpers
30
- - Bin: `mono-agent-tui`
66
+ - `startMonoAgentTui`, `MonoAgentTuiApp`
67
+ - `RemoteAgentResponder` (AgentResponder over the operator-adapter TUI NDJSON wire)
68
+ - `discoverInstances` / `resolveInstanceApiKey` / `defaultTraceRegistryDir`
69
+ - `listReplayRuns` / `readReplayRun`
70
+ - `TurnPresenter` (AgentMessageStream → transcript cells)
71
+ - `createInMemoryTuiHistory`, `buildTuiConfigSummary`, cancelled-error helpers
31
72
 
32
73
  ## Dependency Boundary
33
74
 
34
- The TUI depends on React/Ink, shared contracts, and `@mono-agent/config` for core config summaries. It remains a terminal operator surface, not a communication adapter, runtime host, or settings editor.
75
+ Depends on `@earendil-works/pi-tui` plus `@mono-agent/agent-contracts`,
76
+ `@mono-agent/config`, and `@mono-agent/observability` (replay + discovery
77
+ readers). It must not depend on the agent harness, runtime adapter, memory,
78
+ communication adapters (`@mono-agent/operator-adapter` is a **dev**-only dependency
79
+ for wire round-trip tests — the runtime client speaks the shared
80
+ `stream-wire` contract from agent-contracts), or host/demo code.
35
81
 
36
82
  ## What This Package Does Not Own
37
83
 
38
- It does not poll Telegram/WhatsApp, edit config inline, persist transcripts, call model runtimes directly, or own adapter-specific settings.
84
+ It does not boot a harness, run models, persist conversations (its history
85
+ store is display-only), serve the stream endpoint (that is
86
+ `@mono-agent/operator-adapter`), write run artifacts, or register agents in the
87
+ trace-source registry. Editing config is out of scope — the config view is
88
+ read-only.
39
89
 
40
90
  ## Verification
41
91
 
package/dist/bin/cli.d.ts CHANGED
@@ -4,6 +4,9 @@ export interface ParsedArgs {
4
4
  readonly config?: string;
5
5
  readonly title?: string;
6
6
  readonly conversationId?: string;
7
+ readonly url?: string;
8
+ readonly apiKey?: string;
9
+ readonly registryDir?: string;
7
10
  readonly help: boolean;
8
11
  }
9
12
  export type ParseArgsResult = ParsedArgs | {
@@ -14,7 +17,7 @@ export type ParseArgsResult = ParsedArgs | {
14
17
  * Pure and side-effect free so it can be unit-tested without booting the CLI.
15
18
  */
16
19
  export declare function parseArgs(argv: readonly string[]): ParseArgsResult;
17
- export declare const HELP_TEXT = "Usage: mono-agent-tui [options]\n\n --responder <file> Path to an ESM module that default-exports an\n AgentResponderLike, or exports\n createResponder(env, cwd, configJson).\n --config <path> Path to mono-agent.config.json. When set, the\n Config pane is enabled and the file is forwarded\n to createResponder().\n --conversation <id> Conversation id passed to the responder\n (default: tui-local).\n --title <text> Header title (default: \"Agent\").\n -h, --help Show this help and exit.\n\nThe TUI is a communication adapter \u2014 it does not boot a harness on its\nown. Hosts that want a runnable TUI in their own demo should call\nstartMonoAgentTui() from their own bin and pass an AgentResponderLike\nbacked by createAgentResponder({ harness }).\n";
20
+ export declare const HELP_TEXT = "Usage: mono-agent-tui [options]\n\nConnection (exactly one):\n --responder <file> Path to an ESM module that default-exports an\n AgentResponderLike, or exports\n createResponder(env, cwd, configJson). In-process mode.\n --url <baseUrl> Connect to a running agent's tui endpoint\n (e.g. http://127.0.0.1:52341/tui).\n (neither) Discover running agents from the trace-source\n registry and open on the picker.\n\nOptions:\n --api-key <key> Bearer key for --url when the agent sets tui.apiKey.\n --registry-dir <dir> Trace-source registry directory (default:\n ~/.mono-agent/trace-sources).\n --config <path> Path to mono-agent.config.json. Enables the Config\n view and is forwarded to createResponder().\n --conversation <id> Conversation id (default: tui-local).\n --title <text> Header title (default: \"mono-agent\").\n -h, --help Show this help and exit.\n\nPrefer `mono-agent tui` (from @mono-agent/agent-app): it resolves running\nagents, endpoints, and keys automatically. This bin is the low-level surface\nfor custom hosts.\n";
18
21
  export declare function exitWithError(message: string): never;
19
22
  /**
20
23
  * Resolve and import an `AgentResponderLike` from a host-supplied module.
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/bin/cli.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtE;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,eAAe,CA4DlE;AAED,eAAO,MAAM,SAAS,g6BAiBrB,CAAC;AAEF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAIpD;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CAgC7B"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/bin/cli.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAYtE;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,eAAe,CA4BlE;AAED,eAAO,MAAM,SAAS,svCAwBrB,CAAC;AAEF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAIpD;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CAgC7B"}
package/dist/bin/cli.js CHANGED
@@ -1,86 +1,69 @@
1
1
  import { existsSync } from "node:fs";
2
2
  import { resolve } from "node:path";
3
3
  import { pathToFileURL } from "node:url";
4
+ const VALUE_FLAGS = {
5
+ "--responder": "responder",
6
+ "--config": "config",
7
+ "--title": "title",
8
+ "--conversation": "conversationId",
9
+ "--url": "url",
10
+ "--api-key": "apiKey",
11
+ "--registry-dir": "registryDir",
12
+ };
4
13
  /**
5
14
  * Parse the `mono-agent-tui` argv (already stripped of `node` + script path).
6
15
  * Pure and side-effect free so it can be unit-tested without booting the CLI.
7
16
  */
8
17
  export function parseArgs(argv) {
9
18
  let help = false;
10
- let responder;
11
- let config;
12
- let title;
13
- let conversationId;
19
+ const values = {};
14
20
  for (let i = 0; i < argv.length; i++) {
15
21
  const flag = argv[i];
16
22
  if (flag === "-h" || flag === "--help") {
17
23
  help = true;
18
24
  continue;
19
25
  }
20
- if (flag === "--responder") {
26
+ const key = flag === undefined ? undefined : VALUE_FLAGS[flag];
27
+ if (key !== undefined) {
21
28
  const value = argv[i + 1];
22
29
  if (value === undefined) {
23
- return { error: "--responder requires a path" };
30
+ return { error: `${flag} requires a value` };
24
31
  }
25
- responder = value;
26
- i++;
27
- continue;
28
- }
29
- if (flag === "--config") {
30
- const value = argv[i + 1];
31
- if (value === undefined) {
32
- return { error: "--config requires a path" };
33
- }
34
- config = value;
35
- i++;
36
- continue;
37
- }
38
- if (flag === "--title") {
39
- const value = argv[i + 1];
40
- if (value === undefined) {
41
- return { error: "--title requires a value" };
42
- }
43
- title = value;
44
- i++;
45
- continue;
46
- }
47
- if (flag === "--conversation") {
48
- const value = argv[i + 1];
49
- if (value === undefined) {
50
- return { error: "--conversation requires a value" };
51
- }
52
- conversationId = value;
32
+ values[key] = value;
53
33
  i++;
54
34
  continue;
55
35
  }
56
36
  return { error: `unknown argument: ${String(flag)}` };
57
37
  }
58
- const result = {
59
- help,
60
- ...(responder === undefined ? {} : { responder }),
61
- ...(config === undefined ? {} : { config }),
62
- ...(title === undefined ? {} : { title }),
63
- ...(conversationId === undefined ? {} : { conversationId }),
64
- };
65
- return result;
38
+ if (values.responder !== undefined && values.url !== undefined) {
39
+ return { error: "--responder and --url are mutually exclusive" };
40
+ }
41
+ return { help, ...values };
66
42
  }
67
43
  export const HELP_TEXT = `Usage: mono-agent-tui [options]
68
44
 
45
+ Connection (exactly one):
69
46
  --responder <file> Path to an ESM module that default-exports an
70
47
  AgentResponderLike, or exports
71
- createResponder(env, cwd, configJson).
72
- --config <path> Path to mono-agent.config.json. When set, the
73
- Config pane is enabled and the file is forwarded
74
- to createResponder().
75
- --conversation <id> Conversation id passed to the responder
76
- (default: tui-local).
77
- --title <text> Header title (default: "Agent").
48
+ createResponder(env, cwd, configJson). In-process mode.
49
+ --url <baseUrl> Connect to a running agent's tui endpoint
50
+ (e.g. http://127.0.0.1:52341/tui).
51
+ (neither) Discover running agents from the trace-source
52
+ registry and open on the picker.
53
+
54
+ Options:
55
+ --api-key <key> Bearer key for --url when the agent sets tui.apiKey.
56
+ --registry-dir <dir> Trace-source registry directory (default:
57
+ ~/.mono-agent/trace-sources).
58
+ --config <path> Path to mono-agent.config.json. Enables the Config
59
+ view and is forwarded to createResponder().
60
+ --conversation <id> Conversation id (default: tui-local).
61
+ --title <text> Header title (default: "mono-agent").
78
62
  -h, --help Show this help and exit.
79
63
 
80
- The TUI is a communication adapter — it does not boot a harness on its
81
- own. Hosts that want a runnable TUI in their own demo should call
82
- startMonoAgentTui() from their own bin and pass an AgentResponderLike
83
- backed by createAgentResponder({ harness }).
64
+ Prefer \`mono-agent tui\` (from @mono-agent/agent-app): it resolves running
65
+ agents, endpoints, and keys automatically. This bin is the low-level surface
66
+ for custom hosts.
84
67
  `;
85
68
  export function exitWithError(message) {
86
69
  process.stderr.write(`mono-agent-tui: ${message}\n`);
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/bin/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/bin/cli.ts"],"names":[],"mappings":"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"}
@@ -11,23 +11,34 @@ async function main() {
11
11
  process.stdout.write(HELP_TEXT);
12
12
  process.exit(0);
13
13
  }
14
- if (parsed.responder === undefined) {
15
- exitWithError("--responder is required (the TUI does not boot a harness on its own)");
16
- }
17
14
  if (process.stdin.isTTY !== true) {
18
15
  exitWithError("stdin is not a TTY; mono-agent-tui needs an interactive terminal");
19
16
  }
20
- const responder = await loadResponder(parsed.responder, parsed.config);
21
- const configPane = parsed.config !== undefined
17
+ const config = parsed.config !== undefined
22
18
  ? { path: resolve(process.cwd(), parsed.config), cwd: process.cwd(), env: { ...process.env } }
23
19
  : undefined;
20
+ let mode;
21
+ if (parsed.responder !== undefined) {
22
+ mode = { responder: await loadResponder(parsed.responder, parsed.config) };
23
+ }
24
+ else if (parsed.url !== undefined) {
25
+ mode = {
26
+ connection: {
27
+ baseUrl: parsed.url,
28
+ ...(parsed.apiKey === undefined ? {} : { apiKey: parsed.apiKey }),
29
+ },
30
+ };
31
+ }
32
+ else {
33
+ mode = {
34
+ discovery: parsed.registryDir === undefined ? {} : { registryDir: resolve(parsed.registryDir) },
35
+ };
36
+ }
24
37
  const handle = startMonoAgentTui({
25
- responder,
26
- ...(configPane === undefined ? {} : { config: configPane }),
38
+ ...mode,
39
+ ...(config === undefined ? {} : { config }),
27
40
  ...(parsed.title === undefined ? {} : { title: parsed.title }),
28
- ...(parsed.conversationId === undefined
29
- ? {}
30
- : { conversationId: parsed.conversationId }),
41
+ ...(parsed.conversationId === undefined ? {} : { conversationId: parsed.conversationId }),
31
42
  });
32
43
  await handle.waitUntilExit();
33
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mono-agent-tui.js","sourceRoot":"","sources":["../../src/bin/mono-agent-tui.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE9E,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;QACtB,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACnC,aAAa,CAAC,sEAAsE,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACjC,aAAa,CAAC,kEAAkE,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACvE,MAAM,UAAU,GACd,MAAM,CAAC,MAAM,KAAK,SAAS;QACzB,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE;QAC9F,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,MAAM,GAAG,iBAAiB,CAAC;QAC/B,SAAS;QACT,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QAC3D,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QAC9D,GAAG,CAAC,MAAM,CAAC,cAAc,KAAK,SAAS;YACrC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC;KAC/C,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;AAC/B,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC9B,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,OAAO,IAAI,CAAC,CAAC;IACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"mono-agent-tui.js","sourceRoot":"","sources":["../../src/bin/mono-agent-tui.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import type { MonoAgentConfigJson, RedactedMonoAgentConfig } from "@mono-agent/config";
2
- export type TuiConfigFieldSource = "env" | "json" | "default";
1
+ import type { BuildMonoAgentConfigViewInput, ConfigViewFieldSource } from "@mono-agent/config";
2
+ /** Where a resolved config value came from. Re-exported for the Config pane. */
3
+ export type TuiConfigFieldSource = ConfigViewFieldSource;
3
4
  export interface TuiConfigFieldSummary {
4
5
  readonly label: string;
5
6
  readonly value: string;
@@ -10,14 +11,13 @@ export interface TuiConfigSummarySection {
10
11
  readonly heading: string;
11
12
  readonly fields: readonly TuiConfigFieldSummary[];
12
13
  }
13
- export interface BuildTuiConfigSummaryInput {
14
- readonly redacted: RedactedMonoAgentConfig;
15
- readonly json: MonoAgentConfigJson;
16
- readonly env: Record<string, string | undefined>;
17
- }
14
+ export type BuildTuiConfigSummaryInput = BuildMonoAgentConfigViewInput;
18
15
  /**
19
- * Build a compact, redacted view of the resolved configuration suitable for
20
- * the TUI's Config pane. The pane is read-only — edits are made directly in
16
+ * Build a compact, redacted view of the resolved configuration for the TUI's
17
+ * read-only Config pane. Delegates to the single `buildMonoAgentConfigView`
18
+ * builder in `@mono-agent/config` so the pane, the `mono-agent config` command,
19
+ * and the loader can never disagree about what is configured or where each
20
+ * value came from. The pane is read-only — edits are made directly in
21
21
  * `mono-agent.config.json` and take effect on the next `mono-agent restart`.
22
22
  */
23
23
  export declare function buildTuiConfigSummary(input: BuildTuiConfigSummaryInput): readonly TuiConfigSummarySection[];
@@ -1 +1 @@
1
- {"version":3,"file":"pane.d.ts","sourceRoot":"","sources":["../../src/config/pane.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;AAE9D,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACnD;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAClD;AA8ED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,0BAA0B,GAChC,SAAS,uBAAuB,EAAE,CAoJpC"}
1
+ {"version":3,"file":"pane.d.ts","sourceRoot":"","sources":["../../src/config/pane.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,6BAA6B,EAC7B,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAE5B,gFAAgF;AAChF,MAAM,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAEzD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACnD;AAED,MAAM,MAAM,0BAA0B,GAAG,6BAA6B,CAAC;AAEvE;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,0BAA0B,GAChC,SAAS,uBAAuB,EAAE,CAUpC"}
@@ -1,202 +1,21 @@
1
- const ENV_KEYS = {
2
- runtimeModel: "MONO_AGENT_MODEL",
3
- runtimeExecutionMode: "MONO_AGENT_EXECUTION_MODE",
4
- runtimeEffort: "MONO_AGENT_EFFORT",
5
- runtimeMaxTurns: "MONO_AGENT_MAX_TURNS",
6
- runtimeWorkspace: "MONO_AGENT_WORKSPACE",
7
- contextIdentity: "MONO_AGENT_IDENTITY_PATH",
8
- contextSoul: "MONO_AGENT_SOUL_PATH",
9
- contextSkillsRoot: "MONO_AGENT_SKILLS_ROOT",
10
- contextSelectedSkills: "MONO_AGENT_SELECTED_SKILLS",
11
- memoryPath: "MONO_AGENT_MEMORY_PATH",
12
- memoryMaxBytes: "MONO_AGENT_MEMORY_MAX_BYTES",
13
- memoryWriteMode: "MONO_AGENT_MEMORY_WRITE_MODE",
14
- toolsAllowed: "MONO_AGENT_ALLOWED_TOOLS",
15
- toolsDisallowed: "MONO_AGENT_DISALLOWED_TOOLS",
16
- toolsMcpConfigPath: "MONO_AGENT_MCP_CONFIG_PATH",
17
- artifactsDir: "MONO_AGENT_ARTIFACT_DIR",
18
- };
19
- function envHas(env, key) {
20
- if (key === undefined) {
21
- return false;
22
- }
23
- const value = env[key];
24
- return value !== undefined && value.trim().length > 0;
25
- }
26
- function resolveSource(env, spec) {
27
- if (envHas(env, spec.envKey)) {
28
- return "env";
29
- }
30
- if (spec.jsonPresent) {
31
- return "json";
32
- }
33
- return "default";
34
- }
35
- function formatRuntimeModelReference(reference) {
36
- if (typeof reference === "string") {
37
- return reference;
38
- }
39
- if (reference.reference !== undefined && reference.reference.length > 0) {
40
- return reference.reference;
41
- }
42
- const provider = reference.provider !== undefined ? `${reference.provider}:` : "";
43
- return `${reference.sdk}:${provider}${reference.model}`;
44
- }
45
- function toField(env, spec) {
46
- return {
47
- label: spec.label,
48
- value: spec.value,
49
- source: resolveSource(env, spec),
50
- ...(spec.redacted === true ? { redacted: true } : {}),
51
- };
52
- }
1
+ import { buildMonoAgentConfigView } from "@mono-agent/config";
53
2
  /**
54
- * Build a compact, redacted view of the resolved configuration suitable for
55
- * the TUI's Config pane. The pane is read-only — edits are made directly in
3
+ * Build a compact, redacted view of the resolved configuration for the TUI's
4
+ * read-only Config pane. Delegates to the single `buildMonoAgentConfigView`
5
+ * builder in `@mono-agent/config` so the pane, the `mono-agent config` command,
6
+ * and the loader can never disagree about what is configured or where each
7
+ * value came from. The pane is read-only — edits are made directly in
56
8
  * `mono-agent.config.json` and take effect on the next `mono-agent restart`.
57
9
  */
58
10
  export function buildTuiConfigSummary(input) {
59
- const { redacted, json, env } = input;
60
- const sections = [];
61
- sections.push({
62
- heading: "runtime",
63
- fields: [
64
- toField(env, {
65
- label: "model",
66
- envKey: ENV_KEYS.runtimeModel,
67
- jsonPresent: json.runtime?.model !== undefined,
68
- value: formatRuntimeModelReference(redacted.runtime.model),
69
- }),
70
- toField(env, {
71
- label: "executionMode",
72
- envKey: ENV_KEYS.runtimeExecutionMode,
73
- jsonPresent: json.runtime?.executionMode !== undefined,
74
- value: redacted.runtime.executionMode,
75
- }),
76
- toField(env, {
77
- label: "effort",
78
- envKey: ENV_KEYS.runtimeEffort,
79
- jsonPresent: json.runtime?.effort !== undefined,
80
- value: redacted.runtime.effort ?? "—",
81
- }),
82
- toField(env, {
83
- label: "maxTurns",
84
- envKey: ENV_KEYS.runtimeMaxTurns,
85
- jsonPresent: json.runtime?.maxTurns !== undefined,
86
- value: redacted.runtime.maxTurns === undefined ? "unlimited" : String(redacted.runtime.maxTurns),
87
- }),
88
- toField(env, {
89
- label: "workspace",
90
- envKey: ENV_KEYS.runtimeWorkspace,
91
- jsonPresent: json.runtime?.workspace !== undefined,
92
- value: redacted.runtime.workspace,
93
- }),
94
- ],
95
- });
96
- sections.push({
97
- heading: "context",
98
- fields: [
99
- toField(env, {
100
- label: "identityPath",
101
- envKey: ENV_KEYS.contextIdentity,
102
- jsonPresent: json.context?.identityPath !== undefined,
103
- value: redacted.context.identityPath,
104
- }),
105
- ...(redacted.context.soulPath !== undefined
106
- ? [
107
- toField(env, {
108
- label: "soulPath",
109
- envKey: ENV_KEYS.contextSoul,
110
- jsonPresent: json.context?.soulPath !== undefined,
111
- value: redacted.context.soulPath,
112
- }),
113
- ]
114
- : []),
115
- toField(env, {
116
- label: "skillsRoot",
117
- envKey: ENV_KEYS.contextSkillsRoot,
118
- jsonPresent: json.context?.skillsRoot !== undefined,
119
- value: redacted.context.skillsRoot ?? "—",
120
- }),
121
- toField(env, {
122
- label: "selectedSkills",
123
- envKey: ENV_KEYS.contextSelectedSkills,
124
- jsonPresent: json.context?.selectedSkills !== undefined,
125
- value: String(redacted.context.selectedSkills.length),
126
- }),
127
- ],
128
- });
129
- if (redacted.memory !== undefined) {
130
- sections.push({
131
- heading: "memory",
132
- fields: [
133
- toField(env, {
134
- label: "path",
135
- envKey: ENV_KEYS.memoryPath,
136
- jsonPresent: json.memory?.path !== undefined,
137
- value: redacted.memory.path,
138
- }),
139
- toField(env, {
140
- label: "maxBytes",
141
- envKey: ENV_KEYS.memoryMaxBytes,
142
- jsonPresent: json.memory?.maxBytes !== undefined,
143
- value: String(redacted.memory.maxBytes),
144
- }),
145
- toField(env, {
146
- label: "writeMode",
147
- envKey: ENV_KEYS.memoryWriteMode,
148
- jsonPresent: json.memory?.writeMode !== undefined,
149
- value: redacted.memory.writeMode,
150
- }),
151
- ],
152
- });
153
- }
154
- else {
155
- sections.push({
156
- heading: "memory",
157
- fields: [
158
- {
159
- label: "status",
160
- value: "not configured",
161
- source: "default",
162
- },
163
- ],
164
- });
165
- }
166
- sections.push({
167
- heading: "tools",
168
- fields: [
169
- toField(env, {
170
- label: "allowedTools",
171
- envKey: ENV_KEYS.toolsAllowed,
172
- jsonPresent: json.tools?.allowedTools !== undefined,
173
- value: String(redacted.tools.allowedTools.length),
174
- }),
175
- toField(env, {
176
- label: "disallowedTools",
177
- envKey: ENV_KEYS.toolsDisallowed,
178
- jsonPresent: json.tools?.disallowedTools !== undefined,
179
- value: String(redacted.tools.disallowedTools.length),
180
- }),
181
- toField(env, {
182
- label: "mcpConfigPath",
183
- envKey: ENV_KEYS.toolsMcpConfigPath,
184
- jsonPresent: json.tools?.mcpConfigPath !== undefined,
185
- value: redacted.tools.mcpConfigPath ?? "—",
186
- }),
187
- ],
188
- });
189
- sections.push({
190
- heading: "artifacts",
191
- fields: [
192
- toField(env, {
193
- label: "dir",
194
- envKey: ENV_KEYS.artifactsDir,
195
- jsonPresent: json.artifacts?.dir !== undefined,
196
- value: redacted.artifacts.dir,
197
- }),
198
- ],
199
- });
200
- return sections;
11
+ return buildMonoAgentConfigView(input).map((section) => ({
12
+ heading: section.id,
13
+ fields: section.fields.map((field) => ({
14
+ label: field.label,
15
+ value: field.value,
16
+ source: field.source,
17
+ ...(field.redacted === true ? { redacted: true } : {}),
18
+ })),
19
+ }));
201
20
  }
202
21
  //# sourceMappingURL=pane.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pane.js","sourceRoot":"","sources":["../../src/config/pane.ts"],"names":[],"mappings":"AAiCA,MAAM,QAAQ,GAAG;IACf,YAAY,EAAE,kBAAkB;IAChC,oBAAoB,EAAE,2BAA2B;IACjD,aAAa,EAAE,mBAAmB;IAClC,eAAe,EAAE,sBAAsB;IACvC,gBAAgB,EAAE,sBAAsB;IACxC,eAAe,EAAE,0BAA0B;IAC3C,WAAW,EAAE,sBAAsB;IACnC,iBAAiB,EAAE,wBAAwB;IAC3C,qBAAqB,EAAE,4BAA4B;IACnD,UAAU,EAAE,wBAAwB;IACpC,cAAc,EAAE,6BAA6B;IAC7C,eAAe,EAAE,8BAA8B;IAC/C,YAAY,EAAE,0BAA0B;IACxC,eAAe,EAAE,6BAA6B;IAC9C,kBAAkB,EAAE,4BAA4B;IAChD,YAAY,EAAE,yBAAyB;CAC/B,CAAC;AAEX,SAAS,MAAM,CACb,GAAuC,EACvC,GAAuB;IAEvB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,aAAa,CACpB,GAAuC,EACvC,IAAe;IAEf,IAAI,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,2BAA2B,CAClC,SAAsD;IAEtD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxE,OAAO,SAAS,CAAC,SAAS,CAAC;IAC7B,CAAC;IACD,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAClF,OAAO,GAAG,SAAS,CAAC,GAAG,IAAI,QAAQ,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;AAC1D,CAAC;AAED,SAAS,OAAO,CACd,GAAuC,EACvC,IAAe;IAEf,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC;QAChC,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAiC;IAEjC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IACtC,MAAM,QAAQ,GAA8B,EAAE,CAAC;IAE/C,QAAQ,CAAC,IAAI,CAAC;QACZ,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE;YACN,OAAO,CAAC,GAAG,EAAE;gBACX,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,QAAQ,CAAC,YAAY;gBAC7B,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,KAAK,SAAS;gBAC9C,KAAK,EAAE,2BAA2B,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;aAC3D,CAAC;YACF,OAAO,CAAC,GAAG,EAAE;gBACX,KAAK,EAAE,eAAe;gBACtB,MAAM,EAAE,QAAQ,CAAC,oBAAoB;gBACrC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,KAAK,SAAS;gBACtD,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,aAAa;aACtC,CAAC;YACF,OAAO,CAAC,GAAG,EAAE;gBACX,KAAK,EAAE,QAAQ;gBACf,MAAM,EAAE,QAAQ,CAAC,aAAa;gBAC9B,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS;gBAC/C,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG;aACtC,CAAC;YACF,OAAO,CAAC,GAAG,EAAE;gBACX,KAAK,EAAE,UAAU;gBACjB,MAAM,EAAE,QAAQ,CAAC,eAAe;gBAChC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,KAAK,SAAS;gBACjD,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;aACjG,CAAC;YACF,OAAO,CAAC,GAAG,EAAE;gBACX,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,QAAQ,CAAC,gBAAgB;gBACjC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,KAAK,SAAS;gBAClD,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,SAAS;aAClC,CAAC;SACH;KACF,CAAC,CAAC;IAEH,QAAQ,CAAC,IAAI,CAAC;QACZ,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE;YACN,OAAO,CAAC,GAAG,EAAE;gBACX,KAAK,EAAE,cAAc;gBACrB,MAAM,EAAE,QAAQ,CAAC,eAAe;gBAChC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,YAAY,KAAK,SAAS;gBACrD,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,YAAY;aACrC,CAAC;YACF,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS;gBACzC,CAAC,CAAC;oBACE,OAAO,CAAC,GAAG,EAAE;wBACX,KAAK,EAAE,UAAU;wBACjB,MAAM,EAAE,QAAQ,CAAC,WAAW;wBAC5B,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,KAAK,SAAS;wBACjD,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,QAAQ;qBACjC,CAAC;iBACH;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,CAAC,GAAG,EAAE;gBACX,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,QAAQ,CAAC,iBAAiB;gBAClC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,KAAK,SAAS;gBACnD,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,IAAI,GAAG;aAC1C,CAAC;YACF,OAAO,CAAC,GAAG,EAAE;gBACX,KAAK,EAAE,gBAAgB;gBACvB,MAAM,EAAE,QAAQ,CAAC,qBAAqB;gBACtC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,cAAc,KAAK,SAAS;gBACvD,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC;aACtD,CAAC;SACH;KACF,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAClC,QAAQ,CAAC,IAAI,CAAC;YACZ,OAAO,EAAE,QAAQ;YACjB,MAAM,EAAE;gBACN,OAAO,CAAC,GAAG,EAAE;oBACX,KAAK,EAAE,MAAM;oBACb,MAAM,EAAE,QAAQ,CAAC,UAAU;oBAC3B,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,SAAS;oBAC5C,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI;iBAC5B,CAAC;gBACF,OAAO,CAAC,GAAG,EAAE;oBACX,KAAK,EAAE,UAAU;oBACjB,MAAM,EAAE,QAAQ,CAAC,cAAc;oBAC/B,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,KAAK,SAAS;oBAChD,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;iBACxC,CAAC;gBACF,OAAO,CAAC,GAAG,EAAE;oBACX,KAAK,EAAE,WAAW;oBAClB,MAAM,EAAE,QAAQ,CAAC,eAAe;oBAChC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,KAAK,SAAS;oBACjD,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS;iBACjC,CAAC;aACH;SACF,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,IAAI,CAAC;YACZ,OAAO,EAAE,QAAQ;YACjB,MAAM,EAAE;gBACN;oBACE,KAAK,EAAE,QAAQ;oBACf,KAAK,EAAE,gBAAgB;oBACvB,MAAM,EAAE,SAAS;iBAClB;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC;QACZ,OAAO,EAAE,OAAO;QAChB,MAAM,EAAE;YACN,OAAO,CAAC,GAAG,EAAE;gBACX,KAAK,EAAE,cAAc;gBACrB,MAAM,EAAE,QAAQ,CAAC,YAAY;gBAC7B,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,KAAK,SAAS;gBACnD,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC;aAClD,CAAC;YACF,OAAO,CAAC,GAAG,EAAE;gBACX,KAAK,EAAE,iBAAiB;gBACxB,MAAM,EAAE,QAAQ,CAAC,eAAe;gBAChC,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,eAAe,KAAK,SAAS;gBACtD,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC;aACrD,CAAC;YACF,OAAO,CAAC,GAAG,EAAE;gBACX,KAAK,EAAE,eAAe;gBACtB,MAAM,EAAE,QAAQ,CAAC,kBAAkB;gBACnC,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,aAAa,KAAK,SAAS;gBACpD,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,IAAI,GAAG;aAC3C,CAAC;SACH;KACF,CAAC,CAAC;IAEH,QAAQ,CAAC,IAAI,CAAC;QACZ,OAAO,EAAE,WAAW;QACpB,MAAM,EAAE;YACN,OAAO,CAAC,GAAG,EAAE;gBACX,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,QAAQ,CAAC,YAAY;gBAC7B,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,KAAK,SAAS;gBAC9C,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG;aAC9B,CAAC;SACH;KACF,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"pane.js","sourceRoot":"","sources":["../../src/config/pane.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAuB9D;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAiC;IAEjC,OAAO,wBAAwB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACvD,OAAO,EAAE,OAAO,CAAC,EAAE;QACnB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACrC,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvD,CAAC,CAAC;KACJ,CAAC,CAAC,CAAC;AACN,CAAC"}