@hasna/economy 0.3.10 → 0.3.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/CHANGELOG.md +25 -0
- package/dist/cli/index.js +286 -575
- package/dist/db/cloud.d.ts +1 -3
- package/dist/db/cloud.d.ts.map +1 -1
- package/dist/db/database.d.ts.map +1 -1
- package/dist/db/pg-migrations.d.ts +1 -1
- package/dist/index.js +16 -443
- package/dist/lib/cloud-ingest.d.ts +57 -0
- package/dist/lib/cloud-ingest.d.ts.map +1 -0
- package/dist/lib/cloud-storage.d.ts +5 -5
- package/dist/lib/contracts-client/index.d.ts.map +1 -1
- package/dist/lib/contracts-client/storage.d.ts +2 -82
- package/dist/lib/contracts-client/storage.d.ts.map +1 -1
- package/dist/lib/contracts-client/transport.d.ts +1 -147
- package/dist/lib/contracts-client/transport.d.ts.map +1 -1
- package/dist/lib/sync-maintenance.d.ts +15 -0
- package/dist/lib/sync-maintenance.d.ts.map +1 -0
- package/dist/mcp/index.js +202 -479
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/otel/index.js +8 -8
- package/dist/server/index.js +57 -24
- package/dist/server/serve.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/docs/cli.md +3 -3
- package/docs/mcp.md +1 -1
- package/package.json +6 -6
- package/dist/lib/contracts-client/mode.d.ts +0 -20
- package/dist/lib/contracts-client/mode.d.ts.map +0 -1
package/dist/mcp/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,QAAQ,YAAY,CAAA;AACjC,eAAO,MAAM,qBAAqB,OAAO,CAAA;AAEzC,wBAAgB,WAAW,IAAI,GAAG,CAw1BjC"}
|
package/dist/otel/index.js
CHANGED
|
@@ -75,15 +75,15 @@ var init_sqlite_adapter = () => {};
|
|
|
75
75
|
// src/lib/pricing.ts
|
|
76
76
|
var exports_pricing = {};
|
|
77
77
|
__export(exports_pricing, {
|
|
78
|
-
|
|
79
|
-
getPricingFromRows: () => getPricingFromRows,
|
|
80
|
-
getPricingFromDb: () => getPricingFromDb,
|
|
81
|
-
getPricing: () => getPricing,
|
|
82
|
-
estimateCostFromRows: () => estimateCostFromRows,
|
|
83
|
-
ensurePricingSeeded: () => ensurePricingSeeded,
|
|
84
|
-
computeCostFromDb: () => computeCostFromDb,
|
|
78
|
+
DEFAULT_PRICING: () => DEFAULT_PRICING,
|
|
85
79
|
computeCost: () => computeCost,
|
|
86
|
-
|
|
80
|
+
computeCostFromDb: () => computeCostFromDb,
|
|
81
|
+
ensurePricingSeeded: () => ensurePricingSeeded,
|
|
82
|
+
estimateCostFromRows: () => estimateCostFromRows,
|
|
83
|
+
getPricing: () => getPricing,
|
|
84
|
+
getPricingFromDb: () => getPricingFromDb,
|
|
85
|
+
getPricingFromRows: () => getPricingFromRows,
|
|
86
|
+
normalizeModelName: () => normalizeModelName
|
|
87
87
|
});
|
|
88
88
|
function normalizeModelName(raw) {
|
|
89
89
|
return raw.trim().toLowerCase().replace(/^models\//, "").replace(/^[a-z0-9_.-]+\//, "").replace(/:.+$/, "").replace(/-\d{8}$/, "").replace(/-\d{4}-\d{2}-\d{2}$/, "");
|
package/dist/server/index.js
CHANGED
|
@@ -76,15 +76,15 @@ var init_sqlite_adapter = () => {};
|
|
|
76
76
|
// src/lib/pricing.ts
|
|
77
77
|
var exports_pricing = {};
|
|
78
78
|
__export(exports_pricing, {
|
|
79
|
-
|
|
80
|
-
getPricingFromRows: () => getPricingFromRows,
|
|
81
|
-
getPricingFromDb: () => getPricingFromDb,
|
|
82
|
-
getPricing: () => getPricing,
|
|
83
|
-
estimateCostFromRows: () => estimateCostFromRows,
|
|
84
|
-
ensurePricingSeeded: () => ensurePricingSeeded,
|
|
85
|
-
computeCostFromDb: () => computeCostFromDb,
|
|
79
|
+
DEFAULT_PRICING: () => DEFAULT_PRICING,
|
|
86
80
|
computeCost: () => computeCost,
|
|
87
|
-
|
|
81
|
+
computeCostFromDb: () => computeCostFromDb,
|
|
82
|
+
ensurePricingSeeded: () => ensurePricingSeeded,
|
|
83
|
+
estimateCostFromRows: () => estimateCostFromRows,
|
|
84
|
+
getPricing: () => getPricing,
|
|
85
|
+
getPricingFromDb: () => getPricingFromDb,
|
|
86
|
+
getPricingFromRows: () => getPricingFromRows,
|
|
87
|
+
normalizeModelName: () => normalizeModelName
|
|
88
88
|
});
|
|
89
89
|
function normalizeModelName(raw) {
|
|
90
90
|
return raw.trim().toLowerCase().replace(/^models\//, "").replace(/^[a-z0-9_.-]+\//, "").replace(/:.+$/, "").replace(/-\d{8}$/, "").replace(/-\d{4}-\d{2}-\d{2}$/, "");
|
|
@@ -2097,6 +2097,7 @@ function ingestSpecs() {
|
|
|
2097
2097
|
"timestamp",
|
|
2098
2098
|
"source_request_id",
|
|
2099
2099
|
"machine_id",
|
|
2100
|
+
"cost_center_id",
|
|
2100
2101
|
"attribution_tag",
|
|
2101
2102
|
"account_key",
|
|
2102
2103
|
"account_tool",
|
|
@@ -2123,6 +2124,7 @@ function ingestSpecs() {
|
|
|
2123
2124
|
strOr(r["timestamp"]),
|
|
2124
2125
|
r["source_request_id"] == null ? null : strOr(r["source_request_id"]),
|
|
2125
2126
|
strOr(r["machine_id"]),
|
|
2127
|
+
r["cost_center_id"] == null ? null : strOr(r["cost_center_id"]),
|
|
2126
2128
|
strOr(r["attribution_tag"]),
|
|
2127
2129
|
strOr(r["account_key"]),
|
|
2128
2130
|
strOr(r["account_tool"]),
|
|
@@ -2147,6 +2149,7 @@ function ingestSpecs() {
|
|
|
2147
2149
|
"total_tokens",
|
|
2148
2150
|
"request_count",
|
|
2149
2151
|
"machine_id",
|
|
2152
|
+
"cost_center_id",
|
|
2150
2153
|
"attribution_tag",
|
|
2151
2154
|
"account_key",
|
|
2152
2155
|
"account_tool",
|
|
@@ -2167,6 +2170,7 @@ function ingestSpecs() {
|
|
|
2167
2170
|
numOr(r["total_tokens"]),
|
|
2168
2171
|
numOr(r["request_count"]),
|
|
2169
2172
|
strOr(r["machine_id"]),
|
|
2173
|
+
r["cost_center_id"] == null ? null : strOr(r["cost_center_id"]),
|
|
2170
2174
|
strOr(r["attribution_tag"]),
|
|
2171
2175
|
strOr(r["account_key"]),
|
|
2172
2176
|
strOr(r["account_tool"]),
|
|
@@ -2508,8 +2512,8 @@ var init_sync_pg = () => {};
|
|
|
2508
2512
|
// src/db/pg-migrate.ts
|
|
2509
2513
|
var exports_pg_migrate = {};
|
|
2510
2514
|
__export(exports_pg_migrate, {
|
|
2511
|
-
|
|
2512
|
-
|
|
2515
|
+
applyPgMigrations: () => applyPgMigrations,
|
|
2516
|
+
resolvePgSsl: () => resolvePgSsl
|
|
2513
2517
|
});
|
|
2514
2518
|
import pg from "pg";
|
|
2515
2519
|
function resolvePgSsl(dsn) {
|
|
@@ -2788,22 +2792,27 @@ var init_pg_migrations = __esm(() => {
|
|
|
2788
2792
|
// src/db/cloud.ts
|
|
2789
2793
|
var exports_cloud = {};
|
|
2790
2794
|
__export(exports_cloud, {
|
|
2791
|
-
|
|
2792
|
-
resolveEconomyServerBackend: () => resolveEconomyServerBackend,
|
|
2793
|
-
openCloudDatabase: () => openCloudDatabase,
|
|
2794
|
-
isPostgresBackend: () => isPostgresBackend,
|
|
2795
|
-
getCloudDatabaseUrl: () => getCloudDatabaseUrl,
|
|
2796
|
-
createCloudPool: () => createCloudPool,
|
|
2795
|
+
authClientFromPool: () => authClientFromPool,
|
|
2797
2796
|
cloudMigrations: () => cloudMigrations,
|
|
2798
|
-
|
|
2797
|
+
createCloudPool: () => createCloudPool,
|
|
2798
|
+
getCloudDatabaseUrl: () => getCloudDatabaseUrl,
|
|
2799
|
+
isPostgresBackend: () => isPostgresBackend,
|
|
2800
|
+
openCloudDatabase: () => openCloudDatabase,
|
|
2801
|
+
resolveEconomyServerBackend: () => resolveEconomyServerBackend,
|
|
2802
|
+
resolveSigningSecret: () => resolveSigningSecret
|
|
2799
2803
|
});
|
|
2800
|
-
import { assertNoLegacyStorageMode } from "@hasna/contracts/server-backend";
|
|
2801
2804
|
import pg2 from "pg";
|
|
2805
|
+
function assertNoRetiredBackendKey(env) {
|
|
2806
|
+
const legacyKey = RETIRED_BACKEND_KEYS.find((key) => Object.hasOwn(env, key) && env[key] !== undefined);
|
|
2807
|
+
if (!legacyKey)
|
|
2808
|
+
return;
|
|
2809
|
+
throw new Error(`${legacyKey} was removed. Delete the retired variable; ` + "set HASNA_ECONOMY_DATABASE_URL to select the postgresql server backend, " + "or leave it unset for sqlite.");
|
|
2810
|
+
}
|
|
2802
2811
|
function getCloudDatabaseUrl(env = process.env) {
|
|
2803
2812
|
return env["HASNA_ECONOMY_DATABASE_URL"]?.trim() || env["ECONOMY_DATABASE_URL"]?.trim() || env["DATABASE_URL"]?.trim() || undefined;
|
|
2804
2813
|
}
|
|
2805
2814
|
function resolveEconomyServerBackend(env = process.env) {
|
|
2806
|
-
|
|
2815
|
+
assertNoRetiredBackendKey(env);
|
|
2807
2816
|
return getCloudDatabaseUrl(env) ? "postgresql" : "sqlite";
|
|
2808
2817
|
}
|
|
2809
2818
|
function isPostgresBackend(env = process.env) {
|
|
@@ -2845,18 +2854,25 @@ function authClientFromPool(pool) {
|
|
|
2845
2854
|
function cloudMigrations() {
|
|
2846
2855
|
return PG_MIGRATIONS;
|
|
2847
2856
|
}
|
|
2857
|
+
var RETIRED_BACKEND_KEYS;
|
|
2848
2858
|
var init_cloud = __esm(() => {
|
|
2849
2859
|
init_sync_pg();
|
|
2850
2860
|
init_pg_migrate();
|
|
2851
2861
|
init_pg_migrations();
|
|
2862
|
+
RETIRED_BACKEND_KEYS = [
|
|
2863
|
+
"HASNA_ECONOMY_STORAGE_MODE",
|
|
2864
|
+
"HASNA_ECONOMY_MODE",
|
|
2865
|
+
"ECONOMY_STORAGE_MODE",
|
|
2866
|
+
"ECONOMY_MODE"
|
|
2867
|
+
];
|
|
2852
2868
|
});
|
|
2853
2869
|
|
|
2854
2870
|
// src/ingest/billing.ts
|
|
2855
2871
|
var exports_billing = {};
|
|
2856
2872
|
__export(exports_billing, {
|
|
2857
|
-
|
|
2873
|
+
syncAnthropicBilling: () => syncAnthropicBilling,
|
|
2858
2874
|
syncGeminiBilling: () => syncGeminiBilling,
|
|
2859
|
-
|
|
2875
|
+
syncOpenAIBilling: () => syncOpenAIBilling
|
|
2860
2876
|
});
|
|
2861
2877
|
import { readFileSync as readFileSync9 } from "fs";
|
|
2862
2878
|
function getAnthropicAdminKey() {
|
|
@@ -5083,11 +5099,11 @@ async function syncAll(db, opts = {}) {
|
|
|
5083
5099
|
const all = !anySpecific;
|
|
5084
5100
|
const result = { deduped: 0 };
|
|
5085
5101
|
if (all || opts.claude) {
|
|
5086
|
-
result.claude = await ingestClaude(db, opts.verbose);
|
|
5102
|
+
result.claude = await ingestClaude(db, opts.verbose, opts.projectsDir);
|
|
5087
5103
|
result.claudeQuota = await ingestClaudeQuota(db, opts.verbose);
|
|
5088
5104
|
}
|
|
5089
5105
|
if (all || opts.takumi)
|
|
5090
|
-
result.takumi = await ingestTakumi(db, opts.verbose);
|
|
5106
|
+
result.takumi = await ingestTakumi(db, opts.verbose, opts.projectsDir);
|
|
5091
5107
|
if (all || opts.codex) {
|
|
5092
5108
|
result.codex = await ingestCodex(db, opts.verbose);
|
|
5093
5109
|
result.codexQuota = await ingestCodexQuota(db, opts.verbose);
|
|
@@ -8014,7 +8030,24 @@ function createHandler(db, options = {}) {
|
|
|
8014
8030
|
const body = await jsonBody(req);
|
|
8015
8031
|
if (!body)
|
|
8016
8032
|
return err("invalid JSON body");
|
|
8017
|
-
|
|
8033
|
+
const result = bulkIngest(db, body);
|
|
8034
|
+
const reqRows = Array.isArray(body?.["requests"]) ? body["requests"] : [];
|
|
8035
|
+
const touchedSessions = new Set;
|
|
8036
|
+
for (const r of reqRows) {
|
|
8037
|
+
const sid = r?.["session_id"];
|
|
8038
|
+
if (typeof sid === "string" && sid)
|
|
8039
|
+
touchedSessions.add(sid);
|
|
8040
|
+
}
|
|
8041
|
+
for (const sid of touchedSessions) {
|
|
8042
|
+
const hasReq = db.prepare(`SELECT COUNT(*) AS c FROM requests WHERE session_id = ?`).get(sid);
|
|
8043
|
+
if (Number(hasReq?.c ?? 0) > 0)
|
|
8044
|
+
rollupSession(db, sid);
|
|
8045
|
+
}
|
|
8046
|
+
try {
|
|
8047
|
+
const { checkAndFireWebhooks: checkAndFireWebhooks2 } = await Promise.resolve().then(() => (init_webhooks(), exports_webhooks));
|
|
8048
|
+
await checkAndFireWebhooks2(db);
|
|
8049
|
+
} catch {}
|
|
8050
|
+
return ok(result);
|
|
8018
8051
|
}
|
|
8019
8052
|
if (path === "/api/usage" && method === "GET") {
|
|
8020
8053
|
const period = url.searchParams.get("period") ?? "month";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/server/serve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/server/serve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAgDxE,gFAAgF;AAChF,wBAAgB,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAGzD;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CACV,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,GAC7F,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC/E;AAuBD,UAAU,kBAAkB;IAC1B,EAAE,CAAC,EAAE,QAAQ,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAChC;AA6ED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,EAAE,YAAY,SAAwB,IACzF,KAAK,OAAO,KAAG,OAAO,CAAC,QAAQ,CAAC,CAwB7D;AAQD,MAAM,WAAW,cAAc;IAC7B;;wEAEoE;IACpE,aAAa,CAAC,EAAE,gBAAgB,CAAA;IAChC,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAChE;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,GAAE,cAAmB,IACxC,KAAK,OAAO,KAAG,OAAO,CAAC,QAAQ,CAAC,CAmhB/D;AAMD,wBAAgB,WAAW,CAAC,IAAI,SAAO,EAAE,OAAO,GAAE,kBAAuB,GAAG,UAAU,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,CAkDvG"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -192,6 +192,8 @@ export interface SyncOptions {
|
|
|
192
192
|
loops?: boolean;
|
|
193
193
|
verbose?: boolean;
|
|
194
194
|
dedupe?: boolean;
|
|
195
|
+
/** Claude/Takumi JSONL root override (tests). */
|
|
196
|
+
projectsDir?: string;
|
|
195
197
|
}
|
|
196
198
|
export interface SessionFilter {
|
|
197
199
|
agent?: import('../lib/agents.js').Agent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/docs/cli.md
CHANGED
|
@@ -17,8 +17,8 @@ The supported coding-agent values are `claude`, `takumi`, `codex`, `gemini`, `op
|
|
|
17
17
|
|
|
18
18
|
| Command | Current behavior and principal options |
|
|
19
19
|
| --- | --- |
|
|
20
|
-
| `economy sync` | Ingest every local source, or select sources with `--claude`, `--takumi`, `--codex`, `--gemini`, `--opencode`, `--cursor`, `--pi`, `--hermes`, or `--loops`. Maintenance flags are `--force`, `--backfill-machine`, and `--recalculate`; `--verbose` prints source details. |
|
|
21
|
-
| `economy today`, `week`, `month` | Auto-sync
|
|
20
|
+
| `economy sync` | Ingest every local source, or select sources with `--claude`, `--takumi`, `--codex`, `--gemini`, `--opencode`, `--cursor`, `--pi`, `--hermes`, or `--loops`. Maintenance flags are `--force`, `--backfill-machine`, and `--recalculate`; `--verbose` prints source details. In cloud-client mode the on-box provider files are read on this machine and pushed to the shared API. |
|
|
21
|
+
| `economy today`, `week`, `month` | Auto-sync (local SQLite, or cloud-client push of this machine's on-box provider files) and print the corresponding summary. |
|
|
22
22
|
| `economy sessions` | List sessions. Filters: `--agent`, `--project`, `--account`, `--machine`, `--since`, and `--search`; `--limit` defaults to 20; `--format` is `table`, `compact`, `csv`, or `json`. |
|
|
23
23
|
| `economy session <id>` | Show one session and its requests. IDs may be prefixes. `--limit` defaults to 20 and `--verbose` shows up to 50 requests. |
|
|
24
24
|
| `economy top` | Rank expensive sessions with `-n`, `--agent`, and `--since`. |
|
|
@@ -58,7 +58,7 @@ Human output for high-cardinality commands is intentionally capped. Use the comm
|
|
|
58
58
|
| `economy project` | `add <path> [--name]`, `list`, `show <nameOrPath>`, `rename <path> <name>`, `remove <path>`. |
|
|
59
59
|
| `economy pricing` | `list`, `set <model>`, `remove <model>`. Set accepts `--input`, `--output`, `--cache-read`, `--cache-write`, `--cache-write-1h`, and `--cache-storage`. |
|
|
60
60
|
| `economy subscriptions` | `set` (requires `--provider` and `--plan`; optional `--agent`, `--fee`, `--included`), `list`, `remove <id>`. |
|
|
61
|
-
| `economy billing` | `sync` (`--days`, provider selectors), `show --period`, and `diff --period`. Provider
|
|
61
|
+
| `economy billing` | `sync` (`--days`, provider selectors), `show --period`, and `diff --period`. Provider billing is fetched from the provider APIs on this machine; in cloud-client mode the rows are pushed to the shared API. |
|
|
62
62
|
| `economy config` | Show config, `get <key>`, `set <key> <value>`, or `webhook-test`. See [configuration](configuration.md). |
|
|
63
63
|
| `economy remove <type> <id>` | Top-level alias for removing a `budget`, `project`, `goal`, or `pricing` row. Alias: `rm`. |
|
|
64
64
|
|
package/docs/mcp.md
CHANGED
|
@@ -62,4 +62,4 @@ Shared agent-registry tools:
|
|
|
62
62
|
|
|
63
63
|
High-cardinality tools return compact text by default. Where the schema offers them, use `limit`, `verbose=true`, or `json=true`. Limits are clamped to 100 for MCP calls.
|
|
64
64
|
|
|
65
|
-
The `sync` tool accepts `all`, any supported coding agent, or `loops`. It ingests on-box files
|
|
65
|
+
The `sync` tool accepts `all`, any supported coding agent, or `loops`. It ingests on-box files (in local mode into the local SQLite; in cloud-client mode it reads the on-box files on this machine and pushes the rows to the shared API).
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hasna/economy",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.12",
|
|
4
4
|
"description": "AI coding cost tracker — CLI + MCP server + REST API + web dashboard for Claude Code, Codex, OpenCode, Cursor, Pi, and Hermes, with legacy Gemini CLI session and Gemini API billing ingestion",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -37,13 +37,13 @@
|
|
|
37
37
|
"CODE_OF_CONDUCT.md"
|
|
38
38
|
],
|
|
39
39
|
"scripts": {
|
|
40
|
-
"build": "cd dashboard && bun run build && cd .. && bun build src/cli/index.ts --outdir dist/cli --target bun --packages external && bun build src/mcp/index.ts --outdir dist/mcp --target bun --packages external && bun build src/server/index.ts --outdir dist/server --target bun --packages external && bun build src/db/pg-sync-worker.ts --outdir dist/server --target bun --packages external && bun build src/otel/index.ts --outdir dist/otel --target bun --packages external && bun build src/index.ts --outdir dist --target bun --packages external && tsc --emitDeclarationOnly --outDir dist",
|
|
40
|
+
"build": "cd dashboard && bun install --frozen-lockfile && bun run build && cd .. && bun build src/cli/index.ts --outdir dist/cli --target bun --packages external && bun build src/mcp/index.ts --outdir dist/mcp --target bun --packages external && bun build src/server/index.ts --outdir dist/server --target bun --packages external && bun build src/db/pg-sync-worker.ts --outdir dist/server --target bun --packages external && bun build src/otel/index.ts --outdir dist/otel --target bun --packages external && bun build src/index.ts --outdir dist --target bun --packages external && tsc --emitDeclarationOnly --outDir dist",
|
|
41
41
|
"build:cli": "bun build src/cli/index.ts --outdir dist/cli --target bun --packages external",
|
|
42
42
|
"build:mcp": "bun build src/mcp/index.ts --outdir dist/mcp --target bun --packages external",
|
|
43
43
|
"build:server": "bun build src/server/index.ts --outdir dist/server --target bun --packages external",
|
|
44
44
|
"build:lib": "bun build src/index.ts --outdir dist --target bun --packages external",
|
|
45
45
|
"build:dashboard": "cd dashboard && bun run build",
|
|
46
|
-
"artifact-scan": "contracts artifact-scan dist",
|
|
46
|
+
"artifact-scan": "bun scripts/contracts-cli.mjs artifact-scan dist",
|
|
47
47
|
"prepack": "bun run build && bun run artifact-scan",
|
|
48
48
|
"typecheck": "tsc --noEmit",
|
|
49
49
|
"test": "bun test",
|
|
@@ -74,10 +74,10 @@
|
|
|
74
74
|
"dependencies": {
|
|
75
75
|
"@hasna/accounts": "0.2.23",
|
|
76
76
|
"@hasna/agent-registry": "^0.1.0",
|
|
77
|
-
"@hasna/contracts": "^0.
|
|
78
|
-
"@hasna/events": "^0.1.
|
|
77
|
+
"@hasna/contracts": "^0.13.0",
|
|
78
|
+
"@hasna/events": "^0.1.16",
|
|
79
79
|
"@hasna/mcp-harness": "^0.1.0",
|
|
80
|
-
"@hasna/projects": "0.1.
|
|
80
|
+
"@hasna/projects": "0.1.134",
|
|
81
81
|
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
82
82
|
"chalk": "^5.4.1",
|
|
83
83
|
"commander": "^13.1.0",
|
|
@@ -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"}
|