@composal/cli 0.0.0-stage → 1.17.63
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 +104 -2
- package/bin/com.cjs +61 -0
- package/bin/darwin-arm64/com +0 -0
- package/bin/linux-x64/com +0 -0
- package/package.json +53 -4
- package/release.json +29 -0
package/README.md
CHANGED
|
@@ -1,3 +1,105 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center">
|
|
2
|
+
<a href="https://composal.ai">
|
|
3
|
+
<img src="https://raw.githubusercontent.com/ComposalAI/cli/main/assets/composal-silver-sticker.svg" width="320" alt="Composal silver foil sticker">
|
|
4
|
+
</a>
|
|
5
|
+
<h1>Composal CLI</h1>
|
|
6
|
+
<p><strong>Verify changes. Ship apps. Equip your agents.</strong></p>
|
|
7
|
+
<p>
|
|
8
|
+
<a href="https://www.npmjs.com/package/@composal/cli">npm</a> ·
|
|
9
|
+
<a href="https://github.com/ComposalAI/cli">GitHub</a> ·
|
|
10
|
+
<a href="https://composal.ai/docs">Documentation</a> ·
|
|
11
|
+
<a href="https://composal.ai">Composal</a>
|
|
12
|
+
</p>
|
|
13
|
+
</div>
|
|
2
14
|
|
|
3
|
-
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
`com` brings Composal to your terminal and coding agents. Verify real user journeys,
|
|
18
|
+
deploy applications, manage secrets, and connect your agent to the same tools you
|
|
19
|
+
use to ship.
|
|
20
|
+
|
|
21
|
+
## Install
|
|
22
|
+
|
|
23
|
+
With **Node.js 18 or newer**:
|
|
24
|
+
|
|
25
|
+
```sh
|
|
26
|
+
npm install -g @composal/cli
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Prefer the standalone installer? No Node.js required:
|
|
30
|
+
|
|
31
|
+
```sh
|
|
32
|
+
curl -fsSL https://dl.composal.ai/install.sh | sh
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Both options install the `com` command. Supported platforms are **macOS Apple
|
|
36
|
+
Silicon** and **Linux x64 with glibc**. On Windows, use an x64 WSL distribution.
|
|
37
|
+
|
|
38
|
+
You can also run without a global installation:
|
|
39
|
+
|
|
40
|
+
```sh
|
|
41
|
+
npx @composal/cli --help
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
For a project, install with `npm install --save-dev @composal/cli` and run `npx com`.
|
|
45
|
+
Pin a version with `npm install -g @composal/cli@<version>`.
|
|
46
|
+
|
|
47
|
+
## Get started
|
|
48
|
+
|
|
49
|
+
```sh
|
|
50
|
+
com login
|
|
51
|
+
com whoami
|
|
52
|
+
com --help
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Follow the [quickstart](https://composal.ai/docs/quickstart) to connect your account
|
|
56
|
+
and run your first commands.
|
|
57
|
+
|
|
58
|
+
## What you can do
|
|
59
|
+
|
|
60
|
+
| | From your terminal |
|
|
61
|
+
| --- | --- |
|
|
62
|
+
| **[Verify](https://composal.ai/docs/verify)** | Test real browser journeys and inspect screenshots, recordings, and traces. |
|
|
63
|
+
| **[Ship applications](https://composal.ai/docs/hosting)** | Deploy apps, manage services and preview environments, and inspect logs. |
|
|
64
|
+
| **[Manage secrets](https://composal.ai/docs/cli)** | Store and retrieve secrets, or run commands with secrets injected into their environment. |
|
|
65
|
+
| **[Equip your agents](https://composal.ai/docs/agents)** | Set up Composal skills and MCP tools for your coding agent. |
|
|
66
|
+
|
|
67
|
+
Explore commands with `com verify --help`, `com deploy --help`, and
|
|
68
|
+
`com secrets --help`. The [CLI reference](https://composal.ai/docs/cli) covers the
|
|
69
|
+
full command set.
|
|
70
|
+
|
|
71
|
+
### Connect your coding agent
|
|
72
|
+
|
|
73
|
+
For Codex, install the skills and configure MCP together:
|
|
74
|
+
|
|
75
|
+
```sh
|
|
76
|
+
com setup --targets codex --mcp
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Run `com setup --help` for other supported agents and setup options.
|
|
80
|
+
|
|
81
|
+
## Stay up to date
|
|
82
|
+
|
|
83
|
+
For a global npm installation:
|
|
84
|
+
|
|
85
|
+
```sh
|
|
86
|
+
npm install -g @composal/cli@latest
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
For a project installation, run `npm install --save-dev @composal/cli@latest`.
|
|
90
|
+
|
|
91
|
+
For the standalone installer:
|
|
92
|
+
|
|
93
|
+
```sh
|
|
94
|
+
com update
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Explore Composal
|
|
98
|
+
|
|
99
|
+
- [Quickstart](https://composal.ai/docs/quickstart) — install, sign in, and get started.
|
|
100
|
+
- [CLI reference](https://composal.ai/docs/cli) — commands and examples.
|
|
101
|
+
- [Verify](https://composal.ai/docs/verify) — browser testing for your application.
|
|
102
|
+
- [Hosting](https://composal.ai/docs/hosting) — deploy and operate your apps.
|
|
103
|
+
- [Agent setup](https://composal.ai/docs/agents) — bring Composal to your coding workflow.
|
|
104
|
+
|
|
105
|
+
Found an issue or have an idea? [Let us know](https://github.com/ComposalAI/cli/issues).
|
package/bin/com.cjs
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
const { spawn } = require('node:child_process');
|
|
5
|
+
const path = require('node:path');
|
|
6
|
+
|
|
7
|
+
function binaryForPlatform(platform = process.platform, arch = process.arch) {
|
|
8
|
+
const target = `${platform}-${arch}`;
|
|
9
|
+
if (!['linux-x64', 'darwin-arm64'].includes(target)) {
|
|
10
|
+
throw new Error(
|
|
11
|
+
`Composal does not support ${target}. Use Linux x64 (including Windows WSL) or macOS Apple Silicon.`,
|
|
12
|
+
);
|
|
13
|
+
}
|
|
14
|
+
return path.join(__dirname, target, 'com');
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function main(args = process.argv.slice(2)) {
|
|
18
|
+
if (args[0] === 'update' && !args.includes('--help') && !args.includes('-h')) {
|
|
19
|
+
console.error(
|
|
20
|
+
'This installation is managed by npm. Update with:\n' +
|
|
21
|
+
' npm install -g @composal/cli@latest # global install\n' +
|
|
22
|
+
' npm install @composal/cli@latest # project install\n' +
|
|
23
|
+
'Or run the latest version with npx @composal/cli@latest.',
|
|
24
|
+
);
|
|
25
|
+
process.exitCode = 1;
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
let binary;
|
|
30
|
+
try {
|
|
31
|
+
binary = binaryForPlatform();
|
|
32
|
+
} catch (error) {
|
|
33
|
+
console.error(error.message);
|
|
34
|
+
process.exitCode = 1;
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const child = spawn(binary, args, { stdio: 'inherit' });
|
|
39
|
+
const handlers = new Map();
|
|
40
|
+
for (const signal of ['SIGINT', 'SIGTERM', 'SIGHUP']) {
|
|
41
|
+
const handler = () => child.kill(signal);
|
|
42
|
+
handlers.set(signal, handler);
|
|
43
|
+
process.on(signal, handler);
|
|
44
|
+
}
|
|
45
|
+
const cleanup = () => {
|
|
46
|
+
for (const [signal, handler] of handlers) process.removeListener(signal, handler);
|
|
47
|
+
};
|
|
48
|
+
child.on('error', (error) => {
|
|
49
|
+
cleanup();
|
|
50
|
+
console.error(`Could not start Composal: ${error.message}. Reinstall @composal/cli.`);
|
|
51
|
+
process.exitCode = 1;
|
|
52
|
+
});
|
|
53
|
+
child.on('exit', (code, signal) => {
|
|
54
|
+
cleanup();
|
|
55
|
+
if (signal) process.kill(process.pid, signal);
|
|
56
|
+
else process.exitCode = code;
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
module.exports = { binaryForPlatform, main };
|
|
61
|
+
if (require.main === module) main();
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,55 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@composal/cli",
|
|
3
|
-
"version": "
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "1.17.63",
|
|
4
|
+
"description": "Composal CLI for Verify, hosted apps, deployments, secrets, and agent setup",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"composal",
|
|
7
|
+
"cli",
|
|
8
|
+
"developer-tools",
|
|
9
|
+
"ai-agents",
|
|
10
|
+
"browser-testing",
|
|
11
|
+
"e2e-testing",
|
|
12
|
+
"test-automation",
|
|
13
|
+
"verification",
|
|
14
|
+
"deployments",
|
|
15
|
+
"hosting",
|
|
16
|
+
"secrets",
|
|
17
|
+
"mcp"
|
|
18
|
+
],
|
|
19
|
+
"license": "Apache-2.0",
|
|
20
|
+
"homepage": "https://github.com/ComposalAI/cli#readme",
|
|
21
|
+
"bugs": {
|
|
22
|
+
"url": "https://github.com/ComposalAI/cli/issues"
|
|
23
|
+
},
|
|
24
|
+
"repository": {
|
|
25
|
+
"type": "git",
|
|
26
|
+
"url": "git+https://github.com/ComposalAI/vex.git",
|
|
27
|
+
"directory": "npm/com-cli"
|
|
28
|
+
},
|
|
29
|
+
"bin": {
|
|
30
|
+
"com": "bin/com.cjs"
|
|
31
|
+
},
|
|
32
|
+
"files": [
|
|
33
|
+
"bin",
|
|
34
|
+
"release.json",
|
|
35
|
+
"README.md"
|
|
36
|
+
],
|
|
37
|
+
"engines": {
|
|
38
|
+
"node": ">=18"
|
|
39
|
+
},
|
|
40
|
+
"os": [
|
|
41
|
+
"darwin",
|
|
42
|
+
"linux"
|
|
43
|
+
],
|
|
44
|
+
"cpu": [
|
|
45
|
+
"arm64",
|
|
46
|
+
"x64"
|
|
47
|
+
],
|
|
48
|
+
"publishConfig": {
|
|
49
|
+
"access": "public",
|
|
50
|
+
"registry": "https://registry.npmjs.org"
|
|
51
|
+
},
|
|
52
|
+
"composal": {
|
|
53
|
+
"commit_sha": "8842a3a290868d88e96da16fbc6c57447e97c60f"
|
|
54
|
+
}
|
|
55
|
+
}
|
package/release.json
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"product": "com",
|
|
3
|
+
"version": "1.17.63",
|
|
4
|
+
"commit_sha": "8842a3a290868d88e96da16fbc6c57447e97c60f",
|
|
5
|
+
"platforms": {
|
|
6
|
+
"linux-amd64": {
|
|
7
|
+
"name": "com",
|
|
8
|
+
"version": "1.17.63",
|
|
9
|
+
"channel": "release",
|
|
10
|
+
"commit_sha": "8842a3a290868d88e96da16fbc6c57447e97c60f",
|
|
11
|
+
"short_sha": "8842a3a29086",
|
|
12
|
+
"platform": "linux-amd64",
|
|
13
|
+
"binary": "com",
|
|
14
|
+
"sha256": "bc8783d2a72308f7a31a9fb766c716370fc6261e732c7deedacc024beb6294e1",
|
|
15
|
+
"companions": []
|
|
16
|
+
},
|
|
17
|
+
"darwin-arm64": {
|
|
18
|
+
"name": "com",
|
|
19
|
+
"binary": "com",
|
|
20
|
+
"version": "1.17.63",
|
|
21
|
+
"channel": "release",
|
|
22
|
+
"commit_sha": "8842a3a290868d88e96da16fbc6c57447e97c60f",
|
|
23
|
+
"short_sha": "8842a3a29086",
|
|
24
|
+
"platform": "darwin-arm64",
|
|
25
|
+
"sha256": "06ce2f38b4c9231e21ecd4834eca832a430fccf88c04613d9668d610cd2fe4d6",
|
|
26
|
+
"companions": []
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|