@principles/pd-cli 1.141.1 → 1.142.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/dist/commands/pain-record.d.ts.map +1 -1
- package/dist/commands/pain-record.js +12 -3
- package/dist/commands/pain-record.js.map +1 -1
- package/dist/commands/runtime-internalization-retry.d.ts.map +1 -1
- package/dist/commands/runtime-internalization-retry.js +32 -19
- package/dist/commands/runtime-internalization-retry.js.map +1 -1
- package/package.json +1 -1
- package/src/commands/pain-record.ts +12 -2
- package/src/commands/runtime-internalization-retry.ts +33 -19
- package/tests/commands/pain-record-async.test.ts +9 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pain-record.d.ts","sourceRoot":"","sources":["../../src/commands/pain-record.ts"],"names":[],"mappings":"AAmBA,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"pain-record.d.ts","sourceRoot":"","sources":["../../src/commands/pain-record.ts"],"names":[],"mappings":"AAmBA,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAgOzE"}
|
|
@@ -178,6 +178,13 @@ export async function handlePainRecord(opts) {
|
|
|
178
178
|
if (!out.reason) {
|
|
179
179
|
out.reason = out.message;
|
|
180
180
|
}
|
|
181
|
+
// PRI-570: async submission has NO automatic consumer — the
|
|
182
|
+
// internalization auto-consumer's runner kinds (dreamer..rollout_reviewer)
|
|
183
|
+
// do not include 'diagnostician', so a submitted task stays pending until
|
|
184
|
+
// the owner runs the diagnose command. Never let that stay implicit (rc-9).
|
|
185
|
+
out.warning = 'Async mode: no background consumer picks up diagnostician tasks. '
|
|
186
|
+
+ `Run ${out.nextAction} or the pain signal will remain pending indefinitely. `
|
|
187
|
+
+ 'Use --wait to diagnose synchronously instead.';
|
|
181
188
|
}
|
|
182
189
|
console.log(JSON.stringify(out, null, 2));
|
|
183
190
|
if (result.status !== 'succeeded' && result.status !== 'skipped' && result.status !== 'retried' && result.status !== 'submitted') {
|
|
@@ -212,9 +219,11 @@ export async function handlePainRecord(opts) {
|
|
|
212
219
|
console.log(` Pain ID: ${result.painId}`);
|
|
213
220
|
console.log(` Task ID: ${result.taskId}`);
|
|
214
221
|
console.log(` Status: submitted`);
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
222
|
+
// PRI-570: no background consumer picks up diagnostician tasks — say so
|
|
223
|
+
// explicitly instead of implying async diagnosis happens on its own (rc-9).
|
|
224
|
+
console.error(' WARNING: async mode has no automatic consumer for diagnostician tasks.');
|
|
225
|
+
console.error(` Run: pd diagnose run --task-id ${result.taskId} --workspace "${workspaceDir}" --runtime pi-ai`);
|
|
226
|
+
console.error(' Or re-record with --wait to diagnose synchronously. Without this, the task stays pending indefinitely.');
|
|
218
227
|
}
|
|
219
228
|
else if (result.status === 'skipped') {
|
|
220
229
|
console.log(`[SKIP] Task already in progress: ${result.message ?? 'unknown'}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pain-record.js","sourceRoot":"","sources":["../../src/commands/pain-record.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC3F,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAY/E,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAmB;IACxD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACpD,OAAO,CAAC,KAAK,CAAC,oHAAoH,CAAC,CAAC;QACpI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IAED,0FAA0F;IAC1F,gGAAgG;IAChG,kGAAkG;IAClG,MAAM,iBAAiB,GAAG,GAAG,CAAC;IAC9B,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;gBACzB,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,iBAAiB;gBACzB,OAAO,EAAE,4BAA4B,iBAAiB,oBAAoB,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG;gBAC/F,UAAU,EAAE,iEAAiE;aAC9E,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACf,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,mCAAmC,iBAAiB,oBAAoB,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAC7G,OAAO,CAAC,KAAK,CAAC,2EAA2E,CAAC,CAAC;QAC7F,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IAED,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC;QAC1F,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,YAAY,GAAG,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,GAAG,YAAY,SAAS,CAAC;IAC1C,MAAM,MAAM,GAAG,UAAU,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IAEjF,iEAAiE;IACjE,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;IACjD,MAAM,QAAQ,GAAG,6BAA6B,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAErF,MAAM,aAAa,GAAG,IAAI,0BAA0B,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnE,kEAAkE;IAClE,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;IAChD,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QACrB,mFAAmF;QACnF,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACvE,KAAK,MAAM,CAAC,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAC1C,IAAI,CAAC,CAAC,UAAU;gBAAE,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IACD,MAAM,eAAe,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC;IAEzF,oEAAoE;IACpE,MAAM,YAAY,GAAG,0BAA0B,CAAC,YAAY,CAAC,CAAC;IAC9D,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,YAAY,EAAE,yBAAyB,CAAC,CAAC;IACnF,MAAM,SAAS,GAAG,gBAAgB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,sCAAsC;IAExF,MAAM,OAAO,GAAG,IAAI,sBAAsB,CAAC;QACzC,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,KAAK,EAAE,QAAQ;QACf,iBAAiB,EAAE,IAAI;QACvB,eAAe;QACf,SAAS,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QAC9C,SAAS;KACV,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;QACtC,MAAM;QACN,QAAQ,EAAE,kBAAkB;QAC5B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,QAAQ;QAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;QACvB,SAAS,EAAE,kBAAkB;QAC7B,OAAO,EAAE,QAAQ;QACjB,UAAU,EAAE,8BAA8B;QAC1C,QAAQ;QACR,mBAAmB,EAAE,IAAI;KAC1B,CAAC,CAAC;IAEH,2CAA2C;IAC3C,IAAI,MAAM,CAAC,eAAe,KAAK,gBAAgB,EAAE,CAAC;QAChD,MAAM,YAAY,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,oBAAoB,CAAC,YAAY,CAAC,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;oBACzB,MAAM,EAAE,QAAQ;oBAChB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,eAAe,EAAE,MAAM,CAAC,eAAe;oBACvC,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,WAAW,EAAE;wBACX,MAAM,EAAE,YAAY,CAAC,MAAM;wBAC3B,OAAO,EAAE,YAAY,CAAC,OAAO;wBAC7B,UAAU,EAAE,YAAY,CAAC,UAAU;qBACpC;iBACF,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACf,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,+BAA+B,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;gBACpE,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC3C,OAAO,CAAC,KAAK,CAAC,iBAAiB,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;YAC5D,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,YAAY,CAAC;QAC5B,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,KAAK;YAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,6EAA6E;gBAC7E,mFAAmF;gBACnF,yFAAyF;gBACzF,6DAA6D;gBAC7D,aAAa;gBACb,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;gBAC7D,MAAM,cAAc,GAAG,YAAY,EAAuB,CAAC;gBAC3D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACjE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,6BAA6B;YAC/B,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YAC9D,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAE7C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;gBAC1C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;oBACxB,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBAC9B,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACpB,CAAC;YAED,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC1E,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;gBACtE,OAAO,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;gBACxD,IAAI,MAAM,CAAC,QAAQ;oBAAE,OAAO,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC1E,IAAI,MAAM,CAAC,KAAK;oBAAE,OAAO,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBACpE,IAAI,MAAM,CAAC,SAAS;oBAAE,OAAO,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC5E,IAAI,MAAM,CAAC,OAAO;oBAAE,OAAO,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;gBACxE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACpB,CAAC;YAED,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;YAChE,OAAO,CAAC,KAAK,CAAC,wFAAwF,CAAC,CAAC;YACxG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAElB,IAAI,MAAM,CAAC,OAAO;gBAAE,OAAO,CAAC,KAAK,CAAC,cAAc,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,GAAG,GAA4B,EAAE,GAAG,MAAM,EAAE,CAAC;QACnD,qDAAqD;QACrD,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;gBACpB,GAAG,CAAC,UAAU,GAAG,6BAA6B,GAAG,CAAC,MAAM,iBAAiB,YAAY,0BAA0B,CAAC;YAClH,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;gBAChB,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;YAC3B,CAAC;
|
|
1
|
+
{"version":3,"file":"pain-record.js","sourceRoot":"","sources":["../../src/commands/pain-record.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC3F,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAY/E,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAmB;IACxD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACpD,OAAO,CAAC,KAAK,CAAC,oHAAoH,CAAC,CAAC;QACpI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IAED,0FAA0F;IAC1F,gGAAgG;IAChG,kGAAkG;IAClG,MAAM,iBAAiB,GAAG,GAAG,CAAC;IAC9B,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;gBACzB,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,iBAAiB;gBACzB,OAAO,EAAE,4BAA4B,iBAAiB,oBAAoB,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG;gBAC/F,UAAU,EAAE,iEAAiE;aAC9E,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACf,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,mCAAmC,iBAAiB,oBAAoB,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAC7G,OAAO,CAAC,KAAK,CAAC,2EAA2E,CAAC,CAAC;QAC7F,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IAED,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC;QAC1F,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,YAAY,GAAG,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,GAAG,YAAY,SAAS,CAAC;IAC1C,MAAM,MAAM,GAAG,UAAU,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IAEjF,iEAAiE;IACjE,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;IACjD,MAAM,QAAQ,GAAG,6BAA6B,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAErF,MAAM,aAAa,GAAG,IAAI,0BAA0B,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnE,kEAAkE;IAClE,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;IAChD,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QACrB,mFAAmF;QACnF,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACvE,KAAK,MAAM,CAAC,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAC1C,IAAI,CAAC,CAAC,UAAU;gBAAE,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IACD,MAAM,eAAe,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC;IAEzF,oEAAoE;IACpE,MAAM,YAAY,GAAG,0BAA0B,CAAC,YAAY,CAAC,CAAC;IAC9D,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,YAAY,EAAE,yBAAyB,CAAC,CAAC;IACnF,MAAM,SAAS,GAAG,gBAAgB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,sCAAsC;IAExF,MAAM,OAAO,GAAG,IAAI,sBAAsB,CAAC;QACzC,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,KAAK,EAAE,QAAQ;QACf,iBAAiB,EAAE,IAAI;QACvB,eAAe;QACf,SAAS,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QAC9C,SAAS;KACV,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;QACtC,MAAM;QACN,QAAQ,EAAE,kBAAkB;QAC5B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,QAAQ;QAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;QACvB,SAAS,EAAE,kBAAkB;QAC7B,OAAO,EAAE,QAAQ;QACjB,UAAU,EAAE,8BAA8B;QAC1C,QAAQ;QACR,mBAAmB,EAAE,IAAI;KAC1B,CAAC,CAAC;IAEH,2CAA2C;IAC3C,IAAI,MAAM,CAAC,eAAe,KAAK,gBAAgB,EAAE,CAAC;QAChD,MAAM,YAAY,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,oBAAoB,CAAC,YAAY,CAAC,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;oBACzB,MAAM,EAAE,QAAQ;oBAChB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,eAAe,EAAE,MAAM,CAAC,eAAe;oBACvC,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,WAAW,EAAE;wBACX,MAAM,EAAE,YAAY,CAAC,MAAM;wBAC3B,OAAO,EAAE,YAAY,CAAC,OAAO;wBAC7B,UAAU,EAAE,YAAY,CAAC,UAAU;qBACpC;iBACF,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACf,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,+BAA+B,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;gBACpE,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC3C,OAAO,CAAC,KAAK,CAAC,iBAAiB,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;YAC5D,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,YAAY,CAAC;QAC5B,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,KAAK;YAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,6EAA6E;gBAC7E,mFAAmF;gBACnF,yFAAyF;gBACzF,6DAA6D;gBAC7D,aAAa;gBACb,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;gBAC7D,MAAM,cAAc,GAAG,YAAY,EAAuB,CAAC;gBAC3D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACjE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,6BAA6B;YAC/B,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YAC9D,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAE7C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;gBAC1C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;oBACxB,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBAC9B,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACpB,CAAC;YAED,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC1E,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;gBACtE,OAAO,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;gBACxD,IAAI,MAAM,CAAC,QAAQ;oBAAE,OAAO,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC1E,IAAI,MAAM,CAAC,KAAK;oBAAE,OAAO,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBACpE,IAAI,MAAM,CAAC,SAAS;oBAAE,OAAO,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC5E,IAAI,MAAM,CAAC,OAAO;oBAAE,OAAO,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;gBACxE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACpB,CAAC;YAED,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;YAChE,OAAO,CAAC,KAAK,CAAC,wFAAwF,CAAC,CAAC;YACxG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAElB,IAAI,MAAM,CAAC,OAAO;gBAAE,OAAO,CAAC,KAAK,CAAC,cAAc,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,GAAG,GAA4B,EAAE,GAAG,MAAM,EAAE,CAAC;QACnD,qDAAqD;QACrD,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;gBACpB,GAAG,CAAC,UAAU,GAAG,6BAA6B,GAAG,CAAC,MAAM,iBAAiB,YAAY,0BAA0B,CAAC;YAClH,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;gBAChB,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;YAC3B,CAAC;YACD,4DAA4D;YAC5D,2EAA2E;YAC3E,0EAA0E;YAC1E,4EAA4E;YAC5E,GAAG,CAAC,OAAO,GAAG,mEAAmE;kBAC7E,OAAO,GAAG,CAAC,UAAU,wDAAwD;kBAC7E,+CAA+C,CAAC;QACtD,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACjI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5C,IAAI,MAAM,CAAC,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAC5D,IAAI,MAAM,CAAC,UAAU;gBAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YAC3E,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACvG,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9G,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,iBAAiB,YAAY,EAAE,CAAC,CAAC;YAC7C,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;gBAAE,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;YACrF,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;YACtE,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,MAAM,iBAAiB,YAAY,GAAG,CAAC,CAAC;QAChF,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YACpC,wEAAwE;YACxE,4EAA4E;YAC5E,OAAO,CAAC,KAAK,CAAC,2EAA2E,CAAC,CAAC;YAC3F,OAAO,CAAC,KAAK,CAAC,qCAAqC,MAAM,CAAC,MAAM,iBAAiB,YAAY,mBAAmB,CAAC,CAAC;YAClH,OAAO,CAAC,KAAK,CAAC,2GAA2G,CAAC,CAAC;QAC7H,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,oCAAoC,MAAM,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC;YAC/E,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,yBAAyB,MAAM,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-internalization-retry.d.ts","sourceRoot":"","sources":["../../src/commands/runtime-internalization-retry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;
|
|
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
|
-
|
|
94
|
-
|
|
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:
|
|
101
|
-
previousStatus:
|
|
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:
|
|
124
|
-
previousStatus:
|
|
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":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,
|
|
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
|
@@ -198,6 +198,13 @@ export async function handlePainRecord(opts: RecordOptions): Promise<void> {
|
|
|
198
198
|
if (!out.reason) {
|
|
199
199
|
out.reason = out.message;
|
|
200
200
|
}
|
|
201
|
+
// PRI-570: async submission has NO automatic consumer — the
|
|
202
|
+
// internalization auto-consumer's runner kinds (dreamer..rollout_reviewer)
|
|
203
|
+
// do not include 'diagnostician', so a submitted task stays pending until
|
|
204
|
+
// the owner runs the diagnose command. Never let that stay implicit (rc-9).
|
|
205
|
+
out.warning = 'Async mode: no background consumer picks up diagnostician tasks. '
|
|
206
|
+
+ `Run ${out.nextAction} or the pain signal will remain pending indefinitely. `
|
|
207
|
+
+ 'Use --wait to diagnose synchronously instead.';
|
|
201
208
|
}
|
|
202
209
|
console.log(JSON.stringify(out, null, 2));
|
|
203
210
|
if (result.status !== 'succeeded' && result.status !== 'skipped' && result.status !== 'retried' && result.status !== 'submitted') {
|
|
@@ -225,8 +232,11 @@ export async function handlePainRecord(opts: RecordOptions): Promise<void> {
|
|
|
225
232
|
console.log(` Pain ID: ${result.painId}`);
|
|
226
233
|
console.log(` Task ID: ${result.taskId}`);
|
|
227
234
|
console.log(` Status: submitted`);
|
|
228
|
-
|
|
229
|
-
|
|
235
|
+
// PRI-570: no background consumer picks up diagnostician tasks — say so
|
|
236
|
+
// explicitly instead of implying async diagnosis happens on its own (rc-9).
|
|
237
|
+
console.error(' WARNING: async mode has no automatic consumer for diagnostician tasks.');
|
|
238
|
+
console.error(` Run: pd diagnose run --task-id ${result.taskId} --workspace "${workspaceDir}" --runtime pi-ai`);
|
|
239
|
+
console.error(' Or re-record with --wait to diagnose synchronously. Without this, the task stays pending indefinitely.');
|
|
230
240
|
} else if (result.status === 'skipped') {
|
|
231
241
|
console.log(`[SKIP] Task already in progress: ${result.message ?? 'unknown'}`);
|
|
232
242
|
console.log(` Pain ID: ${result.painId}`);
|
|
@@ -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
|
-
|
|
115
|
-
|
|
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:
|
|
122
|
-
previousStatus:
|
|
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:
|
|
146
|
-
previousStatus:
|
|
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);
|
|
@@ -149,9 +149,10 @@ describe('pd pain record async mode (PRI-369)', () => {
|
|
|
149
149
|
});
|
|
150
150
|
|
|
151
151
|
// 2. submitted status outputs [SUBMITTED] in text mode
|
|
152
|
-
it('outputs [SUBMITTED] in text mode', async () => {
|
|
152
|
+
it('outputs [SUBMITTED] in text mode with no-consumer warning (PRI-570)', async () => {
|
|
153
153
|
mockIsFeatureEnabledReturn = true;
|
|
154
154
|
const logSpy = vi.spyOn(console, 'log').mockImplementation(() => {});
|
|
155
|
+
const errSpy = vi.spyOn(console, 'error').mockImplementation(() => {});
|
|
155
156
|
const exitSpy = mockProcessExit();
|
|
156
157
|
|
|
157
158
|
await handlePainRecord({ reason: 'test pain' });
|
|
@@ -159,10 +160,16 @@ describe('pd pain record async mode (PRI-369)', () => {
|
|
|
159
160
|
const allOutput = logSpy.mock.calls.map(c => c.join(' ')).join(' ');
|
|
160
161
|
expect(allOutput).toContain('[SUBMITTED]');
|
|
161
162
|
expect(allOutput).toContain('submitted');
|
|
162
|
-
|
|
163
|
+
// PRI-570: the async path has NO automatic consumer — the warning must be
|
|
164
|
+
// explicit (rc-9), on stderr so it never pollutes piped stdout.
|
|
165
|
+
const errOutput = errSpy.mock.calls.map(c => c.join(' ')).join(' ');
|
|
166
|
+
expect(errOutput).toContain('no automatic consumer for diagnostician tasks');
|
|
167
|
+
expect(errOutput).toContain('pd diagnose run --task-id');
|
|
168
|
+
expect(errOutput).toContain('--wait');
|
|
163
169
|
expect(exitSpy).not.toHaveBeenCalledWith(1);
|
|
164
170
|
|
|
165
171
|
logSpy.mockRestore();
|
|
172
|
+
errSpy.mockRestore();
|
|
166
173
|
exitSpy.mockRestore();
|
|
167
174
|
});
|
|
168
175
|
|