create-nola-lang 0.1.2 → 0.1.4
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 +3 -2
- package/dist/agents.d.ts +27 -2
- package/dist/agents.d.ts.map +1 -1
- package/dist/agents.js +136 -67
- package/dist/agents.js.map +1 -1
- package/dist/{chunk-QTJ64H2Y.js → chunk-VZM5EYBG.js} +138 -64
- package/dist/flow.d.ts +3 -0
- package/dist/flow.d.ts.map +1 -1
- package/dist/flow.js +9 -7
- package/dist/flow.js.map +1 -1
- package/dist/index.js +5 -3
- package/dist/main.js +1 -1
- package/dist/package-manager.d.ts +17 -0
- package/dist/package-manager.d.ts.map +1 -0
- package/dist/package-manager.js +8 -0
- package/dist/package-manager.js.map +1 -0
- package/dist/skill-install.d.ts +2 -0
- package/dist/skill-install.d.ts.map +1 -1
- package/dist/skill-install.js +6 -2
- package/dist/skill-install.js.map +1 -1
- package/package.json +7 -5
- package/skills/nola/SKILL.md +75 -0
- package/skills/nola/references/config.md +227 -0
- package/skills/nola/references/patterns.md +277 -0
- package/skills/nola/references/pitfalls.md +289 -0
- package/skills/nola/references/syntax.md +377 -0
- package/templates/starter/_gitignore +2 -0
package/dist/flow.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../src/flow.ts"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,OAAO,EAAoD,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../src/flow.ts"],"names":[],"mappings":"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"}
|
package/dist/flow.js
CHANGED
|
@@ -5,6 +5,7 @@ import { addNola } from "./add.js";
|
|
|
5
5
|
import { AGENT_OPTIONS, defaultAgents, parseAgentsFlag, writeAgentSkills } from "./agents.js";
|
|
6
6
|
import { ExampleFetchError } from "./github.js";
|
|
7
7
|
import { writeVscodeSetup } from "./ide.js";
|
|
8
|
+
import { detectPackageManager, packageManagerCommands } from "./package-manager.js";
|
|
8
9
|
import { TEMPLATES, templateByName, templateNames } from "./registry.js";
|
|
9
10
|
import { ownVersion, scaffold } from "./scaffold.js";
|
|
10
11
|
const DEFAULT_DIR = "nola-app";
|
|
@@ -163,11 +164,11 @@ export function plainPrompter() {
|
|
|
163
164
|
outro: (m) => console.log(m),
|
|
164
165
|
};
|
|
165
166
|
}
|
|
166
|
-
function nextSteps(outcome, fileCount, name) {
|
|
167
|
-
const
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
const lines = outcome.dir === "." ? [
|
|
167
|
+
function nextSteps(outcome, fileCount, name, pm) {
|
|
168
|
+
const cmd = packageManagerCommands(pm);
|
|
169
|
+
const start = cmd.start.padEnd(16);
|
|
170
|
+
const keyless = outcome.template === "empty" ? `${start} # set OPENAI_API_KEY first` : `${start} # runs offline — no API key needed`;
|
|
171
|
+
const lines = outcome.dir === "." ? [cmd.install, keyless] : [`cd ${outcome.dir}`, cmd.install, keyless];
|
|
171
172
|
return `Scaffolded ${name} (${fileCount} files).\n\nNext steps:\n ${lines.join("\n ")}`;
|
|
172
173
|
}
|
|
173
174
|
/** The shared entry for both `npm create nola-lang` and `nola init`. */
|
|
@@ -185,6 +186,7 @@ export async function runFlow(args, opts = {}) {
|
|
|
185
186
|
}
|
|
186
187
|
if (interactive)
|
|
187
188
|
prompter.intro?.(opts.intro ?? `create-nola-lang v${await ownVersion()}`);
|
|
189
|
+
const pm = opts.packageManager ?? detectPackageManager();
|
|
188
190
|
const input = {
|
|
189
191
|
dir: args.dir,
|
|
190
192
|
template: args.template,
|
|
@@ -213,7 +215,7 @@ export async function runFlow(args, opts = {}) {
|
|
|
213
215
|
return 0;
|
|
214
216
|
}
|
|
215
217
|
const lines = [
|
|
216
|
-
|
|
218
|
+
packageManagerCommands(pm).install,
|
|
217
219
|
'optional start script: "start": "nola run src/main.ts"',
|
|
218
220
|
'tsconfig tip: directory-style include (e.g. ["src"]) lets the editor see .tsi files',
|
|
219
221
|
];
|
|
@@ -240,7 +242,7 @@ export async function runFlow(args, opts = {}) {
|
|
|
240
242
|
for (const note of ag.skipped)
|
|
241
243
|
prompter.note(note);
|
|
242
244
|
}
|
|
243
|
-
const message = nextSteps(outcome, files.length + ideWrote.length + agWrote.length, basename(resolve(outcome.dir)));
|
|
245
|
+
const message = nextSteps(outcome, files.length + ideWrote.length + agWrote.length, basename(resolve(outcome.dir)), pm);
|
|
244
246
|
if (prompter.outro)
|
|
245
247
|
prompter.outro(message);
|
|
246
248
|
else
|
package/dist/flow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow.js","sourceRoot":"","sources":["../src/flow.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"flow.js","sourceRoot":"","sources":["../src/flow.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
templateNames,
|
|
21
21
|
writeAgentSkills,
|
|
22
22
|
writeVscodeSetup
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-VZM5EYBG.js";
|
|
24
24
|
import "./chunk-TRTQSARU.js";
|
|
25
25
|
|
|
26
26
|
// src/skill-install.ts
|
|
@@ -54,9 +54,11 @@ async function runSkillInstall(args, opts = {}) {
|
|
|
54
54
|
prompter.note("Nothing selected \u2014 no files written.");
|
|
55
55
|
return 0;
|
|
56
56
|
}
|
|
57
|
-
const result = await writeAgentSkills(dir, agents);
|
|
57
|
+
const result = await writeAgentSkills(dir, agents, { force: args.force });
|
|
58
58
|
for (const note of result.skipped) prompter.note(note);
|
|
59
|
-
|
|
59
|
+
let message = "Nothing new to write.";
|
|
60
|
+
if (result.wrote.length > 0) message = `Installed agent skill files: ${result.wrote.join(", ")}`;
|
|
61
|
+
else if (result.stale) message = "Nothing written \u2014 re-run with --force to replace outdated files.";
|
|
60
62
|
if (prompter.outro) prompter.outro(message);
|
|
61
63
|
else prompter.note(message);
|
|
62
64
|
return 0;
|
package/dist/main.js
CHANGED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which package manager invoked us. `npm create nola`, `pnpm create nola`,
|
|
3
|
+
* `yarn create nola` and `bun create nola` all run the same bin, and each
|
|
4
|
+
* manager stamps itself into `npm_config_user_agent` ("pnpm/10.23.0 npm/? …").
|
|
5
|
+
* Only the printed "Next steps" depend on it — the scaffolded files are
|
|
6
|
+
* manager-agnostic — so an unknown or missing agent falls back to npm.
|
|
7
|
+
*/
|
|
8
|
+
export type PackageManager = "npm" | "pnpm" | "yarn" | "bun";
|
|
9
|
+
export declare function detectPackageManager(userAgent?: string | undefined): PackageManager;
|
|
10
|
+
export interface PackageManagerCommands {
|
|
11
|
+
install: string;
|
|
12
|
+
start: string;
|
|
13
|
+
/** prefix for a named script: `${run} check` (yarn classic's builtin `check` shadows a bare `yarn check`) */
|
|
14
|
+
run: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function packageManagerCommands(pm: PackageManager): PackageManagerCommands;
|
|
17
|
+
//# sourceMappingURL=package-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../src/package-manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAE7D,wBAAgB,oBAAoB,CAAC,SAAS,qBAAoC,GAAG,cAAc,CAGlG;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,6GAA6G;IAC7G,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,cAAc,GAAG,sBAAsB,CAEjF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export function detectPackageManager(userAgent = process.env.npm_config_user_agent) {
|
|
2
|
+
const name = userAgent?.split("/")[0]?.trim();
|
|
3
|
+
return name === "pnpm" || name === "yarn" || name === "bun" ? name : "npm";
|
|
4
|
+
}
|
|
5
|
+
export function packageManagerCommands(pm) {
|
|
6
|
+
return { install: `${pm} install`, start: `${pm} start`, run: `${pm} run` };
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=package-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../src/package-manager.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,oBAAoB,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB;IAChF,MAAM,IAAI,GAAG,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAC9C,OAAO,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAC7E,CAAC;AASD,MAAM,UAAU,sBAAsB,CAAC,EAAkB;IACvD,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AAC9E,CAAC"}
|
package/dist/skill-install.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-install.d.ts","sourceRoot":"","sources":["../src/skill-install.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAiB,MAAM,WAAW,CAAC;AAEzD,MAAM,WAAW,gBAAgB;IAC/B,sCAAsC;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,uFAAuF;AACvF,wBAAsB,eAAe,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,GAAE,mBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"skill-install.d.ts","sourceRoot":"","sources":["../src/skill-install.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAiB,MAAM,WAAW,CAAC;AAEzD,MAAM,WAAW,gBAAgB;IAC/B,sCAAsC;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,uFAAuF;AACvF,wBAAsB,eAAe,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,GAAE,mBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CAwC7G"}
|
package/dist/skill-install.js
CHANGED
|
@@ -34,10 +34,14 @@ export async function runSkillInstall(args, opts = {}) {
|
|
|
34
34
|
prompter.note("Nothing selected — no files written.");
|
|
35
35
|
return 0;
|
|
36
36
|
}
|
|
37
|
-
const result = await writeAgentSkills(dir, agents);
|
|
37
|
+
const result = await writeAgentSkills(dir, agents, { force: args.force });
|
|
38
38
|
for (const note of result.skipped)
|
|
39
39
|
prompter.note(note);
|
|
40
|
-
|
|
40
|
+
let message = "Nothing new to write.";
|
|
41
|
+
if (result.wrote.length > 0)
|
|
42
|
+
message = `Installed agent skill files: ${result.wrote.join(", ")}`;
|
|
43
|
+
else if (result.stale)
|
|
44
|
+
message = "Nothing written — re-run with --force to replace outdated files.";
|
|
41
45
|
if (prompter.outro)
|
|
42
46
|
prompter.outro(message);
|
|
43
47
|
else
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-install.js","sourceRoot":"","sources":["../src/skill-install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgB,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC5G,OAAO,EAAiB,aAAa,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"skill-install.js","sourceRoot":"","sources":["../src/skill-install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgB,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC5G,OAAO,EAAiB,aAAa,EAAE,MAAM,WAAW,CAAC;AAgBzD,uFAAuF;AACvF,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAsB,EAAE,OAA4B,EAAE;IAC1F,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7F,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;IAC5B,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;YACxD,QAAQ,GAAG,aAAa,EAAE,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,aAAa,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,IAAI,MAAiB,CAAC;IACtB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;SAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC,oFAAoF,CAAC,CAAC;QACpG,OAAO,CAAC,CAAC;IACX,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,uBAAuB,EAAE,aAAa,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;QACtG,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5B,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,GAAG,MAAmB,CAAC;IAC/B,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACtD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1E,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO;QAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,OAAO,GAAG,uBAAuB,CAAC;IACtC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,GAAG,gCAAgC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SAC5F,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,GAAG,kEAAkE,CAAC;IACpG,IAAI,QAAQ,CAAC,KAAK;QAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;;QACvC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,OAAO,CAAC,CAAC;AACX,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-nola-lang",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "Scaffold a new Nola project (npm create nola-lang)",
|
|
3
|
+
"version": "0.1.4",
|
|
4
|
+
"description": "Scaffold a new Nola project (npm create nola, or npm create nola-lang)",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"nola",
|
|
7
7
|
"create",
|
|
@@ -26,18 +26,20 @@
|
|
|
26
26
|
},
|
|
27
27
|
"type": "module",
|
|
28
28
|
"bin": {
|
|
29
|
-
"create-nola-lang": "
|
|
29
|
+
"create-nola-lang": "dist/main.js"
|
|
30
30
|
},
|
|
31
31
|
"exports": {
|
|
32
32
|
".": {
|
|
33
33
|
"types": "./dist/index.d.ts",
|
|
34
34
|
"default": "./dist/index.js"
|
|
35
|
-
}
|
|
35
|
+
},
|
|
36
|
+
"./main": "./dist/main.js"
|
|
36
37
|
},
|
|
37
38
|
"files": [
|
|
38
39
|
"dist",
|
|
39
40
|
"!dist/.tsbuildinfo",
|
|
40
|
-
"templates"
|
|
41
|
+
"templates",
|
|
42
|
+
"skills"
|
|
41
43
|
],
|
|
42
44
|
"scripts": {
|
|
43
45
|
"bundle": "node scripts/bundle.mjs"
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: nola
|
|
3
|
+
description: Writing Nola .tsi files — a TypeScript superset with infer
|
|
4
|
+
functions and ask extractors. Use when creating or editing .tsi files or
|
|
5
|
+
nola.config.ts.
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Writing Nola
|
|
9
|
+
|
|
10
|
+
Nola is a TypeScript superset. `.tsi` files are NOT valid TypeScript — the
|
|
11
|
+
Nola toolchain lowers them to plain TS before tsc, bundlers, or Node see
|
|
12
|
+
them. Everything you know about TypeScript applies inside a `.tsi` file
|
|
13
|
+
EXCEPT the constructs below. A configured LLM resolves the new constructs at
|
|
14
|
+
run time.
|
|
15
|
+
|
|
16
|
+
## The constructs at a glance
|
|
17
|
+
|
|
18
|
+
```tsi
|
|
19
|
+
import type { Person } from "./types.js";
|
|
20
|
+
|
|
21
|
+
// An LLM-backed function: lowers to a plain function returning a lazy,
|
|
22
|
+
// thenable Intent<T>. `await`ing it (or `ask`) runs the inference.
|
|
23
|
+
infer function extractPerson(.text: string) {
|
|
24
|
+
// `ask` resolves an intent the way `await` resolves a promise.
|
|
25
|
+
const person = ask ..`Extract the person described in the text`<Person>;
|
|
26
|
+
return person;
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
- `infer function name(...)` — declares a nola function. An optional
|
|
31
|
+
backtick instruction goes between name and params:
|
|
32
|
+
`` infer function name`instruction`(...) ``. `await` is legal in the body.
|
|
33
|
+
- `.name: T` parameters are CONTEXT parameters: their values are shown to
|
|
34
|
+
the LLM. Plain (no dot) parameters are ordinary values the LLM never
|
|
35
|
+
sees. `.` is only legal on infer-function parameters. Rule of thumb:
|
|
36
|
+
ONE dot in (`.name` — the value flows into the model), TWO dots out
|
|
37
|
+
(`` ..`prompt` `` — a value comes out of it).
|
|
38
|
+
- `` ask ..`prompt`<T> `` — an extractor: asks the LLM for a `T`.
|
|
39
|
+
`${...}` interpolation works inside the backticks.
|
|
40
|
+
- `` ask fn`hint`(...) `` — or a plain call whose arguments contain an
|
|
41
|
+
extractor — is a call intent (the LLM fills the extractor-shaped
|
|
42
|
+
arguments, then the function runs). Only `` fn`hint`(...) `` carries
|
|
43
|
+
instruction text.
|
|
44
|
+
- `ask with <providerName> <intent>` — routes one ask through a named
|
|
45
|
+
provider from `nola.config.ts`. The name must be a static identifier.
|
|
46
|
+
- Prompt templates: inside ANY instruction backticks (marker, extractor,
|
|
47
|
+
call hint) a hole that starts with a single dot — `${.member}` — reads
|
|
48
|
+
the intent's prompt scope; a literal containing one REPLACES that
|
|
49
|
+
intent's prompt block (`${.default}` is the built-in block, `${.next}`
|
|
50
|
+
the rest of the prompt). Every other `${expr}` is a lexical value.
|
|
51
|
+
See `references/syntax.md` → "Prompt templates".
|
|
52
|
+
|
|
53
|
+
## Where Nola diverges from TypeScript — hard rules
|
|
54
|
+
|
|
55
|
+
- `ask` is a reserved word in `.tsi` (still legal as a member/property
|
|
56
|
+
name). `infer` is contextual: a keyword only directly before `function`.
|
|
57
|
+
- Identifiers starting with `__nola` are reserved. Never write them.
|
|
58
|
+
- Imports of `.tsi` files keep the literal extension:
|
|
59
|
+
`import { f } from "./x.tsi"`. Imports of plain TS use NodeNext style:
|
|
60
|
+
`import { g } from "./y.js"` (the `.js` extension, even though the source
|
|
61
|
+
file is `.ts`).
|
|
62
|
+
- An extractor's `<T>` should be a named, structurally simple type
|
|
63
|
+
(object/array/primitive fields). `Date` works (revived to a real `Date`);
|
|
64
|
+
`Map`/`Set` and other ambient lib types do not.
|
|
65
|
+
- Raw extract/call intents are resolved with `ask`, never bare `await`
|
|
66
|
+
(that throws NOLA3010). Infer-function RETURN values may be awaited.
|
|
67
|
+
|
|
68
|
+
## References
|
|
69
|
+
|
|
70
|
+
Read these before non-trivial work:
|
|
71
|
+
|
|
72
|
+
- `references/syntax.md` — full grammar and semantics of every construct
|
|
73
|
+
- `references/patterns.md` — worked examples (extraction, call intents)
|
|
74
|
+
- `references/config.md` — `nola.config.ts`, providers, project layout
|
|
75
|
+
- `references/pitfalls.md` — common errors (NOLA codes) and their fixes
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
# `nola.config.ts`, providers, and project layout
|
|
2
|
+
|
|
3
|
+
## The import surface is FROZEN — use exactly these two specifiers
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
import { defineConfig } from "@nola-lang/runtime";
|
|
7
|
+
import { openai, mockProvider, withRetry } from "@nola-lang/providers";
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
`defineConfig` and everything app-facing come from `@nola-lang/runtime`.
|
|
11
|
+
Everything provider-shaped — provider factories (`openai`, `anthropic`,
|
|
12
|
+
`google`, `mockProvider`), resilience combinators (`withRetry`, `fallback`,
|
|
13
|
+
`roundRobin`, `constant`, `exponential`) and record/replay (`record`,
|
|
14
|
+
`replay`) — comes from `@nola-lang/providers`.
|
|
15
|
+
|
|
16
|
+
Never import providers from the runtime, never import `defineConfig` from the
|
|
17
|
+
providers package, and never reach for a subpath (`@nola-lang/runtime/config`,
|
|
18
|
+
`@nola-lang/runtime/providers`, `nola-lang/runtime`) — those do not exist.
|
|
19
|
+
`@nola-lang/providers` deliberately does not depend on the runtime, which is
|
|
20
|
+
what keeps a second copy of the runtime out of the install tree.
|
|
21
|
+
|
|
22
|
+
## Minimal config
|
|
23
|
+
|
|
24
|
+
`nola.config.ts` lives at the project root and default-exports a
|
|
25
|
+
`defineConfig` call. `providers.default` is required:
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
import { openai } from "@nola-lang/providers";
|
|
29
|
+
import { defineConfig } from "@nola-lang/runtime";
|
|
30
|
+
|
|
31
|
+
export default defineConfig({
|
|
32
|
+
providers: {
|
|
33
|
+
// Reads OPENAI_API_KEY from the environment at the first ask.
|
|
34
|
+
default: openai({ model: "gpt-5-mini" }),
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
`openai({ model })` requires an explicit model; optional fields are `apiKey`,
|
|
40
|
+
`apiKeyEnv` (default `"OPENAI_API_KEY"`), `baseUrl` and `fetch`.
|
|
41
|
+
|
|
42
|
+
### Named providers become `ask with <name>` targets
|
|
43
|
+
|
|
44
|
+
Every other key of `providers` is a name you choose, and that name is exactly
|
|
45
|
+
what `ask with` and `.withProvider()` accept:
|
|
46
|
+
|
|
47
|
+
```ts
|
|
48
|
+
import { anthropic, openai } from "@nola-lang/providers";
|
|
49
|
+
import { defineConfig } from "@nola-lang/runtime";
|
|
50
|
+
|
|
51
|
+
export default defineConfig({
|
|
52
|
+
providers: {
|
|
53
|
+
default: openai({ model: "gpt-5-mini" }),
|
|
54
|
+
fast: openai({ model: "gpt-5-nano" }),
|
|
55
|
+
careful: anthropic({ model: "claude-sonnet-4-5" }),
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
```tsi
|
|
61
|
+
export infer function summarize(.text: string) {
|
|
62
|
+
const draft = ask with fast ..`a rough summary`<string>;
|
|
63
|
+
return ask with careful ..`a polished summary of: ${draft}`<string>;
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
An `ask with` name that is not a key of the map fails at run time with
|
|
68
|
+
NOLA3004, listing the configured names.
|
|
69
|
+
|
|
70
|
+
### Other config sections
|
|
71
|
+
|
|
72
|
+
```ts
|
|
73
|
+
import { mockProvider, openai } from "@nola-lang/providers";
|
|
74
|
+
import { defineConfig } from "@nola-lang/runtime";
|
|
75
|
+
|
|
76
|
+
export default defineConfig({
|
|
77
|
+
providers: {
|
|
78
|
+
default: openai({ model: "gpt-5-mini" }),
|
|
79
|
+
mock: mockProvider(() => ({ ok: true })),
|
|
80
|
+
},
|
|
81
|
+
// hermetic override — EVERY ask goes here, even .withProvider()-pinned ones
|
|
82
|
+
forceProvider: process.env.CI ? "mock" : undefined,
|
|
83
|
+
observability: { logLevel: "info" },
|
|
84
|
+
ask: { timeoutMs: 60_000 }, // per-invocation timeout; 0 disables
|
|
85
|
+
system: { message: "Answer in British English." },
|
|
86
|
+
compiler: { underivableContextType: "error" }, // "error" | "prune" | "omit"
|
|
87
|
+
build: { target: "app" }, // "app" (default) | "lib"
|
|
88
|
+
});
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Keep `compiler.underivableContextType` a LITERAL value — the editor reads it
|
|
92
|
+
statically and cannot execute your config, so a computed value is invisible to
|
|
93
|
+
it.
|
|
94
|
+
|
|
95
|
+
### Resilience combinators
|
|
96
|
+
|
|
97
|
+
Combinators wrap a provider and return a provider, so they nest:
|
|
98
|
+
|
|
99
|
+
```ts
|
|
100
|
+
import { exponential, fallback, openai, withRetry } from "@nola-lang/providers";
|
|
101
|
+
import { defineConfig } from "@nola-lang/runtime";
|
|
102
|
+
|
|
103
|
+
export default defineConfig({
|
|
104
|
+
providers: {
|
|
105
|
+
default: fallback([
|
|
106
|
+
withRetry(openai({ model: "gpt-5-mini" }), exponential({ maxRetries: 3 })),
|
|
107
|
+
openai({ model: "gpt-5-nano" }),
|
|
108
|
+
]),
|
|
109
|
+
},
|
|
110
|
+
});
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
`withRetry(provider, policy)` takes a policy built by `constant({ maxRetries })`
|
|
114
|
+
or `exponential({ maxRetries, delayMs?, multiplier?, maxDelayMs? })`; it retries
|
|
115
|
+
the wire call and fail-fasts on definitive errors (most 4xx). It is unrelated to
|
|
116
|
+
the intent method `.withRetry(n)`, which re-runs the whole ask.
|
|
117
|
+
|
|
118
|
+
## Package layout
|
|
119
|
+
|
|
120
|
+
`nola-lang` is a DEV dependency — it holds the compiler, the CLI and
|
|
121
|
+
TypeScript, and never ships to production. The app depends on the runtime and
|
|
122
|
+
the providers package:
|
|
123
|
+
|
|
124
|
+
```json
|
|
125
|
+
{
|
|
126
|
+
"type": "module",
|
|
127
|
+
"scripts": {
|
|
128
|
+
"start": "nola run src/main.ts",
|
|
129
|
+
"build": "nola build",
|
|
130
|
+
"check": "nola check"
|
|
131
|
+
},
|
|
132
|
+
"dependencies": {
|
|
133
|
+
"@nola-lang/providers": "^0.1.0",
|
|
134
|
+
"@nola-lang/runtime": "^0.1.0"
|
|
135
|
+
},
|
|
136
|
+
"devDependencies": {
|
|
137
|
+
"nola-lang": "^0.1.0",
|
|
138
|
+
"typescript": "^5.6.0"
|
|
139
|
+
},
|
|
140
|
+
"engines": { "node": ">=22" }
|
|
141
|
+
}
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
`nola-lang`, `@nola-lang/runtime` and `@nola-lang/providers` are released in
|
|
145
|
+
LOCKSTEP — give all three the same version (`npm create nola` pins them
|
|
146
|
+
for you). Do not mix versions.
|
|
147
|
+
|
|
148
|
+
- `nola run <entry>` runs a `.ts`/`.tsi` entry through the loader with
|
|
149
|
+
`nola.config.ts` applied.
|
|
150
|
+
- `nola build [dir] [--out dist]` emits plain JS + source maps + `.d.ts`. For
|
|
151
|
+
app projects (the default) it also emits `dist/nola.config.js` and wires
|
|
152
|
+
every built module to it, so `node dist/main.js` needs no loader. Library
|
|
153
|
+
authors set `build: { target: "lib" }` and let the consuming app configure
|
|
154
|
+
the process.
|
|
155
|
+
- `nola check [dir]` type-checks `.tsi` and `.ts` together with diagnostics
|
|
156
|
+
mapped back to `.tsi` positions. Plain `tsc` over `src` is NOT a check path.
|
|
157
|
+
- Scaffold a project with `npm create nola my-app` (or `npx nola init`).
|
|
158
|
+
|
|
159
|
+
## tsconfig.json
|
|
160
|
+
|
|
161
|
+
```json
|
|
162
|
+
{
|
|
163
|
+
"compilerOptions": {
|
|
164
|
+
"strict": true,
|
|
165
|
+
"target": "ES2022",
|
|
166
|
+
"module": "NodeNext",
|
|
167
|
+
"moduleResolution": "NodeNext",
|
|
168
|
+
"allowArbitraryExtensions": true,
|
|
169
|
+
"noEmit": true,
|
|
170
|
+
"skipLibCheck": true
|
|
171
|
+
},
|
|
172
|
+
"include": ["src"]
|
|
173
|
+
}
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
`include` must be DIRECTORY-style (`["src"]`), never a `.ts`-suffixed glob
|
|
177
|
+
like `["src/**/*.ts"]`: the directory form is what lets the editor tooling
|
|
178
|
+
admit `.tsi` files into the program while plain `tsc` ignores them. Under the
|
|
179
|
+
glob form `.tsi` files fall out of the program and auto-import stops offering
|
|
180
|
+
your infer functions. `module`/`moduleResolution` are NodeNext (hence `./x.js`
|
|
181
|
+
specifiers for plain TS imports) and `allowArbitraryExtensions` is required
|
|
182
|
+
for the `.tsi` declaration pairs.
|
|
183
|
+
|
|
184
|
+
## Developing offline
|
|
185
|
+
|
|
186
|
+
`mockProvider` returns canned answers — deterministic, no API key, and the
|
|
187
|
+
right default for examples and tests. It takes either a queue of values (one
|
|
188
|
+
per ask, in order) or a function of the request:
|
|
189
|
+
|
|
190
|
+
```ts
|
|
191
|
+
import { mockProvider } from "@nola-lang/providers";
|
|
192
|
+
import { defineConfig } from "@nola-lang/runtime";
|
|
193
|
+
|
|
194
|
+
export default defineConfig({
|
|
195
|
+
providers: {
|
|
196
|
+
default: mockProvider([{ name: "Alice Smith", age: 32 }]),
|
|
197
|
+
},
|
|
198
|
+
});
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### record / replay
|
|
202
|
+
|
|
203
|
+
`record(inner, path)` wraps a real provider and appends every exchange to a
|
|
204
|
+
JSONL ledger; `replay(path)` serves answers back from that ledger:
|
|
205
|
+
|
|
206
|
+
```ts
|
|
207
|
+
import { openai, record, replay } from "@nola-lang/providers";
|
|
208
|
+
import { defineConfig } from "@nola-lang/runtime";
|
|
209
|
+
|
|
210
|
+
const live = process.env.NOLA_RECORD === "1";
|
|
211
|
+
|
|
212
|
+
export default defineConfig({
|
|
213
|
+
providers: {
|
|
214
|
+
default: live
|
|
215
|
+
? record(openai({ model: "gpt-5-mini" }), "./nola.replay.jsonl")
|
|
216
|
+
: replay("./nola.replay.jsonl"),
|
|
217
|
+
},
|
|
218
|
+
});
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
`replay` is STRICT: entries are keyed by a fingerprint of the exact request, and
|
|
222
|
+
a request with no matching entry fails with NOLA3008 rather than quietly calling
|
|
223
|
+
the network. Any change to a prompt, an instruction, a schema or the provider
|
|
224
|
+
params re-keys the entry — re-record the ledger after editing a `.tsi`.
|
|
225
|
+
|
|
226
|
+
Secrets in production come from the real environment; `.env` files are a
|
|
227
|
+
dev-time convenience of the loader only.
|