create-nola-lang 0.1.4 → 0.1.5

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.
Files changed (109) hide show
  1. package/README.md +9 -0
  2. package/dist/add.d.ts +11 -3
  3. package/dist/add.d.ts.map +1 -1
  4. package/dist/add.js +16 -3
  5. package/dist/add.js.map +1 -1
  6. package/dist/agents.d.ts +4 -2
  7. package/dist/agents.d.ts.map +1 -1
  8. package/dist/agents.js +18 -22
  9. package/dist/agents.js.map +1 -1
  10. package/dist/api.d.ts +129 -0
  11. package/dist/api.d.ts.map +1 -0
  12. package/dist/api.js +156 -0
  13. package/dist/api.js.map +1 -0
  14. package/dist/auth.d.ts +87 -0
  15. package/dist/auth.d.ts.map +1 -0
  16. package/dist/auth.js +334 -0
  17. package/dist/auth.js.map +1 -0
  18. package/dist/checkout.d.ts +24 -0
  19. package/dist/checkout.d.ts.map +1 -0
  20. package/dist/checkout.js +65 -0
  21. package/dist/checkout.js.map +1 -0
  22. package/dist/{prompter-6BJFVFZL.js → chunk-7IQIRMK6.js} +420 -57
  23. package/dist/chunk-FPS2V3S4.js +107 -0
  24. package/dist/chunk-ZHMW2DCK.js +1939 -0
  25. package/dist/cli.d.ts +53 -0
  26. package/dist/cli.d.ts.map +1 -0
  27. package/dist/cli.js +107 -0
  28. package/dist/cli.js.map +1 -0
  29. package/dist/credentials.d.ts +30 -0
  30. package/dist/credentials.d.ts.map +1 -0
  31. package/dist/credentials.js +98 -0
  32. package/dist/credentials.js.map +1 -0
  33. package/dist/examples.d.ts +1 -5
  34. package/dist/examples.d.ts.map +1 -1
  35. package/dist/examples.js +4 -17
  36. package/dist/examples.js.map +1 -1
  37. package/dist/flow.d.ts +115 -0
  38. package/dist/flow.d.ts.map +1 -1
  39. package/dist/flow.js +352 -35
  40. package/dist/flow.js.map +1 -1
  41. package/dist/home-config.d.ts +31 -0
  42. package/dist/home-config.d.ts.map +1 -0
  43. package/dist/home-config.js +86 -0
  44. package/dist/home-config.js.map +1 -0
  45. package/dist/index.d.ts +24 -4
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +140 -5
  48. package/dist/index.js.map +1 -1
  49. package/dist/key.d.ts +45 -0
  50. package/dist/key.d.ts.map +1 -0
  51. package/dist/key.js +92 -0
  52. package/dist/key.js.map +1 -0
  53. package/dist/launch.d.ts +35 -0
  54. package/dist/launch.d.ts.map +1 -0
  55. package/dist/launch.js +71 -0
  56. package/dist/launch.js.map +1 -0
  57. package/dist/main.js +11 -22
  58. package/dist/main.js.map +1 -1
  59. package/dist/open-url.d.ts +20 -0
  60. package/dist/open-url.d.ts.map +1 -0
  61. package/dist/open-url.js +51 -0
  62. package/dist/open-url.js.map +1 -0
  63. package/dist/palette.d.ts +31 -0
  64. package/dist/palette.d.ts.map +1 -0
  65. package/dist/palette.js +36 -0
  66. package/dist/palette.js.map +1 -0
  67. package/dist/prompter-LGNUYLB4.js +7 -0
  68. package/dist/prompter.d.ts.map +1 -1
  69. package/dist/prompter.js +23 -1
  70. package/dist/prompter.js.map +1 -1
  71. package/dist/providers.d.ts +24 -0
  72. package/dist/providers.d.ts.map +1 -0
  73. package/dist/providers.js +23 -0
  74. package/dist/providers.js.map +1 -0
  75. package/dist/registry.d.ts.map +1 -1
  76. package/dist/registry.js +1 -0
  77. package/dist/registry.js.map +1 -1
  78. package/dist/scaffold.d.ts +10 -0
  79. package/dist/scaffold.d.ts.map +1 -1
  80. package/dist/scaffold.js +54 -3
  81. package/dist/scaffold.js.map +1 -1
  82. package/dist/skill-install.js +2 -2
  83. package/dist/skill-install.js.map +1 -1
  84. package/dist/style.d.ts +16 -0
  85. package/dist/style.d.ts.map +1 -0
  86. package/dist/style.js +31 -0
  87. package/dist/style.js.map +1 -0
  88. package/dist/trial.d.ts +35 -0
  89. package/dist/trial.d.ts.map +1 -0
  90. package/dist/trial.js +90 -0
  91. package/dist/trial.js.map +1 -0
  92. package/package.json +5 -3
  93. package/skills/nola/SKILL.md +4 -2
  94. package/skills/nola/references/config.md +123 -40
  95. package/skills/nola/references/patterns.md +1 -1
  96. package/skills/nola/references/pitfalls.md +6 -6
  97. package/skills/nola/references/syntax.md +10 -8
  98. package/templates/_providers/anthropic.config.ts +10 -0
  99. package/templates/_providers/google.config.ts +10 -0
  100. package/templates/_providers/nola.config.ts +11 -0
  101. package/templates/_providers/openai.config.ts +10 -0
  102. package/templates/empty/_gitignore +3 -0
  103. package/templates/empty/nola.config.ts +5 -7
  104. package/templates/starter/README.md +3 -5
  105. package/templates/starter/_gitignore +2 -1
  106. package/templates/starter/nola.config.ts +7 -9
  107. package/templates/starter/nola.replay.jsonl +1 -1
  108. package/dist/chunk-TRTQSARU.js +0 -34
  109. package/dist/chunk-VZM5EYBG.js +0 -703
