ethagent 2.3.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/README.md +18 -4
  2. package/package.json +2 -1
  3. package/src/app/FirstRun.tsx +157 -15
  4. package/src/app/FirstRunTimeline.tsx +4 -0
  5. package/src/app/input/AppInputProvider.tsx +19 -0
  6. package/src/app/input/appInputParser.ts +19 -4
  7. package/src/chat/ChatBottomPane.tsx +12 -1
  8. package/src/chat/ChatScreen.tsx +17 -5
  9. package/src/chat/ConversationStack.tsx +25 -19
  10. package/src/chat/MessageList.tsx +194 -53
  11. package/src/chat/chatSessionState.ts +4 -1
  12. package/src/chat/chatTurnOrchestrator.ts +65 -2
  13. package/src/chat/input/ChatInput.tsx +28 -2
  14. package/src/chat/input/imageRefs.ts +30 -0
  15. package/src/chat/input/textCursor.ts +13 -3
  16. package/src/chat/transcript/TranscriptView.tsx +7 -5
  17. package/src/chat/transcript/transcriptViewport.ts +88 -17
  18. package/src/chat/views/PermissionPrompt.tsx +26 -26
  19. package/src/chat/views/PermissionsView.tsx +18 -12
  20. package/src/chat/views/ResumeView.tsx +16 -7
  21. package/src/chat/views/RewindView.tsx +3 -1
  22. package/src/cli/ResetConfirmView.tsx +24 -9
  23. package/src/identity/continuity/editor.ts +27 -2
  24. package/src/identity/continuity/envelope.ts +125 -0
  25. package/src/identity/continuity/publicSkills.ts +37 -1
  26. package/src/identity/continuity/skills/frontmatter.ts +183 -0
  27. package/src/identity/continuity/skills/loadSkills.ts +609 -0
  28. package/src/identity/continuity/skills/publicSkillsSync.ts +32 -0
  29. package/src/identity/continuity/skills/scaffold.ts +52 -0
  30. package/src/identity/continuity/skills/types.ts +30 -0
  31. package/src/identity/continuity/storage/defaults.ts +28 -47
  32. package/src/identity/continuity/storage/files.ts +1 -0
  33. package/src/identity/continuity/storage/paths.ts +1 -0
  34. package/src/identity/continuity/storage/scaffold.ts +25 -23
  35. package/src/identity/continuity/storage/status.ts +34 -5
  36. package/src/identity/continuity/storage/types.ts +3 -2
  37. package/src/identity/continuity/storage.ts +3 -0
  38. package/src/identity/hub/OperationalRoutes.tsx +105 -3
  39. package/src/identity/hub/Routes.tsx +5 -3
  40. package/src/identity/hub/continuity/ContinuityDashboardScreen.tsx +5 -51
  41. package/src/identity/hub/continuity/RecoveryConfirmScreen.tsx +1 -1
  42. package/src/identity/hub/continuity/SavePromptScreen.tsx +1 -0
  43. package/src/identity/hub/continuity/effects.ts +36 -5
  44. package/src/identity/hub/continuity/skills/DeleteSkillConfirmScreen.tsx +112 -0
  45. package/src/identity/hub/continuity/skills/DeleteSkillScreen.tsx +123 -0
  46. package/src/identity/hub/continuity/skills/NewSkillScreen.tsx +57 -0
  47. package/src/identity/hub/continuity/skills/NewSkillVisibilityScreen.tsx +52 -0
  48. package/src/identity/hub/continuity/skills/SkillVisibilityScreen.tsx +171 -0
  49. package/src/identity/hub/continuity/skills/SkillsTreeScreen.tsx +213 -0
  50. package/src/identity/hub/continuity/snapshot.ts +3 -0
  51. package/src/identity/hub/continuity/state.ts +3 -2
  52. package/src/identity/hub/continuity/vault.ts +42 -10
  53. package/src/identity/hub/custody/CustodyEditFlow.tsx +3 -3
  54. package/src/identity/hub/identityHubReducer.ts +21 -0
  55. package/src/identity/hub/profile/effects.ts +16 -3
  56. package/src/identity/hub/restore/RestoreFlow.tsx +43 -6
  57. package/src/identity/hub/restore/apply.ts +12 -1
  58. package/src/identity/hub/restore/recovery.ts +11 -1
  59. package/src/identity/hub/restore/resolve.ts +1 -1
  60. package/src/identity/hub/restore/useRestoreEffects.ts +4 -6
  61. package/src/identity/hub/shared/components/DetailsScreen.tsx +4 -1
  62. package/src/identity/hub/shared/components/IdentitySummary.tsx +97 -53
  63. package/src/identity/hub/shared/components/MenuScreen.tsx +18 -15
  64. package/src/identity/hub/shared/components/UnlinkedIdentityScreen.tsx +1 -1
  65. package/src/identity/hub/shared/components/menuFlagsFromReconciliation.ts +8 -12
  66. package/src/identity/hub/shared/effects/sync.ts +16 -3
  67. package/src/identity/hub/shared/model/copy.ts +2 -4
  68. package/src/identity/hub/transfer/effects.ts +15 -2
  69. package/src/identity/hub/useIdentityHubContinuity.ts +145 -23
  70. package/src/identity/hub/useIdentityHubController.ts +5 -1
  71. package/src/identity/hub/useIdentityHubSideEffects.ts +2 -4
  72. package/src/mcp/manager.ts +1 -1
  73. package/src/models/ModelPicker.tsx +211 -74
  74. package/src/models/huggingface.ts +180 -2
  75. package/src/models/llamacpp.ts +261 -17
  76. package/src/models/llamacppPreflight.ts +16 -12
  77. package/src/models/modelPickerOptions.ts +57 -38
  78. package/src/providers/anthropic.ts +36 -5
  79. package/src/providers/contracts.ts +10 -1
  80. package/src/providers/gemini.ts +29 -3
  81. package/src/providers/openai-chat.ts +131 -11
  82. package/src/providers/openai-responses-format.ts +29 -8
  83. package/src/providers/openai-responses.ts +41 -11
  84. package/src/providers/registry.ts +1 -0
  85. package/src/runtime/toolExecution.ts +4 -3
  86. package/src/runtime/turn.ts +61 -30
  87. package/src/storage/config.ts +1 -0
  88. package/src/storage/sessions.ts +14 -2
  89. package/src/tools/changeDirectoryTool.ts +1 -1
  90. package/src/tools/contracts.ts +10 -0
  91. package/src/tools/deleteFileTool.ts +1 -1
  92. package/src/tools/editTool.ts +1 -1
  93. package/src/tools/listDirectoryTool.ts +1 -1
  94. package/src/tools/listSkillFilesTool.ts +77 -0
  95. package/src/tools/listSkillsTool.ts +68 -0
  96. package/src/tools/mcpResourceTools.ts +2 -2
  97. package/src/tools/privateContinuityReadTool.ts +1 -1
  98. package/src/tools/readSkillTool.ts +107 -0
  99. package/src/tools/readTool.ts +1 -1
  100. package/src/tools/registry.ts +6 -0
  101. package/src/tools/writeFileTool.ts +22 -2
  102. package/src/ui/Spinner.tsx +15 -3
  103. package/src/ui/theme.ts +2 -0
  104. package/src/utils/images.ts +140 -0
  105. package/src/utils/messages.ts +2 -0
  106. package/src/identity/continuity/localBackup.ts +0 -249
  107. package/src/identity/continuity/zipWriter.ts +0 -95
  108. package/src/identity/hub/continuity/index.ts +0 -7
  109. package/src/identity/hub/ens/index.ts +0 -11
  110. package/src/identity/hub/restore/index.ts +0 -22
