mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-19 21:18:20 +02:00
Jauge de contexte, espace disque sur partage agrégé, panneau Fichiers
Trois défauts sans rapport entre eux, tous visibles à l'écran. Jauge de contexte bloquée à « 0 / N (0 %) » : le comptage exact vient de usage.prompt_tokens (include_usage), qu'un llama-server récent a cessé de renvoyer. On note désormais si l'usage est arrivé ; sinon la fin de tour publie l'estimation qui pilote déjà la compaction — approximative, mais jamais absente. Et la souscription envoie la valeur courante juste après le rattrapage : une page rechargée affichait zéro sur une discussion pourtant pleine, faute d'événement ctx_used dans la fenêtre rejouée. Espace disque : « il ne reste que 11,9 Go » sur un partage Unraid qui en a des centaines. /mnt/user est servi par shfs, un FUSE qui agrège plusieurs disques — statfs y renvoie l'espace d'un seul, et ce chiffre REFUSAIT l'installation du modèle. Les systèmes de fichiers qui approximent (FUSE, overlay, NFS, CIFS, Ceph, Gluster) sont reconnus par leur magie : leur chiffre reste affiché, précédé d'un « ~ », mais ne bloque plus rien. Panneau Fichiers : le panneau entier défilait, emportant vers le haut l'en-tête, le fil d'Ariane et le pied (occupation disque, bouton .zip) dès qu'il y avait quelques fichiers. Seule la liste défile maintenant ; le pied reste en bas et l'état vide se centre. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
895ff92ed8
commit
b405adea6c
5118 files changed
+1264007
-23
No files matched your search
+21
@@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2015 Brian Donovan
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
# lines-and-columns
|
||||
|
||||
Maps lines and columns to character offsets and back. This is useful for parsers
|
||||
and other text processors that deal in character ranges but process text with
|
||||
meaningful lines and columns.
|
||||
|
||||
## Install
|
||||
|
||||
```
|
||||
$ npm install [--save] lines-and-columns
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
```js
|
||||
import { LinesAndColumns } from 'lines-and-columns'
|
||||
|
||||
const lines = new LinesAndColumns(
|
||||
`table {
|
||||
border: 0
|
||||
}`
|
||||
)
|
||||
|
||||
lines.locationForIndex(9)
|
||||
// { line: 1, column: 1 }
|
||||
|
||||
lines.indexForLocation({ line: 1, column: 2 })
|
||||
// 10
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
export declare type SourceLocation = {
|
||||
line: number;
|
||||
column: number;
|
||||
};
|
||||
export declare class LinesAndColumns {
|
||||
private string;
|
||||
private offsets;
|
||||
constructor(string: string);
|
||||
locationForIndex(index: number): SourceLocation | null;
|
||||
indexForLocation(location: SourceLocation): number | null;
|
||||
private lengthOfLine;
|
||||
}
|
||||
export default LinesAndColumns;
|
||||
+62
@@ -0,0 +1,62 @@
|
||||
"use strict";
|
||||
exports.__esModule = true;
|
||||
exports.LinesAndColumns = void 0;
|
||||
var LF = '\n';
|
||||
var CR = '\r';
|
||||
var LinesAndColumns = /** @class */ (function () {
|
||||
function LinesAndColumns(string) {
|
||||
this.string = string;
|
||||
var offsets = [0];
|
||||
for (var offset = 0; offset < string.length;) {
|
||||
switch (string[offset]) {
|
||||
case LF:
|
||||
offset += LF.length;
|
||||
offsets.push(offset);
|
||||
break;
|
||||
case CR:
|
||||
offset += CR.length;
|
||||
if (string[offset] === LF) {
|
||||
offset += LF.length;
|
||||
}
|
||||
offsets.push(offset);
|
||||
break;
|
||||
default:
|
||||
offset++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
this.offsets = offsets;
|
||||
}
|
||||
LinesAndColumns.prototype.locationForIndex = function (index) {
|
||||
if (index < 0 || index > this.string.length) {
|
||||
return null;
|
||||
}
|
||||
var line = 0;
|
||||
var offsets = this.offsets;
|
||||
while (offsets[line + 1] <= index) {
|
||||
line++;
|
||||
}
|
||||
var column = index - offsets[line];
|
||||
return { line: line, column: column };
|
||||
};
|
||||
LinesAndColumns.prototype.indexForLocation = function (location) {
|
||||
var line = location.line, column = location.column;
|
||||
if (line < 0 || line >= this.offsets.length) {
|
||||
return null;
|
||||
}
|
||||
if (column < 0 || column > this.lengthOfLine(line)) {
|
||||
return null;
|
||||
}
|
||||
return this.offsets[line] + column;
|
||||
};
|
||||
LinesAndColumns.prototype.lengthOfLine = function (line) {
|
||||
var offset = this.offsets[line];
|
||||
var nextOffset = line === this.offsets.length - 1
|
||||
? this.string.length
|
||||
: this.offsets[line + 1];
|
||||
return nextOffset - offset;
|
||||
};
|
||||
return LinesAndColumns;
|
||||
}());
|
||||
exports.LinesAndColumns = LinesAndColumns;
|
||||
exports["default"] = LinesAndColumns;
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"name": "lines-and-columns",
|
||||
"version": "1.2.4",
|
||||
"description": "Maps lines and columns to character offsets and back.",
|
||||
"keywords": [
|
||||
"lines",
|
||||
"columns",
|
||||
"parser"
|
||||
],
|
||||
"homepage": "https://github.com/eventualbuddha/lines-and-columns#readme",
|
||||
"bugs": {
|
||||
"url": "https://github.com/eventualbuddha/lines-and-columns/issues"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/eventualbuddha/lines-and-columns.git"
|
||||
},
|
||||
"license": "MIT",
|
||||
"author": "Brian Donovan <brian@donovans.cc>",
|
||||
"main": "./build/index.js",
|
||||
"types": "./build/index.d.ts",
|
||||
"files": [
|
||||
"build"
|
||||
],
|
||||
"scripts": {
|
||||
"build:watch": "tsc --build tsconfig.build.json --watch",
|
||||
"lint": "eslint .",
|
||||
"lint:fix": "eslint . --fix",
|
||||
"test": "is-ci test:coverage test:watch",
|
||||
"test:coverage": "jest --coverage",
|
||||
"test:watch": "jest --watch"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/jest": "^27.0.3",
|
||||
"@types/node": "^16.11.9",
|
||||
"@typescript-eslint/eslint-plugin": "^5.4.0",
|
||||
"@typescript-eslint/parser": "^5.4.0",
|
||||
"esbuild": "^0.13.15",
|
||||
"esbuild-runner": "^2.2.1",
|
||||
"eslint": "^8.2.0",
|
||||
"eslint-config-prettier": "^8.3.0",
|
||||
"eslint-plugin-prettier": "^4.0.0",
|
||||
"is-ci-cli": "^2.2.0",
|
||||
"jest": "^27.3.1",
|
||||
"prettier": "^2.4.1",
|
||||
"semantic-release": "^18.0.0",
|
||||
"typescript": "^4.5.2"
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user