@a1st/aix-schema 0.0.3 → 0.0.4
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 +49 -0
- package/dist/normalize.d.ts +7 -1
- package/dist/normalize.d.ts.map +1 -1
- package/dist/normalize.js +21 -2
- package/dist/normalize.js.map +1 -1
- package/package.json +1 -1
package/README.md
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# @a1st/aix-schema
|
|
2
|
+
|
|
3
|
+
Zod schemas and JSON Schema for [aix](https://github.com/a1st-dev/aix/blob/main/README.md)
|
|
4
|
+
configuration files.
|
|
5
|
+
|
|
6
|
+
## Role in aix
|
|
7
|
+
|
|
8
|
+
This package defines the structure and validation for `ai.json` files. It's used by
|
|
9
|
+
`@a1st/aix-core` and `@a1st/aix` to parse and validate configurations.
|
|
10
|
+
|
|
11
|
+
## Features
|
|
12
|
+
|
|
13
|
+
- **Zod schemas** — Runtime validation with TypeScript inference
|
|
14
|
+
- **JSON Schema** — IDE autocompletion and validation via `schema.json`
|
|
15
|
+
- **Normalization** — Convert shorthand syntax to canonical object form
|
|
16
|
+
|
|
17
|
+
## Key Exports
|
|
18
|
+
|
|
19
|
+
```typescript
|
|
20
|
+
import {
|
|
21
|
+
parseConfig, // Parse and validate a full ai.json config
|
|
22
|
+
parseLocalConfig, // Parse config allowing local-only fields
|
|
23
|
+
aiJsonSchema, // Zod schema for ai.json
|
|
24
|
+
type AiJsonConfig, // TypeScript type for validated config
|
|
25
|
+
} from '@a1st/aix-schema';
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## JSON Schema
|
|
29
|
+
|
|
30
|
+
The package exports `schema.json` for IDE integration:
|
|
31
|
+
|
|
32
|
+
```json
|
|
33
|
+
{
|
|
34
|
+
"$schema": "node_modules/@a1st/aix-schema/schema.json"
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Installation
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
npm install @a1st/aix-schema
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
> **Note:** This package is primarily for internal use. Most users should install
|
|
45
|
+
> `@a1st/aix` (the CLI) instead.
|
|
46
|
+
|
|
47
|
+
## License
|
|
48
|
+
|
|
49
|
+
MIT
|
package/dist/normalize.d.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import type { AiJsonConfig } from './config.js';
|
|
2
2
|
/**
|
|
3
|
-
* Detect if a string is a local path reference.
|
|
3
|
+
* Detect if a string is a local path reference. Recognizes:
|
|
4
|
+
* - Explicit relative paths: `./file`, `../file`
|
|
5
|
+
* - Absolute paths: `/path/to/file`
|
|
6
|
+
* - file: protocol: `file:../foo/bar.md`
|
|
7
|
+
* - Implicit relative paths with file extensions: `prompts/file.md`, `file.txt`
|
|
8
|
+
*
|
|
9
|
+
* Excludes URLs and git shorthands even if they have matching extensions.
|
|
4
10
|
*/
|
|
5
11
|
export declare function isLocalPath(value: string): boolean;
|
|
6
12
|
/**
|
package/dist/normalize.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/normalize.js
CHANGED
|
@@ -3,10 +3,29 @@
|
|
|
3
3
|
*/
|
|
4
4
|
const LOCAL_PATH_PREFIXES = ['./', '../', '/', 'file:'];
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* File extensions that indicate a local file (for implicit relative paths).
|
|
7
|
+
*/
|
|
8
|
+
const LOCAL_FILE_EXTENSIONS = /\.(md|txt|json|ya?ml|prompt\.md)$/i;
|
|
9
|
+
/**
|
|
10
|
+
* Detect if a string is a local path reference. Recognizes:
|
|
11
|
+
* - Explicit relative paths: `./file`, `../file`
|
|
12
|
+
* - Absolute paths: `/path/to/file`
|
|
13
|
+
* - file: protocol: `file:../foo/bar.md`
|
|
14
|
+
* - Implicit relative paths with file extensions: `prompts/file.md`, `file.txt`
|
|
15
|
+
*
|
|
16
|
+
* Excludes URLs and git shorthands even if they have matching extensions.
|
|
7
17
|
*/
|
|
8
18
|
export function isLocalPath(value) {
|
|
9
|
-
|
|
19
|
+
// Explicit prefixes
|
|
20
|
+
if (LOCAL_PATH_PREFIXES.some((p) => value.startsWith(p))) {
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
// Exclude URLs and git shorthand
|
|
24
|
+
if (value.includes('://') || /^(github|gitlab|bitbucket):/.test(value)) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
// Implicit relative path with file extension (e.g., "prompts/add-skill.md")
|
|
28
|
+
return LOCAL_FILE_EXTENSIONS.test(value);
|
|
10
29
|
}
|
|
11
30
|
/**
|
|
12
31
|
* Parse npm package reference with optional subpath from a string.
|
package/dist/normalize.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AAExD;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACtC,
|
|
1
|
+
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"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"}
|