lasso-mcp 1.17.2 → 1.18.1

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 (173) hide show
  1. package/.dedao-extract/b1-01-navigate.json +14 -0
  2. package/.dedao-extract/b1-02-ready.json +5 -0
  3. package/.dedao-extract/b1-98-results.json +119 -0
  4. package/.dedao-extract/b1-99-log.json +18 -0
  5. package/.dedao-extract/b1-a1-assert.json +18 -0
  6. package/.dedao-extract/b1-a1-chain.json +13 -0
  7. package/.dedao-extract/b1-a1-stabilize.json +7 -0
  8. package/.dedao-extract/b1-a1-switch.json +5 -0
  9. package/.dedao-extract/b1-a2-assert.json +18 -0
  10. package/.dedao-extract/b1-a2-chain.json +13 -0
  11. package/.dedao-extract/b1-a2-stabilize.json +7 -0
  12. package/.dedao-extract/b1-a2-switch.json +5 -0
  13. package/.dedao-extract/b1-a3-assert.json +18 -0
  14. package/.dedao-extract/b1-a3-chain.json +13 -0
  15. package/.dedao-extract/b1-a3-stabilize.json +7 -0
  16. package/.dedao-extract/b1-a3-switch.json +5 -0
  17. package/.dedao-extract/b2-01-navigate.json +14 -0
  18. package/.dedao-extract/b2-02-ready.json +5 -0
  19. package/.dedao-extract/b2-98-results.json +242 -0
  20. package/.dedao-extract/b2-99-log.json +21 -0
  21. package/.dedao-extract/b2-a1-assert.json +18 -0
  22. package/.dedao-extract/b2-a1-cleanup.json +35 -0
  23. package/.dedao-extract/b2-a1-print.json +5 -0
  24. package/.dedao-extract/b2-a1-stabilize.json +7 -0
  25. package/.dedao-extract/b2-a1-switch.json +5 -0
  26. package/.dedao-extract/b2-a2-assert.json +18 -0
  27. package/.dedao-extract/b2-a2-cleanup.json +35 -0
  28. package/.dedao-extract/b2-a2-print.json +5 -0
  29. package/.dedao-extract/b2-a2-stabilize.json +7 -0
  30. package/.dedao-extract/b2-a2-switch.json +5 -0
  31. package/.dedao-extract/b2-a3-assert.json +18 -0
  32. package/.dedao-extract/b2-a3-cleanup.json +35 -0
  33. package/.dedao-extract/b2-a3-print.json +5 -0
  34. package/.dedao-extract/b2-a3-stabilize.json +7 -0
  35. package/.dedao-extract/b2-a3-switch.json +5 -0
  36. package/.dedao-extract/b3-01-navigate.json +14 -0
  37. package/.dedao-extract/b3-02-ready.json +5 -0
  38. package/.dedao-extract/b3-98-results.json +281 -0
  39. package/.dedao-extract/b3-99-log.json +21 -0
  40. package/.dedao-extract/b3-a1-assert.json +18 -0
  41. package/.dedao-extract/b3-a1-cleanup.json +48 -0
  42. package/.dedao-extract/b3-a1-print.json +5 -0
  43. package/.dedao-extract/b3-a1-stabilize.json +7 -0
  44. package/.dedao-extract/b3-a1-switch.json +5 -0
  45. package/.dedao-extract/b3-a2-assert.json +18 -0
  46. package/.dedao-extract/b3-a2-cleanup.json +48 -0
  47. package/.dedao-extract/b3-a2-print.json +5 -0
  48. package/.dedao-extract/b3-a2-stabilize.json +7 -0
  49. package/.dedao-extract/b3-a2-switch.json +5 -0
  50. package/.dedao-extract/b3-a3-assert.json +18 -0
  51. package/.dedao-extract/b3-a3-cleanup.json +48 -0
  52. package/.dedao-extract/b3-a3-print.json +5 -0
  53. package/.dedao-extract/b3-a3-stabilize.json +7 -0
  54. package/.dedao-extract/b3-a3-switch.json +5 -0
  55. package/.dedao-extract/b4-diag.json +105 -0
  56. package/.dedao-extract/diag-tail.mjs +90 -0
  57. package/.dedao-extract/extract-batch1.mjs +377 -0
  58. package/.dedao-extract/extract-batch2.mjs +371 -0
  59. package/.dedao-extract/extract-batch3.mjs +392 -0
  60. package/.dedao-scout/01-navigate.json +14 -0
  61. package/.dedao-scout/02-ready.json +5 -0
  62. package/.dedao-scout/03-sidebar-hits.json +4 -0
  63. package/.dedao-scout/04-sidebar-container.json +38 -0
  64. package/.dedao-scout/05-sidebar-total.json +3 -0
  65. package/.dedao-scout/06-sidebar-slice-000.json +42 -0
  66. package/.dedao-scout/07-firstpub.json +12 -0
  67. package/.dedao-scout/08-heads-audio.json +117 -0
  68. package/.dedao-scout/09-images.json +4 -0
  69. package/.dedao-scout/10-content-blocks.json +4 -0
  70. package/.dedao-scout/11-selected.json +33 -0
  71. package/.dedao-scout/12-layout.json +75 -0
  72. package/.dedao-scout/20-ready.json +5 -0
  73. package/.dedao-scout/21-sidebar-deep.json +148 -0
  74. package/.dedao-scout/22-right-blocks.json +70 -0
  75. package/.dedao-scout/23-title.json +13 -0
  76. package/.dedao-scout/24-playbtn-roots.json +17 -0
  77. package/.dedao-scout/25-chapter-mods.json +4 -0
  78. package/.dedao-scout/26-editor-children.json +4 -0
  79. package/.dedao-scout/27-audio.json +6 -0
  80. package/.dedao-scout/28-timeinfo-siblings.json +49 -0
  81. package/.dedao-scout/29-scroll.json +11 -0
  82. package/.dedao-scout/30-sidebar-scroll.json +4 -0
  83. package/.dedao-scout/31-click-001.json +10 -0
  84. package/.dedao-scout/32-after-click.json +4 -0
  85. package/.dedao-scout/33-audio-article.json +4 -0
  86. package/.dedao-scout/34-img-lazy.json +27 -0
  87. package/.dedao-scout/40-all-chapters.json +146 -0
  88. package/.dedao-scout/41-click-001.json +6 -0
  89. package/.dedao-scout/42-audio-article-structure.json +4 -0
  90. package/.dedao-scout/50-click.json +5 -0
  91. package/.dedao-scout/51-audio-structure.json +111 -0
  92. package/.dedao-scout/60-chapter-tree.json +31 -0
  93. package/.dedao-scout/99-log.json +6 -0
  94. package/.dedao-scout/scout.mjs +246 -0
  95. package/.dedao-scout/scout2.mjs +163 -0
  96. package/.dedao-scout/scout3.mjs +132 -0
  97. package/.dedao-scout/scout4.mjs +119 -0
  98. package/.dedao-scout/scout5.mjs +89 -0
  99. package/.dedao-scout/scout6.mjs +100 -0
  100. package/ARCHITECTURE.md +6 -3
  101. package/README.md +19 -2
  102. package/dist/browse/cdp-actions.d.ts +8 -0
  103. package/dist/browse/cdp-actions.d.ts.map +1 -1
  104. package/dist/browse/cdp-actions.js +16 -0
  105. package/dist/browse/cdp-actions.js.map +1 -1
  106. package/dist/channels/BrowseChannel.d.ts +19 -0
  107. package/dist/channels/BrowseChannel.d.ts.map +1 -1
  108. package/dist/channels/BrowseChannel.js +118 -6
  109. package/dist/channels/BrowseChannel.js.map +1 -1
  110. package/dist/channels/LoggedInChannel.d.ts +18 -0
  111. package/dist/channels/LoggedInChannel.d.ts.map +1 -1
  112. package/dist/channels/LoggedInChannel.js +81 -0
  113. package/dist/channels/LoggedInChannel.js.map +1 -1
  114. package/dist/config/config.d.ts +9 -0
  115. package/dist/config/config.d.ts.map +1 -1
  116. package/dist/config/config.js +27 -0
  117. package/dist/config/config.js.map +1 -1
  118. package/dist/doctor/doctor.d.ts +1 -1
  119. package/dist/doctor/doctor.js +1 -1
  120. package/dist/index.js +33 -5
  121. package/dist/index.js.map +1 -1
  122. package/dist/launcher/chrome-hide.d.ts +2 -0
  123. package/dist/launcher/chrome-hide.d.ts.map +1 -1
  124. package/dist/launcher/chrome-hide.js +12 -1
  125. package/dist/launcher/chrome-hide.js.map +1 -1
  126. package/dist/launcher/chrome-hideshow-cli.d.ts +6 -0
  127. package/dist/launcher/chrome-hideshow-cli.d.ts.map +1 -0
  128. package/dist/launcher/chrome-hideshow-cli.js +58 -0
  129. package/dist/launcher/chrome-hideshow-cli.js.map +1 -0
  130. package/dist/launcher/chrome-idle-reaper.d.ts +36 -3
  131. package/dist/launcher/chrome-idle-reaper.d.ts.map +1 -1
  132. package/dist/launcher/chrome-idle-reaper.js +129 -4
  133. package/dist/launcher/chrome-idle-reaper.js.map +1 -1
  134. package/dist/launcher/chrome-stop.d.ts +26 -1
  135. package/dist/launcher/chrome-stop.d.ts.map +1 -1
  136. package/dist/launcher/chrome-stop.js +25 -11
  137. package/dist/launcher/chrome-stop.js.map +1 -1
  138. package/dist/launcher/launch-chrome.d.ts +34 -1
  139. package/dist/launcher/launch-chrome.d.ts.map +1 -1
  140. package/dist/launcher/launch-chrome.js +51 -4
  141. package/dist/launcher/launch-chrome.js.map +1 -1
  142. package/dist/tools/descriptions.d.ts.map +1 -1
  143. package/dist/tools/descriptions.js +12 -0
  144. package/dist/tools/descriptions.js.map +1 -1
  145. package/doc/28-/351/235/231/351/273/230/345/256/210/345/210/231/345/256/241/350/256/241/audit.md +227 -0
  146. package/doc/28-/351/235/231/351/273/230/345/256/210/345/210/231/345/256/241/350/256/241/decisions.md +80 -0
  147. package/doc/28-/351/235/231/351/273/230/345/256/210/345/210/231/345/256/241/350/256/241/fix-2.md +88 -0
  148. package/doc/28-/351/235/231/351/273/230/345/256/210/345/210/231/345/256/241/350/256/241/fix.md +39 -0
  149. package/doc/28-/351/235/231/351/273/230/345/256/210/345/210/231/345/256/241/350/256/241/review-03.md +69 -0
  150. package/doc/28-/351/235/231/351/273/230/345/256/210/345/210/231/345/256/241/350/256/241/verify.md +186 -0
  151. package/doc/KEY-GUIDE.md +29 -3
  152. package/package.json +1 -1
  153. package/probe-dedao/drive.mjs +72 -0
  154. package/probe-dedao/e1.js +1 -0
  155. package/probe-dedao/e2.js +15 -0
  156. package/probe-dedao/e2b.js +14 -0
  157. package/probe-dedao/e3.js +12 -0
  158. package/probe-dedao/e4.js +11 -0
  159. package/probe-dedao/nav.mjs +25 -0
  160. package/probe-dedao/probe.mjs +76 -0
  161. package/src/browse/cdp-actions.ts +18 -0
  162. package/src/channels/BrowseChannel.ts +136 -5
  163. package/src/channels/LoggedInChannel.ts +76 -0
  164. package/src/config/config.ts +38 -0
  165. package/src/doctor/doctor.ts +1 -1
  166. package/src/index.ts +33 -5
  167. package/src/invariants/check-invariants.mjs +83 -0
  168. package/src/launcher/chrome-hide.ts +21 -1
  169. package/src/launcher/chrome-hideshow-cli.ts +72 -0
  170. package/src/launcher/chrome-idle-reaper.ts +142 -4
  171. package/src/launcher/chrome-stop.ts +50 -8
  172. package/src/launcher/launch-chrome.ts +72 -6
  173. package/src/tools/descriptions.ts +12 -0
