@nodetool-ai/cli-apps 0.0.0-stage → 0.8.9-bootstrap.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/README.md +12 -2
- package/dist/.nodetool-build-stamp +1 -0
- package/dist/app-build/bundle.d.ts +15 -0
- package/dist/app-build/bundle.d.ts.map +1 -0
- package/dist/app-build/bundle.js +44 -0
- package/dist/app-build/bundle.js.map +1 -0
- package/dist/app-build/watch.d.ts +13 -0
- package/dist/app-build/watch.d.ts.map +1 -0
- package/dist/app-build/watch.js +25 -0
- package/dist/app-build/watch.js.map +1 -0
- package/dist/app-debug/app-target.d.ts +14 -0
- package/dist/app-debug/app-target.d.ts.map +1 -0
- package/dist/app-debug/app-target.js +120 -0
- package/dist/app-debug/app-target.js.map +1 -0
- package/dist/app-debug/harness.d.ts +29 -0
- package/dist/app-debug/harness.d.ts.map +1 -0
- package/dist/app-debug/harness.js +115 -0
- package/dist/app-debug/harness.js.map +1 -0
- package/dist/app-debug/index.d.ts +12 -0
- package/dist/app-debug/index.d.ts.map +1 -0
- package/dist/app-debug/index.js +9 -0
- package/dist/app-debug/index.js.map +1 -0
- package/dist/commands/app.d.ts +3 -0
- package/dist/commands/app.d.ts.map +1 -0
- package/dist/commands/app.js +405 -0
- package/dist/commands/app.js.map +1 -0
- package/dist/commands/apps.d.ts +15 -0
- package/dist/commands/apps.d.ts.map +1 -0
- package/dist/commands/apps.js +274 -0
- package/dist/commands/apps.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/nodetool.d.ts +3 -0
- package/dist/nodetool.d.ts.map +1 -0
- package/dist/nodetool.js +4 -0
- package/dist/nodetool.js.map +1 -0
- package/package.json +69 -4
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `nodetool apps` — application (mini app) bundles from the local database.
|
|
3
|
+
*
|
|
4
|
+
* An ApplicationBundle is one JSON file carrying an app together with the full
|
|
5
|
+
* graph of every workflow its operations bind, so an app ships as a single
|
|
6
|
+
* artifact. Inside the file an operation's `workflowId` is a bundle-local key;
|
|
7
|
+
* importing creates the workflows and rewrites the keys to the new ids.
|
|
8
|
+
*
|
|
9
|
+
* These commands talk to the local DB directly, like `workflows export-bundle`
|
|
10
|
+
* — no running server. The bundle logic itself is pure and lives in
|
|
11
|
+
* `@nodetool-ai/app-runtime`; only the row writing is here.
|
|
12
|
+
*/
|
|
13
|
+
import { applyBundle, bundleFromApplication, operationTarget, parseApplicationBundle, serializeApplicationBundle } from "@nodetool-ai/app-runtime";
|
|
14
|
+
import { Application, Workflow, createStableUuid, createTimeOrderedUuid, releasedApplicationRelease, createJsScriptResolver } from "@nodetool-ai/models";
|
|
15
|
+
import { checkoutPackageAssetsDir } from "@nodetool-ai/cli-common/package-assets";
|
|
16
|
+
import { asJson, printTable } from "@nodetool-ai/pack-manager/commands/output";
|
|
17
|
+
import { setupLocalDb, LOCAL_USER_ID } from "@nodetool-ai/cli-local/local-db";
|
|
18
|
+
function fail(e) {
|
|
19
|
+
console.error(String(e instanceof Error ? e.message : e));
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
async function loadApp(id) {
|
|
23
|
+
const app = await Application.findById(id);
|
|
24
|
+
if (!app || app.user_id !== LOCAL_USER_ID) {
|
|
25
|
+
throw new Error(`Application not found: ${id}`);
|
|
26
|
+
}
|
|
27
|
+
return app;
|
|
28
|
+
}
|
|
29
|
+
/** Keep a bundle's default filename from escaping the working directory. */
|
|
30
|
+
function safeFileName(name) {
|
|
31
|
+
return name.replace(/[^A-Za-z0-9._-]+/g, "_").replace(/^[._]+/, "") || "app";
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Bundle an app with the graph of every workflow its operations bind: the
|
|
35
|
+
* draft and the current graphs, or the released snapshot and the graphs it
|
|
36
|
+
* pinned.
|
|
37
|
+
*/
|
|
38
|
+
async function collectAppBundle(app, released) {
|
|
39
|
+
const release = released ? await releasedApplicationRelease(app.id) : null;
|
|
40
|
+
if (released && !release) {
|
|
41
|
+
throw new Error(`Application ${app.id} has no released version`);
|
|
42
|
+
}
|
|
43
|
+
const document = release ? release.document : app.toDocument();
|
|
44
|
+
const pinned = new Map((release?.workflows ?? []).map((entry) => [entry.workflowId, entry]));
|
|
45
|
+
const sources = [];
|
|
46
|
+
const scripts = [];
|
|
47
|
+
const seenScripts = new Set();
|
|
48
|
+
const seen = new Set();
|
|
49
|
+
for (const operation of document.operations) {
|
|
50
|
+
const target = operationTarget(operation);
|
|
51
|
+
if (target.kind === "script") {
|
|
52
|
+
if (seenScripts.has(target.scriptId))
|
|
53
|
+
continue;
|
|
54
|
+
seenScripts.add(target.scriptId);
|
|
55
|
+
const script = await createJsScriptResolver().resolve({ id: target.scriptId, version: target.scriptVersion }, LOCAL_USER_ID);
|
|
56
|
+
if (script)
|
|
57
|
+
scripts.push({ scriptId: target.scriptId, name: script.name, document: script.document, sourceId: target.scriptId, version: target.scriptVersion });
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
if (seen.has(operation.workflowId))
|
|
61
|
+
continue;
|
|
62
|
+
seen.add(operation.workflowId);
|
|
63
|
+
const pin = pinned.get(operation.workflowId);
|
|
64
|
+
const workflow = await Workflow.find(LOCAL_USER_ID, operation.workflowId);
|
|
65
|
+
const graph = pin?.graph ?? workflow?.getGraph();
|
|
66
|
+
if (!graph) {
|
|
67
|
+
console.error(` warning: operation '${operation.id}' binds missing workflow ` +
|
|
68
|
+
`${operation.workflowId} (left unresolved in the bundle)`);
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
sources.push({
|
|
72
|
+
workflowId: operation.workflowId,
|
|
73
|
+
name: workflow?.name ?? operation.name,
|
|
74
|
+
description: workflow?.description ?? "",
|
|
75
|
+
graph,
|
|
76
|
+
version: pin?.version ?? null,
|
|
77
|
+
graphHash: pin?.graphHash ?? null
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
return bundleFromApplication({ name: app.name, description: app.description, document }, sources, scripts);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Where `package://<package>/<path>` sample files live: the configured
|
|
84
|
+
* directory, then `nodetool/assets` of the installed base-nodes package.
|
|
85
|
+
*/
|
|
86
|
+
async function packageAssetRoots() {
|
|
87
|
+
const roots = [];
|
|
88
|
+
const configured = process.env["NODETOOL_PACKAGE_ASSETS_DIR"];
|
|
89
|
+
if (configured)
|
|
90
|
+
roots.push(configured);
|
|
91
|
+
const packageAssets = checkoutPackageAssetsDir();
|
|
92
|
+
if (packageAssets) {
|
|
93
|
+
roots.push(packageAssets);
|
|
94
|
+
}
|
|
95
|
+
return roots;
|
|
96
|
+
}
|
|
97
|
+
export function registerAppsCommands(program) {
|
|
98
|
+
const apps = program
|
|
99
|
+
.command("apps")
|
|
100
|
+
.description("Mini app (application) management");
|
|
101
|
+
apps
|
|
102
|
+
.command("list")
|
|
103
|
+
.description("List applications in the local database")
|
|
104
|
+
.option("--json", "Output as JSON")
|
|
105
|
+
.action(async (opts) => {
|
|
106
|
+
try {
|
|
107
|
+
await setupLocalDb();
|
|
108
|
+
const rows = (await Application.listByUser(LOCAL_USER_ID)).map((a) => ({
|
|
109
|
+
id: a.id,
|
|
110
|
+
name: a.name,
|
|
111
|
+
operations: a.toDocument().operations.length,
|
|
112
|
+
updated_at: a.updated_at
|
|
113
|
+
}));
|
|
114
|
+
if (opts.json) {
|
|
115
|
+
asJson(rows);
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
printTable(rows, ["id", "name", "operations", "updated_at"]);
|
|
119
|
+
}
|
|
120
|
+
catch (e) {
|
|
121
|
+
fail(e);
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
apps
|
|
125
|
+
.command("export-bundle <application_id>")
|
|
126
|
+
.description("Export an application as a portable bundle: the app document plus the " +
|
|
127
|
+
"full graph of every workflow it binds, in a single JSON file")
|
|
128
|
+
.option("-o, --output <file>", "Output path (default: <name>.app.json)")
|
|
129
|
+
.option("--released", "Export the released snapshot and the graphs it pinned, not the draft")
|
|
130
|
+
.action(async (id, opts) => {
|
|
131
|
+
try {
|
|
132
|
+
const { writeFile } = await import("node:fs/promises");
|
|
133
|
+
await setupLocalDb();
|
|
134
|
+
const app = await loadApp(id);
|
|
135
|
+
const bundle = await collectAppBundle(app, opts.released === true);
|
|
136
|
+
const outPath = opts.output ?? `${safeFileName(app.name)}.app.json`;
|
|
137
|
+
await writeFile(outPath, serializeApplicationBundle(bundle), "utf8");
|
|
138
|
+
console.error(` bundled ${bundle.workflows.length} workflow(s) with app '${app.name}'`);
|
|
139
|
+
console.log(outPath);
|
|
140
|
+
}
|
|
141
|
+
catch (e) {
|
|
142
|
+
fail(e);
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
apps
|
|
146
|
+
.command("export-project <application_id_or_bundle_file>")
|
|
147
|
+
.description("Export an application as a standalone JavaScript project: a Vite UI " +
|
|
148
|
+
"and a local Node server that runs its workflows, with no NodeTool " +
|
|
149
|
+
"server. Takes an application id or an exported .app.json bundle")
|
|
150
|
+
.option("-o, --output <dir>", "Output folder (default: ./<app-name>)")
|
|
151
|
+
.option("--released", "Export the released snapshot and the graphs it pinned, not the draft")
|
|
152
|
+
.option("--force", "Write into an output folder that is not empty")
|
|
153
|
+
.action(async (source, opts) => {
|
|
154
|
+
try {
|
|
155
|
+
const { mkdir, readFile, readdir, writeFile } = await import("node:fs/promises");
|
|
156
|
+
const { existsSync } = await import("node:fs");
|
|
157
|
+
const { dirname, join, relative, resolve } = await import("node:path");
|
|
158
|
+
const { buildStandaloneProject, packageAssetUris, readPackageAssets, requiredSecretNames } = await import("@nodetool-ai/app-export");
|
|
159
|
+
const { getProviderSecretKey, listRegisteredProviderIds } = await import("@nodetool-ai/runtime");
|
|
160
|
+
const { buildFullRegistry } = await import("@nodetool-ai/cli-execution/node-registry");
|
|
161
|
+
let bundle;
|
|
162
|
+
if (existsSync(source)) {
|
|
163
|
+
bundle = parseApplicationBundle(JSON.parse(await readFile(source, "utf8")));
|
|
164
|
+
if (!bundle) {
|
|
165
|
+
throw new Error(`Not a valid application bundle: ${source}`);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
await setupLocalDb();
|
|
170
|
+
bundle = await collectAppBundle(await loadApp(source), opts.released === true);
|
|
171
|
+
}
|
|
172
|
+
const secrets = requiredSecretNames(bundle, await buildFullRegistry(), getProviderSecretKey);
|
|
173
|
+
const providerSecrets = listRegisteredProviderIds()
|
|
174
|
+
.map(getProviderSecretKey)
|
|
175
|
+
.filter((key) => Boolean(key));
|
|
176
|
+
const project = buildStandaloneProject(bundle, {
|
|
177
|
+
secrets,
|
|
178
|
+
providerSecrets,
|
|
179
|
+
packageAssets: readPackageAssets(packageAssetUris(bundle), await packageAssetRoots())
|
|
180
|
+
});
|
|
181
|
+
const outDir = resolve(opts.output ?? project.name);
|
|
182
|
+
if (existsSync(outDir) &&
|
|
183
|
+
(await readdir(outDir)).length > 0 &&
|
|
184
|
+
!opts.force) {
|
|
185
|
+
throw new Error(`${outDir} is not empty (pass --force to write into it)`);
|
|
186
|
+
}
|
|
187
|
+
for (const file of project.files) {
|
|
188
|
+
const target = join(outDir, file.path);
|
|
189
|
+
await mkdir(dirname(target), { recursive: true });
|
|
190
|
+
await writeFile(target, file.content);
|
|
191
|
+
}
|
|
192
|
+
for (const warning of project.warnings) {
|
|
193
|
+
console.error(` warning: ${warning}`);
|
|
194
|
+
}
|
|
195
|
+
const shown = relative(process.cwd(), outDir) || ".";
|
|
196
|
+
console.error(` wrote ${project.files.length} files with ` +
|
|
197
|
+
`${bundle.workflows.length} workflow(s) of '${bundle.name}'\n` +
|
|
198
|
+
` next: cd ${shown} && npm install && cp .env.example .env && npm run dev`);
|
|
199
|
+
console.log(outDir);
|
|
200
|
+
}
|
|
201
|
+
catch (e) {
|
|
202
|
+
fail(e);
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
apps
|
|
206
|
+
.command("import-bundle <bundle_file>")
|
|
207
|
+
.description("Import an application bundle into the local library: create its " +
|
|
208
|
+
"workflows and the app, with operations rewired to the new ids")
|
|
209
|
+
.option("--json", "Output the created application as JSON")
|
|
210
|
+
.option("--project <id>", "Project to create the app in", "default")
|
|
211
|
+
.action(async (bundleFile, opts) => {
|
|
212
|
+
try {
|
|
213
|
+
const { readFile } = await import("node:fs/promises");
|
|
214
|
+
await setupLocalDb();
|
|
215
|
+
const bundle = parseApplicationBundle(JSON.parse(await readFile(bundleFile, "utf8")));
|
|
216
|
+
if (!bundle) {
|
|
217
|
+
throw new Error(`Not a valid application bundle: ${bundleFile}`);
|
|
218
|
+
}
|
|
219
|
+
// A workflow carrying a `sourceId` gets a row id derived from it, so
|
|
220
|
+
// importing two bundles that ship the same workflow — two example
|
|
221
|
+
// apps binding one template — reuses the row instead of duplicating
|
|
222
|
+
// it. Without a `sourceId` every import creates fresh workflows.
|
|
223
|
+
const result = applyBundle(bundle, {
|
|
224
|
+
newWorkflowId: (workflow) => workflow.sourceId
|
|
225
|
+
? createStableUuid(LOCAL_USER_ID, workflow.sourceId)
|
|
226
|
+
: createTimeOrderedUuid()
|
|
227
|
+
});
|
|
228
|
+
// Workflows first, so the app never references a row that does not
|
|
229
|
+
// exist yet.
|
|
230
|
+
let reused = 0;
|
|
231
|
+
for (const workflow of result.workflows) {
|
|
232
|
+
if (workflow.sourceId &&
|
|
233
|
+
(await Workflow.find(LOCAL_USER_ID, workflow.id))) {
|
|
234
|
+
reused += 1;
|
|
235
|
+
continue;
|
|
236
|
+
}
|
|
237
|
+
await Workflow.create({
|
|
238
|
+
id: workflow.id,
|
|
239
|
+
user_id: LOCAL_USER_ID,
|
|
240
|
+
name: workflow.name,
|
|
241
|
+
description: workflow.description ?? "",
|
|
242
|
+
access: "private",
|
|
243
|
+
graph: workflow.graph
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
const app = await Application.create({
|
|
247
|
+
user_id: LOCAL_USER_ID,
|
|
248
|
+
project_id: opts.project ?? "default",
|
|
249
|
+
name: result.app.name,
|
|
250
|
+
description: result.app.description,
|
|
251
|
+
document: JSON.stringify(result.app.document)
|
|
252
|
+
});
|
|
253
|
+
console.error(` imported app '${app.name}' with ${result.workflows.length} workflow(s)` +
|
|
254
|
+
(reused > 0 ? ` (${reused} already present, reused)` : ""));
|
|
255
|
+
if (opts.json) {
|
|
256
|
+
asJson({
|
|
257
|
+
id: app.id,
|
|
258
|
+
name: app.name,
|
|
259
|
+
workflows: result.workflows.map((w) => ({
|
|
260
|
+
id: w.id,
|
|
261
|
+
name: w.name
|
|
262
|
+
}))
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
console.log(app.id);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
catch (e) {
|
|
270
|
+
fail(e);
|
|
271
|
+
}
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
//# sourceMappingURL=apps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apps.js","sourceRoot":"","sources":["../../src/commands/apps.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** Run the independently installed cli-apps command group. */
|
|
2
|
+
export declare function run(argv?: readonly string[]): Promise<void>;
|
|
3
|
+
export declare const descriptor: {
|
|
4
|
+
readonly id: "cli-apps";
|
|
5
|
+
readonly apiVersion: 1;
|
|
6
|
+
readonly requires: readonly [];
|
|
7
|
+
readonly capabilities: readonly ["cli:apps"];
|
|
8
|
+
};
|
|
9
|
+
export declare const feature: {
|
|
10
|
+
descriptor: {
|
|
11
|
+
readonly id: "cli-apps";
|
|
12
|
+
readonly apiVersion: 1;
|
|
13
|
+
readonly requires: readonly [];
|
|
14
|
+
readonly capabilities: readonly ["cli:apps"];
|
|
15
|
+
};
|
|
16
|
+
run: typeof run;
|
|
17
|
+
};
|
|
18
|
+
export default feature;
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,8DAA8D;AAC9D,wBAAsB,GAAG,CAAC,IAAI,GAAE,SAAS,MAAM,EAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAMxF;AAED,eAAO,MAAM,UAAU;aAAK,EAAE,EAAE,UAAU;aAAE,UAAU,EAAE,CAAC;aAAE,QAAQ;aAAM,YAAY,YAAG,UAAU;CAAY,CAAC;AAC/G,eAAO,MAAM,OAAO;;qBADY,UAAU;6BAAc,CAAC;;yCAA+B,UAAU;;;CACxD,CAAC;eAC5B,OAAO"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { initializeCliRuntime } from "@nodetool-ai/cli-common/runtime-env";
|
|
3
|
+
import { registerAppCommands } from "./commands/app.js";
|
|
4
|
+
import { registerAppsCommands } from "./commands/apps.js";
|
|
5
|
+
/** Run the independently installed cli-apps command group. */
|
|
6
|
+
export async function run(argv = process.argv.slice(2)) {
|
|
7
|
+
initializeCliRuntime(import.meta.url);
|
|
8
|
+
const program = new Command("nodetool");
|
|
9
|
+
registerAppCommands(program);
|
|
10
|
+
registerAppsCommands(program);
|
|
11
|
+
await program.parseAsync([...argv], { from: "user" });
|
|
12
|
+
}
|
|
13
|
+
export const descriptor = { id: "cli-apps", apiVersion: 1, requires: [], capabilities: ["cli:apps"] };
|
|
14
|
+
export const feature = { descriptor, run };
|
|
15
|
+
export default feature;
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,8DAA8D;AAC9D,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAI,GAAsB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACvE,oBAAoB,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IACxC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,UAAU,CAAC,EAAW,CAAC;AAC/G,MAAM,CAAC,MAAM,OAAO,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;AAC3C,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodetool.d.ts","sourceRoot":"","sources":["../src/nodetool.ts"],"names":[],"mappings":""}
|
package/dist/nodetool.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodetool.js","sourceRoot":"","sources":["../src/nodetool.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,71 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nodetool-ai/cli-apps",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.8.9-bootstrap.0",
|
|
4
|
+
"description": "Independent apps command feature for NodeTool",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"engines": {
|
|
7
|
+
"node": ">=22.0.0"
|
|
8
|
+
},
|
|
9
|
+
"main": "dist/index.js",
|
|
10
|
+
"types": "dist/index.d.ts",
|
|
11
|
+
"bin": {
|
|
12
|
+
"nodetool-apps": "dist/nodetool.js"
|
|
13
|
+
},
|
|
14
|
+
"exports": {
|
|
15
|
+
".": {
|
|
16
|
+
"nodetool-dev": "./src/index.ts",
|
|
17
|
+
"types": "./dist/index.d.ts",
|
|
18
|
+
"import": "./dist/index.js",
|
|
19
|
+
"default": "./dist/index.js"
|
|
20
|
+
},
|
|
21
|
+
"./*": {
|
|
22
|
+
"nodetool-dev": "./src/*.ts",
|
|
23
|
+
"types": "./dist/*.d.ts",
|
|
24
|
+
"import": "./dist/*.js",
|
|
25
|
+
"default": "./dist/*.js"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"scripts": {
|
|
29
|
+
"build": "node ../../scripts/build-typescript-workspace.mjs",
|
|
30
|
+
"test": "node ../../scripts/run-vitest.mjs run",
|
|
31
|
+
"lint": "node ../../scripts/run-tsc.mjs --noEmit"
|
|
32
|
+
},
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"@nodetool-ai/agents": "0.8.9-bootstrap.0",
|
|
35
|
+
"@nodetool-ai/app-export": "0.8.9-bootstrap.0",
|
|
36
|
+
"@nodetool-ai/app-runtime": "0.8.9-bootstrap.0",
|
|
37
|
+
"@nodetool-ai/cli-common": "0.8.9-bootstrap.0",
|
|
38
|
+
"@nodetool-ai/cli-execution": "0.8.9-bootstrap.0",
|
|
39
|
+
"@nodetool-ai/cli-local": "0.8.9-bootstrap.0",
|
|
40
|
+
"@nodetool-ai/cli-providers": "0.8.9-bootstrap.0",
|
|
41
|
+
"@nodetool-ai/config": "0.8.9-bootstrap.0",
|
|
42
|
+
"@nodetool-ai/execution": "0.8.9-bootstrap.0",
|
|
43
|
+
"@nodetool-ai/models": "0.8.9-bootstrap.0",
|
|
44
|
+
"@nodetool-ai/node-sdk": "0.8.9-bootstrap.0",
|
|
45
|
+
"@nodetool-ai/pack-manager": "0.8.9-bootstrap.0",
|
|
46
|
+
"@nodetool-ai/protocol": "0.8.9-bootstrap.0",
|
|
47
|
+
"@nodetool-ai/runtime": "0.8.9-bootstrap.0",
|
|
48
|
+
"@nodetool-ai/security": "0.8.9-bootstrap.0",
|
|
49
|
+
"@nodetool-ai/storage": "0.8.9-bootstrap.0",
|
|
50
|
+
"commander": "^12.1.0"
|
|
51
|
+
},
|
|
52
|
+
"devDependencies": {
|
|
53
|
+
"@types/node": "^22.0.0",
|
|
54
|
+
"tsx": "^4.0.0",
|
|
55
|
+
"typescript": "npm:@typescript/typescript6@6.0.2",
|
|
56
|
+
"vitest": "^5.0.1"
|
|
57
|
+
},
|
|
58
|
+
"license": "MIT",
|
|
59
|
+
"repository": {
|
|
60
|
+
"type": "git",
|
|
61
|
+
"url": "https://github.com/nodetool-ai/nodetool.git",
|
|
62
|
+
"directory": "packages/cli-apps"
|
|
63
|
+
},
|
|
64
|
+
"publishConfig": {
|
|
65
|
+
"access": "public"
|
|
66
|
+
},
|
|
67
|
+
"files": [
|
|
68
|
+
"dist",
|
|
69
|
+
"README.md"
|
|
70
|
+
]
|
|
71
|
+
}
|