@nylorun/create-agent 0.6.0-beta → 0.7.0-beta

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/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.7.0-beta
4
+
5
+ ### Minor Changes
6
+
7
+ - c0e74f1: Migrate the creator to the SDK registry, separate local Runtime and connected executor. Replace the Hono app template with a text-and-tool starter and canonical session Studio.
8
+ - 41e613c: Ship the local SDK registry workflow with an independent SQLite Runtime, connected tool executor, authenticated Studio proxy, and a text-and-tool starter. Replace the legacy Hono starter and AG-UI transport. Require Node 24 and include the SDK in exact release compatibility pins.
9
+
10
+ Break the Harness execution import from `/engine` to `/run` and rename hosted execution APIs to durable execution APIs, including RunBinding, BoundRunOptions, and createRunState. Update all consumers without compatibility aliases; retain persisted checkpoint fields and version pins.
11
+
12
+ - 2898d02: Extract shared definitions and contracts into core and local orchestration into
13
+ CLI. Harness becomes execution-only; the SDK no longer installs the engine and
14
+ Runtime no longer depends on the SDK. Author applications through agents and
15
+ install cli for the unchanged nylorun commands. See the package architecture and
16
+ migration guide. Cloud installs published packages from npm independently.
17
+
18
+ ### Patch Changes
19
+
20
+ - Update the tested Harness, SDK, Runtime, and Studio compatibility combination.
21
+
3
22
  ## 0.6.0-beta
4
23
 
5
24
  ### Minor Changes
package/README.md CHANGED
@@ -4,56 +4,24 @@
4
4
  npm create @nylorun/agent@beta my-agent
5
5
  ```
6
6
 
7
- Creates a project that directly installs Harness and Runtime, with Studio as a development dependency. The project owns its Hono application in `src/index.ts`; Runtime supplies the agent router and lifecycle only.
7
+ Creates a Node 24 project with `@nylorun/agents`, `@nylorun/cli`, Zod, and optional Studio. The registry in `agents/index.ts` exports agent definitions. The starter includes one ordinary `lookup_order` tool; ask “Look up order demo-123”.
8
8
 
9
- Creation installs dependencies, runs Runtime’s provider/model configuration wizard in the same terminal, then starts the application and Studio. Pass `-- --no-studio` for a headless project or `-- --no-open` to start Studio without opening a browser. `nylorun configure` connects a provider without importing the agent graph.
10
-
11
- ## Configuration and recovery
12
-
13
- Use `-- --skip-config` to start development without configuring a provider:
14
-
15
- ```sh
16
- npm create @nylorun/agent@beta my-agent -- --skip-config
17
- ```
18
-
19
- Without interactive stdin and stdout, creation requires `--skip-config` and fails
20
- before creating files when it is missing. `--yes` only affects installation; it
21
- does not skip configuration. After skipping, run `npm run configure` inside the
22
- project in another terminal before sending a message. Development and Studio
23
- start immediately; provider configuration takes effect without restarting them.
24
-
25
- If configuration fails or is cancelled, development does not start and the
26
- created project is retained. Resume from its directory:
9
+ Creation installs dependencies, runs provider configuration, and starts development. Use `-- --no-studio` for headless development or `-- --no-open` to suppress browser opening. Noninteractive creation requires `-- --skip-config`; configure the retained project before running it. Without provider settings startup reports `nylorun configure`. `--yes` affects installation only.
27
10
 
28
11
  ```sh
29
12
  cd my-agent
30
13
  npm run configure
31
14
  npm run dev