package/README.md CHANGED
@@ -9,6 +9,15 @@ npm install
9
9
  npm start # runs offline via a committed replay ledger - no API key needed
10
10
  ```
11
11
 
12
+ Interactively the flow asks for a name (Enter keeps the default), a template,
13
+ an inference provider (Nola first — 25 free runs, no account or provider key —
14
+ then OpenAI, Anthropic, Gemini, or skip), whether to set up your editor and
15
+ coding agents (yes opens one list: VS Code, preselected, writes `.vscode/`
16
+ with a debug config + the extension recommendation; coding-agent skills,
17
+ Claude Code preselected), and — once the files are written, when an editor
18
+ was chosen — whether to install dependencies and open the project in VS Code
19
+ right away.
20
+
12
21
  You get a typed extraction example (`src/person.tsi` + a plain-TS consumer),
13
22
  `nola.config.ts`, tsconfig, and a recorded replay ledger so the first run
14
23
  works without any API key. `npm create nola` is a short alias of this package
package/dist/add.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { type ProviderId } from "./providers.js";
1
2
  export interface AddResult {
2
3
  /** files written, e.g. ["nola.config.ts", "package.json"] */
3
4
  wrote: string[];
@@ -8,11 +9,18 @@ export interface AddResult {
8
9
  /** true when nothing needed doing */
9
10
  alreadySetUp: boolean;
10
11
  }
12
+ export interface AddOptions {
13
+ version?: string;
14
+ /**
15
+ * The wizard's provider choice: a vendor writes its own config (and names
16
+ * the `model:` line when a config already exists); nola and none write the
17
+ * empty template's — the nola key step rewrites it afterwards (`applyTrial`).
18
+ */
19
+ provider?: ProviderId;
20
+ }
11
21
  /**
12
22
  * Retrofit an existing npm project: write nola.config.ts (unless present) and
13
23
  * additively merge the required packages. Never rewrites existing entries.
14
24
  */
15
- export declare function addNola(targetDir: string, opts?: {
16
- version?: string;
17
- }): Promise<AddResult>;
25
+ export declare function addNola(targetDir: string, opts?: AddOptions): Promise<AddResult>;
18
26
  //# sourceMappingURL=add.d.ts.map
package/dist/add.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../src/add.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,SAAS;IACxB,6DAA6D;IAC7D,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,kCAAkC;IAClC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,yDAAyD;IACzD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,qCAAqC;IACrC,YAAY,EAAE,OAAO,CAAC;CACvB;AAaD;;;GAGG;AACH,wBAAsB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAqDpG"}
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../src/add.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,UAAU,EAAgB,MAAM,gBAAgB,CAAC;AAG/D,MAAM,WAAW,SAAS;IACxB,6DAA6D;IAC7D,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,kCAAkC;IAClC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,yDAAyD;IACzD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,qCAAqC;IACrC,YAAY,EAAE,OAAO,CAAC;CACvB;AAKD,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,UAAU,CAAC;CACvB;AAoBD;;;GAGG;AACH,wBAAsB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CA0D1F"}
package/dist/add.js CHANGED
@@ -1,9 +1,19 @@
1
1
  import { existsSync } from "node:fs";
2
2
  import { readFile, writeFile } from "node:fs/promises";
3
3
  import { join, resolve } from "node:path";
4
- import { ownVersion } from "./scaffold.js";
4
+ import { providerById } from "./providers.js";
5
+ import { ownVersion, providerConfigUrl } from "./scaffold.js";
5
6
  /** The retrofit config is the empty template's — a retrofit has no replay ledger. */
6
7
  const EMPTY_CONFIG_URL = new URL("../templates/empty/nola.config.ts", import.meta.url);
8
+ /** The vendor a retrofit configures, or undefined for nola/none (which keep the empty template's config). */
9
+ function vendorOf(provider) {
10
+ if (provider === undefined || provider === "nola" || provider === "none")
11
+ return undefined;
12
+ const def = providerById(provider);
13
+ if (!def?.model)
14
+ throw new Error(`provider "${provider}" has no vendor config`);
15
+ return { id: provider, label: def.label, model: def.model };
16
+ }
7
17
  /** null range = "^<lockstep version>"; typescript is NOT lockstep, it keeps the template pin. */
8
18
  const REQUIRED = [
9
19
  ["dependencies", "@nola-lang/runtime", null],
@@ -41,11 +51,14 @@ export async function addNola(targetDir, opts = {}) {
41
51
  return undefined;
42
52
  };
43
53
  const configPath = join(absRoot, "nola.config.ts");
54
+ const vendor = vendorOf(opts.provider);
44
55
  if (existsSync(configPath)) {
45
- skipped.push("nola.config.ts already exists — left untouched");
56
+ skipped.push(vendor
57
+ ? `nola.config.ts already exists — set \`model: ${vendor.model}\` (${vendor.id} from @nola-lang/providers) to use ${vendor.label}`
58
+ : "nola.config.ts already exists — left untouched");
46
59
  }
