@michinarai/cli 0.0.0-stage → 0.1.1
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 +202 -0
- package/README.md +150 -2
- package/bin/run.js +4 -0
- package/dist/api/client.d.ts +24 -0
- package/dist/api/client.js +56 -0
- package/dist/api/client.js.map +1 -0
- package/dist/api/tool-flag.d.ts +9 -0
- package/dist/api/tool-flag.js +15 -0
- package/dist/api/tool-flag.js.map +1 -0
- package/dist/api/tools.d.ts +17 -0
- package/dist/api/tools.js +39 -0
- package/dist/api/tools.js.map +1 -0
- package/dist/auth/loopback.d.ts +11 -0
- package/dist/auth/loopback.js +54 -0
- package/dist/auth/loopback.js.map +1 -0
- package/dist/auth/oauth.d.ts +52 -0
- package/dist/auth/oauth.js +101 -0
- package/dist/auth/oauth.js.map +1 -0
- package/dist/auth/session.d.ts +7 -0
- package/dist/auth/session.js +41 -0
- package/dist/auth/session.js.map +1 -0
- package/dist/base-command.d.ts +29 -0
- package/dist/base-command.js +65 -0
- package/dist/base-command.js.map +1 -0
- package/dist/commands/build.d.ts +9 -0
- package/dist/commands/build.js +34 -0
- package/dist/commands/build.js.map +1 -0
- package/dist/commands/dev.d.ts +14 -0
- package/dist/commands/dev.js +55 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/init.d.ts +12 -0
- package/dist/commands/init.js +63 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/login.d.ts +10 -0
- package/dist/commands/login.js +37 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +5 -0
- package/dist/commands/logout.js +19 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/tools/list.d.ts +8 -0
- package/dist/commands/tools/list.js +23 -0
- package/dist/commands/tools/list.js.map +1 -0
- package/dist/commands/tools/push.d.ts +11 -0
- package/dist/commands/tools/push.js +53 -0
- package/dist/commands/tools/push.js.map +1 -0
- package/dist/commands/tools/register.d.ts +13 -0
- package/dist/commands/tools/register.js +66 -0
- package/dist/commands/tools/register.js.map +1 -0
- package/dist/commands/tools/tokens/create.d.ts +12 -0
- package/dist/commands/tools/tokens/create.js +26 -0
- package/dist/commands/tools/tokens/create.js.map +1 -0
- package/dist/commands/tools/tokens/list.d.ts +8 -0
- package/dist/commands/tools/tokens/list.js +13 -0
- package/dist/commands/tools/tokens/list.js.map +1 -0
- package/dist/commands/tools/tokens/revoke.d.ts +11 -0
- package/dist/commands/tools/tokens/revoke.js +18 -0
- package/dist/commands/tools/tokens/revoke.js.map +1 -0
- package/dist/commands/validate.d.ts +6 -0
- package/dist/commands/validate.js +27 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/commands.d.ts +26 -0
- package/dist/commands.js +29 -0
- package/dist/commands.js.map +1 -0
- package/dist/generated/api.d.ts +1499 -0
- package/dist/generated/api.js +6 -0
- package/dist/generated/api.js.map +1 -0
- package/dist/lib/credentials.d.ts +8 -0
- package/dist/lib/credentials.js +45 -0
- package/dist/lib/credentials.js.map +1 -0
- package/dist/lib/deps.d.ts +12 -0
- package/dist/lib/deps.js +23 -0
- package/dist/lib/deps.js.map +1 -0
- package/dist/lib/digest.d.ts +10 -0
- package/dist/lib/digest.js +37 -0
- package/dist/lib/digest.js.map +1 -0
- package/dist/lib/errors.d.ts +26 -0
- package/dist/lib/errors.js +39 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/http.d.ts +2 -0
- package/dist/lib/http.js +11 -0
- package/dist/lib/http.js.map +1 -0
- package/dist/lib/lock.d.ts +4 -0
- package/dist/lib/lock.js +58 -0
- package/dist/lib/lock.js.map +1 -0
- package/dist/lib/output.d.ts +21 -0
- package/dist/lib/output.js +44 -0
- package/dist/lib/output.js.map +1 -0
- package/dist/lib/plan.d.ts +13 -0
- package/dist/lib/plan.js +10 -0
- package/dist/lib/plan.js.map +1 -0
- package/dist/lib/project.d.ts +8 -0
- package/dist/lib/project.js +37 -0
- package/dist/lib/project.js.map +1 -0
- package/package.json +59 -4
- package/templates/tool/.claude/skills/narai-tool/SKILL.md +16 -0
- package/templates/tool/AGENTS.md +30 -0
- package/templates/tool/narai.tool.json +25 -0
- package/templates/tool/package.json +14 -0
- package/templates/tool/scripts/build.mjs +12 -0
- package/templates/tool/src/index.html +19 -0
- package/templates/tool/src/tool.css +2 -0
- package/templates/tool/src/tool.js +21 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "{{name}}",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"type": "module",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"build": "node scripts/build.mjs && narai build",
|
|
8
|
+
"dev": "npm run build && narai dev",
|
|
9
|
+
"validate": "narai validate"
|
|
10
|
+
},
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"@michinarai/sdk": "{{sdk}}"
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// The tool's build: its pages, its manifest and the SDK into dist/. No bundler: the page maps "@michinarai/sdk" to the
|
|
2
|
+
// copy in dist/sdk/. `narai build` then seals dist/ (every file's sha256, the bundle digest).
|
|
3
|
+
import { cpSync, mkdirSync, rmSync } from "node:fs";
|
|
4
|
+
import { dirname, join } from "node:path";
|
|
5
|
+
import { fileURLToPath } from "node:url";
|
|
6
|
+
|
|
7
|
+
const sdk = dirname(dirname(fileURLToPath(import.meta.resolve("@michinarai/sdk"))));
|
|
8
|
+
rmSync("dist", { recursive: true, force: true });
|
|
9
|
+
mkdirSync("dist");
|
|
10
|
+
cpSync("src", "dist", { recursive: true });
|
|
11
|
+
cpSync("narai.tool.json", join("dist", "narai.tool.json"));
|
|
12
|
+
cpSync(join(sdk, "dist"), join("dist", "sdk"), { recursive: true, filter: (p) => !p.endsWith(".map") && !p.endsWith(".d.ts") && !p.includes("harness") && !p.endsWith("payloads.js") });
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<title>{{name}}</title>
|
|
7
|
+
<script type="importmap">{ "imports": { "@michinarai/sdk": "./sdk/index.js" } }</script>
|
|
8
|
+
<link rel="stylesheet" href="./tool.css">
|
|
9
|
+
</head>
|
|
10
|
+
<body>
|
|
11
|
+
<main>
|
|
12
|
+
<p id="prompt"></p>
|
|
13
|
+
<input id="text" autocomplete="off">
|
|
14
|
+
<button id="say">Answer</button>
|
|
15
|
+
<button id="drill">Practice</button>
|
|
16
|
+
</main>
|
|
17
|
+
<script type="module" src="./tool.js"></script>
|
|
18
|
+
</body>
|
|
19
|
+
</html>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// {{name}}: a Narai tool. It shows the learner something to do and reports what they did; Narai judges.
|
|
2
|
+
import { connect, pickLocale } from "@michinarai/sdk";
|
|
3
|
+
|
|
4
|
+
const $ = (id) => document.getElementById(id);
|
|
5
|
+
const manifest = await (await fetch("./narai.tool.json")).json();
|
|
6
|
+
// Only Narai's host may connect (NARAI_HOST_ORIGINS); a tool served from this machine (narai dev) also takes a local one.
|
|
7
|
+
const tool = await connect(manifest);
|
|
8
|
+
|
|
9
|
+
// Narai writes the prompt, in the learner's language; the tool shows it, never writes one.
|
|
10
|
+
$("prompt").textContent = tool.task?.prompt ?? "";
|
|
11
|
+
// the first of the learner's locales this tool has (manifest.locales), else its first
|
|
12
|
+
tool.ready(pickLocale(tool.start, manifest.locales));
|
|
13
|
+
|
|
14
|
+
$("say").onclick = () => {
|
|
15
|
+
if (!tool.task) return;
|
|
16
|
+
// what the learner did, in the payload the manifest declares for this task's kind: never whether it's right
|
|
17
|
+
tool.answer({ schema: manifest.answers[tool.task.kind], text: $("text").value });
|
|
18
|
+
};
|
|
19
|
+
$("drill").onclick = () => {
|
|
20
|
+
tool.practice("drill", { duration_s: 30, attempts: 1, payload: { schema: manifest.practice.drill, rounds: 1 } });
|
|
21
|
+
};
|