@neonwatty/limner 0.1.9 → 0.1.11

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 CHANGED
@@ -132,8 +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
136
+ limner ledger delete run --trajectory traj_... --run 2026-... --dry-run
137
+ limner ledger delete response --response resp_... --dry-run
135
138
  ```
136
139
 
140
+ Ledger deletes are dry-run by default. Pass `--yes` to actually delete matching local SQLite rows.
141
+
137
142
  Agents can discover the current CLI surface with:
138
143
 
139
144
  ```bash
@@ -1,6 +1,11 @@
1
1
  import type { Command } from 'commander';
2
+ import { type LedgerDeleteResult } from '../core/ledger-delete.js';
2
3
  import type { LedgerMode } from '../schemas/ledger.js';
3
4
  type LedgerEnv = Partial<Pick<NodeJS.ProcessEnv, 'LIMNER_LEDGER_HOME'>>;
5
+ type DeleteOptions = {
6
+ dryRun?: boolean;
7
+ yes?: boolean;
8
+ };
4
9
  export declare function listLedger(input: {
5
10
  ledgerEnv?: LedgerEnv;
6
11
  active?: boolean;
@@ -42,5 +47,18 @@ export declare function exportLedger(input: {
42
47
  trajectoryId: string;
43
48
  format: 'json' | 'markdown';
44
49
  }): string;
50
+ export declare function deleteLedgerTrajectoryRows(input: {
51
+ ledgerEnv?: LedgerEnv;
52
+ trajectoryId: string;
53
+ } & DeleteOptions): LedgerDeleteResult;
54
+ export declare function deleteLedgerRunRows(input: {
55
+ ledgerEnv?: LedgerEnv;
56
+ trajectoryId: string;
57
+ runId: string;
58
+ } & DeleteOptions): LedgerDeleteResult;
59
+ export declare function deleteLedgerResponseRows(input: {
60
+ ledgerEnv?: LedgerEnv;
61
+ responseId: string;
62
+ } & DeleteOptions): LedgerDeleteResult;
45
63
  export declare function registerLedgerCommand(program: Command): void;
46
64
  export {};
@@ -1,3 +1,4 @@
1
+ import { deleteLedgerResponse, deleteLedgerRun, deleteLedgerTrajectory } from '../core/ledger-delete.js';
1
2
  import { openLedgerDatabase } from '../core/ledger-db.js';
2
3
  import { formatLedgerMarkdown } from '../core/ledger-markdown.js';
3
4
  import { resolveLedgerPaths } from '../core/ledger-paths.js';
@@ -62,6 +63,15 @@ export function exportLedger(input) {
62
63
  return formatLedgerMarkdown(exported);
63
64
  });
64
65
  }
66
+ export function deleteLedgerTrajectoryRows(input) {
67
+ return withDb(input.ledgerEnv, (db) => deleteLedgerTrajectory(db, input));
68
+ }
69
+ export function deleteLedgerRunRows(input) {
70
+ return withDb(input.ledgerEnv, (db) => deleteLedgerRun(db, input));
71
+ }
72
+ export function deleteLedgerResponseRows(input) {
73
+ return withDb(input.ledgerEnv, (db) => deleteLedgerResponse(db, input));
74
+ }
65
75
  export function registerLedgerCommand(program) {
66
76
  const ledger = program.command('ledger').description('Query the global Limner loop ledger');
67
77
  ledger.command('list').option('--active', 'only active trajectories').option('--project <path>', 'project root').option('--mode <mode>', 'loop mode')
@@ -74,6 +84,16 @@ export function registerLedgerCommand(program) {
74
84
  .action((options) => console.log(getLedgerNext({ trajectoryId: options.trajectory }).line));
75
85
  ledger.command('export').argument('<id>', 'trajectory id').option('--format <format>', 'json or markdown', 'json')
76
86
  .action((id, options) => console.log(exportLedger({ trajectoryId: id, format: options.format })));
87
+ registerDeleteCommand(ledger);
88
+ }
89
+ function registerDeleteCommand(ledger) {
90
+ 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) => console.log(formatDeleteResult(deleteLedgerTrajectoryRows({ trajectoryId: options.trajectory, dryRun: options.dryRun, yes: options.yes }))));
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) => console.log(formatDeleteResult(deleteLedgerRunRows({ trajectoryId: options.trajectory, runId: options.run, dryRun: options.dryRun, yes: options.yes }))));
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) => console.log(formatDeleteResult(deleteLedgerResponseRows({ responseId: options.response, dryRun: options.dryRun, yes: options.yes }))));
77
97
  }
