aegis-ows-shared 0.1.0
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/dist/agent-profile.d.ts +5 -0
- package/dist/agent-profile.d.ts.map +1 -0
- package/dist/agent-profile.js +77 -0
- package/dist/agent-profile.js.map +1 -0
- package/dist/approvals.d.ts +15 -0
- package/dist/approvals.d.ts.map +1 -0
- package/dist/approvals.js +69 -0
- package/dist/approvals.js.map +1 -0
- package/dist/config.d.ts +9 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +66 -0
- package/dist/config.js.map +1 -0
- package/dist/earnings.d.ts +5 -0
- package/dist/earnings.d.ts.map +1 -0
- package/dist/earnings.js +17 -0
- package/dist/earnings.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/ledger.d.ts +5 -0
- package/dist/ledger.d.ts.map +1 -0
- package/dist/ledger.js +44 -0
- package/dist/ledger.js.map +1 -0
- package/dist/messages.d.ts +39 -0
- package/dist/messages.d.ts.map +1 -0
- package/dist/messages.js +31 -0
- package/dist/messages.js.map +1 -0
- package/dist/ows.d.ts +10 -0
- package/dist/ows.d.ts.map +1 -0
- package/dist/ows.js +53 -0
- package/dist/ows.js.map +1 -0
- package/dist/paths.d.ts +13 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +22 -0
- package/dist/paths.js.map +1 -0
- package/dist/policy-log.d.ts +4 -0
- package/dist/policy-log.d.ts.map +1 -0
- package/dist/policy-log.js +22 -0
- package/dist/policy-log.js.map +1 -0
- package/dist/registry.d.ts +15 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +60 -0
- package/dist/registry.js.map +1 -0
- package/dist/types.d.ts +116 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +37 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { AgentProfile, SankeyData } from "./types.js";
|
|
2
|
+
export declare function computeAgentProfile(agentId: string): AgentProfile;
|
|
3
|
+
export declare function computeAllProfiles(): AgentProfile[];
|
|
4
|
+
export declare function computeSankeyData(): SankeyData;
|
|
5
|
+
//# sourceMappingURL=agent-profile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-profile.d.ts","sourceRoot":"","sources":["../src/agent-profile.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE3D,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAuCjE;AAED,wBAAgB,kBAAkB,IAAI,YAAY,EAAE,CASnD;AAED,wBAAgB,iBAAiB,IAAI,UAAU,CAgC9C"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { readLedger } from "./ledger.js";
|
|
2
|
+
import { readEarningsLedger } from "./earnings.js";
|
|
3
|
+
export function computeAgentProfile(agentId) {
|
|
4
|
+
const earnings = readEarningsLedger();
|
|
5
|
+
const spending = readLedger();
|
|
6
|
+
// Revenue: earnings where this agent is the seller
|
|
7
|
+
const revenueEntries = earnings.entries.filter(e => e.agentId === agentId);
|
|
8
|
+
const totalRevenue = revenueEntries.reduce((s, e) => s + parseFloat(e.amount), 0);
|
|
9
|
+
// Spending: ledger entries where this agent is the buyer
|
|
10
|
+
const spendingEntries = spending.entries.filter(e => e.apiKeyId === agentId);
|
|
11
|
+
const totalSpending = spendingEntries.reduce((s, e) => s + parseFloat(e.amount), 0);
|
|
12
|
+
// Revenue by endpoint
|
|
13
|
+
const endpointMap = new Map();
|
|
14
|
+
for (const e of revenueEntries) {
|
|
15
|
+
const cur = endpointMap.get(e.endpoint) ?? { revenue: 0, calls: 0 };
|
|
16
|
+
cur.revenue += parseFloat(e.amount);
|
|
17
|
+
cur.calls += 1;
|
|
18
|
+
endpointMap.set(e.endpoint, cur);
|
|
19
|
+
}
|
|
20
|
+
// Spending by vendor (extract vendor from description or tool field)
|
|
21
|
+
const vendorMap = new Map();
|
|
22
|
+
for (const e of spendingEntries) {
|
|
23
|
+
const vendor = e.description?.match(/to (\S+)/)?.[1] ?? e.tool ?? "unknown";
|
|
24
|
+
const cur = vendorMap.get(vendor) ?? { spending: 0, calls: 0 };
|
|
25
|
+
cur.spending += parseFloat(e.amount);
|
|
26
|
+
cur.calls += 1;
|
|
27
|
+
vendorMap.set(vendor, cur);
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
agentId,
|
|
31
|
+
totalRevenue,
|
|
32
|
+
totalSpending,
|
|
33
|
+
profitLoss: totalRevenue - totalSpending,
|
|
34
|
+
endpoints: Array.from(endpointMap.entries()).map(([endpoint, data]) => ({ endpoint, ...data })),
|
|
35
|
+
vendors: Array.from(vendorMap.entries()).map(([vendor, data]) => ({ vendor, ...data })),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
export function computeAllProfiles() {
|
|
39
|
+
const earnings = readEarningsLedger();
|
|
40
|
+
const spending = readLedger();
|
|
41
|
+
const agentIds = new Set();
|
|
42
|
+
for (const e of earnings.entries)
|
|
43
|
+
agentIds.add(e.agentId);
|
|
44
|
+
for (const e of spending.entries)
|
|
45
|
+
agentIds.add(e.apiKeyId);
|
|
46
|
+
return Array.from(agentIds).map(id => computeAgentProfile(id));
|
|
47
|
+
}
|
|
48
|
+
export function computeSankeyData() {
|
|
49
|
+
const earnings = readEarningsLedger();
|
|
50
|
+
// Build flow map: fromAgent -> agentId -> total value
|
|
51
|
+
const flowMap = new Map();
|
|
52
|
+
const allAgents = new Set();
|
|
53
|
+
for (const e of earnings.entries) {
|
|
54
|
+
allAgents.add(e.fromAgent);
|
|
55
|
+
allAgents.add(e.agentId);
|
|
56
|
+
if (!flowMap.has(e.fromAgent))
|
|
57
|
+
flowMap.set(e.fromAgent, new Map());
|
|
58
|
+
const targets = flowMap.get(e.fromAgent);
|
|
59
|
+
targets.set(e.agentId, (targets.get(e.agentId) ?? 0) + parseFloat(e.amount));
|
|
60
|
+
}
|
|
61
|
+
const nodes = Array.from(allAgents).map(name => ({ name }));
|
|
62
|
+
const nodeIndex = new Map(nodes.map((n, i) => [n.name, i]));
|
|
63
|
+
const links = [];
|
|
64
|
+
for (const [source, targets] of flowMap) {
|
|
65
|
+
for (const [target, value] of targets) {
|
|
66
|
+
if (source === target)
|
|
67
|
+
continue; // skip self-payments
|
|
68
|
+
links.push({
|
|
69
|
+
source: nodeIndex.get(source),
|
|
70
|
+
target: nodeIndex.get(target),
|
|
71
|
+
value: parseFloat(value.toFixed(4)),
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return { nodes, links };
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=agent-profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-profile.js","sourceRoot":"","sources":["../src/agent-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGnD,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAG,UAAU,EAAE,CAAC;IAE9B,mDAAmD;IACnD,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;IAC3E,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAElF,yDAAyD;IACzD,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;IAC7E,MAAM,aAAa,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAEpF,sBAAsB;IACtB,MAAM,WAAW,GAAG,IAAI,GAAG,EAA8C,CAAC;IAC1E,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACpE,GAAG,CAAC,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACpC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;QACf,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,qEAAqE;IACrE,MAAM,SAAS,GAAG,IAAI,GAAG,EAA+C,CAAC;IACzE,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC;QAC5E,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACrC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;QACf,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO;QACL,OAAO;QACP,YAAY;QACZ,aAAa;QACb,UAAU,EAAE,YAAY,GAAG,aAAa;QACxC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QAC/F,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;KACxF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAG,UAAU,EAAE,CAAC;IAE9B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,OAAO;QAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC1D,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,OAAO;QAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAE3D,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IAEtC,sDAAsD;IACtD,MAAM,OAAO,GAAG,IAAI,GAAG,EAA+B,CAAC;IACvD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IAEpC,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACjC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC3B,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAEzB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5D,MAAM,KAAK,GAAwB,EAAE,CAAC;IACtC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,OAAO,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;YACtC,IAAI,MAAM,KAAK,MAAM;gBAAE,SAAS,CAAC,qBAAqB;YACtD,KAAK,CAAC,IAAI,CAAC;gBACT,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,MAAM,CAAE;gBAC9B,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,MAAM,CAAE;gBAC9B,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;aACpC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ApprovalQueue, PendingApproval, SerializedTransaction } from "./types.js";
|
|
2
|
+
export declare function readApprovals(): ApprovalQueue;
|
|
3
|
+
export interface AddPendingApprovalParams {
|
|
4
|
+
apiKeyId: string;
|
|
5
|
+
chainId: string;
|
|
6
|
+
transaction: SerializedTransaction;
|
|
7
|
+
estimatedValue: string;
|
|
8
|
+
token: string;
|
|
9
|
+
reason?: string;
|
|
10
|
+
ttlMinutes?: number;
|
|
11
|
+
}
|
|
12
|
+
export declare function addPendingApproval(params: AddPendingApprovalParams): PendingApproval;
|
|
13
|
+
export declare function resolveApproval(id: string, status: "approved" | "rejected" | "expired"): PendingApproval | null;
|
|
14
|
+
export declare function isApproved(apiKeyId: string, chainId: string, txTo?: string): boolean;
|
|
15
|
+
//# sourceMappingURL=approvals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approvals.d.ts","sourceRoot":"","sources":["../src/approvals.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGxF,wBAAgB,aAAa,IAAI,aAAa,CAU7C;AAOD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,qBAAqB,CAAC;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,wBAAwB,GAAG,eAAe,CAuBpF;AAED,wBAAgB,eAAe,CAC7B,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,GAC1C,eAAe,GAAG,IAAI,CAUxB;AAED,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAYT"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { readFileSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { existsSync } from "node:fs";
|
|
3
|
+
import { randomUUID } from "node:crypto";
|
|
4
|
+
import { PATHS, ensureAegisDir } from "./paths.js";
|
|
5
|
+
export function readApprovals() {
|
|
6
|
+
if (!existsSync(PATHS.pendingApprovals)) {
|
|
7
|
+
return { pending: [] };
|
|
8
|
+
}
|
|
9
|
+
try {
|
|
10
|
+
const raw = readFileSync(PATHS.pendingApprovals, "utf-8");
|
|
11
|
+
return JSON.parse(raw);
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return { pending: [] };
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function writeApprovals(queue) {
|
|
18
|
+
ensureAegisDir();
|
|
19
|
+
writeFileSync(PATHS.pendingApprovals, JSON.stringify(queue, null, 2), "utf-8");
|
|
20
|
+
}
|
|
21
|
+
export function addPendingApproval(params) {
|
|
22
|
+
const now = new Date();
|
|
23
|
+
const ttlMinutes = params.ttlMinutes ?? 30;
|
|
24
|
+
const expiresAt = new Date(now.getTime() + ttlMinutes * 60 * 1000);
|
|
25
|
+
const approval = {
|
|
26
|
+
id: randomUUID(),
|
|
27
|
+
apiKeyId: params.apiKeyId,
|
|
28
|
+
chainId: params.chainId,
|
|
29
|
+
transaction: params.transaction,
|
|
30
|
+
estimatedValue: params.estimatedValue,
|
|
31
|
+
token: params.token,
|
|
32
|
+
reason: params.reason,
|
|
33
|
+
createdAt: now.toISOString(),
|
|
34
|
+
expiresAt: expiresAt.toISOString(),
|
|
35
|
+
status: "pending",
|
|
36
|
+
};
|
|
37
|
+
const queue = readApprovals();
|
|
38
|
+
queue.pending.push(approval);
|
|
39
|
+
writeApprovals(queue);
|
|
40
|
+
return approval;
|
|
41
|
+
}
|
|
42
|
+
export function resolveApproval(id, status) {
|
|
43
|
+
const queue = readApprovals();
|
|
44
|
+
const index = queue.pending.findIndex((a) => a.id === id);
|
|
45
|
+
if (index === -1)
|
|
46
|
+
return null;
|
|
47
|
+
queue.pending[index].status = status;
|
|
48
|
+
queue.pending[index].resolvedAt = new Date().toISOString();
|
|
49
|
+
writeApprovals(queue);
|
|
50
|
+
return queue.pending[index];
|
|
51
|
+
}
|
|
52
|
+
export function isApproved(apiKeyId, chainId, txTo) {
|
|
53
|
+
const queue = readApprovals();
|
|
54
|
+
const now = new Date();
|
|
55
|
+
return queue.pending.some((a) => {
|
|
56
|
+
if (a.apiKeyId !== apiKeyId)
|
|
57
|
+
return false;
|
|
58
|
+
if (a.chainId !== chainId)
|
|
59
|
+
return false;
|
|
60
|
+
if (a.status !== "approved")
|
|
61
|
+
return false;
|
|
62
|
+
if (new Date(a.expiresAt) < now)
|
|
63
|
+
return false;
|
|
64
|
+
if (txTo !== undefined && a.transaction.to !== txTo)
|
|
65
|
+
return false;
|
|
66
|
+
return true;
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=approvals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approvals.js","sourceRoot":"","sources":["../src/approvals.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { BudgetConfig, GuardConfig, DeadswitchConfig } from "./types.js";
|
|
2
|
+
export declare function readBudgetConfig(): BudgetConfig | null;
|
|
3
|
+
export declare function writeBudgetConfig(config: BudgetConfig): void;
|
|
4
|
+
export declare function readGuardConfig(): GuardConfig | null;
|
|
5
|
+
export declare function writeGuardConfig(config: GuardConfig): void;
|
|
6
|
+
export declare function readDeadswitchConfig(): DeadswitchConfig | null;
|
|
7
|
+
export declare function writeDeadswitchConfig(config: DeadswitchConfig): void;
|
|
8
|
+
export declare function updateHeartbeat(): void;
|
|
9
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAK9E,wBAAgB,gBAAgB,IAAI,YAAY,GAAG,IAAI,CAUtD;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAG5D;AAID,wBAAgB,eAAe,IAAI,WAAW,GAAG,IAAI,CAUpD;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAG1D;AAkBD,wBAAgB,oBAAoB,IAAI,gBAAgB,GAAG,IAAI,CAE9D;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAEpE;AAED,wBAAgB,eAAe,IAAI,IAAI,CAMtC"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { readFileSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { existsSync } from "node:fs";
|
|
3
|
+
import { PATHS, ensureAegisDir } from "./paths.js";
|
|
4
|
+
// === Budget Config ===
|
|
5
|
+
export function readBudgetConfig() {
|
|
6
|
+
if (!existsSync(PATHS.budgetConfig)) {
|
|
7
|
+
return null;
|
|
8
|
+
}
|
|
9
|
+
try {
|
|
10
|
+
const raw = readFileSync(PATHS.budgetConfig, "utf-8");
|
|
11
|
+
return JSON.parse(raw);
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export function writeBudgetConfig(config) {
|
|
18
|
+
ensureAegisDir();
|
|
19
|
+
writeFileSync(PATHS.budgetConfig, JSON.stringify(config, null, 2), "utf-8");
|
|
20
|
+
}
|
|
21
|
+
// === Guard Config ===
|
|
22
|
+
export function readGuardConfig() {
|
|
23
|
+
if (!existsSync(PATHS.guardConfig)) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
try {
|
|
27
|
+
const raw = readFileSync(PATHS.guardConfig, "utf-8");
|
|
28
|
+
return JSON.parse(raw);
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export function writeGuardConfig(config) {
|
|
35
|
+
ensureAegisDir();
|
|
36
|
+
writeFileSync(PATHS.guardConfig, JSON.stringify(config, null, 2), "utf-8");
|
|
37
|
+
}
|
|
38
|
+
// === Deadswitch Config ===
|
|
39
|
+
function readJson(path, fallback) {
|
|
40
|
+
if (!existsSync(path))
|
|
41
|
+
return fallback;
|
|
42
|
+
try {
|
|
43
|
+
return JSON.parse(readFileSync(path, "utf-8"));
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return fallback;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
function writeJson(path, data) {
|
|
50
|
+
ensureAegisDir();
|
|
51
|
+
writeFileSync(path, JSON.stringify(data, null, 2), "utf-8");
|
|
52
|
+
}
|
|
53
|
+
export function readDeadswitchConfig() {
|
|
54
|
+
return readJson(PATHS.deadswitchConfig, null);
|
|
55
|
+
}
|
|
56
|
+
export function writeDeadswitchConfig(config) {
|
|
57
|
+
writeJson(PATHS.deadswitchConfig, config);
|
|
58
|
+
}
|
|
59
|
+
export function updateHeartbeat() {
|
|
60
|
+
const config = readDeadswitchConfig();
|
|
61
|
+
if (config) {
|
|
62
|
+
config.lastHeartbeat = new Date().toISOString();
|
|
63
|
+
writeDeadswitchConfig(config);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEnD,wBAAwB;AAExB,MAAM,UAAU,gBAAgB;IAC9B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiB,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAoB;IACpD,cAAc,EAAE,CAAC;IACjB,aAAa,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC9E,CAAC;AAED,uBAAuB;AAEvB,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAmB;IAClD,cAAc,EAAE,CAAC;IACjB,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC7E,CAAC;AAED,4BAA4B;AAE5B,SAAS,QAAQ,CAAI,IAAY,EAAE,QAAW;IAC5C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IACvC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAM,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,IAAa;IAC5C,cAAc,EAAE,CAAC;IACjB,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO,QAAQ,CAA0B,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAwB;IAC5D,SAAS,CAAC,KAAK,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,aAAa,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAChD,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { EarningsLedger, EarningsEntry } from "./types.js";
|
|
2
|
+
export declare function readEarningsLedger(): EarningsLedger;
|
|
3
|
+
export declare function appendEarningsEntry(entry: EarningsEntry): void;
|
|
4
|
+
export declare function getEarningsByAgent(agentId: string): EarningsEntry[];
|
|
5
|
+
//# sourceMappingURL=earnings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"earnings.d.ts","sourceRoot":"","sources":["../src/earnings.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhE,wBAAgB,kBAAkB,IAAI,cAAc,CAGnD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAK9D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE,CAEnE"}
|
package/dist/earnings.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { readFileSync, writeFileSync, existsSync } from "node:fs";
|
|
2
|
+
import { PATHS, ensureAegisDir } from "./paths.js";
|
|
3
|
+
export function readEarningsLedger() {
|
|
4
|
+
if (!existsSync(PATHS.earningsLedger))
|
|
5
|
+
return { entries: [] };
|
|
6
|
+
return JSON.parse(readFileSync(PATHS.earningsLedger, "utf-8"));
|
|
7
|
+
}
|
|
8
|
+
export function appendEarningsEntry(entry) {
|
|
9
|
+
ensureAegisDir();
|
|
10
|
+
const ledger = readEarningsLedger();
|
|
11
|
+
ledger.entries.push(entry);
|
|
12
|
+
writeFileSync(PATHS.earningsLedger, JSON.stringify(ledger, null, 2));
|
|
13
|
+
}
|
|
14
|
+
export function getEarningsByAgent(agentId) {
|
|
15
|
+
return readEarningsLedger().entries.filter(e => e.agentId === agentId);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=earnings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"earnings.js","sourceRoot":"","sources":["../src/earnings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGnD,MAAM,UAAU,kBAAkB;IAChC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC9D,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,cAAc,EAAE,OAAO,CAAC,CAAmB,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAoB;IACtD,cAAc,EAAE,CAAC;IACjB,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACpC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,aAAa,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,OAAO,kBAAkB,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;AACzE,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from "./types.js";
|
|
2
|
+
export * from "./paths.js";
|
|
3
|
+
export * from "./ledger.js";
|
|
4
|
+
export * from "./earnings.js";
|
|
5
|
+
export * from "./agent-profile.js";
|
|
6
|
+
export * from "./config.js";
|
|
7
|
+
export * from "./policy-log.js";
|
|
8
|
+
export * from "./messages.js";
|
|
9
|
+
export * from "./ows.js";
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from "./types.js";
|
|
2
|
+
export * from "./paths.js";
|
|
3
|
+
export * from "./ledger.js";
|
|
4
|
+
export * from "./earnings.js";
|
|
5
|
+
export * from "./agent-profile.js";
|
|
6
|
+
export * from "./config.js";
|
|
7
|
+
export * from "./policy-log.js";
|
|
8
|
+
export * from "./messages.js";
|
|
9
|
+
export * from "./ows.js";
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC"}
|
package/dist/ledger.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { BudgetLedger, LedgerEntry } from "./types.js";
|
|
2
|
+
export declare function readLedger(): BudgetLedger;
|
|
3
|
+
export declare function appendLedgerEntry(entry: LedgerEntry): void;
|
|
4
|
+
export declare function getSpentInPeriod(ledger: BudgetLedger, apiKeyId: string, chainId: string, token: string, period: "daily" | "weekly" | "monthly"): number;
|
|
5
|
+
//# sourceMappingURL=ledger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ledger.d.ts","sourceRoot":"","sources":["../src/ledger.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG5D,wBAAgB,UAAU,IAAI,YAAY,CAUzC;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAK1D;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GACrC,MAAM,CAwBR"}
|
package/dist/ledger.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { readFileSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { existsSync } from "node:fs";
|
|
3
|
+
import { PATHS, ensureAegisDir } from "./paths.js";
|
|
4
|
+
export function readLedger() {
|
|
5
|
+
if (!existsSync(PATHS.budgetLedger)) {
|
|
6
|
+
return { entries: [] };
|
|
7
|
+
}
|
|
8
|
+
try {
|
|
9
|
+
const raw = readFileSync(PATHS.budgetLedger, "utf-8");
|
|
10
|
+
return JSON.parse(raw);
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return { entries: [] };
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export function appendLedgerEntry(entry) {
|
|
17
|
+
ensureAegisDir();
|
|
18
|
+
const ledger = readLedger();
|
|
19
|
+
ledger.entries.push(entry);
|
|
20
|
+
writeFileSync(PATHS.budgetLedger, JSON.stringify(ledger, null, 2), "utf-8");
|
|
21
|
+
}
|
|
22
|
+
export function getSpentInPeriod(ledger, apiKeyId, chainId, token, period) {
|
|
23
|
+
const now = new Date();
|
|
24
|
+
let cutoff;
|
|
25
|
+
if (period === "daily") {
|
|
26
|
+
cutoff = new Date(now);
|
|
27
|
+
cutoff.setHours(0, 0, 0, 0);
|
|
28
|
+
}
|
|
29
|
+
else if (period === "weekly") {
|
|
30
|
+
cutoff = new Date(now);
|
|
31
|
+
cutoff.setDate(now.getDate() - now.getDay());
|
|
32
|
+
cutoff.setHours(0, 0, 0, 0);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
cutoff = new Date(now.getFullYear(), now.getMonth(), 1);
|
|
36
|
+
}
|
|
37
|
+
return ledger.entries
|
|
38
|
+
.filter((e) => e.apiKeyId === apiKeyId &&
|
|
39
|
+
e.chainId === chainId &&
|
|
40
|
+
e.token === token &&
|
|
41
|
+
new Date(e.timestamp) >= cutoff)
|
|
42
|
+
.reduce((sum, e) => sum + parseFloat(e.amount), 0);
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=ledger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ledger.js","sourceRoot":"","sources":["../src/ledger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;QACpC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiB,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAkB;IAClD,cAAc,EAAE,CAAC;IACjB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,aAAa,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,MAAoB,EACpB,QAAgB,EAChB,OAAe,EACf,KAAa,EACb,MAAsC;IAEtC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,IAAI,MAAY,CAAC;IAEjB,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;QACvB,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,CAAC;SAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;QACvB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,MAAM,CAAC,OAAO;SAClB,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,QAAQ,KAAK,QAAQ;QACvB,CAAC,CAAC,OAAO,KAAK,OAAO;QACrB,CAAC,CAAC,KAAK,KAAK,KAAK;QACjB,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,MAAM,CAClC;SACA,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AACvD,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export interface ServiceAnnouncement {
|
|
2
|
+
type: "service_announcement";
|
|
3
|
+
agentId: string;
|
|
4
|
+
timestamp: string;
|
|
5
|
+
services: {
|
|
6
|
+
endpoint: string;
|
|
7
|
+
price: string;
|
|
8
|
+
token: string;
|
|
9
|
+
description: string;
|
|
10
|
+
baseUrl: string;
|
|
11
|
+
}[];
|
|
12
|
+
}
|
|
13
|
+
export interface ServiceQuery {
|
|
14
|
+
type: "service_query";
|
|
15
|
+
agentId: string;
|
|
16
|
+
timestamp: string;
|
|
17
|
+
query: string;
|
|
18
|
+
}
|
|
19
|
+
export interface ServiceResponse {
|
|
20
|
+
type: "service_response";
|
|
21
|
+
agentId: string;
|
|
22
|
+
timestamp: string;
|
|
23
|
+
inResponseTo: string;
|
|
24
|
+
matches: {
|
|
25
|
+
endpoint: string;
|
|
26
|
+
price: string;
|
|
27
|
+
description: string;
|
|
28
|
+
fullUrl: string;
|
|
29
|
+
}[];
|
|
30
|
+
}
|
|
31
|
+
export type AgentMessage = ServiceAnnouncement | ServiceQuery | ServiceResponse;
|
|
32
|
+
export interface MessageBus {
|
|
33
|
+
messages: AgentMessage[];
|
|
34
|
+
}
|
|
35
|
+
export declare function readMessages(): MessageBus;
|
|
36
|
+
export declare function postMessage(msg: AgentMessage): void;
|
|
37
|
+
export declare function getAnnouncements(): ServiceAnnouncement[];
|
|
38
|
+
export declare function discoverServices(query: string): ServiceAnnouncement["services"][number][];
|
|
39
|
+
//# sourceMappingURL=messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;KACjB,EAAE,CAAC;CACL;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;KACjB,EAAE,CAAC;CACL;AAED,MAAM,MAAM,YAAY,GAAG,mBAAmB,GAAG,YAAY,GAAG,eAAe,CAAC;AAEhF,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,wBAAgB,YAAY,IAAI,UAAU,CAGzC;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI,CAKnD;AAED,wBAAgB,gBAAgB,IAAI,mBAAmB,EAAE,CAIxD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,EAAE,CAezF"}
|
package/dist/messages.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { readFileSync, writeFileSync, existsSync } from "node:fs";
|
|
2
|
+
import { PATHS, ensureAegisDir } from "./paths.js";
|
|
3
|
+
export function readMessages() {
|
|
4
|
+
if (!existsSync(PATHS.messageBus))
|
|
5
|
+
return { messages: [] };
|
|
6
|
+
return JSON.parse(readFileSync(PATHS.messageBus, "utf-8"));
|
|
7
|
+
}
|
|
8
|
+
export function postMessage(msg) {
|
|
9
|
+
ensureAegisDir();
|
|
10
|
+
const bus = readMessages();
|
|
11
|
+
bus.messages.push(msg);
|
|
12
|
+
writeFileSync(PATHS.messageBus, JSON.stringify(bus, null, 2));
|
|
13
|
+
}
|
|
14
|
+
export function getAnnouncements() {
|
|
15
|
+
return readMessages().messages.filter((m) => m.type === "service_announcement");
|
|
16
|
+
}
|
|
17
|
+
export function discoverServices(query) {
|
|
18
|
+
const announcements = getAnnouncements();
|
|
19
|
+
const q = query.toLowerCase();
|
|
20
|
+
const matches = [];
|
|
21
|
+
for (const ann of announcements) {
|
|
22
|
+
for (const svc of ann.services) {
|
|
23
|
+
if (svc.description.toLowerCase().includes(q) ||
|
|
24
|
+
svc.endpoint.toLowerCase().includes(q)) {
|
|
25
|
+
matches.push(svc);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return matches;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAyCnD,MAAM,UAAU,YAAY;IAC1B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC3D,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAe,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAiB;IAC3C,cAAc,EAAE,CAAC;IACjB,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;IAC3B,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvB,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,YAAY,EAAE,CAAC,QAAQ,CAAC,MAAM,CACnC,CAAC,CAAC,EAA4B,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,sBAAsB,CACnE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IACzC,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAC9B,MAAM,OAAO,GAA8C,EAAE,CAAC;IAC9D,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC/B,IACE,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACzC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EACtC,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/dist/ows.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface OWSWalletInfo {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
addresses: Record<string, string>;
|
|
5
|
+
}
|
|
6
|
+
export declare function getOWSWallets(): OWSWalletInfo[];
|
|
7
|
+
export declare function getOWSWallet(name: string): OWSWalletInfo | null;
|
|
8
|
+
export declare function getOWSPolicies(): any[];
|
|
9
|
+
export declare function getOWSApiKeys(): any[];
|
|
10
|
+
//# sourceMappingURL=ows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ows.d.ts","sourceRoot":"","sources":["../src/ows.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAmBD,wBAAgB,aAAa,IAAI,aAAa,EAAE,CAO/C;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAQ/D;AAED,wBAAgB,cAAc,UAM7B;AAED,wBAAgB,aAAa,UAM5B"}
|
package/dist/ows.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { listWallets, getWallet, listPolicies, listApiKeys } from "@open-wallet-standard/core";
|
|
2
|
+
/** Convert WalletInfo accounts array to a chainId -> address map. */
|
|
3
|
+
function accountsToAddresses(accounts) {
|
|
4
|
+
const map = {};
|
|
5
|
+
for (const a of accounts) {
|
|
6
|
+
map[a.chainId] = a.address;
|
|
7
|
+
}
|
|
8
|
+
return map;
|
|
9
|
+
}
|
|
10
|
+
function toOWSWalletInfo(w) {
|
|
11
|
+
return {
|
|
12
|
+
id: w.id,
|
|
13
|
+
name: w.name,
|
|
14
|
+
addresses: accountsToAddresses(w.accounts),
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export function getOWSWallets() {
|
|
18
|
+
try {
|
|
19
|
+
const wallets = listWallets();
|
|
20
|
+
return wallets.map(toOWSWalletInfo);
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return [];
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export function getOWSWallet(name) {
|
|
27
|
+
try {
|
|
28
|
+
const wallet = getWallet(name);
|
|
29
|
+
if (!wallet)
|
|
30
|
+
return null;
|
|
31
|
+
return toOWSWalletInfo(wallet);
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export function getOWSPolicies() {
|
|
38
|
+
try {
|
|
39
|
+
return listPolicies();
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
return [];
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
export function getOWSApiKeys() {
|
|
46
|
+
try {
|
|
47
|
+
return listApiKeys();
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
return [];
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=ows.js.map
|
package/dist/ows.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ows.js","sourceRoot":"","sources":["../src/ows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAS/F,qEAAqE;AACrE,SAAS,mBAAmB,CAAC,QAAuB;IAClD,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;IAC7B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,eAAe,CAAC,CAAa;IACpC,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC;QACH,OAAO,YAAY,EAAE,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,IAAI,CAAC;QACH,OAAO,WAAW,EAAE,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
|
package/dist/paths.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const PATHS: {
|
|
2
|
+
readonly owsDir: string;
|
|
3
|
+
readonly aegisDir: string;
|
|
4
|
+
readonly budgetLedger: string;
|
|
5
|
+
readonly budgetConfig: string;
|
|
6
|
+
readonly guardConfig: string;
|
|
7
|
+
readonly policyLog: string;
|
|
8
|
+
readonly deadswitchConfig: string;
|
|
9
|
+
readonly earningsLedger: string;
|
|
10
|
+
readonly messageBus: string;
|
|
11
|
+
};
|
|
12
|
+
export declare function ensureAegisDir(): void;
|
|
13
|
+
//# sourceMappingURL=paths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,KAAK;;;;;;;;;;CAUR,CAAC;AAEX,wBAAgB,cAAc,IAAI,IAAI,CAIrC"}
|
package/dist/paths.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { homedir } from "node:os";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { mkdirSync, existsSync } from "node:fs";
|
|
4
|
+
const OWS_DIR = join(homedir(), ".ows");
|
|
5
|
+
const AEGIS_DIR = join(OWS_DIR, "aegis");
|
|
6
|
+
export const PATHS = {
|
|
7
|
+
owsDir: OWS_DIR,
|
|
8
|
+
aegisDir: AEGIS_DIR,
|
|
9
|
+
budgetLedger: join(AEGIS_DIR, "budget-ledger.json"),
|
|
10
|
+
budgetConfig: join(AEGIS_DIR, "budget-config.json"),
|
|
11
|
+
guardConfig: join(AEGIS_DIR, "guard-config.json"),
|
|
12
|
+
policyLog: join(AEGIS_DIR, "policy-log.json"),
|
|
13
|
+
deadswitchConfig: join(AEGIS_DIR, "deadswitch-config.json"),
|
|
14
|
+
earningsLedger: join(AEGIS_DIR, "earnings-ledger.json"),
|
|
15
|
+
messageBus: join(AEGIS_DIR, "messages.json"),
|
|
16
|
+
};
|
|
17
|
+
export function ensureAegisDir() {
|
|
18
|
+
if (!existsSync(AEGIS_DIR)) {
|
|
19
|
+
mkdirSync(AEGIS_DIR, { recursive: true });
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEhD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;AACxC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAEzC,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,MAAM,EAAE,OAAO;IACf,QAAQ,EAAE,SAAS;IACnB,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC;IACnD,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC;IACnD,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC;IACjD,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC;IAC7C,gBAAgB,EAAE,IAAI,CAAC,SAAS,EAAE,wBAAwB,CAAC;IAC3D,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,sBAAsB,CAAC;IACvD,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC;CACpC,CAAC;AAEX,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy-log.d.ts","sourceRoot":"","sources":["../src/policy-log.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG5D,wBAAgB,aAAa,IAAI,SAAS,CAUzC;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAK3D"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { readFileSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { existsSync } from "node:fs";
|
|
3
|
+
import { PATHS, ensureAegisDir } from "./paths.js";
|
|
4
|
+
export function readPolicyLog() {
|
|
5
|
+
if (!existsSync(PATHS.policyLog)) {
|
|
6
|
+
return { entries: [] };
|
|
7
|
+
}
|
|
8
|
+
try {
|
|
9
|
+
const raw = readFileSync(PATHS.policyLog, "utf-8");
|
|
10
|
+
return JSON.parse(raw);
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return { entries: [] };
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export function appendPolicyLog(entry) {
|
|
17
|
+
ensureAegisDir();
|
|
18
|
+
const log = readPolicyLog();
|
|
19
|
+
log.entries.push(entry);
|
|
20
|
+
writeFileSync(PATHS.policyLog, JSON.stringify(log, null, 2), "utf-8");
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=policy-log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy-log.js","sourceRoot":"","sources":["../src/policy-log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,UAAU,aAAa;IAC3B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAc,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAqB;IACnD,cAAc,EAAE,CAAC;IACjB,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxB,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACxE,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ServiceEntry, ServiceRegistry } from "./types.js";
|
|
2
|
+
export declare function readRegistry(): ServiceRegistry;
|
|
3
|
+
export interface RegisterServiceParams {
|
|
4
|
+
name: string;
|
|
5
|
+
description: string;
|
|
6
|
+
endpoint: string;
|
|
7
|
+
price: string;
|
|
8
|
+
token: string;
|
|
9
|
+
protocol: "x402" | "mpp";
|
|
10
|
+
chains: string[];
|
|
11
|
+
registeredBy: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function registerService(params: RegisterServiceParams): ServiceEntry;
|
|
14
|
+
export declare function searchServices(query: string, maxPrice?: string, chain?: string, protocol?: "x402" | "mpp"): ServiceEntry[];
|
|
15
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGhE,wBAAgB,YAAY,IAAI,eAAe,CAU9C;AAOD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,YAAY,CAmB3E;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,GACxB,YAAY,EAAE,CA0BhB"}
|
package/dist/registry.js
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { readFileSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { existsSync } from "node:fs";
|
|
3
|
+
import { randomUUID } from "node:crypto";
|
|
4
|
+
import { PATHS, ensureAegisDir } from "./paths.js";
|
|
5
|
+
export function readRegistry() {
|
|
6
|
+
if (!existsSync(PATHS.serviceRegistry)) {
|
|
7
|
+
return { services: [] };
|
|
8
|
+
}
|
|
9
|
+
try {
|
|
10
|
+
const raw = readFileSync(PATHS.serviceRegistry, "utf-8");
|
|
11
|
+
return JSON.parse(raw);
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return { services: [] };
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function writeRegistry(registry) {
|
|
18
|
+
ensureAegisDir();
|
|
19
|
+
writeFileSync(PATHS.serviceRegistry, JSON.stringify(registry, null, 2), "utf-8");
|
|
20
|
+
}
|
|
21
|
+
export function registerService(params) {
|
|
22
|
+
const entry = {
|
|
23
|
+
id: randomUUID(),
|
|
24
|
+
name: params.name,
|
|
25
|
+
description: params.description,
|
|
26
|
+
endpoint: params.endpoint,
|
|
27
|
+
price: params.price,
|
|
28
|
+
token: params.token,
|
|
29
|
+
protocol: params.protocol,
|
|
30
|
+
chains: params.chains,
|
|
31
|
+
registeredBy: params.registeredBy,
|
|
32
|
+
registeredAt: new Date().toISOString(),
|
|
33
|
+
};
|
|
34
|
+
const registry = readRegistry();
|
|
35
|
+
registry.services.push(entry);
|
|
36
|
+
writeRegistry(registry);
|
|
37
|
+
return entry;
|
|
38
|
+
}
|
|
39
|
+
export function searchServices(query, maxPrice, chain, protocol) {
|
|
40
|
+
const registry = readRegistry();
|
|
41
|
+
const lowerQuery = query.toLowerCase();
|
|
42
|
+
return registry.services.filter((s) => {
|
|
43
|
+
const matchesQuery = s.name.toLowerCase().includes(lowerQuery) ||
|
|
44
|
+
s.description.toLowerCase().includes(lowerQuery) ||
|
|
45
|
+
s.endpoint.toLowerCase().includes(lowerQuery);
|
|
46
|
+
if (!matchesQuery)
|
|
47
|
+
return false;
|
|
48
|
+
if (maxPrice !== undefined && parseFloat(s.price) > parseFloat(maxPrice)) {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
if (chain !== undefined && !s.chains.includes(chain)) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
if (protocol !== undefined && s.protocol !== protocol) {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
return true;
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
export interface SerializedTransaction {
|
|
2
|
+
to?: string;
|
|
3
|
+
value?: string;
|
|
4
|
+
data?: string;
|
|
5
|
+
[key: string]: unknown;
|
|
6
|
+
}
|
|
7
|
+
export interface WalletDescriptor {
|
|
8
|
+
id: string;
|
|
9
|
+
name: string;
|
|
10
|
+
addresses: Record<string, string>;
|
|
11
|
+
}
|
|
12
|
+
export interface SimulationResult {
|
|
13
|
+
success: boolean;
|
|
14
|
+
gasUsed?: string;
|
|
15
|
+
value?: string;
|
|
16
|
+
logs?: unknown[];
|
|
17
|
+
}
|
|
18
|
+
export interface PolicyContext {
|
|
19
|
+
transaction: SerializedTransaction;
|
|
20
|
+
chainId: string;
|
|
21
|
+
wallet: WalletDescriptor;
|
|
22
|
+
simulation?: SimulationResult;
|
|
23
|
+
timestamp: string;
|
|
24
|
+
apiKeyId: string;
|
|
25
|
+
}
|
|
26
|
+
export interface PolicyResult {
|
|
27
|
+
allow: boolean;
|
|
28
|
+
reason?: string;
|
|
29
|
+
}
|
|
30
|
+
export interface BudgetLimit {
|
|
31
|
+
chainId: string;
|
|
32
|
+
token: string;
|
|
33
|
+
daily?: string;
|
|
34
|
+
weekly?: string;
|
|
35
|
+
monthly?: string;
|
|
36
|
+
}
|
|
37
|
+
export interface BudgetConfig {
|
|
38
|
+
limits: BudgetLimit[];
|
|
39
|
+
}
|
|
40
|
+
export interface LedgerEntry {
|
|
41
|
+
timestamp: string;
|
|
42
|
+
apiKeyId: string;
|
|
43
|
+
chainId: string;
|
|
44
|
+
token: string;
|
|
45
|
+
amount: string;
|
|
46
|
+
txHash?: string;
|
|
47
|
+
tool?: string;
|
|
48
|
+
description?: string;
|
|
49
|
+
}
|
|
50
|
+
export interface BudgetLedger {
|
|
51
|
+
entries: LedgerEntry[];
|
|
52
|
+
}
|
|
53
|
+
export interface GuardConfig {
|
|
54
|
+
mode: "allowlist" | "blocklist";
|
|
55
|
+
addresses: Record<string, string[]>;
|
|
56
|
+
blockAddresses?: string[];
|
|
57
|
+
}
|
|
58
|
+
export interface PolicyLogEntry {
|
|
59
|
+
timestamp: string;
|
|
60
|
+
policyName: string;
|
|
61
|
+
apiKeyId: string;
|
|
62
|
+
chainId: string;
|
|
63
|
+
allowed: boolean;
|
|
64
|
+
reason?: string;
|
|
65
|
+
transactionPreview?: string;
|
|
66
|
+
}
|
|
67
|
+
export interface PolicyLog {
|
|
68
|
+
entries: PolicyLogEntry[];
|
|
69
|
+
}
|
|
70
|
+
export interface DeadswitchConfig {
|
|
71
|
+
maxInactiveMinutes: number;
|
|
72
|
+
onTrigger: "revoke_key";
|
|
73
|
+
recoveryWallet?: string;
|
|
74
|
+
sweepFunds: boolean;
|
|
75
|
+
lastHeartbeat?: string;
|
|
76
|
+
enabled: boolean;
|
|
77
|
+
}
|
|
78
|
+
export interface EarningsEntry {
|
|
79
|
+
timestamp: string;
|
|
80
|
+
agentId: string;
|
|
81
|
+
endpoint: string;
|
|
82
|
+
fromAgent: string;
|
|
83
|
+
token: string;
|
|
84
|
+
amount: string;
|
|
85
|
+
txHash?: string;
|
|
86
|
+
}
|
|
87
|
+
export interface EarningsLedger {
|
|
88
|
+
entries: EarningsEntry[];
|
|
89
|
+
}
|
|
90
|
+
export interface AgentProfile {
|
|
91
|
+
agentId: string;
|
|
92
|
+
totalRevenue: number;
|
|
93
|
+
totalSpending: number;
|
|
94
|
+
profitLoss: number;
|
|
95
|
+
endpoints: {
|
|
96
|
+
endpoint: string;
|
|
97
|
+
revenue: number;
|
|
98
|
+
calls: number;
|
|
99
|
+
}[];
|
|
100
|
+
vendors: {
|
|
101
|
+
vendor: string;
|
|
102
|
+
spending: number;
|
|
103
|
+
calls: number;
|
|
104
|
+
}[];
|
|
105
|
+
}
|
|
106
|
+
export interface SankeyData {
|
|
107
|
+
nodes: {
|
|
108
|
+
name: string;
|
|
109
|
+
}[];
|
|
110
|
+
links: {
|
|
111
|
+
source: number;
|
|
112
|
+
target: number;
|
|
113
|
+
value: number;
|
|
114
|
+
}[];
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "aegis-ows-shared",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Shared types and utilities for the Aegis commerce protocol",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist",
|
|
10
|
+
"README.md",
|
|
11
|
+
"LICENSE"
|
|
12
|
+
],
|
|
13
|
+
"keywords": [
|
|
14
|
+
"aegis",
|
|
15
|
+
"ows",
|
|
16
|
+
"agents",
|
|
17
|
+
"commerce"
|
|
18
|
+
],
|
|
19
|
+
"author": "Raj Karia",
|
|
20
|
+
"license": "MIT",
|
|
21
|
+
"repository": {
|
|
22
|
+
"type": "git",
|
|
23
|
+
"url": "https://github.com/rajkaria/aegis"
|
|
24
|
+
},
|
|
25
|
+
"homepage": "https://useaegis.xyz",
|
|
26
|
+
"scripts": {
|
|
27
|
+
"build": "tsc",
|
|
28
|
+
"dev": "tsc --watch"
|
|
29
|
+
},
|
|
30
|
+
"dependencies": {
|
|
31
|
+
"@open-wallet-standard/core": "*"
|
|
32
|
+
},
|
|
33
|
+
"devDependencies": {
|
|
34
|
+
"@types/node": "^22.0.0",
|
|
35
|
+
"typescript": "^5.7.0"
|
|
36
|
+
}
|
|
37
|
+
}
|