research-copilot 0.2.15 → 0.2.17

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 (67) hide show
  1. package/app/out/main/index.mjs +20 -0
  2. package/app/out/preload/index.js +5 -0
  3. package/app/out/renderer/assets/{MilkdownMarkdownEditor-UNNnHq-Q.js → MilkdownMarkdownEditor-CuTa5j4S.js} +50 -50
  4. package/app/out/renderer/assets/{arc-CpQkTVSV.js → arc-BAWS3N-F.js} +1 -1
  5. package/app/out/renderer/assets/{blockDiagram-c4efeb88-DV91zeYk.js → blockDiagram-c4efeb88-BHadwPqY.js} +8 -8
  6. package/app/out/renderer/assets/{c4Diagram-c83219d4-BYZtgyKD.js → c4Diagram-c83219d4-B3kOxRad.js} +3 -3
  7. package/app/out/renderer/assets/{channel-DKZcFGxg.js → channel-Bll9CBqI.js} +1 -1
  8. package/app/out/renderer/assets/{classDiagram-beda092f-bfcCUskQ.js → classDiagram-beda092f-Dv7owGyx.js} +6 -6
  9. package/app/out/renderer/assets/{classDiagram-v2-2358418a-BR3pIwy5.js → classDiagram-v2-2358418a-cWrqk5tQ.js} +10 -10
  10. package/app/out/renderer/assets/{clone-DYFbSe8n.js → clone-D-DQ4nnY.js} +1 -1
  11. package/app/out/renderer/assets/{createText-1719965b-DzSrNkTO.js → createText-1719965b-ciE8YuqI.js} +2 -2
  12. package/app/out/renderer/assets/{edges-96097737-NtlJJRFS.js → edges-96097737-DycnAYk_.js} +3 -3
  13. package/app/out/renderer/assets/{erDiagram-0228fc6a-D-IkKUzx.js → erDiagram-0228fc6a-Sv78YNMY.js} +5 -5
  14. package/app/out/renderer/assets/{flowDb-c6c81e3f-Ci22GdDY.js → flowDb-c6c81e3f-BiOarg9b.js} +1 -1
  15. package/app/out/renderer/assets/{flowDiagram-50d868cf-zRBNrGzH.js → flowDiagram-50d868cf-19J80nxU.js} +12 -12
  16. package/app/out/renderer/assets/{flowDiagram-v2-4f6560a1-vnbqAJeS.js → flowDiagram-v2-4f6560a1-c-kGsubV.js} +12 -12
  17. package/app/out/renderer/assets/{flowchart-elk-definition-6af322e1-CuVXk2cv.js → flowchart-elk-definition-6af322e1-DRrYbiSC.js} +6 -6
  18. package/app/out/renderer/assets/{ganttDiagram-a2739b55-BKt7y8Nk.js → ganttDiagram-a2739b55-BadmpvMy.js} +3 -3
  19. package/app/out/renderer/assets/{gitGraphDiagram-82fe8481-MVrgAPy8.js → gitGraphDiagram-82fe8481-BdVoj60Q.js} +2 -2
  20. package/app/out/renderer/assets/{graph-47tN-JjA.js → graph-jZhookGR.js} +1 -1
  21. package/app/out/renderer/assets/{index-DP9hc671.js → index-47oNNEnx.js} +6 -6
  22. package/app/out/renderer/assets/{index-5325376f-BAwly5ON.js → index-5325376f-CbxmatXv.js} +6 -6
  23. package/app/out/renderer/assets/{index-BtnFDu4c.js → index-B110aKST.js} +3 -3
  24. package/app/out/renderer/assets/{index-CaKrYTYv.js → index-B2UUF9y9.js} +30 -7
  25. package/app/out/renderer/assets/{index-B7PIn7Sy.js → index-B8fh500_.js} +3 -3
  26. package/app/out/renderer/assets/{index-Z0DiYIAm.js → index-B9kkJj3J.js} +6 -6
  27. package/app/out/renderer/assets/{index-BCAfDfd2.js → index-BBUnWjLe.js} +3 -3
  28. package/app/out/renderer/assets/{index-aAuuSY42.js → index-BTE0dEKO.js} +6 -6
  29. package/app/out/renderer/assets/{index-DqAuRK1m.js → index-BUcSHPha.js} +3 -3
  30. package/app/out/renderer/assets/{index-C9k23NfW.js → index-BWCwSkxb.js} +3 -3
  31. package/app/out/renderer/assets/{index-IxItY9MF.js → index-BXpNbFhG.js} +3 -3
  32. package/app/out/renderer/assets/{index-ChRW2wyg.js → index-CAlpJ3-o.js} +4 -4
  33. package/app/out/renderer/assets/{index-Cdfq9GLa.js → index-CMGDsC_t.js} +6 -6
  34. package/app/out/renderer/assets/{index-CZhJgR4h.js → index-CZX0435B.js} +6 -6
  35. package/app/out/renderer/assets/{index-LPLJgcfa.js → index-CirXkIv2.js} +3 -3
  36. package/app/out/renderer/assets/{index-DuccscxT.js → index-D-ZMmLhv.js} +3 -3
  37. package/app/out/renderer/assets/{index-CTXUhrja.js → index-DEO9Jh2Y.js} +5 -5
  38. package/app/out/renderer/assets/{index-DcHrpeaZ.js → index-DF_C6DjR.js} +3 -3
  39. package/app/out/renderer/assets/{index-PvzYpUGb.js → index-DO5LsHlM.js} +1 -1
  40. package/app/out/renderer/assets/{index-CI7jql7H.js → index-DOUTte7i.js} +3 -3
  41. package/app/out/renderer/assets/{index-DnGwgCJt.js → index-DQwFQR1s.js} +3 -3
  42. package/app/out/renderer/assets/{index-DF3gD3Ct.js → index-HCRA2-Q6.js} +6 -6
  43. package/app/out/renderer/assets/{index-D38yt-gB.js → index-cavFRVgM.js} +3 -3
  44. package/app/out/renderer/assets/{index-DyfldTxE.js → index-g91Iwgxa.js} +4 -4
  45. package/app/out/renderer/assets/{infoDiagram-8eee0895-B7zSsSA5.js → infoDiagram-8eee0895-DpVt3Scv.js} +2 -2
  46. package/app/out/renderer/assets/{journeyDiagram-c64418c1-D6rYrYE9.js → journeyDiagram-c64418c1-RYKX5mcV.js} +4 -4
  47. package/app/out/renderer/assets/{layout-C3nD7S8q.js → layout-BsbNXXgR.js} +2 -2
  48. package/app/out/renderer/assets/{line-BD7gUCLm.js → line-OzQTpJsh.js} +1 -1
  49. package/app/out/renderer/assets/{linear-Dml1F21i.js → linear-DO5pdnqi.js} +1 -1
  50. package/app/out/renderer/assets/{mindmap-definition-8da855dc-IY0DZul4.js → mindmap-definition-8da855dc-D3zWs3h1.js} +3 -3
  51. package/app/out/renderer/assets/{pieDiagram-a8764435-CrWonzc_.js → pieDiagram-a8764435-DDoNhSgQ.js} +3 -3
  52. package/app/out/renderer/assets/{quadrantDiagram-1e28029f-Bca0GRbN.js → quadrantDiagram-1e28029f-ZO85SsRM.js} +3 -3
  53. package/app/out/renderer/assets/{requirementDiagram-08caed73-Dz2SRyGA.js → requirementDiagram-08caed73-C-vKE6g8.js} +5 -5
  54. package/app/out/renderer/assets/{sankeyDiagram-a04cb91d-NfJN0Agl.js → sankeyDiagram-a04cb91d-Cbqb2K-X.js} +2 -2
  55. package/app/out/renderer/assets/{sequenceDiagram-c5b8d532-D2Dx4CJP.js → sequenceDiagram-c5b8d532-BK4uvpEA.js} +3 -3
  56. package/app/out/renderer/assets/{stateDiagram-1ecb1508-CClex8bq.js → stateDiagram-1ecb1508-DXa_YqNi.js} +6 -6
  57. package/app/out/renderer/assets/{stateDiagram-v2-c2b004d7-vkISAVpU.js → stateDiagram-v2-c2b004d7-Dm203Z8l.js} +10 -10
  58. package/app/out/renderer/assets/{styles-b4e223ce-q4XIFTqx.js → styles-b4e223ce-BV4b1eAh.js} +1 -1
  59. package/app/out/renderer/assets/{styles-ca3715f6-DEA1MmgW.js → styles-ca3715f6-CKhYSe7r.js} +1 -1
  60. package/app/out/renderer/assets/{styles-d45a18b0-JdnahWSX.js → styles-d45a18b0-DTCMfE-4.js} +4 -4
  61. package/app/out/renderer/assets/{svgDrawCommon-b86b1483-nssZCQ5K.js → svgDrawCommon-b86b1483-DK4i-dfJ.js} +1 -1
  62. package/app/out/renderer/assets/{timeline-definition-faaaa080-ChRZSyE8.js → timeline-definition-faaaa080-CE2LmuDH.js} +3 -3
  63. package/app/out/renderer/assets/{xychartDiagram-f5964ef8-BrgVCZqF.js → xychartDiagram-f5964ef8-Bd8KT9X9.js} +5 -5
  64. package/app/out/renderer/index.html +1 -1
  65. package/package.json +3 -1
  66. package/scripts/backfill-papers.mjs +142 -0
  67. package/scripts/fix-node-pty-perms.mjs +32 -0