78
98
  function withStore(env, callback) {
79
99
  return withDb(env, (db) => callback(createLedgerStore(db)));
@@ -90,4 +110,23 @@ function withDb(env, callback) {
90
110
  function formatRow(row) {
91
111
  return `${row.trajectoryId} ${row.mode} ${row.target} ${row.status} ${row.humanId}`;
92
112
  }
113
+ function formatDeleteResult(result) {
114
+ const lines = [
115
+ `Ledger delete ${result.scope}: ${result.target}`,
116
+ `Mode: ${deleteMode(result)}`,
117
+ 'Rows:',
118
+ ...result.counts.map((item) => `- ${item.table}: ${item.rows}`),
119
+ `Total rows: ${result.totalRows}`,
120
+ ];
121
+ if (result.totalRows === 0)
122
+ lines.push('No rows matched; nothing deleted.');
123
+ if (result.dryRun && result.totalRows > 0)
124
+ lines.push('Pass --yes to delete these rows.');
125
+ return lines.join('\n');
126
+ }
127
+ function deleteMode(result) {
128
+ if (result.totalRows === 0)
129
+ return 'no-op';
130
+ return result.dryRun ? 'dry-run' : 'deleted';
131
+ }
93
132
  //# sourceMappingURL=ledger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../src/commands/ledger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../src/commands/ledger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { LedgerDatabase } from './ledger-db.js';
2
+ type DeleteOptions = {
3
+ dryRun?: boolean;
4
+ yes?: boolean;
5
+ };
6
+ export type LedgerDeleteResult = {
7
+ scope: 'trajectory' | 'run' | 'response';
8
+ target: string;
9
+ dryRun: boolean;
10
+ deleted: boolean;
11
+ counts: Array<{
12
+ table: string;
13
+ rows: number;
14
+ }>;
15
+ totalRows: number;
16
+ };
17
+ export declare function deleteLedgerTrajectory(db: LedgerDatabase, input: DeleteOptions & {
18
+ trajectoryId: string;
19
+ }): LedgerDeleteResult;
20
+ export declare function deleteLedgerRun(db: LedgerDatabase, input: DeleteOptions & {
21
+ trajectoryId: string;
22
+ runId: string;
23
+ }): LedgerDeleteResult;
24
+ export declare function deleteLedgerResponse(db: LedgerDatabase, input: DeleteOptions & {
25
+ responseId: string;
26
+ }): LedgerDeleteResult;
27
+ export {};
@@ -0,0 +1,53 @@
1
+ export function deleteLedgerTrajectory(db, input) {
2
+ const specs = [
3
+ spec('trajectories', 'trajectory_id = ?', input.trajectoryId),
4
+ spec('iterations', 'trajectory_id = ?', input.trajectoryId),
5
+ spec('runs', 'trajectory_id = ?', input.trajectoryId),
6
+ spec('artifacts', 'trajectory_id = ?', input.trajectoryId),
7
+ spec('instruction_versions', 'trajectory_id = ?', input.trajectoryId),
8
+ spec('notes', 'trajectory_id = ?', input.trajectoryId),
9
+ spec('ledger_events', 'trajectory_id = ?', input.trajectoryId),
10
+ spec('agent_responses', 'trajectory_id = ?', input.trajectoryId),
11
+ ];
12
+ return performDelete(db, { scope: 'trajectory', target: input.trajectoryId, options: input, specs }, () => {
13
+ db.prepare('delete from ledger_events where trajectory_id = ?').run(input.trajectoryId);
14
+ db.prepare('delete from trajectories where trajectory_id = ?').run(input.trajectoryId);
15
+ });
16
+ }
17
+ export function deleteLedgerRun(db, input) {
18
+ const specs = [
19
+ spec('runs', 'trajectory_id = ? and run_id = ?', input.trajectoryId, input.runId),
20
+ spec('artifacts', 'trajectory_id = ? and run_id = ?', input.trajectoryId, input.runId),
21
+ spec('ledger_events', 'trajectory_id = ? and run_id = ?', input.trajectoryId, input.runId),
22
+ spec('agent_responses', 'trajectory_id = ? and run_id = ?', input.trajectoryId, input.runId),
23
+ ];
24
+ return performDelete(db, { scope: 'run', target: input.runId, options: input, specs }, () => {
25
+ for (const table of ['agent_responses', 'artifacts', 'ledger_events', 'runs']) {
26
+ db.prepare(`delete from ${table} where trajectory_id = ? and run_id = ?`).run(input.trajectoryId, input.runId);
27
+ }
28
+ });
29
+ }
30
+ export function deleteLedgerResponse(db, input) {
31
+ const specs = [spec('agent_responses', 'response_id = ?', input.responseId)];
32
+ return performDelete(db, { scope: 'response', target: input.responseId, options: input, specs }, () => {
33
+ db.prepare('delete from agent_responses where response_id = ?').run(input.responseId);
34
+ });
35
+ }
36
+ function performDelete(db, input, remove) {
37
+ const counts = input.specs.map((item) => ({ table: item.table, rows: countRows(db, item) }));
38
+ const totalRows = counts.reduce((total, item) => total + item.rows, 0);
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
+ if (!dryRun)
43
+ db.transaction(remove)();
44
+ return { scope: input.scope, target: input.target, dryRun, deleted: !dryRun, counts, totalRows };
45
+ }
46
+ function countRows(db, specItem) {
47
+ return db.prepare(`select count(*) as count from ${specItem.table} where ${specItem.where}`)
48
+ .get(...specItem.params).count;
49
+ }
50
+ function spec(table, where, ...params) {
51
+ return { table, where, params };
52
+ }
53
+ //# sourceMappingURL=ledger-delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ledger-delete.js","sourceRoot":"","sources":["../../src/core/ledger-delete.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -11,7 +11,7 @@ export type { AgentFeedback, IterationStatus, LedgerEventActor, LedgerMode, Traj
11
11
  export { initTarget } from './commands/init.js';
12
12
  export { captureReference } from './commands/capture.js';
13
13
  export { compareImageReference, compareReferenceImplementation } from './commands/compare.js';
14
- export { exportLedger, getLedgerNext, getLedgerStatus, listLedger, showLedger } from './commands/ledger.js';
14
+ export { deleteLedgerResponseRows, deleteLedgerRunRows, deleteLedgerTrajectoryRows, exportLedger, getLedgerNext, getLedgerStatus, listLedger, showLedger } from './commands/ledger.js';
15
15
  export { advanceLoop, closeLoop, compareLoop, getLoopStatus, startLoop } from './commands/loop.js';
16
16
  export { createRunId, createRunLogger } from './core/run-logger.js';
17
17
  export { resolveWorkspace, validateTargetName } from './core/workspace.js';
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@ export { agentFeedbackSchema, iterationStatusSchema, ledgerEventActorSchema, led
6
6
  export { initTarget } from './commands/init.js';
7
7
  export { captureReference } from './commands/capture.js';
8
8
  export { compareImageReference, compareReferenceImplementation } from './commands/compare.js';
9
- export { exportLedger, getLedgerNext, getLedgerStatus, listLedger, showLedger } from './commands/ledger.js';
9
+ export { deleteLedgerResponseRows, deleteLedgerRunRows, deleteLedgerTrajectoryRows, exportLedger, getLedgerNext, getLedgerStatus, listLedger, showLedger } from './commands/ledger.js';
10
10
  export { advanceLoop, closeLoop, compareLoop, getLoopStatus, startLoop } from './commands/loop.js';
11
11
  export { createRunId, createRunLogger } from './core/run-logger.js';
12
12
  export { resolveWorkspace, validateTargetName } from './core/workspace.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE9E,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAErK,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,yBAAyB,EACzB,kCAAkC,EAClC,+BAA+B,GAChC,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AAC9F,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC5G,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE9E,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAErK,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,yBAAyB,EACzB,kCAAkC,EAClC,+BAA+B,GAChC,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AAC9F,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvL,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC"}
@@ -22,6 +22,8 @@ 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.
26
+
25
27
  ## Action Logging
26
28
 
27
29
  After validation, the expected edit loop is:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neonwatty/limner",
3
- "version": "0.1.9",
3
+ "version": "0.1.11",
4
4
  "description": "Agent-guided visual fidelity workbench for turning images into HTML references and comparing references to real apps.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -30,6 +30,8 @@ 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.
34
+
33
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.
34
36
 
35
37
  Limner records executor intent and action claims; it cannot prove an external orchestrator actually used a subagent.