@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,77 @@
|
|
|
1
|
+
// src/actions/audit/searchAudit.ts
|
|
2
|
+
import {
|
|
3
|
+
existsSync,
|
|
4
|
+
readdirSync,
|
|
5
|
+
readFileSync
|
|
6
|
+
} from "fs";
|
|
7
|
+
import path2 from "path";
|
|
8
|
+
import chalk from "chalk";
|
|
9
|
+
|
|
10
|
+
// src/actions/audit/auditPaths.ts
|
|
11
|
+
import { homedir } from "os";
|
|
12
|
+
import path from "path";
|
|
13
|
+
function getAuditRootDir() {
|
|
14
|
+
return path.join(homedir(), ".aries", "audit-logs");
|
|
15
|
+
}
|
|
16
|
+
function getAuditDir(provider) {
|
|
17
|
+
return provider ? path.join(getAuditRootDir(), provider) : getAuditRootDir();
|
|
18
|
+
}
|
|
19
|
+
function getAuditSearchDirs() {
|
|
20
|
+
return [
|
|
21
|
+
getAuditDir("claude"),
|
|
22
|
+
getAuditDir("codex"),
|
|
23
|
+
getAuditRootDir()
|
|
24
|
+
];
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// src/actions/audit/searchAudit.ts
|
|
28
|
+
function searchAudit(query, date, limit = 50) {
|
|
29
|
+
const auditDirs = getAuditSearchDirs().filter((dir) => existsSync(dir));
|
|
30
|
+
if (auditDirs.length === 0) {
|
|
31
|
+
console.log(chalk.yellow("No audit logs found."));
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const dates = date ? [date] : [...new Set(
|
|
35
|
+
auditDirs.flatMap((auditDir) => readdirSync(auditDir).filter((d) => /^\d{4}-\d{2}-\d{2}$/.test(d)))
|
|
36
|
+
)].toSorted((a, b) => a.localeCompare(b)).toReversed();
|
|
37
|
+
const lowerQuery = query.toLowerCase();
|
|
38
|
+
let matchCount = 0;
|
|
39
|
+
for (const d of dates) {
|
|
40
|
+
const files = auditDirs.flatMap((auditDir) => {
|
|
41
|
+
const dayDir = path2.join(auditDir, d);
|
|
42
|
+
if (!existsSync(dayDir)) return [];
|
|
43
|
+
return readdirSync(dayDir).filter((f) => f.endsWith(".jsonl")).map((file) => path2.join(dayDir, file));
|
|
44
|
+
});
|
|
45
|
+
for (const file of files) {
|
|
46
|
+
const content = readFileSync(file, "utf8").trim();
|
|
47
|
+
if (!content) continue;
|
|
48
|
+
for (const line of content.split("\n")) {
|
|
49
|
+
if (!line.toLowerCase().includes(lowerQuery)) continue;
|
|
50
|
+
try {
|
|
51
|
+
const entry = JSON.parse(line);
|
|
52
|
+
const time = (entry.timestamp ?? "").slice(0, 19);
|
|
53
|
+
const event = entry.event ?? "unknown";
|
|
54
|
+
const snippet = JSON.stringify(entry.data).slice(0, 150);
|
|
55
|
+
console.log(`${chalk.gray(time)} ${chalk.cyan((entry.sessionId ?? "").slice(0, 8))} ${chalk.yellow(event)} ${snippet}`);
|
|
56
|
+
matchCount++;
|
|
57
|
+
if (matchCount >= limit) {
|
|
58
|
+
console.log(chalk.gray(`
|
|
59
|
+
... showing first ${limit} matches`));
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
} catch {
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
if (matchCount === 0) {
|
|
68
|
+
console.log(chalk.yellow(`No matches found for: ${query}`));
|
|
69
|
+
} else {
|
|
70
|
+
console.log(chalk.gray(`
|
|
71
|
+
${matchCount} match${matchCount === 1 ? "" : "es"} found`));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
export {
|
|
75
|
+
searchAudit
|
|
76
|
+
};
|
|
77
|
+
//# sourceMappingURL=searchAudit.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/audit/searchAudit.ts","../../../src/actions/audit/auditPaths.ts"],"sourcesContent":["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 { 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"],"mappings":";AAAA;AAAA,EACE;AAAA,EAAY;AAAA,EAAa;AAAA,OACpB;AACP,OAAOA,WAAU;AAEjB,OAAO,WAAW;;;ACLlB,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;AAEO,SAAS,qBAA+B;AAC7C,SAAO;AAAA,IACL,YAAY,QAAQ;AAAA,IACpB,YAAY,OAAO;AAAA,IACnB,gBAAgB;AAAA,EAClB;AACF;;;ADFO,SAAS,YAAY,OAAe,MAAe,QAAQ,IAAU;AAC1E,QAAM,YAAY,mBAAmB,EAAE,OAAO,SAAO,WAAW,GAAG,CAAC;AACpE,MAAI,UAAU,WAAW,GAAG;AAC1B,YAAQ,IAAI,MAAM,OAAO,sBAAsB,CAAC;AAChD;AAAA,EACF;AAEA,QAAM,QAAQ,OACV,CAAC,IAAI,IACL,CAAC,GAAG,IAAI;AAAA,IACN,UAAU,QAAQ,cAChB,YAAY,QAAQ,EAAE,OAAO,OAAK,sBAAsB,KAAK,CAAC,CAAC,CAAC;AAAA,EACpE,CAAC,EACE,SAAS,CAAC,GAAG,MAAM,EAAE,cAAc,CAAC,CAAC,EACrC,WAAW;AAElB,QAAM,aAAa,MAAM,YAAY;AACrC,MAAI,aAAa;AAEjB,aAAW,KAAK,OAAO;AACrB,UAAM,QAAQ,UAAU,QAAQ,CAAC,aAAa;AAC5C,YAAM,SAASC,MAAK,KAAK,UAAU,CAAC;AACpC,UAAI,CAAC,WAAW,MAAM,EAAG,QAAO,CAAC;AACjC,aAAO,YAAY,MAAM,EACtB,OAAO,OAAK,EAAE,SAAS,QAAQ,CAAC,EAChC,IAAI,UAAQA,MAAK,KAAK,QAAQ,IAAI,CAAC;AAAA,IACxC,CAAC;AAED,eAAW,QAAQ,OAAO;AACxB,YAAM,UAAU,aAAa,MAAM,MAAM,EAAE,KAAK;AAChD,UAAI,CAAC,QAAS;AAEd,iBAAW,QAAQ,QAAQ,MAAM,IAAI,GAAG;AACtC,YAAI,CAAC,KAAK,YAAY,EAAE,SAAS,UAAU,EAAG;AAE9C,YAAI;AACF,gBAAM,QAAQ,KAAK,MAAM,IAAI;AAC7B,gBAAM,QAAQ,MAAM,aAAa,IAAI,MAAM,GAAG,EAAE;AAChD,gBAAM,QAAQ,MAAM,SAAS;AAE7B,gBAAM,UAAU,KAAK,UAAU,MAAM,IAAI,EAAE,MAAM,GAAG,GAAG;AACvD,kBAAQ,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC,IAAI,MAAM,MAAM,MAAM,aAAa,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,OAAO,KAAK,CAAC,IAAI,OAAO,EAAE;AAEtH;AACA,cAAI,cAAc,OAAO;AACvB,oBAAQ,IAAI,MAAM,KAAK;AAAA,oBAAuB,KAAK,UAAU,CAAC;AAC9D;AAAA,UACF;AAAA,QACF,QAAQ;AAAA,QAER;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,MAAI,eAAe,GAAG;AACpB,YAAQ,IAAI,MAAM,OAAO,yBAAyB,KAAK,EAAE,CAAC;AAAA,EAC5D,OAAO;AACL,YAAQ,IAAI,MAAM,KAAK;AAAA,EAAK,UAAU,SAAS,eAAe,IAAI,KAAK,IAAI,QAAQ,CAAC;AAAA,EACtF;AACF;","names":["path","path"]}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// src/actions/audit/showAiMeta.ts
|
|
2
|
+
import { execSync } from "child_process";
|
|
3
|
+
import {
|
|
4
|
+
existsSync,
|
|
5
|
+
readdirSync,
|
|
6
|
+
readFileSync
|
|
7
|
+
} from "fs";
|
|
8
|
+
import { homedir } from "os";
|
|
9
|
+
import path from "path";
|
|
10
|
+
import { fileURLToPath } from "url";
|
|
11
|
+
import chalk from "chalk";
|
|
12
|
+
function getClientVersion() {
|
|
13
|
+
try {
|
|
14
|
+
const thisFile = fileURLToPath(import.meta.url);
|
|
15
|
+
const pkgDir = path.resolve(path.dirname(thisFile), "..", "..");
|
|
16
|
+
const pkg = JSON.parse(readFileSync(path.join(pkgDir, "package.json"), "utf8"));
|
|
17
|
+
return pkg.version;
|
|
18
|
+
} catch {
|
|
19
|
+
return void 0;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function getClaudeVersion() {
|
|
23
|
+
const execPath = process.env.CLAUDE_CODE_EXECPATH;
|
|
24
|
+
if (execPath) return path.basename(execPath);
|
|
25
|
+
try {
|
|
26
|
+
const output = execSync("claude --version", { encoding: "utf8", timeout: 5e3 }).trim();
|
|
27
|
+
const match = /^([\d.]+)/.exec(output);
|
|
28
|
+
return match?.[1];
|
|
29
|
+
} catch {
|
|
30
|
+
return void 0;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function getClaudeDir() {
|
|
34
|
+
return path.join(homedir(), ".claude");
|
|
35
|
+
}
|
|
36
|
+
function readRestrictions() {
|
|
37
|
+
try {
|
|
38
|
+
const raw = JSON.parse(readFileSync(path.join(getClaudeDir(), "policy-limits.json"), "utf8"));
|
|
39
|
+
if (!raw.restrictions) return void 0;
|
|
40
|
+
const result = {};
|
|
41
|
+
for (const [key, value] of Object.entries(raw.restrictions)) {
|
|
42
|
+
result[key] = value.allowed ?? false;
|
|
43
|
+
}
|
|
44
|
+
return Object.keys(result).length > 0 ? result : void 0;
|
|
45
|
+
} catch {
|
|
46
|
+
return void 0;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
function readIdeName() {
|
|
50
|
+
try {
|
|
51
|
+
const ideDir = path.join(getClaudeDir(), "ide");
|
|
52
|
+
if (!existsSync(ideDir)) return void 0;
|
|
53
|
+
const lockFile = readdirSync(ideDir).find((f) => f.endsWith(".lock"));
|
|
54
|
+
if (!lockFile) return void 0;
|
|
55
|
+
const content = JSON.parse(readFileSync(path.join(ideDir, lockFile), "utf8"));
|
|
56
|
+
return content.ideName;
|
|
57
|
+
} catch {
|
|
58
|
+
return void 0;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
var DYNAMIC_FIELDS = /* @__PURE__ */ new Set(["kind", "model", "permissionMode"]);
|
|
62
|
+
function printSection(label, entries) {
|
|
63
|
+
console.log(chalk.cyan(label));
|
|
64
|
+
for (const [key, value] of Object.entries(entries)) {
|
|
65
|
+
if (value === void 0) {
|
|
66
|
+
const fallback = DYNAMIC_FIELDS.has(key) ? chalk.gray("<dynamic>") : chalk.gray("unknown");
|
|
67
|
+
console.log(` ${chalk.white(key)}: ${fallback}`);
|
|
68
|
+
} else if (typeof value === "object" && value !== null) {
|
|
69
|
+
console.log(` ${chalk.white(key)}:`);
|
|
70
|
+
for (const [k, v] of Object.entries(value)) {
|
|
71
|
+
console.log(` ${chalk.white(k)}: ${chalk.green(String(v))}`);
|
|
72
|
+
}
|
|
73
|
+
} else {
|
|
74
|
+
console.log(` ${chalk.white(key)}: ${chalk.green(typeof value === "string" ? value : JSON.stringify(value))}`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
function showAiMeta(json) {
|
|
79
|
+
const ai = {
|
|
80
|
+
entrypoint: process.env.CLAUDE_CODE_ENTRYPOINT,
|
|
81
|
+
ide: readIdeName(),
|
|
82
|
+
kind: void 0,
|
|
83
|
+
model: void 0,
|
|
84
|
+
permissionMode: void 0,
|
|
85
|
+
product: "claude-code",
|
|
86
|
+
provider: "anthropic",
|
|
87
|
+
restrictions: readRestrictions(),
|
|
88
|
+
version: getClaudeVersion()
|
|
89
|
+
};
|
|
90
|
+
const client = {
|
|
91
|
+
name: "@xylabs/aries-audit-plugin",
|
|
92
|
+
version: getClientVersion()
|
|
93
|
+
};
|
|
94
|
+
if (json) {
|
|
95
|
+
console.log(JSON.stringify({ ai, client }, null, 2));
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
printSection("AI", ai);
|
|
99
|
+
console.log();
|
|
100
|
+
printSection("Client", client);
|
|
101
|
+
}
|
|
102
|
+
export {
|
|
103
|
+
showAiMeta
|
|
104
|
+
};
|
|
105
|
+
//# sourceMappingURL=showAiMeta.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/audit/showAiMeta.ts"],"sourcesContent":["import { execSync } from 'node:child_process'\nimport {\n existsSync, readdirSync, readFileSync,\n} from 'node:fs'\nimport { homedir } from 'node:os'\nimport path from 'node:path'\nimport { fileURLToPath } from 'node:url'\n\nimport chalk from 'chalk'\n\nfunction getClientVersion(): string | undefined {\n try {\n const thisFile = fileURLToPath(import.meta.url)\n const pkgDir = path.resolve(path.dirname(thisFile), '..', '..')\n const pkg = JSON.parse(readFileSync(path.join(pkgDir, 'package.json'), 'utf8')) as { version?: string }\n return pkg.version\n } catch {\n return undefined\n }\n}\n\nfunction getClaudeVersion(): string | undefined {\n const execPath = process.env.CLAUDE_CODE_EXECPATH\n if (execPath) return path.basename(execPath)\n try {\n const output = execSync('claude --version', { encoding: 'utf8', timeout: 5000 }).trim()\n const match = /^([\\d.]+)/.exec(output)\n return match?.[1]\n } catch {\n return undefined\n }\n}\n\nfunction getClaudeDir(): string {\n return path.join(homedir(), '.claude')\n}\n\nfunction readRestrictions(): Record<string, boolean> | undefined {\n try {\n const raw = JSON.parse(readFileSync(path.join(getClaudeDir(), 'policy-limits.json'), 'utf8')) as {\n restrictions?: Record<string, { allowed?: boolean }>\n }\n if (!raw.restrictions) return undefined\n const result: Record<string, boolean> = {}\n for (const [key, value] of Object.entries(raw.restrictions)) {\n result[key] = value.allowed ?? false\n }\n return Object.keys(result).length > 0 ? result : undefined\n } catch {\n return undefined\n }\n}\n\nfunction readIdeName(): string | undefined {\n try {\n const ideDir = path.join(getClaudeDir(), 'ide')\n if (!existsSync(ideDir)) return undefined\n const lockFile = readdirSync(ideDir).find(f => f.endsWith('.lock'))\n if (!lockFile) return undefined\n const content = JSON.parse(readFileSync(path.join(ideDir, lockFile), 'utf8')) as { ideName?: string }\n return content.ideName\n } catch {\n return undefined\n }\n}\n\nconst DYNAMIC_FIELDS = new Set(['kind', 'model', 'permissionMode'])\n\nfunction printSection(label: string, entries: Record<string, unknown>): void {\n console.log(chalk.cyan(label))\n for (const [key, value] of Object.entries(entries)) {\n if (value === undefined) {\n const fallback = DYNAMIC_FIELDS.has(key) ? chalk.gray('<dynamic>') : chalk.gray('unknown')\n console.log(` ${chalk.white(key)}: ${fallback}`)\n } else if (typeof value === 'object' && value !== null) {\n console.log(` ${chalk.white(key)}:`)\n for (const [k, v] of Object.entries(value)) {\n console.log(` ${chalk.white(k)}: ${chalk.green(String(v))}`)\n }\n } else {\n console.log(` ${chalk.white(key)}: ${chalk.green(typeof value === 'string' ? value : JSON.stringify(value))}`)\n }\n }\n}\n\nexport function showAiMeta(json: boolean): void {\n const ai: Record<string, unknown> = {\n entrypoint: process.env.CLAUDE_CODE_ENTRYPOINT,\n ide: readIdeName(),\n kind: undefined,\n model: undefined,\n permissionMode: undefined,\n product: 'claude-code',\n provider: 'anthropic',\n restrictions: readRestrictions(),\n version: getClaudeVersion(),\n }\n\n const client: Record<string, string | undefined> = {\n name: '@xylabs/aries-audit-plugin',\n version: getClientVersion(),\n }\n\n if (json) {\n console.log(JSON.stringify({ ai, client }, null, 2))\n return\n }\n\n printSection('AI', ai)\n console.log()\n printSection('Client', client)\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// src/actions/audit/showSession.ts
|
|
2
|
+
import {
|
|
3
|
+
existsSync,
|
|
4
|
+
readdirSync,
|
|
5
|
+
readFileSync
|
|
6
|
+
} from "fs";
|
|
7
|
+
import path2 from "path";
|
|
8
|
+
import chalk from "chalk";
|
|
9
|
+
|
|
10
|
+
// src/actions/audit/auditPaths.ts
|
|
11
|
+
import { homedir } from "os";
|
|
12
|
+
import path from "path";
|
|
13
|
+
function getAuditRootDir() {
|
|
14
|
+
return path.join(homedir(), ".aries", "audit-logs");
|
|
15
|
+
}
|
|
16
|
+
function getAuditDir(provider) {
|
|
17
|
+
return provider ? path.join(getAuditRootDir(), provider) : getAuditRootDir();
|
|
18
|
+
}
|
|
19
|
+
function getAuditSearchDirs() {
|
|
20
|
+
return [
|
|
21
|
+
getAuditDir("claude"),
|
|
22
|
+
getAuditDir("codex"),
|
|
23
|
+
getAuditRootDir()
|
|
24
|
+
];
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// src/actions/audit/showSession.ts
|
|
28
|
+
function findSessionFile(sessionId) {
|
|
29
|
+
const auditDirs = getAuditSearchDirs().filter((dir) => existsSync(dir));
|
|
30
|
+
if (auditDirs.length === 0) return void 0;
|
|
31
|
+
const dates = [...new Set(
|
|
32
|
+
auditDirs.flatMap((auditDir) => readdirSync(auditDir).filter((d) => /^\d{4}-\d{2}-\d{2}$/.test(d)))
|
|
33
|
+
)].toSorted((a, b) => a.localeCompare(b)).toReversed();
|
|
34
|
+
for (const date of dates) {
|
|
35
|
+
for (const auditDir of auditDirs) {
|
|
36
|
+
const dayDir = path2.join(auditDir, date);
|
|
37
|
+
if (!existsSync(dayDir)) continue;
|
|
38
|
+
const files = readdirSync(dayDir).filter((f) => f.includes(sessionId) && f.endsWith(".jsonl"));
|
|
39
|
+
if (files.length > 0) return path2.join(dayDir, files[0]);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return void 0;
|
|
43
|
+
}
|
|
44
|
+
function formatSessionStart(time, entry) {
|
|
45
|
+
const version = entry.ai?.version ? ` v${entry.ai.version}` : "";
|
|
46
|
+
const mode = entry.data?.permissionMode ? ` mode=${entry.data.permissionMode}` : "";
|
|
47
|
+
return `${chalk.gray(time)} ${chalk.blue("SESSION START")}${version}${mode}`;
|
|
48
|
+
}
|
|
49
|
+
function formatEntry(entry) {
|
|
50
|
+
const time = (entry.timestamp ?? "").slice(11, 23);
|
|
51
|
+
const event = entry.event ?? "unknown";
|
|
52
|
+
const data = entry.data;
|
|
53
|
+
switch (event) {
|
|
54
|
+
case "SessionStart": {
|
|
55
|
+
return formatSessionStart(time, entry);
|
|
56
|
+
}
|
|
57
|
+
case "UserPromptSubmit": {
|
|
58
|
+
return `${chalk.gray(time)} ${chalk.green("PROMPT")} ${String(data?.prompt ?? "").slice(0, 200)}`;
|
|
59
|
+
}
|
|
60
|
+
case "PostToolUse": {
|
|
61
|
+
return `${chalk.gray(time)} ${chalk.yellow("TOOL")} ${chalk.white(String(data?.toolName ?? ""))} ${chalk.gray(String(data?.toolInput ?? "").slice(0, 120))}`;
|
|
62
|
+
}
|
|
63
|
+
case "Stop": {
|
|
64
|
+
return `${chalk.gray(time)} ${chalk.magenta("RESPONSE")} ${String(data?.response ?? "").slice(0, 200)}`;
|
|
65
|
+
}
|
|
66
|
+
default: {
|
|
67
|
+
return `${chalk.gray(time)} ${event} ${JSON.stringify(data)}`;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function showSession(sessionId, format) {
|
|
72
|
+
const filePath = findSessionFile(sessionId);
|
|
73
|
+
if (!filePath) {
|
|
74
|
+
console.log(chalk.red(`No audit log found for session: ${sessionId}`));
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
const content = readFileSync(filePath, "utf8").trim();
|
|
78
|
+
if (!content) {
|
|
79
|
+
console.log(chalk.yellow("Session log is empty."));
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
const lines = content.split("\n");
|
|
83
|
+
if (format === "json") {
|
|
84
|
+
for (const line of lines) {
|
|
85
|
+
console.log(line);
|
|
86
|
+
}
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
console.log(chalk.cyan(`Session: ${sessionId}`));
|
|
90
|
+
console.log(chalk.cyan(`File: ${filePath}`));
|
|
91
|
+
console.log(chalk.cyan(`Entries: ${lines.length}`));
|
|
92
|
+
console.log();
|
|
93
|
+
for (const line of lines) {
|
|
94
|
+
try {
|
|
95
|
+
const entry = JSON.parse(line);
|
|
96
|
+
console.log(formatEntry(entry));
|
|
97
|
+
} catch {
|
|
98
|
+
console.log(chalk.red(` [malformed] ${line.slice(0, 80)}`));
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
export {
|
|
103
|
+
showSession
|
|
104
|
+
};
|
|
105
|
+
//# sourceMappingURL=showSession.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/audit/showSession.ts","../../../src/actions/audit/auditPaths.ts"],"sourcesContent":["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 { 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"],"mappings":"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","names":["path","path"]}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
// src/actions/audit/statusAudit.ts
|
|
2
|
+
import {
|
|
3
|
+
existsSync,
|
|
4
|
+
readdirSync,
|
|
5
|
+
readFileSync,
|
|
6
|
+
statSync
|
|
7
|
+
} from "fs";
|
|
8
|
+
import { homedir as homedir2 } from "os";
|
|
9
|
+
import path2 from "path";
|
|
10
|
+
import chalk from "chalk";
|
|
11
|
+
|
|
12
|
+
// src/actions/audit/auditPaths.ts
|
|
13
|
+
import { homedir } from "os";
|
|
14
|
+
import path from "path";
|
|
15
|
+
function getAuditRootDir() {
|
|
16
|
+
return path.join(homedir(), ".aries", "audit-logs");
|
|
17
|
+
}
|
|
18
|
+
function getAuditDir(provider) {
|
|
19
|
+
return provider ? path.join(getAuditRootDir(), provider) : getAuditRootDir();
|
|
20
|
+
}
|
|
21
|
+
function getAuditSearchDirs() {
|
|
22
|
+
return [
|
|
23
|
+
getAuditDir("claude"),
|
|
24
|
+
getAuditDir("codex"),
|
|
25
|
+
getAuditRootDir()
|
|
26
|
+
];
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// src/actions/audit/statusAudit.ts
|
|
30
|
+
function getDirectorySize(dir) {
|
|
31
|
+
let size = 0;
|
|
32
|
+
if (!existsSync(dir)) return size;
|
|
33
|
+
for (const entry of readdirSync(dir)) {
|
|
34
|
+
const fullPath = path2.join(dir, entry);
|
|
35
|
+
const stat = statSync(fullPath);
|
|
36
|
+
size += stat.isDirectory() ? getDirectorySize(fullPath) : stat.size;
|
|
37
|
+
}
|
|
38
|
+
return size;
|
|
39
|
+
}
|
|
40
|
+
function formatBytes(bytes) {
|
|
41
|
+
if (bytes < 1024) return `${bytes} B`;
|
|
42
|
+
if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;
|
|
43
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
44
|
+
}
|
|
45
|
+
function countSessions(dir) {
|
|
46
|
+
if (!existsSync(dir)) return 0;
|
|
47
|
+
let count = 0;
|
|
48
|
+
for (const date of readdirSync(dir)) {
|
|
49
|
+
const dayDir = path2.join(dir, date);
|
|
50
|
+
const stat = statSync(dayDir);
|
|
51
|
+
if (stat.isDirectory()) {
|
|
52
|
+
count += readdirSync(dayDir).filter((f) => f.endsWith(".jsonl")).length;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return count;
|
|
56
|
+
}
|
|
57
|
+
function checkHooksInstalled() {
|
|
58
|
+
const settingsPath = path2.join(homedir2(), ".claude", "settings.json");
|
|
59
|
+
if (!existsSync(settingsPath)) return false;
|
|
60
|
+
try {
|
|
61
|
+
const settings = JSON.parse(readFileSync(settingsPath, "utf8"));
|
|
62
|
+
return settings.hooks != null;
|
|
63
|
+
} catch {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
function statusAudit() {
|
|
68
|
+
const auditRootDir = getAuditRootDir();
|
|
69
|
+
const auditDirs = getAuditSearchDirs().filter((dir) => existsSync(dir));
|
|
70
|
+
console.log(chalk.cyan("Audit Plugin Status"));
|
|
71
|
+
console.log();
|
|
72
|
+
if (checkHooksInstalled()) {
|
|
73
|
+
console.log(` ${chalk.green("Hooks:")} configured in ~/.claude/settings.json`);
|
|
74
|
+
} else {
|
|
75
|
+
console.log(` ${chalk.red("Hooks:")} not installed (run: aries audit install)`);
|
|
76
|
+
}
|
|
77
|
+
console.log();
|
|
78
|
+
console.log(` ${chalk.gray("Log root:")} ${auditRootDir}`);
|
|
79
|
+
console.log(` ${chalk.gray("Claude logs:")} ${getAuditDir("claude")}`);
|
|
80
|
+
console.log(` ${chalk.gray("Codex logs:")} ${getAuditDir("codex")}`);
|
|
81
|
+
if (auditDirs.length > 0) {
|
|
82
|
+
const sessions = auditDirs.reduce((sum, dir) => sum + countSessions(dir), 0);
|
|
83
|
+
const size = auditDirs.reduce((sum, dir) => sum + getDirectorySize(dir), 0);
|
|
84
|
+
const dates = [...new Set(
|
|
85
|
+
auditDirs.flatMap((dir) => readdirSync(dir).filter((d) => /^\d{4}-\d{2}-\d{2}$/.test(d)))
|
|
86
|
+
)];
|
|
87
|
+
const sorted = dates.toSorted((a, b) => a.localeCompare(b));
|
|
88
|
+
console.log(` ${chalk.gray("Sessions:")} ${sessions}`);
|
|
89
|
+
console.log(` ${chalk.gray("Date range:")} ${sorted[0] ?? "none"} - ${sorted.at(-1) ?? "none"}`);
|
|
90
|
+
console.log(` ${chalk.gray("Disk usage:")} ${formatBytes(size)}`);
|
|
91
|
+
} else {
|
|
92
|
+
console.log(` ${chalk.gray("No logs yet")}`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
export {
|
|
96
|
+
statusAudit
|
|
97
|
+
};
|
|
98
|
+
//# sourceMappingURL=statusAudit.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/audit/statusAudit.ts","../../../src/actions/audit/auditPaths.ts"],"sourcesContent":["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 { 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"],"mappings":";AAAA;AAAA,EACE;AAAA,EAAY;AAAA,EAAa;AAAA,EAAc;AAAA,OAClC;AACP,SAAS,WAAAA,gBAAe;AACxB,OAAOC,WAAU;AAEjB,OAAO,WAAW;;;ACNlB,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;AAEO,SAAS,qBAA+B;AAC7C,SAAO;AAAA,IACL,YAAY,QAAQ;AAAA,IACpB,YAAY,OAAO;AAAA,IACnB,gBAAgB;AAAA,EAClB;AACF;;;ADPA,SAAS,iBAAiB,KAAqB;AAC7C,MAAI,OAAO;AACX,MAAI,CAAC,WAAW,GAAG,EAAG,QAAO;AAE7B,aAAW,SAAS,YAAY,GAAG,GAAG;AACpC,UAAM,WAAWC,MAAK,KAAK,KAAK,KAAK;AACrC,UAAM,OAAO,SAAS,QAAQ;AAC9B,YAAQ,KAAK,YAAY,IAAI,iBAAiB,QAAQ,IAAI,KAAK;AAAA,EACjE;AACA,SAAO;AACT;AAEA,SAAS,YAAY,OAAuB;AAC1C,MAAI,QAAQ,KAAM,QAAO,GAAG,KAAK;AACjC,MAAI,QAAQ,OAAO,KAAM,QAAO,IAAI,QAAQ,MAAM,QAAQ,CAAC,CAAC;AAC5D,SAAO,IAAI,SAAS,OAAO,OAAO,QAAQ,CAAC,CAAC;AAC9C;AAEA,SAAS,cAAc,KAAqB;AAC1C,MAAI,CAAC,WAAW,GAAG,EAAG,QAAO;AAC7B,MAAI,QAAQ;AACZ,aAAW,QAAQ,YAAY,GAAG,GAAG;AACnC,UAAM,SAASA,MAAK,KAAK,KAAK,IAAI;AAClC,UAAM,OAAO,SAAS,MAAM;AAC5B,QAAI,KAAK,YAAY,GAAG;AACtB,eAAS,YAAY,MAAM,EAAE,OAAO,OAAK,EAAE,SAAS,QAAQ,CAAC,EAAE;AAAA,IACjE;AAAA,EACF;AACA,SAAO;AACT;AAEA,SAAS,sBAA+B;AACtC,QAAM,eAAeA,MAAK,KAAKC,SAAQ,GAAG,WAAW,eAAe;AACpE,MAAI,CAAC,WAAW,YAAY,EAAG,QAAO;AACtC,MAAI;AACF,UAAM,WAAW,KAAK,MAAM,aAAa,cAAc,MAAM,CAAC;AAC9D,WAAO,SAAS,SAAS;AAAA,EAC3B,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEO,SAAS,cAAoB;AAClC,QAAM,eAAe,gBAAgB;AACrC,QAAM,YAAY,mBAAmB,EAAE,OAAO,SAAO,WAAW,GAAG,CAAC;AAEpE,UAAQ,IAAI,MAAM,KAAK,qBAAqB,CAAC;AAC7C,UAAQ,IAAI;AAGZ,MAAI,oBAAoB,GAAG;AACzB,YAAQ,IAAI,KAAK,MAAM,MAAM,QAAQ,CAAC,wCAAwC;AAAA,EAChF,OAAO;AACL,YAAQ,IAAI,KAAK,MAAM,IAAI,QAAQ,CAAC,2CAA2C;AAAA,EACjF;AAEA,UAAQ,IAAI;AAGZ,UAAQ,IAAI,KAAK,MAAM,KAAK,WAAW,CAAC,SAAS,YAAY,EAAE;AAC/D,UAAQ,IAAI,KAAK,MAAM,KAAK,cAAc,CAAC,MAAM,YAAY,QAAQ,CAAC,EAAE;AACxE,UAAQ,IAAI,KAAK,MAAM,KAAK,aAAa,CAAC,OAAO,YAAY,OAAO,CAAC,EAAE;AAEvE,MAAI,UAAU,SAAS,GAAG;AACxB,UAAM,WAAW,UAAU,OAAO,CAAC,KAAK,QAAQ,MAAM,cAAc,GAAG,GAAG,CAAC;AAC3E,UAAM,OAAO,UAAU,OAAO,CAAC,KAAK,QAAQ,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAC1E,UAAM,QAAQ,CAAC,GAAG,IAAI;AAAA,MACpB,UAAU,QAAQ,SAAO,YAAY,GAAG,EAAE,OAAO,OAAK,sBAAsB,KAAK,CAAC,CAAC,CAAC;AAAA,IACtF,CAAC;AACD,UAAM,SAAS,MAAM,SAAS,CAAC,GAAG,MAAM,EAAE,cAAc,CAAC,CAAC;AAE1D,YAAQ,IAAI,KAAK,MAAM,KAAK,WAAW,CAAC,SAAS,QAAQ,EAAE;AAC3D,YAAQ,IAAI,KAAK,MAAM,KAAK,aAAa,CAAC,OAAO,OAAO,CAAC,KAAK,MAAM,MAAM,OAAO,GAAG,EAAE,KAAK,MAAM,EAAE;AACnG,YAAQ,IAAI,KAAK,MAAM,KAAK,aAAa,CAAC,OAAO,YAAY,IAAI,CAAC,EAAE;AAAA,EACtE,OAAO;AACL,YAAQ,IAAI,KAAK,MAAM,KAAK,aAAa,CAAC,EAAE;AAAA,EAC9C;AACF;","names":["homedir","path","path","homedir"]}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// src/actions/clamp/clampAudit.ts
|
|
2
|
+
import { writeAuditEntry } from "@xylabs/aries-audit-core";
|
|
3
|
+
import { CLAMP_AUDIT_SCHEMA } from "@xylabs/aries-clamp-core";
|
|
4
|
+
function logClampPermission(options) {
|
|
5
|
+
writeAuditEntry({
|
|
6
|
+
ai: { product: "clamp", provider: "aries" },
|
|
7
|
+
client: { name: "@xylabs/aries", version: "0.1.0" },
|
|
8
|
+
cwd: process.cwd(),
|
|
9
|
+
data: {
|
|
10
|
+
args: options.args,
|
|
11
|
+
command: options.command,
|
|
12
|
+
decision: options.decision,
|
|
13
|
+
policy: options.policy.name
|
|
14
|
+
},
|
|
15
|
+
event: "ClampPermission",
|
|
16
|
+
schema: CLAMP_AUDIT_SCHEMA,
|
|
17
|
+
sessionId: options.sessionId,
|
|
18
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
function logClampStart(options) {
|
|
22
|
+
writeAuditEntry({
|
|
23
|
+
ai: { product: "clamp", provider: "aries" },
|
|
24
|
+
client: { name: "@xylabs/aries", version: "0.1.0" },
|
|
25
|
+
cwd: process.cwd(),
|
|
26
|
+
data: {
|
|
27
|
+
command: options.command,
|
|
28
|
+
policy: options.policy.name
|
|
29
|
+
},
|
|
30
|
+
event: "ClampStart",
|
|
31
|
+
schema: CLAMP_AUDIT_SCHEMA,
|
|
32
|
+
sessionId: options.sessionId,
|
|
33
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
function logClampStop(options) {
|
|
37
|
+
writeAuditEntry({
|
|
38
|
+
ai: { product: "clamp", provider: "aries" },
|
|
39
|
+
client: { name: "@xylabs/aries", version: "0.1.0" },
|
|
40
|
+
cwd: process.cwd(),
|
|
41
|
+
data: { exitCode: options.exitCode },
|
|
42
|
+
event: "ClampStop",
|
|
43
|
+
schema: CLAMP_AUDIT_SCHEMA,
|
|
44
|
+
sessionId: options.sessionId,
|
|
45
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
export {
|
|
49
|
+
logClampPermission,
|
|
50
|
+
logClampStart,
|
|
51
|
+
logClampStop
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=clampAudit.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/clamp/clampAudit.ts"],"sourcesContent":["import { writeAuditEntry } from '@xylabs/aries-audit-core'\nimport type { ClampPolicy } from '@xylabs/aries-clamp-core'\nimport { CLAMP_AUDIT_SCHEMA } from '@xylabs/aries-clamp-core'\n\nexport type ClampDecision = 'allowed' | 'denied' | 'prompted-allow' | 'prompted-deny'\n\nexport function logClampPermission(\n options: {\n args: string[]\n command: string\n decision: ClampDecision\n policy: ClampPolicy\n sessionId: string\n },\n): void {\n writeAuditEntry({\n ai: { product: 'clamp', provider: 'aries' },\n client: { name: '@xylabs/aries', version: '0.1.0' },\n cwd: process.cwd(),\n data: {\n args: options.args,\n command: options.command,\n decision: options.decision,\n policy: options.policy.name,\n },\n event: 'ClampPermission',\n schema: CLAMP_AUDIT_SCHEMA,\n sessionId: options.sessionId,\n timestamp: new Date().toISOString(),\n })\n}\n\nexport function logClampStart(\n options: {\n command: string\n policy: ClampPolicy\n sessionId: string\n },\n): void {\n writeAuditEntry({\n ai: { product: 'clamp', provider: 'aries' },\n client: { name: '@xylabs/aries', version: '0.1.0' },\n cwd: process.cwd(),\n data: {\n command: options.command,\n policy: options.policy.name,\n },\n event: 'ClampStart',\n schema: CLAMP_AUDIT_SCHEMA,\n sessionId: options.sessionId,\n timestamp: new Date().toISOString(),\n })\n}\n\nexport function logClampStop(\n options: {\n exitCode: number | null\n sessionId: string\n },\n): void {\n writeAuditEntry({\n ai: { product: 'clamp', provider: 'aries' },\n client: { name: '@xylabs/aries', version: '0.1.0' },\n cwd: process.cwd(),\n data: { exitCode: options.exitCode },\n event: 'ClampStop',\n schema: CLAMP_AUDIT_SCHEMA,\n sessionId: options.sessionId,\n timestamp: new Date().toISOString(),\n })\n}\n"],"mappings":";AAAA,SAAS,uBAAuB;AAEhC,SAAS,0BAA0B;AAI5B,SAAS,mBACd,SAOM;AACN,kBAAgB;AAAA,IACd,IAAI,EAAE,SAAS,SAAS,UAAU,QAAQ;AAAA,IAC1C,QAAQ,EAAE,MAAM,iBAAiB,SAAS,QAAQ;AAAA,IAClD,KAAK,QAAQ,IAAI;AAAA,IACjB,MAAM;AAAA,MACJ,MAAM,QAAQ;AAAA,MACd,SAAS,QAAQ;AAAA,MACjB,UAAU,QAAQ;AAAA,MAClB,QAAQ,QAAQ,OAAO;AAAA,IACzB;AAAA,IACA,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,WAAW,QAAQ;AAAA,IACnB,YAAW,oBAAI,KAAK,GAAE,YAAY;AAAA,EACpC,CAAC;AACH;AAEO,SAAS,cACd,SAKM;AACN,kBAAgB;AAAA,IACd,IAAI,EAAE,SAAS,SAAS,UAAU,QAAQ;AAAA,IAC1C,QAAQ,EAAE,MAAM,iBAAiB,SAAS,QAAQ;AAAA,IAClD,KAAK,QAAQ,IAAI;AAAA,IACjB,MAAM;AAAA,MACJ,SAAS,QAAQ;AAAA,MACjB,QAAQ,QAAQ,OAAO;AAAA,IACzB;AAAA,IACA,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,WAAW,QAAQ;AAAA,IACnB,YAAW,oBAAI,KAAK,GAAE,YAAY;AAAA,EACpC,CAAC;AACH;AAEO,SAAS,aACd,SAIM;AACN,kBAAgB;AAAA,IACd,IAAI,EAAE,SAAS,SAAS,UAAU,QAAQ;AAAA,IAC1C,QAAQ,EAAE,MAAM,iBAAiB,SAAS,QAAQ;AAAA,IAClD,KAAK,QAAQ,IAAI;AAAA,IACjB,MAAM,EAAE,UAAU,QAAQ,SAAS;AAAA,IACnC,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,WAAW,QAAQ;AAAA,IACnB,YAAW,oBAAI,KAAK,GAAE,YAAY;AAAA,EACpC,CAAC;AACH;","names":[]}
|