@neonwatty/limner 0.1.10 → 0.1.12
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.
- package/README.md +3 -2
- package/dist/commands/ledger.d.ts +16 -1
- package/dist/commands/ledger.js +46 -9
- package/dist/commands/ledger.js.map +1 -1
- package/dist/core/ledger-delete.d.ts +1 -0
- package/dist/core/ledger-delete.js +2 -2
- package/dist/core/ledger-delete.js.map +1 -1
- package/docs/agent-workflow.md +1 -1
- package/package.json +1 -1
- package/skills/limner/SKILL.md +1 -1
package/README.md
CHANGED
|
@@ -132,12 +132,13 @@ limner ledger show traj_...
|
|
|
132
132
|
limner ledger next --trajectory traj_...
|
|
133
133
|
limner ledger export traj_... --format json
|
|
134
134
|
limner ledger export traj_... --format markdown
|
|
135
|
-
limner ledger delete trajectory --trajectory traj_... --dry-run
|
|
135
|
+
limner ledger delete trajectory --trajectory traj_... --dry-run --format json
|
|
136
|
+
limner ledger delete trajectory --trajectory traj_... --yes --backup ./limner-backup.json
|
|
136
137
|
limner ledger delete run --trajectory traj_... --run 2026-... --dry-run
|
|
137
138
|
limner ledger delete response --response resp_... --dry-run
|
|
138
139
|
```
|
|
139
140
|
|
|
140
|
-
Ledger deletes are dry-run by default. Pass `--yes` to actually delete matching local SQLite rows.
|
|
141
|
+
Ledger deletes are dry-run by default. Pass `--yes` to actually delete matching local SQLite rows. Use `--backup <path>` with trajectory deletion to write the trajectory export before hard deletion.
|
|
141
142
|
|
|
142
143
|
Agents can discover the current CLI surface with:
|
|
143
144
|
|
|
@@ -5,6 +5,10 @@ type LedgerEnv = Partial<Pick<NodeJS.ProcessEnv, 'LIMNER_LEDGER_HOME'>>;
|
|
|
5
5
|
type DeleteOptions = {
|
|
6
6
|
dryRun?: boolean;
|
|
7
7
|
yes?: boolean;
|
|
8
|
+
format?: 'text' | 'json';
|
|
9
|
+
};
|
|
10
|
+
type DeleteTrajectoryOptions = DeleteOptions & {
|
|
11
|
+
backup?: string;
|
|
8
12
|
};
|
|
9
13
|
export declare function listLedger(input: {
|
|
10
14
|
ledgerEnv?: LedgerEnv;
|
|
@@ -50,7 +54,18 @@ export declare function exportLedger(input: {
|
|
|
50
54
|
export declare function deleteLedgerTrajectoryRows(input: {
|
|
51
55
|
ledgerEnv?: LedgerEnv;
|
|
52
56
|
trajectoryId: string;
|
|
53
|
-
} &
|
|
57
|
+
} & DeleteTrajectoryOptions): {
|
|
58
|
+
backupPath: string | undefined;
|
|
59
|
+
scope: "trajectory" | "run" | "response";
|
|
60
|
+
target: string;
|
|
61
|
+
dryRun: boolean;
|
|
62
|
+
deleted: boolean;
|
|
63
|
+
counts: Array<{
|
|
64
|
+
table: string;
|
|
65
|
+
rows: number;
|
|
66
|
+
}>;
|
|
67
|
+
totalRows: number;
|
|
68
|
+
};
|
|
54
69
|
export declare function deleteLedgerRunRows(input: {
|
|
55
70
|
ledgerEnv?: LedgerEnv;
|
|
56
71
|
trajectoryId: string;
|
package/dist/commands/ledger.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { mkdirSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
1
3
|
import { deleteLedgerResponse, deleteLedgerRun, deleteLedgerTrajectory } from '../core/ledger-delete.js';
|
|
2
4
|
import { openLedgerDatabase } from '../core/ledger-db.js';
|
|
3
5
|
import { formatLedgerMarkdown } from '../core/ledger-markdown.js';
|
|
@@ -64,7 +66,16 @@ export function exportLedger(input) {
|
|
|
64
66
|
});
|
|
65
67
|
}
|
|
66
68
|
export function deleteLedgerTrajectoryRows(input) {
|
|
67
|
-
return withDb(input.ledgerEnv, (db) =>
|
|
69
|
+
return withDb(input.ledgerEnv, (db) => {
|
|
70
|
+
const shouldBackup = Boolean(input.backup && input.yes === true && input.dryRun !== true);
|
|
71
|
+
const backupJson = shouldBackup && trajectoryExists(db, input.trajectoryId)
|
|
72
|
+
? JSON.stringify(createLedgerStore(db).exportTrajectoryJson(input.trajectoryId), null, 2) + '\n'
|
|
73
|
+
: undefined;
|
|
74
|
+
const result = deleteLedgerTrajectory(db, input);
|
|
75
|
+
if (backupJson && result.deleted && input.backup)
|
|
76
|
+
writeBackup(input.backup, backupJson);
|
|
77
|
+
return { ...result, backupPath: backupJson && result.deleted ? input.backup : undefined };
|
|
78
|
+
});
|
|
68
79
|
}
|
|
69
80
|
export function deleteLedgerRunRows(input) {
|
|
70
81
|
return withDb(input.ledgerEnv, (db) => deleteLedgerRun(db, input));
|
|
@@ -88,12 +99,12 @@ export function registerLedgerCommand(program) {
|
|
|
88
99
|
}
|
|
89
100
|
function registerDeleteCommand(ledger) {
|
|
90
101
|
const remove = ledger.command('delete').description('Delete local ledger rows; dry-run by default unless --yes is passed');
|
|
91
|
-
remove.command('trajectory').requiredOption('--trajectory <id>', 'trajectory id').option('--dry-run', 'preview rows without deleting').option('--yes', 'actually delete rows')
|
|
92
|
-
.action((options) =>
|
|
93
|
-
remove.command('run').requiredOption('--trajectory <id>', 'trajectory id').requiredOption('--run <id>', 'run id').option('--dry-run', 'preview rows without deleting').option('--yes', 'actually delete rows')
|
|
94
|
-
.action((options) =>
|
|
95
|
-
remove.command('response').requiredOption('--response <id>', 'agent response id').option('--dry-run', 'preview rows without deleting').option('--yes', 'actually delete rows')
|
|
96
|
-
.action((options) =>
|
|
102
|
+
remove.command('trajectory').requiredOption('--trajectory <id>', 'trajectory id').option('--dry-run', 'preview rows without deleting').option('--yes', 'actually delete rows').option('--backup <path>', 'write trajectory JSON backup before deleting').option('--format <format>', 'text or json', 'text')
|
|
103
|
+
.action((options) => printDeleteResult(deleteLedgerTrajectoryRows({ trajectoryId: options.trajectory, dryRun: options.dryRun, yes: options.yes, backup: options.backup }), options.format));
|
|
104
|
+
remove.command('run').requiredOption('--trajectory <id>', 'trajectory id').requiredOption('--run <id>', 'run id').option('--dry-run', 'preview rows without deleting').option('--yes', 'actually delete rows').option('--format <format>', 'text or json', 'text')
|
|
105
|
+
.action((options) => printDeleteResult(deleteLedgerRunRows({ trajectoryId: options.trajectory, runId: options.run, dryRun: options.dryRun, yes: options.yes }), options.format));
|
|
106
|
+
remove.command('response').requiredOption('--response <id>', 'agent response id').option('--dry-run', 'preview rows without deleting').option('--yes', 'actually delete rows').option('--format <format>', 'text or json', 'text')
|
|
107
|
+
.action((options) => printDeleteResult(deleteLedgerResponseRows({ responseId: options.response, dryRun: options.dryRun, yes: options.yes }), options.format));
|
|
97
108
|
}
|
|
98
109
|
function withStore(env, callback) {
|
|
99
110
|
return withDb(env, (db) => callback(createLedgerStore(db)));
|
|
@@ -110,16 +121,42 @@ function withDb(env, callback) {
|
|
|
110
121
|
function formatRow(row) {
|
|
111
122
|
return `${row.trajectoryId} ${row.mode} ${row.target} ${row.status} ${row.humanId}`;
|
|
112
123
|
}
|
|
124
|
+
function printDeleteResult(result, format) {
|
|
125
|
+
if (format === 'json') {
|
|
126
|
+
console.log(JSON.stringify(result, null, 2));
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
if (format && format !== 'text')
|
|
130
|
+
throw new Error(`Unsupported ledger delete format: ${format}`);
|
|
131
|
+
console.log(formatDeleteResult(result));
|
|
132
|
+
}
|
|
113
133
|
function formatDeleteResult(result) {
|
|
114
134
|
const lines = [
|
|
115
135
|
`Ledger delete ${result.scope}: ${result.target}`,
|
|
116
|
-
`Mode: ${result
|
|
136
|
+
`Mode: ${deleteMode(result)}`,
|
|
117
137
|
'Rows:',
|
|
118
138
|
...result.counts.map((item) => `- ${item.table}: ${item.rows}`),
|
|
119
139
|
`Total rows: ${result.totalRows}`,
|
|
120
140
|
];
|
|
121
|
-
if (result.
|
|
141
|
+
if (result.backupPath)
|
|
142
|
+
lines.push(`Backup: ${result.backupPath}`);
|
|
143
|
+
if (result.totalRows === 0)
|
|
144
|
+
lines.push('No rows matched; nothing deleted.');
|
|
145
|
+
if (result.dryRun && result.totalRows > 0)
|
|
122
146
|
lines.push('Pass --yes to delete these rows.');
|
|
123
147
|
return lines.join('\n');
|
|
124
148
|
}
|
|
149
|
+
function deleteMode(result) {
|
|
150
|
+
if (result.totalRows === 0)
|
|
151
|
+
return 'no-op';
|
|
152
|
+
return result.dryRun ? 'dry-run' : 'deleted';
|
|
153
|
+
}
|
|
154
|
+
function trajectoryExists(db, trajectoryId) {
|
|
155
|
+
const row = db.prepare('select 1 from trajectories where trajectory_id = ?').get(trajectoryId);
|
|
156
|
+
return Boolean(row);
|
|
157
|
+
}
|
|
158
|
+
function writeBackup(filePath, contents) {
|
|
159
|
+
mkdirSync(path.dirname(filePath), { recursive: true });
|
|
160
|
+
writeFileSync(filePath, contents);
|
|
161
|
+
}
|
|
125
162
|
//# sourceMappingURL=ledger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../src/commands/ledger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../src/commands/ledger.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,9 +36,9 @@ export function deleteLedgerResponse(db, input) {
|
|
|
36
36
|
function performDelete(db, input, remove) {
|
|
37
37
|
const counts = input.specs.map((item) => ({ table: item.table, rows: countRows(db, item) }));
|
|
38
38
|
const totalRows = counts.reduce((total, item) => total + item.rows, 0);
|
|
39
|
-
if (totalRows === 0)
|
|
40
|
-
throw new Error(`No ledger ${input.scope} rows found for ${input.target}.`);
|
|
41
39
|
const dryRun = input.options.dryRun === true || input.options.yes !== true;
|
|
40
|
+
if (totalRows === 0)
|
|
41
|
+
return { scope: input.scope, target: input.target, dryRun, deleted: false, counts, totalRows };
|
|
42
42
|
if (!dryRun)
|
|
43
43
|
db.transaction(remove)();
|
|
44
44
|
return { scope: input.scope, target: input.target, dryRun, deleted: !dryRun, counts, totalRows };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ledger-delete.js","sourceRoot":"","sources":["../../src/core/ledger-delete.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ledger-delete.js","sourceRoot":"","sources":["../../src/core/ledger-delete.ts"],"names":[],"mappings":"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"}
|
package/docs/agent-workflow.md
CHANGED
|
@@ -22,7 +22,7 @@ Every meaningful loop interaction writes a ledger event. Agent responses are sub
|
|
|
22
22
|
|
|
23
23
|
Use `limner ledger export <trajectory-id> --format markdown` when an agent needs a compact case file for a trajectory.
|
|
24
24
|
|
|
25
|
-
Use `limner ledger delete trajectory --trajectory <trajectory-id> --dry-run`, `limner ledger delete run --trajectory <trajectory-id> --run <run-id> --dry-run`, or `limner ledger delete response --response <response-id> --dry-run` to preview local cleanup. Deletes are dry-run by default; pass `--yes` only when the previewed row counts are intended.
|
|
25
|
+
Use `limner ledger delete trajectory --trajectory <trajectory-id> --dry-run --format json`, `limner ledger delete run --trajectory <trajectory-id> --run <run-id> --dry-run`, or `limner ledger delete response --response <response-id> --dry-run` to preview local cleanup. Deletes are dry-run by default; pass `--yes` only when the previewed row counts are intended. For trajectory hard deletes, prefer `--backup <path>` so the trajectory JSON is written before rows are removed.
|
|
26
26
|
|
|
27
27
|
## Action Logging
|
|
28
28
|
|
package/package.json
CHANGED
package/skills/limner/SKILL.md
CHANGED
|
@@ -30,7 +30,7 @@ Use `limner loop` for Ralph Loop-style polishing across one or more trajectories
|
|
|
30
30
|
|
|
31
31
|
The intended edit loop is `loop compare -> loop response submit -> loop task --executor subagent -> loop action start -> edit -> loop action complete -> loop compare`. Every meaningful loop interaction writes a ledger event. Agent responses are submitted to local SQLite with the full JSON body, hash, validation status, and freshness. Keep every action `--summary` under 255 characters. Use `--feedback "<short note>"` for a 255-character `agentFeedback` note about improving the current process. Use `limner ledger export <trajectory-id> --format markdown` to hand a compact trajectory history to another agent.
|
|
32
32
|
|
|
33
|
-
For local cleanup, preview deletes first: `limner ledger delete trajectory --trajectory <trajectory-id> --dry-run`, `limner ledger delete run --trajectory <trajectory-id> --run <run-id> --dry-run`, or `limner ledger delete response --response <response-id> --dry-run`. Deletes are dry-run by default; pass `--yes` only after checking the row counts.
|
|
33
|
+
For local cleanup, preview deletes first: `limner ledger delete trajectory --trajectory <trajectory-id> --dry-run --format json`, `limner ledger delete run --trajectory <trajectory-id> --run <run-id> --dry-run`, or `limner ledger delete response --response <response-id> --dry-run`. Deletes are dry-run by default; pass `--yes` only after checking the row counts. For trajectory hard deletes, prefer `--backup <path>` so the trajectory JSON is written before rows are removed.
|
|
34
34
|
|
|
35
35
|
Use `limner loop task --trajectory <trajectory-id> --executor subagent --format json` when another tool needs machine-readable task data. The task is generated from the latest validated response stored in SQLite and includes a stable `comparisonSource`; do not depend on mutable files under `captures/**` as the source of truth.
|
|
36
36
|
|