@vatio-ai/skills 1.29.1 → 1.30.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.
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vatio",
|
|
3
3
|
"description": "Vatio skills for Claude Code, Cursor and Codex: add an AI agent to the app you're building with /vatio-init, then improve it daily with /vatio-improve and learn what people ask it with /vatio-analyze.",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.30.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Vatio",
|
|
7
7
|
"url": "https://vatio.ai"
|
package/bin/install.mjs
CHANGED
|
@@ -4,10 +4,11 @@
|
|
|
4
4
|
// .agents/skills/ Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode, Cline, Amp
|
|
5
5
|
// .claude/skills/ Claude Code, which does not read .agents/
|
|
6
6
|
// Running it again overwrites the copies with this version's.
|
|
7
|
+
import { spawnSync } from "node:child_process";
|
|
7
8
|
import { randomUUID } from "node:crypto";
|
|
8
9
|
import { cpSync, existsSync, mkdirSync, readFileSync, readdirSync, rmSync, writeFileSync } from "node:fs";
|
|
9
|
-
import { homedir } from "node:os";
|
|
10
|
-
import { dirname, join, relative, resolve } from "node:path";
|
|
10
|
+
import { homedir, platform } from "node:os";
|
|
11
|
+
import { basename, dirname, join, relative, resolve } from "node:path";
|
|
11
12
|
import { fileURLToPath } from "node:url";
|
|
12
13
|
|
|
13
14
|
const usage = `usage: npx @vatio-ai/skills [--dir PATH]
|
|
@@ -116,7 +117,30 @@ function codingAgent() {
|
|
|
116
117
|
if (env.GEMINI_CLI) return "gemini-cli";
|
|
117
118
|
if (env.REPL_ID) return "replit";
|
|
118
119
|
if (env.CI) return "ci";
|
|
119
|
-
|
|
120
|
+
if (process.stdout.isTTY) return "human";
|
|
121
|
+
const parent = launcher();
|
|
122
|
+
return parent ? `unknown:${parent}` : "unknown";
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// What started the installer, when no coding agent said so: the first
|
|
126
|
+
// ancestor that is not a shell or Node, by its process name.
|
|
127
|
+
function launcher() {
|
|
128
|
+
if (platform() === "win32") return null;
|
|
129
|
+
const skip = new Set(["sh", "bash", "zsh", "fish", "dash", "ksh", "env", "node", "npm", "npx", "pnpm", "yarn", "bun", "sudo", "xargs", "timeout", "login"]);
|
|
130
|
+
try {
|
|
131
|
+
let pid = process.ppid;
|
|
132
|
+
for (let depth = 0; depth < 6 && pid > 1; depth++) {
|
|
133
|
+
const out = spawnSync("ps", ["-o", "ppid=,comm=", "-p", String(pid)], { encoding: "utf8", timeout: 500 });
|
|
134
|
+
const match = /^\s*(\d+)\s+(.+?)\s*$/.exec(out.stdout ?? "");
|
|
135
|
+
if (!match) return null;
|
|
136
|
+
const name = basename(match[2]).replace(/^-/, "");
|
|
137
|
+
if (!skip.has(name)) return name.replace(/[^\w .-]/g, "").slice(0, 40) || null;
|
|
138
|
+
pid = Number(match[1]);
|
|
139
|
+
}
|
|
140
|
+
} catch {
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
return null;
|
|
120
144
|
}
|
|
121
145
|
|
|
122
146
|
// The CLI's session for this directory (~/.vatio/sessions.json), or a new
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vatio-ai/skills",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.30.0",
|
|
4
4
|
"description": "Vatio skills for Claude Code, Cursor and Codex: add an AI agent to the app you're building with /vatio-init, then improve it daily with /vatio-improve and learn what people ask it with /vatio-analyze.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"vatio",
|
|
@@ -82,8 +82,10 @@ In short:
|
|
|
82
82
|
the `vatio-share-session` skill says. It starts with
|
|
83
83
|
`vatio share-session --should-ask`: if that prints `no`, say nothing.
|
|
84
84
|
|
|
85
|
-
|
|
86
|
-
the
|
|
85
|
+
If the fix needs more than the digest says, `vatio docs search TERM` prints
|
|
86
|
+
the sections of the docs that mention something, with their page,
|
|
87
|
+
`vatio docs PAGE` one page (`tools`, `knowledge`), and `vatio docs` the whole
|
|
88
|
+
contract (manifest, tools, knowledge, CLI). There are two ways to run the CLI,
|
|
87
89
|
and the package name appears once in either: `vatio ARGS` when it is
|
|
88
90
|
installed globally, and `npx @vatio-ai/cli@latest ARGS` when it is not. Pick
|
|
89
91
|
one per command and leave it whole — `npx @vatio-ai/cli @vatio-ai/cli flags`
|
|
@@ -16,7 +16,10 @@ npx @vatio-ai/cli docs
|
|
|
16
16
|
Under **For coding agents**, **Starting a new agent** and **Joining an
|
|
17
17
|
existing workspace** are the two procedures. Follow the one that fits; it
|
|
18
18
|
takes precedence over the summary below. The rest of that output is the
|
|
19
|
-
contract for `vatio.yml`, tools, knowledge and the CLI.
|
|
19
|
+
contract for `vatio.yml`, tools, knowledge and the CLI. To look something up
|
|
20
|
+
again later, `npx @vatio-ai/cli docs search TERM` prints the sections that
|
|
21
|
+
mention it, with their page, and `npx @vatio-ai/cli docs PAGE` one page
|
|
22
|
+
(`tools`, `knowledge`, `cli/deploy`), rather than reading it all twice.
|
|
20
23
|
|
|
21
24
|
## 1. Look at what is there
|
|
22
25
|
|
|
@@ -47,7 +50,9 @@ you recommend, and ask them to confirm.
|
|
|
47
50
|
3. `vatio diff`, `vatio push`, then try it with `vatio chat`, including a
|
|
48
51
|
conversation that should hand off. A tool that needs the visitor's
|
|
49
52
|
phone or a team role runs with `vatio chat --as-phone me` (or a test
|
|
50
|
-
phone); an `access: private` one with `--as-subject ID`.
|
|
53
|
+
phone); an `access: private` one with `--as-subject ID`. When visitors
|
|
54
|
+
will send files (a PDF, a photo), send one with `vatio chat --file PATH
|
|
55
|
+
"question"`: it says how much of a PDF the agent got.
|
|
51
56
|
4. **Write down what it should do as tests.** For each question that
|
|
52
57
|
matters, `vatio test add "what a visitor would ask" "what the answer has
|
|
53
58
|
to do"`: it asks it on preview and says whether it passes now (add
|