ptbk 0.119.0-17 → 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.
Files changed (327) hide show
  1. package/README.md +27 -9
  2. package/dist/book/commitments.d.ts +38 -10
  3. package/dist/book/commitments.js +61 -17
  4. package/dist/book/commitments.js.map +1 -1
  5. package/dist/book/convert.d.ts +36 -0
  6. package/dist/book/convert.js +156 -0
  7. package/dist/book/convert.js.map +1 -0
  8. package/dist/book/parse.d.ts +50 -13
  9. package/dist/book/parse.js +132 -45
  10. package/dist/book/parse.js.map +1 -1
  11. package/dist/book/references.d.ts +12 -4
  12. package/dist/book/references.js +34 -9
  13. package/dist/book/references.js.map +1 -1
  14. package/dist/book/write.d.ts +42 -0
  15. package/dist/book/write.js +74 -0
  16. package/dist/book/write.js.map +1 -0
  17. package/dist/browser/browser.d.ts +122 -12
  18. package/dist/browser/browser.js +372 -21
  19. package/dist/browser/browser.js.map +1 -1
  20. package/dist/browser/recording.d.ts +3 -3
  21. package/dist/browser/recording.js +5 -5
  22. package/dist/browser/recording.js.map +1 -1
  23. package/dist/chats/chat-book.d.ts +105 -0
  24. package/dist/chats/chat-book.js +180 -0
  25. package/dist/chats/chat-book.js.map +1 -0
  26. package/dist/chats/conversation.d.ts +54 -0
  27. package/dist/chats/conversation.js +188 -0
  28. package/dist/chats/conversation.js.map +1 -0
  29. package/dist/chats/local.d.ts +46 -0
  30. package/dist/chats/local.js +184 -0
  31. package/dist/chats/local.js.map +1 -0
  32. package/dist/chats/migration.d.ts +12 -0
  33. package/dist/chats/migration.js +62 -0
  34. package/dist/chats/migration.js.map +1 -0
  35. package/dist/chats/service.d.ts +81 -0
  36. package/dist/chats/service.js +122 -0
  37. package/dist/chats/service.js.map +1 -0
  38. package/dist/chats/store.d.ts +132 -0
  39. package/dist/chats/store.js +181 -0
  40. package/dist/chats/store.js.map +1 -0
  41. package/dist/chats/task-chats.d.ts +52 -0
  42. package/dist/chats/task-chats.js +96 -0
  43. package/dist/chats/task-chats.js.map +1 -0
  44. package/dist/cli/chats.d.ts +45 -0
  45. package/dist/cli/chats.js +108 -0
  46. package/dist/cli/chats.js.map +1 -0
  47. package/dist/cli/commands/add.js +32 -22
  48. package/dist/cli/commands/add.js.map +1 -1
  49. package/dist/cli/commands/answer.d.ts +2 -1
  50. package/dist/cli/commands/answer.js +35 -41
  51. package/dist/cli/commands/answer.js.map +1 -1
  52. package/dist/cli/commands/ask.d.ts +7 -0
  53. package/dist/cli/commands/ask.js +37 -0
  54. package/dist/cli/commands/ask.js.map +1 -0
  55. package/dist/cli/commands/boilerplates.js +14 -3
  56. package/dist/cli/commands/boilerplates.js.map +1 -1
  57. package/dist/cli/commands/chat.d.ts +9 -0
  58. package/dist/cli/commands/chat.js +89 -0
  59. package/dist/cli/commands/chat.js.map +1 -0
  60. package/dist/cli/commands/dashboard.d.ts +3 -1
  61. package/dist/cli/commands/dashboard.js +41 -3
  62. package/dist/cli/commands/dashboard.js.map +1 -1
  63. package/dist/cli/commands/find.js +6 -8
  64. package/dist/cli/commands/find.js.map +1 -1
  65. package/dist/cli/commands/fix.js +4 -6
  66. package/dist/cli/commands/fix.js.map +1 -1
  67. package/dist/cli/commands/init.d.ts +0 -1
  68. package/dist/cli/commands/init.js +38 -38
  69. package/dist/cli/commands/init.js.map +1 -1
  70. package/dist/cli/commands/lint.js +16 -2
  71. package/dist/cli/commands/lint.js.map +1 -1
  72. package/dist/cli/commands/list.js +21 -13
  73. package/dist/cli/commands/list.js.map +1 -1
  74. package/dist/cli/commands/migrate.d.ts +2 -1
  75. package/dist/cli/commands/migrate.js +70 -24
  76. package/dist/cli/commands/migrate.js.map +1 -1
  77. package/dist/cli/commands/pause.d.ts +8 -0
  78. package/dist/cli/commands/pause.js +40 -0
  79. package/dist/cli/commands/pause.js.map +1 -0
  80. package/dist/cli/commands/plan.js +6 -9
  81. package/dist/cli/commands/plan.js.map +1 -1
  82. package/dist/cli/commands/recover.js +7 -3
  83. package/dist/cli/commands/recover.js.map +1 -1
  84. package/dist/cli/commands/restart.d.ts +3 -1
  85. package/dist/cli/commands/restart.js +74 -18
  86. package/dist/cli/commands/restart.js.map +1 -1
  87. package/dist/cli/commands/resume.d.ts +8 -0
  88. package/dist/cli/commands/resume.js +15 -0
  89. package/dist/cli/commands/resume.js.map +1 -0
  90. package/dist/cli/commands/run.js +6 -9
  91. package/dist/cli/commands/run.js.map +1 -1
  92. package/dist/cli/commands/start.js +40 -36
  93. package/dist/cli/commands/start.js.map +1 -1
  94. package/dist/cli/commands/status.d.ts +2 -1
  95. package/dist/cli/commands/status.js +5 -1
  96. package/dist/cli/commands/status.js.map +1 -1
  97. package/dist/cli/commands/stop.d.ts +3 -1
  98. package/dist/cli/commands/stop.js +18 -8
  99. package/dist/cli/commands/stop.js.map +1 -1
  100. package/dist/cli/commands/verify.js +7 -7
  101. package/dist/cli/commands/verify.js.map +1 -1
  102. package/dist/cli/common.d.ts +13 -0
  103. package/dist/cli/common.js +22 -0
  104. package/dist/cli/common.js.map +1 -1
  105. package/dist/cli/engine-delegation.d.ts +14 -0
  106. package/dist/cli/engine-delegation.js +46 -0
  107. package/dist/cli/engine-delegation.js.map +1 -0
  108. package/dist/cli/lifecycle.d.ts +40 -0
  109. package/dist/cli/lifecycle.js +71 -0
  110. package/dist/cli/lifecycle.js.map +1 -0
  111. package/dist/cli/registry.js +113 -31
  112. package/dist/cli/registry.js.map +1 -1
  113. package/dist/cli/service-view.d.ts +14 -2
  114. package/dist/cli/service-view.js +46 -5
  115. package/dist/cli/service-view.js.map +1 -1
  116. package/dist/cli/sources.js +5 -8
  117. package/dist/cli/sources.js.map +1 -1
  118. package/dist/cli/spec.js +1 -1
  119. package/dist/cli/spec.js.map +1 -1
  120. package/dist/common/app-data.d.ts +9 -0
  121. package/dist/common/app-data.js +20 -0
  122. package/dist/common/app-data.js.map +1 -0
  123. package/dist/common/errors.d.ts +2 -0
  124. package/dist/common/errors.js.map +1 -1
  125. package/dist/common/time.d.ts +6 -0
  126. package/dist/common/time.js +9 -0
  127. package/dist/common/time.js.map +1 -1
  128. package/dist/engine/agenda.d.ts +213 -43
  129. package/dist/engine/agenda.js +846 -260
  130. package/dist/engine/agenda.js.map +1 -1
  131. package/dist/engine/executor.d.ts +23 -7
  132. package/dist/engine/executor.js +131 -84
  133. package/dist/engine/executor.js.map +1 -1
  134. package/dist/engine/generated.d.ts +21 -1
  135. package/dist/engine/generated.js +36 -21
  136. package/dist/engine/generated.js.map +1 -1
  137. package/dist/engine/preview.js +10 -10
  138. package/dist/engine/preview.js.map +1 -1
  139. package/dist/engine/prompt.d.ts +16 -4
  140. package/dist/engine/prompt.js +22 -4
  141. package/dist/engine/prompt.js.map +1 -1
  142. package/dist/engine/routing.js +28 -4
  143. package/dist/engine/routing.js.map +1 -1
  144. package/dist/engine/snapshot.d.ts +178 -29
  145. package/dist/engine/state.d.ts +40 -13
  146. package/dist/engine/state.js +20 -5
  147. package/dist/engine/state.js.map +1 -1
  148. package/dist/engine/task-trace.d.ts +35 -7
  149. package/dist/engine/task-trace.js +74 -15
  150. package/dist/engine/task-trace.js.map +1 -1
  151. package/dist/engine/team.d.ts +20 -7
  152. package/dist/engine/team.js +30 -24
  153. package/dist/engine/team.js.map +1 -1
  154. package/dist/engine/traces.d.ts +1 -1
  155. package/dist/engine/traces.js +1 -1
  156. package/dist/expert/_main.md +67 -52
  157. package/dist/expert/agents/_index.md +11 -13
  158. package/dist/expert/agents/chatter.md +31 -0
  159. package/dist/expert/agents/consistency.md +6 -11
  160. package/dist/expert/agents/core-agents.md +9 -7
  161. package/dist/expert/agents/expert.md +1 -1
  162. package/dist/expert/agents/fixer.md +24 -0
  163. package/dist/expert/agents/learning.md +1 -1
  164. package/dist/expert/agents/non-agents.md +2 -2
  165. package/dist/expert/agents/visual-identity.md +4 -4
  166. package/dist/expert/book-language/_index.md +9 -8
  167. package/dist/expert/book-language/commitments/_index.md +23 -3
  168. package/dist/expert/book-language/commitments/agent.md +11 -0
  169. package/dist/expert/book-language/commitments/chat-member.md +7 -0
  170. package/dist/expert/book-language/commitments/chat-message.md +11 -0
  171. package/dist/expert/book-language/commitments/chat-status.md +7 -0
  172. package/dist/expert/book-language/commitments/chat.md +11 -0
  173. package/dist/expert/book-language/commitments/entity.md +9 -0
  174. package/dist/expert/book-language/commitments/goal.md +6 -2
  175. package/dist/expert/book-language/commitments/link.md +9 -0
  176. package/dist/expert/book-language/commitments/task-depends-on.md +1 -1
  177. package/dist/expert/book-language/commitments/task-parent.md +1 -1
  178. package/dist/expert/book-language/commitments/task.md +7 -3
  179. package/dist/expert/book-language/commitments/team.md +1 -1
  180. package/dist/expert/book-language/references.md +20 -83
  181. package/dist/expert/book-language/syntax.md +54 -11
  182. package/dist/expert/cli/acceptance.md +59 -24
  183. package/dist/expert/cli/api.md +23 -9
  184. package/dist/expert/cli/authoring.md +6 -4
  185. package/dist/expert/cli/autonomous-operation.md +3 -3
  186. package/dist/expert/cli/browser.md +29 -18
  187. package/dist/expert/cli/channels.md +5 -7
  188. package/dist/expert/cli/chat-ui.md +32 -0
  189. package/dist/expert/cli/chats.md +59 -0
  190. package/dist/expert/cli/cli.md +44 -26
  191. package/dist/expert/cli/configuration.md +3 -3
  192. package/dist/expert/cli/controls.md +13 -7
  193. package/dist/expert/cli/dashboard-details.md +23 -0
  194. package/dist/expert/cli/dashboard-layout.md +19 -12
  195. package/dist/expert/cli/dashboard.md +12 -8
  196. package/dist/expert/cli/execution.md +8 -6
  197. package/dist/expert/cli/first-task.md +4 -4
  198. package/dist/expert/cli/generated-names.md +44 -0
  199. package/dist/expert/cli/git-persistence.md +19 -17
  200. package/dist/expert/cli/global-dashboard.md +33 -0
  201. package/dist/expert/cli/goal-discovery.md +1 -1
  202. package/dist/expert/cli/help.md +1 -1
  203. package/dist/expert/cli/initialization-ui.md +2 -0
  204. package/dist/expert/cli/initialization.md +9 -7
  205. package/dist/expert/cli/interactive-ui.md +9 -5
  206. package/dist/expert/cli/locking.md +21 -0
  207. package/dist/expert/cli/migration.md +22 -6
  208. package/dist/expert/cli/process-modes.md +21 -13
  209. package/dist/expert/cli/recovery.md +8 -6
  210. package/dist/expert/cli/recurrence.md +1 -1
  211. package/dist/expert/cli/rich-input.md +2 -2
  212. package/dist/expert/cli/service-lifecycle.md +57 -0
  213. package/dist/expert/cli/start.md +2 -2
  214. package/dist/expert/cli/status-view.md +16 -12
  215. package/dist/expert/cli/task-books.md +11 -15
  216. package/dist/expert/cli/task-identity.md +8 -10
  217. package/dist/expert/cli/task-markdown.md +6 -10
  218. package/dist/expert/cli/task-origins.md +3 -1
  219. package/dist/expert/cli/task-relationships.md +5 -9
  220. package/dist/expert/cli/team.md +17 -7
  221. package/dist/expert/cli/terminal.md +20 -12
  222. package/dist/expert/cli/trace-configuration.md +1 -1
  223. package/dist/expert/cli/traces.md +19 -23
  224. package/dist/expert/cli/user-interactions.md +14 -26
  225. package/dist/expert/cli/workspace.md +15 -9
  226. package/dist/expert/concepts/engine-and-project.md +11 -0
  227. package/dist/expert/concepts/project-model.md +39 -0
  228. package/dist/expert/dictionary.md +21 -15
  229. package/dist/harness/plugins/claude-code/index.js +1 -0
  230. package/dist/harness/plugins/claude-code/index.js.map +1 -1
  231. package/dist/harness/plugins/cline/index.js +1 -0
  232. package/dist/harness/plugins/cline/index.js.map +1 -1
  233. package/dist/harness/plugins/openai-codex/index.js +1 -0
  234. package/dist/harness/plugins/openai-codex/index.js.map +1 -1
  235. package/dist/harness/plugins/opencode/index.js +1 -0
  236. package/dist/harness/plugins/opencode/index.js.map +1 -1
  237. package/dist/harness/types.d.ts +3 -1
  238. package/dist/project/agents.d.ts +29 -81
  239. package/dist/project/agents.js +47 -266
  240. package/dist/project/agents.js.map +1 -1
  241. package/dist/project/books.d.ts +150 -0
  242. package/dist/project/books.js +253 -0
  243. package/dist/project/books.js.map +1 -0
  244. package/dist/project/config.js +2 -2
  245. package/dist/project/config.js.map +1 -1
  246. package/dist/project/defaults.d.ts +33 -5
  247. package/dist/project/defaults.js +67 -36
  248. package/dist/project/defaults.js.map +1 -1
  249. package/dist/project/expert.js +17 -9
  250. package/dist/project/expert.js.map +1 -1
  251. package/dist/project/git.d.ts +4 -3
  252. package/dist/project/git.js +16 -5
  253. package/dist/project/git.js.map +1 -1
  254. package/dist/project/setup.d.ts +4 -1
  255. package/dist/project/setup.js +26 -6
  256. package/dist/project/setup.js.map +1 -1
  257. package/dist/service/actions.d.ts +34 -10
  258. package/dist/service/actions.js +51 -19
  259. package/dist/service/actions.js.map +1 -1
  260. package/dist/service/control.d.ts +53 -1
  261. package/dist/service/control.js +64 -4
  262. package/dist/service/control.js.map +1 -1
  263. package/dist/service/discovery.d.ts +133 -0
  264. package/dist/service/discovery.js +138 -0
  265. package/dist/service/discovery.js.map +1 -0
  266. package/dist/service/host.d.ts +8 -1
  267. package/dist/service/host.js +65 -18
  268. package/dist/service/host.js.map +1 -1
  269. package/dist/service/http.d.ts +3 -0
  270. package/dist/service/http.js +26 -6
  271. package/dist/service/http.js.map +1 -1
  272. package/dist/service/launcher.d.ts +66 -13
  273. package/dist/service/launcher.js +78 -18
  274. package/dist/service/launcher.js.map +1 -1
  275. package/dist/service/records.d.ts +12 -2
  276. package/dist/service/records.js +19 -5
  277. package/dist/service/records.js.map +1 -1
  278. package/dist/service/spa/app.css +83 -2
  279. package/dist/service/spa/app.js +393 -72
  280. package/dist/service/supervisor.js +7 -1
  281. package/dist/service/supervisor.js.map +1 -1
  282. package/dist/service/worker.js +14 -5
  283. package/dist/service/worker.js.map +1 -1
  284. package/dist/tasks/authoring.d.ts +3 -5
  285. package/dist/tasks/authoring.js +6 -7
  286. package/dist/tasks/authoring.js.map +1 -1
  287. package/dist/tasks/book-task.d.ts +18 -10
  288. package/dist/tasks/book-task.js +27 -23
  289. package/dist/tasks/book-task.js.map +1 -1
  290. package/dist/tasks/eligibility.d.ts +15 -7
  291. package/dist/tasks/eligibility.js +41 -14
  292. package/dist/tasks/eligibility.js.map +1 -1
  293. package/dist/tasks/identity.d.ts +41 -15
  294. package/dist/tasks/identity.js +100 -31
  295. package/dist/tasks/identity.js.map +1 -1
  296. package/dist/tasks/markdown.d.ts +7 -14
  297. package/dist/tasks/markdown.js +15 -29
  298. package/dist/tasks/markdown.js.map +1 -1
  299. package/dist/tasks/model.d.ts +20 -4
  300. package/dist/tasks/model.js +17 -0
  301. package/dist/tasks/model.js.map +1 -1
  302. package/dist/tasks/sources.d.ts +7 -2
  303. package/dist/tasks/sources.js +46 -35
  304. package/dist/tasks/sources.js.map +1 -1
  305. package/dist/ui/chat-client.d.ts +70 -0
  306. package/dist/ui/chat-client.js +209 -0
  307. package/dist/ui/chat-client.js.map +1 -0
  308. package/dist/ui/dashboard.d.ts +8 -5
  309. package/dist/ui/dashboard.js +227 -86
  310. package/dist/ui/dashboard.js.map +1 -1
  311. package/dist/ui/details.d.ts +64 -0
  312. package/dist/ui/details.js +175 -0
  313. package/dist/ui/details.js.map +1 -0
  314. package/dist/ui/global-dashboard.d.ts +59 -0
  315. package/dist/ui/global-dashboard.js +307 -0
  316. package/dist/ui/global-dashboard.js.map +1 -0
  317. package/dist/ui/status-view.d.ts +7 -0
  318. package/dist/ui/status-view.js +94 -36
  319. package/dist/ui/status-view.js.map +1 -1
  320. package/package.json +1 -1
  321. package/dist/engine/requests.d.ts +0 -111
  322. package/dist/engine/requests.js +0 -173
  323. package/dist/engine/requests.js.map +0 -1
  324. package/dist/expert/book-language/commitments/task-id.md +0 -9
  325. package/dist/tasks/prepare.d.ts +0 -33
  326. package/dist/tasks/prepare.js +0 -90
  327. package/dist/tasks/prepare.js.map +0 -1
