@agent-receipts/dashboard 0.2.6 → 0.2.8

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 (107) hide show
  1. package/package.json +1 -1
  2. package/standalone/apps/web/.env.production +2 -0
  3. package/standalone/apps/web/.next/BUILD_ID +1 -1
  4. package/standalone/apps/web/.next/app-build-manifest.json +47 -47
  5. package/standalone/apps/web/.next/app-path-routes-manifest.json +11 -11
  6. package/standalone/apps/web/.next/build-manifest.json +2 -2
  7. package/standalone/apps/web/.next/prerender-manifest.json +24 -24
  8. package/standalone/apps/web/.next/required-server-files.json +3 -1
  9. package/standalone/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  10. package/standalone/apps/web/.next/server/app/_not-found.html +2 -2
  11. package/standalone/apps/web/.next/server/app/_not-found.rsc +3 -3
  12. package/standalone/apps/web/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  13. package/standalone/apps/web/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  14. package/standalone/apps/web/.next/server/app/agents.html +2 -2
  15. package/standalone/apps/web/.next/server/app/agents.rsc +3 -3
  16. package/standalone/apps/web/.next/server/app/api/agents/route.js +1 -1
  17. package/standalone/apps/web/.next/server/app/api/agents/route.js.nft.json +1 -1
  18. package/standalone/apps/web/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
  19. package/standalone/apps/web/.next/server/app/api/chains/[id]/route.js +1 -1
  20. package/standalone/apps/web/.next/server/app/api/chains/[id]/route.js.nft.json +1 -1
  21. package/standalone/apps/web/.next/server/app/api/chains/[id]/route_client-reference-manifest.js +1 -1
  22. package/standalone/apps/web/.next/server/app/api/cleanup/route.js +1 -1
  23. package/standalone/apps/web/.next/server/app/api/cleanup/route.js.nft.json +1 -1
  24. package/standalone/apps/web/.next/server/app/api/cleanup/route_client-reference-manifest.js +1 -1
  25. package/standalone/apps/web/.next/server/app/api/config/route.js +1 -1
  26. package/standalone/apps/web/.next/server/app/api/config/route.js.nft.json +1 -1
  27. package/standalone/apps/web/.next/server/app/api/config/route_client-reference-manifest.js +1 -1
  28. package/standalone/apps/web/.next/server/app/api/invoices/route.js +1 -1
  29. package/standalone/apps/web/.next/server/app/api/invoices/route.js.nft.json +1 -1
  30. package/standalone/apps/web/.next/server/app/api/invoices/route_client-reference-manifest.js +1 -1
  31. package/standalone/apps/web/.next/server/app/api/judgments/route.js +1 -1
  32. package/standalone/apps/web/.next/server/app/api/judgments/route.js.nft.json +1 -1
  33. package/standalone/apps/web/.next/server/app/api/judgments/route_client-reference-manifest.js +1 -1
  34. package/standalone/apps/web/.next/server/app/api/receipts/[id]/route.js +1 -1
  35. package/standalone/apps/web/.next/server/app/api/receipts/[id]/route.js.nft.json +1 -1
  36. package/standalone/apps/web/.next/server/app/api/receipts/[id]/route_client-reference-manifest.js +1 -1
  37. package/standalone/apps/web/.next/server/app/api/receipts/route.js +1 -1
  38. package/standalone/apps/web/.next/server/app/api/receipts/route.js.nft.json +1 -1
  39. package/standalone/apps/web/.next/server/app/api/receipts/route_client-reference-manifest.js +1 -1
  40. package/standalone/apps/web/.next/server/app/api/search/route.js +1 -1
  41. package/standalone/apps/web/.next/server/app/api/search/route.js.nft.json +1 -1
  42. package/standalone/apps/web/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  43. package/standalone/apps/web/.next/server/app/api/stats/route.js +1 -1
  44. package/standalone/apps/web/.next/server/app/api/stats/route.js.nft.json +1 -1
  45. package/standalone/apps/web/.next/server/app/api/stats/route_client-reference-manifest.js +1 -1
  46. package/standalone/apps/web/.next/server/app/api/verify/route.js +1 -1
  47. package/standalone/apps/web/.next/server/app/api/verify/route.js.nft.json +1 -1
  48. package/standalone/apps/web/.next/server/app/api/verify/route_client-reference-manifest.js +1 -1
  49. package/standalone/apps/web/.next/server/app/chains/[id]/page_client-reference-manifest.js +1 -1
  50. package/standalone/apps/web/.next/server/app/chains/page_client-reference-manifest.js +1 -1
  51. package/standalone/apps/web/.next/server/app/chains.html +2 -2
  52. package/standalone/apps/web/.next/server/app/chains.rsc +4 -4
  53. package/standalone/apps/web/.next/server/app/constraints/page_client-reference-manifest.js +1 -1
  54. package/standalone/apps/web/.next/server/app/constraints.html +2 -2
  55. package/standalone/apps/web/.next/server/app/constraints.rsc +4 -4
  56. package/standalone/apps/web/.next/server/app/index.html +2 -2
  57. package/standalone/apps/web/.next/server/app/index.rsc +3 -3
  58. package/standalone/apps/web/.next/server/app/invoices/page_client-reference-manifest.js +1 -1
  59. package/standalone/apps/web/.next/server/app/invoices.html +2 -2
  60. package/standalone/apps/web/.next/server/app/invoices.rsc +3 -3
  61. package/standalone/apps/web/.next/server/app/judgments/page_client-reference-manifest.js +1 -1
  62. package/standalone/apps/web/.next/server/app/judgments.html +2 -2
  63. package/standalone/apps/web/.next/server/app/judgments.rsc +4 -4
  64. package/standalone/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
  65. package/standalone/apps/web/.next/server/app/receipts/[id]/page_client-reference-manifest.js +1 -1
  66. package/standalone/apps/web/.next/server/app/receipts/page.js +1 -1
  67. package/standalone/apps/web/.next/server/app/receipts/page_client-reference-manifest.js +1 -1
  68. package/standalone/apps/web/.next/server/app/receipts.html +2 -2
  69. package/standalone/apps/web/.next/server/app/receipts.rsc +4 -4
  70. package/standalone/apps/web/.next/server/app/settings/page.js +1 -1
  71. package/standalone/apps/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  72. package/standalone/apps/web/.next/server/app/settings.html +2 -2
  73. package/standalone/apps/web/.next/server/app/settings.rsc +4 -4
  74. package/standalone/apps/web/.next/server/app/verify/page_client-reference-manifest.js +1 -1
  75. package/standalone/apps/web/.next/server/app/verify.html +2 -2
  76. package/standalone/apps/web/.next/server/app/verify.rsc +3 -3
  77. package/standalone/apps/web/.next/server/app-paths-manifest.json +11 -11
  78. package/standalone/apps/web/.next/server/chunks/236.js +1 -0
  79. package/standalone/apps/web/.next/server/chunks/578.js +1 -0
  80. package/standalone/apps/web/.next/server/chunks/798.js +1 -0
  81. package/standalone/apps/web/.next/server/chunks/803.js +189 -0
  82. package/standalone/apps/web/.next/server/chunks/870.js +2 -2
  83. package/standalone/apps/web/.next/server/chunks/872.js +1 -0
  84. package/standalone/apps/web/.next/server/chunks/99.js +1 -0
  85. package/standalone/apps/web/.next/server/pages/404.html +2 -2
  86. package/standalone/apps/web/.next/server/pages/500.html +1 -1
  87. package/standalone/apps/web/.next/server/pages/_error.js +2 -2
  88. package/standalone/apps/web/.next/server/server-reference-manifest.json +1 -1
  89. package/standalone/apps/web/.next/static/chunks/app/agents/[id]/{page-6072c54c4f907f32.js → page-c0e1718cad311434.js} +1 -1
  90. package/standalone/apps/web/.next/static/chunks/app/chains/{page-69ef1e730d961039.js → page-d0b634ca7d0aa92d.js} +1 -1
  91. package/standalone/apps/web/.next/static/chunks/app/constraints/{page-05d35b57f9c424db.js → page-6baf6f176d4a9e3d.js} +1 -1
  92. package/standalone/apps/web/.next/static/chunks/app/judgments/{page-9715df3ce30f24c0.js → page-22c741e87fc41908.js} +1 -1
  93. package/standalone/apps/web/.next/static/chunks/app/layout-53a87fc182f46ce0.js +1 -0
  94. package/standalone/apps/web/.next/static/chunks/app/receipts/{page-a788cdbaf3879d37.js → page-ef79c1140a9c42e6.js} +1 -1
  95. package/standalone/apps/web/.next/static/chunks/app/settings/{page-154ca65062c2628d.js → page-8f1d3f326821cc04.js} +1 -1
  96. package/standalone/apps/web/.next/static/css/{acaddf5367ce801c.css → c89a04ca9481014a.css} +1 -1
  97. package/standalone/apps/web/server.js +1 -1
  98. package/standalone/apps/web/src/lib/demo-store.ts +121 -0
  99. package/standalone/apps/web/src/lib/sdk-server.ts +46 -0
  100. package/standalone/packages/crypto/package.json +1 -1
  101. package/standalone/packages/mcp-server/dist/index.js +1738 -0
  102. package/standalone/packages/mcp-server/package.json +4 -2
  103. package/standalone/apps/web/.next/server/chunks/350.js +0 -134
  104. package/standalone/apps/web/.next/server/chunks/998.js +0 -1
  105. package/standalone/apps/web/.next/static/chunks/app/layout-66d4997939026d7c.js +0 -1
  106. /package/standalone/apps/web/.next/static/{XRffp10LMCCMingivp622 → QFwgmBDt10h_GclOFqIUT}/_buildManifest.js +0 -0
  107. /package/standalone/apps/web/.next/static/{XRffp10LMCCMingivp622 → QFwgmBDt10h_GclOFqIUT}/_ssgManifest.js +0 -0
