@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,334 +1,3 @@
1
- import { CliError, ExitCode } from '../io/exit-codes.js';
2
- // Keyed-property canonical order. Keys not in this list sort alphabetically after.
3
- const KEY_ORDER = [
4
- 'date',
5
- 'effort',
6
- 'on',
7
- 'size',
8
- 'duration',
9
- 'status',
10
- 'owner',
11
- 'after',
12
- 'before',
13
- 'remaining',
14
- 'labels',
15
- 'style',
16
- 'link',
17
- 'author',
18
- 'start',
19
- 'scale',
20
- 'calendar',
21
- 'header-position',
22
- 'timeline-position',
23
- 'minor-grid',
24
- ];
25
- const INDENT = ' ';
26
- export function printNowlineFile(ast, options = {}) {
27
- const printer = new Printer(options.indent ?? INDENT);
28
- printer.file(ast);
29
- return printer.toString();
30
- }
31
- class Printer {
32
- indent;
33
- lines = [];
34
- constructor(indent) {
35
- this.indent = indent;
36
- }
37
- toString() {
38
- const text = this.lines.join('\n');
39
- return text.endsWith('\n') ? text : `${text}\n`;
40
- }
41
- file(file) {
42
- assertType(file, 'NowlineFile');
43
- const directive = file.directive;
44
- if (directive) {
45
- const props = asArray(directive.properties);
46
- const tail = props.length > 0 ? ` ${props.map(renderProperty).join(' ')}` : '';
47
- this.line(0, `nowline ${getString(directive, 'version')}${tail}`);
48
- this.blank();
49
- }
50
- for (const inc of asArray(file.includes)) {
51
- this.include(inc);
52
- }
53
- if (asArray(file.includes).length > 0)
54
- this.blank();
55
- if (file.hasConfig) {
56
- this.line(0, 'config');
57
- this.blank();
58
- for (const entry of asArray(file.configEntries)) {
59
- this.configEntry(entry);
60
- this.blank();
61
- }
62
- }
63
- if (file.roadmapDecl) {
64
- this.roadmap(file.roadmapDecl);
65
- this.blank();
66
- }
67
- for (const entry of asArray(file.roadmapEntries)) {
68
- this.roadmapEntry(entry, 0);
69
- }
70
- }
71
- include(inc) {
72
- assertType(inc, 'IncludeDeclaration');
73
- const path = getString(inc, 'path');
74
- const options = asArray(inc.options)
75
- .map((o) => `${getString(o, 'key')}:${getString(o, 'value')}`)
76
- .join(' ');
77
- const tail = options ? ` ${options}` : '';
78
- this.line(0, `include ${JSON.stringify(path)}${tail}`);
79
- }
80
- configEntry(entry) {
81
- switch (entry.$type) {
82
- case 'ScaleBlock':
83
- return this.blockDecl('scale', asArray(entry.properties));
84
- case 'CalendarBlock':
85
- return this.blockDecl('calendar', asArray(entry.properties));
86
- case 'StyleDeclaration':
87
- return this.styleDecl(entry);
88
- case 'DefaultDeclaration':
89
- return this.defaultDecl(entry);
90
- default:
91
- throw new CliError(ExitCode.ValidationError, `Unknown config entry type: ${String(entry.$type)}`);
92
- }
93
- }
94
- blockDecl(keyword, properties) {
95
- this.line(0, keyword);
96
- for (const p of properties) {
97
- this.line(1, renderBlockProperty(p));
98
- }
99
- }
100
- styleDecl(entry) {
101
- assertType(entry, 'StyleDeclaration');
102
- const header = declarationHeader('style', entry, []);
103
- this.line(0, header);
104
- for (const p of asArray(entry.properties)) {
105
- this.line(1, renderBlockProperty(p));
106
- }
107
- }
108
- defaultDecl(entry) {
109
- assertType(entry, 'DefaultDeclaration');
110
- const entityType = getString(entry, 'entityType');
111
- const props = renderProperties(asArray(entry.properties));
112
- const tail = props ? ` ${props}` : '';
113
- this.line(0, `default ${entityType}${tail}`);
114
- }
115
- roadmap(decl) {
116
- assertType(decl, 'RoadmapDeclaration');
117
- this.line(0, declarationHeader('roadmap', decl, asArray(decl.properties)));
118
- }
119
- roadmapEntry(entry, depth) {
120
- switch (entry.$type) {
121
- case 'PersonDeclaration':
122
- return this.simpleEntity('person', entry, depth);
123
- case 'TeamDeclaration':
124
- return this.team(entry, depth);
125
- case 'AnchorDeclaration':
126
- return this.simpleEntity('anchor', entry, depth);
127
- case 'SizeDeclaration':
128
- return this.simpleEntity('size', entry, depth);
129
- case 'StatusDeclaration':
130
- return this.simpleEntity('status', entry, depth);
131
- case 'LabelDeclaration':
132
- return this.simpleEntity('label', entry, depth);
133
- case 'MilestoneDeclaration':
134
- return this.simpleEntity('milestone', entry, depth);
135
- case 'FootnoteDeclaration':
136
- return this.simpleEntity('footnote', entry, depth);
137
- case 'SwimlaneDeclaration':
138
- return this.swimlane(entry, depth);
139
- default:
140
- throw new CliError(ExitCode.ValidationError, `Unknown roadmap entry type: ${String(entry.$type)}`);
141
- }
142
- }
143
- simpleEntity(keyword, entry, depth) {
144
- this.line(depth, declarationHeader(keyword, entry, asArray(entry.properties)));
145
- this.maybeDescription(entry, depth + 1);
146
- }
147
- team(entry, depth) {
148
- this.line(depth, declarationHeader('team', entry, asArray(entry.properties)));
149
- for (const child of asArray(entry.content)) {
150
- this.teamContent(child, depth + 1);
151
- }
152
- }
153
- teamContent(node, depth) {
154
- if (node.$type === 'PersonMemberRef') {
155
- this.line(depth, `person ${getString(node, 'ref')}`);
156
- return;
157
- }
158
- if (node.$type === 'TeamDeclaration') {
159
- return this.team(node, depth);
160
- }
161
- if (node.$type === 'PersonDeclaration') {
162
- return this.simpleEntity('person', node, depth);
163
- }
164
- if (node.$type === 'DescriptionDirective') {
165
- return this.descriptionDirective(node, depth);
166
- }
167
- throw new CliError(ExitCode.ValidationError, `Unknown team content type: ${String(node.$type)}`);
168
- }
169
- swimlane(entry, depth) {
170
- this.line(depth, declarationHeader('swimlane', entry, asArray(entry.properties)));
171
- for (const child of asArray(entry.content)) {
172
- this.swimlaneContent(child, depth + 1);
173
- }
174
- }
175
- swimlaneContent(node, depth) {
176
- switch (node.$type) {
177
- case 'ItemDeclaration':
178
- this.simpleEntity('item', node, depth);
179
- return;
180
- case 'ParallelBlock':
181
- this.parallelBlock(node, depth);
182
- return;
183
- case 'GroupBlock':
184
- this.groupBlock(node, depth);
185
- return;
186
- case 'DescriptionDirective':
187
- this.descriptionDirective(node, depth);
188
- return;
189
- default:
190
- throw new CliError(ExitCode.ValidationError, `Unknown swimlane content type: ${String(node.$type)}`);
191
- }
192
- }
193
- parallelBlock(entry, depth) {
194
- this.line(depth, declarationHeader('parallel', entry, asArray(entry.properties)));
195
- for (const child of asArray(entry.content)) {
196
- this.swimlaneContent(child, depth + 1);
197
- }
198
- }
199
- groupBlock(entry, depth) {
200
- this.line(depth, declarationHeader('group', entry, asArray(entry.properties)));
201
- for (const child of asArray(entry.content)) {
202
- this.swimlaneContent(child, depth + 1);
203
- }
204
- }
205
- descriptionDirective(node, depth) {
206
- assertType(node, 'DescriptionDirective');
207
- this.line(depth, `description ${JSON.stringify(getString(node, 'text'))}`);
208
- }
209
- maybeDescription(entry, depth) {
210
- const desc = entry.description;
211
- if (desc)
212
- this.descriptionDirective(desc, depth);
213
- }
214
- line(depth, text) {
215
- this.lines.push(this.indent.repeat(depth) + text);
216
- }
217
- blank() {
218
- if (this.lines.length === 0)
219
- return;
220
- if (this.lines[this.lines.length - 1] === '')
221
- return;
222
- this.lines.push('');
223
- }
224
- }
225
- function declarationHeader(keyword, entry, properties) {
226
- const id = entry.name;
227
- const title = entry.title;
228
- const parts = [keyword];
229
- if (id)
230
- parts.push(id);
231
- if (title)
232
- parts.push(JSON.stringify(title));
233
- const props = renderProperties(properties);
234
- if (props)
235
- parts.push(props);
236
- return parts.join(' ');
237
- }
238
- function renderProperties(properties) {
239
- return orderProperties(properties).map(renderProperty).join(' ');
240
- }
241
- function orderProperties(properties) {
242
- const indexOf = new Map(KEY_ORDER.map((k, i) => [k, i]));
243
- return [...properties].sort((a, b) => {
244
- const ak = normalizeKey(getString(a, 'key'));
245
- const bk = normalizeKey(getString(b, 'key'));
246
- const ai = indexOf.get(ak);
247
- const bi = indexOf.get(bk);
248
- if (ai !== undefined && bi !== undefined)
249
- return ai - bi;
250
- if (ai !== undefined)
251
- return -1;
252
- if (bi !== undefined)
253
- return 1;
254
- return ak.localeCompare(bk);
255
- });
256
- }
257
- function renderProperty(prop) {
258
- const key = normalizeKey(getString(prop, 'key'));
259
- const values = asStringArray(prop.values);
260
- const value = prop.value;
261
- if (values.length >= 2) {
262
- return `${key}:[${values.map(formatAtom).join(', ')}]`;
263
- }
264
- if (values.length === 1) {
265
- return `${key}:${formatAtom(values[0])}`;
266
- }
267
- if (value !== undefined && value !== '') {
268
- return `${key}:${formatAtom(value)}`;
269
- }
270
- return `${key}:`;
271
- }
272
- // Block-style property (one per line, rendered as `key: value`). Used inside
273
- // indented blocks like `scale`, `calendar`, and `style`. Uses formatAtom so
274
- // that quoted / template strings such as `label: "W{n}"` survive a round-trip.
275
- function renderBlockProperty(prop) {
276
- const key = normalizeKey(getString(prop, 'key'));
277
- const values = asStringArray(prop.values);
278
- const value = prop.value;
279
- if (values.length >= 2) {
280
- return `${key}: [${values.map(formatAtom).join(', ')}]`;
281
- }
282
- if (values.length === 1) {
283
- return `${key}: ${formatAtom(values[0])}`;
284
- }
285
- if (value !== undefined && value !== '') {
286
- return `${key}: ${formatAtom(value)}`;
287
- }
288
- return `${key}:`;
289
- }
290
- function normalizeKey(key) {
291
- return key.endsWith(':') ? key.slice(0, -1) : key;
292
- }
293
- const URL_RE = /^https?:\/\//;
294
- const DATE_RE = /^\d{4}-\d{2}-\d{2}$/;
295
- const DURATION_RE = /^\d+(?:\.\d+)?[dwmqy]$/;
296
- const PERCENTAGE_RE = /^\d+%$/;
297
- const HEX_COLOR_RE = /^#[0-9a-fA-F]{3,8}$/;
298
- const INTEGER_RE = /^\d+$/;
299
- const ID_RE = /^[a-zA-Z_][a-zA-Z0-9_-]*$/;
300
- function formatAtom(atom) {
301
- if (URL_RE.test(atom) ||
302
- DATE_RE.test(atom) ||
303
- DURATION_RE.test(atom) ||
304
- PERCENTAGE_RE.test(atom) ||
305
- HEX_COLOR_RE.test(atom) ||
306
- INTEGER_RE.test(atom) ||
307
- ID_RE.test(atom)) {
308
- return atom;
309
- }
310
- // Already-quoted string survives a round trip through JSON.stringify by re-quoting once.
311
- if (atom.startsWith('"') && atom.endsWith('"'))
312
- return atom;
313
- return JSON.stringify(atom);
314
- }
315
- function asArray(value) {
316
- if (Array.isArray(value))
317
- return value;
318
- return [];
319
- }
320
- function asStringArray(value) {
321
- if (!Array.isArray(value))
322
- return [];
323
- return value.filter((v) => typeof v === 'string');
324
- }
325
- function getString(node, key) {
326
- const value = node[key];
327
- return typeof value === 'string' ? value : '';
328
- }
329
- function assertType(node, expected) {
330
- if (node.$type !== expected) {
331
- throw new CliError(ExitCode.ValidationError, `Expected $type "${expected}", got "${String(node.$type)}"`);
332
- }
333
- }
1
+ // Re-exported from @nowline/core. Kept here for backwards compatibility.
2
+ export { printNowlineFile } from '@nowline/core';
334
3
  //# sourceMappingURL=printer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"printer.js","sourceRoot":"","sources":["../../src/convert/printer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"printer.js","sourceRoot":"","sources":["../../src/convert/printer.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,OAAO,EAAqB,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