@@ -1,11 +1,14 @@
1
1
  import { spawn } from 'node:child_process';
2
- import { readFile, readlink, writeFile } from 'node:fs/promises';
3
- import { join } from 'node:path';
2
+ import { readFile, readlink, rm, writeFile } from 'node:fs/promises';
3
+ import { homedir } from 'node:os';
4
+ import { join, resolve } from 'node:path';
4
5
  import { PtbkError, errorMessage } from '../common/errors.js';
5
6
  import { ensureDirectory, pathExists } from '../common/fs.js';
6
- import { shortId } from '../common/ids.js';
7
+ import { shortHash, shortId } from '../common/ids.js';
7
8
  import { isProcessAlive, terminateProcessTree, which } from '../common/process.js';
8
9
  import { setting } from '../project/config.js';
10
+ import { createRedactor } from '../common/redact.js';
11
+ import { promptbookAppData } from '../common/app-data.js';
9
12
  import { BrowserRecorder, cleanStaleRecordings } from './recording.js';
10
13
  /**
11
14
  * Maximal page text returned to an agent.
@@ -15,6 +18,14 @@ const MAX_PAGE_TEXT = 20_000;
15
18
  * How long Chrome may take to expose its DevTools endpoint.
16
19
  */
17
20
  const STARTUP_TIMEOUT_MS = 30_000;
