@openprd/cli 0.1.19 → 0.1.22
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/.openprd/changes/openprd-control-plane-v020/.openprd.yaml +2 -0
- package/.openprd/changes/openprd-control-plane-v020/design.md +78 -0
- package/.openprd/changes/openprd-control-plane-v020/proposal.md +54 -0
- package/.openprd/changes/openprd-control-plane-v020/specs/agent-requirements/spec.md +16 -0
- package/.openprd/changes/openprd-control-plane-v020/task-events.jsonl +27 -0
- package/.openprd/changes/openprd-control-plane-v020/tasks-002.md +35 -0
- package/.openprd/changes/openprd-control-plane-v020/tasks.md +427 -0
- package/.openprd/changes/remove-session-tracking-humane-approval/.openprd.yaml +2 -0
- package/.openprd/changes/remove-session-tracking-humane-approval/design.md +52 -0
- package/.openprd/changes/remove-session-tracking-humane-approval/proposal.md +35 -0
- package/.openprd/changes/remove-session-tracking-humane-approval/specs/agent-requirements/spec.md +16 -0
- package/.openprd/changes/remove-session-tracking-humane-approval/task-events.jsonl +1 -0
- package/.openprd/changes/remove-session-tracking-humane-approval/tasks.md +170 -0
- package/.openprd/design/active/asset-spec.md +19 -14
- package/.openprd/design/active/direction-plan.md +19 -3
- package/.openprd/design/active/facts-sheet.md +16 -7
- package/.openprd/design/active/image-preflight.md +6 -5
- package/.openprd/design/active/review-studio-v020-directions/compare-plan.json +34 -0
- package/.openprd/design/active/review-studio-v020-directions/contact-sheet.jpg +0 -0
- package/.openprd/design/active/review-studio-v020-directions/crops/01.png +0 -0
- package/.openprd/design/active/review-studio-v020-directions/crops/02.png +0 -0
- package/.openprd/design/active/review-studio-v020-directions/crops/03.png +0 -0
- package/.openprd/design/active/review-studio-v020-directions/focus-board.template.json +69 -0
- package/.openprd/design/active/review-studio-v020-directions/parallel-board.template.json +45 -0
- package/.openprd/design/active/review-studio-v020-directions/reference-set.json +143 -0
- package/.openprd/design/active/review-studio-v020-directions/source.png +0 -0
- package/.openprd/design/active/selected-direction.md +23 -9
- package/.openprd/engagements/active/control-plane-architecture.json +203 -0
- package/.openprd/engagements/active/control-plane-intake.json +418 -0
- package/.openprd/engagements/active/prd.md +183 -119
- package/.openprd/engagements/active/review-presentation-v0018.json +176 -0
- package/.openprd/i18n-config.json +12 -0
- package/.openprd/ledger/events.jsonl +6 -0
- package/.openprd/ledger/heads/ebea1a71a9daa566f1c91b53.json +10 -0
- package/.openprd/manifest.json +21 -0
- package/AGENTS.md +7 -6
- package/README.md +31 -29
- package/README_EN.md +36 -39
- package/package.json +1 -1
- package/skills/openprd-frontend-design/SKILL.md +16 -0
- package/skills/openprd-harness/SKILL.md +7 -7
- package/skills/openprd-quality/SKILL.md +1 -1
- package/skills/openprd-requirement-intake/SKILL.md +1 -1
- package/skills/openprd-shared/SKILL.md +6 -6
- package/src/adapters/adapter-spi.js +193 -0
- package/src/adapters/capability-envelope.js +98 -0
- package/src/adapters/event-normalizer.js +55 -0
- package/src/adapters/index.js +4 -0
- package/src/adapters/install-safety.js +249 -0
- package/src/agent-canonical-content.js +4 -2
- package/src/agent-integration.js +169 -46
- package/src/cli/args.js +63 -4
- package/src/cli/gate-print.js +17 -0
- package/src/cli/quality-commands.js +18 -0
- package/src/cli/quality-print.js +10 -0
- package/src/cli/runtime-print.js +24 -0
- package/src/codex-hook-runner-template.mjs +129 -199
- package/src/codex-runtime.js +48 -5
- package/src/context/cache.js +245 -0
- package/src/context/compiler.js +438 -0
- package/src/context/constants.js +30 -0
- package/src/context/index.js +39 -0
- package/src/context/redaction.js +84 -0
- package/src/context/stable.js +69 -0
- package/src/context/telemetry.js +42 -0
- package/src/dev-standards.js +57 -0
- package/src/fleet.js +112 -95
- package/src/gates/index.js +2 -0
- package/src/gates/scoped-gates.js +256 -0
- package/src/gates/store.js +126 -0
- package/src/gates/workspace.js +41 -0
- package/src/html-artifacts.js +725 -28
- package/src/kernel/atomic-store.js +299 -0
- package/src/kernel/event-envelope.js +166 -0
- package/src/kernel/index.js +4 -0
- package/src/kernel/project-ledger.js +467 -0
- package/src/kernel/project-manifest.js +205 -0
- package/src/knowledge-v3/index.js +1 -0
- package/src/knowledge-v3/lifecycle.js +290 -0
- package/src/knowledge.js +14 -7
- package/src/openprd.js +71 -2
- package/src/review-model.js +413 -0
- package/src/review-presentation.js +1 -1
- package/src/run-harness.js +432 -38
- package/src/runtime/cli_runtime_README.md +28 -0
- package/src/runtime/errors.js +66 -0
- package/src/runtime/index.js +44 -0
- package/src/runtime/lane-schema.js +141 -0
- package/src/runtime/lane-store.js +279 -0
- package/src/runtime/task-runtime.js +449 -0
- package/src/runtime/workspace.js +179 -0
- package/src/runtime/write-set.js +206 -0
- package/src/session-binding.js +16 -3
- package/src/session-registry.js +59 -1
- package/src/upgrade/fleet-mutation.js +166 -0
- package/src/upgrade/fleet-transaction.js +398 -0
- package/src/upgrade/transaction-store.js +416 -0
- package/src/visual-compare-core.js +66 -27
- package/src/visual-compare.js +18 -12
- package/src/workspace-core.js +109 -7
- package/src/workspace-registry.js +39 -1
- package/src/workspace-workflow.js +18 -15
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
function printGateResult(result, json) {
|
|
2
|
+
if (json) {
|
|
3
|
+
console.log(JSON.stringify(result, null, 2));
|
|
4
|
+
return;
|
|
5
|
+
}
|
|
6
|
+
if (!result.ok) {
|
|
7
|
+
console.log(`OpenPrd 操作门禁:未完成(${result.error?.code ?? 'unknown'})`);
|
|
8
|
+
console.log(result.error?.message ?? '门禁操作失败。');
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
const status = result.result?.status;
|
|
12
|
+
console.log(`OpenPrd 操作门禁:${status === 'pass' ? '通过' : status === 'blocked' ? '已阻断' : '已记录'}`);
|
|
13
|
+
if (result.result?.decisionId) console.log(`决策编号:${result.result.decisionId}`);
|
|
14
|
+
for (const reason of result.result?.reasons ?? []) console.log(`- ${reason.code}`);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export { printGateResult };
|
|
@@ -218,5 +218,23 @@ export async function runQualityCommand(command, { projectPath, flags, positiona
|
|
|
218
218
|
return result.ok ? 0 : 1;
|
|
219
219
|
}
|
|
220
220
|
|
|
221
|
+
if (command === 'i18n-init') {
|
|
222
|
+
const initProjectPath = path.resolve(flags.path ?? positionals[0] ?? process.cwd());
|
|
223
|
+
const { initI18nConfig } = await import('../dev-standards.js');
|
|
224
|
+
const result = await initI18nConfig(initProjectPath, {
|
|
225
|
+
defaultLanguage: flags.locale ?? undefined,
|
|
226
|
+
});
|
|
227
|
+
if (flags.json) {
|
|
228
|
+
console.log(JSON.stringify(result, null, 2));
|
|
229
|
+
} else {
|
|
230
|
+
console.log(`OpenPrd i18n: ${result.created ? '已创建' : '配置已存在'} ${result.configPath}`);
|
|
231
|
+
console.log(`基准语言: ${result.config.defaultLanguage}`);
|
|
232
|
+
console.log(`支持语种: ${result.config.supportedLanguages.join(', ')}`);
|
|
233
|
+
console.log(`dev-check 检查: ${result.config.enforceOnDevCheck ? '开启' : '关闭'}`);
|
|
234
|
+
console.log(`最佳实践文档: docs/basic/i18n-guidelines.md`);
|
|
235
|
+
}
|
|
236
|
+
return 0;
|
|
237
|
+
}
|
|
238
|
+
|
|
221
239
|
return null;
|
|
222
240
|
}
|
package/src/cli/quality-print.js
CHANGED
|
@@ -123,6 +123,16 @@ function printDevelopmentStandardsResult(result, json) {
|
|
|
123
123
|
} else if (result.visualEvidence?.uiFiles?.length > 0) {
|
|
124
124
|
console.log(`- 视觉证据: 最近 24 小时已有证据板(${result.visualEvidence.freshEvidence.join(', ')});确认覆盖本轮改动并把证据图嵌入对话流。`);
|
|
125
125
|
}
|
|
126
|
+
if (result.i18nReminder?.required) {
|
|
127
|
+
console.log(`- 多语言提醒: ${result.i18nReminder.reason}`);
|
|
128
|
+
console.log(` 涉及文件: ${result.i18nReminder.textFiles.join(', ')}`);
|
|
129
|
+
if (result.i18nReminder.guideline) {
|
|
130
|
+
console.log(` 最佳实践: ${result.i18nReminder.guideline}`);
|
|
131
|
+
}
|
|
132
|
+
if (!result.i18nReminder.configExists) {
|
|
133
|
+
console.log(' 建议: 创建 .openprd/i18n-config.json 启用项目级多语言检查。');
|
|
134
|
+
}
|
|
135
|
+
}
|
|
126
136
|
printKnowledgeReview(result.knowledgeReview);
|
|
127
137
|
for (const error of result.errors ?? []) {
|
|
128
138
|
console.log(`- ${error}`);
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
function printTaskRuntimeResult(result, json) {
|
|
2
|
+
if (json) {
|
|
3
|
+
console.log(JSON.stringify(result, null, 2));
|
|
4
|
+
return;
|
|
5
|
+
}
|
|
6
|
+
if (!result.ok) {
|
|
7
|
+
console.log(`OpenPrd 并行任务运行时:未完成(${result.error?.code ?? 'unknown'})`);
|
|
8
|
+
console.log(result.error?.message ?? '运行时操作失败。');
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
console.log(`OpenPrd 并行任务运行时:${result.action.replace(/^runtime-/, '')}`);
|
|
12
|
+
if (result.laneId) console.log(`处理通道:${result.laneId}`);
|
|
13
|
+
if (result.taskId) console.log(`任务:${result.taskId}`);
|
|
14
|
+
const task = result.result?.task;
|
|
15
|
+
if (task) {
|
|
16
|
+
console.log(`状态:${task.status}`);
|
|
17
|
+
console.log(`修订:${task.revision}`);
|
|
18
|
+
if (task.claim?.leaseExpiresAt) console.log(`占用有效期至:${task.claim.leaseExpiresAt}`);
|
|
19
|
+
} else if (Array.isArray(result.result)) {
|
|
20
|
+
console.log(`处理通道数:${result.result.length}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export { printTaskRuntimeResult };
|