@petercjl/cloud-hug-style-transfer 0.1.2 → 0.2.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 +7 -1
- package/capabilities.json +19 -11
- package/npm/cli.mjs +4 -1
- package/npm/integrity.json +6 -6
- package/npm/media-dependency.mjs +47 -0
- package/package.json +1 -1
- package/skills/cloud-hug-style-transfer/SKILL.md +14 -6
- package/skills/cloud-hug-style-transfer/adapters/codex.json +11 -7
- package/skills/cloud-hug-style-transfer/adapters/sealseek.json +8 -8
- package/skills/cloud-hug-style-transfer/adapters/workbuddy.json +8 -8
- package/skills/cloud-hug-style-transfer/capabilities.json +20 -3
package/README.md
CHANGED
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
将旧详情页、产品摄影、主 KV 或 SKU 转换为抱抱云朵社品牌视觉,保留当次商品事实、文案与用途。包内包含完整 19 页定稿、品牌标识、人物设定与摄影排版方法,约 41 MB 素材。
|
|
4
4
|
|
|
5
|
-
支持 Codex、SealSeek、WorkBuddy
|
|
5
|
+
支持 Codex、SealSeek、WorkBuddy。需要 Node.js 22+、宿主命令执行和看图能力。生图统一通过必需的 `@petercjl/sealseek-media-cli`(0.6.1+)及其配套 `sealseek-media` Skill 执行;每次任务先检查,缺失或不兼容时暂停整个任务,安装并复查通过后继续。有效 SealSeek 登录、网络及额度由使用者准备,包不附带账号或额度。宿主生图效果仍需分别实测。
|
|
6
|
+
|
|
7
|
+
先安装生图依赖,将提示词发送给 Agent:
|
|
8
|
+
|
|
9
|
+
> 请安装 npm 包 @petercjl/sealseek-media-cli。
|
|
6
10
|
|
|
7
11
|
安装:将下列提示词发送给目标 Agent。
|
|
8
12
|
|
|
@@ -27,3 +31,5 @@
|
|
|
27
31
|
安装、更新与检查由 Agent 执行包内 CLI。包的 `skill source --json` 提供规范来源;Agent 随后调用 `skill install --agent <当前宿主>`,支持 `--root` 指定实际技能目录。普通任务不联网检查或自动更新。显式更新使用 stable latest,备份旧包并同步已登记的受管 Skill,失败时恢复旧包;离线保留当前安装。已有独立安装或本地修改将停止覆盖并报告。源码或上层工具管理的包由其拥有者更新。
|
|
28
32
|
|
|
29
33
|
兼容证据分别记录安装机制与生图效果。CI 覆盖 macOS、Windows、Linux 的包管理机制;宿主实际生成需使用各自账户独立验证。品牌与输入素材须具备相应使用权;公开 npm 分发不转让商标与素材的独立再分发权。
|
|
34
|
+
|
|
35
|
+
开发者依赖合同:`doctor --json` 验证媒体包身份、0.6.1+ 版本、CLI 与规范 Skill,缺失返回非零退出码和 `DEPENDENCY_MISSING`,生成状态为 `paused`。优先发现当前 npm 安装树,再发现 PATH 的 npm 安装;自定义 Agent/套件安装可配置 `CLOUD_HUG_MEDIA_ROOT` 为媒体包根目录。使用返回的 `dependencies.media.invocation` 调用 CLI;doctor 不登录、不联网检查服务、不自动安装或提交生成。任务执行仍须加载依赖的当前 Skill 并完成 live 检查与 dry-run。
|
package/capabilities.json
CHANGED
|
@@ -20,22 +20,30 @@
|
|
|
20
20
|
],
|
|
21
21
|
"requirements": {
|
|
22
22
|
"node": ">=22",
|
|
23
|
-
"nested_skills": [
|
|
24
|
-
|
|
23
|
+
"nested_skills": [
|
|
24
|
+
"sealseek-media"
|
|
25
|
+
],
|
|
26
|
+
"generation": "Required @petercjl/sealseek-media-cli >=0.6.1 and its canonical sealseek-media Skill; missing or incompatible dependency pauses all tasks before analysis or planning.",
|
|
25
27
|
"host_capability_skills": {
|
|
26
28
|
"codex": [],
|
|
27
|
-
"sealseek": [
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
"
|
|
33
|
-
|
|
34
|
-
|
|
29
|
+
"sealseek": [],
|
|
30
|
+
"workbuddy": []
|
|
31
|
+
},
|
|
32
|
+
"packages": [
|
|
33
|
+
{
|
|
34
|
+
"name": "@petercjl/sealseek-media-cli",
|
|
35
|
+
"minimum_version": "0.6.1",
|
|
36
|
+
"required": true,
|
|
37
|
+
"missing": "pause",
|
|
38
|
+
"skill": "sealseek-media",
|
|
39
|
+
"source": "CLI skill source --json",
|
|
40
|
+
"contract": "media.generate with image/reference-image/dry-run/task-record/local-artifact"
|
|
41
|
+
}
|
|
42
|
+
]
|
|
35
43
|
},
|
|
36
44
|
"authorization": {
|
|
37
45
|
"installation": "Explicit install/update request; preserve existing targets.",
|
|
38
|
-
"generation": "
|
|
46
|
+
"generation": "User-authorized generation via sealseek-media-cli only; credits and credentials remain external."
|
|
39
47
|
},
|
|
40
48
|
"compatibility": {
|
|
41
49
|
"codex": {
|
package/npm/cli.mjs
CHANGED
|
@@ -4,6 +4,7 @@ import path from 'node:path';
|
|
|
4
4
|
import { root, pkg, fail } from './runtime.mjs';
|
|
5
5
|
import { source, targetPath, status, install, inventory } from './skills.mjs';
|
|
6
6
|
import { checkUpdate, installUpdate } from './update.mjs';
|
|
7
|
+
import { mediaDependency } from './media-dependency.mjs';
|
|
7
8
|
const args=process.argv.slice(2);
|
|
8
9
|
const option=name=>{const i=args.indexOf(name);if(i<0)return undefined;if(!args[i+1]||args[i+1].startsWith('--'))throw fail('INVALID_ARGUMENT',`${name} needs a value.`);return args[i+1];};
|
|
9
10
|
const out=value=>console.log(JSON.stringify(value,null,2));
|
|
@@ -23,7 +24,9 @@ try {
|
|
|
23
24
|
const files=inventory(source), expected=JSON.parse(fs.readFileSync(path.join(root,'npm','integrity.json'),'utf8'));
|
|
24
25
|
const problems=Object.entries(expected).filter(([name,hash])=>files[name]!==hash).map(([name])=>name);
|
|
25
26
|
const capabilities=JSON.parse(fs.readFileSync(path.join(root,'capabilities.json'),'utf8'));
|
|
26
|
-
const
|
|
27
|
+
const media=mediaDependency();
|
|
28
|
+
const result={ok:Number(process.versions.node.split('.')[0])>=22&&problems.length===0&&media.ok,package:pkg.name,version:pkg.version,node:process.versions.node,source,files:Object.keys(files).length,integrity:{ok:problems.length===0,problems},installationReady:problems.length===0,dependencies:{media},hostCapabilityDependencies:capabilities.requirements.host_capability_skills,generation:{provider:'@petercjl/sealseek-media-cli',state:media.ok?'requires-live-preflight':'paused',runtimeTested:false,requiredFeatures:['image-inspection','multiple-reference-edit','local-reference-input','viewable-output']}};
|
|
29
|
+
if(!media.ok){result.code=media.code;result.action='pause';result.installPrompt=media.installPrompt;}
|
|
27
30
|
if(option('--agent'))result.installation={...status(targetPath(option('--agent'),option('--root'))),record:undefined};
|
|
28
31
|
out(result);if(!result.ok)process.exitCode=1;
|
|
29
32
|
} else if(args[0]==='update') {
|
package/npm/integrity.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"adapters/
|
|
4
|
-
"adapters/
|
|
2
|
+
"SKILL.md": "3057a467849d971798380f26e907d341491cbf36601572725822185a6a6d7a5d",
|
|
3
|
+
"adapters/codex.json": "ca8f43f150822d1ca6d71662a87b2a655841154eda9b91ac97c8dde49a07a3dd",
|
|
4
|
+
"adapters/sealseek.json": "4d809a8a9da4a204460163b3f0f236d3744211179e50635cfe67e051dfaa1de0",
|
|
5
|
+
"adapters/workbuddy.json": "38b3cafc9d50093e8d21a25a347004cadcf15b6a15984e0a4833499efc813ca2",
|
|
5
6
|
"agents/openai.yaml": "8afeabba706e83f2f20d616579e8d79b6509fe93427acdc2b650ef6387049983",
|
|
6
7
|
"assets/approved/all-colors-user-finish.webp": "539c77de8ec0dd46a29793befecf813e97ce6ae66f7cbe69486846383b2ae936",
|
|
7
8
|
"assets/approved/brand-kv-user-finish-20261012.png": "cb09198481e779444696864b265c689f467207bf7de9610f7adc2b850f0be7b4",
|
|
@@ -54,7 +55,7 @@
|
|
|
54
55
|
"assets/rejected/brand-kv-c2-20261012.webp": "88ed2de0d950ea4a34519661481877ee0899743a6dfce203a2033c0dab6a73f7",
|
|
55
56
|
"assets/rejected/overhead-rest-b.webp": "16e5e6fabdc665868ac244d556f3a8a93db826a34425fdee042e4f7a8ebf64c3",
|
|
56
57
|
"assets/rejected/prone-pile-a.webp": "d07f38bbb69fc23b30dca4ed27faa3d7ae58e2e81840a1c3d46101911c28a7a2",
|
|
57
|
-
"capabilities.json": "
|
|
58
|
+
"capabilities.json": "f9f9c9c08c2d6ecd83f992119efa5e5afc4b4ad35b391c265d9cbeca03b72fbb",
|
|
58
59
|
"references/assets.md": "5675ee6b395caca641e8ce56e200cd4391ad67e7afceb44fc6732f253a126926",
|
|
59
60
|
"references/brand-layout.md": "5668190c1e618a903aa1b5e859405fa43a004da2082dc7040e83ef8cfc0aae86",
|
|
60
61
|
"references/cases.md": "9d0d2d3d210e367411d5a291fc78ef6c9c733afd79c9da76451c580fcbcd4d3e",
|
|
@@ -64,6 +65,5 @@
|
|
|
64
65
|
"references/model.md": "c4da688e22e2ada3f251fe0dc87effcaf5cb6ed6176f9d9c20a9661414bffab5",
|
|
65
66
|
"references/page-patterns.md": "3c126c75e9ccd5fc0b8860efcf2a0e27e9d3ba31e5cdeb407a0a683d8861a978",
|
|
66
67
|
"references/photography-method.md": "86ed457fc78112c1a2ad9bf9fdb9bcdf92aed71066bac2b3d4255159e3ee5c1c",
|
|
67
|
-
"references/products.md": "642795ae16803669b169531240723bf72a388cb6351679a2787e67e181dca9cd"
|
|
68
|
-
"SKILL.md": "7b3c63cf7a8a48815fbd773c27c14eae60d1fbb7f97ef80ee398e3f7f6a43fc0"
|
|
68
|
+
"references/products.md": "642795ae16803669b169531240723bf72a388cb6351679a2787e67e181dca9cd"
|
|
69
69
|
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { createRequire } from 'node:module';
|
|
4
|
+
import { spawnSync } from 'node:child_process';
|
|
5
|
+
|
|
6
|
+
const name = '@petercjl/sealseek-media-cli';
|
|
7
|
+
const prompt = `请安装 npm 包 ${name}。`;
|
|
8
|
+
|
|
9
|
+
// Invoke the verified package entry with the active Node runtime, including on
|
|
10
|
+
// Windows where an npm .cmd shim is not a directly executable program.
|
|
11
|
+
export function mediaDependency({ env = process.env, packageRoot } = {}) {
|
|
12
|
+
const missing = (code, message) => ({ok:false,code,package:name,message,installPrompt:prompt,action:'pause'});
|
|
13
|
+
const roots=[];
|
|
14
|
+
if(packageRoot || env.CLOUD_HUG_MEDIA_ROOT) roots.push(packageRoot || env.CLOUD_HUG_MEDIA_ROOT);
|
|
15
|
+
else {
|
|
16
|
+
try { roots.push(path.dirname(createRequire(import.meta.url).resolve(`${name}/package.json`))); } catch {}
|
|
17
|
+
for(const dir of (env.PATH || '').split(path.delimiter).filter(Boolean)) {
|
|
18
|
+
roots.push(path.join(dir,'node_modules',...name.split('/')),path.join(dir,'..','lib','node_modules',...name.split('/')));
|
|
19
|
+
try {
|
|
20
|
+
const entry=fs.realpathSync(path.join(dir,'sealseek-media'));
|
|
21
|
+
roots.push(path.resolve(path.dirname(entry),'..'));
|
|
22
|
+
} catch {}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
for(const candidate of [...new Set(roots)]) {
|
|
26
|
+
if(!fs.existsSync(path.join(candidate,'package.json'))) continue;
|
|
27
|
+
try {
|
|
28
|
+
const root=fs.realpathSync(candidate),pkg=JSON.parse(fs.readFileSync(path.join(root,'package.json'),'utf8'));
|
|
29
|
+
if(pkg.name!==name) continue;
|
|
30
|
+
const parts=pkg.version?.split('.').map(Number);
|
|
31
|
+
if(!/^\d+\.\d+\.\d+$/.test(pkg.version)||!(parts[0]>0||parts[1]>6||(parts[1]===6&&parts[2]>=1))) return missing('DEPENDENCY_INCOMPATIBLE','sealseek-media-cli >=0.6.1 is required; update the package.');
|
|
32
|
+
if(typeof pkg.bin?.['sealseek-media']!=='string') return missing('DEPENDENCY_INVALID','Media CLI entry is missing.');
|
|
33
|
+
const entry=fs.realpathSync(path.resolve(root,pkg.bin['sealseek-media']));
|
|
34
|
+
if(!entry.startsWith(root+path.sep)) return missing('DEPENDENCY_INVALID','Media CLI entry must belong to its package.');
|
|
35
|
+
const result=spawnSync(process.execPath,[entry,'skill','source','--json'],{encoding:'utf8',timeout:15000,maxBuffer:1024*1024,env:{...env,SEALSEEK_MEDIA_AUTO_UPDATE:'0'}});
|
|
36
|
+
const data=JSON.parse(result.stdout||'null');
|
|
37
|
+
if(result.status!==0||data?.ok!==true||data.name!=='sealseek-media'||data.version!==pkg.version||typeof data.source!=='string') return missing('DEPENDENCY_INVALID','Media CLI canonical Skill discovery failed.');
|
|
38
|
+
const source=fs.realpathSync(data.source);
|
|
39
|
+
if(!source.startsWith(root+path.sep)||!/^name: sealseek-media\s*$/m.test(fs.readFileSync(path.join(source,'SKILL.md'),'utf8'))) return missing('DEPENDENCY_INVALID','Media companion Skill identity is invalid.');
|
|
40
|
+
const contract=JSON.parse(fs.readFileSync(path.join(source,'capabilities.json'),'utf8'));
|
|
41
|
+
const generate=contract.capabilities?.find(c=>c.id==='media.generate');
|
|
42
|
+
if(!['image','reference-image','dry-run','task-record','local-artifact'].every(f=>generate?.required_features?.includes(f))) return missing('DEPENDENCY_INCOMPATIBLE','Media generation contract is incomplete.');
|
|
43
|
+
return {ok:true,package:name,version:pkg.version,entry,source,invocation:{command:process.execPath,args:[entry]},serviceAccess:'requires-live-preflight',generationTested:false};
|
|
44
|
+
} catch { return missing('DEPENDENCY_INVALID','Media package, CLI or canonical Skill could not be verified.'); }
|
|
45
|
+
}
|
|
46
|
+
return missing('DEPENDENCY_MISSING','Required sealseek-media-cli package was not detected. Pause the Skill until it is installed and verified.');
|
|
47
|
+
}
|
package/package.json
CHANGED
|
@@ -1,19 +1,27 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: cloud-hug-style-transfer
|
|
3
|
-
description: 独立把旧详情页、产品摄影、主KV或SKU转换为抱抱云朵社的品牌视觉与同一模特。保留当次商品、有效文案参数及页面用途,产品款式与材料随新资料变化。内置完整19页定稿、LOGO
|
|
3
|
+
description: 独立把旧详情页、产品摄影、主KV或SKU转换为抱抱云朵社的品牌视觉与同一模特。保留当次商品、有效文案参数及页面用途,产品款式与材料随新资料变化。内置完整19页定稿、LOGO、人物和摄影排版方法;生图必需 @petercjl/sealseek-media-cli 及其配套 sealseek-media Skill,未检测到即暂停;品牌资料无需私人素材库。用于“抱抱云朵社风格转换”、旧页品牌化、同模特延展与图文设计。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# 抱抱云朵社风格转换
|
|
7
7
|
|
|
8
|
-
使用中文展示名
|
|
8
|
+
使用中文展示名 **抱抱云朵社风格转换**。用本目录内的方法和素材独立完成品牌转换,以当前使用者的明确要求为准;生成能力由必需的 `@petercjl/sealseek-media-cli` 及其规范配套 `sealseek-media` Skill 提供,品牌资料不依赖创建者的历史会话或私人文件权限。
|
|
9
9
|
|
|
10
10
|
## 运行合同与平台入口
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
输入是当前源页、商品资料和本次目标;输出是约定数量的独立成图及简短验收说明,或用户仅要求的规划。本 Skill 负责品牌方法、素材选择、提示词、版式和业务验收;`@petercjl/sealseek-media-cli` 负责生图服务、认证、参考图传输、任务恢复和结果下载;宿主负责命令执行、实际看图和交付。
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
### 入口:必需依赖检查
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
**每次任务先检查依赖,通过后才进入第 1 节;规划任务也遵守此入口。** 执行 `cloud-hug-style-transfer doctor --json`,核对 `dependencies.media.ok`。检查支持当前 npm 安装树、PATH 安装及显式配置的 `CLOUD_HUG_MEDIA_ROOT`;返回的 `dependencies.media.invocation` 是经过包身份核验的 CLI 调用入口,使用宿主当前 Node 运行时,可用于 Agent 管理的运行时或套件组件。
|
|
17
|
+
|
|
18
|
+
未检测到 `@petercjl/sealseek-media-cli` 时返回 `DEPENDENCY_MISSING` 并**暂停整个任务**,保留输入和进度,给出最简安装提示词:“请安装 npm 包 @petercjl/sealseek-media-cli。”等待安装并重新检查通过后,从本入口恢复。版本低于 0.6.1、CLI 无法执行、规范 Skill 缺失或合同不兼容同样暂停,按诊断修复后复查。不得以宿主内置生图、其他提供商或继续规划代替依赖通过;本入口不自动安装软件或提交生成。
|
|
19
|
+
|
|
20
|
+
通过检查后,使用返回的 CLI 入口执行 `skill source --json`,以逻辑名 **sealseek-media** 核对来源,并完整读取其当前 `SKILL.md`;相对资源从该目录解析,更新后重新加载。需要其 0.6.1+ 的当前合同:`version`、`doctor --live --json`、`capabilities --live --json`、模型查询、参考图生成 dry-run、任务提交/跟踪/恢复和本地交付。依赖输入是本 Skill 选定的提示词、有序参考图及职责、数量、画幅和授权;输出是任务 ID、状态、模型、可验证文件与错误。认证或服务不可用时暂停,由配套 Skill 处理其恢复分支;恢复后回到此入口或既有任务跟踪节点,保留任务 ID,不自动重提。
|
|
21
|
+
|
|
22
|
+
读取 [能力合同](capabilities.json) 和当前宿主适配:[Codex](adapters/codex.json)、[SealSeek](adapters/sealseek.json)、[WorkBuddy](adapters/workbuddy.json)。三者的 `media.image.edit` 统一通过上述 CLI,`media.image.inspect` 使用宿主实际看图能力;只加载当前宿主适配。缺少命令执行、看图或当前模型所需的参考图特性时,返回 `CAPABILITY_UNAVAILABLE` 或 `FEATURE_UNSUPPORTED` 并暂停。安装通过不等于已登录、拥有额度或实际生成效果合格。
|
|
23
|
+
|
|
24
|
+
按第 1–4 节理解任务与选取依据,第 5 节调用依赖执行,第 6 节实际验收;局部失败回到对应设计或执行节点。包管理采用 `cloud-hug-style-transfer` CLI 的当前 `skill source/status/install/update` 合同;两个包各自维护来源和更新,账户与凭据保存在媒体包的私有配置中。
|
|
17
25
|
|
|
18
26
|
## 1. 识别当次商品与页面任务
|
|
19
27
|
|
|
@@ -98,7 +106,7 @@ description: 独立把旧详情页、产品摄影、主KV或SKU转换为抱抱
|
|
|
98
106
|
|
|
99
107
|
查实际说明有无相反要求:无字却夹带标题;安睡却强求笑容露全脸;亲密近景却一律缩小主体;尺寸展示却遮挡关键轮廓;柔软品牌却全套粗圆字。修正具体冲突,不靠末尾追加“自然、高级、有呼吸感”抵消。
|
|
100
108
|
|
|
101
|
-
|
|
109
|
+
调用当前适配中由 `sealseek-media-cli` 实现的 `media.image.edit`。按已加载的 `sealseek-media` 主线读取当前模型能力,用其参考图生成/编辑合同传入真实原图与精简提示词,先 `--dry-run --json`,通过后在已有生成授权范围内用 `--via sealseek --submit` 提交。模型采用媒体包当前默认值,用户明确指定时保留指定值;模型不支持本轮要求时暂停并报告,不自动换模型。保存任务 ID,按依赖合同查询、恢复、下载;提交结果不明先核对同一任务,不自动重提或增加付费生成。执行中依赖丢失或服务不可用时暂停,恢复后回到既有任务或本执行节点。保留精简实际调用记录,不向使用者倾倒完整日志。
|
|
102
110
|
|
|
103
111
|
分别要三张就交三张独立成稿,已授权数量连续完成,不自行拼成方案墙。创意备选应有真实观看或图文关系差异;比较型延展可保留同一骨架。一大两小、同构与否取决于页面,而非出图张数。
|
|
104
112
|
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"implementation": {
|
|
14
14
|
"type": "agent-native",
|
|
15
15
|
"discovery": "Inspect the current host tool catalog and schemas; verify reference input and result delivery before invoking.",
|
|
16
|
-
"invocation": "Use
|
|
16
|
+
"invocation": "Use the current host image-viewing tool to inspect actual local source, reference and output pixels; require a vision-capable model.",
|
|
17
17
|
"configuration": "Host-managed account and provider authorization; no credentials bundled."
|
|
18
18
|
},
|
|
19
19
|
"normalization": "Success: {ok:true,artifacts:[],metadata:{},task_id:null,cost:null,warnings:[]}; failure: {ok:false,code,message,capability_id}.",
|
|
@@ -29,18 +29,22 @@
|
|
|
29
29
|
"viewable-output"
|
|
30
30
|
],
|
|
31
31
|
"implementation": {
|
|
32
|
-
"type": "
|
|
33
|
-
"discovery": "
|
|
34
|
-
"invocation": "
|
|
35
|
-
"configuration": "
|
|
32
|
+
"type": "cli",
|
|
33
|
+
"discovery": "Run cloud-hug-style-transfer doctor --json; require dependencies.media.ok and use its verified invocation. Resolve sealseek-media via that CLI skill source --json and load the complete current SKILL.md plus its current host adapter.",
|
|
34
|
+
"invocation": "Follow the current sealseek-media Discover/Prepare/Validate/Submit/Follow/Deliver contract. Pass application-owned prompt and ordered local references, dry-run first, submit authorized generation via --via sealseek --submit, preserve task IDs and verify local output.",
|
|
35
|
+
"configuration": "Required @petercjl/sealseek-media-cli >=0.6.1; private media-package authentication, network and credits. Optional CLOUD_HUG_MEDIA_ROOT points to its installed package root.",
|
|
36
|
+
"failure": "Missing or incompatible package/Skill pauses the entire task before section 1; offer the minimal install prompt and resume only after verification. Service/feature failures pause without native-generation fallback."
|
|
36
37
|
},
|
|
37
38
|
"normalization": "Success: {ok:true,artifacts:[],metadata:{},task_id:null,cost:null,warnings:[]}; failure: {ok:false,code,message,capability_id}.",
|
|
38
|
-
"evidence": [
|
|
39
|
+
"evidence": [
|
|
40
|
+
"Canonical sealseek-media 0.6.1 CLI/Skill and live capabilities inspected; paid generation and full host flow not tested."
|
|
41
|
+
]
|
|
39
42
|
}
|
|
40
43
|
],
|
|
41
44
|
"operating_systems": {
|
|
42
45
|
"macos": "implemented",
|
|
43
46
|
"windows": "implemented"
|
|
44
47
|
},
|
|
45
|
-
"notes": "
|
|
48
|
+
"notes": "Image generation uses the same required sealseek-media-cli on every host. Native viewing and command execution still require host verification. Missing media dependency pauses all tasks.",
|
|
49
|
+
"host_generation_tested": false
|
|
46
50
|
}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"implementation": {
|
|
14
14
|
"type": "agent-native",
|
|
15
15
|
"discovery": "Inspect the current host tool catalog and schemas; verify reference input and result delivery before invoking.",
|
|
16
|
-
"invocation": "Use the current host image-viewing tool
|
|
16
|
+
"invocation": "Use the current host image-viewing tool to inspect actual local source, reference and output pixels; require a vision-capable model.",
|
|
17
17
|
"configuration": "Host-managed account and provider authorization; no credentials bundled."
|
|
18
18
|
},
|
|
19
19
|
"normalization": "Success: {ok:true,artifacts:[],metadata:{},task_id:null,cost:null,warnings:[]}; failure: {ok:false,code,message,capability_id}.",
|
|
@@ -31,15 +31,15 @@
|
|
|
31
31
|
"viewable-output"
|
|
32
32
|
],
|
|
33
33
|
"implementation": {
|
|
34
|
-
"type": "
|
|
35
|
-
"discovery": "
|
|
36
|
-
"invocation": "
|
|
37
|
-
"configuration": "
|
|
38
|
-
"failure": "
|
|
34
|
+
"type": "cli",
|
|
35
|
+
"discovery": "Run cloud-hug-style-transfer doctor --json; require dependencies.media.ok and use its verified invocation. Resolve sealseek-media via that CLI skill source --json and load the complete current SKILL.md plus its current host adapter.",
|
|
36
|
+
"invocation": "Follow the current sealseek-media Discover/Prepare/Validate/Submit/Follow/Deliver contract. Pass application-owned prompt and ordered local references, dry-run first, submit authorized generation via --via sealseek --submit, preserve task IDs and verify local output.",
|
|
37
|
+
"configuration": "Required @petercjl/sealseek-media-cli >=0.6.1; private media-package authentication, network and credits. Optional CLOUD_HUG_MEDIA_ROOT points to its installed package root.",
|
|
38
|
+
"failure": "Missing or incompatible package/Skill pauses the entire task before section 1; offer the minimal install prompt and resume only after verification. Service/feature failures pause without native-generation fallback."
|
|
39
39
|
},
|
|
40
40
|
"normalization": "Success: {ok:true,artifacts:[],metadata:{},task_id:null,cost:null,warnings:[]}; failure: {ok:false,code,message,capability_id}.",
|
|
41
41
|
"evidence": [
|
|
42
|
-
"
|
|
42
|
+
"Canonical sealseek-media 0.6.1 CLI/Skill and live capabilities inspected; paid generation and full host flow not tested."
|
|
43
43
|
]
|
|
44
44
|
}
|
|
45
45
|
],
|
|
@@ -47,6 +47,6 @@
|
|
|
47
47
|
"macos": "implemented",
|
|
48
48
|
"windows": "implemented"
|
|
49
49
|
},
|
|
50
|
-
"notes": "
|
|
50
|
+
"notes": "Image generation uses the same required sealseek-media-cli on every host. Native viewing and command execution still require host verification. Missing media dependency pauses all tasks.",
|
|
51
51
|
"host_generation_tested": false
|
|
52
52
|
}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"implementation": {
|
|
14
14
|
"type": "agent-native",
|
|
15
15
|
"discovery": "Inspect the current host tool catalog and schemas; verify reference input and result delivery before invoking.",
|
|
16
|
-
"invocation": "Use the current host image-viewing tool
|
|
16
|
+
"invocation": "Use the current host image-viewing tool to inspect actual local source, reference and output pixels; require a vision-capable model.",
|
|
17
17
|
"configuration": "Host-managed account and provider authorization; no credentials bundled."
|
|
18
18
|
},
|
|
19
19
|
"normalization": "Success: {ok:true,artifacts:[],metadata:{},task_id:null,cost:null,warnings:[]}; failure: {ok:false,code,message,capability_id}.",
|
|
@@ -31,15 +31,15 @@
|
|
|
31
31
|
"viewable-output"
|
|
32
32
|
],
|
|
33
33
|
"implementation": {
|
|
34
|
-
"type": "
|
|
35
|
-
"discovery": "
|
|
36
|
-
"invocation": "
|
|
37
|
-
"configuration": "
|
|
38
|
-
"failure": "
|
|
34
|
+
"type": "cli",
|
|
35
|
+
"discovery": "Run cloud-hug-style-transfer doctor --json; require dependencies.media.ok and use its verified invocation. Resolve sealseek-media via that CLI skill source --json and load the complete current SKILL.md plus its current host adapter.",
|
|
36
|
+
"invocation": "Follow the current sealseek-media Discover/Prepare/Validate/Submit/Follow/Deliver contract. Pass application-owned prompt and ordered local references, dry-run first, submit authorized generation via --via sealseek --submit, preserve task IDs and verify local output.",
|
|
37
|
+
"configuration": "Required @petercjl/sealseek-media-cli >=0.6.1; private media-package authentication, network and credits. Optional CLOUD_HUG_MEDIA_ROOT points to its installed package root.",
|
|
38
|
+
"failure": "Missing or incompatible package/Skill pauses the entire task before section 1; offer the minimal install prompt and resume only after verification. Service/feature failures pause without native-generation fallback."
|
|
39
39
|
},
|
|
40
40
|
"normalization": "Success: {ok:true,artifacts:[],metadata:{},task_id:null,cost:null,warnings:[]}; failure: {ok:false,code,message,capability_id}.",
|
|
41
41
|
"evidence": [
|
|
42
|
-
"
|
|
42
|
+
"Canonical sealseek-media 0.6.1 CLI/Skill and live capabilities inspected; paid generation and full host flow not tested."
|
|
43
43
|
]
|
|
44
44
|
}
|
|
45
45
|
],
|
|
@@ -47,6 +47,6 @@
|
|
|
47
47
|
"macos": "implemented",
|
|
48
48
|
"windows": "implemented"
|
|
49
49
|
},
|
|
50
|
-
"notes": "
|
|
50
|
+
"notes": "Image generation uses the same required sealseek-media-cli on every host. Native viewing and command execution still require host verification. Missing media dependency pauses all tasks.",
|
|
51
51
|
"host_generation_tested": false
|
|
52
52
|
}
|
|
@@ -36,7 +36,10 @@
|
|
|
36
36
|
"AUTH_REQUIRED",
|
|
37
37
|
"PERMISSION_REQUIRED",
|
|
38
38
|
"PROVIDER_FAILURE",
|
|
39
|
-
"OUTPUT_CONTRACT_FAILED"
|
|
39
|
+
"OUTPUT_CONTRACT_FAILED",
|
|
40
|
+
"DEPENDENCY_MISSING",
|
|
41
|
+
"DEPENDENCY_INVALID",
|
|
42
|
+
"DEPENDENCY_INCOMPATIBLE"
|
|
40
43
|
]
|
|
41
44
|
},
|
|
42
45
|
{
|
|
@@ -70,8 +73,22 @@
|
|
|
70
73
|
"AUTH_REQUIRED",
|
|
71
74
|
"PERMISSION_REQUIRED",
|
|
72
75
|
"PROVIDER_FAILURE",
|
|
73
|
-
"OUTPUT_CONTRACT_FAILED"
|
|
74
|
-
|
|
76
|
+
"OUTPUT_CONTRACT_FAILED",
|
|
77
|
+
"DEPENDENCY_MISSING",
|
|
78
|
+
"DEPENDENCY_INVALID",
|
|
79
|
+
"DEPENDENCY_INCOMPATIBLE"
|
|
80
|
+
],
|
|
81
|
+
"provider": "@petercjl/sealseek-media-cli"
|
|
82
|
+
}
|
|
83
|
+
],
|
|
84
|
+
"dependencies": [
|
|
85
|
+
{
|
|
86
|
+
"package": "@petercjl/sealseek-media-cli",
|
|
87
|
+
"minimum_version": "0.6.1",
|
|
88
|
+
"skill": "sealseek-media",
|
|
89
|
+
"required": true,
|
|
90
|
+
"preflight": "cloud-hug-style-transfer doctor --json",
|
|
91
|
+
"on_missing": "pause-entire-task"
|
|
75
92
|
}
|
|
76
93
|
]
|
|
77
94
|
}
|