@hasna/economy 0.2.18 → 0.2.19

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.
Files changed (95) hide show
  1. package/LICENSE +2 -1
  2. package/README.md +13 -0
  3. package/dist/cli/commands/completion.d.ts +2 -0
  4. package/dist/cli/commands/completion.d.ts.map +1 -0
  5. package/dist/cli/commands/extras.d.ts +4 -0
  6. package/dist/cli/commands/extras.d.ts.map +1 -0
  7. package/dist/cli/commands/menubar.d.ts.map +1 -1
  8. package/dist/cli/commands/notification.d.ts +8 -0
  9. package/dist/cli/commands/notification.d.ts.map +1 -0
  10. package/dist/cli/commands/todos.d.ts +26 -0
  11. package/dist/cli/commands/todos.d.ts.map +1 -0
  12. package/dist/cli/commands/tui.d.ts +10 -0
  13. package/dist/cli/commands/tui.d.ts.map +1 -0
  14. package/dist/cli/commands/watch.d.ts +1 -0
  15. package/dist/cli/commands/watch.d.ts.map +1 -1
  16. package/dist/cli/index.js +5134 -641
  17. package/dist/db/database.d.ts +41 -1
  18. package/dist/db/database.d.ts.map +1 -1
  19. package/dist/db/pg-migrations.d.ts.map +1 -1
  20. package/dist/index.d.ts +2 -0
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +1202 -135
  23. package/dist/ingest/billing.d.ts +27 -0
  24. package/dist/ingest/billing.d.ts.map +1 -0
  25. package/dist/ingest/claude-quota.d.ts +5 -0
  26. package/dist/ingest/claude-quota.d.ts.map +1 -0
  27. package/dist/ingest/claude.d.ts +13 -2
  28. package/dist/ingest/claude.d.ts.map +1 -1
  29. package/dist/ingest/codex-quota.d.ts +5 -0
  30. package/dist/ingest/codex-quota.d.ts.map +1 -0
  31. package/dist/ingest/codex.d.ts +2 -1
  32. package/dist/ingest/codex.d.ts.map +1 -1
  33. package/dist/ingest/cursor.d.ts +6 -0
  34. package/dist/ingest/cursor.d.ts.map +1 -0
  35. package/dist/ingest/gemini.d.ts +2 -1
  36. package/dist/ingest/gemini.d.ts.map +1 -1
  37. package/dist/ingest/hermes.d.ts +6 -0
  38. package/dist/ingest/hermes.d.ts.map +1 -0
  39. package/dist/ingest/opencode.d.ts +7 -0
  40. package/dist/ingest/opencode.d.ts.map +1 -0
  41. package/dist/ingest/otel.d.ts +20 -0
  42. package/dist/ingest/otel.d.ts.map +1 -0
  43. package/dist/ingest/pi.d.ts +7 -0
  44. package/dist/ingest/pi.d.ts.map +1 -0
  45. package/dist/ingest/plugin.d.ts +17 -0
  46. package/dist/ingest/plugin.d.ts.map +1 -0
  47. package/dist/lib/agents.d.ts +11 -0
  48. package/dist/lib/agents.d.ts.map +1 -0
  49. package/dist/lib/billing-diff.d.ts +22 -0
  50. package/dist/lib/billing-diff.d.ts.map +1 -0
  51. package/dist/lib/cloud-sync.d.ts +35 -0
  52. package/dist/lib/cloud-sync.d.ts.map +1 -0
  53. package/dist/lib/config.d.ts.map +1 -1
  54. package/dist/lib/gatherer.d.ts.map +1 -1
  55. package/dist/lib/model-config.d.ts.map +1 -1
  56. package/dist/lib/open-projects.d.ts +19 -0
  57. package/dist/lib/open-projects.d.ts.map +1 -0
  58. package/dist/lib/package-metadata.d.ts +8 -0
  59. package/dist/lib/package-metadata.d.ts.map +1 -0
  60. package/dist/lib/paths.d.ts +20 -0
  61. package/dist/lib/paths.d.ts.map +1 -0
  62. package/dist/lib/pricing.d.ts +3 -3
  63. package/dist/lib/pricing.d.ts.map +1 -1
  64. package/dist/lib/savings.d.ts +17 -0
  65. package/dist/lib/savings.d.ts.map +1 -0
  66. package/dist/lib/serve-auth.d.ts +4 -0
  67. package/dist/lib/serve-auth.d.ts.map +1 -0
  68. package/dist/lib/spikes.d.ts +18 -0
  69. package/dist/lib/spikes.d.ts.map +1 -0
  70. package/dist/lib/sync-all.d.ts +28 -0
  71. package/dist/lib/sync-all.d.ts.map +1 -0
  72. package/dist/lib/watch-paths.d.ts +3 -0
  73. package/dist/lib/watch-paths.d.ts.map +1 -0
  74. package/dist/lib/webhooks.d.ts +1 -1
  75. package/dist/lib/webhooks.d.ts.map +1 -1
  76. package/dist/mcp/http.d.ts +12 -0
  77. package/dist/mcp/http.d.ts.map +1 -0
  78. package/dist/mcp/index.js +2752 -490
  79. package/dist/mcp/server.d.ts +4 -0
  80. package/dist/mcp/server.d.ts.map +1 -0
  81. package/dist/otel/index.d.ts +3 -0
  82. package/dist/otel/index.d.ts.map +1 -0
  83. package/dist/otel/index.js +1372 -0
  84. package/dist/server/index.d.ts +1 -0
  85. package/dist/server/index.js +3095 -201
  86. package/dist/server/serve.d.ts +10 -2
  87. package/dist/server/serve.d.ts.map +1 -1
  88. package/dist/types/index.d.ts +59 -6
  89. package/dist/types/index.d.ts.map +1 -1
  90. package/package.json +1 -1
  91. package/dashboard/dist/assets/index-5mUN0CPj.css +0 -1
  92. package/dashboard/dist/assets/index-L1FgNQ4t.js +0 -93
  93. package/dashboard/dist/index.html +0 -14
  94. package/dashboard/dist/logo.jpg +0 -0
  95. package/dashboard/dist/vite.svg +0 -1
