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,320 @@
1
+ import { EXIT, PtbkError, usageError } from '../../common/errors.js';
2
+ import { loadSettings, setting } from '../../project/config.js';
3
+ import { inspectGit, snapshotDirty } from '../../project/git.js';
4
+ import { SyncCoordinator } from '../../engine/sync.js';
5
+ import { maintainProjectConfiguration } from '../../project/configuration.js';
6
+ import { HarnessPool } from '../../engine/harnesses.js';
7
+ import { lookupService } from '../../service/control.js';
8
+ import { applyToolOperation, commandOf } from '../../tools/operations.js';
9
+ import { inspectInventory } from '../../tools/readiness.js';
10
+ import { confirm } from '../../ui/prompts.js';
11
+ import { readConcealed } from '../../ui/secret.js';
12
+ import { symbols } from '../../ui/terminal.js';
13
+ import { printJson, readStdin, selectedProject } from '../common.js';
14
+ import { flag, option } from '../context.js';
15
+ /**
16
+ * Width of the field labels of `ptbk tool show`.
17
+ */
18
+ const FIELD_LABEL_WIDTH = 12;
19
+ /**
20
+ * How long a tool operation routed through the running engine may take (it can wait for the Git lock of a commit).
21
+ */
22
+ const TOOL_OPERATION_TIMEOUT_MS = 120_000;
23
+ /**
24
+ * Reads a secret without echoing it (concealed terminal input) or from piped standard input.
25
+ */
26
+ async function readSecret(context, variable) {
27
+ if (!process.stdin.isTTY)
28
+ return (await readStdin()).replace(/\r?\n$/, '');
29
+ return await readConcealed(context.terminal, `Value of ${variable}`);
30
+ }
31
+ /**
32
+ * Parses a `true`/`false` option value.
33
+ */
34
+ function booleanOption(context, name) {
35
+ const value = option(context, name);
36
+ if (value === undefined)
37
+ return undefined;
38
+ if (/^(true|yes|1)$/i.test(value))
39
+ return true;
40
+ if (/^(false|no|0)$/i.test(value))
41
+ return false;
42
+ throw usageError(`--${name} expects true or false (got "${value}").`, context.path.join(' '));
43
+ }
44
+ /**
45
+ * Field options shared by add and modify (tolerant enum input; canonical values are saved).
46
+ */
47
+ function fieldOptions(context) {
48
+ const models = option(context, 'models');
49
+ return {
50
+ ...(option(context, 'variant') !== undefined ? { variant: option(context, 'variant') } : {}),
51
+ ...(option(context, 'description') !== undefined ? { description: option(context, 'description') } : {}),
52
+ ...(option(context, 'profile-source') !== undefined ? { profileSource: option(context, 'profile-source') } : {}),
53
+ ...(option(context, 'profile-path') !== undefined ? { profilePath: option(context, 'profile-path') } : {}),
54
+ ...(booleanOption(context, 'is-headless') !== undefined ? { isHeadless: booleanOption(context, 'is-headless') } : {}),
55
+ ...(option(context, 'executable') !== undefined ? { executable: option(context, 'executable') } : {}),
56
+ ...(option(context, 'authentication') !== undefined ? { authentication: option(context, 'authentication') } : {}),
57
+ ...(option(context, 'api-key-env') !== undefined ? { apiKeyEnv: option(context, 'api-key-env') } : {}),
58
+ ...(option(context, 'account-profile') !== undefined ? { accountProfile: option(context, 'account-profile') } : {}),
59
+ ...(option(context, 'model') !== undefined ? { model: option(context, 'model') } : {}),
60
+ ...(option(context, 'thinking-level') !== undefined ? { thinkingLevel: option(context, 'thinking-level') } : {}),
61
+ ...(models !== undefined ? { models: models.split(',').map((model) => model.trim()).filter(Boolean) } : {}),
62
+ };
63
+ }
64
+ /**
65
+ * The operation an invocation describes.
66
+ */
67
+ function operationOf(context) {
68
+ const sub = context.path[1];
69
+ const [first, second] = context.positionals;
70
+ const name = () => {
71
+ if (!first)
72
+ throw usageError(`ptbk tool ${sub} needs the tool name.`, context.path.join(' '));
73
+ return first;
74
+ };
75
+ switch (sub) {
76
+ case 'add': {
77
+ if (!first)
78
+ throw usageError('ptbk tool add needs the tool type (BROWSER or HARNESS).', context.path.join(' '));
79
+ const variant = option(context, 'variant');
80
+ const toolName = option(context, 'name') ?? second;
81
+ if (!variant)
82
+ throw usageError('ptbk tool add needs --variant (e.g. CHROME or OPENAI_CODEX).', context.path.join(' '));
83
+ if (!toolName)
84
+ throw usageError('ptbk tool add needs --name (a kebab-case identifier such as work-browser).', context.path.join(' '));
85
+ const { variant: _variant, ...fields } = fieldOptions(context);
86
+ void _variant;
87
+ return { kind: 'add', tool: { type: first, variant, name: toolName, ...fields }, before: option(context, 'before'), after: option(context, 'after') };
88
+ }
89
+ case 'modify': {
90
+ const fields = fieldOptions(context);
91
+ const changes = {
92
+ ...fields,
93
+ ...(flag(context, 'clear-description') ? { description: null } : {}),
94
+ ...(flag(context, 'clear-model') ? { model: null } : {}),
95
+ ...(flag(context, 'clear-executable') ? { executable: null } : {}),
96
+ };
97
+ const rename = option(context, 'rename');
98
+ if (!Object.keys(changes).length && !rename && !flag(context, 'api-key-stdin'))
99
+ throw usageError('Nothing to modify: give the fields to change (see `ptbk tool modify --help`).', context.path.join(' '));
100
+ return { kind: 'modify', name: name(), changes, rename };
101
+ }
102
+ case 'enable':
103
+ case 'disable':
104
+ return { kind: sub, name: name() };
105
+ case 'remove':
106
+ case 'delete':
107
+ return { kind: 'remove', name: name() };
108
+ case 'move': {
109
+ const before = option(context, 'before');
110
+ const after = option(context, 'after');
111
+ if (!before && !after)
112
+ throw usageError('ptbk tool move needs --before <other> or --after <other>.', context.path.join(' '));
113
+ return { kind: 'move', name: name(), before, after };
114
+ }
115
+ default:
116
+ throw usageError(`Unknown tool subcommand "${sub ?? ''}".`, 'tool');
117
+ }
118
+ }
119
+ /**
120
+ * The tool inventory: from the running engine (live in-use state) or inspected locally (read-only).
121
+ */
122
+ async function inventory(context, project) {
123
+ const lookup = await lookupService(project);
124
+ if (lookup.state === 'running' && lookup.engine.compatible) {
125
+ const snapshot = await lookup.client.request('snapshot');
126
+ if (snapshot.tools)
127
+ return { view: snapshot.tools, live: true, current: snapshot.current };
128
+ }
129
+ const settings = await loadSettings(project, { env: context.env });
130
+ return { view: await inspectInventory(project, settings, context.env, new HarnessPool(project.root, settings, context.env)), live: false };
131
+ }
132
+ /**
133
+ * One inventory row.
134
+ */
135
+ function row(context, item) {
136
+ const { style } = context.terminal;
137
+ const marks = symbols(context.terminal.unicode);
138
+ const mark = item.state === 'usable' ? style.success(marks.ok) : item.state === 'disabled' ? style.muted('–') : item.state === 'unknown' ? style.muted('?') : style.warning(marks.warn);
139
+ const flags = [item.isEnabled ? 'enabled' : 'disabled', item.inUse ? 'in use' : '', item.retained ? 'retained by current work' : '', item.overridden ? 'overridden for this invocation' : ''].filter(Boolean).join(', ');
140
+ return `${String(item.order).padStart(2)}. ${mark} ${style.bold(item.name)} ${style.muted(`${item.type} ${item.variant}`)} · ${flags}${item.description ? style.muted(` · ${item.description}`) : ''}\n ${item.summary}${item.nextAction && item.state !== 'usable' ? style.muted(` → ${item.nextAction}`) : ''}`;
141
+ }
142
+ /**
143
+ * `ptbk tool list`: the ordered inventory with enabled, usable and in-use state (read-only).
144
+ *
145
+ * @private command
146
+ */
147
+ export async function list(context) {
148
+ const project = await selectedProject(context);
149
+ const { view, live } = await inventory(context, project);
150
+ if (flag(context, 'json')) {
151
+ printJson({ ...view, source: live ? 'running engine' : 'local inspection' });
152
+ return EXIT.success;
153
+ }
154
+ const lines = [`Tools of ${project.root} (${live ? 'live from the running engine' : 'inspected now; no engine is running'}):`];
155
+ if (!view.items.length)
156
+ lines.push(' No tools are configured. Add one with `ptbk tool add BROWSER …` or `ptbk tool add HARNESS …`.');
157
+ for (const item of view.items)
158
+ lines.push(row(context, item));
159
+ for (const problem of view.problems)
160
+ lines.push(context.terminal.style.warning(`Problem: ${problem}`));
161
+ if (view.waiting)
162
+ lines.push(context.terminal.style.warning(`New work waits for tools: ${view.waiting.reason} → ${view.waiting.action}`));
163
+ context.terminal.write(`${lines.join('\n')}\n`);
164
+ return EXIT.success;
165
+ }
166
+ /**
167
+ * `ptbk tool show <name>`: non-secret configuration and actual diagnostics of one instance (read-only).
168
+ *
169
+ * @private command
170
+ */
171
+ export async function show(context) {
172
+ const project = await selectedProject(context);
173
+ const name = context.positionals[0];
174
+ if (!name)
175
+ throw usageError('ptbk tool show needs the tool name.', 'tool show');
176
+ const { view, live, current } = await inventory(context, project);
177
+ const item = view.items.find((candidate) => candidate.name === name);
178
+ if (!item)
179
+ throw new PtbkError(`No tool is named "${name}".`, { kind: 'not-found', next: [view.items.length ? `Configured tools: ${view.items.map((candidate) => candidate.name).join(', ')}.` : 'Add one with `ptbk tool add`.'] });
180
+ if (flag(context, 'json')) {
181
+ printJson(item);
182
+ return EXIT.success;
183
+ }
184
+ const lines = [
185
+ `${item.name} — ${item.variantLabel} (${item.type} ${item.variant}), position ${item.order}`,
186
+ ...(item.description ? [`Description ${item.description}`] : []),
187
+ `Enabled ${item.isEnabled ? 'yes' : 'no (configuration and credentials are kept)'}`,
188
+ `State ${item.state} — ${item.summary}`,
189
+ ...(item.nextAction && item.state !== 'usable' ? [`Next action ${item.nextAction}`] : []),
190
+ `In use ${item.inUse ? `yes${current?.tool === item.name ? ` (by "${current.taskTitle}")` : ''}` : live ? 'no' : 'no engine is running'}${item.retained ? ' · the current work keeps its acquired configuration' : ''}`,
191
+ ...Object.entries(item.fields).map(([key, value]) => `${key.padEnd(FIELD_LABEL_WIDTH)} ${value}`),
192
+ ];
193
+ context.terminal.write(`${lines.join('\n')}\n`);
194
+ return EXIT.success;
195
+ }
196
+ /**
197
+ * Prints an operation outcome; returns the exit code.
198
+ */
199
+ function report(context, operation, outcome) {
200
+ const { terminal } = context;
201
+ const marks = symbols(terminal.unicode);
202
+ if (flag(context, 'json')) {
203
+ printJson(outcome);
204
+ return outcome.status === 'needs-acknowledgement' ? EXIT.incomplete : EXIT.success;
205
+ }
206
+ if (outcome.status === 'needs-acknowledgement') {
207
+ const lines = [terminal.style.warning(`${marks.warn} Nothing was changed.`)];
208
+ for (const requirement of outcome.requirements) {
209
+ lines.push(requirement.message);
210
+ lines.push(requirement.kind === 'in-use' ? 'Choose one:' : 'To proceed:');
211
+ requirement.alternatives.forEach((alternative, index) => lines.push(` ${requirement.alternatives.length > 1 ? `${index + 1}. ` : ''}${alternative}`));
212
+ }
213
+ if (outcome.requirements.length > 1)
214
+ lines.push(terminal.style.muted('Both acknowledgements are required: --yes does not imply --force, and --force does not waive the last-tool warning.'));
215
+ terminal.write(`${lines.join('\n')}\n`);
216
+ return EXIT.incomplete;
217
+ }
218
+ const head = outcome.status === 'no-op' ? `${marks.ok} ${outcome.summary}` : `${terminal.style.success(marks.ok)} ${outcome.summary}${outcome.commit ? ` — committed ${outcome.commit.slice(0, 8)}` : ''}`;
219
+ terminal.write(`${[head, ...outcome.notes.map((note) => terminal.style.muted(` ${note}`))].join('\n')}\n`);
220
+ void operation;
221
+ return EXIT.success;
222
+ }
223
+ /**
224
+ * Runs one saved operation: through the running engine (coordinated ownership, live in-use state) or, without one,
225
+ * through the same shared implementation directly. Interactive terminals confirm a required acknowledgement once.
226
+ */
227
+ async function apply(context) {
228
+ if (context.explicit.has('commit'))
229
+ throw usageError('Saved tool management always commits its own change; --commit/--no-commit do not apply.', context.path.join(' '));
230
+ const project = await selectedProject(context);
231
+ const operation = operationOf(context);
232
+ const request = {
233
+ operation,
234
+ acknowledgements: { force: flag(context, 'force') === true, confirmLastOfType: flag(context, 'yes') === true },
235
+ via: 'cli',
236
+ };
237
+ if (flag(context, 'api-key-stdin')) {
238
+ const variable = option(context, 'api-key-env') ?? (operation.kind === 'modify' ? await existingReference(context, project, operation.name) : undefined);
239
+ if (!variable)
240
+ throw usageError('--api-key-stdin needs --api-key-env NAME (the variable that will hold the key in .env).', context.path.join(' '));
241
+ if (operation.kind === 'modify' && !option(context, 'api-key-env'))
242
+ operation.changes.apiKeyEnv = variable;
243
+ const value = await readSecret(context, variable);
244
+ if (!value)
245
+ throw usageError('No secret was supplied; nothing was changed.', context.path.join(' '));
246
+ request.secret = { variable, value };
247
+ }
248
+ for (let round = 0; round < 3; round++) {
249
+ const outcome = await execute(context, project, request);
250
+ if (outcome.status !== 'needs-acknowledgement' || !context.terminal.interactive || flag(context, 'json'))
251
+ return report(context, operation, outcome);
252
+ // Interactive: the last-of-type warning can be confirmed here; an in-use tool still needs the explicit choice.
253
+ const lastOfType = outcome.requirements.find((requirement) => requirement.kind === 'last-of-type');
254
+ if (!lastOfType || outcome.requirements.some((requirement) => requirement.kind === 'in-use'))
255
+ return report(context, operation, outcome);
256
+ const answer = await confirm(context.terminal, { frame: { title: 'ptbk tool', step: commandOf(operation) }, question: `${lastOfType.message} Continue?`, defaultYes: false });
257
+ if (answer !== true) {
258
+ context.terminal.write('Nothing was changed.\n');
259
+ return EXIT.incomplete;
260
+ }
261
+ request.acknowledgements = { ...request.acknowledgements, confirmLastOfType: true };
262
+ }
263
+ return EXIT.incomplete;
264
+ }
265
+ /**
266
+ * The current `apiKey` variable of a harness tool.
267
+ */
268
+ async function existingReference(context, project, name) {
269
+ const settings = await loadSettings(project, { env: context.env });
270
+ const tool = settings.tools.find((candidate) => candidate.name === name);
271
+ return tool?.type === 'HARNESS' ? /env\.([A-Za-z_][A-Za-z0-9_]*)/.exec(tool.apiKey ?? '')?.[1] : undefined;
272
+ }
273
+ /**
274
+ * Executes a request with the right owner.
275
+ */
276
+ async function execute(context, project, request) {
277
+ const lookup = await lookupService(project);
278
+ if (lookup.state === 'running') {
279
+ if (!lookup.engine.compatible) {
280
+ throw new PtbkError(`The running engine (ptbk ${lookup.engine.version}) cannot apply tool changes from this ptbk.`, { kind: 'unsupported', project: project.root, next: [`Use its own CLI (npx ptbk@${lookup.engine.version} tool …), or restart it with this version.`] });
281
+ }
282
+ return await lookup.client.request('tool-operation', request, TOOL_OPERATION_TIMEOUT_MS);
283
+ }
284
+ if (lookup.state === 'unreachable')
285
+ throw new PtbkError('A ptbk service owns this project but is not reachable.', { kind: 'conflict', project: project.root, reason: lookup.reason, effect: 'Nothing was changed.', next: ['Run `ptbk status`, or stop the service first.'] });
286
+ // Without a running engine the same implementation runs here, after the required committed configuration pass.
287
+ await maintainProjectConfiguration(project, { commit: true, env: context.env });
288
+ const settings = await loadSettings(project, { env: context.env });
289
+ const gitInfo = await inspectGit(project.root);
290
+ let sync;
291
+ if (setting(settings, 'isAutoSync') && gitInfo.state === 'repository') {
292
+ // The same coordinator as the engine's: attempts around this operation's commit, never prerequisites.
293
+ const coordinator = new SyncCoordinator({
294
+ repositoryRoot: () => gitInfo.root,
295
+ env: context.env,
296
+ gitLock: async (action) => await action(),
297
+ enabled: () => true,
298
+ integrationBlocker: async (files) => {
299
+ const dirty = await snapshotDirty(project.root, gitInfo.root);
300
+ const overlap = files.filter((file) => Object.keys(dirty).some((path) => path.endsWith(file)));
301
+ return overlap.length ? `uncommitted local changes of ${overlap.join(', ')} are preserved` : undefined;
302
+ },
303
+ onConflict: async (conflict) => context.terminal.write(`Synchronization conflict with ${conflict.upstream} (${conflict.files.join(', ')}); the local branch is unchanged. The running engine hands it to Fixer.\n`),
304
+ onIntegrated: async () => undefined,
305
+ onChange: () => undefined,
306
+ log: (text, level) => level !== 'info' && context.terminal.write(`${text}\n`),
307
+ });
308
+ sync = { before: async () => void (await coordinator.request('boundary')), after: async () => void (await coordinator.request('post-commit')) };
309
+ }
310
+ return await applyToolOperation(project, request, { env: context.env, sync, timeZone: setting(settings, 'timezone') });
311
+ }
312
+ /**
313
+ * `ptbk tool add|modify|enable|disable|remove|delete|move`.
314
+ *
315
+ * @private command
316
+ */
317
+ export default async function tool(context) {
318
+ return await apply(context);
319
+ }
320
+ //# sourceMappingURL=tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/cli/commands/tool.ts"],"names":[],"mappings":"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"}
@@ -42,7 +42,7 @@ export default async function verify(context) {
42
42
  }