21
+ /**
22
+ * Bounded automatic launch attempts before a failure becomes a visible blocker.
23
+ */
24
+ const LAUNCH_ATTEMPTS = 3;
25
+ /**
26
+ * Delay before an automatic relaunch attempt (doubles per attempt).
27
+ */
28
+ const LAUNCH_RETRY_MS = 3000;
18
29
  /**
19
30
  * Candidate Chrome-compatible executables per platform.
20
31
  */
@@ -48,13 +59,96 @@ export async function findBrowserExecutable(settings, env = process.env) {
48
59
  return undefined;
49
60
  }
50
61
  /**
51
- * Resolves the profile directory: the isolated project profile in `.ptbk/` or an explicitly selected path.
62
+ * Classifies a `browser.profile` value: `global`, `isolated`, `user`, or a custom profile path.
63
+ *
64
+ * @private project browser
65
+ */
66
+ export function browserProfileSource(value) {
67
+ return value === 'global' || value === 'isolated' || value === 'user' ? value : 'custom';
68
+ }
69
+ export { promptbookAppData };
70
+ /**
71
+ * The dedicated Promptbook-managed browser profile shared by this user's projects (not the user's own Chrome profile).
72
+ *
73
+ * @private project browser
74
+ */
75
+ export function globalBrowserProfile(env = process.env) {
76
+ return join(promptbookAppData(env), 'browser-profile');
77
+ }
78
+ /**
79
+ * The user's ordinary Chrome user-data directory on this platform.
52
80
  *
53
81
  * @private project browser
54
82
  */