47
60
  else {
48
- await writeFile(configPath, await readFile(EMPTY_CONFIG_URL, "utf8"));
61
+ await writeFile(configPath, await readFile(vendor ? providerConfigUrl(vendor.id) : EMPTY_CONFIG_URL, "utf8"));
49
62
  wrote.push("nola.config.ts");
50
63
  }
51
64
  for (const [section, name, fixedRange] of REQUIRED) {
package/dist/add.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"add.js","sourceRoot":"","sources":["../src/add.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../src/add.ts"],"names":[],"mappings":"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"}
package/dist/agents.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  export type AgentId = "claude" | "cursor" | "copilot" | "agents-md";
2
2
  export declare const AGENT_IDS: readonly AgentId[];
3
- /** Shared option list for every "Set up coding agents?" multiselect. */
3
+ /** `nola skill install`'s agents multiselect (the scaffold asks its own gated list, see flow.ts). */
4
+ export declare const SKILL_AGENTS_QUESTION = "Set up coding agents? (Space toggles, Enter confirms)";
5
+ /** Shared option list for every agents multiselect. */
4
6
  export declare const AGENT_OPTIONS: {
5
7
  value: AgentId;
6
8
  label: string;
@@ -24,7 +26,7 @@ export declare function readSkillSource(): Promise<SkillSource>;
24
26
  export declare function agentsSection(s: SkillSource, version: string): string;
25
27
  /** Agents whose tooling is already present in the project. */
26
28
  export declare function detectAgents(targetDir: string): AgentId[];
27
- /** The interactive preselection: detected agents + the cross-agent baseline. */
29
+ /** The interactive preselection: detected agents + Claude Code (the wizard's default agent — deduped when detected). */
28
30
  export declare function defaultAgents(targetDir: string): AgentId[];
29
31
  /** "all" | "none" | comma list of ids; unknown ids throw listing valid values. */
30
32
  export declare function parseAgentsFlag(value: string): AgentId[];
@@ -1 +1 @@
1
- {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;AAEpE,eAAO,MAAM,SAAS,EAAE,SAAS,OAAO,EAAiD,CAAC;AAE1F,wEAAwE;AACxE,eAAO,MAAM,aAAa,EAAE;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAK1E,CAAC;AAiBF;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;IACpB,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,CAQ5D;AA6BD,iFAAiF;AACjF,wBAAgB,aAAa,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAErE;AAMD,8DAA8D;AAC9D,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,EAAE,CAOzD;AAED,gFAAgF;AAChF,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,EAAE,CAE1D;AAED,kFAAkF;AAClF,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,CAaxD;AAED,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,sDAAsD;IACtD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,0EAA0E;IAC1E,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,+EAA+E;IAC/E,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAyCD;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,EAAE,EACjB,IAAI,GAAE,uBAA4B,GACjC,OAAO,CAAC,gBAAgB,CAAC,CAsD3B"}
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;AAEpE,eAAO,MAAM,SAAS,EAAE,SAAS,OAAO,EAAiD,CAAC;AAE1F,qGAAqG;AACrG,eAAO,MAAM,qBAAqB,0DAA0D,CAAC;AAE7F,uDAAuD;AACvD,eAAO,MAAM,aAAa,EAAE;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAK1E,CAAC;AAcF;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;IACpB,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,CAQ5D;AA6BD,iFAAiF;AACjF,wBAAgB,aAAa,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAErE;AAMD,8DAA8D;AAC9D,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,EAAE,CAOzD;AAED,wHAAwH;AACxH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,EAAE,CAE1D;AAED,kFAAkF;AAClF,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,CAaxD;AAED,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,sDAAsD;IACtD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,0EAA0E;IAC1E,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,+EAA+E;IAC/E,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAqCD;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,EAAE,EACjB,IAAI,GAAE,uBAA4B,GACjC,OAAO,CAAC,gBAAgB,CAAC,CAsD3B"}
package/dist/agents.js CHANGED
@@ -4,7 +4,9 @@ import { dirname, join, resolve } from "node:path";
4
4
  import { fileURLToPath } from "node:url";
5
5
  import { ownVersion } from "./scaffold.js";
6
6
  export const AGENT_IDS = ["claude", "cursor", "copilot", "agents-md"];
7
- /** Shared option list for every "Set up coding agents?" multiselect. */
7
+ /** `nola skill install`'s agents multiselect (the scaffold asks its own gated list, see flow.ts). */
8
+ export const SKILL_AGENTS_QUESTION = "Set up coding agents? (Space toggles, Enter confirms)";
9
+ /** Shared option list for every agents multiselect. */
8
10
  export const AGENT_OPTIONS = [
9
11
  { value: "agents-md", label: "AGENTS.md", hint: "cross-agent instructions (Codex, Gemini CLI, …)" },
10
12
  { value: "claude", label: "Claude Code", hint: ".claude/skills/nola/ (full skill + references)" },
@@ -20,8 +22,6 @@ const SKILLS_DIR = fileURLToPath(new URL("../skills/nola/", import.meta.url));
20
22
  /** Marks a generated file so staleness is detectable (spec §3). */
21
23
  const STAMP_RE = /^<!-- nola-skill v(\S+)/m;
22
24
  const stamp = (version) => `<!-- nola-skill v${version} — regenerate with: nola skill install --force -->`;
23
- /** Pointer-era adapters (0.1.0–0.1.3) named this path; they are superseded. */
24
- const LEGACY_MARKER = "node_modules/nola-lang/skills/nola";
25
25
  export async function readSkillSource() {
26
26
  const full = (await readFile(join(SKILLS_DIR, "SKILL.md"), "utf8")).replaceAll("\r\n", "\n");
27
27
  const fm = /^---\n([\s\S]*?)\n---\n/.exec(full);
@@ -75,9 +75,9 @@ export function detectAgents(targetDir) {
75
75
  found.push("copilot");
76
76
  return found;
77
77
  }
78
- /** The interactive preselection: detected agents + the cross-agent baseline. */
78
+ /** The interactive preselection: detected agents + Claude Code (the wizard's default agent — deduped when detected). */
79
79
  export function defaultAgents(targetDir) {
80
- return [...detectAgents(targetDir), "agents-md"];
80
+ return [...new Set([...detectAgents(targetDir), "claude"])];
81
81
  }
82
82
  /** "all" | "none" | comma list of ids; unknown ids throw listing valid values. */
83
83
  export function parseAgentsFlag(value) {
@@ -99,26 +99,22 @@ export function parseAgentsFlag(value) {
99
99
  /** Classify an existing target per spec §3. */
100
100
  function disposition(path, existing, version, force) {
101
101
  const found = STAMP_RE.exec(existing);
102
- // Legacy pointers are checked FIRST and independently of the stamp: the
103
- // 0.1.0–0.1.3 adapters predate stamping, so they carry none at all.
104
- const legacy = existing.includes(LEGACY_MARKER);
105
- if (!legacy) {
106
- if (!found) {
107
- return {
108
- write: false,
109
- note: `${path} already exists and was not generated by nola — left untouched`,
110
- stale: false,
111
- };
112
- }
113
- if (found[1] === version)
114
- return { write: false, note: `${path} is up to date (v${version})`, stale: false };
102
+ if (!found) {
103
+ return {
104
+ write: false,
105
+ note: `${path} already exists and was not generated by nola — left untouched`,
106
+ stale: false,
107
+ };
115
108
  }
109
+ if (found[1] === version)
110
+ return { write: false, note: `${path} is up to date (v${version})`, stale: false };
116
111
  if (force)
117
112
  return { write: true };
118
- const what = legacy
119
- ? `${path} uses the superseded pointer form`
120
- : `${path} is stale (v${found?.[1]} → v${version})`;
121
- return { write: false, note: `${what} — re-run with --force to replace it`, stale: true };
113
+ return {
114
+ write: false,
115
+ note: `${path} is stale (v${found[1]} → v${version}) — re-run with --force to replace it`,
116
+ stale: true,
117
+ };
122
118
  }
123
119
  /** Copy the canonical skill dir verbatim (stamp aside) into .claude/skills/nola/. */
124
120
  async function writeClaudeSkill(root, s, version) {
@@ -1 +1 @@
1
- {"version":3,"file":"agents.js","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"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"}
package/dist/api.d.ts ADDED
@@ -0,0 +1,129 @@
1
+ /**
2
+ * The hosted Nola API, from the scaffolder's side. This package ships with
3
+ * ZERO runtime deps, so the wire shapes below are structural mirrors of
4
+ * `@nola-lang/core`'s `nola-protocol.ts` (the authoritative contract the
5
+ * platform imports); `packages/nola-lang/src/account.ts` pins them equal at
6
+ * compile time.
7
+ */
8
+ export declare const DEFAULT_API_URL = "https://api.nola.sh";
9
+ /** `NOLA_API_URL` overrides the endpoint (dev: http://127.0.0.1:8787 against `wrangler dev`). */
10
+ export declare function nolaApiUrl(env?: NodeJS.ProcessEnv): string;
11
+ export interface ClientInit {
12
+ fetch?: typeof globalThis.fetch;
13
+ /** default: nolaApiUrl() */
14
+ baseUrl?: string;
15
+ }
16
+ export type NolaAccountKind = "anonymous" | "user";
17
+ export interface NolaTrialResponse {
18
+ apiKey: string;
19
+ account: {
20
+ id: string;
21
+ kind: NolaAccountKind;
22
+ };
23
+ trial: {
24
+ runs: number;
25
+ };
26
+ }
27
+ /** Where the CLI signs in: the Auth0 tenant (`issuer` = https://<domain>), the CLI's public client id, the API audience, the loopback ports registered for the PKCE callback. */
28
+ export interface NolaAuthConfig {
29
+ issuer: string;
30
+ clientId: string;
31
+ audience: string;
32
+ /** `http://127.0.0.1:<port>/callback` is registered on the tenant for each; the CLI binds the first free one. Absent or empty = no sign-in here. */
33
+ redirectPorts?: readonly number[];
34
+ }
35
+ export interface NolaCapabilities {
36
+ protocol: 1;
37
+ infer?: boolean;
38
+ ingest: boolean;
39
+ profiles?: readonly string[];
40
+ /** absent when sign-in is not available on this server */
41
+ auth?: NolaAuthConfig;
42
+ /** the console origin (billing page, account) — absent on servers without a console */
43
+ consoleUrl?: string;
44
+ }
45
+ export interface NolaBillingSession {
46
+ url: string;
47
+ /** ISO-8601 */
48
+ expiresAt: string;
49
+ }
50
+ /** POST /v1/console/keys — 201; the raw key appears here exactly once. */
51
+ export interface NolaConsoleCreatedKey {
52
+ id: string;
53
+ name: string | null;
54
+ prefix: string;
55
+ suffix: string | null;
56
+ apiKey: string;
57
+ }
58
+ /** GET /v1/console/me — the signed-in user and their personal account. */
59
+ export interface NolaConsoleMe {
60
+ user: {
61
+ id: string;
62
+ email: string | null;
63
+ name: string | null;
64
+ avatarUrl: string | null;
65
+ };
66
+ account: {
67
+ id: string;
68
+ kind: NolaAccountKind;
69
+ status: "active" | "suspended";
70
+ mode: "trial" | "paid";
71
+ trial: {
72
+ runsUsed: number;
73
+ runsLimit: number;
74
+ };
75
+ balanceMicro: number;
76
+ spendThisMonthMicro: number;
77
+ liveKeyCount: number;
78
+ };
79
+ }
80
+ /** POST /v1/console/sessions/:id/claim — links a key's (anonymous) account to the signed-in user. */
81
+ export interface NolaClaim {
82
+ outcome: "claimed" | "merged" | "already_owned";
83
+ accountId: string;
84
+ }
85
+ /** A failed API call. `status` 0 means the request never got an HTTP answer (offline, DNS, refused). */
86
+ export declare class NolaApiError extends Error {
87
+ readonly status: number;
88
+ readonly code?: string | undefined;
89
+ readonly retryAfterMs?: number | undefined;
90
+ name: string;
91
+ constructor(message: string, status: number, code?: string | undefined, retryAfterMs?: number | undefined, options?: {
92
+ cause?: unknown;
93
+ });
94
+ }
95
+ /**
96
+ * The API no longer accepts this Auth0 session: an invalid token (401), or a token
97
+ * without / with a stale `nola:account_id` (403 `account_claim_missing` /
98
+ * `account_mismatch`, spec 2026-09-07 account-claim-required). The cure is the same:
99
+ * forget the session and sign in again, which re-provisions the account.
100
+ */
101
+ export declare function isSessionRejected(err: unknown): err is NolaApiError;
102
+ /** A key the CLI obtained: from the machine's one anonymous trial, or minted on the signed-in user's account. */
103
+ export interface KeyGrant {
104
+ apiKey: string;
105
+ source: "trial" | "account";
106
+ /** the account the key belongs to, when the server said */
107
+ accountId?: string;
108
+ /** the trial's run limit (the public offer, 25) — trial keys only */
109
+ runs?: number;
110
+ }
111
+ /**
112
+ * POST /v1/trial — mint an anonymous trial account and its key. The body is
113
+ * always the empty object: nothing on this machine identifies it to the
114
+ * server (spec 2026-09-02-home-config-trial-identity-design.md §6).
115
+ */
116
+ export declare function requestTrial(init?: ClientInit): Promise<KeyGrant>;
117
+ /** GET /v1/capabilities — what this server offers; the CLI reads `auth` (sign-in) and `consoleUrl`. */
118
+ export declare function fetchCapabilities(init?: ClientInit): Promise<NolaCapabilities>;
119
+ /** POST /v1/console/keys — a new key on the signed-in user's account (Auth0 access token as Bearer). */
120
+ export declare function createConsoleKey(accessToken: string, init?: ClientInit): Promise<KeyGrant>;
121
+ /** GET /v1/console/me — the signed-in user and their account (Auth0 access token as Bearer). */
122
+ export declare function fetchMe(accessToken: string, init?: ClientInit): Promise<NolaConsoleMe>;
123
+ /** POST /v1/billing/session — a short-lived session for the key's account; used as the claim carrier (the key never leaves this process). */
124
+ export declare function createBillingSession(apiKey: string, init?: ClientInit): Promise<NolaBillingSession>;
125
+ /** POST /v1/console/sessions/:id/claim — link the session's account to the signed-in user (Auth0 access token as Bearer). */
126
+ export declare function claimSession(accessToken: string, sessionId: string, init?: ClientInit): Promise<NolaClaim>;
127
+ /** The session id a billing-session URL carries (`…/billing?session=bill_…`, from `POST /v1/billing/session`); undefined when the URL has none. */
128
+ export declare function sessionIdOf(url: string): string | undefined;
129
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
package/dist/api.js ADDED
@@ -0,0 +1,156 @@
1
+ import { ownVersion } from "./scaffold.js";
2
+ /**
3
+ * The hosted Nola API, from the scaffolder's side. This package ships with
4
+ * ZERO runtime deps, so the wire shapes below are structural mirrors of
5
+ * `@nola-lang/core`'s `nola-protocol.ts` (the authoritative contract the
6
+ * platform imports); `packages/nola-lang/src/account.ts` pins them equal at
7
+ * compile time.
8
+ */
9
+ export const DEFAULT_API_URL = "https://api.nola.sh";
10
+ /** `NOLA_API_URL` overrides the endpoint (dev: http://127.0.0.1:8787 against `wrangler dev`). */
11
+ export function nolaApiUrl(env = process.env) {
12
+ return (env.NOLA_API_URL || DEFAULT_API_URL).replace(/\/$/, "");
13
+ }
14
+ /** A failed API call. `status` 0 means the request never got an HTTP answer (offline, DNS, refused). */
15
+ export class NolaApiError extends Error {
16
+ status;
17
+ code;
18
+ retryAfterMs;
19
+ name = "NolaApiError";
20
+ constructor(message, status, code, retryAfterMs, options) {
21
+ super(message, options);
22
+ this.status = status;
23
+ this.code = code;
24
+ this.retryAfterMs = retryAfterMs;
25
+ }
26
+ }
27
+ /**
28
+ * The API no longer accepts this Auth0 session: an invalid token (401), or a token
29
+ * without / with a stale `nola:account_id` (403 `account_claim_missing` /
30
+ * `account_mismatch`, spec 2026-09-07 account-claim-required). The cure is the same:
31
+ * forget the session and sign in again, which re-provisions the account.
32
+ */
33
+ export function isSessionRejected(err) {
34
+ if (!(err instanceof NolaApiError))
35
+ return false;
36
+ if (err.status === 401)
37
+ return true;
38
+ return err.status === 403 && (err.code === "account_claim_missing" || err.code === "account_mismatch");
39
+ }
40
+ /** Retry-After is either delta-seconds or an HTTP-date; both become a ms delta. */
41
+ function parseRetryAfter(header) {
42
+ if (header === null || header.trim() === "")
43
+ return undefined;
44
+ const seconds = Number(header);
45
+ if (Number.isFinite(seconds))
46
+ return Math.max(0, seconds * 1000);
47
+ const date = Date.parse(header);
48
+ return Number.isNaN(date) ? undefined : Math.max(0, date - Date.now());
49
+ }
50
+ function parseErrorBody(text) {
51
+ try {
52
+ const parsed = JSON.parse(text);
53
+ const e = parsed?.error;
54
+ if (e && typeof e === "object" && typeof e.code === "string" && typeof e.message === "string")
55
+ return e;
56
+ }
57
+ catch {
58
+ // not JSON
59
+ }
60
+ return undefined;
61
+ }
62
+ async function request(method, path, init) {
63
+ const doFetch = init.fetch ?? globalThis.fetch;
64
+ const url = `${init.baseUrl ?? nolaApiUrl()}${path}`;
65
+ const headers = {
66
+ accept: "application/json",
67
+ "user-agent": `create-nola-lang/${await ownVersion()}`,
68
+ };
69
+ if (init.bearer)
70
+ headers.authorization = `Bearer ${init.bearer}`;
71
+ if (init.body !== undefined)
72
+ headers["content-type"] = "application/json";
73
+ let res;
74
+ try {
75
+ res = await doFetch(url, {
76
+ method,
77
+ headers,
78
+ ...(init.body !== undefined ? { body: JSON.stringify(init.body) } : {}),
79
+ });
80
+ }
81
+ catch (err) {
82
+ throw new NolaApiError(`Could not reach the Nola API at ${url}: ${err instanceof Error ? err.message : String(err)}`, 0, undefined, undefined, { cause: err });
83
+ }
84
+ const text = await res.text();
85
+ if (!res.ok) {
86
+ const wire = parseErrorBody(text);
87
+ const retryAfterMs = parseRetryAfter(res.headers.get("retry-after"));
88
+ throw new NolaApiError(wire?.message ??
89
+ `Nola API ${method} ${path} failed: ${res.status} ${res.statusText}${text ? ` — ${text.slice(0, 300)}` : ""}`, res.status, wire?.code, retryAfterMs);
90
+ }
91
+ try {
92
+ return { status: res.status, body: JSON.parse(text) };
93
+ }
94
+ catch {
95
+ throw new NolaApiError(`Nola API ${method} ${path} returned a non-JSON body`, res.status);
96
+ }
97
+ }
98
+ /**
99
+ * POST /v1/trial — mint an anonymous trial account and its key. The body is
100
+ * always the empty object: nothing on this machine identifies it to the
101
+ * server (spec 2026-09-02-home-config-trial-identity-design.md §6).
102
+ */
103
+ export async function requestTrial(init = {}) {
104
+ const { status, body } = await request("POST", "/v1/trial", { ...init, body: {} });
105
+ if (typeof body?.apiKey !== "string" || !body.apiKey.startsWith("nola_sk_")) {
106
+ throw new NolaApiError("Nola API POST /v1/trial returned no API key", status);
107
+ }
108
+ return {
109
+ apiKey: body.apiKey,
110
+ source: "trial",
111
+ runs: body.trial?.runs ?? 0,
112
+ accountId: body.account?.id ?? "",
113
+ };
114
+ }
115
+ /** GET /v1/capabilities — what this server offers; the CLI reads `auth` (sign-in) and `consoleUrl`. */
116
+ export async function fetchCapabilities(init = {}) {
117
+ return (await request("GET", "/v1/capabilities", init)).body;
118
+ }
119
+ /** POST /v1/console/keys — a new key on the signed-in user's account (Auth0 access token as Bearer). */
120
+ export async function createConsoleKey(accessToken, init = {}) {
121
+ const { status, body } = await request("POST", "/v1/console/keys", {
122
+ ...init,
123
+ bearer: accessToken,
124
+ body: { name: "cli" },
125
+ });
126
+ if (typeof body?.apiKey !== "string" || !body.apiKey.startsWith("nola_sk_")) {
127
+ throw new NolaApiError("Nola API POST /v1/console/keys returned no API key", status);
128
+ }
129
+ return { apiKey: body.apiKey, source: "account" };
130
+ }
131
+ /** GET /v1/console/me — the signed-in user and their account (Auth0 access token as Bearer). */
132
+ export async function fetchMe(accessToken, init = {}) {
133
+ return (await request("GET", "/v1/console/me", { ...init, bearer: accessToken })).body;
134
+ }
135
+ /** POST /v1/billing/session — a short-lived session for the key's account; used as the claim carrier (the key never leaves this process). */
136
+ export async function createBillingSession(apiKey, init = {}) {
137
+ return (await request("POST", "/v1/billing/session", { ...init, bearer: apiKey, body: {} })).body;
138
+ }
139
+ /** POST /v1/console/sessions/:id/claim — link the session's account to the signed-in user (Auth0 access token as Bearer). */
140
+ export async function claimSession(accessToken, sessionId, init = {}) {
141
+ return (await request("POST", `/v1/console/sessions/${encodeURIComponent(sessionId)}/claim`, {
142
+ ...init,
143
+ bearer: accessToken,
144
+ body: {},
145
+ })).body;
146
+ }
147
+ /** The session id a billing-session URL carries (`…/billing?session=bill_…`, from `POST /v1/billing/session`); undefined when the URL has none. */
148
+ export function sessionIdOf(url) {
149
+ try {
150
+ return new URL(url).searchParams.get("session") ?? undefined;
151
+ }
152
+ catch {
153
+ return undefined;
154
+ }
155
+ }
156
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
package/dist/auth.d.ts ADDED
@@ -0,0 +1,87 @@
1
+ import { type ClientInit, type NolaAuthConfig } from "./api.js";
2
+ import { type Session } from "./credentials.js";
3
+ /**
4
+ * Sign-in for the CLI: the Auth0 Authorization Code + PKCE flow (RFC 7636)
5
+ * with a loopback redirect (RFC 8252 §7.3), against the tenant the Nola API
6
+ * names in `GET /v1/capabilities` (platform spec 2026-09-07 §6). The machine's
7
+ * recorded trial account id rides `/authorize` as `ext-nola_account`; the
8
+ * tenant's Action puts it in the access token and the API claims the account.
9
+ * Zero deps — node:http for the one callback, form-encoded POSTs over fetch.
10
+ * Tokens live in `~/.nola/credentials.json` and are never printed.
11
+ */
12
+ /** The server does not offer sign-in (no `auth` in its capabilities). */
13
+ export declare class SignInUnavailableError extends Error {
14
+ name: string;
15
+ constructor(message?: string);
16
+ }
17
+ /** The sign-in ran but did not complete (denied, expired, network, malformed reply). */
18
+ export declare class SignInError extends Error {
19
+ name: string;
20
+ }
21
+ export interface TokenSet {
22
+ accessToken: string;
23
+ refreshToken?: string;
24
+ /** seconds */
25
+ expiresIn: number;
26
+ idToken?: string;
27
+ }
28
+ /** Mirrors core's NOLA_ACCOUNT_PARAM — the /authorize query parameter the tenant's post-login Action reads. */
29
+ export declare const ACCOUNT_PARAM = "ext-nola_account";
30
+ /** Mirrors core's NOLA_ACCOUNT_CLAIM — the access-token claim the Action sets; the API refuses tokens without it (spec 2026-09-07 account-claim-required). */
31
+ export declare const ACCOUNT_CLAIM = "nola:account_id";
32
+ /** How long the browser has to come back to the loopback callback. */
33
+ export declare const SIGN_IN_TIMEOUT_MS = 300000;
34
+ /** RFC 7636: a 32-byte random verifier and its S256 challenge, both base64url. */
35
+ export declare function pkcePair(): {
36
+ verifier: string;
37
+ challenge: string;
38
+ };
39
+ /** The `/authorize` URL: code flow, PKCE S256, our audience and scopes, `state`, and the trial hint when this machine has one. */
40
+ export declare function authorizeUrl(auth: NolaAuthConfig, p: {
41
+ redirectUri: string;
42
+ challenge: string;
43
+ state: string;
44
+ accountId?: string;
45
+ }): string;
46
+ /** The `email` claim of an id token's payload — display only, never verified. */
47
+ export declare function emailFromIdToken(idToken: string | undefined): string | null;
48
+ /** The `nola:account_id` claim of an access token, or null when the tenant's Action did not set one. */
49
+ export declare function accountIdOfToken(accessToken: string | undefined): string | null;
50
+ /** A refresh; Auth0's rotating refresh tokens return a replacement, which callers store. */
51
+ export declare function refreshTokens(auth: NolaAuthConfig, refreshToken: string, init?: ClientInit): Promise<TokenSet>;
52
+ /** Best effort: tell the tenant the refresh token is dead. Never throws. */
53
+ export declare function revokeToken(auth: NolaAuthConfig, refreshToken: string, init?: ClientInit): Promise<void>;
54
+ export interface AuthOptions extends ClientInit {
55
+ /** the directory holding .nola/; default os.homedir() */
56
+ home?: string;
57
+ /** API base URL; default NOLA_API_URL env, else https://api.nola.sh */
58
+ apiUrl?: string;
59
+ }
60
+ /** The server's sign-in configuration (issuer, client, audience, at least one usable loopback port), or SignInUnavailableError. */
61
+ export declare function authConfig(opts?: AuthOptions): Promise<{
62
+ auth: NolaAuthConfig;
63
+ consoleUrl?: string;
64
+ }>;
65
+ export interface SignInOptions extends AuthOptions {
66
+ /** human-facing progress lines (the URL, "Waiting…", "Signed in as …") */
67
+ note: (message: string) => void;
68
+ /** browser opener; default openBrowser (openUrl unless NOLA_NO_BROWSER / NOLA_BROWSER). Return false when nothing could be opened — the URL is always noted anyway. */
69
+ open?: (url: string) => boolean;
70
+ /** how long to wait for the callback; default SIGN_IN_TIMEOUT_MS */
71
+ timeoutMs?: number;
72
+ }
73
+ /** The whole PKCE flow: discover, listen, open /authorize, take the callback, exchange, store. Returns the new session. */
74
+ export declare function signIn(opts: SignInOptions): Promise<Session>;
75
+ /**
76
+ * A usable access token for the API URL, refreshing (and re-storing) when
77
+ * the stored one is within a minute of expiry. undefined = not signed in. A
78
+ * refresh the tenant refuses deletes the session (the user signs in again);
79
+ * a network failure during refresh throws so callers can say so.
80
+ */
81
+ export declare function accessTokenFor(opts?: AuthOptions): Promise<{
82
+ token: string;
83
+ session: Session;
84
+ } | undefined>;
85
+ /** Revoke best-effort and forget the session. */
86
+ export declare function signOut(opts?: AuthOptions): Promise<"signed-out" | "not-signed-in">;
87
+ //# sourceMappingURL=auth.d.ts.map