@@ -1,33 +1,2 @@
1
- import type { NowlineFile } from '@nowline/core';
2
- import type { LangiumDocument } from 'langium';
3
- export declare const NOWLINE_SCHEMA_VERSION = "1";
4
- export interface NowlineDocument {
5
- $nowlineSchema: string;
6
- file: {
7
- uri: string;
8
- source: string;
9
- };
10
- ast: JsonAstNode;
11
- }
12
- export interface Position {
13
- start: {
14
- line: number;
15
- column: number;
16
- offset: number;
17
- };
18
- end: {
19
- line: number;
20
- column: number;
21
- offset: number;
22
- };
23
- }
24
- export interface JsonAstNode {
25
- $type: string;
26
- $position?: Position;
27
- [key: string]: unknown;
28
- }
29
- export interface SerializeOptions {
30
- includePositions?: boolean;
31
- }
32
- export declare function serializeToJson(document: LangiumDocument<NowlineFile>, source: string, options?: SerializeOptions): NowlineDocument;
1
+ export { type JsonAstNode, NOWLINE_SCHEMA_VERSION, type NowlineDocument, type Position, type SerializeOptions, serializeToJson, } from '@nowline/core';
33
2
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/convert/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAoB,eAAe,EAAE,MAAM,SAAS,CAAC;AAEjE,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C,MAAM,WAAW,eAAe;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,GAAG,EAAE,WAAW,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACrB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD;AAED,MAAM,WAAW,WAAW;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAOD,wBAAgB,eAAe,CAC3B,QAAQ,EAAE,eAAe,CAAC,WAAW,CAAC,EACtC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,gBAAqB,GAC/B,eAAe,CAUjB"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/convert/schema.ts"],"names":[],"mappings":"AACA,OAAO,EACH,KAAK,WAAW,EAChB,sBAAsB,EACtB,KAAK,eAAe,EACpB,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,eAAe,GAClB,MAAM,eAAe,CAAC"}
@@ -1,77 +1,3 @@
1
- export const NOWLINE_SCHEMA_VERSION = '1';
2
- // Keys that Langium adds to AST nodes that we don't want in the JSON form.
3
- const CONTAINER_KEYS = new Set(['$container', '$containerProperty', '$containerIndex']);
4
- // $cstNode / $document are runtime-only. $type and $position are emitted.
5
- const RUNTIME_KEYS = new Set(['$cstNode', '$document']);
6
- export function serializeToJson(document, source, options = {}) {
7
- const includePositions = options.includePositions ?? true;
8
- return {
9
- $nowlineSchema: NOWLINE_SCHEMA_VERSION,
10
- file: {
11
- uri: document.uri.toString(),
12
- source,
13
- },
14
- ast: serializeNode(document.parseResult.value, includePositions),
15
- };
16
- }
17
- function serializeNode(node, includePositions) {
18
- const out = { $type: node.$type };
19
- if (includePositions) {
20
- const pos = cstPosition(node.$cstNode);
21
- if (pos)
22
- out.$position = pos;
23
- }
24
- for (const [key, value] of Object.entries(node)) {
25
- if (key.startsWith('$'))
26
- continue;
27
- if (CONTAINER_KEYS.has(key) || RUNTIME_KEYS.has(key))
28
- continue;
29
- out[key] = serializeValue(value, includePositions);
30
- }
31
- return out;
32
- }
33
- function serializeValue(value, includePositions) {
34
- if (value === null || value === undefined)
35
- return value;
36
- if (Array.isArray(value)) {
37
- return value.map((v) => serializeValue(v, includePositions));
38
- }
39
- if (isAstNode(value)) {
40
- return serializeNode(value, includePositions);
41
- }
42
- if (typeof value === 'object') {
43
- const record = value;
44
- const out = {};
45
- for (const [k, v] of Object.entries(record)) {
46
- if (k.startsWith('$'))
47
- continue;
48
- if (CONTAINER_KEYS.has(k) || RUNTIME_KEYS.has(k))
49
- continue;
50
- out[k] = serializeValue(v, includePositions);
51
- }
52
- return out;
53
- }
54
- return value;
55
- }
56
- function isAstNode(value) {
57
- return (value !== null &&
58
- typeof value === 'object' &&
59
- typeof value.$type === 'string');
60
- }
61
- function cstPosition(cst) {
62
- if (!cst)
63
- return undefined;
64
- return {
65
- start: {
66
- line: cst.range.start.line + 1,
67
- column: cst.range.start.character + 1,
68
- offset: cst.offset,
69
- },
70
- end: {
71
- line: cst.range.end.line + 1,
72
- column: cst.range.end.character + 1,
73
- offset: cst.end,
74
- },
75
- };
76
- }
1
+ // Re-exported from @nowline/core. Kept here for backwards compatibility.
2
+ export { NOWLINE_SCHEMA_VERSION, serializeToJson, } from '@nowline/core';
77
3
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/convert/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/convert/schema.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,OAAO,EAEH,sBAAsB,EAItB,eAAe,GAClB,MAAM,eAAe,CAAC"}
@@ -1,4 +1,4 @@
1
- export declare const CLI_VERSION = "0.5.1";
1
+ export declare const CLI_VERSION = "0.7.0";
2
2
  export interface CliBuild {
3
3
  /** Short git SHA at build time, or empty when not in a git checkout. */
4
4
  readonly sha: string;
@@ -1,7 +1,7 @@
1
1
  // Auto-generated by scripts/bundle-templates.mjs. Do not edit by hand.
2
- export const CLI_VERSION = "0.5.1";
2
+ export const CLI_VERSION = "0.7.0";
3
3
  export const CLI_BUILD = {
4
- "sha": "fc40638",
4
+ "sha": "0f07e00",
5
5
  "isRelease": true,
6
6
  "isDirty": false
7
7
  };
package/dist/index.js CHANGED
@@ -2,6 +2,7 @@
2
2
  import { parseArgv } from './cli/args.js';
3
3
  import { renderHelp, renderVersion } from './cli/help.js';
4
4
  import { initHandler } from './commands/init.js';
5
+ import { mcpHandler } from './commands/mcp.js';
5
6
  import { renderHandler } from './commands/render.js';
6
7
  import { serveHandler } from './commands/serve.js';
7
8
  import { CliError, ExitCode } from './io/exit-codes.js';
@@ -29,6 +30,9 @@ async function run() {
29
30
  else if (parsed.mode === 'serve') {
30
31
  await serveHandler({ args: parsed });
31
32
  }
33
+ else if (parsed.mode === 'mcp') {
34
+ await mcpHandler({ args: parsed });
35
+ }
32
36
  else {
33
37
  await renderHandler({ args: parsed });
34
38
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
Binary file
package/man/nowline.1 CHANGED
@@ -10,6 +10,7 @@
10
10
  .Op Fl o Ar path
11
11
  .Op Fl t Ar theme
12
12
  .Op Fl -now Ar date
13
+ .Op Fl -timezone Ar zone
13
14
  .Op Ar options
14
15
  .Ar input
15
16
  .Nm
@@ -182,13 +183,50 @@ Default: inferred from extension; standard input defaults to
182
183
  .Sy light | dark .
183
184
  .It Fl -now Ar date
184
185
  .Sq Now
185
- anchor for the now-line and date math, in
186
+ anchor for the now-line and date math.
187
+ Accepts a bare
186
188
  .Pa YYYY-MM-DD
187
- form.
188
- Default: today (the OS calendar date in UTC).
189
+ (floating; zone-independent) or a full ISO\~8601 instant such as
190
+ .Pa 2026-06-04T23:00:00Z
191
+ or
192
+ .Pa 2026-06-05T06:00:00+07:00
193
+ (an embedded Z or \(pmHH:MM offset overrides
194
+ .Fl -timezone ) .
195
+ A bare date or an instant without an offset is floating: the written date
196
+ part is used and
197
+ .Fl -timezone
198
+ is ignored.
199
+ Default: today's civil date in the host zone (or
200
+ .Fl -timezone
201
+ if given).
189
202
  Pass
190
203
  .Fl -now Sq -
191
204
  to suppress the now-line entirely.
205
+ .It Fl -timezone Ar zone
206
+ Timezone used for the clock-based
207
+ .Dq today
208
+ default; only consulted when
209
+ .Fl -now
210
+ is omitted.
211
+ Accepted forms:
212
+ .Bl -tag -width "America/Los_Angeles" -compact
213
+ .It Sy local
214
+ Host/viewer zone (default when the flag is absent).
215
+ .It Sy UTC
216
+ UTC.
217
+ .It Sy Z , +00:00
218
+ Zero-offset shorthand (equivalent to
219
+ .Sy UTC ) .
220
+ .It Sy \(pmHH , \(pmHH:MM , \(pmHHMM
221
+ Fixed offset (DST-naive; documented caveat).
222
+ .It Sy America/Los_Angeles
223
+ Any valid IANA timezone name.
224
+ .El
225
+ Ambiguous abbreviations such as
226
+ .Sy PST
227
+ and
228
+ .Sy IST
229
+ are rejected with a clear error.
192
230
  .It Fl -locale Ar bcp47
193
231
  BCP-47 language tag for the operator's CLI message output (validator
194
232
  diagnostics on standard error,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@nowline/cli",
3
- "version": "0.5.1",
4
- "description": "Nowline command-line interface validate, convert, init",
3
+ "version": "0.7.0",
4
+ "description": "Command-line tool to check, convert, and create Nowline roadmaps.",
5
5
  "license": "Apache-2.0",
6
6
  "engines": {
7
7
  "node": ">=22",
@@ -32,24 +32,28 @@
32
32
  "dependencies": {
33
33
  "@babel/code-frame": "^7.29.0",
34
34
  "@clack/prompts": "^1.4.0",
35
+ "@modelcontextprotocol/sdk": "^1.29.0",
35
36
  "chalk": "^5.6.2",
36
37
  "citty": "^0.2.2",
37
38
  "consola": "^3.4.2",
38
39
  "js-yaml": "^4.1.1",
39
40
  "langium": "~4.2.4",
40
- "@nowline/config": "0.5.1",
41
- "@nowline/core": "0.5.1",
42
- "@nowline/export-html": "0.5.1",
43
- "@nowline/export-core": "0.5.1",
44
- "@nowline/export-msproj": "0.5.1",
45
- "@nowline/export-mermaid": "0.5.1",
46
- "@nowline/export-pdf": "0.5.1",
47
- "@nowline/export-xlsx": "0.5.1",
48
- "@nowline/export-png": "0.5.1",
49
- "@nowline/layout": "0.5.1",
50
- "@nowline/renderer": "0.5.1"
41
+ "@nowline/core": "0.7.0",
42
+ "@nowline/config": "0.7.0",
43
+ "@nowline/mcp": "0.7.0",
44
+ "@nowline/export-core": "0.7.0",
45
+ "@nowline/export-html": "0.7.0",
46
+ "@nowline/export": "0.7.0",
47
+ "@nowline/export-mermaid": "0.7.0",
48
+ "@nowline/export-pdf": "0.7.0",
49
+ "@nowline/export-png": "0.7.0",
50
+ "@nowline/export-xlsx": "0.7.0",
51
+ "@nowline/layout": "0.7.0",
52
+ "@nowline/export-msproj": "0.7.0",
53
+ "@nowline/renderer": "0.7.0"
51
54
  },
52
55
  "devDependencies": {
56
+ "@resvg/resvg-wasm": "^2.6.2",
53
57
  "@types/babel__code-frame": "^7.27.0",
54
58
  "@types/js-yaml": "^4.0.9",
55
59
  "@types/node": "^25.9.1",
@@ -60,6 +64,7 @@
60
64
  "bundle-templates": "node scripts/bundle-templates.mjs",
61
65
  "prebuild": "node scripts/bundle-templates.mjs",
62
66
  "build": "tsc -b tsconfig.json",
67
+ "postbuild": "node scripts/copy-wasm.mjs",
63
68
  "watch": "tsc -b tsconfig.json --watch",
64
69
  "pretest": "node scripts/bundle-templates.mjs",
65
70
  "test": "vitest run",