ptbk 0.119.0-21 → 0.119.0-26

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 (223) hide show
  1. package/README.md +16 -9
  2. package/dist/browser/browser.d.ts +50 -36
  3. package/dist/browser/browser.js +162 -118
  4. package/dist/browser/browser.js.map +1 -1
  5. package/dist/browser/fleet.d.ts +59 -0
  6. package/dist/browser/fleet.js +148 -0
  7. package/dist/browser/fleet.js.map +1 -0
  8. package/dist/browser/recording.js +2 -2
  9. package/dist/browser/recording.js.map +1 -1
  10. package/dist/chats/conversation.d.ts +1 -1
  11. package/dist/chats/conversation.js +8 -6
  12. package/dist/chats/conversation.js.map +1 -1
  13. package/dist/chats/local.js +5 -5
  14. package/dist/chats/local.js.map +1 -1
  15. package/dist/cli/commands/add.js +1 -1
  16. package/dist/cli/commands/add.js.map +1 -1
  17. package/dist/cli/commands/boilerplates.js +1 -1
  18. package/dist/cli/commands/boilerplates.js.map +1 -1
  19. package/dist/cli/commands/find.js +1 -1
  20. package/dist/cli/commands/find.js.map +1 -1
  21. package/dist/cli/commands/fix.js +9 -4
  22. package/dist/cli/commands/fix.js.map +1 -1
  23. package/dist/cli/commands/init.d.ts +5 -0
  24. package/dist/cli/commands/init.js +279 -118
  25. package/dist/cli/commands/init.js.map +1 -1
  26. package/dist/cli/commands/migrate.js +1 -1
  27. package/dist/cli/commands/migrate.js.map +1 -1
  28. package/dist/cli/commands/ping.js +20 -12
  29. package/dist/cli/commands/ping.js.map +1 -1
  30. package/dist/cli/commands/plan.js +20 -12
  31. package/dist/cli/commands/plan.js.map +1 -1
  32. package/dist/cli/commands/recover.js +1 -1
  33. package/dist/cli/commands/recover.js.map +1 -1
  34. package/dist/cli/commands/restart.js +6 -5
  35. package/dist/cli/commands/restart.js.map +1 -1
  36. package/dist/cli/commands/run.js +26 -15
  37. package/dist/cli/commands/run.js.map +1 -1
  38. package/dist/cli/commands/start.js +11 -7
  39. package/dist/cli/commands/start.js.map +1 -1
  40. package/dist/cli/commands/tool.d.ts +19 -0
  41. package/dist/cli/commands/tool.js +320 -0
  42. package/dist/cli/commands/tool.js.map +1 -0
  43. package/dist/cli/commands/verify.js +1 -1
  44. package/dist/cli/commands/verify.js.map +1 -1
  45. package/dist/cli/common.d.ts +7 -1
  46. package/dist/cli/common.js +37 -20
  47. package/dist/cli/common.js.map +1 -1
  48. package/dist/cli/compatibility.d.ts +8 -0
  49. package/dist/cli/compatibility.js +32 -0
  50. package/dist/cli/compatibility.js.map +1 -0
  51. package/dist/cli/parser.js +7 -3
  52. package/dist/cli/parser.js.map +1 -1
  53. package/dist/cli/registry.js +182 -7
  54. package/dist/cli/registry.js.map +1 -1
  55. package/dist/cli/service-view.js +1 -1
  56. package/dist/cli/service-view.js.map +1 -1
  57. package/dist/cli/sources.js +2 -0
  58. package/dist/cli/sources.js.map +1 -1
  59. package/dist/cli/spec.js +8 -6
  60. package/dist/cli/spec.js.map +1 -1
  61. package/dist/common/naming.d.ts +53 -0
  62. package/dist/common/naming.js +90 -0
  63. package/dist/common/naming.js.map +1 -0
  64. package/dist/engine/agenda.d.ts +70 -9
  65. package/dist/engine/agenda.js +294 -61
  66. package/dist/engine/agenda.js.map +1 -1
  67. package/dist/engine/executor.d.ts +5 -0
  68. package/dist/engine/executor.js +24 -11
  69. package/dist/engine/executor.js.map +1 -1
  70. package/dist/engine/harnesses.d.ts +82 -18
  71. package/dist/engine/harnesses.js +191 -39
  72. package/dist/engine/harnesses.js.map +1 -1
  73. package/dist/engine/preview.js +2 -2
  74. package/dist/engine/preview.js.map +1 -1
  75. package/dist/engine/routing.d.ts +10 -0
  76. package/dist/engine/routing.js +67 -28
  77. package/dist/engine/routing.js.map +1 -1
  78. package/dist/engine/snapshot.d.ts +107 -7
  79. package/dist/engine/state.d.ts +4 -2
  80. package/dist/engine/state.js.map +1 -1
  81. package/dist/engine/sync.d.ts +96 -0
  82. package/dist/engine/sync.js +199 -0
  83. package/dist/engine/sync.js.map +1 -0
  84. package/dist/engine/team.d.ts +1 -0
  85. package/dist/engine/team.js +12 -8
  86. package/dist/engine/team.js.map +1 -1
  87. package/dist/expert/_main.md +96 -67
  88. package/dist/expert/agents/_index.md +10 -7
  89. package/dist/expert/agents/core-agents.md +4 -2
  90. package/dist/expert/agents/fixer.md +15 -12
  91. package/dist/expert/cli/acceptance.md +96 -78
  92. package/dist/expert/cli/api.md +26 -14
  93. package/dist/expert/cli/autonomous-operation.md +17 -19
  94. package/dist/expert/cli/browser.md +24 -24
  95. package/dist/expert/cli/checks.md +18 -10
  96. package/dist/expert/cli/cli.md +48 -41
  97. package/dist/expert/cli/configuration-migrations.md +43 -0
  98. package/dist/expert/cli/configuration.md +24 -14
  99. package/dist/expert/cli/controls.md +23 -11
  100. package/dist/expert/cli/dashboard-details.md +28 -10
  101. package/dist/expert/cli/dashboard-layout.md +15 -15
  102. package/dist/expert/cli/dashboard.md +8 -10
  103. package/dist/expert/cli/environment.md +33 -0
  104. package/dist/expert/cli/execution.md +10 -8
  105. package/dist/expert/cli/git-persistence.md +27 -21
  106. package/dist/expert/cli/git-preflight.md +8 -4
  107. package/dist/expert/cli/git-synchronization.md +32 -6
  108. package/dist/expert/cli/harness-plugins.md +12 -12
  109. package/dist/expert/cli/harnesses.md +22 -16
  110. package/dist/expert/cli/initialization-ui.md +14 -14
  111. package/dist/expert/cli/initialization.md +31 -21
  112. package/dist/expert/cli/installation.md +6 -0
  113. package/dist/expert/cli/isolation.md +5 -3
  114. package/dist/expert/cli/releasing.md +17 -3
  115. package/dist/expert/cli/retries.md +10 -8
  116. package/dist/expert/cli/run.md +7 -5
  117. package/dist/expert/cli/start.md +21 -15
  118. package/dist/expert/cli/status-view.md +15 -17
  119. package/dist/expert/cli/synchronization-setup.md +24 -0
  120. package/dist/expert/cli/terminal.md +14 -16
  121. package/dist/expert/cli/tool-management.md +60 -0
  122. package/dist/expert/cli/tool-runtime.md +35 -0
  123. package/dist/expert/cli/tools-migration.md +50 -0
  124. package/dist/expert/cli/tools.md +73 -0
  125. package/dist/expert/cli/trace-configuration.md +9 -11
  126. package/dist/expert/cli/updates.md +7 -7
  127. package/dist/expert/cli/windows-installer.md +67 -0
  128. package/dist/expert/cli/workspace.md +2 -0
  129. package/dist/expert/coding-standards/_index.md +11 -0
  130. package/dist/expert/coding-standards/naming.md +30 -0
  131. package/dist/expert/coding-standards/shared-logic.md +27 -0
  132. package/dist/expert/concepts/automatic-repair.md +33 -0
  133. package/dist/expert/concepts/engine-and-project.md +7 -5
  134. package/dist/expert/dictionary.md +18 -18
  135. package/dist/harness/plugins/claude-code/index.js +4 -2
  136. package/dist/harness/plugins/claude-code/index.js.map +1 -1
  137. package/dist/harness/plugins/cline/index.js +1 -0
  138. package/dist/harness/plugins/cline/index.js.map +1 -1
  139. package/dist/harness/plugins/gemini/index.js +2 -0
  140. package/dist/harness/plugins/gemini/index.js.map +1 -1
  141. package/dist/harness/plugins/github-copilot/index.js +1 -0
  142. package/dist/harness/plugins/github-copilot/index.js.map +1 -1
  143. package/dist/harness/plugins/openai-codex/index.js +13 -9
  144. package/dist/harness/plugins/openai-codex/index.js.map +1 -1
  145. package/dist/harness/plugins/opencode/index.js +1 -0
  146. package/dist/harness/plugins/opencode/index.js.map +1 -1
  147. package/dist/harness/plugins/qwen-code/index.js +1 -0
  148. package/dist/harness/plugins/qwen-code/index.js.map +1 -1
  149. package/dist/harness/types.d.ts +16 -5
  150. package/dist/project/config.d.ts +135 -48
  151. package/dist/project/config.js +331 -119
  152. package/dist/project/config.js.map +1 -1
  153. package/dist/project/configuration.d.ts +43 -0
  154. package/dist/project/configuration.js +165 -0
  155. package/dist/project/configuration.js.map +1 -0
  156. package/dist/project/defaults.d.ts +4 -2
  157. package/dist/project/defaults.js +10 -5
  158. package/dist/project/defaults.js.map +1 -1
  159. package/dist/project/git.d.ts +28 -0
  160. package/dist/project/git.js +81 -0
  161. package/dist/project/git.js.map +1 -1
  162. package/dist/project/migrations.d.ts +96 -0
  163. package/dist/project/migrations.js +301 -0
  164. package/dist/project/migrations.js.map +1 -0
  165. package/dist/project/publication.d.ts +57 -0
  166. package/dist/project/publication.js +117 -0
  167. package/dist/project/publication.js.map +1 -0
  168. package/dist/project/readiness.d.ts +14 -5
  169. package/dist/project/readiness.js +23 -22
  170. package/dist/project/readiness.js.map +1 -1
  171. package/dist/project/setup.js +2 -0
  172. package/dist/project/setup.js.map +1 -1
  173. package/dist/service/actions.d.ts +12 -4
  174. package/dist/service/actions.js +32 -2
  175. package/dist/service/actions.js.map +1 -1
  176. package/dist/service/control.d.ts +1 -1
  177. package/dist/service/control.js +1 -1
  178. package/dist/service/host.d.ts +5 -2
  179. package/dist/service/host.js +26 -16
  180. package/dist/service/host.js.map +1 -1
  181. package/dist/service/http.js +7 -2
  182. package/dist/service/http.js.map +1 -1
  183. package/dist/service/launcher.d.ts +2 -1
  184. package/dist/service/launcher.js +1 -0
  185. package/dist/service/launcher.js.map +1 -1
  186. package/dist/service/records.d.ts +3 -0
  187. package/dist/service/records.js +1 -1
  188. package/dist/service/records.js.map +1 -1
  189. package/dist/service/spa/app.css +39 -0
  190. package/dist/service/spa/app.js +242 -39
  191. package/dist/service/worker.js +1 -0
  192. package/dist/service/worker.js.map +1 -1
  193. package/dist/tools/environment.d.ts +122 -0
  194. package/dist/tools/environment.js +199 -0
  195. package/dist/tools/environment.js.map +1 -0
  196. package/dist/tools/model.d.ts +180 -0
  197. package/dist/tools/model.js +111 -0
  198. package/dist/tools/model.js.map +1 -0
  199. package/dist/tools/normalize.d.ts +51 -0
  200. package/dist/tools/normalize.js +321 -0
  201. package/dist/tools/normalize.js.map +1 -0
  202. package/dist/tools/operations.d.ts +198 -0
  203. package/dist/tools/operations.js +378 -0
  204. package/dist/tools/operations.js.map +1 -0
  205. package/dist/tools/readiness.d.ts +72 -0
  206. package/dist/tools/readiness.js +160 -0
  207. package/dist/tools/readiness.js.map +1 -0
  208. package/dist/ui/dashboard.d.ts +3 -0
  209. package/dist/ui/dashboard.js +173 -2
  210. package/dist/ui/dashboard.js.map +1 -1
  211. package/dist/ui/details.d.ts +35 -1
  212. package/dist/ui/details.js +103 -2
  213. package/dist/ui/details.js.map +1 -1
  214. package/dist/ui/secret.d.ts +8 -0
  215. package/dist/ui/secret.js +41 -0
  216. package/dist/ui/secret.js.map +1 -0
  217. package/dist/ui/status-view.d.ts +1 -0
  218. package/dist/ui/status-view.js +33 -8
  219. package/dist/ui/status-view.js.map +1 -1
  220. package/dist/ui/tool-forms.d.ts +24 -0
  221. package/dist/ui/tool-forms.js +133 -0
  222. package/dist/ui/tool-forms.js.map +1 -0
  223. package/package.json +1 -1
