neozip-mcp 0.1.0-beta

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.
Files changed (113) hide show
  1. package/.cursor/mcp.json.global.example +10 -0
  2. package/CHANGELOG.md +16 -0
  3. package/DOCUMENTATION.md +40 -0
  4. package/LICENSE +16 -0
  5. package/README.md +223 -0
  6. package/SECURITY.md +37 -0
  7. package/dist/account/account-state.js +86 -0
  8. package/dist/account/format-account-status.js +37 -0
  9. package/dist/account/identity-provision.js +75 -0
  10. package/dist/account/identity-wrap.js +69 -0
  11. package/dist/account/profile-crypto.js +47 -0
  12. package/dist/account/profile-store.js +108 -0
  13. package/dist/account/require-account.js +29 -0
  14. package/dist/account/token-service-identity.js +395 -0
  15. package/dist/account/types.js +2 -0
  16. package/dist/account/wallet-evm.js +39 -0
  17. package/dist/archive/blockchain-status.js +303 -0
  18. package/dist/archive/crypto-self.js +114 -0
  19. package/dist/archive/detect-text.js +56 -0
  20. package/dist/archive/embed-metadata.js +283 -0
  21. package/dist/archive/encryption.js +166 -0
  22. package/dist/archive/extract-entry-buffer.js +18 -0
  23. package/dist/archive/find-entry.js +21 -0
  24. package/dist/archive/grep-content.js +141 -0
  25. package/dist/archive/identity-key.js +176 -0
  26. package/dist/archive/manifest.js +55 -0
  27. package/dist/archive/merkle.js +31 -0
  28. package/dist/archive/metadata-paths.js +14 -0
  29. package/dist/archive/mint-archive.js +61 -0
  30. package/dist/archive/open-archive.js +23 -0
  31. package/dist/archive/read-entry-buffer.js +11 -0
  32. package/dist/archive/read-entry-content.js +51 -0
  33. package/dist/archive/recipient-access.js +26 -0
  34. package/dist/archive/recipient-decrypt.js +21 -0
  35. package/dist/archive/recipient-lookup.js +55 -0
  36. package/dist/archive/timestamp-network.js +54 -0
  37. package/dist/config/capabilities.js +37 -0
  38. package/dist/config/index.js +74 -0
  39. package/dist/connect-cli.js +312 -0
  40. package/dist/connection/coordinator.js +74 -0
  41. package/dist/connection/credentials.js +29 -0
  42. package/dist/connection/crypto.js +56 -0
  43. package/dist/connection/dump.js +79 -0
  44. package/dist/connection/incomplete-setup.js +81 -0
  45. package/dist/connection/interactive.js +814 -0
  46. package/dist/connection/legacy-profile-reader.js +47 -0
  47. package/dist/connection/magic-link.js +138 -0
  48. package/dist/connection/migrate.js +76 -0
  49. package/dist/connection/onboarding.js +524 -0
  50. package/dist/connection/origin.js +63 -0
  51. package/dist/connection/phase.js +93 -0
  52. package/dist/connection/phone.js +20 -0
  53. package/dist/connection/promote-active.js +53 -0
  54. package/dist/connection/reset.js +20 -0
  55. package/dist/connection/setup-guidance.js +154 -0
  56. package/dist/connection/status-report.js +40 -0
  57. package/dist/connection/store.js +352 -0
  58. package/dist/connection/token-auth.js +42 -0
  59. package/dist/connection/types.js +2 -0
  60. package/dist/connection/wallet-setup.js +70 -0
  61. package/dist/constants/wallet-identity.js +11 -0
  62. package/dist/index.js +47 -0
  63. package/dist/load-env.js +16 -0
  64. package/dist/neozipkit-node.js +11 -0
  65. package/dist/register/resources.js +14 -0
  66. package/dist/register/tools.js +77 -0
  67. package/dist/resources/zip-resource.js +40 -0
  68. package/dist/resources/zip-uri.js +23 -0
  69. package/dist/security/auth.js +28 -0
  70. package/dist/security/capabilities.js +85 -0
  71. package/dist/security/rate-limiter.js +43 -0
  72. package/dist/security/resource-limiter.js +44 -0
  73. package/dist/security/sandbox.js +61 -0
  74. package/dist/server.js +32 -0
  75. package/dist/startup-account-gate.js +101 -0
  76. package/dist/startup-summary.js +40 -0
  77. package/dist/token-service/require-configured.js +23 -0
  78. package/dist/tools/account.js +504 -0
  79. package/dist/tools/compress.js +237 -0
  80. package/dist/tools/connect-status.js +143 -0
  81. package/dist/tools/extract.js +62 -0
  82. package/dist/tools/grep-entries.js +42 -0
  83. package/dist/tools/identity-status.js +157 -0
  84. package/dist/tools/info.js +147 -0
  85. package/dist/tools/list.js +118 -0
  86. package/dist/tools/lookup-recipient.js +37 -0
  87. package/dist/tools/mint.js +41 -0
  88. package/dist/tools/read-entry.js +35 -0
  89. package/dist/tools/search-entries.js +71 -0
  90. package/dist/tools/stamp.js +60 -0
  91. package/dist/tools/test.js +90 -0
  92. package/dist/tools/token-service-account.js +143 -0
  93. package/dist/tools/upgrade.js +60 -0
  94. package/dist/tools/verify.js +75 -0
  95. package/dist/tools/wallet-config-status.js +119 -0
  96. package/dist/tools/wallet-info.js +64 -0
  97. package/dist/translators/index.js +106 -0
  98. package/dist/types/index.js +7 -0
  99. package/dist/util/mask.js +30 -0
  100. package/dist/util/token-service-fetch.js +23 -0
  101. package/dist/vendor/neozipkit-pro.js +3 -0
  102. package/docs/NEOZIP_CONNECTION_STORE.md +238 -0
  103. package/docs/NEOZIP_CONNECT_CLI.md +185 -0
  104. package/docs/OPERATIONS.md +992 -0
  105. package/docs/examples/CLAUDE.md.example +22 -0
  106. package/docs/examples/claude/skills/neozip-mcp/SKILL.md +54 -0
  107. package/docs/examples/claude/skills/neozip-notarization/SKILL.md +75 -0
  108. package/docs/examples/mcp.json.claude.example +11 -0
  109. package/docs/examples/neozip-mcp-cursor-rule.mdc +31 -0
  110. package/docs/installation-guides/INSTALL_CLAUDE_CODE.md +286 -0
  111. package/docs/installation-guides/INSTALL_CLAUDE_WORKSPACE.md +301 -0
  112. package/docs/installation-guides/README.md +76 -0
  113. package/package.json +99 -0
