flowise-invinoveritas 0.6.0 → 0.7.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.
@@ -0,0 +1,27 @@
1
+ type InvinoConfig = {
2
+ apiKey: string;
3
+ integration?: string;
4
+ };
5
+ export declare function invinoReason(config: InvinoConfig, question: string, style?: string): Promise<any>;
6
+ export declare function invinoDecision(config: InvinoConfig, goal: string, question: string, context?: string): Promise<any>;
7
+ export declare function invinoReview(config: InvinoConfig, artifact: string, artifactType?: string, context?: string, severityThreshold?: 'low' | 'medium' | 'high', includeTradingState?: boolean, sign?: boolean): Promise<any>;
8
+ export declare function invinoProve(config: InvinoConfig, actionId: string): Promise<any>;
9
+ export declare function invinoVerifyProof(config: InvinoConfig, event?: Record<string, any>, proofId?: string, expectArtifactHash?: string): Promise<any>;
10
+ export declare function invinoLedger(config: InvinoConfig, entry?: string): Promise<any>;
11
+ export declare function invinoResidenceAct(config: InvinoConfig, intent: string, artifact?: string, artifactType?: string, requireReview?: boolean, remember?: boolean, maxSpendSats?: number): Promise<any>;
12
+ export declare function invinoRegime(config: InvinoConfig, x402?: boolean): Promise<any>;
13
+ export declare function invinoSignalsTeaser(config: InvinoConfig): Promise<any>;
14
+ export declare function invinoSignals(config: InvinoConfig, x402?: boolean): Promise<any>;
15
+ export declare function invinoMarketsAct(config: InvinoConfig, artifact?: string, artifactType?: string, context?: string, coins?: string[], maxSpendSats?: number): Promise<any>;
16
+ export declare function invinoGrowthAttackPlan(config: InvinoConfig, objective: string, context?: string, budgetSats?: number): Promise<any>;
17
+ export declare function invinoMemoryStore(config: InvinoConfig, agentId: string, key: string, value: string): Promise<any>;
18
+ export declare function invinoMemoryGet(config: InvinoConfig, agentId: string, key: string): Promise<any>;
19
+ export declare function invinoMemoryList(config: InvinoConfig, agentId: string): Promise<any>;
20
+ export declare function invinoMemoryDelete(config: InvinoConfig, agentId: string, key: string): Promise<any>;
21
+ export declare function invinoSovereignExecute(config: InvinoConfig, thesis: string, feeSats?: number, direction?: 'auto' | 'long' | 'short', leverage?: number, durationHours?: number, stopLossPct?: number, takeProfitPct?: number): Promise<any>;
22
+ export declare const nodes: {
23
+ label: string;
24
+ name: string;
25
+ description: string;
26
+ }[];
27
+ export {};
package/dist/index.js ADDED
@@ -0,0 +1,240 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.nodes = void 0;
4
+ exports.invinoReason = invinoReason;
5
+ exports.invinoDecision = invinoDecision;
6
+ exports.invinoReview = invinoReview;
7
+ exports.invinoProve = invinoProve;
8
+ exports.invinoVerifyProof = invinoVerifyProof;
9
+ exports.invinoLedger = invinoLedger;
10
+ exports.invinoResidenceAct = invinoResidenceAct;
11
+ exports.invinoRegime = invinoRegime;
12
+ exports.invinoSignalsTeaser = invinoSignalsTeaser;
13
+ exports.invinoSignals = invinoSignals;
14
+ exports.invinoMarketsAct = invinoMarketsAct;
15
+ exports.invinoGrowthAttackPlan = invinoGrowthAttackPlan;
16
+ exports.invinoMemoryStore = invinoMemoryStore;
17
+ exports.invinoMemoryGet = invinoMemoryGet;
18
+ exports.invinoMemoryList = invinoMemoryList;
19
+ exports.invinoMemoryDelete = invinoMemoryDelete;
20
+ exports.invinoSovereignExecute = invinoSovereignExecute;
21
+ const BASE_URL = 'https://api.babyblueviper.com';
22
+ async function post(config, path, body) {
23
+ const response = await fetch(`${BASE_URL}${path}`, {
24
+ method: 'POST',
25
+ headers: {
26
+ Authorization: `Bearer ${config.apiKey}`,
27
+ 'Content-Type': 'application/json',
28
+ 'User-Agent': 'flowise-invinoveritas/0.4.0',
29
+ 'X-Invino-Integration': config.integration || 'flowise',
30
+ },
31
+ body: JSON.stringify(body),
32
+ });
33
+ if (!response.ok) {
34
+ throw new Error(`invinoveritas ${path} failed: ${response.status} ${await response.text()}`);
35
+ }
36
+ return response.json();
37
+ }
38
+ async function get(config, path, x402 = false) {
39
+ const headers = {
40
+ Authorization: `Bearer ${config.apiKey}`,
41
+ 'User-Agent': 'flowise-invinoveritas/0.5.0',
42
+ 'X-Invino-Integration': config.integration || 'flowise',
43
+ };
44
+ if (x402)
45
+ headers['X-Payment-Scheme'] = 'x402';
46
+ const response = await fetch(`${BASE_URL}${path}`, { method: 'GET', headers });
47
+ if (!response.ok) {
48
+ throw new Error(`invinoveritas ${path} failed: ${response.status} ${await response.text()}`);
49
+ }
50
+ return response.json();
51
+ }
52
+ async function invinoReason(config, question, style = 'normal') {
53
+ return post(config, '/reason', { question, style });
54
+ }
55
+ async function invinoDecision(config, goal, question, context = '') {
56
+ return post(config, '/decision', { goal, question, context });
57
+ }
58
+ async function invinoReview(config, artifact, artifactType = 'general', context = '', severityThreshold = 'medium', includeTradingState = false, sign = false) {
59
+ return post(config, '/review', {
60
+ artifact,
61
+ artifact_type: artifactType,
62
+ context,
63
+ severity_threshold: severityThreshold,
64
+ include_trading_state: includeTradingState,
65
+ sign,
66
+ });
67
+ }
68
+ async function invinoProve(config, actionId) {
69
+ // Signed, independently-verifiable proof of a prior execution (the verdict-after to review's verdict-before).
70
+ return post(config, '/prove', { action_id: actionId });
71
+ }
72
+ async function invinoVerifyProof(config, event, proofId = '', expectArtifactHash = '') {
73
+ // Agent-to-agent trust handshake (FREE, no auth): verify a counterparty's proof WITHOUT trusting them or us.
74
+ const body = {};
75
+ if (event)
76
+ body.event = event;
77
+ if (proofId)
78
+ body.proof_id = proofId;
79
+ if (expectArtifactHash)
80
+ body.expect_artifact_hash = expectArtifactHash;
81
+ return post(config, '/verify-proof', body);
82
+ }
83
+ async function invinoLedger(config, entry = '') {
84
+ // The public, signed, on-chain-verifiable verdict track record — verify without trusting us. Free, no auth.
85
+ return get(config, entry ? `/ledger/${entry}` : '/ledger');
86
+ }
87
+ async function invinoResidenceAct(config, intent, artifact = '', artifactType = 'general', requireReview = true, remember = true, maxSpendSats) {
88
+ const body = {
89
+ intent,
90
+ artifact_type: artifactType,
91
+ policy: {
92
+ require_review: requireReview,
93
+ remember,
94
+ max_spend_sats: maxSpendSats ?? null,
95
+ },
96
+ };
97
+ if (artifact)
98
+ body.artifact = artifact;
99
+ return post(config, '/residence/act', body);
100
+ }
101
+ // ---- Markets / trading intelligence (facts-only, never P&L/advice) ----
102
+ async function invinoRegime(config, x402 = false) {
103
+ return get(config, '/regime', x402);
104
+ }
105
+ async function invinoSignalsTeaser(config) {
106
+ // Free shop-window: BTC vol-expansion regime read (the gate our live earner enters on).
107
+ return get(config, '/signals');
108
+ }
109
+ async function invinoSignals(config, x402 = false) {
110
+ // Paid full multi-coin live Hyperliquid derivatives set.
111
+ return get(config, '/signals/full', x402);
112
+ }
113
+ async function invinoMarketsAct(config, artifact = '', artifactType = 'general', context = '', coins, maxSpendSats) {
114
+ // The Markets Bundle: regime + live signals + brief + optional governance review.
115
+ const body = { artifact_type: artifactType };
116
+ if (coins && coins.length)
117
+ body.coins = coins;
118
+ if (artifact)
119
+ body.artifact = artifact;
120
+ if (context)
121
+ body.context = context;
122
+ if (maxSpendSats !== undefined)
123
+ body.max_spend_sats = maxSpendSats;
124
+ return post(config, '/markets/act', body);
125
+ }
126
+ async function invinoGrowthAttackPlan(config, objective, context = '', budgetSats) {
127
+ return invinoDecision(config, 'Maximize invinoveritas growth and daily sats PNL with default-aggressive execution.', [
128
+ 'Default posture: aggressive growth and PNL capture, bounded by Bitcoin/Lightning-only payments, budget limits, and explicit risk controls.',
129
+ 'Produce concrete next actions that drive registrations, funded accounts, paid reasoning, marketplace purchases, Premium Spawn Kit conversion, referrals, seller withdrawals, or Sovereign Earner support.',
130
+ `Objective: ${objective}`,
131
+ `Context: ${context}`,
132
+ `Budget sats: ${budgetSats ?? 'not specified'}`,
133
+ ].join('\n'), context);
134
+ }
135
+ async function invinoMemoryStore(config, agentId, key, value) {
136
+ return post(config, '/memory/store', { agent_id: agentId, key, value });
137
+ }
138
+ async function invinoMemoryGet(config, agentId, key) {
139
+ return post(config, '/memory/get', { agent_id: agentId, key });
140
+ }
141
+ async function invinoMemoryList(config, agentId) {
142
+ return post(config, '/memory/list', { agent_id: agentId });
143
+ }
144
+ async function invinoMemoryDelete(config, agentId, key) {
145
+ return post(config, '/memory/delete', { agent_id: agentId, key });
146
+ }
147
+ async function invinoSovereignExecute(config, thesis, feeSats = 1000, direction = 'auto', leverage = 3, durationHours = 2, stopLossPct = 0.35, takeProfitPct = 0.7) {
148
+ return post(config, '/sovereign/execute', {
149
+ fee_sats: feeSats,
150
+ direction,
151
+ leverage,
152
+ duration_hours: durationHours,
153
+ stop_loss_pct: stopLossPct,
154
+ take_profit_pct: takeProfitPct,
155
+ thesis,
156
+ agent_id: 'flowise',
157
+ });
158
+ }
159
+ exports.nodes = [
160
+ {
161
+ label: 'invinoveritas Reason',
162
+ name: 'invinoveritasReason',
163
+ description: 'Paid reasoning over Bitcoin Lightning.',
164
+ },
165
+ {
166
+ label: 'invinoveritas Decision',
167
+ name: 'invinoveritasDecision',
168
+ description: 'Structured decisions with confidence and risk notes.',
169
+ },
170
+ {
171
+ label: 'invinoveritas Review (front door)',
172
+ name: 'invinoveritasReview',
173
+ description: 'Capital-scale-aware governed review of a trade, diff, command, or plan — the same gate our live Bitcoin bot passes before every entry. ~250 sats.',
174
+ },
175
+ {
176
+ label: 'invinoveritas Prove (signed proof)',
177
+ name: 'invinoveritasProve',
178
+ description: 'Signed, independently-verifiable proof of a prior execution — the attestation-after to Review\'s verdict-before. Public verify at /attestations/{proof_id}.',
179
+ },
180
+ {
181
+ label: 'invinoveritas Ledger (public track record)',
182
+ name: 'invinoveritasLedger',
183
+ description: 'The public, signed, on-chain-verifiable verdict track record — verify our record against our published key without trusting us. We publish our failures too. Free.',
184
+ },
185
+ {
186
+ label: 'invinoveritas Verify Proof (trust handshake)',
187
+ name: 'invinoveritasVerifyProof',
188
+ description: 'Another agent handed you output with an invinoveritas proof? Verify it WITHOUT trusting that agent or us — confirms we issued the verdict (schnorr sig vs our published key). Pass expect_artifact_hash to bind it to the exact output. Free, no auth.',
189
+ },
190
+ {
191
+ label: 'invinoveritas Residence Act (optional governed bundle)',
192
+ name: 'invinoveritasResidenceAct',
193
+ description: 'Optional one governed call — reasons + governs + remembers your intent. Deterministic house rules; priced below the sum of its parts.',
194
+ },
195
+ {
196
+ label: 'invinoveritas Regime (risk-off feed)',
197
+ name: 'invinoveritasRegime',
198
+ description: 'Macro risk-off DATA feed (OOS-validated, facts-only) — the regime signal our own bot scales risk by.',
199
+ },
200
+ {
201
+ label: 'invinoveritas Signals (live derivatives)',
202
+ name: 'invinoveritasSignals',
203
+ description: 'Live Hyperliquid derivatives signals — funding + 24h delta, basis, open interest, the vol-expansion regime our bot enters on, realized vol, BTC DVOL. Free BTC teaser + paid multi-coin set. Facts-only, never advice.',
204
+ },
205
+ {
206
+ label: 'invinoveritas Markets Bundle',
207
+ name: 'invinoveritasMarketsAct',
208
+ description: 'One governed call: regime + live signals + ecosystem brief + optional governance review of a proposed trade. Priced below the sum of its members.',
209
+ },
210
+ {
211
+ label: 'invinoveritas Growth + PNL Attack Plan',
212
+ name: 'invinoveritasGrowthAttackPlan',
213
+ description: 'Default-aggressive growth and revenue planning for agent workflows.',
214
+ },
215
+ {
216
+ label: 'invinoveritas Sovereign Earner Execute',
217
+ name: 'invinoveritasSovereignExecute',
218
+ description: 'Pay sats to queue an aggressive, risk-bounded Sovereign Earner directive.',
219
+ },
220
+ {
221
+ label: 'invinoveritas Memory Store',
222
+ name: 'invinoveritasMemoryStore',
223
+ description: 'Persist key/value agent context across sessions. ~2 sats/KB (min 50), 200 KB max per entry.',
224
+ },
225
+ {
226
+ label: 'invinoveritas Memory Get',
227
+ name: 'invinoveritasMemoryGet',
228
+ description: 'Retrieve a stored memory entry by key. ~1 sat/KB (min 20).',
229
+ },
230
+ {
231
+ label: 'invinoveritas Memory List',
232
+ name: 'invinoveritasMemoryList',
233
+ description: 'List all memory keys stored for this agent. Free.',
234
+ },
235
+ {
236
+ label: 'invinoveritas Memory Delete',
237
+ name: 'invinoveritasMemoryDelete',
238
+ description: 'Delete a stored memory entry by key. Free.',
239
+ },
240
+ ];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flowise-invinoveritas",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "Flowise components for invinoveritas \u2014 the verification layer for autonomous agents: capital-scale-aware /review before an irreversible action, signed /prove after, and a public verdict track record. Plus reasoning, decisions, memory, and markets as supporting tools. Bitcoin/Lightning + x402.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "invinoveritas <contact@agents.babyblueviper.com>",
@@ -21,13 +21,13 @@
21
21
  "main": "dist/index.js",
