dsh-vibe-math 2.7.2 → 2.7.3

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/README.en.md +11 -10
  2. package/README.md +13 -12
  3. package/cordis.patch.yml +112 -16
  4. package/docs/AUDIT-CHECKLIST.md +229 -3
  5. package/docs/COMPAT-AUDIT-ROUND2.md +35 -9
  6. package/docs/final-paper.md +2 -2
  7. package/docs/math-computation.md +13 -6
  8. package/docs/parameter-schema.md +37 -0
  9. package/docs/release-notes/README.en.md +1 -0
  10. package/docs/release-notes/README.md +1 -0
  11. package/docs/release-notes/RELEASE-NOTES-2.7.2.en.md +2 -2
  12. package/docs/release-notes/RELEASE-NOTES-2.7.2.md +3 -3
  13. package/docs/release-notes/RELEASE-NOTES-2.7.3.en.md +67 -0
  14. package/docs/release-notes/RELEASE-NOTES-2.7.3.md +67 -0
  15. package/docs/release-notes/TEMPLATE.md +6 -0
  16. package/docs/status-report-fields.md +167 -0
  17. package/docs/test-timing.md +8 -5
  18. package/installer.js +27 -17
  19. package/package.json +250 -203
  20. package/prompt-corpus-persona/persona-corpus.json +9 -9
  21. package/prompt-corpus-persona/persona-corpus.md +225 -33
  22. package/prompt-corpus-v2/formal-verify-v2.json +295 -115
  23. package/prompt-corpus-v2/formal-verify-v2.md +2287 -283
  24. package/prompt-corpus-v3/formal-verify-v3.json +105 -105
  25. package/prompt-corpus-v3/formal-verify-v3.md +213 -143
  26. package/prompt-corpus-v4/formal-verify-v4.json +18 -18
  27. package/prompt-corpus-v4/formal-verify-v4.md +49 -44
  28. package/prompt-corpus-v5/prompt-corpus-v5.json +82 -82
  29. package/prompt-corpus-v5/prompt-corpus-v5.md +451 -207
  30. package/scripts/update-doc-counts.mjs +71 -0
  31. package/tests/audit-artifact-docs.mjs +72 -0
  32. package/tests/audit-artifact-docs.mutants.mjs +58 -0
  33. package/tests/audit-installer-assertions.mutants.mjs +63 -0
  34. package/tests/audit-installer-compat.test.mjs +52 -4
  35. package/tests/audit-installer-policy.test.mjs +41 -8
  36. package/tests/audit-math-computation-contract.mjs +64 -8
  37. package/tests/audit-math-computation-contract.mutants.mjs +106 -0
  38. package/tests/audit-math-computation-parity.mjs +164 -3
  39. package/tests/audit-math-computation-sensitivity.mjs +4 -2
  40. package/tests/audit-package-membership.mjs +57 -0
  41. package/tests/audit-package-membership.mutants.mjs +28 -0
  42. package/tests/audit-participant-set-parity.mjs +160 -0
  43. package/tests/audit-path-discipline.mjs +83 -0
  44. package/tests/audit-path-discipline.mutants.mjs +51 -0
  45. package/tests/audit-persona-sensitivity.mjs +14 -0
  46. package/tests/audit-persona-surface.mutants.mjs +69 -0
  47. package/tests/audit-persona-surface.test.mjs +63 -22
  48. package/tests/audit-prompt-duplication.mjs +143 -0
  49. package/tests/audit-prompt-duplication.mutants.mjs +50 -0
  50. package/tests/audit-prompt-invariants.mjs +43 -5
  51. package/tests/audit-readme-bilingual.test.mjs +152 -0
  52. package/tests/audit-readme-counts.mjs +95 -0
  53. package/tests/audit-readme-counts.mutants.mjs +52 -0
  54. package/tests/audit-registration.mjs +78 -0
  55. package/tests/audit-status-report-fields.mjs +172 -0
  56. package/tests/audit-status-report-fields.mutants.mjs +64 -0
  57. package/tests/audit-v3-registration-parity.mjs +156 -0
  58. package/tests/audit-v5-integrity.mjs +300 -13
  59. package/tests/audit-v5-lean-abstention.mjs +392 -0
  60. package/tests/audit-v5-lean-abstention.mutants.mjs +106 -0
  61. package/tests/audit-v5-prompt-duplication.mjs +88 -0
  62. package/tests/audit-v5-prompt-duplication.mutants.mjs +34 -0
  63. package/tests/audit-v5-sensitivity.mjs +12 -7
  64. package/tests/e2e-identity-a6.mutants.mjs +65 -0
  65. package/tests/e2e-v5-round2.test.mjs +458 -13
  66. package/tests/formal-verify-v2.test.mjs +91 -43
  67. package/tests/formal-verify-v3.mutants.mjs +117 -0
  68. package/tests/formal-verify-v3.test.mjs +85 -39
  69. package/tests/formal-verify-v4.mutants.mjs +152 -0
  70. package/tests/formal-verify-v4.test.mjs +541 -9
  71. package/tests/formal-verify-v5.test.mjs +68 -9
  72. package/tests/helpers/doc-counts-format.mjs +41 -0
  73. package/tests/helpers/math-computation-fake-seam.mjs +4 -0
  74. package/tests/math-computation-a1.mutants.mjs +72 -0
  75. package/tests/math-computation-archive-rerun.mutants.mjs +65 -0
  76. package/tests/math-computation-discovery.mutants.mjs +76 -0
  77. package/tests/math-computation-shared.test.mjs +274 -5
  78. package/tests/math-computation-v2.test.mjs +767 -0
  79. package/tests/math-computation-v3.test.mjs +759 -0
  80. package/tests/math-computation-v4.mutants.mjs +133 -0
  81. package/tests/math-computation-v4.test.mjs +739 -0
  82. package/tests/prompt-v5-integrity.test.mjs +13 -2
  83. package/tests/run-tests.mjs +139 -9
  84. package/tests/run-tests.mutants.mjs +70 -0
  85. package/tests/selfdrive-v5.mjs +53 -1
  86. package/tests/selfdrive-v5.mutants.mjs +132 -0
  87. package/tests/v2-fix-probes.mutants.mjs +100 -0
  88. package/tests/v2-fix-probes.test.mjs +1039 -0
  89. package/tests/v2-list-agents-and-next-step.mutants.mjs +106 -0
  90. package/tests/v3-fix-probes.mutants.mjs +95 -0
  91. package/tests/v3-fix-probes.test.mjs +891 -0
  92. package/tests/v5-institute-fixes.mutants.mjs +190 -0
  93. package/vibe-math-v2/agent.cordis.yml +62 -6
  94. package/vibe-math-v2/math-computation.js +130 -41
  95. package/vibe-math-v2/math-engines.js +12 -12
  96. package/vibe-math-v2/vibe-math-v2.js +388 -113
  97. package/vibe-math-v2//345/256/236/347/216/260/346/226/271/346/241/210.md +5 -1
  98. package/vibe-math-v3/agent.cordis.yml +72 -6
  99. package/vibe-math-v3/math-computation.js +130 -41
  100. package/vibe-math-v3/math-engines.js +12 -12
  101. package/vibe-math-v3/vibe-math-v3.js +422 -126
  102. package/vibe-math-v4/agent.cordis.yml +44 -8
  103. package/vibe-math-v4/math-computation.js +130 -41
  104. package/vibe-math-v4/math-engines.js +12 -12
  105. package/vibe-math-v4/vibe-math-v4.js +196 -43
  106. package/vibe-math-v4//345/256/236/347/216/260/346/226/271/346/241/210.md +2 -0
  107. package/vibe-math-v5/agent.cordis.yml +46 -12
  108. package/vibe-math-v5/math-computation.js +130 -41
  109. package/vibe-math-v5/math-engines.js +12 -12
  110. package/vibe-math-v5/vibe-math-v5.js +1173 -218
  111. package/vibe-math-v5//345/256/236/347/216/260/346/226/271/346/241/210.md +80 -12
  112. package/vibe-math-v5//346/236/266/346/236/204/345/233/276.md +2 -2
