polymath-society 0.2.19 → 0.2.21

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 (40) hide show
  1. package/dist/cli.js +24620 -22073
  2. package/dist/engine/chat-loops.js +8 -1
  3. package/dist/engine/exp-allfacets.js +8 -1
  4. package/dist/engine/exp-person.js +8 -1
  5. package/dist/engine/exp-pipeline.js +8 -1
  6. package/dist/engine/ingest-export.js +7 -6
  7. package/dist/engine/peak-demos.js +8 -1
  8. package/dist/engine/person-dimension-summary.js +8 -1
  9. package/dist/engine/person-facet-lines.js +8 -1
  10. package/dist/engine/person-headline.js +8 -1
  11. package/dist/engine/person-report.js +8 -1
  12. package/dist/engine/person-self-image.js +8 -1
  13. package/dist/engine/public-report.js +15 -7
  14. package/dist/engine/run-analysis.js +8 -1
  15. package/dist/engine/run-tagger.js +8 -1
  16. package/dist/index.js +19600 -17706
  17. package/dist/pipeline/FOCUS-EXAMPLES.md +127 -0
  18. package/dist/pipeline/FOCUS-RUBRIC.md +418 -0
  19. package/dist/pipeline/coding-agglomerate.js +947 -79
  20. package/dist/pipeline/coding-aggregate.js +443 -23
  21. package/dist/pipeline/coding-build.js +569 -97
  22. package/dist/pipeline/coding-coaching.js +651 -101
  23. package/dist/pipeline/coding-day-digest.js +417 -36
  24. package/dist/pipeline/coding-delegation.js +564 -68
  25. package/dist/pipeline/coding-expertise.js +477 -59
  26. package/dist/pipeline/coding-flow.js +424 -15
  27. package/dist/pipeline/coding-focus.js +507 -51
  28. package/dist/pipeline/coding-frontier-detail.js +465 -47
  29. package/dist/pipeline/coding-frontier.js +7 -6
  30. package/dist/pipeline/coding-gap-dist.js +424 -15
  31. package/dist/pipeline/coding-gap.js +679 -128
  32. package/dist/pipeline/coding-grade.js +469 -42
  33. package/dist/pipeline/coding-growth.js +17041 -0
  34. package/dist/pipeline/coding-nutshell.js +168 -151
  35. package/dist/pipeline/coding-projects.js +7 -6
  36. package/dist/pipeline/coding-walkthrough.js +461 -37
  37. package/dist/pipeline/coding-workbrief.js +16387 -0
  38. package/dist/web/app.js +2095 -1396
  39. package/dist/web/styles.css +1 -1
  40. package/package.json +1 -1
@@ -1713,6 +1713,13 @@ ${report}`);
1713
1713
  }
1714
1714
 
1715
1715
  // ../../lib/agents/shared/codexAdapter.ts
1716
+ var CODEX_DEFAULT_MODEL = "gpt-5.5";
1717
+ var CODEX_MINI_MODEL = "gpt-5.4-mini";
1718
+ function mapCodexTier(model, env = process.env) {
1719
+ if (model && !/^(claude|haiku|sonnet|opus)/i.test(model)) return model;
1720
+ if (model && /^haiku/i.test(model)) return env.POLYMATH_CODEX_MODEL_MINI || CODEX_MINI_MODEL;
1721
+ return env.POLYMATH_CODEX_MODEL || CODEX_DEFAULT_MODEL;
1722
+ }
1716
1723
  function composePrompt(inv, roots) {
1717
1724
  return [
1718
1725
  inv.systemPrompt ? `<system>
@@ -1753,7 +1760,7 @@ var codexAdapter = {
1753
1760
  "read-only",
1754
1761
  "--json"
1755
1762
  ];
1756
- if (inv.model && !/^claude/i.test(inv.model)) args.push("--model", inv.model);
1763
+ args.push("--model", mapCodexTier(inv.model));
1757
1764
  args.push(composePrompt(inv, roots));
1758
1765
  const started = Date.now();
1759
1766
  const toolCalls = [];
