@hasna/treasury 0.1.2

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 (110) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +85 -0
  3. package/dist/adapters/fixtures.d.ts +31 -0
  4. package/dist/adapters/fixtures.d.ts.map +1 -0
  5. package/dist/adapters/types.d.ts +42 -0
  6. package/dist/adapters/types.d.ts.map +1 -0
  7. package/dist/api/index.d.ts +37 -0
  8. package/dist/api/index.d.ts.map +1 -0
  9. package/dist/cli/context.d.ts +9 -0
  10. package/dist/cli/context.d.ts.map +1 -0
  11. package/dist/cli/dashboard.d.ts +5 -0
  12. package/dist/cli/dashboard.d.ts.map +1 -0
  13. package/dist/cli/index.d.ts +3 -0
  14. package/dist/cli/index.d.ts.map +1 -0
  15. package/dist/cli/index.js +4353 -0
  16. package/dist/cli/namespaces.d.ts +7 -0
  17. package/dist/cli/namespaces.d.ts.map +1 -0
  18. package/dist/config.d.ts +42 -0
  19. package/dist/config.d.ts.map +1 -0
  20. package/dist/core/app-home.d.ts +9 -0
  21. package/dist/core/app-home.d.ts.map +1 -0
  22. package/dist/core/errors.d.ts +8 -0
  23. package/dist/core/errors.d.ts.map +1 -0
  24. package/dist/db/audit.d.ts +16 -0
  25. package/dist/db/audit.d.ts.map +1 -0
  26. package/dist/db/backup.d.ts +14 -0
  27. package/dist/db/backup.d.ts.map +1 -0
  28. package/dist/db/database.d.ts +40 -0
  29. package/dist/db/database.d.ts.map +1 -0
  30. package/dist/db/migration-plan.d.ts +14 -0
  31. package/dist/db/migration-plan.d.ts.map +1 -0
  32. package/dist/db/schema.d.ts +8 -0
  33. package/dist/db/schema.d.ts.map +1 -0
  34. package/dist/generated/storage-kit/health.d.ts +20 -0
  35. package/dist/generated/storage-kit/health.d.ts.map +1 -0
  36. package/dist/generated/storage-kit/index.d.ts +8 -0
  37. package/dist/generated/storage-kit/index.d.ts.map +1 -0
  38. package/dist/generated/storage-kit/migrations.d.ts +48 -0
  39. package/dist/generated/storage-kit/migrations.d.ts.map +1 -0
  40. package/dist/generated/storage-kit/mode.d.ts +48 -0
  41. package/dist/generated/storage-kit/mode.d.ts.map +1 -0
  42. package/dist/generated/storage-kit/pool.d.ts +34 -0
  43. package/dist/generated/storage-kit/pool.d.ts.map +1 -0
  44. package/dist/generated/storage-kit/query.d.ts +36 -0
  45. package/dist/generated/storage-kit/query.d.ts.map +1 -0
  46. package/dist/generated/storage-kit/tls.d.ts +26 -0
  47. package/dist/generated/storage-kit/tls.d.ts.map +1 -0
  48. package/dist/index.d.ts +22 -0
  49. package/dist/index.d.ts.map +1 -0
  50. package/dist/index.js +23773 -0
  51. package/dist/mcp/compact.d.ts +12 -0
  52. package/dist/mcp/compact.d.ts.map +1 -0
  53. package/dist/mcp/http.d.ts +38 -0
  54. package/dist/mcp/http.d.ts.map +1 -0
  55. package/dist/mcp/index.d.ts +32 -0
  56. package/dist/mcp/index.d.ts.map +1 -0
  57. package/dist/mcp/index.js +6243 -0
  58. package/dist/mcp/tools/domain.d.ts +10 -0
  59. package/dist/mcp/tools/domain.d.ts.map +1 -0
  60. package/dist/mcp/tools/standard.d.ts +4 -0
  61. package/dist/mcp/tools/standard.d.ts.map +1 -0
  62. package/dist/mcp/tools/storage.d.ts +4 -0
  63. package/dist/mcp/tools/storage.d.ts.map +1 -0
  64. package/dist/release/package-smoke.d.ts +11 -0
  65. package/dist/release/package-smoke.d.ts.map +1 -0
  66. package/dist/server/app.d.ts +19 -0
  67. package/dist/server/app.d.ts.map +1 -0
  68. package/dist/server/auth-constants.d.ts +22 -0
  69. package/dist/server/auth-constants.d.ts.map +1 -0
  70. package/dist/server/auth.d.ts +147 -0
  71. package/dist/server/auth.d.ts.map +1 -0
  72. package/dist/server/health.d.ts +23 -0
  73. package/dist/server/health.d.ts.map +1 -0
  74. package/dist/server/index.d.ts +11 -0
  75. package/dist/server/index.d.ts.map +1 -0
  76. package/dist/server/index.js +2094 -0
  77. package/dist/server/list-query.d.ts +7 -0
  78. package/dist/server/list-query.d.ts.map +1 -0
  79. package/dist/services/authorization-constants.d.ts +14 -0
  80. package/dist/services/authorization-constants.d.ts.map +1 -0
  81. package/dist/services/authorization.d.ts +95 -0
  82. package/dist/services/authorization.d.ts.map +1 -0
  83. package/dist/services/balances.d.ts +33 -0
  84. package/dist/services/balances.d.ts.map +1 -0
  85. package/dist/services/context.d.ts +24 -0
  86. package/dist/services/context.d.ts.map +1 -0
  87. package/dist/services/entities.d.ts +14 -0
  88. package/dist/services/entities.d.ts.map +1 -0
  89. package/dist/services/forecast.d.ts +10 -0
  90. package/dist/services/forecast.d.ts.map +1 -0
  91. package/dist/services/fx.d.ts +33 -0
  92. package/dist/services/fx.d.ts.map +1 -0
  93. package/dist/services/ingest.d.ts +19 -0
  94. package/dist/services/ingest.d.ts.map +1 -0
  95. package/dist/services/registry.d.ts +33 -0
  96. package/dist/services/registry.d.ts.map +1 -0
  97. package/dist/services/runway.d.ts +28 -0
  98. package/dist/services/runway.d.ts.map +1 -0
  99. package/dist/services/storage.d.ts +35 -0
  100. package/dist/services/storage.d.ts.map +1 -0
  101. package/dist/services/sweeps.d.ts +26 -0
  102. package/dist/services/sweeps.d.ts.map +1 -0
  103. package/dist/types/index.d.ts +133 -0
  104. package/dist/types/index.d.ts.map +1 -0
  105. package/dist/version.d.ts +3 -0
  106. package/dist/version.d.ts.map +1 -0
  107. package/docker-compose.yml +53 -0
  108. package/hasna.contract.json +20 -0
  109. package/openapi.json +615 -0
  110. package/package.json +80 -0