15
+ npm run build
16
+ npm start
32
17
  ```
33
18
 
34
- If installation failed, run `npm install` first. Ctrl-C exits with status 130;
35
- SIGTERM exits with status 143. Cancelling setup also cancels pending authentication.
36
- Configuration saves the provider selection and credentials; it does not make a
37
- model request to validate connectivity.
38
-
39
- ## Maintaining examples
40
-
41
- `starter/` is the canonical project template. `compatibility.json` pins tested Harness, Runtime, and Studio versions. `examples.recipe.json` explicitly adds local package references and test dependencies. Persistence and media stay in the authored examples catalog.
42
-
43
- From the repository root:
44
-
45
- ```sh
46
- npm run examples:sync
47
- npm install --prefix examples
48
- npm run examples:check
49
- ```
50
-
51
- The renderer is shared by project creation, the isolated starter development runner, and examples synchronization. Sync owns shell files listed in `examples/.scaffold-manifest.json`, including `src/index.ts`, `package.json`, and TypeScript configuration; it never edits `agents/`, tests, other scripts, local model selection, credentials, or `.data/`. Edit generated configuration in the recipe or template. Conflicts with manual generated-file edits fail before any writes. CI checks the rendered shell and runs examples against the current stack. Package changes can require explicit adaptations in authored code; sync does not rewrite TypeScript imports.
19
+ Development restarts the Runtime and connected executor on source changes. Compiled start uses `dist/agents/index.js` and runs headless. Studio can attach separately. Local Runtime credentials and SQLite are stored in gitignored `.nylorun/`. Model selection remains Runtime configuration in `.env`; definitions have no model provider or `agent.run()`.
52
20
 
53
- `npm run dev:starter` from the repository root previews a fresh project using local packages, including unpublished changes. Each preview has its own retained directory and provider configuration.
21
+ `starter/` is the canonical template. `compatibility.json` pins core, harness, SDK, Runtime, Studio and CLI. The examples recipe adds local package dependencies. Run `npm run examples:sync` after template changes, then `npm install --prefix examples`. Sync preserves authored agents, tests, credentials, and local state; it rejects conflicting edits to generated files.
54
22
 
55
- Repository development: [contributing](../CONTRIBUTING.md). Package publication: [releasing](../RELEASING.md).
23
+ The default examples registry contains the release starter. Advanced examples remain outside that registry for later migration.
56
24
 
57
- Generated projects use `nylorun dev`, with `--no-studio` and `--no-open` options, rather than a copied supervisor script. They contain one `tsconfig.json`; `npm run check` checks without emitting and `npm run build` emits to `dist/`. Repository examples add their own build configuration to exclude tests. Provider/model selection and API keys use a conventional `.env` file (`MODEL_PROVIDER`, `MODEL`, `MODEL_PROVIDER_API_KEY`, and optional `MODEL_PROVIDER_BASE_URL`). The starter exports its Hono app; `nylorun start` supplies the production Node launcher. OAuth state is optional in `.nylorun/auth.json`. See [Runtime migration instructions](../runtime/README.md#upgrading-an-existing-starter).
25
+ After building, `node create-agent/scripts/smoke-starter.mjs` installs packed packages outside the workspace and checks the actual Studio/tool workflow, history, reload, source restart, compiled start, headless mode, and shutdown. It uses a deterministic fixture without live provider calls. Browser checks require Chrome (or `NYLORUN_CHROME_PATH`).
58
26
 
59
- To verify the packed starter after building all packages, run `node create-agent/scripts/smoke-starter.mjs` from the repository root. It installs candidate tarballs into a disposable project and checks type checking, production output, agent assets, development CORS, streaming, watch reload, and shutdown. Add `--serve` to keep the fixture Studio running for browser verification; stop it with Ctrl-C. It uses a deterministic model adapter and makes no provider calls.
27
+ See [RELEASING](../RELEASING.md) for the Changesets beta workflow. Nothing is published by the smoke check.
@@ -1,5 +1,8 @@
1
1
  {
2
- "harness": "0.13.0-beta",
3
- "studio": "0.5.0-beta",
4
- "runtime": "0.5.0-beta"
2
+ "harness": "0.15.0-beta",
3
+ "studio": "0.6.0-beta",
4
+ "runtime": "0.6.0-beta",
5
+ "agents": "0.2.0-beta",
6
+ "core": "0.1.1-beta",
7
+ "cli": "0.1.1-beta"
5
8
  }
@@ -1,5 +1,8 @@
1
1
  {
2
- "harness": "0.13.0-beta",
3
- "studio": "0.5.0-beta",
4
- "runtime": "0.5.0-beta"
2
+ "harness": "0.15.0-beta",
3
+ "studio": "0.6.0-beta",
4
+ "runtime": "0.6.0-beta",
5
+ "agents": "0.2.0-beta",
6
+ "core": "0.1.1-beta",
7
+ "cli": "0.1.1-beta"
5
8
  }
@@ -1,5 +1,8 @@
1
1
  export type Compatibility = Readonly<{
2
+ core: string;
3
+ cli: string;
2
4
  harness: string;
5
+ agents: string;
3
6
  studio: string;
4
7
  runtime: string;
5
8
  }>;
package/dist/scaffold.js CHANGED
@@ -22,7 +22,10 @@ export async function starterFiles(compatibility, studio) {
22
22
  await walk(absolute);
23
23
  else
24
24
  files[templatePath(relative(root, absolute))] = (await readFile(absolute, "utf8"))
25
+ .replaceAll("{{CORE_VERSION}}", compatibility.core)
26
+ .replaceAll("{{CLI_VERSION}}", compatibility.cli)
25
27
  .replaceAll("{{HARNESS_VERSION}}", compatibility.harness)
28
+ .replaceAll("{{AGENTS_VERSION}}", compatibility.agents)
26
29
  .replaceAll("{{RUNTIME_VERSION}}", compatibility.runtime)
27
30
  .replaceAll("{{STUDIO_VERSION}}", compatibility.studio);
28
31
  }
@@ -36,7 +39,6 @@ export async function starterFiles(compatibility, studio) {
36
39
  manifest.scripts.dev = "nylorun dev --no-studio";
37
40
  delete manifest.scripts.studio;
38
41
  files["package.json"] = JSON.stringify(manifest, null, 2) + "\n";
39
- files["README.md"] = files["README.md"].replace("`npm run dev` starts your app on port 3000, waits until its agent endpoint is ready, then starts Studio and opens it in your browser. Use `npm run dev -- --no-open` to start Studio without opening a browser. Run `npm run studio` in another terminal to attach Studio separately.", "`npm run dev` starts your app on port 3000.");
40
42
  }
41
43
  return Object.freeze(files);
42
44
  }
@@ -1,6 +1,7 @@
1
- # Copy to .env and fill in a provider and model, or run npm run configure.
2
- MODEL_PROVIDER=
3
- MODEL=
4
- MODEL_PROVIDER_API_KEY=
5
- # For MODEL_PROVIDER=custom only:
6
- # MODEL_PROVIDER_BASE_URL=https://your-provider.example/v1
1
+ # Prefer npm run configure; model configuration belongs to the Runtime.
2
+ # MODEL_PROVIDER=...
3
+ # MODEL=...
4
+ # MODEL_PROVIDER_API_KEY=...
5
+ # MODEL_PROVIDER_BASE_URL=... # only for a custom provider
6
+ # PORT=8787
7
+ # NYLORUN_IMPLEMENTATION_VERSION=dev
@@ -1,10 +1,23 @@
1
- # My agent
1
+ # My Nylorun agent
2
2
 
3
- The creator configures a provider before starting development. For later sessions, run `npm run dev`. If setup was skipped with `--skip-config` or interrupted, run `npm run configure` first, then `npm run dev`.
4
- Edit agents under `agents/` and compose your Hono app in `src/index.ts`.
3
+ Requires Node 24 and npm 11. Agent and tool definitions live in `agents/`. The CLI runs a separate SQLite Runtime and connects your tools through the SDK's authenticated SSE executor.
5
4
 
6
- `npm run dev` starts your app on port 3000, waits until its agent endpoint is ready, then starts Studio and opens it in your browser. Use `npm run dev -- --no-open` to start Studio without opening a browser. Run `npm run studio` in another terminal to attach Studio separately. `npm run build` creates `dist/`; deploy it alongside `package.json`, installed production dependencies, and environment variables, then run `npm start`.
5
+ ```sh
6
+ npm run configure
7
+ npm run dev
8
+ ```
7
9
 
8
- Development orchestration is provided by the installed `nylorun` CLI. Use `npm run dev -- --no-studio` for the application alone. Copy `.env.example` to `.env` and fill in `MODEL_PROVIDER`, `MODEL`, and `MODEL_PROVIDER_API_KEY`, or run `npm run configure`. Custom OpenAI-compatible providers also use `MODEL_PROVIDER_BASE_URL`. Hosting providers can supply these variables directly; no credential files are required for API keys. The single `tsconfig.json` builds your sources; `npm run check` checks types without emitting files.
10
+ Open Studio and ask **Look up order demo-123**. The local tool returns `shipped`; Studio shows the tool call and assistant response. Model calls use your configured provider and may incur its usual charges.
9
11
 
10
- `src/index.ts` exports the Hono app. `nylorun dev` and `nylorun start` supply the Node server and load `.env` without overriding process variables. OAuth state, when used, lives in ignored `.nylorun/auth.json`. Sessions use memory storage by default and disappear on process restart. For a single Node host, explicitly configure `localSessions({ root: ".data/sessions" })` from `@nylorun/runtime/node`. Shared storage alone does not provide distributed scheduling. See https://docs.nylorun.com/docs/run-agents/deploy for hosting guidance.
12
+ `npm run dev -- --no-open` avoids opening a browser. `--no-studio` runs headless. Use `npm run studio` to attach separately. Runtime defaults to `http://127.0.0.1:8787`; `PORT` changes it. Studio chooses a free port starting at 4161.
13
+
14
+ ```sh
15
+ npm run build
16
+ npm start
17
+ ```
18
+
19
+ Compiled start runs Runtime and executor without Studio or watching. Studio can attach in a separate terminal. `agents/index.ts` exports the registry; there is no Hono app to maintain. Source edits restart the local development stack. Start a new session after changing definitions or implementations; active-session upgrades are not supported.
20
+
21
+ Local credentials and SQLite live in gitignored `.nylorun/`. Keep this directory private. Credentials are generated automatically and kept out of browser configuration. Ordinary shutdown/restart preserves completed session history. `NYLORUN_IMPLEMENTATION_VERSION` defaults to `dev`; assign an explicit version when changing a versioned implementation.
22
+
23
+ This beta supports local text and ordinary tools. Advanced waits, media, MCP, subagents, deployment, reconciliation and broad recovery guarantees are deferred. `NYLORUN_DEV_MODEL=fixture` is a credential-free release-check fixture for this starter; it is not a general model.
@@ -7,3 +7,5 @@ dist/
7
7
 
