omp-fabric 1.8.2 → 1.9.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 (38) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/chunks/{chunk-2ZEMWIHZ.js → chunk-4GY2E3MW.js} +2 -2
  3. package/dist/chunks/{chunk-EQSL47QL.js → chunk-FBFVZZH4.js} +1 -1
  4. package/dist/chunks/{chunk-EQSL47QL.js.map → chunk-FBFVZZH4.js.map} +2 -2
  5. package/dist/chunks/{chunk-BAM2YKP5.js → chunk-FZB2VE57.js} +3 -3
  6. package/dist/chunks/{chunk-46LYJKI5.js → chunk-QZNSIHX7.js} +3 -3
  7. package/dist/chunks/{chunk-JMYHQUJQ.js → chunk-R3EKDHHD.js} +2 -2
  8. package/dist/chunks/{chunk-4GVGY35I.js → chunk-Z7HQ6FYW.js} +3 -1
  9. package/dist/chunks/chunk-Z7HQ6FYW.js.map +7 -0
  10. package/dist/compaction/hook.js +1 -1
  11. package/dist/compaction/lcm-maintenance.d.ts +2 -0
  12. package/dist/compaction/lcm-maintenance.d.ts.map +1 -1
  13. package/dist/compaction/lcm-runtime.d.ts +1 -0
  14. package/dist/compaction/lcm-runtime.d.ts.map +1 -1
  15. package/dist/compaction/lcm-runtime.js +4 -1
  16. package/dist/compaction/lcm-runtime.js.map +2 -2
  17. package/dist/compaction/projections.d.ts +0 -5
  18. package/dist/compaction/projections.d.ts.map +1 -1
  19. package/dist/config.d.ts +1 -0
  20. package/dist/config.d.ts.map +1 -1
  21. package/dist/fabric-runtime-state.js +5 -5
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +6 -5
  24. package/dist/index.js.map +2 -2
  25. package/dist/residency/host.js +5 -5
  26. package/dist/residency/omp-entry.js +5 -5
  27. package/dist/ui/settings.d.ts.map +1 -1
  28. package/dist/ui/settings.js +122 -1
  29. package/dist/ui/settings.js.map +2 -2
  30. package/docs/compaction.md +3 -2
  31. package/package.json +1 -1
  32. package/dist/chunks/chunk-4GVGY35I.js.map +0 -7
  33. package/dist/compaction/qa.d.ts +0 -27
  34. package/dist/compaction/qa.d.ts.map +0 -1
  35. /package/dist/chunks/{chunk-2ZEMWIHZ.js.map → chunk-4GY2E3MW.js.map} +0 -0
  36. /package/dist/chunks/{chunk-BAM2YKP5.js.map → chunk-FZB2VE57.js.map} +0 -0
  37. /package/dist/chunks/{chunk-46LYJKI5.js.map → chunk-QZNSIHX7.js.map} +0 -0
  38. /package/dist/chunks/{chunk-JMYHQUJQ.js.map → chunk-R3EKDHHD.js.map} +0 -0
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runResidentHostFromConfigPath
4
- } from "../chunks/chunk-46LYJKI5.js";
5
- import "../chunks/chunk-BAM2YKP5.js";
4
+ } from "../chunks/chunk-QZNSIHX7.js";
5
+ import "../chunks/chunk-FZB2VE57.js";
6
6
  import "../chunks/chunk-VPPIJRNZ.js";
7
7
  import "../chunks/chunk-JZWLICMS.js";
8
8
  import "../chunks/chunk-CT2AJ2UI.js";
9
- import "../chunks/chunk-JMYHQUJQ.js";
10
- import "../chunks/chunk-4GVGY35I.js";
9
+ import "../chunks/chunk-R3EKDHHD.js";
10
+ import "../chunks/chunk-Z7HQ6FYW.js";
11
11
  import "../chunks/chunk-3LI7YO4M.js";
12
12
  import "../chunks/chunk-JSBTB3P6.js";
13
13
  import "../chunks/chunk-ZDWBTQB6.js";
@@ -16,7 +16,7 @@ import "../chunks/chunk-77FQHHZD.js";
16
16
  import "../chunks/chunk-7363CD5A.js";
17
17
  import "../chunks/chunk-ED3BRM6P.js";
18
18
  import "../chunks/chunk-KAD7UWT2.js";
19
- import "../chunks/chunk-EQSL47QL.js";
19
+ import "../chunks/chunk-FBFVZZH4.js";
20
20
  import "../chunks/chunk-3J7BKUNG.js";