@@ -0,0 +1,81 @@
1
+ import { getActiveConnection, getActiveConnectionId, listConnectionIds, readConnectionPublic, readConnectionSecrets, selectConnection, } from "./store.js";
2
+ import { computeConnectionPhase, listReadyConnectionIds, nextConnectCommand } from "./phase.js";
3
+ import { promoteReadyActiveConnection } from "./promote-active.js";
4
+ export const INTERACTIVE_CONNECT_COMMAND = "neozip-connect";
5
+ export function listReadableConnectionIds() {
6
+ return listConnectionIds().filter((id) => {
7
+ return Boolean(readConnectionPublic(id) && readConnectionSecrets(id));
8
+ });
9
+ }
10
+ /** Switch active to a ready or readable account when the current one cannot be unlocked. */
11
+ export function tryAutoRecoverConnectionStore() {
12
+ const promoted = promoteReadyActiveConnection();
13
+ if (promoted.promoted && promoted.label) {
14
+ return {
15
+ recovered: true,
16
+ message: `Active account was incomplete; switched to ready account "${promoted.label}".`,
17
+ };
18
+ }
19
+ const activeId = getActiveConnectionId();
20
+ if (!activeId) {
21
+ return { recovered: false };
22
+ }
23
+ const activeMeta = readConnectionPublic(activeId);
24
+ const activeReadable = Boolean(readConnectionSecrets(activeId));
25
+ if (activeMeta && activeReadable) {
26
+ return { recovered: false };
27
+ }
28
+ const readableIds = listReadableConnectionIds();
29
+ if (readableIds.length === 0) {
30
+ return { recovered: false };
31
+ }
32
+ const fallbackId = readableIds.find((id) => listReadyConnectionIds().includes(id)) ?? readableIds[0];
33
+ const fallback = selectConnection(fallbackId);
34
+ return {
35
+ recovered: true,
36
+ message: `Previous active account could not be unlocked; switched to "${fallback.label}".`,
37
+ };
38
+ }
39
+ /** True when every saved account lacks readable secrets (corrupt, wrong machine, or test residue). */
40
+ export function diagnoseUnrecoverableStore() {
41
+ const ids = listConnectionIds();
42
+ if (ids.length === 0) {
43
+ return null;
44
+ }
45
+ const readableIds = listReadableConnectionIds();
46
+ if (readableIds.length > 0) {
47
+ return null;
48
+ }
49
+ const activeId = getActiveConnectionId();
50
+ const activeMeta = activeId ? readConnectionPublic(activeId) : null;
51
+ return {
52
+ kind: "all_secrets_unreadable",
53
+ connectionCount: ids.length,
54
+ activeConnectionId: activeId,
55
+ activeLabel: activeMeta?.label ?? null,
56
+ activeEmail: activeMeta?.email ?? null,
57
+ };
58
+ }
59
+ export function formatUnrecoverableStoreMessage(diagnosis) {
60
+ const who = diagnosis.activeLabel && diagnosis.activeEmail
61
+ ? `${diagnosis.activeLabel} (${diagnosis.activeEmail})`
62
+ : diagnosis.activeLabel ?? diagnosis.activeConnectionId ?? "unknown";
63
+ return [
64
+ `Found ${diagnosis.connectionCount} saved account(s) but none can be unlocked.`,
65
+ `Active: ${who}.`,
66
+ "Credentials may be from another machine, corrupted, or an incomplete test setup.",
67
+ "Reset is recommended before continuing.",
68
+ ].join(" ");
69
+ }
70
+ export function recommendedConnectCommand() {
71
+ const phase = computeConnectionPhase();
72
+ if (phase === "ready") {
73
+ return `${INTERACTIVE_CONNECT_COMMAND} status`;
74
+ }
75
+ const meta = getActiveConnection();
76
+ return (nextConnectCommand(phase, {
77
+ email: meta?.email,
78
+ phoneE164: meta?.phoneE164,
79
+ }) ?? INTERACTIVE_CONNECT_COMMAND);
80
+ }
81
+ //# sourceMappingURL=incomplete-setup.js.map