@nac3/forge-cli 1.19.5 → 1.20.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.
Files changed (82) hide show
  1. package/dist/bin/yf.d.ts.map +1 -1
  2. package/dist/bin/yf.js +2 -1
  3. package/dist/bin/yf.js.map +1 -1
  4. package/dist/chat/instance_lock.d.ts +98 -0
  5. package/dist/chat/instance_lock.d.ts.map +1 -1
  6. package/dist/chat/instance_lock.js +135 -11
  7. package/dist/chat/instance_lock.js.map +1 -1
  8. package/dist/chat/instances.d.ts +84 -0
  9. package/dist/chat/instances.d.ts.map +1 -0
  10. package/dist/chat/instances.js +224 -0
  11. package/dist/chat/instances.js.map +1 -0
  12. package/dist/chat/panel.d.ts.map +1 -1
  13. package/dist/chat/panel.js +276 -5
  14. package/dist/chat/panel.js.map +1 -1
  15. package/dist/chat/server.d.ts.map +1 -1
  16. package/dist/chat/server.js +64 -1
  17. package/dist/chat/server.js.map +1 -1
  18. package/dist/chat/tools/evidence.d.ts.map +1 -1
  19. package/dist/chat/tools/evidence.js +7 -3
  20. package/dist/chat/tools/evidence.js.map +1 -1
  21. package/dist/commands/task.d.ts +13 -0
  22. package/dist/commands/task.d.ts.map +1 -1
  23. package/dist/commands/task.js +134 -0
  24. package/dist/commands/task.js.map +1 -1
  25. package/dist/commands/upgrade.d.ts +15 -0
  26. package/dist/commands/upgrade.d.ts.map +1 -1
  27. package/dist/commands/upgrade.js +63 -0
  28. package/dist/commands/upgrade.js.map +1 -1
  29. package/dist/commands/urazuke.d.ts.map +1 -1
  30. package/dist/commands/urazuke.js +68 -1
  31. package/dist/commands/urazuke.js.map +1 -1
  32. package/dist/core/forge_profile.d.ts.map +1 -1
  33. package/dist/core/forge_profile.js +41 -4
  34. package/dist/core/forge_profile.js.map +1 -1
  35. package/dist/core/provider_keys.d.ts +10 -0
  36. package/dist/core/provider_keys.d.ts.map +1 -1
  37. package/dist/core/provider_keys.js +19 -0
  38. package/dist/core/provider_keys.js.map +1 -1
  39. package/dist/core/whats_new.d.ts.map +1 -1
  40. package/dist/core/whats_new.js +26 -0
  41. package/dist/core/whats_new.js.map +1 -1
  42. package/dist/urazuke/current.d.ts +5 -0
  43. package/dist/urazuke/current.d.ts.map +1 -1
  44. package/dist/urazuke/current.js +14 -3
  45. package/dist/urazuke/current.js.map +1 -1
  46. package/dist/urazuke/cycle.d.ts.map +1 -1
  47. package/dist/urazuke/cycle.js +6 -2
  48. package/dist/urazuke/cycle.js.map +1 -1
  49. package/dist/urazuke/evidence.d.ts.map +1 -1
  50. package/dist/urazuke/evidence.js +9 -1
  51. package/dist/urazuke/evidence.js.map +1 -1
  52. package/dist/urazuke/freeze.d.ts +29 -0
  53. package/dist/urazuke/freeze.d.ts.map +1 -0
  54. package/dist/urazuke/freeze.js +150 -0
  55. package/dist/urazuke/freeze.js.map +1 -0
  56. package/dist/urazuke/gate.d.ts +18 -1
  57. package/dist/urazuke/gate.d.ts.map +1 -1
  58. package/dist/urazuke/gate.js +21 -0
  59. package/dist/urazuke/gate.js.map +1 -1
  60. package/dist/urazuke/gates_data.d.ts +219 -0
  61. package/dist/urazuke/gates_data.d.ts.map +1 -0
  62. package/dist/urazuke/gates_data.js +441 -0
  63. package/dist/urazuke/gates_data.js.map +1 -0
  64. package/dist/urazuke/prompts_client.d.ts +6 -0
  65. package/dist/urazuke/prompts_client.d.ts.map +1 -1
  66. package/dist/urazuke/prompts_client.js +1 -1
  67. package/dist/urazuke/prompts_client.js.map +1 -1
  68. package/dist/urazuke/receipts.d.ts +53 -1
  69. package/dist/urazuke/receipts.d.ts.map +1 -1
  70. package/dist/urazuke/receipts.js +65 -3
  71. package/dist/urazuke/receipts.js.map +1 -1
  72. package/dist/urazuke/ruleset.d.ts +56 -0
  73. package/dist/urazuke/ruleset.d.ts.map +1 -0
  74. package/dist/urazuke/ruleset.js +159 -0
  75. package/dist/urazuke/ruleset.js.map +1 -0
  76. package/dist/urazuke/start.d.ts +5 -0
  77. package/dist/urazuke/start.d.ts.map +1 -1
  78. package/dist/urazuke/start.js +39 -2
  79. package/dist/urazuke/start.js.map +1 -1
  80. package/dist/version.d.ts +1 -1
  81. package/dist/version.js +1 -1
  82. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../../src/chat/tools/evidence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAc3D,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAwCjG;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAkBzH"}
