@principles/pd-cli 1.135.1 → 1.136.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 (40) hide show
  1. package/dist/commands/demo-story-a.d.ts +2 -0
  2. package/dist/commands/demo-story-a.d.ts.map +1 -1
  3. package/dist/commands/demo-story-a.js +41 -0
  4. package/dist/commands/demo-story-a.js.map +1 -1
  5. package/dist/commands/runtime-activation.d.ts.map +1 -1
  6. package/dist/commands/runtime-activation.js +36 -7
  7. package/dist/commands/runtime-activation.js.map +1 -1
  8. package/dist/commands/runtime-compatibility-scan.d.ts +32 -0
  9. package/dist/commands/runtime-compatibility-scan.d.ts.map +1 -0
  10. package/dist/commands/runtime-compatibility-scan.js +94 -0
  11. package/dist/commands/runtime-compatibility-scan.js.map +1 -0
  12. package/dist/commands/runtime-internalization-enqueue-successors.d.ts.map +1 -1
  13. package/dist/commands/runtime-internalization-enqueue-successors.js +48 -0
  14. package/dist/commands/runtime-internalization-enqueue-successors.js.map +1 -1
  15. package/dist/commands/runtime-internalization-retry.d.ts +38 -0
  16. package/dist/commands/runtime-internalization-retry.d.ts.map +1 -0
  17. package/dist/commands/runtime-internalization-retry.js +143 -0
  18. package/dist/commands/runtime-internalization-retry.js.map +1 -0
  19. package/dist/index.js +15 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/services/__tests__/evaluator-runner-deps.test.js +19 -7
  22. package/dist/services/__tests__/evaluator-runner-deps.test.js.map +1 -1
  23. package/dist/services/rulehost-pipeline-runner.d.ts.map +1 -1
  24. package/dist/services/rulehost-pipeline-runner.js +6 -2
  25. package/dist/services/rulehost-pipeline-runner.js.map +1 -1
  26. package/package.json +1 -1
  27. package/src/commands/demo-story-a.ts +44 -0
  28. package/src/commands/runtime-activation.ts +38 -6
  29. package/src/commands/runtime-compatibility-scan.ts +105 -0
  30. package/src/commands/runtime-internalization-enqueue-successors.ts +48 -0
  31. package/src/commands/runtime-internalization-retry.ts +163 -0
  32. package/src/index.ts +17 -0
  33. package/src/services/__tests__/evaluator-runner-deps.test.ts +20 -8
  34. package/src/services/rulehost-pipeline-runner.ts +5 -2
  35. package/tests/commands/cli-command-tree.test.ts +15 -0
  36. package/tests/commands/demo-story-a.test.ts +63 -0
  37. package/tests/commands/runtime-compatibility-scan.test.ts +146 -0
  38. package/tests/commands/runtime-internalization-retry-owner-authority.test.ts +431 -0
  39. package/tests/e2e/cross-package-acceptance.test.ts +2 -2
  40. package/tests/services/demo-rule-compiler.test.ts +2 -2
@@ -30,7 +30,7 @@ import { RuntimeStateManager, StoreEventEmitter, DreamerRunner, DefaultDreamerVa
30
30
  // pd-config-loader.ts only re-exports loadPdConfig + computeFlagsFromLoadResult;
31
31
  // computeFeatureFlagsFromConfig / isFeatureEnabled live in core).
32
32
  computeFeatureFlagsFromConfig, isFeatureEnabled, } from '@principles/core/runtime-v2';
33
- import { randomUUID, createHash } from 'node:crypto';
33
+ import { createHash } from 'node:crypto';
34
34
  import { loadPdConfig } from './pd-config-loader.js';
35
35
  /* eslint-disable @typescript-eslint/no-use-before-define -- helpers declared after main, matching codebase convention */
36
36
  import { compileDemoRule } from './demo-rule-compiler.js';
@@ -382,7 +382,11 @@ export function createEvaluatorRunnerDeps(inputs) {
382
382
  },
