@vibecodr/cli 0.2.10 → 1.0.0-rc.0

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 (256) hide show
  1. package/CHANGELOG.md +53 -18
  2. package/MIGRATION.md +73 -0
  3. package/README.md +89 -72
  4. package/dist/auth/official-client.d.ts +6 -0
  5. package/dist/auth/official-client.d.ts.map +1 -0
  6. package/dist/auth/official-client.js +1 -0
  7. package/dist/auth/official-client.js.map +1 -0
  8. package/dist/auth/token-manager.d.ts +40 -0
  9. package/dist/auth/token-manager.d.ts.map +1 -0
  10. package/dist/auth/token-manager.js +1 -2
  11. package/dist/auth/token-manager.js.map +1 -0
  12. package/dist/bin/vc-tools.d.ts +3 -0
  13. package/dist/bin/vc-tools.d.ts.map +1 -0
  14. package/dist/bin/vc-tools.js +7 -0
  15. package/dist/bin/vc-tools.js.map +1 -0
  16. package/dist/bin/vibecodr-mcp.d.ts +3 -0
  17. package/dist/bin/vibecodr-mcp.d.ts.map +1 -0
  18. package/dist/bin/vibecodr-mcp.js +37 -0
  19. package/dist/bin/vibecodr-mcp.js.map +1 -0
  20. package/dist/cli/errors.d.ts +28 -0
  21. package/dist/cli/errors.d.ts.map +1 -0
  22. package/dist/cli/errors.js +1 -0
  23. package/dist/cli/errors.js.map +1 -0
  24. package/dist/cli/output.d.ts +16 -0
  25. package/dist/cli/output.d.ts.map +1 -0
  26. package/dist/cli/output.js +1 -0
  27. package/dist/cli/output.js.map +1 -0
  28. package/dist/cli/parse.d.ts +18 -0
  29. package/dist/cli/parse.d.ts.map +1 -0
  30. package/dist/cli/parse.js +1 -0
  31. package/dist/cli/parse.js.map +1 -0
  32. package/dist/clients/base.d.ts +20 -0
  33. package/dist/clients/base.d.ts.map +1 -0
  34. package/dist/clients/base.js +1 -0
  35. package/dist/clients/base.js.map +1 -0
  36. package/dist/clients/claude-code.d.ts +5 -0
  37. package/dist/clients/claude-code.d.ts.map +1 -0
  38. package/dist/clients/claude-code.js +88 -0
  39. package/dist/clients/claude-code.js.map +1 -0
  40. package/dist/clients/claude-desktop.d.ts +5 -0
  41. package/dist/clients/claude-desktop.d.ts.map +1 -0
  42. package/dist/clients/claude-desktop.js +97 -0
  43. package/dist/clients/claude-desktop.js.map +1 -0
  44. package/dist/clients/codex.d.ts +5 -0
  45. package/dist/clients/codex.d.ts.map +1 -0
  46. package/dist/clients/codex.js +1 -0
  47. package/dist/clients/codex.js.map +1 -0
  48. package/dist/clients/cursor.d.ts +5 -0
  49. package/dist/clients/cursor.d.ts.map +1 -0
  50. package/dist/clients/cursor.js +1 -1
  51. package/dist/clients/cursor.js.map +1 -0
  52. package/dist/clients/vscode.d.ts +5 -0
  53. package/dist/clients/vscode.d.ts.map +1 -0
  54. package/dist/clients/vscode.js +5 -1
  55. package/dist/clients/vscode.js.map +1 -0
  56. package/dist/clients/windsurf.d.ts +5 -0
  57. package/dist/clients/windsurf.d.ts.map +1 -0
  58. package/dist/clients/windsurf.js +1 -0
  59. package/dist/clients/windsurf.js.map +1 -0
  60. package/dist/commands/call.d.ts +9 -0
  61. package/dist/commands/call.d.ts.map +1 -0
  62. package/dist/commands/call.js +1 -0
  63. package/dist/commands/call.js.map +1 -0
  64. package/dist/commands/config.d.ts +3 -0
  65. package/dist/commands/config.d.ts.map +1 -0
  66. package/dist/commands/config.js +1 -0
  67. package/dist/commands/config.js.map +1 -0
  68. package/dist/commands/context.d.ts +15 -0
  69. package/dist/commands/context.d.ts.map +1 -0
  70. package/dist/commands/context.js +2 -5
  71. package/dist/commands/context.js.map +1 -0
  72. package/dist/commands/doctor.d.ts +3 -0
  73. package/dist/commands/doctor.d.ts.map +1 -0
  74. package/dist/commands/doctor.js +2 -1
  75. package/dist/commands/doctor.js.map +1 -0
  76. package/dist/commands/help.d.ts +3 -0
  77. package/dist/commands/help.d.ts.map +1 -0
  78. package/dist/commands/help.js +1 -0
  79. package/dist/commands/help.js.map +1 -0
  80. package/dist/commands/install.d.ts +3 -0
  81. package/dist/commands/install.d.ts.map +1 -0
  82. package/dist/commands/install.js +23 -5
  83. package/dist/commands/install.js.map +1 -0
  84. package/dist/commands/login.d.ts +3 -0
  85. package/dist/commands/login.d.ts.map +1 -0
  86. package/dist/commands/login.js +1 -0
  87. package/dist/commands/login.js.map +1 -0
  88. package/dist/commands/logout.d.ts +3 -0
  89. package/dist/commands/logout.d.ts.map +1 -0
  90. package/dist/commands/logout.js +1 -0
  91. package/dist/commands/logout.js.map +1 -0
  92. package/dist/commands/pulse-publish.d.ts +3 -0
  93. package/dist/commands/pulse-publish.d.ts.map +1 -0
  94. package/dist/commands/pulse-publish.js +1 -0
  95. package/dist/commands/pulse-publish.js.map +1 -0
  96. package/dist/commands/pulse-setup.d.ts +3 -0
  97. package/dist/commands/pulse-setup.d.ts.map +1 -0
  98. package/dist/commands/pulse-setup.js +5 -3
  99. package/dist/commands/pulse-setup.js.map +1 -0
  100. package/dist/commands/pulse.d.ts +3 -0
  101. package/dist/commands/pulse.d.ts.map +1 -0
  102. package/dist/commands/pulse.js +1 -0
  103. package/dist/commands/pulse.js.map +1 -0
  104. package/dist/commands/status.d.ts +3 -0
  105. package/dist/commands/status.d.ts.map +1 -0
  106. package/dist/commands/status.js +1 -0
  107. package/dist/commands/status.js.map +1 -0
  108. package/dist/commands/tools.d.ts +3 -0
  109. package/dist/commands/tools.d.ts.map +1 -0
  110. package/dist/commands/tools.js +1 -0
  111. package/dist/commands/tools.js.map +1 -0
  112. package/dist/commands/uninstall.d.ts +3 -0
  113. package/dist/commands/uninstall.d.ts.map +1 -0
  114. package/dist/commands/uninstall.js +12 -4
  115. package/dist/commands/uninstall.js.map +1 -0
  116. package/dist/commands/upload.d.ts +3 -0
  117. package/dist/commands/upload.d.ts.map +1 -0
  118. package/dist/commands/upload.js +1 -0
  119. package/dist/commands/upload.js.map +1 -0
  120. package/dist/commands/whoami.d.ts +3 -0
  121. package/dist/commands/whoami.d.ts.map +1 -0
  122. package/dist/commands/whoami.js +82 -0
  123. package/dist/commands/whoami.js.map +1 -0
  124. package/dist/core/interactive-input.d.ts +7 -0
  125. package/dist/core/interactive-input.d.ts.map +1 -0
  126. package/dist/core/interactive-input.js +1 -0
  127. package/dist/core/interactive-input.js.map +1 -0
  128. package/dist/core/mcp-client.d.ts +17 -0
  129. package/dist/core/mcp-client.d.ts.map +1 -0
  130. package/dist/core/mcp-client.js +1 -0
  131. package/dist/core/mcp-client.js.map +1 -0
  132. package/dist/core/redaction.d.ts +2 -0
  133. package/dist/core/redaction.d.ts.map +1 -0
  134. package/dist/core/redaction.js +36 -2
  135. package/dist/core/redaction.js.map +1 -0
  136. package/dist/core/renderers.d.ts +8 -0
  137. package/dist/core/renderers.d.ts.map +1 -0
  138. package/dist/core/renderers.js +1 -0
  139. package/dist/core/renderers.js.map +1 -0
  140. package/dist/doctor/run.d.ts +10 -0
  141. package/dist/doctor/run.d.ts.map +1 -0
  142. package/dist/doctor/run.js +12 -3
  143. package/dist/doctor/run.js.map +1 -0
  144. package/dist/legacy/cli/errors.d.ts +9 -0
  145. package/dist/legacy/cli/errors.d.ts.map +1 -0
  146. package/dist/legacy/cli/errors.js +23 -0
  147. package/dist/legacy/cli/errors.js.map +1 -0
  148. package/dist/legacy/cli/install.d.ts +24 -0
  149. package/dist/legacy/cli/install.d.ts.map +1 -0
  150. package/dist/legacy/cli/install.js +307 -0
  151. package/dist/legacy/cli/install.js.map +1 -0
  152. package/dist/legacy/cli/output.d.ts +17 -0
  153. package/dist/legacy/cli/output.d.ts.map +1 -0
  154. package/dist/legacy/cli/output.js +36 -0
  155. package/dist/legacy/cli/output.js.map +1 -0
  156. package/dist/legacy/cli/parser.d.ts +33 -0
  157. package/dist/legacy/cli/parser.d.ts.map +1 -0
  158. package/dist/legacy/cli/parser.js +177 -0
  159. package/dist/legacy/cli/parser.js.map +1 -0
  160. package/dist/legacy/cli/run.d.ts +11 -0
  161. package/dist/legacy/cli/run.d.ts.map +1 -0
  162. package/dist/legacy/cli/run.js +2947 -0
  163. package/dist/legacy/cli/run.js.map +1 -0
  164. package/dist/legacy/config/credential-store.d.ts +8 -0
  165. package/dist/legacy/config/credential-store.d.ts.map +1 -0
  166. package/dist/legacy/config/credential-store.js +52 -0
  167. package/dist/legacy/config/credential-store.js.map +1 -0
  168. package/dist/legacy/config/store.d.ts +63 -0
  169. package/dist/legacy/config/store.d.ts.map +1 -0
  170. package/dist/legacy/config/store.js +311 -0
  171. package/dist/legacy/config/store.js.map +1 -0
  172. package/dist/legacy/core/api-client.d.ts +45 -0
  173. package/dist/legacy/core/api-client.d.ts.map +1 -0
  174. package/dist/legacy/core/api-client.js +204 -0
  175. package/dist/legacy/core/api-client.js.map +1 -0
  176. package/dist/legacy/core/contracts.d.ts +488 -0
  177. package/dist/legacy/core/contracts.d.ts.map +1 -0
  178. package/dist/legacy/core/contracts.js +386 -0
  179. package/dist/legacy/core/contracts.js.map +1 -0
  180. package/dist/legacy/core/goal-coverage.d.ts +15 -0
  181. package/dist/legacy/core/goal-coverage.d.ts.map +1 -0
  182. package/dist/legacy/core/goal-coverage.js +169 -0
  183. package/dist/legacy/core/goal-coverage.js.map +1 -0
  184. package/dist/legacy/core/redaction.d.ts +4 -0
  185. package/dist/legacy/core/redaction.d.ts.map +1 -0
  186. package/dist/legacy/core/redaction.js +121 -0
  187. package/dist/legacy/core/redaction.js.map +1 -0
  188. package/dist/legacy/core/validators.d.ts +8 -0
  189. package/dist/legacy/core/validators.d.ts.map +1 -0
  190. package/dist/legacy/core/validators.js +102 -0
  191. package/dist/legacy/core/validators.js.map +1 -0
  192. package/dist/legacy/core/version.d.ts +3 -0
  193. package/dist/legacy/core/version.d.ts.map +1 -0
  194. package/dist/legacy/core/version.js +3 -0
  195. package/dist/legacy/core/version.js.map +1 -0
  196. package/dist/legacy/index.d.ts +8 -0
  197. package/dist/legacy/index.d.ts.map +1 -0
  198. package/dist/legacy/index.js +8 -0
  199. package/dist/legacy/index.js.map +1 -0
  200. package/dist/platform/browser.d.ts +7 -0
  201. package/dist/platform/browser.d.ts.map +1 -0
  202. package/dist/platform/browser.js +1 -0
  203. package/dist/platform/browser.js.map +1 -0
  204. package/dist/platform/exec.d.ts +3 -0
  205. package/dist/platform/exec.d.ts.map +1 -0
  206. package/dist/platform/exec.js +10 -1
  207. package/dist/platform/exec.js.map +1 -0
  208. package/dist/platform/paths.d.ts +9 -0
  209. package/dist/platform/paths.d.ts.map +1 -0
  210. package/dist/platform/paths.js +13 -0
  211. package/dist/platform/paths.js.map +1 -0
  212. package/dist/platform/prompt.d.ts +5 -0
  213. package/dist/platform/prompt.d.ts.map +1 -0
  214. package/dist/platform/prompt.js +1 -0
  215. package/dist/platform/prompt.js.map +1 -0
  216. package/dist/storage/config-store.d.ts +15 -0
  217. package/dist/storage/config-store.d.ts.map +1 -0
  218. package/dist/storage/config-store.js +1 -0
  219. package/dist/storage/config-store.js.map +1 -0
  220. package/dist/storage/file-lock.d.ts +7 -0
  221. package/dist/storage/file-lock.d.ts.map +1 -0
  222. package/dist/storage/file-lock.js +1 -0
  223. package/dist/storage/file-lock.js.map +1 -0
  224. package/dist/storage/install-manifest.d.ts +12 -0
  225. package/dist/storage/install-manifest.d.ts.map +1 -0
  226. package/dist/storage/install-manifest.js +1 -0
  227. package/dist/storage/install-manifest.js.map +1 -0
  228. package/dist/storage/secret-store.d.ts +36 -0
  229. package/dist/storage/secret-store.d.ts.map +1 -0
  230. package/dist/storage/secret-store.js +1 -0
  231. package/dist/storage/secret-store.js.map +1 -0
  232. package/dist/types/auth.d.ts +55 -0
  233. package/dist/types/auth.d.ts.map +1 -0
  234. package/dist/types/auth.js +1 -0
  235. package/dist/types/auth.js.map +1 -0
  236. package/dist/types/config.d.ts +29 -0
  237. package/dist/types/config.d.ts.map +1 -0
  238. package/dist/types/config.js +1 -0
  239. package/dist/types/config.js.map +1 -0
  240. package/dist/types/install.d.ts +26 -0
  241. package/dist/types/install.d.ts.map +1 -0
  242. package/dist/types/install.js +1 -0
  243. package/dist/types/install.js.map +1 -0
  244. package/docs/API-CONTRACT.md +606 -0
  245. package/docs/CLOUDFLARE-PRIMITIVE-FIT.md +212 -0
  246. package/docs/RELEASE-CHECKLIST.md +297 -0
  247. package/docs/SECURITY.md +227 -0
  248. package/docs/VALIDATION-MATRIX.md +58 -0
  249. package/docs/commands.md +49 -29
  250. package/docs/legacy/AGENT-TOOLKIT-RFC.md +1395 -0
  251. package/docs/legacy/CLI-GUIDELINES-AUDIT.md +95 -0
  252. package/docs/legacy/COMPLETION-AUDIT.md +542 -0
  253. package/docs/legacy/vc-tools-finetune.md +982 -0
  254. package/docs/legacy/vc-tools-goal-browser-run-containers.md +465 -0
  255. package/docs/legacy/vc-tools-goal-original.md +249 -0
  256. package/package.json +37 -8