55
- export function browserProfileDirectory(project, settings) {
83
+ export function userChromeProfile(env = process.env) {
84
+ if (process.platform === 'darwin')
85
+ return join(homedir(), 'Library', 'Application Support', 'Google', 'Chrome');
86
+ if (process.platform === 'win32')
87
+ return join(env.LOCALAPPDATA ?? join(homedir(), 'AppData', 'Local'), 'Google', 'Chrome', 'User Data');
88
+ return join(homedir(), '.config', 'google-chrome');
89
+ }
90
+ /**
91
+ * Resolves the profile directory of the selected source: the managed global profile, the isolated project profile in
92
+ * `.ptbk/`, the user's Chrome profile, or a custom path (relative paths resolve against the project).
93
+ *
94
+ * @private project browser
95
+ */
96
+ export function browserProfileDirectory(project, settings, env = process.env) {
56
97
  const profile = setting(settings, 'browser.profile');
57
- return profile === 'isolated' ? project.runtime.browserProfile : profile;
98
+ switch (browserProfileSource(profile)) {
99
+ case 'global':
100
+ return globalBrowserProfile(env);
101
+ case 'isolated':
102
+ return project.runtime.browserProfile;
103
+ case 'user':
104
+ return userChromeProfile(env);
105
+ case 'custom':
106
+ return resolve(project.root, profile);
107
+ }
108
+ }
109
+ /**
110
+ * Human description of a `browser.profile` value.
111
+ *
112
+ * @private project browser
113
+ */
114
+ export function describeBrowserProfile(value) {
115
+ switch (browserProfileSource(value)) {
116
+ case 'global':
117
+ return 'dedicated Promptbook profile shared by your projects';
118
+ case 'isolated':
119
+ return 'isolated project profile';
120
+ case 'user':
121
+ return 'your Chrome profile';
122
+ case 'custom':
123
+ return `custom profile ${value}`;
124
+ }
125
+ }
126
+ /**
127
+ * Cross-project ownership of a shared profile: one project's automation at a time (`<app data>/locks/`).
128
+ *
129
+ * Returns a release function, or the PID of the live owner when another process holds it.
130
+ */
131
+ async function claimProfile(profileDirectory, project, env) {
132
+ const directory = await ensureDirectory(join(promptbookAppData(env), 'locks'));
133
+ const path = join(directory, `browser-${shortHash(profileDirectory, 16)}.json`);
134
+ for (let attempt = 0; attempt < 2; attempt++) {
135
+ try {
136
+ await writeFile(path, JSON.stringify({ pid: process.pid, project: project.root, profile: profileDirectory, at: new Date().toISOString() }), { flag: 'wx' });
137
+ return { release: async () => await rm(path, { force: true }) };
138
+ }
139
+ catch {
140
+ const holder = await readFile(path, 'utf8')
141
+ .then((text) => JSON.parse(text))
142
+ .catch(() => undefined);
143
+ if (holder?.pid === process.pid)
144
+ return { release: async () => await rm(path, { force: true }) };
145
+ if (holder?.pid && isProcessAlive(holder.pid))
146
+ return { owner: holder.pid, project: holder.project };
147
+ // A stale claim of a process that no longer runs is removed, never a live one.
148
+ await rm(path, { force: true });
149
+ }
150
+ }
151
+ return { owner: -1 };
58
152
  }
59
153
  /**
60
154
  * Checks whether another browser process currently owns a profile (Chrome's singleton lock).
@@ -87,6 +181,7 @@ class CdpConnection {
87
181
  nextId = 1;
88
182
  pending = new Map();
89
183
  listeners = new Set();
184
+ closeListeners = new Set();
90
185
  constructor(socket) {
91
186
  this.socket = socket;
92
187
  socket.addEventListener('message', (event) => {
@@ -109,6 +204,8 @@ class CdpConnection {
109
204
  for (const entry of this.pending.values())
110
205
  entry.reject(new Error('The browser connection closed.'));
111
206
  this.pending.clear();
207
+ for (const listener of [...this.closeListeners])
208
+ listener();
112
209
  });
113
210
  }
114
211
  /** Opens a connection. */
@@ -150,8 +247,13 @@ class CdpConnection {
150
247
  this.listeners.add(listener);
151
248
  return () => this.listeners.delete(listener);
152
249
  }
153
- /** Closes the socket. */
250
+ /** Notifies when the connection closes (browser exit or crash). */
251
+ onClose(listener) {
252
+ this.closeListeners.add(listener);
253
+ }
254
+ /** Closes the socket (an intentional close does not notify close listeners). */
154
255
  close() {
256
+ this.closeListeners.clear();
155
257
  this.socket.close();
156
258
  }
157
259
  }