@@ -6,7 +6,7 @@
6
6
  // No repo imports — node builtins only (this file imports nothing at all).
7
7
  //
8
8
  // Placeholders used in the argv templates (each substitutes into ONE argv element only):
9
- // <script> <expr> <pkgs> <probeCode> <exe> <pkg> <cliArgv...>
9
+ // <script> <expr> <pkgs> <probeCode> <exe> <pkg>
10
10
  // A descriptor is pure data; every template can be overridden by the user via mathEngineOverride.
11
11
 
12
12
  export const MATH_ENGINE_ORDER = ['python', 'r', 'octave', 'julia', 'matlab', 'maple', 'wolfram', 'cli']
@@ -19,9 +19,9 @@ const ARG_ERROR_HINTS = ['unknown option', 'invalid option', 'unrecognized optio
19
19
  export const MATH_ENGINES = {
20
20
  python: {
21
21
  name: 'python', phase: 'P1',
22
- candidates: ['python3', 'python', 'py'], winPrefix: ['-3'],
22
+ candidates: ['python3', 'python', 'py'],
23
23
  versionArgv: ['--version'], versionRe: '(\\d+\\.\\d+\\.\\d+)',
24
- scriptArgv: ['<script>'], evalArgv: ['-c', '<expr>'], stdinArgv: ['-'], ext: '.py',
24
+ scriptArgv: ['<script>'], evalArgv: ['-c', '<expr>'], ext: '.py',
25
25
  // round-7 (live): NO shell metacharacters (`|`, `%`) in any probe argv - a real host rejected
26
26
  // them with a null spawn. One line per package: "name ok|missing".
27
27
  probeCode: "import importlib.util,sys\nfor p in sys.argv[1:]: print(p, 'ok' if importlib.util.find_spec(p) is not None else 'missing')",
@@ -70,7 +70,7 @@ export const MATH_ENGINES = {
70
70
  name: 'r', phase: 'P1',
71
71
  candidates: ['Rscript', 'R'],
72
72
  versionArgv: ['--version'], versionRe: '(\\d+\\.\\d+\\.\\d+)',
73
- scriptArgv: ['<script>'], evalArgv: ['-e', '<expr>'], stdinArgv: ['--no-save', '--slave'], ext: '.R',
73
+ scriptArgv: ['<script>'], evalArgv: ['-e', '<expr>'], ext: '.R',
74
74
  // round-7 (live): line-per-package, no `|` in the argv.
75
75
  probeCode: "for (p in strsplit('__PKGS__',',')[[1]]) cat(p, if (requireNamespace(p, quietly=TRUE)) 'ok' else 'missing', '\\n')",
76
76
  packageProbe: { argv: ['-e', '<probeCode>'], parse: 'pairs' },
@@ -89,7 +89,7 @@ export const MATH_ENGINES = {
89
89
  candidates: ['octave', 'octave-cli'],
90
90
  versionArgv: ['--version'], versionRe: '(\\d+\\.\\d+\\.\\d+)',
91
91
  scriptArgv: ['--no-gui', '--quiet', '<script>'], evalArgv: ['--no-gui', '--quiet', '--eval', '<expr>'],
92
- stdinArgv: ['--no-gui', '--quiet'], ext: '.m',
92
+ ext: '.m',
93
93
  // round-7 (live): line-per-package via disp, no `|` and no `%` in the argv.
94
94
  probeCode: "s=pkg('list'); n={'__QPKGS__'}; for i=1:numel(n); if any(cellfun(@(x) strcmp(x.name,n{i}),s)); disp([n{i} ' ok']); else; disp([n{i} ' missing']); end; end",
95
95
  packageProbe: { argv: ['--no-gui', '--quiet', '--eval', '<probeCode>'], parse: 'pairs' },
@@ -106,7 +106,7 @@ export const MATH_ENGINES = {
106
106
  name: 'julia', phase: 'P1',
107
107
  candidates: ['julia'],
108
108
  versionArgv: ['--version'], versionRe: '(\\d+\\.\\d+\\.\\d+)',
109
- scriptArgv: ['<script>'], evalArgv: ['-e', '<expr>'], stdinArgv: ['-'], ext: '.jl',
109
+ scriptArgv: ['<script>'], evalArgv: ['-e', '<expr>'], ext: '.jl',
110
110
  probeCode: 'for p in [__QPKGS__]; println(p, ":", Base.find_package(p) === nothing ? "missing" : "ok"); end',
111
111
  packageProbe: { argv: ['-e', '<probeCode>'], parse: 'pairs' },
112
112
  license: 'free', argErrorHints: ARG_ERROR_HINTS,
@@ -122,7 +122,7 @@ export const MATH_ENGINES = {
122
122
  name: 'matlab', phase: 'P1',
123
123
  candidates: ['matlab'],
124
124
  versionArgv: ['-batch', 'disp(version)'], versionRe: '(\\d+\\.\\d+)',
125
- scriptArgv: ['-batch', "run('<script>')"], evalArgv: ['-batch', '<expr>'], stdinArgv: null, ext: '.m',
125
+ scriptArgv: ['-batch', "run('<script>')"], evalArgv: ['-batch', '<expr>'], ext: '.m',
126
126
  // round-7 (live): no `|`/`%` in any probe argv (a real host rejected such argv with a null spawn).
127
127
  probeCode: "t={'__QPKGS__'}; for i=1:numel(t); if license('test',t{i}); disp([t{i} ' ok']); else; disp([t{i} ' missing']); end; end",
128
128
  packageProbe: { argv: ['-batch', '<probeCode>'], parse: 'pairs' },
@@ -135,7 +135,7 @@ export const MATH_ENGINES = {
135
135
  name: 'maple', phase: 'P1',
136
136
  candidates: ['maple'],
137
137
  versionArgv: ['--version'], versionRe: '(\\d+\\.\\d+)',
138
- scriptArgv: ['-q', '<script>'], evalArgv: ['-q', '-c', '<expr>'], stdinArgv: null, ext: '.mpl',
138
+ scriptArgv: ['-q', '<script>'], evalArgv: ['-q', '-c', '<expr>'], ext: '.mpl',
139
139
  // round-7 (live): `print` instead of printf so the argv carries no `|`/`%`.
140
140
  probeCode: 'for p in ["__PKGS__"] do try with(p) catch: print(p, " missing"); next end try; print(p, " ok") end do',
141
141
  packageProbe: { argv: ['-q', '-c', '<probeCode>'], parse: 'pairs' },
@@ -149,7 +149,7 @@ export const MATH_ENGINES = {
149
149
  name: 'wolfram', phase: 'P1',
150
150
  candidates: ['wolframscript', 'WolframKernel', 'math'],
151
151
  versionArgv: ['-code', '$Version'], versionRe: '(\\d+\\.\\d+(\\.\\d+)?)',
152
- scriptArgv: ['-file', '<script>'], evalArgv: ['-code', '<expr>'], stdinArgv: null, ext: '.wl',
152
+ scriptArgv: ['-file', '<script>'], evalArgv: ['-code', '<expr>'], ext: '.wl',
153
153
  probeCode: 'Do[Print[p,":",If[Quiet[Check[Needs[p];True,False]],"ok","missing"]],{p,{__QPKGS__}}]',
154
154
  packageProbe: { argv: ['-code', '<probeCode>'], parse: 'pairs' },
155
155
  license: 'commercial', argErrorHints: ARG_ERROR_HINTS,
@@ -158,10 +158,10 @@ export const MATH_ENGINES = {
158
158
  userInstall: { windows: 'vendor installer + activation', macos: 'vendor installer + activation', linux: 'vendor installer + activation' },
159
159
  },
160
160
  cli: {
161
- name: 'cli', phase: 'P1', defaultOn: true,
161
+ name: 'cli', phase: 'P1',
162
162
  candidates: [], resolveFrom: 'cli.command',
163
163
  versionArgv: ['--version'], versionRe: '([^\\s]+)', versionOptional: true,
164
- scriptArgv: ['<cliArgv...>'], evalArgv: null, stdinArgv: null, ext: '.txt',
164
+ evalArgv: null, ext: '.txt',
165
165
  probeCode: null, packageProbe: null,
166
166
  license: 'user', argErrorHints: ARG_ERROR_HINTS,
167
167
  install: null, vendor: null,
@@ -175,7 +175,7 @@ export const MATH_P2_ENGINES = {
175
175
  sage: {
176
176
  name: 'sage', phase: 'P2', candidates: ['sage'],
177
177
  versionArgv: ['--version'], versionRe: '(\\d+\\.\\d+)',
178
- scriptArgv: ['<script>'], evalArgv: ['-c', '<expr>'], stdinArgv: ['-'], ext: '.sage',
178
+ scriptArgv: ['<script>'], evalArgv: ['-c', '<expr>'], ext: '.sage',
179
179
  probeCode: null, packageProbe: { argv: ['-pip', 'list'], parse: 'lines' },
180
180
  license: 'free', argErrorHints: ARG_ERROR_HINTS, install: null,
181
181
  },