probe-research 0.13.0 → 0.14.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.
- package/README.md +2 -1
- package/bin/probe-research.js +38 -3
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -15,7 +15,8 @@ npx probe-research install ABCD234567
|
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
The 10-character code signs you in once without another browser approval, and
|
|
18
|
-
`install` opens the guided tooling setup for
|
|
18
|
+
`install` opens the guided tooling setup for the coding agents on your machine
|
|
19
|
+
(the wizard lists the ones it supports). Choose
|
|
19
20
|
your agents, select past coding sessions and/or a folder to backfill, then
|
|
20
21
|
confirm the capabilities before anything is installed. Imports run after setup
|
|
21
22
|
and show what they found for review before uploading. Both imports are optional;
|
package/bin/probe-research.js
CHANGED
|
@@ -233,6 +233,32 @@ function cliArgs(args) {
|
|
|
233
233
|
return args;
|
|
234
234
|
}
|
|
235
235
|
|
|
236
|
+
/**
|
|
237
|
+
* Commands that never run on the installed `probe`: they repair it, so they
|
|
238
|
+
* must not depend on it starting. `npx probe-research repair` runs the newest
|
|
239
|
+
* release from a throwaway environment, which rebuilds the installed one
|
|
240
|
+
* (`probe repair`: the install pipeline in repair mode).
|
|
241
|
+
*/
|
|
242
|
+
const REPAIR_VERBS = Object.freeze(["repair"]);
|
|
243
|
+
|
|
244
|
+
/** Whether a call may be handed to the installed `probe` (else: the newest, throwaway). */
|
|
245
|
+
function mayUseInstalled(forwarded) {
|
|
246
|
+
return !REPAIR_VERBS.includes(forwarded[0]);
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* Extra `uv tool run` flags for a call. A repair runs `--isolated`: without
|
|
251
|
+
* it uv reuses the INSTALLED tool environment whenever it satisfies the
|
|
252
|
+
* requirement -- the corrupted one the repair is for (reproduced with uv
|
|
253
|
+
* 0.12.5).
|
|
254
|
+
*/
|
|
255
|
+
function uvRunFlags(forwarded) {
|
|
256
|
+
return mayUseInstalled(forwarded) ? [] : ["--isolated"];
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
/** What a repair says when the newest release cannot be read. */
|
|
260
|
+
const REPAIR_NEEDS_NETWORK = "probe repair needs the network to fetch a working CLI";
|
|
261
|
+
|
|
236
262
|
async function main() {
|
|
237
263
|
const args = process.argv.slice(2);
|
|
238
264
|
// `npx probe-research` with no arguments runs the wizard — that is the entire
|
|
@@ -250,7 +276,15 @@ async function main() {
|
|
|
250
276
|
// serving whatever it resolved on day one -- in the other branch. It was
|
|
251
277
|
// fixed there and left standing here.
|
|
252
278
|
let latest = null;
|
|
253
|
-
if (
|
|
279
|
+
if (!mayUseInstalled(forwarded)) {
|
|
280
|
+
// A repair runs the NEWEST release, never the floor: the floor predates
|
|
281
|
+
// `probe repair`, and would hand the job to a CLI that cannot do it.
|
|
282
|
+
latest = await latestVersion();
|
|
283
|
+
if (!latest) {
|
|
284
|
+
console.error(`probe-research: ${REPAIR_NEEDS_NETWORK}`);
|
|
285
|
+
process.exit(1);
|
|
286
|
+
}
|
|
287
|
+
} else if (has("probe")) {
|
|
254
288
|
const found = installedVersion();
|
|
255
289
|
if (found && atLeast(found, wanted)) {
|
|
256
290
|
latest = await latestVersion();
|
|
@@ -289,8 +323,9 @@ async function main() {
|
|
|
289
323
|
// kept returning 0.10.0 after 0.10.1 was published). The full refresh costs
|
|
290
324
|
// ~100ms, which is nothing for a command that only runs when there is no
|
|
291
325
|
// usable local install.
|
|
326
|
+
const isolated = uvRunFlags(forwarded);
|
|
292
327
|
if (has("uv")) {
|
|
293
|
-
return run("uv", ["tool", "run", "--refresh", "--from", spec, "probe", ...forwarded]);
|
|
328
|
+
return run("uv", ["tool", "run", ...isolated, "--refresh", "--from", spec, "probe", ...forwarded]);
|
|
294
329
|
}
|
|
295
330
|
if (has("pipx")) {
|
|
296
331
|
return run("pipx", ["run", "--no-cache", "--spec", spec, "probe", ...forwarded]);
|
|
@@ -316,7 +351,7 @@ async function main() {
|
|
|
316
351
|
// because it was resolved before the install ran.
|
|
317
352
|
const uv = `${os.homedir()}/.local/bin/uv`;
|
|
318
353
|
return run(uv, [
|
|
319
|
-
"tool", "run", "--refresh", "--from", spec, "probe", ...forwarded,
|
|
354
|
+
"tool", "run", ...isolated, "--refresh", "--from", spec, "probe", ...forwarded,
|
|
320
355
|
]);
|
|
321
356
|
}
|
|
322
357
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "probe-research",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Setup wizard for Probe Research in
|
|
3
|
+
"version": "0.14.0",
|
|
4
|
+
"description": "Setup wizard for Probe Research in your coding agents. Runs from zero with npx.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"probe-research": "bin/probe-research.js"
|
|
7
7
|
},
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
},
|
|
19
19
|
"homepage": "https://research.prbe.ai/connect",
|
|
20
20
|
"keywords": [
|
|
21
|
-
"
|
|
22
|
-
"
|
|
21
|
+
"coding-agent",
|
|
22
|
+
"mcp",
|
|
23
23
|
"mlops",
|
|
24
24
|
"experiment-tracking",
|
|
25
25
|
"probe-research"
|