@nowline/cli 0.5.1 → 0.7.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.
Files changed (50) hide show
  1. package/dist/cli/args.d.ts +17 -3
  2. package/dist/cli/args.d.ts.map +1 -1
  3. package/dist/cli/args.js +16 -1
  4. package/dist/cli/args.js.map +1 -1
  5. package/dist/cli/help.d.ts.map +1 -1
  6. package/dist/cli/help.js +42 -2
  7. package/dist/cli/help.js.map +1 -1
  8. package/dist/commands/mcp.d.ts +17 -0
  9. package/dist/commands/mcp.d.ts.map +1 -0
  10. package/dist/commands/mcp.js +50 -0
  11. package/dist/commands/mcp.js.map +1 -0
  12. package/dist/commands/render.d.ts +1 -1
  13. package/dist/commands/render.d.ts.map +1 -1
  14. package/dist/commands/render.js +149 -156
  15. package/dist/commands/render.js.map +1 -1
  16. package/dist/commands/serve.d.ts.map +1 -1
  17. package/dist/commands/serve.js +20 -12
  18. package/dist/commands/serve.js.map +1 -1
  19. package/dist/convert/parse-json.d.ts +1 -6
  20. package/dist/convert/parse-json.d.ts.map +1 -1
  21. package/dist/convert/parse-json.js +2 -33
  22. package/dist/convert/parse-json.js.map +1 -1
  23. package/dist/convert/printer.d.ts +1 -5
  24. package/dist/convert/printer.d.ts.map +1 -1
  25. package/dist/convert/printer.js +2 -333
  26. package/dist/convert/printer.js.map +1 -1
  27. package/dist/convert/schema.d.ts +1 -32
  28. package/dist/convert/schema.d.ts.map +1 -1
  29. package/dist/convert/schema.js +2 -76
  30. package/dist/convert/schema.js.map +1 -1
  31. package/dist/generated/version.d.ts +1 -1
  32. package/dist/generated/version.js +2 -2
  33. package/dist/index.js +4 -0
  34. package/dist/index.js.map +1 -1
  35. package/dist/resvg.wasm +0 -0
  36. package/man/nowline.1 +41 -3
  37. package/package.json +18 -13
  38. package/scripts/bun-entry.mjs +25 -0
  39. package/scripts/compile.mjs +11 -6
  40. package/scripts/copy-wasm.mjs +23 -0
  41. package/src/cli/args.ts +35 -4
  42. package/src/cli/help.ts +42 -2
  43. package/src/commands/mcp.ts +58 -0
  44. package/src/commands/render.ts +194 -177
  45. package/src/commands/serve.ts +30 -11
  46. package/src/convert/parse-json.ts +2 -57
  47. package/src/convert/printer.ts +2 -376
  48. package/src/convert/schema.ts +9 -105
  49. package/src/generated/version.ts +2 -2
  50. package/src/index.ts +3 -0
