@markusylisiurunen/tau 0.3.90 → 0.3.92
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/dist/core/cli.js +0 -3
- package/dist/core/cli.js.map +1 -1
- package/dist/core/code_mode/sdk.js +0 -1
- package/dist/core/code_mode/sdk.js.map +1 -1
- package/dist/core/config/content_loader.js +1 -3
- package/dist/core/config/content_loader.js.map +1 -1
- package/dist/core/config/index.js +1 -1
- package/dist/core/config/index.js.map +1 -1
- package/dist/core/config/schema.js +0 -67
- package/dist/core/config/schema.js.map +1 -1
- package/dist/core/history/history_manager.js +188 -94
- package/dist/core/history/history_manager.js.map +1 -1
- package/dist/core/history/history_store_worker.js +21 -0
- package/dist/core/history/history_store_worker.js.map +1 -0
- package/dist/core/history/local_history_store.js +11 -5
- package/dist/core/history/local_history_store.js.map +1 -1
- package/dist/core/history/threaded_history_store.js +107 -0
- package/dist/core/history/threaded_history_store.js.map +1 -0
- package/dist/core/index.js +0 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/personas.js +1 -2
- package/dist/core/personas.js.map +1 -1
- package/dist/core/static/tau_docs/client-tools.md +1 -1
- package/dist/core/static/tau_docs/config-reference.md +0 -24
- package/dist/core/static/tau_docs/configuration.md +1 -1
- package/dist/core/static/tau_docs/credentials.md +3 -18
- package/dist/core/static/tau_docs/history.md +9 -3
- package/dist/core/static/tau_docs/index.md +0 -1
- package/dist/core/static/tau_docs/manifest.json +0 -1
- package/dist/core/static/tau_docs/node-sdk.md +1 -1
- package/dist/core/static/tau_docs/personas.md +3 -3
- package/dist/core/static/tau_docs/security.md +6 -18
- package/dist/core/static/tau_docs/session-protocol-methods.md +1 -1
- package/dist/core/static/tau_docs/session-protocol.md +2 -0
- package/dist/core/static/tau_docs/subagents.md +0 -1
- package/dist/core/static/tau_docs/tools.md +6 -8
- package/dist/core/static/tau_docs/troubleshooting.md +10 -12
- package/dist/core/static/tau_docs/tui.md +3 -0
- package/dist/core/subagents/claude_code_runner.mjs +43 -43
- package/dist/core/subagents/registry.js +1 -2
- package/dist/core/subagents/registry.js.map +1 -1
- package/dist/core/subagents/types.js +1 -2
- package/dist/core/subagents/types.js.map +1 -1
- package/dist/core/tools/code.js +0 -3
- package/dist/core/tools/code.js.map +1 -1
- package/dist/core/tools/presentation.js +1 -2
- package/dist/core/tools/presentation.js.map +1 -1
- package/dist/core/tools/tool_names.js +1 -3
- package/dist/core/tools/tool_names.js.map +1 -1
- package/dist/core/utils/speech.js +6 -2
- package/dist/core/utils/speech.js.map +1 -1
- package/dist/core/version.js +1 -1
- package/dist/host/client_tool_broker.js +8 -4
- package/dist/host/client_tool_broker.js.map +1 -1
- package/dist/host/local_session_host.js +3 -2
- package/dist/host/local_session_host.js.map +1 -1
- package/dist/main.js +4 -26
- package/dist/main.js.map +1 -1
- package/dist/protocol/session_protocol.d.ts +2 -2
- package/dist/protocol/session_protocol.js +2 -2
- package/dist/protocol/session_protocol.js.map +1 -1
- package/dist/sdk/local_client.js +1 -0
- package/dist/sdk/local_client.js.map +1 -1
- package/dist/sdk/types.d.ts +7 -0
- package/dist/tui/session_chat_app.js +1 -1
- package/dist/tui/session_chat_app.js.map +1 -1
- package/dist/tui/session_chat_controller.js +12 -1
- package/dist/tui/session_chat_controller.js.map +1 -1
- package/package.json +3 -4
- package/dist/core/code_mode/nook.js +0 -226
- package/dist/core/code_mode/nook.js.map +0 -1
- package/dist/core/nook/cli.js +0 -258
- package/dist/core/nook/cli.js.map +0 -1
- package/dist/core/nook/client.js +0 -372
- package/dist/core/nook/client.js.map +0 -1
- package/dist/core/nook/deploy.js +0 -152
- package/dist/core/nook/deploy.js.map +0 -1
- package/dist/core/nook/index.js +0 -5
- package/dist/core/nook/index.js.map +0 -1
- package/dist/core/nook/setup.js +0 -429
- package/dist/core/nook/setup.js.map +0 -1
- package/dist/core/nook/validation.js +0 -164
- package/dist/core/nook/validation.js.map +0 -1
- package/dist/core/static/code_mode/nook/documentation.md +0 -144
- package/dist/core/static/code_mode/nook/sandbox_runner.mjs +0 -1
- package/dist/core/static/tau_docs/nook.md +0 -270
- package/dist/nook/worker/index.js +0 -1175
- package/dist/nook/worker/index.js.map +0 -1
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
import { readFileSync } from "node:fs";
|
|
2
|
-
import { z } from "zod";
|
|
3
|
-
import { createNookClientFromConfig } from "../nook/client.js";
|
|
4
|
-
import { buildNookDeployManifestFromBackend, buildNookTemplateManifestFromBackend, } from "../nook/deploy.js";
|
|
5
|
-
import { validateNookSiteSlug, validateNookTemplateName } from "../nook/validation.js";
|
|
6
|
-
import { formatZodError } from "../utils/zod.js";
|
|
7
|
-
const MAX_KV_KEY_LENGTH = 256;
|
|
8
|
-
const MAX_KV_VALUE_BYTES = 64 * 1024;
|
|
9
|
-
const description = [
|
|
10
|
-
"Publish static apps and artifacts, inspect hosted sites, and manage their JSON KV on Nook.",
|
|
11
|
-
"Use tau.nook only when the user asks for deployment, hosting, or Nook management. Nook is the usual target for static mini-app publishing.",
|
|
12
|
-
].join(" ");
|
|
13
|
-
const nonEmptyStringSchema = z.string().trim().min(1);
|
|
14
|
-
const directorySchema = nonEmptyStringSchema;
|
|
15
|
-
const fileSchema = nonEmptyStringSchema;
|
|
16
|
-
const keySchema = z.string().min(1).max(MAX_KV_KEY_LENGTH);
|
|
17
|
-
const visibilityOptionsSchema = z
|
|
18
|
-
.object({
|
|
19
|
-
visibility: z.enum(["private", "public"]),
|
|
20
|
-
})
|
|
21
|
-
.strict();
|
|
22
|
-
const kvListOptionsSchema = z
|
|
23
|
-
.object({
|
|
24
|
-
prefix: z.string().optional(),
|
|
25
|
-
})
|
|
26
|
-
.strict();
|
|
27
|
-
function validatedPathLabel(validate) {
|
|
28
|
-
return nonEmptyStringSchema.superRefine((value, context) => {
|
|
29
|
-
const result = validate(value);
|
|
30
|
-
if (!result.ok) {
|
|
31
|
-
context.addIssue({ code: z.ZodIssueCode.custom, message: result.message });
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
const siteSchema = validatedPathLabel(validateNookSiteSlug);
|
|
36
|
-
const templateSchema = validatedPathLabel(validateNookTemplateName);
|
|
37
|
-
const documentation = readFileSync(new URL("../static/code_mode/nook/documentation.md", import.meta.url), "utf8");
|
|
38
|
-
function parseMethodArguments(method, args, schema) {
|
|
39
|
-
const parsed = schema.safeParse(args);
|
|
40
|
-
if (!parsed.success) {
|
|
41
|
-
throw new Error(`Invalid tau.nook.${method} arguments: ${formatZodError(parsed.error)}`);
|
|
42
|
-
}
|
|
43
|
-
return parsed.data;
|
|
44
|
-
}
|
|
45
|
-
function joinBackendPath(dir, relativePath) {
|
|
46
|
-
const trimmedDir = dir.replace(/\/+$/, "");
|
|
47
|
-
const trimmedPath = relativePath.replace(/^\/+/, "");
|
|
48
|
-
return trimmedDir ? `${trimmedDir}/${trimmedPath}` : trimmedPath;
|
|
49
|
-
}
|
|
50
|
-
async function requireEmptyDirectory(backend, directory, artifact, signal) {
|
|
51
|
-
signal.throwIfAborted();
|
|
52
|
-
const destination = await backend.listDir(directory);
|
|
53
|
-
signal.throwIfAborted();
|
|
54
|
-
if (destination.entries.length > 0) {
|
|
55
|
-
throw new Error(`${artifact} copy destination is not empty: ${directory}`);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
async function copySite(client, backend, site, directory, signal) {
|
|
59
|
-
await requireEmptyDirectory(backend, directory, "site", signal);
|
|
60
|
-
const manifest = await client.getSiteManifest(site);
|
|
61
|
-
signal.throwIfAborted();
|
|
62
|
-
const files = await client.downloadSiteFiles(site, manifest);
|
|
63
|
-
signal.throwIfAborted();
|
|
64
|
-
for (const file of files) {
|
|
65
|
-
signal.throwIfAborted();
|
|
66
|
-
await backend.writeFileBinary(joinBackendPath(directory, file.path), file.content);
|
|
67
|
-
signal.throwIfAborted();
|
|
68
|
-
}
|
|
69
|
-
return {
|
|
70
|
-
site,
|
|
71
|
-
directory,
|
|
72
|
-
deploymentId: manifest.deploymentId,
|
|
73
|
-
visibility: manifest.visibility,
|
|
74
|
-
fileCount: files.length,
|
|
75
|
-
byteCount: files.reduce((total, file) => total + file.sizeBytes, 0),
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
async function copyTemplate(client, backend, template, directory, signal) {
|
|
79
|
-
await requireEmptyDirectory(backend, directory, "template", signal);
|
|
80
|
-
const manifest = await client.getTemplateManifest(template);
|
|
81
|
-
signal.throwIfAborted();
|
|
82
|
-
const files = await client.downloadTemplateFiles(template, manifest);
|
|
83
|
-
signal.throwIfAborted();
|
|
84
|
-
for (const file of files) {
|
|
85
|
-
signal.throwIfAborted();
|
|
86
|
-
await backend.writeFileBinary(joinBackendPath(directory, file.path), file.content);
|
|
87
|
-
signal.throwIfAborted();
|
|
88
|
-
}
|
|
89
|
-
return { ...manifest.template, directory };
|
|
90
|
-
}
|
|
91
|
-
async function writeKvToFile(client, backend, site, key, file, signal) {
|
|
92
|
-
const value = await client.getKv(site, key);
|
|
93
|
-
signal.throwIfAborted();
|
|
94
|
-
const content = JSON.stringify(value);
|
|
95
|
-
if (content === undefined) {
|
|
96
|
-
throw new Error(`tau.nook.kv.getToFile received a non-JSON value for ${site}/${key}`);
|
|
97
|
-
}
|
|
98
|
-
const result = await backend.writeFile(file, content);
|
|
99
|
-
signal.throwIfAborted();
|
|
100
|
-
return { site, key, file: result.path, bytes: result.bytes };
|
|
101
|
-
}
|
|
102
|
-
async function readKvFromFile(client, backend, site, key, file, signal) {
|
|
103
|
-
signal.throwIfAborted();
|
|
104
|
-
const result = await backend.readFileBinary(file, { maxBytes: MAX_KV_VALUE_BYTES });
|
|
105
|
-
signal.throwIfAborted();
|
|
106
|
-
let value;
|
|
107
|
-
try {
|
|
108
|
-
value = JSON.parse(new TextDecoder("utf-8", { fatal: true }).decode(result.content));
|
|
109
|
-
}
|
|
110
|
-
catch (error) {
|
|
111
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
112
|
-
throw new Error(`invalid JSON in KV file '${file}': ${message}`);
|
|
113
|
-
}
|
|
114
|
-
const stored = await client.putKv(site, key, value);
|
|
115
|
-
return { ...stored, file: result.path };
|
|
116
|
-
}
|
|
117
|
-
async function handleNookRequest(method, args, deps, config, backend, signal) {
|
|
118
|
-
const createClient = () => deps.createClient({ config, signal });
|
|
119
|
-
switch (method) {
|
|
120
|
-
case "skill": {
|
|
121
|
-
parseMethodArguments("skill", args, z.tuple([]));
|
|
122
|
-
return createClient().readSkill();
|
|
123
|
-
}
|
|
124
|
-
case "sites.list": {
|
|
125
|
-
parseMethodArguments("sites.list", args, z.tuple([]));
|
|
126
|
-
return createClient().listSites();
|
|
127
|
-
}
|
|
128
|
-
case "sites.copy": {
|
|
129
|
-
const [site, directory] = parseMethodArguments("sites.copy", args, z.tuple([siteSchema, directorySchema]));
|
|
130
|
-
return copySite(createClient(), backend, site, directory, signal);
|
|
131
|
-
}
|
|
132
|
-
case "sites.deploy": {
|
|
133
|
-
const [site, directory, options] = parseMethodArguments("sites.deploy", args, z.tuple([siteSchema, directorySchema, visibilityOptionsSchema]));
|
|
134
|
-
const files = await buildNookDeployManifestFromBackend(backend, directory, signal);
|
|
135
|
-
signal.throwIfAborted();
|
|
136
|
-
return createClient().deploySite({ site, files, visibility: options.visibility });
|
|
137
|
-
}
|
|
138
|
-
case "sites.delete": {
|
|
139
|
-
const [site] = parseMethodArguments("sites.delete", args, z.tuple([siteSchema]));
|
|
140
|
-
return createClient().deleteSite(site);
|
|
141
|
-
}
|
|
142
|
-
case "templates.list": {
|
|
143
|
-
parseMethodArguments("templates.list", args, z.tuple([]));
|
|
144
|
-
return createClient().listTemplates();
|
|
145
|
-
}
|
|
146
|
-
case "templates.copy": {
|
|
147
|
-
const [template, directory] = parseMethodArguments("templates.copy", args, z.tuple([templateSchema, directorySchema]));
|
|
148
|
-
return copyTemplate(createClient(), backend, template, directory, signal);
|
|
149
|
-
}
|
|
150
|
-
case "templates.save": {
|
|
151
|
-
const [template, directory] = parseMethodArguments("templates.save", args, z.tuple([templateSchema, directorySchema]));
|
|
152
|
-
const files = await buildNookTemplateManifestFromBackend(backend, directory, signal);
|
|
153
|
-
signal.throwIfAborted();
|
|
154
|
-
return createClient().saveTemplate({ name: template, files });
|
|
155
|
-
}
|
|
156
|
-
case "templates.delete": {
|
|
157
|
-
const [template] = parseMethodArguments("templates.delete", args, z.tuple([templateSchema]));
|
|
158
|
-
return createClient().deleteTemplate(template);
|
|
159
|
-
}
|
|
160
|
-
case "kv.get": {
|
|
161
|
-
const [site, key] = parseMethodArguments("kv.get", args, z.tuple([siteSchema, keySchema]));
|
|
162
|
-
return createClient().getKv(site, key);
|
|
163
|
-
}
|
|
164
|
-
case "kv.getToFile": {
|
|
165
|
-
const [site, key, file] = parseMethodArguments("kv.getToFile", args, z.tuple([siteSchema, keySchema, fileSchema]));
|
|
166
|
-
return writeKvToFile(createClient(), backend, site, key, file, signal);
|
|
167
|
-
}
|
|
168
|
-
case "kv.put": {
|
|
169
|
-
const [site, key, value] = parseMethodArguments("kv.put", args, z.tuple([siteSchema, keySchema, z.json()]));
|
|
170
|
-
return createClient().putKv(site, key, value);
|
|
171
|
-
}
|
|
172
|
-
case "kv.putFromFile": {
|
|
173
|
-
const [site, key, file] = parseMethodArguments("kv.putFromFile", args, z.tuple([siteSchema, keySchema, fileSchema]));
|
|
174
|
-
return readKvFromFile(createClient(), backend, site, key, file, signal);
|
|
175
|
-
}
|
|
176
|
-
case "kv.delete": {
|
|
177
|
-
const [site, key] = parseMethodArguments("kv.delete", args, z.tuple([siteSchema, keySchema]));
|
|
178
|
-
return createClient().deleteKv(site, key);
|
|
179
|
-
}
|
|
180
|
-
case "kv.list": {
|
|
181
|
-
const [site, options] = parseMethodArguments("kv.list", args, z.union([
|
|
182
|
-
z.tuple([siteSchema]).transform(([site]) => [site, {}]),
|
|
183
|
-
z.tuple([siteSchema, kvListOptionsSchema]),
|
|
184
|
-
]));
|
|
185
|
-
const result = await createClient().listKv(site, options.prefix);
|
|
186
|
-
return result.keys;
|
|
187
|
-
}
|
|
188
|
-
default:
|
|
189
|
-
throw new Error(`unsupported nook method '${method}'`);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
const defaultDeps = { createClient: createNookClientFromConfig };
|
|
193
|
-
export function createNookCapability(backend, config, deps = defaultDeps) {
|
|
194
|
-
if (!config.nook)
|
|
195
|
-
throw new Error("nook is not configured");
|
|
196
|
-
const method = (name) => async (args, context) => await handleNookRequest(name, args, deps, config, backend, context.signal);
|
|
197
|
-
return {
|
|
198
|
-
name: "nook",
|
|
199
|
-
description,
|
|
200
|
-
documentation,
|
|
201
|
-
api: {
|
|
202
|
-
skill: method("skill"),
|
|
203
|
-
sites: {
|
|
204
|
-
list: method("sites.list"),
|
|
205
|
-
copy: method("sites.copy"),
|
|
206
|
-
deploy: method("sites.deploy"),
|
|
207
|
-
delete: method("sites.delete"),
|
|
208
|
-
},
|
|
209
|
-
templates: {
|
|
210
|
-
list: method("templates.list"),
|
|
211
|
-
copy: method("templates.copy"),
|
|
212
|
-
save: method("templates.save"),
|
|
213
|
-
delete: method("templates.delete"),
|
|
214
|
-
},
|
|
215
|
-
kv: {
|
|
216
|
-
get: method("kv.get"),
|
|
217
|
-
getToFile: method("kv.getToFile"),
|
|
218
|
-
put: method("kv.put"),
|
|
219
|
-
putFromFile: method("kv.putFromFile"),
|
|
220
|
-
delete: method("kv.delete"),
|
|
221
|
-
list: method("kv.list"),
|
|
222
|
-
},
|
|
223
|
-
},
|
|
224
|
-
};
|
|
225
|
-
}
|
|
226
|
-
//# sourceMappingURL=nook.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nook.js","sourceRoot":"","sources":["../../../src/core/code_mode/nook.ts"],"names":[],"mappings":"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"}
|
package/dist/core/nook/cli.js
DELETED
|
@@ -1,258 +0,0 @@
|
|
|
1
|
-
import { resolve } from "node:path";
|
|
2
|
-
import { createNookClientFromConfig } from "./client.js";
|
|
3
|
-
import { buildNookDeployManifest, buildNookTemplateManifest } from "./deploy.js";
|
|
4
|
-
import { parseNookDestroyInputs, parseNookSetupInputs, runNookDestroy, runNookSetup, } from "./setup.js";
|
|
5
|
-
export class NookCliError extends Error {
|
|
6
|
-
constructor(message) {
|
|
7
|
-
super(message);
|
|
8
|
-
this.name = "NookCliError";
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
function parseValue(arg, argv, index) {
|
|
12
|
-
const eqIndex = arg.indexOf("=");
|
|
13
|
-
if (eqIndex !== -1) {
|
|
14
|
-
const value = arg.slice(eqIndex + 1);
|
|
15
|
-
if (!value)
|
|
16
|
-
throw new NookCliError(`missing value for ${arg.slice(0, eqIndex)}`);
|
|
17
|
-
return { value, nextIndex: index };
|
|
18
|
-
}
|
|
19
|
-
const value = argv[index + 1];
|
|
20
|
-
if (!value || value.startsWith("-")) {
|
|
21
|
-
throw new NookCliError(`missing value for ${arg}`);
|
|
22
|
-
}
|
|
23
|
-
return { value, nextIndex: index + 1 };
|
|
24
|
-
}
|
|
25
|
-
export function printNookHelp(log = console.log) {
|
|
26
|
-
log([
|
|
27
|
-
"usage:",
|
|
28
|
-
" tau nook setup --domain <domain> --zone-name <zone> --access-team-domain <url> --access-aud <aud>",
|
|
29
|
-
" tau nook destroy --domain <domain> --access-client-id <id> --access-client-secret <secret> --yes",
|
|
30
|
-
" tau nook skill",
|
|
31
|
-
" tau nook deploy <dir> --site <slug> [--public]",
|
|
32
|
-
" tau nook copy <site> <dir>",
|
|
33
|
-
" tau nook list",
|
|
34
|
-
" tau nook delete <site>",
|
|
35
|
-
" tau nook template list",
|
|
36
|
-
" tau nook template copy <name> <dir>",
|
|
37
|
-
" tau nook template save <name> <dir>",
|
|
38
|
-
" tau nook template delete <name>",
|
|
39
|
-
" tau nook kv get <site> <key>",
|
|
40
|
-
" tau nook kv put <site> <key> <json>",
|
|
41
|
-
" tau nook kv delete <site> <key>",
|
|
42
|
-
" tau nook kv list <site> [--prefix <prefix>]",
|
|
43
|
-
].join("\n"));
|
|
44
|
-
}
|
|
45
|
-
export async function runNookCommand(argv, options) {
|
|
46
|
-
const stdout = options.stdout ?? console.log;
|
|
47
|
-
const [subcommand, ...args] = argv;
|
|
48
|
-
if (!subcommand || subcommand === "--help" || subcommand === "-h") {
|
|
49
|
-
printNookHelp(stdout);
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
try {
|
|
53
|
-
if (subcommand === "setup") {
|
|
54
|
-
const parsed = parseNookSetupInputs({ argv: args, env: options.env });
|
|
55
|
-
if (parsed.remaining.length > 0)
|
|
56
|
-
throw new Error(`unknown option: ${parsed.remaining[0]}`);
|
|
57
|
-
await runNookSetup({
|
|
58
|
-
domain: parsed.domain,
|
|
59
|
-
zoneName: parsed.zoneName,
|
|
60
|
-
accessTeamDomain: parsed.accessTeamDomain,
|
|
61
|
-
accessAud: parsed.accessAud,
|
|
62
|
-
env: options.env,
|
|
63
|
-
stdout,
|
|
64
|
-
});
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
if (subcommand === "destroy") {
|
|
68
|
-
const parsed = parseNookDestroyInputs({ argv: args, env: options.env });
|
|
69
|
-
if (parsed.remaining.length > 0)
|
|
70
|
-
throw new Error(`unknown option: ${parsed.remaining[0]}`);
|
|
71
|
-
await runNookDestroy({
|
|
72
|
-
domain: parsed.domain,
|
|
73
|
-
accessClientId: parsed.accessClientId,
|
|
74
|
-
accessClientSecret: parsed.accessClientSecret,
|
|
75
|
-
yes: parsed.yes,
|
|
76
|
-
env: options.env,
|
|
77
|
-
stdout,
|
|
78
|
-
fetchImpl: options.fetchImpl,
|
|
79
|
-
});
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
const client = createNookClientFromConfig({
|
|
83
|
-
config: options.config,
|
|
84
|
-
env: options.env,
|
|
85
|
-
fetchImpl: options.fetchImpl,
|
|
86
|
-
});
|
|
87
|
-
if (subcommand === "skill") {
|
|
88
|
-
stdout(await client.readSkill());
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
if (subcommand === "list") {
|
|
92
|
-
const sites = await client.listSites();
|
|
93
|
-
if (sites.length === 0) {
|
|
94
|
-
stdout("no nook sites");
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
for (const site of sites) {
|
|
98
|
-
const visibility = site.visibility ? ` ${site.visibility}` : "";
|
|
99
|
-
const latest = site.latestDeploymentId ? ` ${site.latestDeploymentId}` : "";
|
|
100
|
-
stdout(`${site.slug} ${site.url}${visibility}${latest}`.trim());
|
|
101
|
-
}
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
if (subcommand === "delete") {
|
|
105
|
-
const site = args[0];
|
|
106
|
-
if (!site || args.length !== 1)
|
|
107
|
-
throw new Error("usage: tau nook delete <site>");
|
|
108
|
-
await client.deleteSite(site);
|
|
109
|
-
stdout(`deleted ${site}`);
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
if (subcommand === "copy") {
|
|
113
|
-
const [site, directory] = args;
|
|
114
|
-
if (!site || !directory || args.length !== 2) {
|
|
115
|
-
throw new Error("usage: tau nook copy <site> <dir>");
|
|
116
|
-
}
|
|
117
|
-
const result = await client.copySiteToDirectory(site, resolve(options.cwd ?? process.cwd(), directory));
|
|
118
|
-
stdout(`copied site ${result.site} to ${directory}`);
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
if (subcommand === "deploy") {
|
|
122
|
-
let site;
|
|
123
|
-
let isPublic = false;
|
|
124
|
-
const positional = [];
|
|
125
|
-
for (let i = 0; i < args.length; i += 1) {
|
|
126
|
-
const arg = args[i];
|
|
127
|
-
if (arg === "--public") {
|
|
128
|
-
isPublic = true;
|
|
129
|
-
continue;
|
|
130
|
-
}
|
|
131
|
-
if (arg === "--site" || arg.startsWith("--site=")) {
|
|
132
|
-
const parsed = parseValue(arg, args, i);
|
|
133
|
-
site = parsed.value;
|
|
134
|
-
i = parsed.nextIndex;
|
|
135
|
-
continue;
|
|
136
|
-
}
|
|
137
|
-
if (arg.startsWith("-"))
|
|
138
|
-
throw new Error(`unknown option: ${arg}`);
|
|
139
|
-
positional.push(arg);
|
|
140
|
-
}
|
|
141
|
-
if (positional.length !== 1 || !site) {
|
|
142
|
-
throw new Error("usage: tau nook deploy <dir> --site <slug> [--public]");
|
|
143
|
-
}
|
|
144
|
-
const files = buildNookDeployManifest(resolve(options.cwd ?? process.cwd(), positional[0]));
|
|
145
|
-
const result = await client.deploySite({
|
|
146
|
-
site,
|
|
147
|
-
files,
|
|
148
|
-
visibility: isPublic ? "public" : "private",
|
|
149
|
-
});
|
|
150
|
-
stdout(`Deployed ${result.site} to ${result.url}`);
|
|
151
|
-
return;
|
|
152
|
-
}
|
|
153
|
-
if (subcommand === "template") {
|
|
154
|
-
await runTemplateCommand(args, client, stdout, options.cwd ?? process.cwd());
|
|
155
|
-
return;
|
|
156
|
-
}
|
|
157
|
-
if (subcommand === "kv") {
|
|
158
|
-
await runKvCommand(args, client, stdout);
|
|
159
|
-
return;
|
|
160
|
-
}
|
|
161
|
-
throw new Error(`unknown nook subcommand '${subcommand}'`);
|
|
162
|
-
}
|
|
163
|
-
catch (error) {
|
|
164
|
-
throw new NookCliError(error instanceof Error ? error.message : String(error));
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
async function runTemplateCommand(args, client, stdout, cwd) {
|
|
168
|
-
const [operation, name, directory] = args;
|
|
169
|
-
if (!operation)
|
|
170
|
-
throw new Error("missing template operation");
|
|
171
|
-
if (operation === "list") {
|
|
172
|
-
if (args.length !== 1)
|
|
173
|
-
throw new Error("usage: tau nook template list");
|
|
174
|
-
const templates = await client.listTemplates();
|
|
175
|
-
if (templates.length === 0) {
|
|
176
|
-
stdout("no nook templates");
|
|
177
|
-
return;
|
|
178
|
-
}
|
|
179
|
-
for (const template of templates) {
|
|
180
|
-
stdout(`${template.name} ${template.fileCount} files ${template.byteCount}B ${template.updatedAt}`);
|
|
181
|
-
}
|
|
182
|
-
return;
|
|
183
|
-
}
|
|
184
|
-
if (operation === "copy") {
|
|
185
|
-
if (!name || !directory || args.length !== 3) {
|
|
186
|
-
throw new Error("usage: tau nook template copy <name> <dir>");
|
|
187
|
-
}
|
|
188
|
-
const result = await client.copyTemplateToDirectory(name, resolve(cwd, directory));
|
|
189
|
-
stdout(`copied template ${result.name} to ${directory}`);
|
|
190
|
-
return;
|
|
191
|
-
}
|
|
192
|
-
if (operation === "save") {
|
|
193
|
-
if (!name || !directory || args.length !== 3) {
|
|
194
|
-
throw new Error("usage: tau nook template save <name> <dir>");
|
|
195
|
-
}
|
|
196
|
-
const files = buildNookTemplateManifest(resolve(cwd, directory));
|
|
197
|
-
const result = await client.saveTemplate({ name, files });
|
|
198
|
-
stdout(`saved template ${result.name} (${result.fileCount} files)`);
|
|
199
|
-
return;
|
|
200
|
-
}
|
|
201
|
-
if (operation === "delete") {
|
|
202
|
-
if (!name || args.length !== 2)
|
|
203
|
-
throw new Error("usage: tau nook template delete <name>");
|
|
204
|
-
await client.deleteTemplate(name);
|
|
205
|
-
stdout(`deleted template ${name}`);
|
|
206
|
-
return;
|
|
207
|
-
}
|
|
208
|
-
throw new Error(`unknown template operation '${operation}'`);
|
|
209
|
-
}
|
|
210
|
-
async function runKvCommand(args, client, stdout) {
|
|
211
|
-
const [operation, site, keyOrFlag, value] = args;
|
|
212
|
-
if (!operation)
|
|
213
|
-
throw new Error("missing kv operation");
|
|
214
|
-
if (operation === "get") {
|
|
215
|
-
if (!site || !keyOrFlag || args.length !== 3)
|
|
216
|
-
throw new Error("usage: tau nook kv get <site> <key>");
|
|
217
|
-
stdout(JSON.stringify(await client.getKv(site, keyOrFlag), null, 2));
|
|
218
|
-
return;
|
|
219
|
-
}
|
|
220
|
-
if (operation === "put") {
|
|
221
|
-
if (!site || !keyOrFlag || value === undefined || args.length !== 4) {
|
|
222
|
-
throw new Error("usage: tau nook kv put <site> <key> <json>");
|
|
223
|
-
}
|
|
224
|
-
await client.putKv(site, keyOrFlag, JSON.parse(value));
|
|
225
|
-
stdout(`stored ${site}/${keyOrFlag}`);
|
|
226
|
-
return;
|
|
227
|
-
}
|
|
228
|
-
if (operation === "delete") {
|
|
229
|
-
if (!site || !keyOrFlag || args.length !== 3) {
|
|
230
|
-
throw new Error("usage: tau nook kv delete <site> <key>");
|
|
231
|
-
}
|
|
232
|
-
await client.deleteKv(site, keyOrFlag);
|
|
233
|
-
stdout(`deleted ${site}/${keyOrFlag}`);
|
|
234
|
-
return;
|
|
235
|
-
}
|
|
236
|
-
if (operation === "list") {
|
|
237
|
-
if (!site)
|
|
238
|
-
throw new Error("usage: tau nook kv list <site> [--prefix <prefix>]");
|
|
239
|
-
let prefix;
|
|
240
|
-
for (let i = 2; i < args.length; i += 1) {
|
|
241
|
-
const arg = args[i];
|
|
242
|
-
if (arg === "--prefix" || arg.startsWith("--prefix=")) {
|
|
243
|
-
const parsed = parseValue(arg, args, i);
|
|
244
|
-
prefix = parsed.value;
|
|
245
|
-
i = parsed.nextIndex;
|
|
246
|
-
continue;
|
|
247
|
-
}
|
|
248
|
-
throw new Error(`unknown option: ${arg}`);
|
|
249
|
-
}
|
|
250
|
-
const result = await client.listKv(site, prefix);
|
|
251
|
-
for (const entry of result.keys) {
|
|
252
|
-
stdout(`${entry.key} ${entry.sizeBytes}B ${entry.updatedAt}`);
|
|
253
|
-
}
|
|
254
|
-
return;
|
|
255
|
-
}
|
|
256
|
-
throw new Error(`unknown kv operation '${operation}'`);
|
|
257
|
-
}
|
|
258
|
-
//# sourceMappingURL=cli.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/core/nook/cli.ts"],"names":[],"mappings":"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"}
|