@@ -164,19 +266,175 @@ export class ProjectBrowser {
164
266
  project;
165
267
  settings;
166
268
  env;
269
+ onChange;
167
270
  child;
271
+ /** Release of the cross-project claim of a shared profile. */
272
+ releaseClaim;
168
273
  connection;
169
274
  sessionId;
170
275
  note;
171
- /** Task-linked recording of browser activity (`traces/<task-id>/video/`). */
276
+ /** A launch in progress (concurrent automatic/manual starts share it: never two owners). */
277
+ launching;
278
+ /** The current task used the browser (a restart waits for the task boundary). */
279
+ usedByTask = false;
280
+ /** A manual restart waits for the current task to release the browser. */
281
+ pendingRestart = false;
282
+ /** Observed health, diagnostics and recovery. */
283
+ health = { state: 'not-started', ownership: { state: 'unknown' }, recovery: { attempts: 0, state: 'idle' } };
284
+ /** Task-linked recording of browser activity (`traces/<task-file-basename>/video/`). */
172
285
  recorder;
173
- constructor(project, settings, env) {
286
+ constructor(project, settings, env,
287
+ /** Publishes health changes to every view. */
288
+ onChange = () => undefined) {
174
289
  this.project = project;
175
290
  this.settings = settings;
176
291
  this.env = env;
292
+ this.onChange = onChange;
177
293
  this.recorder = new BrowserRecorder(project, () => setting(this.settings(), 'traces.recordVideo'), env);
178
294
  void cleanStaleRecordings(project);
179
295
  }
296
+ /** Updates the observed health and notifies the views. */
297
+ setHealth(changes) {
298
+ this.health = { ...this.health, ...changes, checkedAt: new Date().toISOString() };
299
+ this.onChange();
300
+ }
301
+ /** Records a real launch/connection failure with redacted evidence. */
302
+ recordFailure(error) {
303
+ const redact = createRedactor();
304
+ const details = error instanceof PtbkError ? error.details : undefined;
305
+ this.setHealth({ lastFailure: { at: new Date().toISOString(), summary: redact(errorMessage(error)), evidence: details?.reason ? redact(details.reason) : undefined } });
306
+ }
307
+ /**
308
+ * The browser as the engine sees it: effective profile source and resolved path, requested/actual mode, health,
309
+ * ownership, last failure and recovery. A profile path is diagnostic data, never permission to read its contents.
310
+ */
311
+ inspect() {
312
+ const settings = this.settings();
313
+ const profile = setting(settings, 'browser.profile');
314
+ const profilePath = browserProfileDirectory(this.project, settings, this.env);
315
+ const source = browserProfileSource(profile);
316
+ const overridden = ['cli', 'runtime'].includes(settings.sources['browser.profile'] ?? 'default');
317
+ const active = this.health.profilePath && this.child && this.health.profilePath !== profilePath ? this.health.profilePath : undefined;
318
+ return {
319
+ source,
320
+ sourceLabel: describeBrowserProfile(profile),
321
+ profilePath: active ?? profilePath,
322
+ savedProfile: overridden ? `overridden for this process (${settings.sources['browser.profile']}); the saved default stays in ptbk.json` : undefined,
323
+ pending: active ? `The selected profile changes to ${profilePath} at the next task boundary (after the browser restarts).` : this.pendingRestart ? 'A browser restart waits for the current task to release the browser.' : undefined,
324
+ mode: { requested: setting(settings, 'browser.mode') === 'headful' ? 'headful' : 'headless', actual: this.child ? this.health.actualMode : undefined, note: this.note },
325
+ executable: this.health.executable,
326
+ state: this.health.state,
327
+ pid: this.child?.pid,
328
+ ownership: this.health.ownership,
329
+ lastFailure: this.health.lastFailure,
330
+ recovery: this.health.recovery,
331
+ lastAction: this.health.lastAction,
332
+ checkedAt: this.health.checkedAt,
333
+ };
334
+ }
335
+ /** Records the outcome of a manual browser action. */
336
+ acted(action, state, outcome) {
337
+ this.setHealth({ lastAction: { action, at: new Date().toISOString(), outcome, state } });
338
+ return { action: `browser-${action}`, outcome, applied: state !== 'failed', completed: state === 'succeeded' };
339
+ }
340
+ /**
341
+ * Diagnostic recheck (no launch, no change): browser executable, profile existence and ownership, and the live
342
+ * connection when the browser runs.
343
+ */
344
+ async recheck() {
345
+ const settings = this.settings();
346
+ const findings = [];
347
+ const executable = await findBrowserExecutable(settings, this.env);
348
+ findings.push(executable ? `browser ${executable}` : 'no Chrome-compatible browser installed');
349
+ const profile = browserProfileDirectory(this.project, settings, this.env);
350
+ const source = browserProfileSource(setting(settings, 'browser.profile'));
351
+ const exists = await pathExists(profile);
352
+ findings.push(exists ? `profile ${profile}` : source === 'user' || source === 'custom' ? `profile ${profile} does not exist` : `profile ${profile} is created on first use`);
353
+ const holder = this.child ? undefined : await profileOwner(profile);
354
+ const ownership = this.child ? { state: 'owned' } : holder ? { state: 'busy', holder: `browser PID ${holder}` } : { state: 'free' };
355
+ if (holder)
356
+ findings.push(`profile in use by browser PID ${holder}`);
357
+ let state = this.health.state;
358
+ if (this.connection) {
359
+ try {
360
+ await Promise.race([this.connection.send('Browser.getVersion'), new Promise((_, reject) => setTimeout(() => reject(new Error('no answer within 5 s')), 5000))]);
361
+ state = 'running';
362
+ findings.push('connection healthy');
363
+ }
364
+ catch (error) {
365
+ this.connectionLost(`The browser stopped answering: ${errorMessage(error)}`);
366
+ state = 'failed';
367
+ findings.push('connection lost (the next use relaunches it)');
368
+ }
369
+ }
370
+ else if (state === 'running')
371
+ state = 'stopped';
372
+ this.setHealth({ state, executable: executable ?? undefined, ownership });
373
+ const healthy = Boolean(executable) && (exists || source === 'global' || source === 'isolated') && !holder && state !== 'failed';
374
+ return this.acted('recheck', healthy ? 'succeeded' : 'failed', `${healthy ? 'Browser diagnostics OK' : 'Browser problem found'}: ${findings.join('; ')}.`);
375
+ }
376
+ /** Retries browser startup now (sharing any launch already in progress); a shared profile is released again when idle. */
377
+ async retry() {
378
+ if (this.connection && this.sessionId)
379
+ return this.acted('retry', 'succeeded', 'The project browser is already running.');
380
+ this.setHealth({ recovery: { ...this.health.recovery, attempts: 0, state: 'retrying' } });
381
+ try {
382
+ await this.ensure();
383
+ }
384
+ catch (error) {
385
+ return this.acted('retry', 'failed', `Startup failed: ${errorMessage(error)}`);
386
+ }
387
+ if (!this.usedByTask)
388
+ this.releaseShared();
389
+ return this.acted('retry', 'succeeded', this.child ? 'The project browser started.' : 'The project browser started successfully and was released again (shared profile, no task needs it now).');
390
+ }
391
+ /**
392
+ * Restarts only this project's own browser process, preserving the selected profile and its sessions. While a task
393
+ * uses the browser the restart waits for that task's boundary instead of breaking its work.
394
+ */
395
+ async restart() {
396
+ if (this.usedByTask) {
397
+ this.pendingRestart = true;
398
+ return this.acted('restart', 'deferred', 'The current task is using the browser; the restart happens when it finishes.');
399
+ }
400
+ return await this.restartNow();
401
+ }
402
+ /** Performs a restart at a safe boundary. */
403
+ async restartNow() {
404
+ this.pendingRestart = false;
405
+ const wasRunning = Boolean(this.child);
406
+ this.close();
407
+ const shared = browserProfileSource(setting(this.settings(), 'browser.profile')) !== 'isolated';
408
+ if (shared)
409
+ return this.acted('restart', 'succeeded', wasRunning ? 'Closed this project’s browser; the next use starts it again with the same profile.' : 'The browser was not running; the next use starts it with the same profile.');
410
+ try {
411
+ await this.ensure();
412
+ return this.acted('restart', 'succeeded', 'Restarted the project browser with the same profile.');
413
+ }
414
+ catch (error) {
415
+ return this.acted('restart', 'failed', `The browser did not start again: ${errorMessage(error)}`);
416
+ }
417
+ }
418
+ /** After a task: performs a deferred restart and releases a shared profile. */
419
+ async taskFinished() {
420
+ this.usedByTask = false;
421
+ if (this.pendingRestart)
422
+ await this.restartNow().catch(() => undefined);
423
+ this.releaseShared();
424
+ }
425
+ /** Handles a lost connection: stops only this project's browser process; the next use relaunches it. */
426
+ connectionLost(reason) {
427
+ this.navigationListener?.();
428
+ this.navigationListener = undefined;
429
+ this.connection = undefined;
430
+ this.sessionId = undefined;
431
+ if (this.child)
432
+ terminateProcessTree(this.child);
433
+ this.child = undefined;
434
+ void this.releaseProfile();
435
+ this.recordFailure(new PtbkError('The connection to the project browser was lost.', { kind: 'technical', reason }));
436
+ this.setHealth({ state: 'failed', recovery: { ...this.health.recovery, state: 'retrying' } });
437
+ }
180
438
  /** Associates subsequent browser use with a task attempt for recording. */
181
439
  async useFor(trace, attempt) {
182
440
  await this.recorder.attach(trace, attempt);
@@ -186,6 +444,7 @@ export class ProjectBrowser {
186
444
  /** Ensures the browser runs and recording of the attached task has begun. */
187
445
  async active() {
188
446
  const target = await this.ensure();
447
+ this.usedByTask = true;
189
448
  // Page transitions (including link clicks and redirects) are listed with the recording segment.
190
449
  this.navigationListener ??= target.connection.on((message) => {
191
450
  if (message.method !== 'Page.frameNavigated' || message.sessionId !== target.sessionId)
@@ -206,16 +465,72 @@ export class ProjectBrowser {
206
465
  await this.recorder.begin(port);
207
466
  return target;
208
467
  }
209
- /** Launches (or reuses) the browser and attaches to one page. */
468
+ /**
469
+ * Launches (or reuses) the browser and attaches to one page. A technical launch failure is retried automatically
470
+ * within a bound; concurrent callers share one launch, so automatic and manual recovery never start two owners.
471
+ */
210
472
  async ensure() {
211
473
  if (this.connection && this.sessionId)
212
474
  return { connection: this.connection, sessionId: this.sessionId };
475
+ this.launching ??= this.launchWithRecovery().finally(() => {
476
+ this.launching = undefined;
477
+ });
478
+ return await this.launching;
479
+ }
480
+ /** Bounded automatic launch recovery with recorded attempts, causes and next retry. */
481
+ async launchWithRecovery() {
482
+ for (let attempt = 1;; attempt++) {
483
+ this.setHealth({ state: this.health.lastFailure ? 'recovering' : 'starting', recovery: { ...this.health.recovery, attempts: attempt - 1 } });
484
+ try {
485
+ const target = await this.launchOnce();
486
+ this.setHealth({ state: 'running', ownership: { state: 'owned' }, recovery: { attempts: 0, state: 'idle' } });
487
+ return target;
488
+ }
489
+ catch (error) {
490
+ this.recordFailure(error);
491
+ const kind = error instanceof PtbkError ? error.details.kind : 'technical';
492
+ if (kind !== 'technical' || attempt >= LAUNCH_ATTEMPTS) {
493
+ this.setHealth({ state: 'failed', recovery: { attempts: attempt, state: 'blocked', blocker: kind === 'conflict' ? 'The profile is in use by another owner; ptbk retries when a task needs the browser.' : kind === 'technical' ? `Startup failed ${attempt} times; the next task use retries.` : 'Needs setup: see the last failure.' } });
494
+ throw error;
495
+ }
496
+ const delay = LAUNCH_RETRY_MS * 2 ** (attempt - 1);
497
+ this.setHealth({ state: 'recovering', recovery: { attempts: attempt, state: 'retrying', nextRetryAt: new Date(Date.now() + delay).toISOString() } });
498
+ await new Promise((resolve) => setTimeout(resolve, delay));
499
+ }
500
+ }
501
+ }
502
+ /** One launch attempt of the configured browser and profile. */
503
+ async launchOnce() {
213
504
  const settings = this.settings();
214
505
  const executable = await findBrowserExecutable(settings, this.env);
215
506
  if (!executable)
216
507
  throw new PtbkError('No Chrome-compatible browser is installed.', { kind: 'setup', next: ['Install Google Chrome or Chromium, or set ptbk.json browser.executable.'] });
217
- const profile = browserProfileDirectory(this.project, settings);
218
- await ensureDirectory(profile);
508
+ const source = browserProfileSource(setting(settings, 'browser.profile'));
509
+ const profile = browserProfileDirectory(this.project, settings, this.env);
510
+ this.health = { ...this.health, executable, profilePath: profile };
511
+ if (source === 'user' || source === 'custom') {
512
+ // An existing profile is reused as it is; it is never created, copied or migrated implicitly.
513
+ if (!(await pathExists(profile)))
514
+ throw new PtbkError(`The selected browser profile ${profile} does not exist.`, { kind: 'configuration', next: ['Choose another profile in ptbk.json `browser.profile` (global, isolated, user or a path), or pass --browser-profile.'] });
515
+ }
516
+ else
517
+ await ensureDirectory(profile);
518
+ if (source !== 'isolated') {
519
+ let claim = await claimProfile(profile, this.project, this.env);
520
+ for (let attempt = 0; 'owner' in claim && attempt < 10; attempt++) {
521
+ await new Promise((resolve) => setTimeout(resolve, 2000));
522
+ claim = await claimProfile(profile, this.project, this.env);
523
+ }
524
+ if ('owner' in claim) {
525
+ this.setHealth({ ownership: { state: 'busy', holder: `${claim.project ? `project ${claim.project}, ` : ''}PID ${claim.owner}` } });
526
+ throw new PtbkError(`The shared browser profile is in use by another Promptbook project${claim.project ? ` (${claim.project})` : ''}.`, {
527
+ kind: 'conflict',
528
+ reason: `One project automates a shared profile at a time; PID ${claim.owner} holds ${profile}.`,
529
+ next: ['The other project releases it after its current task; ptbk retries later. Choose an isolated profile to avoid waiting.'],
530
+ });
531
+ }
532
+ this.releaseClaim = claim.release;
533
+ }
219
534
  let owner = await profileOwner(profile);
220
535
  // Ownership is often transient (a browser still shutting down): recheck briefly before involving a person.
221
536
  for (let attempt = 0; owner && attempt < 10; attempt++) {
@@ -223,6 +538,8 @@ export class ProjectBrowser {
223
538
  owner = await profileOwner(profile);
224
539
  }
225
540
  if (owner) {
541
+ await this.releaseProfile();
542
+ this.setHealth({ ownership: { state: 'busy', holder: `browser PID ${owner}` } });
226
543
  throw new PtbkError(`The browser profile ${profile} is in use by another browser (PID ${owner}).`, {
227
544
  kind: 'conflict',
228
545
  next: ['Close that browser to hand the profile over, or choose another profile (ptbk.json browser.profile).'],
@@ -236,6 +553,18 @@ export class ProjectBrowser {
236
553
  const activePortFile = join(profile, 'DevToolsActivePort');
237
554
  await writeFile(activePortFile, '').catch(() => undefined);
238
555
  const args = [`--user-data-dir=${profile}`, '--remote-debugging-port=0', '--no-first-run', '--no-default-browser-check', '--disable-background-networking', ...(headless ? ['--headless=new'] : []), 'about:blank'];
556
+ this.health = { ...this.health, actualMode: headless ? 'headless' : 'headful' };
557
+ try {
558
+ return await this.launch(executable, args, activePortFile, headless);
559
+ }
560
+ catch (error) {
561
+ // A browser that did not come up is stopped and a shared profile is released again.
562
+ this.close();
563
+ throw error;
564
+ }
565
+ }
566
+ /** Starts the browser process and attaches to one page. */
567
+ async launch(executable, args, activePortFile, headless) {
239
568
  this.child = spawn(executable, args, { stdio: 'ignore', windowsHide: headless, detached: process.platform !== 'win32' });
240
569
  this.child.unref();
241
570
  const deadline = Date.now() + STARTUP_TIMEOUT_MS;
@@ -252,6 +581,7 @@ export class ProjectBrowser {
252
581
  throw new PtbkError('The browser did not start in time.', { kind: 'technical', reason: `No DevTools port appeared in ${activePortFile} within ${STARTUP_TIMEOUT_MS / 1000}s.` });
253
582
  const version = (await (await fetch(`http://127.0.0.1:${port}/json/version`)).json());
254
583
  const connection = await CdpConnection.open(version.webSocketDebuggerUrl);
584
+ connection.onClose(() => this.connectionLost('The browser process exited or closed its DevTools connection.'));
255
585
  const targets = (await connection.send('Target.getTargets')).targetInfos;
256
586
  const page = targets.find((target) => target.type === 'page') ?? { targetId: String((await connection.send('Target.createTarget', { url: 'about:blank' })).targetId), type: 'page' };
257
587
  const sessionId = String((await connection.send('Target.attachToTarget', { targetId: page.targetId, flatten: true })).sessionId);
@@ -360,9 +690,30 @@ export class ProjectBrowser {
360
690
  this.connection?.close();
361
691
  this.connection = undefined;
362
692
  this.sessionId = undefined;
693
+ const wasRunning = Boolean(this.child);
363
694
  if (this.child)
364
695
  terminateProcessTree(this.child);
365
696
  this.child = undefined;
697
+ void this.releaseProfile();
698
+ if (wasRunning)
699
+ this.setHealth({ state: 'stopped', ownership: { state: 'free' } });
700
+ }
701
+ /** Releases this project's claim of a shared profile. */
702
+ async releaseProfile() {
703
+ const release = this.releaseClaim;
704
+ this.releaseClaim = undefined;
705
+ await release?.().catch(() => undefined);
706
+ }
707
+ /**
708
+ * After a task: a browser on a shared profile (global, user or custom) is closed so other projects can use the
709
+ * profile; the isolated project profile stays open for the next task.
710
+ */
711
+ releaseShared() {
712
+ if (!this.child && !this.releaseClaim)
713
+ return;
714
+ if (browserProfileSource(setting(this.settings(), 'browser.profile')) === 'isolated')
715
+ return;
716
+ this.close();
366
717
  }
367
718
  }
368
719
  /**
@@ -370,7 +721,7 @@ export class ProjectBrowser {
370
721
  *
371
722
  * @private project browser
372
723
  */
373
- export function browserTools(browser, requests, task, onUserRequest) {
724
+ export function browserTools(browser, chats, agent, onUserChat) {
374
725
  const run = async (action) => {
375
726
  try {
376
727
  return { text: await action() };
@@ -415,18 +766,18 @@ export function browserTools(browser, requests, task, onUserRequest) {
415
766
  description: 'Only when a website genuinely requires a human-only step (sign-in, two-factor authentication, consent) that the existing session cannot satisfy: ask the human to act in the shared browser. Then end your turn with status waiting-for-user.',
416
767
  inputSchema: { type: 'object', properties: { reason: { type: 'string' } }, required: ['reason'] },
417
768
  handler: (input) => run(async () => {
769
+ if (!chats)
770
+ throw new PtbkError('The user is not available in this run; report blocked with the reason instead.', { kind: 'unsupported' });
418
771
  const note = await browser.bringToFront();
419
- const request = await requests.create({
420
- kind: 'action',
772
+ const chat = await chats.askUser({
773
+ agent,
421
774
  reason: String(input.reason ?? 'A website needs your action in the project browser.'),
422
- question: `Complete the action in the project browser${note ? ` (${note})` : ''}, then confirm.`,
423
- attempted: 'The task used the existing session of the shared project browser; the website still requires this human-only step.',
775
+ attempted: 'I used the existing session of the shared project browser; the website still requires this human-only step.',
776
+ question: `Please complete the action in the project browser${note ? ` (${note})` : ''}, then confirm here.`,
424
777
  choices: ['Done', 'I cannot do it'],
425
- origin: { kind: 'browser', taskRef: task.ref, taskId: task.id, taskTitle: task.title, agent: task.agent },
426
- blocking: true,
427
778
  });
428
- onUserRequest(request);
429
- return `Created user request ${request.id}. End your turn now with status waiting-for-user.`;
779
+ onUserChat(chat);
780
+ return `The request is in the chat {{${chat.chat}}}, waiting for the user. End your turn now with status waiting-for-user.`;
430
781
  }),
431
782
  },
432
783
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/browser/browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/browser/browser.ts"],"names":[],"mappings":"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"}