@callsitehq/cli 0.1.0 → 0.2.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/LICENSE +21 -0
- package/README.md +30 -0
- package/dist/index.d.ts +15 -3
- package/dist/index.js +85 -24
- package/dist/index.js.map +1 -1
- package/package.json +25 -3
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Callsite contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# @callsitehq/cli
|
|
2
|
+
|
|
3
|
+
Command-line interface for Callsite.
|
|
4
|
+
|
|
5
|
+
The package installs the `callsite` binary for generating agent-facing artifacts
|
|
6
|
+
from a Callsite config. The current build command emits `mcp.json`,
|
|
7
|
+
and `openapi.json`.
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
callsite build
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Host applications run capabilities by importing their config and composing it
|
|
14
|
+
with `@callsitehq/runtime` and any host-specific adapter.
|
|
15
|
+
|
|
16
|
+
By default the CLI looks for `callsite.config.ts`, then the JavaScript config
|
|
17
|
+
variants. Zod-backed projects can use `@callsitehq/zod`:
|
|
18
|
+
|
|
19
|
+
```ts
|
|
20
|
+
import { defineConfig } from "@callsitehq/zod";
|
|
21
|
+
|
|
22
|
+
import { capabilities } from "./src/capabilities.js";
|
|
23
|
+
|
|
24
|
+
export default defineConfig({ capabilities });
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Status
|
|
28
|
+
|
|
29
|
+
Early `0.x` package. CLI commands and config shape may change while the library
|
|
30
|
+
surface is finalized.
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,20 @@
|
|
|
1
|
+
import { AnyCapability, ToJsonSchema } from '@callsitehq/core';
|
|
2
|
+
import { EmitMcpJsonOptions, EmitOpenApiOptions } from '@callsitehq/emit';
|
|
3
|
+
|
|
1
4
|
interface BuildOptions {
|
|
2
|
-
readonly configPath
|
|
3
|
-
readonly outDir
|
|
5
|
+
readonly configPath?: string | undefined;
|
|
6
|
+
readonly outDir?: string | undefined;
|
|
7
|
+
}
|
|
8
|
+
interface CallsiteConfig {
|
|
9
|
+
readonly capabilities: readonly AnyCapability[];
|
|
10
|
+
readonly toJsonSchema: ToJsonSchema;
|
|
11
|
+
readonly emit?: CallsiteEmitConfig;
|
|
12
|
+
}
|
|
13
|
+
interface CallsiteEmitConfig {
|
|
14
|
+
readonly mcp?: EmitMcpJsonOptions;
|
|
15
|
+
readonly openapi?: EmitOpenApiOptions;
|
|
4
16
|
}
|
|
5
17
|
declare function build(options: BuildOptions): Promise<void>;
|
|
6
18
|
declare function main(argv?: readonly string[]): Promise<number>;
|
|
7
19
|
|
|
8
|
-
export { type BuildOptions, build, main };
|
|
20
|
+
export { type BuildOptions, type CallsiteConfig, type CallsiteEmitConfig, build, main };
|
package/dist/index.js
CHANGED
|
@@ -1,41 +1,86 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
// src/index.ts
|
|
4
|
-
import {
|
|
4
|
+
import { realpathSync } from "fs";
|
|
5
|
+
import { access, mkdir, unlink, writeFile } from "fs/promises";
|
|
5
6
|
import { dirname, resolve } from "path";
|
|
6
|
-
import { fileURLToPath
|
|
7
|
+
import { fileURLToPath } from "url";
|
|
8
|
+
import { createJiti } from "jiti";
|
|
9
|
+
import { toIR } from "@callsitehq/core";
|
|
7
10
|
import {
|
|
8
|
-
emitChatGptAppConfig,
|
|
9
|
-
emitClaudeConnectorConfig,
|
|
10
11
|
emitMcpJson,
|
|
11
12
|
emitOpenApi
|
|
12
13
|
} from "@callsitehq/emit";
|
|
14
|
+
var OBSOLETE_ARTIFACTS = ["handler.ts"];
|
|
13
15
|
async function build(options) {
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
const ir =
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
await
|
|
20
|
-
await writeArtifact(resolve(outDir, "
|
|
21
|
-
await writeArtifact(resolve(outDir, "
|
|
16
|
+
const configPath = await resolveConfigPath(options.configPath);
|
|
17
|
+
const config = readConfig(await loadConfig(configPath));
|
|
18
|
+
const ir = configToIR(config);
|
|
19
|
+
const emit = isCallsiteConfig(config) ? config.emit : void 0;
|
|
20
|
+
const outDir = resolve(options.outDir ?? "dist/callsite");
|
|
21
|
+
await removeObsoleteArtifacts(outDir);
|
|
22
|
+
await writeArtifact(resolve(outDir, "mcp.json"), emitMcpJson(ir, emit?.mcp));
|
|
23
|
+
await writeArtifact(resolve(outDir, "openapi.json"), emitOpenApi(ir, emit?.openapi));
|
|
22
24
|
}
|
|
23
25
|
async function main(argv = process.argv.slice(2)) {
|
|
24
26
|
const [command, ...args] = argv;
|
|
25
|
-
if (command
|
|
27
|
+
if (command === void 0 || command === "--help" || command === "-h") {
|
|
26
28
|
printHelp();
|
|
27
|
-
return
|
|
29
|
+
return 0;
|
|
28
30
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
if (command === "build") {
|
|
32
|
+
const configPath = readFlag(args, "--config");
|
|
33
|
+
const outDir = readFlag(args, "--out");
|
|
34
|
+
await build({ configPath, outDir });
|
|
35
|
+
return 0;
|
|
36
|
+
}
|
|
37
|
+
printHelp();
|
|
38
|
+
return 1;
|
|
39
|
+
}
|
|
40
|
+
var DEFAULT_CONFIG_FILES = [
|
|
41
|
+
"callsite.config.ts",
|
|
42
|
+
"callsite.config.mts",
|
|
43
|
+
"callsite.config.js",
|
|
44
|
+
"callsite.config.mjs",
|
|
45
|
+
"callsite.config.cjs"
|
|
46
|
+
];
|
|
47
|
+
async function resolveConfigPath(configPath) {
|
|
48
|
+
if (configPath !== void 0) {
|
|
49
|
+
return resolve(configPath);
|
|
50
|
+
}
|
|
51
|
+
for (const candidate of DEFAULT_CONFIG_FILES) {
|
|
52
|
+
const path = resolve(candidate);
|
|
53
|
+
try {
|
|
54
|
+
await access(path);
|
|
55
|
+
return path;
|
|
56
|
+
} catch {
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
throw new TypeError(
|
|
60
|
+
`No Callsite config found. Create ${DEFAULT_CONFIG_FILES[0]} or pass --config.`
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
async function loadConfig(configPath) {
|
|
64
|
+
const jiti = createJiti(import.meta.url, { fsCache: false });
|
|
65
|
+
const configModule = await jiti.import(configPath);
|
|
66
|
+
return configModule.default ?? configModule.config ?? configModule.ir;
|
|
33
67
|
}
|
|
34
|
-
function
|
|
35
|
-
if (
|
|
36
|
-
|
|
68
|
+
function readConfig(value) {
|
|
69
|
+
if (isIR(value) || isCallsiteConfig(value)) {
|
|
70
|
+
return value;
|
|
37
71
|
}
|
|
38
|
-
|
|
72
|
+
throw new TypeError(
|
|
73
|
+
"Callsite config must export an IR object or { capabilities, toJsonSchema }."
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
function configToIR(config) {
|
|
77
|
+
return isIR(config) ? config : toIR(config.capabilities, config.toJsonSchema);
|
|
78
|
+
}
|
|
79
|
+
function isCallsiteConfig(value) {
|
|
80
|
+
return typeof value === "object" && value !== null && "capabilities" in value && Array.isArray(value.capabilities) && "toJsonSchema" in value && typeof value.toJsonSchema === "function";
|
|
81
|
+
}
|
|
82
|
+
function isIR(value) {
|
|
83
|
+
return typeof value === "object" && value !== null && "version" in value && value.version === 1 && "capabilities" in value && Array.isArray(value.capabilities);
|
|
39
84
|
}
|
|
40
85
|
function readFlag(args, name) {
|
|
41
86
|
const index = args.indexOf(name);
|
|
@@ -48,14 +93,30 @@ async function writeArtifact(path, content) {
|
|
|
48
93
|
await mkdir(dirname(path), { recursive: true });
|
|
49
94
|
await writeFile(path, content);
|
|
50
95
|
}
|
|
96
|
+
async function removeObsoleteArtifacts(outDir) {
|
|
97
|
+
await Promise.all(
|
|
98
|
+
OBSOLETE_ARTIFACTS.map(async (artifact) => {
|
|
99
|
+
try {
|
|
100
|
+
await unlink(resolve(outDir, artifact));
|
|
101
|
+
} catch (error) {
|
|
102
|
+
if (!isNodeError(error) || error.code !== "ENOENT") {
|
|
103
|
+
throw error;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
})
|
|
107
|
+
);
|
|
108
|
+
}
|
|
109
|
+
function isNodeError(error) {
|
|
110
|
+
return error instanceof Error && "code" in error;
|
|
111
|
+
}
|
|
51
112
|
function printHelp() {
|
|
52
113
|
process.stdout.write(`callsite
|
|
53
114
|
|
|
54
115
|
Usage:
|
|
55
|
-
callsite build [--config callsite.config.
|
|
116
|
+
callsite build [--config callsite.config.ts] [--out dist/callsite]
|
|
56
117
|
`);
|
|
57
118
|
}
|
|
58
|
-
var isDirectRun = process.argv[1] === fileURLToPath(import.meta.url);
|
|
119
|
+
var isDirectRun = process.argv[1] !== void 0 && realpathSync(process.argv[1]) === realpathSync(fileURLToPath(import.meta.url));
|
|
59
120
|
if (isDirectRun) {
|
|
60
121
|
main().then(
|
|
61
122
|
(exitCode) => {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { mkdir, writeFile } from \"node:fs/promises\";\nimport { dirname, resolve } from \"node:path\";\nimport { fileURLToPath
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { realpathSync } from \"node:fs\";\nimport { access, mkdir, unlink, writeFile } from \"node:fs/promises\";\nimport { dirname, resolve } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { createJiti } from \"jiti\";\n\nimport { toIR, type AnyCapability, type IR, type ToJsonSchema } from \"@callsitehq/core\";\nimport {\n emitMcpJson,\n emitOpenApi,\n type EmitMcpJsonOptions,\n type EmitOpenApiOptions\n} from \"@callsitehq/emit\";\n\nexport interface BuildOptions {\n readonly configPath?: string | undefined;\n readonly outDir?: string | undefined;\n}\n\nexport interface CallsiteConfig {\n readonly capabilities: readonly AnyCapability[];\n readonly toJsonSchema: ToJsonSchema;\n readonly emit?: CallsiteEmitConfig;\n}\n\nexport interface CallsiteEmitConfig {\n readonly mcp?: EmitMcpJsonOptions;\n readonly openapi?: EmitOpenApiOptions;\n}\n\nconst OBSOLETE_ARTIFACTS = [\"handler.ts\"] as const;\n\nexport async function build(options: BuildOptions): Promise<void> {\n const configPath = await resolveConfigPath(options.configPath);\n const config = readConfig(await loadConfig(configPath));\n const ir = configToIR(config);\n const emit = isCallsiteConfig(config) ? config.emit : undefined;\n const outDir = resolve(options.outDir ?? \"dist/callsite\");\n\n await removeObsoleteArtifacts(outDir);\n await writeArtifact(resolve(outDir, \"mcp.json\"), emitMcpJson(ir, emit?.mcp));\n await writeArtifact(resolve(outDir, \"openapi.json\"), emitOpenApi(ir, emit?.openapi));\n}\n\nexport async function main(argv: readonly string[] = process.argv.slice(2)): Promise<number> {\n const [command, ...args] = argv;\n\n if (command === undefined || command === \"--help\" || command === \"-h\") {\n printHelp();\n return 0;\n }\n\n if (command === \"build\") {\n const configPath = readFlag(args, \"--config\");\n const outDir = readFlag(args, \"--out\");\n\n await build({ configPath, outDir });\n return 0;\n }\n\n printHelp();\n return 1;\n}\n\nconst DEFAULT_CONFIG_FILES = [\n \"callsite.config.ts\",\n \"callsite.config.mts\",\n \"callsite.config.js\",\n \"callsite.config.mjs\",\n \"callsite.config.cjs\"\n];\n\nasync function resolveConfigPath(configPath: string | undefined): Promise<string> {\n if (configPath !== undefined) {\n return resolve(configPath);\n }\n\n for (const candidate of DEFAULT_CONFIG_FILES) {\n const path = resolve(candidate);\n\n try {\n await access(path);\n return path;\n } catch {\n // Keep looking through the default config names.\n }\n }\n\n throw new TypeError(\n `No Callsite config found. Create ${DEFAULT_CONFIG_FILES[0]} or pass --config.`\n );\n}\n\nasync function loadConfig(configPath: string): Promise<unknown> {\n const jiti = createJiti(import.meta.url, { fsCache: false });\n const configModule = (await jiti.import(configPath)) as {\n readonly default?: unknown;\n readonly config?: unknown;\n readonly ir?: unknown;\n };\n\n return configModule.default ?? configModule.config ?? configModule.ir;\n}\n\nfunction readConfig(value: unknown): IR | CallsiteConfig {\n if (isIR(value) || isCallsiteConfig(value)) {\n return value;\n }\n\n throw new TypeError(\n \"Callsite config must export an IR object or { capabilities, toJsonSchema }.\"\n );\n}\n\nfunction configToIR(config: IR | CallsiteConfig): IR {\n return isIR(config) ? config : toIR(config.capabilities, config.toJsonSchema);\n}\n\nfunction isCallsiteConfig(value: unknown): value is CallsiteConfig {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"capabilities\" in value &&\n Array.isArray(value.capabilities) &&\n \"toJsonSchema\" in value &&\n typeof value.toJsonSchema === \"function\"\n );\n}\n\nfunction isIR(value: unknown): value is IR {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"version\" in value &&\n value.version === 1 &&\n \"capabilities\" in value &&\n Array.isArray(value.capabilities)\n );\n}\n\nfunction readFlag(args: readonly string[], name: string): string | undefined {\n const index = args.indexOf(name);\n\n if (index === -1) {\n return undefined;\n }\n\n return args[index + 1];\n}\n\nasync function writeArtifact(path: string, content: string): Promise<void> {\n await mkdir(dirname(path), { recursive: true });\n await writeFile(path, content);\n}\n\nasync function removeObsoleteArtifacts(outDir: string): Promise<void> {\n await Promise.all(\n OBSOLETE_ARTIFACTS.map(async (artifact) => {\n try {\n await unlink(resolve(outDir, artifact));\n } catch (error) {\n if (!isNodeError(error) || error.code !== \"ENOENT\") {\n throw error;\n }\n }\n })\n );\n}\n\nfunction isNodeError(error: unknown): error is NodeJS.ErrnoException {\n return error instanceof Error && \"code\" in error;\n}\n\nfunction printHelp(): void {\n process.stdout.write(`callsite\n\nUsage:\n callsite build [--config callsite.config.ts] [--out dist/callsite]\n`);\n}\n\nconst isDirectRun =\n process.argv[1] !== undefined &&\n realpathSync(process.argv[1]) === realpathSync(fileURLToPath(import.meta.url));\n\nif (isDirectRun) {\n main().then(\n (exitCode) => {\n process.exitCode = exitCode;\n },\n (error: unknown) => {\n process.stderr.write(`${error instanceof Error ? error.message : String(error)}\\n`);\n process.exitCode = 1;\n }\n );\n}\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@callsitehq/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Command-line tools for building Callsite generated artifacts.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"agents",
|
|
7
|
+
"capabilities",
|
|
8
|
+
"cli",
|
|
9
|
+
"mcp",
|
|
10
|
+
"openapi",
|
|
11
|
+
"typescript"
|
|
12
|
+
],
|
|
13
|
+
"license": "MIT",
|
|
14
|
+
"homepage": "https://github.com/callsitehq/callsite/tree/main/packages/cli#readme",
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "git+https://github.com/callsitehq/callsite.git",
|
|
18
|
+
"directory": "packages/cli"
|
|
19
|
+
},
|
|
20
|
+
"bugs": {
|
|
21
|
+
"url": "https://github.com/callsitehq/callsite/issues"
|
|
22
|
+
},
|
|
5
23
|
"type": "module",
|
|
6
24
|
"bin": {
|
|
7
25
|
"callsite": "./dist/index.js"
|
|
@@ -15,9 +33,13 @@
|
|
|
15
33
|
"files": [
|
|
16
34
|
"dist"
|
|
17
35
|
],
|
|
36
|
+
"publishConfig": {
|
|
37
|
+
"access": "public"
|
|
38
|
+
},
|
|
18
39
|
"dependencies": {
|
|
19
|
-
"
|
|
20
|
-
"@callsitehq/
|
|
40
|
+
"jiti": "^2.7.0",
|
|
41
|
+
"@callsitehq/core": "0.2.0",
|
|
42
|
+
"@callsitehq/emit": "0.2.0"
|
|
21
43
|
},
|
|
22
44
|
"scripts": {
|
|
23
45
|
"build": "tsup",
|