@anvia/cli 1.1.1 → 1.3.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 +48 -0
- package/dist/chunk-ERCP4EIZ.js +607 -0
- package/dist/chunk-ERCP4EIZ.js.map +1 -0
- package/dist/cli.js +287 -33
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +81 -1
- package/dist/index.js +27 -3
- package/dist/skills/anvia-agent/SKILL.md +59 -0
- package/dist/skills/anvia-agent/references/agent-options.md +83 -0
- package/dist/skills/anvia-agent/references/providers.md +22 -0
- package/dist/skills/anvia-agent/references/teams.md +84 -0
- package/dist/skills/anvia-agent/references/tools.md +71 -0
- package/dist/skills/anvia-agent/scripts/check-agent.sh +99 -0
- package/dist/skills/anvia-channels/SKILL.md +59 -0
- package/dist/skills/anvia-channels/references/adapters.md +53 -0
- package/dist/skills/anvia-channels/references/channel-agent.md +52 -0
- package/dist/skills/anvia-channels/references/delivery.md +53 -0
- package/dist/skills/anvia-channels/scripts/check-channels.sh +79 -0
- package/dist/skills/anvia-chat/SKILL.md +61 -0
- package/dist/skills/anvia-chat/references/react-ui.md +104 -0
- package/dist/skills/anvia-chat/references/server-protocol.md +53 -0
- package/dist/skills/anvia-chat/references/transports-state.md +71 -0
- package/dist/skills/anvia-chat/scripts/check-chat-boundary.sh +70 -0
- package/dist/skills/anvia-evals/SKILL.md +51 -0
- package/dist/skills/anvia-evals/references/judges.md +61 -0
- package/dist/skills/anvia-evals/references/metrics.md +45 -0
- package/dist/skills/anvia-evals/references/running.md +62 -0
- package/dist/skills/anvia-evals/scripts/check-evals.sh +73 -0
- package/dist/skills/anvia-mcp/SKILL.md +49 -0
- package/dist/skills/anvia-mcp/references/clients.md +73 -0
- package/dist/skills/anvia-mcp/references/safety.md +25 -0
- package/dist/skills/anvia-mcp/scripts/check-mcp.sh +73 -0
- package/dist/skills/anvia-pipeline/SKILL.md +52 -0
- package/dist/skills/anvia-pipeline/references/agents-extract.md +62 -0
- package/dist/skills/anvia-pipeline/references/steps-compose.md +63 -0
- package/dist/skills/anvia-pipeline/scripts/check-pipeline.sh +69 -0
- package/dist/skills/anvia-rag/SKILL.md +50 -0
- package/dist/skills/anvia-rag/references/graph-rag.md +115 -0
- package/dist/skills/anvia-rag/references/pipeline.md +81 -0
- package/dist/skills/anvia-rag/references/rag-tool.md +43 -0
- package/dist/skills/anvia-rag/references/stores.md +68 -0
- package/dist/skills/anvia-rag/scripts/check-rag.sh +75 -0
- package/dist/skills/anvia-studio/SKILL.md +45 -0
- package/dist/skills/anvia-studio/references/inspect.md +33 -0
- package/dist/skills/anvia-studio/references/observe.md +34 -0
- package/dist/skills/anvia-studio/references/serve.md +65 -0
- package/dist/skills/anvia-studio/scripts/check-studio.sh +59 -0
- package/dist/skills/release-notes/SKILL.md +18 -0
- package/dist/skills/release-notes/references/style.md +6 -0
- package/dist/skills/release-notes/scripts/draft.sh +22 -0
- package/package.json +3 -3
- package/dist/chunk-TE2ODJOV.js +0 -135
- package/dist/chunk-TE2ODJOV.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anvia/cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Install editable Anvia UI components into React applications.",
|
|
5
5
|
"author": "anvia",
|
|
6
6
|
"license": "MIT",
|
|
@@ -38,10 +38,10 @@
|
|
|
38
38
|
"tsup": "^8.5.0",
|
|
39
39
|
"typescript": "^5.9.3",
|
|
40
40
|
"vitest": "^4.0.8",
|
|
41
|
-
"@anvia/react-ui": "1.1.
|
|
41
|
+
"@anvia/react-ui": "1.1.3"
|
|
42
42
|
},
|
|
43
43
|
"scripts": {
|
|
44
|
-
"build": "tsup src/index.ts src/cli.ts --format esm --dts --sourcemap --clean && node scripts/copy-registry.mjs && chmod +x dist/cli.js",
|
|
44
|
+
"build": "tsup src/index.ts src/cli.ts --format esm --dts --sourcemap --clean && node scripts/copy-registry.mjs && node scripts/copy-skills.mjs && chmod +x dist/cli.js",
|
|
45
45
|
"test": "vitest run",
|
|
46
46
|
"typecheck": "tsc --noEmit && tsc --project registry/tsconfig.json --noEmit"
|
|
47
47
|
}
|
package/dist/chunk-TE2ODJOV.js
DELETED
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
// src/index.ts
|
|
2
|
-
import { spawnSync } from "child_process";
|
|
3
|
-
import { mkdtempSync, readFileSync, rmSync, writeFileSync } from "fs";
|
|
4
|
-
import { createRequire } from "module";
|
|
5
|
-
import { tmpdir } from "os";
|
|
6
|
-
import { basename, join } from "path";
|
|
7
|
-
import { fileURLToPath } from "url";
|
|
8
|
-
var registryItemNames = [
|
|
9
|
-
"chat",
|
|
10
|
-
"thread",
|
|
11
|
-
"message",
|
|
12
|
-
"composer",
|
|
13
|
-
"attachment",
|
|
14
|
-
"markdown",
|
|
15
|
-
"tool-fallback"
|
|
16
|
-
];
|
|
17
|
-
var itemFiles = {
|
|
18
|
-
attachment: ["attachment.tsx"],
|
|
19
|
-
chat: [
|
|
20
|
-
"attachment.tsx",
|
|
21
|
-
"markdown.tsx",
|
|
22
|
-
"tool-fallback.tsx",
|
|
23
|
-
"message.tsx",
|
|
24
|
-
"composer.tsx",
|
|
25
|
-
"thread.tsx",
|
|
26
|
-
"chat.tsx"
|
|
27
|
-
],
|
|
28
|
-
composer: ["attachment.tsx", "composer.tsx"],
|
|
29
|
-
markdown: ["markdown.tsx"],
|
|
30
|
-
message: ["attachment.tsx", "markdown.tsx", "tool-fallback.tsx", "message.tsx"],
|
|
31
|
-
thread: ["attachment.tsx", "markdown.tsx", "tool-fallback.tsx", "message.tsx", "thread.tsx"],
|
|
32
|
-
"tool-fallback": ["tool-fallback.tsx"]
|
|
33
|
-
};
|
|
34
|
-
var revealCss = {
|
|
35
|
-
"@keyframes anvia-stream-gradient-settle": {
|
|
36
|
-
to: {
|
|
37
|
-
opacity: "1"
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
"@layer components": {
|
|
41
|
-
'.anvia-markdown [data-state="revealing"]': {
|
|
42
|
-
animation: "anvia-stream-gradient-settle var(--anvia-stream-reveal-duration, 180ms) linear both",
|
|
43
|
-
opacity: "var(--anvia-stream-reveal-opacity, 1)"
|
|
44
|
-
},
|
|
45
|
-
"@media (prefers-reduced-motion: reduce)": {
|
|
46
|
-
'.anvia-markdown [data-state="revealing"]': {
|
|
47
|
-
animation: "none",
|
|
48
|
-
opacity: "1"
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
function createRegistryItem(name, options = {}) {
|
|
54
|
-
const packageVersion = options.packageVersion ?? currentPackageVersion();
|
|
55
|
-
const registryDirectory = options.registryDirectory ?? bundledRegistryDirectory();
|
|
56
|
-
const files = itemFiles[name].map((filename) => ({
|
|
57
|
-
content: readFileSync(join(registryDirectory, filename), "utf8"),
|
|
58
|
-
path: `registry/anvia/${filename}`,
|
|
59
|
-
target: `@components/anvia/${filename}`,
|
|
60
|
-
type: "registry:component"
|
|
61
|
-
}));
|
|
62
|
-
const item = {
|
|
63
|
-
$schema: "https://ui.shadcn.com/schema/registry-item.json",
|
|
64
|
-
dependencies: [`@anvia/react-ui@${packageVersion}`],
|
|
65
|
-
description: registryItemDescription(name),
|
|
66
|
-
files,
|
|
67
|
-
name,
|
|
68
|
-
title: `Anvia ${name}`,
|
|
69
|
-
type: files.length === 1 ? "registry:component" : "registry:block"
|
|
70
|
-
};
|
|
71
|
-
if (name === "chat" || name === "markdown" || name === "message" || name === "thread") {
|
|
72
|
-
item.css = revealCss;
|
|
73
|
-
}
|
|
74
|
-
return item;
|
|
75
|
-
}
|
|
76
|
-
function initializeProject(options = {}) {
|
|
77
|
-
const cwd = options.cwd ?? process.cwd();
|
|
78
|
-
const args = ["init", "--cwd", cwd, "--yes", "--no-monorepo", "--base", "radix"];
|
|
79
|
-
if (options.template !== void 0) args.push("--template", options.template);
|
|
80
|
-
if (options.force === true) args.push("--force");
|
|
81
|
-
runShadcn(args);
|
|
82
|
-
}
|
|
83
|
-
function addRegistryItem(name, options = {}) {
|
|
84
|
-
const cwd = options.cwd ?? process.cwd();
|
|
85
|
-
const temporaryDirectory = mkdtempSync(join(tmpdir(), "anvia-registry-"));
|
|
86
|
-
const itemPath = join(temporaryDirectory, `${name}.json`);
|
|
87
|
-
try {
|
|
88
|
-
writeFileSync(itemPath, `${JSON.stringify(createRegistryItem(name), null, 2)}
|
|
89
|
-
`);
|
|
90
|
-
const args = ["add", itemPath, "--cwd", cwd, "--yes"];
|
|
91
|
-
if (options.overwrite === true) args.push("--overwrite");
|
|
92
|
-
runShadcn(args);
|
|
93
|
-
} finally {
|
|
94
|
-
rmSync(temporaryDirectory, { force: true, recursive: true });
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
function isRegistryItemName(value) {
|
|
98
|
-
return registryItemNames.includes(value);
|
|
99
|
-
}
|
|
100
|
-
function runShadcn(args) {
|
|
101
|
-
const require2 = createRequire(import.meta.url);
|
|
102
|
-
const shadcnEntry = require2.resolve("shadcn");
|
|
103
|
-
const result = spawnSync(process.execPath, [shadcnEntry, ...args], {
|
|
104
|
-
encoding: "utf8",
|
|
105
|
-
stdio: "inherit"
|
|
106
|
-
});
|
|
107
|
-
if (result.error !== void 0) throw result.error;
|
|
108
|
-
if (result.status !== 0) {
|
|
109
|
-
throw new Error(`shadcn ${args[0] ?? "command"} failed with exit code ${result.status}.`);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
function bundledRegistryDirectory() {
|
|
113
|
-
return fileURLToPath(new URL("./registry/", import.meta.url));
|
|
114
|
-
}
|
|
115
|
-
function currentPackageVersion() {
|
|
116
|
-
const manifestPath = fileURLToPath(new URL("../package.json", import.meta.url));
|
|
117
|
-
const manifest = JSON.parse(readFileSync(manifestPath, "utf8"));
|
|
118
|
-
if (typeof manifest.version !== "string") {
|
|
119
|
-
throw new Error(`Missing package version in ${basename(manifestPath)}.`);
|
|
120
|
-
}
|
|
121
|
-
return manifest.version;
|
|
122
|
-
}
|
|
123
|
-
function registryItemDescription(name) {
|
|
124
|
-
if (name === "chat") return "A complete editable Anvia chat interface.";
|
|
125
|
-
return `Editable Anvia ${name} UI.`;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
export {
|
|
129
|
-
registryItemNames,
|
|
130
|
-
createRegistryItem,
|
|
131
|
-
initializeProject,
|
|
132
|
-
addRegistryItem,
|
|
133
|
-
isRegistryItemName
|
|
134
|
-
};
|
|
135
|
-
//# sourceMappingURL=chunk-TE2ODJOV.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { spawnSync } from \"node:child_process\";\nimport { mkdtempSync, readFileSync, rmSync, writeFileSync } from \"node:fs\";\nimport { createRequire } from \"node:module\";\nimport { tmpdir } from \"node:os\";\nimport { basename, join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nexport const registryItemNames = [\n \"chat\",\n \"thread\",\n \"message\",\n \"composer\",\n \"attachment\",\n \"markdown\",\n \"tool-fallback\",\n] as const;\n\nexport type RegistryItemName = (typeof registryItemNames)[number];\n\ntype RegistryFile = {\n content: string;\n path: string;\n target: string;\n type: \"registry:component\";\n};\n\ntype RegistryCss = {\n [rule: string]: RegistryCss | string;\n};\n\nexport type AnviaRegistryItem = {\n $schema: string;\n css?: RegistryCss;\n dependencies: string[];\n description: string;\n files: RegistryFile[];\n name: RegistryItemName;\n title: string;\n type: \"registry:block\" | \"registry:component\";\n};\n\nconst itemFiles: Record<RegistryItemName, readonly string[]> = {\n attachment: [\"attachment.tsx\"],\n chat: [\n \"attachment.tsx\",\n \"markdown.tsx\",\n \"tool-fallback.tsx\",\n \"message.tsx\",\n \"composer.tsx\",\n \"thread.tsx\",\n \"chat.tsx\",\n ],\n composer: [\"attachment.tsx\", \"composer.tsx\"],\n markdown: [\"markdown.tsx\"],\n message: [\"attachment.tsx\", \"markdown.tsx\", \"tool-fallback.tsx\", \"message.tsx\"],\n thread: [\"attachment.tsx\", \"markdown.tsx\", \"tool-fallback.tsx\", \"message.tsx\", \"thread.tsx\"],\n \"tool-fallback\": [\"tool-fallback.tsx\"],\n};\n\nconst revealCss = {\n \"@keyframes anvia-stream-gradient-settle\": {\n to: {\n opacity: \"1\",\n },\n },\n \"@layer components\": {\n '.anvia-markdown [data-state=\"revealing\"]': {\n animation:\n \"anvia-stream-gradient-settle var(--anvia-stream-reveal-duration, 180ms) linear both\",\n opacity: \"var(--anvia-stream-reveal-opacity, 1)\",\n },\n \"@media (prefers-reduced-motion: reduce)\": {\n '.anvia-markdown [data-state=\"revealing\"]': {\n animation: \"none\",\n opacity: \"1\",\n },\n },\n },\n} satisfies RegistryCss;\n\nexport function createRegistryItem(\n name: RegistryItemName,\n options: { packageVersion?: string; registryDirectory?: string } = {},\n): AnviaRegistryItem {\n const packageVersion = options.packageVersion ?? currentPackageVersion();\n const registryDirectory = options.registryDirectory ?? bundledRegistryDirectory();\n const files = itemFiles[name].map((filename) => ({\n content: readFileSync(join(registryDirectory, filename), \"utf8\"),\n path: `registry/anvia/${filename}`,\n target: `@components/anvia/${filename}`,\n type: \"registry:component\" as const,\n }));\n const item: AnviaRegistryItem = {\n $schema: \"https://ui.shadcn.com/schema/registry-item.json\",\n dependencies: [`@anvia/react-ui@${packageVersion}`],\n description: registryItemDescription(name),\n files,\n name,\n title: `Anvia ${name}`,\n type: files.length === 1 ? \"registry:component\" : \"registry:block\",\n };\n if (name === \"chat\" || name === \"markdown\" || name === \"message\" || name === \"thread\") {\n item.css = revealCss;\n }\n return item;\n}\n\nexport function initializeProject(\n options: { cwd?: string; force?: boolean; template?: \"next\" | \"vite\" } = {},\n): void {\n const cwd = options.cwd ?? process.cwd();\n const args = [\"init\", \"--cwd\", cwd, \"--yes\", \"--no-monorepo\", \"--base\", \"radix\"];\n if (options.template !== undefined) args.push(\"--template\", options.template);\n if (options.force === true) args.push(\"--force\");\n runShadcn(args);\n}\n\nexport function addRegistryItem(\n name: RegistryItemName,\n options: { cwd?: string; overwrite?: boolean } = {},\n): void {\n const cwd = options.cwd ?? process.cwd();\n const temporaryDirectory = mkdtempSync(join(tmpdir(), \"anvia-registry-\"));\n const itemPath = join(temporaryDirectory, `${name}.json`);\n try {\n writeFileSync(itemPath, `${JSON.stringify(createRegistryItem(name), null, 2)}\\n`);\n const args = [\"add\", itemPath, \"--cwd\", cwd, \"--yes\"];\n if (options.overwrite === true) args.push(\"--overwrite\");\n runShadcn(args);\n } finally {\n rmSync(temporaryDirectory, { force: true, recursive: true });\n }\n}\n\nexport function isRegistryItemName(value: string): value is RegistryItemName {\n return registryItemNames.includes(value as RegistryItemName);\n}\n\nfunction runShadcn(args: string[]): void {\n const require = createRequire(import.meta.url);\n const shadcnEntry = require.resolve(\"shadcn\");\n const result = spawnSync(process.execPath, [shadcnEntry, ...args], {\n encoding: \"utf8\",\n stdio: \"inherit\",\n });\n if (result.error !== undefined) throw result.error;\n if (result.status !== 0) {\n throw new Error(`shadcn ${args[0] ?? \"command\"} failed with exit code ${result.status}.`);\n }\n}\n\nfunction bundledRegistryDirectory(): string {\n return fileURLToPath(new URL(\"./registry/\", import.meta.url));\n}\n\nfunction currentPackageVersion(): string {\n const manifestPath = fileURLToPath(new URL(\"../package.json\", import.meta.url));\n const manifest = JSON.parse(readFileSync(manifestPath, \"utf8\")) as { version?: unknown };\n if (typeof manifest.version !== \"string\") {\n throw new Error(`Missing package version in ${basename(manifestPath)}.`);\n }\n return manifest.version;\n}\n\nfunction registryItemDescription(name: RegistryItemName): string {\n if (name === \"chat\") return \"A complete editable Anvia chat interface.\";\n return `Editable Anvia ${name} UI.`;\n}\n"],"mappings":"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","names":["require"]}
|