383
383
  seedArtificerRepairTask: async (params) => {
384
384
  // rc-7: each call gets a fresh task ID — never reuse a cached ID.
385
- const repairTaskId = `artificer-repair-${randomUUID()}`;
385
+ // P0-4: deterministic revision identity + reuse on replay
386
+ const repairTaskId = `artificer-repair-${params.repairPayload.sourceEvaluatorTaskId}-r${params.repairPayload.repairIteration}`;
387
+ const existing = await stateManager.getTask(repairTaskId);
388
+ if (existing)
389
+ return repairTaskId;
386
390
  await stateManager.createTask({
387
391
  taskId: repairTaskId,
388
392
  // D1 (PRI-509): task kind is 'artificer' — reuses the artificer
@@ -1 +1 @@
1
- {"version":3,"file":"rulehost-pipeline-runner.js","sourceRoot":"","sources":["../../src/services/rulehost-pipeline-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rulehost-pipeline-runner.js","sourceRoot":"","sources":["../../src/services/rulehost-pipeline-runner.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@principles/pd-cli",
3
- "version": "1.135.1",
3
+ "version": "1.136.0",
4
4
  "description": "PD CLI — Pain recording, sample management, and evolution tasks",
5
5
  "type": "module",
6
6
  "bin": {
@@ -8,6 +8,20 @@ interface DemoStoryAOptions {
8
8
  workspace?: string;
9
9
  json?: boolean;
10
10
  channels?: string;
11
+ /** Developer override for the demo-isolation guard (default false). */
12
+ allowDemoWriteToExistingWorkspace?: boolean;
13
+ }
14
+
15
+ /**
16
+ * Demo isolation guard (2026-08-19): a demo run writes task/artifact/approval/
17
+ * activation rows into its target workspace. Refuse by default when the target
18
+ * already contains real PD state so demo data can never masquerade as
19
+ * owner-generated history. Detection = any marker of initialized PD state.
20
+ */
21
+ function workspaceHasPdState(workspaceDir: string): boolean {
22
+ return fs.existsSync(path.join(workspaceDir, '.pd', 'state.db'))
23
+ || fs.existsSync(path.join(workspaceDir, '.pd', 'config.yaml'))
24
+ || fs.existsSync(path.join(workspaceDir, '.principles', 'PROFILE.json'));
11
25
  }
12
26
 
13
27
  function formatStage(stage: { name: string; status: string; reason?: string; evidenceRef?: string }): string {
@@ -109,6 +123,36 @@ export async function handleDemoStoryA(opts: DemoStoryAOptions): Promise<void> {
109
123
  ? path.resolve(opts.workspace)
110
124
  : fs.mkdtempSync(path.join(os.tmpdir(), 'pd-story-a-'));
111
125
 
126
+ // Demo isolation (cli-5: failure must not mutate): refuse BEFORE creating
127
+ // the RuntimeStateManager or writing anything when the target workspace
128
+ // already carries PD state and the developer override was not passed.
129
+ if (opts.workspace && !opts.allowDemoWriteToExistingWorkspace && workspaceHasPdState(workspaceDir)) {
130
+ const errorResult = {
131
+ status: 'refused' as const,
132
+ generatedAt: new Date().toISOString(),
133
+ narrative: 'Refused: demo would write into an existing PD workspace.',
134
+ storyDescription: 'Demo isolation guard',
135
+ stages: [],
136
+ channelOutcomes: [],
137
+ isRuntimeV2Exclusive: true,
138
+ refusal: {
139
+ reason: 'demo_write_to_existing_workspace',
140
+ message: 'This command would write demo artifacts into an existing PD workspace.',
141
+ nextAction: 'Use a temporary workspace (omit --workspace), or pass --allow-demo-write-to-existing-workspace to explicitly opt in (developer only).',
142
+ targetWorkspace: workspaceDir,
143
+ },
144
+ };
145
+ if (opts.json) {
146
+ console.log(JSON.stringify(errorResult, null, 2));
147
+ } else {
148
+ console.error('Refused: this command would write demo artifacts into an existing PD workspace.');
149
+ console.error(`Target: ${workspaceDir}`);
150
+ console.error('Use a temporary workspace (omit --workspace), or pass --allow-demo-write-to-existing-workspace to explicitly opt in (developer only).');
151
+ }
152
+ process.exitCode = 1;
153
+ return;
154
+ }
155
+
112
156
  const parsed = parseChannelList(opts.channels);
113
157
 
114
158
  // Fail loud on empty channels before workspace creation (ERR-029)
@@ -45,29 +45,38 @@ interface ActivationDispatchOptions {
45
45
  }
46
46
 
47
47
  function mapRolloutDecision(reviewDecision: string | undefined): RolloutActivationDecision {
48
+ // P0-E (MVP_CORE_LOOP_CONTRACT INV-04): needs_revision 绝不映射 require_approval。
49
+ // 旧映射让"需修改"的评审结论伪装成正常审批进入 approval 队列(审计 ISSUE-027)。
50
+ // needs_revision 的出边是 revision loop(自动 reopen 修订目标),由
51
+ // rollout-reviewer-runner.handleRevisionRouting / auto-consumer 承担;
52
+ // CLI dispatch 对 needs_revision artifact 一律 refuse(structured reason + nextAction)。
48
53
  if (!reviewDecision) return 'require_approval';
49
54
  if (reviewDecision === 'approve_rollout') return 'auto_activate';
50
- if (reviewDecision === 'needs_revision') return 'require_approval';
51
55
  if (reviewDecision === 'reject') return 'reject';
52
56
  return 'require_approval';
53
57
  }
54
58
 
55
- function extractRolloutDecisionFromArtifact(artifact: PIArtifactRecord): RolloutActivationDecision {
59
+ /** 提取 artifact 上的原始 review decision(未映射),用于 needs_revision 拒绝分支 */
60
+ function extractRawRolloutReviewDecision(artifact: PIArtifactRecord): string | null {
56
61
  try {
57
62
  const parsed = JSON.parse(artifact.contentJson) as Record<string, unknown>;
58
63
  if (parsed && typeof parsed === 'object') {
59
64
  const review = parsed.review as Record<string, unknown> | undefined;
60
65
  if (review && typeof review.decision === 'string') {
61
- return mapRolloutDecision(review.decision);
66
+ return review.decision;
62
67
  }
63
68
  if (typeof parsed.rolloutDecision === 'string') {
64
- return mapRolloutDecision(parsed.rolloutDecision);
69
+ return parsed.rolloutDecision;
65
70
  }
66
71
  }
67
72
  } catch {
68
- return 'require_approval';
73
+ return null;
69
74
  }
70
- return 'require_approval';
75
+ return null;
76
+ }
77
+
78
+ function extractRolloutDecisionFromArtifact(artifact: PIArtifactRecord): RolloutActivationDecision {
79
+ return mapRolloutDecision(extractRawRolloutReviewDecision(artifact) ?? undefined);
71
80
  }
72
81
 
73
82
  function toSnapshot(record: PIArtifactRecord): PIArtifactSnapshot {
@@ -158,6 +167,29 @@ export async function handleRuntimeActivationDispatch(opts: ActivationDispatchOp
158
167
  }
159
168
 
160
169
  const artifactSnapshot = toSnapshot(artifactRecord);
170
+
171
+ // P0-E: needs_revision artifact 不允许手动 dispatch 入 approval (INV-04)。
172
+ // 出边是 revision loop: auto-consumer 会自动 reopen 修订目标;
173
+ // 手动场景给出结构化 next action (cli-6)。
174
+ const rawReviewDecision = extractRawRolloutReviewDecision(artifactRecord);
175
+ if (rawReviewDecision === 'needs_revision') {
176
+ const refused: ActivationDecision = {
177
+ decision: 'refused',
178
+ reason: 'rollout_needs_revision_not_dispatchable',
179
+ nextAction: 'Revision is handled by the automatic revision loop (rollout_reviewer reopens scribe/artificer). Inspect: pd runtime internalization list --json; advance manually: pd runtime internalization run-once --runner rollout_reviewer',
180
+ channel,
181
+ riskLevel: channel === 'code_tool_hook' ? 'high' : channel === 'skill' ? 'medium' : 'low',
182
+ };
183
+ if (opts.json) {
184
+ console.log(JSON.stringify(refused, null, 2));
185
+ } else {
186
+ console.log(formatTextOutput(refused));
187
+ console.log(' nextAction: ' + refused.nextAction);
188
+ }
189
+ process.exitCode = 1;
190
+ return;
191
+ }
192
+
161
193
  const rolloutDecision = extractRolloutDecisionFromArtifact(artifactRecord);
162
194
 
163
195
  const artifactReadModel = {
@@ -0,0 +1,105 @@
1
+ /**
2
+ * pd runtime compatibility-scan — scan active RuleCode for retired
3
+ * RuleHost contract dependencies (2026-08-19).
4
+ *
5
+ * Read-only operator command and the installer's upgrade preflight entry
6
+ * point. Loads ACTIVE code_tool_hook activations (activations ⋈ pi_artifacts
7
+ * from .pd/state.db) and reports every rule whose implementationCode still
8
+ * references a contract symbol this runtime removed (recentThinking,
9
+ * planStatus, hasPlanFile, getPlanStatus(), hasPlanFile()).
10
+ *
11
+ * Output contract (cli-1 strict-json, cli-5 no mutation, cli-6 nextAction):
12
+ * - --json emits exactly one parseable JSON object on stdout.
13
+ * - clean / no_state_db → exit 0; legacy_dependency / scan_failed → exit 1
14
+ * with reason + nextAction. The command never writes to the workspace.
15
+ *
16
+ * ERR refs: ERR-001/ERR-005 (rows validated from unknown), ERR-002 (every
17
+ * refusal carries reason + nextAction), ERR-014 (bounded JSON output of
18
+ * known shapes).
19
+ */
20
+
21
+ import * as path from 'path';
22
+ import type { Command } from 'commander';
23
+ import {
24
+ ActivationCompatibilityReadModel,
25
+ formatLegacyRuleContractRemediation,
26
+ type ActivationCompatibilityScanResult,
27
+ type LegacyRuleContractFinding,
28
+ } from '@principles/core/runtime-v2';
29
+ import { resolveWorkspaceDir } from '../resolve-workspace.js';
30
+ import { emitResult, emitError } from '../services/cli-output.js';
31
+
32
+ function formatFinding(f: LegacyRuleContractFinding): string {
33
+ const rule = f.ruleId ?? f.artifactId;
34
+ const activation = f.activationId ? ` (activation ${f.activationId})` : '';
35
+ return ` ${rule}${activation}: ${f.symbol}`;
36
+ }
37
+
38
+ function formatTextOutput(output: ActivationCompatibilityScanResult): string {
39
+ const lines: string[] = [];
40
+ lines.push('PD Runtime Compatibility Scan');
41
+ lines.push(`workspace: ${output.workspaceDir}`);
42
+ lines.push(`status: ${output.status}`);
43
+ lines.push(`scannedActivations: ${output.scannedActivations}`);
44
+ lines.push('');
45
+ if (output.findings.length > 0) {
46
+ lines.push('Retired-contract dependencies (these rules will NOT execute on this runtime):');
47
+ for (const f of output.findings) lines.push(formatFinding(f));
48
+ } else {
49
+ lines.push('No active rule references a retired RuleHost contract symbol.');
50
+ }
51
+ if (output.reason) lines.push(`reason: ${output.reason}`);
52
+ if (output.nextAction) lines.push(`nextAction: ${output.nextAction}`);
53
+ return lines.join('\n');
54
+ }
55
+
56
+ export interface RuntimeCompatibilityScanOptions {
57
+ workspace?: string;
58
+ json?: boolean;
59
+ }
60
+
61
+ export async function handleRuntimeCompatibilityScan(opts: RuntimeCompatibilityScanOptions): Promise<void> {
62
+ const workspaceDir = opts.workspace
63
+ ? path.resolve(opts.workspace)
64
+ : resolveWorkspaceDir();
65
+
66
+ try {
67
+ const output = new ActivationCompatibilityReadModel({ workspaceDir }).scan();
68
+ if (output.status === 'legacy_dependency') {
69
+ // Surface the full remediation text in the payload (cli-6) while
70
+ // keeping --json a single parseable object.
71
+ const enriched = { ...output, remediation: formatLegacyRuleContractRemediation(output.findings) };
72
+ emitResult(enriched, { json: opts.json ?? false, formatText: formatTextOutput });
73
+ process.exitCode = 1; // cli-2: exit code only, no process.exit()
74
+ return;
75
+ }
76
+ emitResult(output, { json: opts.json ?? false, formatText: formatTextOutput });
77
+ if (!output.ok) {
78
+ process.exitCode = 1;
79
+ }
80
+ } catch (err) {
81
+ process.exitCode = emitError(err, {
82
+ json: opts.json ?? false,
83
+ nextAction: 'Check workspace directory and permissions, then retry.',
84
+ });
85
+ }
86
+ }
87
+
88
+ /**
89
+ * Register the compatibility-scan subcommand on the `pd runtime` command
90
+ * group. Exported so parser-level wiring tests exercise the same
91
+ * registration index.ts uses (cli-7).
92
+ */
93
+ export function registerRuntimeCompatibilityScanCommand(runtimeCmd: Command): void {
94
+ runtimeCmd
95
+ .command('compatibility-scan', { hidden: true })
96
+ .description('Scan active RuleCode for retired RuleHost contract dependencies (read-only; used by the installer upgrade preflight)')
97
+ .option('-w, --workspace <path>', 'Workspace directory')
98
+ .option('--json', 'Output raw JSON')
99
+ .action(async (opts: { workspace?: string; json?: boolean }) => {
100
+ await handleRuntimeCompatibilityScan({
101
+ workspace: opts.workspace,
102
+ json: opts.json === true,
103
+ });
104
+ });
105
+ }
@@ -99,6 +99,54 @@ function mapCommitDecisionToAction(
99
99
  reason: 'task_not_found: task disappeared between scan and commit',
100
100
  nextAction: 'Re-scan or investigate concurrent deletion',
101
101
  };
102
+ case 'blocked_by_revision':
103
+ return {
104
+ taskId: commitResult.sourceTaskId,
105
+ taskKind: '',
106
+ decision: 'skipped',
107
+ reason: `blocked_by_revision: ${commitResult.reason} (runnerDecision=${commitResult.runnerDecision}); revision loop owns the out-edge`,
108
+ nextAction: 'Inspect the seeded repair/revision task: pd runtime internalization list --json',
109
+ };
110
+ case 'blocked_by_rejection':
111
+ return {
112
+ taskId: commitResult.sourceTaskId,
113
+ taskKind: '',
114
+ decision: 'skipped',
115
+ reason: `blocked_by_rejection: ${commitResult.reason} (runnerDecision=${commitResult.runnerDecision}); no successor, no approval`,
116
+ nextAction: 'Terminal reject — inspect the reviewer output or re-run the stage if the verdict was spurious',
117
+ };
118
+ case 'revision_reopened':
119
+ return {
120
+ taskId: commitResult.sourceTaskId,
121
+ taskKind: '',
122
+ decision: 'successor_created',
123
+ successorKind: 'evaluator',
124
+ successorTaskId: commitResult.reopenedTaskId,
125
+ };
126
+ case 'successor_reopened':
127
+ return {
128
+ taskId: commitResult.sourceTaskId,
129
+ taskKind: '',
130
+ decision: 'successor_created',
131
+ successorKind: commitResult.successorKind,
132
+ successorTaskId: commitResult.reopenedTaskId,
133
+ };
134
+ case 'revision_reopen_noop':
135
+ return {
136
+ taskId: commitResult.sourceTaskId,
137
+ taskKind: '',
138
+ decision: 'skipped',
139
+ reason: `revision_reopen_noop: ${commitResult.reason}; transition already materialized (same revision cause)`,
140
+ nextAction: 'No action — idempotent replay',
141
+ };
142
+ case 'blocked_missing_verdict':
143
+ return {
144
+ taskId: commitResult.taskId,
145
+ taskKind: '',
146
+ decision: 'skipped',
147
+ reason: `blocked_missing_verdict: ${commitResult.reason}; durable runnerDecision and legacy runs verdict both absent (fail-closed)`,
148
+ nextAction: 'Re-run the stage runner (writes durable verdict) or reconcile via the pending-artifacts report',
149
+ };
102
150
  }
103
151
  }
104
152
 
@@ -0,0 +1,163 @@
1
+ /**
2
+ * pd runtime internalization retry — needs_human_review 的 Owner 出边
3
+ * (MVP_CORE_LOOP_CONTRACT INV-03: inspect / retry / revise / reject-archive)。
4
+ *
5
+ * 修复前 needs_human_review 是 display-only 单向终态 (审计 ISSUE-006)。
6
+ * 本命令把 needs_human_review 任务重新入队 (→ pending, attemptCount 重置),
7
+ * 由 auto-consumer / run-once 重新驱动。
8
+ *
9
+ * Owner retry = 显式人类 authority reset,与 crash retry 严格区分:
10
+ * crash / lease recovery / automatic retry 保留 completionIntent(入口门
11
+ * resume 原 verdict,零 LLM);Owner retry 必须同时清空 runnerDecision 与
12
+ * completionIntent,允许新一轮 LLM verdict 成为 authority——否则入口门会
13
+ * resume/finalize 旧 verdict,LLM 永不运行,Owner retry 实际失效。
14
+ *
15
+ * 落库形态: status/attemptCount 与清空后的 metadata 在同一次 updateTask
16
+ * (SQLite 单条 UPDATE) 中原子生效——两个独立写之间失败会留下
17
+ * "authority 已清但任务仍 needs_human_review" 的 partial Owner action。
18
+ * metadata 不可 hydrate 时 fail closed (metadata_invalid),不得只改 status。
19
+ *
20
+ * CLI gate: 默认 dry-run;--confirm 才落地 (cli-4);JSON 模式严格单对象 (cli-1);
21
+ * 失败路径不产生任何状态变更 (cli-5)。
22
+ */
23
+
24
+ import * as path from 'path';
25
+ import { RuntimeStateManager } from '@principles/core/runtime-v2';
26
+ import { hydratePITaskRecord, createPITaskDiagnosticJson, mergePITaskMetadata } from '@principles/core/runtime-v2';
27
+ import { resolveWorkspaceDir } from '../resolve-workspace.js';
28
+
29
+ export interface InternalizationRetryOptions {
30
+ workspace?: string;
31
+ taskId?: string;
32
+ confirm?: boolean;
33
+ json?: boolean;
34
+ }
35
+
36
+ export interface InternalizationRetryOutput {
37
+ status: 'requeued' | 'dry_run' | 'skipped' | 'failed';
38
+ taskId: string;
39
+ taskKind?: string;
40
+ previousStatus?: string;
41
+ reason?: string;
42
+ nextAction?: string;
43
+ }
44
+
45
+ function emit(out: InternalizationRetryOutput, json?: boolean): void {
46
+ if (json) {
47
+ console.log(JSON.stringify(out, null, 2));
48
+ return;
49
+ }
50
+ console.log(`Retry: ${out.status}${out.previousStatus ? ` (was ${out.previousStatus})` : ''}`);
51
+ if (out.reason) console.log(` reason: ${out.reason}`);
52
+ if (out.nextAction) console.log(` nextAction: ${out.nextAction}`);
53
+ }
54
+
55
+ export async function handleRuntimeInternalizationRetry(opts: InternalizationRetryOptions): Promise<void> {
56
+ if (!opts.taskId) {
57
+ const out: InternalizationRetryOutput = {
58
+ status: 'failed',
59
+ taskId: '',
60
+ reason: 'task_id_required',
61
+ nextAction: 'Pass --task <taskId> (find ids via: pd runtime internalization queue --json or pd errors list)',
62
+ };
63
+ emit(out, opts.json);
64
+ process.exitCode = 1;
65
+ return;
66
+ }
67
+
68
+ const workspaceDir = opts.workspace ? path.resolve(opts.workspace) : resolveWorkspaceDir();
69
+ const stateManager = new RuntimeStateManager({ workspaceDir });
70
+ try {
71
+ await stateManager.initialize();
72
+ const task = await stateManager.getTask(opts.taskId);
73
+ if (!task) {
74
+ const out: InternalizationRetryOutput = {
75
+ status: 'failed',
76
+ taskId: opts.taskId,
77
+ reason: 'task_not_found',
78
+ nextAction: 'Verify the task id and workspace',
79
+ };
80
+ emit(out, opts.json);
81
+ process.exitCode = 1;
82
+ return;
83
+ }
84
+
85
+ if (task.status !== 'needs_human_review') {
86
+ const out: InternalizationRetryOutput = {
87
+ status: 'skipped',
88
+ taskId: opts.taskId,
89
+ taskKind: task.taskKind,
90
+ previousStatus: task.status,
91
+ reason: 'only_needs_human_review_tasks_are_retryable',
92
+ nextAction: 'This task is not in the owner attention queue; use run-once / enqueue-successors instead',
93
+ };
94
+ emit(out, opts.json);
95
+ return;
96
+ }
97
+
98
+ if (!opts.confirm) {
99
+ const out: InternalizationRetryOutput = {
100
+ status: 'dry_run',
101
+ taskId: opts.taskId,
102
+ taskKind: task.taskKind,
103
+ previousStatus: task.status,
104
+ reason: 'dry_run_no_mutation',
105
+ nextAction: 'Re-run with --confirm to requeue this task',
106
+ };
107
+ emit(out, opts.json);
108
+ return;
109
+ }
110
+
111
+ // Owner retry = authority reset: runnerDecision 与 completionIntent 同时
112
+ // 清空 (保留 revisionCount / revisionCauseId / rolloutRevisionPayload /
113
+ // repairPayload / lineage — revision budget 证据不动)。
114
+ const piTask = hydratePITaskRecord(task);
115
+ if (!piTask) {
116
+ // fail closed: 只改 status 会把(可能损坏的)旧 authority 记录原样留在
117
+ // metadata 里,下一次 run 由它接管 —— 产生 partial retry。
118
+ const out: InternalizationRetryOutput = {
119
+ status: 'failed',
120
+ taskId: opts.taskId,
121
+ taskKind: task.taskKind,
122
+ previousStatus: task.status,
123
+ reason: 'metadata_invalid',
124
+ nextAction: 'Task metadata failed PI hydration; a retry now would risk a partial authority reset. Inspect: pd runtime internalization integrity --json',
125
+ };
126
+ emit(out, opts.json);
127
+ process.exitCode = 1;
128
+ return;
129
+ }
130
+ // 原子单写: 同一 patch 同时落 status=pending / attemptCount=0 / 清空后的
131
+ // diagnosticJson。updateTask 抛错时 DB 行保持原样(单条 UPDATE),无 partial reset。
132
+ const merged = mergePITaskMetadata(piTask, {
133
+ runnerDecision: undefined,
134
+ completionIntent: undefined,
135
+ });
136
+ await stateManager.updateTask(opts.taskId, {
137
+ status: 'pending',
138
+ attemptCount: 0,
139
+ diagnosticJson: createPITaskDiagnosticJson(merged),
140
+ });
141
+
142
+ const out: InternalizationRetryOutput = {
143
+ status: 'requeued',
144
+ taskId: opts.taskId,
145
+ taskKind: task.taskKind,
146
+ previousStatus: task.status,
147
+ nextAction: 'Task requeued; it will be picked up by the auto-consumer cycle, or advance manually: pd runtime internalization run-once',
148
+ };
149
+ emit(out, opts.json);
150
+ } catch (err) {
151
+ const out: InternalizationRetryOutput = {
152
+ status: 'failed',
153
+ taskId: opts.taskId,
154
+ reason: err instanceof Error ? err.message : String(err),
155
+ nextAction: 'Check workspace DB integrity (pd runtime internalization integrity)',
156
+ };
157
+ emit(out, opts.json);
158
+ process.exitCode = 1;
159
+ } finally {
160
+ await stateManager.close();
161
+ }
162
+ }
163
+
package/src/index.ts CHANGED
@@ -33,6 +33,7 @@ import { handleRuntimeUat } from './commands/runtime-uat.js';
33
33
  import { handleRuntimeInternalizationQueue } from './commands/runtime-internalization-queue.js';
34
34
  import { handleRuntimeInternalizationWakeOnce } from './commands/runtime-internalization-wake-once.js';
35
35
  import { handleRuntimeInternalizationRunOnce } from './commands/runtime-internalization-run-once.js';
36
+ import { handleRuntimeInternalizationRetry } from './commands/runtime-internalization-retry.js';
36
37
  import { registerRunRuleHostCommand } from './commands/runtime-internalization-run-rulehost.js';
37
38
  import { handleCandidateList, handleCandidateShow, handleCandidateIntake, handleCandidateAudit, handleCandidateRepair, handleCandidateRoute, handleCandidateInternalize, handleCandidateInternalizationBackfill } from './commands/candidate.js';
38
39
  import { handleArtifactShow } from './commands/artifact.js';
@@ -44,6 +45,7 @@ import { handleRuntimeInternalizationIntegrityRepair } from './commands/runtime-
44
45
  import { handleRuntimeInternalizationEnqueueSuccessors } from './commands/runtime-internalization-enqueue-successors.js';
45
46
  import { handleRuntimeInternalizationContextTrace } from './commands/runtime-internalization-context-trace.js';
46
47
  import { handleRuntimeDiagnosticsExport } from './commands/runtime-diagnostics-export.js';
48
+ import { registerRuntimeCompatibilityScanCommand } from './commands/runtime-compatibility-scan.js';
47
49
  import { handleRuntimeRecoverySweep } from './commands/runtime-recovery.js';
48
50
  import { handleRuntimeRecoveryFailedTasks } from './commands/runtime-recovery-failed-tasks.js';
49
51
  import {
@@ -340,6 +342,8 @@ runtimeCmd
340
342
  });
341
343
  });
342
344
 
345
+ registerRuntimeCompatibilityScanCommand(runtimeCmd);
346
+
343
347
  const synthCmd = runtimeCmd
344
348
  .command('synthetic', { hidden: true })
345
349
  .description('Synthetic workload baseline commands');
@@ -454,11 +458,13 @@ demoCmd
454
458
  .option('-w, --workspace <path>', 'Workspace directory (default: temp workspace)')
455
459
  .option('--json', 'Output raw JSON')
456
460
  .option('--channels <channels>', 'Comma-separated channel list (prompt,code_tool_hook,defer_archive)')
461
+ .option('--allow-demo-write-to-existing-workspace', 'Developer override: permit writing demo artifacts into a workspace that already contains PD state (demo isolation guard)')
457
462
  .action(async (opts) => {
458
463
  await handleDemoStoryA({
459
464
  workspace: opts.workspace,
460
465
  json: opts.json,
461
466
  channels: opts.channels,
467
+ allowDemoWriteToExistingWorkspace: opts.allowDemoWriteToExistingWorkspace === true,
462
468
  });
463
469
  });
464
470
 
@@ -554,6 +560,17 @@ internalizationCmd
554
560
  await handleRuntimeInternalizationWakeOnce({ workspace: opts.workspace, dryRun: opts.dryRun, json: opts.json });
555
561
  });
556
562
 
563
+ internalizationCmd
564
+ .command('retry')
565
+ .description('Requeue a needs_human_review task (owner attention queue out-edge)')
566
+ .option('-w, --workspace <path>', 'Workspace directory')
567
+ .requiredOption('--task <taskId>', 'Task id to requeue')
568
+ .option('--confirm', 'Actually requeue (default is dry-run)')
569
+ .option('--json', 'Output as JSON')
570
+ .action(async (opts) => {
571
+ await handleRuntimeInternalizationRetry({ workspace: opts.workspace, taskId: opts.task, confirm: opts.confirm, json: opts.json });
572
+ });
573
+
557
574
  internalizationCmd
558
575
  .command('run-once')
559
576
  .description('Wake-and-run: lease the next PI task and execute it')