@@ -1,4 +1,4 @@
1
- export type ModeKind = 'render' | 'serve' | 'init' | 'help' | 'version';
1
+ export type ModeKind = 'render' | 'serve' | 'init' | 'mcp' | 'help' | 'version';
2
2
  export interface ParsedArgs {
3
3
  /** Resolved mode after dispatch (mutual-exclusivity already checked). */
4
4
  mode: ModeKind;
@@ -15,9 +15,16 @@ export interface ParsedArgs {
15
15
  /** Now-line date string from `--now`. Undefined means "use the actual
16
16
  * current date" (the default). The literal value `"-"` means
17
17
  * "suppress the now-line entirely" (mirrors the Unix-`-` convention
18
- * used elsewhere in the CLI). Otherwise expected as YYYY-MM-DD;
19
- * parsed downstream by resolveNowArg. */
18
+ * used elsewhere in the CLI). Accepts YYYY-MM-DD (floating) or a
19
+ * full ISO 8601 instant with Z/offset; parsed downstream by resolveToday. */
20
20
  now?: string;
21
+ /**
22
+ * IANA timezone name, ISO 8601 offset, `"UTC"`, `"Z"`, or `"local"`.
23
+ * Governs which civil date is "today" when `--now` is omitted.
24
+ * Defaults to the host's local zone when absent.
25
+ * Ignored when `--now` carries an explicit date or embedded offset.
26
+ */
27
+ timezone?: string;
21
28
  noLinks: boolean;
22
29
  scale?: string;
23
30
  strict: boolean;
@@ -29,6 +36,12 @@ export interface ParsedArgs {
29
36
  fontSans?: string;
30
37
  fontMono?: string;
31
38
  headless: boolean;
39
+ /**
40
+ * Opt in to the platform font probe for raster/PDF export. Off by default
41
+ * (bundled-first): exports use the bundled DejaVu pair on every OS so the
42
+ * output is identical cross-platform and matches the live preview.
43
+ */
44
+ useSystemFonts: boolean;
32
45
  start?: string;
33
46
  /**
34
47
  * BCP-47 locale override (`fr-CA`, `fr`, …). When omitted the CLI
@@ -42,6 +55,7 @@ export interface ParsedArgs {
42
55
  open: boolean;
43
56
  diagnosticFormat?: string;
44
57
  template?: string;
58
+ root?: string;
45
59
  }
46
60
  /**
47
61
  * Pure argument parser. Walks `argv` once, identifies mode flags, applies
@@ -1 +1 @@
1
- {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAExE,MAAM,WAAW,UAAU;IACvB,yEAAyE;IACzE,IAAI,EAAE,QAAQ,CAAC;IACf,uGAAuG;IACvG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,MAAM,EAAE,OAAO,CAAC;IAChB,+DAA+D;IAC/D,QAAQ,EAAE,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;IAGzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;8CAI0C;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IAGd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAG1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CAsK7D"}
1
+ {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;AAEhF,MAAM,WAAW,UAAU;IACvB,yEAAyE;IACzE,IAAI,EAAE,QAAQ,CAAC;IACf,uGAAuG;IACvG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,MAAM,EAAE,OAAO,CAAC;IAChB,+DAA+D;IAC/D,QAAQ,EAAE,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;IAGzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;kFAI8E;IAC9E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IAGd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAG1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CAqL7D"}
package/dist/cli/args.js CHANGED
@@ -17,6 +17,7 @@ export function parseArgv(argv) {
17
17
  strict: false,
18
18
  open: false,
19
19
  headless: false,
20
+ useSystemFonts: false,
20
21
  };
21
22
  }
22
23
  const config = {
@@ -33,6 +34,7 @@ export function parseArgv(argv) {
33
34
  'input-format': { type: 'string' },
34
35
  serve: { type: 'boolean' },
35
36
  init: { type: 'boolean' },
37
+ mcp: { type: 'boolean' },
36
38
  'dry-run': { type: 'boolean', short: 'n' },
37
39
  theme: { type: 'string', short: 't' },
38
40
  // `--now <date>` overrides the now-line position; without it, the
@@ -40,6 +42,9 @@ export function parseArgv(argv) {
40
42
  // suppress the now-line entirely (Unix-`-` sentinel; same idea
41
43
  // as `-o -` for stdout).
42
44
  now: { type: 'string' },
45
+ // `--timezone` controls which civil date is "today" when --now is
46
+ // omitted. Accepts IANA names, ISO offsets, "UTC", "Z", or "local".
47
+ timezone: { type: 'string' },
43
48
  'no-links': { type: 'boolean' },
44
49
  scale: { type: 'string', short: 's' },
45
50
  strict: { type: 'boolean' },
@@ -50,6 +55,8 @@ export function parseArgv(argv) {
50
55
  open: { type: 'boolean' },
51
56
  'diagnostic-format': { type: 'string' },
52
57
  template: { type: 'string' },
58
+ // MCP
59
+ root: { type: 'string' },
53
60
  // Format-specific (m2c)
54
61
  'page-size': { type: 'string' },
55
62
  orientation: { type: 'string' },
@@ -57,6 +64,7 @@ export function parseArgv(argv) {
57
64
  'font-sans': { type: 'string' },
58
65
  'font-mono': { type: 'string' },
59
66
  headless: { type: 'boolean' },
67
+ 'use-system-fonts': { type: 'boolean' },
60
68
  start: { type: 'string' },
61
69
  // Localization (m-loc-b)
62
70
  locale: { type: 'string' },
@@ -81,6 +89,7 @@ export function parseArgv(argv) {
81
89
  strict: false,
82
90
  open: false,
83
91
  headless: false,
92
+ useSystemFonts: false,
84
93
  };
85
94
  }
86
95
  if (values.version === true) {
@@ -92,6 +101,7 @@ export function parseArgv(argv) {
92
101
  strict: false,
93
102
  open: false,
94
103
  headless: false,
104
+ useSystemFonts: false,
95
105
  };
96
106
  }
97
107
  if (values.verbose === true && values.quiet === true) {
@@ -102,12 +112,14 @@ export function parseArgv(argv) {
102
112
  modes.push('serve');
103
113
  if (values.init === true)
104
114
  modes.push('init');
115
+ if (values.mcp === true)
116
+ modes.push('mcp');
105
117
  if (modes.length > 1) {
106
118
  throw new CliError(ExitCode.InputError, `nowline: --${modes[0]} and --${modes[1]} are mutually exclusive.`);
107
119
  }
108
120
  const dryRun = values['dry-run'] === true;
109
121
  const mode = modes[0] ?? 'render';
110
- if (dryRun && (mode === 'serve' || mode === 'init')) {
122
+ if (dryRun && (mode === 'serve' || mode === 'init' || mode === 'mcp')) {
111
123
  throw new CliError(ExitCode.InputError, `nowline: --dry-run cannot be combined with --${mode}.`);
112
124
  }
113
125
  if (positionals.length > 1) {
@@ -128,6 +140,7 @@ export function parseArgv(argv) {
128
140
  inputFormat: stringOrUndefined(values['input-format']),
129
141
  theme: stringOrUndefined(values.theme),
130
142
  now: stringOrUndefined(values.now),
143
+ timezone: stringOrUndefined(values.timezone),
131
144
  noLinks: values['no-links'] === true,
132
145
  scale: stringOrUndefined(values.scale),
133
146
  strict: values.strict === true,
@@ -144,8 +157,10 @@ export function parseArgv(argv) {
144
157
  fontSans: stringOrUndefined(values['font-sans']),
145
158
  fontMono: stringOrUndefined(values['font-mono']),
146
159
  headless: values.headless === true,
160
+ useSystemFonts: values['use-system-fonts'] === true,
147
161
  start: stringOrUndefined(values.start),
148
162
  locale: stringOrUndefined(values.locale),
163
+ root: stringOrUndefined(values.root),
149
164
  };
150
165
  }
151
166
  function stringOrUndefined(value) {
@@ -1 +1 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAqFA,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AA6HA,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
package/dist/cli/help.js CHANGED
@@ -30,14 +30,33 @@ MODE FLAGS (mutually exclusive)
30
30
  rendered output to disk on each rebuild.
31
31
  --init [<name>] Scaffold a starter .nowline file in cwd. Positional
32
32
  becomes project name; .nowline appended if missing.
33
+ --mcp Start a Model Context Protocol (MCP) stdio server
34
+ exposing validate, render, export, and file tools.
35
+ Shares the same @nowline/mcp server code as
36
+ \`npx @nowline/mcp\`.
33
37
  -n, --dry-run Run the full pipeline (parse + validate + layout +
34
38
  format) but skip the write step. Subsumes the old
35
39
  'validate' verb. Exit 0 on success, 1 on errors.
36
40
 
37
41
  RENDER OPTIONS
38
42
  -t, --theme <name> light | dark | grayscale (greyscale alias)
39
- --now <YYYY-MM-DD> Date for the now-line. Default: today.
40
- Use --now - to suppress the now-line.
43
+ --now <date> Date for the now-line. Default: today (local civil date).
44
+ Accepts YYYY-MM-DD (floating date, zone-independent) or a
45
+ full ISO 8601 instant: YYYY-MM-DDTHH:MM:SSZ or with a
46
+ ±HH:MM offset. A bare date or ISO date without an offset is
47
+ treated as floating (written date part used, --timezone
48
+ ignored). An embedded Z or ±offset overrides --timezone.
49
+ Use --now - to suppress the now-line entirely.
50
+ --timezone <zone> Timezone for the clock-based "today" default.
51
+ Only consulted when --now is omitted; ignored when --now
52
+ carries an explicit date or embedded ISO offset.
53
+ Accepted forms:
54
+ local — host/viewer zone (default)
55
+ UTC — UTC
56
+ Z, +00:00 — zero-offset shorthand (= UTC)
57
+ ±HH, ±HH:MM, ±HHMM — fixed offset (DST-naive)
58
+ America/Los_Angeles — IANA timezone name
59
+ Ambiguous abbreviations (PST, IST, CET) are rejected.
41
60
  --no-links Omit link icons from rendered items.
42
61
  -s, --scale <n> Raster scale factor (PNG only; default 1).
43
62
  --strict Promote asset / sanitizer warnings to errors.
@@ -51,11 +70,30 @@ RENDER OPTIONS
51
70
  wins for content. Falls back to LC_ALL /
52
71
  LC_MESSAGES / LANG, then en-US.
53
72
 
73
+ FONT OPTIONS (png, pdf)
74
+ Raster/PDF export is bundled-first: by default it
75
+ renders with the bundled DejaVu pair on every OS, so
76
+ output is identical cross-platform and matches the
77
+ live preview.
78
+ --font-sans <ref> Override the sans font: a .ttf/.otf/.ttc path or a
79
+ known alias. A variable font is not rasterizable and
80
+ is replaced by bundled DejaVu (error under --strict).
81
+ --font-mono <ref> Override the mono font (path or alias; same rules).
82
+ --use-system-fonts Opt in to the platform font probe; the first static
83
+ installed font wins (variable fonts skipped), bundled
84
+ if none. Output then varies by machine.
85
+ --headless Force the bundled DejaVu pair, ignoring system fonts
86
+ and --use-system-fonts. Implied in CI without a TTY.
87
+
54
88
  SERVE OPTIONS
55
89
  -p, --port <n> Port (default: 4318).
56
90
  --host <host> Bind address (default: 127.0.0.1).
57
91
  --open Open the browser on start.
58
92
 
93
+ MCP OPTIONS
94
+ --root <dir> Allowed-root directory for file tools (default: cwd).
95
+ File paths are resolved and restricted to this root.
96
+
59
97
  LOGGING (mutually exclusive)
60
98
  -v, --verbose Print extra diagnostics to stderr.
61
99
  -q, --quiet Suppress non-error stderr.
@@ -74,6 +112,8 @@ EXAMPLES
74
112
  nowline roadmap.nowline --dry-run # validate-only
75
113
  nowline roadmap.nowline --serve -p 8080 # live preview
76
114
  nowline --init my-project # scaffold ./my-project.nowline
115
+ nowline --mcp # start MCP stdio server in cwd
116
+ nowline --mcp --root ./roadmaps # MCP server with custom root
77
117
 
78
118
  EXIT CODES
79
119
  0 Success
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,sEAAsE;AACtE,oEAAoE;AACpE,2DAA2D;AAC3D,MAAM,SAAS,GAAG,WAAW,iBAAiB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8E/C,CAAC;AAEF,MAAM,UAAU,UAAU;IACtB,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,aAAa;IACzB,OAAO,GAAG,iBAAiB,EAAE,IAAI,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,sEAAsE;AACtE,oEAAoE;AACpE,2DAA2D;AAC3D,MAAM,SAAS,GAAG,WAAW,iBAAiB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsH/C,CAAC;AAEF,MAAM,UAAU,UAAU;IACtB,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,aAAa;IACzB,OAAO,GAAG,iBAAiB,EAAE,IAAI,CAAC;AACtC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { ParsedArgs } from '../cli/args.js';
2
+ /**
3
+ * `nowline --mcp` handler.
4
+ *
5
+ * Starts a Model Context Protocol server sharing the same @nowline/mcp
6
+ * server factory as `npx @nowline/mcp`.
7
+ *
8
+ * Transport selection:
9
+ * stdio (default) — when --port is absent.
10
+ * Streamable HTTP — when --port <N> is supplied; listens on localhost:<N>.
11
+ *
12
+ * Runs until the process receives SIGINT/SIGTERM or the client closes stdin.
13
+ */
14
+ export declare function mcpHandler({ args }: {
15
+ args: ParsedArgs;
16
+ }): Promise<void>;
17
+ //# sourceMappingURL=mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;;;;;;;;;;GAWG;AACH,wBAAsB,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuC9E"}
@@ -0,0 +1,50 @@
1
+ import { createServer } from 'node:http';
2
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
+ import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
4
+ import { createMcpServer } from '@nowline/mcp/server';
5
+ /**
6
+ * `nowline --mcp` handler.
7
+ *
8
+ * Starts a Model Context Protocol server sharing the same @nowline/mcp
9
+ * server factory as `npx @nowline/mcp`.
10
+ *
11
+ * Transport selection:
12
+ * stdio (default) — when --port is absent.
13
+ * Streamable HTTP — when --port <N> is supplied; listens on localhost:<N>.
14
+ *
15
+ * Runs until the process receives SIGINT/SIGTERM or the client closes stdin.
16
+ */
17
+ export async function mcpHandler({ args }) {
18
+ const root = args.root ?? process.cwd();
19
+ const server = createMcpServer({ allowedRoot: root });
20
+ const portStr = args.port;
21
+ if (portStr !== undefined) {
22
+ const port = parseInt(portStr, 10);
23
+ if (!Number.isFinite(port) || port < 1 || port > 65535) {
24
+ throw new Error(`nowline: --port must be a number between 1 and 65535 (got ${portStr}).`);
25
+ }
26
+ const transport = new StreamableHTTPServerTransport({
27
+ sessionIdGenerator: undefined,
28
+ });
29
+ await server.connect(transport);
30
+ const httpServer = createServer(async (req, res) => {
31
+ await transport.handleRequest(req, res);
32
+ });
33
+ await new Promise((resolve) => {
34
+ httpServer.listen(port, '127.0.0.1', () => {
35
+ process.stderr.write(`nowline: MCP Streamable HTTP listening on http://127.0.0.1:${port}\n`);
36
+ });
37
+ httpServer.on('close', resolve);
38
+ process.on('SIGINT', () => httpServer.close());
39
+ process.on('SIGTERM', () => httpServer.close());
40
+ });
41
+ }
42
+ else {
43
+ const transport = new StdioServerTransport();
44
+ await server.connect(transport);
45
+ await new Promise((resolve) => {
46
+ transport.onclose = resolve;
47
+ });
48
+ }
49
+ }
50
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,EAAE,IAAI,EAAwB;IAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACxC,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAEtD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;IAC1B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CACX,6DAA6D,OAAO,IAAI,CAC3E,CAAC;QACN,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC;YAChD,kBAAkB,EAAE,SAAS;SAChC,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEhC,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YAC/C,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAChC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE;gBACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAChB,8DAA8D,IAAI,IAAI,CACzE,CAAC;YACN,CAAC,CAAC,CAAC;YACH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAChC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;YAC/C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACP,CAAC;SAAM,CAAC;QACJ,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAChC,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;QAChC,CAAC,CAAC,CAAC;IACP,CAAC;AACL,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type AssetResolver } from '@nowline/renderer';
1
+ import type { AssetResolver } from '@nowline/renderer';
2
2
  import type { ParsedArgs } from '../cli/args.js';
3
3
  export interface RenderHandlerOptions {
4
4
  args: ParsedArgs;
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/commands/render.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,aAAa,EAAa,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAwBjD,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,UAAU,CAAC;IACjB,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4FhF;AA6ZD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAWpE"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/commands/render.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAwBjD,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,UAAU,CAAC;IACjB,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6FhF;AAiaD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAWpE"}