@a1st/aix-schema 0.0.4 → 0.0.6

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.
@@ -1,4 +1,33 @@
1
1
  import type { AiJsonConfig } from './config.js';
2
+ /**
3
+ * Source types for config and asset references. This is the single source of truth for determining
4
+ * what kind of source a string represents.
5
+ */
6
+ export type SourceType =
7
+ /** Local file path (./file, ../file, /absolute, or implicit like prompts/file.md) */
8
+ 'local'
9
+ /** Git shorthand (github:org/repo, gitlab:org/repo, bitbucket:org/repo) */
10
+ | 'git-shorthand'
11
+ /** HTTPS URL pointing to a file (blob URL or direct .json file) */
12
+ | 'https-file'
13
+ /** HTTPS URL pointing to a repository root */
14
+ | 'https-repo'
15
+ /** Unsupported HTTP URL (non-HTTPS) */
16
+ | 'http-unsupported'
17
+ /** npm package reference */
18
+ | 'npm';
19
+ /**
20
+ * Detect the source type of a string. This is the single source of truth for source type detection
21
+ * and should be used everywhere instead of ad-hoc checks.
22
+ *
23
+ * Detection order (first match wins):
24
+ * 1. Git shorthand (github:, gitlab:, bitbucket:)
25
+ * 2. HTTPS URLs (file vs repo)
26
+ * 3. HTTP URLs (unsupported)
27
+ * 4. Local paths (explicit prefixes or file extensions)
28
+ * 5. npm packages (fallback)
29
+ */
30
+ export declare function detectSourceType(source: string): SourceType;
2
31
  /**
3
32
  * Detect if a string is a local path reference. Recognizes:
4
33
  * - Explicit relative paths: `./file`, `../file`
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAYhD;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAalD;AAmDD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAqBnG;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACvD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAOzC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACzD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAOzC;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC7B,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrF,MAAM,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC,CAmB9D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,YAAY,CAiC7D"}
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAOhD;;;GAGG;AACH,MAAM,MAAM,UAAU;AACnB,qFAAqF;AACnF,OAAO;AACT,2EAA2E;GACzE,eAAe;AACjB,mEAAmE;GACjE,YAAY;AACd,8CAA8C;GAC5C,YAAY;AACd,uCAAuC;GACrC,kBAAkB;AACpB,4BAA4B;GAC1B,KAAK,CAAC;AAEX;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAuB3D;AAyBD;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAkBlD;AAmDD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAqBnG;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACvD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAOzC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACzD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAOzC;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC7B,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrF,MAAM,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC,CAmB9D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,YAAY,CAiC7D"}
package/dist/normalize.js CHANGED
@@ -1,11 +1,60 @@
1
- /**
2
- * Prefixes that indicate a local file path reference.
3
- */
4
- const LOCAL_PATH_PREFIXES = ['./', '../', '/', 'file:'];
5
1
  /**
6
2
  * File extensions that indicate a local file (for implicit relative paths).
7
3
  */
8
4
  const LOCAL_FILE_EXTENSIONS = /\.(md|txt|json|ya?ml|prompt\.md)$/i;
5
+ /**
6
+ * Detect the source type of a string. This is the single source of truth for source type detection
7
+ * and should be used everywhere instead of ad-hoc checks.
8
+ *
9
+ * Detection order (first match wins):
10
+ * 1. Git shorthand (github:, gitlab:, bitbucket:)
11
+ * 2. HTTPS URLs (file vs repo)
12
+ * 3. HTTP URLs (unsupported)
13
+ * 4. Local paths (explicit prefixes or file extensions)
14
+ * 5. npm packages (fallback)
15
+ */
16
+ export function detectSourceType(source) {
17
+ // Git shorthand: github:org/repo, gitlab:org/repo, bitbucket:org/repo
18
+ if (/^(github|gitlab|bitbucket):/.test(source)) {
19
+ return 'git-shorthand';
20
+ }
21
+ // HTTPS URL
22
+ if (source.startsWith('https://')) {
23
+ return isHttpsFileUrl(source) ? 'https-file' : 'https-repo';
24
+ }
25
+ // HTTP URL (reject for security)
26
+ if (source.startsWith('http://')) {
27
+ return 'http-unsupported';
28
+ }
29
+ // Local path detection
30
+ if (isLocalPath(source)) {
31
+ return 'local';
32
+ }
33
+ // Everything else is npm
34
+ return 'npm';
35
+ }
36
+ /**
37
+ * Check if an HTTPS URL points directly to a file (blob URL or direct file URL).
38
+ */
39
+ function isHttpsFileUrl(url) {
40
+ // GitHub blob URL: https://github.com/org/repo/blob/ref/path
41
+ if (/^https:\/\/github\.com\/[^/]+\/[^/]+\/blob\//.test(url)) {
42
+ return true;
43
+ }
44
+ // GitLab blob URL: https://gitlab.com/group/project/-/blob/ref/path
45
+ if (/^https:\/\/gitlab\.com\/[^/]+\/[^/]+\/-\/blob\//.test(url)) {
46
+ return true;
47
+ }
48
+ // Bitbucket src URL: https://bitbucket.org/workspace/repo/src/ref/path
49
+ if (/^https:\/\/bitbucket\.org\/[^/]+\/[^/]+\/src\//.test(url)) {
50
+ return true;
51
+ }
52
+ // Direct file URL (ending in .json)
53
+ if (url.endsWith('.json')) {
54
+ return true;
55
+ }
56
+ return false;
57
+ }
9
58
  /**
10
59
  * Detect if a string is a local path reference. Recognizes:
11
60
  * - Explicit relative paths: `./file`, `../file`
@@ -16,8 +65,11 @@ const LOCAL_FILE_EXTENSIONS = /\.(md|txt|json|ya?ml|prompt\.md)$/i;
16
65
  * Excludes URLs and git shorthands even if they have matching extensions.
17
66
  */
