@nowline/cli 0.8.6 → 0.10.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 (91) hide show
  1. package/README.md +32 -9
  2. package/dist/cli/args.d.ts +20 -4
  3. package/dist/cli/args.d.ts.map +1 -1
  4. package/dist/cli/args.js +20 -0
  5. package/dist/cli/args.js.map +1 -1
  6. package/dist/cli/help.d.ts.map +1 -1
  7. package/dist/cli/help.js +31 -3
  8. package/dist/cli/help.js.map +1 -1
  9. package/dist/cli/options.d.ts +74 -0
  10. package/dist/cli/options.d.ts.map +1 -0
  11. package/dist/cli/options.js +209 -0
  12. package/dist/cli/options.js.map +1 -0
  13. package/dist/commands/init.d.ts.map +1 -1
  14. package/dist/commands/init.js +2 -3
  15. package/dist/commands/init.js.map +1 -1
  16. package/dist/commands/mcp-install.d.ts +18 -0
  17. package/dist/commands/mcp-install.d.ts.map +1 -0
  18. package/dist/commands/mcp-install.js +151 -0
  19. package/dist/commands/mcp-install.js.map +1 -0
  20. package/dist/commands/mcp.d.ts.map +1 -1
  21. package/dist/commands/mcp.js +7 -12
  22. package/dist/commands/mcp.js.map +1 -1
  23. package/dist/commands/render.d.ts +7 -0
  24. package/dist/commands/render.d.ts.map +1 -1
  25. package/dist/commands/render.js +161 -155
  26. package/dist/commands/render.js.map +1 -1
  27. package/dist/commands/serve.d.ts.map +1 -1
  28. package/dist/commands/serve.js +87 -60
  29. package/dist/commands/serve.js.map +1 -1
  30. package/dist/diagnostics/adapt.d.ts +12 -1
  31. package/dist/diagnostics/adapt.d.ts.map +1 -1
  32. package/dist/diagnostics/adapt.js +53 -1
  33. package/dist/diagnostics/adapt.js.map +1 -1
  34. package/dist/diagnostics/model.d.ts +1 -1
  35. package/dist/generated/version.d.ts +1 -1
  36. package/dist/generated/version.d.ts.map +1 -1
  37. package/dist/generated/version.js +2 -2
  38. package/dist/generated/version.js.map +1 -1
  39. package/dist/i18n/locale.d.ts.map +1 -1
  40. package/dist/i18n/locale.js +2 -5
  41. package/dist/i18n/locale.js.map +1 -1
  42. package/dist/index.js +4 -0
  43. package/dist/index.js.map +1 -1
  44. package/dist/io/config.d.ts +1 -1
  45. package/dist/io/config.d.ts.map +1 -1
  46. package/dist/io/config.js +1 -1
  47. package/dist/io/config.js.map +1 -1
  48. package/dist/io/log.d.ts +17 -0
  49. package/dist/io/log.d.ts.map +1 -0
  50. package/dist/io/log.js +16 -0
  51. package/dist/io/log.js.map +1 -0
  52. package/dist/mcp-install/clients.d.ts +58 -0
  53. package/dist/mcp-install/clients.d.ts.map +1 -0
  54. package/dist/mcp-install/clients.js +304 -0
  55. package/dist/mcp-install/clients.js.map +1 -0
  56. package/dist/mcp-install/host.d.ts +29 -0
  57. package/dist/mcp-install/host.d.ts.map +1 -0
  58. package/dist/mcp-install/host.js +72 -0
  59. package/dist/mcp-install/host.js.map +1 -0
  60. package/dist/mcp-install/json-config.d.ts +29 -0
  61. package/dist/mcp-install/json-config.d.ts.map +1 -0
  62. package/dist/mcp-install/json-config.js +139 -0
  63. package/dist/mcp-install/json-config.js.map +1 -0
  64. package/dist/mcp-install/server-command.d.ts +26 -0
  65. package/dist/mcp-install/server-command.d.ts.map +1 -0
  66. package/dist/mcp-install/server-command.js +52 -0
  67. package/dist/mcp-install/server-command.js.map +1 -0
  68. package/man/fr/nowline.1 +248 -19
  69. package/man/fr/nowline.5 +819 -45
  70. package/man/nowline.1 +193 -18
  71. package/man/nowline.5 +764 -36
  72. package/package.json +19 -19
  73. package/src/cli/args.ts +55 -5
  74. package/src/cli/help.ts +31 -3
  75. package/src/cli/options.ts +286 -0
  76. package/src/commands/init.ts +2 -3
  77. package/src/commands/mcp-install.ts +211 -0
  78. package/src/commands/mcp.ts +10 -14
  79. package/src/commands/render.ts +198 -195
  80. package/src/commands/serve.ts +102 -74
  81. package/src/diagnostics/adapt.ts +62 -0
  82. package/src/diagnostics/model.ts +1 -1
  83. package/src/generated/version.ts +2 -2
  84. package/src/i18n/locale.ts +2 -6
  85. package/src/index.ts +3 -0
  86. package/src/io/config.ts +0 -1
  87. package/src/io/log.ts +33 -0
  88. package/src/mcp-install/clients.ts +443 -0
  89. package/src/mcp-install/host.ts +106 -0
  90. package/src/mcp-install/json-config.ts +179 -0
  91. package/src/mcp-install/server-command.ts +75 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/cli/options.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAMjD,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,UAAU,CAAC;IACjB,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6B5E;AA6BD,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAU5E"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAOjD,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,UAAU,CAAC;IACjB,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2B5E;AA6BD,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAU5E"}
