omp-fabric 1.6.0 → 1.7.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.7.0
4
+
5
+ ### Added
6
+
7
+ - `/fabric status` reports an LCM line, and `/fabric lcm` reports the detail behind summary quality: frontier coverage for the active branch, model-written against deterministic nodes, pending jobs, today's model spend against its budget, and the effective pass and leaf limits. It names the cause when the frontier is thin, when the remaining daily budget cannot fit another call, or when no summary model is set, which previously took a hand-written SQLite query to discover.
8
+
3
9
  ## 1.6.0
4
10
 
5
11
  ### Fixed
@@ -1 +1 @@
1
- {"version":3,"file":"fabric.d.ts","sourceRoot":"","sources":["../../src/commands/fabric.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAErF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAKtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AA8C9D,UAAU,iBAAiB;IACzB,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,aAAa,EAAE,mBAAmB,CAAC;IACnC,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;IACxC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;CACjC;AA6HD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,iBAAiB,GAAG,IAAI,CA89BtF"}
1
+ {"version":3,"file":"fabric.d.ts","sourceRoot":"","sources":["../../src/commands/fabric.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAErF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAKtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AA8C9D,UAAU,iBAAiB;IACzB,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,aAAa,EAAE,mBAAmB,CAAC;IACnC,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;IACxC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;CACjC;AA6HD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAqhCtF"}
@@ -73,6 +73,7 @@ export declare class LcmMaintenance {
73
73
  private readonly maxOutputChars;
74
74
  private readonly budget;
75
75
  constructor(ledger: LcmLedger, options?: LcmMaintenanceOptions);
76
+ budgetPolicy(): LcmBudgetPolicy;
76
77
  listNodes(limit?: number): LcmNode[];
77
78
  getNode(nodeId: string): LcmNode | undefined;
78
79
  getFrontier(sessionId?: string, branch?: string | null, activeSources?: ReadonlySet<string>): LcmNode[];
@@ -1 +1 @@
1
- {"version":3,"file":"lcm-maintenance.d.ts","sourceRoot":"","sources":["../../src/compaction/lcm-maintenance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lcm-maintenance.d.ts","sourceRoot":"","sources":["../../src/compaction/lcm-maintenance.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,31 @@ import type { ExtensionContext } from "@oh-my-pi/pi-coding-agent";
2
2
  import { LcmLedger, type RawEntry } from "../storage/lcm-ledger.js";
3
3
  import { LcmMaintenance, type LcmNode } from "./lcm-maintenance.js";
4
4
  import type { LcmCompactionInput, LcmCompactionOutput } from "./hook.js";
5
+ export interface LcmReport {
6
+ projectKey: string;
7
+ sessionId: string | undefined;
8
+ state: string;
9
+ degraded: string | undefined;
10
+ summaryModel: string | undefined;
11
+ rawEntries: number;
12
+ sessionEntries: number;
13
+ modelNodes: number;
14
+ emergencyNodes: number;
15
+ pendingNodes: number;
16
+ pendingJobs: number;
17
+ usage: {
18
+ calls: number;
19
+ inputTokens: number;
20
+ outputTokens: number;
21
+ cost: number;
22
+ wallMs: number;
23
+ };
24
+ budget: {
25
+ calls: number;
26
+ sessionCalls: number;
27
+ wallMs: number;
28
+ };
29
+ }
5
30
  export interface LcmRuntimeOptions {
6
31
  rootDir?: string;
7
32
  summaryModel?: string;
@@ -45,6 +70,11 @@ export declare class LcmRuntime {
45
70
  scheduleMaintenance(): void;
46
71
  private runMaintenance;
47
72
  compact(input: LcmCompactionInput): LcmCompactionOutput;
73
+ report(): LcmReport;
74
+ coverage(): {
75
+ active: number;
76
+ covered: number;
77
+ };
48
78
  memoryContext(): {
49
79
  summaries: {
50
80
  listNodes: ({ sessionId, branch, limit }: {
@@ -1 +1 @@
1
- {"version":3,"file":"lcm-runtime.d.ts","sourceRoot":"","sources":["../../src/compaction/lcm-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAiE,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGnI,OAAO,EAAE,cAAc,EAAe,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEzE,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,qBAAa,UAAU;IACrB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IACzD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyB;IAC/C,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,kBAAkB,CAAoC;IAC9D,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,eAAe,CAAqB;gBAEhC,OAAO,EAAE,gBAAgB,EAAE,OAAO,GAAE,iBAAiB,GAAG,CAAC,MAAM,iBAAiB,CAAM;IAuBlG,OAAO,KAAK,OAAO,GAAuD;IAE1E,IAAI,UAAU,IAAI,MAAM,CAAoC;IAC5D,IAAI,MAAM,IAAI,WAAW,CAA8B;IACvD,IAAI,MAAM,IAAI,SAAS,GAAG,UAAU,CAAsE;IAC1G,IAAI,KAAK,IAAI,OAAO,CAA+B;IACnD,SAAS,IAAI,IAAI;IAEjB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,oBAAoB;IAc5B,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;IAyBzC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAgCnB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAEzB,mBAAmB,IAAI,IAAI;YAMb,cAAc;IAyD5B,OAAO,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB;IAkDvD,aAAa;;sDAUmC;gBAAE,SAAS,CAAC,EAAE,MAAM,CAAC;gBAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;gBAAC,KAAK,EAAE,MAAM,CAAA;aAAE;;;;;;;;;;;;;;;;;;;;8BACrF,MAAM;;;;;;;;;;;;;;;;;;;;;sCAKI,MAAM;;;;;;;;kCAZZ,MAAM;sCACF,MAAM,WAAW,MAAM,UAAU,MAAM;sCACvC,MAAM,WAAW,MAAM,YAAY,MAAM;;;IAgBzE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAInD,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE;IAE7B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAQhC"}
1
+ {"version":3,"file":"lcm-runtime.d.ts","sourceRoot":"","sources":["../../src/compaction/lcm-runtime.ts"],"names":[],"mappings":"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"}
@@ -604,6 +604,9 @@ var LcmMaintenance = class {
604
604
  maxInputChars;
605
605
  maxOutputChars;
606
606
  budget;
607
+ budgetPolicy() {
608
+ return { ...this.budget };
609
+ }
607
610
  listNodes(limit = 100) {
608
611
  return this.ledger.readOnly((db) => db.prepare("SELECT payload FROM summary_nodes WHERE project_key=? ORDER BY created_at,node_id LIMIT ?").all(this.projectKey, limit).map((r) => {
609
612
  const node = parse(r.payload);
@@ -1145,6 +1148,38 @@ var LcmRuntime = class {
1145
1148
  const completed = this.maintenance.completeEmergency(this.maintenance.claimEmergency(job.jobId), fallback);
1146
1149
  return { summary: completed.text ?? fallback, firstKeptEntryId: input.firstKeptEntryId, tokensBefore: input.tokensBefore, source: "emergency", branch: input.branch };
1147
1150
  }
1151
+ report() {
1152
+ const day = new Date(Date.now()).toISOString().slice(0, 10);
1153
+ return this.ledger.readOnly((db) => {
1154
+ const count = (sql, ...params) => Number(db.prepare(sql).get(...params).n);
1155
+ const nodes = db.prepare("SELECT json_extract(payload,'$.kind') kind, json_extract(payload,'$.state') state, json_extract(payload,'$.modelHash') model, count(*) n FROM summary_nodes WHERE project_key=? GROUP BY kind, state, model").all(this.projectKey);
1156
+ const usage = db.prepare("SELECT coalesce(sum(calls),0) calls, coalesce(sum(input_tokens),0) input, coalesce(sum(output_tokens),0) output, coalesce(sum(cost),0) cost, coalesce(sum(wall_ms),0) wallMs FROM maintenance_usage WHERE project_key=? AND day=?").get(this.projectKey, day);
1157
+ const budget = this.maintenance.budgetPolicy();
1158
+ return {
1159
+ projectKey: this.projectKey,
1160
+ sessionId: this.activeSessionId,
1161
+ state: this.ledger.operationalState,
1162
+ degraded: this.degradedError === void 0 ? void 0 : String(this.degradedError instanceof Error ? this.degradedError.message : this.degradedError),
1163
+ summaryModel: this.options.summaryModel,
1164
+ rawEntries: count("SELECT count(*) n FROM raw_entries WHERE project_key=?", this.projectKey),
1165
+ sessionEntries: this.activeSessionId === void 0 ? 0 : count("SELECT count(*) n FROM raw_entries WHERE project_key=? AND session_id=?", this.projectKey, this.activeSessionId),
1166
+ modelNodes: nodes.filter((row) => row.model && row.model !== "emergency").reduce((total, row) => total + row.n, 0),
1167
+ emergencyNodes: nodes.filter((row) => row.model === "emergency").reduce((total, row) => total + row.n, 0),
1168
+ pendingNodes: nodes.filter((row) => row.state !== "ready").reduce((total, row) => total + row.n, 0),
1169
+ pendingJobs: count("SELECT count(*) n FROM maintenance_jobs WHERE project_key=? AND status=?", this.projectKey, "pending"),
1170
+ usage: { calls: usage.calls, inputTokens: usage.input, outputTokens: usage.output, cost: usage.cost, wallMs: usage.wallMs },
1171
+ budget: { calls: budget.calls, sessionCalls: budget.sessionCalls, wallMs: budget.wallMs }
1172
+ };
1173
+ });
1174
+ }
1175
+ coverage() {
1176
+ if (!this.activeSessionId) return { active: 0, covered: 0 };
1177
+ const frontier = this.maintenance.getFrontier(this.activeSessionId, this.context.sessionManager.getLeafId(), this.activeSources);
1178
+ const covered = new Set(frontier.flatMap((node) => node.sources.map((source) => `${source.sessionId}:${source.entryId}:${source.revision}`)));
1179
+ let hits = 0;
1180
+ for (const key of this.activeSources) if (covered.has(key)) hits += 1;
1181
+ return { active: this.activeSources.size, covered: hits };
1182
+ }
1148
1183
  memoryContext() {
1149
1184
  return {
1150
1185
  ledger: {