ptbk 0.119.0-16 → 0.119.0-21
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 +27 -9
- package/dist/book/commitments.d.ts +38 -10
- package/dist/book/commitments.js +61 -17
- package/dist/book/commitments.js.map +1 -1
- package/dist/book/convert.d.ts +36 -0
- package/dist/book/convert.js +156 -0
- package/dist/book/convert.js.map +1 -0
- package/dist/book/parse.d.ts +50 -13
- package/dist/book/parse.js +132 -45
- package/dist/book/parse.js.map +1 -1
- package/dist/book/references.d.ts +12 -4
- package/dist/book/references.js +34 -9
- package/dist/book/references.js.map +1 -1
- package/dist/book/write.d.ts +42 -0
- package/dist/book/write.js +74 -0
- package/dist/book/write.js.map +1 -0
- package/dist/browser/browser.d.ts +122 -12
- package/dist/browser/browser.js +372 -21
- package/dist/browser/browser.js.map +1 -1
- package/dist/browser/recording.d.ts +3 -3
- package/dist/browser/recording.js +5 -5
- package/dist/browser/recording.js.map +1 -1
- package/dist/chats/chat-book.d.ts +105 -0
- package/dist/chats/chat-book.js +180 -0
- package/dist/chats/chat-book.js.map +1 -0
- package/dist/chats/conversation.d.ts +54 -0
- package/dist/chats/conversation.js +188 -0
- package/dist/chats/conversation.js.map +1 -0
- package/dist/chats/local.d.ts +46 -0
- package/dist/chats/local.js +184 -0
- package/dist/chats/local.js.map +1 -0
- package/dist/chats/migration.d.ts +12 -0
- package/dist/chats/migration.js +62 -0
- package/dist/chats/migration.js.map +1 -0
- package/dist/chats/service.d.ts +81 -0
- package/dist/chats/service.js +122 -0
- package/dist/chats/service.js.map +1 -0
- package/dist/chats/store.d.ts +132 -0
- package/dist/chats/store.js +181 -0
- package/dist/chats/store.js.map +1 -0
- package/dist/chats/task-chats.d.ts +52 -0
- package/dist/chats/task-chats.js +96 -0
- package/dist/chats/task-chats.js.map +1 -0
- package/dist/cli/chats.d.ts +45 -0
- package/dist/cli/chats.js +108 -0
- package/dist/cli/chats.js.map +1 -0
- package/dist/cli/commands/add.js +32 -22
- package/dist/cli/commands/add.js.map +1 -1
- package/dist/cli/commands/answer.d.ts +2 -1
- package/dist/cli/commands/answer.js +35 -41
- package/dist/cli/commands/answer.js.map +1 -1
- package/dist/cli/commands/ask.d.ts +7 -0
- package/dist/cli/commands/ask.js +37 -0
- package/dist/cli/commands/ask.js.map +1 -0
- package/dist/cli/commands/boilerplates.js +14 -3
- package/dist/cli/commands/boilerplates.js.map +1 -1
- package/dist/cli/commands/chat.d.ts +9 -0
- package/dist/cli/commands/chat.js +89 -0
- package/dist/cli/commands/chat.js.map +1 -0
- package/dist/cli/commands/dashboard.d.ts +3 -1
- package/dist/cli/commands/dashboard.js +41 -3
- package/dist/cli/commands/dashboard.js.map +1 -1
- package/dist/cli/commands/find.js +6 -8
- package/dist/cli/commands/find.js.map +1 -1
- package/dist/cli/commands/fix.js +4 -6
- package/dist/cli/commands/fix.js.map +1 -1
- package/dist/cli/commands/init.d.ts +0 -1
- package/dist/cli/commands/init.js +38 -38
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/lint.js +16 -2
- package/dist/cli/commands/lint.js.map +1 -1
- package/dist/cli/commands/list.js +21 -13
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/migrate.d.ts +2 -1
- package/dist/cli/commands/migrate.js +70 -24
- package/dist/cli/commands/migrate.js.map +1 -1
- package/dist/cli/commands/pause.d.ts +8 -0
- package/dist/cli/commands/pause.js +40 -0
- package/dist/cli/commands/pause.js.map +1 -0
- package/dist/cli/commands/plan.js +6 -9
- package/dist/cli/commands/plan.js.map +1 -1
- package/dist/cli/commands/recover.js +7 -3
- package/dist/cli/commands/recover.js.map +1 -1
- package/dist/cli/commands/restart.d.ts +3 -1
- package/dist/cli/commands/restart.js +74 -18
- package/dist/cli/commands/restart.js.map +1 -1
- package/dist/cli/commands/resume.d.ts +8 -0
- package/dist/cli/commands/resume.js +15 -0
- package/dist/cli/commands/resume.js.map +1 -0
- package/dist/cli/commands/run.js +6 -9
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/start.js +40 -36
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/status.d.ts +2 -1
- package/dist/cli/commands/status.js +5 -1
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/stop.d.ts +3 -1
- package/dist/cli/commands/stop.js +18 -8
- package/dist/cli/commands/stop.js.map +1 -1
- package/dist/cli/commands/verify.js +7 -7
- package/dist/cli/commands/verify.js.map +1 -1
- package/dist/cli/common.d.ts +13 -0
- package/dist/cli/common.js +22 -0
- package/dist/cli/common.js.map +1 -1
- package/dist/cli/engine-delegation.d.ts +14 -0
- package/dist/cli/engine-delegation.js +46 -0
- package/dist/cli/engine-delegation.js.map +1 -0
- package/dist/cli/lifecycle.d.ts +40 -0
- package/dist/cli/lifecycle.js +71 -0
- package/dist/cli/lifecycle.js.map +1 -0
- package/dist/cli/registry.js +113 -31
- package/dist/cli/registry.js.map +1 -1
- package/dist/cli/service-view.d.ts +14 -2
- package/dist/cli/service-view.js +46 -5
- package/dist/cli/service-view.js.map +1 -1
- package/dist/cli/sources.js +5 -8
- package/dist/cli/sources.js.map +1 -1
- package/dist/cli/spec.js +1 -1
- package/dist/cli/spec.js.map +1 -1
- package/dist/common/app-data.d.ts +9 -0
- package/dist/common/app-data.js +20 -0
- package/dist/common/app-data.js.map +1 -0
- package/dist/common/errors.d.ts +2 -0
- package/dist/common/errors.js.map +1 -1
- package/dist/common/time.d.ts +6 -0
- package/dist/common/time.js +9 -0
- package/dist/common/time.js.map +1 -1
- package/dist/engine/agenda.d.ts +213 -43
- package/dist/engine/agenda.js +846 -260
- package/dist/engine/agenda.js.map +1 -1
- package/dist/engine/executor.d.ts +23 -7
- package/dist/engine/executor.js +131 -84
- package/dist/engine/executor.js.map +1 -1
- package/dist/engine/generated.d.ts +21 -1
- package/dist/engine/generated.js +36 -21
- package/dist/engine/generated.js.map +1 -1
- package/dist/engine/preview.js +10 -10
- package/dist/engine/preview.js.map +1 -1
- package/dist/engine/prompt.d.ts +16 -4
- package/dist/engine/prompt.js +22 -4
- package/dist/engine/prompt.js.map +1 -1
- package/dist/engine/routing.js +28 -4
- package/dist/engine/routing.js.map +1 -1
- package/dist/engine/snapshot.d.ts +178 -29
- package/dist/engine/state.d.ts +40 -13
- package/dist/engine/state.js +20 -5
- package/dist/engine/state.js.map +1 -1
- package/dist/engine/task-trace.d.ts +35 -7
- package/dist/engine/task-trace.js +74 -15
- package/dist/engine/task-trace.js.map +1 -1
- package/dist/engine/team.d.ts +20 -7
- package/dist/engine/team.js +30 -24
- package/dist/engine/team.js.map +1 -1
- package/dist/engine/traces.d.ts +1 -1
- package/dist/engine/traces.js +1 -1
- package/dist/expert/_main.md +67 -52
- package/dist/expert/agents/_index.md +11 -13
- package/dist/expert/agents/chatter.md +31 -0
- package/dist/expert/agents/consistency.md +6 -11
- package/dist/expert/agents/core-agents.md +9 -7
- package/dist/expert/agents/expert.md +2 -2
- package/dist/expert/agents/fixer.md +24 -0
- package/dist/expert/agents/learning.md +1 -1
- package/dist/expert/agents/non-agents.md +6 -4
- package/dist/expert/agents/teacher.md +1 -1
- package/dist/expert/agents/visual-identity.md +4 -4
- package/dist/expert/book-language/_index.md +9 -8
- package/dist/expert/book-language/commitments/_index.md +23 -3
- package/dist/expert/book-language/commitments/agent.md +11 -0
- package/dist/expert/book-language/commitments/chat-member.md +7 -0
- package/dist/expert/book-language/commitments/chat-message.md +11 -0
- package/dist/expert/book-language/commitments/chat-status.md +7 -0
- package/dist/expert/book-language/commitments/chat.md +11 -0
- package/dist/expert/book-language/commitments/entity.md +9 -0
- package/dist/expert/book-language/commitments/from.md +1 -1
- package/dist/expert/book-language/commitments/goal.md +6 -2
- package/dist/expert/book-language/commitments/link.md +9 -0
- package/dist/expert/book-language/commitments/task-depends-on.md +1 -1
- package/dist/expert/book-language/commitments/task-parent.md +1 -1
- package/dist/expert/book-language/commitments/task.md +7 -3
- package/dist/expert/book-language/commitments/team.md +1 -1
- package/dist/expert/book-language/inheritance.md +2 -2
- package/dist/expert/book-language/references.md +20 -24
- package/dist/expert/book-language/syntax.md +54 -11
- package/dist/expert/cli/acceptance.md +59 -24
- package/dist/expert/cli/api.md +23 -9
- package/dist/expert/cli/authoring.md +6 -4
- package/dist/expert/cli/autonomous-operation.md +3 -3
- package/dist/expert/cli/browser.md +29 -18
- package/dist/expert/cli/channels.md +5 -7
- package/dist/expert/cli/chat-ui.md +32 -0
- package/dist/expert/cli/chats.md +59 -0
- package/dist/expert/cli/cli.md +44 -26
- package/dist/expert/cli/configuration.md +3 -3
- package/dist/expert/cli/controls.md +13 -7
- package/dist/expert/cli/dashboard-details.md +23 -0
- package/dist/expert/cli/dashboard-layout.md +19 -12
- package/dist/expert/cli/dashboard.md +12 -8
- package/dist/expert/cli/execution.md +8 -6
- package/dist/expert/cli/first-task.md +4 -4
- package/dist/expert/cli/generated-names.md +44 -0
- package/dist/expert/cli/git-persistence.md +19 -17
- package/dist/expert/cli/global-dashboard.md +33 -0
- package/dist/expert/cli/goal-discovery.md +1 -1
- package/dist/expert/cli/help.md +1 -1
- package/dist/expert/cli/initialization-ui.md +2 -0
- package/dist/expert/cli/initialization.md +9 -7
- package/dist/expert/cli/interactive-ui.md +9 -5
- package/dist/expert/cli/locking.md +21 -0
- package/dist/expert/cli/migration.md +22 -6
- package/dist/expert/cli/process-modes.md +21 -13
- package/dist/expert/cli/recovery.md +8 -6
- package/dist/expert/cli/recurrence.md +1 -1
- package/dist/expert/cli/rich-input.md +2 -2
- package/dist/expert/cli/service-lifecycle.md +57 -0
- package/dist/expert/cli/start.md +2 -2
- package/dist/expert/cli/status-view.md +16 -12
- package/dist/expert/cli/task-books.md +11 -15
- package/dist/expert/cli/task-identity.md +8 -10
- package/dist/expert/cli/task-markdown.md +6 -10
- package/dist/expert/cli/task-origins.md +3 -1
- package/dist/expert/cli/task-relationships.md +5 -9
- package/dist/expert/cli/team.md +17 -7
- package/dist/expert/cli/terminal.md +20 -12
- package/dist/expert/cli/trace-configuration.md +1 -1
- package/dist/expert/cli/traces.md +19 -23
- package/dist/expert/cli/user-interactions.md +14 -26
- package/dist/expert/cli/workspace.md +15 -9
- package/dist/expert/concepts/engine-and-project.md +11 -0
- package/dist/expert/concepts/project-model.md +39 -0
- package/dist/expert/dictionary.md +21 -15
- package/dist/harness/plugins/claude-code/index.js +1 -0
- package/dist/harness/plugins/claude-code/index.js.map +1 -1
- package/dist/harness/plugins/cline/index.js +1 -0
- package/dist/harness/plugins/cline/index.js.map +1 -1
- package/dist/harness/plugins/openai-codex/index.js +1 -0
- package/dist/harness/plugins/openai-codex/index.js.map +1 -1
- package/dist/harness/plugins/opencode/index.js +1 -0
- package/dist/harness/plugins/opencode/index.js.map +1 -1
- package/dist/harness/types.d.ts +3 -1
- package/dist/project/agents.d.ts +29 -81
- package/dist/project/agents.js +48 -267
- package/dist/project/agents.js.map +1 -1
- package/dist/project/books.d.ts +150 -0
- package/dist/project/books.js +253 -0
- package/dist/project/books.js.map +1 -0
- package/dist/project/config.js +2 -2
- package/dist/project/config.js.map +1 -1
- package/dist/project/defaults.d.ts +35 -6
- package/dist/project/defaults.js +73 -40
- package/dist/project/defaults.js.map +1 -1
- package/dist/project/expert.js +18 -10
- package/dist/project/expert.js.map +1 -1
- package/dist/project/git.d.ts +4 -3
- package/dist/project/git.js +16 -5
- package/dist/project/git.js.map +1 -1
- package/dist/project/setup.d.ts +4 -1
- package/dist/project/setup.js +26 -6
- package/dist/project/setup.js.map +1 -1
- package/dist/service/actions.d.ts +34 -10
- package/dist/service/actions.js +51 -19
- package/dist/service/actions.js.map +1 -1
- package/dist/service/control.d.ts +53 -1
- package/dist/service/control.js +64 -4
- package/dist/service/control.js.map +1 -1
- package/dist/service/discovery.d.ts +133 -0
- package/dist/service/discovery.js +138 -0
- package/dist/service/discovery.js.map +1 -0
- package/dist/service/host.d.ts +8 -1
- package/dist/service/host.js +65 -18
- package/dist/service/host.js.map +1 -1
- package/dist/service/http.d.ts +3 -0
- package/dist/service/http.js +26 -6
- package/dist/service/http.js.map +1 -1
- package/dist/service/launcher.d.ts +66 -13
- package/dist/service/launcher.js +78 -18
- package/dist/service/launcher.js.map +1 -1
- package/dist/service/records.d.ts +12 -2
- package/dist/service/records.js +19 -5
- package/dist/service/records.js.map +1 -1
- package/dist/service/spa/app.css +83 -2
- package/dist/service/spa/app.js +393 -72
- package/dist/service/supervisor.js +7 -1
- package/dist/service/supervisor.js.map +1 -1
- package/dist/service/worker.js +14 -5
- package/dist/service/worker.js.map +1 -1
- package/dist/tasks/authoring.d.ts +3 -5
- package/dist/tasks/authoring.js +6 -7
- package/dist/tasks/authoring.js.map +1 -1
- package/dist/tasks/book-task.d.ts +18 -10
- package/dist/tasks/book-task.js +27 -23
- package/dist/tasks/book-task.js.map +1 -1
- package/dist/tasks/eligibility.d.ts +15 -7
- package/dist/tasks/eligibility.js +41 -14
- package/dist/tasks/eligibility.js.map +1 -1
- package/dist/tasks/identity.d.ts +41 -15
- package/dist/tasks/identity.js +100 -31
- package/dist/tasks/identity.js.map +1 -1
- package/dist/tasks/markdown.d.ts +7 -14
- package/dist/tasks/markdown.js +15 -29
- package/dist/tasks/markdown.js.map +1 -1
- package/dist/tasks/model.d.ts +20 -4
- package/dist/tasks/model.js +17 -0
- package/dist/tasks/model.js.map +1 -1
- package/dist/tasks/sources.d.ts +7 -2
- package/dist/tasks/sources.js +46 -35
- package/dist/tasks/sources.js.map +1 -1
- package/dist/ui/chat-client.d.ts +70 -0
- package/dist/ui/chat-client.js +209 -0
- package/dist/ui/chat-client.js.map +1 -0
- package/dist/ui/dashboard.d.ts +8 -5
- package/dist/ui/dashboard.js +227 -86
- package/dist/ui/dashboard.js.map +1 -1
- package/dist/ui/details.d.ts +64 -0
- package/dist/ui/details.js +175 -0
- package/dist/ui/details.js.map +1 -0
- package/dist/ui/global-dashboard.d.ts +59 -0
- package/dist/ui/global-dashboard.js +307 -0
- package/dist/ui/global-dashboard.js.map +1 -0
- package/dist/ui/status-view.d.ts +7 -0
- package/dist/ui/status-view.js +94 -36
- package/dist/ui/status-view.js.map +1 -1
- package/package.json +1 -1
- package/dist/engine/requests.d.ts +0 -111
- package/dist/engine/requests.js +0 -173
- package/dist/engine/requests.js.map +0 -1
- package/dist/expert/book-language/commitments/task-id.md +0 -9
- package/dist/tasks/prepare.d.ts +0 -33
- package/dist/tasks/prepare.js +0 -90
- package/dist/tasks/prepare.js.map +0 -1
package/dist/ui/dashboard.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { errorMessage } from '../common/errors.js';
|
|
2
2
|
import { clockTime, formatShortTime } from '../common/time.js';
|
|
3
|
-
import {
|
|
4
|
-
import { TextEditor } from './composer.js';
|
|
3
|
+
import { runChatClient } from './chat-client.js';
|
|
5
4
|
import { KeyboardSession } from './keys.js';
|
|
6
5
|
import { FullScreen } from './screen.js';
|
|
7
6
|
import { renderQr, renderStatusPretty } from './status-view.js';
|
|
7
|
+
import { lifecycleActions } from './details.js';
|
|
8
8
|
import { symbols } from './terminal.js';
|
|
9
9
|
/**
|
|
10
10
|
* Formats a plain event line.
|
|
@@ -25,8 +25,19 @@ export function plainDifference(previous, next) {
|
|
|
25
25
|
lines.push(`Local dashboard: ${next.connection.local.url} (same computer only)`);
|
|
26
26
|
}
|
|
27
27
|
else {
|
|
28
|
-
if (previous.service.state !== next.service.state)
|
|
29
|
-
lines.push(`Service ${next.service.state}`);
|
|
28
|
+
if (previous.service.state !== next.service.state || previous.service.lifecycle?.intent !== next.service.lifecycle?.intent) {
|
|
29
|
+
lines.push(`Service ${next.service.state}${next.service.lifecycle?.intent ? ` (${next.service.lifecycle.intent}${next.service.lifecycle.draining ? ' after the current task' : ''})` : ''}`);
|
|
30
|
+
}
|
|
31
|
+
const previousBrowser = previous.browser;
|
|
32
|
+
const browser = next.browser;
|
|
33
|
+
if (browser && (previousBrowser?.state !== browser.state || previousBrowser?.lastFailure?.at !== browser.lastFailure?.at)) {
|
|
34
|
+
lines.push(`Browser ${browser.state}${browser.lastFailure && browser.lastFailure.at !== previousBrowser?.lastFailure?.at ? `: ${browser.lastFailure.summary}` : ''}${browser.recovery?.state === 'retrying' ? ' (recovering automatically)' : ''}`);
|
|
35
|
+
}
|
|
36
|
+
if (next.execution?.status === 'active' && (previous.execution?.status !== 'active' || previous.execution.task.ref !== next.execution.task.ref)) {
|
|
37
|
+
const own = next.execution.contexts[0];
|
|
38
|
+
if (own)
|
|
39
|
+
lines.push(`Execution: ${next.execution.agent.name} on ${own.harness.name}, model ${own.model.value ?? own.model.status}, thinking ${own.thinkingLevel.value ?? own.thinkingLevel.status}`);
|
|
40
|
+
}
|
|
30
41
|
if (previous.phase !== next.phase)
|
|
31
42
|
lines.push(`Phase ${next.phase}${next.current ? `: ${next.current.agent.name} on "${next.current.taskTitle}"` : next.wait ? `: ${next.wait.reason}` : ''}`);
|
|
32
43
|
if (previous.connection.remote.url !== next.connection.remote.url && next.connection.remote.url)
|
|
@@ -36,17 +47,19 @@ export function plainDifference(previous, next) {
|
|
|
36
47
|
for (const line of next.activity)
|
|
37
48
|
if (!seen.has(`${line.at}${line.text}`) && previous)
|
|
38
49
|
lines.push(`${line.level === 'info' ? '' : `${line.level.toUpperCase()}: `}${line.text}`);
|
|
39
|
-
const
|
|
40
|
-
for (const
|
|
41
|
-
if (!
|
|
42
|
-
lines.push(`ATTENTION ${
|
|
50
|
+
const previousWaiting = new Set(previous?.chats.waiting.map((chat) => `${chat.name}\u0000${chat.messages}`) ?? []);
|
|
51
|
+
for (const chat of next.chats.waiting) {
|
|
52
|
+
if (!previousWaiting.has(`${chat.name}\u0000${chat.messages}`)) {
|
|
53
|
+
lines.push(`ATTENTION ${chat.awaiting?.sender ?? chat.agent ?? 'An agent'} waits for you in {{${chat.name}}}: ${(chat.awaiting?.text ?? '').split('\n')[0]} (answer with: ptbk answer "${chat.name}" "<answer>")`);
|
|
54
|
+
}
|
|
43
55
|
}
|
|
44
56
|
return lines;
|
|
45
57
|
}
|
|
46
58
|
/**
|
|
47
59
|
* Runs the live terminal dashboard until the user leaves or the service ends.
|
|
48
60
|
*
|
|
49
|
-
* Leaving (Q, Ctrl+C) never stops an attached service
|
|
61
|
+
* Leaving (Q, Ctrl+C) never stops an attached service. An owning view (foreground start, run) instead requests a
|
|
62
|
+
* graceful stop and stays until the engine ends; a second Ctrl+C there is an explicit force stop.
|
|
50
63
|
*
|
|
51
64
|
* @private terminal dashboard
|
|
52
65
|
*/
|
|
@@ -62,11 +75,14 @@ export async function runDashboard(terminal, source, options) {
|
|
|
62
75
|
let feedback = '';
|
|
63
76
|
let feedbackTimer;
|
|
64
77
|
let input;
|
|
78
|
+
let nested = false;
|
|
65
79
|
let qr;
|
|
66
80
|
let qrKey = '';
|
|
67
81
|
let pairingUrl;
|
|
68
82
|
let plain = false;
|
|
69
|
-
let
|
|
83
|
+
let ownerStopRequested = false;
|
|
84
|
+
// Viewer-local presentation state: detail panels start collapsed and never change the engine.
|
|
85
|
+
const details = { execution: false, browser: false };
|
|
70
86
|
let connectionLost;
|
|
71
87
|
let finished;
|
|
72
88
|
const done = new Promise((resolve) => {
|
|
@@ -78,7 +94,7 @@ export async function runDashboard(terminal, source, options) {
|
|
|
78
94
|
feedbackTimer = setTimeout(() => {
|
|
79
95
|
feedback = '';
|
|
80
96
|
draw();
|
|
81
|
-
},
|
|
97
|
+
}, 5000);
|
|
82
98
|
draw();
|
|
83
99
|
};
|
|
84
100
|
const refreshQr = async () => {
|
|
@@ -111,46 +127,76 @@ export async function runDashboard(terminal, source, options) {
|
|
|
111
127
|
draw();
|
|
112
128
|
};
|
|
113
129
|
const legend = () => {
|
|
114
|
-
if (input?.kind === '
|
|
115
|
-
return '
|
|
116
|
-
if (input?.kind === '
|
|
117
|
-
return ' ↑↓ choose · Enter
|
|
130
|
+
if (input?.kind === 'agents')
|
|
131
|
+
return input.stage === 'entry' ? ' ↑↓ choose · Enter confirm (Chatter is the default) · Esc cancel' : ' ↑↓ choose · Enter open a new chat · Esc back';
|
|
132
|
+
if (input?.kind === 'chats')
|
|
133
|
+
return ' ↑↓ choose · Enter open · Esc back';
|
|
134
|
+
if (input?.kind === 'confirm')
|
|
135
|
+
return ' Y confirm · N/Esc keep things as they are';
|
|
136
|
+
const waiting = snapshot.chats.waiting.length;
|
|
118
137
|
const parts = [
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
138
|
+
waiting ? 'A answer' : '',
|
|
139
|
+
waiting > 1 ? 'N next' : '',
|
|
140
|
+
'C new chat',
|
|
141
|
+
`L chats${snapshot.chats.unread ? ` (${snapshot.chats.unread} unread)` : ''}`,
|
|
122
142
|
'S skip wait',
|
|
123
|
-
|
|
124
|
-
'
|
|
143
|
+
`E ${details.execution ? 'hide' : 'show'} execution`,
|
|
144
|
+
`B ${details.browser ? 'hide' : 'show'} browser`,
|
|
145
|
+
'V renew pairing',
|
|
125
146
|
'O plain',
|
|
126
147
|
'↑↓/End activity',
|
|
127
|
-
source.owning ? 'Q/Ctrl+C stop
|
|
148
|
+
source.owning ? (ownerStopRequested ? 'Ctrl+C force stop' : 'Q/Ctrl+C stop gracefully & quit') : 'Q leave (service keeps running)',
|
|
128
149
|
].filter(Boolean);
|
|
129
150
|
return ` ${parts.join(' · ')}${feedback ? ` ${marks.arrow} ${feedback}` : ''}`;
|
|
130
151
|
};
|
|
152
|
+
/** Agents listed by the picker's current stage. */
|
|
153
|
+
const pickerChoices = (picker) => {
|
|
154
|
+
const chatter = picker.agents.find((agent) => agent.group === 'chatter');
|
|
155
|
+
if (picker.stage === 'entry' && chatter)
|
|
156
|
+
return [{ label: `Chat with ${chatter.name}`, agent: chatter }, { label: 'Choose another agent', others: true }];
|
|
157
|
+
return picker.agents.filter((agent) => agent.group !== 'chatter').map((agent) => ({ label: agent.name, agent }));
|
|
158
|
+
};
|
|
131
159
|
const inputLines = () => {
|
|
132
160
|
if (!input)
|
|
133
161
|
return undefined;
|
|
134
162
|
const { style } = terminal;
|
|
135
|
-
const
|
|
136
|
-
if (
|
|
137
|
-
return [style.muted('
|
|
138
|
-
if (input.kind === '
|
|
139
|
-
const
|
|
140
|
-
|
|
163
|
+
const pointer = (focused) => (focused ? style.accent(marks.pointer) : ' ');
|
|
164
|
+
if (input.kind === 'confirm')
|
|
165
|
+
return [style.bold(input.question), style.muted('Press Y to confirm or N/Esc to cancel.')];
|
|
166
|
+
if (input.kind === 'agents') {
|
|
167
|
+
const picker = input;
|
|
168
|
+
const chatter = picker.agents.some((agent) => agent.group === 'chatter');
|
|
169
|
+
const rows = pickerChoices(picker).map((choice, index) => `${pointer(index === picker.focus)} ${choice.label}${choice.agent && picker.stage === 'all' ? style.muted(choice.agent.group === 'expert' ? ' (engine-provided)' : choice.agent.group === 'hidden' ? ' (hidden/core)' : '') : ''}${choice.agent?.description && picker.stage === 'all' ? style.muted(` · ${choice.agent.description}`) : ''}${choice.others ? style.muted(' · project, hidden/core agents and Expert') : ''}`);
|
|
170
|
+
const problem = chatter ? [] : [style.warning('Chatter (agents/.core/chatter.book) is missing or invalid; run `ptbk init` or `ptbk start` to restore it. Choose another agent explicitly:')];
|
|
171
|
+
return [style.bold(picker.stage === 'entry' ? 'New chat — who do you want to talk to?' : 'New chat — every agent you can talk to'), ...problem, ...rows];
|
|
141
172
|
}
|
|
142
|
-
const
|
|
143
|
-
|
|
144
|
-
|
|
173
|
+
const chats = snapshot.chats.recent;
|
|
174
|
+
if (!chats.length)
|
|
175
|
+
return [style.muted('No chats yet; press C to start one.')];
|
|
176
|
+
const list = input;
|
|
177
|
+
return [
|
|
178
|
+
style.bold(`All chats (${snapshot.chats.total}${snapshot.chats.total > chats.length ? `, latest ${chats.length}` : ''})`),
|
|
179
|
+
...chats.map((chat, index) => `${pointer(index === list.focus)} ${chat.status === 'waiting-for-user' ? style.warning(`${marks.warn} `) : ''}${chat.name}${chat.unread ? style.accent(` · ${chat.unread} unread`) : ''}${style.muted(` · ${chat.members.join(', ')}${chat.links.length ? ` · ${chat.links.join(', ')}` : ''}`)}`),
|
|
180
|
+
];
|
|
145
181
|
};
|
|
146
182
|
const draw = () => {
|
|
147
|
-
if (plain)
|
|
183
|
+
if (plain || nested)
|
|
148
184
|
return;
|
|
149
185
|
const lines = renderStatusPretty(snapshot, terminal, {
|
|
150
186
|
qr,
|
|
151
187
|
noQr: options.noQr,
|
|
152
188
|
pairingUrl: qr?.sensitive ? undefined : pairingUrl,
|
|
153
|
-
live: {
|
|
189
|
+
live: {
|
|
190
|
+
frame,
|
|
191
|
+
maxHeight: terminal.rows(),
|
|
192
|
+
legend: legend(),
|
|
193
|
+
input: inputLines(),
|
|
194
|
+
activityOffset,
|
|
195
|
+
focusRequest,
|
|
196
|
+
connectionLost,
|
|
197
|
+
details,
|
|
198
|
+
controlNote: source.owning && ownerStopRequested && snapshot.service.state === 'stopping' ? 'This view closes when the engine has stopped.' : undefined,
|
|
199
|
+
},
|
|
154
200
|
});
|
|
155
201
|
screen.draw(lines);
|
|
156
202
|
};
|
|
@@ -162,67 +208,129 @@ export async function runDashboard(terminal, source, options) {
|
|
|
162
208
|
process.stdout.off('resize', onResize);
|
|
163
209
|
finished?.(reason);
|
|
164
210
|
};
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
211
|
+
/** Opens a chat in the full-screen chat client; Esc returns to the dashboard (the chat stays). */
|
|
212
|
+
const openChat = async (target) => {
|
|
213
|
+
input = undefined;
|
|
214
|
+
nested = true;
|
|
215
|
+
keyboard.stop();
|
|
216
|
+
try {
|
|
217
|
+
await runChatClient(terminal, source.chats, target, { embedded: true, screen });
|
|
218
|
+
}
|
|
219
|
+
catch (error) {
|
|
220
|
+
feedback = `Chat failed: ${errorMessage(error)}`;
|
|
221
|
+
}
|
|
222
|
+
finally {
|
|
223
|
+
nested = false;
|
|
224
|
+
keyboard.start();
|
|
225
|
+
screen.invalidate();
|
|
226
|
+
draw();
|
|
227
|
+
}
|
|
228
|
+
};
|
|
229
|
+
/** A: the conversation of the most urgent (focused) agent waiting for the user, with its real author. */
|
|
230
|
+
const openWaiting = () => {
|
|
231
|
+
const chat = snapshot.chats.waiting[focusRequest] ?? snapshot.chats.waiting[0];
|
|
232
|
+
if (!chat) {
|
|
233
|
+
notify('No agent is waiting for you.');
|
|
169
234
|
return;
|
|
170
235
|
}
|
|
171
|
-
|
|
172
|
-
draw();
|
|
236
|
+
void openChat({ kind: 'existing', name: chat.name });
|
|
173
237
|
};
|
|
174
|
-
|
|
175
|
-
|
|
238
|
+
/** C: a new chat — Chat with Chatter (default) or Choose another agent. */
|
|
239
|
+
const startNewChat = async () => {
|
|
176
240
|
try {
|
|
177
|
-
await source.
|
|
178
|
-
|
|
241
|
+
const agents = await source.chats.agents();
|
|
242
|
+
input = { kind: 'agents', agents, stage: agents.some((agent) => agent.group === 'chatter') ? 'entry' : 'all', focus: 0 };
|
|
243
|
+
draw();
|
|
179
244
|
}
|
|
180
245
|
catch (error) {
|
|
181
|
-
notify(`
|
|
246
|
+
notify(`Chats unavailable: ${errorMessage(error)}`);
|
|
182
247
|
}
|
|
183
248
|
};
|
|
184
|
-
const runAction = async (name) => {
|
|
249
|
+
const runAction = async (name, params) => {
|
|
185
250
|
try {
|
|
186
|
-
notify((await source.action(name)).outcome);
|
|
251
|
+
notify((await source.action(name, params)).outcome);
|
|
187
252
|
}
|
|
188
253
|
catch (error) {
|
|
189
254
|
notify(`Failed: ${errorMessage(error)}`);
|
|
190
255
|
}
|
|
191
256
|
};
|
|
257
|
+
/** Asks for confirmation before a consequential action. */
|
|
258
|
+
const confirmThen = (question, run) => {
|
|
259
|
+
input = { kind: 'confirm', question, run };
|
|
260
|
+
draw();
|
|
261
|
+
};
|
|
262
|
+
/** Runs a lifecycle action offered for the current state (same operations as the CLI commands). */
|
|
263
|
+
const lifecycle = (key) => {
|
|
264
|
+
const action = lifecycleActions(snapshot).find((candidate) => candidate.key === key);
|
|
265
|
+
if (!action?.action) {
|
|
266
|
+
notify(key === 'P' ? `Pause/resume does not apply while the service is ${snapshot.service.state}.` : 'That control does not apply now.');
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
const revision = snapshot.service.lifecycle?.revision;
|
|
270
|
+
// Stop-to-pause replacement is confirmed against the decision the user saw (stale confirmations are rejected).
|
|
271
|
+
const params = action.action === 'pause' && snapshot.service.state === 'stopping' ? { replaceStop: true, revision } : undefined;
|
|
272
|
+
if (action.confirm)
|
|
273
|
+
confirmThen(action.confirm, () => runAction(action.action, params));
|
|
274
|
+
else
|
|
275
|
+
void runAction(action.action, params);
|
|
276
|
+
};
|
|
277
|
+
/** Owning view: request a graceful stop and stay until the engine ends; a repeated Ctrl+C forces. */
|
|
278
|
+
const ownerQuit = (force) => {
|
|
279
|
+
if (force && ownerStopRequested) {
|
|
280
|
+
void runAction('force-stop');
|
|
281
|
+
return;
|
|
282
|
+
}
|
|
283
|
+
ownerStopRequested = true;
|
|
284
|
+
void runAction('stop');
|
|
285
|
+
};
|
|
192
286
|
const onKey = (event) => {
|
|
193
|
-
if (input) {
|
|
194
|
-
|
|
287
|
+
if (input?.kind === 'confirm') {
|
|
288
|
+
const pending = input;
|
|
289
|
+
if (event.type === 'text' && event.text.toLowerCase() === 'y') {
|
|
195
290
|
input = undefined;
|
|
196
|
-
|
|
197
|
-
|
|
291
|
+
void pending.run();
|
|
292
|
+
}
|
|
293
|
+
else if ((event.type === 'text' && event.text.toLowerCase() === 'n') || (event.type === 'key' && event.name === 'escape')) {
|
|
294
|
+
input = undefined;
|
|
295
|
+
notify('Nothing changed.');
|
|
198
296
|
}
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
void submitAnswer(current.requestId, current.choices[current.focus]);
|
|
207
|
-
else if (event.type === 'text' && /^[1-9]$/.test(event.text) && Number(event.text) <= current.choices.length)
|
|
208
|
-
current.focus = Number(event.text) - 1;
|
|
297
|
+
draw();
|
|
298
|
+
return;
|
|
299
|
+
}
|
|
300
|
+
if (input) {
|
|
301
|
+
if (event.type === 'key' && event.name === 'escape') {
|
|
302
|
+
// Choose another agent → back to the two-choice entry; otherwise cancel.
|
|
303
|
+
input = input.kind === 'agents' && input.stage === 'all' && input.agents.some((agent) => agent.group === 'chatter') ? { ...input, stage: 'entry', focus: 1 } : undefined;
|
|
209
304
|
draw();
|
|
210
305
|
return;
|
|
211
306
|
}
|
|
212
|
-
const
|
|
213
|
-
if (
|
|
214
|
-
|
|
215
|
-
|
|
307
|
+
const count = input.kind === 'agents' ? pickerChoices(input).length : snapshot.chats.recent.length;
|
|
308
|
+
if (event.type === 'key' && event.name === 'up' && count)
|
|
309
|
+
input.focus = (input.focus - 1 + count) % count;
|
|
310
|
+
else if (event.type === 'key' && event.name === 'down' && count)
|
|
311
|
+
input.focus = (input.focus + 1) % count;
|
|
312
|
+
else if (event.type === 'key' && event.name === 'enter') {
|
|
313
|
+
if (input.kind === 'agents') {
|
|
314
|
+
const choice = pickerChoices(input)[input.focus];
|
|
315
|
+
if (choice?.agent)
|
|
316
|
+
void openChat({ kind: 'new', agent: choice.agent });
|
|
317
|
+
else if (choice?.others)
|
|
318
|
+
input = { ...input, stage: 'all', focus: 0 };
|
|
319
|
+
}
|
|
320
|
+
else {
|
|
321
|
+
const chat = snapshot.chats.recent[input.focus];
|
|
322
|
+
if (chat)
|
|
323
|
+
void openChat({ kind: 'existing', name: chat.name });
|
|
324
|
+
}
|
|
216
325
|
}
|
|
217
|
-
else if (action === 'cancel')
|
|
218
|
-
input = undefined;
|
|
219
326
|
draw();
|
|
220
327
|
return;
|
|
221
328
|
}
|
|
222
329
|
if (event.type === 'key' && event.name === 'c' && event.ctrl) {
|
|
223
330
|
if (source.owning)
|
|
224
|
-
|
|
225
|
-
|
|
331
|
+
ownerQuit(true);
|
|
332
|
+
else
|
|
333
|
+
leave('left');
|
|
226
334
|
return;
|
|
227
335
|
}
|
|
228
336
|
if (event.type === 'key') {
|
|
@@ -232,8 +340,8 @@ export async function runDashboard(terminal, source, options) {
|
|
|
232
340
|
activityOffset = Math.max(0, activityOffset - 1);
|
|
233
341
|
else if (event.name === 'end')
|
|
234
342
|
activityOffset = 0;
|
|
235
|
-
else if (event.name === 'enter' && snapshot.
|
|
236
|
-
|
|
343
|
+
else if (event.name === 'enter' && snapshot.chats.waiting.length)
|
|
344
|
+
openWaiting();
|
|
237
345
|
draw();
|
|
238
346
|
return;
|
|
239
347
|
}
|
|
@@ -242,27 +350,61 @@ export async function runDashboard(terminal, source, options) {
|
|
|
242
350
|
switch (event.text.toLowerCase()) {
|
|
243
351
|
case 'q':
|
|
244
352
|
if (source.owning)
|
|
245
|
-
|
|
246
|
-
|
|
353
|
+
ownerQuit(false);
|
|
354
|
+
else
|
|
355
|
+
leave('left');
|
|
247
356
|
return;
|
|
248
357
|
case 'p':
|
|
249
|
-
|
|
358
|
+
lifecycle('P');
|
|
359
|
+
return;
|
|
360
|
+
case 'u':
|
|
361
|
+
lifecycle('U');
|
|
362
|
+
return;
|
|
363
|
+
case 'x':
|
|
364
|
+
// Graceful stop; repeating it never escalates to force (F is the explicit force stop).
|
|
365
|
+
lifecycle('X');
|
|
366
|
+
return;
|
|
367
|
+
case 'r':
|
|
368
|
+
lifecycle('R');
|
|
369
|
+
return;
|
|
370
|
+
case 'f':
|
|
371
|
+
lifecycle('F');
|
|
250
372
|
return;
|
|
251
373
|
case 's':
|
|
252
374
|
void runAction('skip-wait');
|
|
253
375
|
return;
|
|
254
|
-
case '
|
|
255
|
-
|
|
256
|
-
|
|
376
|
+
case 'e':
|
|
377
|
+
details.execution = !details.execution;
|
|
378
|
+
draw();
|
|
379
|
+
return;
|
|
380
|
+
case 'b':
|
|
381
|
+
details.browser = !details.browser;
|
|
382
|
+
draw();
|
|
383
|
+
return;
|
|
384
|
+
case '1':
|
|
385
|
+
case '2':
|
|
386
|
+
case '3':
|
|
387
|
+
if (!details.browser) {
|
|
388
|
+
notify('Open the browser details (B) to use browser recovery.');
|
|
389
|
+
return;
|
|
390
|
+
}
|
|
391
|
+
void runAction(event.text === '1' ? 'browser-recheck' : event.text === '2' ? 'browser-retry' : 'browser-restart');
|
|
257
392
|
return;
|
|
258
393
|
case 'a':
|
|
259
|
-
|
|
394
|
+
openWaiting();
|
|
395
|
+
return;
|
|
396
|
+
case 'c':
|
|
397
|
+
void startNewChat();
|
|
398
|
+
return;
|
|
399
|
+
case 'l':
|
|
400
|
+
input = { kind: 'chats', focus: 0 };
|
|
401
|
+
draw();
|
|
260
402
|
return;
|
|
261
403
|
case 'n':
|
|
262
|
-
focusRequest = snapshot.
|
|
404
|
+
focusRequest = snapshot.chats.waiting.length ? (focusRequest + 1) % snapshot.chats.waiting.length : 0;
|
|
263
405
|
draw();
|
|
264
406
|
return;
|
|
265
|
-
case '
|
|
407
|
+
case 'v':
|
|
266
408
|
void source.pairing(true).then(() => {
|
|
267
409
|
qrKey = '';
|
|
268
410
|
notify('Pairing renewed; the previous link is invalid.');
|
|
@@ -312,16 +454,15 @@ export async function runDashboard(terminal, source, options) {
|
|
|
312
454
|
process.stdout.write(plainDifference(previous, next).map(plainLine).join(''));
|
|
313
455
|
previous = next;
|
|
314
456
|
snapshot = next;
|
|
315
|
-
if (focusRequest >= snapshot.
|
|
457
|
+
if (focusRequest >= snapshot.chats.waiting.length)
|
|
316
458
|
focusRequest = 0;
|
|
317
459
|
draw();
|
|
318
460
|
void refreshQr();
|
|
319
461
|
if (['stopped', 'finished'].includes(snapshot.service.state)) {
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
}
|
|
462
|
+
// The engine ended (observed): show it briefly, never start a replacement.
|
|
463
|
+
await new Promise((resolve) => setTimeout(resolve, 1500));
|
|
464
|
+
leave('ended');
|
|
465
|
+
return;
|
|
325
466
|
}
|
|
326
467
|
}
|
|
327
468
|
catch (error) {
|
|
@@ -338,11 +479,11 @@ export async function runDashboard(terminal, source, options) {
|
|
|
338
479
|
})();
|
|
339
480
|
const reason = await done;
|
|
340
481
|
finished = undefined;
|
|
341
|
-
process.stdout.write(`${terminal.style.muted(`Left the dashboard at ${formatShortTime(Date.now())}.`)}${source.owning ? '' : terminal.style.muted(' The service keeps running; `ptbk stop` stops it.')}\n`);
|
|
482
|
+
process.stdout.write(`${terminal.style.muted(`Left the dashboard at ${formatShortTime(Date.now())}.`)}${source.owning ? '' : terminal.style.muted(reason === 'ended' ? ' The service is no longer running.' : ' The service keeps running; `ptbk stop` stops it.')}\n`);
|
|
342
483
|
return reason;
|
|
343
484
|
}
|
|
344
485
|
/**
|
|
345
|
-
* Plain continuous observation (raw/noninteractive): readable lines, conspicuous
|
|
486
|
+
* Plain continuous observation (raw/noninteractive): readable lines, conspicuous waiting-chat notices, no prompts.
|
|
346
487
|
*/
|
|
347
488
|
async function runPlainDashboard(terminal, source) {
|
|
348
489
|
let previous;
|
package/dist/ui/dashboard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/ui/dashboard.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/ui/dashboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { BrowserDetailView, ExecutionContextView, ExecutionDetailView, ServiceSnapshot } from '../engine/snapshot.js';
|
|
2
|
+
import type { Style } from './ansi.js';
|
|
3
|
+
/**
|
|
4
|
+
* One lifecycle action offered for the current service state (terminal key, CLI command and API action).
|
|
5
|
+
*
|
|
6
|
+
* @private service controls view
|
|
7
|
+
*/
|
|
8
|
+
export type LifecycleActionView = {
|
|
9
|
+
readonly key: string;
|
|
10
|
+
readonly label: string;
|
|
11
|
+
readonly command: string;
|
|
12
|
+
readonly action: string;
|
|
13
|
+
readonly confirm?: string;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* What the current service state means, including a pending intent and whether work is still draining.
|
|
17
|
+
*
|
|
18
|
+
* @private service controls view
|
|
19
|
+
*/
|
|
20
|
+
export declare function lifecycleExplanation(snapshot: ServiceSnapshot): string;
|
|
21
|
+
/**
|
|
22
|
+
* Human description of the live service state with its pending intent (never a fifth `stopped` live state).
|
|
23
|
+
*
|
|
24
|
+
* @private service controls view
|
|
25
|
+
*/
|
|
26
|
+
export declare function lifecycleSummary(snapshot: ServiceSnapshot): string;
|
|
27
|
+
/**
|
|
28
|
+
* The lifecycle actions applicable in the current state, shared by the terminal panel, browser and one-shot hints.
|
|
29
|
+
*
|
|
30
|
+
* @private service controls view
|
|
31
|
+
*/
|
|
32
|
+
export declare function lifecycleActions(snapshot: ServiceSnapshot): LifecycleActionView[];
|
|
33
|
+
/**
|
|
34
|
+
* Human label of a model in one execution context.
|
|
35
|
+
*
|
|
36
|
+
* @private execution details view
|
|
37
|
+
*/
|
|
38
|
+
export declare function modelLabel(model: ExecutionContextView['model']): string;
|
|
39
|
+
/**
|
|
40
|
+
* Human label of a thinking level in one execution context, in the harness's own terminology.
|
|
41
|
+
*
|
|
42
|
+
* @private execution details view
|
|
43
|
+
*/
|
|
44
|
+
export declare function thinkingLabel(thinking: ExecutionContextView['thinkingLevel']): string;
|
|
45
|
+
/**
|
|
46
|
+
* Compact one-line configuration of the task's own execution context: agent, harness, model and thinking level.
|
|
47
|
+
*
|
|
48
|
+
* @private execution details view
|
|
49
|
+
*/
|
|
50
|
+
export declare function executionOneLine(execution: ExecutionDetailView): string;
|
|
51
|
+
/**
|
|
52
|
+
* Lines of the expandable execution detail panel (also the raw EXECUTION section).
|
|
53
|
+
*
|
|
54
|
+
* @private execution details view
|
|
55
|
+
*/
|
|
56
|
+
export declare function executionDetailLines(execution: ExecutionDetailView | undefined, style?: Style): string[];
|
|
57
|
+
/**
|
|
58
|
+
* Lines of the expandable browser detail panel (also the raw BROWSER section). Never includes profile contents.
|
|
59
|
+
*
|
|
60
|
+
* @private browser details view
|
|
61
|
+
*/
|
|
62
|
+
export declare function browserDetailLines(browser: BrowserDetailView | undefined, style?: Style, options?: {
|
|
63
|
+
readonly keys?: boolean;
|
|
64
|
+
}): string[];
|