@@ -0,0 +1,386 @@
1
+ export const CAPABILITIES = [
2
+ "browser.render_url",
3
+ "browser.screenshot_url",
4
+ "browser.extract_markdown",
5
+ "browser.render_pdf",
6
+ "browser.crawl_site",
7
+ "browser.agent_task",
8
+ "sandbox.run_command",
9
+ "sandbox.run_tests",
10
+ "artifact.create",
11
+ "artifact.get",
12
+ "usage.read",
13
+ "job.status",
14
+ "job.cancel"
15
+ ];
16
+ export const CAPABILITY_ALIASES = {
17
+ "browser.ask": "browser.agent_task",
18
+ "browser.snapshot": "browser.agent_task",
19
+ "browser.read": "browser.extract_markdown",
20
+ "browser.render": "browser.render_url",
21
+ "browser.render_url": "browser.render_url",
22
+ "browser.screenshot": "browser.screenshot_url",
23
+ "browser.screenshot_url": "browser.screenshot_url",
24
+ "browser.markdown": "browser.extract_markdown",
25
+ "browser.extract_markdown": "browser.extract_markdown",
26
+ "browser.pdf": "browser.render_pdf",
27
+ "browser.render_pdf": "browser.render_pdf",
28
+ "browser.crawl": "browser.crawl_site",
29
+ "browser.crawl_site": "browser.crawl_site",
30
+ "browser.agent": "browser.agent_task",
31
+ "browser.session": "browser.agent_task",
32
+ "browser.agent_task": "browser.agent_task",
33
+ "computer.run": "sandbox.run_command",
34
+ "computer.test": "sandbox.run_tests",
35
+ "computer.tests": "sandbox.run_tests",
36
+ "sandbox.run": "sandbox.run_command",
37
+ "sandbox.run_command": "sandbox.run_command",
38
+ "sandbox.tests": "sandbox.run_tests",
39
+ "sandbox.run_tests": "sandbox.run_tests",
40
+ "proof.get": "artifact.get",
41
+ "artifact.create": "artifact.create",
42
+ "artifact.get": "artifact.get",
43
+ "usage": "usage.read",
44
+ "usage.status": "usage.read",
45
+ "usage.read": "usage.read",
46
+ "limits": "usage.read",
47
+ "limits.read": "usage.read",
48
+ "work.status": "job.status",
49
+ "work.cancel": "job.cancel",
50
+ "job.status": "job.status",
51
+ "job.cancel": "job.cancel"
52
+ };
53
+ export const DASHBOARD_SECTIONS = [
54
+ { id: "overview", label: "Running work", purpose: "What the agent is doing now, recent output, and the next safe action." },
55
+ { id: "jobs", label: "Recent work", purpose: "Recent hosted work status, cancellation state, and failures." },
56
+ { id: "artifacts", label: "Saved proof", purpose: "Stored screenshots, PDFs, logs, files, and retention status." },
57
+ { id: "usage", label: "Usage left", purpose: "Agent Computer capacity, browser work, computer work, proof storage, and running jobs." },
58
+ { id: "agents", label: "Connected agents", purpose: "Hosted MCP connection details and agent-native tool names." },
59
+ { id: "grants", label: "Tool grants", purpose: "Workspace, project, and user-scoped capability grants." },
60
+ { id: "retention", label: "Retention", purpose: "Log and artifact retention controls, with recording policy reserved and off by default." },
61
+ { id: "billing", label: "Billing", purpose: "Plan packaging and included quota." }
62
+ ];
63
+ export const OPERATOR_DASHBOARD_SECTIONS = [
64
+ { id: "cogs", label: "COGS", purpose: "Internal cost pressure by hosted-tool surface, threshold, and plan." }
65
+ ];
66
+ export const DEFAULT_PLANS = [
67
+ {
68
+ name: "Free",
69
+ priceUsdMonthly: 0,
70
+ status: "local-only",
71
+ limits: {
72
+ monthlyCredits: 30,
73
+ dailyCredits: 10,
74
+ maxConcurrentRuns: 1,
75
+ browser: {
76
+ defaultLane: "quick-action",
77
+ monthlyBrowserSeconds: 30 * 60,
78
+ dailyBrowserSeconds: 10 * 60,
79
+ maxBrowserSecondsPerRun: 30,
80
+ allowBrowserSessions: false,
81
+ maxBrowserSessionSeconds: 0,
82
+ maxConcurrentBrowserSessionsPerUser: 0
83
+ },
84
+ crawl: {
85
+ maxPagesPerRun: 10,
86
+ maxPagesPerMonth: 25,
87
+ maxDepth: 1
88
+ },
89
+ scheduledQa: {
90
+ maxRunsPerMonth: 0,
91
+ minIntervalMinutes: 0
92
+ },
93
+ sandbox: {
94
+ containerInstanceType: "none",
95
+ maxSandboxTaskSeconds: 0
96
+ },
97
+ browserRenderJobsMonthly: 30,
98
+ browserMinutesMonthly: 30,
99
+ sandboxJobsMonthly: 0,
100
+ sandboxMinutesMonthly: 0,
101
+ artifactStorageGb: 0,
102
+ artifactRetentionDays: 0,
103
+ maxArtifactUploadBytes: 0,
104
+ concurrentBrowserSessions: 0,
105
+ concurrentSandboxJobs: 0
106
+ },
107
+ posture: {
108
+ authenticatedBrowsing: "disabled",
109
+ browserRecording: "disabled",
110
+ sandboxNetwork: "disabled",
111
+ crawl: "disabled",
112
+ spendCap: "not-applicable"
113
+ }
114
+ },
115
+ {
116
+ name: "Creator",
117
+ priceUsdMonthly: 19,
118
+ limits: {
119
+ monthlyCredits: 600,
120
+ dailyCredits: 90,
121
+ maxConcurrentRuns: 2,
122
+ browser: {
123
+ defaultLane: "quick-action",
124
+ monthlyBrowserSeconds: 600 * 60,
125
+ dailyBrowserSeconds: 90 * 60,
126
+ maxBrowserSecondsPerRun: 60,
127
+ allowBrowserSessions: true,
128
+ maxBrowserSessionSeconds: 20 * 60,
129
+ maxConcurrentBrowserSessionsPerUser: 1
130
+ },
131
+ crawl: {
132
+ maxPagesPerRun: 50,
133
+ maxPagesPerMonth: 500,
134
+ maxDepth: 2
135
+ },
136
+ scheduledQa: {
137
+ maxRunsPerMonth: 30,
138
+ minIntervalMinutes: 720
139
+ },
140
+ sandbox: {
141
+ containerInstanceType: "standard-1",
142
+ maxSandboxTaskSeconds: 10 * 60
143
+ },
144
+ browserRenderJobsMonthly: 600,
145
+ browserMinutesMonthly: 600,
146
+ sandboxJobsMonthly: 600,
147
+ sandboxMinutesMonthly: 600,
148
+ artifactStorageGb: 1,
149
+ artifactRetentionDays: 7,
150
+ maxArtifactUploadBytes: 100 * 1024 * 1024,
151
+ concurrentBrowserSessions: 1,
152
+ concurrentSandboxJobs: 2
153
+ },
154
+ posture: {
155
+ authenticatedBrowsing: "disabled",
156
+ browserRecording: "disabled",
157
+ sandboxNetwork: "public-egress-private-deny",
158
+ crawl: "disabled-or-limited",
159
+ spendCap: "hard-by-default"
160
+ }
161
+ },
162
+ {
163
+ name: "Pro",
164
+ priceUsdMonthly: 39,
165
+ limits: {
166
+ monthlyCredits: 3000,
167
+ dailyCredits: 400,
168
+ maxConcurrentRuns: 5,
169
+ browser: {
170
+ defaultLane: "quick-action",
171
+ monthlyBrowserSeconds: 3000 * 60,
172
+ dailyBrowserSeconds: 400 * 60,
173
+ maxBrowserSecondsPerRun: 180,
174
+ allowBrowserSessions: true,
175
+ maxBrowserSessionSeconds: 3600,
176
+ maxConcurrentBrowserSessionsPerUser: 1
177
+ },
178
+ crawl: {
179
+ maxPagesPerRun: 250,
180
+ maxPagesPerMonth: 5000,
181
+ maxDepth: 4
182
+ },
183
+ scheduledQa: {
184
+ maxRunsPerMonth: 300,
185
+ minIntervalMinutes: 60
186
+ },
187
+ sandbox: {
188
+ containerInstanceType: "standard-2",
189
+ maxSandboxTaskSeconds: 30 * 60
190
+ },
191
+ browserRenderJobsMonthly: 3000,
192
+ browserMinutesMonthly: 3000,
193
+ sandboxJobsMonthly: 3000,
194
+ sandboxMinutesMonthly: 3000,
195
+ artifactStorageGb: 10,
196
+ artifactRetentionDays: 30,
197
+ maxArtifactUploadBytes: 500 * 1024 * 1024,
198
+ concurrentBrowserSessions: 1,
199
+ concurrentSandboxJobs: 2
200
+ },
201
+ posture: {
202
+ authenticatedBrowsing: "allowlisted-beta",
203
+ browserRecording: "opt-in",
204
+ sandboxNetwork: "public-egress-private-deny",
205
+ crawl: "add-on-or-limited",
206
+ spendCap: "soft-with-warnings"
207
+ }
208
+ },
209
+ ];
210
+ export const OVERAGE_METERS = [
211
+ { id: "browser-minute", label: "Browser minute", unit: "minute", priceUsdRange: "$0.02-$0.05" },
212
+ { id: "sandbox-compute-minute", label: "Sandbox compute minute", unit: "minute", priceUsdRange: "$0.03-$0.08" },
213
+ { id: "artifact-storage-pack", label: "Additional artifact storage", unit: "50 GB-month", priceUsdRange: "$5" },
214
+ { id: "retention-pack", label: "Additional retention", unit: "workspace-month", priceUsdRange: "$10-$25" },
215
+ { id: "browser-concurrency-slot", label: "Extra browser concurrency slot", unit: "slot-month", priceUsdRange: "$10-$20" },
216
+ { id: "sandbox-concurrency-slot", label: "Extra sandbox concurrency slot", unit: "slot-month", priceUsdRange: "$20-$50" },
217
+ { id: "crawl-pack", label: "Public crawl pack", unit: "page-volume pack", priceUsdRange: "$10-$50" }
218
+ ];
219
+ export const PUBLIC_OFFERING_CLASSIFICATIONS = [
220
+ {
221
+ id: "browser.quick_actions",
222
+ label: "Browser Quick Actions",
223
+ status: "shipped",
224
+ summary: "Short public-HTTPS browser checks for render, screenshot, markdown, and PDF output."
225
+ },
226
+ {
227
+ id: "browser.render",
228
+ label: "Browser render",
229
+ status: "shipped",
230
+ summary: "Public-HTTPS render checks through the Quick Action lane."
231
+ },
232
+ {
233
+ id: "browser.screenshot",
234
+ label: "Browser screenshot",
235
+ status: "shipped",
236
+ summary: "Public-HTTPS screenshot artifacts through the Quick Action lane."
237
+ },
238
+ {
239
+ id: "browser.markdown",
240
+ label: "Browser markdown extraction",
241
+ status: "shipped",
242
+ summary: "Public-HTTPS content extraction through the Quick Action lane."
243
+ },
244
+ {
245
+ id: "browser.pdf",
246
+ label: "Browser PDF render",
247
+ status: "shipped",
248
+ summary: "Public-HTTPS PDF artifacts through the Quick Action lane."
249
+ },
250
+ {
251
+ id: "browser.sessions",
252
+ label: "Browser Sessions",
253
+ status: "gated beta",
254
+ summary: "Paid Agent Browser tasks with plan caps, idle closure, and no third-party auth by default."
255
+ },
256
+ {
257
+ id: "browser.recording_replay",
258
+ label: "Browser recording/replay",
259
+ status: "future",
260
+ summary: "Recording policy is reserved and off by default; recording/replay is not a public tool."
261
+ },
262
+ {
263
+ id: "browser.interactive_debugging",
264
+ label: "Browser interactive debugging",
265
+ status: "future",
266
+ summary: "Interactive browser debugging is not part of the public launch surface."
267
+ },
268
+ {
269
+ id: "crawl.public",
270
+ label: "Crawl",
271
+ status: "gated beta",
272
+ summary: "Bounded public-HTTPS crawl jobs with page, depth, month, and artifact limits."
273
+ },
274
+ {
275
+ id: "crawl.deep",
276
+ label: "Deep crawl",
277
+ status: "future",
278
+ summary: "Deep crawl pricing hooks are reserved; no public deep-crawl product ships in v1."
279
+ },
280
+ {
281
+ id: "scheduled_qa",
282
+ label: "Scheduled QA",
283
+ status: "gated beta",
284
+ summary: "Plan-capped periodic Browser Quick Actions that enqueue public-HTTPS render, screenshot, markdown, or PDF checks through the hosted queue."
285
+ },
286
+ {
287
+ id: "sandbox.command",
288
+ label: "Sandbox command",
289
+ status: "gated beta",
290
+ summary: "Paid hosted command diagnostics with plan duration, concurrency, and artifact caps."
291
+ },
292
+ {
293
+ id: "sandbox.tests",
294
+ label: "Sandbox tests",
295
+ status: "gated beta",
296
+ summary: "Paid hosted test-command diagnostics with the same sandbox limits."
297
+ },
298
+ {
299
+ id: "sandbox.network",
300
+ label: "Sandbox network access",
301
+ status: "gated beta",
302
+ summary: "Paid Agent Computers can reach public HTTP(S) package/docs endpoints by default; private, local, link-local, metadata, and internal destinations are blocked."
303
+ },
304
+ {
305
+ id: "artifacts",
306
+ label: "Artifacts",
307
+ status: "gated beta",
308
+ summary: "Account-scoped artifact list, create, read, pull, delete, storage caps, and retention."
309
+ },
310
+ {
311
+ id: "jobs",
312
+ label: "Durable jobs",
313
+ status: "shipped",
314
+ summary: "Hosted work status, list, and cancellation records for accepted tool runs."
315
+ },
316
+ {
317
+ id: "dashboard",
318
+ label: "Dashboard",
319
+ status: "gated beta",
320
+ summary: "Authenticated hosted dashboard sections; internal COGS remains operator-only."
321
+ },
322
+ {
323
+ id: "grants",
324
+ label: "Grants",
325
+ status: "shipped",
326
+ summary: "Scoped tool grants for workspace, project, user, and plan capability checks."
327
+ },
328
+ {
329
+ id: "retention",
330
+ label: "Retention",
331
+ status: "shipped",
332
+ summary: "Log and artifact retention controls; recording policy remains off by default."
333
+ },
334
+ {
335
+ id: "overage_meters",
336
+ label: "Overage meters",
337
+ status: "internal-only",
338
+ summary: "Compatibility and operator cost-pressure metadata only; no automatic customer charges."
339
+ },
340
+ {
341
+ id: "stripe_metered_billing",
342
+ label: "Stripe metered billing",
343
+ status: "future",
344
+ summary: "Not implemented for launch; quota exhaustion blocks work unless an opt-in billing lane ships later."
345
+ }
346
+ ];
347
+ export const LAUNCH_TOOL_GRANTS = [
348
+ { grant: "browser.render", capability: "browser.render_url", defaultScope: "workspace", phase: "included", allowedPlans: ["Free", "Creator", "Pro"] },
349
+ { grant: "browser.screenshot", capability: "browser.screenshot_url", defaultScope: "workspace", phase: "included", allowedPlans: ["Free", "Creator", "Pro"] },
350
+ { grant: "browser.markdown", capability: "browser.extract_markdown", defaultScope: "workspace", phase: "included", allowedPlans: ["Free", "Creator", "Pro"] },
351
+ { grant: "browser.pdf", capability: "browser.render_pdf", defaultScope: "workspace", phase: "included", allowedPlans: ["Free", "Creator", "Pro"] },
352
+ { grant: "browser.automate", capability: "browser.render_url", defaultScope: "project", phase: "pro-workflows", allowedPlans: ["Pro"] },
353
+ { grant: "browser.live_view", capability: "browser.render_url", defaultScope: "user", phase: "pro-workflows", allowedPlans: ["Pro"] },
354
+ { grant: "browser.record", capability: "browser.render_url", defaultScope: "project", phase: "pro-workflows", allowedPlans: ["Pro"] },
355
+ { grant: "browser.agent_task", capability: "browser.agent_task", defaultScope: "project", phase: "paid-workflows", allowedPlans: ["Creator", "Pro"] },
356
+ { grant: "sandbox.run", capability: "sandbox.run_command", defaultScope: "workspace", phase: "paid-alpha", allowedPlans: ["Creator", "Pro"] },
357
+ { grant: "sandbox.tests", capability: "sandbox.run_tests", defaultScope: "workspace", phase: "paid-alpha", allowedPlans: ["Creator", "Pro"] },
358
+ { grant: "sandbox.network", capability: "sandbox.run_command", defaultScope: "workspace", phase: "included-limited", allowedPlans: ["Creator", "Pro"] },
359
+ { grant: "sandbox.preview_url", capability: "sandbox.run_command", defaultScope: "project", phase: "pro-workflows", allowedPlans: ["Pro"] },
360
+ { grant: "artifact.write", capability: "artifact.create", defaultScope: "workspace", phase: "paid-alpha", allowedPlans: ["Creator", "Pro"] },
361
+ { grant: "artifact.read", capability: "artifact.get", defaultScope: "workspace", phase: "included", allowedPlans: ["Free", "Creator", "Pro"] },
362
+ { grant: "usage.read", capability: "usage.read", defaultScope: "workspace", phase: "included", allowedPlans: ["Free", "Creator", "Pro"] },
363
+ { grant: "job.long_running", capability: "job.status", defaultScope: "project", phase: "included", allowedPlans: ["Free", "Creator", "Pro"] },
364
+ { grant: "job.cancel", capability: "job.cancel", defaultScope: "project", phase: "included", allowedPlans: ["Free", "Creator", "Pro"] },
365
+ { grant: "crawl.public", capability: "browser.crawl_site", defaultScope: "project", phase: "included-limited", allowedPlans: ["Creator", "Pro"] },
366
+ { grant: "crawl.authenticated", capability: "browser.crawl_site", defaultScope: "user", phase: "pro-allowlisted", allowedPlans: ["Pro"] }
367
+ ];
368
+ export const LAUNCH_POLICIES = [
369
+ { id: "vibecodr-subscription-ssot", rule: "Paid vc-tools access follows existing Vibecodr Creator and Pro subscriptions; vc-tools does not own a standalone Stripe catalog." },
370
+ { id: "no-raw-cloudflare-credentials", rule: "Users authenticate to Vibecodr Tools; Cloudflare credentials stay behind the hosted service boundary." },
371
+ { id: "quota-before-cost", rule: "Every tool call is checked against plan, quota, grants, and risk policy before Browser Run or Sandbox spend." },
372
+ { id: "audit-before-cost", rule: "Every cost-bearing tool call emits a secret-redacted audit event before execution." },
373
+ { id: "no-authenticated-browsing-by-default", rule: "Authenticated third-party browsing is disabled by default and reserved for allowlisted Pro workflows." },
374
+ { id: "sandbox-public-egress-private-deny", rule: "Paid Agent Computers can use public HTTP(S) egress for package and docs work; private, local, link-local, metadata, and internal destinations stay blocked by hosted policy." },
375
+ { id: "no-browser-recording-by-default", rule: "Browser recording is off by default and must be explicitly enabled by policy." },
376
+ { id: "no-unlimited-crawl", rule: "Crawl is disabled or tightly limited unless a paid crawl grant is present." },
377
+ { id: "artifact-retention-bounded", rule: "Screenshots, PDFs, logs, recordings, and sandbox files obey the workspace retention policy." }
378
+ ];
379
+ export const LAUNCH_WORKFLOWS = [
380
+ "Rendered website inspection",
381
+ "Bug reproduction",
382
+ "Code execution and test run",
383
+ "Research artifact generation",
384
+ "Preview and verify"
385
+ ];
386
+ //# sourceMappingURL=contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../src/legacy/core/contracts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export type InspectionStatus = "local-verified" | "hosted-required";
2
+ export interface GoalInspection {
3
+ id: string;
4
+ requirement: string;
5
+ status: InspectionStatus;
6
+ artifacts: string[];
7
+ validations: string[];
8
+ }
9
+ export declare const GOAL_INSPECTIONS: GoalInspection[];
10
+ export declare function goalCoverageSummary(): {
11
+ total: number;
12
+ localVerified: number;
13
+ hostedRequired: number;
14
+ };
15
+ //# sourceMappingURL=goal-coverage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goal-coverage.d.ts","sourceRoot":"","sources":["../../../src/legacy/core/goal-coverage.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;AAEpE,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,gBAAgB,CAAC;IACzB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,eAAO,MAAM,gBAAgB,EAAE,cAAc,EAgKnC,CAAC;AAEX,wBAAgB,mBAAmB,IAAI;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAMtG"}
@@ -0,0 +1,169 @@
1
+ export const GOAL_INSPECTIONS = [
2
+ {
3
+ id: "separate-tool-identity",
4
+ requirement: "vc-tools is a separate tool from the existing Vibecodr CLI.",
5
+ status: "local-verified",
6
+ artifacts: ["package.json", "README.md", "AGENTS.md", "src/cli/run.ts"],
7
+ validations: ["test/cli.behavior.test.ts: help and version identify the separate vc-tools CLI", "scripts/check-goal-coverage.mjs"]
8
+ },
9
+ {
10
+ id: "login",
11
+ requirement: "CLI login verifies direct tokens, stores durable account credentials when available, and refreshes scoped vc-tools grants from that durable credential.",
12
+ status: "local-verified",
13
+ artifacts: ["src/cli/run.ts", "src/config/credential-store.ts", "src/config/store.ts", "docs/SECURITY.md"],
14
+ validations: [
15
+ "test/cli.behavior.test.ts: login verifies token, stores credentials, and redacts JSON diagnostics",
16
+ "test/cli.behavior.test.ts: login exchanges a Clerk OAuth token for a stored vc-tools grant",
17
+ "test/cli.behavior.test.ts: login stores a scoped Clerk API key as the durable local credential",
18
+ "test/cli.behavior.test.ts: stored API key refreshes an expired vc-tools grant before account calls",
19
+ "test/cli.behavior.test.ts: env API keys can authenticate one-off commands through the exchange without being stored",
20
+ "test/cli.behavior.test.ts: login rejects ambiguous credential sources before network calls"
21
+ ]
22
+ },
23
+ {
24
+ id: "connect",
25
+ requirement: "CLI can configure/debug the hosted remote MCP connection.",
26
+ status: "local-verified",
27
+ artifacts: ["src/cli/run.ts", "docs/API-CONTRACT.md"],
28
+ validations: ["test/cli.behavior.test.ts: connect returns hosted Streamable HTTP metadata without leaking token"]
29
+ },
30
+ {
31
+ id: "agent-computer-first-use",
32
+ requirement: "vc-tools exposes an account-first Agent Computer path for agents through start/setup, agent, computer, browser, work, proof, and usage surfaces.",
33
+ status: "local-verified",
34
+ artifacts: ["src/cli/run.ts", "src/core/contracts.ts", "src/hosted/worker.ts", "README.md", "docs/API-CONTRACT.md", "docs/VALIDATION-MATRIX.md"],
35
+ validations: [
36
+ "test/cli.behavior.test.ts: agent-computer aliases submit safe hosted work without exposing low-level commands",
37
+ "test/cli.behavior.test.ts: start verifies the Agent Computer and returns agent connection details",
38
+ "test/hosted-worker.test.ts: hosted worker implements MCP initialize, tools/list, and tools/call contract flow"
39
+ ]
40
+ },
41
+ {
42
+ id: "browser-tools",
43
+ requirement: "CLI offers agent-facing browser render, screenshot, markdown/read, PDF, bounded public crawl, and paid browser task calls while keeping Quick Actions short.",
44
+ status: "local-verified",
45
+ artifacts: ["src/core/contracts.ts", "src/core/validators.ts", "src/cli/run.ts"],
46
+ validations: ["test/cli.behavior.test.ts: agent-computer aliases submit safe hosted work without exposing low-level commands", "test/cli.behavior.test.ts: tools test submits canonical browser capability payloads", "test/cli.behavior.test.ts: tools test keeps Quick Actions short while allowing paid agent task payloads", "test/cli.behavior.test.ts: tools test submits canonical crawl capability payloads", "test/validators.test.ts: rejects unsafe browser URL shapes before remote tool calls"]
47
+ },
48
+ {
49
+ id: "sandbox-tools",
50
+ requirement: "CLI offers Agent Computer run/test submissions without executing untrusted commands locally.",
51
+ status: "local-verified",
52
+ artifacts: ["src/core/contracts.ts", "src/core/validators.ts", "src/cli/run.ts"],
53
+ validations: ["test/cli.behavior.test.ts: sandbox tests are remote submissions with public HTTP(S) network enabled", "test/validators.test.ts: rejects empty and oversized sandbox commands"]
54
+ },
55
+ {
56
+ id: "artifact-tools",
57
+ requirement: "CLI offers proof/artifact list, read, save/pull, create, and delete workflows.",
58
+ status: "local-verified",
59
+ artifacts: ["src/cli/run.ts", "docs/API-CONTRACT.md"],
60
+ validations: ["test/cli.behavior.test.ts: artifacts pull writes inside workspace and refuses traversal/overwrite", "test/cli.behavior.test.ts: artifacts create requires --yes and sends multipart form", "test/cli.behavior.test.ts: artifacts delete requires --yes and removes hosted shelf entry"]
61
+ },
62
+ {
63
+ id: "job-tools",
64
+ requirement: "CLI offers hosted work list, status/follow, and cancel workflows through the work/jobs command families.",
65
+ status: "local-verified",
66
+ artifacts: ["src/cli/run.ts", "docs/API-CONTRACT.md"],
67
+ validations: ["test/cli.behavior.test.ts: job cancellation requires explicit confirmation", "test/cli.behavior.test.ts: list/read command families route to expected endpoints"]
68
+ },
69
+ {
70
+ id: "usage-grants-retention-plans",
71
+ requirement: "CLI exposes usage/limits, grants, retention, dashboard, Free/Creator/Pro plan limits, separate VC Tool credits, overage meters, launch safety policy surfaces, and explicit hosted-authority boundaries for open-source clients.",
72
+ status: "local-verified",
73
+ artifacts: ["src/cli/run.ts", "src/core/contracts.ts", "README.md"],
74
+ validations: ["test/limits.test.ts: vc-tools publishes the exact Free, Creator, and Pro launch limit matrix", "test/limits.test.ts: vc-tools credit meters are separate from compatibility projections", "test/cli.behavior.test.ts: usage and limits show quota progress while preserving JSON data", "test/cli.behavior.test.ts: plans works offline with local fallback packaging", "test/cli.behavior.test.ts: plans fallback is non-authoritative for hosted entitlement", "test/cli.behavior.test.ts: retention set validates mutation confirmation and bounds", "test/cli.behavior.test.ts: dashboard exposes safe hosted dashboard sections including internal COGS", "test/cli.behavior.test.ts: list/read command families route to expected endpoints", "test/hosted-worker.test.ts: hosted worker exposes customer-safe plan metadata while keeping internal launch metadata actor-scoped"]
75
+ },
76
+ {
77
+ id: "security-gates",
78
+ requirement: "CLI enforces pre-cost local safety gates and redacts secrets.",
79
+ status: "local-verified",
80
+ artifacts: ["src/core/redaction.ts", "src/core/validators.ts", "docs/SECURITY.md"],
81
+ validations: [
82
+ "test/cli.behavior.test.ts: login verifies token, stores credentials, and redacts JSON diagnostics",
83
+ "test/cli.behavior.test.ts: login stores a scoped Clerk API key as the durable local credential",
84
+ "test/cli.behavior.test.ts: stored tokens are not sent to insecure local API URLs unless explicitly allowed",
85
+ "test/cli.behavior.test.ts: tools test validates browser URLs before remote calls",
86
+ "test/validators.test.ts: rejects unsafe browser URL shapes before remote tool calls"
87
+ ]
88
+ },
89
+ {
90
+ id: "human-use-security-hardening",
91
+ requirement: "vc-tools is hardened for secure human use with scoped hosted auth, actor-isolated jobs/artifacts/usage, Browser Run SSRF defenses, bounded artifact upload/download paths, paid sandbox public HTTP(S) egress with private/internal denial, and retention-backed artifact expiry.",
92
+ status: "local-verified",
93
+ artifacts: ["src/core/api-client.ts", "src/core/validators.ts", "src/cli/run.ts", "src/hosted/worker.ts", "migrations/0002_actor_scope.sql", "migrations/0003_quota_reservations.sql", "migrations/0004_sandbox_quota_reservations.sql", "migrations/0005_operator_alert_dedupe.sql", "docs/SECURITY.md"],
94
+ validations: [
95
+ "test/cli.behavior.test.ts: stored tokens are not sent to insecure local API URLs unless explicitly allowed",
96
+ "test/cli.behavior.test.ts: artifacts pull rejects symlinked output paths before download",
97
+ "test/cli.behavior.test.ts: artifacts create requires --yes and sends multipart form",
98
+ "test/cli.behavior.test.ts: artifacts delete requires --yes and removes hosted shelf entry",
99
+ "test/hosted-worker.test.ts: hosted worker accepts scoped Vibecodr CLI grants and denies missing vc-tools scope",
100
+ "test/hosted-worker.test.ts: hosted worker requires scoped CLI grants to include requested tool capability",
101
+ "test/hosted-worker.test.ts: hosted worker rejects authenticated browser material before provider execution",
102
+ "test/hosted-worker.test.ts: hosted live mode rejects DNS responses without address records",
103
+ "test/hosted-worker.test.ts: hosted live mode writes audit and job state before dispatching browser work",
104
+ "test/hosted-worker.test.ts: hosted live mode enforces total artifact storage before upload writes",
105
+ "test/hosted-worker.test.ts: hosted live mode removes R2 bytes when artifact reservation loses the race",
106
+ "test/hosted-worker.test.ts: hosted live mode deletes artifact bytes and actor-scoped metadata",
107
+ "test/hosted-worker.test.ts: hosted scheduled cleanup alerts when expired artifact cleanup fails without user fanout",
108
+ "test/hosted-worker.test.ts: hosted live mode applies unsafe browser URL policy to all Quick Actions before binding checks",
109
+ "test/hosted-worker.test.ts: hosted live mode reports queued-ahead metadata without delaying interactive tools",
110
+ "test/hosted-worker.test.ts: hosted live mode starts browser agent tasks through Workflows instead of Queue execution",
111
+ "test/hosted-worker.test.ts: hosted live mode does not require the Queue binding to start Browser Agent Workflow jobs",
112
+ "test/hosted-worker.test.ts: hosted live mode reserves sandbox seconds before queueing sandbox work",
113
+ "test/hosted-worker.test.ts: hosted live mode enforces VC Tool quotas before dispatching cost-bearing work",
114
+ "test/hosted-worker.test.ts: hosted live mode records quota denial metrics before cost-bearing work",
115
+ "test/hosted-worker.test.ts: hosted queue handler uses Browser Run Quick Actions and metered browser time",
116
+ "test/hosted-worker.test.ts: hosted Browser Agent Workflow uses paid Browser Sessions and records closure metadata",
117
+ "test/hosted-worker.test.ts: hosted queue handler rejects Browser Agent execution because Workflows own that lane",
118
+ "test/hosted-worker.test.ts: hosted Browser Agent Workflow idle-closes wait-only paid browser agent tasks and still closes the browser",
119
+ "test/hosted-worker.test.ts: hosted queue handler uses Browser Run crawl Quick Action and meters crawl pages",
120
+ "test/hosted-worker.test.ts: hosted queue handler defers provider rate limits without marking jobs failed",
121
+ "test/hosted-worker.test.ts: hosted queue handler defers browser jobs above the account-wide hard cap",
122
+ "test/hosted-worker.test.ts: hosted queue handler defers sandbox jobs above the account-wide hard cap",
123
+ "test/hosted-worker.test.ts: hosted queue handler fans soft-cap alerts to internal alert channels",
124
+ "test/hosted-worker.test.ts: hosted queue handler audits missing operator alert notifier bindings",
125
+ "test/hosted-worker.test.ts: hosted queue handler does not complete jobs cancelled during execution",
126
+ "test/hosted-worker.test.ts: hosted queue handler skips cancelled jobs before cost-bearing execution",
127
+ "test/hosted-worker.test.ts: hosted queue handler stores control artifacts and completes jobs"
128
+ ]
129
+ },
130
+ {
131
+ id: "packaging",
132
+ requirement: "Package is buildable, testable, auditable, and publishable as @vibecodr/vc-tools.",
133
+ status: "local-verified",
134
+ artifacts: ["package.json", ".github/workflows/ci.yml", "scripts/check-pack-artifact.mjs", "docs/RELEASE-CHECKLIST.md"],
135
+ validations: ["npm run verify", "npm audit --audit-level=moderate"]
136
+ },
137
+ {
138
+ id: "hosted-service",
139
+ requirement: "Hosted Tools API/MCP service has a Cloudflare Worker surface with fail-closed auth, scoped CLI grants, dashboard, MCP JSON-RPC tool flow, quota/audit-shaped contract mode, and live Browser Run/Sandbox execution behind hosted gates.",
140
+ status: "local-verified",
141
+ artifacts: ["src/hosted/worker.ts", "wrangler.jsonc", "migrations/0001_live_schema.sql", "migrations/0002_actor_scope.sql", "migrations/0003_quota_reservations.sql", "migrations/0004_sandbox_quota_reservations.sql", "migrations/0005_operator_alert_dedupe.sql", "docs/API-CONTRACT.md", "docs/VALIDATION-MATRIX.md"],
142
+ validations: ["npm run check:worker", "test/limits.test.ts: wrangler config splits Creator and Pro sandbox container lanes", "test/hosted-worker.test.ts: hosted worker fails closed without auth secret", "test/hosted-worker.test.ts: hosted worker records auth failure metrics without token material", "test/hosted-worker.test.ts: hosted worker accepts scoped Vibecodr CLI grants and denies missing vc-tools scope", "test/hosted-worker.test.ts: hosted worker requires scoped CLI grants to include requested tool capability", "test/hosted-worker.test.ts: hosted worker accepts tool tests in contract mode", "test/hosted-worker.test.ts: hosted worker exposes paid agent browser task limits without widening quick actions", "test/hosted-worker.test.ts: hosted worker implements MCP initialize, tools/list, and tools/call contract flow", "test/hosted-worker.test.ts: hosted live mode writes audit and job state before dispatching browser work", "test/hosted-worker.test.ts: hosted live mode enforces total artifact storage before upload writes", "test/hosted-worker.test.ts: hosted live mode removes R2 bytes when artifact reservation loses the race", "test/hosted-worker.test.ts: hosted live mode applies unsafe browser URL policy to all Quick Actions before binding checks", "test/hosted-worker.test.ts: hosted live mode reports queued-ahead metadata without delaying interactive tools", "test/hosted-worker.test.ts: hosted live mode starts browser agent tasks through Workflows instead of Queue execution", "test/hosted-worker.test.ts: hosted live mode does not require the Queue binding to start Browser Agent Workflow jobs", "test/hosted-worker.test.ts: hosted live mode reserves sandbox seconds before queueing sandbox work", "test/hosted-worker.test.ts: hosted live mode enforces VC Tool quotas before dispatching cost-bearing work", "test/hosted-worker.test.ts: hosted live mode records quota denial metrics before cost-bearing work", "test/hosted-worker.test.ts: hosted live mode does not queue when atomic quota reservation loses the race", "test/hosted-worker.test.ts: hosted live mode rejects DNS responses without address records", "test/hosted-worker.test.ts: hosted queue handler uses Browser Run Quick Actions and metered browser time", "test/hosted-worker.test.ts: hosted Browser Agent Workflow uses paid Browser Sessions and records closure metadata", "test/hosted-worker.test.ts: hosted queue handler rejects Browser Agent execution because Workflows own that lane", "test/hosted-worker.test.ts: hosted Browser Agent Workflow idle-closes wait-only paid browser agent tasks and still closes the browser", "test/hosted-worker.test.ts: hosted queue handler uses Browser Run crawl Quick Action and meters crawl pages", "test/hosted-worker.test.ts: hosted queue handler defers provider rate limits without marking jobs failed", "test/hosted-worker.test.ts: hosted queue handler defers browser jobs above the account-wide hard cap", "test/hosted-worker.test.ts: hosted Browser Agent Workflow defers Browser Session jobs above the account-wide hard cap", "test/hosted-worker.test.ts: hosted queue handler defers sandbox jobs above the account-wide hard cap", "test/hosted-worker.test.ts: hosted queue handler lets failed job messages reach the configured DLQ retry boundary", "test/hosted-worker.test.ts: hosted queue handler stops exhausted failed job messages from looping forever", "test/hosted-worker.test.ts: hosted queue handler fans soft-cap alerts to internal alert channels", "test/hosted-worker.test.ts: hosted Browser Agent Workflow emits account-wide soft-cap alerts for Browser Session jobs", "test/hosted-worker.test.ts: hosted queue handler audits missing operator alert notifier bindings", "test/hosted-worker.test.ts: hosted scheduled check alerts on account-level queue backlog without user fanout", "test/hosted-worker.test.ts: hosted scheduled check alerts on account-level DLQ backlog without user fanout", "test/hosted-worker.test.ts: hosted scheduled check alerts on account-level artifact storage growth without user fanout", "test/hosted-worker.test.ts: hosted scheduled cleanup alerts when expired artifact cleanup fails without user fanout", "test/hosted-worker.test.ts: hosted scheduled check alerts on account-level execution failure and timeout rates without user fanout", "test/hosted-worker.test.ts: hosted scheduled check alerts on account-level auth failure anomalies without user fanout", "test/hosted-worker.test.ts: hosted scheduled check alerts on account-level Cloudflare spend anomaly without user fanout", "test/hosted-worker.test.ts: hosted worker alerts on unexpected 500s without leaking user or query data", "test/hosted-worker.test.ts: hosted queue handler skips cancelled jobs before cost-bearing execution"]
143
+ },
144
+ {
145
+ id: "live-hosted-production",
146
+ requirement: "Live hosted Tools API/MCP service performs real Browser Run, Sandbox, R2 artifacts, queues, quota, audit, and plan enforcement after Cloudflare resources, secrets, and routes are provisioned.",
147
+ status: "hosted-required",
148
+ artifacts: ["src/hosted/worker.ts", "wrangler.jsonc", "Dockerfile", "migrations/0001_live_schema.sql", "migrations/0002_actor_scope.sql", "migrations/0003_quota_reservations.sql", "migrations/0004_sandbox_quota_reservations.sql", "migrations/0005_operator_alert_dedupe.sql", "docs/API-CONTRACT.md", "docs/RELEASE-CHECKLIST.md"],
149
+ validations: [
150
+ "test/hosted-worker.test.ts: live mode rejects unsafe URLs before binding checks",
151
+ "test/hosted-worker.test.ts: live mode writes audit and job state before dispatching browser work",
152
+ "npx wrangler secret put VC_TOOLS_BROWSER_RUN_ACCOUNT_ID",
153
+ "npx wrangler secret put VC_TOOLS_BROWSER_RUN_API_TOKEN",
154
+ "npx wrangler d1 migrations apply vc-tools-db --remote",
155
+ "npx wrangler deploy",
156
+ "Production smoke: https://tools.vibecodr.space health live, authenticated CLI login, Browser Run Quick Action job completed, Creator browser.agent_task Workflow job completed with closure metadata, Pro browser.agent_task Workflow job completed with closure metadata, Creator standard-1 sandbox.run_command job completed, Pro standard-2 sandbox.run_command job completed, R2 artifacts listed, usage counters updated",
157
+ "Production smoke: authenticated Browser Run crawl job completed, R2 crawl artifact read back, crawl-page usage updated",
158
+ "Production smoke: operator alert delivery and D1 dedupe readback, /dashboard/cogs internal COGS readback"
159
+ ]
160
+ }
161
+ ];
162
+ export function goalCoverageSummary() {
163
+ return {
164
+ total: GOAL_INSPECTIONS.length,
165
+ localVerified: GOAL_INSPECTIONS.filter((item) => item.status === "local-verified").length,
166
+ hostedRequired: GOAL_INSPECTIONS.filter((item) => item.status === "hosted-required").length
167
+ };
168
+ }
169
+ //# sourceMappingURL=goal-coverage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goal-coverage.js","sourceRoot":"","sources":["../../../src/legacy/core/goal-coverage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function redactSecrets(value: unknown): string;
2
+ export declare function redactObject<T>(value: T): T;
3
+ export declare function isSecretBearingKey(key: string): boolean;
4
+ //# sourceMappingURL=redaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redaction.d.ts","sourceRoot":"","sources":["../../../src/legacy/core/redaction.ts"],"names":[],"mappings":"AA+DA,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAgBpD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAE3C;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAMvD"}