lurqrun 0.1.7 → 0.1.8

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 (122) hide show
  1. package/README.md +312 -148
  2. package/dist/{auditHandler-JCOJSUYW.js → auditHandler-VWCXSDVO.js} +12 -11
  3. package/dist/autopilotInit-Q62MX5M6.js +178 -0
  4. package/dist/bin/lurq.js +235 -83
  5. package/dist/{browserAuth-B6G27USY.js → browserAuth-J7APSD4P.js} +4 -3
  6. package/dist/{cache-DKI34SVS.js → cache-AEAKCV4I.js} +2 -2
  7. package/dist/check-2JTQDQA6.js +2613 -0
  8. package/dist/{check-2FDGUOV7.js → check-PQSQ2MMA.js} +1 -1
  9. package/dist/checkUpgrade-5YW77OBL.js +24 -0
  10. package/dist/{chunk-BCANRN5B.js → chunk-2GAYNIHG.js} +8 -1
  11. package/dist/{chunk-EA3DP5HG.js → chunk-2O6Z37IT.js} +155 -25
  12. package/dist/{chunk-J5FZYN4A.js → chunk-2WD4QAH4.js} +1 -1
  13. package/dist/{chunk-CUP36ND3.js → chunk-3676XOBU.js} +145 -36
  14. package/dist/chunk-3D2MPGOQ.js +181 -0
  15. package/dist/{chunk-LYMPYETA.js → chunk-4JHDSVIN.js} +270 -6
  16. package/dist/chunk-53SG6XWA.js +141 -0
  17. package/dist/chunk-5ABNDB3I.js +37 -0
  18. package/dist/chunk-5ALIJFDA.js +114 -0
  19. package/dist/{chunk-BULZAX2U.js → chunk-64ZF7KO4.js} +55 -38
  20. package/dist/{chunk-2VMOWSRY.js → chunk-6DM6UQFD.js} +19 -1
  21. package/dist/{chunk-HWBBVLOT.js → chunk-6L67QMCP.js} +1 -1
  22. package/dist/{chunk-GPTKSNR6.js → chunk-72Y2FDVS.js} +2 -1
  23. package/dist/{chunk-B43LCXBM.js → chunk-A3TYI2TF.js} +81 -16
  24. package/dist/{chunk-IQ4SDKKY.js → chunk-B2UUYRBX.js} +31 -228
  25. package/dist/{chunk-DB2VF5UD.js → chunk-BJT2LHAR.js} +16 -11
  26. package/dist/chunk-BM3LF5T6.js +132 -0
  27. package/dist/{chunk-3N3Q3DSW.js → chunk-BN3NM47Q.js} +8 -8
  28. package/dist/chunk-D3K6IZVR.js +12845 -0
  29. package/dist/{chunk-AHBP533R.js → chunk-D3VTZS7V.js} +7 -5
  30. package/dist/{chunk-UDVNA7EA.js → chunk-DM37MTOO.js} +161 -8
  31. package/dist/chunk-DONTW3NE.js +171 -0
  32. package/dist/{chunk-M6NYEXCW.js → chunk-DSROTZ3Z.js} +1 -1
  33. package/dist/{chunk-4F7ZESPO.js → chunk-EQCXENKZ.js} +3 -5
  34. package/dist/{chunk-CW5HJ3LX.js → chunk-EYAKM6YN.js} +1 -1
  35. package/dist/{chunk-VL2E5T2A.js → chunk-FDFPMBCA.js} +6 -3
  36. package/dist/{chunk-BV32UNLL.js → chunk-FVYFV5HA.js} +2 -2
  37. package/dist/{chunk-DWAGCNEL.js → chunk-GM5Y555O.js} +36 -103
  38. package/dist/{chunk-PSX3GIAN.js → chunk-HWFX4BC4.js} +2 -1
  39. package/dist/chunk-IFNONGRQ.js +603 -0
  40. package/dist/chunk-J3U2CPSK.js +136 -0
  41. package/dist/{chunk-Y5GI7RL3.js → chunk-J6XQ7OPZ.js} +9 -1
  42. package/dist/{chunk-LBFGSSF2.js → chunk-KMV4Y6R3.js} +2 -1
  43. package/dist/{chunk-L6N4JFW2.js → chunk-KP5ZDDPE.js} +81 -4
  44. package/dist/{chunk-SJOVFF7B.js → chunk-KYKSZ3XZ.js} +3 -2
  45. package/dist/chunk-NEZNAPPN.js +41 -0
  46. package/dist/{chunk-NH5I4KHH.js → chunk-NPVN2THM.js} +1 -5
  47. package/dist/{chunk-6L3U7DZ5.js → chunk-NYZU5NCW.js} +1 -1
  48. package/dist/chunk-O4KHCV6I.js +320 -0
  49. package/dist/{chunk-LO35HLQZ.js → chunk-ONDVTXUO.js} +25 -4
  50. package/dist/{chunk-4ZYCIMY4.js → chunk-OTJFHESY.js} +25 -4
  51. package/dist/chunk-P6MIKSPY.js +243 -0
  52. package/dist/{checkUpgrade-F2WESBPM.js → chunk-QCRBX3LV.js} +72 -10
  53. package/dist/{chunk-LRD4GBYE.js → chunk-QUIMQ7YL.js} +1 -1
  54. package/dist/chunk-RG3YLU6E.js +49 -0
  55. package/dist/{chunk-ST2X2GYN.js → chunk-SHZFOSXC.js} +109 -20
  56. package/dist/{chunk-CIDWNUAP.js → chunk-SOXFMMXC.js} +8 -2
  57. package/dist/chunk-TDTYV6QI.js +119 -0
  58. package/dist/{chunk-FW6BD2NO.js → chunk-TUXQ32WE.js} +457 -121
  59. package/dist/{chunk-WQ23REYT.js → chunk-VGCDRK3S.js} +1 -1
  60. package/dist/{chunk-U5AT3TD4.js → chunk-X4W64MHU.js} +1735 -1858
  61. package/dist/chunk-XBQA4I36.js +92 -0
  62. package/dist/chunk-XGOV6KV4.js +413 -0
  63. package/dist/{chunk-OQS4GUSI.js → chunk-XIFQIFSZ.js} +210 -661
  64. package/dist/{chunk-XBIDMHSK.js → chunk-XLXPVN3Y.js} +2 -34
  65. package/dist/chunk-ZJMLQ37G.js +90 -0
  66. package/dist/{client-IRKAMDYZ.js → client-MU4EUDZV.js} +3 -3
  67. package/dist/{commands-FIL5ET6P.js → commands-UOOTMBKA.js} +145 -33
  68. package/dist/{compat-R3UTFQ5Q.js → compat-Q5DVPITN.js} +6 -6
  69. package/dist/constants-DJFOFZ44.js +24 -0
  70. package/dist/{dashboardIssue-WYYMBFIB.js → dashboardIssue-KBKLQMGC.js} +105 -23
  71. package/dist/{diff-GZA2774U.js → diff-I4SNUHU3.js} +1 -1
  72. package/dist/domains-VRT4BRVZ.js +14 -0
  73. package/dist/env-UN6KGZ7S.js +15 -0
  74. package/dist/envCheck-KUPTORFQ.js +71 -0
  75. package/dist/{extract-NKGKLIVT.js → extract-6WG265BL.js} +14 -3
  76. package/dist/{fetch-QYTUJVG2.js → fetch-PJ3SC32M.js} +4 -4
  77. package/dist/{firstTouch-QQTJH4QX.js → firstTouch-COJCMOB3.js} +1 -1
  78. package/dist/fix-3EDWNKW3.js +220 -0
  79. package/dist/{handlers-GEJAVZDK.js → handlers-4Q37WIFT.js} +19 -17
  80. package/dist/hook-NA66XJLC.js +412 -0
  81. package/dist/{http-ETPYMBGD.js → http-25GJ6SKK.js} +2078 -510
  82. package/dist/{ingestQueue-VKN4KBIF.js → ingestQueue-FSVJC3AA.js} +14 -12
  83. package/dist/{install-EK3W2COX.js → install-G2HHXYJ2.js} +6 -6
  84. package/dist/{installSkill-VQJWJVCL.js → installSkill-5TIMYIJZ.js} +21 -3
  85. package/dist/manifest-ENMIC54B.js +13 -0
  86. package/dist/{mcp-3JHD5SUZ.js → mcp-PENLL2PK.js} +60 -32
  87. package/dist/mcpConfig-3LYPRY5Q.js +80 -0
  88. package/dist/{mcpHandlers-QFN4MCFL.js → mcpHandlers-PO7GENA7.js} +7 -7
  89. package/dist/{mcpScan-QZHWENIP.js → mcpScan-ULP626TQ.js} +306 -442
  90. package/dist/{mcpScanWorkflow-JPYCBGC4.js → mcpScanWorkflow-27O44FOE.js} +29 -12
  91. package/dist/{mcpStack-BYJCZNIV.js → mcpStack-ZNYIFXZ5.js} +1 -1
  92. package/dist/model-ASMZWLM7.js +214 -0
  93. package/dist/{packages-THVFMWFP.js → packages-RWF2LXST.js} +3 -5
  94. package/dist/{plan-V4OEI3J4.js → plan-SDILIDZT.js} +23 -21
  95. package/dist/{planView-JRXGCG2N.js → planView-ZAKRTGVS.js} +4 -1
  96. package/dist/{policy-3P6BGRDN.js → policy-JAGNMQJI.js} +5 -5
  97. package/dist/probe-3IK646WN.js +610 -0
  98. package/dist/publicUpgrades-WTBGLDIK.js +42 -0
  99. package/dist/{references-6N7VEPHT.js → references-I6Y4BSRR.js} +3 -1
  100. package/dist/{release-4U4ABNSJ.js → release-7IU2R4YG.js} +5 -5
  101. package/dist/{remote-YGCXYI4V.js → remote-FN6225AH.js} +13 -3
  102. package/dist/rename-OS6JYBZQ.js +204 -0
  103. package/dist/{reportRuns-CKQQYLY4.js → reportRuns-O4X7ZFTX.js} +15 -2
  104. package/dist/safeFetch-COERXGFN.js +19 -0
  105. package/dist/{sandbox-MEZLAODF.js → sandbox-SAPSRKEI.js} +4 -4
  106. package/dist/sarif-WLVJFJ7U.js +125 -0
  107. package/dist/server-OLTY3NYT.js +59 -0
  108. package/dist/{surface-V62GE554.js → surface-7MHE3RL7.js} +18 -16
  109. package/dist/{surface-YL6O67W3.js → surface-JS2XU3U3.js} +5 -3
  110. package/dist/{surfaceHandlers-X2IZKA3E.js → surfaceHandlers-4B6TMZ34.js} +5 -5
  111. package/dist/{typecheck-X7U5ELMR.js → typecheck-NGOKNAJY.js} +23 -9
  112. package/dist/{uninstall-P7RGBX6G.js → uninstall-I2IJP5JZ.js} +30 -4
  113. package/dist/{upgrade-NQ5IWFZB.js → upgrade-FS26DJGG.js} +86 -32
  114. package/dist/{upgradePlan-A4LRKLEG.js → upgradePlan-ZS5IOVMZ.js} +46 -11
  115. package/dist/upkeepHandler-VFGYXJKB.js +13 -0
  116. package/dist/{userConfig-Z3GQE776.js → userConfig-ICASHI47.js} +1 -1
  117. package/dist/{watch-DGFMWUDL.js → watch-OCNEUXG6.js} +24 -34
  118. package/package.json +3 -2
  119. package/templates/skill-instructions.md +22 -3
  120. package/dist/chunk-6AAEVQ7I.js +0 -6336
  121. package/dist/chunk-I2JUKN6Z.js +0 -24
  122. package/dist/server-KFUD5X57.js +0 -55
