@hasna/economy 0.3.8 → 0.3.9
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 +33 -0
- package/docs/configuration.md +4 -2
- package/package.json +3 -3
- package/dist/cli/brains.d.ts +0 -3
- package/dist/cli/brains.d.ts.map +0 -1
- package/dist/cli/commands/brief.d.ts +0 -11
- package/dist/cli/commands/brief.d.ts.map +0 -1
- package/dist/cli/commands/completion.d.ts +0 -2
- package/dist/cli/commands/completion.d.ts.map +0 -1
- package/dist/cli/commands/extras.d.ts +0 -4
- package/dist/cli/commands/extras.d.ts.map +0 -1
- package/dist/cli/commands/menubar.d.ts +0 -7
- package/dist/cli/commands/menubar.d.ts.map +0 -1
- package/dist/cli/commands/notification.d.ts +0 -8
- package/dist/cli/commands/notification.d.ts.map +0 -1
- package/dist/cli/commands/todos.d.ts +0 -29
- package/dist/cli/commands/todos.d.ts.map +0 -1
- package/dist/cli/commands/tui.d.ts +0 -26
- package/dist/cli/commands/tui.d.ts.map +0 -1
- package/dist/cli/commands/watch.d.ts +0 -10
- package/dist/cli/commands/watch.d.ts.map +0 -1
- package/dist/cli/index.d.ts +0 -3
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -12411
- package/dist/db/cloud.d.ts +0 -27
- package/dist/db/cloud.d.ts.map +0 -1
- package/dist/db/database.d.ts +0 -150
- package/dist/db/database.d.ts.map +0 -1
- package/dist/db/dialect.d.ts +0 -13
- package/dist/db/dialect.d.ts.map +0 -1
- package/dist/db/pg-migrate.d.ts +0 -30
- package/dist/db/pg-migrate.d.ts.map +0 -1
- package/dist/db/pg-migrations.d.ts +0 -7
- package/dist/db/pg-migrations.d.ts.map +0 -1
- package/dist/db/pg-sync-worker.d.ts +0 -2
- package/dist/db/pg-sync-worker.d.ts.map +0 -1
- package/dist/db/sqlite-adapter.d.ts +0 -36
- package/dist/db/sqlite-adapter.d.ts.map +0 -1
- package/dist/db/sync-pg.d.ts +0 -43
- package/dist/db/sync-pg.d.ts.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -3802
- package/dist/ingest/billing.d.ts +0 -27
- package/dist/ingest/billing.d.ts.map +0 -1
- package/dist/ingest/claude-quota.d.ts +0 -5
- package/dist/ingest/claude-quota.d.ts.map +0 -1
- package/dist/ingest/claude.d.ts +0 -18
- package/dist/ingest/claude.d.ts.map +0 -1
- package/dist/ingest/codex-quota.d.ts +0 -5
- package/dist/ingest/codex-quota.d.ts.map +0 -1
- package/dist/ingest/codex.d.ts +0 -8
- package/dist/ingest/codex.d.ts.map +0 -1
- package/dist/ingest/cursor.d.ts +0 -6
- package/dist/ingest/cursor.d.ts.map +0 -1
- package/dist/ingest/gemini.d.ts +0 -6
- package/dist/ingest/gemini.d.ts.map +0 -1
- package/dist/ingest/hermes.d.ts +0 -6
- package/dist/ingest/hermes.d.ts.map +0 -1
- package/dist/ingest/loops.d.ts +0 -6
- package/dist/ingest/loops.d.ts.map +0 -1
- package/dist/ingest/opencode.d.ts +0 -7
- package/dist/ingest/opencode.d.ts.map +0 -1
- package/dist/ingest/otel.d.ts +0 -33
- package/dist/ingest/otel.d.ts.map +0 -1
- package/dist/ingest/pi.d.ts +0 -7
- package/dist/ingest/pi.d.ts.map +0 -1
- package/dist/ingest/plugin.d.ts +0 -17
- package/dist/ingest/plugin.d.ts.map +0 -1
- package/dist/lib/accounts.d.ts +0 -11
- package/dist/lib/accounts.d.ts.map +0 -1
- package/dist/lib/agents.d.ts +0 -11
- package/dist/lib/agents.d.ts.map +0 -1
- package/dist/lib/analytics.d.ts +0 -68
- package/dist/lib/analytics.d.ts.map +0 -1
- package/dist/lib/billing-diff.d.ts +0 -22
- package/dist/lib/billing-diff.d.ts.map +0 -1
- package/dist/lib/brief.d.ts +0 -72
- package/dist/lib/brief.d.ts.map +0 -1
- package/dist/lib/cloud-storage.d.ts +0 -48
- package/dist/lib/cloud-storage.d.ts.map +0 -1
- package/dist/lib/config.d.ts +0 -13
- package/dist/lib/config.d.ts.map +0 -1
- package/dist/lib/contracts-client/index.d.ts +0 -3
- package/dist/lib/contracts-client/index.d.ts.map +0 -1
- package/dist/lib/contracts-client/mode.d.ts +0 -20
- package/dist/lib/contracts-client/mode.d.ts.map +0 -1
- package/dist/lib/contracts-client/storage.d.ts +0 -83
- package/dist/lib/contracts-client/storage.d.ts.map +0 -1
- package/dist/lib/contracts-client/transport.d.ts +0 -148
- package/dist/lib/contracts-client/transport.d.ts.map +0 -1
- package/dist/lib/gatherer.d.ts +0 -21
- package/dist/lib/gatherer.d.ts.map +0 -1
- package/dist/lib/model-config.d.ts +0 -8
- package/dist/lib/model-config.d.ts.map +0 -1
- package/dist/lib/open-projects.d.ts +0 -27
- package/dist/lib/open-projects.d.ts.map +0 -1
- package/dist/lib/package-metadata.d.ts +0 -8
- package/dist/lib/package-metadata.d.ts.map +0 -1
- package/dist/lib/paths.d.ts +0 -20
- package/dist/lib/paths.d.ts.map +0 -1
- package/dist/lib/periods.d.ts +0 -6
- package/dist/lib/periods.d.ts.map +0 -1
- package/dist/lib/pricing.d.ts +0 -13
- package/dist/lib/pricing.d.ts.map +0 -1
- package/dist/lib/savings.d.ts +0 -17
- package/dist/lib/savings.d.ts.map +0 -1
- package/dist/lib/serve-auth.d.ts +0 -4
- package/dist/lib/serve-auth.d.ts.map +0 -1
- package/dist/lib/spikes.d.ts +0 -18
- package/dist/lib/spikes.d.ts.map +0 -1
- package/dist/lib/store/index.d.ts +0 -303
- package/dist/lib/store/index.d.ts.map +0 -1
- package/dist/lib/sync-all.d.ts +0 -28
- package/dist/lib/sync-all.d.ts.map +0 -1
- package/dist/lib/watch-paths.d.ts +0 -3
- package/dist/lib/watch-paths.d.ts.map +0 -1
- package/dist/lib/webhooks.d.ts +0 -3
- package/dist/lib/webhooks.d.ts.map +0 -1
- package/dist/mcp/http.d.ts +0 -14
- package/dist/mcp/http.d.ts.map +0 -1
- package/dist/mcp/index.d.ts +0 -3
- package/dist/mcp/index.d.ts.map +0 -1
- package/dist/mcp/index.js +0 -6243
- package/dist/mcp/server.d.ts +0 -4
- package/dist/mcp/server.d.ts.map +0 -1
- package/dist/openapi.d.ts +0 -3
- package/dist/openapi.d.ts.map +0 -1
- package/dist/otel/index.d.ts +0 -3
- package/dist/otel/index.d.ts.map +0 -1
- package/dist/otel/index.js +0 -1464
- package/dist/server/index.d.ts +0 -3
- package/dist/server/index.d.ts.map +0 -1
- package/dist/server/index.js +0 -8137
- package/dist/server/pg-sync-worker.js +0 -31
- package/dist/server/serve.d.ts +0 -42
- package/dist/server/serve.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -238
- package/dist/types/index.d.ts.map +0 -1
package/dist/ingest/billing.d.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import type { SqliteAdapter as Database } from '../db/sqlite-adapter.js';
|
|
2
|
-
export declare function syncAnthropicBilling(db: Database, opts?: {
|
|
3
|
-
days?: number;
|
|
4
|
-
fromDate?: string;
|
|
5
|
-
toDate?: string;
|
|
6
|
-
}): Promise<{
|
|
7
|
-
days: number;
|
|
8
|
-
totalUsd: number;
|
|
9
|
-
}>;
|
|
10
|
-
export declare function syncOpenAIBilling(db: Database, opts?: {
|
|
11
|
-
days?: number;
|
|
12
|
-
fromDate?: string;
|
|
13
|
-
toDate?: string;
|
|
14
|
-
}): Promise<{
|
|
15
|
-
days: number;
|
|
16
|
-
totalUsd: number;
|
|
17
|
-
}>;
|
|
18
|
-
export declare function syncGeminiBilling(db: Database, opts?: {
|
|
19
|
-
days?: number;
|
|
20
|
-
fromDate?: string;
|
|
21
|
-
toDate?: string;
|
|
22
|
-
}): Promise<{
|
|
23
|
-
days: number;
|
|
24
|
-
totalUsd: number;
|
|
25
|
-
skipped?: string;
|
|
26
|
-
}>;
|
|
27
|
-
//# sourceMappingURL=billing.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../src/ingest/billing.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AA+IxE,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,QAAQ,EACZ,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/D,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAuD7C;AAeD,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,QAAQ,EACZ,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/D,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAqD7C;AAED,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,QAAQ,EACZ,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/D,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAwC/D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claude-quota.d.ts","sourceRoot":"","sources":["../../src/ingest/claude-quota.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAqExE,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,UAAQ,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CA6FrG"}
|
package/dist/ingest/claude.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { SqliteAdapter as Database } from '../db/sqlite-adapter.js';
|
|
2
|
-
import type { Agent } from '../types/index.js';
|
|
3
|
-
export declare function ingestClaude(db: Database, verbose?: boolean, projectsDir?: string): Promise<{
|
|
4
|
-
files: number;
|
|
5
|
-
requests: number;
|
|
6
|
-
sessions: number;
|
|
7
|
-
}>;
|
|
8
|
-
export declare function ingestTakumi(db: Database, verbose?: boolean, projectsDir?: string): Promise<{
|
|
9
|
-
files: number;
|
|
10
|
-
requests: number;
|
|
11
|
-
sessions: number;
|
|
12
|
-
}>;
|
|
13
|
-
export declare function ingestJsonlProjects(db: Database, projectsDir: string, agentName: Agent, verbose?: boolean): Promise<{
|
|
14
|
-
files: number;
|
|
15
|
-
requests: number;
|
|
16
|
-
sessions: number;
|
|
17
|
-
}>;
|
|
18
|
-
//# sourceMappingURL=claude.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/ingest/claude.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAYxE,OAAO,KAAK,EAAkB,KAAK,EAAE,MAAM,mBAAmB,CAAA;AA+D9D,wBAAsB,YAAY,CAChC,EAAE,EAAE,QAAQ,EACZ,OAAO,UAAQ,EACf,WAAW,SAAsB,GAChC,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAEhE;AAED,wBAAsB,YAAY,CAChC,EAAE,EAAE,QAAQ,EACZ,OAAO,UAAQ,EACf,WAAW,SAAsB,GAChC,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAEhE;AAED,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,KAAK,EAChB,OAAO,UAAQ,GACd,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAyIhE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codex-quota.d.ts","sourceRoot":"","sources":["../../src/ingest/codex-quota.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAmFxE,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,UAAQ,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAoFpG"}
|
package/dist/ingest/codex.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { SqliteAdapter as Database } from '../db/sqlite-adapter.js';
|
|
2
|
-
declare function readCodexModel(configPath?: string): string;
|
|
3
|
-
export declare function ingestCodex(db: Database, verbose?: boolean): Promise<{
|
|
4
|
-
sessions: number;
|
|
5
|
-
requests: number;
|
|
6
|
-
}>;
|
|
7
|
-
export { readCodexModel };
|
|
8
|
-
//# sourceMappingURL=codex.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/ingest/codex.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AA4FxE,iBAAS,cAAc,CAAC,UAAU,SAAoB,GAAG,MAAM,CAS9D;AAwGD,wBAAsB,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,UAAQ,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CA+FhH;AAED,OAAO,EAAE,cAAc,EAAE,CAAA"}
|
package/dist/ingest/cursor.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/ingest/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAsCxE,wBAAsB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,UAAQ,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAqGlH"}
|
package/dist/ingest/gemini.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/ingest/gemini.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAoGxE,wBAAsB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAgInH"}
|
package/dist/ingest/hermes.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hermes.d.ts","sourceRoot":"","sources":["../../src/ingest/hermes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAiCxE,wBAAsB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,UAAQ,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CA2EjH"}
|
package/dist/ingest/loops.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loops.d.ts","sourceRoot":"","sources":["../../src/ingest/loops.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AA4IxE,wBAAsB,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,UAAQ,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CA+FhH"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../src/ingest/opencode.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AA8CxE,wBAAsB,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,UAAQ,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAmFlI"}
|
package/dist/ingest/otel.d.ts
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import type { SqliteAdapter as Database } from '../db/sqlite-adapter.js';
|
|
2
|
-
import type { CostBasis, CostCenterKind, EconomyAgent } from '../types/index.js';
|
|
3
|
-
export interface OtelIngestRow {
|
|
4
|
-
agent: EconomyAgent;
|
|
5
|
-
session_id: string;
|
|
6
|
-
model: string;
|
|
7
|
-
cost_usd: number;
|
|
8
|
-
input_tokens: number;
|
|
9
|
-
output_tokens: number;
|
|
10
|
-
timestamp: string;
|
|
11
|
-
source_request_id: string;
|
|
12
|
-
cost_basis?: CostBasis;
|
|
13
|
-
cost_center?: string;
|
|
14
|
-
cost_center_kind?: CostCenterKind;
|
|
15
|
-
cost_center_id?: string;
|
|
16
|
-
attribution_tag?: string;
|
|
17
|
-
project_path?: string;
|
|
18
|
-
project_name?: string;
|
|
19
|
-
repo?: string;
|
|
20
|
-
account_key?: string;
|
|
21
|
-
account_tool?: string;
|
|
22
|
-
account_name?: string;
|
|
23
|
-
account_email?: string;
|
|
24
|
-
account_source?: string;
|
|
25
|
-
}
|
|
26
|
-
/** Parse OTLP/HTTP JSON metrics into normalized ingest rows. */
|
|
27
|
-
export declare function parseOtlpMetrics(body: unknown): OtelIngestRow[];
|
|
28
|
-
export declare function parseSimpleIngest(body: unknown): OtelIngestRow | null;
|
|
29
|
-
export declare function ingestOtelRows(db: Database, rows: OtelIngestRow[]): Promise<{
|
|
30
|
-
requests: number;
|
|
31
|
-
sessions: number;
|
|
32
|
-
}>;
|
|
33
|
-
//# sourceMappingURL=otel.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"otel.d.ts","sourceRoot":"","sources":["../../src/ingest/otel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAGxE,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhF,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,YAAY,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,iBAAiB,EAAE,MAAM,CAAA;IACzB,UAAU,CAAC,EAAE,SAAS,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gBAAgB,CAAC,EAAE,cAAc,CAAA;IACjC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AA2ID,gEAAgE;AAChE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,aAAa,EAAE,CA+F/D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI,CAqBrE;AAkBD,wBAAsB,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CA4DzH"}
|
package/dist/ingest/pi.d.ts
DELETED
package/dist/ingest/pi.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../src/ingest/pi.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAwCxE,wBAAsB,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,UAAQ,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CA8E5H"}
|
package/dist/ingest/plugin.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { SqliteAdapter as Database } from '../db/sqlite-adapter.js';
|
|
2
|
-
import type { Agent } from '../lib/agents.js';
|
|
3
|
-
export interface IngestResult {
|
|
4
|
-
requests: number;
|
|
5
|
-
sessions: number;
|
|
6
|
-
skipped?: number;
|
|
7
|
-
}
|
|
8
|
-
export interface IngestPlugin {
|
|
9
|
-
agent: Agent;
|
|
10
|
-
/** Human-readable source label for doctor/status. */
|
|
11
|
-
source: string;
|
|
12
|
-
ingest(db: Database, verbose?: boolean): Promise<IngestResult>;
|
|
13
|
-
}
|
|
14
|
-
export declare function registerIngestPlugin(plugin: IngestPlugin): void;
|
|
15
|
-
export declare function getIngestPlugin(agent: Agent): IngestPlugin | undefined;
|
|
16
|
-
export declare function listIngestPlugins(): IngestPlugin[];
|
|
17
|
-
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/ingest/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AACxE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAE7C,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,KAAK,CAAA;IACZ,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;CAC/D;AAID,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAE/D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,GAAG,SAAS,CAEtE;AAED,wBAAgB,iBAAiB,IAAI,YAAY,EAAE,CAElD"}
|
package/dist/lib/accounts.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { Agent } from './agents.js';
|
|
2
|
-
export interface AccountAttribution {
|
|
3
|
-
account_key: string;
|
|
4
|
-
account_tool: string;
|
|
5
|
-
account_name: string;
|
|
6
|
-
account_email?: string;
|
|
7
|
-
account_source: 'override' | 'env' | 'applied' | 'current';
|
|
8
|
-
}
|
|
9
|
-
export declare function resolveAccountForAgent(agent: Agent, env?: NodeJS.ProcessEnv): Promise<AccountAttribution | null>;
|
|
10
|
-
export declare function withAccount<T extends object>(record: T, account: AccountAttribution | null): T & Partial<AccountAttribution>;
|
|
11
|
-
//# sourceMappingURL=accounts.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/lib/accounts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAExC,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,UAAU,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,CAAA;CAC3D;AAqFD,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,KAAK,EACZ,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAwBpC;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAC1C,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,kBAAkB,GAAG,IAAI,GACjC,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAUjC"}
|
package/dist/lib/agents.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export declare const AGENTS: readonly ["claude", "takumi", "codex", "gemini", "opencode", "cursor", "pi", "hermes"];
|
|
2
|
-
export type Agent = (typeof AGENTS)[number];
|
|
3
|
-
export declare const INGEST_AGENTS: readonly ["claude", "takumi", "codex", "gemini", "opencode", "cursor", "pi", "hermes"];
|
|
4
|
-
export declare const LEGACY_AGENTS: readonly ["claude", "takumi", "codex", "gemini"];
|
|
5
|
-
export declare const COST_BASIS: readonly ["metered_api", "subscription_included", "estimated", "unknown"];
|
|
6
|
-
export type CostBasis = (typeof COST_BASIS)[number];
|
|
7
|
-
export declare function isAgent(value: string): value is Agent;
|
|
8
|
-
export declare function parseAgent(value: string | undefined, option: string): Agent | undefined;
|
|
9
|
-
export declare function requireAgent(value: string | undefined, option: string, fallback?: Agent): Agent;
|
|
10
|
-
export declare function agentColor(agent: string): 'blue' | 'yellow' | 'green' | 'magenta' | 'cyan' | 'white';
|
|
11
|
-
//# sourceMappingURL=agents.d.ts.map
|
package/dist/lib/agents.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/lib/agents.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,wFAST,CAAA;AAEV,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,CAAC,CAAA;AAE3C,eAAO,MAAM,aAAa,wFAAS,CAAA;AAEnC,eAAO,MAAM,aAAa,kDAA8E,CAAA;AAExG,eAAO,MAAM,UAAU,2EAKb,CAAA;AAEV,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAA;AAEnD,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,KAAK,CAErD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAIvF;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,CAI/F;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAQpG"}
|
package/dist/lib/analytics.d.ts
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import type { SqliteAdapter as Database } from '../db/sqlite-adapter.js';
|
|
2
|
-
export interface ProjectDetailModel {
|
|
3
|
-
model: string;
|
|
4
|
-
requests: number;
|
|
5
|
-
cost_usd: number;
|
|
6
|
-
}
|
|
7
|
-
export interface ProjectDetailSession {
|
|
8
|
-
id: string;
|
|
9
|
-
total_cost_usd: number;
|
|
10
|
-
started_at: string;
|
|
11
|
-
}
|
|
12
|
-
export interface ProjectDetail {
|
|
13
|
-
project_name: string;
|
|
14
|
-
project_path: string;
|
|
15
|
-
total_cost_usd: number;
|
|
16
|
-
total_tokens: number;
|
|
17
|
-
sessions: number;
|
|
18
|
-
daily: Array<{
|
|
19
|
-
date: string;
|
|
20
|
-
cost_usd: number;
|
|
21
|
-
}>;
|
|
22
|
-
models: ProjectDetailModel[];
|
|
23
|
-
top_sessions: ProjectDetailSession[];
|
|
24
|
-
}
|
|
25
|
-
/** Detailed breakdown for a single project matched by name or path substring. */
|
|
26
|
-
export declare function queryProjectDetail(db: Database, nameOrPath: string): ProjectDetail | null;
|
|
27
|
-
export type ExportType = 'sessions' | 'requests';
|
|
28
|
-
/** Raw rows for a CSV export. CSV formatting stays in the caller. */
|
|
29
|
-
export declare function queryExportRows(db: Database, type: ExportType, period: string): Array<Record<string, unknown>>;
|
|
30
|
-
export interface RangeStats {
|
|
31
|
-
cost: number;
|
|
32
|
-
requests: number;
|
|
33
|
-
tokens: number;
|
|
34
|
-
sessions: number;
|
|
35
|
-
}
|
|
36
|
-
/** Cost/request/token/session totals for an inclusive [from,to] date range. */
|
|
37
|
-
export declare function queryRangeStats(db: Database, from: string, to: string): RangeStats;
|
|
38
|
-
export interface ForecastData {
|
|
39
|
-
day_of_month: number;
|
|
40
|
-
days_in_month: number;
|
|
41
|
-
spent_so_far_usd: number;
|
|
42
|
-
daily_avg_usd: number;
|
|
43
|
-
projected_usd: number;
|
|
44
|
-
last7_daily_avg_usd: number;
|
|
45
|
-
last7_projected_usd: number;
|
|
46
|
-
cheapest_day: {
|
|
47
|
-
date: string;
|
|
48
|
-
cost_usd: number;
|
|
49
|
-
} | null;
|
|
50
|
-
most_expensive_day: {
|
|
51
|
-
date: string;
|
|
52
|
-
cost_usd: number;
|
|
53
|
-
} | null;
|
|
54
|
-
}
|
|
55
|
-
/** End-of-month projection based on current burn rate. */
|
|
56
|
-
export declare function queryForecast(db: Database, now?: Date): ForecastData;
|
|
57
|
-
export interface ModelEfficiency {
|
|
58
|
-
model: string;
|
|
59
|
-
input: number;
|
|
60
|
-
output: number;
|
|
61
|
-
cache_read: number;
|
|
62
|
-
cache_write: number;
|
|
63
|
-
requests: number;
|
|
64
|
-
cost: number;
|
|
65
|
-
}
|
|
66
|
-
/** Per-model token efficiency (output/input ratio, cache hit %, cost/1k out). */
|
|
67
|
-
export declare function queryModelEfficiency(db: Database): ModelEfficiency[];
|
|
68
|
-
//# sourceMappingURL=analytics.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/lib/analytics.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAIxE,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAChD,MAAM,EAAE,kBAAkB,EAAE,CAAA;IAC5B,YAAY,EAAE,oBAAoB,EAAE,CAAA;CACrC;AAED,iFAAiF;AACjF,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAmDzF;AAID,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,UAAU,CAAA;AAWhD,qEAAqE;AACrE,wBAAgB,eAAe,CAC7B,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM,GACb,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAOhC;AAID,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,CAUlF;AAID,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IACvD,kBAAkB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CAC9D;AAED,0DAA0D;AAC1D,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,GAAE,IAAiB,GAAG,YAAY,CAkChF;AAID,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,iFAAiF;AACjF,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ,GAAG,eAAe,EAAE,CAWpE"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { SqliteAdapter as Database } from '../db/sqlite-adapter.js';
|
|
2
|
-
import type { Period } from '../types/index.js';
|
|
3
|
-
export interface BillingDiffRow {
|
|
4
|
-
agent: string;
|
|
5
|
-
estimated_usd: number;
|
|
6
|
-
actual_usd: number;
|
|
7
|
-
delta_usd: number;
|
|
8
|
-
delta_pct: number;
|
|
9
|
-
}
|
|
10
|
-
export interface BillingDiffSummary {
|
|
11
|
-
period: Period;
|
|
12
|
-
estimated_usd: number;
|
|
13
|
-
actual_usd: number;
|
|
14
|
-
delta_usd: number;
|
|
15
|
-
delta_pct: number;
|
|
16
|
-
threshold_pct: number;
|
|
17
|
-
is_alert: boolean;
|
|
18
|
-
by_agent: BillingDiffRow[];
|
|
19
|
-
by_provider: Record<string, number>;
|
|
20
|
-
}
|
|
21
|
-
export declare function queryBillingDiff(db: Database, period: Period, thresholdPct?: number): BillingDiffSummary;
|
|
22
|
-
//# sourceMappingURL=billing-diff.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"billing-diff.d.ts","sourceRoot":"","sources":["../../src/lib/billing-diff.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAExE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAS/C,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,cAAc,EAAE,CAAA;IAC1B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACpC;AAED,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,MAAM,EACd,YAAY,SAAK,GAChB,kBAAkB,CAsCpB"}
|
package/dist/lib/brief.d.ts
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import type { SqliteAdapter as Database } from '../db/sqlite-adapter.js';
|
|
2
|
-
type BriefPeriod = 'today' | 'week';
|
|
3
|
-
export interface BriefTotals {
|
|
4
|
-
sessions: number;
|
|
5
|
-
requests: number;
|
|
6
|
-
input_tokens: number;
|
|
7
|
-
output_tokens: number;
|
|
8
|
-
cache_read_tokens: number;
|
|
9
|
-
cache_create_tokens: number;
|
|
10
|
-
cache_create_5m_tokens: number;
|
|
11
|
-
cache_create_1h_tokens: number;
|
|
12
|
-
total_tokens: number;
|
|
13
|
-
cost_usd: number;
|
|
14
|
-
last_active: string | null;
|
|
15
|
-
}
|
|
16
|
-
export interface BriefPeriodSummary extends BriefTotals {
|
|
17
|
-
label: string;
|
|
18
|
-
period: BriefPeriod | 'since';
|
|
19
|
-
since?: string;
|
|
20
|
-
}
|
|
21
|
-
export interface BriefMachineRow extends BriefTotals {
|
|
22
|
-
machine_id: string;
|
|
23
|
-
last_data_at: string | null;
|
|
24
|
-
last_data_age: string;
|
|
25
|
-
}
|
|
26
|
-
export interface BriefAgentRow extends BriefTotals {
|
|
27
|
-
agent: string;
|
|
28
|
-
}
|
|
29
|
-
export interface BriefAccountRow extends BriefTotals {
|
|
30
|
-
account_key: string;
|
|
31
|
-
account_tool: string;
|
|
32
|
-
account_name: string;
|
|
33
|
-
account_email: string | null;
|
|
34
|
-
account_source: string;
|
|
35
|
-
}
|
|
36
|
-
export interface BriefFreshnessMachine {
|
|
37
|
-
machine_id: string;
|
|
38
|
-
max_request_at: string | null;
|
|
39
|
-
request_age: string;
|
|
40
|
-
last_merge_sync_at: string | null;
|
|
41
|
-
merge_sync_age: string;
|
|
42
|
-
}
|
|
43
|
-
export interface EconomyBrief {
|
|
44
|
-
generated_at: string;
|
|
45
|
-
machine: string;
|
|
46
|
-
since: {
|
|
47
|
-
input: string;
|
|
48
|
-
timestamp: string;
|
|
49
|
-
label: string;
|
|
50
|
-
};
|
|
51
|
-
summaries: BriefPeriodSummary[];
|
|
52
|
-
machines: BriefMachineRow[];
|
|
53
|
-
agents: BriefAgentRow[];
|
|
54
|
-
accounts: BriefAccountRow[];
|
|
55
|
-
freshness: {
|
|
56
|
-
machines: BriefFreshnessMachine[];
|
|
57
|
-
max_request_line: string;
|
|
58
|
-
merge_sync_line: string;
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
export interface BriefOptions {
|
|
62
|
-
since?: string;
|
|
63
|
-
machine?: string;
|
|
64
|
-
now?: Date;
|
|
65
|
-
currentMachineId?: string;
|
|
66
|
-
localSyncAt?: Date;
|
|
67
|
-
}
|
|
68
|
-
/** Human-readable age of a timestamp relative to now (never/<1m/Nm/Nh/Nd). */
|
|
69
|
-
export declare function formatAge(timestamp: string | null | undefined, now: Date): string;
|
|
70
|
-
export declare function buildBrief(db: Database, opts?: BriefOptions): EconomyBrief;
|
|
71
|
-
export {};
|
|
72
|
-
//# sourceMappingURL=brief.d.ts.map
|
package/dist/lib/brief.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"brief.d.ts","sourceRoot":"","sources":["../../src/lib/brief.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAUxE,KAAK,WAAW,GAAG,OAAO,GAAG,MAAM,CAAA;AAEnC,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,iBAAiB,EAAE,MAAM,CAAA;IACzB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,sBAAsB,EAAE,MAAM,CAAA;IAC9B,sBAAsB,EAAE,MAAM,CAAA;IAC9B,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B;AAED,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,WAAW,GAAG,OAAO,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAA;QACb,SAAS,EAAE,MAAM,CAAA;QACjB,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;IACD,SAAS,EAAE,kBAAkB,EAAE,CAAA;IAC/B,QAAQ,EAAE,eAAe,EAAE,CAAA;IAC3B,MAAM,EAAE,aAAa,EAAE,CAAA;IACvB,QAAQ,EAAE,eAAe,EAAE,CAAA;IAC3B,SAAS,EAAE;QACT,QAAQ,EAAE,qBAAqB,EAAE,CAAA;QACjC,gBAAgB,EAAE,MAAM,CAAA;QACxB,eAAe,EAAE,MAAM,CAAA;KACxB,CAAA;CACF;AAcD,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,IAAI,CAAA;IACV,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,WAAW,CAAC,EAAE,IAAI,CAAA;CACnB;AAyBD,8EAA8E;AAC9E,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,GAAG,EAAE,IAAI,GAAG,MAAM,CAWjF;AAsmBD,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,GAAE,YAAiB,GAAG,YAAY,CAmD9E"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { resolveStorageClient, type HasnaStorageClient } from "./contracts-client/storage.js";
|
|
2
|
-
/** Transport overrides (test injection: fetchImpl, headers, timeout, retry). */
|
|
3
|
-
type StorageClientOverrides = Parameters<typeof resolveStorageClient>[2];
|
|
4
|
-
/** The economy app slug used for the HASNA_<APP>_* env lookups. */
|
|
5
|
-
export declare const ECONOMY_APP = "economy";
|
|
6
|
-
export type EconomyCloudStorage = {
|
|
7
|
-
/** True when reads/writes must go to the cloud HTTP API. */
|
|
8
|
-
readonly active: true;
|
|
9
|
-
/** The ready HTTP storage client. */
|
|
10
|
-
readonly client: HasnaStorageClient;
|
|
11
|
-
} | {
|
|
12
|
-
readonly active: false;
|
|
13
|
-
readonly client: null;
|
|
14
|
-
};
|
|
15
|
-
/**
|
|
16
|
-
* Resolve the economy client storage transport for the current environment.
|
|
17
|
-
*
|
|
18
|
-
* Returns `{ active: true, client }` only when mode=self_hosted/cloud AND
|
|
19
|
-
* HASNA_ECONOMY_API_URL + HASNA_ECONOMY_API_KEY are set. Otherwise
|
|
20
|
-
* `{ active: false }` (local store). Throws if cloud was requested but is
|
|
21
|
-
* misconfigured.
|
|
22
|
-
*/
|
|
23
|
-
export declare function resolveEconomyCloudStorage(env?: NodeJS.ProcessEnv, overrides?: StorageClientOverrides): EconomyCloudStorage;
|
|
24
|
-
/** Memoized {@link resolveEconomyCloudStorage} for the process lifetime. */
|
|
25
|
-
export declare function economyCloudStorage(env?: NodeJS.ProcessEnv): EconomyCloudStorage;
|
|
26
|
-
/** Test-only: drop the memoized resolution so a new env can be resolved. */
|
|
27
|
-
export declare function resetEconomyCloudStorageCache(): void;
|
|
28
|
-
/** Active cloud storage (narrowed so `client` is non-null). */
|
|
29
|
-
export type ActiveEconomyCloudStorage = Extract<EconomyCloudStorage, {
|
|
30
|
-
active: true;
|
|
31
|
-
}>;
|
|
32
|
-
/** Query params accepted by the read helpers below. */
|
|
33
|
-
export type CloudQuery = Record<string, string | number | boolean | null | undefined>;
|
|
34
|
-
/**
|
|
35
|
-
* Read a collection resource from the cloud API and return the extracted array
|
|
36
|
-
* (the serve envelope's `data`/`items`). Used by the read commands (sessions,
|
|
37
|
-
* top, breakdown, accounts) so they render cloud data — never the local store —
|
|
38
|
-
* when the client is in self_hosted/cloud mode.
|
|
39
|
-
*/
|
|
40
|
-
export declare function cloudListItems<T = unknown>(storage: ActiveEconomyCloudStorage, resource: string, query?: CloudQuery): Promise<T[]>;
|
|
41
|
-
/**
|
|
42
|
-
* Read a single (non-collection) resource and return the unwrapped `data`
|
|
43
|
-
* payload (e.g. `/usage` -> `{ snapshots, summary }`). Falls back to the raw
|
|
44
|
-
* body if the server does not use the `{ data }` envelope.
|
|
45
|
-
*/
|
|
46
|
-
export declare function cloudObject<T = unknown>(storage: ActiveEconomyCloudStorage, path: string, query?: CloudQuery): Promise<T>;
|
|
47
|
-
export {};
|
|
48
|
-
//# sourceMappingURL=cloud-storage.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-storage.d.ts","sourceRoot":"","sources":["../../src/lib/cloud-storage.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,oBAAoB,EAAE,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAE9F,gFAAgF;AAChF,KAAK,sBAAsB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;AAEzE,mEAAmE;AACnE,eAAO,MAAM,WAAW,YAAY,CAAC;AAErC,MAAM,MAAM,mBAAmB,GAC3B;IACE,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IACtB,qCAAqC;IACrC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;CACrC,GACD;IACE,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;CACvB,CAAC;AAIN;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,SAAS,CAAC,EAAE,sBAAsB,GACjC,mBAAmB,CAKrB;AAED,4EAA4E;AAC5E,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,mBAAmB,CAG7F;AAED,4EAA4E;AAC5E,wBAAgB,6BAA6B,IAAI,IAAI,CAEpD;AAED,+DAA+D;AAC/D,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC,mBAAmB,EAAE;IAAE,MAAM,EAAE,IAAI,CAAA;CAAE,CAAC,CAAC;AAEvF,uDAAuD;AACvD,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAYtF;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,CAAC,GAAG,OAAO,EAC9C,OAAO,EAAE,yBAAyB,EAClC,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,UAAU,GACjB,OAAO,CAAC,CAAC,EAAE,CAAC,CAId;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,CAAC,GAAG,OAAO,EAC3C,OAAO,EAAE,yBAAyB,EAClC,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,UAAU,GACjB,OAAO,CAAC,CAAC,CAAC,CAOZ"}
|
package/dist/lib/config.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export interface EconomyConfig {
|
|
2
|
-
port: number;
|
|
3
|
-
'default-period': string;
|
|
4
|
-
'auto-sync': boolean;
|
|
5
|
-
'sync-interval': number;
|
|
6
|
-
'alert-thresholds': number[];
|
|
7
|
-
'webhook-url': string | null;
|
|
8
|
-
}
|
|
9
|
-
export declare function loadConfig(): EconomyConfig;
|
|
10
|
-
export declare function saveConfig(config: EconomyConfig): void;
|
|
11
|
-
export declare function getConfigValue(key: string): unknown;
|
|
12
|
-
export declare function setConfigValue(key: string, value: string): void;
|
|
13
|
-
//# sourceMappingURL=config.d.ts.map
|
package/dist/lib/config.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,gBAAgB,EAAE,MAAM,CAAA;IACxB,WAAW,EAAE,OAAO,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,kBAAkB,EAAE,MAAM,EAAE,CAAA;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CAC7B;AAWD,wBAAgB,UAAU,IAAI,aAAa,CAS1C;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAKtD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGnD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAW/D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/contracts-client/index.ts"],"names":[],"mappings":"AAGA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/** Environment map (subset of NodeJS.ProcessEnv). */
|
|
2
|
-
export type Env = Record<string, string | undefined>;
|
|
3
|
-
/** Runtime storage enum. `local | cloud` ONLY (Amendment A1: PURE REMOTE). */
|
|
4
|
-
export type StorageMode = "local" | "cloud";
|
|
5
|
-
/** Deprecated storage-mode aliases accepted at parse time and mapped to cloud. */
|
|
6
|
-
export declare const DEPRECATED_STORAGE_MODE_ALIASES: readonly ["remote", "hybrid", "self_hosted"];
|
|
7
|
-
export interface StorageModeNormalization {
|
|
8
|
-
mode: StorageMode;
|
|
9
|
-
/** The deprecated alias that was normalized to `cloud`, if any. */
|
|
10
|
-
deprecatedAlias: string | null;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Normalize a raw storage-mode string to the `local | cloud` runtime enum.
|
|
14
|
-
* Accepts deprecated aliases (`remote`, `hybrid`, `self_hosted`) and maps them
|
|
15
|
-
* to `cloud`. Throws on any other value.
|
|
16
|
-
*/
|
|
17
|
-
export declare function normalizeStorageMode(value: string): StorageModeNormalization;
|
|
18
|
-
/** Upper-snake env token for an app name, e.g. `economy` -> `ECONOMY`. */
|
|
19
|
-
export declare function envToken(name: string): string;
|
|
20
|
-
//# sourceMappingURL=mode.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mode.d.ts","sourceRoot":"","sources":["../../../src/lib/contracts-client/mode.ts"],"names":[],"mappings":"AAaA,qDAAqD;AACrD,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAErD,8EAA8E;AAC9E,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,OAAO,CAAC;AAE5C,kFAAkF;AAClF,eAAO,MAAM,+BAA+B,8CAA+C,CAAC;AAE5F,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,WAAW,CAAC;IAClB,mEAAmE;IACnE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,wBAAwB,CAQ5E;AAED,0EAA0E;AAC1E,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7C"}
|