package/LICENSE CHANGED
@@ -1,3 +1,4 @@
1
+
1
2
  Apache License
2
3
  Version 2.0, January 2004
3
4
  http://www.apache.org/licenses/
@@ -175,7 +176,7 @@
175
176
 
176
177
  END OF TERMS AND CONDITIONS
177
178
 
178
- Copyright 2026 hasna
179
+ Copyright 2026 Hasna, Inc.
179
180
 
180
181
  Licensed under the Apache License, Version 2.0 (the "License");
181
182
  you may not use this file except in compliance with the License.
package/README.md CHANGED
@@ -229,6 +229,19 @@ cd dashboard && bun run lint
229
229
  cd menubar && swift build -c release
230
230
  ```
231
231
 
232
+ ## HTTP mode
233
+
234
+ Shared Streamable HTTP transport for multi-agent sessions (stdio remains the default):
235
+
236
+ ```bash
237
+ economy-mcp --http # http://127.0.0.1:8815/mcp
238
+ MCP_HTTP=1 economy-mcp # same
239
+ economy-mcp --http --port 8815 # explicit port
240
+ ```
241
+
242
+ - Health: `GET http://127.0.0.1:8815/health` → `{"status":"ok","name":"economy"}`
243
+ - Override port with `MCP_HTTP_PORT` or `--port`
244
+
232
245
  ## License
233
246
 
234
247
  Apache-2.0 -- see [LICENSE](LICENSE)