@@ -1,6 +1,7 @@
1
1
  import { defaultInitOutputPath, initNameHasIncompatibleExtension } from '../cli/output-path.js';
2
2
  import { TEMPLATE_NAMES, TEMPLATES } from '../generated/templates.js';
3
3
  import { CliError, ExitCode } from '../io/exit-codes.js';
4
+ import { createLog } from '../io/log.js';
4
5
  import { writeOutput } from '../io/write.js';
5
6
  /**
6
7
  * `--init` mode handler. Scaffolds a starter `.nowline` file in cwd.
@@ -29,9 +30,7 @@ export async function initHandler(options) {
29
30
  const rendered = applyName(templateText, titleName);
30
31
  const outputPath = args.output ?? defaultInitOutputPath({ name: projectName, cwd });
31
32
  await writeOutput(outputPath, rendered, 'text', { cwd });
32
- if (args.logLevel === 'verbose') {
33
- process.stderr.write(`nowline: wrote ${outputPath}\n`);
34
- }
33
+ createLog(args.logLevel).verbose(`nowline: wrote ${outputPath}`);
35
34
  }
36
35
  function parseTemplateName(raw) {
37
36
  const value = (raw ?? '').toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { ParsedArgs } from '../cli/args.js';
2
+ import { type HostEnv } from '../mcp-install/host.js';
3
+ export interface McpInstallOptions {
4
+ args: ParsedArgs;
5
+ host?: HostEnv;
6
+ stdout?: (chunk: string) => void;
7
+ }
8
+ /**
9
+ * `nowline --mcp-install [<client>]` / `--mcp-uninstall [<client>]`.
10
+ *
11
+ * Registers (or removes) the `nowline` MCP server in each harness's config.
12
+ * JSON configs are edited in place; Claude Code's user scope and Codex go
13
+ * through their own `mcp add`, since we can't safely edit ~/.claude.json or
14
+ * TOML; YAML and undocumented paths get a paste-ready snippet. One client
15
+ * failing doesn't stop the rest; the run then exits with OutputError.
16
+ */
17
+ export declare function mcpInstallHandler({ args, host, stdout, }: McpInstallOptions): Promise<void>;
18
+ //# sourceMappingURL=mcp-install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-install.d.ts","sourceRoot":"","sources":["../../src/commands/mcp-install.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAejD,OAAO,EAAiB,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAUrE,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAWD;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CAAC,EACpC,IAAI,EACJ,IAAsB,EACtB,MAEC,GACJ,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BnC"}
@@ -0,0 +1,151 @@
1
+ import { CliError, ExitCode } from '../io/exit-codes.js';
2
+ import { createLog } from '../io/log.js';
3
+ import { CLIENT_IDS, CLIENTS, commandLine, findClient, SERVER_NAME, } from '../mcp-install/clients.js';
4
+ import { createHostEnv } from '../mcp-install/host.js';
5
+ import { JsonConfigError, readConfigFile, removeEntry, upsertEntry, writeConfigFile, } from '../mcp-install/json-config.js';
6
+ import { resolveServer } from '../mcp-install/server-command.js';
7
+ /**
8
+ * `nowline --mcp-install [<client>]` / `--mcp-uninstall [<client>]`.
9
+ *
10
+ * Registers (or removes) the `nowline` MCP server in each harness's config.
11
+ * JSON configs are edited in place; Claude Code's user scope and Codex go
12
+ * through their own `mcp add`, since we can't safely edit ~/.claude.json or
13
+ * TOML; YAML and undocumented paths get a paste-ready snippet. One client
14
+ * failing doesn't stop the rest; the run then exits with OutputError.
15
+ */
16
+ export async function mcpInstallHandler({ args, host = createHostEnv(), stdout = (chunk) => {
17
+ process.stdout.write(chunk);
18
+ }, }) {
19
+ const uninstall = args.mode === 'mcp-uninstall';
20
+ const flag = uninstall ? '--mcp-uninstall' : '--mcp-install';
21
+ const scope = args.scope ?? 'user';
22
+ const log = createLog(args.logLevel);
23
+ const out = (line) => stdout(`${line}\n`);
24
+ const clients = selectClients(args.positional, scope, flag, host, out);
25
+ const server = resolveServer(args.server ?? 'self', args.root, host);
26
+ if (!uninstall)
27
+ for (const warning of server.warnings)
28
+ log.notice(warning);
29
+ const run = { uninstall, dryRun: args.dryRun, scope, entry: server.entry, host, out };
30
+ const failed = [];
31
+ for (const client of clients) {
32
+ try {
33
+ applyTarget(client, run);
34
+ }
35
+ catch (err) {
36
+ if (!(err instanceof JsonConfigError || err instanceof ClientFailure))
37
+ throw err;
38
+ failed.push(client.id);
39
+ process.stderr.write(`nowline: ${client.id}: ${err.message}\n`);
40
+ }
41
+ }
42
+ if (failed.length > 0) {
43
+ throw new CliError(ExitCode.OutputError, `nowline: ${flag} failed for ${failed.join(', ')}.`);
44
+ }
45
+ }
46
+ class ClientFailure extends Error {
47
+ }
48
+ function selectClients(requested, scope, flag, host, out) {
49
+ if (requested !== undefined && requested !== 'all') {
50
+ const client = findClient(requested);
51
+ if (!client) {
52
+ throw new CliError(ExitCode.InputError, `nowline: unknown client "${requested}". Expected one of: ${CLIENT_IDS.join(', ')}, all.`);
53
+ }
54
+ if (!client.scopes.includes(scope)) {
55
+ throw new CliError(ExitCode.InputError, `nowline: ${client.id} has no ${scope} config; use --scope ${client.scopes.join(' or ')}.`);
56
+ }
57
+ return [client];
58
+ }
59
+ const detected = CLIENTS.filter((client) => client.detect(host));
60
+ if (detected.length === 0) {
61
+ throw new CliError(ExitCode.InputError, `nowline: no supported agent found on this machine. Name one: nowline ${flag} <client>, where <client> is one of: ${CLIENT_IDS.join(', ')}.`);
62
+ }
63
+ return detected.filter((client) => {
64
+ if (client.scopes.includes(scope))
65
+ return true;
66
+ out(`${client.id}: skipped, it has no ${scope} config`);
67
+ return false;
68
+ });
69
+ }
70
+ function applyTarget(client, run) {
71
+ const target = client.target(run.scope, run.entry, run.host);
72
+ if (target.kind === 'json')
73
+ return applyJson(client, target, run);
74
+ if (target.kind === 'cli') {
75
+ if (run.host.findAllOnPath(target.binary).length === 0) {
76
+ return applyPrint(client, target.fallback, run);
77
+ }
78
+ return applyCli(client, target, run);
79
+ }
80
+ return applyPrint(client, target, run);
81
+ }
82
+ function applyJson(client, target, run) {
83
+ const existing = readConfigFile(target.path);
84
+ const edit = run.uninstall
85
+ ? removeEntry(existing, target, run.entry)
86
+ : upsertEntry(existing, target, run.entry);
87
+ const where = target.path;
88
+ if (edit.change === 'unchanged')
89
+ return run.out(`${client.id}: already installed in ${where}`);
90
+ if (edit.change === 'absent')
91
+ return run.out(`${client.id}: not installed in ${where}`);
92
+ const [verb, object] = edit.change === 'created'
93
+ ? ['create', where]
94
+ : edit.change === 'removed'
95
+ ? ['remove', `${SERVER_NAME} from ${where}`]
96
+ : edit.change === 'added'
97
+ ? ['add', `${SERVER_NAME} to ${where}`]
98
+ : ['update', `${SERVER_NAME} in ${where}`];
99
+ if (run.dryRun) {
100
+ run.out(`${client.id}: would ${verb} ${object}`);
101
+ if (edit.value !== undefined) {
102
+ run.out(indent(JSON.stringify({ [edit.keyPath.join('.')]: edit.value }, null, 2)));
103
+ }
104
+ return;
105
+ }
106
+ if (edit.text !== undefined)
107
+ writeConfigFile(target.path, edit.text);
108
+ const hint = target.hint !== undefined && !run.uninstall ? `; ${target.hint}` : '';
109
+ run.out(`${client.id}: ${verb.endsWith('e') ? `${verb}d` : `${verb}ed`} ${object}${hint}`);
110
+ }
111
+ function applyCli(client, target, run) {
112
+ const remove = [target.binary, ...target.remove];
113
+ const add = [target.binary, ...target.add];
114
+ if (run.dryRun) {
115
+ run.out(`${client.id}: would run:`);
116
+ run.out(indent(commandLine(remove)));
117
+ if (!run.uninstall)
118
+ run.out(indent(commandLine(add)));
119
+ return;
120
+ }
121
+ // Remove first so a re-run replaces a stale entry instead of failing on a duplicate.
122
+ const removed = run.host.spawn(target.binary, target.remove);
123
+ if (run.uninstall) {
124
+ if (removed.status === 0) {
125
+ return run.out(`${client.id}: removed ${SERVER_NAME} (${commandLine(remove)})`);
126
+ }
127
+ return run.out(`${client.id}: nothing removed; ${commandLine(remove)} said: ${firstLine(removed.stderr || removed.stdout || removed.error)}`);
128
+ }
129
+ const added = run.host.spawn(target.binary, target.add);
130
+ if (added.status !== 0) {
131
+ const reason = firstLine(added.stderr || added.stdout || added.error);
132
+ throw new ClientFailure(`${commandLine(add)} failed${added.status !== null ? ` (exit ${added.status})` : ''}: ${reason}`);
133
+ }
134
+ run.out(`${client.id}: registered (${commandLine(add)})`);
135
+ }
136
+ function applyPrint(client, target, run) {
137
+ const step = run.uninstall ? target.uninstall : target.install;
138
+ run.out(`${client.id}: ${step.instructions}`);
139
+ if (step.snippet !== undefined)
140
+ run.out(indent(step.snippet));
141
+ }
142
+ function indent(text) {
143
+ return text
144
+ .split('\n')
145
+ .map((line) => ` ${line}`)
146
+ .join('\n');
147
+ }
148
+ function firstLine(text) {
149
+ return text?.trim().split('\n')[0] ?? 'no output';
150
+ }
151
+ //# sourceMappingURL=mcp-install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-install.js","sourceRoot":"","sources":["../../src/commands/mcp-install.ts"],"names":[],"mappings":"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"}
@@ -1 +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"}
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD;;;;;;;;;;;GAWG;AACH,wBAAsB,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC9E"}
@@ -1,7 +1,8 @@
1
1
  import { createServer } from 'node:http';