@@ -0,0 +1,132 @@
1
+ import { createRequire as __lurqCreateRequire } from 'node:module'; const require = __lurqCreateRequire(import.meta.url);
2
+ import {
3
+ init_esm_shims
4
+ } from "./chunk-I3M2KJXB.js";
5
+
6
+ // src/fix/types.ts
7
+ init_esm_shims();
8
+ var deterministic = (f) => Boolean(f.fix?.edits?.length);
9
+ function applyEdits(contents, edits) {
10
+ const sorted = [...edits].sort((a, b) => a.start - b.start);
11
+ for (let i = 1; i < sorted.length; i++) {
12
+ if (sorted[i].start < sorted[i - 1].end) {
13
+ throw new Error(
14
+ `overlapping edits at ${sorted[i - 1].start}-${sorted[i - 1].end} and ${sorted[i].start}-${sorted[i].end}`
15
+ );
16
+ }
17
+ }
18
+ let out = contents;
19
+ for (const e of [...sorted].reverse()) {
20
+ if (e.start < 0 || e.end > out.length || e.end < e.start) {
21
+ throw new Error(`edit out of range: ${e.start}-${e.end} in ${e.file} (${out.length} chars)`);
22
+ }
23
+ const found = out.slice(e.start, e.end);
24
+ if (e.was !== void 0 && found !== e.was) {
25
+ throw new Error(
26
+ `${e.file} changed since it was read: expected ${JSON.stringify(e.was)} at ${e.start}-${e.end}, found ${JSON.stringify(found)}`
27
+ );
28
+ }
29
+ out = out.slice(0, e.start) + e.text + out.slice(e.end);
30
+ }
31
+ return out;
32
+ }
33
+ function editsByFile(findings) {
34
+ const byFile = /* @__PURE__ */ new Map();
35
+ for (const f of findings) {
36
+ for (const e of f.fix?.edits ?? []) {
37
+ const list = byFile.get(e.file);
38
+ if (list) list.push(e);
39
+ else byFile.set(e.file, [e]);
40
+ }
41
+ }
42
+ return byFile;
43
+ }
44
+
45
+ // src/fix/diff.ts
46
+ init_esm_shims();
47
+ var CONTEXT = 3;
48
+ var NO_EOL = "\\n";
49
+ function lineStarts(text) {
50
+ const starts = [0];
51
+ for (let i = 0; i < text.length; i++) if (text[i] === "\n") starts.push(i + 1);
52
+ return starts;
53
+ }
54
+ function lineOf(starts, offset) {
55
+ let lo = 0;
56
+ let hi = starts.length - 1;
57
+ while (lo < hi) {
58
+ const mid = lo + hi + 1 >> 1;
59
+ if (starts[mid] <= offset) lo = mid;
60
+ else hi = mid - 1;
61
+ }
62
+ return lo;
63
+ }
64
+ function positionAt(text, offset) {
65
+ const starts = lineStarts(text);
66
+ const line = lineOf(starts, Math.max(0, Math.min(offset, text.length)));
67
+ return { line: line + 1, column: offset - starts[line] + 1 };
68
+ }
69
+ function hunksFor(edits, starts) {
70
+ const hunks = [];
71
+ for (const e of [...edits].sort((a, b) => a.start - b.start)) {
72
+ const firstLine = lineOf(starts, e.start);
73
+ const lastLine = lineOf(starts, Math.max(e.start, e.end - 1));
74
+ const open = hunks[hunks.length - 1];
75
+ if (open && firstLine - open.lastLine <= CONTEXT * 2 + 1) {
76
+ open.edits.push(e);
77
+ open.lastLine = Math.max(open.lastLine, lastLine);
78
+ } else {
79
+ hunks.push({ edits: [e], firstLine, lastLine });
80
+ }
81
+ }
82
+ return hunks;
83
+ }
84
+ function unifiedDiff(file, before, edits) {
85
+ if (edits.length === 0) return "";
86
+ const starts = lineStarts(before);
87
+ const lines = before.split("\n");
88
+ const lastRealLine = before.endsWith("\n") ? lines.length - 2 : lines.length - 1;
89
+ let out = `--- a/${file}
90
+ +++ b/${file}
91
+ `;
92
+ let delta = 0;
93
+ for (const hunk of hunksFor(edits, starts)) {
94
+ const from = Math.max(0, hunk.firstLine - CONTEXT);
95
+ const to = Math.min(lastRealLine, hunk.lastLine + CONTEXT);
96
+ const sliceStart = starts[from];
97
+ const sliceEnd = to + 1 < starts.length ? starts[to + 1] - 1 : before.length;
98
+ const oldText = before.slice(sliceStart, sliceEnd);
99
+ const newText = applyEdits(
100
+ oldText,
101
+ hunk.edits.map((e) => ({ ...e, start: e.start - sliceStart, end: e.end - sliceStart }))
102
+ );
103
+ const oldLines = oldText.split("\n");
104
+ const newLines = newText.split("\n");
105
+ const head = hunk.firstLine - from;
106
+ const tail = to - hunk.lastLine;
107
+ const atEOF = to === lastRealLine && !before.endsWith("\n");
108
+ out += `@@ -${from + 1},${oldLines.length} +${from + 1 + delta},${newLines.length} @@
109
+ `;
110
+ for (let i = 0; i < head; i++) out += ` ${oldLines[i]}
111
+ `;
112
+ for (let i = head; i < oldLines.length - tail; i++) out += `-${oldLines[i]}
113
+ `;
114
+ if (atEOF && tail === 0) out += NO_EOL;
115
+ for (let i = head; i < newLines.length - tail; i++) out += `+${newLines[i]}
116
+ `;
117
+ if (atEOF && tail === 0) out += NO_EOL;
118
+ for (let i = tail; i > 0; i--) out += ` ${oldLines[oldLines.length - i]}
119
+ `;
120
+ if (atEOF && tail > 0) out += NO_EOL;
121
+ delta += newLines.length - oldLines.length;
122
+ }
123
+ return out;
124
+ }
125
+
126
+ export {
127
+ deterministic,
128
+ applyEdits,
129
+ editsByFile,
130
+ positionAt,
131
+ unifiedDiff
132
+ };
@@ -2,24 +2,24 @@ import { createRequire as __lurqCreateRequire } from 'node:module'; const requir
2
2
  import {
3
3
  loadStored,
4
4
  rowsToSurface
5
- } from "./chunk-DB2VF5UD.js";
6
- import {
7
- configRequestLine,
8
- fetchServerManifest,
9
- missingConfig
10
- } from "./chunk-LEGPB7DO.js";
5
+ } from "./chunk-BJT2LHAR.js";
11
6
  import {
12
7
  MCP_TIER,
13
8
  contractOf,
14
9
  diffMcpSurfaces,
15
10
  summarizeDrift
16
11
  } from "./chunk-6EQ3ARXA.js";
12
+ import {
13
+ configRequestLine,
14
+ fetchServerManifest,
15
+ missingConfig
16
+ } from "./chunk-LEGPB7DO.js";
17
17
  import {
18
18
  enqueueSurface
19
- } from "./chunk-LO35HLQZ.js";
19
+ } from "./chunk-ONDVTXUO.js";
20
20
  import {
21
21
  cached
22
- } from "./chunk-HWBBVLOT.js";
22
+ } from "./chunk-6L67QMCP.js";
23
23
  import {
24
24
  init_esm_shims
25
25
  } from "./chunk-I3M2KJXB.js";