@@ -0,0 +1,2 @@
1
+ export declare function printCompletion(shell: string): void;
2
+ //# sourceMappingURL=completion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/completion.ts"],"names":[],"mappings":"AA0FA,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAenD"}
@@ -0,0 +1,4 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerExtendedCommands(program: Command): void;
3
+ export declare function registerFleetCommands(program: Command): void;
4
+ //# sourceMappingURL=extras.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extras.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/extras.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA+CnC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0R/D;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkC5D"}
@@ -1 +1 @@
1
- {"version":3,"file":"menubar.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/menubar.ts"],"names":[],"mappings":"AA0BA,wBAAsB,cAAc,CAAC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsE7E;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAcvC;AAED,wBAAgB,YAAY,IAAI,IAAI,CAOnC;AAED,wBAAgB,WAAW,IAAI,IAAI,CAWlC"}
1
+ {"version":3,"file":"menubar.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/menubar.ts"],"names":[],"mappings":"AA0BA,wBAAsB,cAAc,CAAC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA0E7E;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAcvC;AAED,wBAAgB,YAAY,IAAI,IAAI,CAOnC;AAED,wBAAgB,WAAW,IAAI,IAAI,CAWlC"}
@@ -0,0 +1,8 @@
1
+ type ExecFile = (file: string, args: string[], options: {
2
+ stdio: 'ignore';
3
+ }) => unknown;
4
+ export declare function appleScriptString(value: string): string;
5
+ export declare function notificationScript(title: string, body: string): string;
6
+ export declare function sendNotification(title: string, body: string, execFile?: ExecFile): void;
7
+ export {};
8
+ //# sourceMappingURL=notification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/notification.ts"],"names":[],"mappings":"AAEA,KAAK,QAAQ,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,KAAK,OAAO,CAAA;AAEvF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,QAAuB,GAAG,IAAI,CAIrG"}
@@ -0,0 +1,26 @@
1
+ import { Command } from 'commander';
2
+ export type TodoStatus = 'pending' | 'in_progress' | 'done';
3
+ export interface TodoTask {
4
+ id: string;
5
+ title: string;
6
+ status: TodoStatus;
7
+ deps?: string[];
8
+ }
9
+ export interface TodoPhase {
10
+ id: string;
11
+ title: string;
12
+ summary: string;
13
+ tasks: TodoTask[];
14
+ }
15
+ export declare const ROADMAP_VERSION = "2026-05-23-b";
16
+ export declare const ROADMAP_GOAL = "Unified AI spend across 4+ machines: auto-sync local telemetry, track subscription usage & savings, ingest all major coding agents, and expose proactive CLI/MCP intelligence \u2014 not just per-machine API cost estimates.";
17
+ export declare const ROADMAP_PHASES: TodoPhase[];
18
+ export declare function printTodosHelp(): void;
19
+ export declare function printTodosOverview(): void;
20
+ export declare function printTodosList(opts: {
21
+ phase?: string;
22
+ status?: TodoStatus;
23
+ }): void;
24
+ export declare function printTodoShow(taskId: string): void;
25
+ export declare function registerTodosCommand(program: Command): void;
26
+ //# sourceMappingURL=todos.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todos.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/todos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGnC,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,MAAM,CAAA;AAE3D,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,UAAU,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,QAAQ,EAAE,CAAA;CAClB;AAED,eAAO,MAAM,eAAe,iBAAiB,CAAA;AAC7C,eAAO,MAAM,YAAY,kOACmM,CAAA;AAE5N,eAAO,MAAM,cAAc,EAAE,SAAS,EAuqBrC,CAAA;AAkBD,wBAAgB,cAAc,IAAI,IAAI,CAkCrC;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAyBzC;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,GAAG,IAAI,CAyBlF;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAmBlD;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsC3D"}
@@ -0,0 +1,10 @@
1
+ import type { SqliteAdapter as Database } from '@hasna/cloud';
2
+ export declare function buildStatusLine(db: Database): string;
3
+ export declare function buildWaybarJson(db: Database): Record<string, unknown>;
4
+ export declare function printStatusLine(): void;
5
+ export declare function printWaybarJson(): void;
6
+ export declare function runTui(opts: {
7
+ watch?: boolean;
8
+ interval?: number;
9
+ }): Promise<void>;
10
+ //# sourceMappingURL=tui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/tui.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,cAAc,CAAA;AAkC7D,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,CAoBpD;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAWrE;AAED,wBAAgB,eAAe,IAAI,IAAI,CAGtC;AAED,wBAAgB,eAAe,IAAI,IAAI,CAGtC;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoCxF"}
@@ -3,6 +3,7 @@ interface WatchOptions {
3
3
  interval: number;
4
4
  agent?: Agent;
5
5
  notify?: number;
6
+ daemon?: boolean;
6
7
  }
7
8
  export declare function watchCosts(opts: WatchOptions): Promise<void>;
8
9
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/watch.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAEjD,UAAU,YAAY;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAuBD,wBAAsB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAkFlE"}
1
+ {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/watch.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAGjD,UAAU,YAAY;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AA4BD,wBAAsB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAgGlE"}