@@ -510,6 +510,13 @@ ${report}`);
510
510
  }
511
511
 
512
512
  // ../../lib/agents/shared/codexAdapter.ts
513
+ var CODEX_DEFAULT_MODEL = "gpt-5.5";
514
+ var CODEX_MINI_MODEL = "gpt-5.4-mini";
515
+ function mapCodexTier(model, env = process.env) {
516
+ if (model && !/^(claude|haiku|sonnet|opus)/i.test(model)) return model;
517
+ if (model && /^haiku/i.test(model)) return env.POLYMATH_CODEX_MODEL_MINI || CODEX_MINI_MODEL;
518
+ return env.POLYMATH_CODEX_MODEL || CODEX_DEFAULT_MODEL;
519
+ }
513
520
  function composePrompt(inv, roots) {
514
521
  return [
515
522
  inv.systemPrompt ? `<system>
@@ -550,7 +557,7 @@ var codexAdapter = {
550
557
  "read-only",
551
558
  "--json"
552
559
  ];
553
- if (inv.model && !/^claude/i.test(inv.model)) args.push("--model", inv.model);
560
+ args.push("--model", mapCodexTier(inv.model));
554
561
  args.push(composePrompt(inv, roots));
555
562
  const started = Date.now();
556
563
  const toolCalls = [];
@@ -510,6 +510,13 @@ ${report}`);
510
510
  }
511
511
 
512
512
  // ../../lib/agents/shared/codexAdapter.ts
513
+ var CODEX_DEFAULT_MODEL = "gpt-5.5";
514
+ var CODEX_MINI_MODEL = "gpt-5.4-mini";
515
+ function mapCodexTier(model, env = process.env) {
516
+ if (model && !/^(claude|haiku|sonnet|opus)/i.test(model)) return model;
517
+ if (model && /^haiku/i.test(model)) return env.POLYMATH_CODEX_MODEL_MINI || CODEX_MINI_MODEL;
518
+ return env.POLYMATH_CODEX_MODEL || CODEX_DEFAULT_MODEL;
519
+ }
513
520
  function composePrompt(inv, roots) {
514
521
  return [
515
522
  inv.systemPrompt ? `<system>
@@ -550,7 +557,7 @@ var codexAdapter = {
550
557
  "read-only",
551
558
  "--json"
552
559
  ];
553
- if (inv.model && !/^claude/i.test(inv.model)) args.push("--model", inv.model);
560
+ args.push("--model", mapCodexTier(inv.model));
554
561
  args.push(composePrompt(inv, roots));
555
562
  const started = Date.now();
556
563
  const toolCalls = [];
@@ -505,6 +505,13 @@ ${report}`);
505
505
  }
506
506
 
507
507
  // ../../lib/agents/shared/codexAdapter.ts
508
+ var CODEX_DEFAULT_MODEL = "gpt-5.5";
509
+ var CODEX_MINI_MODEL = "gpt-5.4-mini";
510
+ function mapCodexTier(model, env = process.env) {
511
+ if (model && !/^(claude|haiku|sonnet|opus)/i.test(model)) return model;
512
+ if (model && /^haiku/i.test(model)) return env.POLYMATH_CODEX_MODEL_MINI || CODEX_MINI_MODEL;
513
+ return env.POLYMATH_CODEX_MODEL || CODEX_DEFAULT_MODEL;
514
+ }
508
515
  function composePrompt(inv, roots) {
509
516
  return [
510
517
  inv.systemPrompt ? `<system>
@@ -545,7 +552,7 @@ var codexAdapter = {
545
552
  "read-only",
546
553
  "--json"
547
554
  ];
548
- if (inv.model && !/^claude/i.test(inv.model)) args.push("--model", inv.model);
555
+ args.push("--model", mapCodexTier(inv.model));
549
556
  args.push(composePrompt(inv, roots));
550
557
  const started = Date.now();
551
558
  const toolCalls = [];