@@ -1,95 +0,0 @@
1
- export type ZipEntry = {
2
- name: string
3
- data: Buffer
4
- }
5
-
6
- const crcTable = (() => {
7
- const table = new Uint32Array(256)
8
- for (let i = 0; i < 256; i++) {
9
- let c = i
10
- for (let k = 0; k < 8; k++) c = (c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1)
11
- table[i] = c
12
- }
13
- return table
14
- })()
15
-
16
- export function crc32(buf: Buffer): number {
17
- let c = 0xFFFFFFFF
18
- for (let i = 0; i < buf.length; i++) {
19
- const byte = buf[i] as number
20
- c = (crcTable[(c ^ byte) & 0xff] as number) ^ (c >>> 8)
21
- }
22
- return (c ^ 0xFFFFFFFF) >>> 0
23
- }
24
-
25
- export function buildZip(entries: ZipEntry[], modifiedAt: Date = new Date()): Buffer {
26
- const dosTime = toDosTime(modifiedAt)
27
- const dosDate = toDosDate(modifiedAt)
28
- const localParts: Buffer[] = []
29
- const centralParts: Buffer[] = []
30
- let offset = 0
31
- for (const entry of entries) {
32
- const nameBuf = Buffer.from(entry.name, 'utf8')
33
- const crc = crc32(entry.data)
34
- const size = entry.data.length
35
-
36
- const localHeader = Buffer.alloc(30)
37
- localHeader.writeUInt32LE(0x04034b50, 0)
38
- localHeader.writeUInt16LE(20, 4)
39
- localHeader.writeUInt16LE(0x0800, 6)
40
- localHeader.writeUInt16LE(0, 8)
41
- localHeader.writeUInt16LE(dosTime, 10)
42
- localHeader.writeUInt16LE(dosDate, 12)
43
- localHeader.writeUInt32LE(crc, 14)
44
- localHeader.writeUInt32LE(size, 18)
45
- localHeader.writeUInt32LE(size, 22)
46
- localHeader.writeUInt16LE(nameBuf.length, 26)
47
- localHeader.writeUInt16LE(0, 28)
48
- localParts.push(localHeader, nameBuf, entry.data)
49
-
50
- const centralHeader = Buffer.alloc(46)
51
- centralHeader.writeUInt32LE(0x02014b50, 0)
52
- centralHeader.writeUInt16LE(20, 4)
53
- centralHeader.writeUInt16LE(20, 6)
54
- centralHeader.writeUInt16LE(0x0800, 8)
55
- centralHeader.writeUInt16LE(0, 10)
56
- centralHeader.writeUInt16LE(dosTime, 12)
57
- centralHeader.writeUInt16LE(dosDate, 14)
58
- centralHeader.writeUInt32LE(crc, 16)
59
- centralHeader.writeUInt32LE(size, 20)
60
- centralHeader.writeUInt32LE(size, 24)
61
- centralHeader.writeUInt16LE(nameBuf.length, 28)
62
- centralHeader.writeUInt16LE(0, 30)
63
- centralHeader.writeUInt16LE(0, 32)
64
- centralHeader.writeUInt16LE(0, 34)
65
- centralHeader.writeUInt16LE(0, 36)
66
- centralHeader.writeUInt32LE(0, 38)
67
- centralHeader.writeUInt32LE(offset, 42)
68
- centralParts.push(centralHeader, nameBuf)
69
-
70
- offset += localHeader.length + nameBuf.length + entry.data.length
71
- }
72
-
73
- const centralBuf = Buffer.concat(centralParts)
74
- const localBuf = Buffer.concat(localParts)
75
- const eocd = Buffer.alloc(22)
76
- eocd.writeUInt32LE(0x06054b50, 0)
77
- eocd.writeUInt16LE(0, 4)
78
- eocd.writeUInt16LE(0, 6)
79
- eocd.writeUInt16LE(entries.length, 8)
80
- eocd.writeUInt16LE(entries.length, 10)
81
- eocd.writeUInt32LE(centralBuf.length, 12)
82
- eocd.writeUInt32LE(localBuf.length, 16)
83
- eocd.writeUInt16LE(0, 20)
84
-
85
- return Buffer.concat([localBuf, centralBuf, eocd])
86
- }
87
-
88
- function toDosTime(date: Date): number {
89
- return ((date.getHours() & 0x1f) << 11) | ((date.getMinutes() & 0x3f) << 5) | ((date.getSeconds() / 2) & 0x1f)
90
- }
91
-
92
- function toDosDate(date: Date): number {
93
- const year = Math.max(1980, date.getFullYear()) - 1980
94
- return ((year & 0x7f) << 9) | (((date.getMonth() + 1) & 0x0f) << 5) | (date.getDate() & 0x1f)
95
- }
@@ -1,7 +0,0 @@
1
- export {
2
- rebackupCompletionMessage,
3
- runRebackupPreflight,
4
- runRebackupSigning,
5
- runRebackupSigningInSession,
6
- runRebackupStorageSubmit,
7
- } from './effects.js'
@@ -1,11 +0,0 @@
1
- export {
2
- runEnsLinkFlow,
3
- runEnsUnlinkFlow,
4
- runEnsUpdateFlow,
5
- } from './effects.js'
6
- export {
7
- ensRecordWritesForUpdate,
8
- runEnsSetupRecordsTransaction,
9
- runEnsSetupRegistryTransaction,
10
- runUpdateEnsRecords,
11
- } from './transactions.js'
@@ -1,22 +0,0 @@
1
- export {
2
- runRestoreAuthorize,
3
- } from './apply.js'
4
- export {
5
- restoreSignatureRequestForStep,
6
- runRestoreConnectWallet,
7
- } from './auth.js'
8
- export {
9
- canRestoreCandidate,
10
- restoreTokenSelectionStep,
11
- runRestoreDiscover,
12
- } from './discover.js'
13
- export {
14
- runRestoreFetch,
15
- } from './fetch.js'
16
- export {
17
- runRecoveryRefetch,
18
- } from './recovery.js'
19
- export {
20
- resolveAgentEnsToCandidate,
21
- resolveAgentTokenIdToCandidate,
22
- } from './resolve.js'