skyl.dev 0.1.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.
Files changed (139) hide show
  1. package/bundle.json +1 -0
  2. package/dist/bin.d.ts +3 -0
  3. package/dist/bin.d.ts.map +1 -0
  4. package/dist/bin.js +4 -0
  5. package/dist/bin.js.map +1 -0
  6. package/dist/cli.d.ts +2 -0
  7. package/dist/cli.d.ts.map +1 -0
  8. package/dist/cli.js +158 -0
  9. package/dist/cli.js.map +1 -0
  10. package/dist/commands/add.d.ts +10 -0
  11. package/dist/commands/add.d.ts.map +1 -0
  12. package/dist/commands/add.js +38 -0
  13. package/dist/commands/add.js.map +1 -0
  14. package/dist/commands/audit.d.ts +16 -0
  15. package/dist/commands/audit.d.ts.map +1 -0
  16. package/dist/commands/audit.js +91 -0
  17. package/dist/commands/audit.js.map +1 -0
  18. package/dist/commands/context.d.ts +17 -0
  19. package/dist/commands/context.d.ts.map +1 -0
  20. package/dist/commands/context.js +47 -0
  21. package/dist/commands/context.js.map +1 -0
  22. package/dist/commands/diff.d.ts +12 -0
  23. package/dist/commands/diff.d.ts.map +1 -0
  24. package/dist/commands/diff.js +79 -0
  25. package/dist/commands/diff.js.map +1 -0
  26. package/dist/commands/learn.d.ts +18 -0
  27. package/dist/commands/learn.d.ts.map +1 -0
  28. package/dist/commands/learn.js +115 -0
  29. package/dist/commands/learn.js.map +1 -0
  30. package/dist/commands/lint.d.ts +14 -0
  31. package/dist/commands/lint.d.ts.map +1 -0
  32. package/dist/commands/lint.js +109 -0
  33. package/dist/commands/lint.js.map +1 -0
  34. package/dist/commands/list.d.ts +6 -0
  35. package/dist/commands/list.d.ts.map +1 -0
  36. package/dist/commands/list.js +60 -0
  37. package/dist/commands/list.js.map +1 -0
  38. package/dist/commands/remove.d.ts +16 -0
  39. package/dist/commands/remove.d.ts.map +1 -0
  40. package/dist/commands/remove.js +73 -0
  41. package/dist/commands/remove.js.map +1 -0
  42. package/dist/commands/scan.d.ts +10 -0
  43. package/dist/commands/scan.d.ts.map +1 -0
  44. package/dist/commands/scan.js +60 -0
  45. package/dist/commands/scan.js.map +1 -0
  46. package/dist/commands/update.d.ts +11 -0
  47. package/dist/commands/update.d.ts.map +1 -0
  48. package/dist/commands/update.js +135 -0
  49. package/dist/commands/update.js.map +1 -0
  50. package/dist/context.d.ts +44 -0
  51. package/dist/context.d.ts.map +1 -0
  52. package/dist/context.js +179 -0
  53. package/dist/context.js.map +1 -0
  54. package/dist/ignore.d.ts +21 -0
  55. package/dist/ignore.d.ts.map +1 -0
  56. package/dist/ignore.js +79 -0
  57. package/dist/ignore.js.map +1 -0
  58. package/dist/install.d.ts +10 -0
  59. package/dist/install.d.ts.map +1 -0
  60. package/dist/install.js +54 -0
  61. package/dist/install.js.map +1 -0
  62. package/dist/learn.d.ts +45 -0
  63. package/dist/learn.d.ts.map +1 -0
  64. package/dist/learn.js +146 -0
  65. package/dist/learn.js.map +1 -0
  66. package/dist/registry.d.ts +23 -0
  67. package/dist/registry.d.ts.map +1 -0
  68. package/dist/registry.js +38 -0
  69. package/dist/registry.js.map +1 -0
  70. package/dist/scan.d.ts +3 -0
  71. package/dist/scan.d.ts.map +1 -0
  72. package/dist/scan.js +104 -0
  73. package/dist/scan.js.map +1 -0
  74. package/dist/state.d.ts +31 -0
  75. package/dist/state.d.ts.map +1 -0
  76. package/dist/state.js +39 -0
  77. package/dist/state.js.map +1 -0
  78. package/dist/ui.d.ts +17 -0
  79. package/dist/ui.d.ts.map +1 -0
  80. package/dist/ui.js +35 -0
  81. package/dist/ui.js.map +1 -0
  82. package/node_modules/@skyl/core/dist/audit.d.ts +48 -0
  83. package/node_modules/@skyl/core/dist/audit.d.ts.map +1 -0
  84. package/node_modules/@skyl/core/dist/audit.js +99 -0
  85. package/node_modules/@skyl/core/dist/audit.js.map +1 -0
  86. package/node_modules/@skyl/core/dist/detect.d.ts +15 -0
  87. package/node_modules/@skyl/core/dist/detect.d.ts.map +1 -0
  88. package/node_modules/@skyl/core/dist/detect.js +62 -0
  89. package/node_modules/@skyl/core/dist/detect.js.map +1 -0
  90. package/node_modules/@skyl/core/dist/diff.d.ts +32 -0
  91. package/node_modules/@skyl/core/dist/diff.d.ts.map +1 -0
  92. package/node_modules/@skyl/core/dist/diff.js +119 -0
  93. package/node_modules/@skyl/core/dist/diff.js.map +1 -0
  94. package/node_modules/@skyl/core/dist/errors.d.ts +21 -0
  95. package/node_modules/@skyl/core/dist/errors.d.ts.map +1 -0
  96. package/node_modules/@skyl/core/dist/errors.js +25 -0
  97. package/node_modules/@skyl/core/dist/errors.js.map +1 -0
  98. package/node_modules/@skyl/core/dist/index.d.ts +14 -0
  99. package/node_modules/@skyl/core/dist/index.d.ts.map +1 -0
  100. package/node_modules/@skyl/core/dist/index.js +14 -0
  101. package/node_modules/@skyl/core/dist/index.js.map +1 -0
  102. package/node_modules/@skyl/core/dist/lint.d.ts +28 -0
  103. package/node_modules/@skyl/core/dist/lint.d.ts.map +1 -0
  104. package/node_modules/@skyl/core/dist/lint.js +169 -0
  105. package/node_modules/@skyl/core/dist/lint.js.map +1 -0
  106. package/node_modules/@skyl/core/dist/lockfile.d.ts +37 -0
  107. package/node_modules/@skyl/core/dist/lockfile.d.ts.map +1 -0
  108. package/node_modules/@skyl/core/dist/lockfile.js +47 -0
  109. package/node_modules/@skyl/core/dist/lockfile.js.map +1 -0
  110. package/node_modules/@skyl/core/dist/match.d.ts +19 -0
  111. package/node_modules/@skyl/core/dist/match.d.ts.map +1 -0
  112. package/node_modules/@skyl/core/dist/match.js +72 -0
  113. package/node_modules/@skyl/core/dist/match.js.map +1 -0
  114. package/node_modules/@skyl/core/dist/names.d.ts +11 -0
  115. package/node_modules/@skyl/core/dist/names.d.ts.map +1 -0
  116. package/node_modules/@skyl/core/dist/names.js +31 -0
  117. package/node_modules/@skyl/core/dist/names.js.map +1 -0
  118. package/node_modules/@skyl/core/dist/parse.d.ts +22 -0
  119. package/node_modules/@skyl/core/dist/parse.d.ts.map +1 -0
  120. package/node_modules/@skyl/core/dist/parse.js +163 -0
  121. package/node_modules/@skyl/core/dist/parse.js.map +1 -0
  122. package/node_modules/@skyl/core/dist/resolve.d.ts +12 -0
  123. package/node_modules/@skyl/core/dist/resolve.d.ts.map +1 -0
  124. package/node_modules/@skyl/core/dist/resolve.js +40 -0
  125. package/node_modules/@skyl/core/dist/resolve.js.map +1 -0
  126. package/node_modules/@skyl/core/dist/source.d.ts +35 -0
  127. package/node_modules/@skyl/core/dist/source.d.ts.map +1 -0
  128. package/node_modules/@skyl/core/dist/source.js +85 -0
  129. package/node_modules/@skyl/core/dist/source.js.map +1 -0
  130. package/node_modules/@skyl/core/dist/targets.d.ts +20 -0
  131. package/node_modules/@skyl/core/dist/targets.d.ts.map +1 -0
  132. package/node_modules/@skyl/core/dist/targets.js +24 -0
  133. package/node_modules/@skyl/core/dist/targets.js.map +1 -0
  134. package/node_modules/@skyl/core/dist/types.d.ts +51 -0
  135. package/node_modules/@skyl/core/dist/types.d.ts.map +1 -0
  136. package/node_modules/@skyl/core/dist/types.js +2 -0
  137. package/node_modules/@skyl/core/dist/types.js.map +1 -0
  138. package/node_modules/@skyl/core/package.json +20 -0
  139. package/package.json +43 -0