@@ -0,0 +1,121 @@
1
+ import { DEMO_RECEIPTS, DEMO_PUBLIC_KEY, DEMO_CONFIG } from './demo-data'
2
+ import type { ActionReceipt } from '@agent-receipts/schema'
3
+
4
+ interface PaginatedResult<T> {
5
+ data: T[]
6
+ pagination: {
7
+ page: number
8
+ limit: number
9
+ total: number
10
+ total_pages: number
11
+ has_next: boolean
12
+ has_prev: boolean
13
+ }
14
+ }
15
+
16
+ interface DemoFilter {
17
+ agent_id?: string
18
+ action?: string
19
+ status?: string
20
+ environment?: string
21
+ receipt_type?: string
22
+ chain_id?: string
23
+ parent_receipt_id?: string
24
+ tag?: string
25
+ from?: string
26
+ to?: string
27
+ }
28
+
29
+ export class DemoStore {
30
+ private receipts = DEMO_RECEIPTS
31
+
32
+ async list(
33
+ filter?: DemoFilter,
34
+ page = 1,
35
+ limit = 50,
36
+ sort = 'timestamp:desc'
37
+ ): Promise<PaginatedResult<ActionReceipt>> {
38
+ let filtered = [...this.receipts]
39
+
40
+ if (filter) {
41
+ if (filter.agent_id) filtered = filtered.filter(r => r.agent_id === filter.agent_id)
42
+ if (filter.action) filtered = filtered.filter(r => r.action === filter.action)
43
+ if (filter.status) filtered = filtered.filter(r => r.status === filter.status)
44
+ if (filter.environment) filtered = filtered.filter(r => r.environment === filter.environment)
45
+ if (filter.receipt_type) filtered = filtered.filter(r => r.receipt_type === filter.receipt_type)
46
+ if (filter.chain_id) filtered = filtered.filter(r => r.chain_id === filter.chain_id)
47
+ if (filter.parent_receipt_id) filtered = filtered.filter(r => r.parent_receipt_id === filter.parent_receipt_id)
48
+ if (filter.tag) filtered = filtered.filter(r => r.tags?.includes(filter.tag!))
49
+ if (filter.from) filtered = filtered.filter(r => r.timestamp >= filter.from!)
50
+ if (filter.to) filtered = filtered.filter(r => r.timestamp <= filter.to!)
51
+ }
52
+
53
+ const [sortField, sortDir] = sort.split(':')
54
+ const col = sortField === 'created_at' ? 'timestamp' : sortField!
55
+ filtered.sort((a, b) => {
56
+ const aVal = (a as Record<string, unknown>)[col] ?? ''
57
+ const bVal = (b as Record<string, unknown>)[col] ?? ''
58
+ const cmp = aVal < bVal ? -1 : aVal > bVal ? 1 : 0
59
+ return sortDir === 'asc' ? cmp : -cmp
60
+ })
61
+
62
+ const total = filtered.length
63
+ const total_pages = Math.max(1, Math.ceil(total / limit))
64
+ const offset = (page - 1) * limit
65
+ const data = filtered.slice(offset, offset + limit)
66
+
67
+ return {
68
+ data,
69
+ pagination: {
70
+ page,
71
+ limit,
72
+ total,
73
+ total_pages,
74
+ has_next: page < total_pages,
75
+ has_prev: page > 1,
76
+ },
77
+ }
78
+ }
79
+
80
+ async get(receiptId: string): Promise<ActionReceipt | null> {
81
+ return this.receipts.find(r => r.receipt_id === receiptId) ?? null
82
+ }
83
+
84
+ async exists(receiptId: string): Promise<boolean> {
85
+ return this.receipts.some(r => r.receipt_id === receiptId)
86
+ }
87
+
88
+ async getChain(chainId: string): Promise<ActionReceipt[]> {
89
+ return this.receipts
90
+ .filter(r => r.chain_id === chainId)
91
+ .sort((a, b) => a.timestamp.localeCompare(b.timestamp))
92
+ }
93
+
94
+ async count(filter?: DemoFilter): Promise<number> {
95
+ if (!filter) return this.receipts.length
96
+ const result = await this.list(filter, 1, 1)
97
+ return result.pagination.total
98
+ }
99
+
100
+ async delete(_receiptId: string): Promise<boolean> {
101
+ return false // Demo mode: no-op
102
+ }
103
+
104
+ async cleanup(): Promise<{ deleted: number; total: number }> {
105
+ return { deleted: 0, total: this.receipts.length } // Demo mode: no-op
106
+ }
107
+
108
+ getPublicKey(): string {
109
+ return DEMO_PUBLIC_KEY
110
+ }
111
+
112
+ getConfig() {
113
+ return { ...DEMO_CONFIG }
114
+ }
115
+
116
+ async update(_partial: Record<string, unknown>): Promise<void> {
117
+ // Demo mode: no-op
118
+ }
119
+ }
120
+
121
+ export const demoStore = new DemoStore()
@@ -0,0 +1,46 @@
1
+ import { AgentReceipts } from '@agent-receipts/sdk'
2
+ import { ReceiptStore, KeyManager, ConfigManager } from '@agent-receipts/mcp-server'
3
+
4
+ let sdkInstance: AgentReceipts | null = null
5
+ let storeInstance: ReceiptStore | null = null
6
+ let keyManagerInstance: KeyManager | null = null
7
+ let configManagerInstance: ConfigManager | null = null
8
+
9
+ function getDataDir(): string {
10
+ return process.env.AGENT_RECEIPTS_DATA_DIR ?? ConfigManager.getDefaultDataDir()
11
+ }
12
+
13
+ export function getSDK(): AgentReceipts {
14
+ if (!sdkInstance) {
15
+ sdkInstance = new AgentReceipts({
16
+ dataDir: process.env.AGENT_RECEIPTS_DATA_DIR || undefined,
17
+ })
18
+ }
19
+ return sdkInstance
20
+ }
21
+
22
+ export async function getStore(): Promise<ReceiptStore> {
23
+ if (!storeInstance) {
24
+ storeInstance = new ReceiptStore(getDataDir())
25
+ await storeInstance.init()
26
+ }
27
+ return storeInstance
28
+ }
29
+
30
+ export async function getKeyManager(): Promise<KeyManager> {
31
+ if (!keyManagerInstance) {
32
+ keyManagerInstance = new KeyManager(getDataDir())
33
+ await keyManagerInstance.init()
34
+ }
35
+ return keyManagerInstance
36
+ }
37
+
38
+ export async function getConfigManager(): Promise<ConfigManager> {
39
+ if (!configManagerInstance) {
40
+ configManagerInstance = new ConfigManager(getDataDir())
41
+ await configManagerInstance.init()
42
+ }
43
+ return configManagerInstance
44
+ }
45
+
46
+ export { getDataDir }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-receipts/crypto",
3
- "version": "0.2.6",
3
+ "version": "0.2.8",
4
4
  "description": "Ed25519 signing and verification for the Action Receipt Protocol",
5
5
  "license": "MIT",
6
6
  "author": "Amin <amin@webaes.co> (https://webaes.co)",