21
21
  import "../chunks/chunk-3XPR2AZL.js";
22
22
  import "../chunks/chunk-4HQDSTHN.js";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  runResidentHostFromConfigPath
3
- } from "../chunks/chunk-46LYJKI5.js";
4
- import "../chunks/chunk-BAM2YKP5.js";
3
+ } from "../chunks/chunk-QZNSIHX7.js";
4
+ import "../chunks/chunk-FZB2VE57.js";
5
5
  import "../chunks/chunk-VPPIJRNZ.js";
6
6
  import "../chunks/chunk-JZWLICMS.js";
7
7
  import "../chunks/chunk-CT2AJ2UI.js";
8
- import "../chunks/chunk-JMYHQUJQ.js";
9
- import "../chunks/chunk-4GVGY35I.js";
8
+ import "../chunks/chunk-R3EKDHHD.js";
9
+ import "../chunks/chunk-Z7HQ6FYW.js";
10
10
  import "../chunks/chunk-3LI7YO4M.js";
11
11
  import "../chunks/chunk-JSBTB3P6.js";
12
12
  import "../chunks/chunk-ZDWBTQB6.js";
@@ -15,7 +15,7 @@ import "../chunks/chunk-77FQHHZD.js";
15
15
  import "../chunks/chunk-7363CD5A.js";
16
16
  import "../chunks/chunk-ED3BRM6P.js";
17
17
  import "../chunks/chunk-KAD7UWT2.js";
18
- import "../chunks/chunk-EQSL47QL.js";
18
+ import "../chunks/chunk-FBFVZZH4.js";
19
19
  import "../chunks/chunk-3J7BKUNG.js";
20
20
  import "../chunks/chunk-3XPR2AZL.js";
21
21
  import "../chunks/chunk-4HQDSTHN.js";
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/ui/settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/ui/settings.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,7 @@ import {
25
25
  maxExecutorMemoryLimitBytes,
26
26
  resolveAgentDir,
27
27
  saveFabricConfig
28
- } from "../chunks/chunk-4GVGY35I.js";
28
+ } from "../chunks/chunk-Z7HQ6FYW.js";
29
29
  import {
30
30
  THINKING_LEVELS,
31
31
  thinkingLabel
@@ -291,6 +291,9 @@ var setting = (id, label, currentValue, rest = {}) => {
291
291
  if (rest.submenu !== void 0) item.submenu = rest.submenu;
292
292
  return item;
293
293
  };
294
+ var formatSeconds = (value) => `${value}s`;
295
+ var formatChars = (value) => value >= 1e3 ? `${Math.round(value / 1e3)}k` : String(value);
296
+ var formatLimit = (value) => value === 0 ? "no limit" : String(value);
294
297
  var numericSubmenu = (theme, values, format, title, description) => (currentValue, done) => {
295
298
  const options = numericOptions(values, format, currentValue);
296
299
  const selectedValue = options.find((option) => option.value === currentValue || option.label === currentValue)?.value ?? currentValue;
@@ -1464,6 +1467,124 @@ var buildFabricSettingsItems = (theme, config, apply, options) => {
1464
1467
  })
1465
1468
  }
1466
1469
  ),