@@ -0,0 +1,160 @@
1
+ import { pathExists } from '../common/fs.js';
2
+ import { browserProfileDirectory, findBrowserExecutable, profileOwner } from '../browser/browser.js';
3
+ import { harnessPlugin } from '../harness/registry.js';
4
+ import { describeCredentialSource } from './environment.js';
5
+ import { canonicalEnumValue } from '../common/naming.js';
6
+ import { describeProfileSource, harnessPluginId } from './model.js';
7
+ /**
8
+ * Checks a browser tool without launching it: executable, and an explicitly selected existing profile.
9
+ *
10
+ * @private tool readiness
11
+ */
12
+ export async function inspectBrowserTool(project, tool, env) {
13
+ const profilePath = browserProfileDirectory(project, tool, env);
14
+ const executable = await findBrowserExecutable(tool, env);
15
+ if (!executable) {
16
+ return { usable: false, profilePath, summary: `No ${tool.variant === 'CHROME' ? 'Chrome-compatible' : tool.variant} browser executable was found.`, nextAction: `Install Google Chrome (or Chromium/Edge), or set it: ptbk tool modify ${tool.name} --executable <path>` };
17
+ }
18
+ if ((tool.profile.source === 'USER_EXISTING' || tool.profile.source === 'CUSTOM') && !(await pathExists(profilePath))) {
19
+ return { usable: false, executable, profilePath, summary: `The selected profile ${profilePath} does not exist.`, nextAction: `Choose another profile: ptbk tool modify ${tool.name} --profile-source MANAGED_GLOBAL` };
20
+ }
21
+ const owner = await profileOwner(profilePath);
22
+ return { usable: true, executable, profilePath, summary: `Ready (${describeProfileSource(tool.profile.source, tool.profile.path)}${owner ? `; profile currently open in browser PID ${owner}` : ''}, ${tool.isHeadless ? 'headless' : 'visible window'}).` };
23
+ }
24
+ /**
25
+ * Non-secret display fields of a tool (an API key only as its reference and effective source).
26
+ *
27
+ * @private tool readiness
28
+ */
29
+ export function toolFields(project, tool, env, pool) {
30
+ if (tool.type === 'BROWSER') {
31
+ return {
32
+ profile: `${tool.profile.source}${tool.profile.path ? ` ${tool.profile.path}` : ''}`,
33
+ profilePath: browserProfileDirectory(project, tool, env),
34
+ isHeadless: String(tool.isHeadless),
35
+ ...(tool.executable ? { executable: tool.executable } : {}),
36
+ };
37
+ }
38
+ const credential = pool?.credential(tool);
39
+ return {
40
+ authentication: tool.authentication,
41
+ ...(tool.apiKey ? { apiKey: `${tool.apiKey}${tool.authentication === 'API_KEY' ? (credential ? ` (${describeCredentialSource(credential)})` : '') : ' (inactive metadata: NATIVE authentication)'}` } : {}),
42
+ ...(tool.accountProfile ? { accountProfile: tool.accountProfile } : {}),
43
+ ...(tool.model ? { model: tool.model } : {}),
44
+ ...(tool.thinkingLevel ? { thinkingLevel: canonicalEnumValue(tool.thinkingLevel) } : {}),
45
+ ...(tool.models?.length ? { models: tool.models.join(', ') } : {}),
46
+ };
47
+ }
48
+ /**
49
+ * Display name of a tool's adapter.
50
+ *
51
+ * @private tool readiness
52
+ */
53
+ export function variantLabel(tool) {
54
+ if (tool.type === 'HARNESS')
55
+ return harnessPlugin(harnessPluginId(tool.variant))?.displayName ?? tool.variant;
56
+ return tool.variant === 'CHROME' ? 'Chrome' : tool.variant === 'CHROMIUM' ? 'Chromium' : 'Microsoft Edge';
57
+ }
58
+ /**
59
+ * Builds the shared ordered tool inventory with the baseline readiness of new work: at least one enabled usable
60
+ * browser and harness. Missing resources are a running engine's wait, never a stop.
61
+ *
62
+ * @private tool readiness
63
+ */
64
+ export function toolInventory(input) {
65
+ const { project, settings, env, pool } = input;
66
+ const items = settings.tools.map((tool, index) => {
67
+ let state;
68
+ let summary;
69
+ let nextAction;
70
+ if (!tool.isEnabled) {
71
+ state = 'disabled';
72
+ summary = 'Disabled (configuration and credentials are kept).';
73
+ nextAction = `ptbk tool enable ${tool.name}`;
74
+ }
75
+ else if (tool.type === 'HARNESS') {
76
+ const inspection = pool.inspectionOf(tool.name);
77
+ state = !inspection ? 'unknown' : inspection.usable ? 'usable' : 'unavailable';
78
+ summary = inspection?.summary ?? 'Not inspected yet.';
79
+ nextAction = inspection?.usable ? undefined : inspection?.nextAction;
80
+ }
81
+ else {
82
+ const readiness = input.browsers.get(tool.name);
83
+ state = !readiness ? 'unknown' : readiness.usable ? 'usable' : 'unavailable';
84
+ summary = readiness?.summary ?? 'Not inspected yet.';
85
+ nextAction = readiness?.usable ? undefined : readiness?.nextAction;
86
+ }
87
+ return {
88
+ name: tool.name,
89
+ type: tool.type,
90
+ variant: tool.variant,
91
+ variantLabel: variantLabel(tool),
92
+ ...(tool.description ? { description: tool.description } : {}),
93
+ order: index + 1,
94
+ isEnabled: tool.isEnabled,
95
+ state,
96
+ summary,
97
+ ...(nextAction ? { nextAction } : {}),
98
+ inUse: Boolean(input.inUse?.has(tool.name)),
99
+ ...(input.retained?.has(tool.name) ? { retained: true } : {}),
100
+ ...(settings.overriddenTools.has(tool.name) ? { overridden: true } : {}),
101
+ fields: toolFields(project, tool, env, pool),
102
+ };
103
+ });
104
+ for (const name of input.retained ?? []) {
105
+ if (items.some((item) => item.name === name))
106
+ continue;
107
+ items.push({ name, type: 'BROWSER', variant: 'CHROME', variantLabel: 'browser', order: items.length + 1, isEnabled: false, state: 'disabled', summary: 'Removed from ptbk.json; the current task finishes with it.', inUse: true, retained: true, fields: {} });
108
+ }
109
+ const problems = settings.diagnostics.filter((diagnostic) => diagnostic.location.includes('tools')).map((diagnostic) => `${diagnostic.location}: ${diagnostic.message}`);
110
+ return { items, waiting: baselineWait(items), problems };
111
+ }
112
+ /**
113
+ * What new work waits for, when no enabled usable browser or harness exists.
114
+ *
115
+ * @private tool readiness
116
+ */
117
+ export function baselineWait(items) {
118
+ const missing = [];
119
+ const actions = [];
120
+ for (const type of ['HARNESS', 'BROWSER']) {
121
+ const ofType = items.filter((item) => item.type === type && !item.retained);
122
+ if (ofType.some((item) => item.state === 'usable'))
123
+ continue;
124
+ if (ofType.some((item) => item.state === 'unknown'))
125
+ continue;
126
+ const label = type === 'HARNESS' ? 'harness' : 'browser';
127
+ const enabled = ofType.filter((item) => item.isEnabled);
128
+ if (!ofType.length) {
129
+ missing.push(`no ${label} tool is configured`);
130
+ actions.push(type === 'HARNESS' ? 'ptbk tool add HARNESS --variant OPENAI_CODEX --name openai-codex' : 'ptbk tool add BROWSER --variant CHROME --name project-browser');
131
+ }
132
+ else if (!enabled.length) {
133
+ missing.push(`every ${label} tool is disabled (${ofType.map((item) => item.name).join(', ')})`);
134
+ actions.push(`ptbk tool enable ${ofType[0].name}`);
135
+ }
136
+ else {
137
+ missing.push(`no enabled ${label} is usable (${enabled.map((item) => `${item.name}: ${item.summary}`).join('; ')})`);
138
+ const action = enabled.find((item) => item.nextAction)?.nextAction;
139
+ if (action)
140
+ actions.push(action);
141
+ }
142
+ }
143
+ if (!missing.length)
144
+ return undefined;
145
+ return { reason: `${missing.join('; ')}.`.replace(/^./, (letter) => letter.toUpperCase()), action: actions.join(' · ') || 'ptbk tool list' };
146
+ }
147
+ /**
148
+ * Inspects every configured tool once (read-only; no browser launch, no model call).
149
+ *
150
+ * @private tool readiness
151
+ */
152
+ export async function inspectInventory(project, settings, env, pool) {
153
+ await pool.refresh(pool.allInstances().filter((tool) => tool.isEnabled).map((tool) => tool.name), true);
154
+ const browsers = new Map();
155
+ for (const tool of settings.tools)
156
+ if (tool.type === 'BROWSER' && tool.isEnabled)
157
+ browsers.set(tool.name, await inspectBrowserTool(project, tool, env));
158
+ return toolInventory({ project, settings, env, pool, browsers });
159
+ }
160
+ //# sourceMappingURL=readiness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readiness.js","sourceRoot":"","sources":["../../src/tools/readiness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAKrG,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAmE,MAAM,YAAY,CAAC;AASrI;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAgB,EAAE,IAAuB,EAAE,GAAsB;IACtG,MAAM,WAAW,GAAG,uBAAuB,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1D,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,gCAAgC,EAAE,UAAU,EAAE,yEAAyE,IAAI,CAAC,IAAI,sBAAsB,EAAE,CAAC;IAC/Q,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,eAAe,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;QACpH,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,wBAAwB,WAAW,kBAAkB,EAAE,UAAU,EAAE,4CAA4C,IAAI,CAAC,IAAI,kCAAkC,EAAE,CAAC;IAC3N,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,CAAC;IAC9C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,2CAA2C,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,IAAI,EAAE,CAAC;AACjQ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,OAAgB,EAAE,IAAgB,EAAE,GAAsB,EAAE,IAAkB;IACrG,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO;YACH,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;YACpF,WAAW,EAAE,uBAAuB,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;YACxD,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YACnC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9D,CAAC;IACN,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IAC1C,OAAO;QACH,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,wBAAwB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,6CAA6C,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3M,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrE,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,IAA0C;IACnE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,OAAuC,CAAC,CAAC,EAAE,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC;IAC9I,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC;AAC9G,CAAC;AAqBD;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,KAAyB;IACnD,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAC/C,MAAM,KAAK,GAAe,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACzD,IAAI,KAAwB,CAAC;QAC7B,IAAI,OAAe,CAAC;QACpB,IAAI,UAA8B,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,KAAK,GAAG,UAAU,CAAC;YACnB,OAAO,GAAG,oDAAoD,CAAC;YAC/D,UAAU,GAAG,oBAAoB,IAAI,CAAC,IAAI,EAAE,CAAC;QACjD,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC;YAC/E,OAAO,GAAG,UAAU,EAAE,OAAO,IAAI,oBAAoB,CAAC;YACtD,UAAU,GAAG,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC;QACzE,CAAC;aAAM,CAAC;YACJ,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC;YAC7E,OAAO,GAAG,SAAS,EAAE,OAAO,IAAI,oBAAoB,CAAC;YACrD,UAAU,GAAG,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC;QACvE,CAAC;QACD,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,YAAY,EAAE,YAAY,CAAC,IAAI,CAAC;YAChC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,KAAK,EAAE,KAAK,GAAG,CAAC;YAChB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK;YACL,OAAO;YACP,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3C,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;SAC/C,CAAC;IACN,CAAC,CAAC,CAAC;IACH,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACtC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;YAAE,SAAS;QACvD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,4DAA4D,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IACpQ,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,QAAQ,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;IACzK,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC7D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,KAA0B;IACnD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,SAAS,CAAU,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5E,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC;YAAE,SAAS;QAC7D,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC;YAAE,SAAS;QAC9D,MAAM,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QACzD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,qBAAqB,CAAC,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,kEAAkE,CAAC,CAAC,CAAC,+DAA+D,CAAC,CAAC;QAC5K,CAAC;aAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,SAAS,KAAK,sBAAsB,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChG,OAAO,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,IAAI,CAAC,cAAc,KAAK,eAAe,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrH,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;YACnE,IAAI,MAAM;gBAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IACtC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,gBAAgB,EAAE,CAAC;AACjJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAgB,EAAE,QAA2B,EAAE,GAAsB,EAAE,IAAiB;IAC3H,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACxG,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAC;IACrD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK;QAAE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS;YAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,kBAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IACxJ,OAAO,aAAa,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AACrE,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { ServiceSnapshot } from '../engine/snapshot.js';
2
2
  import { type ChatSource } from './chat-client.js';