1
+ {"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../../src/chat/tools/evidence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAc3D,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CA0CjG;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAoBzH"}
@@ -23,7 +23,7 @@ export async function runEvidenceRun(args, ctx) {
23
23
  }
24
24
  try {
25
25
  const { runEvidence } = await import('../../urazuke/evidence.js');
26
- const { renderReceipt } = await import('../../urazuke/receipts.js');
26
+ const { renderReceipt, isEmptyRun } = await import('../../urazuke/receipts.js');
27
27
  const { receipt } = await runEvidence({
28
28
  slug, projectRoot: ctx.projectRoot, kind, command,
29
29
  ...(args.pending_id ? { pending_id: String(args.pending_id) } : {}),
@@ -40,7 +40,9 @@ export async function runEvidenceRun(args, ctx) {
40
40
  ? (receipt.mode === 'mutation'
41
41
  ? ' -- NOT a mutation red: no TEST failed with the defect planted (exit ' + receipt.exit_code + ', failed ' + (receipt.counts.failed ?? 0) + '). Either the diff did not apply, the mutant only broke the load, or the test does not watch that code.'
42
42
  : ' -- NOT a red proof: the test did not fail at the base (exit ' + receipt.exit_code + ', failed ' + (receipt.counts.failed ?? 0) + '). Either the test does not watch the change, or the base already had it.')
43
- : ' -- NOT green (exit ' + receipt.exit_code + ', failed ' + (receipt.counts.failed ?? '?') + '). Fix and run again; this receipt counts against the step.';
43
+ : isEmptyRun(receipt)
44
+ ? ' -- NOT green: the runner reported ZERO tests, so the command succeeded at running nothing. Check the test path or glob; a quoted glob does not expand in cmd.exe. This receipt counts against the step.'
45
+ : ' -- NOT green (exit ' + receipt.exit_code + ', failed ' + (receipt.counts.failed ?? '?') + '). Fix and run again; this receipt counts against the step.';
44
46
  return {
45
47
  tool,
46
48
  result: { receipt },
@@ -68,7 +70,9 @@ export async function runEvidenceList(args, ctx) {
68
70
  tool,
69
71
  result: { summary, receipts: shown.map((r) => ({ ...r, output_tail: r.output_tail.slice(-400) })) },
70
72
  display: (args.pending_id ? args.pending_id + ': ' : '') + items.length + ' receipts (' + summary.red_proofs + ' red proofs [' + summary.strong_red_proofs + ' strong], ' + summary.greens + ' greens, ' + summary.regressions + ' regressions, ' + summary.e2e + ' e2e'
71
- + (summary.false_reds ? ', ' + summary.false_reds + ' FALSE RED (exit 0 on a red_proof)' : '') + ')\n'
73
+ + (summary.false_reds ? ', ' + summary.false_reds + ' FALSE RED (exit 0 on a red_proof)' : '')
74
+ + (summary.empty_runs ? ', ' + summary.empty_runs + ' EMPTY RUN (exit 0 over ZERO tests: not evidence)' : '')
75
+ + (summary.exit_only ? ', ' + summary.exit_only + ' exit-code-only' : '') + ')\n'
72
76
  + shown.map(renderReceipt).join('\n'),
73
77
  };
74
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../../src/chat/tools/evidence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../../src/chat/tools/evidence.ts"],"names":[],"mappings":"AAcA,MAAM,KAAK,GAAkB,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjH,SAAS,MAAM,CAAC,GAAgB;IAC9B,MAAM,CAAC,GAAI,GAAgC,CAAC,WAAW,CAAC;IACxD,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC;AAED,SAAS,GAAG,CAAC,IAAY,EAAE,KAAa;IACtC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,GAAG,MAAM,GAAG,KAAK,EAAE,CAAC;AACrF,CAAC;AAeD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAqB,EAAE,GAAgB;IAC1E,MAAM,IAAI,GAAG,oBAAoB,CAAC;IAClC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,CAAC,IAAI;QAAE,OAAO,GAAG,CAAC,IAAI,EAAE,yCAAyC,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAgB,CAAC;IACpD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC,IAAI,EAAE,sBAAsB,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACtF,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAClD,IAAI,CAAC,OAAO;QAAE,OAAO,GAAG,CAAC,IAAI,EAAE,0DAA0D,CAAC,CAAC;IAC3F,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACzF,IAAI,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACrG,OAAO,GAAG,CAAC,IAAI,EAAE,6NAA6N,CAAC,CAAC;IAClP,CAAC;IACD,IAAI,CAAC;QACH,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;QAClE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;QAChF,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,WAAW,CAAC;YACpC,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO;YACjD,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnE,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtF,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClD,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,KAAK,IAAI;YACnC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,IAAI,KAAK,WAAW;gBACpB,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU;oBAC5B,CAAC,CAAC,uEAAuE,GAAG,OAAO,CAAC,SAAS,GAAG,WAAW,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,yGAAyG;oBACtP,CAAC,CAAC,+DAA+D,GAAG,OAAO,CAAC,SAAS,GAAG,WAAW,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,2EAA2E,CAAC;gBACnN,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;oBACnB,CAAC,CAAC,0MAA0M;oBAC5M,CAAC,CAAC,sBAAsB,GAAG,OAAO,CAAC,SAAS,GAAG,WAAW,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,6DAA6D,CAAC;QAClK,OAAO;YACL,IAAI;YACJ,MAAM,EAAE,EAAE,OAAO,EAAE;YACnB,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,yBAAyB,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;SACtG,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAA4C,EAAE,GAAgB;IAClG,MAAM,IAAI,GAAG,qBAAqB,CAAC;IACnC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,CAAC,IAAI;QAAE,OAAO,GAAG,CAAC,IAAI,EAAE,yCAAyC,CAAC,CAAC;IACvE,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;IACrG,MAAM,CAAC,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;IACpB,IAAI,IAAI,CAAC,UAAU;QAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3F,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACzG,OAAO;QACL,IAAI;QACJ,MAAM,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE;QACnG,OAAO,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,UAAU,GAAG,eAAe,GAAG,OAAO,CAAC,iBAAiB,GAAG,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC,WAAW,GAAG,gBAAgB,GAAG,OAAO,CAAC,GAAG,GAAG,MAAM;cACpQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,UAAU,GAAG,oCAAoC,CAAC,CAAC,CAAC,EAAE,CAAC;cAC5F,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,UAAU,GAAG,mDAAmD,CAAC,CAAC,CAAC,EAAE,CAAC;cAC3G,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,SAAS,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK;cAC/E,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;KACxC,CAAC;AACJ,CAAC"}
@@ -15,4 +15,17 @@
15
15
  */
16
16
  import type { Command } from 'commander';
17
17
  export declare function registerTaskCommand(program: Command): void;
18
+ /**
19
+ * `yf instance` -- the Forge PROCESSES of this machine (PND-162).
20
+ *
21
+ * Deliberately NOT under `yf task` and deliberately without `--project`: a
22
+ * panel is not a task of a project, and an orphan holding thirty gigabytes
23
+ * of virtual space is a fact about the machine. Requiring a project to see
24
+ * it is part of why nobody saw it.
25
+ *
26
+ * yf instance list what is running, since when, how much memory
27
+ * yf instance stop <pid> stop one, with its process tree
28
+ * yf instance stop --old stop the ones from a previous session
29
+ */
30
+ export declare function registerInstanceCommand(program: Command): void;
18
31
  //# sourceMappingURL=task.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/commands/task.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmG1D"}
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/commands/task.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmEzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyG1D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqD9D"}
@@ -12,6 +12,55 @@ function fail(err) {
12
12
  process.stderr.write(c.error('error: ') + (err instanceof Error ? err.message : String(err)) + '\n');
13
13
  process.exit(1);
14
14
  }
15
+ function ageOf(minutes) {
16
+ if (minutes < 60)
17
+ return minutes + ' min';
18
+ const h = Math.floor(minutes / 60);
19
+ return h < 24 ? h + ' h' : Math.floor(h / 24) + ' d';
20
+ }
21
+ /** The Forge INSTANCES of this machine (panels, `yf start`), printed the
22
+ * same way the tasks are. Machine-wide on purpose: an orphan panel holding
23
+ * memory is a fact about the machine, not about the active project, and
24
+ * scoping it to a project is how it stayed invisible (PND-162). */
25
+ async function writeInstancesSection() {
26
+ const { instanceReport } = await import('../chat/instances.js');
27
+ const rep = await instanceReport({ with_vsz: true });
28
+ if (!rep.alive.length && !rep.dead.length)
29
+ return;
30
+ process.stdout.write('\n');
31
+ header('Instancias de Forge en esta maquina');
32
+ for (const i of rep.alive) {
33
+ const self = i.pid === process.pid ? c.dim(' (esta)') : '';
34
+ /* The virtual size is what exhausts the system's commit charge, and a
35
+ * node paged out entirely reports a working set of zero while holding
36
+ * tens of GB. Shown next to the RSS so the two cannot be confused. */
37
+ const mem = [
38
+ i.rss_mb != null ? 'RSS ' + i.rss_mb + ' MB' : '',
39
+ i.vsz_mb != null ? 'virtual ' + i.vsz_mb + ' MB' : '',
40
+ i.heap_mb != null && i.heap_limit_mb ? 'heap ' + i.heap_mb + '/' + i.heap_limit_mb + ' MB' : '',
41
+ ].filter(Boolean).join(', ');
42
+ process.stdout.write(' ' + c.warn('viva') + ' PID ' + i.pid + ' [' + i.kind + ']' + self
43
+ + ' ' + c.dim(ageOf(i.age_minutes)) + (i.version ? c.dim(' v' + i.version) : '') + '\n'
44
+ + ' ' + c.dim(i.root) + '\n'
45
+ + (mem ? ' ' + c.dim(mem) + '\n' : '')
46
+ /* A live pid whose beat is old is alive but not breathing: blocked on
47
+ * the event loop, or stopped. Worth distinguishing from a healthy one. */
48
+ + (i.beat_age_minutes != null && i.beat_age_minutes > 5
49
+ ? ' ' + c.warn('sin latido hace ' + ageOf(i.beat_age_minutes) + ': viva pero no responde') + '\n' : ''));
50
+ }
51
+ if (rep.vsz_unavailable) {
52
+ process.stdout.write(' ' + c.dim('(el espacio virtual no se pudo leer en esta plataforma: no es cero, es desconocido)') + '\n');
53
+ }
54
+ for (const d of rep.dead) {
55
+ process.stdout.write(' ' + c.error('murio') + ' PID ' + d.pid + ' [' + (d.kind ?? 'desconocido') + '] sin cierre ordenado'
56
+ + (d.beat_at != null ? c.dim(' -- ultimo latido ' + new Date(d.beat_at).toLocaleString()) : c.dim(' -- sin latido registrado'))
57
+ + (d.memory_pressure ? c.warn(' [heap sobre el 85% del techo: consistente con falta de memoria]') : '') + '\n'
58
+ + ' ' + c.dim(d.root) + '\n');
59
+ }
60
+ if (rep.alive.some((i) => i.pid !== process.pid)) {
61
+ process.stdout.write('\n pararlas: yf instance stop <pid> | viejas: yf instance stop --old\n');
62
+ }
63
+ }
15
64
  export function registerTaskCommand(program) {
16
65
  const root = program
17
66
  .command('task')
@@ -54,6 +103,12 @@ export function registerTaskCommand(program) {
54
103
  }
55
104
  if (live.length)
56
105
  process.stdout.write('\n pararlas: yf task stop <id> | todas: yf task stop --all\n');
106
+ /* PND-162: un panel o un `yf start` NO son tareas del supervisor, asi
107
+ * que esta lista nunca los veia -- y el dueno se enteraba de que
108
+ * tenia tres procesos de hace dos dias cuando la maquina se quedaba
109
+ * sin memoria. Van aca porque este es el comando al que uno va a
110
+ * preguntar "que tengo corriendo". */
111
+ await writeInstancesSection();
57
112
  }
58
113
  catch (err) {
59
114
  fail(err);
@@ -134,4 +189,83 @@ export function registerTaskCommand(program) {
134
189
  }
135
190
  });
136
191
  }
192
+ /**
193
+ * `yf instance` -- the Forge PROCESSES of this machine (PND-162).
194
+ *
195
+ * Deliberately NOT under `yf task` and deliberately without `--project`: a
196
+ * panel is not a task of a project, and an orphan holding thirty gigabytes
197
+ * of virtual space is a fact about the machine. Requiring a project to see
198
+ * it is part of why nobody saw it.
199
+ *
200
+ * yf instance list what is running, since when, how much memory
201
+ * yf instance stop <pid> stop one, with its process tree
202
+ * yf instance stop --old stop the ones from a previous session
203
+ */
204
+ export function registerInstanceCommand(program) {
205
+ const root = program
206
+ .command('instance')
207
+ .description('Procesos de Forge vivos en esta maquina (paneles, yf start): verlos y pararlos.');
208
+ root
209
+ .command('list', { isDefault: true })
210
+ .description('Las instancias vivas de esta maquina, y las que murieron sin cerrar.')
211
+ .option('--json', 'emit JSON')
212
+ .action(async (opts) => {
213
+ try {
214
+ const { instanceReport } = await import('../chat/instances.js');
215
+ const rep = await instanceReport({ with_vsz: true });
216
+ if (opts.json) {
217
+ process.stdout.write(JSON.stringify(rep, null, 2) + '\n');
218
+ return;
219
+ }
220
+ if (!rep.alive.length && !rep.dead.length) {
221
+ header('Instancias de Forge en esta maquina');
222
+ process.stdout.write(' ' + c.dim('ninguna') + '\n');
223
+ return;
224
+ }
225
+ await writeInstancesSection();
226
+ }
227
+ catch (err) {
228
+ fail(err);
229
+ }
230
+ });
231
+ root
232
+ .command('stop [pid]')
233
+ .description('Para una instancia y su arbol de procesos (o las de sesiones anteriores con --old).')
234
+ .option('--old', 'parar las que vienen de una sesion anterior')
235
+ .option('--json', 'emit JSON')
236
+ .action(async (pid, opts) => {
237
+ try {
238
+ const { instanceReport, stopInstance } = await import('../chat/instances.js');
239
+ const rep = await instanceReport();
240
+ /* `--old` never includes this process, and never includes an
241
+ * instance started after it: stopping the session you are typing
242
+ * into is not what anybody means by cleaning up orphans. */
243
+ const targets = opts.old
244
+ ? rep.alive.filter((i) => i.pid !== process.pid && i.from_previous_session).map((i) => i.pid)
245
+ : (pid ? [Number(pid)] : []);
246
+ if (!targets.length) {
247
+ process.stdout.write(opts.old ? ' ninguna instancia de una sesion anterior\n' : c.error('falta el pid (o usa --old)') + '\n');
248
+ if (!opts.old)
249
+ process.exitCode = 1;
250
+ return;
251
+ }
252
+ const out = [];
253
+ for (const t of targets)
254
+ out.push({ pid: t, ...(await stopInstance(t)) });
255
+ if (opts.json) {
256
+ process.stdout.write(JSON.stringify(out, null, 2) + '\n');
257
+ return;
258
+ }
259
+ for (const r of out) {
260
+ process.stdout.write(' ' + (r.stopped ? c.success('parada ') : c.error('no parada ')) + 'PID ' + r.pid
261
+ + (r.reason ? ' ' + c.dim(r.reason) : '') + '\n');
262
+ }
263
+ if (out.some((r) => !r.stopped))
264
+ process.exitCode = 1;
265
+ }
266
+ catch (err) {
267
+ fail(err);
268
+ }
269
+ });
270
+ }
137
271
  //# sourceMappingURL=task.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/commands/task.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/commands/task.ts"],"names":[],"mappings":"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"}
@@ -10,5 +10,20 @@
10
10
  import type { Command } from 'commander';
11
11
  import { detectInstallKind } from '../core/self_update.js';
12
12
  export declare function registerUpgradeCommand(program: Command): void;
13
+ /** Forge instances running from the same package directory this `yf` came
14
+ * from. That is the right test: an upgrade replaces THIS module, so a panel
15
+ * started from a different checkout is none of its business, and one
16
+ * started from the same place is exactly what is about to break. */
17
+ export declare function liveGlobalInstances(): Promise<Array<{
18
+ pid: number;
19
+ root: string;
20
+ kind: string;
21
+ age_minutes: number;
22
+ }>>;
23
+ export declare function renderUpgradeBlocked(blockers: Array<{
24
+ pid: number;
25
+ root: string;
26
+ kind: string;
27
+ }>): string;
13
28
  export { detectInstallKind };
14
29
  //# sourceMappingURL=upgrade.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EACwB,iBAAiB,EAC/C,MAAM,wBAAwB,CAAC;AAGhC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2C7D;AAcD,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EACwB,iBAAiB,EAC/C,MAAM,wBAAwB,CAAC;AAGhC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiE7D;AAED;;;qEAGqE;AACrE,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAc5H;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,MAAM,CAmBzG;AAcD,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -34,6 +34,27 @@ export function registerUpgradeCommand(program) {
34
34
  process.stdout.write('\n-> ' + plan.releaseUrl + '\n');
35
35
  return;
36
36
  }
37
+ /* PND-160: REFUSE, do not warn-and-proceed.
38
+ *
39
+ * A live panel keeps better_sqlite3.node mapped, and on Windows a
40
+ * mapped file cannot be replaced. npm deletes the old module, fails to
41
+ * write the new native binary, and aborts -- leaving the global package
42
+ * as a bare node_modules with no dist and no binaries. `yf` stops
43
+ * existing. That happened on 2026-10-21 publishing 1.19.5, and on the
44
+ * OSDE VM on 2026-10-04 where it reached 16889 silent systemd retries.
45
+ *
46
+ * And the damage is not only to the module: Forge loads most of itself
47
+ * with lazy dynamic import(), so a live panel whose files were deleted
48
+ * hits ERR_MODULE_NOT_FOUND on the next verb, mid-turn, in the user's
49
+ * working session. That is why this is a refusal and not a notice: the
50
+ * thing at risk is the owner's work, and a notice they scroll past
51
+ * costs them the session. */
52
+ const blockers = await liveGlobalInstances();
53
+ if (blockers.length) {
54
+ process.stdout.write('\n' + renderUpgradeBlocked(blockers));
55
+ process.exitCode = 1;
56
+ return;
57
+ }
37
58
  process.stdout.write('\nEjecutando: ' + plan.command + '\n');
38
59
  const code = await runShell(plan.command);
39
60
  if (code === 0) {
@@ -46,6 +67,48 @@ export function registerUpgradeCommand(program) {
46
67
  }
47
68
  });
48
69
  }
