@izantech/lineup-cli 2.0.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/README.md +10 -0
- package/bin/lineup.mjs +4 -0
- package/dist/chunk-RQBQVCEG.js +1451 -0
- package/dist/cli.d.ts +40 -0
- package/dist/cli.js +14 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.js +18 -0
- package/package.json +69 -0
- package/schemas/json/host-adapter.schema.json +58 -0
- package/schemas/json/release-manifest.schema.json +30 -0
- package/schemas/json/state.schema.json +59 -0
- package/schemas/yaml/agent-output/architect.schema.json +15 -0
- package/schemas/yaml/agent-output/developer.schema.json +16 -0
- package/schemas/yaml/agent-output/documenter.schema.json +15 -0
- package/schemas/yaml/agent-output/researcher.schema.json +15 -0
- package/schemas/yaml/agent-output/reviewer.schema.json +16 -0
- package/schemas/yaml/agent-output/teacher.schema.json +15 -0
- package/schemas/yaml/tactic.schema.json +85 -0
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
|
|
3
|
+
type InstallCommandOptions = {
|
|
4
|
+
host?: string;
|
|
5
|
+
version?: string;
|
|
6
|
+
fromDir?: string;
|
|
7
|
+
yes?: boolean;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
type StatusCommandOptions = {
|
|
11
|
+
host?: string;
|
|
12
|
+
json?: boolean;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
type UninstallCommandOptions = {
|
|
16
|
+
host?: string;
|
|
17
|
+
yes?: boolean;
|
|
18
|
+
purge?: boolean;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
type UpdateCommandOptions = {
|
|
22
|
+
host?: string;
|
|
23
|
+
version?: string;
|
|
24
|
+
fromDir?: string;
|
|
25
|
+
yes?: boolean;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
type CliHandlers = {
|
|
29
|
+
install: (options: InstallCommandOptions) => Promise<void>;
|
|
30
|
+
update: (options: UpdateCommandOptions) => Promise<void>;
|
|
31
|
+
uninstall: (options: UninstallCommandOptions) => Promise<void>;
|
|
32
|
+
status: (options: StatusCommandOptions) => Promise<void>;
|
|
33
|
+
};
|
|
34
|
+
declare function buildProgram(handlers?: Partial<CliHandlers>): Command;
|
|
35
|
+
declare function printCliError(error: unknown): void;
|
|
36
|
+
declare function resolveExitCode(error: unknown): number;
|
|
37
|
+
declare function handleFatalError(error: unknown): never;
|
|
38
|
+
declare function run(argv?: string[]): Promise<void>;
|
|
39
|
+
|
|
40
|
+
export { type CliHandlers, buildProgram, handleFatalError, printCliError, resolveExitCode, run };
|
package/dist/cli.js
ADDED
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export { CliHandlers, buildProgram, printCliError, resolveExitCode, run } from './cli.js';
|
|
2
|
+
import 'commander';
|
|
3
|
+
|
|
4
|
+
declare const SUPPORTED_HOSTS: readonly ["claude", "codex"];
|
|
5
|
+
type HostName = (typeof SUPPORTED_HOSTS)[number];
|
|
6
|
+
|
|
7
|
+
type HostState = {
|
|
8
|
+
installed: boolean;
|
|
9
|
+
version?: string | null;
|
|
10
|
+
source?: string | null;
|
|
11
|
+
skills_dir?: string | null;
|
|
12
|
+
last_action: "install" | "update" | "uninstall" | null;
|
|
13
|
+
last_updated_at: string | null;
|
|
14
|
+
};
|
|
15
|
+
type InstallerState = {
|
|
16
|
+
schema_version: number;
|
|
17
|
+
updated_at: string | null;
|
|
18
|
+
hosts: Partial<Record<HostName, HostState>>;
|
|
19
|
+
};
|
|
20
|
+
type ReleaseManifest = {
|
|
21
|
+
tag: string;
|
|
22
|
+
tarball_url: string;
|
|
23
|
+
sha256: string;
|
|
24
|
+
published_at?: string;
|
|
25
|
+
generated_at?: string;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
type HostAdapter = {
|
|
29
|
+
host: string;
|
|
30
|
+
vars: Record<string, string>;
|
|
31
|
+
};
|
|
32
|
+
declare function validateHostAdapter(payload: unknown, source: string): HostAdapter;
|
|
33
|
+
declare function validateInstallerState(payload: unknown, source: string): InstallerState;
|
|
34
|
+
declare function validateReleaseManifest(payload: unknown, source: string): ReleaseManifest;
|
|
35
|
+
|
|
36
|
+
export { validateHostAdapter, validateInstallerState, validateReleaseManifest };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import {
|
|
2
|
+
buildProgram,
|
|
3
|
+
printCliError,
|
|
4
|
+
resolveExitCode,
|
|
5
|
+
run,
|
|
6
|
+
validateHostAdapter,
|
|
7
|
+
validateInstallerState,
|
|
8
|
+
validateReleaseManifest
|
|
9
|
+
} from "./chunk-RQBQVCEG.js";
|
|
10
|
+
export {
|
|
11
|
+
buildProgram,
|
|
12
|
+
printCliError,
|
|
13
|
+
resolveExitCode,
|
|
14
|
+
run,
|
|
15
|
+
validateHostAdapter,
|
|
16
|
+
validateInstallerState,
|
|
17
|
+
validateReleaseManifest
|
|
18
|
+
};
|
package/package.json
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@izantech/lineup-cli",
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"private": false,
|
|
5
|
+
"description": "Lineup multi-host installer and manager for Claude Code and Codex",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"engines": {
|
|
9
|
+
"node": ">=20"
|
|
10
|
+
},
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "https://github.com/izantech/lineup"
|
|
14
|
+
},
|
|
15
|
+
"homepage": "https://github.com/izantech/lineup",
|
|
16
|
+
"bugs": {
|
|
17
|
+
"url": "https://github.com/izantech/lineup/issues"
|
|
18
|
+
},
|
|
19
|
+
"keywords": [
|
|
20
|
+
"lineup",
|
|
21
|
+
"cli",
|
|
22
|
+
"claude",
|
|
23
|
+
"codex",
|
|
24
|
+
"agentic"
|
|
25
|
+
],
|
|
26
|
+
"main": "./dist/index.js",
|
|
27
|
+
"module": "./dist/index.js",
|
|
28
|
+
"types": "./dist/index.d.ts",
|
|
29
|
+
"exports": {
|
|
30
|
+
".": {
|
|
31
|
+
"types": "./dist/index.d.ts",
|
|
32
|
+
"import": "./dist/index.js"
|
|
33
|
+
},
|
|
34
|
+
"./cli": {
|
|
35
|
+
"import": "./dist/cli.js"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"bin": {
|
|
39
|
+
"lineup": "bin/lineup.mjs"
|
|
40
|
+
},
|
|
41
|
+
"files": [
|
|
42
|
+
"dist",
|
|
43
|
+
"bin",
|
|
44
|
+
"schemas",
|
|
45
|
+
"README.md"
|
|
46
|
+
],
|
|
47
|
+
"scripts": {
|
|
48
|
+
"dev": "tsx src/cli.ts",
|
|
49
|
+
"build": "tsup src/cli.ts src/index.ts --format esm --target node20 --out-dir dist --clean --dts",
|
|
50
|
+
"typecheck": "tsc --noEmit",
|
|
51
|
+
"test": "vitest run",
|
|
52
|
+
"schema:check": "tsx src/scripts/schema-check.ts",
|
|
53
|
+
"generate:check": "tsx src/scripts/generate-check.ts",
|
|
54
|
+
"smoke:dist": "tsx src/scripts/smoke-dist.ts"
|
|
55
|
+
},
|
|
56
|
+
"dependencies": {
|
|
57
|
+
"ajv": "^8.17.1",
|
|
58
|
+
"ajv-formats": "^3.0.1",
|
|
59
|
+
"commander": "^14.0.3",
|
|
60
|
+
"yaml": "^2.8.1"
|
|
61
|
+
},
|
|
62
|
+
"devDependencies": {
|
|
63
|
+
"@types/node": "^22.18.1",
|
|
64
|
+
"tsup": "^8.5.0",
|
|
65
|
+
"tsx": "^4.20.4",
|
|
66
|
+
"typescript": "^5.9.2",
|
|
67
|
+
"vitest": "^3.2.4"
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://lineup.izantech.app/schemas/json/host-adapter.schema.json",
|
|
4
|
+
"title": "Lineup Host Adapter",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["host", "vars"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"host": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"enum": ["claude", "codex", "gemini"]
|
|
12
|
+
},
|
|
13
|
+
"vars": {
|
|
14
|
+
"type": "object",
|
|
15
|
+
"additionalProperties": false,
|
|
16
|
+
"required": [
|
|
17
|
+
"SKILL_NAME_KICKOFF",
|
|
18
|
+
"SKILL_NAME_CONFIGURE",
|
|
19
|
+
"SKILL_NAME_EXPLAIN",
|
|
20
|
+
"SKILL_NAME_PLAYBOOK",
|
|
21
|
+
"CMD_KICKOFF",
|
|
22
|
+
"CMD_CONFIGURE",
|
|
23
|
+
"CMD_EXPLAIN",
|
|
24
|
+
"CMD_PLAYBOOK",
|
|
25
|
+
"KICKOFF_INIT_PATH",
|
|
26
|
+
"QUESTION_PRIMITIVE",
|
|
27
|
+
"OVERRIDES_DIR",
|
|
28
|
+
"MEMORY_USER_DIR",
|
|
29
|
+
"MEMORY_PROJECT_DIR",
|
|
30
|
+
"HOST_TERM_PLUGIN",
|
|
31
|
+
"HOST_TERM_PLUGIN_POSSESSIVE",
|
|
32
|
+
"HOST_DEFAULTS_TERM",
|
|
33
|
+
"HOST_ARTIFACT_LABEL",
|
|
34
|
+
"HOST_ARTIFACT_LABEL_LOWER"
|
|
35
|
+
],
|
|
36
|
+
"properties": {
|
|
37
|
+
"SKILL_NAME_KICKOFF": { "type": "string" },
|
|
38
|
+
"SKILL_NAME_CONFIGURE": { "type": "string" },
|
|
39
|
+
"SKILL_NAME_EXPLAIN": { "type": "string" },
|
|
40
|
+
"SKILL_NAME_PLAYBOOK": { "type": "string" },
|
|
41
|
+
"CMD_KICKOFF": { "type": "string" },
|
|
42
|
+
"CMD_CONFIGURE": { "type": "string" },
|
|
43
|
+
"CMD_EXPLAIN": { "type": "string" },
|
|
44
|
+
"CMD_PLAYBOOK": { "type": "string" },
|
|
45
|
+
"KICKOFF_INIT_PATH": { "type": "string" },
|
|
46
|
+
"QUESTION_PRIMITIVE": { "type": "string" },
|
|
47
|
+
"OVERRIDES_DIR": { "type": "string" },
|
|
48
|
+
"MEMORY_USER_DIR": { "type": "string" },
|
|
49
|
+
"MEMORY_PROJECT_DIR": { "type": "string" },
|
|
50
|
+
"HOST_TERM_PLUGIN": { "type": "string" },
|
|
51
|
+
"HOST_TERM_PLUGIN_POSSESSIVE": { "type": "string" },
|
|
52
|
+
"HOST_DEFAULTS_TERM": { "type": "string" },
|
|
53
|
+
"HOST_ARTIFACT_LABEL": { "type": "string" },
|
|
54
|
+
"HOST_ARTIFACT_LABEL_LOWER": { "type": "string" }
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://lineup.izantech.app/schemas/json/release-manifest.schema.json",
|
|
4
|
+
"title": "Lineup Release Manifest",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["tag", "tarball_url", "sha256"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"tag": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"minLength": 1
|
|
12
|
+
},
|
|
13
|
+
"tarball_url": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"format": "uri"
|
|
16
|
+
},
|
|
17
|
+
"sha256": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"pattern": "^[a-fA-F0-9]{64}$"
|
|
20
|
+
},
|
|
21
|
+
"published_at": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"format": "date-time"
|
|
24
|
+
},
|
|
25
|
+
"generated_at": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"format": "date-time"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://lineup.izantech.app/schemas/json/state.schema.json",
|
|
4
|
+
"title": "Lineup CLI State",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["schema_version", "updated_at", "hosts"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schema_version": {
|
|
10
|
+
"type": "integer",
|
|
11
|
+
"minimum": 1
|
|
12
|
+
},
|
|
13
|
+
"updated_at": {
|
|
14
|
+
"type": ["string", "null"],
|
|
15
|
+
"format": "date-time"
|
|
16
|
+
},
|
|
17
|
+
"hosts": {
|
|
18
|
+
"type": "object",
|
|
19
|
+
"additionalProperties": false,
|
|
20
|
+
"properties": {
|
|
21
|
+
"claude": {
|
|
22
|
+
"$ref": "#/$defs/hostState"
|
|
23
|
+
},
|
|
24
|
+
"codex": {
|
|
25
|
+
"$ref": "#/$defs/hostState"
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"$defs": {
|
|
31
|
+
"hostState": {
|
|
32
|
+
"type": "object",
|
|
33
|
+
"additionalProperties": false,
|
|
34
|
+
"required": ["installed", "last_action", "last_updated_at"],
|
|
35
|
+
"properties": {
|
|
36
|
+
"installed": {
|
|
37
|
+
"type": "boolean"
|
|
38
|
+
},
|
|
39
|
+
"version": {
|
|
40
|
+
"type": ["string", "null"]
|
|
41
|
+
},
|
|
42
|
+
"source": {
|
|
43
|
+
"type": ["string", "null"]
|
|
44
|
+
},
|
|
45
|
+
"skills_dir": {
|
|
46
|
+
"type": ["string", "null"]
|
|
47
|
+
},
|
|
48
|
+
"last_action": {
|
|
49
|
+
"type": ["string", "null"],
|
|
50
|
+
"enum": ["install", "update", "uninstall", null]
|
|
51
|
+
},
|
|
52
|
+
"last_updated_at": {
|
|
53
|
+
"type": ["string", "null"],
|
|
54
|
+
"format": "date-time"
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://lineup.izantech.app/schemas/yaml/agent-output/architect.schema.json",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"additionalProperties": true,
|
|
6
|
+
"required": ["type", "agent", "date", "topic", "status", "pipeline_stage"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"type": { "const": "plan" },
|
|
9
|
+
"agent": { "const": "architect" },
|
|
10
|
+
"date": { "type": "string" },
|
|
11
|
+
"topic": { "type": "string" },
|
|
12
|
+
"status": { "enum": ["draft", "approved", "superseded"] },
|
|
13
|
+
"pipeline_stage": { "type": ["integer", "string"] }
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://lineup.izantech.app/schemas/yaml/agent-output/developer.schema.json",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"additionalProperties": true,
|
|
6
|
+
"required": ["type", "agent", "date", "topic", "status", "pipeline_stage", "plan_ref"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"type": { "const": "implementation" },
|
|
9
|
+
"agent": { "const": "developer" },
|
|
10
|
+
"date": { "type": "string" },
|
|
11
|
+
"topic": { "type": "string" },
|
|
12
|
+
"status": { "const": "complete" },
|
|
13
|
+
"pipeline_stage": { "type": ["integer", "string"] },
|
|
14
|
+
"plan_ref": { "type": "string" }
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://lineup.izantech.app/schemas/yaml/agent-output/documenter.schema.json",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"additionalProperties": true,
|
|
6
|
+
"required": ["type", "agent", "date", "topic", "status", "pipeline_stage"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"type": { "const": "documentation" },
|
|
9
|
+
"agent": { "const": "documenter" },
|
|
10
|
+
"date": { "type": "string" },
|
|
11
|
+
"topic": { "type": "string" },
|
|
12
|
+
"status": { "const": "complete" },
|
|
13
|
+
"pipeline_stage": { "type": ["integer", "string", "null"] }
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://lineup.izantech.app/schemas/yaml/agent-output/researcher.schema.json",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"additionalProperties": true,
|
|
6
|
+
"required": ["type", "agent", "date", "topic", "status", "pipeline_stage"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"type": { "const": "research" },
|
|
9
|
+
"agent": { "const": "researcher" },
|
|
10
|
+
"date": { "type": "string" },
|
|
11
|
+
"topic": { "type": "string" },
|
|
12
|
+
"status": { "const": "complete" },
|
|
13
|
+
"pipeline_stage": { "type": ["integer", "string"] }
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://lineup.izantech.app/schemas/yaml/agent-output/reviewer.schema.json",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"additionalProperties": true,
|
|
6
|
+
"required": ["type", "agent", "date", "topic", "status", "pipeline_stage", "plan_ref"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"type": { "const": "review" },
|
|
9
|
+
"agent": { "const": "reviewer" },
|
|
10
|
+
"date": { "type": "string" },
|
|
11
|
+
"topic": { "type": "string" },
|
|
12
|
+
"status": { "enum": ["PASS", "FAIL", "PASS_WITH_WARNINGS"] },
|
|
13
|
+
"pipeline_stage": { "type": ["integer", "string"] },
|
|
14
|
+
"plan_ref": { "type": "string" }
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://lineup.izantech.app/schemas/yaml/agent-output/teacher.schema.json",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"additionalProperties": true,
|
|
6
|
+
"required": ["type", "agent", "date", "topic", "status", "pipeline_stage"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"type": { "const": "explanation" },
|
|
9
|
+
"agent": { "const": "teacher" },
|
|
10
|
+
"date": { "type": "string" },
|
|
11
|
+
"topic": { "type": "string" },
|
|
12
|
+
"status": { "const": "complete" },
|
|
13
|
+
"pipeline_stage": { "type": ["integer", "string", "null"] }
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://lineup.izantech.app/schemas/yaml/tactic.schema.json",
|
|
4
|
+
"title": "Lineup Tactic",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["name", "description", "stages", "verification"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"name": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
|
|
12
|
+
},
|
|
13
|
+
"description": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"minLength": 1
|
|
16
|
+
},
|
|
17
|
+
"stages": {
|
|
18
|
+
"type": "array",
|
|
19
|
+
"minItems": 1,
|
|
20
|
+
"items": {
|
|
21
|
+
"type": "object",
|
|
22
|
+
"additionalProperties": false,
|
|
23
|
+
"required": ["type", "agent"],
|
|
24
|
+
"properties": {
|
|
25
|
+
"type": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"enum": [
|
|
28
|
+
"clarify",
|
|
29
|
+
"research",
|
|
30
|
+
"clarification-gate",
|
|
31
|
+
"plan",
|
|
32
|
+
"implement",
|
|
33
|
+
"verify",
|
|
34
|
+
"document",
|
|
35
|
+
"explain"
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
"agent": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"enum": ["researcher", "architect", "developer", "reviewer", "documenter", "teacher"]
|
|
41
|
+
},
|
|
42
|
+
"prompt": {
|
|
43
|
+
"type": "string"
|
|
44
|
+
},
|
|
45
|
+
"optional": {
|
|
46
|
+
"type": "boolean"
|
|
47
|
+
},
|
|
48
|
+
"gate": {
|
|
49
|
+
"type": ["string", "null"],
|
|
50
|
+
"enum": ["approval", null]
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"verification": {
|
|
56
|
+
"type": "array",
|
|
57
|
+
"minItems": 1,
|
|
58
|
+
"items": {
|
|
59
|
+
"type": "string",
|
|
60
|
+
"minLength": 1
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"variables": {
|
|
64
|
+
"type": "array",
|
|
65
|
+
"items": {
|
|
66
|
+
"type": "object",
|
|
67
|
+
"additionalProperties": false,
|
|
68
|
+
"required": ["name", "description"],
|
|
69
|
+
"properties": {
|
|
70
|
+
"name": {
|
|
71
|
+
"type": "string",
|
|
72
|
+
"pattern": "^[a-zA-Z_][a-zA-Z0-9_]*$"
|
|
73
|
+
},
|
|
74
|
+
"description": {
|
|
75
|
+
"type": "string",
|
|
76
|
+
"minLength": 1
|
|
77
|
+
},
|
|
78
|
+
"default": {
|
|
79
|
+
"type": "string"
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|