3
+ import type { ToolOperationOutcome, ToolOperationRequest } from '../tools/operations.js';
3
4
  import { type TerminalProfile } from './terminal.js';
4
5
  /**
5
6
  * Where the dashboard reads state and sends controls (attached daemon or in-process owner).
@@ -24,6 +25,8 @@ export type DashboardSource = {
24
25
  url?: string;
25
26
  remote?: boolean;
26
27
  }>;
28
+ /** Saved tool management through the engine's shared operation (committed immediately). */
29
+ readonly tool: (request: ToolOperationRequest) => Promise<ToolOperationOutcome>;
27
30
  /** The invocation owns the service lifetime (foreground start / run). */
28
31
  readonly owning: boolean;
29
32
  };
@@ -4,7 +4,8 @@ import { runChatClient } from './chat-client.js';
4
4
  import { KeyboardSession } from './keys.js';
5
5
  import { FullScreen } from './screen.js';
6
6
  import { renderQr, renderStatusPretty } from './status-view.js';
7
- import { lifecycleActions } from './details.js';
7
+ import { lifecycleActions, toolDetailLines, toolRow } from './details.js';
8
+ import { addToolForm, modifyToolForm } from './tool-forms.js';
8
9
  import { symbols } from './terminal.js';
9
10
  /**
10
11
  * Formats a plain event line.
@@ -38,6 +39,13 @@ export function plainDifference(previous, next) {
38
39
  if (own)
39
40
  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
41
  }
42
+ if (previous.tools?.waiting?.reason !== next.tools?.waiting?.reason)
43
+ lines.push(next.tools?.waiting ? `Tools: new work waits — ${next.tools.waiting.reason} (${next.tools.waiting.action})` : 'Tools: usable browser and harness available.');
44
+ const toolStates = (snapshot) => (snapshot?.tools?.items ?? []).map((item) => `${item.name}:${item.state}:${item.isEnabled}`).join(',');
45
+ if (toolStates(previous) !== toolStates(next))
46
+ lines.push(`Tools: ${(next.tools?.items ?? []).map((item) => `${item.name} ${item.isEnabled ? item.state : 'disabled'}${item.inUse ? ' (in use)' : ''}`).join(', ') || 'none'}`);
47
+ if (next.sync && (previous.sync?.state !== next.sync.state || previous.sync?.reason !== next.sync.reason))
48
+ lines.push(`Synchronization ${next.sync.state}${next.sync.reason ? `: ${next.sync.reason}` : ''}`);
41
49
  if (previous.phase !== next.phase)
42
50
  lines.push(`Phase ${next.phase}${next.current ? `: ${next.current.agent.name} on "${next.current.taskTitle}"` : next.wait ? `: ${next.wait.reason}` : ''}`);
43
51
  if (previous.connection.remote.url !== next.connection.remote.url && next.connection.remote.url)
@@ -82,7 +90,7 @@ export async function runDashboard(terminal, source, options) {
82
90
  let plain = false;
83
91
  let ownerStopRequested = false;
84
92
  // Viewer-local presentation state: detail panels start collapsed and never change the engine.
85
- const details = { execution: false, browser: false };
93
+ const details = { execution: false, browser: false, sync: false };
86
94
  let connectionLost;
87
95
  let finished;
88
96
  const done = new Promise((resolve) => {
@@ -133,6 +141,10 @@ export async function runDashboard(terminal, source, options) {
133
141
  return ' ↑↓ choose · Enter open · Esc back';
134
142
  if (input?.kind === 'confirm')
135
143
  return ' Y confirm · N/Esc keep things as they are';
144
+ if (input?.kind === 'tool-in-use')
145
+ return ' 1 save now (current work finishes with the tool it acquired) · 2 force-stop the whole engine · Esc keep things as they are';
146
+ if (input?.kind === 'tools')
147
+ return ` ↑↓ choose · Space enable/disable · Enter ${input.detail ? 'hide' : 'show'} details · [ ] move · N add · M modify · D remove · 1/2/3 browser recheck/retry/restart · Esc back${feedback ? ` ${marks.arrow} ${feedback}` : ''}`;
136
148
  const waiting = snapshot.chats.waiting.length;
137
149
  const parts = [
138
150
  waiting ? 'A answer' : '',
@@ -142,6 +154,8 @@ export async function runDashboard(terminal, source, options) {
142
154
  'S skip wait',
143
155
  `E ${details.execution ? 'hide' : 'show'} execution`,
144
156
  `B ${details.browser ? 'hide' : 'show'} browser`,
157
+ 'T tools',
158
+ ...(snapshot.sync ? [`Y ${details.sync ? 'hide' : 'show'} sync`, 'G sync now'] : []),
145
159
  'V renew pairing',
146
160
  'O plain',
147
161
  '↑↓/End activity',
@@ -163,6 +177,27 @@ export async function runDashboard(terminal, source, options) {
163
177
  const pointer = (focused) => (focused ? style.accent(marks.pointer) : ' ');
164
178
  if (input.kind === 'confirm')
165
179
  return [style.bold(input.question), style.muted('Press Y to confirm or N/Esc to cancel.')];
180
+ if (input.kind === 'tool-in-use') {
181
+ return [
182
+ style.bold(input.message),
183
+ `${style.accent('1')} Save the change now — the work that already acquired the tool finishes with its original configuration (not a kill)`,
184
+ `${style.accent('2')} Force-stop the whole engine (ptbk stop --force); after it stopped, repeat this change`,
185
+ ...(input.lastOfType ? [style.warning(input.lastOfType)] : []),
186
+ style.muted('Esc keeps everything as it is.'),
187
+ ];
188
+ }
189
+ if (input.kind === 'tools') {
190
+ const mode = input;
191
+ const items = snapshot.tools?.items ?? [];
192
+ const rows = items.map((item, index) => `${pointer(index === mode.focus)} ${toolRow(item, style)}`);
193
+ const focused = items[mode.focus];
194
+ return [
195
+ style.bold(`Tools (${items.length}) — saved changes are committed immediately`),
196
+ ...(items.length ? rows : [style.muted('No tools are configured; press N to add one.')]),
197
+ ...(snapshot.tools?.waiting ? [style.warning(`New work waits for tools: ${snapshot.tools.waiting.reason}`)] : []),
198
+ ...(focused && mode.detail ? ['', ...toolDetailLines(focused, style)] : []),
199
+ ];
200
+ }
166
201
  if (input.kind === 'agents') {
167
202
  const picker = input;
168
203
  const chatter = picker.agents.some((agent) => agent.group === 'chatter');
@@ -254,6 +289,97 @@ export async function runDashboard(terminal, source, options) {
254
289
  notify(`Failed: ${errorMessage(error)}`);
255
290
  }
256
291
  };
292
+ /**
293
+ * Applies a saved tool change through the shared operation and handles its protections: an in-use tool offers the
294
+ * two shared alternatives; the last enabled tool of a type needs its own confirmation.
295
+ */
296
+ const runTool = async (request) => {
297
+ try {
298
+ const outcome = await source.tool({ ...request, via: 'dashboard' });
299
+ if (outcome.status !== 'needs-acknowledgement') {
300
+ notify(`${outcome.summary}${outcome.status === 'applied' && outcome.commit ? ` (committed ${outcome.commit.slice(0, 8)})` : ''}`);
301
+ return;
302
+ }
303
+ const inUse = outcome.requirements.find((requirement) => requirement.kind === 'in-use');
304
+ const lastOfType = outcome.requirements.find((requirement) => requirement.kind === 'last-of-type');
305
+ if (inUse) {
306
+ input = { kind: 'tool-in-use', request, message: inUse.message, lastOfType: lastOfType?.message };
307
+ draw();
308
+ return;
309
+ }
310
+ if (lastOfType)
311
+ confirmThen(`${lastOfType.message} Continue?`, () => runTool({ ...request, acknowledgements: { ...request.acknowledgements, confirmLastOfType: true } }));
312
+ }
313
+ catch (error) {
314
+ notify(`Not changed: ${errorMessage(error)}`);
315
+ }
316
+ };
317
+ /** Runs a form outside the live view (the dashboard returns afterwards; nothing changes when it is cancelled). */
318
+ const openForm = async (form) => {
319
+ nested = true;
320
+ keyboard.stop();
321
+ screen.leave();
322
+ let result;
323
+ try {
324
+ result = await form();
325
+ }
326
+ catch (error) {
327
+ feedback = `Form failed: ${errorMessage(error)}`;
328
+ }
329
+ finally {
330
+ screen.enter();
331
+ screen.invalidate();
332
+ keyboard.start();
333
+ nested = false;
334
+ draw();
335
+ }
336
+ if (result)
337
+ await runTool({ operation: result.operation, secret: result.secret });
338
+ };
339
+ /** Keys of the tools management mode. */
340
+ const toolsKey = (mode, event) => {
341
+ const items = snapshot.tools?.items ?? [];
342
+ const focused = items[mode.focus];
343
+ if (event.type === 'key') {
344
+ if (event.name === 'escape')
345
+ input = undefined;
346
+ else if (event.name === 'up' && items.length)
347
+ mode.focus = (mode.focus - 1 + items.length) % items.length;
348
+ else if (event.name === 'down' && items.length)
349
+ mode.focus = (mode.focus + 1) % items.length;
350
+ else if (event.name === 'enter')
351
+ mode.detail = !mode.detail;
352
+ draw();
353
+ return;
354
+ }
355
+ if (event.type !== 'text')
356
+ return;
357
+ const key = event.text;
358
+ if (key === ' ' && focused)
359
+ void runTool({ operation: { kind: focused.isEnabled ? 'disable' : 'enable', name: focused.name } });
360
+ else if ((key === '[' || key === ']') && focused) {
361
+ const neighbour = items[mode.focus + (key === '[' ? -1 : 1)];
362
+ if (!neighbour)
363
+ notify('It is already at that end of the list.');
364
+ else {
365
+ mode.focus += key === '[' ? -1 : 1;
366
+ void runTool({ operation: { kind: 'move', name: focused.name, ...(key === '[' ? { before: neighbour.name } : { after: neighbour.name }) } });
367
+ }
368
+ }
369
+ else if (key.toLowerCase() === 'n')
370
+ void openForm(() => addToolForm(terminal));
371
+ else if (key.toLowerCase() === 'm' && focused)
372
+ void openForm(() => modifyToolForm(terminal, focused));
373
+ else if (key.toLowerCase() === 'd' && focused)
374
+ confirmThen(`Permanently remove the configuration of "${focused.name}"? (Disable keeps it; profiles, native logins and .env history are never deleted.)`, () => runTool({ operation: { kind: 'remove', name: focused.name } }));
375
+ else if (['1', '2', '3'].includes(key) && focused) {
376
+ if (focused.type !== 'BROWSER')
377
+ notify('Browser recovery applies to browser tools.');
378
+ else
379
+ void runAction(key === '1' ? 'browser-recheck' : key === '2' ? 'browser-retry' : 'browser-restart', { name: focused.name });
380
+ }
381
+ draw();
382
+ };
257
383
  /** Asks for confirmation before a consequential action. */