70
+ /** Forge instances running from the same package directory this `yf` came
71
+ * from. That is the right test: an upgrade replaces THIS module, so a panel
72
+ * started from a different checkout is none of its business, and one
73
+ * started from the same place is exactly what is about to break. */
74
+ export async function liveGlobalInstances() {
75
+ try {
76
+ const { instanceReport } = await import('../chat/instances.js');
77
+ const { selfModuleDir } = await import('../chat/instance_lock.js');
78
+ const { instancesFromGlobal } = await import('../chat/instances.js');
79
+ const rep = await instanceReport();
80
+ const mine = selfModuleDir();
81
+ if (!mine)
82
+ return [];
83
+ return instancesFromGlobal(rep.alive, mine).map((i) => ({ pid: i.pid, root: i.root, kind: i.kind, age_minutes: i.age_minutes }));
84
+ }
85
+ catch {
86
+ /* Cannot tell -> do not block. A precheck that fails closed on its own
87
+ * bug would leave the owner unable to upgrade at all. */
88
+ return [];
89
+ }
90
+ }
91
+ export function renderUpgradeBlocked(blockers) {
92
+ const lines = [
93
+ 'NO actualizo: hay ' + blockers.length + ' proceso(s) de Forge corriendo desde el mismo modulo.',
94
+ '',
95
+ 'Si siguiera, npm borraria los archivos que esos procesos estan usando. En Windows',
96
+ 'el binario nativo de sqlite no se puede reemplazar mientras este mapeado, asi que la',
97
+ 'instalacion abortaria a medias y `yf` dejaria de existir -- y la sesion que tengas',
98
+ 'abierta se romperia en medio de un turno.',
99
+ '',
100
+ ];
101
+ for (const b of blockers)
102
+ lines.push(' - PID ' + b.pid + ' [' + b.kind + '] ' + b.root);
103
+ lines.push('');
104
+ lines.push('Cerra esas sesiones y volve a intentar. Si no las encontras:');
105
+ lines.push(' yf instance list ver que hay vivo');
106
+ lines.push(' yf instance stop <pid> parar una');
107
+ lines.push('');
108
+ lines.push('Si la instalacion ya quedo a medias, el procedimiento de recuperacion esta en');
109
+ lines.push('docs/RUNBOOK_UPGRADE_GLOBAL.md.');
110
+ return lines.join('\n') + '\n';
111
+ }
49
112
  function runShell(command) {
50
113
  return new Promise((resolve) => {
51
114
  const isWin = process.platform === 'win32';
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"urazuke.d.ts","sourceRoot":"","sources":["../../src/commands/urazuke.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgd7D"}
1
+ {"version":3,"file":"urazuke.d.ts","sourceRoot":"","sources":["../../src/commands/urazuke.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0gB7D"}
@@ -213,6 +213,71 @@ export function registerUrazukeCommand(program) {
213
213
  fail(err);
214
214
  }
215
215
  });
216
+ /* PND-165, Piezas 2 y 3. Dos comandos para una sola pregunta: con que
217
+ * version del metodo se esta midiendo este proyecto, y esta congelada. */
218
+ const gt = root
219
+ .command('gates')
220
+ .description('La definicion de compuertas EN VIGOR para el proyecto: la copia congelada del proyecto > el catalogo compilado de este Forge (el portal nunca, salvo doble candado).');
221
+ gt
222
+ .command('show', { isDefault: true })
223
+ .description('Que definicion rige, de donde salio, su version y su huella recalculada; y que evaluadores declara que esta instalacion no sabe medir.')
224
+ .option('--project <slug>', 'override active project')
225
+ .option('--json', 'emit JSON')
226
+ .action(async (opts) => {
227
+ try {
228
+ const { root: projectRoot } = await resolveSlugRoot(opts);
229
+ const { resolveGates, renderGatesSource, GATES_FROZEN_REL } = await import('../urazuke/gates_data.js');
230
+ const { implementsEvaluator, KNOWN_EVALUATORS } = await import('../urazuke/gate.js');
231
+ const g = await resolveGates(projectRoot);
232
+ const unmeasurable = g.declared_evaluators.filter((n) => !implementsEvaluator(n));
233
+ if (opts.json) {
234
+ process.stdout.write(JSON.stringify({ ...g, implemented: KNOWN_EVALUATORS, unmeasurable }, null, 2) + '\n');
235
+ return;
236
+ }
237
+ header('Compuertas en vigor -- ' + renderGatesSource(g));
238
+ process.stdout.write(' fuente: ' + (g.source === 'project'
239
+ ? c.success('la copia congelada del proyecto') + ' (' + GATES_FROZEN_REL + ')'
240
+ : c.warn('el catalogo compilado de este Forge') + ' -- el proyecto NO tiene version congelada: corre `yf urazuke freeze`') + '\n');
241
+ process.stdout.write(' evaluadores declarados: ' + g.declared_evaluators.length
242
+ + ' | implementados por esta instalacion: ' + KNOWN_EVALUATORS.length + '\n');
243
+ if (unmeasurable.length) {
244
+ /* La clausula de compatibilidad del metodo, dicha donde se ve: no
245
+ * verde, no aproximado, y nombrado. */
246
+ process.stdout.write(' ' + c.warn('declarados y NO medibles por esta instalacion: ') + unmeasurable.join(', ')
247
+ + '\n un peldano que los exija se reporta como "declarado, no medido por esta instalacion":'
248
+ + '\n nunca verde, y nunca aproximado con el evaluador mas parecido.\n');
249
+ }
250
+ for (const n of g.notices)
251
+ process.stdout.write(' ' + c.error('aviso: ') + n + '\n');
252
+ }
253
+ catch (err) {
254
+ fail(err);
255
+ }
256
+ });
257
+ root
258
+ .command('freeze')
259
+ .description('Congela en el proyecto la version del metodo que lee HOY (compuertas + prompts). Idempotente: no pisa una copia ya congelada -- eso es el doble candado.')
260
+ .option('--project <slug>', 'override active project')
261
+ .option('--json', 'emit JSON')
262
+ .action(async (opts) => {
263
+ try {
264
+ const { root: projectRoot } = await resolveSlugRoot(opts);
265
+ const { freezeProjectVersion, renderFreeze } = await import('../urazuke/freeze.js');
266
+ const r = await freezeProjectVersion(projectRoot);
267
+ if (opts.json) {
268
+ process.stdout.write(JSON.stringify(r, null, 2) + '\n');
269
+ return;
270
+ }
271
+ header('Congelar la version del metodo -- ' + renderFreeze(r));
272
+ for (const n of r.notes)
273
+ process.stdout.write(' - ' + n + '\n');
274
+ if (r.gates === 'failed' || r.prompts === 'failed')
275
+ process.exitCode = 1;
276
+ }
277
+ catch (err) {
278
+ fail(err);
279
+ }
280
+ });
216
281
  const pr = root
217
282
  .command('prompts')
218
283
  .description('Los prompts efectivos del proyecto: overrides > API publicada (yujin.app/urazuke/api/prompts.json) > copia vendoreada.');
@@ -569,7 +634,9 @@ export function registerUrazukeCommand(program) {
569
634
  const s = summarizeReceipts(items);
570
635
  header('Recibos de evidencia -- ' + slug + (opts.pending ? ' -- ' + opts.pending : ''));
571
636
  process.stdout.write(' ' + items.length + ' recibos: ' + s.red_proofs + ' rojo probado (' + s.strong_red_proofs + ' fuerte), ' + s.greens + ' verde, ' + s.regressions + ' regresion, ' + s.e2e + ' e2e, ' + s.quality + ' calidad, ' + s.mutation + ' mutacion'
572
- + (s.false_reds ? c.error(', ' + s.false_reds + ' FALSO ROJO (exit 0 en un red_proof)') : '') + '\n\n');
637
+ + (s.false_reds ? c.error(', ' + s.false_reds + ' FALSO ROJO (exit 0 en un red_proof)') : '')
638
+ + (s.empty_runs ? c.error(', ' + s.empty_runs + ' CORRIDA VACIA (exit 0 sobre CERO tests: no es evidencia)') : '')
639
+ + (s.exit_only ? c.warn(', ' + s.exit_only + ' solo por exit code (sin cuenta de tests)') : '') + '\n\n');
573
640
  for (const r of shown)
574
641
  process.stdout.write(renderReceipt(r) + '\n\n');
575
642
  }