@principles/pd-cli 1.141.1 → 1.142.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.
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-internalization-retry.d.ts","sourceRoot":"","sources":["../../src/commands/runtime-internalization-retry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAOH,MAAM,WAAW,2BAA2B;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAYD,wBAAsB,iCAAiC,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CA2GxG"}
1
+ {"version":3,"file":"runtime-internalization-retry.d.ts","sourceRoot":"","sources":["../../src/commands/runtime-internalization-retry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAMH,MAAM,WAAW,2BAA2B;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAYD,wBAAsB,iCAAiC,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CA0HxG"}
@@ -21,8 +21,7 @@
21
21
  * 失败路径不产生任何状态变更 (cli-5)。
22
22
  */
23
23
  import * as path from 'path';
24
- import { RuntimeStateManager } from '@principles/core/runtime-v2';
25
- import { hydratePITaskRecord, createPITaskDiagnosticJson, mergePITaskMetadata } from '@principles/core/runtime-v2';
24
+ import { RuntimeStateManager, ownerRetryNeedsHumanReviewTask } from '@principles/core/runtime-v2';
26
25
  import { resolveWorkspaceDir } from '../resolve-workspace.js';
27
26
  function emit(out, json) {
28
27
  if (json) {
@@ -90,15 +89,40 @@ export async function handleRuntimeInternalizationRetry(opts) {
90
89
  // Owner retry = authority reset: runnerDecision 与 completionIntent 同时
91
90
  // 清空 (保留 revisionCount / revisionCauseId / rolloutRevisionPayload /
92
91
  // repairPayload / lineage — revision budget 证据不动)。
93
- const piTask = hydratePITaskRecord(task);
94
- if (!piTask) {
92
+ // 落库序列提取在 core ownerRetryNeedsHumanReviewTask (Governance Recovery
93
+ // Actions v1): Console 恢复端点与 CLI 走同一段逻辑,禁止复制。
94
+ const outcome = await ownerRetryNeedsHumanReviewTask(stateManager, opts.taskId);
95
+ if (outcome.status === 'not_found') {
96
+ const out = {
97
+ status: 'failed',
98
+ taskId: opts.taskId,
99
+ reason: 'task_not_found',
100
+ nextAction: 'Verify the task id and workspace',
101
+ };
102
+ emit(out, opts.json);
103
+ process.exitCode = 1;
104
+ return;
105
+ }
106
+ if (outcome.status === 'skipped') {
107
+ const out = {
108
+ status: 'skipped',
109
+ taskId: opts.taskId,
110
+ taskKind: outcome.taskKind,
111
+ previousStatus: outcome.previousStatus,
112
+ reason: 'only_needs_human_review_tasks_are_retryable',
113
+ nextAction: 'This task is not in the owner attention queue; use run-once / enqueue-successors instead',
114
+ };
115
+ emit(out, opts.json);
116
+ return;
117
+ }
118
+ if (outcome.status === 'metadata_invalid') {
95
119
  // fail closed: 只改 status 会把(可能损坏的)旧 authority 记录原样留在
96
120
  // metadata 里,下一次 run 由它接管 —— 产生 partial retry。
97
121
  const out = {
98
122
  status: 'failed',
99
123
  taskId: opts.taskId,
100
- taskKind: task.taskKind,
101
- previousStatus: task.status,
124
+ taskKind: outcome.taskKind,
125
+ previousStatus: 'needs_human_review',
102
126
  reason: 'metadata_invalid',
103
127
  nextAction: 'Task metadata failed PI hydration; a retry now would risk a partial authority reset. Inspect: pd runtime internalization integrity --json',
104
128
  };
@@ -106,22 +130,11 @@ export async function handleRuntimeInternalizationRetry(opts) {
106
130
  process.exitCode = 1;
107
131
  return;
108
132
  }
109
- // 原子单写: 同一 patch 同时落 status=pending / attemptCount=0 / 清空后的
110
- // diagnosticJson。updateTask 抛错时 DB 行保持原样(单条 UPDATE),无 partial reset。
111
- const merged = mergePITaskMetadata(piTask, {
112
- runnerDecision: undefined,
113
- completionIntent: undefined,
114
- });
115
- await stateManager.updateTask(opts.taskId, {
116
- status: 'pending',
117
- attemptCount: 0,
118
- diagnosticJson: createPITaskDiagnosticJson(merged),
119
- });
120
133
  const out = {
121
134
  status: 'requeued',
122
135
  taskId: opts.taskId,
123
- taskKind: task.taskKind,
124
- previousStatus: task.status,
136
+ taskKind: outcome.taskKind,
137
+ previousStatus: outcome.previousStatus,
125
138
  nextAction: 'Task requeued; it will be picked up by the auto-consumer cycle, or advance manually: pd runtime internalization run-once',
126
139
  };
127
140
  emit(out, opts.json);
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-internalization-retry.js","sourceRoot":"","sources":["../../src/commands/runtime-internalization-retry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-internalization-retry.js","sourceRoot":"","sources":["../../src/commands/runtime-internalization-retry.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.141.1",
3
+ "version": "1.142.0",
4
4
  "description": "PD CLI — Pain recording, sample management, and governance tasks for Principles Disciple",
5
5
  "type": "module",
6
6
  "bin": {
@@ -22,8 +22,7 @@
22
22
  */
23
23
 
24
24
  import * as path from 'path';
25
- import { RuntimeStateManager } from '@principles/core/runtime-v2';
26
- import { hydratePITaskRecord, createPITaskDiagnosticJson, mergePITaskMetadata } from '@principles/core/runtime-v2';
25
+ import { RuntimeStateManager, ownerRetryNeedsHumanReviewTask } from '@principles/core/runtime-v2';
27
26
  import { resolveWorkspaceDir } from '../resolve-workspace.js';
28
27
 
29
28
  export interface InternalizationRetryOptions {
@@ -111,15 +110,41 @@ export async function handleRuntimeInternalizationRetry(opts: InternalizationRet
111
110
  // Owner retry = authority reset: runnerDecision 与 completionIntent 同时
112
111
  // 清空 (保留 revisionCount / revisionCauseId / rolloutRevisionPayload /
113
112
  // repairPayload / lineage — revision budget 证据不动)。
114
- const piTask = hydratePITaskRecord(task);
115
- if (!piTask) {
113
+ // 落库序列提取在 core ownerRetryNeedsHumanReviewTask (Governance Recovery
114
+ // Actions v1): Console 恢复端点与 CLI 走同一段逻辑,禁止复制。
115
+ const outcome = await ownerRetryNeedsHumanReviewTask(stateManager, opts.taskId);
116
+
117
+ if (outcome.status === 'not_found') {
118
+ const out: InternalizationRetryOutput = {
119
+ status: 'failed',
120
+ taskId: opts.taskId,
121
+ reason: 'task_not_found',
122
+ nextAction: 'Verify the task id and workspace',
123
+ };
124
+ emit(out, opts.json);
125
+ process.exitCode = 1;
126
+ return;
127
+ }
128
+ if (outcome.status === 'skipped') {
129
+ const out: InternalizationRetryOutput = {
130
+ status: 'skipped',
131
+ taskId: opts.taskId,
132
+ taskKind: outcome.taskKind,
133
+ previousStatus: outcome.previousStatus,
134
+ reason: 'only_needs_human_review_tasks_are_retryable',
135
+ nextAction: 'This task is not in the owner attention queue; use run-once / enqueue-successors instead',
136
+ };
137
+ emit(out, opts.json);
138
+ return;
139
+ }
140
+ if (outcome.status === 'metadata_invalid') {
116
141
  // fail closed: 只改 status 会把(可能损坏的)旧 authority 记录原样留在
117
142
  // metadata 里,下一次 run 由它接管 —— 产生 partial retry。
118
143
  const out: InternalizationRetryOutput = {
119
144
  status: 'failed',
120
145
  taskId: opts.taskId,
121
- taskKind: task.taskKind,
122
- previousStatus: task.status,
146
+ taskKind: outcome.taskKind,
147
+ previousStatus: 'needs_human_review',
123
148
  reason: 'metadata_invalid',
124
149
  nextAction: 'Task metadata failed PI hydration; a retry now would risk a partial authority reset. Inspect: pd runtime internalization integrity --json',
125
150
  };
@@ -127,23 +152,12 @@ export async function handleRuntimeInternalizationRetry(opts: InternalizationRet
127
152
  process.exitCode = 1;
128
153
  return;
129
154
  }
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
155
 
142
156
  const out: InternalizationRetryOutput = {
143
157
  status: 'requeued',
144
158
  taskId: opts.taskId,
145
- taskKind: task.taskKind,
146
- previousStatus: task.status,
159
+ taskKind: outcome.taskKind,
160
+ previousStatus: outcome.previousStatus,
147
161
  nextAction: 'Task requeued; it will be picked up by the auto-consumer cycle, or advance manually: pd runtime internalization run-once',
148
162
  };
149
163
  emit(out, opts.json);