@netnodeag/kraftwerk 0.10.0 → 0.10.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/dist/cli/init.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { appendFile, mkdir, readFile, stat, writeFile } from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  import chalk from "chalk";
4
- import { SCHEMA_URL } from "../config.js";
4
+ import { CONFIG_SCHEMA_URL, SCHEMA_URL } from "../config.js";
5
5
  import { initBundle, writeConcept } from "../okf.js";
6
6
  /**
7
7
  * `kraftwerk init` — make any repository a kraftwerk consumer in one
@@ -11,7 +11,8 @@ import { initBundle, writeConcept } from "../okf.js";
11
11
  * existing files are left untouched and reported.
12
12
  */
13
13
  const DATA_DIR = "kraftwerk-data";
14
- const configTemplate = (name) => `# kraftwerk project config — also marks the project root for the CLI.
14
+ const configTemplate = (name) => `# yaml-language-server: $schema=${CONFIG_SCHEMA_URL}
15
+ # kraftwerk project config — also marks the project root for the CLI.
15
16
  # All fields optional. Docs: https://github.com/NETNODEAG/kraftwerk
16
17
  name: ${JSON.stringify(name)} # display name, shown in the inspector header + browser tab
17
18
  icon: "⚡" # emoji shown as the inspector favicon
package/dist/config.d.ts CHANGED
@@ -19,6 +19,8 @@
19
19
  */
20
20
  /** Stable, versionless URL of the workflow JSON schema (editor validation). */
21
21
  export declare const SCHEMA_URL = "https://raw.githubusercontent.com/NETNODEAG/kraftwerk/main/kraftwerk/schema/workflow.schema.json";
22
+ /** Stable, versionless URL of the kraftwerk.yml JSON schema (editor validation). */
23
+ export declare const CONFIG_SCHEMA_URL = "https://raw.githubusercontent.com/NETNODEAG/kraftwerk/main/kraftwerk/schema/kraftwerk.schema.json";
22
24
  export declare const CONFIG_FILENAMES: string[];
23
25
  export interface ProjectConfig {
24
26
  /** Display name of the project ("environment"), shown in the inspector header. */
package/dist/config.js CHANGED
@@ -22,6 +22,8 @@ import { parse } from "yaml";
22
22
  */
23
23
  /** Stable, versionless URL of the workflow JSON schema (editor validation). */
24
24
  export const SCHEMA_URL = "https://raw.githubusercontent.com/NETNODEAG/kraftwerk/main/kraftwerk/schema/workflow.schema.json";
25
+ /** Stable, versionless URL of the kraftwerk.yml JSON schema (editor validation). */
26
+ export const CONFIG_SCHEMA_URL = "https://raw.githubusercontent.com/NETNODEAG/kraftwerk/main/kraftwerk/schema/kraftwerk.schema.json";
25
27
  export const CONFIG_FILENAMES = ["kraftwerk.yml", "kraftwerk.yaml"];
26
28
  const WORKFLOW_ROOT_CANDIDATES = ["src/workflows", "workflows"];
27
29
  const exists = async (p) => !!(await stat(p).catch(() => null));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@netnodeag/kraftwerk",
3
- "version": "0.10.0",
3
+ "version": "0.10.1",
4
4
  "description": "Deterministic workflow-as-code framework: agents (persona + model + tools + harness) run in bounded phases on headless CLI harnesses (claude -p, codex exec, pi); code owns the control flow, envelopes + gates judge the results",
5
5
  "keywords": [
6
6
  "agents",
@@ -0,0 +1,40 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://raw.githubusercontent.com/NETNODEAG/kraftwerk/main/kraftwerk/schema/kraftwerk.schema.json",
4
+ "title": "kraftwerk project config",
5
+ "description": "kraftwerk.yml at the project root: config file and root marker for the kraftwerk CLI. All fields are optional — an empty file is valid.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "properties": {
9
+ "name": {
10
+ "type": "string",
11
+ "description": "Display name of the project (\"environment\"), shown in the inspector header and browser tab"
12
+ },
13
+ "icon": {
14
+ "type": "string",
15
+ "description": "Emoji used as the inspector favicon (browser-tab icon), e.g. \"⚡\""
16
+ },
17
+ "port": {
18
+ "type": "integer",
19
+ "minimum": 1,
20
+ "maximum": 65535,
21
+ "description": "Port `kraftwerk ui` listens on. Default: 1981 (the --port flag wins over this)"
22
+ },
23
+ "workflows": {
24
+ "type": "string",
25
+ "description": "Workflows root relative to this file. Default: src/workflows or workflows"
26
+ },
27
+ "output": {
28
+ "type": "string",
29
+ "description": "Run-artifact directory relative to this file. Default: output"
30
+ },
31
+ "knowledge": {
32
+ "type": "string",
33
+ "description": "OKF knowledge-bundle root relative to this file. Default: knowledge"
34
+ },
35
+ "agents": {
36
+ "type": "string",
37
+ "description": "Team agent-definition root relative to this file. Default: agents"
38
+ }
39
+ }
40
+ }