agentvault 1.0.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/.dfx/local/network-id +4 -0
- package/.next/trace +2 -0
- package/.vercel/README.txt +11 -0
- package/.vercel/project.json +1 -0
- package/AGENTS.md +43 -0
- package/CHANGELOG.md +196 -0
- package/LICENSE +21 -0
- package/PLAN_VAULT_INTEGRATION.md +318 -0
- package/README.md +253 -0
- package/backups/agentvault-backup-test-agent-2026-02-12T17-54-28-967Z.json +28 -0
- package/backups/agentvault-backup-test-agent-2026-02-12T17-54-29-032Z.backup +1 -0
- package/backups/agentvault-backup-test-agent-2026-02-12T17-57-42-373Z.json +28 -0
- package/backups/agentvault-backup-test-agent-2026-02-12T17-57-42-428Z.backup +1 -0
- package/backups/agentvault-backup-test-agent-2026-02-12T18-52-25-132Z.json +28 -0
- package/backups/agentvault-backup-test-agent-2026-02-12T18-52-25-247Z.backup +1 -0
- package/backups/agentvault-backup-test-agent-2026-02-12T18-54-09-216Z.json +28 -0
- package/backups/agentvault-backup-test-agent-2026-02-12T18-54-09-283Z.backup +1 -0
- package/backups/agentvault-backup-test-agent-2026-02-12T22-18-22-772Z.backup +1 -0
- package/backups/agentvault-backup-test-agent-2026-02-12T22-18-22-793Z.json +28 -0
- package/backups/test-backup.json +28 -0
- package/dist/cli/commands/approve.d.ts +4 -0
- package/dist/cli/commands/approve.js +232 -0
- package/dist/cli/commands/archive.d.ts +4 -0
- package/dist/cli/commands/archive.js +192 -0
- package/dist/cli/commands/backup.d.ts +4 -0
- package/dist/cli/commands/backup.js +164 -0
- package/dist/cli/commands/cloud-backup.d.ts +4 -0
- package/dist/cli/commands/cloud-backup.js +221 -0
- package/dist/cli/commands/cycles.d.ts +8 -0
- package/dist/cli/commands/cycles.js +83 -0
- package/dist/cli/commands/decrypt.d.ts +16 -0
- package/dist/cli/commands/decrypt.js +101 -0
- package/dist/cli/commands/deploy.d.ts +32 -0
- package/dist/cli/commands/deploy.js +208 -0
- package/dist/cli/commands/exec.d.ts +26 -0
- package/dist/cli/commands/exec.js +109 -0
- package/dist/cli/commands/fetch.d.ts +23 -0
- package/dist/cli/commands/fetch.js +164 -0
- package/dist/cli/commands/health.d.ts +8 -0
- package/dist/cli/commands/health.js +72 -0
- package/dist/cli/commands/identity.d.ts +8 -0
- package/dist/cli/commands/identity.js +140 -0
- package/dist/cli/commands/inference.d.ts +4 -0
- package/dist/cli/commands/inference.js +225 -0
- package/dist/cli/commands/info.d.ts +8 -0
- package/dist/cli/commands/info.js +59 -0
- package/dist/cli/commands/init.d.ts +19 -0
- package/dist/cli/commands/init.js +135 -0
- package/dist/cli/commands/instrument.d.ts +8 -0
- package/dist/cli/commands/instrument.js +35 -0
- package/dist/cli/commands/list.d.ts +36 -0
- package/dist/cli/commands/list.js +173 -0
- package/dist/cli/commands/logs.d.ts +8 -0
- package/dist/cli/commands/logs.js +96 -0
- package/dist/cli/commands/monitor.d.ts +8 -0
- package/dist/cli/commands/monitor.js +84 -0
- package/dist/cli/commands/network.d.ts +14 -0
- package/dist/cli/commands/network.js +258 -0
- package/dist/cli/commands/package.d.ts +36 -0
- package/dist/cli/commands/package.js +188 -0
- package/dist/cli/commands/profile.d.ts +8 -0
- package/dist/cli/commands/profile.js +76 -0
- package/dist/cli/commands/promote.d.ts +8 -0
- package/dist/cli/commands/promote.js +89 -0
- package/dist/cli/commands/rebuild.d.ts +21 -0
- package/dist/cli/commands/rebuild.js +140 -0
- package/dist/cli/commands/rollback.d.ts +8 -0
- package/dist/cli/commands/rollback.js +120 -0
- package/dist/cli/commands/show.d.ts +36 -0
- package/dist/cli/commands/show.js +200 -0
- package/dist/cli/commands/stats.d.ts +8 -0
- package/dist/cli/commands/stats.js +34 -0
- package/dist/cli/commands/status.d.ts +14 -0
- package/dist/cli/commands/status.js +83 -0
- package/dist/cli/commands/test.d.ts +8 -0
- package/dist/cli/commands/test.js +109 -0
- package/dist/cli/commands/tokens.d.ts +8 -0
- package/dist/cli/commands/tokens.js +62 -0
- package/dist/cli/commands/trace.d.ts +8 -0
- package/dist/cli/commands/trace.js +68 -0
- package/dist/cli/commands/wallet-export.d.ts +13 -0
- package/dist/cli/commands/wallet-export.js +140 -0
- package/dist/cli/commands/wallet-history.d.ts +10 -0
- package/dist/cli/commands/wallet-history.js +127 -0
- package/dist/cli/commands/wallet-import.d.ts +10 -0
- package/dist/cli/commands/wallet-import.js +209 -0
- package/dist/cli/commands/wallet-multi-send.d.ts +17 -0
- package/dist/cli/commands/wallet-multi-send.js +195 -0
- package/dist/cli/commands/wallet-process-queue.d.ts +19 -0
- package/dist/cli/commands/wallet-process-queue.js +209 -0
- package/dist/cli/commands/wallet-sign.d.ts +13 -0
- package/dist/cli/commands/wallet-sign.js +207 -0
- package/dist/cli/commands/wallet.d.ts +12 -0
- package/dist/cli/commands/wallet.js +794 -0
- package/dist/cli/index.d.ts +10 -0
- package/dist/cli/index.js +96 -0
- package/dist/vitest.config.d.ts +3 -0
- package/dist/vitest.config.js +14 -0
- package/fixup_1_0_OSS_release.md +136 -0
- package/fixup_REALEASE_PRD.md +136 -0
- package/package.json +79 -0
- package/pnpm-workspace.yaml +5 -0
- package/scripts/dev-dashboard.mjs +84 -0
- package/site/README.md +63 -0
- package/site/docusaurus.config.ts +148 -0
- package/site/package-lock.json +18383 -0
- package/site/package.json +47 -0
- package/site/sidebars.ts +86 -0
- package/site/static/.gitkeep +0 -0
- package/site/static/img/logo.svg +28 -0
- package/site/static/img/og-image.svg +35 -0
- package/src/archival/archive-manager.ts +372 -0
- package/src/archival/arweave-client.ts +289 -0
- package/src/archival/index.ts +8 -0
- package/src/backup/backup.ts +315 -0
- package/src/backup/index.ts +7 -0
- package/src/cloud-storage/cloud-sync.ts +461 -0
- package/src/cloud-storage/index.ts +11 -0
- package/src/cloud-storage/provider-detector.ts +198 -0
- package/src/cloud-storage/types.ts +104 -0
- package/src/debugging/index.ts +6 -0
- package/src/debugging/logs.ts +193 -0
- package/src/debugging/types.ts +100 -0
- package/src/deployment/deployer.ts +274 -0
- package/src/deployment/icpClient.ts +620 -0
- package/src/deployment/index.ts +46 -0
- package/src/deployment/promotion.ts +161 -0
- package/src/deployment/types.ts +111 -0
- package/src/icp/batch.ts +374 -0
- package/src/icp/cycles.ts +50 -0
- package/src/icp/environment.ts +215 -0
- package/src/icp/icpcli.ts +438 -0
- package/src/icp/icwasm.ts +222 -0
- package/src/icp/identity.ts +77 -0
- package/src/icp/index.ts +94 -0
- package/src/icp/optimization.ts +242 -0
- package/src/icp/tokens.ts +36 -0
- package/src/icp/tool-detector.ts +110 -0
- package/src/icp/types.ts +574 -0
- package/src/index.ts +25 -0
- package/src/inference/bittensor-client.ts +304 -0
- package/src/inference/index.ts +8 -0
- package/src/inference/inference-manager.ts +327 -0
- package/src/metrics/index.ts +7 -0
- package/src/metrics/metrics.ts +186 -0
- package/src/monitoring/alerting.ts +190 -0
- package/src/monitoring/health.ts +197 -0
- package/src/monitoring/index.ts +38 -0
- package/src/monitoring/info.ts +114 -0
- package/src/monitoring/types.ts +99 -0
- package/src/network/index.ts +5 -0
- package/src/network/network-config.ts +129 -0
- package/src/packaging/compiler.ts +647 -0
- package/src/packaging/config-persistence.ts +135 -0
- package/src/packaging/config-schemas.ts +156 -0
- package/src/packaging/detector.ts +220 -0
- package/src/packaging/index.ts +90 -0
- package/src/packaging/packager.ts +118 -0
- package/src/packaging/parsers/clawdbot.ts +278 -0
- package/src/packaging/parsers/cline.ts +223 -0
- package/src/packaging/parsers/generic.ts +266 -0
- package/src/packaging/parsers/goose.ts +214 -0
- package/src/packaging/parsers/index.ts +11 -0
- package/src/packaging/serializer.ts +260 -0
- package/src/packaging/types.ts +144 -0
- package/src/packaging/wasmedge-compiler.ts +406 -0
- package/src/security/index.ts +17 -0
- package/src/security/multisig.ts +415 -0
- package/src/security/types.ts +416 -0
- package/src/security/vetkeys.ts +655 -0
- package/src/testing/index.ts +6 -0
- package/src/testing/local-runner.ts +264 -0
- package/src/testing/types.ts +104 -0
- package/src/wallet/cbor-serializer.ts +323 -0
- package/src/wallet/chain-dispatcher.ts +313 -0
- package/src/wallet/cross-chain-aggregator.ts +346 -0
- package/src/wallet/index.ts +76 -0
- package/src/wallet/key-derivation.ts +425 -0
- package/src/wallet/providers/base-provider.ts +154 -0
- package/src/wallet/providers/cketh-provider.ts +434 -0
- package/src/wallet/providers/polkadot-provider.ts +503 -0
- package/src/wallet/providers/solana-provider.ts +490 -0
- package/src/wallet/transaction-queue.ts +284 -0
- package/src/wallet/types.ts +178 -0
- package/src/wallet/vetkeys-adapter.ts +431 -0
- package/src/wallet/wallet-manager.ts +597 -0
- package/src/wallet/wallet-storage.ts +380 -0
- package/vercel.json +8 -0
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent State Serializer
|
|
3
|
+
*
|
|
4
|
+
* This module handles serialization and deserialization of agent state
|
|
5
|
+
* for storage in canisters and local files.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import * as fs from 'node:fs';
|
|
9
|
+
import * as path from 'node:path';
|
|
10
|
+
import type { AgentConfig } from './types.js';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Agent state schema version
|
|
14
|
+
*/
|
|
15
|
+
export const SCHEMA_VERSION = '1.0.0';
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Memory item in agent state
|
|
19
|
+
*/
|
|
20
|
+
export interface Memory {
|
|
21
|
+
id: string;
|
|
22
|
+
type: 'fact' | 'user_preference' | 'task_result';
|
|
23
|
+
content: unknown;
|
|
24
|
+
timestamp: number;
|
|
25
|
+
importance: number;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Task in agent queue
|
|
30
|
+
*/
|
|
31
|
+
export interface Task {
|
|
32
|
+
id: string;
|
|
33
|
+
description: string;
|
|
34
|
+
status: 'pending' | 'running' | 'completed' | 'failed';
|
|
35
|
+
result?: unknown;
|
|
36
|
+
timestamp: number;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Agent state stored in canister
|
|
41
|
+
*/
|
|
42
|
+
export interface AgentState {
|
|
43
|
+
config: AgentConfig;
|
|
44
|
+
memories: Memory[];
|
|
45
|
+
tasks: Task[];
|
|
46
|
+
context: Map<string, unknown>;
|
|
47
|
+
version: string;
|
|
48
|
+
lastUpdated: number;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Serialized agent state (for storage/transmission)
|
|
53
|
+
*/
|
|
54
|
+
export interface SerializedAgentState {
|
|
55
|
+
$schema: string;
|
|
56
|
+
version: string;
|
|
57
|
+
agent: {
|
|
58
|
+
name: string;
|
|
59
|
+
type: string;
|
|
60
|
+
version?: string;
|
|
61
|
+
};
|
|
62
|
+
metadata: {
|
|
63
|
+
createdAt: string;
|
|
64
|
+
sourcePath: string;
|
|
65
|
+
entryPoint?: string;
|
|
66
|
+
};
|
|
67
|
+
state: {
|
|
68
|
+
initialized: boolean;
|
|
69
|
+
data: {
|
|
70
|
+
memories?: Memory[];
|
|
71
|
+
tasks?: Task[];
|
|
72
|
+
context?: Record<string, unknown>;
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Serialization options
|
|
79
|
+
*/
|
|
80
|
+
export interface SerializationOptions {
|
|
81
|
+
pretty?: boolean;
|
|
82
|
+
includeMemories?: boolean;
|
|
83
|
+
includeTasks?: boolean;
|
|
84
|
+
includeContext?: boolean;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Default serialization options
|
|
89
|
+
*/
|
|
90
|
+
const DEFAULT_OPTIONS: SerializationOptions = {
|
|
91
|
+
pretty: true,
|
|
92
|
+
includeMemories: true,
|
|
93
|
+
includeTasks: true,
|
|
94
|
+
includeContext: true,
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Serialize agent state to JSON
|
|
99
|
+
*/
|
|
100
|
+
export function serializeState(
|
|
101
|
+
state: AgentState,
|
|
102
|
+
options: SerializationOptions = {}
|
|
103
|
+
): string {
|
|
104
|
+
const opts = { ...DEFAULT_OPTIONS, ...options };
|
|
105
|
+
|
|
106
|
+
const serialized: SerializedAgentState = {
|
|
107
|
+
$schema: `https://agentvault.dev/schemas/agent-state-v${SCHEMA_VERSION}.json`,
|
|
108
|
+
version: SCHEMA_VERSION,
|
|
109
|
+
agent: {
|
|
110
|
+
name: state.config.name,
|
|
111
|
+
type: state.config.type,
|
|
112
|
+
version: state.config.version,
|
|
113
|
+
},
|
|
114
|
+
metadata: {
|
|
115
|
+
createdAt: new Date().toISOString(),
|
|
116
|
+
sourcePath: state.config.sourcePath,
|
|
117
|
+
entryPoint: state.config.entryPoint,
|
|
118
|
+
},
|
|
119
|
+
state: {
|
|
120
|
+
initialized: state.memories.length > 0 || state.tasks.length > 0,
|
|
121
|
+
data: {},
|
|
122
|
+
},
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
if (opts.includeMemories) {
|
|
126
|
+
serialized.state.data.memories = state.memories;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
if (opts.includeTasks) {
|
|
130
|
+
serialized.state.data.tasks = state.tasks;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
if (opts.includeContext) {
|
|
134
|
+
serialized.state.data.context = mapToObject(state.context);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
return JSON.stringify(serialized, null, opts.pretty ? 2 : 0);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Deserialize agent state from JSON
|
|
142
|
+
*/
|
|
143
|
+
export function deserializeState(json: string): AgentState {
|
|
144
|
+
const serialized = JSON.parse(json) as SerializedAgentState;
|
|
145
|
+
|
|
146
|
+
return {
|
|
147
|
+
config: {
|
|
148
|
+
name: serialized.agent.name,
|
|
149
|
+
type: serialized.agent.type as 'clawdbot' | 'goose' | 'cline' | 'generic',
|
|
150
|
+
sourcePath: serialized.metadata.sourcePath,
|
|
151
|
+
entryPoint: serialized.metadata.entryPoint,
|
|
152
|
+
version: serialized.agent.version,
|
|
153
|
+
},
|
|
154
|
+
memories: serialized.state.data.memories ?? [],
|
|
155
|
+
tasks: serialized.state.data.tasks ?? [],
|
|
156
|
+
context: new Map(Object.entries(serialized.state.data.context ?? {})),
|
|
157
|
+
version: serialized.version,
|
|
158
|
+
lastUpdated: Date.now(),
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Write serialized state to file
|
|
164
|
+
*/
|
|
165
|
+
export async function writeStateFile(
|
|
166
|
+
state: AgentState,
|
|
167
|
+
filePath: string,
|
|
168
|
+
options: SerializationOptions = {}
|
|
169
|
+
): Promise<void> {
|
|
170
|
+
const serialized = serializeState(state, options);
|
|
171
|
+
|
|
172
|
+
// Ensure directory exists
|
|
173
|
+
const dir = path.dirname(filePath);
|
|
174
|
+
if (!fs.existsSync(dir)) {
|
|
175
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
// Write file
|
|
179
|
+
fs.writeFileSync(filePath, serialized, 'utf-8');
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Read state from file
|
|
184
|
+
*/
|
|
185
|
+
export async function readStateFile(filePath: string): Promise<AgentState> {
|
|
186
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
187
|
+
return deserializeState(content);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* Convert Map to plain object
|
|
192
|
+
*/
|
|
193
|
+
function mapToObject<T>(map: Map<string, T>): Record<string, T> {
|
|
194
|
+
const obj: Record<string, T> = {};
|
|
195
|
+
for (const [key, value] of map.entries()) {
|
|
196
|
+
obj[key] = value;
|
|
197
|
+
}
|
|
198
|
+
return obj;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Create empty agent state
|
|
203
|
+
*/
|
|
204
|
+
export function createEmptyState(config: AgentConfig): AgentState {
|
|
205
|
+
return {
|
|
206
|
+
config,
|
|
207
|
+
memories: [],
|
|
208
|
+
tasks: [],
|
|
209
|
+
context: new Map(),
|
|
210
|
+
version: SCHEMA_VERSION,
|
|
211
|
+
lastUpdated: Date.now(),
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* Merge two agent states
|
|
217
|
+
*/
|
|
218
|
+
export function mergeStates(
|
|
219
|
+
base: AgentState,
|
|
220
|
+
updates: Partial<AgentState>
|
|
221
|
+
): AgentState {
|
|
222
|
+
const merged: AgentState = {
|
|
223
|
+
...base,
|
|
224
|
+
config: updates.config ?? base.config,
|
|
225
|
+
memories: updates.memories ?? base.memories,
|
|
226
|
+
tasks: updates.tasks ?? base.tasks,
|
|
227
|
+
context: updates.context ?? base.context,
|
|
228
|
+
version: updates.version ?? base.version,
|
|
229
|
+
lastUpdated: updates.lastUpdated ?? Date.now(),
|
|
230
|
+
};
|
|
231
|
+
|
|
232
|
+
return merged;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* Validate serialized state
|
|
237
|
+
*/
|
|
238
|
+
export function validateState(serialized: SerializedAgentState): {
|
|
239
|
+
valid: boolean;
|
|
240
|
+
errors: string[];
|
|
241
|
+
} {
|
|
242
|
+
const errors: string[] = [];
|
|
243
|
+
|
|
244
|
+
if (!serialized.agent?.name) {
|
|
245
|
+
errors.push('Missing agent name');
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
if (!serialized.agent?.type) {
|
|
249
|
+
errors.push('Missing agent type');
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
if (!serialized.version) {
|
|
253
|
+
errors.push('Missing version');
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
return {
|
|
257
|
+
valid: errors.length === 0,
|
|
258
|
+
errors,
|
|
259
|
+
};
|
|
260
|
+
}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for agent packaging
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Supported agent types that can be packaged
|
|
7
|
+
*/
|
|
8
|
+
export type AgentType = 'clawdbot' | 'goose' | 'cline' | 'generic';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Agent configuration as detected from the source directory
|
|
12
|
+
*/
|
|
13
|
+
export interface AgentConfig {
|
|
14
|
+
/** Name of the agent */
|
|
15
|
+
name: string;
|
|
16
|
+
/** Detected agent type */
|
|
17
|
+
type: AgentType;
|
|
18
|
+
/** Source directory path */
|
|
19
|
+
sourcePath: string;
|
|
20
|
+
/** Entry point file (if detected) */
|
|
21
|
+
entryPoint?: string;
|
|
22
|
+
/** Agent version (if detected) */
|
|
23
|
+
version?: string;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Options for the packaging process
|
|
28
|
+
*/
|
|
29
|
+
export interface PackageOptions {
|
|
30
|
+
/** Source directory containing the agent */
|
|
31
|
+
sourcePath: string;
|
|
32
|
+
/** Output directory for compiled artifacts */
|
|
33
|
+
outputPath?: string;
|
|
34
|
+
/** Force overwrite of existing output files */
|
|
35
|
+
force?: boolean;
|
|
36
|
+
/** Skip validation steps */
|
|
37
|
+
skipValidation?: boolean;
|
|
38
|
+
/** Compilation target (wasmedge for local, motoko for ICP) */
|
|
39
|
+
target?: 'wasmedge' | 'motoko' | 'pure-wasm';
|
|
40
|
+
/** Enable debugging features (source maps, verbose output) */
|
|
41
|
+
debug?: boolean;
|
|
42
|
+
/** Optimization level (0-3) */
|
|
43
|
+
optimize?: number;
|
|
44
|
+
|
|
45
|
+
// ── ic-wasm optimization options ──────────────────────────────────────
|
|
46
|
+
|
|
47
|
+
/** Run ic-wasm optimize after WASM generation (requires ic-wasm) */
|
|
48
|
+
icWasmOptimize?: boolean;
|
|
49
|
+
/** Run ic-wasm shrink to remove unused functions (requires ic-wasm) */
|
|
50
|
+
icWasmShrink?: boolean;
|
|
51
|
+
/** Validate WASM against Candid .did interface (requires ic-wasm) */
|
|
52
|
+
candidInterface?: string;
|
|
53
|
+
/** Memory limit to set via ic-wasm resource (e.g. '4GiB') */
|
|
54
|
+
memoryLimit?: string;
|
|
55
|
+
/** Compute quota to set via ic-wasm resource */
|
|
56
|
+
computeQuota?: string;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Result of a successful packaging operation
|
|
61
|
+
*/
|
|
62
|
+
export interface PackageResult {
|
|
63
|
+
/** Detected agent configuration */
|
|
64
|
+
config: AgentConfig;
|
|
65
|
+
/** Path to the generated WASM file */
|
|
66
|
+
wasmPath: string;
|
|
67
|
+
/** Path to the generated WAT file (WebAssembly Text format) */
|
|
68
|
+
watPath: string;
|
|
69
|
+
/** Path to the serialized state JSON */
|
|
70
|
+
statePath: string;
|
|
71
|
+
/** Path to the generated JavaScript bundle */
|
|
72
|
+
jsBundlePath?: string;
|
|
73
|
+
/** Path to the generated source map (if enabled) */
|
|
74
|
+
sourceMapPath?: string;
|
|
75
|
+
/** Path to the generated manifest file */
|
|
76
|
+
manifestPath?: string;
|
|
77
|
+
/** Path to the generated Candid interface (if motoko target) */
|
|
78
|
+
didPath?: string;
|
|
79
|
+
/** Size of the WASM file in bytes */
|
|
80
|
+
wasmSize: number;
|
|
81
|
+
/** Compilation target used */
|
|
82
|
+
target: 'wasmedge' | 'motoko' | 'pure-wasm';
|
|
83
|
+
/** Timestamp of the packaging operation */
|
|
84
|
+
timestamp: Date;
|
|
85
|
+
/** Compilation duration in milliseconds */
|
|
86
|
+
duration?: number;
|
|
87
|
+
/** Number of functions exported */
|
|
88
|
+
functionCount?: number;
|
|
89
|
+
|
|
90
|
+
// ── ic-wasm optimization results ────────────────────────────────────
|
|
91
|
+
|
|
92
|
+
/** Original WASM size before ic-wasm optimization (bytes) */
|
|
93
|
+
originalWasmSize?: number;
|
|
94
|
+
/** Size reduction percentage from optimization (0-100) */
|
|
95
|
+
optimizationReductionPercent?: number;
|
|
96
|
+
/** Whether Candid validation passed */
|
|
97
|
+
candidValidationPassed?: boolean;
|
|
98
|
+
/** Optimization warnings */
|
|
99
|
+
optimizationWarnings?: string[];
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Validation error that occurred during packaging
|
|
104
|
+
*/
|
|
105
|
+
export interface ValidationError {
|
|
106
|
+
/** Error code for programmatic handling */
|
|
107
|
+
code: string;
|
|
108
|
+
/** Human-readable error message */
|
|
109
|
+
message: string;
|
|
110
|
+
/** File path related to the error (if applicable) */
|
|
111
|
+
filePath?: string;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Result of agent validation
|
|
116
|
+
*/
|
|
117
|
+
export interface ValidationResult {
|
|
118
|
+
/** Whether validation passed */
|
|
119
|
+
valid: boolean;
|
|
120
|
+
/** List of validation errors (if any) */
|
|
121
|
+
errors: ValidationError[];
|
|
122
|
+
/** List of validation warnings */
|
|
123
|
+
warnings: string[];
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Parsed agent configuration with agent-specific settings
|
|
128
|
+
*/
|
|
129
|
+
export interface ParsedAgentConfig {
|
|
130
|
+
base: {
|
|
131
|
+
name: string;
|
|
132
|
+
version?: string;
|
|
133
|
+
description?: string;
|
|
134
|
+
};
|
|
135
|
+
type: 'clawdbot' | 'goose' | 'cline' | 'generic';
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Config file location
|
|
140
|
+
*/
|
|
141
|
+
export interface ConfigFilePath {
|
|
142
|
+
path: string;
|
|
143
|
+
type: 'json' | 'yaml' | 'directory';
|
|
144
|
+
}
|