@@ -0,0 +1,24 @@
1
+ const flat = (name) => name.replace('/', '-');
2
+ export const TARGETS = [
3
+ {
4
+ id: 'claude',
5
+ dir: '.claude/skills',
6
+ fileFor: (name) => `${flat(name)}/SKILL.md`,
7
+ },
8
+ {
9
+ id: 'cursor',
10
+ dir: '.cursor/rules',
11
+ fileFor: (name) => `${flat(name)}.mdc`,
12
+ // Cursor decides when to apply a rule from its own frontmatter, so a skill that
13
+ // arrives without one is either always on or never on, depending on the version.
14
+ header: (name) => `---\ndescription: ${name}\nalwaysApply: false\n---\n\n`,
15
+ },
16
+ { id: 'windsurf', dir: '.windsurf/rules', fileFor: (name) => `${flat(name)}.md` },
17
+ { id: 'continue', dir: '.continue/rules', fileFor: (name) => `${flat(name)}.md` },
18
+ { id: 'agents', dir: '.agents/skills', fileFor: (name) => `${flat(name)}.md` },
19
+ ];
20
+ export const DEFAULT_TARGET = 'claude';
21
+ export function targetById(id) {
22
+ return TARGETS.find((t) => t.id === id);
23
+ }
24
+ //# sourceMappingURL=targets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"targets.js","sourceRoot":"","sources":["../src/targets.ts"],"names":[],"mappings":"AAiBA,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAEtD,MAAM,CAAC,MAAM,OAAO,GAAsB;IACxC;QACE,EAAE,EAAE,QAAQ;QACZ,GAAG,EAAE,gBAAgB;QACrB,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW;KAC5C;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,GAAG,EAAE,eAAe;QACpB,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM;QACtC,gFAAgF;QAChF,iFAAiF;QACjF,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,IAAI,+BAA+B;KAC3E;IACD,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;IACjF,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;IACjF,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;CAC/E,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC;AAEvC,MAAM,UAAU,UAAU,CAAC,EAAU;IACnC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,51 @@
1
+ /** The five axes. A skill belongs to exactly one, and the axis decides when it loads. */
2
+ export type Axis = 'core' | 'language' | 'framework' | 'service' | 'topic';
3
+ export declare const AXES: readonly Axis[];
4
+ /**
5
+ * How a project is recognised. Keys are defined by the family, not by this package:
6
+ * `android` uses `gradle_dependency`, a web family would use something else. Values are
7
+ * matched as substrings against the signals a scanner collects, so
8
+ * `com.squareup.retrofit2:retrofit` matches a Gradle line that also pins a version.
9
+ */
10
+ export type DetectBlock = Record<string, readonly string[]>;
11
+ /** A rule id such as `ASYNC-4`. Stable for the life of a skill and never reused. */
12
+ export type RuleId = string;
13
+ export interface Rule {
14
+ readonly id: RuleId;
15
+ /** `must` means the failure is silent, expensive or hard to reverse. */
16
+ readonly priority: 'must' | 'should';
17
+ }
18
+ export interface SkillMeta {
19
+ /** `family/name`, the installable identity. */
20
+ readonly name: string;
21
+ readonly family: string;
22
+ readonly skill: string;
23
+ readonly axis: Axis;
24
+ readonly version: string;
25
+ readonly requires: readonly string[];
26
+ /** Which sections an installer gives the agent. Everything else is for humans. */
27
+ readonly agentSections: readonly string[];
28
+ readonly retired: readonly RuleId[];
29
+ readonly detect: DetectBlock;
30
+ readonly authors: readonly string[];
31
+ }
32
+ export interface Skill extends SkillMeta {
33
+ readonly rules: readonly Rule[];
34
+ /** Only the sections named by `agentSections`, which is what gets installed. */
35
+ readonly installable: string;
36
+ /** Word count of `installable`, so a caller can show the cost before writing. */
37
+ readonly installableWords: number;
38
+ /** The whole file, for a reader who wants the reasoning as well. */
39
+ readonly raw: string;
40
+ }
41
+ /** What a scanner found in a project, keyed the same way as a `DetectBlock`. */
42
+ export type ProjectSignals = Record<string, readonly string[]>;
43
+ export interface Match {
44
+ readonly skill: string;
45
+ /** Why it matched: the detect key and the value that hit. */
46
+ readonly on: readonly {
47
+ key: string;
48
+ value: string;
49
+ }[];
50
+ }
51
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;AAE3E,eAAO,MAAM,IAAI,EAAE,SAAS,IAAI,EAA0D,CAAC;AAE3F;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;AAE5D,oFAAoF;AACpF,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC;AAE5B,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC;CACtC;AAED,MAAM,WAAW,SAAS;IACxB,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,kFAAkF;IAClF,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,KAAM,SAAQ,SAAS;IACtC,QAAQ,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;IAChC,gFAAgF;IAChF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,iFAAiF;IACjF,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,oEAAoE;IACpE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,gFAAgF;AAChF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;AAE/D,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,EAAE,SAAS;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACxD"}
@@ -0,0 +1,2 @@
1
+ export const AXES = ['core', 'language', 'framework', 'service', 'topic'];
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,IAAI,GAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "@skyl/core",
3
+ "version": "0.1.0",
4
+ "description": "Shared parsing, detection and resolution for the Skyl CLI and site",
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "default": "./dist/index.js"
11
+ }
12
+ },
13
+ "files": [
14
+ "dist"
15
+ ],
16
+ "scripts": {
17
+ "build": "tsc -b",
18
+ "typecheck": "tsc -b --force"
19
+ }
20
+ }
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "skyl.dev",
3
+ "version": "0.1.0",
4
+ "description": "Install curated AI agent skills for what your project actually uses",
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "bin": {
8
+ "skyl": "dist/bin.js"
9
+ },
10
+ "files": [
11
+ "dist",
12
+ "bundle.json"
13
+ ],
14
+ "keywords": [
15
+ "ai",
16
+ "agent",
17
+ "skills",
18
+ "claude",
19
+ "cursor",
20
+ "llm"
21
+ ],
22
+ "scripts": {
23
+ "build": "tsc -b",
24
+ "typecheck": "tsc -b --force",
25
+ "prepack": "tsc -b && node ../../scripts/build-bundle.mjs"
26
+ },
27
+ "dependencies": {
28
+ "@skyl/core": "workspace:*"
29
+ },
30
+ "engines": {
31
+ "node": ">=20"
32
+ },
33
+ "bundleDependencies": [
34
+ "@skyl/core"
35
+ ],
36
+ "repository": {
37
+ "type": "git",
38
+ "url": "git+https://github.com/skyl-dev/skyl.dev.git",
39
+ "directory": "packages/cli"
40
+ },
41
+ "homepage": "https://skyl.dev",
42
+ "author": "ahmmedrejowan"
43
+ }