zelari-code 0.7.5 → 0.7.9
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/README.md +27 -1
- package/dist/cli/app.js +50 -18
- package/dist/cli/app.js.map +1 -1
- package/dist/cli/components/Sidebar.js +86 -39
- package/dist/cli/components/Sidebar.js.map +1 -1
- package/dist/cli/components/SplashScreen.js +204 -0
- package/dist/cli/components/SplashScreen.js.map +1 -0
- package/dist/cli/components/StatusBar.js +22 -18
- package/dist/cli/components/StatusBar.js.map +1 -1
- package/dist/cli/councilConfig.js +38 -0
- package/dist/cli/councilConfig.js.map +1 -0
- package/dist/cli/councilDispatcher.js +38 -32
- package/dist/cli/councilDispatcher.js.map +1 -1
- package/dist/cli/hooks/useChatTurn.js +80 -61
- package/dist/cli/hooks/useChatTurn.js.map +1 -1
- package/dist/cli/hooks/useExecutionTimer.js +25 -0
- package/dist/cli/hooks/useExecutionTimer.js.map +1 -0
- package/dist/cli/hooks/useGitChanges.js +142 -0
- package/dist/cli/hooks/useGitChanges.js.map +1 -0
- package/dist/cli/hooks/useSlashDispatch.js +9 -2
- package/dist/cli/hooks/useSlashDispatch.js.map +1 -1
- package/dist/cli/main.bundled.js +2560 -1231
- package/dist/cli/main.bundled.js.map +4 -4
- package/dist/cli/main.js +9 -2
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/mcp/mcpClient.js +14 -6
- package/dist/cli/mcp/mcpClient.js.map +1 -1
- package/dist/cli/updater.js +8 -5
- package/dist/cli/updater.js.map +1 -1
- package/dist/cli/utils/cmdline.js +26 -0
- package/dist/cli/utils/cmdline.js.map +1 -0
- package/dist/cli/utils/paths.js +20 -0
- package/dist/cli/utils/paths.js.map +1 -0
- package/dist/cli/wizard/index.js +1 -1
- package/dist/cli/wizard/index.js.map +1 -1
- package/dist/cli/workspace/completeDesign.js +128 -0
- package/dist/cli/workspace/completeDesign.js.map +1 -0
- package/dist/cli/workspace/planDetect.js +17 -0
- package/dist/cli/workspace/planDetect.js.map +1 -0
- package/dist/cli/workspace/postCouncilHook.js +157 -20
- package/dist/cli/workspace/postCouncilHook.js.map +1 -1
- package/dist/cli/workspace/stubs.js +406 -225
- package/dist/cli/workspace/stubs.js.map +1 -1
- package/package.json +71 -71
package/dist/cli/main.js
CHANGED
|
@@ -7,6 +7,7 @@ import React from 'react';
|
|
|
7
7
|
import { render } from 'ink';
|
|
8
8
|
// @ts-ignore
|
|
9
9
|
import { App } from './app.js';
|
|
10
|
+
import { SplashGate } from './components/SplashScreen.js';
|
|
10
11
|
import { getMetricsLogger } from './metrics.js';
|
|
11
12
|
import { getProviderConfigPath } from './providerConfig.js';
|
|
12
13
|
import { parseWizardFlags, shouldRunWizard, } from './wizard/firstRun.js';
|
|
@@ -15,7 +16,7 @@ import { parseHeadlessFlags } from './headless.js';
|
|
|
15
16
|
import { runHeadless } from './runHeadless.js';
|
|
16
17
|
import { loadSkillMdSkills } from './skillsMd.js';
|
|
17
18
|
import { listCodingSkills } from '@zelari/core/skills';
|
|
18
|
-
export const VERSION = '0.7.
|
|
19
|
+
export const VERSION = '0.7.9';
|
|
19
20
|
/**
|
|
20
21
|
* Silent background update check (Task N.6, v3-N).
|
|
21
22
|
*
|
|
@@ -134,7 +135,13 @@ function pickRootComponent() {
|
|
|
134
135
|
console.error(`[zelari-code] starting wizard: ${decision.reason}`);
|
|
135
136
|
return { kind: 'wizard', element: React.createElement(RunWizard) };
|
|
136
137
|
}
|
|
137
|
-
|
|
138
|
+
// v0.7.8: one-shot startup splash (ASCII emblem, ~2s or any-key skip),
|
|
139
|
+
// then the App mounts. Skipped automatically for non-TTY stdout, small
|
|
140
|
+
// terminals, or ZELARI_NO_SPLASH=1 — see components/SplashScreen.tsx.
|
|
141
|
+
return {
|
|
142
|
+
kind: 'app',
|
|
143
|
+
element: React.createElement(SplashGate, { version: VERSION }, React.createElement(App)),
|
|
144
|
+
};
|
|
138
145
|
}
|
|
139
146
|
/**
|
|
140
147
|
* v0.7.5: load user SKILL.md skills (opencode/Hermes/Claude-compatible
|
package/dist/cli/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,aAAa;AACb,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EACL,gBAAgB,EAChB,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B;;;;;;;;;GASG;AACH,KAAK,UAAU,qBAAqB;IAClC,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,GAAG;QAAE,OAAO;IAC7C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1D,IAAI,CAAC;QACH,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,MAAM,cAAc,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACxC,sCAAsC;YACtC,OAAO,CAAC,KAAK,CACX,qBAAqB,IAAI,CAAC,aAAa,yBAAyB,IAAI,CAAC,cAAc,KAAK;gBACtF,wDAAwD,CAC3D,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,wDAAwD;QACxD,oDAAoD;IACtD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,QAAQ;IACrB,wEAAwE;IACxE,mEAAmE;IACnE,uEAAuE;IACvE,qEAAqE;IACrE,oEAAoE;IACpE,oDAAoD;IACpD,IAAI,CAAC;QACH,MAAM,gBAAgB,EAAE,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,+DAA+D;IACjE,CAAC;IACD,IAAI,CAAC;QACH,2EAA2E;QAC3E,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAChE,eAAe,EAAE,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,iBAAiB;IACxB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACtD,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,gBAAgB,OAAO,EAAE,CAAC,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,sCAAsC;QACtC,OAAO,CAAC,GAAG,CACT,8CAA8C;YAC5C,IAAI;YACJ,gCAAgC;YAChC,IAAI;YACJ,YAAY;YACZ,gDAAgD;YAChD,kDAAkD;YAClD,mDAAmD;YACnD,4EAA4E;YAC5E,oEAAoE;YACpE,mEAAmE;YACnE,yDAAyD;YACzD,4DAA4D;YAC5D,8DAA8D;YAC9D,qEAAqE;YACrE,IAAI;YACJ,gBAAgB;YAChB,mDAAmD;YACnD,yDAAyD,CAC5D,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,oEAAoE;IACpE,+DAA+D;IAC/D,kEAAkE;IAClE,MAAM,aAAa,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,aAAa,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QACnC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,CAAC,OAAO,EAAE,CAAC;IACnE,CAAC;IACD,IAAI,aAAa,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACtC,sCAAsC;QACtC,OAAO,CAAC,KAAK,CAAC,4BAA4B,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,eAAe,CAAC;QAC/B,UAAU,EAAE,qBAAqB,EAAE;QACnC,kBAAkB,EAAE,KAAK,CAAC,WAAW;QACrC,eAAe,EAAE,KAAK,CAAC,QAAQ;QAC/B,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB;KAC1C,CAAC,CAAC;IACH,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QACvB,sCAAsC;QACtC,OAAO,CAAC,KAAK,CAAC,kCAAkC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACnE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;IACrE,CAAC;IACD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* @see https://modelcontextprotocol.io/specification (stdio transport)
|
|
13
13
|
*/
|
|
14
14
|
import { spawn } from 'node:child_process';
|
|
15
|
+
import { buildCmdLine } from '../utils/cmdline.js';
|
|
15
16
|
const DEFAULT_REQUEST_TIMEOUT_MS = 30_000;
|
|
16
17
|
const INIT_TIMEOUT_MS = 15_000;
|
|
17
18
|
export const MCP_PROTOCOL_VERSION = '2025-03-26';
|
|
@@ -31,14 +32,21 @@ export class McpClient {
|
|
|
31
32
|
async start() {
|
|
32
33
|
if (this.child)
|
|
33
34
|
return;
|
|
34
|
-
const
|
|
35
|
+
const spawnOpts = {
|
|
35
36
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
36
37
|
env: { ...process.env, ...(this.config.env ?? {}) },
|
|
37
|
-
// On Windows `npx`/`uvx` resolve to .cmd shims which plain spawn
|
|
38
|
-
// cannot execute; shell:true lets cmd.exe resolve them.
|
|
39
|
-
shell: process.platform === 'win32',
|
|
40
38
|
windowsHide: true,
|
|
41
|
-
}
|
|
39
|
+
};
|
|
40
|
+
// On Windows `npx`/`uvx` resolve to .cmd shims which plain spawn cannot
|
|
41
|
+
// execute, so a shell is required — but passing an args ARRAY together
|
|
42
|
+
// with shell:true is deprecated (DEP0190: args concatenated unescaped).
|
|
43
|
+
// Build the command line ourselves with explicit quoting instead.
|
|
44
|
+
const child = (process.platform === 'win32'
|
|
45
|
+
? spawn(buildCmdLine(this.config.command, this.config.args ?? []), {
|
|
46
|
+
...spawnOpts,
|
|
47
|
+
shell: true,
|
|
48
|
+
})
|
|
49
|
+
: spawn(this.config.command, this.config.args ?? [], spawnOpts));
|
|
42
50
|
this.child = child;
|
|
43
51
|
child.stdout.setEncoding('utf8');
|
|
44
52
|
child.stdout.on('data', (chunk) => this.onStdout(chunk));
|
|
@@ -51,7 +59,7 @@ export class McpClient {
|
|
|
51
59
|
await this.request('initialize', {
|
|
52
60
|
protocolVersion: MCP_PROTOCOL_VERSION,
|
|
53
61
|
capabilities: {},
|
|
54
|
-
clientInfo: { name: 'zelari-code', version: '0.7.
|
|
62
|
+
clientInfo: { name: 'zelari-code', version: '0.7.9' },
|
|
55
63
|
}, INIT_TIMEOUT_MS);
|
|
56
64
|
this.notify('notifications/initialized', {});
|
|
57
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcpClient.js","sourceRoot":"","sources":["../../../src/cli/mcp/mcpClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,KAAK,EAAuC,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"mcpClient.js","sourceRoot":"","sources":["../../../src/cli/mcp/mcpClient.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/updater.js
CHANGED
|
@@ -19,6 +19,7 @@ import { createRequire } from 'node:module';
|
|
|
19
19
|
import { spawn } from 'node:child_process';
|
|
20
20
|
import path from 'node:path';
|
|
21
21
|
import { fileURLToPath } from 'node:url';
|
|
22
|
+
import { buildCmdLine } from './utils/cmdline.js';
|
|
22
23
|
const require = createRequire(import.meta.url);
|
|
23
24
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
24
25
|
/**
|
|
@@ -124,17 +125,19 @@ export async function checkForUpdate(fetcher = fetch, registryUrl) {
|
|
|
124
125
|
* Injectable `executor` for tests.
|
|
125
126
|
*
|
|
126
127
|
* On Windows, `spawn('npm', ...)` fails with ENOENT because npm is a .cmd
|
|
127
|
-
* shim —
|
|
128
|
+
* shim — a shell is required to resolve the extension. v0.7.9: the win32
|
|
129
|
+
* path passes a single pre-quoted command STRING (args array + shell:true
|
|
130
|
+
* is deprecated, DEP0190: args concatenated unescaped).
|
|
128
131
|
*/
|
|
129
132
|
export async function performUpdate(packageName = 'zelari-code', executor = spawn) {
|
|
130
133
|
return new Promise((resolve) => {
|
|
131
134
|
const args = ['install', '-g', `${packageName}@latest`];
|
|
132
135
|
let stdout = '';
|
|
133
136
|
let stderr = '';
|
|
134
|
-
const
|
|
135
|
-
|
|
136
|
-
shell:
|
|
137
|
-
|
|
137
|
+
const stdio = ['ignore', 'pipe', 'pipe'];
|
|
138
|
+
const child = process.platform === 'win32'
|
|
139
|
+
? executor(buildCmdLine('npm', args), { stdio, shell: true })
|
|
140
|
+
: executor('npm', args, { stdio });
|
|
138
141
|
child.stdout?.on('data', (chunk) => {
|
|
139
142
|
stdout += chunk.toString();
|
|
140
143
|
});
|
package/dist/cli/updater.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updater.js","sourceRoot":"","sources":["../../src/cli/updater.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"updater.js","sourceRoot":"","sources":["../../src/cli/updater.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,IAAI,CAAC;QACH,kFAAkF;QAClF,qDAAqD;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QACpE,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAwB,CAAC;QACpD,OAAO,GAAG,CAAC,OAAO,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAkBD;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,CAAS,EAAE,CAAS;IAChD,MAAM,KAAK,GAAG,CAAC,CAAS,EAA2C,EAAE;QACnE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,IAAI,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAC/B,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;IAClE,CAAC,CAAC;IACF,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAEpC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,gDAAgD;IAChD,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC;IAC5B,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC;IAC5B,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC,CAAC;IAC7B,OAAO,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,sDAAsD;AACtD,MAAM,CAAC,MAAM,YAAY,GAAG,+CAA+C,CAAC;AAE5E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,UAAwB,KAAK,EAC7B,cAAsB,YAAY,EAClC,SAAS,GAAG,IAAI;IAEhB,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;QAC9D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3E,YAAY,CAAC,KAAK,CAAC,CAAC;QAEpB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,EAAE,KAAK,EAAE,sBAAsB,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QAC5D,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAyB,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACtD,OAAO,EAAE,KAAK,EAAE,yCAAyC,EAAE,CAAC;QAC9D,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC5B,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,UAAwB,KAAK,EAC7B,WAAoB;IAEpB,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAE9D,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;QACtB,OAAO;YACL,cAAc;YACd,aAAa,EAAE,cAAc;YAC7B,eAAe,EAAE,KAAK;YACtB,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,aAAa,CAAC,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1D,OAAO;QACL,cAAc;QACd,aAAa,EAAE,MAAM,CAAC,OAAO;QAC7B,eAAe,EAAE,GAAG,GAAG,CAAC;KACzB,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,WAAW,GAAG,aAAa,EAC3B,WAAyB,KAAK;IAE9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,WAAW,SAAS,CAAC,CAAC;QACxD,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,MAAM,KAAK,GAA+B,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACrE,MAAM,KAAK,GACT,OAAO,CAAC,QAAQ,KAAK,OAAO;YAC1B,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YAC7D,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAEvC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACzC,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACzC,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,OAAO,CAAC;gBACN,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,MAAM,GAAG,MAAM;gBACvB,KAAK,EAAE,GAAG,CAAC,OAAO;gBAClB,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,MAAM,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC;YACtB,OAAO,CAAC;gBACN,EAAE;gBACF,MAAM,EAAE,MAAM,GAAG,MAAM;gBACvB,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,wBAAwB,IAAI,EAAE;gBACtD,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* cmdline — win32 command-line construction helpers (v0.7.9).
|
|
3
|
+
*
|
|
4
|
+
* Node 24 deprecated `spawn(cmd, argsArray, { shell: true })` (DEP0190):
|
|
5
|
+
* the args were concatenated into the shell line UNESCAPED. Call sites that
|
|
6
|
+
* still need a shell on Windows (.cmd shims like npm/npx/uvx cannot be
|
|
7
|
+
* spawned directly) now build the command line themselves with explicit
|
|
8
|
+
* quoting and pass a single string, which is not deprecated.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Quote a single argument for a cmd.exe command line: plain tokens pass
|
|
12
|
+
* through, anything containing whitespace or cmd metacharacters is wrapped
|
|
13
|
+
* in double quotes with embedded quotes doubled.
|
|
14
|
+
*/
|
|
15
|
+
export function quoteCmdArg(arg) {
|
|
16
|
+
if (arg === '')
|
|
17
|
+
return '""';
|
|
18
|
+
if (!/[\s"^&|<>()%!]/.test(arg))
|
|
19
|
+
return arg;
|
|
20
|
+
return `"${arg.replace(/"/g, '""')}"`;
|
|
21
|
+
}
|
|
22
|
+
/** Join command + args into a single cmd.exe-safe command line. */
|
|
23
|
+
export function buildCmdLine(command, args) {
|
|
24
|
+
return [command, ...args].map(quoteCmdArg).join(' ');
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=cmdline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cmdline.js","sourceRoot":"","sources":["../../../src/cli/utils/cmdline.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC5B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IAC5C,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;AACxC,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,IAAuB;IACnE,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvD,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { homedir } from 'node:os';
|
|
2
|
+
/**
|
|
3
|
+
* shortenCwd — compact a directory path for one-line UI surfaces
|
|
4
|
+
* (StatusBar, banner).
|
|
5
|
+
*
|
|
6
|
+
* - The home directory prefix collapses to `~`.
|
|
7
|
+
* - Paths longer than `maxLen` keep the tail (the informative part) with a
|
|
8
|
+
* leading `…`.
|
|
9
|
+
*/
|
|
10
|
+
export function shortenCwd(p, maxLen = 40, home = homedir()) {
|
|
11
|
+
let out = p;
|
|
12
|
+
if (home &&
|
|
13
|
+
(out === home || out.startsWith(`${home}\\`) || out.startsWith(`${home}/`))) {
|
|
14
|
+
out = `~${out.slice(home.length)}`;
|
|
15
|
+
}
|
|
16
|
+
if (out.length <= maxLen)
|
|
17
|
+
return out;
|
|
18
|
+
return `…${out.slice(-(maxLen - 1))}`;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../src/cli/utils/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,CAAS,EAAE,MAAM,GAAG,EAAE,EAAE,OAAe,OAAO,EAAE;IACzE,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IACE,IAAI;QACJ,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAC3E,CAAC;QACD,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IACrC,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,IAAI,MAAM;QAAE,OAAO,GAAG,CAAC;IACrC,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AACxC,CAAC"}
|
package/dist/cli/wizard/index.js
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
import React from 'react';
|
|
21
21
|
import { Box, Text } from 'ink';
|
|
22
22
|
import { API_KEY_OPTIONS, } from './useWizardState.js';
|
|
23
|
-
|
|
23
|
+
import { VERSION } from '../main.js';
|
|
24
24
|
function Frame({ children }) {
|
|
25
25
|
return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "cyan", paddingX: 2, paddingY: 1 }, children));
|
|
26
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/wizard/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,OAAO,EACL,eAAe,GAGhB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/wizard/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* workspace/completeDesign.ts — Built-in deterministic complete-design
|
|
3
|
+
* fallback (v0.7.8).
|
|
4
|
+
*
|
|
5
|
+
* Guarantees that a design-phase plan is executable even when the council
|
|
6
|
+
* model under-delivered on task emission: every phase in `.zelari/plan.json`
|
|
7
|
+
* ends up with at least {@link MIN_TASKS_PER_PHASE} tasks, and the plan has
|
|
8
|
+
* at least one milestone.
|
|
9
|
+
*
|
|
10
|
+
* This replaces the unversioned per-workspace `complete-design.mjs` script
|
|
11
|
+
* (HANDOFF 2026-07-03 §5.3) for the common case. Unlike that script's
|
|
12
|
+
* hard-coded `TASKS_PER_PHASE` template — whose phase-ID keys drifted from
|
|
13
|
+
* the ids the council actually generated (§4.1: 4 generic tasks instead of
|
|
14
|
+
* 12) — this fallback derives its tasks from the REAL phases in plan.json,
|
|
15
|
+
* so a phase-ID mismatch is impossible by construction.
|
|
16
|
+
*
|
|
17
|
+
* A workspace can still ship its own `complete-design.mjs` with curated
|
|
18
|
+
* domain tasks; when present, `runCompleteDesignPostProcessor` prefers it
|
|
19
|
+
* and this fallback never runs (see postCouncilHook.ts).
|
|
20
|
+
*/
|
|
21
|
+
import { createWorkspaceStubs, readPlanSummary } from './stubs.js';
|
|
22
|
+
/** Every phase must end up with at least this many tasks. */
|
|
23
|
+
export const MIN_TASKS_PER_PHASE = 3;
|
|
24
|
+
/**
|
|
25
|
+
* Derive the 3-task backbone for a phase from its own name/description:
|
|
26
|
+
* specify → implement → verify. Grounded in the council artifacts the
|
|
27
|
+
* phase already references (ADRs, design docs, synthesis) so the tasks
|
|
28
|
+
* are actionable without any domain-specific template.
|
|
29
|
+
*/
|
|
30
|
+
export function curatedTasksForPhase(phase) {
|
|
31
|
+
const label = (phase.name ?? phase.id).trim();
|
|
32
|
+
const scope = phase.description?.trim()
|
|
33
|
+
? ` Scope: ${phase.description.trim()}`
|
|
34
|
+
: '';
|
|
35
|
+
return [
|
|
36
|
+
{
|
|
37
|
+
title: `Specify ${label} deliverables`,
|
|
38
|
+
description: `Turn the council documents for "${label}" into a concrete specification: enumerate deliverables, ` +
|
|
39
|
+
`interfaces, constraints, and open decisions, grounding each item in the ADRs and design docs ` +
|
|
40
|
+
`already present in .zelari/.${scope}`,
|
|
41
|
+
fileRefs: ['.zelari/docs/', '.zelari/decisions/'],
|
|
42
|
+
acceptance: [
|
|
43
|
+
`A written spec for "${label}" exists and references at least one ADR or design doc`,
|
|
44
|
+
'Every deliverable in the spec has an owner artifact (file, doc, or component) named',
|
|
45
|
+
],
|
|
46
|
+
qaScenario: `Open the spec for "${label}" and confirm each deliverable maps to a concrete artifact and no open decision is left unresolved.`,
|
|
47
|
+
priority: 'high',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
title: `Implement ${label} deliverables`,
|
|
51
|
+
description: `Produce the artifacts the "${label}" phase promises, following the spec task of this phase and ` +
|
|
52
|
+
`the decisions recorded in .zelari/decisions/.${scope}`,
|
|
53
|
+
fileRefs: ['src/'],
|
|
54
|
+
acceptance: [
|
|
55
|
+
`Every deliverable listed in the "${label}" spec exists and builds/renders without errors`,
|
|
56
|
+
'No implementation contradicts an accepted ADR',
|
|
57
|
+
],
|
|
58
|
+
qaScenario: `Walk the "${label}" spec top to bottom and check each deliverable off against the produced artifact.`,
|
|
59
|
+
priority: 'high',
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
title: `Verify ${label} exit criteria`,
|
|
63
|
+
description: `Run the QA pass for "${label}": execute the QA scenarios of the phase tasks, check the phase row ` +
|
|
64
|
+
`in the synthesis green-light checklist, and record any gaps as follow-up tasks.${scope}`,
|
|
65
|
+
fileRefs: ['.zelari/docs/synthesis.md'],
|
|
66
|
+
acceptance: [
|
|
67
|
+
`The "${label}" row of the synthesis green-light checklist passes`,
|
|
68
|
+
'All QA scenarios of this phase have been executed with recorded outcomes',
|
|
69
|
+
],
|
|
70
|
+
qaScenario: `Open .zelari/docs/synthesis.md, locate the "${label}" checklist row, and confirm every criterion is checked with evidence.`,
|
|
71
|
+
priority: 'medium',
|
|
72
|
+
},
|
|
73
|
+
];
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Ensure every phase has ≥ MIN_TASKS_PER_PHASE tasks and the plan has ≥1
|
|
77
|
+
* milestone. Additive and idempotent: existing tasks/milestones are never
|
|
78
|
+
* modified, and re-running adds nothing once the minimums are met (the
|
|
79
|
+
* generated titles are deterministic and the createTask ids they produce
|
|
80
|
+
* are stable per phase).
|
|
81
|
+
*
|
|
82
|
+
* Creation goes through the same workspace stubs the council uses
|
|
83
|
+
* (createTask / createMilestone), so plan.json, plan.md, and the per-task
|
|
84
|
+
* files stay consistent with model-emitted artifacts.
|
|
85
|
+
*/
|
|
86
|
+
export async function runBuiltinCompleteDesign(ctx) {
|
|
87
|
+
const summary = readPlanSummary(ctx);
|
|
88
|
+
if (summary.phases.length === 0) {
|
|
89
|
+
return { ran: false, tasksAdded: 0, milestonesAdded: 0, reason: 'plan has no phases' };
|
|
90
|
+
}
|
|
91
|
+
const stubs = createWorkspaceStubs(ctx);
|
|
92
|
+
const createTask = stubs.find((s) => s.name === 'createTask');
|
|
93
|
+
const createMilestone = stubs.find((s) => s.name === 'createMilestone');
|
|
94
|
+
const stubCtx = ctx;
|
|
95
|
+
let tasksAdded = 0;
|
|
96
|
+
for (const phase of summary.phases) {
|
|
97
|
+
const existingTasks = summary.tasks.filter((t) => t.phaseId === phase.id);
|
|
98
|
+
if (existingTasks.length >= MIN_TASKS_PER_PHASE)
|
|
99
|
+
continue;
|
|
100
|
+
const existingTitles = new Set(existingTasks.map((t) => t.name ?? ''));
|
|
101
|
+
const templates = curatedTasksForPhase(phase)
|
|
102
|
+
.filter((t) => !existingTitles.has(t.title))
|
|
103
|
+
.slice(0, MIN_TASKS_PER_PHASE - existingTasks.length);
|
|
104
|
+
for (const t of templates) {
|
|
105
|
+
await createTask.execute({
|
|
106
|
+
phaseId: phase.id,
|
|
107
|
+
title: t.title,
|
|
108
|
+
description: t.description,
|
|
109
|
+
fileRefs: t.fileRefs,
|
|
110
|
+
acceptance: t.acceptance,
|
|
111
|
+
qaScenario: t.qaScenario,
|
|
112
|
+
priority: t.priority,
|
|
113
|
+
}, stubCtx);
|
|
114
|
+
tasksAdded += 1;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
let milestonesAdded = 0;
|
|
118
|
+
if (summary.milestones.length === 0) {
|
|
119
|
+
await createMilestone.execute({
|
|
120
|
+
title: 'v0.1.0 design-complete',
|
|
121
|
+
description: 'All design-phase artifacts (phases, tasks, ADRs, design docs, risks, synthesis) exist and the green-light checklist passes.',
|
|
122
|
+
targetVersion: 'v0.1.0',
|
|
123
|
+
}, stubCtx);
|
|
124
|
+
milestonesAdded = 1;
|
|
125
|
+
}
|
|
126
|
+
return { ran: true, tasksAdded, milestonesAdded };
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=completeDesign.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completeDesign.js","sourceRoot":"","sources":["../../../src/cli/workspace/completeDesign.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { resolveWorkspaceRoot } from './paths.js';
|
|
4
|
+
/** True when the workspace has a non-empty plan in plan.json. */
|
|
5
|
+
export function hasWorkspacePlan(projectRoot = process.cwd()) {
|
|
6
|
+
const planPath = join(resolveWorkspaceRoot(projectRoot), 'plan.json');
|
|
7
|
+
if (!existsSync(planPath))
|
|
8
|
+
return false;
|
|
9
|
+
try {
|
|
10
|
+
const parsed = JSON.parse(readFileSync(planPath, 'utf8'));
|
|
11
|
+
return Array.isArray(parsed.phases) && parsed.phases.length > 0;
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=planDetect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planDetect.js","sourceRoot":"","sources":["../../../src/cli/workspace/planDetect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,iEAAiE;AACjE,MAAM,UAAU,gBAAgB,CAAC,cAAsB,OAAO,CAAC,GAAG,EAAE;IAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;IACtE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAA2B,CAAC;QACpF,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|