@iducky/media-agent 1.1.0 → 1.1.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.
- package/README.md +3 -3
- package/SHA256SUMS +34 -30
- package/bin/media-agent.mjs +19 -7
- package/docs/guides/capabilities.md +6 -2
- package/docs/guides/installation.md +42 -6
- package/manifest.json +74 -58
- package/package.json +1 -1
- package/pyproject.toml +1 -1
- package/resources/capabilities.json +43 -1
- package/skills/douyin-creator-index/SKILL.md +2 -0
- package/skills/douyin-creator-publish/SKILL.md +3 -1
- package/skills/douyin-enterprise-short-video-export/SKILL.md +2 -0
- package/skills/douyin-enterprise-video-rankings/SKILL.md +2 -0
- package/skills/xiaohongshu-creator-publish/SKILL.md +3 -1
- package/src/media_agent/cli.py +5 -0
- package/src/media_agent/commands.sh +20 -20
- package/src/media_agent/platforms/douyin/check_login.py +8 -11
- package/src/media_agent/platforms/douyin/collect_industry_taxonomy.py +10 -1
- package/src/media_agent/platforms/douyin/collect_video_rankings.py +14 -5
- package/src/media_agent/platforms/douyin/douyin_hotspot_v2.py +12 -3
- package/src/media_agent/platforms/douyin/douyin_publish.py +65 -218
- package/src/media_agent/platforms/douyin/enterprise_login.py +6 -11
- package/src/media_agent/platforms/douyin/export_short_video.py +10 -1
- package/src/media_agent/platforms/douyin/login_controller.py +4 -15
- package/src/media_agent/platforms/toutiao/toutiao_login_controller.py +4 -22
- package/src/media_agent/platforms/xiaohongshu/xiaohongshu_check_login.py +8 -11
- package/src/media_agent/platforms/xiaohongshu/xiaohongshu_login_controller.py +5 -17
- package/src/media_agent/platforms/xiaohongshu/xiaohongshu_publish.py +63 -182
- package/src/media_agent/runtime/account_manager.py +16 -88
- package/src/media_agent/runtime/arguments.py +69 -0
- package/src/media_agent/runtime/diagnostics.py +186 -0
- package/src/media_agent/runtime/locking.py +74 -0
- package/src/media_agent/runtime/publish_control.py +98 -0
- package/src/node/skills.mjs +2 -1
- package/tools/artifacts.py +1 -0
- package/tools/install_runtime.py +5 -0
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
## 当前状态
|
|
6
6
|
|
|
7
|
-
- 版本:`1.1.
|
|
7
|
+
- 版本:`1.1.1`;npm 包:`@iducky/media-agent`。
|
|
8
8
|
- 15 个 Skill:覆盖既有抖音、小红书、头条能力;行业分类已合并到企业号视频榜单。
|
|
9
9
|
- 新增抖音、小红书图文 Skill:Agent 使用现有可见持久化浏览器,仅发布提供的图片与成稿,不使用第三方 MCP,不生成素材。
|
|
10
10
|
- 图文能力仍为 `ADAPTED_UNVERIFIED`;小红书视频 CLI 的在线待验收状态不因重构改变。
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
从 npm 安装指定版本:
|
|
15
15
|
|
|
16
16
|
```bash
|
|
17
|
-
npm install -g @iducky/media-agent@1.1.
|
|
17
|
+
npm install -g @iducky/media-agent@1.1.1
|
|
18
18
|
media-agent skills install --target /absolute/agent/skills
|
|
19
19
|
media-agent setup
|
|
20
20
|
media-agent doctor
|
|
@@ -24,7 +24,7 @@ media-agent doctor
|
|
|
24
24
|
|
|
25
25
|
```bash
|
|
26
26
|
python3 tools/build_release.py --output dist
|
|
27
|
-
npm install -g ./dist/iducky-media-agent-1.1.
|
|
27
|
+
npm install -g ./dist/iducky-media-agent-1.1.1.tgz
|
|
28
28
|
media-agent skills install --target /absolute/agent/skills --dry-run
|
|
29
29
|
media-agent skills install --target /absolute/agent/skills
|
|
30
30
|
media-agent setup
|
package/SHA256SUMS
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
c46e4b57a261ee0be74a5907fdc29928709c809a57eb1b217c8fd92470f467a1 README.md
|
|
2
|
+
cea5aed016608b747cb432b826786ea154151c9c43f97c008796f9556735ba1b bin/media-agent.mjs
|
|
3
|
+
9d0b46bbf9c019b8a3f46a68413c6d24ea4b8e58b8d28f999fa80ea2a32f6d5a docs/guides/capabilities.md
|
|
4
4
|
b50e649c04ef4a22f4988604b6f5cef091c0671aaa183e52e782e955e323222b docs/guides/image-text-publishing.md
|
|
5
|
-
|
|
5
|
+
22c812426012066ed344fb25cab34dd54396faf71910936d4a3104e2255c4879 docs/guides/installation.md
|
|
6
6
|
42f137161763150ccff3c027908b3f33732dfccba2d8e754451a418bcf33c134 docs/guides/runtime.md
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
a92d2a1931a45826fbfc38357d38ea0c416c5ab426f80d39beeb044c33fd438c package.json
|
|
8
|
+
1cdcb09fbf5d3893bfc69b5573e148f023c22a3c21adbb093dbd86e0b77dd673 pyproject.toml
|
|
9
|
+
dca57a44d96c1cc72ca7bf43672f708a8f7c2990298399736c58c8e8fce3f30b resources/capabilities.json
|
|
10
10
|
991295ddb6cb6e566f7b61625b7cc4b27e9c48bbe2174ccc4b8f7924b3174a54 resources/configs/accounts.yaml
|
|
11
11
|
23d019759870d3919e2c095f3e92061d4c7bb21ab8e563366a808c1d94e5bb17 resources/configs/profile.template.json
|
|
12
12
|
1d022c8432540d54f7721cc31cc8bfe4bcf5c221769bed231026600fe93fd274 resources/configs/ranking-profiles.yaml
|
|
@@ -21,19 +21,19 @@ cfe24a8f44b11c5e894ccd19b730fdbc884301c2be7a6ea49fb8b39ceb8beea9 skills/douyin-
|
|
|
21
21
|
8fd1171ac198090942b3e7f15887ec682cf010227e7afe74ee97f57351fd9f36 skills/douyin-creator-image-text-publish/references/LICENSE.social-auto-upload
|
|
22
22
|
3b4100deb63efccbd771aa200f912d2c88d2b4996712bb1b412ffd1ec061988b skills/douyin-creator-image-text-publish/references/execution-contract.md
|
|
23
23
|
050128427ee874f5b4fede8e048cc2bd737e97f4983eda1a8481bf9c6a7eb04b skills/douyin-creator-image-text-publish/references/upstream.md
|
|
24
|
-
|
|
24
|
+
73b93e9c8701321077b3679ce7b3e9f5fbba5db3248faea2e63d839c3ebab1e6 skills/douyin-creator-index/SKILL.md
|
|
25
25
|
73648aa2c38b4fed46950e00d5726f1c85c632ff32ad9dc471ff72a244c9f5d3 skills/douyin-creator-index/agents/openai.yaml
|
|
26
26
|
c0d6bfbc5c1b8ecfc28cf5c37645948c4ae3c5c3ce801b0d02b64cac0c6e16d6 skills/douyin-creator-login/SKILL.md
|
|
27
27
|
a4454ea33c2717c75240c6761dbdf563782a456dca4da9419d00c5e8f041160a skills/douyin-creator-login/agents/openai.yaml
|
|
28
|
-
|
|
28
|
+
58bb629902d94bc03aa6fcac61d02f6a8446f65b65d57c2359b5d1f32d91a949 skills/douyin-creator-publish/SKILL.md
|
|
29
29
|
a901c8b4704aa328a2afdb5b5f2223d5bbe6355fe80984e5c6cb203d109be075 skills/douyin-creator-publish/agents/openai.yaml
|
|
30
30
|
dede04df0a162404ca96bd8cf10ec0495d746b3ede5a0160e26b3dd67712a33c skills/douyin-enterprise-leads-login/SKILL.md
|
|
31
31
|
76a7a8a2537b01b28bd131ecef7c878457678247a76e508475e234198b391bdd skills/douyin-enterprise-leads-login/agents/openai.yaml
|
|
32
32
|
8b7b4a1f6969b729929fb7fae8a4d3dd1e039cb17251c7c397d7ac615ffff6e0 skills/douyin-enterprise-leads/SKILL.md
|
|
33
33
|
ccfdc00953377bac4ba4f91f58a1747b25791a44054b04ad76e8925f95806f12 skills/douyin-enterprise-leads/agents/openai.yaml
|
|
34
|
-
|
|
34
|
+
df7e3b34eca684334547cbd2b0cc844c51fab41c7dd49956a67b34c2357a3e95 skills/douyin-enterprise-short-video-export/SKILL.md
|
|
35
35
|
bad374a6c819bf02c0d60d6cd42670384dd9bc5acce25930d4c5d3238001f4d3 skills/douyin-enterprise-short-video-export/agents/openai.yaml
|
|
36
|
-
|
|
36
|
+
81cd57bb3ce0f136d03ba4a97377fdcd55697d4f294b294511194a28f473e8a7 skills/douyin-enterprise-video-rankings/SKILL.md
|
|
37
37
|
80e56219c96f392e8ea6bcfd07b85290905df034db8f4c9abe49c3f12972eefa skills/douyin-enterprise-video-rankings/agents/openai.yaml
|
|
38
38
|
fb7193750db29be9f8cc93e21c53ed4753fde27b8424029057852fa1db8ef0b7 skills/douyin-enterprise-video-rankings/references/industry-taxonomy.md
|
|
39
39
|
a419f42a677e55f8dc1da46419a5b73c87deb716f87e05d311294133b754a936 skills/douyin-web-login/SKILL.md
|
|
@@ -49,46 +49,50 @@ a419f42a677e55f8dc1da46419a5b73c87deb716f87e05d311294133b754a936 skills/douyin-
|
|
|
49
49
|
52b36451770166681e7b10f8c73bcf6a85334da5366c9122ac45b7fa117823c8 skills/xiaohongshu-creator-image-text-publish/references/upstream.md
|
|
50
50
|
871fe010e8d2f419b172a10b3ec6ab15b851d1f8c799b14220a10e520b7709e2 skills/xiaohongshu-creator-login/SKILL.md
|
|
51
51
|
ef3c4c9cba3b079f26a0a676b55b195ff39a114f66757f992986f08aba2a841f skills/xiaohongshu-creator-login/agents/openai.yaml
|
|
52
|
-
|
|
52
|
+
17a8a40293c0cdd045db82aba4848ae0488f2bc20e1884ecb0975c9ad2970f30 skills/xiaohongshu-creator-publish/SKILL.md
|
|
53
53
|
a75940ca97d7b641c32dde6962edf437fb3312dc8374f039922d72edc977df64 skills/xiaohongshu-creator-publish/agents/openai.yaml
|
|
54
54
|
04811b13579095b984b1456bdc429b6b687aca691d478cc596a611391f0ec1a1 src/media_agent/__init__.py
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
1439ad26629c6f81fcd59034930a4e136c084a54accb82cd60489735079c3d39 src/media_agent/cli.py
|
|
56
|
+
9a0ef70ee4719dd13dd5a6d76be240571744456c5d5c3aa13f0b82611c90cf6a src/media_agent/commands.sh
|
|
57
57
|
04811b13579095b984b1456bdc429b6b687aca691d478cc596a611391f0ec1a1 src/media_agent/platforms/__init__.py
|
|
58
58
|
04811b13579095b984b1456bdc429b6b687aca691d478cc596a611391f0ec1a1 src/media_agent/platforms/douyin/__init__.py
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
d43b2e7a49b17eb081361785a7b2fc1fbca749b66a503e3966c01d37a39303ec src/media_agent/platforms/douyin/check_login.py
|
|
60
|
+
b4f3f9b2026bba81e30330c5d6a91e823ec4d37dc8af233bc67324e0f74d74ce src/media_agent/platforms/douyin/collect_industry_taxonomy.py
|
|
61
|
+
75173f6ee53f64ae15a1f40ff283209bf5a8470935b0eb35b8a9ca50f2db4bde src/media_agent/platforms/douyin/collect_video_rankings.py
|
|
62
62
|
a0ec4757b9c95099527b1300b5b3d26d477263b34f53d6d32af002b0879eab36 src/media_agent/platforms/douyin/douyin_full_login.py
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
63
|
+
ee8f1e6b98b99dd168f17e20d78cfccc7e102ca3a4948b8d035dbac9eab31f5f src/media_agent/platforms/douyin/douyin_hotspot_v2.py
|
|
64
|
+
9e296eba6ac3dbe91ec57f10ac16a36c12fd17200389624e52671a2ac847c5be src/media_agent/platforms/douyin/douyin_publish.py
|
|
65
|
+
4e8feaaa4f5117c255d99af480a740684e8d23e4bf76062db928ca1b14b62e34 src/media_agent/platforms/douyin/enterprise_login.py
|
|
66
|
+
fded1bf93d9f8296add3237e792074896f4f362a08d2d3d215c9194d71b1ecc2 src/media_agent/platforms/douyin/export_short_video.py
|
|
67
|
+
0f55205a794773997c0b7657e1ab12a3d97e3967460500a239b64e94926df5d6 src/media_agent/platforms/douyin/login_controller.py
|
|
68
68
|
61f1a546118e982a26235dcda31a4414838f2c3c0b777254b2509a364e5a5ced src/media_agent/platforms/douyin/validate_industry_taxonomy.py
|
|
69
69
|
2086fe809679e589ee377a8aeff42b153a83beaff4ff84b911f4a4c999d3d91f src/media_agent/platforms/douyin/validate_rankings.py
|
|
70
70
|
04811b13579095b984b1456bdc429b6b687aca691d478cc596a611391f0ec1a1 src/media_agent/platforms/toutiao/__init__.py
|
|
71
71
|
a5db04d0ab4a22e04ce09b96dcba5f98bcccbd4a83400426b9b9f81df47a2fcc src/media_agent/platforms/toutiao/toutiao_check_login.py
|
|
72
|
-
|
|
72
|
+
627a55ac589465f331b53feb342874b65008d9d1071c6f70803cada0f6b4124a src/media_agent/platforms/toutiao/toutiao_login_controller.py
|
|
73
73
|
346b0ed29c9def46945a3650e82c5a71f33c21947823912c981c483a4cd9406d src/media_agent/platforms/toutiao/toutiao_login_evidence.py
|
|
74
74
|
22c4599c5a91bba2a5c828aabc2d358908d1992b19f7377b672cfbb4f4cecf7f src/media_agent/platforms/toutiao/toutiao_login_ipc.py
|
|
75
75
|
04811b13579095b984b1456bdc429b6b687aca691d478cc596a611391f0ec1a1 src/media_agent/platforms/xiaohongshu/__init__.py
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
9eb7101f6aa8ed3b9faafcd5e4a038e6bae407c2e60ba8427c45ccfee2ae5caf src/media_agent/platforms/xiaohongshu/xiaohongshu_check_login.py
|
|
77
|
+
37ca676d0d081c87d5a5680c1d09939ca69a14a42348f7bde573c2f16a4b3900 src/media_agent/platforms/xiaohongshu/xiaohongshu_login_controller.py
|
|
78
78
|
6cec01b64f18c1786fe056d62972cfcda8f5e265b6505b5d248474838981aeb7 src/media_agent/platforms/xiaohongshu/xiaohongshu_login_evidence.py
|
|
79
79
|
0a97a6c5db896a6272bd392d92b3853e9fe0968c689c4aa8cd2d7065044a5777 src/media_agent/platforms/xiaohongshu/xiaohongshu_login_ipc.py
|
|
80
|
-
|
|
80
|
+
2adb9fe6f68a9dc38c99aed504eb709ad71aef7093433a03594658fcbdcf0e72 src/media_agent/platforms/xiaohongshu/xiaohongshu_publish.py
|
|
81
81
|
04811b13579095b984b1456bdc429b6b687aca691d478cc596a611391f0ec1a1 src/media_agent/runtime/__init__.py
|
|
82
|
-
|
|
82
|
+
feb4cd0c47843a2a71a621071c4e21c8459be8fead88a32e900aeb33400413ef src/media_agent/runtime/account_manager.py
|
|
83
|
+
8f045a85fc513dacba921356608f5d8084a59c278a2175711bc418ed7fce4c16 src/media_agent/runtime/arguments.py
|
|
83
84
|
48eb9fd61a6a9f9695d6f4a4eab776ee90641bd3ae57b3a5242d4e2e58986e67 src/media_agent/runtime/browser.py
|
|
85
|
+
22004a8cef13a5f38a2e8ad705a1a7296ab854e1aa5dce0ca49149d8b5b2157d src/media_agent/runtime/diagnostics.py
|
|
86
|
+
593fe385a82ebda28069b2409e98c01d23b7efcd1f0b7aac002c169d37adbacf src/media_agent/runtime/locking.py
|
|
84
87
|
e9981bf51a388022a82bfe9c5670188c89315e6597788245be74b4eb3559a467 src/media_agent/runtime/paths.py
|
|
88
|
+
f27849115624cd8e18f58eadce357f86345f822c91d92e040097230edd56037e src/media_agent/runtime/publish_control.py
|
|
85
89
|
c337b61e5a047df1dc9a0080c9ad5b0ffed7c9e82bc382896c6b887a73b25f8a src/media_agent/script_map.json
|
|
86
90
|
a53630d6d172e6ce701e3709cbb54012c447c72f5f372b45931e5e94baf1f243 src/node/config.mjs
|
|
87
91
|
7cef52f29728dba2b8a863cb496a8f95a047f8330ed30fd8e1a91de1f2f78a22 src/node/integrity.mjs
|
|
88
|
-
|
|
92
|
+
09f19f27ea4228dd1bd005d0b3c41a37d3470b7d2cde354b539eaca5b2feff63 src/node/skills.mjs
|
|
89
93
|
d0cbccf5f5c349eec03bc9410210d7b9895c4fe251679034f9d109cbda0d9624 tools/archive_releases.py
|
|
90
|
-
|
|
94
|
+
4f186184f889d56b76e532219cbcb5173fbd6f766aaf36aa3551954326014f03 tools/artifacts.py
|
|
91
95
|
dbd124c7498f961e854e935d7950aba59a01de58304146669f548b7c083e5e0a tools/build_release.py
|
|
92
96
|
f670d0559a2dcbfebb9baf41b8c211ebdacc6fd2320424374c0ca90571e005df tools/check_catalog.py
|
|
93
|
-
|
|
97
|
+
49417268bb04989e1b5d1824bd7d3d65425792c5c475738cceb4001cfe3c15d6 tools/install_runtime.py
|
|
94
98
|
1f8d3da3ea5c934a00ebe76597b275e1533cebcdf15dacd1c74f7d82c1324a58 tools/run_tests.py
|
package/bin/media-agent.mjs
CHANGED
|
@@ -26,7 +26,7 @@ function main() {
|
|
|
26
26
|
for (let i=0;i<args.length;i++) if(args[i]==='--home') {home=expand(value(args,i)); args.splice(i,2); i--;}
|
|
27
27
|
const [cmd,...rest]=args;
|
|
28
28
|
if (!cmd || ['help','--help','-h'].includes(cmd)) {
|
|
29
|
-
console.log(`media-agent ${pkg.version}\n\nUsage:\n media-agent skills list\n media-agent skills install --target DIR [--skill NAME ...] [--dry-run]\n media-agent setup [--home DIR] [--python PATH] [--dry-run] [--no-deps]\n media-agent doctor [--home DIR]\n media-agent config export|import DIR [--dry-run] [--home DIR]\n media-agent commands\n media-agent <command> [arguments] [--home DIR]\n\nSkill installation and configuration commands need only Node.js. Runtime: Python >=3.9, visible browser.\nBusiness commands: media-agent commands`); return 0;
|
|
29
|
+
console.log(`media-agent ${pkg.version}\n\nUsage:\n media-agent skills list\n media-agent skills install --target DIR [--skill NAME ...] [--dry-run]\n media-agent setup [--home DIR] [--python PATH] [--dry-run] [--no-deps]\n media-agent doctor [--home DIR]\n media-agent config export|import DIR [--dry-run] [--home DIR]\n media-agent capabilities list --json\n media-agent config validate --json\n media-agent tasks list|show [TASK_ID] [--profile-id ID] --json\n media-agent upgrade --check --json\n media-agent init ID --platform NAME --label LABEL --login METHOD [--capability NAME]\n media-agent commands\n media-agent <command> [arguments] [--home DIR]\n\nSkill installation and configuration commands need only Node.js. Runtime: Python >=3.9, visible browser.\nBusiness commands: media-agent commands`); return 0;
|
|
30
30
|
}
|
|
31
31
|
if(cmd==='--version') {console.log(pkg.version); return 0;}
|
|
32
32
|
if(cmd==='skills') {
|
|
@@ -47,7 +47,12 @@ function main() {
|
|
|
47
47
|
else migrateSkills(catalog,target,dry);
|
|
48
48
|
return 0;
|
|
49
49
|
}
|
|
50
|
-
if(cmd==='
|
|
50
|
+
if(cmd==='capabilities') {
|
|
51
|
+
if(rest[0]!=='list' || rest.slice(1).some(x=>x!=='--json')) throw new Error('Usage: capabilities list [--json]');
|
|
52
|
+
const catalog=JSON.parse(fs.readFileSync(path.join(root,'resources/capabilities.json'),'utf8'));
|
|
53
|
+
console.log(JSON.stringify({skills:catalog.skills,commands:catalog.commands},null,2)); return 0;
|
|
54
|
+
}
|
|
55
|
+
if(cmd==='config' && rest[0]!=='validate') {
|
|
51
56
|
transferConfig(home,rest); return 0;
|
|
52
57
|
}
|
|
53
58
|
if(cmd==='run-script' || cmd==='run') throw new Error('Unsupported public command; use media-agent commands');
|
|
@@ -70,18 +75,25 @@ function main() {
|
|
|
70
75
|
const active=path.join(home,'.app/current');
|
|
71
76
|
let activeVersion=null;
|
|
72
77
|
try { activeVersion=JSON.parse(fs.readFileSync(path.join(active,'package.json'),'utf8')).version; } catch {}
|
|
73
|
-
|
|
74
|
-
|
|
78
|
+
let integrity={verified:false,error:null};
|
|
79
|
+
try { verifyIntegrity(root); if(fs.existsSync(active)) {verifyIntegrity(active); integrity.verified=fs.existsSync(path.join(active,'manifest.json'));} }
|
|
80
|
+
catch(error) {integrity.error=error.message;}
|
|
81
|
+
const checks=spawnSync(python,['-c',`import json; from media_agent.runtime.diagnostics import upgrade_report,validate_config; from media_agent.runtime.paths import runtime_home; print(json.dumps({'upgrade':upgrade_report(runtime_home()),'configuration':validate_config(runtime_home())}))`],{encoding:'utf8',env});
|
|
82
|
+
let runtimeChecks;
|
|
83
|
+
try { runtimeChecks=JSON.parse(checks.stdout); } catch {runtimeChecks={error:checks.error?.message || checks.stderr || 'Runtime diagnostics unavailable'};}
|
|
84
|
+
const ready=Boolean(report.supported && Object.values(report.dependencies||{}).every(Boolean) && activeVersion===pkg.version && fs.existsSync(path.join(active,'src/media_agent/cli.py')) && !integrity.error && !runtimeChecks.error && runtimeChecks.configuration.valid);
|
|
85
|
+
console.log(JSON.stringify({version:pkg.version,active_version:activeVersion,active_code:active,runtime_home:home,python,python_status:report,integrity,checks:runtimeChecks,ready},null,2));
|
|
75
86
|
return ready?0:1;
|
|
76
87
|
}
|
|
77
88
|
const active=path.join(home,'.app/current');
|
|
78
89
|
const activeExists=fs.existsSync(active);
|
|
79
|
-
|
|
90
|
+
const candidateDiagnostic=['tasks','upgrade','config'].includes(cmd);
|
|
91
|
+
if(!candidateDiagnostic && !activeExists && fs.existsSync(path.join(home,'.app')) && fs.readdirSync(path.join(home,'.app')).includes('current'))
|
|
80
92
|
throw new Error('Activated runtime is missing; run media-agent setup');
|
|
81
|
-
if(activeExists) {
|
|
93
|
+
if(activeExists && !candidateDiagnostic) {
|
|
82
94
|
if(!fs.existsSync(path.join(active,'src/media_agent/cli.py'))) throw new Error('Activated runtime is incomplete; run media-agent setup');
|
|
83
95
|
env.PYTHONPATH=path.join(fs.realpathSync(active),'src')+(process.env.PYTHONPATH?path.delimiter+process.env.PYTHONPATH:'');
|
|
84
|
-
} else if(pkg.mediaAgentArtifact &&
|
|
96
|
+
} else if(pkg.mediaAgentArtifact && !['commands','tasks','upgrade','config'].includes(cmd)) {
|
|
85
97
|
throw new Error('Runtime is not installed; run media-agent setup first');
|
|
86
98
|
}
|
|
87
99
|
return run(python,['-m','media_agent.cli',...(cmd==='commands'?['--help']:args)],env);
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# Media Agent 能力矩阵与部署状态
|
|
2
2
|
|
|
3
3
|
> 更新日期:2026-09-23(Asia/Shanghai)
|
|
4
|
-
> 当前源码:`1.1.
|
|
4
|
+
> 当前源码:`1.1.1`,15 个 Skill;npm 包名为 `@iducky/media-agent`,亦可从源码构建安装;包的发布不等于已部署到用户真实运行环境。安装方式见[安装指南](installation.md)。
|
|
5
5
|
>
|
|
6
6
|
> 历史 v1.0.1–v1.0.10 制品已迁入 [GitHub Releases](https://github.com/myducky/MediaAgentCapabilities/releases),源码仓库仅保留 `docs/releases/index.json`。v1.0.10 包内仍为 14 个 Skill,不改写历史资产。
|
|
7
7
|
>
|
|
8
8
|
> 部署口径:将选定社交媒体 Skills 安装到业务 Agent 的实际技能目录;Hermes 可使用独立的 `social-media` 业务 Profile。每个真实平台账号仍使用独立社交账号浏览器 Profile,两层 Profile 不应混淆。
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
当前测试包含安装构建契约及运行时安全行为回归,具体数量以 `npm test` 输出为准,不能据此宣称平台流程已在线验收。下表的历史实测记录与当前离线检查分别注明。
|
|
11
11
|
|
|
12
12
|
## 能力覆盖
|
|
13
13
|
|
|
@@ -101,3 +101,7 @@ v1.0.10 历史包中的该 SKILL.md 新增 CLI 命令小节,SHA-256 更新为
|
|
|
101
101
|
6. 确认已有账号配置、Profile 和 `browser_data` 未被覆盖。安装本身不要求打开或关闭用户现有浏览器;不能把全机进程/lock 数必须为 0 当作部署条件。
|
|
102
102
|
7. 按具体 Skill,在不与活动会话冲突的条件下进行必要的只读登录和业务验收;需实际发布时取得该作品的明确授权。图文仍在真实验收后才能从 `ADAPTED_UNVERIFIED` 升级状态。
|
|
103
103
|
8. 记录目标版本、数据根、安装 Skill 名单、依赖诊断结果和在线验收范围;`doctor.ready` 不等于已登录或发布验证通过。
|
|
104
|
+
|
|
105
|
+
## 1.1.1 运行时安全修订
|
|
106
|
+
|
|
107
|
+
发布确认绑定账号、任务与素材,要求对应准备进程仍存活;未确定结果禁止直接重试。锁由当前进程和任务共同拥有,存活进程的锁不会因时间长而被接管。新增只读能力、配置、任务及升级检查。旧热点、榜单、行业分类及导出 CLI 的实际执行返回 IMPLEMENTATION_REQUIRED,直到能够验证全部输入参数;Skill 路径及原在线验收边界保持不变。
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# 安装、升级与回滚
|
|
2
2
|
|
|
3
|
-
当前源码版本为 1.1.
|
|
3
|
+
当前源码版本为 1.1.1。npm 包名为 `@iducky/media-agent`。安装指定版本:
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
npm install -g @iducky/media-agent@1.1.
|
|
6
|
+
npm install -g @iducky/media-agent@1.1.1
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
也可按以下步骤从源码构建并安装。npm 安装只安装命令与配套源码;仍需显式执行 `skills install` 和 `setup`。
|
|
@@ -15,8 +15,8 @@ npm install -g @iducky/media-agent@1.1.0
|
|
|
15
15
|
```bash
|
|
16
16
|
python3 tools/build_release.py --output dist
|
|
17
17
|
cd dist
|
|
18
|
-
shasum -a 256 -c iducky-media-agent-1.1.
|
|
19
|
-
npm install -g ./iducky-media-agent-1.1.
|
|
18
|
+
shasum -a 256 -c iducky-media-agent-1.1.1.tgz.sha256
|
|
19
|
+
npm install -g ./iducky-media-agent-1.1.1.tgz
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
npm 安装不会自动创建 Python 环境、下载浏览器或启动浏览器,也不会自动选择 Agent 的 Skill 目录。包内携带对应版本源码与 Skill,不依赖上一个发布包。
|
|
@@ -79,12 +79,18 @@ media-agent config import /absolute/config-backup --home /absolute/new-runtime
|
|
|
79
79
|
|
|
80
80
|
## 可选离线包
|
|
81
81
|
|
|
82
|
-
完整离线包仅是构建产物,位于 `dist/media-agent-capabilities-v1.1.
|
|
82
|
+
完整离线包仅是构建产物,位于 `dist/media-agent-capabilities-v1.1.1.tar.gz`,不提交到源码仓库。离线包包含代码、Skill、非敏感模板、使用文档与校验清单,不包含 Python 解释器、依赖 wheel 或浏览器二进制;完全断网环境需提前准备这些依赖。
|
|
83
83
|
|
|
84
84
|
先验证外部 `.sha256`,再解压并执行 `node bin/media-agent.mjs setup`;Skill 安装使用同一入口的 `skills install`。包内 manifest 会检查缺失、篡改、额外文件和符号链接,并在安装或依赖下载前拒绝不完整制品。校验哈希用于验证完整性,不能替代可信下载来源。
|
|
85
85
|
|
|
86
86
|
## 升级与回滚
|
|
87
87
|
|
|
88
|
+
1.1.1 起先执行 `media-agent upgrade --check --json --home <原运行目录>`。
|
|
89
|
+
该命令只读检查活动 Profile 锁、浏览器进程、发布账本及旧入口;退出码 6
|
|
90
|
+
表示需要先处理阻塞。它是状态快照,不会暂停 Hermes,也不等于无停机升级。
|
|
91
|
+
先停止受影响 Agent 接收新任务,等待原任务收尾,再执行 setup。
|
|
92
|
+
setup 在修改依赖或切换代码前重复检查;不删除活动锁,也不自动解决未知发布结果。
|
|
93
|
+
|
|
88
94
|
1. 安装新版 npm 包,然后运行 `setup`;已有账号配置、Profile、任务记录不覆盖。
|
|
89
95
|
2. 按需运行 `skills install`,审阅备份与定制合并。
|
|
90
96
|
3. 运行 `doctor`、CLI 离线检查,再进行所需在线验收。
|
|
@@ -100,4 +106,34 @@ media-agent config import /absolute/config-backup --home /absolute/new-runtime
|
|
|
100
106
|
|
|
101
107
|
先安装新版 npm 包并执行 `setup`,再更新对应 Agent 的 Skill。检查自定义 Skill、定时任务和外部脚本中的旧路径,统一改用 `media-agent`。安装器会提示已有旧入口但不会删除它们,以免破坏尚未迁移的调用方;确认全部迁移并结束旧任务后再清理运行目录内的旧程序。不要删除 Profile、登录态或业务记录。
|
|
102
108
|
|
|
103
|
-
|
|
109
|
+
离线测试使用隔离临时目录。当前版本另已完成本机 Hermes xx 实例的安全升级与重载,账号配置、浏览器 Profile 和原始发布账本保持不变;这不代表其他安装环境已升级,也不代表平台发布已在线验收。
|
|
110
|
+
|
|
111
|
+
## 诊断与任务查询
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
media-agent capabilities list --json
|
|
115
|
+
media-agent config validate --json
|
|
116
|
+
media-agent tasks list --profile-id <账号> --json
|
|
117
|
+
media-agent tasks show <task_id> --profile-id <账号> --json
|
|
118
|
+
media-agent upgrade --check --json
|
|
119
|
+
media-agent init <账号> --platform douyin --label <备注> --login phone_qr \
|
|
120
|
+
--account-type personal --capability creator_publish
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
发布确认必须使用 prepare 返回的 task_id:
|
|
124
|
+
`media-agent publish-confirm <账号> --task-id <task_id>`;小红书对应
|
|
125
|
+
`media-agent xhs-publish-confirm <账号> --task-id <task_id>`。信号发送成功只表示
|
|
126
|
+
确认已排队,不表示平台发布成功。没有匹配的存活准备进程时拒绝确认;不再
|
|
127
|
+
启动新浏览器猜测发布目标。indeterminate 素材不能直接再次准备发布。
|
|
128
|
+
|
|
129
|
+
热点、榜单、行业分类及短视频导出的旧浏览器脚本尚不能验证全部输入条件,
|
|
130
|
+
1.1.1 会在实际执行前返回 IMPLEMENTATION_REQUIRED(退出码 6),不再
|
|
131
|
+
使用固定测试账号或静默忽略日期。仅 dry-run/帮助输出不代表采集可执行;
|
|
132
|
+
可继续按对应 Skill 的可见浏览器工作流操作,业务验收状态保持不变。
|
|
133
|
+
|
|
134
|
+
### 历史任务封存
|
|
135
|
+
|
|
136
|
+
只有用户明确确认某历史任务不再继续、且运行时没有活动锁或浏览器时,才执行
|
|
137
|
+
`media-agent tasks retire <task_id> --profile-id <账号> --reason <确认依据>`。
|
|
138
|
+
原始账本及 state 不变,封存单绑定最新记录的 SHA-256;后续有新记录会自动使旧封存失效。
|
|
139
|
+
封存只解除升级等待,不代表作品成功或失败,也不会解除 indeterminate 素材的去重保护。
|
package/manifest.json
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": 1,
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"files": {
|
|
5
5
|
"README.md": {
|
|
6
6
|
"size": 6354,
|
|
7
|
-
"sha256": "
|
|
7
|
+
"sha256": "c46e4b57a261ee0be74a5907fdc29928709c809a57eb1b217c8fd92470f467a1"
|
|
8
8
|
},
|
|
9
9
|
"bin/media-agent.mjs": {
|
|
10
|
-
"size":
|
|
11
|
-
"sha256": "
|
|
10
|
+
"size": 7489,
|
|
11
|
+
"sha256": "cea5aed016608b747cb432b826786ea154151c9c43f97c008796f9556735ba1b"
|
|
12
12
|
},
|
|
13
13
|
"docs/guides/capabilities.md": {
|
|
14
|
-
"size":
|
|
15
|
-
"sha256": "
|
|
14
|
+
"size": 12294,
|
|
15
|
+
"sha256": "9d0b46bbf9c019b8a3f46a68413c6d24ea4b8e58b8d28f999fa80ea2a32f6d5a"
|
|
16
16
|
},
|
|
17
17
|
"docs/guides/image-text-publishing.md": {
|
|
18
18
|
"size": 6490,
|
|
19
19
|
"sha256": "b50e649c04ef4a22f4988604b6f5cef091c0671aaa183e52e782e955e323222b"
|
|
20
20
|
},
|
|
21
21
|
"docs/guides/installation.md": {
|
|
22
|
-
"size":
|
|
23
|
-
"sha256": "
|
|
22
|
+
"size": 9130,
|
|
23
|
+
"sha256": "22c812426012066ed344fb25cab34dd54396faf71910936d4a3104e2255c4879"
|
|
24
24
|
},
|
|
25
25
|
"docs/guides/runtime.md": {
|
|
26
26
|
"size": 1657,
|
|
@@ -28,15 +28,15 @@
|
|
|
28
28
|
},
|
|
29
29
|
"package.json": {
|
|
30
30
|
"size": 857,
|
|
31
|
-
"sha256": "
|
|
31
|
+
"sha256": "a92d2a1931a45826fbfc38357d38ea0c416c5ab426f80d39beeb044c33fd438c"
|
|
32
32
|
},
|
|
33
33
|
"pyproject.toml": {
|
|
34
34
|
"size": 565,
|
|
35
|
-
"sha256": "
|
|
35
|
+
"sha256": "1cdcb09fbf5d3893bfc69b5573e148f023c22a3c21adbb093dbd86e0b77dd673"
|
|
36
36
|
},
|
|
37
37
|
"resources/capabilities.json": {
|
|
38
|
-
"size":
|
|
39
|
-
"sha256": "
|
|
38
|
+
"size": 2272,
|
|
39
|
+
"sha256": "dca57a44d96c1cc72ca7bf43672f708a8f7c2990298399736c58c8e8fce3f30b"
|
|
40
40
|
},
|
|
41
41
|
"resources/configs/accounts.yaml": {
|
|
42
42
|
"size": 631,
|
|
@@ -95,8 +95,8 @@
|
|
|
95
95
|
"sha256": "050128427ee874f5b4fede8e048cc2bd737e97f4983eda1a8481bf9c6a7eb04b"
|
|
96
96
|
},
|
|
97
97
|
"skills/douyin-creator-index/SKILL.md": {
|
|
98
|
-
"size":
|
|
99
|
-
"sha256": "
|
|
98
|
+
"size": 2723,
|
|
99
|
+
"sha256": "73b93e9c8701321077b3679ce7b3e9f5fbba5db3248faea2e63d839c3ebab1e6"
|
|
100
100
|
},
|
|
101
101
|
"skills/douyin-creator-index/agents/openai.yaml": {
|
|
102
102
|
"size": 271,
|
|
@@ -111,8 +111,8 @@
|
|
|
111
111
|
"sha256": "a4454ea33c2717c75240c6761dbdf563782a456dca4da9419d00c5e8f041160a"
|
|
112
112
|
},
|
|
113
113
|
"skills/douyin-creator-publish/SKILL.md": {
|
|
114
|
-
"size":
|
|
115
|
-
"sha256": "
|
|
114
|
+
"size": 3425,
|
|
115
|
+
"sha256": "58bb629902d94bc03aa6fcac61d02f6a8446f65b65d57c2359b5d1f32d91a949"
|
|
116
116
|
},
|
|
117
117
|
"skills/douyin-creator-publish/agents/openai.yaml": {
|
|
118
118
|
"size": 267,
|
|
@@ -135,16 +135,16 @@
|
|
|
135
135
|
"sha256": "76a7a8a2537b01b28bd131ecef7c878457678247a76e508475e234198b391bdd"
|
|
136
136
|
},
|
|
137
137
|
"skills/douyin-enterprise-short-video-export/SKILL.md": {
|
|
138
|
-
"size":
|
|
139
|
-
"sha256": "
|
|
138
|
+
"size": 2010,
|
|
139
|
+
"sha256": "df7e3b34eca684334547cbd2b0cc844c51fab41c7dd49956a67b34c2357a3e95"
|
|
140
140
|
},
|
|
141
141
|
"skills/douyin-enterprise-short-video-export/agents/openai.yaml": {
|
|
142
142
|
"size": 274,
|
|
143
143
|
"sha256": "bad374a6c819bf02c0d60d6cd42670384dd9bc5acce25930d4c5d3238001f4d3"
|
|
144
144
|
},
|
|
145
145
|
"skills/douyin-enterprise-video-rankings/SKILL.md": {
|
|
146
|
-
"size":
|
|
147
|
-
"sha256": "
|
|
146
|
+
"size": 4721,
|
|
147
|
+
"sha256": "81cd57bb3ce0f136d03ba4a97377fdcd55697d4f294b294511194a28f473e8a7"
|
|
148
148
|
},
|
|
149
149
|
"skills/douyin-enterprise-video-rankings/agents/openai.yaml": {
|
|
150
150
|
"size": 335,
|
|
@@ -207,8 +207,8 @@
|
|
|
207
207
|
"sha256": "ef3c4c9cba3b079f26a0a676b55b195ff39a114f66757f992986f08aba2a841f"
|
|
208
208
|
},
|
|
209
209
|
"skills/xiaohongshu-creator-publish/SKILL.md": {
|
|
210
|
-
"size":
|
|
211
|
-
"sha256": "
|
|
210
|
+
"size": 11831,
|
|
211
|
+
"sha256": "17a8a40293c0cdd045db82aba4848ae0488f2bc20e1884ecb0975c9ad2970f30"
|
|
212
212
|
},
|
|
213
213
|
"skills/xiaohongshu-creator-publish/agents/openai.yaml": {
|
|
214
214
|
"size": 284,
|
|
@@ -219,12 +219,12 @@
|
|
|
219
219
|
"sha256": "04811b13579095b984b1456bdc429b6b687aca691d478cc596a611391f0ec1a1"
|
|
220
220
|
},
|
|
221
221
|
"src/media_agent/cli.py": {
|
|
222
|
-
"size":
|
|
223
|
-
"sha256": "
|
|
222
|
+
"size": 1285,
|
|
223
|
+
"sha256": "1439ad26629c6f81fcd59034930a4e136c084a54accb82cd60489735079c3d39"
|
|
224
224
|
},
|
|
225
225
|
"src/media_agent/commands.sh": {
|
|
226
|
-
"size":
|
|
227
|
-
"sha256": "
|
|
226
|
+
"size": 18171,
|
|
227
|
+
"sha256": "9a0ef70ee4719dd13dd5a6d76be240571744456c5d5c3aa13f0b82611c90cf6a"
|
|
228
228
|
},
|
|
229
229
|
"src/media_agent/platforms/__init__.py": {
|
|
230
230
|
"size": 32,
|
|
@@ -235,40 +235,40 @@
|
|
|
235
235
|
"sha256": "04811b13579095b984b1456bdc429b6b687aca691d478cc596a611391f0ec1a1"
|
|
236
236
|
},
|
|
237
237
|
"src/media_agent/platforms/douyin/check_login.py": {
|
|
238
|
-
"size":
|
|
239
|
-
"sha256": "
|
|
238
|
+
"size": 9056,
|
|
239
|
+
"sha256": "d43b2e7a49b17eb081361785a7b2fc1fbca749b66a503e3966c01d37a39303ec"
|
|
240
240
|
},
|
|
241
241
|
"src/media_agent/platforms/douyin/collect_industry_taxonomy.py": {
|
|
242
|
-
"size":
|
|
243
|
-
"sha256": "
|
|
242
|
+
"size": 8727,
|
|
243
|
+
"sha256": "b4f3f9b2026bba81e30330c5d6a91e823ec4d37dc8af233bc67324e0f74d74ce"
|
|
244
244
|
},
|
|
245
245
|
"src/media_agent/platforms/douyin/collect_video_rankings.py": {
|
|
246
|
-
"size":
|
|
247
|
-
"sha256": "
|
|
246
|
+
"size": 16244,
|
|
247
|
+
"sha256": "75173f6ee53f64ae15a1f40ff283209bf5a8470935b0eb35b8a9ca50f2db4bde"
|
|
248
248
|
},
|
|
249
249
|
"src/media_agent/platforms/douyin/douyin_full_login.py": {
|
|
250
250
|
"size": 18475,
|
|
251
251
|
"sha256": "a0ec4757b9c95099527b1300b5b3d26d477263b34f53d6d32af002b0879eab36"
|
|
252
252
|
},
|
|
253
253
|
"src/media_agent/platforms/douyin/douyin_hotspot_v2.py": {
|
|
254
|
-
"size":
|
|
255
|
-
"sha256": "
|
|
254
|
+
"size": 21095,
|
|
255
|
+
"sha256": "ee8f1e6b98b99dd168f17e20d78cfccc7e102ca3a4948b8d035dbac9eab31f5f"
|
|
256
256
|
},
|
|
257
257
|
"src/media_agent/platforms/douyin/douyin_publish.py": {
|
|
258
|
-
"size":
|
|
259
|
-
"sha256": "
|
|
258
|
+
"size": 40893,
|
|
259
|
+
"sha256": "9e296eba6ac3dbe91ec57f10ac16a36c12fd17200389624e52671a2ac847c5be"
|
|
260
260
|
},
|
|
261
261
|
"src/media_agent/platforms/douyin/enterprise_login.py": {
|
|
262
|
-
"size":
|
|
263
|
-
"sha256": "
|
|
262
|
+
"size": 4760,
|
|
263
|
+
"sha256": "4e8feaaa4f5117c255d99af480a740684e8d23e4bf76062db928ca1b14b62e34"
|
|
264
264
|
},
|
|
265
265
|
"src/media_agent/platforms/douyin/export_short_video.py": {
|
|
266
|
-
"size":
|
|
267
|
-
"sha256": "
|
|
266
|
+
"size": 3096,
|
|
267
|
+
"sha256": "fded1bf93d9f8296add3237e792074896f4f362a08d2d3d215c9194d71b1ecc2"
|
|
268
268
|
},
|
|
269
269
|
"src/media_agent/platforms/douyin/login_controller.py": {
|
|
270
|
-
"size":
|
|
271
|
-
"sha256": "
|
|
270
|
+
"size": 20974,
|
|
271
|
+
"sha256": "0f55205a794773997c0b7657e1ab12a3d97e3967460500a239b64e94926df5d6"
|
|
272
272
|
},
|
|
273
273
|
"src/media_agent/platforms/douyin/validate_industry_taxonomy.py": {
|
|
274
274
|
"size": 5869,
|
|
@@ -287,8 +287,8 @@
|
|
|
287
287
|
"sha256": "a5db04d0ab4a22e04ce09b96dcba5f98bcccbd4a83400426b9b9f81df47a2fcc"
|
|
288
288
|
},
|
|
289
289
|
"src/media_agent/platforms/toutiao/toutiao_login_controller.py": {
|
|
290
|
-
"size":
|
|
291
|
-
"sha256": "
|
|
290
|
+
"size": 11318,
|
|
291
|
+
"sha256": "627a55ac589465f331b53feb342874b65008d9d1071c6f70803cada0f6b4124a"
|
|
292
292
|
},
|
|
293
293
|
"src/media_agent/platforms/toutiao/toutiao_login_evidence.py": {
|
|
294
294
|
"size": 1691,
|
|
@@ -303,12 +303,12 @@
|
|
|
303
303
|
"sha256": "04811b13579095b984b1456bdc429b6b687aca691d478cc596a611391f0ec1a1"
|
|
304
304
|
},
|
|
305
305
|
"src/media_agent/platforms/xiaohongshu/xiaohongshu_check_login.py": {
|
|
306
|
-
"size":
|
|
307
|
-
"sha256": "
|
|
306
|
+
"size": 8089,
|
|
307
|
+
"sha256": "9eb7101f6aa8ed3b9faafcd5e4a038e6bae407c2e60ba8427c45ccfee2ae5caf"
|
|
308
308
|
},
|
|
309
309
|
"src/media_agent/platforms/xiaohongshu/xiaohongshu_login_controller.py": {
|
|
310
|
-
"size":
|
|
311
|
-
"sha256": "
|
|
310
|
+
"size": 15391,
|
|
311
|
+
"sha256": "37ca676d0d081c87d5a5680c1d09939ca69a14a42348f7bde573c2f16a4b3900"
|
|
312
312
|
},
|
|
313
313
|
"src/media_agent/platforms/xiaohongshu/xiaohongshu_login_evidence.py": {
|
|
314
314
|
"size": 1706,
|
|
@@ -319,25 +319,41 @@
|
|
|
319
319
|
"sha256": "0a97a6c5db896a6272bd392d92b3853e9fe0968c689c4aa8cd2d7065044a5777"
|
|
320
320
|
},
|
|
321
321
|
"src/media_agent/platforms/xiaohongshu/xiaohongshu_publish.py": {
|
|
322
|
-
"size":
|
|
323
|
-
"sha256": "
|
|
322
|
+
"size": 33882,
|
|
323
|
+
"sha256": "2adb9fe6f68a9dc38c99aed504eb709ad71aef7093433a03594658fcbdcf0e72"
|
|
324
324
|
},
|
|
325
325
|
"src/media_agent/runtime/__init__.py": {
|
|
326
326
|
"size": 32,
|
|
327
327
|
"sha256": "04811b13579095b984b1456bdc429b6b687aca691d478cc596a611391f0ec1a1"
|
|
328
328
|
},
|
|
329
329
|
"src/media_agent/runtime/account_manager.py": {
|
|
330
|
-
"size":
|
|
331
|
-
"sha256": "
|
|
330
|
+
"size": 22928,
|
|
331
|
+
"sha256": "feb4cd0c47843a2a71a621071c4e21c8459be8fead88a32e900aeb33400413ef"
|
|
332
|
+
},
|
|
333
|
+
"src/media_agent/runtime/arguments.py": {
|
|
334
|
+
"size": 3359,
|
|
335
|
+
"sha256": "8f045a85fc513dacba921356608f5d8084a59c278a2175711bc418ed7fce4c16"
|
|
332
336
|
},
|
|
333
337
|
"src/media_agent/runtime/browser.py": {
|
|
334
338
|
"size": 228,
|
|
335
339
|
"sha256": "48eb9fd61a6a9f9695d6f4a4eab776ee90641bd3ae57b3a5242d4e2e58986e67"
|
|
336
340
|
},
|
|
341
|
+
"src/media_agent/runtime/diagnostics.py": {
|
|
342
|
+
"size": 9267,
|
|
343
|
+
"sha256": "22004a8cef13a5f38a2e8ad705a1a7296ab854e1aa5dce0ca49149d8b5b2157d"
|
|
344
|
+
},
|
|
345
|
+
"src/media_agent/runtime/locking.py": {
|
|
346
|
+
"size": 2184,
|
|
347
|
+
"sha256": "593fe385a82ebda28069b2409e98c01d23b7efcd1f0b7aac002c169d37adbacf"
|
|
348
|
+
},
|
|
337
349
|
"src/media_agent/runtime/paths.py": {
|
|
338
350
|
"size": 263,
|
|
339
351
|
"sha256": "e9981bf51a388022a82bfe9c5670188c89315e6597788245be74b4eb3559a467"
|
|
340
352
|
},
|
|
353
|
+
"src/media_agent/runtime/publish_control.py": {
|
|
354
|
+
"size": 4257,
|
|
355
|
+
"sha256": "f27849115624cd8e18f58eadce357f86345f822c91d92e040097230edd56037e"
|
|
356
|
+
},
|
|
341
357
|
"src/media_agent/script_map.json": {
|
|
342
358
|
"size": 1668,
|
|
343
359
|
"sha256": "c337b61e5a047df1dc9a0080c9ad5b0ffed7c9e82bc382896c6b887a73b25f8a"
|
|
@@ -351,16 +367,16 @@
|
|
|
351
367
|
"sha256": "7cef52f29728dba2b8a863cb496a8f95a047f8330ed30fd8e1a91de1f2f78a22"
|
|
352
368
|
},
|
|
353
369
|
"src/node/skills.mjs": {
|
|
354
|
-
"size":
|
|
355
|
-
"sha256": "
|
|
370
|
+
"size": 4814,
|
|
371
|
+
"sha256": "09f19f27ea4228dd1bd005d0b3c41a37d3470b7d2cde354b539eaca5b2feff63"
|
|
356
372
|
},
|
|
357
373
|
"tools/archive_releases.py": {
|
|
358
374
|
"size": 4703,
|
|
359
375
|
"sha256": "d0cbccf5f5c349eec03bc9410210d7b9895c4fe251679034f9d109cbda0d9624"
|
|
360
376
|
},
|
|
361
377
|
"tools/artifacts.py": {
|
|
362
|
-
"size":
|
|
363
|
-
"sha256": "
|
|
378
|
+
"size": 2859,
|
|
379
|
+
"sha256": "4f186184f889d56b76e532219cbcb5173fbd6f766aaf36aa3551954326014f03"
|
|
364
380
|
},
|
|
365
381
|
"tools/build_release.py": {
|
|
366
382
|
"size": 4188,
|
|
@@ -371,8 +387,8 @@
|
|
|
371
387
|
"sha256": "f670d0559a2dcbfebb9baf41b8c211ebdacc6fd2320424374c0ca90571e005df"
|
|
372
388
|
},
|
|
373
389
|
"tools/install_runtime.py": {
|
|
374
|
-
"size":
|
|
375
|
-
"sha256": "
|
|
390
|
+
"size": 6572,
|
|
391
|
+
"sha256": "49417268bb04989e1b5d1824bd7d3d65425792c5c475738cceb4001cfe3c15d6"
|
|
376
392
|
},
|
|
377
393
|
"tools/run_tests.py": {
|
|
378
394
|
"size": 798,
|
package/package.json
CHANGED
package/pyproject.toml
CHANGED