43
43
  const results = await new StateStore(project.runtime.state).recentResults(500).catch(() => []);
44
44
  const gitInfo = await inspectGit(project.root);
45
- const commit = flag(context, 'commit') ?? setting(settings, 'execution.commit');
45
+ const commit = flag(context, 'commit') ?? setting(settings, 'execution.isCommitEnabled');
46
46
  if (commit && gitInfo.state !== 'repository')
47
47
  throw new PtbkError('Not a Git working tree.', { kind: 'setup', next: ['Run `ptbk init` or use --no-commit.'] });
48
48
  const archived = new Set();
@@ -1 +1 @@
1
- {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/cli/commands/verify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/cli/commands/verify.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type EffectiveSettings } from '../project/config.js';
1
+ import { type BrowserOverrides, type EffectiveSettings } from '../project/config.js';
2
2
  import type { Project } from '../project/workspace.js';
3
3
  import { type CommandContext } from './context.js';
4
4
  /**
@@ -19,6 +19,12 @@ export declare function tasksOverride(context: CommandContext): string | undefin
19
19
  * @private CLI helpers
20
20
  */
21
21
  export declare function settingOverrides(context: CommandContext): Record<string, unknown>;
22
+ /**
23
+ * Temporary browser overrides of this invocation (`--browser-mode`, `--browser-profile`, targeted by `--browser-tool`).
24
+ *
25
+ * @private CLI helpers
26
+ */
27
+ export declare function browserOverrides(context: CommandContext): BrowserOverrides | undefined;
22
28
  /**
23
29
  * Validates option combinations before any work (contradictions are never silently resolved).
24
30
  *
@@ -38,31 +38,30 @@ export function settingOverrides(context) {
38
38
  set('execution.check', option(context, 'check'));
39
39
  set('execution.checkBefore', option(context, 'check-before'));
40
40
  set('execution.gitChanges', option(context, 'git-changes'));
41
- set('execution.autoPull', flag(context, 'auto-pull'));
42
- set('execution.autoPush', flag(context, 'auto-push'));
43
- set('execution.isolate', flag(context, 'isolate'));
44
- set('execution.normalizeLineEndings', flag(context, 'normalize-line-endings'));
45
- set('execution.questions', flag(context, 'questions'));
46
- set('execution.allowCredits', flag(context, 'allow-credits'));
47
- set('execution.preserveLogs', flag(context, 'preserve-logs'));
48
- set('execution.autoMigrate', flag(context, 'auto-migrate'));
41
+ // --auto-pull/--auto-push are documented compatibility opt-ins to the one combined synchronization policy.
42
+ const autoSync = flag(context, 'auto-sync') ?? (flag(context, 'auto-pull') || flag(context, 'auto-push') ? true : undefined);
43
+ set('isAutoSync', autoSync);
44
+ set('execution.isIsolated', flag(context, 'isolate'));
45
+ set('execution.isLineEndingNormalizationEnabled', flag(context, 'normalize-line-endings'));
46
+ set('execution.isQuestionsEnabled', flag(context, 'questions'));
47
+ set('execution.isCreditFallbackAllowed', flag(context, 'allow-credits'));
48
+ set('execution.isLogPreservationEnabled', flag(context, 'preserve-logs'));
49
+ set('execution.isAutoMigrateEnabled', flag(context, 'auto-migrate'));
49
50
  set('execution.waitBetweenPrompts', option(context, 'wait-between-prompts'));
50
51
  set('execution.waitAfterPrompt', option(context, 'wait-after-prompt'));
51
52
  set('execution.waitAfterError', option(context, 'wait-after-error'));
52
- set('execution.commit', flag(context, 'commit'));
53
- set('browser.mode', option(context, 'browser-mode'));
54
- set('browser.profile', option(context, 'browser-profile'));
55
- set('server.enabled', flag(context, 'server'));
53
+ set('execution.isCommitEnabled', flag(context, 'commit'));
54
+ set('server.isEnabled', flag(context, 'server'));
56
55
  set('server.port', option(context, 'port'));
57
- set('server.tunnel.enabled', flag(context, 'tunnel'));
56
+ set('server.tunnel.isEnabled', flag(context, 'tunnel'));
58
57
  set('server.tunnel.provider', option(context, 'tunnel-provider'));
59
- set('service.persist', flag(context, 'persist'));
58
+ set('service.isPersistent', flag(context, 'persist'));
60
59
  if (flag(context, 'harness-updates') === false)
61
60
  overrides['service.harnessUpdates'] = 'off';
62
- set('service.qr', flag(context, 'qr'));
63
- set('traces.commit', flag(context, 'commit-traces'));
64
- set('traces.ignoreVideos', flag(context, 'ignore-trace-videos'));
65
- set('traces.recordVideo', flag(context, 'record-video'));
61
+ set('service.isQrShown', flag(context, 'qr'));
62
+ set('traces.isCommitted', flag(context, 'commit-traces'));
63
+ set('traces.isVideoIgnored', flag(context, 'ignore-trace-videos'));
64
+ set('traces.isVideoRecordingEnabled', flag(context, 'record-video'));
66
65
  const contextFile = option(context, 'context');
67
66
  if (contextFile !== undefined)
68
67
  overrides['paths.context'] = contextFile === '' ? null : contextFile;
@@ -71,6 +70,22 @@ export function settingOverrides(context) {
71
70
  }
72
71
  return overrides;
73
72
  }
73
+ /**
74
+ * Temporary browser overrides of this invocation (`--browser-mode`, `--browser-profile`, targeted by `--browser-tool`).
75
+ *
76
+ * @private CLI helpers
77
+ */
78
+ export function browserOverrides(context) {
79
+ const mode = option(context, 'browser-mode');
80
+ const profile = option(context, 'browser-profile');
81
+ const tool = option(context, 'browser-tool');
82
+ if (!mode && !profile) {
83
+ if (tool)
84
+ throw usageError('--browser-tool selects the browser of --browser-mode/--browser-profile; give one of them too.', context.path.join(' '));
85
+ return undefined;
86
+ }
87
+ return { tool, mode, profile };
88
+ }
74
89
  /**
75
90
  * Validates option combinations before any work (contradictions are never silently resolved).
76
91
  *
@@ -103,8 +118,10 @@ export function validateCombinations(context) {
103
118
  }
104
119
  if (gitChanges === 'continue' && option(context, 'check-before') === 'yes-and-fix')
105
120
  throw usageError('--git-changes continue conflicts with --check-before yes-and-fix.', path);
106
- if (noCommit && (flag(context, 'auto-pull') || flag(context, 'auto-push')))
107
- throw usageError('--no-commit conflicts with --auto-pull/--auto-push.', path);
121
+ if (flag(context, 'auto-sync') === false && (flag(context, 'auto-pull') || flag(context, 'auto-push')))
122
+ throw usageError('--no-auto-sync contradicts --auto-pull/--auto-push (compatibility aliases of --auto-sync).', path);
123
+ if (noCommit && (flag(context, 'auto-sync') || flag(context, 'auto-pull') || flag(context, 'auto-push')))
124
+ throw usageError('--no-commit conflicts with automatic synchronization (--auto-sync, --auto-pull, --auto-push): synchronization publishes commits.', path);
108
125
  if (flag(context, 'daemon') && flag(context, 'foreground'))
109
126
  throw usageError('--daemon and --foreground are mutually exclusive.', path);
110
127
  if (flag(context, 'tunnel') === true && flag(context, 'server') === false)
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/cli/common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/cli/common.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { CommandContext } from './context.js';
2
+ /**
3
+ * The project was configured by a newer engine: offer the ordinary self-update of this installation (interactive)
4
+ * and stop either way — the project is never downgraded or started with an older engine.
5
+ *
6
+ * @private CLI compatibility gate
7
+ */
8
+ export declare function requireEngineUpdate(context: CommandContext, saved: string): Promise<never>;
@@ -0,0 +1,32 @@
1
+ import { PtbkError } from '../common/errors.js';
2
+ import { compareVersions } from '../common/semver.js';
3
+ import { ENGINE_VERSION } from '../common/version.js';
4
+ import { checkForEngineUpdate, updateEngine } from '../project/self-update.js';
5
+ import { confirm } from '../ui/prompts.js';
6
+ /**
7
+ * The project was configured by a newer engine: offer the ordinary self-update of this installation (interactive)
8
+ * and stop either way — the project is never downgraded or started with an older engine.
9
+ *
10
+ * @private CLI compatibility gate
11
+ */
12
+ export async function requireEngineUpdate(context, saved) {
13
+ const { terminal } = context;
14
+ if (terminal.interactive) {
15
+ const check = await checkForEngineUpdate().catch(() => undefined);
16
+ if (check?.newer && check.latest && (compareVersions(check.latest, saved) ?? -1) >= 0) {
17
+ const answer = await confirm(terminal, { frame: { title: 'ptbk', step: 'Update required' }, question: `This project was configured by ptbk ${saved}; this ptbk is ${ENGINE_VERSION}. Update this ${check.installation.scope} installation to ${check.latest} now?`, defaultYes: true });
18
+ if (answer === true) {
19
+ const message = await updateEngine(check, (line) => terminal.write(` ${line}\n`));
20
+ throw new PtbkError(message, { kind: 'incomplete', effect: 'Nothing in the project was changed.', next: ['Run the same command again with the updated ptbk.'] });
21
+ }
22
+ }
23
+ }
24
+ throw new PtbkError(`This project was configured by ptbk ${saved}; the running ptbk ${ENGINE_VERSION} is older.`, {
25
+ kind: 'unsupported',
26
+ project: context.cwd,
27
+ reason: 'An older engine never downgrades or rewrites a newer configuration.',
28
+ effect: 'Nothing was started or changed.',
29
+ next: [`Update ptbk to ${saved} or newer (\`npm install -g ptbk@latest\`, or the project's local dependency), then rerun.`],
30
+ });
31
+ }
32
+ //# sourceMappingURL=compatibility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compatibility.js","sourceRoot":"","sources":["../../src/cli/compatibility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAG3C;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAAuB,EAAE,KAAa;IAC5E,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC7B,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,MAAM,oBAAoB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACpF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,QAAQ,EAAE,uCAAuC,KAAK,kBAAkB,cAAc,iBAAiB,KAAK,CAAC,YAAY,CAAC,KAAK,oBAAoB,KAAK,CAAC,MAAM,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;YACxR,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBAClB,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;gBACrF,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,qCAAqC,EAAE,IAAI,EAAE,CAAC,mDAAmD,CAAC,EAAE,CAAC,CAAC;YACrK,CAAC;QACL,CAAC;IACL,CAAC;IACD,MAAM,IAAI,SAAS,CAAC,uCAAuC,KAAK,sBAAsB,cAAc,YAAY,EAAE;QAC9G,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,OAAO,CAAC,GAAG;QACpB,MAAM,EAAE,qEAAqE;QAC7E,MAAM,EAAE,iCAAiC;QACzC,IAAI,EAAE,CAAC,kBAAkB,KAAK,4FAA4F,CAAC;KAC9H,CAAC,CAAC;AACP,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { parseDuration } from '../common/duration.js';
2
2
  import { usageError } from '../common/errors.js';
3
+ import { matchEnum } from '../common/naming.js';
3
4
  import { allOptions } from './spec.js';
4
5
  /**
5
6
  * Finds a command or subcommand by name or alias.
@@ -76,10 +77,13 @@ function convertValue(option, raw, commandPath) {
76
77
  throw usageError(`--${option.name}: ${parsed.reason}`, commandPath);
77
78
  return parsed.ms;
78
79
  }
79
- case 'enum':
80
- if (!option.values.includes(raw))
80
+ case 'enum': {
81
+ // Tolerant input (case and separators, e.g. YES_AND_FAIL for yes-and-fail); the documented spelling is kept.
82
+ const value = matchEnum(raw, option.values);
83
+ if (!value)
81
84
  throw usageError(`--${option.name} must be one of ${option.values.join(', ')} (got "${raw}").`, commandPath);
82
- return raw;
85
+ return value;
86
+ }
83
87
  case 'boolean':
84
88
  if (raw === 'true' || raw === 'false')
85
89
  return raw === 'true';