@clawmasons/shared 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.
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/role/adapter.d.ts +29 -0
- package/dist/role/adapter.d.ts.map +1 -0
- package/dist/role/adapter.js +149 -0
- package/dist/role/adapter.js.map +1 -0
- package/dist/role/discovery.d.ts +38 -0
- package/dist/role/discovery.d.ts.map +1 -0
- package/dist/role/discovery.js +209 -0
- package/dist/role/discovery.js.map +1 -0
- package/dist/role/index.d.ts.map +1 -0
- package/dist/role/index.js +13 -0
- package/dist/role/index.js.map +1 -0
- package/dist/role/package-reader.d.ts +30 -0
- package/dist/role/package-reader.d.ts.map +1 -0
- package/dist/role/package-reader.js +223 -0
- package/dist/role/package-reader.js.map +1 -0
- package/dist/role/parser.d.ts +45 -0
- package/dist/role/parser.d.ts.map +1 -0
- package/dist/role/parser.js +241 -0
- package/dist/role/parser.js.map +1 -0
- package/dist/role/resource-scanner.d.ts +16 -0
- package/dist/role/resource-scanner.d.ts.map +1 -0
- package/dist/role/resource-scanner.js +43 -0
- package/dist/role/resource-scanner.js.map +1 -0
- package/dist/schemas/index.d.ts +7 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +8 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/role-types.d.ts +564 -0
- package/dist/schemas/role-types.d.ts.map +1 -0
- package/dist/schemas/role-types.js +93 -0
- package/dist/schemas/role-types.js.map +1 -0
- package/dist/toolfilter.d.ts.map +1 -0
- package/dist/toolfilter.js +55 -0
- package/dist/toolfilter.js.map +1 -0
- package/dist/types/role.d.ts +14 -0
- package/dist/types/role.d.ts.map +1 -0
- package/dist/types/role.js +2 -0
- package/dist/types/role.js.map +1 -0
- package/dist/types.d.ts +106 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +29 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/** Known chapter package type prefixes. */
|
|
2
|
+
const TYPE_PREFIXES = ["app-", "member-", "agent-", "role-", "task-", "skill-"];
|
|
3
|
+
/**
|
|
4
|
+
* Extract a short name from a chapter package name.
|
|
5
|
+
* Strips the npm scope and any known chapter type prefix.
|
|
6
|
+
*
|
|
7
|
+
* Examples:
|
|
8
|
+
* "@clawmasons/app-github" → "github"
|
|
9
|
+
* "@clawmasons/member-note-taker" → "note-taker"
|
|
10
|
+
* "@clawmasons/slack-server" → "slack-server"
|
|
11
|
+
* "app-github" → "github"
|
|
12
|
+
*/
|
|
13
|
+
export function getAppShortName(packageName) {
|
|
14
|
+
// Strip scope (e.g., "@clawmasons/app-github" → "app-github")
|
|
15
|
+
const parts = packageName.split("/");
|
|
16
|
+
const unscoped = parts[parts.length - 1] ?? packageName;
|
|
17
|
+
// Strip known type prefix if present
|
|
18
|
+
for (const prefix of TYPE_PREFIXES) {
|
|
19
|
+
if (unscoped.startsWith(prefix)) {
|
|
20
|
+
return unscoped.slice(prefix.length);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return unscoped;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Compute per-app toolFilter allow-lists from the union of all role
|
|
27
|
+
* permissions in a resolved agent.
|
|
28
|
+
*
|
|
29
|
+
* For each app referenced by any role, collects all `allow` lists and
|
|
30
|
+
* computes the set union. Returns a Map keyed by full app package name.
|
|
31
|
+
*/
|
|
32
|
+
export function computeToolFilters(agent) {
|
|
33
|
+
const toolSets = new Map();
|
|
34
|
+
for (const role of agent.roles) {
|
|
35
|
+
for (const [appName, perms] of Object.entries(role.permissions)) {
|
|
36
|
+
let toolSet = toolSets.get(appName);
|
|
37
|
+
if (!toolSet) {
|
|
38
|
+
toolSet = new Set();
|
|
39
|
+
toolSets.set(appName, toolSet);
|
|
40
|
+
}
|
|
41
|
+
for (const tool of perms.allow) {
|
|
42
|
+
toolSet.add(tool);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
const result = new Map();
|
|
47
|
+
for (const [appName, toolSet] of toolSets) {
|
|
48
|
+
result.set(appName, {
|
|
49
|
+
mode: "allow",
|
|
50
|
+
list: [...toolSet],
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
return result;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=toolfilter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolfilter.js","sourceRoot":"","sources":["../src/toolfilter.ts"],"names":[],"mappings":"AAUA,2CAA2C;AAC3C,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAEhF;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,WAAmB;IACjD,8DAA8D;IAC9D,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,WAAW,CAAC;IAExD,qCAAqC;IACrC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,OAAO,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAoB;IAEpB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEhD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAChE,IAAI,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACpC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;gBAC5B,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACjC,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC7C,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,QAAQ,EAAE,CAAC;QAC1C,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE;YAClB,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC;SACnB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { z } from "zod";
|
|
2
|
+
import type { roleSchema, roleMetadataSchema, taskRefSchema, appConfigSchema, skillRefSchema, containerRequirementsSchema, governanceConfigSchema, resourceFileSchema, roleSourceSchema, mountConfigSchema, toolPermissionsSchema } from "../schemas/role-types.js";
|
|
3
|
+
export type Role = z.infer<typeof roleSchema>;
|
|
4
|
+
export type RoleMetadata = z.infer<typeof roleMetadataSchema>;
|
|
5
|
+
export type TaskRef = z.infer<typeof taskRefSchema>;
|
|
6
|
+
export type AppConfig = z.infer<typeof appConfigSchema>;
|
|
7
|
+
export type SkillRef = z.infer<typeof skillRefSchema>;
|
|
8
|
+
export type ContainerRequirements = z.infer<typeof containerRequirementsSchema>;
|
|
9
|
+
export type GovernanceConfig = z.infer<typeof governanceConfigSchema>;
|
|
10
|
+
export type ResourceFile = z.infer<typeof resourceFileSchema>;
|
|
11
|
+
export type RoleSource = z.infer<typeof roleSourceSchema>;
|
|
12
|
+
export type MountConfig = z.infer<typeof mountConfigSchema>;
|
|
13
|
+
export type ToolPermissions = z.infer<typeof toolPermissionsSchema>;
|
|
14
|
+
//# sourceMappingURL=role.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role.d.ts","sourceRoot":"","sources":["../../src/types/role.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EACV,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,cAAc,EACd,2BAA2B,EAC3B,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,0BAA0B,CAAC;AAElC,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAC9C,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACpD,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role.js","sourceRoot":"","sources":["../../src/types/role.ts"],"names":[],"mappings":""}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import type { ChapterField } from "./schemas/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* A chapter package discovered on the filesystem.
|
|
4
|
+
*/
|
|
5
|
+
export interface DiscoveredPackage {
|
|
6
|
+
name: string;
|
|
7
|
+
version: string;
|
|
8
|
+
packagePath: string;
|
|
9
|
+
chapterField: ChapterField;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* A fully-resolved app (MCP server) in the dependency graph.
|
|
13
|
+
*/
|
|
14
|
+
export interface ResolvedApp {
|
|
15
|
+
name: string;
|
|
16
|
+
version: string;
|
|
17
|
+
transport: "stdio" | "sse" | "streamable-http";
|
|
18
|
+
command?: string;
|
|
19
|
+
args?: string[];
|
|
20
|
+
url?: string;
|
|
21
|
+
env?: Record<string, string>;
|
|
22
|
+
tools: string[];
|
|
23
|
+
capabilities: string[];
|
|
24
|
+
credentials: string[];
|
|
25
|
+
description?: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* A fully-resolved skill (knowledge artifact) in the dependency graph.
|
|
29
|
+
*/
|
|
30
|
+
export interface ResolvedSkill {
|
|
31
|
+
name: string;
|
|
32
|
+
version: string;
|
|
33
|
+
artifacts: string[];
|
|
34
|
+
description: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* A fully-resolved task in the dependency graph.
|
|
38
|
+
*/
|
|
39
|
+
export interface ResolvedTask {
|
|
40
|
+
name: string;
|
|
41
|
+
version: string;
|
|
42
|
+
taskType: "subagent" | "script" | "composite" | "human";
|
|
43
|
+
prompt?: string;
|
|
44
|
+
timeout?: string;
|
|
45
|
+
approval?: "auto" | "confirm" | "review";
|
|
46
|
+
requiredApps?: string[];
|
|
47
|
+
requiredSkills?: string[];
|
|
48
|
+
apps: ResolvedApp[];
|
|
49
|
+
skills: ResolvedSkill[];
|
|
50
|
+
subTasks: ResolvedTask[];
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* A fully-resolved role (permission boundary) in the dependency graph.
|
|
54
|
+
*/
|
|
55
|
+
export interface ResolvedRole {
|
|
56
|
+
name: string;
|
|
57
|
+
version: string;
|
|
58
|
+
description?: string;
|
|
59
|
+
instructions?: string;
|
|
60
|
+
risk: "HIGH" | "MEDIUM" | "LOW";
|
|
61
|
+
permissions: Record<string, {
|
|
62
|
+
allow: string[];
|
|
63
|
+
deny: string[];
|
|
64
|
+
}>;
|
|
65
|
+
constraints?: {
|
|
66
|
+
maxConcurrentTasks?: number;
|
|
67
|
+
requireApprovalFor?: string[];
|
|
68
|
+
};
|
|
69
|
+
mounts?: Array<{
|
|
70
|
+
source: string;
|
|
71
|
+
target: string;
|
|
72
|
+
readonly: boolean;
|
|
73
|
+
}>;
|
|
74
|
+
baseImage?: string;
|
|
75
|
+
aptPackages?: string[];
|
|
76
|
+
tasks: ResolvedTask[];
|
|
77
|
+
apps: ResolvedApp[];
|
|
78
|
+
skills: ResolvedSkill[];
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* A fully-resolved agent — the top-level deployable unit.
|
|
82
|
+
*/
|
|
83
|
+
export interface ResolvedAgent {
|
|
84
|
+
name: string;
|
|
85
|
+
version: string;
|
|
86
|
+
agentName: string;
|
|
87
|
+
slug: string;
|
|
88
|
+
description?: string;
|
|
89
|
+
runtimes: string[];
|
|
90
|
+
credentials: string[];
|
|
91
|
+
roles: ResolvedRole[];
|
|
92
|
+
resources?: Array<{
|
|
93
|
+
type: string;
|
|
94
|
+
ref: string;
|
|
95
|
+
access: string;
|
|
96
|
+
}>;
|
|
97
|
+
proxy?: {
|
|
98
|
+
port?: number;
|
|
99
|
+
type?: "sse" | "streamable-http";
|
|
100
|
+
};
|
|
101
|
+
llm?: {
|
|
102
|
+
provider: string;
|
|
103
|
+
model: string;
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,GAAG,KAAK,GAAG,iBAAiB,CAAC;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACjE,WAAW,CAAC,EAAE;QACZ,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;KAC/B,CAAC;IACF,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjE,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,KAAK,GAAG,iBAAiB,CAAC;KAClC,CAAC;IACF,GAAG,CAAC,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@clawmasons/shared",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Shared types, schemas, and utilities for mason command line",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": "./dist/index.js",
|
|
11
|
+
"types": "./dist/index.d.ts"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"scripts": {
|
|
15
|
+
"build": "tsc -p tsconfig.build.json",
|
|
16
|
+
"typecheck": "tsc --noEmit"
|
|
17
|
+
},
|
|
18
|
+
"files": [
|
|
19
|
+
"dist"
|
|
20
|
+
],
|
|
21
|
+
"license": "MIT",
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"js-yaml": "^4.1.1",
|
|
24
|
+
"zod": "^3.24.0"
|
|
25
|
+
},
|
|
26
|
+
"devDependencies": {
|
|
27
|
+
"@types/js-yaml": "^4.0.9"
|
|
28
|
+
}
|
|
29
|
+
}
|