@@ -661,7 +661,7 @@ var GIFTS = [
661
661
 
662
662
  // ../../lib/calibration/index.ts
663
663
  var DEFAULT_CALIBRATION = {
664
- version: "2026-07-16.2",
664
+ version: "2026-07-21.1",
665
665
  // = RUBRIC_FINGERPRINT of the shipped npm rubric (packages/coding-analyzer/
666
666
  // src/grade/criteria.ts). A unit test fails loud when the rubric changes
667
667
  // without this being updated (and re-pushed to the server).
@@ -757,13 +757,14 @@ var DEFAULT_CALIBRATION = {
757
757
  },
758
758
  codingBenchmarks: {
759
759
  flow: {
760
- // typical knowledge worker ≈ 35% of an 8h day focused; ~4h/day is the
761
- // recognized deep-work ceiling (Newport) 50% most sit far below it.
760
+ // typical knowledge worker ≈ 35% of an 8h day focused; the ~4h/day
761
+ // deep-work ceiling (Newport) sits nearer ~40% of a real (9-10h) top
762
+ // performer's day — 50% overstated it (owner call 2026-07-21).
762
763
  typicalPctOfDay: 0.35,
763
- topPctOfDay: 0.5,
764
+ topPctOfDay: 0.4,
764
765
  tag: "measured",
765
- source: "RescueTime 2019 (~2h48m focused/day) \xB7 Cal Newport, Deep Work (~4h/day deep-work ceiling)",
766
- line: "the best spend ~half the workday in true deep flow; ~4h/day is the human ceiling"
766
+ source: "RescueTime 2019 (~2h48m focused/day) \xB7 Cal Newport, Deep Work (~4h/day deep-work ceiling against a 9-10h day)",
767
+ line: "the best spend ~40% of the workday in true deep flow; ~4h/day is the human ceiling"
767
768
  },
768
769
  longestRun: {
769
770
  typicalHours: 0.67,
@@ -1501,6 +1501,13 @@ ${report}`);
1501
1501
  }
1502
1502
 
1503
1503
  // ../../lib/agents/shared/codexAdapter.ts
1504
+ var CODEX_DEFAULT_MODEL = "gpt-5.5";
1505
+ var CODEX_MINI_MODEL = "gpt-5.4-mini";
1506
+ function mapCodexTier(model, env = process.env) {
1507
+ if (model && !/^(claude|haiku|sonnet|opus)/i.test(model)) return model;
1508
+ if (model && /^haiku/i.test(model)) return env.POLYMATH_CODEX_MODEL_MINI || CODEX_MINI_MODEL;
1509
+ return env.POLYMATH_CODEX_MODEL || CODEX_DEFAULT_MODEL;
1510
+ }
1504
1511
  function composePrompt(inv, roots) {
1505
1512
  return [
1506
1513
  inv.systemPrompt ? `<system>
@@ -1541,7 +1548,7 @@ var codexAdapter = {
1541
1548
  "read-only",
1542
1549
  "--json"
1543
1550
  ];
1544
- if (inv.model && !/^claude/i.test(inv.model)) args.push("--model", inv.model);
1551
+ args.push("--model", mapCodexTier(inv.model));
1545
1552
  args.push(composePrompt(inv, roots));
1546
1553
  const started = Date.now();
1547
1554
  const toolCalls = [];
@@ -1501,6 +1501,13 @@ ${report}`);
1501
1501
  }
1502
1502
 
1503
1503
  // ../../lib/agents/shared/codexAdapter.ts
1504
+ var CODEX_DEFAULT_MODEL = "gpt-5.5";
1505
+ var CODEX_MINI_MODEL = "gpt-5.4-mini";
1506
+ function mapCodexTier(model, env = process.env) {
1507
+ if (model && !/^(claude|haiku|sonnet|opus)/i.test(model)) return model;
1508
+ if (model && /^haiku/i.test(model)) return env.POLYMATH_CODEX_MODEL_MINI || CODEX_MINI_MODEL;
1509
+ return env.POLYMATH_CODEX_MODEL || CODEX_DEFAULT_MODEL;
1510
+ }
1504
1511
  function composePrompt(inv, roots) {
1505
1512
  return [
1506
1513
  inv.systemPrompt ? `<system>
@@ -1541,7 +1548,7 @@ var codexAdapter = {
1541
1548
  "read-only",
1542
1549
  "--json"
1543
1550
  ];
1544
- if (inv.model && !/^claude/i.test(inv.model)) args.push("--model", inv.model);
1551
+ args.push("--model", mapCodexTier(inv.model));
1545
1552
  args.push(composePrompt(inv, roots));
1546
1553
  const started = Date.now();
1547
1554
  const toolCalls = [];
@@ -1501,6 +1501,13 @@ ${report}`);
1501
1501
  }
1502
1502
 
1503
1503
  // ../../lib/agents/shared/codexAdapter.ts
1504
+ var CODEX_DEFAULT_MODEL = "gpt-5.5";
1505
+ var CODEX_MINI_MODEL = "gpt-5.4-mini";
1506
+ function mapCodexTier(model, env = process.env) {
1507
+ if (model && !/^(claude|haiku|sonnet|opus)/i.test(model)) return model;
1508
+ if (model && /^haiku/i.test(model)) return env.POLYMATH_CODEX_MODEL_MINI || CODEX_MINI_MODEL;
1509
+ return env.POLYMATH_CODEX_MODEL || CODEX_DEFAULT_MODEL;
1510
+ }
1504
1511
  function composePrompt(inv, roots) {
1505
1512
  return [
1506
1513
  inv.systemPrompt ? `<system>
@@ -1541,7 +1548,7 @@ var codexAdapter = {
1541
1548
  "read-only",
1542
1549
  "--json"
1543
1550
  ];
1544
- if (inv.model && !/^claude/i.test(inv.model)) args.push("--model", inv.model);
1551
+ args.push("--model", mapCodexTier(inv.model));
1545
1552
  args.push(composePrompt(inv, roots));
1546
1553
  const started = Date.now();
1547
1554
  const toolCalls = [];
@@ -1501,6 +1501,13 @@ ${report}`);
1501
1501
  }
1502
1502
 
1503
1503
  // ../../lib/agents/shared/codexAdapter.ts
1504
+ var CODEX_DEFAULT_MODEL = "gpt-5.5";
1505
+ var CODEX_MINI_MODEL = "gpt-5.4-mini";
1506
+ function mapCodexTier(model, env = process.env) {
1507
+ if (model && !/^(claude|haiku|sonnet|opus)/i.test(model)) return model;
1508
+ if (model && /^haiku/i.test(model)) return env.POLYMATH_CODEX_MODEL_MINI || CODEX_MINI_MODEL;
1509
+ return env.POLYMATH_CODEX_MODEL || CODEX_DEFAULT_MODEL;
1510
+ }
1504
1511
  function composePrompt(inv, roots) {
1505
1512
  return [
1506
1513
  inv.systemPrompt ? `<system>
@@ -1541,7 +1548,7 @@ var codexAdapter = {
1541
1548
  "read-only",
1542
1549
  "--json"
1543
1550
  ];
1544
- if (inv.model && !/^claude/i.test(inv.model)) args.push("--model", inv.model);
1551
+ args.push("--model", mapCodexTier(inv.model));
1545
1552
  args.push(composePrompt(inv, roots));
1546
1553
  const started = Date.now();
1547
1554
  const toolCalls = [];
@@ -1501,6 +1501,13 @@ ${report}`);
1501
1501
  }
1502
1502
 
1503
1503
  // ../../lib/agents/shared/codexAdapter.ts
1504
+ var CODEX_DEFAULT_MODEL = "gpt-5.5";
1505
+ var CODEX_MINI_MODEL = "gpt-5.4-mini";
1506
+ function mapCodexTier(model, env = process.env) {
1507
+ if (model && !/^(claude|haiku|sonnet|opus)/i.test(model)) return model;
1508
+ if (model && /^haiku/i.test(model)) return env.POLYMATH_CODEX_MODEL_MINI || CODEX_MINI_MODEL;
1509
+ return env.POLYMATH_CODEX_MODEL || CODEX_DEFAULT_MODEL;
1510
+ }
1504
1511
  function composePrompt(inv, roots) {
1505
1512
  return [
1506
1513
  inv.systemPrompt ? `<system>
@@ -1541,7 +1548,7 @@ var codexAdapter = {
1541
1548
  "read-only",
1542
1549
  "--json"
1543
1550
  ];
1544
- if (inv.model && !/^claude/i.test(inv.model)) args.push("--model", inv.model);
1551
+ args.push("--model", mapCodexTier(inv.model));
1545
1552
  args.push(composePrompt(inv, roots));
1546
1553
  const started = Date.now();
1547
1554
  const toolCalls = [];
@@ -1453,6 +1453,13 @@ ${report}`);
1453
1453
  }
1454
1454
 
1455
1455
  // ../../lib/agents/shared/codexAdapter.ts
1456
+ var CODEX_DEFAULT_MODEL = "gpt-5.5";
1457
+ var CODEX_MINI_MODEL = "gpt-5.4-mini";
1458
+ function mapCodexTier(model, env = process.env) {
1459
+ if (model && !/^(claude|haiku|sonnet|opus)/i.test(model)) return model;
1460
+ if (model && /^haiku/i.test(model)) return env.POLYMATH_CODEX_MODEL_MINI || CODEX_MINI_MODEL;
1461
+ return env.POLYMATH_CODEX_MODEL || CODEX_DEFAULT_MODEL;
1462
+ }
1456
1463
  function composePrompt(inv, roots) {
1457
1464
  return [
1458
1465
  inv.systemPrompt ? `<system>
@@ -1493,7 +1500,7 @@ var codexAdapter = {
1493
1500
  "read-only",
1494
1501
  "--json"
1495
1502
  ];
1496
- if (inv.model && !/^claude/i.test(inv.model)) args.push("--model", inv.model);
1503
+ args.push("--model", mapCodexTier(inv.model));
1497
1504
  args.push(composePrompt(inv, roots));
1498
1505
  const started = Date.now();
1499
1506
  const toolCalls = [];
@@ -499,6 +499,13 @@ ${report}`);
499
499
  }
500
500
 
501
501
  // ../../lib/agents/shared/codexAdapter.ts
502
+ var CODEX_DEFAULT_MODEL = "gpt-5.5";
503
+ var CODEX_MINI_MODEL = "gpt-5.4-mini";
504
+ function mapCodexTier(model, env = process.env) {
505
+ if (model && !/^(claude|haiku|sonnet|opus)/i.test(model)) return model;
506
+ if (model && /^haiku/i.test(model)) return env.POLYMATH_CODEX_MODEL_MINI || CODEX_MINI_MODEL;
507
+ return env.POLYMATH_CODEX_MODEL || CODEX_DEFAULT_MODEL;
508
+ }
502
509
  function composePrompt(inv, roots) {
503
510
  return [
504
511
  inv.systemPrompt ? `<system>
@@ -539,7 +546,7 @@ var codexAdapter = {
539
546
  "read-only",
540
547
  "--json"
541
548
  ];
542
- if (inv.model && !/^claude/i.test(inv.model)) args.push("--model", inv.model);
549
+ args.push("--model", mapCodexTier(inv.model));
543
550
  args.push(composePrompt(inv, roots));
544
551
  const started = Date.now();
545
552
  const toolCalls = [];
@@ -15656,7 +15663,7 @@ var ENGINE_DATA = process.env.POLYMATH_DATA_DIR ? path10.resolve(process.env.POL
15656
15663
 
15657
15664
  // ../../lib/calibration/index.ts
15658
15665
  var DEFAULT_CALIBRATION = {
15659
- version: "2026-07-16.2",
15666
+ version: "2026-07-21.1",
15660
15667
  // = RUBRIC_FINGERPRINT of the shipped npm rubric (packages/coding-analyzer/
15661
15668
  // src/grade/criteria.ts). A unit test fails loud when the rubric changes
15662
15669
  // without this being updated (and re-pushed to the server).
@@ -15752,13 +15759,14 @@ var DEFAULT_CALIBRATION = {
15752
15759
  },
15753
15760
  codingBenchmarks: {
15754
15761
  flow: {
15755
- // typical knowledge worker ≈ 35% of an 8h day focused; ~4h/day is the
15756
- // recognized deep-work ceiling (Newport) 50% most sit far below it.
15762
+ // typical knowledge worker ≈ 35% of an 8h day focused; the ~4h/day
15763
+ // deep-work ceiling (Newport) sits nearer ~40% of a real (9-10h) top
15764
+ // performer's day — 50% overstated it (owner call 2026-07-21).
15757
15765
  typicalPctOfDay: 0.35,
15758
- topPctOfDay: 0.5,
15766
+ topPctOfDay: 0.4,
15759
15767
  tag: "measured",
15760
- source: "RescueTime 2019 (~2h48m focused/day) \xB7 Cal Newport, Deep Work (~4h/day deep-work ceiling)",
15761
- line: "the best spend ~half the workday in true deep flow; ~4h/day is the human ceiling"
15768
+ source: "RescueTime 2019 (~2h48m focused/day) \xB7 Cal Newport, Deep Work (~4h/day deep-work ceiling against a 9-10h day)",
15769
+ line: "the best spend ~40% of the workday in true deep flow; ~4h/day is the human ceiling"
15762
15770
  },
15763
15771
  longestRun: {
15764
15772
  typicalHours: 0.67,
@@ -622,6 +622,13 @@ ${report}`);
622
622
  }
623
623
 
624
624
  // ../../lib/agents/shared/codexAdapter.ts
625
+ var CODEX_DEFAULT_MODEL = "gpt-5.5";
626
+ var CODEX_MINI_MODEL = "gpt-5.4-mini";
627
+ function mapCodexTier(model, env = process.env) {
628
+ if (model && !/^(claude|haiku|sonnet|opus)/i.test(model)) return model;
629
+ if (model && /^haiku/i.test(model)) return env.POLYMATH_CODEX_MODEL_MINI || CODEX_MINI_MODEL;
630
+ return env.POLYMATH_CODEX_MODEL || CODEX_DEFAULT_MODEL;
631
+ }
625
632
  function composePrompt(inv, roots) {
626
633
  return [
627
634
  inv.systemPrompt ? `<system>
@@ -662,7 +669,7 @@ var codexAdapter = {
662
669
  "read-only",
663
670
  "--json"
664
671
  ];
665
- if (inv.model && !/^claude/i.test(inv.model)) args.push("--model", inv.model);
672
+ args.push("--model", mapCodexTier(inv.model));
666
673
  args.push(composePrompt(inv, roots));
667
674
  const started = Date.now();
668
675
  const toolCalls = [];
@@ -599,6 +599,13 @@ ${report}`);
599
599
  }
600
600
 
601
601
  // ../../lib/agents/shared/codexAdapter.ts
602
+ var CODEX_DEFAULT_MODEL = "gpt-5.5";
603
+ var CODEX_MINI_MODEL = "gpt-5.4-mini";
604
+ function mapCodexTier(model, env = process.env) {
605
+ if (model && !/^(claude|haiku|sonnet|opus)/i.test(model)) return model;
606
+ if (model && /^haiku/i.test(model)) return env.POLYMATH_CODEX_MODEL_MINI || CODEX_MINI_MODEL;
607
+ return env.POLYMATH_CODEX_MODEL || CODEX_DEFAULT_MODEL;
608
+ }
602
609
  function composePrompt(inv, roots) {
603
610
  return [
604
611
  inv.systemPrompt ? `<system>
@@ -639,7 +646,7 @@ var codexAdapter = {
639
646
  "read-only",
640
647
  "--json"
641
648
  ];
642
- if (inv.model && !/^claude/i.test(inv.model)) args.push("--model", inv.model);
649
+ args.push("--model", mapCodexTier(inv.model));
643
650
  args.push(composePrompt(inv, roots));
644
651
  const started = Date.now();
645
652
  const toolCalls = [];