@encore-os/eos-spec 0.8.0 → 0.10.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 (112) hide show
  1. package/dist/commands/archive.js +1 -1
  2. package/dist/commands/archive.js.map +1 -1
  3. package/dist/commands/close-out.d.ts +2 -0
  4. package/dist/commands/close-out.js +167 -0
  5. package/dist/commands/close-out.js.map +1 -0
  6. package/dist/commands/complete.js +81 -4
  7. package/dist/commands/complete.js.map +1 -1
  8. package/dist/commands/conformance.js +20 -1
  9. package/dist/commands/conformance.js.map +1 -1
  10. package/dist/commands/create.js +6 -6
  11. package/dist/commands/create.js.map +1 -1
  12. package/dist/commands/funnel.js +7 -0
  13. package/dist/commands/funnel.js.map +1 -1
  14. package/dist/commands/metrics.js +15 -0
  15. package/dist/commands/metrics.js.map +1 -1
  16. package/dist/commands/next.d.ts +10 -4
  17. package/dist/commands/next.js +23 -12
  18. package/dist/commands/next.js.map +1 -1
  19. package/dist/commands/proceed.d.ts +48 -0
  20. package/dist/commands/proceed.js +144 -0
  21. package/dist/commands/proceed.js.map +1 -0
  22. package/dist/commands/reconcile.js +7 -1
  23. package/dist/commands/reconcile.js.map +1 -1
  24. package/dist/commands/run.d.ts +13 -0
  25. package/dist/commands/run.js +238 -0
  26. package/dist/commands/run.js.map +1 -0
  27. package/dist/commands/scorecard.d.ts +24 -0
  28. package/dist/commands/scorecard.js +49 -3
  29. package/dist/commands/scorecard.js.map +1 -1
  30. package/dist/commands/signoff.js +3 -2
  31. package/dist/commands/signoff.js.map +1 -1
  32. package/dist/commands/status.js +7 -1
  33. package/dist/commands/status.js.map +1 -1
  34. package/dist/commands/tasks.d.ts +7 -0
  35. package/dist/commands/tasks.js +13 -1
  36. package/dist/commands/tasks.js.map +1 -1
  37. package/dist/commands/validate.d.ts +7 -0
  38. package/dist/commands/validate.js +46 -7
  39. package/dist/commands/validate.js.map +1 -1
  40. package/dist/index.js +19 -0
  41. package/dist/index.js.map +1 -1
  42. package/dist/lib/ai-call.d.ts +12 -0
  43. package/dist/lib/ai-call.js +6 -0
  44. package/dist/lib/ai-call.js.map +1 -1
  45. package/dist/lib/closeout-core.d.ts +46 -0
  46. package/dist/lib/closeout-core.js +34 -0
  47. package/dist/lib/closeout-core.js.map +1 -0
  48. package/dist/lib/closeout-predicate.d.ts +36 -0
  49. package/dist/lib/closeout-predicate.js +130 -0
  50. package/dist/lib/closeout-predicate.js.map +1 -0
  51. package/dist/lib/config.d.ts +10 -0
  52. package/dist/lib/config.js.map +1 -1
  53. package/dist/lib/cost.js +7 -0
  54. package/dist/lib/cost.js.map +1 -1
  55. package/dist/lib/coverage-gate.d.ts +43 -0
  56. package/dist/lib/coverage-gate.js +54 -0
  57. package/dist/lib/coverage-gate.js.map +1 -0
  58. package/dist/lib/events.d.ts +12 -0
  59. package/dist/lib/events.js +8 -1
  60. package/dist/lib/events.js.map +1 -1
  61. package/dist/lib/frontmatter.d.ts +23 -1
  62. package/dist/lib/frontmatter.js +37 -0
  63. package/dist/lib/frontmatter.js.map +1 -1
  64. package/dist/lib/funnel.d.ts +5 -0
  65. package/dist/lib/funnel.js +2 -1
  66. package/dist/lib/funnel.js.map +1 -1
  67. package/dist/lib/gate-executor.d.ts +80 -0
  68. package/dist/lib/gate-executor.js +311 -0
  69. package/dist/lib/gate-executor.js.map +1 -0
  70. package/dist/lib/llm-health.d.ts +28 -0
  71. package/dist/lib/llm-health.js +46 -0
  72. package/dist/lib/llm-health.js.map +1 -0
  73. package/dist/lib/metrics.d.ts +26 -0
  74. package/dist/lib/metrics.js +35 -0
  75. package/dist/lib/metrics.js.map +1 -1
  76. package/dist/lib/next-action.d.ts +10 -4
  77. package/dist/lib/next-action.js +10 -4
  78. package/dist/lib/next-action.js.map +1 -1
  79. package/dist/lib/ollama-embed.d.ts +5 -0
  80. package/dist/lib/ollama-embed.js +5 -0
  81. package/dist/lib/ollama-embed.js.map +1 -1
  82. package/dist/lib/output.d.ts +3 -0
  83. package/dist/lib/output.js +3 -0
  84. package/dist/lib/output.js.map +1 -1
  85. package/dist/lib/pipeline-config.js +10 -0
  86. package/dist/lib/pipeline-config.js.map +1 -1
  87. package/dist/lib/pipeline-map.d.ts +24 -0
  88. package/dist/lib/pipeline-map.js +54 -5
  89. package/dist/lib/pipeline-map.js.map +1 -1
  90. package/dist/lib/predicate-registry.js +7 -0
  91. package/dist/lib/predicate-registry.js.map +1 -1
  92. package/dist/lib/reconcile-core.d.ts +20 -3
  93. package/dist/lib/reconcile-core.js +16 -6
  94. package/dist/lib/reconcile-core.js.map +1 -1
  95. package/dist/lib/run-pipeline.d.ts +118 -0
  96. package/dist/lib/run-pipeline.js +106 -0
  97. package/dist/lib/run-pipeline.js.map +1 -0
  98. package/dist/lib/scorecard.d.ts +5 -0
  99. package/dist/lib/scorecard.js +1 -0
  100. package/dist/lib/scorecard.js.map +1 -1
  101. package/dist/lib/spec-pure.d.ts +69 -4
  102. package/dist/lib/spec-pure.js +129 -15
  103. package/dist/lib/spec-pure.js.map +1 -1
  104. package/dist/lib/specs.d.ts +9 -3
  105. package/dist/lib/specs.js +43 -20
  106. package/dist/lib/specs.js.map +1 -1
  107. package/dist/lib/version.d.ts +1 -1
  108. package/dist/lib/version.js +1 -1
  109. package/dist/lib/version.js.map +1 -1
  110. package/dist/lib/with-event-log.js +17 -3
  111. package/dist/lib/with-event-log.js.map +1 -1
  112. package/package.json +1 -1