8
8
  # Legacy local settings remain private until migrated.
9
9
  config/model.json
10
+
11
+ .nylorun/
@@ -1,7 +1,19 @@
1
- import { Agent } from "@nylorun/harness";
1
+ import { Agent, tool } from "@nylorun/agents";
2
+ import { z } from "zod";
3
+
4
+ const lookupOrder = tool({
5
+ name: "lookup_order",
6
+ description: "Look up a sample order by ID. Try demo-123.",
7
+ input: z.object({ orderId: z.string() }),
8
+ output: z.object({ orderId: z.string(), status: z.string() }),
9
+ async run({ orderId }) {
10
+ return { orderId, status: orderId === "demo-123" ? "shipped" : "not found" };
11
+ },
12
+ });
2
13
 
3
14
  export const assistant = Agent({
4
15
  id: "assistant",
5
- name: "Assistant",
6
- instructions: ["You are helpful."],
16
+ name: "Order assistant",
17
+ instructions: "Help with orders. Always use lookup_order for order questions. Remember conversation context.",
18
+ tools: [lookupOrder],
7
19
  }).build();
@@ -4,21 +4,20 @@
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "engines": {
7
- "node": ">=22.19.0"
7
+ "node": ">=24.0.0"
8
8
  },
9
9
  "scripts": {
10
10
  "configure": "nylorun configure",
11
11
  "dev": "nylorun dev",
12
- "studio": "nylorun studio --agent-url http://localhost:3000/agents",
12
+ "studio": "nylorun studio --runtime-url http://127.0.0.1:8787",
13
13
  "build": "node -e \"import('node:fs/promises').then(async ({rm,cp}) => { await rm('dist', { recursive: true, force: true }); await cp('agents', 'dist/agents', { recursive: true, filter: (source) => !source.endsWith('.ts') }); })\" && tsc -p tsconfig.json",
14
14
  "start": "nylorun start",
15
15
  "check": "tsc --noEmit"
16
16
  },
