@zaowu-labs/cli 1.0.1
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 +16 -0
- package/dist/args.d.ts +11 -0
- package/dist/args.d.ts.map +1 -0
- package/dist/args.js +65 -0
- package/dist/args.js.map +1 -0
- package/dist/command-contracts.d.ts +11 -0
- package/dist/command-contracts.d.ts.map +1 -0
- package/dist/command-contracts.js +74 -0
- package/dist/command-contracts.js.map +1 -0
- package/dist/domain-handlers.d.ts +4 -0
- package/dist/domain-handlers.d.ts.map +1 -0
- package/dist/domain-handlers.js +65 -0
- package/dist/domain-handlers.js.map +1 -0
- package/dist/domains.d.ts +4 -0
- package/dist/domains.d.ts.map +1 -0
- package/dist/domains.js +22 -0
- package/dist/domains.js.map +1 -0
- package/dist/handler-utils.d.ts +59 -0
- package/dist/handler-utils.d.ts.map +1 -0
- package/dist/handler-utils.js +113 -0
- package/dist/handler-utils.js.map +1 -0
- package/dist/handlers/ai-handlers.d.ts +4 -0
- package/dist/handlers/ai-handlers.d.ts.map +1 -0
- package/dist/handlers/ai-handlers.js +159 -0
- package/dist/handlers/ai-handlers.js.map +1 -0
- package/dist/handlers/auto-handlers.d.ts +5 -0
- package/dist/handlers/auto-handlers.d.ts.map +1 -0
- package/dist/handlers/auto-handlers.js +132 -0
- package/dist/handlers/auto-handlers.js.map +1 -0
- package/dist/handlers/config-handlers.d.ts +8 -0
- package/dist/handlers/config-handlers.d.ts.map +1 -0
- package/dist/handlers/config-handlers.js +140 -0
- package/dist/handlers/config-handlers.js.map +1 -0
- package/dist/handlers/data-handlers.d.ts +8 -0
- package/dist/handlers/data-handlers.d.ts.map +1 -0
- package/dist/handlers/data-handlers.js +135 -0
- package/dist/handlers/data-handlers.js.map +1 -0
- package/dist/handlers/dev-handlers.d.ts +6 -0
- package/dist/handlers/dev-handlers.d.ts.map +1 -0
- package/dist/handlers/dev-handlers.js +322 -0
- package/dist/handlers/dev-handlers.js.map +1 -0
- package/dist/handlers/doc-handlers.d.ts +7 -0
- package/dist/handlers/doc-handlers.d.ts.map +1 -0
- package/dist/handlers/doc-handlers.js +133 -0
- package/dist/handlers/doc-handlers.js.map +1 -0
- package/dist/handlers/plugin-handlers.d.ts +6 -0
- package/dist/handlers/plugin-handlers.d.ts.map +1 -0
- package/dist/handlers/plugin-handlers.js +149 -0
- package/dist/handlers/plugin-handlers.js.map +1 -0
- package/dist/handlers/teach-handlers.d.ts +4 -0
- package/dist/handlers/teach-handlers.d.ts.map +1 -0
- package/dist/handlers/teach-handlers.js +30 -0
- package/dist/handlers/teach-handlers.js.map +1 -0
- package/dist/handlers/web-handlers.d.ts +4 -0
- package/dist/handlers/web-handlers.d.ts.map +1 -0
- package/dist/handlers/web-handlers.js +90 -0
- package/dist/handlers/web-handlers.js.map +1 -0
- package/dist/help-text.d.ts +2 -0
- package/dist/help-text.d.ts.map +1 -0
- package/dist/help-text.js +439 -0
- package/dist/help-text.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/option-validation.d.ts +5 -0
- package/dist/option-validation.d.ts.map +1 -0
- package/dist/option-validation.js +111 -0
- package/dist/option-validation.js.map +1 -0
- package/dist/output.d.ts +5 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +11 -0
- package/dist/output.js.map +1 -0
- package/dist/root-doctor.d.ts +22 -0
- package/dist/root-doctor.d.ts.map +1 -0
- package/dist/root-doctor.js +231 -0
- package/dist/root-doctor.js.map +1 -0
- package/dist/root-help.d.ts +8 -0
- package/dist/root-help.d.ts.map +1 -0
- package/dist/root-help.js +130 -0
- package/dist/root-help.js.map +1 -0
- package/dist/root-init.d.ts +4 -0
- package/dist/root-init.d.ts.map +1 -0
- package/dist/root-init.js +87 -0
- package/dist/root-init.js.map +1 -0
- package/dist/run.d.ts +8 -0
- package/dist/run.d.ts.map +1 -0
- package/dist/run.js +152 -0
- package/dist/run.js.map +1 -0
- package/dist/system-command.d.ts +3 -0
- package/dist/system-command.d.ts.map +1 -0
- package/dist/system-command.js +27 -0
- package/dist/system-command.js.map +1 -0
- package/dist/types.d.ts +16 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +14 -0
- package/dist/version.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type DomainActionHandler } from '../handler-utils.js';
|
|
2
|
+
export declare const handleDevCommit: DomainActionHandler;
|
|
3
|
+
export declare const handleDevReview: DomainActionHandler;
|
|
4
|
+
export declare const handleDevStatus: DomainActionHandler;
|
|
5
|
+
export declare const handleDevSync: DomainActionHandler;
|
|
6
|
+
//# sourceMappingURL=dev-handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/dev-handlers.ts"],"names":[],"mappings":"AAiBA,OAAO,EAYL,KAAK,mBAAmB,EAGzB,MAAM,qBAAqB,CAAC;AAsF7B,eAAO,MAAM,eAAe,EAAE,mBA4E7B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,mBA0H7B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,mBA2B7B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,mBA6C3B,CAAC"}
|
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
import { askAI, resolveAIModel, resolveAIProviderNetworkTarget, validateAIProviderConfig, } from '@zaowu-labs/ai';
|
|
2
|
+
import { loadResolvedConfig } from '@zaowu-labs/config';
|
|
3
|
+
import { getDevStatus, isDevFindingCategory, isDevFindingPriority, isDevFindingSeverity, previewDevCommit, reviewDevChanges, syncDevRepo, } from '@zaowu-labs/dev';
|
|
4
|
+
import { assertOperationPlanFingerprint, createOperationPlan, formatCounts, formatFinding, formatList, formatOperationPlan, getValue, hasFlag, result, withOperationPlan, ZaoWuError, } from '../handler-utils.js';
|
|
5
|
+
const getAiReviewOrCommit = async (context, prompt) => {
|
|
6
|
+
let providerId = getValue(context.parsed, '--provider');
|
|
7
|
+
if (!providerId) {
|
|
8
|
+
try {
|
|
9
|
+
const config = await loadResolvedConfig(context.cwd);
|
|
10
|
+
providerId = config.config.ai.provider ?? undefined;
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
// ignore — fall back to default provider
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
const requestedModel = getValue(context.parsed, '--model');
|
|
17
|
+
const providerValidation = validateAIProviderConfig(providerId);
|
|
18
|
+
const provider = providerValidation.provider;
|
|
19
|
+
const resolvedModel = resolveAIModel(provider, { model: requestedModel });
|
|
20
|
+
if (provider.network && !context.yes) {
|
|
21
|
+
throw new ZaoWuError({
|
|
22
|
+
code: 'AI_NETWORK_CONFIRMATION_REQUIRED',
|
|
23
|
+
message: 'Network AI request requires confirmation.',
|
|
24
|
+
why: `The AI-assisted dev command sends diff context to the network provider \`${provider.id}\`.`,
|
|
25
|
+
fix: 'Run the command with the `--yes` flag to confirm sending the diff context.',
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
const response = await askAI({
|
|
29
|
+
prompt,
|
|
30
|
+
provider: providerId,
|
|
31
|
+
model: requestedModel,
|
|
32
|
+
allowNetwork: context.yes,
|
|
33
|
+
});
|
|
34
|
+
return {
|
|
35
|
+
output: response.output,
|
|
36
|
+
providerId: provider.id,
|
|
37
|
+
modelName: resolvedModel,
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
const getGitDiffText = (commandRunner, cwd, gitArgs) => {
|
|
41
|
+
let diffText = '';
|
|
42
|
+
try {
|
|
43
|
+
diffText = commandRunner('git', gitArgs, { cwd });
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
// ignore — diff may be empty
|
|
47
|
+
}
|
|
48
|
+
if (diffText.length > 100000) {
|
|
49
|
+
diffText = diffText.slice(0, 100000) + '\n... [truncated] ...';
|
|
50
|
+
}
|
|
51
|
+
return diffText;
|
|
52
|
+
};
|
|
53
|
+
const buildAiOperationPlan = (providerId, reviewUsesWorktree, isReview) => {
|
|
54
|
+
const provider = validateAIProviderConfig(providerId).provider;
|
|
55
|
+
const networkTarget = provider.network ? resolveAIProviderNetworkTarget(providerId) : undefined;
|
|
56
|
+
const actionName = isReview ? 'review' : 'suggestion';
|
|
57
|
+
return createOperationPlan({
|
|
58
|
+
risk: provider.network ? 'medium' : 'low',
|
|
59
|
+
reads: isReview
|
|
60
|
+
? reviewUsesWorktree
|
|
61
|
+
? ['working-tree git diff', 'untracked git file list']
|
|
62
|
+
: ['staged git diff']
|
|
63
|
+
: ['staged git diff', 'staged git diff hunks'],
|
|
64
|
+
executes: isReview
|
|
65
|
+
? reviewUsesWorktree
|
|
66
|
+
? ['git diff', 'git ls-files --others --exclude-standard']
|
|
67
|
+
: ['git diff --cached']
|
|
68
|
+
: ['git diff --cached'],
|
|
69
|
+
network: networkTarget ? [networkTarget] : [],
|
|
70
|
+
secrets: provider.requiredEnv,
|
|
71
|
+
notes: [`AI ${actionName} was generated using the ${providerId} provider.`],
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
export const handleDevCommit = async (_args, context) => {
|
|
75
|
+
const preview = previewDevCommit(context.commandRunner, { cwd: context.cwd });
|
|
76
|
+
let operationPlan = createOperationPlan({
|
|
77
|
+
risk: 'low',
|
|
78
|
+
reads: ['staged git diff', 'staged git diff hunks'],
|
|
79
|
+
executes: ['git diff --cached'],
|
|
80
|
+
notes: ['No Git state is modified.'],
|
|
81
|
+
});
|
|
82
|
+
if (context.parsed.flags.has('--ai')) {
|
|
83
|
+
const diffText = getGitDiffText(context.commandRunner, context.cwd, ['diff', '--cached']);
|
|
84
|
+
const prompt = [
|
|
85
|
+
'Generate a Conventional Commit message for the following staged changes.',
|
|
86
|
+
'Follow the Conventional Commits specification (e.g. feat(scope): message).',
|
|
87
|
+
'Respond ONLY with the commit message, including a title and an optional body/footer.',
|
|
88
|
+
'',
|
|
89
|
+
'Changes:',
|
|
90
|
+
diffText,
|
|
91
|
+
].join('\n');
|
|
92
|
+
const aiResponse = await getAiReviewOrCommit(context, prompt);
|
|
93
|
+
const lines = aiResponse.output
|
|
94
|
+
.split(/\r?\n/)
|
|
95
|
+
.map((l) => l.trim())
|
|
96
|
+
.filter(Boolean);
|
|
97
|
+
const title = lines[0] || preview.suggestion.title;
|
|
98
|
+
const body = lines.slice(1);
|
|
99
|
+
const match = /^([a-z0-9]+)(?:\(([^)]+)\))?:\s*(.+)$/i.exec(title);
|
|
100
|
+
const type = match?.[1] || preview.suggestion.type;
|
|
101
|
+
const scope = match?.[2] || preview.suggestion.scope;
|
|
102
|
+
const subject = match?.[3] || preview.suggestion.subject;
|
|
103
|
+
preview.suggestion = {
|
|
104
|
+
type,
|
|
105
|
+
scope,
|
|
106
|
+
subject,
|
|
107
|
+
title,
|
|
108
|
+
body: body.length > 0 ? body : preview.suggestion.body,
|
|
109
|
+
};
|
|
110
|
+
preview.message = title;
|
|
111
|
+
operationPlan = buildAiOperationPlan(aiResponse.providerId, false, false);
|
|
112
|
+
}
|
|
113
|
+
assertOperationPlanFingerprint(context, operationPlan);
|
|
114
|
+
const human = [
|
|
115
|
+
'ZaoWu Dev Commit',
|
|
116
|
+
'',
|
|
117
|
+
'No Git state was modified.',
|
|
118
|
+
'',
|
|
119
|
+
`Files: ${preview.summary.files.length}`,
|
|
120
|
+
`Changes: +${preview.summary.additions}/-${preview.summary.deletions}`,
|
|
121
|
+
'',
|
|
122
|
+
'Categories:',
|
|
123
|
+
formatCounts(preview.summary.categories),
|
|
124
|
+
'',
|
|
125
|
+
'Suggested commit:',
|
|
126
|
+
preview.message,
|
|
127
|
+
'',
|
|
128
|
+
'Suggested body:',
|
|
129
|
+
formatList(preview.suggestion.body),
|
|
130
|
+
'',
|
|
131
|
+
'Findings:',
|
|
132
|
+
...(preview.findings.length > 0
|
|
133
|
+
? preview.findings.map((finding) => formatFinding(finding))
|
|
134
|
+
: ['- none']),
|
|
135
|
+
'',
|
|
136
|
+
'Recommended checks:',
|
|
137
|
+
formatList(preview.recommendedChecks),
|
|
138
|
+
'',
|
|
139
|
+
formatOperationPlan(operationPlan),
|
|
140
|
+
].join('\n');
|
|
141
|
+
return result(context, withOperationPlan(preview, operationPlan), human);
|
|
142
|
+
};
|
|
143
|
+
export const handleDevReview = async (_args, context) => {
|
|
144
|
+
const mode = context.parsed.flags.has('--staged')
|
|
145
|
+
? 'staged'
|
|
146
|
+
: context.parsed.flags.has('--worktree')
|
|
147
|
+
? 'worktree'
|
|
148
|
+
: 'auto';
|
|
149
|
+
const review = reviewDevChanges(context.commandRunner, { cwd: context.cwd, mode });
|
|
150
|
+
const reviewUsesWorktree = review.source === 'working-tree';
|
|
151
|
+
let operationPlan = createOperationPlan({
|
|
152
|
+
risk: 'low',
|
|
153
|
+
reads: reviewUsesWorktree
|
|
154
|
+
? ['working-tree git diff', 'untracked git file list']
|
|
155
|
+
: ['staged git diff'],
|
|
156
|
+
executes: reviewUsesWorktree
|
|
157
|
+
? ['git diff', 'git ls-files --others --exclude-standard']
|
|
158
|
+
: ['git diff --cached'],
|
|
159
|
+
notes: ['No Git state is modified.'],
|
|
160
|
+
});
|
|
161
|
+
if (context.parsed.flags.has('--ai')) {
|
|
162
|
+
const gitArgs = reviewUsesWorktree ? ['diff'] : ['diff', '--cached'];
|
|
163
|
+
const diffText = getGitDiffText(context.commandRunner, context.cwd, gitArgs);
|
|
164
|
+
const prompt = [
|
|
165
|
+
'Perform a code review of the following Git changes.',
|
|
166
|
+
'Find potential security vulnerabilities, performance issues, architectural flaws, bugs, or test gaps.',
|
|
167
|
+
'Format your review as a JSON array of finding objects, like this:',
|
|
168
|
+
'[',
|
|
169
|
+
' {',
|
|
170
|
+
' "severity": "info" | "warning",',
|
|
171
|
+
' "priority": "low" | "medium" | "high",',
|
|
172
|
+
' "category": "security" | "performance" | "quality" | "test" | "filesystem" | "network" | "git",',
|
|
173
|
+
' "title": "Short title",',
|
|
174
|
+
' "detail": "Detailed explanation of the issue and fix.",',
|
|
175
|
+
' "filePath": "relative/path/to/file",',
|
|
176
|
+
' "line": 123,',
|
|
177
|
+
' "hunkHeader": "@@ ... @@"',
|
|
178
|
+
' }',
|
|
179
|
+
']',
|
|
180
|
+
'Respond ONLY with the JSON array. Do not wrap in markdown code blocks.',
|
|
181
|
+
'',
|
|
182
|
+
'Changes:',
|
|
183
|
+
diffText,
|
|
184
|
+
].join('\n');
|
|
185
|
+
const aiResponse = await getAiReviewOrCommit(context, prompt);
|
|
186
|
+
let cleanOutput = aiResponse.output.trim();
|
|
187
|
+
if (cleanOutput.startsWith('```')) {
|
|
188
|
+
cleanOutput = cleanOutput.replace(/^```[a-z]*\r?\n/, '').replace(/\r?\n```$/, '');
|
|
189
|
+
}
|
|
190
|
+
let aiFindings = [];
|
|
191
|
+
let isParsedArray = false;
|
|
192
|
+
try {
|
|
193
|
+
const parsed = JSON.parse(cleanOutput);
|
|
194
|
+
if (Array.isArray(parsed)) {
|
|
195
|
+
aiFindings = parsed;
|
|
196
|
+
isParsedArray = true;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
catch {
|
|
200
|
+
// Fall back to wrapping the raw AI output as a plain-text summary finding.
|
|
201
|
+
}
|
|
202
|
+
if (!isParsedArray) {
|
|
203
|
+
aiFindings = [
|
|
204
|
+
{
|
|
205
|
+
severity: 'info',
|
|
206
|
+
priority: 'medium',
|
|
207
|
+
category: 'quality',
|
|
208
|
+
title: 'AI Code Review Summary',
|
|
209
|
+
detail: aiResponse.output.trim(),
|
|
210
|
+
},
|
|
211
|
+
];
|
|
212
|
+
}
|
|
213
|
+
for (const item of aiFindings) {
|
|
214
|
+
const finding = item && typeof item === 'object' ? item : {};
|
|
215
|
+
review.findings.push({
|
|
216
|
+
severity: isDevFindingSeverity(finding.severity) ? finding.severity : 'info',
|
|
217
|
+
priority: isDevFindingPriority(finding.priority) ? finding.priority : 'medium',
|
|
218
|
+
category: isDevFindingCategory(finding.category) ? finding.category : 'quality',
|
|
219
|
+
title: typeof finding.title === 'string' ? finding.title : 'AI Review',
|
|
220
|
+
detail: typeof finding.detail === 'string' ? finding.detail : '',
|
|
221
|
+
filePath: typeof finding.filePath === 'string' ? finding.filePath : undefined,
|
|
222
|
+
line: Number.isInteger(finding.line) && Number(finding.line) > 0
|
|
223
|
+
? Number(finding.line)
|
|
224
|
+
: undefined,
|
|
225
|
+
hunkHeader: typeof finding.hunkHeader === 'string' ? finding.hunkHeader : undefined,
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
operationPlan = buildAiOperationPlan(aiResponse.providerId, reviewUsesWorktree, true);
|
|
229
|
+
}
|
|
230
|
+
assertOperationPlanFingerprint(context, operationPlan);
|
|
231
|
+
const human = [
|
|
232
|
+
'ZaoWu Dev Review',
|
|
233
|
+
'',
|
|
234
|
+
`Source: ${review.source}`,
|
|
235
|
+
`Files: ${review.summary.files.length}`,
|
|
236
|
+
`Changes: +${review.summary.additions}/-${review.summary.deletions}`,
|
|
237
|
+
'',
|
|
238
|
+
'Categories:',
|
|
239
|
+
formatCounts(review.summary.categories),
|
|
240
|
+
'',
|
|
241
|
+
'Findings:',
|
|
242
|
+
...review.findings.map((finding) => formatFinding(finding)),
|
|
243
|
+
'',
|
|
244
|
+
'Diff hunks:',
|
|
245
|
+
...(review.diffHunks.length > 0
|
|
246
|
+
? review.diffHunks.map((hunk) => `- ${hunk.filePath} ${hunk.header}: +${hunk.addedLines}/-${hunk.removedLines}`)
|
|
247
|
+
: ['- none']),
|
|
248
|
+
'',
|
|
249
|
+
'Recommended checks:',
|
|
250
|
+
formatList(review.recommendedChecks),
|
|
251
|
+
'',
|
|
252
|
+
formatOperationPlan(operationPlan),
|
|
253
|
+
].join('\n');
|
|
254
|
+
return result(context, withOperationPlan(review, operationPlan), human);
|
|
255
|
+
};
|
|
256
|
+
export const handleDevStatus = async (_args, context) => {
|
|
257
|
+
const status = getDevStatus(context.commandRunner, { cwd: context.cwd });
|
|
258
|
+
const operationPlan = createOperationPlan({
|
|
259
|
+
risk: 'low',
|
|
260
|
+
reads: ['git status'],
|
|
261
|
+
executes: ['git status --short --branch'],
|
|
262
|
+
notes: ['No Git state is modified.'],
|
|
263
|
+
});
|
|
264
|
+
const human = [
|
|
265
|
+
'ZaoWu Dev Status',
|
|
266
|
+
'',
|
|
267
|
+
`Branch: ${status.branch}`,
|
|
268
|
+
`Clean: ${status.clean ? 'yes' : 'no'}`,
|
|
269
|
+
'',
|
|
270
|
+
`Staged: ${status.staged.length}`,
|
|
271
|
+
...status.staged.map((file) => `- ${file}`),
|
|
272
|
+
'',
|
|
273
|
+
`Unstaged: ${status.unstaged.length}`,
|
|
274
|
+
...status.unstaged.map((file) => `- ${file}`),
|
|
275
|
+
'',
|
|
276
|
+
`Untracked: ${status.untracked.length}`,
|
|
277
|
+
...status.untracked.map((file) => `- ${file}`),
|
|
278
|
+
'',
|
|
279
|
+
formatOperationPlan(operationPlan),
|
|
280
|
+
].join('\n');
|
|
281
|
+
return result(context, withOperationPlan(status, operationPlan), human);
|
|
282
|
+
};
|
|
283
|
+
export const handleDevSync = async (_args, context) => {
|
|
284
|
+
const preview = syncDevRepo(context.commandRunner, { cwd: context.cwd });
|
|
285
|
+
const discardLocal = hasFlag(context.parsed, '--discard-local');
|
|
286
|
+
if (!preview.operationPlan) {
|
|
287
|
+
throw new ZaoWuError({
|
|
288
|
+
code: 'INTERNAL_ERROR',
|
|
289
|
+
message: 'Operation plan is required for synchronization preview.',
|
|
290
|
+
why: 'ZaoWu could not generate an operation plan for the Git synchronization.',
|
|
291
|
+
fix: 'Verify your Git repository is configured correctly.',
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
assertOperationPlanFingerprint(context, preview.operationPlan);
|
|
295
|
+
const syncResult = context.yes
|
|
296
|
+
? syncDevRepo(context.commandRunner, { cwd: context.cwd, yes: true, discardLocal })
|
|
297
|
+
: preview;
|
|
298
|
+
const operationPlan = syncResult.operationPlan ?? preview.operationPlan;
|
|
299
|
+
const requiresDiscardLocal = operationPlan.notes.some((note) => note.includes('Confirmed sync requires both --yes and --discard-local'));
|
|
300
|
+
const confirmCommand = [
|
|
301
|
+
'zw dev sync',
|
|
302
|
+
'--yes',
|
|
303
|
+
...(requiresDiscardLocal ? ['--discard-local'] : []),
|
|
304
|
+
'--plan-fingerprint',
|
|
305
|
+
operationPlan.fingerprint,
|
|
306
|
+
].join(' ');
|
|
307
|
+
const human = [
|
|
308
|
+
'ZaoWu Dev Sync',
|
|
309
|
+
'',
|
|
310
|
+
`Status: ${syncResult.status}`,
|
|
311
|
+
`Branch: ${syncResult.branch}`,
|
|
312
|
+
`Previous commit: ${syncResult.previousCommit}`,
|
|
313
|
+
`Current commit: ${syncResult.currentCommit}`,
|
|
314
|
+
'',
|
|
315
|
+
formatOperationPlan(operationPlan),
|
|
316
|
+
...(context.yes ? [] : ['', 'To execute exactly this plan, run:', ` ${confirmCommand}`]),
|
|
317
|
+
'',
|
|
318
|
+
syncResult.output,
|
|
319
|
+
].join('\n');
|
|
320
|
+
return result(context, withOperationPlan(syncResult, operationPlan), human);
|
|
321
|
+
};
|
|
322
|
+
//# sourceMappingURL=dev-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev-handlers.js","sourceRoot":"","sources":["../../src/handlers/dev-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type DomainActionHandler } from '../handler-utils.js';
|
|
2
|
+
export declare const handleDocSummary: DomainActionHandler;
|
|
3
|
+
export declare const handleDocExtract: DomainActionHandler;
|
|
4
|
+
export declare const handleDocOutline: DomainActionHandler;
|
|
5
|
+
export declare const handleDocSearch: DomainActionHandler;
|
|
6
|
+
export declare const handleDocConvert: DomainActionHandler;
|
|
7
|
+
//# sourceMappingURL=doc-handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/doc-handlers.ts"],"names":[],"mappings":"AAOA,OAAO,EAYL,KAAK,mBAAmB,EACzB,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,gBAAgB,EAAE,mBAe9B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,mBAkB9B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,mBAgB9B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,mBA0B7B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,mBA8D9B,CAAC"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { convertDocument, extractDocument, outlineDocument, searchDocument, summarizeDocument, } from '@zaowu-labs/doc';
|
|
2
|
+
import { assertOperationPlanFingerprint, createContentOperationSubjects, createOperationPlan, formatConfirmCommand, formatObject, formatOperationPlan, getValue, requireTarget, result, withOperationPlan, ZaoWuError, } from '../handler-utils.js';
|
|
3
|
+
export const handleDocSummary = async (args, context) => {
|
|
4
|
+
const target = requireTarget(args, 'zw doc summary');
|
|
5
|
+
const summary = await summarizeDocument(target);
|
|
6
|
+
const human = [
|
|
7
|
+
'ZaoWu Doc Summary',
|
|
8
|
+
'',
|
|
9
|
+
`File: ${summary.filePath}`,
|
|
10
|
+
`Title: ${summary.title}`,
|
|
11
|
+
`Lines: ${summary.lineCount}`,
|
|
12
|
+
`Words: ${summary.wordCount}`,
|
|
13
|
+
'',
|
|
14
|
+
summary.summary,
|
|
15
|
+
].join('\n');
|
|
16
|
+
return result(context, summary, human);
|
|
17
|
+
};
|
|
18
|
+
export const handleDocExtract = async (args, context) => {
|
|
19
|
+
const target = requireTarget(args, 'zw doc extract');
|
|
20
|
+
const extracted = await extractDocument(target);
|
|
21
|
+
const human = [
|
|
22
|
+
'ZaoWu Doc Extract',
|
|
23
|
+
'',
|
|
24
|
+
`File: ${extracted.filePath}`,
|
|
25
|
+
`Headings: ${extracted.headings.length}`,
|
|
26
|
+
`Links: ${extracted.links.length}`,
|
|
27
|
+
`Code blocks: ${extracted.codeBlockCount}`,
|
|
28
|
+
'',
|
|
29
|
+
formatObject({
|
|
30
|
+
headings: extracted.headings,
|
|
31
|
+
links: extracted.links,
|
|
32
|
+
}),
|
|
33
|
+
].join('\n');
|
|
34
|
+
return result(context, extracted, human);
|
|
35
|
+
};
|
|
36
|
+
export const handleDocOutline = async (args, context) => {
|
|
37
|
+
const target = requireTarget(args, 'zw doc outline');
|
|
38
|
+
const outline = await outlineDocument(target);
|
|
39
|
+
const human = [
|
|
40
|
+
'ZaoWu Doc Outline',
|
|
41
|
+
'',
|
|
42
|
+
`File: ${outline.filePath}`,
|
|
43
|
+
'',
|
|
44
|
+
...(outline.outline.length > 0
|
|
45
|
+
? outline.outline.map((item) => `${' '.repeat(item.level - 1)}- L${item.level} ${item.title}`)
|
|
46
|
+
: ['No headings found.']),
|
|
47
|
+
].join('\n');
|
|
48
|
+
return result(context, outline, human);
|
|
49
|
+
};
|
|
50
|
+
export const handleDocSearch = async (args, context) => {
|
|
51
|
+
const target = requireTarget(args, 'zw doc search');
|
|
52
|
+
const rawKeyword = args[1];
|
|
53
|
+
const keyword = (rawKeyword || '').trim();
|
|
54
|
+
if (!keyword) {
|
|
55
|
+
throw new ZaoWuError({
|
|
56
|
+
code: 'DOCUMENT_SEARCH_KEYWORD_REQUIRED',
|
|
57
|
+
message: 'Search keyword is required.',
|
|
58
|
+
why: '`zw doc search` needs a non-empty keyword.',
|
|
59
|
+
fix: 'Run `zw doc search README.md install`.',
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
const searched = await searchDocument(target, keyword);
|
|
63
|
+
const human = [
|
|
64
|
+
'ZaoWu Doc Search',
|
|
65
|
+
'',
|
|
66
|
+
`File: ${searched.filePath}`,
|
|
67
|
+
`Keyword: ${searched.keyword}`,
|
|
68
|
+
`Matches: ${searched.matches.length}`,
|
|
69
|
+
'',
|
|
70
|
+
...searched.matches.map((match) => `${match.line}: ${match.text}`),
|
|
71
|
+
].join('\n');
|
|
72
|
+
return result(context, searched, human);
|
|
73
|
+
};
|
|
74
|
+
export const handleDocConvert = async (args, context) => {
|
|
75
|
+
const target = requireTarget(args, 'zw doc convert');
|
|
76
|
+
const outputPath = getValue(context.parsed, '--output');
|
|
77
|
+
const format = getValue(context.parsed, '--format');
|
|
78
|
+
const preview = await convertDocument(target, {
|
|
79
|
+
outputPath,
|
|
80
|
+
format: format === 'text' ? 'text' : format === 'markdown' ? 'markdown' : undefined,
|
|
81
|
+
});
|
|
82
|
+
const operationPlan = createOperationPlan({
|
|
83
|
+
risk: preview.outputPath ? 'medium' : 'low',
|
|
84
|
+
confirmationRequired: Boolean(preview.outputPath && !context.yes),
|
|
85
|
+
subjects: [
|
|
86
|
+
`doc:${preview.inputPath}`,
|
|
87
|
+
`format:${preview.format}`,
|
|
88
|
+
...createContentOperationSubjects(preview.content),
|
|
89
|
+
],
|
|
90
|
+
reads: [preview.inputPath],
|
|
91
|
+
writes: preview.outputPath ? [preview.outputPath] : [],
|
|
92
|
+
notes: ['Document conversion writes require --yes when --output is used.'],
|
|
93
|
+
});
|
|
94
|
+
assertOperationPlanFingerprint(context, operationPlan);
|
|
95
|
+
const converted = context.yes && preview.outputPath
|
|
96
|
+
? await convertDocument(target, {
|
|
97
|
+
outputPath,
|
|
98
|
+
format: format === 'text' ? 'text' : format === 'markdown' ? 'markdown' : undefined,
|
|
99
|
+
yes: true,
|
|
100
|
+
})
|
|
101
|
+
: preview;
|
|
102
|
+
const confirmCommand = preview.outputPath && !context.yes
|
|
103
|
+
? formatConfirmCommand([
|
|
104
|
+
'zw',
|
|
105
|
+
'doc',
|
|
106
|
+
'convert',
|
|
107
|
+
target,
|
|
108
|
+
...(format ? ['--format', format] : []),
|
|
109
|
+
'--output',
|
|
110
|
+
preview.outputPath,
|
|
111
|
+
'--yes',
|
|
112
|
+
'--plan-fingerprint',
|
|
113
|
+
operationPlan.fingerprint,
|
|
114
|
+
])
|
|
115
|
+
: undefined;
|
|
116
|
+
const human = [
|
|
117
|
+
'ZaoWu Doc Convert',
|
|
118
|
+
'',
|
|
119
|
+
`Status: ${converted.status}`,
|
|
120
|
+
`Input: ${converted.inputPath}`,
|
|
121
|
+
`Output: ${converted.outputPath ?? 'stdout'}`,
|
|
122
|
+
`Wrote file: ${converted.wroteFile ? 'yes' : 'no'}`,
|
|
123
|
+
'',
|
|
124
|
+
formatOperationPlan(operationPlan),
|
|
125
|
+
...(confirmCommand
|
|
126
|
+
? ['', 'To write exactly this converted output, run:', ` ${confirmCommand}`]
|
|
127
|
+
: []),
|
|
128
|
+
'',
|
|
129
|
+
converted.wroteFile ? 'Conversion complete.' : converted.content,
|
|
130
|
+
].join('\n');
|
|
131
|
+
return result(context, withOperationPlan(converted, operationPlan), human);
|
|
132
|
+
};
|
|
133
|
+
//# sourceMappingURL=doc-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc-handlers.js","sourceRoot":"","sources":["../../src/handlers/doc-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type DomainActionHandler } from '../handler-utils.js';
|
|
2
|
+
export declare const handlePluginList: DomainActionHandler;
|
|
3
|
+
export declare const handlePluginInstall: DomainActionHandler;
|
|
4
|
+
export declare const handlePluginRemove: DomainActionHandler;
|
|
5
|
+
export declare const handlePluginValidate: DomainActionHandler;
|
|
6
|
+
//# sourceMappingURL=plugin-handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/plugin-handlers.ts"],"names":[],"mappings":"AAGA,OAAO,EAWL,KAAK,mBAAmB,EACzB,MAAM,qBAAqB,CAAC;AAkB7B,eAAO,MAAM,gBAAgB,EAAE,mBAa9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,mBAyDjC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,mBAyChC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,mBAoBlC,CAAC"}
|