@poping/yome 0.0.2 → 0.0.3
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/LICENSE +202 -0
- package/NOTICE +11 -0
- package/README.md +308 -27
- package/README.zh-CN.md +335 -0
- package/dist/agent.d.ts +24 -2
- package/dist/agent.js +34 -2
- package/dist/agent.js.map +1 -1
- package/dist/context.d.ts +2 -0
- package/dist/context.js +116 -11
- package/dist/context.js.map +1 -1
- package/dist/index.js +147 -9
- package/dist/index.js.map +1 -1
- package/dist/llm.js +45 -2
- package/dist/llm.js.map +1 -1
- package/dist/loops/chain.js +8 -0
- package/dist/loops/chain.js.map +1 -1
- package/dist/loops/evaluator.js +8 -0
- package/dist/loops/evaluator.js.map +1 -1
- package/dist/loops/orchestrator.js +8 -0
- package/dist/loops/orchestrator.js.map +1 -1
- package/dist/loops/parallel.js.map +1 -1
- package/dist/loops/route.js +8 -0
- package/dist/loops/route.js.map +1 -1
- package/dist/loops/simple.js +15 -0
- package/dist/loops/simple.js.map +1 -1
- package/dist/permissions/index.d.ts +1 -1
- package/dist/permissions/index.js +1 -1
- package/dist/permissions/index.js.map +1 -1
- package/dist/permissions/loader.d.ts +20 -1
- package/dist/permissions/loader.js +51 -0
- package/dist/permissions/loader.js.map +1 -1
- package/dist/redact.d.ts +56 -0
- package/dist/redact.js +191 -0
- package/dist/redact.js.map +1 -0
- package/dist/skills/runner/applescript.d.ts +49 -0
- package/dist/skills/runner/applescript.js +100 -0
- package/dist/skills/runner/applescript.js.map +1 -0
- package/dist/skills/runner/dispatcher.d.ts +57 -0
- package/dist/skills/runner/dispatcher.js +407 -0
- package/dist/skills/runner/dispatcher.js.map +1 -0
- package/dist/skills/runner/kernel.d.ts +8 -0
- package/dist/skills/runner/kernel.js +732 -0
- package/dist/skills/runner/kernel.js.map +1 -0
- package/dist/skills/runner/tokenizer.d.ts +36 -0
- package/dist/skills/runner/tokenizer.js +177 -0
- package/dist/skills/runner/tokenizer.js.map +1 -0
- package/dist/threadCli.d.ts +11 -0
- package/dist/threadCli.js +177 -0
- package/dist/threadCli.js.map +1 -0
- package/dist/threadShare.d.ts +21 -0
- package/dist/threadShare.js +121 -0
- package/dist/threadShare.js.map +1 -0
- package/dist/threadSubmit.d.ts +32 -0
- package/dist/threadSubmit.js +199 -0
- package/dist/threadSubmit.js.map +1 -0
- package/dist/tools/bash.js +68 -13
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/index.d.ts +22 -2
- package/dist/tools/index.js +41 -5
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/skillCall.d.ts +2 -0
- package/dist/tools/skillCall.js +77 -0
- package/dist/tools/skillCall.js.map +1 -0
- package/dist/ui/AgentPicker.js +3 -3
- package/dist/ui/AgentPicker.js.map +1 -1
- package/dist/ui/App.js +214 -61
- package/dist/ui/App.js.map +1 -1
- package/dist/ui/Banner.d.ts +2 -1
- package/dist/ui/Banner.js +23 -4
- package/dist/ui/Banner.js.map +1 -1
- package/dist/ui/InputBar.js +6 -3
- package/dist/ui/InputBar.js.map +1 -1
- package/dist/ui/Markdown.d.ts +2 -2
- package/dist/ui/Markdown.js +22 -7
- package/dist/ui/Markdown.js.map +1 -1
- package/dist/ui/MarketplacePicker.d.ts +7 -0
- package/dist/ui/MarketplacePicker.js +122 -0
- package/dist/ui/MarketplacePicker.js.map +1 -0
- package/dist/ui/MessageList.d.ts +4 -1
- package/dist/ui/MessageList.js +72 -7
- package/dist/ui/MessageList.js.map +1 -1
- package/dist/ui/ModelPicker.js +4 -4
- package/dist/ui/ModelPicker.js.map +1 -1
- package/dist/ui/PermissionPrompt.d.ts +16 -4
- package/dist/ui/PermissionPrompt.js +60 -15
- package/dist/ui/PermissionPrompt.js.map +1 -1
- package/dist/ui/SessionPicker.js +2 -2
- package/dist/ui/SessionPicker.js.map +1 -1
- package/dist/ui/ShimmerText.d.ts +8 -0
- package/dist/ui/ShimmerText.js +40 -0
- package/dist/ui/ShimmerText.js.map +1 -0
- package/dist/ui/Spinner.js +3 -9
- package/dist/ui/Spinner.js.map +1 -1
- package/dist/ui/TogglePicker.js +4 -4
- package/dist/ui/TogglePicker.js.map +1 -1
- package/dist/ui/ToolResult.js +6 -0
- package/dist/ui/ToolResult.js.map +1 -1
- package/dist/ui/UnifiedSkillsPicker.d.ts +10 -0
- package/dist/ui/UnifiedSkillsPicker.js +63 -0
- package/dist/ui/UnifiedSkillsPicker.js.map +1 -0
- package/dist/ui/animation.d.ts +3 -0
- package/dist/ui/animation.js +48 -0
- package/dist/ui/animation.js.map +1 -0
- package/dist/ui/useThrottledStream.d.ts +7 -0
- package/dist/ui/useThrottledStream.js +63 -0
- package/dist/ui/useThrottledStream.js.map +1 -0
- package/dist/yomeSkills/auth.d.ts +20 -0
- package/dist/yomeSkills/auth.js +70 -0
- package/dist/yomeSkills/auth.js.map +1 -0
- package/dist/yomeSkills/blacklist.d.ts +33 -0
- package/dist/yomeSkills/blacklist.js +101 -0
- package/dist/yomeSkills/blacklist.js.map +1 -0
- package/dist/yomeSkills/capabilities.d.ts +54 -0
- package/dist/yomeSkills/capabilities.js +175 -0
- package/dist/yomeSkills/capabilities.js.map +1 -0
- package/dist/yomeSkills/capabilityGuard.d.ts +31 -0
- package/dist/yomeSkills/capabilityGuard.js +113 -0
- package/dist/yomeSkills/capabilityGuard.js.map +1 -0
- package/dist/yomeSkills/cli.d.ts +17 -0
- package/dist/yomeSkills/cli.js +477 -0
- package/dist/yomeSkills/cli.js.map +1 -0
- package/dist/yomeSkills/devLink.d.ts +17 -0
- package/dist/yomeSkills/devLink.js +91 -0
- package/dist/yomeSkills/devLink.js.map +1 -0
- package/dist/yomeSkills/doctor.d.ts +13 -0
- package/dist/yomeSkills/doctor.js +152 -0
- package/dist/yomeSkills/doctor.js.map +1 -0
- package/dist/yomeSkills/enable.d.ts +8 -0
- package/dist/yomeSkills/enable.js +67 -0
- package/dist/yomeSkills/enable.js.map +1 -0
- package/dist/yomeSkills/hubPing.d.ts +1 -0
- package/dist/yomeSkills/hubPing.js +41 -0
- package/dist/yomeSkills/hubPing.js.map +1 -0
- package/dist/yomeSkills/install.d.ts +18 -0
- package/dist/yomeSkills/install.js +143 -0
- package/dist/yomeSkills/install.js.map +1 -0
- package/dist/yomeSkills/installGithub.d.ts +26 -0
- package/dist/yomeSkills/installGithub.js +192 -0
- package/dist/yomeSkills/installGithub.js.map +1 -0
- package/dist/yomeSkills/installMeta.d.ts +8 -0
- package/dist/yomeSkills/installMeta.js +76 -0
- package/dist/yomeSkills/installMeta.js.map +1 -0
- package/dist/yomeSkills/integrity.d.ts +26 -0
- package/dist/yomeSkills/integrity.js +107 -0
- package/dist/yomeSkills/integrity.js.map +1 -0
- package/dist/yomeSkills/invoke.d.ts +29 -0
- package/dist/yomeSkills/invoke.js +103 -0
- package/dist/yomeSkills/invoke.js.map +1 -0
- package/dist/yomeSkills/list.d.ts +11 -0
- package/dist/yomeSkills/list.js +55 -0
- package/dist/yomeSkills/list.js.map +1 -0
- package/dist/yomeSkills/login.d.ts +41 -0
- package/dist/yomeSkills/login.js +221 -0
- package/dist/yomeSkills/login.js.map +1 -0
- package/dist/yomeSkills/manifest.d.ts +60 -0
- package/dist/yomeSkills/manifest.js +47 -0
- package/dist/yomeSkills/manifest.js.map +1 -0
- package/dist/yomeSkills/paths.d.ts +13 -0
- package/dist/yomeSkills/paths.js +33 -0
- package/dist/yomeSkills/paths.js.map +1 -0
- package/dist/yomeSkills/publish.d.ts +16 -0
- package/dist/yomeSkills/publish.js +109 -0
- package/dist/yomeSkills/publish.js.map +1 -0
- package/dist/yomeSkills/rollback.d.ts +10 -0
- package/dist/yomeSkills/rollback.js +83 -0
- package/dist/yomeSkills/rollback.js.map +1 -0
- package/dist/yomeSkills/search.d.ts +21 -0
- package/dist/yomeSkills/search.js +31 -0
- package/dist/yomeSkills/search.js.map +1 -0
- package/dist/yomeSkills/skillsIndex.d.ts +36 -0
- package/dist/yomeSkills/skillsIndex.js +111 -0
- package/dist/yomeSkills/skillsIndex.js.map +1 -0
- package/dist/yomeSkills/unified.d.ts +53 -0
- package/dist/yomeSkills/unified.js +187 -0
- package/dist/yomeSkills/unified.js.map +1 -0
- package/dist/yomeSkills/uninstall.d.ts +7 -0
- package/dist/yomeSkills/uninstall.js +22 -0
- package/dist/yomeSkills/uninstall.js.map +1 -0
- package/dist/yomeSkills/update.d.ts +18 -0
- package/dist/yomeSkills/update.js +75 -0
- package/dist/yomeSkills/update.js.map +1 -0
- package/dist/yomeSkills/validate.d.ts +11 -0
- package/dist/yomeSkills/validate.js +99 -0
- package/dist/yomeSkills/validate.js.map +1 -0
- package/package.json +14 -5
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
// `yome skill update [<slug>]` — re-pull installed skills and replace.
|
|
2
|
+
//
|
|
3
|
+
// We rely on `.install-meta.json` to know how each skill was installed.
|
|
4
|
+
// For each candidate skill:
|
|
5
|
+
// - source starts with "github:" → re-run installFromGithub with --force
|
|
6
|
+
// - source starts with "local:" → re-run installFromLocal with --force
|
|
7
|
+
// - source starts with "dev-link" → no-op (the symlink already lives)
|
|
8
|
+
// - source missing → "no install metadata; please reinstall"
|
|
9
|
+
//
|
|
10
|
+
// We compare manifest_version before/after and only print the row if it
|
|
11
|
+
// actually changed (or always if --verbose).
|
|
12
|
+
import { installFromLocal } from './install.js';
|
|
13
|
+
import { installFromGithub } from './installGithub.js';
|
|
14
|
+
import { listInstalled } from './list.js';
|
|
15
|
+
import { readInstallMeta } from './installMeta.js';
|
|
16
|
+
import { readManifest } from './manifest.js';
|
|
17
|
+
export async function updateSkills(filterSlug, opts = {}) {
|
|
18
|
+
const installed = listInstalled();
|
|
19
|
+
const target = filterSlug
|
|
20
|
+
? installed.filter((i) => i.slug === filterSlug)
|
|
21
|
+
: installed;
|
|
22
|
+
const rows = [];
|
|
23
|
+
let allOk = true;
|
|
24
|
+
for (const sk of target) {
|
|
25
|
+
const meta = readInstallMeta(sk.slug);
|
|
26
|
+
const before = sk.version;
|
|
27
|
+
if (!meta) {
|
|
28
|
+
rows.push({ slug: sk.slug, source: null, before, after: null, changed: false, ok: false,
|
|
29
|
+
reason: 'no .install-meta.json (was installed before metadata existed); reinstall manually to enable updates',
|
|
30
|
+
});
|
|
31
|
+
allOk = false;
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
if (meta.source.startsWith('dev-link:')) {
|
|
35
|
+
rows.push({ slug: sk.slug, source: meta.source, before, after: before, changed: false, ok: true,
|
|
36
|
+
reason: 'dev-link (live)',
|
|
37
|
+
});
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
let result;
|
|
41
|
+
if (meta.source.startsWith('github:')) {
|
|
42
|
+
result = await installFromGithub(meta.source, { force: true, verbose: opts.verbose, yes: true });
|
|
43
|
+
}
|
|
44
|
+
else if (meta.source.startsWith('local:')) {
|
|
45
|
+
const path = meta.source.slice('local:'.length);
|
|
46
|
+
result = await installFromLocal(path, { force: true, verbose: opts.verbose, yes: true });
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
rows.push({ slug: sk.slug, source: meta.source, before, after: null, changed: false, ok: false,
|
|
50
|
+
reason: `unsupported source type: ${meta.source}`,
|
|
51
|
+
});
|
|
52
|
+
allOk = false;
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
if (!result.ok) {
|
|
56
|
+
rows.push({ slug: sk.slug, source: meta.source, before, after: null, changed: false, ok: false,
|
|
57
|
+
reason: result.reason,
|
|
58
|
+
});
|
|
59
|
+
allOk = false;
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
const reread = readManifest(result.installedAt);
|
|
63
|
+
const after = reread?.version ?? before;
|
|
64
|
+
rows.push({
|
|
65
|
+
slug: sk.slug,
|
|
66
|
+
source: meta.source,
|
|
67
|
+
before,
|
|
68
|
+
after,
|
|
69
|
+
changed: after !== before,
|
|
70
|
+
ok: true,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
return { rows, allOk };
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/yomeSkills/update.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,EAAE;AACF,wEAAwE;AACxE,4BAA4B;AAC5B,4EAA4E;AAC5E,4EAA4E;AAC5E,wEAAwE;AACxE,8EAA8E;AAC9E,EAAE;AACF,wEAAwE;AACxE,6CAA6C;AAE7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAsB7C,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,UAA8B,EAAE,OAAsB,EAAE;IACzF,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,UAAU;QACvB,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;QAChD,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,IAAI,GAAgB,EAAE,CAAC;IAC7B,IAAI,KAAK,GAAG,IAAI,CAAC;IAEjB,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC;QAE1B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK;gBACrF,MAAM,EAAE,qGAAqG;aAC9G,CAAC,CAAC;YACH,KAAK,GAAG,KAAK,CAAC;YACd,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI;gBAC7F,MAAM,EAAE,iBAAiB;aAC1B,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,IAAI,MAAM,CAAC;QACX,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACtC,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QACnG,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAChD,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3F,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK;gBAC5F,MAAM,EAAE,4BAA4B,IAAI,CAAC,MAAM,EAAE;aAClD,CAAC,CAAC;YACH,KAAK,GAAG,KAAK,CAAC;YACd,SAAS;QACX,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK;gBAC5F,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC,CAAC;YACH,KAAK,GAAG,KAAK,CAAC;YACd,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,WAAY,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,MAAM,EAAE,OAAO,IAAI,MAAM,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM;YACN,KAAK;YACL,OAAO,EAAE,KAAK,KAAK,MAAM;YACzB,EAAE,EAAE,IAAI;SACT,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
// `yome skill validate <path>` — local pre-publish lint.
|
|
2
|
+
//
|
|
3
|
+
// Mirrors the checks that `installFromLocal` does at install time, but as a
|
|
4
|
+
// standalone CI-friendly command. Authors run this before `yome skill publish`
|
|
5
|
+
// so they don't ship a broken manifest. CI calls it on every PR.
|
|
6
|
+
//
|
|
7
|
+
// Checks performed (all non-fatal listed as warnings, not errors):
|
|
8
|
+
// 1. yome-skill.json exists, parses, and `slug` / `domain` / `version`
|
|
9
|
+
// pass the same regexes the installer uses.
|
|
10
|
+
// 2. system_capabilities (if present) are all in the known whitelist.
|
|
11
|
+
// 3. signature/<domain>.signature.json exists and parses (warn-only —
|
|
12
|
+
// pure WebView skills don't need a signature).
|
|
13
|
+
// 4. signature.domain matches manifest.domain (hard error — common typo).
|
|
14
|
+
// 5. backends/sandbox/ exists if delivery.sandbox is declared (warn).
|
|
15
|
+
//
|
|
16
|
+
// Exit codes:
|
|
17
|
+
// 0 = all checks pass (warnings allowed)
|
|
18
|
+
// 1 = at least one error
|
|
19
|
+
// 2 = could not even read the path
|
|
20
|
+
import { existsSync, readFileSync, statSync } from 'fs';
|
|
21
|
+
import { join, resolve } from 'path';
|
|
22
|
+
import { readManifest, validateManifest } from './manifest.js';
|
|
23
|
+
import { KNOWN_CAPABILITIES } from './capabilities.js';
|
|
24
|
+
function pushUnknownCaps(caps, report) {
|
|
25
|
+
if (!caps)
|
|
26
|
+
return;
|
|
27
|
+
const unknown = caps.filter(c => !KNOWN_CAPABILITIES.includes(c));
|
|
28
|
+
if (unknown.length > 0) {
|
|
29
|
+
report.errors.push(`unknown system_capabilities: ${unknown.join(', ')} ` +
|
|
30
|
+
`(allowed: ${KNOWN_CAPABILITIES.join(', ')})`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function checkSignature(skillDir, manifestDomain, report) {
|
|
34
|
+
const sigDir = join(skillDir, 'signature');
|
|
35
|
+
if (!existsSync(sigDir)) {
|
|
36
|
+
report.warnings.push('no signature/ directory (OK for pure WebView skills)');
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const sigFile = join(sigDir, `${manifestDomain}.signature.json`);
|
|
40
|
+
if (!existsSync(sigFile)) {
|
|
41
|
+
report.warnings.push(`signature/ exists but ${manifestDomain}.signature.json missing`);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
let sig;
|
|
45
|
+
try {
|
|
46
|
+
sig = JSON.parse(readFileSync(sigFile, 'utf-8'));
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
report.errors.push(`signature/${manifestDomain}.signature.json: invalid JSON (${err.message})`);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const sigDomain = sig.domain;
|
|
53
|
+
if (sigDomain !== manifestDomain) {
|
|
54
|
+
report.errors.push(`signature/${manifestDomain}.signature.json: domain="${String(sigDomain)}" ≠ manifest.domain="${manifestDomain}"`);
|
|
55
|
+
}
|
|
56
|
+
const cmds = sig.commands;
|
|
57
|
+
if (!cmds || typeof cmds !== 'object') {
|
|
58
|
+
report.errors.push(`signature/${manifestDomain}.signature.json: missing or invalid "commands" map`);
|
|
59
|
+
}
|
|
60
|
+
else if (Object.keys(cmds).length === 0) {
|
|
61
|
+
report.warnings.push(`signature has zero commands — agent will see nothing to call`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
function checkBackends(skillDir, deliveryRaw, report) {
|
|
65
|
+
if (!deliveryRaw || typeof deliveryRaw !== 'object')
|
|
66
|
+
return;
|
|
67
|
+
const delivery = deliveryRaw;
|
|
68
|
+
if (delivery.sandbox && !existsSync(join(skillDir, 'backends', 'sandbox'))) {
|
|
69
|
+
report.warnings.push('delivery.sandbox declared but backends/sandbox/ missing');
|
|
70
|
+
}
|
|
71
|
+
if (delivery.node && !existsSync(join(skillDir, 'backends', 'node'))) {
|
|
72
|
+
report.warnings.push('delivery.node declared but backends/node/ missing');
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
export function validateSkillDir(path) {
|
|
76
|
+
const abs = resolve(path);
|
|
77
|
+
if (!existsSync(abs)) {
|
|
78
|
+
return { ok: false, errors: [`path does not exist: ${abs}`], warnings: [] };
|
|
79
|
+
}
|
|
80
|
+
if (!statSync(abs).isDirectory()) {
|
|
81
|
+
return { ok: false, errors: [`not a directory: ${abs}`], warnings: [] };
|
|
82
|
+
}
|
|
83
|
+
const manifest = readManifest(abs);
|
|
84
|
+
if (!manifest) {
|
|
85
|
+
return { ok: false, errors: [`${abs}/yome-skill.json missing or unreadable`], warnings: [] };
|
|
86
|
+
}
|
|
87
|
+
const v = validateManifest(manifest);
|
|
88
|
+
const report = { errors: [...v.errors], warnings: [] };
|
|
89
|
+
pushUnknownCaps(manifest.system_capabilities, report);
|
|
90
|
+
checkSignature(abs, manifest.domain, report);
|
|
91
|
+
checkBackends(abs, manifest.delivery, report);
|
|
92
|
+
return {
|
|
93
|
+
ok: report.errors.length === 0,
|
|
94
|
+
errors: report.errors,
|
|
95
|
+
warnings: report.warnings,
|
|
96
|
+
manifest: { slug: manifest.slug, domain: manifest.domain, version: manifest.version },
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/yomeSkills/validate.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,19 +1,28 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@poping/yome",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"description": "Yome
|
|
3
|
+
"version": "0.0.3",
|
|
4
|
+
"description": "Yome Agent — the open-source Empower Kernel CLI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"yome": "bin/yome.js"
|
|
8
8
|
},
|
|
9
9
|
"files": [
|
|
10
10
|
"bin",
|
|
11
|
-
"dist"
|
|
11
|
+
"dist",
|
|
12
|
+
"NOTICE"
|
|
12
13
|
],
|
|
14
|
+
"homepage": "https://github.com/Whopus/yome-agent",
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "git+https://github.com/Whopus/yome-agent.git"
|
|
18
|
+
},
|
|
19
|
+
"bugs": {
|
|
20
|
+
"url": "https://github.com/Whopus/yome-agent/issues"
|
|
21
|
+
},
|
|
13
22
|
"scripts": {
|
|
14
23
|
"build": "tsc",
|
|
15
24
|
"dev": "bun --watch src/index.tsx",
|
|
16
|
-
"start": "node bin/yome.
|
|
25
|
+
"start": "node bin/yome.js",
|
|
17
26
|
"prepublishOnly": "npm run build"
|
|
18
27
|
},
|
|
19
28
|
"engines": {
|
|
@@ -26,7 +35,7 @@
|
|
|
26
35
|
"agent",
|
|
27
36
|
"yome"
|
|
28
37
|
],
|
|
29
|
-
"license": "
|
|
38
|
+
"license": "Apache-2.0",
|
|
30
39
|
"dependencies": {
|
|
31
40
|
"fast-glob": "^3.3.2",
|
|
32
41
|
"ink": "^5.1.0",
|