@frockbot/plugin-skills 0.3.0 → 0.3.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frockbot/plugin-skills",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "exports": {
@@ -25,8 +25,8 @@
25
25
  "typecheck": "tsc --noEmit -p tsconfig.json"
26
26
  },
27
27
  "dependencies": {
28
- "@frockbot/kernel-agent-loop": "0.3.0",
29
- "@frockbot/kernel-contracts": "0.3.0",
28
+ "@frockbot/kernel-agent-loop": "0.3.2",
29
+ "@frockbot/kernel-contracts": "0.3.2",
30
30
  "cordis": "4.0.0-rc.8"
31
31
  },
32
32
  "devDependencies": {
package/src/agent.test.ts CHANGED
@@ -76,6 +76,7 @@ describe("the Skill catalog", () => {
76
76
  skills: [
77
77
  { path: "skills/kept/SKILL.md", name: "kept" },
78
78
  { path: "managed/add-connector/SKILL.md" },
79
+ { path: "managed/applets/SKILL.md" },
79
80
  { path: "managed/export-bot-template/SKILL.md" },
80
81
  { path: "managed/import-bot-template/SKILL.md" },
81
82
  { path: "managed/learn-from-demonstration/SKILL.md" },
@@ -0,0 +1,13 @@
1
+ // Generated by scripts/build-applets-package.ts. Do not edit.
2
+ //
3
+ // Authored at packages/plugin-applets/skills/applets.md.
4
+ const TEXT_V1 = new TextDecoder();
5
+ function fromBase64V1(value: string): string {
6
+ return TEXT_V1.decode(
7
+ Uint8Array.from(atob(value), (character) => character.charCodeAt(0)),
8
+ );
9
+ }
10
+ export const APPLETS_SKILL_SLUG_V1 = "applets";
11
+ export const APPLETS_SKILL_DOCUMENT_V1 = fromBase64V1(
12
+ "LS0tCm5hbWU6IEJ1aWxkIGFuIEFwcGxldApkZXNjcmlwdGlvbjogVXNlIHRoaXMgd2hlbmV2ZXIgeW91IGFyZSBjcmVhdGluZyBvciBjaGFuZ2luZyBhbiBBcHBsZXQg4oCUIGEgc21hbGwgcmVhbC10aW1lIGFwcCB3aXRoIGl0cyBvd24gZGF0YSwgaXRzIG93biBwYWdlIGJlc2lkZSB0aGUgY29udmVyc2F0aW9uLCBhbmQgdG9vbHMgeW91IGNhbiBjYWxsLiBJdCBpcyB0aGUgcmVmZXJlbmNlIGZvciB0aGUgQXBwbGV0cyBTREssIHRoZSBmaWxlIGxheW91dCwgdGhlIENMSSwgYW5kIGV2ZXJ5IHJ1bGUgdGhlIGxpbnRlciBlbmZvcmNlcy4KLS0tCgojIEJ1aWxkIGFuIEFwcGxldAoKQW4gQXBwbGV0IGlzIGEgcmVhbCBhcHBsaWNhdGlvbi4gSXQgaGFzIGl0cyBvd24gU1FMaXRlIHN0b3JhZ2UgdGhhdCBzdXJ2aXZlcwpldmVyeSBjb2RlIGNoYW5nZSwgYSBSZWFjdCBwYWdlIHRoZSBVc2VyIG9wZW5zIGJlc2lkZSB0aGlzIGNvbnZlcnNhdGlvbiwgYW5kCnRvb2xzIGV2ZXJ5IEJvdCBvZiB0aGlzIFVzZXIgY2FuIGNhbGwuIFlvdSB3cml0ZSBpdCBpbiBUeXBlU2NyaXB0IG9uIHRoZQpDb21wdXRlciwgY2hlY2sgaXQsIGJ1aWxkIGl0LCBhbmQgcHVibGlzaCBpdDsgdGhlIHB1Ymxpc2hlZCBjb2RlIHJ1bnMgaW4gdGhlCmtlcm5lbCdzIGxvYWRlciwgbmV2ZXIgb24gdGhlIENvbXB1dGVyLgoKVHdvIGZpbGVzIGFyZSB5b3VyczogYHNlcnZlci50c2AgKHRoZSB0YWJsZXMgYW5kIHRoZSB0b29scykgYW5kIGB1aS50c3hgICh0aGUKcGFnZSkuIE5vdGhpbmcgZWxzZS4KCiMjIFRoZSBsb29wCgoxLiAqKmBhcHBsZXRfY3JlYXRlYCoqIHdpdGggYSBkaXNwbGF5IG5hbWUuIEl0IG1ha2VzIHRoZSBBcHBsZXQsIHNjYWZmb2xkcyBhCiAgIHdvcmtpbmcgdG9kbyBsaXN0IGludG8KICAgYC9ob21lL2JveC9hZ2VudC1kYXRhL3VzZXItcGFja2FnZXMvYXBwbGV0cy9zb3VyY2UvPGFwcGxldElkPi9gLCBhbmQgcHV0cyBpdAogICBpbiB0aGUgcGFuZWwgYmVzaWRlIHRoZSBjb252ZXJzYXRpb24uIERvIG5vdCBjcmVhdGUgYSBzZWNvbmQgQXBwbGV0IGZvciBhCiAgIGNoYW5nZSB0byBhbiBleGlzdGluZyBvbmUg4oCUIGBhcHBsZXRfbGlzdGAgZmlyc3QuCjIuICoqRWRpdCoqIGBzZXJ2ZXIudHNgIGFuZCBgdWkudHN4YCBpbiB0aGF0IGRpcmVjdG9yeSB3aXRoIHRoZSBvcmRpbmFyeSBmaWxlCiAgIHRvb2xzLiBUaGUgc2NhZmZvbGQgYWxyZWFkeSBidWlsZHM7IGNoYW5nZSBpdCByYXRoZXIgdGhhbiBzdGFydGluZyBlbXB0eS4KMy4gKipgYXBwbGV0IGNoZWNrYCoqIGluIHRoYXQgZGlyZWN0b3J5LiBJdCB0eXBlLWNoZWNrcyBhbmQgbGludHMsIGFuZCBwcmludHMKICAgZXZlcnkgcHJvYmxlbSBhcyBgcGF0aDpsaW5lOmNvbCBtZXNzYWdlYC4gRml4IGFsbCBvZiB0aGVtLiBEbyBub3QgcHVibGlzaAogICBvdmVyIGEgZmFpbGluZyBjaGVjayDigJQgdGhlIHB1Ymxpc2ggd2lsbCBiZSByZWZ1c2VkIGFuZCB5b3Ugd2lsbCBoYXZlIHNwZW50IGEKICAgVHVybiBsZWFybmluZyB3aGF0IGBhcHBsZXQgY2hlY2tgIHdvdWxkIGhhdmUgdG9sZCB5b3UuCjQuICoqYGFwcGxldCBidWlsZGAqKiBpbiB0aGF0IGRpcmVjdG9yeS4gSXQgd3JpdGVzIGBkaXN0L3NlcnZlci5qc2AsCiAgIGBkaXN0L3VpLmh0bWxgLCBhbmQgYGRpc3QvbWFuaWZlc3QuanNvbmAuIFRoZSB0b29sIGxpc3QgaW4gdGhlIG1hbmlmZXN0IGlzCiAgIGRlcml2ZWQgYnkgX3J1bm5pbmdfIHlvdXIgc2VydmVyLCBzbyBhIHRvb2wgdGhhdCBkb2VzIG5vdCBib290IGlzIGEgYnVpbGQKICAgZmFpbHVyZSwgbm90IGEgc3VycHJpc2UgbGF0ZXIuCjUuICoqYGFwcGxldCBkZXZgKiogaWYgeW91IHdhbnQgdG8gbG9vayBhdCBpdC4gSXQgcHJpbnRzIGEgbG9jYWwgVVJMIGFuZCBvcGVucwogICBub3RoaW5nOyBvcGVuIHRoYXQgVVJMIGluIHRoZSBDb21wdXRlcidzIGJyb3dzZXIgYW5kIHNjcmVlbnNob3QgaXQuIE1vZGVscwogICBhcmUgdW5hdmFpbGFibGUgaW4gYGFwcGxldCBkZXZgLgo2LiAqKmBhcHBsZXRfcHVibGlzaGAqKiB3aXRoIHRoZSBBcHBsZXQncyBpZC4gSXQgcmVhZHMgd2hhdCBgYXBwbGV0IGJ1aWxkYAogICB3cm90ZSwgcmVjb3JkcyBhbiBpbW11dGFibGUgZ2VuZXJhdGlvbiwgbW91bnRzIGl0LCBhbmQgb2ZmZXJzIGl0cyB0b29scyB0bwogICBldmVyeSBCb3Qgb2YgdGhpcyBVc2VyIGZyb20geW91ciBuZXh0IFR1cm4g4oCUIG5vdCB0aGlzIG9uZS4KCmBhcHBsZXRfZ2VuZXJhdGlvbnNgIGxpc3RzIHRoZSBoaXN0b3J5OyBgYXBwbGV0X3JldmVydGAgbW92ZXMgYmFjayB0byBhbgplYXJsaWVyIGdlbmVyYXRpb24gYW5kIGlzIGl0c2VsZiByZWNvcmRlZC4gUmV2ZXJ0aW5nIGNvZGUgbmV2ZXIgdG91Y2hlcyB0aGUKQXBwbGV0J3MgZGF0YS4gYGFwcGxldF9kZWxldGVgIGRlc3Ryb3lzIHRoZSBkYXRhIHRvbywgc28gYXNrIHRoZSBVc2VyIGZpcnN0LgoKIyMgYHNlcnZlci50c2AKCmBgYHRzCmltcG9ydCB7IEFwcGxldCwgdCwgdGFibGUgfSBmcm9tICJAZnJvY2tib3QvYXBwbGV0LXNkay9zZXJ2ZXIiOwoKY29uc3QgdGFibGVzID0gewogIHRvZG9zOiB0YWJsZSh7CiAgICBpZDogdC5pZCgpLAogICAgdGl0bGU6IHQudGV4dCgpLAogICAgZG9uZTogdC5ib29sZWFuKCkuZGVmYXVsdChmYWxzZSksCiAgICBjcmVhdGVkQXQ6IHQudGltZXN0YW1wKCksCiAgfSksCn07CgpleHBvcnQgZGVmYXVsdCBjbGFzcyBUb2RvQXBwbGV0IGV4dGVuZHMgQXBwbGV0PHR5cGVvZiB0YWJsZXM+IHsKICB0YWJsZXMgPSB0YWJsZXM7CgogIHRvb2xzID0gewogICAgYWRkX3RvZG86IHRoaXMudG9vbCgKICAgICAgeyBkZXNjcmlwdGlvbjogIkFkZCBhIHRvZG8gdG8gdGhlIGxpc3QiLCBpbnB1dDogeyB0aXRsZTogdC50ZXh0KCkgfSB9LAogICAgICAoeyB0aXRsZSB9KSA9PiB7CiAgICAgICAgdGhpcy5kYi50b2Rvcy5pbnNlcnQoeyB0aXRsZSwgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkgfSk7CiAgICAgICAgcmV0dXJuIGBBZGRlZCAiJHt0aXRsZX0iLmA7CiAgICAgIH0sCiAgICApLAogIH07Cn0KYGBgCgotIGB0YWJsZXNgIG11c3QgYmUgYW4gb2JqZWN0IGxpdGVyYWwgb2YgYHRhYmxlKHsg4oCmIH0pYCBjYWxscywgZGVjbGFyZWQgb25jZS4KICBUaGUgc2NoZW1hIGJlY29tZXMgdGhlIFNRTGl0ZSB0YWJsZXMsIHRoZSB3aXJlIGZvcm1hdCwgYW5kIHRoZSBjbGllbnQncwogIGNvbGxlY3Rpb25zLiBDb2x1bW4gdHlwZXM6IGB0LmlkKClgLCBgdC50ZXh0KClgLCBgdC5ib29sZWFuKClgLAogIGB0LnRpbWVzdGFtcCgpYCwgZWFjaCB3aXRoIG9wdGlvbmFsIGAuZGVmYXVsdCh2YWx1ZSlgIGFuZCBgLm9wdGlvbmFsKClgLgotIGB0b29sc2AgbXVzdCBiZSBhbiBvYmplY3QgbGl0ZXJhbCBvZiBgdGhpcy50b29sKHsgZGVzY3JpcHRpb24sIGlucHV0IH0sIGZuKWAKICBjYWxscy4gQSB0b29sIG5hbWUgaXMgYF5bYS16XVthLXowLTlfXXswLDYzfSRgIGFuZCB0aGUgZGVzY3JpcHRpb24gaXMgd2hhdCBhCiAgbW9kZWwgcmVhZHMgYmVmb3JlIGNhbGxpbmcgaXQsIHNvIHdyaXRlIGl0IGZvciBhIG1vZGVsLgotIGB0aGlzLmRiLjx0YWJsZT5gIGlzIHRoZSBvbmx5IHdheSB0byByZWFkIG9yIHdyaXRlOgogIGBpbnNlcnQodmFsdWVzKWAsIGB1cGRhdGUoa2V5LCBwYXRjaClgLCBgZGVsZXRlKGtleSlgLCBgc2VsZWN0KGZpbHRlcj8pYC4KICBFYWNoIGNhbGwgaXMgYXRvbWljLgotIEEgdG9vbCByZXR1cm5zIGEgc3RyaW5nLiBUaGF0IHN0cmluZyBpcyB3aGF0IHRoZSBjYWxsaW5nIEJvdCBzZWVzLgotICoqU2NoZW1hIGNoYW5nZXMuKiogQWRkaW5nIGEgY29sdW1uIHdpdGggYC5kZWZhdWx0KOKApilgIG9yIGAub3B0aW9uYWwoKWAgaXMKICBhcHBsaWVkIG9uIHRoZSBuZXh0IG1vdW50IGFuZCB0aGUgcm93cyBhcmUga2VwdC4gQW55dGhpbmcgZWxzZSDigJQgYSByZW5hbWUsIGEKICB2YWx1ZSByZXdyaXRlIOKAlCBuZWVkcyBgYXN5bmMgbWlncmF0ZShmcm9tOiBudW1iZXIpYCBvbiB0aGUgY2xhc3MuIEl0IHJ1bnMKICBvbmNlLCBiZWZvcmUgdGhlIEFwcGxldCBzZXJ2ZXMgYW55dGhpbmcsIGFuZCB0aHJvd2luZyBmYWlscyB0aGUgYWN0aXZhdGlvbgogIGJhY2sgdG8gdGhlIGxhc3Qga25vd24tZ29vZCBnZW5lcmF0aW9uIHdpdGggdGhlIG9sZCBkYXRhIHN0aWxsIHJlc2lkZW50LgoKIyMgYHVpLnRzeGAKCmBgYHRzeAppbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gInJlYWN0IjsKaW1wb3J0IHsgY3JlYXRlQXBwbGV0LCBtb3VudCwgbmV3SWQgfSBmcm9tICJAZnJvY2tib3QvYXBwbGV0LXNkay9jbGllbnQiOwppbXBvcnQgeyBCdXR0b24sIElucHV0LCBMaXN0LCBMaXN0SXRlbSwgU3RhY2sgfSBmcm9tICJAZnJvY2tib3QvYXBwbGV0LXNkay9raXQiOwppbXBvcnQgdHlwZSBUb2RvQXBwbGV0IGZyb20gIi4vc2VydmVyIjsKCmNvbnN0IGFwcGxldCA9IGNyZWF0ZUFwcGxldDxUb2RvQXBwbGV0PigpOwoKZnVuY3Rpb24gQXBwKCkgewogIGNvbnN0IHsgZGF0YTogdG9kb3MgfSA9IGFwcGxldC51c2VMaXZlUXVlcnkoKHF1ZXJ5KSA9PgogICAgcXVlcnkKICAgICAgLmZyb20oeyB0b2RvOiBhcHBsZXQudGFibGVzLnRvZG9zIH0pCiAgICAgIC5vcmRlckJ5KCh7IHRvZG8gfSkgPT4gdG9kby5jcmVhdGVkQXQpLAogICk7CiAgLy8gT3B0aW1pc3RpYzogdGhlIHJvdyBhcHBlYXJzIGF0IG9uY2UgYW5kIHJvbGxzIGJhY2sgaWYgdGhlIHNlcnZlciByZWplY3RzIGl0LgogIGNvbnN0IGFkZCA9ICh0aXRsZTogc3RyaW5nKSA9PgogICAgYXBwbGV0LnRhYmxlcy50b2Rvcy5pbnNlcnQoewogICAgICBpZDogbmV3SWQoKSwKICAgICAgdGl0bGUsCiAgICAgIGRvbmU6IGZhbHNlLAogICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSwKICAgIH0pOwogIHJldHVybiAoCiAgICA8U3RhY2sgcm9vdCBnYXA9ImxhcmdlIj4KICAgICAg4oCmCiAgICA8L1N0YWNrPgogICk7Cn0KCm1vdW50KDxBcHAgLz4pOwpgYGAKCi0gYGNyZWF0ZUFwcGxldDxUU2VydmVyPigpYCBjb25uZWN0cyBvbiBpdHMgb3duIHdoZW4gdGhlIGhvc3Qgc2VuZHMgYGluaXRgLgogIFRoZXJlIGlzIG5vIGxvYWRpbmcgd2lyaW5nIHRvIHdyaXRlIGFuZCBubyBVUkwgdG8gZmV0Y2guCi0gYGFwcGxldC51c2VBcHBsZXQoKWAgZ2l2ZXMgYHsgc3RhdHVzIH1gIGlmIHlvdSB3YW50IHRvIHNob3cgdGhlIGNvbm5lY3Rpb24uCi0gTXV0YXRpb25zIGFyZSBwZXItcm93IGFuZCBvcHRpbWlzdGljOyBhIHJlamVjdGlvbiByb2xscyB0aGUgcm93IGJhY2suIERvIG5vdAogIHdyaXRlIHlvdXIgb3duIHJldHJ5LgotIENhbGwgYG1vdW50KDxBcHAgLz4pYCBleGFjdGx5IG9uY2UsIGF0IHRoZSBib3R0b20gb2YgdGhlIGZpbGUuCgojIyBUaGUgY29tcG9uZW50IGtpdAoKYGltcG9ydCB7IOKApiB9IGZyb20gIkBmcm9ja2JvdC9hcHBsZXQtc2RrL2tpdCJgLiBGb3VydGVlbiBjb21wb25lbnRzOyB0aGV5IGFyZQp0aGUgd2hvbGUgdmlzdWFsIHZvY2FidWxhcnkuIFRoZXJlIGlzIG5vIENTUyBmaWxlIHRvIHdyaXRlIGFuZCBubyBjb2xvdXIgdG8KY2hvb3NlLgoKfCBDb21wb25lbnQgICAgICAgICAgIHwgUHJvcHMgdGhhdCBtYXR0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IC0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8CnwgYFN0YWNrYCAgICAgICAgICAgICB8IGBkaXJlY3Rpb25gIGAicm93IiBcfCAiY29sdW1uImAsIGBnYXBgIGAibm9uZSIgXHwgInNtYWxsIiBcfCAibWVkaXVtIiBcfCAibGFyZ2UiYCwgYGFsaWduYCwgYGp1c3RpZnlgLCBgd3JhcGAsIGByb290YCAoZXhhY3RseSBvbmUsIGF0IHRoZSB0b3ApIHwKfCBgVGV4dGAgICAgICAgICAgICAgIHwgYHNpemVgIGAidGl0bGUiIFx8ICJoZWFkaW5nIiBcfCAiYm9keSIgXHwgInNtYWxsImAsIGB0b25lYCBgImRlZmF1bHQiIFx8ICJtdXRlZCJgLCBgYXNgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBCdXR0b25gICAgICAgICAgICAgfCBgdmFyaWFudGAgYCJkZWZhdWx0IiBcfCAicHJpbWFyeSIgXHwgImdob3N0ImAsIGBvbkNsaWNrYCwgYGRpc2FibGVkYC4gTmV2ZXIgc3VibWl0cyBhIGZvcm0gYnkgYWNjaWRlbnQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYElucHV0YCwgYFRleHRhcmVhYCB8IGBsYWJlbGAsIGBlcnJvcmAsIGB2YWx1ZWAsIGBvblZhbHVlQ2hhbmdlKHZhbHVlKWAsIGBwbGFjZWhvbGRlcmA7IG5hdGl2ZSBhdHRyaWJ1dGVzIHBhc3MgdGhyb3VnaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgU2VsZWN0YCAgICAgICAgICAgIHwgYElucHV0YCBwbHVzIGBvcHRpb25zOiBBcnJheTx7IHZhbHVlOyBsYWJlbCB9PmAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBDaGVja2JveGAgICAgICAgICAgfCBgY2hlY2tlZGAsIGBvbkNoYW5nZShjaGVja2VkKWAsIGBsYWJlbGAgb3IgYGFyaWFMYWJlbGAgKG9uZSBpcyByZXF1aXJlZCksIGBkaXNhYmxlZGAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYENhcmRgICAgICAgICAgICAgICB8IGB0aXRsZT9gLCBjaGlsZHJlbiDigJQgYSBib3JkZXJlZCBwYW5lbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBUb29sYmFyYCAgICAgICAgICAgfCBjaGlsZHJlbiBsZWFkLCBgZW5kP2AgdHJhaWxzIOKAlCB0aGUgQXBwbGV0J3MgdGl0bGUgYW5kIGl0cyBzdGF0dXMgb3IgcHJpbWFyeSBhY3Rpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgTGlzdGAsIGBMaXN0SXRlbWAgIHwgYExpc3RgOiBgYm9yZGVyZWQ/YCAoZGVmYXVsdCB0cnVlKS4gYExpc3RJdGVtYDogYHN0YXJ0P2AsIGBlbmQ/YCwgYG9uQ2xpY2s/YCwgY2hpbGRyZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBCYWRnZWAgICAgICAgICAgICAgfCBgdG9uZWAgYCJkZWZhdWx0IiBcfCAiYWNjZW50ImAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYEVtcHR5U3RhdGVgICAgICAgICB8IGB0aXRsZWAsIGBkZXNjcmlwdGlvbj9gLCBgYWN0aW9uP2Ag4oCUIHNob3cgaXQgd2hlbmV2ZXIgYSBsaXZlIHF1ZXJ5IGlzIGVtcHR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBEaWFsb2dgICAgICAgICAgICAgfCBgb3BlbmAsIGBvbkNsb3NlYCAoRXNjYXBlIGFuZCBiYWNrZHJvcCksIGB0aXRsZWAsIGBhY3Rpb25zYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CgpUaGUga2l0IHJlYWRzIHRoZSBuaW5lIHRva2VucyB0aGUgaG9zdCBpbmplY3RzOiBgc3VyZmFjZWAsIGBzdXJmYWNlLXJhaXNlZGAsCmBzdXJmYWNlLXN1YnRsZWAsIGB0ZXh0YCwgYHRleHQtbXV0ZWRgLCBgYm9yZGVyYCwgYGFjY2VudC1zdXJmYWNlYCwKYGFjY2VudC10ZXh0YCwgYHJhZGl1cy1jYXJkYC4gUmVhZCB0aGVtIHlvdXJzZWxmIG9ubHkgYXMKYHZhcigtLWZyb2NrYm90LTxuYW1lPilgLgoKIyMgVGhlIHJ1bGVzIHRoZSBsaW50ZXIgZW5mb3JjZXMKCkV2ZXJ5IG9uZSBvZiB0aGVzZSBpcyBhbiBlcnJvciBmcm9tIGBhcHBsZXQgY2hlY2tgLCBub3QgYSB3YXJuaW5nLgoKLSAqKmBhcHBsZXQvbm8tcmF3LWNvbG9yc2AqKiDigJQgbm8gYCNoZXhgLCBgcmdiKClgLCBgcmdiYSgpYCwgYGhzbCgpYCwgYGhzbGEoKWAsCiAgYGNvbG9yLW1peCgpYCwgb3IgYSBDU1MgY29sb3VyIG5hbWUsIGluIGAudHNgLCBgLnRzeGAsIG9yIGAuY3NzYC4gVXNlIHRoZQogIHRva2Vucy4gSWYgdGhlIGtpdCBjYW5ub3QgZXhwcmVzcyB3aGF0IHlvdSB3YW50LCBzYXkgc28gdG8gdGhlIFVzZXIgcmF0aGVyCiAgdGhhbiBzdHlsaW5nIGFyb3VuZCBpdC4KLSAqKmBhcHBsZXQvbm8tbmV0d29ya2AqKiDigJQgbm8gYGZldGNoYCwgYFhNTEh0dHBSZXF1ZXN0YCwgYFdlYlNvY2tldGAsCiAgYEV2ZW50U291cmNlYCwgb3IgYG5hdmlnYXRvci5zZW5kQmVhY29uYC4gQW4gQXBwbGV0IGhhcyBubyBvdXRib3VuZCBuZXR3b3JrLgogIFJlYWNoIHRoZSB3b3JsZCB0aHJvdWdoIGEgdG9vbCBvbiB0aGUgc2VydmVyLCB3aGljaCB0aGUgQm90IGNhbGxzLgotICoqYGFwcGxldC9hbGxvd2VkLWltcG9ydHNgKiog4oCUIG9ubHkgcmVsYXRpdmUgaW1wb3J0cywgYHJlYWN0YCwgYW5kCiAgYEBmcm9ja2JvdC9hcHBsZXQtc2RrLypgLiBUaGVyZSBpcyBubyBucG0gaW5zdGFsbC4KLSAqKmBhcHBsZXQvdGFibGVzLXZpYS10YWJsZWAqKiDigJQgYHRhYmxlc2AgaXMgYW4gb2JqZWN0IGxpdGVyYWwgb2YgYHRhYmxlKHvigKZ9KWAuCi0gKipgYXBwbGV0L3Rvb2xzLXZpYS10aGlzLXRvb2xgKiog4oCUIGB0b29sc2AgaXMgYW4gb2JqZWN0IGxpdGVyYWwgb2YKICBgdGhpcy50b29sKOKApilgLgoKIyMgV2hlbiBpdCBnb2VzIHdyb25nCgp8IFdoYXQgeW91IHNlZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFdoYXQgaXQgbWVhbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8CnwgYCJkaXN0L3NlcnZlci5qcyIgaXMg4oCmOiBydW4gXGBhcHBsZXQgYnVpbGRcYCDigKZgICAgICB8IHlvdSBwdWJsaXNoZWQgd2l0aG91dCBidWlsZGluZywgb3IgYnVpbHQgaW4gdGhlIHdyb25nIGRpcmVjdG9yeSAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgZGlzdC9tYW5pZmVzdC5qc29uIGRvZXMgbm90IG1hdGNoIHRoZSBidWlsdCBmaWxlc2AgfCB5b3UgZWRpdGVkIGEgZmlsZSBhZnRlciBidWlsZGluZzsgcnVuIGBhcHBsZXQgYnVpbGRgIGFnYWluICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYGFwcGxldCBjaGVjazogTiBlcnJvcihzKWAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZml4IGV2ZXJ5IGxpbmUgaXQgcHJpbnRlZCBiZWZvcmUgZG9pbmcgYW55dGhpbmcgZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGEgcHVibGlzaCByZXBvcnRzIGBmYWlsZWRgIHdpdGggZGlhZ25vc3RpY3MgICAgICAgICB8IHRoZSBnZW5lcmF0aW9uIGRpZCBub3QgbW91bnQ7IHRoZSBwcmV2aW91cyBvbmUgaXMgc3RpbGwgbGl2ZSBhbmQgaXRzIGRhdGEgaXMgdW50b3VjaGVkIHwKfCB0aGUgdG9vbHMgZG8gbm90IGFwcGVhciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBhIHB1Ymxpc2hlZCBnZW5lcmF0aW9uIGFjdGl2YXRlcyBvbiB5b3VyICoqbmV4dCoqIFR1cm4sIG5vdCB0aGUgb25lIHRoYXQgcHVibGlzaGVkIGl0ICB8CgpSZXBvcnQgYSBwdWJsaXNoIGZhaWx1cmUgdG8gdGhlIFVzZXIgd2l0aCB0aGUgZGlhZ25vc3RpY3MgYXMgdGhleSB3ZXJlCnByaW50ZWQuIE5ldmVyIGNsYWltIGFuIEFwcGxldCBpcyB3b3JraW5nIGJlY2F1c2UgdGhlIGJ1aWxkIHBhc3NlZDogcHVibGlzaGluZwppcyB3aGF0IG1ha2VzIGl0IHJlYWwsIGFuZCBvbmx5IGEgYHB1Ymxpc2hlZGAgcmVzdWx0IG1lYW5zIGl0IGRpZC4K",
13
+ );
package/src/managed.ts CHANGED
@@ -27,6 +27,10 @@ import {
27
27
  isSkillSlugV1,
28
28
  } from "./skill-md.js";
29
29
  import type { LoadedSkillV1, SkillRefusalV1 } from "./catalog.js";
30
+ import {
31
+ APPLETS_SKILL_DOCUMENT_V1,
32
+ APPLETS_SKILL_SLUG_V1,
33
+ } from "./managed-applets.generated.js";
30
34
 
31
35
  /** The directory prefix a managed Skill's synthetic path carries. */
32
36
  export const MANAGED_SKILL_PATH_PREFIX = "managed";
@@ -167,6 +171,12 @@ export const MANAGED_SKILL_DOCUMENTS_V1: readonly ManagedSkillDocumentV1[] = [
167
171
  { slug: "export-bot-template", text: EXPORT_BOT_TEMPLATE },
168
172
  { slug: "import-bot-template", text: IMPORT_BOT_TEMPLATE },
169
173
  { slug: "learn-from-demonstration", text: LEARN_FROM_DEMONSTRATION },
174
+ // The Applets SDK reference (ADR 0022). It is authored in
175
+ // `packages/plugin-applets/skills/applets.md`, beside the Package it
176
+ // documents, and copied here by `scripts/build-applets-package.ts`: the
177
+ // Applets Package has no in-process code to carry it, and the managed set is
178
+ // the mechanism a first-party Skill already ships through.
179
+ { slug: APPLETS_SKILL_SLUG_V1, text: APPLETS_SKILL_DOCUMENT_V1 },
170
180
  ];
171
181
 
172
182
  /** The synthetic path a managed Skill is listed and loadable under. */
@@ -76,7 +76,7 @@ async function openSession(): Promise<{
76
76
  }
77
77
 
78
78
  describe("the managed Skill source", () => {
79
- test("ships the four first-party Skills, content-addressed", async () => {
79
+ test("ships the first-party Skills, content-addressed", async () => {
80
80
  const loaded = await loadManagedSkillsV1();
81
81
 
82
82
  expect(loaded.refusals).toEqual([]);
@@ -85,6 +85,7 @@ describe("the managed Skill source", () => {
85
85
  "export-bot-template",
86
86
  "import-bot-template",
87
87
  "learn-from-demonstration",
88
+ "applets",
88
89
  ]);
89
90
  for (const skill of loaded.skills) {
90
91
  expect(skill.ref?.source).toBe("managed");
@@ -504,6 +505,7 @@ describe("a Turn's whole catalog", () => {
504
505
  "managed",
505
506
  "managed",
506
507
  "managed",
508
+ "managed",
507
509
  "plugin",
508
510
  ]);
509
511