22
22
  "scripts": {
23
23
  "test": "node test/smoke.js",
24
- "build": "tsc --noEmit"
24
+ "build": "tsc"
25
25
  },
26
26
  "files": [
27
- "src",
27
+ "dist",
28
28
  "README.md"
29
29
  ],
30
30
  "devDependencies": {
31
31
  "typescript": "^5.4.0"
32
32
  }
33
- }
33
+ }
package/src/index.ts DELETED
@@ -1,258 +0,0 @@
1
- const BASE_URL = 'https://api.babyblueviper.com';
2
-
3
- type InvinoConfig = {
4
- apiKey: string;
5
- integration?: string;
6
- };
7
-
8
- async function post(config: InvinoConfig, path: string, body: unknown) {
9
- const response = await fetch(`${BASE_URL}${path}`, {
10
- method: 'POST',
11
- headers: {
12
- Authorization: `Bearer ${config.apiKey}`,
13
- 'Content-Type': 'application/json',
14
- 'User-Agent': 'flowise-invinoveritas/0.4.0',
15
- 'X-Invino-Integration': config.integration || 'flowise',
16
- },
17
- body: JSON.stringify(body),
18
- });
19
- if (!response.ok) {
20
- throw new Error(`invinoveritas ${path} failed: ${response.status} ${await response.text()}`);
21
- }
22
- return response.json();
23
- }
24
-
25
- async function get(config: InvinoConfig, path: string, x402 = false) {
26
- const headers: Record<string, string> = {
27
- Authorization: `Bearer ${config.apiKey}`,
28
- 'User-Agent': 'flowise-invinoveritas/0.5.0',
29
- 'X-Invino-Integration': config.integration || 'flowise',
30
- };
31
- if (x402) headers['X-Payment-Scheme'] = 'x402';
32
- const response = await fetch(`${BASE_URL}${path}`, { method: 'GET', headers });
33
- if (!response.ok) {
34
- throw new Error(`invinoveritas ${path} failed: ${response.status} ${await response.text()}`);
35
- }
36
- return response.json();
37
- }
38
-
39
- export async function invinoReason(config: InvinoConfig, question: string, style = 'normal') {
40
- return post(config, '/reason', { question, style });
41
- }
42
-
43
- export async function invinoDecision(config: InvinoConfig, goal: string, question: string, context = '') {
44
- return post(config, '/decision', { goal, question, context });
45
- }
46
-
47
- export async function invinoReview(
48
- config: InvinoConfig,
49
- artifact: string,
50
- artifactType = 'general',
51
- context = '',
52
- severityThreshold: 'low' | 'medium' | 'high' = 'medium',
53
- includeTradingState = false,
54
- ) {
55
- return post(config, '/review', {
56
- artifact,
57
- artifact_type: artifactType,
58
- context,
59
- severity_threshold: severityThreshold,
60
- include_trading_state: includeTradingState,
61
- });
62
- }
63
-
64
- export async function invinoProve(config: InvinoConfig, actionId: string) {
65
- // Signed, independently-verifiable proof of a prior execution (the verdict-after to review's verdict-before).
66
- return post(config, '/prove', { action_id: actionId });
67
- }
68
-
69
- export async function invinoLedger(config: InvinoConfig, entry = '') {
70
- // The public, signed, on-chain-verifiable verdict track record — verify without trusting us. Free, no auth.
71
- return get(config, entry ? `/ledger/${entry}` : '/ledger');
72
- }
73
-
74
- export async function invinoResidenceAct(
75
- config: InvinoConfig,
76
- intent: string,
77
- artifact = '',
78
- artifactType = 'general',
79
- requireReview = true,
80
- remember = true,
81
- maxSpendSats?: number,
82
- ) {
83
- const body: Record<string, unknown> = {
84
- intent,
85
- artifact_type: artifactType,
86
- policy: {
87
- require_review: requireReview,
88
- remember,
89
- max_spend_sats: maxSpendSats ?? null,
90
- },
91
- };
92
- if (artifact) body.artifact = artifact;
93
- return post(config, '/residence/act', body);
94
- }
95
-
96
- // ---- Markets / trading intelligence (facts-only, never P&L/advice) ----
97
-
98
- export async function invinoRegime(config: InvinoConfig, x402 = false) {
99
- return get(config, '/regime', x402);
100
- }
101
-
102
- export async function invinoSignalsTeaser(config: InvinoConfig) {
103
- // Free shop-window: BTC vol-expansion regime read (the gate our live earner enters on).
104
- return get(config, '/signals');
105
- }
106
-
107
- export async function invinoSignals(config: InvinoConfig, x402 = false) {
108
- // Paid full multi-coin live Hyperliquid derivatives set.
109
- return get(config, '/signals/full', x402);
110
- }
111
-
112
- export async function invinoMarketsAct(
113
- config: InvinoConfig,
114
- artifact = '',
115
- artifactType = 'general',
116
- context = '',
117
- coins?: string[],
118
- maxSpendSats?: number,
119
- ) {
120
- // The Markets Bundle: regime + live signals + brief + optional governance review.
121
- const body: Record<string, unknown> = { artifact_type: artifactType };
122
- if (coins && coins.length) body.coins = coins;
123
- if (artifact) body.artifact = artifact;
124
- if (context) body.context = context;
125
- if (maxSpendSats !== undefined) body.max_spend_sats = maxSpendSats;
126
- return post(config, '/markets/act', body);
127
- }
128
-
129
- export async function invinoGrowthAttackPlan(config: InvinoConfig, objective: string, context = '', budgetSats?: number) {
130
- return invinoDecision(
131
- config,
132
- 'Maximize invinoveritas growth and daily sats PNL with default-aggressive execution.',
133
- [
134
- 'Default posture: aggressive growth and PNL capture, bounded by Bitcoin/Lightning-only payments, budget limits, and explicit risk controls.',
135
- 'Produce concrete next actions that drive registrations, funded accounts, paid reasoning, marketplace purchases, Premium Spawn Kit conversion, referrals, seller withdrawals, or Sovereign Earner support.',
136
- `Objective: ${objective}`,
137
- `Context: ${context}`,
138
- `Budget sats: ${budgetSats ?? 'not specified'}`,
139
- ].join('\n'),
140
- context,
141
- );
142
- }
143
-
144
- export async function invinoMemoryStore(config: InvinoConfig, agentId: string, key: string, value: string) {
145
- return post(config, '/memory/store', { agent_id: agentId, key, value });
146
- }
147
-
148
- export async function invinoMemoryGet(config: InvinoConfig, agentId: string, key: string) {
149
- return post(config, '/memory/get', { agent_id: agentId, key });
150
- }
151
-
152
- export async function invinoMemoryList(config: InvinoConfig, agentId: string) {
153
- return post(config, '/memory/list', { agent_id: agentId });
154
- }
155
-
156
- export async function invinoMemoryDelete(config: InvinoConfig, agentId: string, key: string) {
157
- return post(config, '/memory/delete', { agent_id: agentId, key });
158
- }
159
-
160
- export async function invinoSovereignExecute(
161
- config: InvinoConfig,
162
- thesis: string,
163
- feeSats = 1000,
164
- direction: 'auto' | 'long' | 'short' = 'auto',
165
- leverage = 3,
166
- durationHours = 2,
167
- stopLossPct = 0.35,
168
- takeProfitPct = 0.7,
169
- ) {
170
- return post(config, '/sovereign/execute', {
171
- fee_sats: feeSats,
172
- direction,
173
- leverage,
174
- duration_hours: durationHours,
175
- stop_loss_pct: stopLossPct,
176
- take_profit_pct: takeProfitPct,
177
- thesis,
178
- agent_id: 'flowise',
179
- });
180
- }
181
-
182
- export const nodes = [
183
- {
184
- label: 'invinoveritas Reason',
185
- name: 'invinoveritasReason',
186
- description: 'Paid reasoning over Bitcoin Lightning.',
187
- },
188
- {
189
- label: 'invinoveritas Decision',
190
- name: 'invinoveritasDecision',
191
- description: 'Structured decisions with confidence and risk notes.',
192
- },
193
- {
194
- label: 'invinoveritas Review (front door)',
195
- name: 'invinoveritasReview',
196
- description: 'Capital-scale-aware governed review of a trade, diff, command, or plan — the same gate our live Bitcoin bot passes before every entry. ~250 sats.',
197
- },
198
- {
199
- label: 'invinoveritas Prove (signed proof)',
200
- name: 'invinoveritasProve',
201
- description: 'Signed, independently-verifiable proof of a prior execution — the attestation-after to Review\'s verdict-before. Public verify at /attestations/{proof_id}.',
202
- },
203
- {
204
- label: 'invinoveritas Ledger (public track record)',
205
- name: 'invinoveritasLedger',
206
- description: 'The public, signed, on-chain-verifiable verdict track record — verify our record against our published key without trusting us. We publish our failures too. Free.',
207
- },
208
- {
209
- label: 'invinoveritas Residence Act (optional governed bundle)',
210
- name: 'invinoveritasResidenceAct',
211
- description: 'Optional one governed call — reasons + governs + remembers your intent. Deterministic house rules; priced below the sum of its parts.',
212
- },
213
- {
214
- label: 'invinoveritas Regime (risk-off feed)',
215
- name: 'invinoveritasRegime',
216
- description: 'Macro risk-off DATA feed (OOS-validated, facts-only) — the regime signal our own bot scales risk by.',
217
- },
218
- {
219
- label: 'invinoveritas Signals (live derivatives)',
220
- name: 'invinoveritasSignals',
221
- description: 'Live Hyperliquid derivatives signals — funding + 24h delta, basis, open interest, the vol-expansion regime our bot enters on, realized vol, BTC DVOL. Free BTC teaser + paid multi-coin set. Facts-only, never advice.',
222
- },
223
- {
224
- label: 'invinoveritas Markets Bundle',
225
- name: 'invinoveritasMarketsAct',
226
- description: 'One governed call: regime + live signals + ecosystem brief + optional governance review of a proposed trade. Priced below the sum of its members.',
227
- },
228
- {
229
- label: 'invinoveritas Growth + PNL Attack Plan',
230
- name: 'invinoveritasGrowthAttackPlan',
231
- description: 'Default-aggressive growth and revenue planning for agent workflows.',
232
- },
233
- {
234
- label: 'invinoveritas Sovereign Earner Execute',
235
- name: 'invinoveritasSovereignExecute',
236
- description: 'Pay sats to queue an aggressive, risk-bounded Sovereign Earner directive.',
237
- },
238
- {
239
- label: 'invinoveritas Memory Store',
240
- name: 'invinoveritasMemoryStore',
241
- description: 'Persist key/value agent context across sessions. ~2 sats/KB (min 50), 200 KB max per entry.',
242
- },
243
- {
244
- label: 'invinoveritas Memory Get',
245
- name: 'invinoveritasMemoryGet',
246
- description: 'Retrieve a stored memory entry by key. ~1 sat/KB (min 20).',
247
- },
248
- {
249
- label: 'invinoveritas Memory List',
250
- name: 'invinoveritasMemoryList',
251
- description: 'List all memory keys stored for this agent. Free.',
252
- },
253
- {
254
- label: 'invinoveritas Memory Delete',
255
- name: 'invinoveritasMemoryDelete',
256
- description: 'Delete a stored memory entry by key. Free.',
257
- },
258
- ];