18
67
  export function isLocalPath(value) {
19
- // Explicit prefixes
20
- if (LOCAL_PATH_PREFIXES.some((p) => value.startsWith(p))) {
68
+ // Explicit relative or absolute paths (including file: protocol)
69
+ if (value.startsWith('./') ||
70
+ value.startsWith('../') ||
71
+ value.startsWith('/') ||
72
+ value.startsWith('file:')) {
21
73
  return true;
22
74
  }
23
75
  // Exclude URLs and git shorthand
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"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"}
package/dist/skill.d.ts CHANGED
@@ -4,22 +4,22 @@ import { z } from 'zod';
4
4
  * @see https://agentskills.io/specification.md
5
5
  */
6
6
  export declare const skillFrontmatterSchema: z.ZodObject<{
7
- name: z.ZodString;
8
- description: z.ZodString;
7
+ name: z.ZodOptional<z.ZodString>;
8
+ description: z.ZodOptional<z.ZodString>;
9
9
  license: z.ZodOptional<z.ZodString>;
10
10
  compatibility: z.ZodOptional<z.ZodString>;
11
11
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
12
12
  'allowed-tools': z.ZodOptional<z.ZodString>;
13
13
  }, "strip", z.ZodTypeAny, {
14
- description: string;
15
- name: string;
14
+ description?: string | undefined;
15
+ name?: string | undefined;
16
16
  license?: string | undefined;
17
17
  compatibility?: string | undefined;
18
18
  metadata?: Record<string, string> | undefined;
19
19
  'allowed-tools'?: string | undefined;
20
20
  }, {
21
- description: string;
22
- name: string;
21
+ description?: string | undefined;
22
+ name?: string | undefined;
23
23
  license?: string | undefined;
24
24
  compatibility?: string | undefined;
25
25
  metadata?: Record<string, string> | undefined;
@@ -30,6 +30,7 @@ export type SkillFrontmatter = z.infer<typeof skillFrontmatterSchema>;
30
30
  * Parsed skill with frontmatter and body content
31
31
  */
32
32
  export interface ParsedSkill {
33
+ /** Frontmatter metadata, may be empty if SKILL.md has no frontmatter */
33
34
  frontmatter: SkillFrontmatter;
34
35
  body: string;
35
36
  basePath: string;
@@ -1 +1 @@
1
- {"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../src/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;EAcjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,WAAW;IACzB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC;CAClC"}
1
+ {"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../src/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;EAejC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,WAAW;IACzB,wEAAwE;IACxE,WAAW,EAAE,gBAAgB,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC;CAClC"}
package/dist/skill.js CHANGED
@@ -8,8 +8,9 @@ export const skillFrontmatterSchema = z.object({
8
8
  .string()
9
9
  .min(1)
10
10
  .max(64)
11
- .regex(/^[a-z0-9]+(-[a-z0-9]+)*$/, 'Name must be lowercase alphanumeric with single hyphens, not starting/ending with hyphen'),
12
- description: z.string().min(1).max(1024),
11
+ .regex(/^[a-z0-9]+(-[a-z0-9]+)*$/, 'Name must be lowercase alphanumeric with single hyphens, not starting/ending with hyphen')
12
+ .optional(),
13
+ description: z.string().min(1).max(1024).optional(),
13
14
  license: z.string().optional(),
14
15
  compatibility: z.string().max(500).optional(),
15
16
  metadata: z.record(z.string()).optional(),
package/dist/skill.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"skill.js","sourceRoot":"","sources":["../src/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC;SACH,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,KAAK,CACH,0BAA0B,EAC1B,0FAA0F,CAC5F;IACJ,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAC7C,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAC"}
1
+ {"version":3,"file":"skill.js","sourceRoot":"","sources":["../src/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC;SACH,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,KAAK,CACH,0BAA0B,EAC1B,0FAA0F,CAC5F;SACA,QAAQ,EAAE;IACd,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;IACnD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAC7C,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,14 @@
1
1
  {
2
2
  "name": "@a1st/aix-schema",
3
- "version": "0.0.4",
3
+ "version": "0.0.6",
4
4
  "description": "JSON Schema and validation for aix configuration",
5
+ "keywords": [
6
+ "ai-config",
7
+ "json-schema",
8
+ "schema",
9
+ "validation",
10
+ "zod"
11
+ ],
5
12
  "files": [
6
13
  "dist",
7
14
  "schema.json"