@@ -0,0 +1,14 @@
1
+ {
2
+ "outcome": "worked",
3
+ "data": {
4
+ "url": "https://www.dedao.cn/course/article?id=6EBOqDNZ27YlVdg8oKm4bQ1odMAkgz",
5
+ "action": "navigate",
6
+ "state_id": "dd7fea5c-e412-46bb-a9e6-c26ef6f0cfcb",
7
+ "content_path": "/Users/wangdong/.cache/lasso/de9b1e35-8cdf-4555-9a8b-61b15c6dba5e/browse_logged_in-dd7fea5c-e412-46bb-a9e6-c26ef6f0cfcb.json",
8
+ "preview": "navigated",
9
+ "final_url": "https://www.dedao.cn/course/article?id=6EBOqDNZ27YlVdg8oKm4bQ1odMAkgz."
10
+ },
11
+ "served_by": "browse_logged_in",
12
+ "fallback_used": false,
13
+ "retrieval_method": "chrome_devtools_mcp"
14
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "rs": "complete",
3
+ "title": "发刊词丨只给你地道的经济学思维",
4
+ "len": 3127
5
+ }
@@ -0,0 +1,119 @@
1
+ [
2
+ {
3
+ "chapterDir": "课前必读(1讲)",
4
+ "title": "发刊词丨只给你地道的经济学思维",
5
+ "expectAudio": false,
6
+ "phases": {
7
+ "switch": {
8
+ "mode": "already",
9
+ "title": "发刊词丨只给你地道的经济学思维",
10
+ "url": "https://www.dedao.cn/course/article?id=6EBOqDNZ27YlVdg8oKm4bQ1odMAkgz"
11
+ },
12
+ "stabilize": {
13
+ "ok": true,
14
+ "bodyLen": 1696,
15
+ "imgs": 6,
16
+ "imgsNotLoaded": 0,
17
+ "docH": 27664
18
+ },
19
+ "assert": {
20
+ "url": "https://www.dedao.cn/course/article?id=6EBOqDNZ27YlVdg8oKm4bQ1odMAkgz",
21
+ "title": "发刊词丨只给你地道的经济学思维",
22
+ "hasWrap": true,
23
+ "cover": true,
24
+ "ddAudio": 0,
25
+ "audioTags": 0,
26
+ "timeInfo": true,
27
+ "wrapChildren": [
28
+ "DIV.pageControl",
29
+ "DIV.",
30
+ "DIV.article-body",
31
+ "DIV.article-time-info",
32
+ "DIV.my-comment",
33
+ "DIV.message-v2"
34
+ ],
35
+ "bodyLen": 1696
36
+ }
37
+ },
38
+ "assertFails": [],
39
+ "fatal": "chain_failed:unknown:Error: upstream_pdf_error:is_error:MCP error -32602: Tool pdf not found"
40
+ },
41
+ {
42
+ "chapterDir": "01-经济学本源之一:东西不够(110讲)",
43
+ "title": "第001讲丨战俘营里的经济组织",
44
+ "expectAudio": true,
45
+ "phases": {
46
+ "switch": {
47
+ "mode": "clicked",
48
+ "title": "第001讲丨战俘营里的经济组织",
49
+ "url": "https://www.dedao.cn/course/article?id=ml9WNdP1QvaeKYG0PJAzx82Dyog0BZ"
50
+ },
51
+ "stabilize": {
52
+ "ok": true,
53
+ "bodyLen": 3742,
54
+ "imgs": 5,
55
+ "imgsNotLoaded": 0,
56
+ "docH": 13752
57
+ },
58
+ "assert": {
59
+ "url": "https://www.dedao.cn/course/article?id=ml9WNdP1QvaeKYG0PJAzx82Dyog0BZ",
60
+ "title": "第001讲丨战俘营里的经济组织",
61
+ "hasWrap": true,
62
+ "cover": true,
63
+ "ddAudio": 1,
64
+ "audioTags": 0,
65
+ "timeInfo": true,
66
+ "wrapChildren": [
67
+ "DIV.pageControl",
68
+ "DIV.",
69
+ "DIV.article-body",
70
+ "DIV.article-time-info",
71
+ "DIV.my-comment",
72
+ "DIV.message-v2"
73
+ ],
74
+ "bodyLen": 3742
75
+ }
76
+ },
77
+ "assertFails": [],
78
+ "fatal": "chain_failed:unknown:Error: upstream_pdf_error:is_error:MCP error -32602: Tool pdf not found"
79
+ },
80
+ {
81
+ "chapterDir": "01-经济学本源之一:东西不够(110讲)",
82
+ "title": "第002讲丨马粪争夺案",
83
+ "expectAudio": true,
84
+ "phases": {
85
+ "switch": {
86
+ "mode": "clicked",
87
+ "title": "第002讲丨马粪争夺案",
88
+ "url": "https://www.dedao.cn/course/article?id=Ay7GQpR6ndOgX60ReV8eBvPzMN4lwE"
89
+ },
90
+ "stabilize": {
91
+ "ok": true,
92
+ "bodyLen": 2133,
93
+ "imgs": 3,
94
+ "imgsNotLoaded": 0,
95
+ "docH": 10861
96
+ },
97
+ "assert": {
98
+ "url": "https://www.dedao.cn/course/article?id=Ay7GQpR6ndOgX60ReV8eBvPzMN4lwE",
99
+ "title": "第002讲丨马粪争夺案",
100
+ "hasWrap": true,
101
+ "cover": true,
102
+ "ddAudio": 1,
103
+ "audioTags": 0,
104
+ "timeInfo": true,
105
+ "wrapChildren": [
106
+ "DIV.pageControl",
107
+ "DIV.",
108
+ "DIV.article-body",
109
+ "DIV.article-time-info",
110
+ "DIV.my-comment",
111
+ "DIV.message-v2"
112
+ ],
113
+ "bodyLen": 2133
114
+ }
115
+ },
116
+ "assertFails": [],
117
+ "fatal": "chain_failed:unknown:Error: upstream_pdf_error:is_error:MCP error -32602: Tool pdf not found"
118
+ }
119
+ ]
@@ -0,0 +1,18 @@
1
+ [
2
+ "[ready] {\"rs\":\"complete\",\"title\":\"发刊词丨只给你地道的经济学思维\",\"len\":3127}",
3
+ "\n===== [1/3] 发刊词丨只给你地道的经济学思维 =====",
4
+ "[switch] {\"mode\":\"already\",\"title\":\"发刊词丨只给你地道的经济学思维\",\"url\":\"https://www.dedao.cn/course/article?id=6EBOqDNZ27YlVdg8oKm4bQ1odMAkgz\"}",
5
+ "[stabilize] {\"ok\":true,\"bodyLen\":1696,\"imgs\":6,\"imgsNotLoaded\":0,\"docH\":27664}",
6
+ "[assert] {\"url\":\"https://www.dedao.cn/course/article?id=6EBOqDNZ27YlVdg8oKm4bQ1odMAkgz\",\"title\":\"发刊词丨只给你地道的经济学思维\",\"hasWrap\":true,\"cover\":true,\"ddAudio\":0,\"audioTags\":0,\"timeInfo\":true,\"wrapChildren\":[\"DIV.pageControl\",\"DIV.\",\"DIV.article-body\",\"DIV.article-time-info\",\"DIV.my-comment\",\"DIV.message-v2\"],\"bodyLen\":1696}",
7
+ "[FATAL] chain_failed:unknown:Error: upstream_pdf_error:is_error:MCP error -32602: Tool pdf not found",
8
+ "\n===== [2/3] 第001讲丨战俘营里的经济组织 =====",
9
+ "[switch] {\"mode\":\"clicked\",\"title\":\"第001讲丨战俘营里的经济组织\",\"url\":\"https://www.dedao.cn/course/article?id=ml9WNdP1QvaeKYG0PJAzx82Dyog0BZ\"}",
10
+ "[stabilize] {\"ok\":true,\"bodyLen\":3742,\"imgs\":5,\"imgsNotLoaded\":0,\"docH\":13752}",
11
+ "[assert] {\"url\":\"https://www.dedao.cn/course/article?id=ml9WNdP1QvaeKYG0PJAzx82Dyog0BZ\",\"title\":\"第001讲丨战俘营里的经济组织\",\"hasWrap\":true,\"cover\":true,\"ddAudio\":1,\"audioTags\":0,\"timeInfo\":true,\"wrapChildren\":[\"DIV.pageControl\",\"DIV.\",\"DIV.article-body\",\"DIV.article-time-info\",\"DIV.my-comment\",\"DIV.message-v2\"],\"bodyLen\":3742}",
12
+ "[FATAL] chain_failed:unknown:Error: upstream_pdf_error:is_error:MCP error -32602: Tool pdf not found",
13
+ "\n===== [3/3] 第002讲丨马粪争夺案 =====",
14
+ "[switch] {\"mode\":\"clicked\",\"title\":\"第002讲丨马粪争夺案\",\"url\":\"https://www.dedao.cn/course/article?id=Ay7GQpR6ndOgX60ReV8eBvPzMN4lwE\"}",
15
+ "[stabilize] {\"ok\":true,\"bodyLen\":2133,\"imgs\":3,\"imgsNotLoaded\":0,\"docH\":10861}",
16
+ "[assert] {\"url\":\"https://www.dedao.cn/course/article?id=Ay7GQpR6ndOgX60ReV8eBvPzMN4lwE\",\"title\":\"第002讲丨马粪争夺案\",\"hasWrap\":true,\"cover\":true,\"ddAudio\":1,\"audioTags\":0,\"timeInfo\":true,\"wrapChildren\":[\"DIV.pageControl\",\"DIV.\",\"DIV.article-body\",\"DIV.article-time-info\",\"DIV.my-comment\",\"DIV.message-v2\"],\"bodyLen\":2133}",
17
+ "[FATAL] chain_failed:unknown:Error: upstream_pdf_error:is_error:MCP error -32602: Tool pdf not found"
18
+ ]
@@ -0,0 +1,18 @@
1
+ {
2
+ "url": "https://www.dedao.cn/course/article?id=6EBOqDNZ27YlVdg8oKm4bQ1odMAkgz",
3
+ "title": "发刊词丨只给你地道的经济学思维",
4
+ "hasWrap": true,
5
+ "cover": true,
6
+ "ddAudio": 0,
7
+ "audioTags": 0,
8
+ "timeInfo": true,
9
+ "wrapChildren": [
10
+ "DIV.pageControl",
11
+ "DIV.",
12
+ "DIV.article-body",
13
+ "DIV.article-time-info",
14
+ "DIV.my-comment",
15
+ "DIV.message-v2"
16
+ ],
17
+ "bodyLen": 1696
18
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "outcome": "unknown",
3
+ "error": "Error: upstream_pdf_error:is_error:MCP error -32602: Tool pdf not found",
4
+ "stopped_at": {
5
+ "step_index": 1,
6
+ "reason": "step_error",
7
+ "failed_action": "pdf",
8
+ "detail": "outcome=unknown: Error: upstream_pdf_error:is_error:MCP error -32602: Tool pdf not found"
9
+ },
10
+ "bounded": null,
11
+ "has_chain_inline": true,
12
+ "preview_head": "{\"actions_and_results\":[{\"step\":{\"action\":\"evaluate\",\"js\":\"return (()=>{\\n const q=(s,r)=>(r||document).querySelector(s);\\n const qa=(s,r)=>[...(r||document).querySelectorAll(s)];\\n const rep={ok:t"
13
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "ok": true,
3
+ "bodyLen": 1696,
4
+ "imgs": 6,
5
+ "imgsNotLoaded": 0,
6
+ "docH": 27664
7
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "mode": "already",
3
+ "title": "发刊词丨只给你地道的经济学思维",
4
+ "url": "https://www.dedao.cn/course/article?id=6EBOqDNZ27YlVdg8oKm4bQ1odMAkgz"
5
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "url": "https://www.dedao.cn/course/article?id=ml9WNdP1QvaeKYG0PJAzx82Dyog0BZ",
3
+ "title": "第001讲丨战俘营里的经济组织",
4
+ "hasWrap": true,
5
+ "cover": true,
6
+ "ddAudio": 1,
7
+ "audioTags": 0,
8
+ "timeInfo": true,
9
+ "wrapChildren": [
10
+ "DIV.pageControl",
11
+ "DIV.",
12
+ "DIV.article-body",
13
+ "DIV.article-time-info",
14
+ "DIV.my-comment",
15
+ "DIV.message-v2"
16
+ ],
17
+ "bodyLen": 3742
18
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "outcome": "unknown",
3
+ "error": "Error: upstream_pdf_error:is_error:MCP error -32602: Tool pdf not found",
4
+ "stopped_at": {
5
+ "step_index": 1,
6
+ "reason": "step_error",
7
+ "failed_action": "pdf",
8
+ "detail": "outcome=unknown: Error: upstream_pdf_error:is_error:MCP error -32602: Tool pdf not found"
9
+ },
10
+ "bounded": null,
11
+ "has_chain_inline": true,
12
+ "preview_head": "{\"actions_and_results\":[{\"step\":{\"action\":\"evaluate\",\"js\":\"return (()=>{\\n const q=(s,r)=>(r||document).querySelector(s);\\n const qa=(s,r)=>[...(r||document).querySelectorAll(s)];\\n const rep={ok:t"
13
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "ok": true,
3
+ "bodyLen": 3742,
4
+ "imgs": 5,
5
+ "imgsNotLoaded": 0,
6
+ "docH": 13752
7
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "mode": "clicked",
3
+ "title": "第001讲丨战俘营里的经济组织",
4
+ "url": "https://www.dedao.cn/course/article?id=ml9WNdP1QvaeKYG0PJAzx82Dyog0BZ"
5
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "url": "https://www.dedao.cn/course/article?id=Ay7GQpR6ndOgX60ReV8eBvPzMN4lwE",
3
+ "title": "第002讲丨马粪争夺案",
4
+ "hasWrap": true,
5
+ "cover": true,
6
+ "ddAudio": 1,
7
+ "audioTags": 0,
8
+ "timeInfo": true,
9
+ "wrapChildren": [
10
+ "DIV.pageControl",
11
+ "DIV.",
12
+ "DIV.article-body",
13
+ "DIV.article-time-info",
14
+ "DIV.my-comment",
15
+ "DIV.message-v2"
16
+ ],
17
+ "bodyLen": 2133
18
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "outcome": "unknown",
3
+ "error": "Error: upstream_pdf_error:is_error:MCP error -32602: Tool pdf not found",
4
+ "stopped_at": {
5
+ "step_index": 1,
6
+ "reason": "step_error",
7
+ "failed_action": "pdf",
8
+ "detail": "outcome=unknown: Error: upstream_pdf_error:is_error:MCP error -32602: Tool pdf not found"
9
+ },
10
+ "bounded": null,
11
+ "has_chain_inline": true,
12
+ "preview_head": "{\"actions_and_results\":[{\"step\":{\"action\":\"evaluate\",\"js\":\"return (()=>{\\n const q=(s,r)=>(r||document).querySelector(s);\\n const qa=(s,r)=>[...(r||document).querySelectorAll(s)];\\n const rep={ok:t"
13
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "ok": true,
3
+ "bodyLen": 2133,
4
+ "imgs": 3,
5
+ "imgsNotLoaded": 0,
6
+ "docH": 10861
7
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "mode": "clicked",
3
+ "title": "第002讲丨马粪争夺案",
4
+ "url": "https://www.dedao.cn/course/article?id=Ay7GQpR6ndOgX60ReV8eBvPzMN4lwE"
5
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "outcome": "worked",
3
+ "data": {
4
+ "url": "https://www.dedao.cn/course/article?id=6EBOqDNZ27YlVdg8oKm4bQ1odMAkgz",
5
+ "action": "navigate",
6
+ "state_id": "6d52b621-ef37-4b25-9435-a7bb3b792dbe",
7
+ "content_path": "/Users/wangdong/.cache/lasso/98305202-a8c9-4e97-93ec-60ed94e57f3a/browse_logged_in-6d52b621-ef37-4b25-9435-a7bb3b792dbe.json",
8
+ "preview": "navigated",
9
+ "final_url": "https://www.dedao.cn/course/article?id=6EBOqDNZ27YlVdg8oKm4bQ1odMAkgz."
10
+ },
11
+ "served_by": "browse_logged_in",
12
+ "fallback_used": false,
13
+ "retrieval_method": "chrome_devtools_mcp"
14
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "rs": "complete",
3
+ "title": "发刊词丨只给你地道的经济学思维",
4
+ "len": 3127
5
+ }
@@ -0,0 +1,242 @@
1
+ [
2
+ {
3
+ "chapterDir": "课前必读(1讲)",
4
+ "title": "发刊词丨只给你地道的经济学思维",
5
+ "expectAudio": false,
6
+ "phases": {
7
+ "switch": {
8
+ "mode": "already",
9
+ "title": "发刊词丨只给你地道的经济学思维",
10
+ "url": "https://www.dedao.cn/course/article?id=6EBOqDNZ27YlVdg8oKm4bQ1odMAkgz"
11
+ },
12
+ "stabilize": {
13
+ "ok": true,
14
+ "bodyLen": 1696,
15
+ "imgs": 6,
16
+ "imgsNotLoaded": 0,
17
+ "docH": 33631
18
+ },
19
+ "assert": {
20
+ "url": "https://www.dedao.cn/course/article?id=6EBOqDNZ27YlVdg8oKm4bQ1odMAkgz",
21
+ "title": "发刊词丨只给你地道的经济学思维",
22
+ "hasWrap": true,
23
+ "cover": true,
24
+ "ddAudio": 0,
25
+ "audioTags": 0,
26
+ "timeInfo": true,
27
+ "wrapChildren": [
28
+ "DIV.pageControl",
29
+ "DIV.",
30
+ "DIV.article-body",
31
+ "DIV.article-time-info",
32
+ "DIV.my-comment",
33
+ "DIV.message-v2"
34
+ ],
35
+ "bodyLen": 1696
36
+ },
37
+ "cleanup": {
38
+ "ok": true,
39
+ "del": {
40
+ "pageControl": 1,
41
+ "cover": true,
42
+ "ddAudio": 0,
43
+ "audioTags": 0,
44
+ "timeInfo": true,
45
+ "tailSiblingsRemoved": 3
46
+ },
47
+ "hid": {
48
+ ".iget-header": 1,
49
+ "div.course-nav": 1,
50
+ "aside.iget-side-button": 1,
51
+ "div.course-nav-mask": 1,
52
+ ".iget-audio-player": 1
53
+ },
54
+ "residual": {
55
+ "cover": 0,
56
+ "ddAudio": 0,
57
+ "timeInfo": 0,
58
+ "myComment": 0,
59
+ "messageV2": 0
60
+ },
61
+ "rectBefore": {
62
+ "x": 0,
63
+ "y": 60,
64
+ "w": 1200
65
+ },
66
+ "rectAfter": {
67
+ "x": 0,
68
+ "y": 60,
69
+ "w": 1200
70
+ }
71
+ },
72
+ "print": {
73
+ "ok": true,
74
+ "err": null,
75
+ "tabUrl": "https://www.dedao.cn/course/article?id=6EBOqDNZ27YlVdg8oKm4bQ1odMAkgz"
76
+ }
77
+ },
78
+ "assertFails": [],
79
+ "pdfPath": "/Users/wangdong/Documents/Project/cc-control-all/得到_薛兆丰的经济学/课前必读(1讲)/发刊词丨只给你地道的经济学思维.pdf",
80
+ "pdfBytes": 1794421
81
+ },
82
+ {
83
+ "chapterDir": "01-经济学本源之一:东西不够(110讲)",
84
+ "title": "第001讲丨战俘营里的经济组织",
85
+ "expectAudio": true,
86
+ "phases": {
87
+ "switch": {
88
+ "mode": "clicked",
89
+ "title": "第001讲丨战俘营里的经济组织",
90
+ "url": "https://www.dedao.cn/course/article?id=ml9WNdP1QvaeKYG0PJAzx82Dyog0BZ"
91
+ },
92
+ "stabilize": {
93
+ "ok": true,
94
+ "bodyLen": 3742,
95
+ "imgs": 5,
96
+ "imgsNotLoaded": 0,
97
+ "docH": 13752
98
+ },
99
+ "assert": {
100
+ "url": "https://www.dedao.cn/course/article?id=ml9WNdP1QvaeKYG0PJAzx82Dyog0BZ",
101
+ "title": "第001讲丨战俘营里的经济组织",
102
+ "hasWrap": true,
103
+ "cover": true,
104
+ "ddAudio": 1,
105
+ "audioTags": 0,
106
+ "timeInfo": true,
107
+ "wrapChildren": [
108
+ "DIV.pageControl",
109
+ "DIV.",
110
+ "DIV.article-body",
111
+ "DIV.article-time-info",
112
+ "DIV.my-comment",
113
+ "DIV.message-v2"
114
+ ],
115
+ "bodyLen": 3742
116
+ },
117
+ "cleanup": {
118
+ "ok": true,
119
+ "del": {
120
+ "pageControl": 1,
121
+ "cover": true,
122
+ "ddAudio": 1,
123
+ "audioTags": 0,
124
+ "timeInfo": true,
125
+ "tailSiblingsRemoved": 3
126
+ },
127
+ "hid": {
128
+ ".iget-header": 1,
129
+ "div.course-nav": 1,
130
+ "aside.iget-side-button": 1,
131
+ "div.course-nav-mask": 1,
132
+ ".iget-audio-player": 1
133
+ },
134
+ "residual": {
135
+ "cover": 0,
136
+ "ddAudio": 0,
137
+ "timeInfo": 0,
138
+ "myComment": 0,
139
+ "messageV2": 0
140
+ },
141
+ "rectBefore": {
142
+ "x": 0,
143
+ "y": 60,
144
+ "w": 1200
145
+ },
146
+ "rectAfter": {
147
+ "x": 0,
148
+ "y": 60,
149
+ "w": 1200
150
+ }
151
+ },
152
+ "print": {
153
+ "ok": true,
154
+ "err": null,
155
+ "tabUrl": "https://www.dedao.cn/course/article?id=ml9WNdP1QvaeKYG0PJAzx82Dyog0BZ"
156
+ }
157
+ },
158
+ "assertFails": [],
159
+ "pdfPath": "/Users/wangdong/Documents/Project/cc-control-all/得到_薛兆丰的经济学/01-经济学本源之一:东西不够(110讲)/第001讲丨战俘营里的经济组织.pdf",
160
+ "pdfBytes": 1030211
161
+ },
162
+ {
163
+ "chapterDir": "01-经济学本源之一:东西不够(110讲)",
164
+ "title": "第002讲丨马粪争夺案",
165
+ "expectAudio": true,
166
+ "phases": {
167
+ "switch": {
168
+ "mode": "clicked",
169
+ "title": "第002讲丨马粪争夺案",
170
+ "url": "https://www.dedao.cn/course/article?id=Ay7GQpR6ndOgX60ReV8eBvPzMN4lwE"
171
+ },
172
+ "stabilize": {
173
+ "ok": true,
174
+ "bodyLen": 2133,
175
+ "imgs": 3,
176
+ "imgsNotLoaded": 0,
177
+ "docH": 10861
178
+ },
179
+ "assert": {
180
+ "url": "https://www.dedao.cn/course/article?id=Ay7GQpR6ndOgX60ReV8eBvPzMN4lwE",
181
+ "title": "第002讲丨马粪争夺案",
182
+ "hasWrap": true,
183
+ "cover": true,
184
+ "ddAudio": 1,
185
+ "audioTags": 0,
186
+ "timeInfo": true,
187
+ "wrapChildren": [
188
+ "DIV.pageControl",
189
+ "DIV.",
190
+ "DIV.article-body",
191
+ "DIV.article-time-info",
192
+ "DIV.my-comment",
193
+ "DIV.message-v2"
194
+ ],
195
+ "bodyLen": 2133
196
+ },
197
+ "cleanup": {
198
+ "ok": true,
199
+ "del": {
200
+ "pageControl": 1,
201
+ "cover": true,
202
+ "ddAudio": 1,
203
+ "audioTags": 0,
204
+ "timeInfo": true,
205
+ "tailSiblingsRemoved": 3
206
+ },
207
+ "hid": {
208
+ ".iget-header": 1,
209
+ "div.course-nav": 1,
210
+ "aside.iget-side-button": 1,
211
+ "div.course-nav-mask": 1,
212
+ ".iget-audio-player": 1
213
+ },
214
+ "residual": {
215
+ "cover": 0,
216
+ "ddAudio": 0,
217
+ "timeInfo": 0,
218
+ "myComment": 0,
219
+ "messageV2": 0
220
+ },
221
+ "rectBefore": {
222
+ "x": 0,
223
+ "y": 60,
224
+ "w": 1200
225
+ },
226
+ "rectAfter": {
227
+ "x": 0,
228
+ "y": 60,
229
+ "w": 1200
230
+ }
231
+ },
232
+ "print": {
233
+ "ok": true,
234
+ "err": null,
235
+ "tabUrl": "https://www.dedao.cn/course/article?id=Ay7GQpR6ndOgX60ReV8eBvPzMN4lwE"
236
+ }
237
+ },
238
+ "assertFails": [],
239
+ "pdfPath": "/Users/wangdong/Documents/Project/cc-control-all/得到_薛兆丰的经济学/01-经济学本源之一:东西不够(110讲)/第002讲丨马粪争夺案.pdf",
240
+ "pdfBytes": 645510
241
+ }
242
+ ]
@@ -0,0 +1,21 @@
1
+ [
2
+ "[ready] {\"rs\":\"complete\",\"title\":\"发刊词丨只给你地道的经济学思维\",\"len\":3127}",
3
+ "\n===== [1/3] 发刊词丨只给你地道的经济学思维 =====",
4
+ "[switch] {\"mode\":\"already\",\"title\":\"发刊词丨只给你地道的经济学思维\",\"url\":\"https://www.dedao.cn/course/article?id=6EBOqDNZ27YlVdg8oKm4bQ1odMAkgz\"}",
5
+ "[stabilize] {\"ok\":true,\"bodyLen\":1696,\"imgs\":6,\"imgsNotLoaded\":0,\"docH\":33631}",
6
+ "[assert] {\"url\":\"https://www.dedao.cn/course/article?id=6EBOqDNZ27YlVdg8oKm4bQ1odMAkgz\",\"title\":\"发刊词丨只给你地道的经济学思维\",\"hasWrap\":true,\"cover\":true,\"ddAudio\":0,\"audioTags\":0,\"timeInfo\":true,\"wrapChildren\":[\"DIV.pageControl\",\"DIV.\",\"DIV.article-body\",\"DIV.article-time-info\",\"DIV.my-comment\",\"DIV.message-v2\"],\"bodyLen\":1696}",
7
+ "[cleanup] {\"ok\":true,\"del\":{\"pageControl\":1,\"cover\":true,\"ddAudio\":0,\"audioTags\":0,\"timeInfo\":true,\"tailSiblingsRemoved\":3},\"hid\":{\".iget-header\":1,\"div.course-nav\":1,\"aside.iget-side-button\":1,\"div.course-nav-mask\":1,\".iget-audio-player\":1},\"residual\":{\"cover\":0,\"ddAudio\":0,\"timeInfo\":0,\"myComment\":0,\"messageV2\":0},\"rectBefore\":{\"x\":0,\"y\":60,\"w\":1200},\"rectAfter\":{\"x\":0,\"y\":60,\"w\":1200}}",
8
+ "[PDF] /Users/wangdong/Documents/Project/cc-control-all/得到_薛兆丰的经济学/课前必读(1讲)/发刊词丨只给你地道的经济学思维.pdf (1.71 MiB)",
9
+ "\n===== [2/3] 第001讲丨战俘营里的经济组织 =====",
10
+ "[switch] {\"mode\":\"clicked\",\"title\":\"第001讲丨战俘营里的经济组织\",\"url\":\"https://www.dedao.cn/course/article?id=ml9WNdP1QvaeKYG0PJAzx82Dyog0BZ\"}",
11
+ "[stabilize] {\"ok\":true,\"bodyLen\":3742,\"imgs\":5,\"imgsNotLoaded\":0,\"docH\":13752}",
12
+ "[assert] {\"url\":\"https://www.dedao.cn/course/article?id=ml9WNdP1QvaeKYG0PJAzx82Dyog0BZ\",\"title\":\"第001讲丨战俘营里的经济组织\",\"hasWrap\":true,\"cover\":true,\"ddAudio\":1,\"audioTags\":0,\"timeInfo\":true,\"wrapChildren\":[\"DIV.pageControl\",\"DIV.\",\"DIV.article-body\",\"DIV.article-time-info\",\"DIV.my-comment\",\"DIV.message-v2\"],\"bodyLen\":3742}",
13
+ "[cleanup] {\"ok\":true,\"del\":{\"pageControl\":1,\"cover\":true,\"ddAudio\":1,\"audioTags\":0,\"timeInfo\":true,\"tailSiblingsRemoved\":3},\"hid\":{\".iget-header\":1,\"div.course-nav\":1,\"aside.iget-side-button\":1,\"div.course-nav-mask\":1,\".iget-audio-player\":1},\"residual\":{\"cover\":0,\"ddAudio\":0,\"timeInfo\":0,\"myComment\":0,\"messageV2\":0},\"rectBefore\":{\"x\":0,\"y\":60,\"w\":1200},\"rectAfter\":{\"x\":0,\"y\":60,\"w\":1200}}",
14
+ "[PDF] /Users/wangdong/Documents/Project/cc-control-all/得到_薛兆丰的经济学/01-经济学本源之一:东西不够(110讲)/第001讲丨战俘营里的经济组织.pdf (0.98 MiB)",
15
+ "\n===== [3/3] 第002讲丨马粪争夺案 =====",
16
+ "[switch] {\"mode\":\"clicked\",\"title\":\"第002讲丨马粪争夺案\",\"url\":\"https://www.dedao.cn/course/article?id=Ay7GQpR6ndOgX60ReV8eBvPzMN4lwE\"}",
17
+ "[stabilize] {\"ok\":true,\"bodyLen\":2133,\"imgs\":3,\"imgsNotLoaded\":0,\"docH\":10861}",
18
+ "[assert] {\"url\":\"https://www.dedao.cn/course/article?id=Ay7GQpR6ndOgX60ReV8eBvPzMN4lwE\",\"title\":\"第002讲丨马粪争夺案\",\"hasWrap\":true,\"cover\":true,\"ddAudio\":1,\"audioTags\":0,\"timeInfo\":true,\"wrapChildren\":[\"DIV.pageControl\",\"DIV.\",\"DIV.article-body\",\"DIV.article-time-info\",\"DIV.my-comment\",\"DIV.message-v2\"],\"bodyLen\":2133}",
19
+ "[cleanup] {\"ok\":true,\"del\":{\"pageControl\":1,\"cover\":true,\"ddAudio\":1,\"audioTags\":0,\"timeInfo\":true,\"tailSiblingsRemoved\":3},\"hid\":{\".iget-header\":1,\"div.course-nav\":1,\"aside.iget-side-button\":1,\"div.course-nav-mask\":1,\".iget-audio-player\":1},\"residual\":{\"cover\":0,\"ddAudio\":0,\"timeInfo\":0,\"myComment\":0,\"messageV2\":0},\"rectBefore\":{\"x\":0,\"y\":60,\"w\":1200},\"rectAfter\":{\"x\":0,\"y\":60,\"w\":1200}}",
20
+ "[PDF] /Users/wangdong/Documents/Project/cc-control-all/得到_薛兆丰的经济学/01-经济学本源之一:东西不够(110讲)/第002讲丨马粪争夺案.pdf (0.62 MiB)"
21
+ ]
@@ -0,0 +1,18 @@
1
+ {
2
+ "url": "https://www.dedao.cn/course/article?id=6EBOqDNZ27YlVdg8oKm4bQ1odMAkgz",
3
+ "title": "发刊词丨只给你地道的经济学思维",
4
+ "hasWrap": true,
5
+ "cover": true,
6
+ "ddAudio": 0,
7
+ "audioTags": 0,
8
+ "timeInfo": true,
9
+ "wrapChildren": [
10
+ "DIV.pageControl",
11
+ "DIV.",
12
+ "DIV.article-body",
13
+ "DIV.article-time-info",
14
+ "DIV.my-comment",
15
+ "DIV.message-v2"
16
+ ],
17
+ "bodyLen": 1696
18
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "ok": true,
3
+ "del": {
4
+ "pageControl": 1,
5
+ "cover": true,
6
+ "ddAudio": 0,
7
+ "audioTags": 0,
8
+ "timeInfo": true,
9
+ "tailSiblingsRemoved": 3
10
+ },
11
+ "hid": {
12
+ ".iget-header": 1,
13
+ "div.course-nav": 1,
14
+ "aside.iget-side-button": 1,
15
+ "div.course-nav-mask": 1,
16
+ ".iget-audio-player": 1
17
+ },
18
+ "residual": {
19
+ "cover": 0,
20
+ "ddAudio": 0,
21
+ "timeInfo": 0,
22
+ "myComment": 0,
23
+ "messageV2": 0
24
+ },
25
+ "rectBefore": {
26
+ "x": 0,
27
+ "y": 60,
28
+ "w": 1200
29
+ },
30
+ "rectAfter": {
31
+ "x": 0,
32
+ "y": 60,
33
+ "w": 1200
34
+ }
35
+ }