@xylabs/aries 0.1.1
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/README.md +693 -0
- package/dist/actions/audit/auditPaths.mjs +22 -0
- package/dist/actions/audit/auditPaths.mjs.map +1 -0
- package/dist/actions/audit/index.mjs +739 -0
- package/dist/actions/audit/index.mjs.map +1 -0
- package/dist/actions/audit/installPlugin.mjs +298 -0
- package/dist/actions/audit/installPlugin.mjs.map +1 -0
- package/dist/actions/audit/listSessions.mjs +93 -0
- package/dist/actions/audit/listSessions.mjs.map +1 -0
- package/dist/actions/audit/openAuditDir.mjs +44 -0
- package/dist/actions/audit/openAuditDir.mjs.map +1 -0
- package/dist/actions/audit/searchAudit.mjs +77 -0
- package/dist/actions/audit/searchAudit.mjs.map +1 -0
- package/dist/actions/audit/showAiMeta.mjs +105 -0
- package/dist/actions/audit/showAiMeta.mjs.map +1 -0
- package/dist/actions/audit/showSession.mjs +105 -0
- package/dist/actions/audit/showSession.mjs.map +1 -0
- package/dist/actions/audit/statusAudit.mjs +98 -0
- package/dist/actions/audit/statusAudit.mjs.map +1 -0
- package/dist/actions/clamp/clampAudit.mjs +53 -0
- package/dist/actions/clamp/clampAudit.mjs.map +1 -0
- package/dist/actions/clamp/index.mjs +2258 -0
- package/dist/actions/clamp/index.mjs.map +1 -0
- package/dist/actions/clamp/ipcServer.mjs +55 -0
- package/dist/actions/clamp/ipcServer.mjs.map +1 -0
- package/dist/actions/clamp/policyManagement.mjs +144 -0
- package/dist/actions/clamp/policyManagement.mjs.map +1 -0
- package/dist/actions/clamp/promptUser.mjs +91 -0
- package/dist/actions/clamp/promptUser.mjs.map +1 -0
- package/dist/actions/clamp/runClamped.mjs +2107 -0
- package/dist/actions/clamp/runClamped.mjs.map +1 -0
- package/dist/actions/clamp/sandboxExec.mjs +1612 -0
- package/dist/actions/clamp/sandboxExec.mjs.map +1 -0
- package/dist/actions/clamp/shellEnvSetup.mjs +59 -0
- package/dist/actions/clamp/shellEnvSetup.mjs.map +1 -0
- package/dist/actions/clamp/shimGenerator.mjs +68 -0
- package/dist/actions/clamp/shimGenerator.mjs.map +1 -0
- package/dist/actions/clamp/terminalRenderer.mjs +145 -0
- package/dist/actions/clamp/terminalRenderer.mjs.map +1 -0
- package/dist/actions/datalake/audit/auditLog.mjs +191 -0
- package/dist/actions/datalake/audit/auditLog.mjs.map +1 -0
- package/dist/actions/datalake/createDatalake.mjs +127 -0
- package/dist/actions/datalake/createDatalake.mjs.map +1 -0
- package/dist/actions/datalake/describeDatalake.mjs +159 -0
- package/dist/actions/datalake/describeDatalake.mjs.map +1 -0
- package/dist/actions/datalake/destroyDatalake.mjs +34 -0
- package/dist/actions/datalake/destroyDatalake.mjs.map +1 -0
- package/dist/actions/datalake/dev/downDevServer.mjs +102 -0
- package/dist/actions/datalake/dev/downDevServer.mjs.map +1 -0
- package/dist/actions/datalake/dev/index.mjs +369 -0
- package/dist/actions/datalake/dev/index.mjs.map +1 -0
- package/dist/actions/datalake/dev/logsDevServer.mjs +44 -0
- package/dist/actions/datalake/dev/logsDevServer.mjs.map +1 -0
- package/dist/actions/datalake/dev/paths.mjs +25 -0
- package/dist/actions/datalake/dev/paths.mjs.map +1 -0
- package/dist/actions/datalake/dev/resetDevServer.mjs +118 -0
- package/dist/actions/datalake/dev/resetDevServer.mjs.map +1 -0
- package/dist/actions/datalake/dev/resolveServerBin.mjs +26 -0
- package/dist/actions/datalake/dev/resolveServerBin.mjs.map +1 -0
- package/dist/actions/datalake/dev/state.mjs +62 -0
- package/dist/actions/datalake/dev/state.mjs.map +1 -0
- package/dist/actions/datalake/dev/statusDevServer.mjs +101 -0
- package/dist/actions/datalake/dev/statusDevServer.mjs.map +1 -0
- package/dist/actions/datalake/dev/upDevServer.mjs +221 -0
- package/dist/actions/datalake/dev/upDevServer.mjs.map +1 -0
- package/dist/actions/datalake/dev/waitForHealth.mjs +22 -0
- package/dist/actions/datalake/dev/waitForHealth.mjs.map +1 -0
- package/dist/actions/datalake/formatters.mjs +90 -0
- package/dist/actions/datalake/formatters.mjs.map +1 -0
- package/dist/actions/datalake/grantAccess.mjs +116 -0
- package/dist/actions/datalake/grantAccess.mjs.map +1 -0
- package/dist/actions/datalake/index.mjs +361 -0
- package/dist/actions/datalake/index.mjs.map +1 -0
- package/dist/actions/datalake/listDatalakes.mjs +54 -0
- package/dist/actions/datalake/listDatalakes.mjs.map +1 -0
- package/dist/actions/datalake/login.mjs +20 -0
- package/dist/actions/datalake/login.mjs.map +1 -0
- package/dist/actions/datalake/logout.mjs +11 -0
- package/dist/actions/datalake/logout.mjs.map +1 -0
- package/dist/actions/datalake/mintToken.mjs +37 -0
- package/dist/actions/datalake/mintToken.mjs.map +1 -0
- package/dist/actions/datalake/parseSize.mjs +21 -0
- package/dist/actions/datalake/parseSize.mjs.map +1 -0
- package/dist/actions/datalake/payloads/fetchPayload.mjs +76 -0
- package/dist/actions/datalake/payloads/fetchPayload.mjs.map +1 -0
- package/dist/actions/datalake/payloads/index.mjs +271 -0
- package/dist/actions/datalake/payloads/index.mjs.map +1 -0
- package/dist/actions/datalake/payloads/mintAndConnect.mjs +46 -0
- package/dist/actions/datalake/payloads/mintAndConnect.mjs.map +1 -0
- package/dist/actions/datalake/payloads/parsePayloadsFile.mjs +71 -0
- package/dist/actions/datalake/payloads/parsePayloadsFile.mjs.map +1 -0
- package/dist/actions/datalake/payloads/pushPayloads.mjs +181 -0
- package/dist/actions/datalake/payloads/pushPayloads.mjs.map +1 -0
- package/dist/actions/datalake/payloads/tailPayloads.mjs +106 -0
- package/dist/actions/datalake/payloads/tailPayloads.mjs.map +1 -0
- package/dist/actions/datalake/resolveTarget.mjs +15 -0
- package/dist/actions/datalake/resolveTarget.mjs.map +1 -0
- package/dist/actions/datalake/revokeAccess.mjs +108 -0
- package/dist/actions/datalake/revokeAccess.mjs.map +1 -0
- package/dist/actions/datalake/useDatalake.mjs +22 -0
- package/dist/actions/datalake/useDatalake.mjs.map +1 -0
- package/dist/actions/detect/detectAiClients.mjs +405 -0
- package/dist/actions/detect/detectAiClients.mjs.map +1 -0
- package/dist/actions/detect/index.mjs +405 -0
- package/dist/actions/detect/index.mjs.map +1 -0
- package/dist/actions/hash/algorithms/blockhash.mjs +61 -0
- package/dist/actions/hash/algorithms/blockhash.mjs.map +1 -0
- package/dist/actions/hash/algorithms/chromaprint.mjs +205 -0
- package/dist/actions/hash/algorithms/chromaprint.mjs.map +1 -0
- package/dist/actions/hash/algorithms/dhash.mjs +75 -0
- package/dist/actions/hash/algorithms/dhash.mjs.map +1 -0
- package/dist/actions/hash/algorithms/index.mjs +818 -0
- package/dist/actions/hash/algorithms/index.mjs.map +1 -0
- package/dist/actions/hash/algorithms/nilsimsa.mjs +27 -0
- package/dist/actions/hash/algorithms/nilsimsa.mjs.map +1 -0
- package/dist/actions/hash/algorithms/pdq.mjs +83 -0
- package/dist/actions/hash/algorithms/pdq.mjs.map +1 -0
- package/dist/actions/hash/algorithms/phash.mjs +71 -0
- package/dist/actions/hash/algorithms/phash.mjs.map +1 -0
- package/dist/actions/hash/algorithms/sha256.mjs +24 -0
- package/dist/actions/hash/algorithms/sha256.mjs.map +1 -0
- package/dist/actions/hash/algorithms/ssdeep.mjs +203 -0
- package/dist/actions/hash/algorithms/ssdeep.mjs.map +1 -0
- package/dist/actions/hash/algorithms/tlsh.mjs +66 -0
- package/dist/actions/hash/algorithms/tlsh.mjs.map +1 -0
- package/dist/actions/hash/algorithms/types.mjs +1 -0
- package/dist/actions/hash/algorithms/types.mjs.map +1 -0
- package/dist/actions/hash/algorithms/videoFrames.mjs +404 -0
- package/dist/actions/hash/algorithms/videoFrames.mjs.map +1 -0
- package/dist/actions/hash/algorithms/xyo.mjs +30 -0
- package/dist/actions/hash/algorithms/xyo.mjs.map +1 -0
- package/dist/actions/hash/compareHashes.mjs +823 -0
- package/dist/actions/hash/compareHashes.mjs.map +1 -0
- package/dist/actions/hash/hashInput.mjs +868 -0
- package/dist/actions/hash/hashInput.mjs.map +1 -0
- package/dist/actions/hash/index.mjs +881 -0
- package/dist/actions/hash/index.mjs.map +1 -0
- package/dist/actions/hash/lib/hamming.mjs +44 -0
- package/dist/actions/hash/lib/hamming.mjs.map +1 -0
- package/dist/actions/hash/lib/levenshtein.mjs +36 -0
- package/dist/actions/hash/lib/levenshtein.mjs.map +1 -0
- package/dist/actions/hash/lib/runBinary.mjs +54 -0
- package/dist/actions/hash/lib/runBinary.mjs.map +1 -0
- package/dist/actions/hash/lib/which.mjs +36 -0
- package/dist/actions/hash/lib/which.mjs.map +1 -0
- package/dist/actions/hash/lib/withTempfile.mjs +19 -0
- package/dist/actions/hash/lib/withTempfile.mjs.map +1 -0
- package/dist/actions/index.mjs +4615 -0
- package/dist/actions/index.mjs.map +1 -0
- package/dist/actions/printVersion.mjs +12 -0
- package/dist/actions/printVersion.mjs.map +1 -0
- package/dist/actions/sync/index.mjs +51 -0
- package/dist/actions/sync/index.mjs.map +1 -0
- package/dist/actions/sync/syncAiConfig.mjs +51 -0
- package/dist/actions/sync/syncAiConfig.mjs.map +1 -0
- package/dist/actions/wallet/account/deriveAndAdd.mjs +394 -0
- package/dist/actions/wallet/account/deriveAndAdd.mjs.map +1 -0
- package/dist/actions/wallet/account/getActiveWallet.mjs +338 -0
- package/dist/actions/wallet/account/getActiveWallet.mjs.map +1 -0
- package/dist/actions/wallet/account/labelAccount.mjs +389 -0
- package/dist/actions/wallet/account/labelAccount.mjs.map +1 -0
- package/dist/actions/wallet/account/listAccounts.mjs +374 -0
- package/dist/actions/wallet/account/listAccounts.mjs.map +1 -0
- package/dist/actions/wallet/account/removeAccount.mjs +384 -0
- package/dist/actions/wallet/account/removeAccount.mjs.map +1 -0
- package/dist/actions/wallet/account/showAccount.mjs +368 -0
- package/dist/actions/wallet/account/showAccount.mjs.map +1 -0
- package/dist/actions/wallet/addressBook/storage.mjs +110 -0
- package/dist/actions/wallet/addressBook/storage.mjs.map +1 -0
- package/dist/actions/wallet/backup/exportBackup.mjs +93 -0
- package/dist/actions/wallet/backup/exportBackup.mjs.map +1 -0
- package/dist/actions/wallet/backup/importBackup.mjs +142 -0
- package/dist/actions/wallet/backup/importBackup.mjs.map +1 -0
- package/dist/actions/wallet/balance/getBalance.mjs +434 -0
- package/dist/actions/wallet/balance/getBalance.mjs.map +1 -0
- package/dist/actions/wallet/client/walletClient.mjs +64 -0
- package/dist/actions/wallet/client/walletClient.mjs.map +1 -0
- package/dist/actions/wallet/contact/contactActions.mjs +120 -0
- package/dist/actions/wallet/contact/contactActions.mjs.map +1 -0
- package/dist/actions/wallet/contact/storage.mjs +69 -0
- package/dist/actions/wallet/contact/storage.mjs.map +1 -0
- package/dist/actions/wallet/index.mjs +1439 -0
- package/dist/actions/wallet/index.mjs.map +1 -0
- package/dist/actions/wallet/network/networkActions.mjs +137 -0
- package/dist/actions/wallet/network/networkActions.mjs.map +1 -0
- package/dist/actions/wallet/network/storage.mjs +93 -0
- package/dist/actions/wallet/network/storage.mjs.map +1 -0
- package/dist/actions/wallet/password/changePassword.mjs +282 -0
- package/dist/actions/wallet/password/changePassword.mjs.map +1 -0
- package/dist/actions/wallet/password/getActiveKey.mjs +297 -0
- package/dist/actions/wallet/password/getActiveKey.mjs.map +1 -0
- package/dist/actions/wallet/password/initOrUnlock.mjs +337 -0
- package/dist/actions/wallet/password/initOrUnlock.mjs.map +1 -0
- package/dist/actions/wallet/password/passwordStorage.mjs +69 -0
- package/dist/actions/wallet/password/passwordStorage.mjs.map +1 -0
- package/dist/actions/wallet/password/setPassword.mjs +138 -0
- package/dist/actions/wallet/password/setPassword.mjs.map +1 -0
- package/dist/actions/wallet/password/validatePassword.mjs +123 -0
- package/dist/actions/wallet/password/validatePassword.mjs.map +1 -0
- package/dist/actions/wallet/passwordKey.mjs +87 -0
- package/dist/actions/wallet/passwordKey.mjs.map +1 -0
- package/dist/actions/wallet/paths.mjs +26 -0
- package/dist/actions/wallet/paths.mjs.map +1 -0
- package/dist/actions/wallet/prompt.mjs +93 -0
- package/dist/actions/wallet/prompt.mjs.map +1 -0
- package/dist/actions/wallet/seedPhrase/createPhrase.mjs +392 -0
- package/dist/actions/wallet/seedPhrase/createPhrase.mjs.map +1 -0
- package/dist/actions/wallet/seedPhrase/exportPhrase.mjs +334 -0
- package/dist/actions/wallet/seedPhrase/exportPhrase.mjs.map +1 -0
- package/dist/actions/wallet/seedPhrase/idGen.mjs +11 -0
- package/dist/actions/wallet/seedPhrase/idGen.mjs.map +1 -0
- package/dist/actions/wallet/seedPhrase/importPhrase.mjs +393 -0
- package/dist/actions/wallet/seedPhrase/importPhrase.mjs.map +1 -0
- package/dist/actions/wallet/seedPhrase/listPhrases.mjs +62 -0
- package/dist/actions/wallet/seedPhrase/listPhrases.mjs.map +1 -0
- package/dist/actions/wallet/seedPhrase/phraseStorage.mjs +89 -0
- package/dist/actions/wallet/seedPhrase/phraseStorage.mjs.map +1 -0
- package/dist/actions/wallet/seedPhrase/removePhrase.mjs +366 -0
- package/dist/actions/wallet/seedPhrase/removePhrase.mjs.map +1 -0
- package/dist/actions/wallet/seedPhrase/renamePhrase.mjs +78 -0
- package/dist/actions/wallet/seedPhrase/renamePhrase.mjs.map +1 -0
- package/dist/actions/wallet/seedPhrase/types.mjs +1 -0
- package/dist/actions/wallet/seedPhrase/types.mjs.map +1 -0
- package/dist/actions/wallet/seedPhrase/usePhrase.mjs +83 -0
- package/dist/actions/wallet/seedPhrase/usePhrase.mjs.map +1 -0
- package/dist/actions/wallet/session/machineId.mjs +145 -0
- package/dist/actions/wallet/session/machineId.mjs.map +1 -0
- package/dist/actions/wallet/session/sessionCache.mjs +221 -0
- package/dist/actions/wallet/session/sessionCache.mjs.map +1 -0
- package/dist/actions/wallet/session/unlock.mjs +307 -0
- package/dist/actions/wallet/session/unlock.mjs.map +1 -0
- package/dist/actions/wallet/sign/signPayload.mjs +637 -0
- package/dist/actions/wallet/sign/signPayload.mjs.map +1 -0
- package/dist/actions/wallet/storage.mjs +51 -0
- package/dist/actions/wallet/storage.mjs.map +1 -0
- package/dist/actions/wallet/transaction/broadcastTransaction.mjs +453 -0
- package/dist/actions/wallet/transaction/broadcastTransaction.mjs.map +1 -0
- package/dist/actions/wallet/transaction/sendTransaction.mjs +457 -0
- package/dist/actions/wallet/transaction/sendTransaction.mjs.map +1 -0
- package/dist/actions/wallet/transaction/signTransactionFile.mjs +378 -0
- package/dist/actions/wallet/transaction/signTransactionFile.mjs.map +1 -0
- package/dist/actions/xyo/index.mjs +138 -0
- package/dist/actions/xyo/index.mjs.map +1 -0
- package/dist/actions/xyo/transaction/index.mjs +138 -0
- package/dist/actions/xyo/transaction/index.mjs.map +1 -0
- package/dist/actions/xyo/transaction/validateTransactions.mjs +138 -0
- package/dist/actions/xyo/transaction/validateTransactions.mjs.map +1 -0
- package/dist/aries.mjs +8466 -0
- package/dist/aries.mjs.map +1 -0
- package/dist/bin/aries.mjs +8472 -0
- package/dist/bin/aries.mjs.map +1 -0
- package/dist/commands/aiCommand.mjs +492 -0
- package/dist/commands/aiCommand.mjs.map +1 -0
- package/dist/commands/auditAiCommand.mjs +119 -0
- package/dist/commands/auditAiCommand.mjs.map +1 -0
- package/dist/commands/auditCommand.mjs +857 -0
- package/dist/commands/auditCommand.mjs.map +1 -0
- package/dist/commands/auditInstallCommand.mjs +324 -0
- package/dist/commands/auditInstallCommand.mjs.map +1 -0
- package/dist/commands/auditListCommand.mjs +107 -0
- package/dist/commands/auditListCommand.mjs.map +1 -0
- package/dist/commands/auditOpenCommand.mjs +51 -0
- package/dist/commands/auditOpenCommand.mjs.map +1 -0
- package/dist/commands/auditSearchCommand.mjs +98 -0
- package/dist/commands/auditSearchCommand.mjs.map +1 -0
- package/dist/commands/auditShowCommand.mjs +123 -0
- package/dist/commands/auditShowCommand.mjs.map +1 -0
- package/dist/commands/auditStatusCommand.mjs +105 -0
- package/dist/commands/auditStatusCommand.mjs.map +1 -0
- package/dist/commands/clampCommand.mjs +2328 -0
- package/dist/commands/clampCommand.mjs.map +1 -0
- package/dist/commands/clampPolicyCommand.mjs +184 -0
- package/dist/commands/clampPolicyCommand.mjs.map +1 -0
- package/dist/commands/clampPolicyInitCommand.mjs +63 -0
- package/dist/commands/clampPolicyInitCommand.mjs.map +1 -0
- package/dist/commands/clampPolicyListCommand.mjs +56 -0
- package/dist/commands/clampPolicyListCommand.mjs.map +1 -0
- package/dist/commands/clampPolicyShowCommand.mjs +83 -0
- package/dist/commands/clampPolicyShowCommand.mjs.map +1 -0
- package/dist/commands/clampRunCommand.mjs +2137 -0
- package/dist/commands/clampRunCommand.mjs.map +1 -0
- package/dist/commands/datalakeAuditCommand.mjs +273 -0
- package/dist/commands/datalakeAuditCommand.mjs.map +1 -0
- package/dist/commands/datalakeCommand.mjs +1637 -0
- package/dist/commands/datalakeCommand.mjs.map +1 -0
- package/dist/commands/datalakeCreateCommand.mjs +189 -0
- package/dist/commands/datalakeCreateCommand.mjs.map +1 -0
- package/dist/commands/datalakeDescribeCommand.mjs +172 -0
- package/dist/commands/datalakeDescribeCommand.mjs.map +1 -0
- package/dist/commands/datalakeDestroyCommand.mjs +53 -0
- package/dist/commands/datalakeDestroyCommand.mjs.map +1 -0
- package/dist/commands/datalakeDevCommand.mjs +470 -0
- package/dist/commands/datalakeDevCommand.mjs.map +1 -0
- package/dist/commands/datalakeDevDownCommand.mjs +111 -0
- package/dist/commands/datalakeDevDownCommand.mjs.map +1 -0
- package/dist/commands/datalakeDevLogsCommand.mjs +65 -0
- package/dist/commands/datalakeDevLogsCommand.mjs.map +1 -0
- package/dist/commands/datalakeDevResetCommand.mjs +125 -0
- package/dist/commands/datalakeDevResetCommand.mjs.map +1 -0
- package/dist/commands/datalakeDevStatusCommand.mjs +110 -0
- package/dist/commands/datalakeDevStatusCommand.mjs.map +1 -0
- package/dist/commands/datalakeDevUpCommand.mjs +268 -0
- package/dist/commands/datalakeDevUpCommand.mjs.map +1 -0
- package/dist/commands/datalakeFetchCommand.mjs +106 -0
- package/dist/commands/datalakeFetchCommand.mjs.map +1 -0
- package/dist/commands/datalakeGrantCommand.mjs +147 -0
- package/dist/commands/datalakeGrantCommand.mjs.map +1 -0
- package/dist/commands/datalakeListCommand.mjs +61 -0
- package/dist/commands/datalakeListCommand.mjs.map +1 -0
- package/dist/commands/datalakeLoginCommand.mjs +39 -0
- package/dist/commands/datalakeLoginCommand.mjs.map +1 -0
- package/dist/commands/datalakeLogoutCommand.mjs +20 -0
- package/dist/commands/datalakeLogoutCommand.mjs.map +1 -0
- package/dist/commands/datalakePushCommand.mjs +214 -0
- package/dist/commands/datalakePushCommand.mjs.map +1 -0
- package/dist/commands/datalakeRevokeCommand.mjs +127 -0
- package/dist/commands/datalakeRevokeCommand.mjs.map +1 -0
- package/dist/commands/datalakeTailCommand.mjs +144 -0
- package/dist/commands/datalakeTailCommand.mjs.map +1 -0
- package/dist/commands/datalakeTokenCommand.mjs +61 -0
- package/dist/commands/datalakeTokenCommand.mjs.map +1 -0
- package/dist/commands/datalakeUseCommand.mjs +35 -0
- package/dist/commands/datalakeUseCommand.mjs.map +1 -0
- package/dist/commands/detectCommand.mjs +419 -0
- package/dist/commands/detectCommand.mjs.map +1 -0
- package/dist/commands/hashCommand.mjs +976 -0
- package/dist/commands/hashCommand.mjs.map +1 -0
- package/dist/commands/hashCompareCommand.mjs +865 -0
- package/dist/commands/hashCompareCommand.mjs.map +1 -0
- package/dist/commands/index.mjs +8461 -0
- package/dist/commands/index.mjs.map +1 -0
- package/dist/commands/syncCommand.mjs +66 -0
- package/dist/commands/syncCommand.mjs.map +1 -0
- package/dist/commands/versionCommand.mjs +24 -0
- package/dist/commands/versionCommand.mjs.map +1 -0
- package/dist/commands/walletAccountCommand.mjs +536 -0
- package/dist/commands/walletAccountCommand.mjs.map +1 -0
- package/dist/commands/walletAccountDeriveCommand.mjs +415 -0
- package/dist/commands/walletAccountDeriveCommand.mjs.map +1 -0
- package/dist/commands/walletAccountLabelCommand.mjs +405 -0
- package/dist/commands/walletAccountLabelCommand.mjs.map +1 -0
- package/dist/commands/walletAccountListCommand.mjs +381 -0
- package/dist/commands/walletAccountListCommand.mjs.map +1 -0
- package/dist/commands/walletAccountRemoveCommand.mjs +396 -0
- package/dist/commands/walletAccountRemoveCommand.mjs.map +1 -0
- package/dist/commands/walletAccountShowCommand.mjs +380 -0
- package/dist/commands/walletAccountShowCommand.mjs.map +1 -0
- package/dist/commands/walletBackupCommand.mjs +222 -0
- package/dist/commands/walletBackupCommand.mjs.map +1 -0
- package/dist/commands/walletBackupExportCommand.mjs +107 -0
- package/dist/commands/walletBackupExportCommand.mjs.map +1 -0
- package/dist/commands/walletBackupImportCommand.mjs +154 -0
- package/dist/commands/walletBackupImportCommand.mjs.map +1 -0
- package/dist/commands/walletBalanceCommand.mjs +448 -0
- package/dist/commands/walletBalanceCommand.mjs.map +1 -0
- package/dist/commands/walletCommand.mjs +1968 -0
- package/dist/commands/walletCommand.mjs.map +1 -0
- package/dist/commands/walletContactAddCommand.mjs +111 -0
- package/dist/commands/walletContactAddCommand.mjs.map +1 -0
- package/dist/commands/walletContactCommand.mjs +184 -0
- package/dist/commands/walletContactCommand.mjs.map +1 -0
- package/dist/commands/walletContactListCommand.mjs +66 -0
- package/dist/commands/walletContactListCommand.mjs.map +1 -0
- package/dist/commands/walletContactRemoveCommand.mjs +97 -0
- package/dist/commands/walletContactRemoveCommand.mjs.map +1 -0
- package/dist/commands/walletContactRenameCommand.mjs +114 -0
- package/dist/commands/walletContactRenameCommand.mjs.map +1 -0
- package/dist/commands/walletCreateCommand.mjs +407 -0
- package/dist/commands/walletCreateCommand.mjs.map +1 -0
- package/dist/commands/walletExportCommand.mjs +345 -0
- package/dist/commands/walletExportCommand.mjs.map +1 -0
- package/dist/commands/walletImportCommand.mjs +413 -0
- package/dist/commands/walletImportCommand.mjs.map +1 -0
- package/dist/commands/walletListCommand.mjs +69 -0
- package/dist/commands/walletListCommand.mjs.map +1 -0
- package/dist/commands/walletLockCommand.mjs +56 -0
- package/dist/commands/walletLockCommand.mjs.map +1 -0
- package/dist/commands/walletNetworkAddCommand.mjs +131 -0
- package/dist/commands/walletNetworkAddCommand.mjs.map +1 -0
- package/dist/commands/walletNetworkCommand.mjs +206 -0
- package/dist/commands/walletNetworkCommand.mjs.map +1 -0
- package/dist/commands/walletNetworkListCommand.mjs +104 -0
- package/dist/commands/walletNetworkListCommand.mjs.map +1 -0
- package/dist/commands/walletNetworkRemoveCommand.mjs +112 -0
- package/dist/commands/walletNetworkRemoveCommand.mjs.map +1 -0
- package/dist/commands/walletNetworkUseCommand.mjs +110 -0
- package/dist/commands/walletNetworkUseCommand.mjs.map +1 -0
- package/dist/commands/walletPasswordChangeCommand.mjs +291 -0
- package/dist/commands/walletPasswordChangeCommand.mjs.map +1 -0
- package/dist/commands/walletPasswordCommand.mjs +301 -0
- package/dist/commands/walletPasswordCommand.mjs.map +1 -0
- package/dist/commands/walletRemoveCommand.mjs +378 -0
- package/dist/commands/walletRemoveCommand.mjs.map +1 -0
- package/dist/commands/walletRenameCommand.mjs +94 -0
- package/dist/commands/walletRenameCommand.mjs.map +1 -0
- package/dist/commands/walletSignCommand.mjs +662 -0
- package/dist/commands/walletSignCommand.mjs.map +1 -0
- package/dist/commands/walletTxBroadcastCommand.mjs +473 -0
- package/dist/commands/walletTxBroadcastCommand.mjs.map +1 -0
- package/dist/commands/walletTxCommand.mjs +612 -0
- package/dist/commands/walletTxCommand.mjs.map +1 -0
- package/dist/commands/walletTxSendCommand.mjs +492 -0
- package/dist/commands/walletTxSendCommand.mjs.map +1 -0
- package/dist/commands/walletTxSignCommand.mjs +403 -0
- package/dist/commands/walletTxSignCommand.mjs.map +1 -0
- package/dist/commands/walletUnlockCommand.mjs +308 -0
- package/dist/commands/walletUnlockCommand.mjs.map +1 -0
- package/dist/commands/walletUseCommand.mjs +95 -0
- package/dist/commands/walletUseCommand.mjs.map +1 -0
- package/dist/commands/xyoCommand.mjs +188 -0
- package/dist/commands/xyoCommand.mjs.map +1 -0
- package/dist/commands/xyoTxCommand.mjs +178 -0
- package/dist/commands/xyoTxCommand.mjs.map +1 -0
- package/dist/commands/xyoTxValidateCommand.mjs +168 -0
- package/dist/commands/xyoTxValidateCommand.mjs.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.mjs +8466 -0
- package/dist/index.mjs.map +1 -0
- package/dist/types/modules.d.mjs +1 -0
- package/dist/types/modules.d.mjs.map +1 -0
- package/package.json +197 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// src/actions/audit/auditPaths.ts
|
|
2
|
+
import { homedir } from "os";
|
|
3
|
+
import path from "path";
|
|
4
|
+
function getAuditRootDir() {
|
|
5
|
+
return path.join(homedir(), ".aries", "audit-logs");
|
|
6
|
+
}
|
|
7
|
+
function getAuditDir(provider) {
|
|
8
|
+
return provider ? path.join(getAuditRootDir(), provider) : getAuditRootDir();
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// src/actions/audit/openAuditDir.ts
|
|
12
|
+
import { execSync } from "child_process";
|
|
13
|
+
import { existsSync, mkdirSync } from "fs";
|
|
14
|
+
import { platform } from "os";
|
|
15
|
+
import chalk from "chalk";
|
|
16
|
+
function openAuditDir() {
|
|
17
|
+
const dir = getAuditDir();
|
|
18
|
+
if (!existsSync(dir)) {
|
|
19
|
+
mkdirSync(dir, { recursive: true });
|
|
20
|
+
console.log(chalk.yellow(`Created audit log directory: ${dir}`));
|
|
21
|
+
}
|
|
22
|
+
const os = platform();
|
|
23
|
+
switch (os) {
|
|
24
|
+
case "darwin": {
|
|
25
|
+
execSync(`open "${dir}"`);
|
|
26
|
+
break;
|
|
27
|
+
}
|
|
28
|
+
case "win32": {
|
|
29
|
+
execSync(`explorer "${dir}"`);
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
default: {
|
|
33
|
+
execSync(`xdg-open "${dir}"`);
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
console.log(chalk.green(`Opened: ${dir}`));
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// src/commands/auditOpenCommand.ts
|
|
41
|
+
var auditOpenCommand = {
|
|
42
|
+
command: "open",
|
|
43
|
+
describe: "Open the audit log directory in Finder / File Explorer",
|
|
44
|
+
handler: () => {
|
|
45
|
+
openAuditDir();
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
export {
|
|
49
|
+
auditOpenCommand
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=auditOpenCommand.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/actions/audit/auditPaths.ts","../../src/actions/audit/openAuditDir.ts","../../src/commands/auditOpenCommand.ts"],"sourcesContent":["import { homedir } from 'node:os'\nimport path from 'node:path'\n\nexport type AuditProvider = 'claude' | 'codex'\n\nexport function getAuditRootDir(): string {\n return path.join(homedir(), '.aries', 'audit-logs')\n}\n\nexport function getAuditDir(provider?: AuditProvider): string {\n return provider ? path.join(getAuditRootDir(), provider) : getAuditRootDir()\n}\n\nexport function getAuditSearchDirs(): string[] {\n return [\n getAuditDir('claude'),\n getAuditDir('codex'),\n getAuditRootDir(),\n ]\n}\n","import { execSync } from 'node:child_process'\nimport { existsSync, mkdirSync } from 'node:fs'\nimport { platform } from 'node:os'\n\nimport chalk from 'chalk'\n\nimport { getAuditDir } from './auditPaths.ts'\n\nexport function openAuditDir(): void {\n const dir = getAuditDir()\n\n if (!existsSync(dir)) {\n mkdirSync(dir, { recursive: true })\n console.log(chalk.yellow(`Created audit log directory: ${dir}`))\n }\n\n const os = platform()\n switch (os) {\n case 'darwin': {\n execSync(`open \"${dir}\"`)\n break\n }\n case 'win32': {\n execSync(`explorer \"${dir}\"`)\n break\n }\n default: {\n execSync(`xdg-open \"${dir}\"`)\n break\n }\n }\n\n console.log(chalk.green(`Opened: ${dir}`))\n}\n","import type { CommandModule } from 'yargs'\n\nimport { openAuditDir } from '../actions/audit/index.ts'\n\nexport const auditOpenCommand: CommandModule = {\n command: 'open',\n describe: 'Open the audit log directory in Finder / File Explorer',\n handler: () => {\n openAuditDir()\n },\n}\n"],"mappings":";AAAA,SAAS,eAAe;AACxB,OAAO,UAAU;AAIV,SAAS,kBAA0B;AACxC,SAAO,KAAK,KAAK,QAAQ,GAAG,UAAU,YAAY;AACpD;AAEO,SAAS,YAAY,UAAkC;AAC5D,SAAO,WAAW,KAAK,KAAK,gBAAgB,GAAG,QAAQ,IAAI,gBAAgB;AAC7E;;;ACXA,SAAS,gBAAgB;AACzB,SAAS,YAAY,iBAAiB;AACtC,SAAS,gBAAgB;AAEzB,OAAO,WAAW;AAIX,SAAS,eAAqB;AACnC,QAAM,MAAM,YAAY;AAExB,MAAI,CAAC,WAAW,GAAG,GAAG;AACpB,cAAU,KAAK,EAAE,WAAW,KAAK,CAAC;AAClC,YAAQ,IAAI,MAAM,OAAO,gCAAgC,GAAG,EAAE,CAAC;AAAA,EACjE;AAEA,QAAM,KAAK,SAAS;AACpB,UAAQ,IAAI;AAAA,IACV,KAAK,UAAU;AACb,eAAS,SAAS,GAAG,GAAG;AACxB;AAAA,IACF;AAAA,IACA,KAAK,SAAS;AACZ,eAAS,aAAa,GAAG,GAAG;AAC5B;AAAA,IACF;AAAA,IACA,SAAS;AACP,eAAS,aAAa,GAAG,GAAG;AAC5B;AAAA,IACF;AAAA,EACF;AAEA,UAAQ,IAAI,MAAM,MAAM,WAAW,GAAG,EAAE,CAAC;AAC3C;;;AC7BO,IAAM,mBAAkC;AAAA,EAC7C,SAAS;AAAA,EACT,UAAU;AAAA,EACV,SAAS,MAAM;AACb,iBAAa;AAAA,EACf;AACF;","names":[]}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
// src/actions/audit/auditPaths.ts
|
|
2
|
+
import { homedir } from "os";
|
|
3
|
+
import path from "path";
|
|
4
|
+
function getAuditRootDir() {
|
|
5
|
+
return path.join(homedir(), ".aries", "audit-logs");
|
|
6
|
+
}
|
|
7
|
+
function getAuditDir(provider) {
|
|
8
|
+
return provider ? path.join(getAuditRootDir(), provider) : getAuditRootDir();
|
|
9
|
+
}
|
|
10
|
+
function getAuditSearchDirs() {
|
|
11
|
+
return [
|
|
12
|
+
getAuditDir("claude"),
|
|
13
|
+
getAuditDir("codex"),
|
|
14
|
+
getAuditRootDir()
|
|
15
|
+
];
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// src/actions/audit/searchAudit.ts
|
|
19
|
+
import {
|
|
20
|
+
existsSync,
|
|
21
|
+
readdirSync,
|
|
22
|
+
readFileSync
|
|
23
|
+
} from "fs";
|
|
24
|
+
import path2 from "path";
|
|
25
|
+
import chalk from "chalk";
|
|
26
|
+
function searchAudit(query, date, limit = 50) {
|
|
27
|
+
const auditDirs = getAuditSearchDirs().filter((dir) => existsSync(dir));
|
|
28
|
+
if (auditDirs.length === 0) {
|
|
29
|
+
console.log(chalk.yellow("No audit logs found."));
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const dates = date ? [date] : [...new Set(
|
|
33
|
+
auditDirs.flatMap((auditDir) => readdirSync(auditDir).filter((d) => /^\d{4}-\d{2}-\d{2}$/.test(d)))
|
|
34
|
+
)].toSorted((a, b) => a.localeCompare(b)).toReversed();
|
|
35
|
+
const lowerQuery = query.toLowerCase();
|
|
36
|
+
let matchCount = 0;
|
|
37
|
+
for (const d of dates) {
|
|
38
|
+
const files = auditDirs.flatMap((auditDir) => {
|
|
39
|
+
const dayDir = path2.join(auditDir, d);
|
|
40
|
+
if (!existsSync(dayDir)) return [];
|
|
41
|
+
return readdirSync(dayDir).filter((f) => f.endsWith(".jsonl")).map((file) => path2.join(dayDir, file));
|
|
42
|
+
});
|
|
43
|
+
for (const file of files) {
|
|
44
|
+
const content = readFileSync(file, "utf8").trim();
|
|
45
|
+
if (!content) continue;
|
|
46
|
+
for (const line of content.split("\n")) {
|
|
47
|
+
if (!line.toLowerCase().includes(lowerQuery)) continue;
|
|
48
|
+
try {
|
|
49
|
+
const entry = JSON.parse(line);
|
|
50
|
+
const time = (entry.timestamp ?? "").slice(0, 19);
|
|
51
|
+
const event = entry.event ?? "unknown";
|
|
52
|
+
const snippet = JSON.stringify(entry.data).slice(0, 150);
|
|
53
|
+
console.log(`${chalk.gray(time)} ${chalk.cyan((entry.sessionId ?? "").slice(0, 8))} ${chalk.yellow(event)} ${snippet}`);
|
|
54
|
+
matchCount++;
|
|
55
|
+
if (matchCount >= limit) {
|
|
56
|
+
console.log(chalk.gray(`
|
|
57
|
+
... showing first ${limit} matches`));
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
} catch {
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (matchCount === 0) {
|
|
66
|
+
console.log(chalk.yellow(`No matches found for: ${query}`));
|
|
67
|
+
} else {
|
|
68
|
+
console.log(chalk.gray(`
|
|
69
|
+
${matchCount} match${matchCount === 1 ? "" : "es"} found`));
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// src/commands/auditSearchCommand.ts
|
|
74
|
+
var auditSearchCommand = {
|
|
75
|
+
command: "search <query>",
|
|
76
|
+
describe: "Search audit logs",
|
|
77
|
+
builder: (yargs) => yargs.positional("query", {
|
|
78
|
+
type: "string",
|
|
79
|
+
describe: "Search text",
|
|
80
|
+
demandOption: true
|
|
81
|
+
}).option("date", {
|
|
82
|
+
alias: "d",
|
|
83
|
+
type: "string",
|
|
84
|
+
describe: "Filter by date (YYYY-MM-DD)"
|
|
85
|
+
}).option("limit", {
|
|
86
|
+
alias: "n",
|
|
87
|
+
type: "number",
|
|
88
|
+
default: 50,
|
|
89
|
+
describe: "Max results"
|
|
90
|
+
}),
|
|
91
|
+
handler: (argv) => {
|
|
92
|
+
searchAudit(argv.query, argv.date, argv.limit);
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
export {
|
|
96
|
+
auditSearchCommand
|
|
97
|
+
};
|
|
98
|
+
//# sourceMappingURL=auditSearchCommand.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/actions/audit/auditPaths.ts","../../src/actions/audit/searchAudit.ts","../../src/commands/auditSearchCommand.ts"],"sourcesContent":["import { homedir } from 'node:os'\nimport path from 'node:path'\n\nexport type AuditProvider = 'claude' | 'codex'\n\nexport function getAuditRootDir(): string {\n return path.join(homedir(), '.aries', 'audit-logs')\n}\n\nexport function getAuditDir(provider?: AuditProvider): string {\n return provider ? path.join(getAuditRootDir(), provider) : getAuditRootDir()\n}\n\nexport function getAuditSearchDirs(): string[] {\n return [\n getAuditDir('claude'),\n getAuditDir('codex'),\n getAuditRootDir(),\n ]\n}\n","import {\n existsSync, readdirSync, readFileSync,\n} from 'node:fs'\nimport path from 'node:path'\n\nimport chalk from 'chalk'\n\nimport { getAuditSearchDirs } from './auditPaths.ts'\n\ninterface AuditEntryParsed {\n data?: Record<string, unknown>\n event?: string\n schema?: string\n sessionId?: string\n timestamp?: string\n}\n\nexport function searchAudit(query: string, date?: string, limit = 50): void {\n const auditDirs = getAuditSearchDirs().filter(dir => existsSync(dir))\n if (auditDirs.length === 0) {\n console.log(chalk.yellow('No audit logs found.'))\n return\n }\n\n const dates = date\n ? [date]\n : [...new Set(\n auditDirs.flatMap(auditDir =>\n readdirSync(auditDir).filter(d => /^\\d{4}-\\d{2}-\\d{2}$/.test(d))),\n )]\n .toSorted((a, b) => a.localeCompare(b))\n .toReversed()\n\n const lowerQuery = query.toLowerCase()\n let matchCount = 0\n\n for (const d of dates) {\n const files = auditDirs.flatMap((auditDir) => {\n const dayDir = path.join(auditDir, d)\n if (!existsSync(dayDir)) return []\n return readdirSync(dayDir)\n .filter(f => f.endsWith('.jsonl'))\n .map(file => path.join(dayDir, file))\n })\n\n for (const file of files) {\n const content = readFileSync(file, 'utf8').trim()\n if (!content) continue\n\n for (const line of content.split('\\n')) {\n if (!line.toLowerCase().includes(lowerQuery)) continue\n\n try {\n const entry = JSON.parse(line) as AuditEntryParsed\n const time = (entry.timestamp ?? '').slice(0, 19)\n const event = entry.event ?? 'unknown'\n\n const snippet = JSON.stringify(entry.data).slice(0, 150)\n console.log(`${chalk.gray(time)} ${chalk.cyan((entry.sessionId ?? '').slice(0, 8))} ${chalk.yellow(event)} ${snippet}`)\n\n matchCount++\n if (matchCount >= limit) {\n console.log(chalk.gray(`\\n... showing first ${limit} matches`))\n return\n }\n } catch {\n // skip malformed\n }\n }\n }\n }\n\n if (matchCount === 0) {\n console.log(chalk.yellow(`No matches found for: ${query}`))\n } else {\n console.log(chalk.gray(`\\n${matchCount} match${matchCount === 1 ? '' : 'es'} found`))\n }\n}\n","import type { CommandModule } from 'yargs'\n\nimport { searchAudit } from '../actions/audit/index.ts'\n\nexport const auditSearchCommand: CommandModule = {\n command: 'search <query>',\n describe: 'Search audit logs',\n builder: yargs =>\n yargs\n .positional('query', {\n type: 'string',\n describe: 'Search text',\n demandOption: true,\n })\n .option('date', {\n alias: 'd',\n type: 'string',\n describe: 'Filter by date (YYYY-MM-DD)',\n })\n .option('limit', {\n alias: 'n',\n type: 'number',\n default: 50,\n describe: 'Max results',\n }),\n handler: (argv) => {\n searchAudit(argv.query as string, argv.date as string | undefined, argv.limit as number)\n },\n}\n"],"mappings":"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","names":["path","path"]}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
// src/actions/audit/auditPaths.ts
|
|
2
|
+
import { homedir } from "os";
|
|
3
|
+
import path from "path";
|
|
4
|
+
function getAuditRootDir() {
|
|
5
|
+
return path.join(homedir(), ".aries", "audit-logs");
|
|
6
|
+
}
|
|
7
|
+
function getAuditDir(provider) {
|
|
8
|
+
return provider ? path.join(getAuditRootDir(), provider) : getAuditRootDir();
|
|
9
|
+
}
|
|
10
|
+
function getAuditSearchDirs() {
|
|
11
|
+
return [
|
|
12
|
+
getAuditDir("claude"),
|
|
13
|
+
getAuditDir("codex"),
|
|
14
|
+
getAuditRootDir()
|
|
15
|
+
];
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// src/actions/audit/showSession.ts
|
|
19
|
+
import {
|
|
20
|
+
existsSync,
|
|
21
|
+
readdirSync,
|
|
22
|
+
readFileSync
|
|
23
|
+
} from "fs";
|
|
24
|
+
import path2 from "path";
|
|
25
|
+
import chalk from "chalk";
|
|
26
|
+
function findSessionFile(sessionId) {
|
|
27
|
+
const auditDirs = getAuditSearchDirs().filter((dir) => existsSync(dir));
|
|
28
|
+
if (auditDirs.length === 0) return void 0;
|
|
29
|
+
const dates = [...new Set(
|
|
30
|
+
auditDirs.flatMap((auditDir) => readdirSync(auditDir).filter((d) => /^\d{4}-\d{2}-\d{2}$/.test(d)))
|
|
31
|
+
)].toSorted((a, b) => a.localeCompare(b)).toReversed();
|
|
32
|
+
for (const date of dates) {
|
|
33
|
+
for (const auditDir of auditDirs) {
|
|
34
|
+
const dayDir = path2.join(auditDir, date);
|
|
35
|
+
if (!existsSync(dayDir)) continue;
|
|
36
|
+
const files = readdirSync(dayDir).filter((f) => f.includes(sessionId) && f.endsWith(".jsonl"));
|
|
37
|
+
if (files.length > 0) return path2.join(dayDir, files[0]);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return void 0;
|
|
41
|
+
}
|
|
42
|
+
function formatSessionStart(time, entry) {
|
|
43
|
+
const version = entry.ai?.version ? ` v${entry.ai.version}` : "";
|
|
44
|
+
const mode = entry.data?.permissionMode ? ` mode=${entry.data.permissionMode}` : "";
|
|
45
|
+
return `${chalk.gray(time)} ${chalk.blue("SESSION START")}${version}${mode}`;
|
|
46
|
+
}
|
|
47
|
+
function formatEntry(entry) {
|
|
48
|
+
const time = (entry.timestamp ?? "").slice(11, 23);
|
|
49
|
+
const event = entry.event ?? "unknown";
|
|
50
|
+
const data = entry.data;
|
|
51
|
+
switch (event) {
|
|
52
|
+
case "SessionStart": {
|
|
53
|
+
return formatSessionStart(time, entry);
|
|
54
|
+
}
|
|
55
|
+
case "UserPromptSubmit": {
|
|
56
|
+
return `${chalk.gray(time)} ${chalk.green("PROMPT")} ${String(data?.prompt ?? "").slice(0, 200)}`;
|
|
57
|
+
}
|
|
58
|
+
case "PostToolUse": {
|
|
59
|
+
return `${chalk.gray(time)} ${chalk.yellow("TOOL")} ${chalk.white(String(data?.toolName ?? ""))} ${chalk.gray(String(data?.toolInput ?? "").slice(0, 120))}`;
|
|
60
|
+
}
|
|
61
|
+
case "Stop": {
|
|
62
|
+
return `${chalk.gray(time)} ${chalk.magenta("RESPONSE")} ${String(data?.response ?? "").slice(0, 200)}`;
|
|
63
|
+
}
|
|
64
|
+
default: {
|
|
65
|
+
return `${chalk.gray(time)} ${event} ${JSON.stringify(data)}`;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function showSession(sessionId, format) {
|
|
70
|
+
const filePath = findSessionFile(sessionId);
|
|
71
|
+
if (!filePath) {
|
|
72
|
+
console.log(chalk.red(`No audit log found for session: ${sessionId}`));
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const content = readFileSync(filePath, "utf8").trim();
|
|
76
|
+
if (!content) {
|
|
77
|
+
console.log(chalk.yellow("Session log is empty."));
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
const lines = content.split("\n");
|
|
81
|
+
if (format === "json") {
|
|
82
|
+
for (const line of lines) {
|
|
83
|
+
console.log(line);
|
|
84
|
+
}
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
console.log(chalk.cyan(`Session: ${sessionId}`));
|
|
88
|
+
console.log(chalk.cyan(`File: ${filePath}`));
|
|
89
|
+
console.log(chalk.cyan(`Entries: ${lines.length}`));
|
|
90
|
+
console.log();
|
|
91
|
+
for (const line of lines) {
|
|
92
|
+
try {
|
|
93
|
+
const entry = JSON.parse(line);
|
|
94
|
+
console.log(formatEntry(entry));
|
|
95
|
+
} catch {
|
|
96
|
+
console.log(chalk.red(` [malformed] ${line.slice(0, 80)}`));
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// src/commands/auditShowCommand.ts
|
|
102
|
+
var auditShowCommand = {
|
|
103
|
+
command: "show <session-id>",
|
|
104
|
+
describe: "Show audit trail for a session",
|
|
105
|
+
builder: (yargs) => yargs.positional("session-id", {
|
|
106
|
+
type: "string",
|
|
107
|
+
describe: "Session ID (or prefix)",
|
|
108
|
+
demandOption: true
|
|
109
|
+
}).option("format", {
|
|
110
|
+
alias: "f",
|
|
111
|
+
type: "string",
|
|
112
|
+
choices: ["text", "json"],
|
|
113
|
+
default: "text",
|
|
114
|
+
describe: "Output format"
|
|
115
|
+
}),
|
|
116
|
+
handler: (argv) => {
|
|
117
|
+
showSession(argv["session-id"], argv.format);
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
export {
|
|
121
|
+
auditShowCommand
|
|
122
|
+
};
|
|
123
|
+
//# sourceMappingURL=auditShowCommand.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/actions/audit/auditPaths.ts","../../src/actions/audit/showSession.ts","../../src/commands/auditShowCommand.ts"],"sourcesContent":["import { homedir } from 'node:os'\nimport path from 'node:path'\n\nexport type AuditProvider = 'claude' | 'codex'\n\nexport function getAuditRootDir(): string {\n return path.join(homedir(), '.aries', 'audit-logs')\n}\n\nexport function getAuditDir(provider?: AuditProvider): string {\n return provider ? path.join(getAuditRootDir(), provider) : getAuditRootDir()\n}\n\nexport function getAuditSearchDirs(): string[] {\n return [\n getAuditDir('claude'),\n getAuditDir('codex'),\n getAuditRootDir(),\n ]\n}\n","import {\n existsSync, readdirSync, readFileSync,\n} from 'node:fs'\nimport path from 'node:path'\n\nimport chalk from 'chalk'\n\nimport { getAuditSearchDirs } from './auditPaths.ts'\n\ninterface AiMetaParsed {\n entrypoint?: string\n ide?: string\n kind?: string\n model?: string\n permissionMode?: string\n product?: string\n provider?: string\n restrictions?: Record<string, boolean>\n version?: string\n}\n\ninterface AuditEntryData {\n permissionMode?: string\n prompt?: string\n response?: string\n toolInput?: string\n toolName?: string\n}\n\ninterface AuditEntryParsed {\n ai?: AiMetaParsed\n data?: AuditEntryData\n event?: string\n schema?: string\n sessionId?: string\n timestamp?: string\n}\n\nfunction findSessionFile(sessionId: string): string | undefined {\n const auditDirs = getAuditSearchDirs().filter(dir => existsSync(dir))\n if (auditDirs.length === 0) return undefined\n\n const dates = [...new Set(\n auditDirs.flatMap(auditDir =>\n readdirSync(auditDir).filter(d => /^\\d{4}-\\d{2}-\\d{2}$/.test(d))),\n )]\n .toSorted((a, b) => a.localeCompare(b))\n .toReversed()\n\n for (const date of dates) {\n for (const auditDir of auditDirs) {\n const dayDir = path.join(auditDir, date)\n if (!existsSync(dayDir)) continue\n const files = readdirSync(dayDir).filter(f => f.includes(sessionId) && f.endsWith('.jsonl'))\n if (files.length > 0) return path.join(dayDir, files[0])\n }\n }\n\n return undefined\n}\n\nfunction formatSessionStart(time: string, entry: AuditEntryParsed): string {\n const version = entry.ai?.version ? ` v${entry.ai.version}` : ''\n const mode = entry.data?.permissionMode ? ` mode=${entry.data.permissionMode}` : ''\n return `${chalk.gray(time)} ${chalk.blue('SESSION START')}${version}${mode}`\n}\n\nfunction formatEntry(entry: AuditEntryParsed): string {\n const time = (entry.timestamp ?? '').slice(11, 23)\n const event = entry.event ?? 'unknown'\n const data = entry.data\n\n switch (event) {\n case 'SessionStart': {\n return formatSessionStart(time, entry)\n }\n case 'UserPromptSubmit': {\n return `${chalk.gray(time)} ${chalk.green('PROMPT')} ${String(data?.prompt ?? '').slice(0, 200)}`\n }\n case 'PostToolUse': {\n return `${chalk.gray(time)} ${chalk.yellow('TOOL')} ${chalk.white(String(data?.toolName ?? ''))} ${chalk.gray(String(data?.toolInput ?? '').slice(0, 120))}`\n }\n case 'Stop': {\n return `${chalk.gray(time)} ${chalk.magenta('RESPONSE')} ${String(data?.response ?? '').slice(0, 200)}`\n }\n default: {\n return `${chalk.gray(time)} ${event} ${JSON.stringify(data)}`\n }\n }\n}\n\nexport function showSession(sessionId: string, format: string): void {\n const filePath = findSessionFile(sessionId)\n if (!filePath) {\n console.log(chalk.red(`No audit log found for session: ${sessionId}`))\n return\n }\n\n const content = readFileSync(filePath, 'utf8').trim()\n if (!content) {\n console.log(chalk.yellow('Session log is empty.'))\n return\n }\n\n const lines = content.split('\\n')\n\n if (format === 'json') {\n for (const line of lines) {\n console.log(line)\n }\n return\n }\n\n console.log(chalk.cyan(`Session: ${sessionId}`))\n console.log(chalk.cyan(`File: ${filePath}`))\n console.log(chalk.cyan(`Entries: ${lines.length}`))\n console.log()\n\n for (const line of lines) {\n try {\n const entry = JSON.parse(line) as AuditEntryParsed\n console.log(formatEntry(entry))\n } catch {\n console.log(chalk.red(` [malformed] ${line.slice(0, 80)}`))\n }\n }\n}\n","import type { CommandModule } from 'yargs'\n\nimport { showSession } from '../actions/audit/index.ts'\n\nexport const auditShowCommand: CommandModule = {\n command: 'show <session-id>',\n describe: 'Show audit trail for a session',\n builder: yargs =>\n yargs\n .positional('session-id', {\n type: 'string',\n describe: 'Session ID (or prefix)',\n demandOption: true,\n })\n .option('format', {\n alias: 'f',\n type: 'string',\n choices: ['text', 'json'] as const,\n default: 'text',\n describe: 'Output format',\n }),\n handler: (argv) => {\n showSession(argv['session-id'] as string, argv.format as string)\n },\n}\n"],"mappings":"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","names":["path","path"]}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// src/actions/audit/auditPaths.ts
|
|
2
|
+
import { homedir } from "os";
|
|
3
|
+
import path from "path";
|
|
4
|
+
function getAuditRootDir() {
|
|
5
|
+
return path.join(homedir(), ".aries", "audit-logs");
|
|
6
|
+
}
|
|
7
|
+
function getAuditDir(provider) {
|
|
8
|
+
return provider ? path.join(getAuditRootDir(), provider) : getAuditRootDir();
|
|
9
|
+
}
|
|
10
|
+
function getAuditSearchDirs() {
|
|
11
|
+
return [
|
|
12
|
+
getAuditDir("claude"),
|
|
13
|
+
getAuditDir("codex"),
|
|
14
|
+
getAuditRootDir()
|
|
15
|
+
];
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// src/actions/audit/statusAudit.ts
|
|
19
|
+
import {
|
|
20
|
+
existsSync,
|
|
21
|
+
readdirSync,
|
|
22
|
+
readFileSync,
|
|
23
|
+
statSync
|
|
24
|
+
} from "fs";
|
|
25
|
+
import { homedir as homedir2 } from "os";
|
|
26
|
+
import path2 from "path";
|
|
27
|
+
import chalk from "chalk";
|
|
28
|
+
function getDirectorySize(dir) {
|
|
29
|
+
let size = 0;
|
|
30
|
+
if (!existsSync(dir)) return size;
|
|
31
|
+
for (const entry of readdirSync(dir)) {
|
|
32
|
+
const fullPath = path2.join(dir, entry);
|
|
33
|
+
const stat = statSync(fullPath);
|
|
34
|
+
size += stat.isDirectory() ? getDirectorySize(fullPath) : stat.size;
|
|
35
|
+
}
|
|
36
|
+
return size;
|
|
37
|
+
}
|
|
38
|
+
function formatBytes(bytes) {
|
|
39
|
+
if (bytes < 1024) return `${bytes} B`;
|
|
40
|
+
if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;
|
|
41
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
42
|
+
}
|
|
43
|
+
function countSessions(dir) {
|
|
44
|
+
if (!existsSync(dir)) return 0;
|
|
45
|
+
let count = 0;
|
|
46
|
+
for (const date of readdirSync(dir)) {
|
|
47
|
+
const dayDir = path2.join(dir, date);
|
|
48
|
+
const stat = statSync(dayDir);
|
|
49
|
+
if (stat.isDirectory()) {
|
|
50
|
+
count += readdirSync(dayDir).filter((f) => f.endsWith(".jsonl")).length;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return count;
|
|
54
|
+
}
|
|
55
|
+
function checkHooksInstalled() {
|
|
56
|
+
const settingsPath = path2.join(homedir2(), ".claude", "settings.json");
|
|
57
|
+
if (!existsSync(settingsPath)) return false;
|
|
58
|
+
try {
|
|
59
|
+
const settings = JSON.parse(readFileSync(settingsPath, "utf8"));
|
|
60
|
+
return settings.hooks != null;
|
|
61
|
+
} catch {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function statusAudit() {
|
|
66
|
+
const auditRootDir = getAuditRootDir();
|
|
67
|
+
const auditDirs = getAuditSearchDirs().filter((dir) => existsSync(dir));
|
|
68
|
+
console.log(chalk.cyan("Audit Plugin Status"));
|
|
69
|
+
console.log();
|
|
70
|
+
if (checkHooksInstalled()) {
|
|
71
|
+
console.log(` ${chalk.green("Hooks:")} configured in ~/.claude/settings.json`);
|
|
72
|
+
} else {
|
|
73
|
+
console.log(` ${chalk.red("Hooks:")} not installed (run: aries audit install)`);
|
|
74
|
+
}
|
|
75
|
+
console.log();
|
|
76
|
+
console.log(` ${chalk.gray("Log root:")} ${auditRootDir}`);
|
|
77
|
+
console.log(` ${chalk.gray("Claude logs:")} ${getAuditDir("claude")}`);
|
|
78
|
+
console.log(` ${chalk.gray("Codex logs:")} ${getAuditDir("codex")}`);
|
|
79
|
+
if (auditDirs.length > 0) {
|
|
80
|
+
const sessions = auditDirs.reduce((sum, dir) => sum + countSessions(dir), 0);
|
|
81
|
+
const size = auditDirs.reduce((sum, dir) => sum + getDirectorySize(dir), 0);
|
|
82
|
+
const dates = [...new Set(
|
|
83
|
+
auditDirs.flatMap((dir) => readdirSync(dir).filter((d) => /^\d{4}-\d{2}-\d{2}$/.test(d)))
|
|
84
|
+
)];
|
|
85
|
+
const sorted = dates.toSorted((a, b) => a.localeCompare(b));
|
|
86
|
+
console.log(` ${chalk.gray("Sessions:")} ${sessions}`);
|
|
87
|
+
console.log(` ${chalk.gray("Date range:")} ${sorted[0] ?? "none"} - ${sorted.at(-1) ?? "none"}`);
|
|
88
|
+
console.log(` ${chalk.gray("Disk usage:")} ${formatBytes(size)}`);
|
|
89
|
+
} else {
|
|
90
|
+
console.log(` ${chalk.gray("No logs yet")}`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// src/commands/auditStatusCommand.ts
|
|
95
|
+
var auditStatusCommand = {
|
|
96
|
+
command: "status",
|
|
97
|
+
describe: "Show audit plugin status and log statistics",
|
|
98
|
+
handler: () => {
|
|
99
|
+
statusAudit();
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
export {
|
|
103
|
+
auditStatusCommand
|
|
104
|
+
};
|
|
105
|
+
//# sourceMappingURL=auditStatusCommand.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/actions/audit/auditPaths.ts","../../src/actions/audit/statusAudit.ts","../../src/commands/auditStatusCommand.ts"],"sourcesContent":["import { homedir } from 'node:os'\nimport path from 'node:path'\n\nexport type AuditProvider = 'claude' | 'codex'\n\nexport function getAuditRootDir(): string {\n return path.join(homedir(), '.aries', 'audit-logs')\n}\n\nexport function getAuditDir(provider?: AuditProvider): string {\n return provider ? path.join(getAuditRootDir(), provider) : getAuditRootDir()\n}\n\nexport function getAuditSearchDirs(): string[] {\n return [\n getAuditDir('claude'),\n getAuditDir('codex'),\n getAuditRootDir(),\n ]\n}\n","import {\n existsSync, readdirSync, readFileSync, statSync,\n} from 'node:fs'\nimport { homedir } from 'node:os'\nimport path from 'node:path'\n\nimport chalk from 'chalk'\n\nimport {\n getAuditDir, getAuditRootDir, getAuditSearchDirs,\n} from './auditPaths.ts'\n\nfunction getDirectorySize(dir: string): number {\n let size = 0\n if (!existsSync(dir)) return size\n\n for (const entry of readdirSync(dir)) {\n const fullPath = path.join(dir, entry)\n const stat = statSync(fullPath)\n size += stat.isDirectory() ? getDirectorySize(fullPath) : stat.size\n }\n return size\n}\n\nfunction formatBytes(bytes: number): string {\n if (bytes < 1024) return `${bytes} B`\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`\n return `${(bytes / (1024 * 1024)).toFixed(1)} MB`\n}\n\nfunction countSessions(dir: string): number {\n if (!existsSync(dir)) return 0\n let count = 0\n for (const date of readdirSync(dir)) {\n const dayDir = path.join(dir, date)\n const stat = statSync(dayDir)\n if (stat.isDirectory()) {\n count += readdirSync(dayDir).filter(f => f.endsWith('.jsonl')).length\n }\n }\n return count\n}\n\nfunction checkHooksInstalled(): boolean {\n const settingsPath = path.join(homedir(), '.claude', 'settings.json')\n if (!existsSync(settingsPath)) return false\n try {\n const settings = JSON.parse(readFileSync(settingsPath, 'utf8')) as Record<string, unknown>\n return settings.hooks != null\n } catch {\n return false\n }\n}\n\nexport function statusAudit(): void {\n const auditRootDir = getAuditRootDir()\n const auditDirs = getAuditSearchDirs().filter(dir => existsSync(dir))\n\n console.log(chalk.cyan('Audit Plugin Status'))\n console.log()\n\n // Hook installation\n if (checkHooksInstalled()) {\n console.log(` ${chalk.green('Hooks:')} configured in ~/.claude/settings.json`)\n } else {\n console.log(` ${chalk.red('Hooks:')} not installed (run: aries audit install)`)\n }\n\n console.log()\n\n // Audit logs\n console.log(` ${chalk.gray('Log root:')} ${auditRootDir}`)\n console.log(` ${chalk.gray('Claude logs:')} ${getAuditDir('claude')}`)\n console.log(` ${chalk.gray('Codex logs:')} ${getAuditDir('codex')}`)\n\n if (auditDirs.length > 0) {\n const sessions = auditDirs.reduce((sum, dir) => sum + countSessions(dir), 0)\n const size = auditDirs.reduce((sum, dir) => sum + getDirectorySize(dir), 0)\n const dates = [...new Set(\n auditDirs.flatMap(dir => readdirSync(dir).filter(d => /^\\d{4}-\\d{2}-\\d{2}$/.test(d))),\n )]\n const sorted = dates.toSorted((a, b) => a.localeCompare(b))\n\n console.log(` ${chalk.gray('Sessions:')} ${sessions}`)\n console.log(` ${chalk.gray('Date range:')} ${sorted[0] ?? 'none'} - ${sorted.at(-1) ?? 'none'}`)\n console.log(` ${chalk.gray('Disk usage:')} ${formatBytes(size)}`)\n } else {\n console.log(` ${chalk.gray('No logs yet')}`)\n }\n}\n","import type { CommandModule } from 'yargs'\n\nimport { statusAudit } from '../actions/audit/index.ts'\n\nexport const auditStatusCommand: CommandModule = {\n command: 'status',\n describe: 'Show audit plugin status and log statistics',\n handler: () => {\n statusAudit()\n },\n}\n"],"mappings":"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","names":["homedir","path","path","homedir"]}
|