@claudeflows/cli 0.1.1 → 0.1.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/dist/index.js +1 -1
- package/dist/lib/config.js +1 -1
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/manifest.d.ts.map +1 -1
- package/dist/lib/manifest.js +10 -3
- package/dist/lib/manifest.js.map +1 -1
- package/dist/schema/schema/workflow.schema.json +240 -0
- package/dist/schema/workflow.schema.json +240 -0
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -12,7 +12,7 @@ import { registerLicense } from './commands/license.js';
|
|
|
12
12
|
const program = new Command();
|
|
13
13
|
program
|
|
14
14
|
.name('claudeflows')
|
|
15
|
-
.version('0.1.
|
|
15
|
+
.version('0.1.2')
|
|
16
16
|
.description('Claude Flows \u2014 install and manage agentic workflows');
|
|
17
17
|
registerInstall(program);
|
|
18
18
|
registerList(program);
|
package/dist/lib/config.js
CHANGED
|
@@ -2,7 +2,7 @@ import { readFile, writeFile, mkdir } from 'node:fs/promises';
|
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { homedir } from 'node:os';
|
|
4
4
|
const DEFAULT_CONFIG = {
|
|
5
|
-
registryUrl: 'https://raw.githubusercontent.com/claudeflows/
|
|
5
|
+
registryUrl: 'https://raw.githubusercontent.com/mikethepurple/claudeflows/main/registry/registry.json',
|
|
6
6
|
cacheTtlMinutes: 60,
|
|
7
7
|
};
|
|
8
8
|
export function getWorkflowsDir() {
|
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAOlC,MAAM,cAAc,GAAa;IAC/B,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAOlC,MAAM,cAAc,GAAa;IAC/B,WAAW,EAAE,yFAAyF;IACtG,eAAe,EAAE,EAAE;CACpB,CAAC;AAEF,MAAM,UAAU,eAAe;IAC7B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,mBAAmB,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,IAAI,CAAC,eAAe,EAAE,EAAE,WAAW,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,IAAI,CAAC,eAAe,EAAE,EAAE,aAAa,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAsB,CAAC;QACpD,OAAO,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,GAAG,cAAc,EAAE,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAA0B;IACxD,MAAM,OAAO,GAAG,MAAM,SAAS,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;IAC1C,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;IAC9B,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,MAAM,SAAS,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,KAAK,CAAC,eAAe,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACtD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/lib/manifest.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,MAAM;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,QAAQ,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC1C,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACnD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/lib/manifest.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/manifest.js
CHANGED
|
@@ -8,9 +8,16 @@ async function loadSchema() {
|
|
|
8
8
|
return cachedSchema;
|
|
9
9
|
const __filename = fileURLToPath(import.meta.url);
|
|
10
10
|
const __dirname = dirname(__filename);
|
|
11
|
-
//
|
|
12
|
-
const
|
|
13
|
-
const
|
|
11
|
+
// Try bundled schema first (dist/lib/ -> ../schema/), then monorepo fallback
|
|
12
|
+
const bundledPath = resolve(__dirname, '..', 'schema', 'workflow.schema.json');
|
|
13
|
+
const monorepoPath = resolve(__dirname, '..', '..', '..', 'schema', 'workflow.schema.json');
|
|
14
|
+
let raw;
|
|
15
|
+
try {
|
|
16
|
+
raw = await readFile(bundledPath, 'utf-8');
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
raw = await readFile(monorepoPath, 'utf-8');
|
|
20
|
+
}
|
|
14
21
|
cachedSchema = JSON.parse(raw);
|
|
15
22
|
return cachedSchema;
|
|
16
23
|
}
|
package/dist/lib/manifest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/lib/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,GAAyB,MAAM,KAAK,CAAC;AA4E5C,IAAI,YAAY,GAAkB,IAAI,CAAC;AAEvC,KAAK,UAAU,UAAU;IACvB,IAAI,YAAY;QAAE,OAAO,YAAY,CAAC;IAEtC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACtC,
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/lib/manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://claudeflows.dev/schemas/workflow.json",
|
|
4
|
+
"title": "Claude Flows Workflow Manifest",
|
|
5
|
+
"description": "Schema for workflow.json — the package format for distributable Claude Code agentic workflows",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["name", "version", "displayName", "description", "author", "skills"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"$schema": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"description": "JSON Schema reference (optional, for IDE support)"
|
|
12
|
+
},
|
|
13
|
+
"name": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"pattern": "^[a-z0-9-]+$",
|
|
16
|
+
"minLength": 1,
|
|
17
|
+
"maxLength": 64,
|
|
18
|
+
"description": "Package name (lowercase, hyphens only)"
|
|
19
|
+
},
|
|
20
|
+
"version": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"pattern": "^\\d+\\.\\d+\\.\\d+",
|
|
23
|
+
"description": "Semver version"
|
|
24
|
+
},
|
|
25
|
+
"displayName": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"maxLength": 128,
|
|
28
|
+
"description": "Human-readable name"
|
|
29
|
+
},
|
|
30
|
+
"description": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"maxLength": 512,
|
|
33
|
+
"description": "Short description of what this workflow does"
|
|
34
|
+
},
|
|
35
|
+
"author": {
|
|
36
|
+
"type": "object",
|
|
37
|
+
"required": ["name"],
|
|
38
|
+
"properties": {
|
|
39
|
+
"name": { "type": "string" },
|
|
40
|
+
"github": { "type": "string" },
|
|
41
|
+
"email": { "type": "string", "description": "Contact email" }
|
|
42
|
+
},
|
|
43
|
+
"additionalProperties": false
|
|
44
|
+
},
|
|
45
|
+
"repository": {
|
|
46
|
+
"type": "string",
|
|
47
|
+
"description": "GitHub repository URL"
|
|
48
|
+
},
|
|
49
|
+
"license": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"description": "SPDX license identifier"
|
|
52
|
+
},
|
|
53
|
+
"tags": {
|
|
54
|
+
"type": "array",
|
|
55
|
+
"items": { "type": "string", "pattern": "^[a-z0-9-]+$" },
|
|
56
|
+
"maxItems": 10,
|
|
57
|
+
"description": "Search tags"
|
|
58
|
+
},
|
|
59
|
+
"category": {
|
|
60
|
+
"type": "string",
|
|
61
|
+
"enum": [
|
|
62
|
+
"business",
|
|
63
|
+
"development",
|
|
64
|
+
"data",
|
|
65
|
+
"research",
|
|
66
|
+
"marketing",
|
|
67
|
+
"design",
|
|
68
|
+
"devops",
|
|
69
|
+
"productivity",
|
|
70
|
+
"finance",
|
|
71
|
+
"other"
|
|
72
|
+
],
|
|
73
|
+
"description": "Primary category"
|
|
74
|
+
},
|
|
75
|
+
"runtime": {
|
|
76
|
+
"type": "object",
|
|
77
|
+
"properties": {
|
|
78
|
+
"claude_code": { "type": "string", "description": "Required Claude Code version (semver range)" },
|
|
79
|
+
"node": { "type": "string", "description": "Required Node.js version (semver range)" },
|
|
80
|
+
"python": { "type": "string", "description": "Required Python version (semver range)" }
|
|
81
|
+
},
|
|
82
|
+
"additionalProperties": { "type": "string" }
|
|
83
|
+
},
|
|
84
|
+
"mcp": {
|
|
85
|
+
"type": "object",
|
|
86
|
+
"additionalProperties": {
|
|
87
|
+
"type": "object",
|
|
88
|
+
"required": ["package"],
|
|
89
|
+
"properties": {
|
|
90
|
+
"package": { "type": "string", "description": "npm package name for the MCP server" },
|
|
91
|
+
"required": { "type": "boolean", "default": true },
|
|
92
|
+
"env": {
|
|
93
|
+
"type": "object",
|
|
94
|
+
"additionalProperties": {
|
|
95
|
+
"type": "object",
|
|
96
|
+
"properties": {
|
|
97
|
+
"description": { "type": "string" },
|
|
98
|
+
"url": { "type": "string", "description": "URL" },
|
|
99
|
+
"required": { "type": "boolean", "default": true }
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"args": {
|
|
104
|
+
"type": "array",
|
|
105
|
+
"items": { "type": "string" },
|
|
106
|
+
"description": "Additional arguments for the MCP server command"
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
"additionalProperties": false
|
|
110
|
+
},
|
|
111
|
+
"description": "MCP servers to configure"
|
|
112
|
+
},
|
|
113
|
+
"env": {
|
|
114
|
+
"type": "object",
|
|
115
|
+
"additionalProperties": {
|
|
116
|
+
"type": "object",
|
|
117
|
+
"properties": {
|
|
118
|
+
"description": { "type": "string" },
|
|
119
|
+
"required": { "type": "boolean", "default": false },
|
|
120
|
+
"url": { "type": "string", "description": "URL" }
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
"description": "Standalone environment variables (not tied to MCP)"
|
|
124
|
+
},
|
|
125
|
+
"dependencies": {
|
|
126
|
+
"type": "object",
|
|
127
|
+
"additionalProperties": {
|
|
128
|
+
"type": "object",
|
|
129
|
+
"properties": {
|
|
130
|
+
"version": { "type": "string", "description": "Required version range" },
|
|
131
|
+
"required": { "type": "boolean", "default": false }
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
"description": "Other workflows this depends on"
|
|
135
|
+
},
|
|
136
|
+
"skills": {
|
|
137
|
+
"type": "array",
|
|
138
|
+
"items": {
|
|
139
|
+
"type": "object",
|
|
140
|
+
"required": ["name", "path"],
|
|
141
|
+
"properties": {
|
|
142
|
+
"name": {
|
|
143
|
+
"type": "string",
|
|
144
|
+
"pattern": "^[a-z0-9-]+$",
|
|
145
|
+
"description": "Skill command name"
|
|
146
|
+
},
|
|
147
|
+
"path": {
|
|
148
|
+
"type": "string",
|
|
149
|
+
"description": "Path to SKILL.md relative to workflow root"
|
|
150
|
+
},
|
|
151
|
+
"description": {
|
|
152
|
+
"type": "string",
|
|
153
|
+
"description": "Short description of what this skill does"
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
"additionalProperties": false
|
|
157
|
+
},
|
|
158
|
+
"minItems": 1,
|
|
159
|
+
"description": "Skills to wire into Claude Code"
|
|
160
|
+
},
|
|
161
|
+
"files": {
|
|
162
|
+
"type": "object",
|
|
163
|
+
"properties": {
|
|
164
|
+
"include": {
|
|
165
|
+
"type": "array",
|
|
166
|
+
"items": { "type": "string" },
|
|
167
|
+
"description": "Glob patterns to include in distribution"
|
|
168
|
+
},
|
|
169
|
+
"exclude": {
|
|
170
|
+
"type": "array",
|
|
171
|
+
"items": { "type": "string" },
|
|
172
|
+
"description": "Glob patterns to exclude from distribution"
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
"additionalProperties": false
|
|
176
|
+
},
|
|
177
|
+
"postInstall": {
|
|
178
|
+
"type": "object",
|
|
179
|
+
"properties": {
|
|
180
|
+
"createDirs": {
|
|
181
|
+
"type": "array",
|
|
182
|
+
"items": { "type": "string" },
|
|
183
|
+
"description": "Directories to create after install"
|
|
184
|
+
},
|
|
185
|
+
"message": {
|
|
186
|
+
"type": "string",
|
|
187
|
+
"description": "Message to display after successful install"
|
|
188
|
+
}
|
|
189
|
+
},
|
|
190
|
+
"additionalProperties": false
|
|
191
|
+
},
|
|
192
|
+
"integrity": {
|
|
193
|
+
"type": "object",
|
|
194
|
+
"properties": {
|
|
195
|
+
"algorithm": {
|
|
196
|
+
"type": "string",
|
|
197
|
+
"enum": ["sha256"],
|
|
198
|
+
"description": "Hash algorithm used for file integrity"
|
|
199
|
+
},
|
|
200
|
+
"files": {
|
|
201
|
+
"type": "object",
|
|
202
|
+
"additionalProperties": {
|
|
203
|
+
"type": "string",
|
|
204
|
+
"pattern": "^[a-f0-9]{64}$"
|
|
205
|
+
},
|
|
206
|
+
"description": "Map of relative file paths to SHA-256 hex hashes"
|
|
207
|
+
},
|
|
208
|
+
"root": {
|
|
209
|
+
"type": "string",
|
|
210
|
+
"pattern": "^[a-f0-9]{64}$",
|
|
211
|
+
"description": "Root hash computed from sorted file hashes"
|
|
212
|
+
},
|
|
213
|
+
"signature": {
|
|
214
|
+
"type": "string",
|
|
215
|
+
"description": "Base64-encoded Ed25519 signature of the root hash"
|
|
216
|
+
}
|
|
217
|
+
},
|
|
218
|
+
"required": ["algorithm", "files", "root"],
|
|
219
|
+
"additionalProperties": false,
|
|
220
|
+
"description": "Content integrity block with file hashes and optional signature"
|
|
221
|
+
},
|
|
222
|
+
"pricing": {
|
|
223
|
+
"type": "object",
|
|
224
|
+
"properties": {
|
|
225
|
+
"model": {
|
|
226
|
+
"type": "string",
|
|
227
|
+
"enum": ["free", "paid", "freemium"],
|
|
228
|
+
"description": "Pricing model for this workflow"
|
|
229
|
+
},
|
|
230
|
+
"tier": {
|
|
231
|
+
"type": "string",
|
|
232
|
+
"description": "Pricing tier identifier"
|
|
233
|
+
}
|
|
234
|
+
},
|
|
235
|
+
"additionalProperties": false,
|
|
236
|
+
"description": "Pricing configuration for paid workflows"
|
|
237
|
+
}
|
|
238
|
+
},
|
|
239
|
+
"additionalProperties": false
|
|
240
|
+
}
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://claudeflows.dev/schemas/workflow.json",
|
|
4
|
+
"title": "Claude Flows Workflow Manifest",
|
|
5
|
+
"description": "Schema for workflow.json — the package format for distributable Claude Code agentic workflows",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["name", "version", "displayName", "description", "author", "skills"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"$schema": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"description": "JSON Schema reference (optional, for IDE support)"
|
|
12
|
+
},
|
|
13
|
+
"name": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"pattern": "^[a-z0-9-]+$",
|
|
16
|
+
"minLength": 1,
|
|
17
|
+
"maxLength": 64,
|
|
18
|
+
"description": "Package name (lowercase, hyphens only)"
|
|
19
|
+
},
|
|
20
|
+
"version": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"pattern": "^\\d+\\.\\d+\\.\\d+",
|
|
23
|
+
"description": "Semver version"
|
|
24
|
+
},
|
|
25
|
+
"displayName": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"maxLength": 128,
|
|
28
|
+
"description": "Human-readable name"
|
|
29
|
+
},
|
|
30
|
+
"description": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"maxLength": 512,
|
|
33
|
+
"description": "Short description of what this workflow does"
|
|
34
|
+
},
|
|
35
|
+
"author": {
|
|
36
|
+
"type": "object",
|
|
37
|
+
"required": ["name"],
|
|
38
|
+
"properties": {
|
|
39
|
+
"name": { "type": "string" },
|
|
40
|
+
"github": { "type": "string" },
|
|
41
|
+
"email": { "type": "string", "description": "Contact email" }
|
|
42
|
+
},
|
|
43
|
+
"additionalProperties": false
|
|
44
|
+
},
|
|
45
|
+
"repository": {
|
|
46
|
+
"type": "string",
|
|
47
|
+
"description": "GitHub repository URL"
|
|
48
|
+
},
|
|
49
|
+
"license": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"description": "SPDX license identifier"
|
|
52
|
+
},
|
|
53
|
+
"tags": {
|
|
54
|
+
"type": "array",
|
|
55
|
+
"items": { "type": "string", "pattern": "^[a-z0-9-]+$" },
|
|
56
|
+
"maxItems": 10,
|
|
57
|
+
"description": "Search tags"
|
|
58
|
+
},
|
|
59
|
+
"category": {
|
|
60
|
+
"type": "string",
|
|
61
|
+
"enum": [
|
|
62
|
+
"business",
|
|
63
|
+
"development",
|
|
64
|
+
"data",
|
|
65
|
+
"research",
|
|
66
|
+
"marketing",
|
|
67
|
+
"design",
|
|
68
|
+
"devops",
|
|
69
|
+
"productivity",
|
|
70
|
+
"finance",
|
|
71
|
+
"other"
|
|
72
|
+
],
|
|
73
|
+
"description": "Primary category"
|
|
74
|
+
},
|
|
75
|
+
"runtime": {
|
|
76
|
+
"type": "object",
|
|
77
|
+
"properties": {
|
|
78
|
+
"claude_code": { "type": "string", "description": "Required Claude Code version (semver range)" },
|
|
79
|
+
"node": { "type": "string", "description": "Required Node.js version (semver range)" },
|
|
80
|
+
"python": { "type": "string", "description": "Required Python version (semver range)" }
|
|
81
|
+
},
|
|
82
|
+
"additionalProperties": { "type": "string" }
|
|
83
|
+
},
|
|
84
|
+
"mcp": {
|
|
85
|
+
"type": "object",
|
|
86
|
+
"additionalProperties": {
|
|
87
|
+
"type": "object",
|
|
88
|
+
"required": ["package"],
|
|
89
|
+
"properties": {
|
|
90
|
+
"package": { "type": "string", "description": "npm package name for the MCP server" },
|
|
91
|
+
"required": { "type": "boolean", "default": true },
|
|
92
|
+
"env": {
|
|
93
|
+
"type": "object",
|
|
94
|
+
"additionalProperties": {
|
|
95
|
+
"type": "object",
|
|
96
|
+
"properties": {
|
|
97
|
+
"description": { "type": "string" },
|
|
98
|
+
"url": { "type": "string", "description": "URL" },
|
|
99
|
+
"required": { "type": "boolean", "default": true }
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"args": {
|
|
104
|
+
"type": "array",
|
|
105
|
+
"items": { "type": "string" },
|
|
106
|
+
"description": "Additional arguments for the MCP server command"
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
"additionalProperties": false
|
|
110
|
+
},
|
|
111
|
+
"description": "MCP servers to configure"
|
|
112
|
+
},
|
|
113
|
+
"env": {
|
|
114
|
+
"type": "object",
|
|
115
|
+
"additionalProperties": {
|
|
116
|
+
"type": "object",
|
|
117
|
+
"properties": {
|
|
118
|
+
"description": { "type": "string" },
|
|
119
|
+
"required": { "type": "boolean", "default": false },
|
|
120
|
+
"url": { "type": "string", "description": "URL" }
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
"description": "Standalone environment variables (not tied to MCP)"
|
|
124
|
+
},
|
|
125
|
+
"dependencies": {
|
|
126
|
+
"type": "object",
|
|
127
|
+
"additionalProperties": {
|
|
128
|
+
"type": "object",
|
|
129
|
+
"properties": {
|
|
130
|
+
"version": { "type": "string", "description": "Required version range" },
|
|
131
|
+
"required": { "type": "boolean", "default": false }
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
"description": "Other workflows this depends on"
|
|
135
|
+
},
|
|
136
|
+
"skills": {
|
|
137
|
+
"type": "array",
|
|
138
|
+
"items": {
|
|
139
|
+
"type": "object",
|
|
140
|
+
"required": ["name", "path"],
|
|
141
|
+
"properties": {
|
|
142
|
+
"name": {
|
|
143
|
+
"type": "string",
|
|
144
|
+
"pattern": "^[a-z0-9-]+$",
|
|
145
|
+
"description": "Skill command name"
|
|
146
|
+
},
|
|
147
|
+
"path": {
|
|
148
|
+
"type": "string",
|
|
149
|
+
"description": "Path to SKILL.md relative to workflow root"
|
|
150
|
+
},
|
|
151
|
+
"description": {
|
|
152
|
+
"type": "string",
|
|
153
|
+
"description": "Short description of what this skill does"
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
"additionalProperties": false
|
|
157
|
+
},
|
|
158
|
+
"minItems": 1,
|
|
159
|
+
"description": "Skills to wire into Claude Code"
|
|
160
|
+
},
|
|
161
|
+
"files": {
|
|
162
|
+
"type": "object",
|
|
163
|
+
"properties": {
|
|
164
|
+
"include": {
|
|
165
|
+
"type": "array",
|
|
166
|
+
"items": { "type": "string" },
|
|
167
|
+
"description": "Glob patterns to include in distribution"
|
|
168
|
+
},
|
|
169
|
+
"exclude": {
|
|
170
|
+
"type": "array",
|
|
171
|
+
"items": { "type": "string" },
|
|
172
|
+
"description": "Glob patterns to exclude from distribution"
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
"additionalProperties": false
|
|
176
|
+
},
|
|
177
|
+
"postInstall": {
|
|
178
|
+
"type": "object",
|
|
179
|
+
"properties": {
|
|
180
|
+
"createDirs": {
|
|
181
|
+
"type": "array",
|
|
182
|
+
"items": { "type": "string" },
|
|
183
|
+
"description": "Directories to create after install"
|
|
184
|
+
},
|
|
185
|
+
"message": {
|
|
186
|
+
"type": "string",
|
|
187
|
+
"description": "Message to display after successful install"
|
|
188
|
+
}
|
|
189
|
+
},
|
|
190
|
+
"additionalProperties": false
|
|
191
|
+
},
|
|
192
|
+
"integrity": {
|
|
193
|
+
"type": "object",
|
|
194
|
+
"properties": {
|
|
195
|
+
"algorithm": {
|
|
196
|
+
"type": "string",
|
|
197
|
+
"enum": ["sha256"],
|
|
198
|
+
"description": "Hash algorithm used for file integrity"
|
|
199
|
+
},
|
|
200
|
+
"files": {
|
|
201
|
+
"type": "object",
|
|
202
|
+
"additionalProperties": {
|
|
203
|
+
"type": "string",
|
|
204
|
+
"pattern": "^[a-f0-9]{64}$"
|
|
205
|
+
},
|
|
206
|
+
"description": "Map of relative file paths to SHA-256 hex hashes"
|
|
207
|
+
},
|
|
208
|
+
"root": {
|
|
209
|
+
"type": "string",
|
|
210
|
+
"pattern": "^[a-f0-9]{64}$",
|
|
211
|
+
"description": "Root hash computed from sorted file hashes"
|
|
212
|
+
},
|
|
213
|
+
"signature": {
|
|
214
|
+
"type": "string",
|
|
215
|
+
"description": "Base64-encoded Ed25519 signature of the root hash"
|
|
216
|
+
}
|
|
217
|
+
},
|
|
218
|
+
"required": ["algorithm", "files", "root"],
|
|
219
|
+
"additionalProperties": false,
|
|
220
|
+
"description": "Content integrity block with file hashes and optional signature"
|
|
221
|
+
},
|
|
222
|
+
"pricing": {
|
|
223
|
+
"type": "object",
|
|
224
|
+
"properties": {
|
|
225
|
+
"model": {
|
|
226
|
+
"type": "string",
|
|
227
|
+
"enum": ["free", "paid", "freemium"],
|
|
228
|
+
"description": "Pricing model for this workflow"
|
|
229
|
+
},
|
|
230
|
+
"tier": {
|
|
231
|
+
"type": "string",
|
|
232
|
+
"description": "Pricing tier identifier"
|
|
233
|
+
}
|
|
234
|
+
},
|
|
235
|
+
"additionalProperties": false,
|
|
236
|
+
"description": "Pricing configuration for paid workflows"
|
|
237
|
+
}
|
|
238
|
+
},
|
|
239
|
+
"additionalProperties": false
|
|
240
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@claudeflows/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "CLI tool for installing and managing Claude Code agentic workflows",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"main": "./dist/index.js",
|
|
10
10
|
"types": "./dist/index.d.ts",
|
|
11
11
|
"scripts": {
|
|
12
|
-
"build": "tsc",
|
|
12
|
+
"build": "tsc && cp -r schema dist/schema",
|
|
13
13
|
"dev": "tsc --watch",
|
|
14
14
|
"lint": "tsc --noEmit",
|
|
15
15
|
"prepublishOnly": "npm run build"
|