@nowline/mcp 0.8.6 → 0.9.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.
- package/dist/capabilities.d.ts.map +1 -1
- package/dist/capabilities.js +2 -9
- package/dist/capabilities.js.map +1 -1
- package/dist/diagnostics.d.ts +43 -15
- package/dist/diagnostics.d.ts.map +1 -1
- package/dist/diagnostics.js +77 -25
- package/dist/diagnostics.js.map +1 -1
- package/dist/generated/resources.d.ts.map +1 -1
- package/dist/generated/resources.js +15 -3
- package/dist/generated/resources.js.map +1 -1
- package/dist/generated/ui-bundle.d.ts.map +1 -1
- package/dist/generated/ui-bundle.js +2 -2
- package/dist/generated/ui-bundle.js.map +1 -1
- package/dist/http.d.ts +4 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +23 -0
- package/dist/http.js.map +1 -0
- package/dist/index.js +6 -12
- package/dist/index.js.map +1 -1
- package/dist/options.d.ts +26 -0
- package/dist/options.d.ts.map +1 -0
- package/dist/options.js +55 -0
- package/dist/options.js.map +1 -0
- package/dist/reference-cheatsheet.d.ts +1 -1
- package/dist/reference-cheatsheet.d.ts.map +1 -1
- package/dist/reference-cheatsheet.js +27 -2
- package/dist/reference-cheatsheet.js.map +1 -1
- package/dist/schema-vocab.d.ts +4 -2
- package/dist/schema-vocab.d.ts.map +1 -1
- package/dist/schema-vocab.js +9 -0
- package/dist/schema-vocab.js.map +1 -1
- package/dist/schemas.d.ts +2 -0
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +2 -0
- package/dist/schemas.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +146 -56
- package/dist/server.js.map +1 -1
- package/dist/ui/entry.js +5 -12
- package/dist/ui/entry.js.map +1 -1
- package/dist/ui/payload.d.ts +14 -0
- package/dist/ui/payload.d.ts.map +1 -1
- package/dist/ui/payload.js +23 -0
- package/dist/ui/payload.js.map +1 -1
- package/package.json +21 -16
- package/src/capabilities.ts +4 -2
- package/src/diagnostics.ts +99 -39
- package/src/generated/resources.ts +15 -3
- package/src/generated/ui-bundle.ts +2 -2
- package/src/http.ts +28 -0
- package/src/index.ts +6 -13
- package/src/options.ts +79 -0
- package/src/reference-cheatsheet.ts +27 -2
- package/src/schema-vocab.ts +9 -0
- package/src/schemas.ts +2 -0
- package/src/server.ts +195 -57
- package/src/ui/entry.ts +6 -11
- package/src/ui/payload.ts +26 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-bundle.js","sourceRoot":"","sources":["../../src/generated/ui-bundle.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,EAAE;AACF,qEAAqE;AACrE,8CAA8C;AAC9C,EAAE;AACF,mFAAmF;AAEnF,yEAAyE;AACzE,MAAM,CAAC,MAAM,SAAS,GAAW,
|
|
1
|
+
{"version":3,"file":"ui-bundle.js","sourceRoot":"","sources":["../../src/generated/ui-bundle.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,EAAE;AACF,qEAAqE;AACrE,8CAA8C;AAC9C,EAAE;AACF,mFAAmF;AAEnF,yEAAyE;AACzE,MAAM,CAAC,MAAM,SAAS,GAAW,82+gDAA82+gD,CAAC;AAEh5+gD,gFAAgF;AAChF,MAAM,CAAC,MAAM,YAAY,GAAW,ou/gDAAou/gD,CAAC"}
|
package/dist/http.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
2
|
+
import type { McpServer } from '@modelcontextprotocol/server';
|
|
3
|
+
export declare function createMcpHttpHandler(createServer: () => McpServer): (req: IncomingMessage, res: ServerResponse) => Promise<void>;
|
|
4
|
+
//# sourceMappingURL=http.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE9D,wBAAgB,oBAAoB,CAChC,YAAY,EAAE,MAAM,SAAS,GAC9B,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAa9D"}
|
package/dist/http.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Streamable HTTP request handler shared by `npx @nowline/mcp --port` and
|
|
2
|
+
// `nowline --mcp --port`.
|
|
3
|
+
//
|
|
4
|
+
// The HTTP transport is stateless (no session IDs), so every request gets its
|
|
5
|
+
// own McpServer and transport. Sharing one pair across requests could deliver
|
|
6
|
+
// one HTTP client's messages to another, and since
|
|
7
|
+
// @modelcontextprotocol/server 2.3.0 the SDK throws on reuse.
|
|
8
|
+
import { NodeStreamableHTTPServerTransport } from '@modelcontextprotocol/node';
|
|
9
|
+
export function createMcpHttpHandler(createServer) {
|
|
10
|
+
return async (req, res) => {
|
|
11
|
+
const server = createServer();
|
|
12
|
+
const transport = new NodeStreamableHTTPServerTransport({
|
|
13
|
+
sessionIdGenerator: undefined,
|
|
14
|
+
});
|
|
15
|
+
res.on('close', () => {
|
|
16
|
+
void transport.close();
|
|
17
|
+
void server.close();
|
|
18
|
+
});
|
|
19
|
+
await server.connect(transport);
|
|
20
|
+
await transport.handleRequest(req, res);
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=http.js.map
|
package/dist/http.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,0BAA0B;AAC1B,EAAE;AACF,8EAA8E;AAC9E,8EAA8E;AAC9E,mDAAmD;AACnD,8DAA8D;AAG9D,OAAO,EAAE,iCAAiC,EAAE,MAAM,4BAA4B,CAAC;AAG/E,MAAM,UAAU,oBAAoB,CAChC,YAA6B;IAE7B,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACtB,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,IAAI,iCAAiC,CAAC;YACpD,kBAAkB,EAAE,SAAS;SAChC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACjB,KAAK,SAAS,CAAC,KAAK,EAAE,CAAC;YACvB,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChC,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC,CAAC;AACN,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -14,8 +14,8 @@ import { readFileSync } from 'node:fs';
|
|
|
14
14
|
import { createServer } from 'node:http';
|
|
15
15
|
import { dirname, resolve } from 'node:path';
|
|
16
16
|
import { fileURLToPath } from 'node:url';
|
|
17
|
-
import { NodeStreamableHTTPServerTransport } from '@modelcontextprotocol/node';
|
|
18
17
|
import { StdioServerTransport } from '@modelcontextprotocol/server/stdio';
|
|
18
|
+
import { createMcpHttpHandler } from './http.js';
|
|
19
19
|
import { expandRootPath } from './root-path.js';
|
|
20
20
|
import { createMcpServer } from './server.js';
|
|
21
21
|
const __filename = fileURLToPath(import.meta.url);
|
|
@@ -83,20 +83,14 @@ if (help) {
|
|
|
83
83
|
// .mcpb directory picker resolves to a real path. An empty/blank value
|
|
84
84
|
// (optional field left unset) collapses to undefined → cwd fallback, inline.
|
|
85
85
|
const expandedRoot = expandRootPath(root);
|
|
86
|
-
const
|
|
86
|
+
const serverOptions = {
|
|
87
87
|
allowedRoot: expandedRoot,
|
|
88
88
|
rootConfigured: expandedRoot !== undefined,
|
|
89
89
|
version: PKG_VERSION,
|
|
90
|
-
}
|
|
90
|
+
};
|
|
91
91
|
if (port !== undefined) {
|
|
92
|
-
// Streamable HTTP transport — stateless
|
|
93
|
-
const
|
|
94
|
-
sessionIdGenerator: undefined,
|
|
95
|
-
});
|
|
96
|
-
await server.connect(transport);
|
|
97
|
-
const httpServer = createServer(async (req, res) => {
|
|
98
|
-
await transport.handleRequest(req, res);
|
|
99
|
-
});
|
|
92
|
+
// Streamable HTTP transport — stateless, one server per request.
|
|
93
|
+
const httpServer = createServer(createMcpHttpHandler(() => createMcpServer(serverOptions)));
|
|
100
94
|
httpServer.listen(port, '127.0.0.1', () => {
|
|
101
95
|
process.stderr.write(`nowline-mcp: Streamable HTTP listening on http://127.0.0.1:${port}\n`);
|
|
102
96
|
});
|
|
@@ -109,6 +103,6 @@ if (port !== undefined) {
|
|
|
109
103
|
else {
|
|
110
104
|
// Default: stdio transport.
|
|
111
105
|
const transport = new StdioServerTransport();
|
|
112
|
-
await
|
|
106
|
+
await createMcpServer(serverOptions).connect(transport);
|
|
113
107
|
}
|
|
114
108
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,qDAAqD;AACrD,EAAE;AACF,0EAA0E;AAC1E,4CAA4C;AAC5C,mEAAmE;AACnE,iFAAiF;AACjF,EAAE;AACF,SAAS;AACT,8DAA8D;AAC9D,EAAE;AACF,sBAAsB;AAEtB,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type SurfaceOptions } from '@nowline/config';
|
|
2
|
+
import { type ThemeName } from '@nowline/layout';
|
|
3
|
+
/** The option arguments a tool takes; each tool offers the subset it needs. */
|
|
4
|
+
export interface McpOptionArguments {
|
|
5
|
+
theme?: string;
|
|
6
|
+
width?: number;
|
|
7
|
+
now?: string;
|
|
8
|
+
/** Zone for the default now-line date; accepts what the CLI's `--timezone` does. */
|
|
9
|
+
timezone?: string;
|
|
10
|
+
nonWorking?: string;
|
|
11
|
+
pageSize?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface McpResolvedOptions {
|
|
14
|
+
options: SurfaceOptions;
|
|
15
|
+
/** The theme argument, when the caller passed one; the preview picks its own otherwise. */
|
|
16
|
+
theme?: ThemeName;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Resolve a tool's option arguments. Throws `InputRequiredError` (the tool's
|
|
20
|
+
* input-error result) for the first bad value. An omitted `now` draws the
|
|
21
|
+
* now-line at today's civil date in the `timezone` argument's zone, or the
|
|
22
|
+
* server's local zone without one, as on every other surface. `clock` is a
|
|
23
|
+
* test seam.
|
|
24
|
+
*/
|
|
25
|
+
export declare function resolveMcpOptions(args: McpOptionArguments, clock?: () => Date): McpResolvedOptions;
|
|
26
|
+
//# sourceMappingURL=options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAIA,OAAO,EAIH,KAAK,cAAc,EACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAsC,KAAK,SAAS,EAAiB,MAAM,iBAAiB,CAAC;AAGpG,+EAA+E;AAC/E,MAAM,WAAW,kBAAkB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,cAAc,CAAC;IACxB,2FAA2F;IAC3F,KAAK,CAAC,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC7B,IAAI,EAAE,kBAAkB,EACxB,KAAK,CAAC,EAAE,MAAM,IAAI,GACnB,kBAAkB,CAgBpB"}
|
package/dist/options.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// How an MCP tool call's arguments become render options: the shared schema
|
|
2
|
+
// from `@nowline/config`, over one `argument` layer (specs/surface-options.md
|
|
3
|
+
// §3.2). MCP keeps its own wording for a bad value.
|
|
4
|
+
import { resolveSurfaceOptions, } from '@nowline/config';
|
|
5
|
+
import { normalizeZone, TimezoneError } from '@nowline/layout';
|
|
6
|
+
import { InputRequiredError } from './diagnostics.js';
|
|
7
|
+
/**
|
|
8
|
+
* Resolve a tool's option arguments. Throws `InputRequiredError` (the tool's
|
|
9
|
+
* input-error result) for the first bad value. An omitted `now` draws the
|
|
10
|
+
* now-line at today's civil date in the `timezone` argument's zone, or the
|
|
11
|
+
* server's local zone without one, as on every other surface. `clock` is a
|
|
12
|
+
* test seam.
|
|
13
|
+
*/
|
|
14
|
+
export function resolveMcpOptions(args, clock) {
|
|
15
|
+
const zone = readZone(args.timezone);
|
|
16
|
+
const layer = {
|
|
17
|
+
source: (key) => ({ kind: 'argument', name: key }),
|
|
18
|
+
values: {
|
|
19
|
+
theme: args.theme,
|
|
20
|
+
width: args.width,
|
|
21
|
+
now: args.now,
|
|
22
|
+
nonWorking: args.nonWorking,
|
|
23
|
+
pageSize: args.pageSize,
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
const { options, errors } = resolveSurfaceOptions([layer], { theme: 'light' }, { zone, clock });
|
|
27
|
+
const [first] = errors;
|
|
28
|
+
if (first)
|
|
29
|
+
throw new InputRequiredError(describeOptionError(first));
|
|
30
|
+
return { options, theme: args.theme === undefined ? undefined : options.theme };
|
|
31
|
+
}
|
|
32
|
+
// `--timezone`'s forms, through the same parser; the parser's text names the CLI.
|
|
33
|
+
function readZone(raw) {
|
|
34
|
+
if (raw === undefined)
|
|
35
|
+
return undefined;
|
|
36
|
+
try {
|
|
37
|
+
return normalizeZone(raw);
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
if (!(err instanceof TimezoneError))
|
|
41
|
+
throw err;
|
|
42
|
+
throw new InputRequiredError(`Invalid timezone: ${err.message.replace(/^nowline: /, '')}`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function describeOptionError(error) {
|
|
46
|
+
const raw = String(error.raw);
|
|
47
|
+
if (error.key === 'theme' && error.expected) {
|
|
48
|
+
return `Unknown theme "${raw}". Expected one of: ${error.expected.join(', ')}.`;
|
|
49
|
+
}
|
|
50
|
+
if (error.expected) {
|
|
51
|
+
return `Invalid ${error.key} "${raw}". Expected one of: ${error.expected.join(', ')}.`;
|
|
52
|
+
}
|
|
53
|
+
return `Invalid ${error.key} "${raw}": ${error.detail}`;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,8EAA8E;AAC9E,oDAAoD;AAEpD,OAAO,EAGH,qBAAqB,GAExB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAuB,aAAa,EAAkB,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACpG,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAmBtD;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC7B,IAAwB,EACxB,KAAkB;IAElB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,KAAK,GAAgB;QACvB,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QAClD,MAAM,EAAE;YACJ,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;SAC1B;KACJ,CAAC;IACF,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,qBAAqB,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAChG,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;IACvB,IAAI,KAAK;QAAE,MAAM,IAAI,kBAAkB,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;IACpE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AACpF,CAAC;AAED,kFAAkF;AAClF,SAAS,QAAQ,CAAC,GAAuB;IACrC,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,IAAI,CAAC;QACD,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,IAAI,CAAC,CAAC,GAAG,YAAY,aAAa,CAAC;YAAE,MAAM,GAAG,CAAC;QAC/C,MAAM,IAAI,kBAAkB,CAAC,qBAAqB,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IAC/F,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAkB;IAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC1C,OAAO,kBAAkB,GAAG,uBAAuB,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACpF,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,OAAO,WAAW,KAAK,CAAC,GAAG,KAAK,GAAG,uBAAuB,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAC3F,CAAC;IACD,OAAO,WAAW,KAAK,CAAC,GAAG,KAAK,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;AAC5D,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const REFERENCE_CHEATSHEET = "# Nowline DSL \u2014 condensed reference\n\nEvery file starts with `nowline v1` on line 1.\n\n## Roadmap directive\n\n```\nroadmap <id> \"<title>\" start:YYYY-MM-DD scale:2w\n```\n\nCommon keys: `start:`, `scale:`, `length:`, `locale:`, `theme:`, `author:`, `calendar:`.\n\n## Swimlanes and items\n\n```\nswimlane <id> \"<title>\"\n item <id> \"<title>\" duration:3w\n```\n\nEntity types: `swimlane`, `group`, `parallel`, `item`, `milestone`, `anchor`.\n\nItems need `duration:` or `size:`. Use 2-space indentation under parents.\n\n## Item properties\n\n`duration:` (or `size:`), `status:`, `remaining:`, `owner:`, `after:`, `before:`, `labels:`, `link:`, `style:`.\n\nThere is NO `progress:` or `color:` key. Show completion with `status:` + `remaining:`; set visuals with a `style:` reference (see full reference).\n\n## Progress & status\n\n```\nitem api \"API redesign\" duration:4w status:in-progress remaining:40%\n```\n\n`status:` values: `planned`, `in-progress` (alias `active`), `done` (alias `completed`), `at-risk`, `blocked`, or a custom `status` you declare earlier.\n\n`remaining:` is the work *left*, written as a percent (`40%`) or an effort literal (`1w`). So an item that is 60% complete is `remaining:40%`. Omit `remaining:` for a fully open or fully done bar.\n\n## Config / includes (before roadmap)\n\n`config` blocks, `include \"path.nowline\"` \u2014 see full reference for ordering rules.\n\nCall `reference` with `format: \"full\"` for the complete man page, or `examples` for sample files.\n";
|
|
1
|
+
export declare const REFERENCE_CHEATSHEET = "# Nowline DSL \u2014 condensed reference\n\nEvery file starts with `nowline v1` on line 1.\n\n## Roadmap directive\n\n```\nroadmap <id> \"<title>\" start:YYYY-MM-DD scale:2w\n```\n\nCommon keys: `start:`, `scale:`, `length:`, `locale:`, `theme:`, `author:`, `calendar:`.\n\n## Swimlanes and items\n\n```\nswimlane <id> \"<title>\"\n item <id> \"<title>\" duration:3w\n```\n\nEntity types: `swimlane`, `group`, `parallel`, `item`, `wave`, `milestone`, `anchor`.\n\nItems need `duration:` or `size:`. Use 2-space indentation under parents.\n\n## Item properties\n\n`duration:` (or `size:`), `status:`, `remaining:`, `owner:`, `wave:`, `after:`, `before:`, `labels:`, `link:`, `style:`.\n\nThere is NO `progress:` or `color:` key. Show completion with `status:` + `remaining:`; set visuals with a `style:` reference (see full reference).\n\n## Progress & status\n\n```\nitem api \"API redesign\" duration:4w status:in-progress remaining:40%\n```\n\n`status:` values: `planned`, `in-progress` (alias `active`), `done` (alias `completed`), `at-risk`, `blocked`, or a custom `status` you declare earlier.\n\n`remaining:` is the work *left*, written as a percent (`40%`) or an effort literal (`1w`). So an item that is 60% complete is `remaining:40%`. Omit `remaining:` for a fully open or fully done bar.\n\n## Waves\n\n```\nwave build \"Build\"\nwave launch \"Launch\"\nswimlane api \"API\"\n item core \"Core\" duration:3w wave:build\n group wave:launch\n item docs \"Docs\" duration:1w\nmilestone ship \"Ship\" after:launch\n```\n\nA wave is a strict barrier across every swimlane: no item in the next wave starts until every item in this one ends. Items without `wave:` are background work, never held back, drawn hatched.\n\n## Working calendar\n\n```\nconfig\n\nnon-working thanksgiving \"Thanksgiving\" start:2026-11-26 end:2026-11-27\nworking crunch \"Crunch Saturday\" date:2026-01-10\n```\n\n`non-working` takes `date:`, `start:` with `end:`, or `every:` (weekday names, `every:[sat, sun]`); `working` gives days back. Durations count working days only. `default roadmap non-working:hide` (the default) collapses closed days to a seam; `show` draws them as bands. A dated declaration with a title is labelled in the marker row: a closure as `Thanksgiving \u00B7 2d` (working days removed), a `working` one as `Crunch Saturday \u00B7 +1d` (days added, no cut line). Titles on `every:` recurrences are not drawn.\n\n## Config / includes (before roadmap)\n\n`config` blocks, `include \"path.nowline\"` \u2014 see full reference for ordering rules.\n\nCall `reference` with `format: \"full\"` for the complete man page, or `examples` for sample files.\n";
|
|
2
2
|
//# sourceMappingURL=reference-cheatsheet.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reference-cheatsheet.d.ts","sourceRoot":"","sources":["../src/reference-cheatsheet.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"reference-cheatsheet.d.ts","sourceRoot":"","sources":["../src/reference-cheatsheet.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,oBAAoB,wmFAqEhC,CAAC"}
|
|
@@ -18,13 +18,13 @@ swimlane <id> "<title>"
|
|
|
18
18
|
item <id> "<title>" duration:3w
|
|
19
19
|
\`\`\`
|
|
20
20
|
|
|
21
|
-
Entity types: \`swimlane\`, \`group\`, \`parallel\`, \`item\`, \`milestone\`, \`anchor\`.
|
|
21
|
+
Entity types: \`swimlane\`, \`group\`, \`parallel\`, \`item\`, \`wave\`, \`milestone\`, \`anchor\`.
|
|
22
22
|
|
|
23
23
|
Items need \`duration:\` or \`size:\`. Use 2-space indentation under parents.
|
|
24
24
|
|
|
25
25
|
## Item properties
|
|
26
26
|
|
|
27
|
-
\`duration:\` (or \`size:\`), \`status:\`, \`remaining:\`, \`owner:\`, \`after:\`, \`before:\`, \`labels:\`, \`link:\`, \`style:\`.
|
|
27
|
+
\`duration:\` (or \`size:\`), \`status:\`, \`remaining:\`, \`owner:\`, \`wave:\`, \`after:\`, \`before:\`, \`labels:\`, \`link:\`, \`style:\`.
|
|
28
28
|
|
|
29
29
|
There is NO \`progress:\` or \`color:\` key. Show completion with \`status:\` + \`remaining:\`; set visuals with a \`style:\` reference (see full reference).
|
|
30
30
|
|
|
@@ -38,6 +38,31 @@ item api "API redesign" duration:4w status:in-progress remaining:40%
|
|
|
38
38
|
|
|
39
39
|
\`remaining:\` is the work *left*, written as a percent (\`40%\`) or an effort literal (\`1w\`). So an item that is 60% complete is \`remaining:40%\`. Omit \`remaining:\` for a fully open or fully done bar.
|
|
40
40
|
|
|
41
|
+
## Waves
|
|
42
|
+
|
|
43
|
+
\`\`\`
|
|
44
|
+
wave build "Build"
|
|
45
|
+
wave launch "Launch"
|
|
46
|
+
swimlane api "API"
|
|
47
|
+
item core "Core" duration:3w wave:build
|
|
48
|
+
group wave:launch
|
|
49
|
+
item docs "Docs" duration:1w
|
|
50
|
+
milestone ship "Ship" after:launch
|
|
51
|
+
\`\`\`
|
|
52
|
+
|
|
53
|
+
A wave is a strict barrier across every swimlane: no item in the next wave starts until every item in this one ends. Items without \`wave:\` are background work, never held back, drawn hatched.
|
|
54
|
+
|
|
55
|
+
## Working calendar
|
|
56
|
+
|
|
57
|
+
\`\`\`
|
|
58
|
+
config
|
|
59
|
+
|
|
60
|
+
non-working thanksgiving "Thanksgiving" start:2026-11-26 end:2026-11-27
|
|
61
|
+
working crunch "Crunch Saturday" date:2026-01-10
|
|
62
|
+
\`\`\`
|
|
63
|
+
|
|
64
|
+
\`non-working\` takes \`date:\`, \`start:\` with \`end:\`, or \`every:\` (weekday names, \`every:[sat, sun]\`); \`working\` gives days back. Durations count working days only. \`default roadmap non-working:hide\` (the default) collapses closed days to a seam; \`show\` draws them as bands. A dated declaration with a title is labelled in the marker row: a closure as \`Thanksgiving · 2d\` (working days removed), a \`working\` one as \`Crunch Saturday · +1d\` (days added, no cut line). Titles on \`every:\` recurrences are not drawn.
|
|
65
|
+
|
|
41
66
|
## Config / includes (before roadmap)
|
|
42
67
|
|
|
43
68
|
\`config\` blocks, \`include "path.nowline"\` — see full reference for ordering rules.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reference-cheatsheet.js","sourceRoot":"","sources":["../src/reference-cheatsheet.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAEtF,MAAM,CAAC,MAAM,oBAAoB,GAAG
|
|
1
|
+
{"version":3,"file":"reference-cheatsheet.js","sourceRoot":"","sources":["../src/reference-cheatsheet.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAEtF,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqEnC,CAAC"}
|
package/dist/schema-vocab.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export declare const SCHEMA_VOCABULARY: {
|
|
2
2
|
readonly directiveKeys: readonly ['locale', 'author', 'start', 'scale', 'length', 'calendar', 'logo', 'logo-size'];
|
|
3
|
-
readonly entityTypes: readonly ['swimlane', 'item', 'parallel', 'group', 'person', 'team', 'anchor', 'label', 'size', 'status', 'milestone', 'footnote'];
|
|
4
|
-
readonly
|
|
3
|
+
readonly entityTypes: readonly ['swimlane', 'item', 'parallel', 'group', 'person', 'team', 'anchor', 'label', 'size', 'status', 'wave', 'milestone', 'footnote'];
|
|
4
|
+
readonly configKeywords: readonly ['scale', 'calendar', 'style', 'symbol', 'default', 'non-working', 'working'];
|
|
5
|
+
readonly calendarDeclarationKeys: readonly ['date', 'start', 'end', 'every'];
|
|
6
|
+
readonly itemPropertyKeys: readonly ['status', 'owner', 'wave', 'after', 'before', 'size', 'duration', 'remaining', 'capacity', 'labels', 'link', 'style', 'description'];
|
|
5
7
|
};
|
|
6
8
|
//# sourceMappingURL=schema-vocab.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-vocab.d.ts","sourceRoot":"","sources":["../src/schema-vocab.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,iBAAiB;aAG1B,aAAa,YACT,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,OAAO,EACP,QAAQ,EACR,UAAU,EACV,MAAM,EACN,WAAW;aAGf,WAAW,YACP,UAAU,EACV,MAAM,EACN,UAAU,EACV,OAAO,EACP,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,OAAO,EACP,MAAM,EACN,QAAQ,EACR,WAAW,EACX,UAAU;
|
|
1
|
+
{"version":3,"file":"schema-vocab.d.ts","sourceRoot":"","sources":["../src/schema-vocab.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,iBAAiB;aAG1B,aAAa,YACT,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,OAAO,EACP,QAAQ,EACR,UAAU,EACV,MAAM,EACN,WAAW;aAGf,WAAW,YACP,UAAU,EACV,MAAM,EACN,UAAU,EACV,OAAO,EACP,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,OAAO,EACP,MAAM,EACN,QAAQ,EACR,MAAM,EACN,WAAW,EACX,UAAU;aAKd,cAAc,YAAG,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS;aAG5F,uBAAuB,YAAG,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO;aAKzD,gBAAgB,YACZ,QAAQ,EACR,OAAO,EACP,MAAM,EACN,OAAO,EACP,QAAQ,EACR,MAAM,EACN,UAAU,EACV,WAAW,EACX,UAAU,EACV,QAAQ,EACR,MAAM,EACN,OAAO,EACP,aAAa;CAEX,CAAC"}
|
package/dist/schema-vocab.js
CHANGED
|
@@ -30,9 +30,17 @@ export const SCHEMA_VOCABULARY = {
|
|
|
30
30
|
'label',
|
|
31
31
|
'size',
|
|
32
32
|
'status',
|
|
33
|
+
'wave',
|
|
33
34
|
'milestone',
|
|
34
35
|
'footnote',
|
|
35
36
|
],
|
|
37
|
+
// Keywords of the `config` section. `non-working` and `working` declare
|
|
38
|
+
// calendar days (specs/working-calendar.md); the others configure the
|
|
39
|
+
// chart's scale, calendar, styles, symbols and per-entity defaults.
|
|
40
|
+
configKeywords: ['scale', 'calendar', 'style', 'symbol', 'default', 'non-working', 'working'],
|
|
41
|
+
// Properties of a `non-working` / `working` declaration: one day (`date`),
|
|
42
|
+
// a range (`start`, `end`), or a recurring weekday (`every`).
|
|
43
|
+
calendarDeclarationKeys: ['date', 'start', 'end', 'every'],
|
|
36
44
|
// Properties valid on `item` declarations: item-specific keys plus the
|
|
37
45
|
// universal properties (`labels`, `link`, `style`, `description`).
|
|
38
46
|
// Visual treatment is a single `style:` reference — raw color/style
|
|
@@ -40,6 +48,7 @@ export const SCHEMA_VOCABULARY = {
|
|
|
40
48
|
itemPropertyKeys: [
|
|
41
49
|
'status',
|
|
42
50
|
'owner',
|
|
51
|
+
'wave',
|
|
43
52
|
'after',
|
|
44
53
|
'before',
|
|
45
54
|
'size',
|
package/dist/schema-vocab.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-vocab.js","sourceRoot":"","sources":["../src/schema-vocab.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,EAAE;AACF,uEAAuE;AACvE,uEAAuE;AACvE,wEAAwE;AACxE,uEAAuE;AACvE,0CAA0C;AAE1C,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC7B,gEAAgE;IAChE,uEAAuE;IACvE,aAAa,EAAE;QACX,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,OAAO;QACP,QAAQ;QACR,UAAU;QACV,MAAM;QACN,WAAW;KACd;IACD,0DAA0D;IAC1D,WAAW,EAAE;QACT,UAAU;QACV,MAAM;QACN,UAAU;QACV,OAAO;QACP,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,OAAO;QACP,MAAM;QACN,QAAQ;QACR,WAAW;QACX,UAAU;KACb;IACD,uEAAuE;IACvE,mEAAmE;IACnE,oEAAoE;IACpE,2EAA2E;IAC3E,gBAAgB,EAAE;QACd,QAAQ;QACR,OAAO;QACP,OAAO;QACP,QAAQ;QACR,MAAM;QACN,UAAU;QACV,WAAW;QACX,UAAU;QACV,QAAQ;QACR,MAAM;QACN,OAAO;QACP,aAAa;KAChB;CACK,CAAC"}
|
|
1
|
+
{"version":3,"file":"schema-vocab.js","sourceRoot":"","sources":["../src/schema-vocab.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,EAAE;AACF,uEAAuE;AACvE,uEAAuE;AACvE,wEAAwE;AACxE,uEAAuE;AACvE,0CAA0C;AAE1C,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC7B,gEAAgE;IAChE,uEAAuE;IACvE,aAAa,EAAE;QACX,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,OAAO;QACP,QAAQ;QACR,UAAU;QACV,MAAM;QACN,WAAW;KACd;IACD,0DAA0D;IAC1D,WAAW,EAAE;QACT,UAAU;QACV,MAAM;QACN,UAAU;QACV,OAAO;QACP,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,OAAO;QACP,MAAM;QACN,QAAQ;QACR,MAAM;QACN,WAAW;QACX,UAAU;KACb;IACD,wEAAwE;IACxE,sEAAsE;IACtE,oEAAoE;IACpE,cAAc,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,CAAC;IAC7F,2EAA2E;IAC3E,8DAA8D;IAC9D,uBAAuB,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC;IAC1D,uEAAuE;IACvE,mEAAmE;IACnE,oEAAoE;IACpE,2EAA2E;IAC3E,gBAAgB,EAAE;QACd,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,MAAM;QACN,UAAU;QACV,WAAW;QACX,UAAU;QACV,QAAQ;QACR,MAAM;QACN,OAAO;QACP,aAAa;KAChB;CACK,CAAC"}
|
package/dist/schemas.d.ts
CHANGED
|
@@ -145,5 +145,7 @@ export declare const SchemaOutputSchema: z.ZodObject<{
|
|
|
145
145
|
directiveKeys: z.ZodArray<z.ZodString>;
|
|
146
146
|
entityTypes: z.ZodArray<z.ZodString>;
|
|
147
147
|
itemPropertyKeys: z.ZodArray<z.ZodString>;
|
|
148
|
+
configKeywords: z.ZodArray<z.ZodString>;
|
|
149
|
+
calendarDeclarationKeys: z.ZodArray<z.ZodString>;
|
|
148
150
|
}, z.core.$strip>;
|
|
149
151
|
//# sourceMappingURL=schemas.d.ts.map
|
package/dist/schemas.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;iBAQ3B,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;iBAKxB,CAAC;AAIH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;iBAI/B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;iBAG3B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;iBAI7B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;iBAI7B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;iBAE7B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;iBAE3B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;iBAM7B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;iBAI7B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;iBAE5B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;iBAG9B,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;iBAMnC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;iBAEhC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;iBAGhC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;iBAI/B,CAAC;AAEH,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;iBAQ3B,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;iBAKxB,CAAC;AAIH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;iBAI/B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;iBAG3B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;iBAI7B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;iBAI7B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;iBAE7B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;iBAE3B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;iBAM7B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;iBAI7B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;iBAE5B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;iBAG9B,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;iBAMnC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;iBAEhC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;iBAGhC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;iBAI/B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;iBAM7B,CAAC"}
|
package/dist/schemas.js
CHANGED
|
@@ -85,5 +85,7 @@ export const SchemaOutputSchema = z.object({
|
|
|
85
85
|
directiveKeys: z.array(z.string()),
|
|
86
86
|
entityTypes: z.array(z.string()),
|
|
87
87
|
itemPropertyKeys: z.array(z.string()),
|
|
88
|
+
configKeywords: z.array(z.string()),
|
|
89
|
+
calendarDeclarationKeys: z.array(z.string()),
|
|
88
90
|
});
|
|
89
91
|
//# sourceMappingURL=schemas.js.map
|
package/dist/schemas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AA6EzD,4EAA4E;AAC5E,eAAO,MAAM,cAAc,4BAA4B,CAAC;AAmJxD,MAAM,WAAW,gBAAgB;IAC7B,wGAAwG;IACxG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wJAAwJ;IACxJ,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,eAAe,CAAC,IAAI,GAAE,gBAAqB,GAAG,SAAS,CAkrCtE"}
|