258
384
  const confirmThen = (question, run) => {
259
385
  input = { kind: 'confirm', question, run };
@@ -284,6 +410,31 @@ export async function runDashboard(terminal, source, options) {
284
410
  void runAction('stop');
285
411
  };
286
412
  const onKey = (event) => {
413
+ if (input?.kind === 'tools') {
414
+ toolsKey(input, event);
415
+ return;
416
+ }
417
+ if (input?.kind === 'tool-in-use') {
418
+ const pending = input;
419
+ if (event.type === 'key' && event.name === 'escape') {
420
+ input = undefined;
421
+ notify('Nothing changed.');
422
+ }
423
+ else if (event.type === 'text' && event.text === '1') {
424
+ input = undefined;
425
+ const forced = { ...pending.request, acknowledgements: { ...pending.request.acknowledgements, force: true } };
426
+ if (pending.lastOfType)
427
+ confirmThen(`${pending.lastOfType} Continue?`, () => runTool({ ...forced, acknowledgements: { ...forced.acknowledgements, confirmLastOfType: true } }));
428
+ else
429
+ void runTool(forced);
430
+ }
431
+ else if (event.type === 'text' && event.text === '2') {
432
+ input = undefined;
433
+ confirmThen('Force-stop the whole engine now? Owned work is interrupted (recoverable). The tool change is not applied: repeat it after the engine has stopped.', () => runAction('force-stop'));
434
+ }
435
+ draw();
436
+ return;
437
+ }
287
438
  if (input?.kind === 'confirm') {
288
439
  const pending = input;
289
440
  if (event.type === 'text' && event.text.toLowerCase() === 'y') {
@@ -381,6 +532,26 @@ export async function runDashboard(terminal, source, options) {
381
532
  details.browser = !details.browser;
382
533
  draw();
383
534
  return;
535
+ case 't':
536
+ input = { kind: 'tools', focus: 0, detail: false };
537
+ draw();
538
+ return;
539
+ case 'y':
540
+ if (!snapshot.sync) {
541
+ notify('Automatic synchronization is off (isAutoSync false).');
542
+ return;
543
+ }
544
+ details.sync = !details.sync;
545
+ draw();
546
+ return;
547
+ case 'g':
548
+ if (!snapshot.sync) {
549
+ notify('Automatic synchronization is off (isAutoSync false).');
550
+ return;
551
+ }
552
+ notify('Synchronizing…');
553
+ void runAction('sync-now');
554
+ return;
384
555
  case '1':
385
556
  case '2':
386
557
  case '3':
@@ -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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"}
@@ -1,4 +1,4 @@
1
- import type { BrowserDetailView, ExecutionContextView, ExecutionDetailView, ServiceSnapshot } from '../engine/snapshot.js';
1
+ import type { BrowserDetailView, ExecutionContextView, ExecutionDetailView, ServiceSnapshot, SyncView, ToolView, ToolsView } from '../engine/snapshot.js';
2
2
  import type { Style } from './ansi.js';
3
3
  /**
4
4
  * One lifecycle action offered for the current service state (terminal key, CLI command and API action).
@@ -62,3 +62,37 @@ export declare function executionDetailLines(execution: ExecutionDetailView | un
62
62
  export declare function browserDetailLines(browser: BrowserDetailView | undefined, style?: Style, options?: {
63
63
  readonly keys?: boolean;
64
64
  }): string[];
65
+ /**
66
+ * Compact tool overview for the main cockpit: availability per type and the concrete resource wait.
67
+ *
68
+ * @private tools view
69
+ */
70
+ export declare function toolsCompactLines(tools: ToolsView | undefined, style?: Style, options?: {
71
+ readonly live?: boolean;
72
+ }): string[];
73
+ /**
74
+ * One tool row of the inventory.
75
+ *
76
+ * @private tools view
77
+ */
78
+ export declare function toolRow(item: ToolView, style?: Style): string;
79
+ /**
80
+ * Lines of one tool's detail view (canonical record, readiness, next action; never secret values).
81
+ *
82
+ * @private tools view
83
+ */
84
+ export declare function toolDetailLines(item: ToolView, style?: Style): string[];
85
+ /**
86
+ * Compact synchronization status (shown only while autosync is enabled).
87
+ *
88
+ * @private synchronization view
89
+ */
90
+ export declare function syncCompactLines(sync: SyncView, style?: Style, options?: {
91
+ readonly live?: boolean;
92
+ }): string[];
93
+ /**
94
+ * Lines of the synchronization detail view.
95
+ *
96
+ * @private synchronization view
97
+ */
98
+ export declare function syncDetailLines(sync: SyncView, style?: Style): string[];