@mindstudio-ai/remy 0.1.339 → 0.1.341
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/dist/headless.js +32 -3
- package/dist/index.js +32 -3
- package/package.json +12 -9
package/dist/headless.js
CHANGED
|
@@ -3651,6 +3651,16 @@ function collectRecordings(messages) {
|
|
|
3651
3651
|
}
|
|
3652
3652
|
return recordings;
|
|
3653
3653
|
}
|
|
3654
|
+
function replayWindow(recordings) {
|
|
3655
|
+
if (recordings.length === 0) {
|
|
3656
|
+
return null;
|
|
3657
|
+
}
|
|
3658
|
+
return {
|
|
3659
|
+
sessionId: recordings[recordings.length - 1].sessionId,
|
|
3660
|
+
startTs: Math.min(...recordings.map((r) => r.startTs)),
|
|
3661
|
+
endTs: Math.max(...recordings.map((r) => r.endTs))
|
|
3662
|
+
};
|
|
3663
|
+
}
|
|
3654
3664
|
function liftRecording(result) {
|
|
3655
3665
|
if (!result.includes('"recording"')) {
|
|
3656
3666
|
return { result };
|
|
@@ -3675,6 +3685,8 @@ function liftRecording(result) {
|
|
|
3675
3685
|
}
|
|
3676
3686
|
const recording = {
|
|
3677
3687
|
path: ref.path,
|
|
3688
|
+
...typeof ref.store === "string" ? { store: ref.store } : {},
|
|
3689
|
+
...typeof ref.key === "string" ? { key: ref.key } : {},
|
|
3678
3690
|
sessionId: ref.sessionId,
|
|
3679
3691
|
runId: ref.runId,
|
|
3680
3692
|
seq: ref.seq,
|
|
@@ -3687,7 +3699,16 @@ function liftRecording(result) {
|
|
|
3687
3699
|
const rest = { ...obj };
|
|
3688
3700
|
delete rest.recording;
|
|
3689
3701
|
return {
|
|
3690
|
-
result: JSON.stringify({
|
|
3702
|
+
result: JSON.stringify({
|
|
3703
|
+
...rest,
|
|
3704
|
+
recorded: true,
|
|
3705
|
+
replay: {
|
|
3706
|
+
sessionId: recording.sessionId,
|
|
3707
|
+
runId: recording.runId,
|
|
3708
|
+
...recording.store ? { store: recording.store } : {},
|
|
3709
|
+
...recording.key ? { key: recording.key } : {}
|
|
3710
|
+
}
|
|
3711
|
+
}),
|
|
3691
3712
|
recording
|
|
3692
3713
|
};
|
|
3693
3714
|
}
|
|
@@ -4861,10 +4882,12 @@ async function runBrowserAutomation(task, context, opts) {
|
|
|
4861
4882
|
dropToolResultMessages(result.messages)
|
|
4862
4883
|
);
|
|
4863
4884
|
const preferred = opts?.capture === "viewport" ? lastCapture.viewport ?? lastCapture.fullPage : lastCapture.fullPage ?? lastCapture.viewport;
|
|
4864
|
-
const
|
|
4885
|
+
const recordings = collectRecordings(result.messages);
|
|
4886
|
+
const replay = replayWindow(recordings);
|
|
4865
4887
|
return {
|
|
4866
4888
|
text: result.text,
|
|
4867
|
-
recorded,
|
|
4889
|
+
recorded: recordings.length > 0,
|
|
4890
|
+
...replay ? { replay } : {},
|
|
4868
4891
|
...preferred?.url ? { screenshot: preferred } : {}
|
|
4869
4892
|
};
|
|
4870
4893
|
} finally {
|
|
@@ -4901,6 +4924,12 @@ var browserAutomationTool = {
|
|
|
4901
4924
|
text += `
|
|
4902
4925
|
|
|
4903
4926
|
Replay of this run: `;
|
|
4927
|
+
}
|
|
4928
|
+
if (result.replay) {
|
|
4929
|
+
const { sessionId, startTs, endTs } = result.replay;
|
|
4930
|
+
text += `
|
|
4931
|
+
|
|
4932
|
+
To render this replay as an mp4 (returns a public URL): \`remy-admin qa-recordings export --session ${sessionId} --from ${startTs} --to ${endTs}\``;
|
|
4904
4933
|
}
|
|
4905
4934
|
return text;
|
|
4906
4935
|
}
|
package/dist/index.js
CHANGED
|
@@ -2528,6 +2528,16 @@ function collectRecordings(messages) {
|
|
|
2528
2528
|
}
|
|
2529
2529
|
return recordings;
|
|
2530
2530
|
}
|
|
2531
|
+
function replayWindow(recordings) {
|
|
2532
|
+
if (recordings.length === 0) {
|
|
2533
|
+
return null;
|
|
2534
|
+
}
|
|
2535
|
+
return {
|
|
2536
|
+
sessionId: recordings[recordings.length - 1].sessionId,
|
|
2537
|
+
startTs: Math.min(...recordings.map((r) => r.startTs)),
|
|
2538
|
+
endTs: Math.max(...recordings.map((r) => r.endTs))
|
|
2539
|
+
};
|
|
2540
|
+
}
|
|
2531
2541
|
function liftRecording(result) {
|
|
2532
2542
|
if (!result.includes('"recording"')) {
|
|
2533
2543
|
return { result };
|
|
@@ -2552,6 +2562,8 @@ function liftRecording(result) {
|
|
|
2552
2562
|
}
|
|
2553
2563
|
const recording = {
|
|
2554
2564
|
path: ref.path,
|
|
2565
|
+
...typeof ref.store === "string" ? { store: ref.store } : {},
|
|
2566
|
+
...typeof ref.key === "string" ? { key: ref.key } : {},
|
|
2555
2567
|
sessionId: ref.sessionId,
|
|
2556
2568
|
runId: ref.runId,
|
|
2557
2569
|
seq: ref.seq,
|
|
@@ -2564,7 +2576,16 @@ function liftRecording(result) {
|
|
|
2564
2576
|
const rest = { ...obj };
|
|
2565
2577
|
delete rest.recording;
|
|
2566
2578
|
return {
|
|
2567
|
-
result: JSON.stringify({
|
|
2579
|
+
result: JSON.stringify({
|
|
2580
|
+
...rest,
|
|
2581
|
+
recorded: true,
|
|
2582
|
+
replay: {
|
|
2583
|
+
sessionId: recording.sessionId,
|
|
2584
|
+
runId: recording.runId,
|
|
2585
|
+
...recording.store ? { store: recording.store } : {},
|
|
2586
|
+
...recording.key ? { key: recording.key } : {}
|
|
2587
|
+
}
|
|
2588
|
+
}),
|
|
2568
2589
|
recording
|
|
2569
2590
|
};
|
|
2570
2591
|
}
|
|
@@ -5920,10 +5941,12 @@ async function runBrowserAutomation(task, context, opts) {
|
|
|
5920
5941
|
dropToolResultMessages(result.messages)
|
|
5921
5942
|
);
|
|
5922
5943
|
const preferred = opts?.capture === "viewport" ? lastCapture.viewport ?? lastCapture.fullPage : lastCapture.fullPage ?? lastCapture.viewport;
|
|
5923
|
-
const
|
|
5944
|
+
const recordings = collectRecordings(result.messages);
|
|
5945
|
+
const replay = replayWindow(recordings);
|
|
5924
5946
|
return {
|
|
5925
5947
|
text: result.text,
|
|
5926
|
-
recorded,
|
|
5948
|
+
recorded: recordings.length > 0,
|
|
5949
|
+
...replay ? { replay } : {},
|
|
5927
5950
|
...preferred?.url ? { screenshot: preferred } : {}
|
|
5928
5951
|
};
|
|
5929
5952
|
} finally {
|
|
@@ -5980,6 +6003,12 @@ var init_browserAutomation = __esm({
|
|
|
5980
6003
|
text += `
|
|
5981
6004
|
|
|
5982
6005
|
Replay of this run: `;
|
|
6006
|
+
}
|
|
6007
|
+
if (result.replay) {
|
|
6008
|
+
const { sessionId, startTs, endTs } = result.replay;
|
|
6009
|
+
text += `
|
|
6010
|
+
|
|
6011
|
+
To render this replay as an mp4 (returns a public URL): \`remy-admin qa-recordings export --session ${sessionId} --from ${startTs} --to ${endTs}\``;
|
|
5983
6012
|
}
|
|
5984
6013
|
return text;
|
|
5985
6014
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mindstudio-ai/remy",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.341",
|
|
4
4
|
"description": "Remy coding agent",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -21,10 +21,12 @@
|
|
|
21
21
|
"scripts": {
|
|
22
22
|
"build": "tsup",
|
|
23
23
|
"dev": "tsup --watch src",
|
|
24
|
-
"typecheck": "tsc --noEmit",
|
|
24
|
+
"typecheck": "npm run tsc -- --noEmit",
|
|
25
25
|
"lint:fix": "prettier --write ./src",
|
|
26
26
|
"local-update": "npm run build && npm link",
|
|
27
|
-
"prepare": "husky"
|
|
27
|
+
"prepare": "husky",
|
|
28
|
+
"tsc": "node node_modules/@typescript/native/bin/tsc",
|
|
29
|
+
"//tsc": "The native TypeScript 7 compiler by explicit path. It (typescript@7 under the @typescript/native alias) and the JS compiler API behind the `typescript` alias — which tsup's dts step needs — both declare a `tsc` bin, so node_modules/.bin/tsc is whichever npm linked last."
|
|
28
30
|
},
|
|
29
31
|
"files": [
|
|
30
32
|
"dist"
|
|
@@ -33,22 +35,23 @@
|
|
|
33
35
|
"node": ">=18.0.0"
|
|
34
36
|
},
|
|
35
37
|
"dependencies": {
|
|
38
|
+
"chalk": "^5.4.1",
|
|
39
|
+
"fast-glob": "^3.3.3",
|
|
36
40
|
"ink": "^6.6.0",
|
|
37
|
-
"react": "^19.1.0",
|
|
38
41
|
"ink-spinner": "^5.0.0",
|
|
39
42
|
"ink-text-input": "^6.0.0",
|
|
40
|
-
"
|
|
41
|
-
"fast-glob": "^3.3.3"
|
|
43
|
+
"react": "^19.1.0"
|
|
42
44
|
},
|
|
43
45
|
"devDependencies": {
|
|
44
|
-
"typescript": "^5.8.3",
|
|
45
|
-
"tsup": "^8.5.0",
|
|
46
46
|
"@types/node": "^22.16.0",
|
|
47
47
|
"@types/react": "^19.1.8",
|
|
48
|
+
"@typescript/native": "npm:typescript@^7.0.2",
|
|
48
49
|
"husky": "^9.1.7",
|
|
49
50
|
"lint-staged": "^16.3.2",
|
|
50
51
|
"prettier": "^3.8.1",
|
|
51
|
-
"prettier-plugin-curly": "^0.4.1"
|
|
52
|
+
"prettier-plugin-curly": "^0.4.1",
|
|
53
|
+
"tsup": "^8.5.0",
|
|
54
|
+
"typescript": "npm:@typescript/typescript6@^6.0.2"
|
|
52
55
|
},
|
|
53
56
|
"lint-staged": {
|
|
54
57
|
"**/*": "prettier --write --ignore-unknown"
|