@@ -1,4 +1,17 @@
1
1
  import { logEvent, RUN_ID, redactArgs } from './events.js';
2
+ import { getGlobalOptions } from './output.js';
3
+ /** Resolve the caller's `--repo-root` global override from the commander command so
4
+ * telemetry lands in the intended repo, not whatever git repo the invoking cwd is in
5
+ * (F-3). Never throws — a fake/absent command (tests, non-commander callers) falls
6
+ * back to undefined, which lets logEvent use its git-rev-parse default path. */
7
+ function repoRootFromCmd(cmd) {
8
+ try {
9
+ return getGlobalOptions(cmd).repoRoot;
10
+ }
11
+ catch {
12
+ return undefined;
13
+ }
14
+ }
2
15
  /** Wrap a commander action with event logging — records ms, ok, and (re-)throws on error.
3
16
  * The wrapped action sees the same (options, cmd) signature.
4
17
  *
@@ -18,6 +31,7 @@ export function withEventLog(commandName, action) {
18
31
  return async (...args) => {
19
32
  const cmd = args[args.length - 1];
20
33
  const options = (args.length >= 2 ? args[args.length - 2] : {});
34
+ const repoRoot = repoRootFromCmd(cmd);
21
35
  const start = Date.now();
22
36
  const ts = new Date().toISOString();
23
37
  const base = {
@@ -35,7 +49,7 @@ export function withEventLog(commandName, action) {
35
49
  if (logged)
36
50
  return;
37
51
  logged = true;
38
- logEvent({ ...base, ms: Date.now() - start, ok: code === 0 });
52
+ logEvent({ ...base, ms: Date.now() - start, ok: code === 0 }, { repoRoot });
39
53
  };
40
54
  process.once('exit', onExit);
41
55
  try {
@@ -44,7 +58,7 @@ export function withEventLog(commandName, action) {
44
58
  process.removeListener('exit', onExit);
45
59
  if (!logged) {
46
60
  logged = true;
47
- logEvent({ ...base, ms: Date.now() - start, ok: true });
61
+ logEvent({ ...base, ms: Date.now() - start, ok: true }, { repoRoot });
48
62
  }
49
63
  }
50
64
  catch (e) {
@@ -56,7 +70,7 @@ export function withEventLog(commandName, action) {
56
70
  ms: Date.now() - start,
57
71
  ok: false,
58
72
  error: e instanceof Error ? e.message : String(e),
59
- });
73
+ }, { repoRoot });
60
74
  }
61
75
  throw e;
62
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"with-event-log.js","sourceRoot":"","sources":["../../src/lib/with-event-log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAI3D;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAAoC,WAAmB,EAAE,MAAiB;IACpG,8EAA8E;IAC9E,gFAAgF;IAChF,gFAAgF;IAChF,+EAA+E;IAC/E,iFAAiF;IACjF,6BAA6B;IAC7B,OAAO,KAAK,EAAE,GAAG,IAAe,EAAiB,EAAE;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAM,CAAC;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG;YACX,EAAE;YACF,OAAO,EAAE,WAAW;YACpB,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC;YACzB,MAAM,EAAE,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YACnE,IAAI,EAAE,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;SAClE,CAAC;QAEF,8EAA8E;QAC9E,6EAA6E;QAC7E,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE;YAC9B,IAAI,MAAM;gBAAE,OAAO;YACnB,MAAM,GAAG,IAAI,CAAC;YACd,QAAQ,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;QAChE,CAAC,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAE7B,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC3B,kEAAkE;YAClE,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACvC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,GAAG,IAAI,CAAC;gBACd,QAAQ,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACvC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,GAAG,IAAI,CAAC;gBACd,QAAQ,CAAC;oBACP,GAAG,IAAI;oBACP,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;oBACtB,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;iBAClD,CAAC,CAAC;YACL,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"with-event-log.js","sourceRoot":"","sources":["../../src/lib/with-event-log.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@encore-os/eos-spec",
3
- "version": "0.8.0",
3
+ "version": "0.10.0",
4
4
  "description": "Portable, config-driven spec-pipeline engine + quality harness. One canonical engine consumed as a library (with a client-safe /pure subpath) by every Encore-OS repo.",
5
5
  "private": false,
6
6
  "license": "SEE LICENSE IN LICENSE",