@@ -0,0 +1,12 @@
1
+ export interface ToolResult {
2
+ [x: string]: unknown;
3
+ content: Array<{
4
+ type: "text";
5
+ text: string;
6
+ }>;
7
+ }
8
+ /** Wrap a JSON-serializable value as an MCP text result. */
9
+ export declare function ok(value: unknown): ToolResult;
10
+ /** Wrap an error as the canonical `{ code, message, suggestion }` envelope. */
11
+ export declare function fail(error: unknown): ToolResult;
12
+ //# sourceMappingURL=compact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../src/mcp/compact.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACrB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD;AAED,4DAA4D;AAC5D,wBAAgB,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAE7C;AAED,+EAA+E;AAC/E,wBAAgB,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAG/C"}
@@ -0,0 +1,38 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { type ApiPrincipal } from "../server/auth.js";
3
+ export declare const DEFAULT_MCP_HTTP_PORT = 8890;
4
+ export declare const MCP_HTTP_NAME = "treasury";
5
+ /**
6
+ * Bind host for the MCP HTTP transport. Defaults to loopback; a container/self-host
7
+ * deploy sets HASNA_TREASURY_MCP_BIND_HOST=0.0.0.0 so the published port is
8
+ * reachable. A non-loopback bind forces auth on and is asserted fail-closed at
9
+ * startup (see assertMcpServeSafety).
10
+ */
11
+ export declare function resolveBindHost(): string;
12
+ export declare function isHttpMode(): boolean;
13
+ export declare function isStdioMode(): boolean;
14
+ export declare function resolveHttpPort(defaultPort?: number): number;
15
+ export declare function healthResponse(name?: string): Response;
16
+ export declare function checkMcpRateLimit(key: string): boolean;
17
+ export declare function resetMcpRateLimit(): void;
18
+ /** Auth disabled only when explicitly off AND loopback AND local mode (fail-closed). */
19
+ export declare function mcpAuthDisabled(hostname: string): boolean;
20
+ /**
21
+ * Authenticate an /mcp request to a caller principal. Bearer required unless
22
+ * auth is explicitly disabled for local loopback dev (§5.1a).
23
+ */
24
+ export declare function authenticateMcp(req: Request, hostname: string): ApiPrincipal | null;
25
+ export declare function handleMcpHttpRequest(req: Request, hostname: string, createServer?: (principal: ApiPrincipal) => McpServer): Promise<Response>;
26
+ /**
27
+ * Fail-closed startup assertion for the MCP HTTP transport, mirroring the serve
28
+ * tier's assertServeSafety (BUILD-SPEC §5.1a). A non-loopback bind OR cloud mode
29
+ * with no API credentials configured is almost certainly a misconfigured /
30
+ * open-intent deploy. Refuse to start and surface the misconfig instead of
31
+ * silently coming up "successfully" and 401'ing every caller at request time.
32
+ */
33
+ export declare function assertMcpServeSafety(hostname: string): void;
34
+ export declare function startHttpServer(port: number, options?: {
35
+ name?: string;
36
+ hostname?: string;
37
+ }): Promise<ReturnType<typeof Bun.serve>>;
38
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/mcp/http.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAuD,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAI3G,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAC1C,eAAO,MAAM,aAAa,aAAa,CAAC;AAExC;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAED,wBAAgB,eAAe,CAAC,WAAW,SAAwB,GAAG,MAAM,CAe3E;AAED,wBAAgB,cAAc,CAAC,IAAI,SAAgB,GAAG,QAAQ,CAE7D;AAYD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAStD;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED,wFAAwF;AACxF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAIzD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAKnF;AAED,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,MAAM,EAChB,YAAY,GAAE,CAAC,SAAS,EAAE,YAAY,KAAK,SAAuB,GACjE,OAAO,CAAC,QAAQ,CAAC,CAenB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAU3D;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7C,OAAO,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAyBvC"}
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env bun
2
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
+ import { type ApiPrincipal } from "../server/auth.js";
4
+ import { type Profile } from "../services/registry.js";
5
+ export declare function getProfile(): Profile;
6
+ /** Whether a tool is registered under the active profile (standard/storage always on). */
7
+ export declare function shouldRegisterTool(toolName: string, profile?: Profile): boolean;
8
+ /**
9
+ * Full-scope local owner principal (stdio fallback + auth-off loopback dev only).
10
+ * It carries `bypass: true` so it has the SAME authority as the CLI's
11
+ * localOwnerContext (SYSTEM bypass): without it, entity-scoped ops would fail
12
+ * deny-by-default (no entity_ids) and the local-owner surface could not read or
13
+ * write any entity-anchored data. Scoped bearer credentials never get bypass.
14
+ */
15
+ export declare function localOwnerPrincipal(): ApiPrincipal;
16
+ /**
17
+ * Build a fully-wired MCP server bound to a specific authenticated caller
18
+ * principal. Domain tools authorize against THIS principal's scopes + entity
19
+ * set — never a SYSTEM bypass on the transport (§5.1a).
20
+ */
21
+ export declare function buildServer(principal: ApiPrincipal, profile?: Profile): McpServer;
22
+ /**
23
+ * Fail-closed guard for the stdio transport (BUILD-SPEC §5.1a). Unlike the HTTP
24
+ * transport, stdio has no bearer channel: it always runs as the SYSTEM-bypass
25
+ * localOwnerPrincipal(). That is only acceptable in local mode with auth off —
26
+ * the SAME condition mcpAuthDisabled() enforces for the HTTP loopback dev path.
27
+ * In cloud mode (or when API credentials are configured) stdio would hand a
28
+ * caller full unauthenticated bypass access to production Postgres, so we refuse
29
+ * to start instead of silently granting it.
30
+ */
31
+ export declare function assertStdioSafety(): void;
32
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE3E,OAAO,EAAO,KAAK,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAiB5D,wBAAgB,UAAU,IAAI,OAAO,CAIpC;AAED,0FAA0F;AAC1F,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,OAAsB,GAAG,OAAO,CAI7F;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,IAAI,YAAY,CASlD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,GAAE,OAAsB,GAAG,SAAS,CAM/F;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAcxC"}