17
17
  "dependencies": {
18
- "@nylorun/harness": "{{HARNESS_VERSION}}",
19
- "@nylorun/runtime": "{{RUNTIME_VERSION}}",
20
- "hono": "^4.13.7",
21
- "zod": "^4.1.12"
18
+ "zod": "^4.5.4",
19
+ "@nylorun/agents": "{{AGENTS_VERSION}}",
20
+ "@nylorun/cli": "{{CLI_VERSION}}"
22
21
  },
23
22
  "devDependencies": {
24
23
  "@nylorun/studio": "{{STUDIO_VERSION}}",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nylorun/create-agent",
3
- "version": "0.6.0-beta",
3
+ "version": "0.7.0-beta",
4
4
  "description": "Create a local Nylorun Harness agent project.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -26,7 +26,7 @@
26
26
  "provenance": true
27
27
  },
28
28
  "engines": {
29
- "node": ">=22.19.0"
29
+ "node": ">=24.0.0"
30
30
  },
31
31
  "scripts": {
32
32
  "build": "npm run clean && node ../scripts/check-typescript-version.mjs && tsc -p tsconfig.json && node scripts/copy-compatibility.mjs",
@@ -45,6 +45,8 @@
45
45
  "@typescript/native": "npm:typescript@^7.0.2",
46
46
  "typescript": "npm:@typescript/typescript6@^6.0.2",
47
47
  "vitest": "^5.0.0",
48
- "zod": "^4.1.12"
48
+ "zod": "^4.1.12",
49
+ "@nylorun/core": "file:../core",
50
+ "@nylorun/agents": "file:../agents"
49
51
  }
50
52
  }
@@ -1,23 +0,0 @@
1
- import { Hono } from "hono";
2
- import { Runtime, serveAgents } from "@nylorun/runtime";
3
- import { agents } from "../agents/index.js";
4
-
5
- const app = new Hono();
6
-
7
- app.get("/", (c) =>
8
- c.json({
9
- agents: agents.map((agent) => ({
10
- id: agent.id,
11
- name: agent.name,
12
- manifest: agent.manifest,
13
- })),
14
- }),
15
- );
16
-
17
- const runtime = new Runtime();
18
- app.route(
19
- "/agents",
20
- serveAgents({ agents, runtime })
21
- );
22
-
23
- export default app;