@@ -1,9 +1,9 @@
1
- import { a3 as tau, n as getAccDescription, m as setAccDescription, o as getAccTitle, q as setAccTitle, H as getDiagramTitle, J as setDiagramTitle, v as log$1, r as getConfig$1, aM as cleanAndMerge, Z as selectSvgElement, af as parseFontSize, w as configureSvgSize, z as sanitizeText$2, M as clear$1, ab as defaultConfig$2 } from "./MilkdownMarkdownEditor-UNNnHq-Q.js";
2
- import { a as arc } from "./arc-CpQkTVSV.js";
1
+ import { a3 as tau, n as getAccDescription, m as setAccDescription, o as getAccTitle, q as setAccTitle, H as getDiagramTitle, J as setDiagramTitle, v as log$1, r as getConfig$1, aM as cleanAndMerge, Z as selectSvgElement, af as parseFontSize, w as configureSvgSize, z as sanitizeText$2, M as clear$1, ab as defaultConfig$2 } from "./MilkdownMarkdownEditor-CuTa5j4S.js";
2
+ import { a as arc } from "./arc-BAWS3N-F.js";
3
3
  import { o as ordinal } from "./ordinal-DSZU4PqD.js";
4
4
  import { a as array } from "./array-DgktLKBx.js";
5
5
  import { c as constant } from "./path-Cp2qmpkd.js";