1470
+ setting("compaction.lcmModelSummaries", "Model summaries", String(config.compaction.lcmModelSummaries), {
1471
+ description: "Summarize with the model. Turn this off to write deterministic excerpts only, which spends nothing and loses summary quality.",
1472
+ values: BOOLEANS
1473
+ }),
1474
+ setting(
1475
+ "compaction.lcmModelTimeoutSeconds",
1476
+ "Model timeout",
1477
+ formatSeconds(config.compaction.lcmModelTimeoutSeconds),
1478
+ {
1479
+ description: "Deadline for one summary call. A call that overruns it is abandoned and its node keeps a deterministic excerpt until a later pass upgrades it.",
1480
+ submenu: numericSubmenu(
1481
+ theme,
1482
+ [30, 60, 120, 300, 600, 900],
1483
+ formatSeconds,
1484
+ "Model timeout",
1485
+ "Deadline for one summary call."
1486
+ )
1487
+ }
1488
+ ),
1489
+ setting(
1490
+ "compaction.lcmMaintenancePasses",
1491
+ "Maintenance passes",
1492
+ String(config.compaction.lcmMaintenancePasses),
1493
+ {
1494
+ description: "Leaf and condensation passes one maintenance run may make. More passes cover a fast-moving session sooner and spend more.",
1495
+ submenu: numericSubmenu(theme, [1, 2, 4, 8, 16, 32, 64], String, "Maintenance passes", "Passes per maintenance run.")
1496
+ }
1497
+ ),
1498
+ setting(
1499
+ "compaction.lcmMaxLeafEntries",
1500
+ "Leaf entries",
1501
+ String(config.compaction.lcmMaxLeafEntries),
1502
+ {
1503
+ description: "Upper bound on raw entries folded into one leaf. The prompt budget below stops a leaf short when its entries are large.",
1504
+ submenu: numericSubmenu(theme, [8, 16, 32, 64, 128], String, "Leaf entries", "Entries per leaf.")
1505
+ }
1506
+ ),
1507
+ setting(
1508
+ "compaction.lcmMaxCondenseChildren",
1509
+ "Condense fan-in",
1510
+ String(config.compaction.lcmMaxCondenseChildren),
1511
+ {
1512
+ description: "Ready nodes folded into one condensed parent.",
1513
+ submenu: numericSubmenu(theme, [2, 4, 8, 16, 32], String, "Condense fan-in", "Children per condensed node.")
1514
+ }
1515
+ ),
1516
+ setting(
1517
+ "compaction.lcmMaxInputChars",
1518
+ "Prompt budget",
1519
+ formatChars(config.compaction.lcmMaxInputChars),
1520
+ {
1521
+ description: "Characters of evidence one summary prompt may carry.",
1522
+ submenu: numericSubmenu(
1523
+ theme,
1524
+ [48e3, 1e5, 2e5, 4e5, 8e5],
1525
+ formatChars,
1526
+ "Prompt budget",
1527
+ "Characters per summary prompt."
1528
+ )
1529
+ }
1530
+ ),
1531
+ setting(
1532
+ "compaction.lcmMaxOutputTokens",
1533
+ "Summary tokens",
1534
+ String(config.compaction.lcmMaxOutputTokens),
1535
+ {
1536
+ description: "Output tokens one summary call may produce.",
1537
+ submenu: numericSubmenu(theme, [1024, 2048, 4096, 8192, 16384], String, "Summary tokens", "Output tokens per summary.")
1538
+ }
1539
+ ),
1540
+ setting(
1541
+ "compaction.lcmMaxOutputChars",
1542
+ "Summary characters",
1543
+ formatChars(config.compaction.lcmMaxOutputChars),
1544
+ {
1545
+ description: "Stored length of one summary, which also bounds a deterministic excerpt.",
1546
+ submenu: numericSubmenu(
1547
+ theme,
1548
+ [4096, 8192, 16384, 32768, 65536],
1549
+ formatChars,
1550
+ "Summary characters",
1551
+ "Stored characters per summary."
1552
+ )
1553
+ }
1554
+ ),
1555
+ setting(
1556
+ "compaction.lcmMaxDailyModelCalls",
1557
+ "Daily call limit",
1558
+ formatLimit(config.compaction.lcmMaxDailyModelCalls),
1559
+ {
1560
+ description: "Summary calls this project may make per day. No limit unless you set one.",
1561
+ submenu: numericSubmenu(theme, [0, 64, 256, 512, 2048], formatLimit, "Daily call limit", "Summary calls per project per day.")
1562
+ }
1563
+ ),
1564
+ setting(
1565
+ "compaction.lcmMaxSessionModelCalls",
1566
+ "Session call limit",
1567
+ formatLimit(config.compaction.lcmMaxSessionModelCalls),
1568
+ {
1569
+ description: "Summary calls one session may make per day. No limit unless you set one.",
1570
+ submenu: numericSubmenu(theme, [0, 32, 128, 256, 1024], formatLimit, "Session call limit", "Summary calls per session per day.")
1571
+ }
1572
+ ),
1573
+ setting(
1574
+ "compaction.lcmMaxDailyModelSeconds",
1575
+ "Daily model seconds",
1576
+ formatLimit(config.compaction.lcmMaxDailyModelSeconds),
1577
+ {
1578
+ description: "Model wall time this project may spend per day. No limit unless you set one.",
1579
+ submenu: numericSubmenu(
1580
+ theme,
1581
+ [0, 900, 3600, 7200, 86400],
1582
+ formatLimit,
1583
+ "Daily model seconds",
1584
+ "Model wall time per project per day."
1585
+ )
1586
+ }
1587
+ ),
1467
1588
  setting(
1468
1589
  "compaction.targetContextRatio",
1469
1590
  "Max occupancy",