@fased/fased 0.1.68 → 0.1.69
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/CHANGELOG.md +15 -0
- package/README.md +20 -22
- package/config/sat-runtime.env +6 -2
- package/config/signer-protocol-v2.json +6 -0
- package/dist/agents/tools/wallet-action-tool.js +2 -0
- package/dist/agents/tools/wallet-tool.js +5 -3
- package/dist/brand.js +1 -1
- package/dist/build-info.json +3 -3
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/cli/program/register.wallet.js +88 -5
- package/dist/commands/wallet.js +842 -57
- package/dist/config/sat-runtime-ids.js +6 -1
- package/dist/control-ui/assets/{app-DyPTS0oM.js → app-BLFLoFPk.js} +8 -8
- package/dist/control-ui/assets/{federation-DgA9e-Pn.js → federation-SGMAnM_8.js} +2 -2
- package/dist/control-ui/assets/{index-Cu13yYHr.js → index-S88kp5ZQ.js} +3 -3
- package/dist/control-ui/assets/{mining-Dg-3ll0F.js → mining-ClI8RW4u.js} +2 -2
- package/dist/control-ui/assets/{wallet-ByKBcYhm.js → wallet-CRIhDQbW.js} +201 -116
- package/dist/control-ui/index.html +1 -1
- package/dist/control-ui/version.json +1 -1
- package/dist/gateway/server-http.js +46 -9
- package/dist/mining/mainnet-sync.js +67 -5
- package/dist/operator/operator-readiness.js +1 -1
- package/dist/plugin-sdk/{audio-preflight-_FVQjR1r.js → audio-preflight-CS7Q_7-R.js} +2 -2
- package/dist/plugin-sdk/channel-plugin-common.d.ts +2 -2
- package/dist/plugin-sdk/{chunk-items-LH4uKSnh.js → chunk-items-BLBZNORg.js} +1 -1
- package/dist/plugin-sdk/command-status.js +2 -2
- package/dist/plugin-sdk/{config-schema-DjU_uD-6.js → config-schema-BiBOUW89.js} +255 -47
- package/dist/plugin-sdk/device-pair.d.ts +1 -1
- package/dist/plugin-sdk/discord.d.ts +4 -4
- package/dist/plugin-sdk/index.d.ts +16 -16
- package/dist/plugin-sdk/index.js +2 -2
- package/dist/plugin-sdk/{monitor-DUMMbG4h.js → monitor-WXdn4mR-.js} +4 -4
- package/dist/plugin-sdk/{monitor-DXIM16Hj.js → monitor-xzVAPbg2.js} +6 -6
- package/dist/plugin-sdk/{openresponses-http-C8lKwta1.js → openresponses-http-DnI1LFgq.js} +2 -2
- package/dist/plugin-sdk/{pairing-message-mKO92L-M.d.ts → pairing-message-CiTcdD6m.d.ts} +1 -1
- package/dist/plugin-sdk/provider-web-search-config-contract.d.ts +1 -1
- package/dist/plugin-sdk/{pw-ai-DJ_gTc4M.js → pw-ai-DZYLDC-S.js} +1 -1
- package/dist/plugin-sdk/{runtime-dependency-nup8niQL.js → runtime-dependency-DczkvPxn.js} +9 -9
- package/dist/plugin-sdk/sat-runtime.d.ts +89 -10
- package/dist/plugin-sdk/sat-runtime.js +2 -2
- package/dist/plugin-sdk/{slack-B-nOOLM0.js → slack-CkIRVDUK.js} +4 -4
- package/dist/plugin-sdk/slack.d.ts +4 -4
- package/dist/plugin-sdk/{sticker-cache-BLiId8Em.js → sticker-cache-Dpap5ce_.js} +2 -2
- package/dist/plugin-sdk/{telegram-actions-1X9A32Dn.js → telegram-actions-Cewdga8H.js} +3 -3
- package/dist/plugin-sdk/telegram.d.ts +4 -4
- package/dist/plugin-sdk/{tmp-fased-dir-BkpWlGUe.d.ts → tmp-fased-dir-BSEHc8MQ.d.ts} +2 -2
- package/dist/plugin-sdk/{types-DtCOO_hW.d.ts → types-BakzIzGN.d.ts} +1 -1
- package/dist/plugin-sdk/{types-B-zL9gSv.d.ts → types-CzF0YQqK.d.ts} +2 -2
- package/dist/plugin-sdk/{web-BvjNyYBz.js → web-DGWi7i3B.js} +2 -2
- package/dist/plugin-sdk/whatsapp.d.ts +9 -9
- package/dist/plugin-sdk/{zod-schema.providers-core-BCDlgtls.d.ts → zod-schema.providers-core-CIzCjXH9.d.ts} +63 -63
- package/dist/wallet/local-socket-signer-lifecycle.js +79 -3
- package/dist/wallet/local-socket-signer-protocol.js +70 -10
- package/dist/wallet/mining-wallet-retirement.js +256 -0
- package/dist/wallet/providers/local-socket-signer-adapter.js +2 -0
- package/dist/wallet/signer-protocol-v2.generated.js +6 -0
- package/dist/wallet/wallet-agent-selection.js +6 -10
- package/dist/wallet/wallet-provider-registry.js +70 -29
- package/dist/wallet/wallet-send-approvals.js +6 -2
- package/dist/wallet/wallet-status.js +56 -1
- package/dist/wizard/onboarding.js +32 -30
- package/dist/wizard/onboarding.wallet.js +10 -1
- package/extensions/acpx/package.json +1 -1
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/diagnostics-otel/package.json +1 -1
- package/extensions/fased-federation/package.json +1 -1
- package/extensions/google-gemini-cli-auth/package.json +1 -1
- package/extensions/imessage/package.json +1 -1
- package/extensions/irc/package.json +1 -1
- package/extensions/line/package.json +1 -1
- package/extensions/llm-task/package.json +1 -1
- package/extensions/lobster/package.json +1 -1
- package/extensions/matrix/CHANGELOG.md +6 -0
- package/extensions/matrix/package.json +1 -1
- package/extensions/mattermost/package.json +1 -1
- package/extensions/memory-core/package.json +2 -2
- package/extensions/memory-lancedb/package.json +1 -1
- package/extensions/minimax-portal-auth/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +6 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +6 -0
- package/extensions/nostr/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/sat-mining/package.json +1 -1
- package/extensions/signal/package.json +1 -1
- package/extensions/synology-chat/package.json +1 -1
- package/extensions/tlon/package.json +1 -1
- package/extensions/twitch/CHANGELOG.md +6 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +6 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +6 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +6 -0
- package/extensions/zalouser/package.json +1 -1
- package/install.sh +276 -103
- package/package.json +4 -3
- package/scripts/install-fased-signerd.sh +4 -8
- package/scripts/install-runtime-profile.sh +27 -0
- package/scripts/start-managed.sh +13 -1
- package/scripts/fased-signer-wallet-import-hosting.sh +0 -78
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
<link rel="icon" type="image/png" sizes="32x32" href="./favicon-32.png" />
|
|
15
15
|
<link rel="apple-touch-icon" sizes="180x180" href="./apple-touch-icon.png" />
|
|
16
16
|
<script data-fased-boot-watchdog src="./boot-watchdog.js" defer></script>
|
|
17
|
-
<script type="module" crossorigin src="./assets/index-
|
|
17
|
+
<script type="module" crossorigin src="./assets/index-S88kp5ZQ.js"></script>
|
|
18
18
|
<link rel="stylesheet" crossorigin href="./assets/index-RwVraC3c.css">
|
|
19
19
|
</head>
|
|
20
20
|
<body>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"0.1.
|
|
1
|
+
{"version":"0.1.69"}
|
|
@@ -29,13 +29,13 @@ import { normalizeCanvasScopedUrl } from "./canvas-capability.js";
|
|
|
29
29
|
import { A2UI_PATH, CANVAS_HOST_PATH, CANVAS_WS_PATH, handleA2uiHttpRequest } from "../canvas-host/a2ui.js";
|
|
30
30
|
import { resolveFederationBondWallet } from "../wallet/solana-bond-signing.js";
|
|
31
31
|
import { createAndSubmitFederationBondProof, loadPersistedFederationBondProof, submitFederationBondProof } from "../federation/auto-connect.js";
|
|
32
|
+
import { resolveNativeSignerWalletId } from "../wallet/native-signer-wallet-id.js";
|
|
32
33
|
import { beginWalletApprovalAssertion, beginWalletPasskeyRegistration, consumeWalletApprovalGrant, createWalletApprovalChallenge, finishWalletApprovalAssertion, finishWalletPasskeyRegistration, listWalletPasskeys, readWalletApprovalAuthSnapshot, removeWalletPasskey, resolveWalletApprovalAuthMode, resolveWalletApprovalChallengeTtlSeconds, resolveWalletApprovalGrantTtlSeconds } from "../wallet/wallet-approval-auth.js";
|
|
33
34
|
import { readWalletStatusSnapshot } from "../wallet/wallet-status.js";
|
|
34
35
|
import { inspectSatBondPosition, inspectSatBondStakingDistributor, inspectSatBondStakingPosition, inspectSatChainSlot, invalidateSatReadCaches } from "../extensions/sat-mining/src/rpc-read.js";
|
|
35
36
|
import { digestSatSubmissionIntent } from "../extensions/sat-mining/src/submission-ledger.js";
|
|
36
37
|
import { runWithSatSubmissionWorkflow, submitSatCancelBondUnlock, submitSatClaimBondStakingRewards, submitSatFinalizeBondUnlock, submitSatIncreaseBondPosition, submitSatOpenBondPosition, submitSatRequestBondUnlock, submitSatSyncBondStakingPosition, submitSatSyncBondStakingRewards } from "../extensions/sat-mining/src/solana-submit.js";
|
|
37
38
|
import { resolveAgentAvatar } from "../agents/identity-avatar.js";
|
|
38
|
-
import { resolveNativeSignerWalletId } from "../wallet/native-signer-wallet-id.js";
|
|
39
39
|
import { configureSignerOwnedWalletNetwork } from "../wallet/signer-network-admin.js";
|
|
40
40
|
import { listWalletInboundEvents, pollWalletInboundEvents, reconcileWalletInboundEvents, recordWalletInboundWebhookEvent } from "../wallet/wallet-inbound-events.js";
|
|
41
41
|
import { walletSetupCommand } from "../commands/wallet.js";
|
|
@@ -681,7 +681,7 @@ async function readWalletSettingsSignerPolicy(params) {
|
|
|
681
681
|
...asset,
|
|
682
682
|
destinations: [...asset.destinations]
|
|
683
683
|
})),
|
|
684
|
-
...state === "locked" ? { guidance:
|
|
684
|
+
...state === "locked" ? { guidance: `This existing wallet is deny-all. Review its immutable role, then run: fased wallet policy activate-role-baseline --wallet-id ${walletId} --role ${policy.role} --confirm` } : {}
|
|
685
685
|
};
|
|
686
686
|
} catch {
|
|
687
687
|
return {
|
|
@@ -5078,6 +5078,16 @@ function createGatewayHttpServer(opts) {
|
|
|
5078
5078
|
});
|
|
5079
5079
|
return;
|
|
5080
5080
|
}
|
|
5081
|
+
if (resolveWalletUserRole(existing) === "mining") {
|
|
5082
|
+
sendLoginResponse(409, {
|
|
5083
|
+
ok: false,
|
|
5084
|
+
error: {
|
|
5085
|
+
code: "mining_retirement_required",
|
|
5086
|
+
message: "Mining wallets cannot be deleted directly; use Retire and replace Mining wallet so signer acknowledgement precedes registry detachment"
|
|
5087
|
+
}
|
|
5088
|
+
});
|
|
5089
|
+
return;
|
|
5090
|
+
}
|
|
5081
5091
|
const deletionSafety = checkNamedWalletDeletionSafety({
|
|
5082
5092
|
walletId,
|
|
5083
5093
|
env: process.env
|
|
@@ -5289,7 +5299,7 @@ function createGatewayHttpServer(opts) {
|
|
|
5289
5299
|
ok: false,
|
|
5290
5300
|
error: {
|
|
5291
5301
|
code: "wallet_in_use",
|
|
5292
|
-
message: "walletId is the singleton SAT Mining wallet; Archive/Replace Mining with an Agent wallet before making it the
|
|
5302
|
+
message: "walletId is the singleton SAT Mining wallet; Archive/Replace Mining with an Agent wallet before making it the Default Agent wallet fallback"
|
|
5293
5303
|
}
|
|
5294
5304
|
});
|
|
5295
5305
|
return;
|
|
@@ -5298,12 +5308,12 @@ function createGatewayHttpServer(opts) {
|
|
|
5298
5308
|
const registry = readWalletProviderRegistry(process.env);
|
|
5299
5309
|
const wallet = registry.wallets.find((entry) => entry.id === nextDefaultWalletId);
|
|
5300
5310
|
const role = resolveWalletUserRole(wallet) ?? (registry.defaultWalletId === nextDefaultWalletId ? "agent" : undefined);
|
|
5301
|
-
if (role
|
|
5311
|
+
if (role !== "agent") {
|
|
5302
5312
|
sendLoginResponse(409, {
|
|
5303
5313
|
ok: false,
|
|
5304
5314
|
error: {
|
|
5305
5315
|
code: "wallet_purpose_locked",
|
|
5306
|
-
message: "only Agent
|
|
5316
|
+
message: "only an explicit Agent wallet can become the Default Agent wallet fallback; create or select an Agent wallet instead"
|
|
5307
5317
|
}
|
|
5308
5318
|
});
|
|
5309
5319
|
return;
|
|
@@ -5316,9 +5326,34 @@ function createGatewayHttpServer(opts) {
|
|
|
5316
5326
|
}
|
|
5317
5327
|
const agentId = typeof payload.agentId === "string" ? payload.agentId.trim() : "";
|
|
5318
5328
|
if (agentId) {
|
|
5329
|
+
const assignedWalletId = typeof payload.walletId === "string" ? payload.walletId.trim() : "";
|
|
5330
|
+
if (assignedWalletId) {
|
|
5331
|
+
const registry = readWalletProviderRegistry(process.env);
|
|
5332
|
+
const wallet = registry.wallets.find((entry) => entry.id === assignedWalletId);
|
|
5333
|
+
if (!wallet) {
|
|
5334
|
+
sendLoginResponse(404, {
|
|
5335
|
+
ok: false,
|
|
5336
|
+
error: {
|
|
5337
|
+
code: "wallet_not_found",
|
|
5338
|
+
message: "walletId does not exist"
|
|
5339
|
+
}
|
|
5340
|
+
});
|
|
5341
|
+
return;
|
|
5342
|
+
}
|
|
5343
|
+
if (resolveWalletUserRole(wallet) !== "agent") {
|
|
5344
|
+
sendLoginResponse(409, {
|
|
5345
|
+
ok: false,
|
|
5346
|
+
error: {
|
|
5347
|
+
code: "wallet_purpose_locked",
|
|
5348
|
+
message: "only an explicit Agent wallet can be assigned to an Agent"
|
|
5349
|
+
}
|
|
5350
|
+
});
|
|
5351
|
+
return;
|
|
5352
|
+
}
|
|
5353
|
+
}
|
|
5319
5354
|
setAgentWalletAssignment({
|
|
5320
5355
|
agentId,
|
|
5321
|
-
walletId:
|
|
5356
|
+
walletId: assignedWalletId || undefined,
|
|
5322
5357
|
env: process.env
|
|
5323
5358
|
});
|
|
5324
5359
|
}
|
|
@@ -5835,10 +5870,12 @@ function createGatewayHttpServer(opts) {
|
|
|
5835
5870
|
}
|
|
5836
5871
|
} };
|
|
5837
5872
|
statusPayload.wallets = registry.wallets.map((wallet) => {
|
|
5873
|
+
const liveWallet = snapshot.wallets?.find((entry) => entry.id === wallet.id);
|
|
5838
5874
|
const solana = findWalletChainEntry(snapshotAny.chainWallets?.solana, wallet.id);
|
|
5839
|
-
const readiness = {
|
|
5875
|
+
const readiness = liveWallet?.readiness ?? {
|
|
5840
5876
|
keystore: Boolean(solana?.decryptReady ?? false),
|
|
5841
|
-
rpc: Boolean(solana?.rpcConfigured)
|
|
5877
|
+
rpc: Boolean(solana?.rpcConfigured),
|
|
5878
|
+
ready: false
|
|
5842
5879
|
};
|
|
5843
5880
|
return {
|
|
5844
5881
|
id: wallet.id,
|
|
@@ -5850,7 +5887,7 @@ function createGatewayHttpServer(opts) {
|
|
|
5850
5887
|
readiness,
|
|
5851
5888
|
chains: wallet.addresses?.solana ? ["solana"] : [],
|
|
5852
5889
|
rpcConfigured: readiness.rpc,
|
|
5853
|
-
health: readiness.
|
|
5890
|
+
health: readiness.ready ? "ok" : "degraded"
|
|
5854
5891
|
};
|
|
5855
5892
|
});
|
|
5856
5893
|
if (configuredProviderId === "local-socket-signer") {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SAT_RUNTIME_ENV_KEYS, resolveSatRuntimeIds, resolveWritableSatRuntimeDefaultsFile } from "../config/sat-runtime-ids.js";
|
|
1
|
+
import { SAT_RUNTIME_ENV_KEYS, SAT_RUNTIME_TRUST_ENV_KEYS, resolveSatRuntimeIds, resolveWritableSatRuntimeDefaultsFile } from "../config/sat-runtime-ids.js";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import fs from "node:fs/promises";
|
|
4
4
|
import { createHash, createPublicKey, verify } from "node:crypto";
|
|
@@ -180,24 +180,43 @@ function readLocalIds(env) {
|
|
|
180
180
|
function idsEqual(left, right) {
|
|
181
181
|
return Boolean(left && right && left.programId === right.programId && left.bondProgramId === right.bondProgramId && left.mintAddress === right.mintAddress && left.mintProgramId === right.mintProgramId);
|
|
182
182
|
}
|
|
183
|
-
function buildEnvFile(ids) {
|
|
183
|
+
function buildEnvFile(ids, trust) {
|
|
184
184
|
return [
|
|
185
185
|
"# Managed by Fased Agent official SAT mainnet sync.",
|
|
186
186
|
`${SAT_RUNTIME_ENV_KEYS.programId}=${ids.programId}`,
|
|
187
187
|
`${SAT_RUNTIME_ENV_KEYS.bondProgramId}=${ids.bondProgramId}`,
|
|
188
188
|
`${SAT_RUNTIME_ENV_KEYS.mintAddress}=${ids.mintAddress}`,
|
|
189
189
|
`${SAT_RUNTIME_ENV_KEYS.mintProgramId}=${ids.mintProgramId}`,
|
|
190
|
+
`${SAT_RUNTIME_TRUST_ENV_KEYS.manifestPath}=${trust.manifestPath}`,
|
|
191
|
+
`${SAT_RUNTIME_TRUST_ENV_KEYS.manifestSha256}=${trust.manifestSha256}`,
|
|
192
|
+
`${SAT_RUNTIME_TRUST_ENV_KEYS.manifestSignaturePath}=${trust.manifestSignaturePath}`,
|
|
190
193
|
""
|
|
191
194
|
].join("\n");
|
|
192
195
|
}
|
|
193
|
-
async function writeRuntimeIds(ids, env) {
|
|
196
|
+
async function writeRuntimeIds(ids, env, trust) {
|
|
194
197
|
const runtimeFile = resolveWritableSatRuntimeDefaultsFile(env);
|
|
198
|
+
const manifestPath = `${runtimeFile}.manifest.json`;
|
|
199
|
+
const manifestSignaturePath = `${runtimeFile}.manifest.sig`;
|
|
195
200
|
await fs.mkdir(path.dirname(runtimeFile), { recursive: true });
|
|
196
|
-
await fs.writeFile(
|
|
201
|
+
await fs.writeFile(manifestPath, trust.rawManifest, { mode: 384 });
|
|
202
|
+
await fs.writeFile(manifestSignaturePath, `${trust.signature.trim()}\n`, { mode: 384 });
|
|
203
|
+
await fs.writeFile(runtimeFile, buildEnvFile(ids, {
|
|
204
|
+
manifestPath,
|
|
205
|
+
manifestSha256: trust.manifestSha256,
|
|
206
|
+
manifestSignaturePath
|
|
207
|
+
}), { mode: 384 });
|
|
208
|
+
await Promise.all([
|
|
209
|
+
fs.chmod(manifestPath, 384),
|
|
210
|
+
fs.chmod(manifestSignaturePath, 384),
|
|
211
|
+
fs.chmod(runtimeFile, 384)
|
|
212
|
+
]);
|
|
197
213
|
env[SAT_RUNTIME_ENV_KEYS.programId] = ids.programId;
|
|
198
214
|
env[SAT_RUNTIME_ENV_KEYS.bondProgramId] = ids.bondProgramId;
|
|
199
215
|
env[SAT_RUNTIME_ENV_KEYS.mintAddress] = ids.mintAddress;
|
|
200
216
|
env[SAT_RUNTIME_ENV_KEYS.mintProgramId] = ids.mintProgramId;
|
|
217
|
+
env[SAT_RUNTIME_TRUST_ENV_KEYS.manifestPath] = manifestPath;
|
|
218
|
+
env[SAT_RUNTIME_TRUST_ENV_KEYS.manifestSha256] = trust.manifestSha256;
|
|
219
|
+
env[SAT_RUNTIME_TRUST_ENV_KEYS.manifestSignaturePath] = manifestSignaturePath;
|
|
201
220
|
return runtimeFile;
|
|
202
221
|
}
|
|
203
222
|
async function getSatMainnetSyncStatus(opts) {
|
|
@@ -312,7 +331,50 @@ async function syncSatMainnetRuntimeIds(opts) {
|
|
|
312
331
|
message: before.state === "not_live" ? "Satcoin mainnet is not live yet." : before.message || "SAT mainnet manifest is not ready to apply."
|
|
313
332
|
};
|
|
314
333
|
}
|
|
315
|
-
const
|
|
334
|
+
const manifestUrl = opts?.manifestUrl?.trim() || resolveManifestUrl(env);
|
|
335
|
+
const rawManifest = await fetchText(manifestUrl, { required: true });
|
|
336
|
+
const manifestSha256 = parseSha256(await fetchText(`${manifestUrl}.sha256`, { required: true }));
|
|
337
|
+
const signature = await fetchText(`${manifestUrl}.sig`, { required: true });
|
|
338
|
+
if (!rawManifest || !manifestSha256 || !signature?.trim()) {
|
|
339
|
+
return {
|
|
340
|
+
...before,
|
|
341
|
+
ok: false,
|
|
342
|
+
state: "failed",
|
|
343
|
+
message: "Verified SAT manifest artifacts could not be persisted for the native signer.",
|
|
344
|
+
error: "signed SAT runtime manifest, hash, or detached signature is missing"
|
|
345
|
+
};
|
|
346
|
+
}
|
|
347
|
+
const finalVerification = await verifyLiveManifest({
|
|
348
|
+
manifestUrl,
|
|
349
|
+
raw: rawManifest,
|
|
350
|
+
env
|
|
351
|
+
});
|
|
352
|
+
if (finalVerification.verification.hash !== "valid" || finalVerification.verification.signature !== "valid" || sha256Hex(rawManifest) !== manifestSha256) {
|
|
353
|
+
return {
|
|
354
|
+
...before,
|
|
355
|
+
ok: false,
|
|
356
|
+
state: "failed",
|
|
357
|
+
message: "SAT manifest changed before signer runtime persistence.",
|
|
358
|
+
verification: finalVerification.verification,
|
|
359
|
+
trustKeySource: finalVerification.trustKeySource,
|
|
360
|
+
error: "signed SAT runtime manifest verification raced or failed"
|
|
361
|
+
};
|
|
362
|
+
}
|
|
363
|
+
const persistedManifest = JSON.parse(rawManifest);
|
|
364
|
+
if (!idsEqual(readOfficialIds(persistedManifest), before.officialIds)) {
|
|
365
|
+
return {
|
|
366
|
+
...before,
|
|
367
|
+
ok: false,
|
|
368
|
+
state: "failed",
|
|
369
|
+
message: "SAT manifest IDs changed before signer runtime persistence.",
|
|
370
|
+
error: "signed SAT runtime ID tuple changed during sync"
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
const runtimeFile = await writeRuntimeIds(before.officialIds, env, {
|
|
374
|
+
rawManifest,
|
|
375
|
+
manifestSha256,
|
|
376
|
+
signature
|
|
377
|
+
});
|
|
316
378
|
const after = await getSatMainnetSyncStatus({
|
|
317
379
|
env,
|
|
318
380
|
manifestUrl: opts?.manifestUrl
|
|
@@ -56,7 +56,7 @@ function describeOperatorReadinessChecklist(input) {
|
|
|
56
56
|
agentWallet ? {
|
|
57
57
|
title: "Agent wallet set",
|
|
58
58
|
summary: defaultWallet && firstAgentWallet && defaultWallet.id !== firstAgentWallet.id ? `${defaultWallet.name} · ${firstAgentWallet.name}` : agentWallet.name,
|
|
59
|
-
detail: defaultWallet ? "This
|
|
59
|
+
detail: defaultWallet ? "This Default Agent wallet is the final fallback for paid A2A sends, payment evidence publication, skill/plugin wallet actions, and routine transfers after explicit, skill, and Agent assignment routing." : "This Agent wallet can be selected explicitly or assigned to an Agent or skill. Set it as the optional fallback only when global fallback behavior is wanted.",
|
|
60
60
|
tone: "success"
|
|
61
61
|
} : defaultWalletId ? {
|
|
62
62
|
title: "Agent wallet set",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Et as isAudioAttachment, St as normalizeMediaAttachments, Tt as runCapability, bt as buildProviderRegistry, wt as resolveMediaAttachmentLocalRoots, xt as createMediaAttachmentCache } from "./config-schema-
|
|
1
|
+
import { Et as isAudioAttachment, St as normalizeMediaAttachments, Tt as runCapability, bt as buildProviderRegistry, wt as resolveMediaAttachmentLocalRoots, xt as createMediaAttachmentCache } from "./config-schema-BiBOUW89.js";
|
|
2
2
|
import "./runtime-CXSQwMaR.js";
|
|
3
3
|
import "./subsystem-DBPNbQDQ.js";
|
|
4
4
|
import { i as logVerbose, s as shouldLogVerbose } from "./globals-B_jjtAje.js";
|
|
@@ -36,7 +36,7 @@ import "./manager-BegWxNYX.js";
|
|
|
36
36
|
import "./query-expansion-BG3FgzF7.js";
|
|
37
37
|
import "./common-HCcXU-NR.js";
|
|
38
38
|
import "./commands-registry-G5KXSi_y.js";
|
|
39
|
-
import "./runtime-dependency-
|
|
39
|
+
import "./runtime-dependency-DczkvPxn.js";
|
|
40
40
|
import "./path-alias-guards-DjgDArrp.js";
|
|
41
41
|
import "./fs-safe-g4g7GT02.js";
|
|
42
42
|
import "./qr-image-B4MlMG4N.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as DEFAULT_ACCOUNT_ID, r as normalizeAccountId } from "./session-key--_1zVBRB.js";
|
|
2
2
|
import { Y as ChannelMessageActionContext, n as ChannelPlugin, ut as getChatChannelMeta } from "./types.plugin-BcSBq42x.js";
|
|
3
|
-
import { _ as FasedAgentPluginApi, t as PluginRuntime } from "./types-
|
|
4
|
-
import { a as buildChannelConfigSchema, c as emptyPluginConfigSchema, i as setAccountEnabledInConfigSection, n as formatPairingApproveHint, o as applyAccountNameToChannelSection, r as deleteAccountFromConfigSection, s as migrateBaseNameToDefaultAccount, t as PAIRING_APPROVED_MESSAGE } from "./pairing-message-
|
|
3
|
+
import { _ as FasedAgentPluginApi, t as PluginRuntime } from "./types-BakzIzGN.js";
|
|
4
|
+
import { a as buildChannelConfigSchema, c as emptyPluginConfigSchema, i as setAccountEnabledInConfigSection, n as formatPairingApproveHint, o as applyAccountNameToChannelSection, r as deleteAccountFromConfigSection, s as migrateBaseNameToDefaultAccount, t as PAIRING_APPROVED_MESSAGE } from "./pairing-message-CiTcdD6m.js";
|
|
5
5
|
export { type ChannelMessageActionContext, type ChannelPlugin, DEFAULT_ACCOUNT_ID, type FasedAgentPluginApi, PAIRING_APPROVED_MESSAGE, type PluginRuntime, applyAccountNameToChannelSection, buildChannelConfigSchema, deleteAccountFromConfigSection, emptyPluginConfigSchema, formatPairingApproveHint, getChatChannelMeta, migrateBaseNameToDefaultAccount, normalizeAccountId, setAccountEnabledInConfigSection };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Ht as buildCommandsMessage, Ut as buildCommandsMessagePaginated, Wt as buildHelpMessage } from "./config-schema-
|
|
1
|
+
import { Ht as buildCommandsMessage, Ut as buildCommandsMessagePaginated, Wt as buildHelpMessage } from "./config-schema-BiBOUW89.js";
|
|
2
2
|
import "./runtime-CXSQwMaR.js";
|
|
3
3
|
import "./subsystem-DBPNbQDQ.js";
|
|
4
4
|
import "./globals-B_jjtAje.js";
|
|
@@ -36,7 +36,7 @@ import "./manager-BegWxNYX.js";
|
|
|
36
36
|
import "./query-expansion-BG3FgzF7.js";
|
|
37
37
|
import "./common-HCcXU-NR.js";
|
|
38
38
|
import "./commands-registry-G5KXSi_y.js";
|
|
39
|
-
import "./runtime-dependency-
|
|
39
|
+
import "./runtime-dependency-DczkvPxn.js";
|
|
40
40
|
import "./path-alias-guards-DjgDArrp.js";
|
|
41
41
|
import "./fs-safe-g4g7GT02.js";
|
|
42
42
|
import "./qr-image-B4MlMG4N.js";
|