2
- import { NodeStreamableHTTPServerTransport } from '@modelcontextprotocol/node';
3
2
  import { StdioServerTransport } from '@modelcontextprotocol/server/stdio';
3
+ import { createMcpHttpHandler } from '@nowline/mcp/http';
4
4
  import { createMcpServer } from '@nowline/mcp/server';
5
+ import { createLog } from '../io/log.js';
5
6
  /**
6
7
  * `nowline --mcp` handler.
7
8
  *
@@ -15,24 +16,18 @@ import { createMcpServer } from '@nowline/mcp/server';
15
16
  * Runs until the process receives SIGINT/SIGTERM or the client closes stdin.
16
17
  */
17
18
  export async function mcpHandler({ args }) {
18
- const root = args.root ?? process.cwd();
19
- const server = createMcpServer({ allowedRoot: root });
19
+ // Without --root the server follows the client's MCP roots, else cwd.
20
+ const root = args.root;
20
21
  const portStr = args.port;
21
22
  if (portStr !== undefined) {
22
23
  const port = parseInt(portStr, 10);
23
24
  if (!Number.isFinite(port) || port < 1 || port > 65535) {
24
25
  throw new Error(`nowline: --port must be a number between 1 and 65535 (got ${portStr}).`);
25
26
  }
26
- const transport = new NodeStreamableHTTPServerTransport({
27
- sessionIdGenerator: undefined,
28
- });
29
- await server.connect(transport);
30
- const httpServer = createServer(async (req, res) => {
31
- await transport.handleRequest(req, res);
32
- });
27
+ const httpServer = createServer(createMcpHttpHandler(() => createMcpServer({ allowedRoot: root })));
33
28
  await new Promise((resolve) => {
34
29
  httpServer.listen(port, '127.0.0.1', () => {
35
- process.stderr.write(`nowline: MCP Streamable HTTP listening on http://127.0.0.1:${port}\n`);
30
+ createLog(args.logLevel).notice(`nowline: MCP Streamable HTTP listening on http://127.0.0.1:${port}`);
36
31
  });
37
32
  httpServer.on('close', resolve);
38
33
  process.on('SIGINT', () => httpServer.close());
@@ -41,7 +36,7 @@ export async function mcpHandler({ args }) {
41
36
  }
42
37
  else {
43
38
  const transport = new StdioServerTransport();
44
- await server.connect(transport);
39
+ await createMcpServer({ allowedRoot: root }).connect(transport);
45
40
  await new Promise((resolve) => {
46
41
  transport.onclose = resolve;
47
42
  });
@@ -1 +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,iCAAiC,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,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,iCAAiC,CAAC;YACpD,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
+ {"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,oCAAoC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,EAAE,IAAI,EAAwB;IAC3D,sEAAsE;IACtE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAEvB,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,UAAU,GAAG,YAAY,CAC3B,oBAAoB,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CACrE,CAAC;QAEF,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAChC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE;gBACtC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAC3B,8DAA8D,IAAI,EAAE,CACvE,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,eAAe,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChE,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAChC,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;QAChC,CAAC,CAAC,CAAC;IACP,CAAC;AACL,CAAC"}
@@ -1,5 +1,7 @@
1
1
  import type { AssetResolver } from '@nowline/renderer';
2
2
  import type { ParsedArgs } from '../cli/args.js';
3
+ import { type LoadConfigResult } from '../io/config.js';
4
+ import { type Log } from '../io/log.js';
3
5
  export interface RenderHandlerOptions {
4
6
  args: ParsedArgs;
5
7
  /** Test seam: cwd override. Defaults to `process.cwd()`. */
@@ -11,5 +13,10 @@ export interface RenderHandlerOptions {
11
13
  * step), `--input-format`, and `.json` AST input.
12
14
  */
13
15
  export declare function renderHandler(options: RenderHandlerOptions): Promise<void>;
16
+ export declare function loadConfigFor(inputArg: string, cwd: string): Promise<LoadConfigResult>;
17
+ /** Under `-q`, text-mode diagnostics keep only errors. Shared with serve. */
18
+ export declare function errorsOnlyWhenQuiet<T extends {
19
+ severity: string;
20
+ }>(diagnostics: T[], log: Log): T[];
14
21
  export declare function createAssetResolver(assetRoot: string): AssetResolver;
15
22
  //# sourceMappingURL=render.d.ts.map
@@ -1 +1 @@
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;AA4BjD,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,CA8FhF;AA0bD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAWpE"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/commands/render.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AA0BjD,OAAO,EAAE,KAAK,gBAAgB,EAAc,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAAa,KAAK,GAAG,EAAE,MAAM,cAAc,CAAC;AAInD,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,CAiGhF;AA2XD,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAW5F;AAyCD,6EAA6E;AAC7E,wBAAgB,mBAAmB,CAAC,CAAC,SAAS;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,EAC9D,WAAW,EAAE,CAAC,EAAE,EAChB,GAAG,EAAE,GAAG,GACT,CAAC,EAAE,CAEL;AAID,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAWpE"}