6
- import "./index-CaKrYTYv.js";
6
+ import "./index-B2UUF9y9.js";
7
7
  import "./init-ZxktEp_H.js";
8
8
  function descending(a, b) {
9
9
  return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
@@ -1,6 +1,6 @@
1
- import { m as setAccDescription, n as getAccDescription, H as getDiagramTitle, J as setDiagramTitle, o as getAccTitle, q as setAccTitle, r as getConfig, v as log$1, u as select, w as configureSvgSize, M as clear$1, ab as defaultConfig$2, z as sanitizeText$2, ac as getThemeVariables$2 } from "./MilkdownMarkdownEditor-UNNnHq-Q.js";
2
- import { l as linear } from "./linear-Dml1F21i.js";
3
- import "./index-CaKrYTYv.js";
1
+ import { m as setAccDescription, n as getAccDescription, H as getDiagramTitle, J as setDiagramTitle, o as getAccTitle, q as setAccTitle, r as getConfig, v as log$1, u as select, w as configureSvgSize, M as clear$1, ab as defaultConfig$2, z as sanitizeText$2, ac as getThemeVariables$2 } from "./MilkdownMarkdownEditor-CuTa5j4S.js";
2
+ import { l as linear } from "./linear-DO5pdnqi.js";
3
+ import "./index-B2UUF9y9.js";
4
4
  import "./init-ZxktEp_H.js";
5
5
  var parser = function() {
6
6
  var o = function(k, v, o2, l) {
@@ -1,8 +1,8 @@
1
- import { n as getAccDescription, m as setAccDescription, o as getAccTitle, q as setAccTitle, r as getConfig, u as select, w as configureSvgSize, M as clear$1, v as log$1, C as common$1 } from "./MilkdownMarkdownEditor-UNNnHq-Q.js";
2
- import { G as Graph } from "./graph-47tN-JjA.js";
3
- import { l as layout } from "./layout-C3nD7S8q.js";
4
- import { l as line } from "./line-BD7gUCLm.js";
5
- import "./index-CaKrYTYv.js";
1
+ import { n as getAccDescription, m as setAccDescription, o as getAccTitle, q as setAccTitle, r as getConfig, u as select, w as configureSvgSize, M as clear$1, v as log$1, C as common$1 } from "./MilkdownMarkdownEditor-CuTa5j4S.js";
2
+ import { G as Graph } from "./graph-jZhookGR.js";
3
+ import { l as layout } from "./layout-BsbNXXgR.js";
4
+ import { l as line } from "./line-OzQTpJsh.js";
5
+ import "./index-B2UUF9y9.js";
6
6
  import "./array-DgktLKBx.js";
7
7
  import "./path-Cp2qmpkd.js";
8
8
  var parser = function() {
@@ -1,7 +1,7 @@
1
- import { J as setDiagramTitle, H as getDiagramTitle, m as setAccDescription, n as getAccDescription, q as setAccTitle, o as getAccTitle, r as getConfig, K as defaultConfig, u as select, ak as setupGraphViewbox$1, M as clear$1, C as common$1 } from "./MilkdownMarkdownEditor-UNNnHq-Q.js";
1
+ import { J as setDiagramTitle, H as getDiagramTitle, m as setAccDescription, n as getAccDescription, q as setAccTitle, o as getAccTitle, r as getConfig, K as defaultConfig, u as select, ak as setupGraphViewbox$1, M as clear$1, C as common$1 } from "./MilkdownMarkdownEditor-CuTa5j4S.js";
2
2
  import { o as ordinal } from "./ordinal-DSZU4PqD.js";
3
3
  import { s as schemeTableau10 } from "./Tableau10-BqnYsPR6.js";
4
- import "./index-CaKrYTYv.js";
4
+ import "./index-B2UUF9y9.js";
5
5
  import "./init-ZxktEp_H.js";
6
6
  function max(values, valueof) {
7
7
  let max2;
@@ -1,6 +1,6 @@
1
- import { n as getAccDescription, m as setAccDescription, q as setAccTitle, J as setDiagramTitle, H as getDiagramTitle, o as getAccTitle, r as getConfig, u as select, v as log$1, A as dist, w as configureSvgSize, x as assignWithDepth$1, C as common$1, z as sanitizeText$2, M as clear$1, O as utils, ad as hasKatex, ae as calculateMathMLDimensions, af as parseFontSize, ag as ZERO_WIDTH_SPACE, ah as renderKatexSanitized, ai as getConfig$1 } from "./MilkdownMarkdownEditor-UNNnHq-Q.js";
2
- import { a as drawBackgroundRect$1, d as drawRect$1, b as getTextObj$1, c as drawEmbeddedImage, e as drawImage, g as getNoteRect$1 } from "./svgDrawCommon-b86b1483-nssZCQ5K.js";
3
- import "./index-CaKrYTYv.js";
1
+ import { n as getAccDescription, m as setAccDescription, q as setAccTitle, J as setDiagramTitle, H as getDiagramTitle, o as getAccTitle, r as getConfig, u as select, v as log$1, A as dist, w as configureSvgSize, x as assignWithDepth$1, C as common$1, z as sanitizeText$2, M as clear$1, O as utils, ad as hasKatex, ae as calculateMathMLDimensions, af as parseFontSize, ag as ZERO_WIDTH_SPACE, ah as renderKatexSanitized, ai as getConfig$1 } from "./MilkdownMarkdownEditor-CuTa5j4S.js";
2
+ import { a as drawBackgroundRect$1, d as drawRect$1, b as getTextObj$1, c as drawEmbeddedImage, e as drawImage, g as getNoteRect$1 } from "./svgDrawCommon-b86b1483-DK4i-dfJ.js";
3
+ import "./index-B2UUF9y9.js";
4
4
  var parser = function() {
5
5
  var o = function(k, v, o2, l) {
6
6
  for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
@@ -1,9 +1,9 @@
1
- import { s as styles, d as db, p as parser$1 } from "./styles-ca3715f6-DEA1MmgW.js";
2
- import { r as getConfig, u as select, v as log$1, w as configureSvgSize, C as common$1, R as curveBasis, O as utils } from "./MilkdownMarkdownEditor-UNNnHq-Q.js";
3
- import { G as Graph } from "./graph-47tN-JjA.js";
4
- import { l as layout } from "./layout-C3nD7S8q.js";
5
- import { l as line } from "./line-BD7gUCLm.js";
6
- import "./index-CaKrYTYv.js";
1
+ import { s as styles, d as db, p as parser$1 } from "./styles-ca3715f6-CKhYSe7r.js";
2
+ import { r as getConfig, u as select, v as log$1, w as configureSvgSize, C as common$1, R as curveBasis, O as utils } from "./MilkdownMarkdownEditor-CuTa5j4S.js";
3
+ import { G as Graph } from "./graph-jZhookGR.js";
4
+ import { l as layout } from "./layout-BsbNXXgR.js";
5
+ import { l as line } from "./line-OzQTpJsh.js";
6
+ import "./index-B2UUF9y9.js";
7
7
  import "./array-DgktLKBx.js";
8
8
  import "./path-Cp2qmpkd.js";
9
9
  const drawStartState = (g) => g.append("circle").attr("class", "start-state").attr("r", getConfig().state.sizeUnit).attr("cx", getConfig().state.padding + getConfig().state.sizeUnit).attr("cy", getConfig().state.padding + getConfig().state.sizeUnit);
@@ -1,13 +1,13 @@
1
- import { s as styles, d as db, p as parser$1, D as DEFAULT_NESTED_DOC_DIR, a as DEFAULT_STATE_TYPE, b as DIVIDER_TYPE, S as STMT_RELATION, c as STMT_STATE } from "./styles-ca3715f6-DEA1MmgW.js";
2
- import { G as Graph } from "./graph-47tN-JjA.js";
3
- import { v as log$1, r as getConfig, u as select, O as utils, w as configureSvgSize, C as common$1 } from "./MilkdownMarkdownEditor-UNNnHq-Q.js";
4
- import { r as render } from "./index-5325376f-BAwly5ON.js";
5
- import "./layout-C3nD7S8q.js";
6
- import "./index-CaKrYTYv.js";
7
- import "./clone-DYFbSe8n.js";
8
- import "./edges-96097737-NtlJJRFS.js";
9
- import "./createText-1719965b-DzSrNkTO.js";
10
- import "./line-BD7gUCLm.js";
1
+ import { s as styles, d as db, p as parser$1, D as DEFAULT_NESTED_DOC_DIR, a as DEFAULT_STATE_TYPE, b as DIVIDER_TYPE, S as STMT_RELATION, c as STMT_STATE } from "./styles-ca3715f6-CKhYSe7r.js";
2
+ import { G as Graph } from "./graph-jZhookGR.js";
3
+ import { v as log$1, r as getConfig, u as select, O as utils, w as configureSvgSize, C as common$1 } from "./MilkdownMarkdownEditor-CuTa5j4S.js";
4
+ import { r as render } from "./index-5325376f-CbxmatXv.js";
5
+ import "./layout-BsbNXXgR.js";
6
+ import "./index-B2UUF9y9.js";
7
+ import "./clone-D-DQ4nnY.js";
8
+ import "./edges-96097737-DycnAYk_.js";
9
+ import "./createText-1719965b-ciE8YuqI.js";
10
+ import "./line-OzQTpJsh.js";
11
11
  import "./array-DgktLKBx.js";
12
12
  import "./path-Cp2qmpkd.js";
13
13
  const SHAPE_STATE = "rect";
@@ -1,4 +1,4 @@
1
- import { H as getDiagramTitle, J as setDiagramTitle, m as setAccDescription, n as getAccDescription, o as getAccTitle, q as setAccTitle, r as getConfig, C as common$1, O as utils, v as log$1, M as clear$1, z as sanitizeText$2, aj as parseGenericTypes, u as select } from "./MilkdownMarkdownEditor-UNNnHq-Q.js";
1
+ import { H as getDiagramTitle, J as setDiagramTitle, m as setAccDescription, n as getAccDescription, o as getAccTitle, q as setAccTitle, r as getConfig, C as common$1, O as utils, v as log$1, M as clear$1, z as sanitizeText$2, aj as parseGenericTypes, u as select } from "./MilkdownMarkdownEditor-CuTa5j4S.js";
2
2
  var parser = function() {
3
3
  var o = function(k, v, o2, l) {
4
4
  for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
@@ -1,4 +1,4 @@
1
- import { H as getDiagramTitle, J as setDiagramTitle, m as setAccDescription, n as getAccDescription, q as setAccTitle, o as getAccTitle, r as getConfig, C as common$1, v as log$1, M as clear$1, ao as generateId } from "./MilkdownMarkdownEditor-UNNnHq-Q.js";
1
+ import { H as getDiagramTitle, J as setDiagramTitle, m as setAccDescription, n as getAccDescription, q as setAccTitle, o as getAccTitle, r as getConfig, C as common$1, v as log$1, M as clear$1, ao as generateId } from "./MilkdownMarkdownEditor-CuTa5j4S.js";
2
2
  var parser = function() {
3
3
  var o = function(k, v, o2, l) {
4
4
  for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
@@ -1,7 +1,7 @@
1
- import { aN as Selection, aO as root, aP as array, aQ as isPlainObject, aR as isFunction, v as log$1, r as getConfig, u as select, O as utils, ak as setupGraphViewbox$1, al as getStylesFromArray, am as interpolateToCurve, an as curveLinear, ah as renderKatexSanitized, C as common$1, S as evaluate, at as rgba } from "./MilkdownMarkdownEditor-UNNnHq-Q.js";
2
- import { G as Graph } from "./graph-47tN-JjA.js";
3
- import { r as render } from "./index-5325376f-BAwly5ON.js";
4
- import { c as channel } from "./channel-DKZcFGxg.js";
1
+ import { aN as Selection, aO as root, aP as array, aQ as isPlainObject, aR as isFunction, v as log$1, r as getConfig, u as select, O as utils, ak as setupGraphViewbox$1, al as getStylesFromArray, am as interpolateToCurve, an as curveLinear, ah as renderKatexSanitized, C as common$1, S as evaluate, at as rgba } from "./MilkdownMarkdownEditor-CuTa5j4S.js";
2
+ import { G as Graph } from "./graph-jZhookGR.js";
3
+ import { r as render } from "./index-5325376f-CbxmatXv.js";
4
+ import { c as channel } from "./channel-Bll9CBqI.js";
5
5
  function selectAll(selector) {
6
6
  return typeof selector === "string" ? new Selection([document.querySelectorAll(selector)], [document.documentElement]) : new Selection([array(selector)], root);
7
7
  }
@@ -1,4 +1,4 @@
1
- import { G as lineBreakRegex, A as dist } from "./MilkdownMarkdownEditor-UNNnHq-Q.js";
1
+ import { G as lineBreakRegex, A as dist } from "./MilkdownMarkdownEditor-CuTa5j4S.js";
2
2
  const drawRect = (element, rectData) => {
3
3
  const rectElement = element.append("rect");
4
4
  rectElement.attr("x", rectData.x);
@@ -1,6 +1,6 @@
1
- import { r as getConfig, v as log$1, u as select, ak as setupGraphViewbox$1, ap as commonDb, aq as isDark, ar as lighten, as as darken, M as clear$1 } from "./MilkdownMarkdownEditor-UNNnHq-Q.js";
2
- import { a as arc } from "./arc-CpQkTVSV.js";
3
- import "./index-CaKrYTYv.js";
1
+ import { r as getConfig, v as log$1, u as select, ak as setupGraphViewbox$1, ap as commonDb, aq as isDark, ar as lighten, as as darken, M as clear$1 } from "./MilkdownMarkdownEditor-CuTa5j4S.js";
2
+ import { a as arc } from "./arc-BAWS3N-F.js";
3
+ import "./index-B2UUF9y9.js";
4
4
  import "./path-Cp2qmpkd.js";
5
5
  var parser = function() {
6
6
  var o = function(k, v, o2, l) {
@@ -1,10 +1,10 @@
1
- import { m as setAccDescription, n as getAccDescription, H as getDiagramTitle, J as setDiagramTitle, o as getAccTitle, q as setAccTitle, v as log$1, Z as selectSvgElement, w as configureSvgSize, M as clear$1, ai as getConfig$1, z as sanitizeText$2, aM as cleanAndMerge, ab as defaultConfig$2, ac as getThemeVariables$2 } from "./MilkdownMarkdownEditor-UNNnHq-Q.js";
2
- import { a as computeDimensionOfText } from "./createText-1719965b-DzSrNkTO.js";
1
+ import { m as setAccDescription, n as getAccDescription, H as getDiagramTitle, J as setDiagramTitle, o as getAccTitle, q as setAccTitle, v as log$1, Z as selectSvgElement, w as configureSvgSize, M as clear$1, ai as getConfig$1, z as sanitizeText$2, aM as cleanAndMerge, ab as defaultConfig$2, ac as getThemeVariables$2 } from "./MilkdownMarkdownEditor-CuTa5j4S.js";
2
+ import { a as computeDimensionOfText } from "./createText-1719965b-ciE8YuqI.js";
3
3
  import { i as initRange } from "./init-ZxktEp_H.js";
4
4
  import { o as ordinal } from "./ordinal-DSZU4PqD.js";
5
- import { l as linear } from "./linear-Dml1F21i.js";
6
- import { l as line } from "./line-BD7gUCLm.js";
7
- import "./index-CaKrYTYv.js";
5
+ import { l as linear } from "./linear-DO5pdnqi.js";
6
+ import { l as line } from "./line-OzQTpJsh.js";
7
+ import "./index-B2UUF9y9.js";
8
8
  import "./array-DgktLKBx.js";
9
9
  import "./path-Cp2qmpkd.js";
10
10
  function range(start, stop, step) {
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>Research Pilot</title>
7
- <script type="module" crossorigin src="./assets/index-CaKrYTYv.js"></script>
7
+ <script type="module" crossorigin src="./assets/index-B2UUF9y9.js"></script>
8
8
  <link rel="stylesheet" crossorigin href="./assets/index-lAZsmnj1.css">
9
9
  </head>
10
10
  <body class="overflow-hidden">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "research-copilot",
3
- "version": "0.2.15",
3
+ "version": "0.2.17",
4
4
  "description": "AI-powered research assistant for scientists — literature search, data analysis, academic writing, and project management",
5
5
  "type": "module",
6
6
  "bin": {
@@ -12,6 +12,7 @@
12
12
  "app/build/",
13
13
  "app/package.json",
14
14
  "lib/skills/",
15
+ "scripts/",
15
16
  "README.md",
16
17
  "LICENSE"
17
18
  ],
@@ -25,6 +26,7 @@
25
26
  "dev": "cd app && npx electron-vite dev",
26
27
  "build": "cd app && npx electron-vite build",
27
28
  "clean": "rm -rf app/out app/dist",
29
+ "postinstall": "node ./scripts/fix-node-pty-perms.mjs",
28
30
  "prepublishOnly": "npm run build"
29
31
  },
30
32
  "keywords": [
@@ -0,0 +1,142 @@
1
+ #!/usr/bin/env node
2
+ // Backfill paper artifacts from existing literature-run review.json files.
3
+ // Usage: node scripts/backfill-papers.mjs <projectPath>
4
+ import { readFileSync, writeFileSync, mkdirSync, readdirSync, existsSync } from 'fs'
5
+ import { join } from 'path'
6
+ import { randomUUID } from 'crypto'
7
+
8
+ const projectPath = process.argv[2]
9
+ if (!projectPath) {
10
+ console.error('Usage: node scripts/backfill-papers.mjs <projectPath>')
11
+ process.exit(1)
12
+ }
13
+
14
+ const litRunsDir = join(projectPath, '.research-pilot/literature-runs')
15
+ const papersDir = join(projectPath, '.research-pilot/artifacts/papers')
16
+ mkdirSync(papersDir, { recursive: true })
17
+
18
+ // Load existing papers for dedup
19
+ const existingPapers = []
20
+ if (existsSync(papersDir)) {
21
+ for (const f of readdirSync(papersDir)) {
22
+ if (!f.endsWith('.json')) continue
23
+ try {
24
+ const p = JSON.parse(readFileSync(join(papersDir, f), 'utf-8'))
25
+ existingPapers.push(p)
26
+ } catch {}
27
+ }
28
+ }
29
+
30
+ function normalizeTitle(t) {
31
+ return t.toLowerCase().replace(/[^\w\s]/g, ' ').replace(/\s+/g, ' ').trim()
32
+ }
33
+
34
+ function isDuplicate(title, year) {
35
+ const nt = normalizeTitle(title)
36
+ return existingPapers.some(p => {
37
+ const pt = normalizeTitle(p.title)
38
+ if (pt !== nt) return false
39
+ if (!year || !p.year) return true
40
+ return p.year === year
41
+ })
42
+ }
43
+
44
+ function generateCiteKey(authors, year) {
45
+ const firstAuthor = (authors?.[0] ?? 'unknown').split(/\s+/).pop()?.toLowerCase() ?? 'unknown'
46
+ return `${firstAuthor}${year ?? 'nd'}`
47
+ }
48
+
49
+ const AUTO_SAVE_THRESHOLD = 7
50
+ let saved = 0
51
+ let skippedDup = 0
52
+ let skippedScore = 0
53
+
54
+ if (!existsSync(litRunsDir)) {
55
+ console.error(`No literature-runs dir at ${litRunsDir}`)
56
+ process.exit(1)
57
+ }
58
+
59
+ const runs = readdirSync(litRunsDir)
60
+ for (const runId of runs) {
61
+ const reviewPath = join(litRunsDir, runId, 'review.json')
62
+ if (!existsSync(reviewPath)) continue
63
+
64
+ let data
65
+ try {
66
+ data = JSON.parse(readFileSync(reviewPath, 'utf-8'))
67
+ } catch { continue }
68
+
69
+ const papers = data.review?.relevantPapers ?? []
70
+ const subTopics = data.plan?.subTopics ?? []
71
+ const roundLabel = `R-${runId}`
72
+
73
+ for (const paper of papers) {
74
+ if ((paper.relevanceScore ?? 0) < AUTO_SAVE_THRESHOLD) {
75
+ skippedScore++
76
+ continue
77
+ }
78
+ if (isDuplicate(paper.title, paper.year)) {
79
+ skippedDup++
80
+ continue
81
+ }
82
+
83
+ const authors = paper.authors?.length > 0 ? paper.authors : ['Unknown']
84
+ const citeKey = generateCiteKey(authors, paper.year)
85
+ const doi = (paper.doi ?? '').trim() || `unknown:${citeKey}`
86
+ const now = new Date().toISOString()
87
+ const id = randomUUID()
88
+
89
+ // Match subtopic
90
+ const matchedSubTopic = subTopics.find(st =>
91
+ paper.relevanceJustification?.toLowerCase().includes(st.name.toLowerCase())
92
+ )?.name
93
+
94
+ const artifact = {
95
+ id,
96
+ type: 'paper',
97
+ title: paper.title,
98
+ authors,
99
+ abstract: paper.abstract ?? '',
100
+ citeKey,
101
+ doi,
102
+ bibtex: `@article{${citeKey},\n title = {${paper.title}},\n author = {${authors.join(' and ')}},${paper.year ? `\n year = {${paper.year}},` : ''}${paper.venue ? `\n journal = {${paper.venue}},` : ''}${doi ? `\n doi = {${doi}},` : ''}${paper.url ? `\n url = {${paper.url}},` : ''}\n}`,
103
+ year: paper.year ?? undefined,
104
+ venue: paper.venue ?? undefined,
105
+ url: paper.url ?? undefined,
106
+ tags: [],
107
+ provenance: {
108
+ source: 'agent',
109
+ sessionId: 'backfill',
110
+ agentId: 'literature-team',
111
+ extractedFrom: 'agent-response'
112
+ },
113
+ createdAt: now,
114
+ updatedAt: now,
115
+ externalSource: paper.source,
116
+ relevanceScore: paper.relevanceScore,
117
+ citationCount: paper.citationCount ?? undefined,
118
+ relevanceJustification: paper.relevanceJustification,
119
+ subTopic: matchedSubTopic,
120
+ addedInRound: roundLabel,
121
+ addedByTask: 'deep_literature_study',
122
+ identityConfidence: paper.doi ? 'high' : 'medium',
123
+ semanticScholarId: paper.source === 'semantic_scholar' ? paper.id : undefined,
124
+ arxivId: paper.source === 'arxiv' ? paper.id : undefined,
125
+ }
126
+
127
+ // Remove undefined keys for clean JSON
128
+ for (const [k, v] of Object.entries(artifact)) {
129
+ if (v === undefined) delete artifact[k]
130
+ }
131
+
132
+ const filePath = join(papersDir, `${id}.json`)
133
+ writeFileSync(filePath, JSON.stringify(artifact, null, 2), 'utf-8')
134
+
135
+ // Track for dedup within this run
136
+ existingPapers.push(artifact)
137
+ saved++
138
+ console.log(` + ${paper.title.slice(0, 80)} (score: ${paper.relevanceScore})`)
139
+ }
140
+ }
141
+
142
+ console.log(`\nDone: ${saved} papers saved, ${skippedDup} duplicates skipped, ${skippedScore} below threshold (< ${AUTO_SAVE_THRESHOLD})`)
@@ -0,0 +1,32 @@
1
+ import { chmodSync, readdirSync, statSync } from 'node:fs'
2
+ import { createRequire } from 'node:module'
3
+ import path from 'node:path'
4
+
5
+ // spawn-helper is only used on Unix platforms; Windows uses conpty.
6
+ if (process.platform === 'win32') process.exit(0)
7
+
8
+ const require = createRequire(import.meta.url)
9
+
10
+ try {
11
+ // Resolve from package.json so we rely only on node-pty's public layout,
12
+ // not internal modules or runtime-loaded native bindings.
13
+ const ptyDir = path.dirname(require.resolve('node-pty/package.json'))
14
+ const prebuildsDir = path.join(ptyDir, 'prebuilds')
15
+
16
+ for (const entry of readdirSync(prebuildsDir, { withFileTypes: true })) {
17
+ if (!entry.isDirectory()) continue
18
+ const helper = path.join(prebuildsDir, entry.name, 'spawn-helper')
19
+ try {
20
+ const stat = statSync(helper)
21
+ if ((stat.mode & 0o111) !== 0o111) {
22
+ chmodSync(helper, stat.mode | 0o755)
23
+ console.log(`[postinstall] fixed node-pty helper permissions: ${helper}`)
24
+ }
25
+ } catch {
26
+ // Arch dirs without spawn-helper (e.g., win32-*) — skip silently.
27
+ }
28
+ }
29
+ } catch (error) {
30
+ const message = error instanceof Error ? error.message : String(error)
31
+ console.warn(`[postinstall] skipped node-pty helper permission fix: ${message}`)
32
+ }