zigmini 0.9.0-beta.2 → 1.0.0-beta.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.
Files changed (145) hide show
  1. package/README.ko.md +35 -5
  2. package/README.md +35 -5
  3. package/assets/agent/gateway-rules.md +1 -1
  4. package/assets/android/zigmini.apk +0 -0
  5. package/assets/android/zigmini.apk.json +3 -3
  6. package/assets/build.json +1 -1
  7. package/docs/manual.ko.md +51 -11
  8. package/docs/manual.md +52 -12
  9. package/host/omo-bridge/agent-control.ts +274 -0
  10. package/host/omo-bridge/bridge.ts +1 -1
  11. package/host/omo-bridge/continuity-control.ts +1 -1
  12. package/host/omo-bridge/model-control.ts +15 -3
  13. package/host/omo-bridge/task-control.ts +26 -16
  14. package/host/omo-check/patches/omo-5.1.48-compaction-recovery.patch +912 -0
  15. package/host/omo-check/patches/omo-5.1.48-gateway-port.manifest.json +12 -11
  16. package/host/omo-check/patches/omo-5.1.51-compaction-long-context.patch +92 -0
  17. package/host/omo-check/patches/omo-5.1.51-compaction-port.patch +2635 -0
  18. package/host/omo-check/patches/omo-5.1.51-compaction-recovery.patch +911 -0
  19. package/host/omo-check/patches/omo-5.1.51-gateway-port.manifest.json +363 -0
  20. package/host/omo-check/patches/omo-5.1.51-provider-failover.patch +50 -0
  21. package/host/omo-check/patches/omo-5.1.51-provider-port.patch +441 -0
  22. package/host/omo-check/patches/omo-5.1.51-rpc-port.patch +799 -0
  23. package/host/omo-check/patches/omo-5.1.51-runtime-compat.patch +31 -0
  24. package/package.json +3 -2
  25. package/src/agent/api.ts +215 -0
  26. package/src/agent/definition.ts +177 -0
  27. package/src/agent/fields.ts +42 -0
  28. package/src/agent/files.ts +192 -0
  29. package/src/agent/legacy-files.ts +46 -0
  30. package/src/agent/list.ts +21 -0
  31. package/src/agent-rules.ts +14 -5
  32. package/src/approvals.ts +6 -1
  33. package/src/cli/main.ts +33 -0
  34. package/src/cli/messages.ts +10 -2
  35. package/src/cli/rotate-main.ts +2 -1
  36. package/src/cli/scan.ts +414 -0
  37. package/src/cli/security-import.ts +155 -0
  38. package/src/compact.ts +22 -0
  39. package/src/decisions.ts +6 -4
  40. package/src/engine/compat.json +3 -3
  41. package/src/engine/index.ts +1 -0
  42. package/src/engine/schema-guard.ts +12 -4
  43. package/src/engine/sdk.ts +8 -0
  44. package/src/formal-verification.ts +366 -0
  45. package/src/gc.ts +37 -6
  46. package/src/hub.ts +525 -85
  47. package/src/main.ts +95 -9
  48. package/src/maintenance.ts +1 -1
  49. package/src/manual.ts +9 -2
  50. package/src/omo/client.ts +2 -0
  51. package/src/profile-prompt.ts +73 -0
  52. package/src/profile.ts +33 -10
  53. package/src/protocol.ts +11 -2
  54. package/src/question-notifications.ts +4 -1
  55. package/src/reply-notifications.ts +7 -1
  56. package/src/repo-security-setting.ts +33 -0
  57. package/src/runtime/paths.ts +16 -0
  58. package/src/security/baseline.ts +170 -0
  59. package/src/security/dex-strings.ts +242 -0
  60. package/src/security/repo-scan.ts +369 -0
  61. package/src/security/revision-probe.ts +144 -0
  62. package/src/security/terms.ts +97 -0
  63. package/src/security-allow.ts +1 -0
  64. package/src/security-baseline.ts +113 -0
  65. package/src/security-check.ts +91 -16
  66. package/src/server-text.ts +38 -0
  67. package/src/store.ts +142 -16
  68. package/src/transcript.ts +7 -1
  69. package/src/ui-language.ts +33 -0
  70. package/src/update/check.ts +7 -3
  71. package/src/update/handoff-system.ts +24 -16
  72. package/src/update/handoff.ts +23 -12
  73. package/src/update/helper.ts +72 -36
  74. package/src/update/request.ts +46 -30
  75. package/src/update/state.ts +21 -11
  76. package/src/update/strategy.ts +12 -5
  77. package/src/update/target.ts +32 -15
  78. package/src/usage.ts +43 -20
  79. package/src/version.ts +39 -16
  80. package/src/voice/agents.ts +8 -3
  81. package/src/voice/install.ts +29 -18
  82. package/src/work-watch.ts +40 -18
  83. package/web/agent-icon.js +15 -9
  84. package/web/agents.d.ts +201 -0
  85. package/web/agents.js +813 -0
  86. package/web/app-download.js +32 -19
  87. package/web/app.js +1407 -278
  88. package/web/autocopy.js +6 -1
  89. package/web/boot.js +27 -8
  90. package/web/commands.js +20 -11
  91. package/web/decisions.js +70 -49
  92. package/web/devlog.js +25 -19
  93. package/web/diagram.js +8 -3
  94. package/web/enroll.js +43 -22
  95. package/web/gc.js +32 -19
  96. package/web/i18n/agent-icon.js +24 -0
  97. package/web/i18n/agents.js +48 -0
  98. package/web/i18n/app-download.js +26 -0
  99. package/web/i18n/autocopy.js +5 -0
  100. package/web/i18n/boot.js +24 -0
  101. package/web/i18n/commands.js +34 -0
  102. package/web/i18n/decisions.js +24 -0
  103. package/web/i18n/devlog.js +60 -0
  104. package/web/i18n/diagram.js +12 -0
  105. package/web/i18n/enroll.js +22 -0
  106. package/web/i18n/gc.js +38 -0
  107. package/web/i18n/lastsent.js +10 -0
  108. package/web/i18n/main.d.ts +4 -0
  109. package/web/i18n/main.js +527 -0
  110. package/web/i18n/manual.d.ts +4 -0
  111. package/web/i18n/manual.js +14 -0
  112. package/web/i18n/memo.js +30 -0
  113. package/web/i18n/notifications.js +16 -0
  114. package/web/i18n/profile.js +13 -0
  115. package/web/i18n/reference.js +26 -0
  116. package/web/i18n/security-inbox.js +40 -0
  117. package/web/i18n/slash.js +38 -0
  118. package/web/i18n/turn-stats.js +5 -0
  119. package/web/i18n/update.js +42 -0
  120. package/web/i18n/voice.js +28 -0
  121. package/web/i18n/wake.js +16 -0
  122. package/web/i18n/workid.js +10 -0
  123. package/web/i18n/workstatus.js +20 -0
  124. package/web/i18n.d.ts +20 -0
  125. package/web/i18n.js +63 -0
  126. package/web/index.html +156 -96
  127. package/web/lastsent.js +9 -4
  128. package/web/manual.d.ts +1 -1
  129. package/web/manual.js +11 -5
  130. package/web/memo.js +18 -13
  131. package/web/notifications.js +12 -7
  132. package/web/profile.js +42 -17
  133. package/web/reference.js +20 -15
  134. package/web/security-inbox.d.ts +18 -1
  135. package/web/security-inbox.js +173 -4
  136. package/web/slash.js +23 -13
  137. package/web/style.css +132 -3
  138. package/web/tooltip.js +5 -2
  139. package/web/turn-stats.js +6 -2
  140. package/web/update.js +31 -23
  141. package/web/voice.js +18 -8
  142. package/web/wake.d.ts +4 -0
  143. package/web/wake.js +7 -3
  144. package/web/workid.js +12 -2
  145. package/web/workstatus.js +36 -32
@@ -0,0 +1,363 @@
1
+ {
2
+ "schema": 1,
3
+ "revision": 3,
4
+ "upstream": {
5
+ "omo": "5.1.51",
6
+ "senpi": "2026.10.27-1"
7
+ },
8
+ "candidate": "<zigmini home>/omo/5.1.51-zgw.3",
9
+ "pristine": "<zigmini home>/omo/5.1.51",
10
+ "entrypoint": "node_modules/@code-yeongyu/senpi/dist/cli.js",
11
+ "patchRoot": "node_modules",
12
+ "patches": [
13
+ "omo-5.1.51-rpc-port.patch",
14
+ "omo-5.1.51-compaction-port.patch",
15
+ "omo-5.1.51-provider-port.patch",
16
+ "omo-5.1.51-runtime-compat.patch",
17
+ "omo-5.1.51-compaction-recovery.patch",
18
+ "omo-5.1.51-provider-failover.patch",
19
+ "omo-5.1.51-compaction-long-context.patch"
20
+ ],
21
+ "files": [
22
+ {
23
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/agent-session.d.ts",
24
+ "originalSha256": "fe9db7d95507f53b353b4bf8b2c11d0b394fda2cca78b241a516fff495569cc5",
25
+ "patchedSha256": "6f4688907b1d3ecd433647968a8423d608e3f27c8c9538568ba323570db6bfe5"
26
+ },
27
+ {
28
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/agent-session.js",
29
+ "originalSha256": "6bc07b317862db56e6277767320673ac87cdc637751f365c00ad861df39f22e0",
30
+ "patchedSha256": "81b8c282c4cbeb376f9294599cacf2ab3fd25bdcb8e054e5e52b52e398e38656"
31
+ },
32
+ {
33
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/auth-storage.js",
34
+ "originalSha256": "a2bad3680e53d7340a571e4c8cb9fa72a3f6cd8a1759230756313448701fb4da",
35
+ "patchedSha256": "dbcc5c2c6123d7a0a30f3a9494840161be7d7dcaedfda72223fe557745c1db8d"
36
+ },
37
+ {
38
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/client-message-identity.d.ts",
39
+ "originalSha256": "4e0237e17c7679e5a909474f3dd1219a379e42ac4bccb151309e8dd6f772f45d",
40
+ "patchedSha256": "8d6a328ffb6600120ea4dd76c1a456d9d22dfe34dad380e576e5ab95d56a4e72"
41
+ },
42
+ {
43
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/client-message-identity.js",
44
+ "originalSha256": "2f6a8601aa879e11e37322d939ebd0f31ed21b51735d0f71f6833ee85d3b1c75",
45
+ "patchedSha256": "dd2427652a7a1b0bf07a18bddfc9ffc2f48140376eb6349e7ff3c350d508c447"
46
+ },
47
+ {
48
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/compaction/compaction.js",
49
+ "originalSha256": "d8221498ad204fb88c1230eb2f0957b3a442d8cb7355892783494fe906153f6f",
50
+ "patchedSha256": "fbb324e1d0858d32b578393c29d49b0c32f5cb3523f2d612c2ff356a5ff6adf1"
51
+ },
52
+ {
53
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/credential-accounts.js",
54
+ "originalSha256": "5d16490e1ff44d2672b408b580788c77480709d7207c1adaebe859f735c53c74",
55
+ "patchedSha256": "d64900e93c6d18c7740bbbff9d25d385390af8222a1bdb8dbd10c77c5b95cd99"
56
+ },
57
+ {
58
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/anthropic-subscription/auth-lane.d.ts",
59
+ "originalSha256": "5fb74a81bb1df7b3447b8d93667716ef75f9c45e53eb73cfedac2ada96cf448f",
60
+ "patchedSha256": "b878a72c14e9963e101c8207c9e7e0ef574bed3ae61fcd3bfb4893a368cd72d1"
61
+ },
62
+ {
63
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/anthropic-subscription/auth-lane.js",
64
+ "originalSha256": "c97754802bfeaf2f204caad0067dd0f84b43f8ff044ed9c302fe09b10292fa2b",
65
+ "patchedSha256": "dde8a4ca6245bda92fb750bd7a7ea6208f096b79d3742dbe643eb2abca6fea08"
66
+ },
67
+ {
68
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/anthropic-subscription/cold-seed-images.js",
69
+ "originalSha256": "f40ff494a945bc5188dca010476cac76ae60f178f67d5391457a04e7f266c16e",
70
+ "patchedSha256": "c731cc5ff69c2056bdb9ec721a797733bbfc9026d8c9e318db25e26881cec34f"
71
+ },
72
+ {
73
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/anthropic-subscription/errors.js",
74
+ "originalSha256": "5b33971bc419a3820859a12f768cd1759c4456d265a96537e68d83f392b4b122",
75
+ "patchedSha256": "e932b1ab16e7c1af0e94a34ea71ee670dbf856d34ed170841394b3ebb86e37d0"
76
+ },
77
+ {
78
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/anthropic-subscription/refusal.js",
79
+ "originalSha256": "d13ad77fff8128a833494dfd1eb95760bca3f57621c9e3cb36b0370407e58c46",
80
+ "patchedSha256": "c311630e330510f66e4626ae64c3cac8095130c849ba299f5870e4d4c0951f5a"
81
+ },
82
+ {
83
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/anthropic-subscription/stream.js",
84
+ "originalSha256": "600dd50df1f34d7367636510a5e63106d674024454ac0c0501d97a266098c489",
85
+ "patchedSha256": "86436c9ba31895ad99da8fd097b3a7dbbcfd71325a959ae574e93c642a2b4623"
86
+ },
87
+ {
88
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/ask-user/pending.js",
89
+ "originalSha256": "0f8156f0cdd1fbc4bb08486d0b8b6ff5f821b9ac5df4cf5056714689fb2bb0c5",
90
+ "patchedSha256": "b184fd3c609e84ff9bd1bbd49e5316ec5dfd518496145c544760aaf0ac36b808"
91
+ },
92
+ {
93
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/ask-user/resume.js",
94
+ "originalSha256": "8cf3cd4ddeeb4d30623abd79d27dd6b328005dec3d8388cc944528366fcaa71b",
95
+ "patchedSha256": "62d04e55d1c4838cbfced190de8febd69fe4706ef4dc48ffb7299158d502d89a"
96
+ },
97
+ {
98
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/ask-user/schema.js",
99
+ "originalSha256": "60bc79d6dc134c5c0f3af3fd955995ad0ace904bbaa2cbea88456be1435c298b",
100
+ "patchedSha256": "60e2bee4329db1be1ee9008819c6b0a1e734f20d7815ee71e8e9dd4fd4c0597f"
101
+ },
102
+ {
103
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/ask-user/tool.js",
104
+ "originalSha256": "0e53c1d025ebfc29c7768f98b880e0bf67cdf97be750ec5d5e823c88f9a1ce27",
105
+ "patchedSha256": "9bc3328ff10dd4afbc81eabb1a1472814bedb58ee25afee7cd0cd6e820ee2fe5"
106
+ },
107
+ {
108
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/compaction/context-pipeline.js",
109
+ "originalSha256": "9af989447ef4145f25e58fb421a42d98af5a544b5297c1b66f9577ca285c2fe9",
110
+ "patchedSha256": "4f581e666a0b104c230b13f2e2af568d7dfca647aafb72ead0416e958b1d1320"
111
+ },
112
+ {
113
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/compaction/context-reduction-handoff.js",
114
+ "originalSha256": "e02c76847d5060bf9f1527786c0a545143bfc7c5a77ecc194341d48564ebaed1",
115
+ "patchedSha256": "b73ef15250be05560b912d61a42816928b54584fabb4bfb96c2fdd3eaa544f2f"
116
+ },
117
+ {
118
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/compaction/context-reduction-lifecycle.js",
119
+ "originalSha256": "6c2a30053a0ff1d8c2c16471ac329f9927777c821dd1fb3c5e73a8bbd7c9e06b",
120
+ "patchedSha256": "b6ebc56683a9abd768f4bc1dfaddaea28dbdc7a24586254729700836d93f3a5e"
121
+ },
122
+ {
123
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/compaction/deterministic-fallback.js",
124
+ "originalSha256": "9d321346b38065aad0be09a9675f60056f3b8f161a3d3ef1645acea5d8ad7d98",
125
+ "patchedSha256": "a595ad668101c6d578eb896d7d438c950a73e1eec979a6b0acc04a66aedbb9d0"
126
+ },
127
+ {
128
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/compaction/emergency-prune.js",
129
+ "originalSha256": "64487d2e21273bd5a735485507e12a10c1039e6ecde548722e8e2c4e4d3b4773",
130
+ "patchedSha256": "f797852b4121294e75a640f191a23487755a50dadd72f1ecdf4fffd0709e7d6a"
131
+ },
132
+ {
133
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/compaction/extension-wiring.js",
134
+ "originalSha256": "0612dc35d11ccee5b4b630dae9504f829ab81bf0aa4c8eab35d1aba617174a3f",
135
+ "patchedSha256": "b31fb360328ab169eb1c80cc8f4ca165058303858781b09c4ef6f706a78ef90a"
136
+ },
137
+ {
138
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/compaction/index.js",
139
+ "originalSha256": "40c44a1c1646eaf6d77d7cc8595c73e8e941238e63be926812730c67379bd98b",
140
+ "patchedSha256": "861ecef9412c7dd7014f2424fc9be18fbec5668e65318b5f51075e1efa463489"
141
+ },
142
+ {
143
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/compaction/lane-policy.js",
144
+ "originalSha256": "695d3c4e423c8fcf2c98b699df61f7286525db1ed9f01383531eee002285c33f",
145
+ "patchedSha256": "3b9703a66650165c19f0baeb58d20621c1971a54579ce09322c257e37f407e8a"
146
+ },
147
+ {
148
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/compaction/openai-remote-convert.js",
149
+ "originalSha256": "a2eae1acead0a92eaddaa9a0bea56902a05bd33656635dd90b8d7fe84d9d24a0",
150
+ "patchedSha256": "921aeaaadd7b2d12dd4cf5737f4ff6176006cda976960721216a1b5b4a5126a8"
151
+ },
152
+ {
153
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/compaction/openai-remote-responses-v2.js",
154
+ "originalSha256": "9f937de797e3bdabaade5cf1b9dea1f87c7919c93edefe142cd8b2453669a7c4",
155
+ "patchedSha256": "7971f9e942600b5177071c0e2a730b21b5d56d9359f40dd7179c60b166ae7dfa"
156
+ },
157
+ {
158
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/compaction/openai-remote-schema.js",
159
+ "originalSha256": "5154b38ef8fa50626edc444d2111ed931dc72bd3616a5845776995012f501e8e",
160
+ "patchedSha256": "bdc77c75215818fc069bc1136380c9c9f1285a702e03cfa1e829f4b35b2c4531"
161
+ },
162
+ {
163
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/compaction/openai-remote-timeout.d.ts",
164
+ "originalSha256": "f31c61df9f81ff3b7bacf4565463fc5f582b604cc40a5cd81b2f72c5fe2015db",
165
+ "patchedSha256": "c7d2cfe0ddd2eaeabd5de7bf3227e20663fa77cc65b94731d6434ff27bcb9a9f"
166
+ },
167
+ {
168
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/compaction/openai-remote-timeout.js",
169
+ "originalSha256": "357781e9fc41f840c2048958a784be075595c1dce9c5cf716940bdfe771681d1",
170
+ "patchedSha256": "0b784132fbd8f88128e35f0c349bd379545bb6bd593bf2f92de6eb6ac54e7656"
171
+ },
172
+ {
173
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/compaction/openai-remote.d.ts",
174
+ "originalSha256": "fd88e424fc05e44ebdac55b538d741f4735b784e2de076c799c2f42a7a043f4e",
175
+ "patchedSha256": "1044b0733e2837a90477539595d2ff142e56abef46c820b3467b5b80d63ef89c"
176
+ },
177
+ {
178
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/compaction/openai-remote.js",
179
+ "originalSha256": "7b03f8260171264b833cc7175232512e11f3fad6e93ca58544641c0403f580da",
180
+ "patchedSha256": "4ee9d1e32528b749ade763b14b545f5bf39837ce00498503c2cf3b7cc3eabb0f"
181
+ },
182
+ {
183
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/compaction/prompts.js",
184
+ "originalSha256": "c73e97ece6b269087daf52f2489c8bf5cbd456a3ccc70c0274c1a586323fa707",
185
+ "patchedSha256": "fd6ab6c45074370905784e202dadc6ddb15f82b48c464982514d3ad21996fbb3"
186
+ },
187
+ {
188
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/compaction/rejected-recovery.d.ts",
189
+ "originalSha256": "40e74e75a77ac0f89ef931385e0f88c3a5d188e2aed06ac295ddfac598ea4464",
190
+ "patchedSha256": "c971ea885902b4aad77f5e5dc0b362410f8294b204a372f077ac24fdd7c685ae"
191
+ },
192
+ {
193
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/compaction/rejected-recovery.js",
194
+ "originalSha256": "dccd1cba630ed1674343fae06b21bc081712668481969692ec6e4a246107ca22",
195
+ "patchedSha256": "72ba7ec7ed4e37a26f43582b8c13036cca81965d113659161831075bdad7effb"
196
+ },
197
+ {
198
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/compaction/speculative-summary.js",
199
+ "originalSha256": "25dc617e8b999f7b38e638287df81790768279aa78a607e692ccd2b108b88ada",
200
+ "patchedSha256": "4144c9de1c47ce6a30129627f4b75b5f8346361414ba380417349d14a1adac14"
201
+ },
202
+ {
203
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/compaction/speculative.d.ts",
204
+ "originalSha256": "826ec46e212f2378a68bf55fa2ba1b406d6a225e81549983361cf54480388f32",
205
+ "patchedSha256": "c6905129db24abac73f9c820519ae21e4fab606a214b820a5d5ee3428c84144b"
206
+ },
207
+ {
208
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/compaction/speculative.js",
209
+ "originalSha256": "55332e85de550ea1b3f0c25df4898897fbe646c468fe7bf82ddacb16742becc7",
210
+ "patchedSha256": "4dd12f2526c20b7ccace63d8faf7a9128da1c71dd2c1958509b13dc0f43665f5"
211
+ },
212
+ {
213
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/compaction/task-intent.js",
214
+ "originalSha256": "3d78e7e232c172a57af0e919cf0b0b34c98282f235c2d400e4c0bba7f47d545d",
215
+ "patchedSha256": "7d720224b2d12fa9e6a4e47b6d1166910e12e853574f1bdbbf892307b9f64204"
216
+ },
217
+ {
218
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/permission-system/events.d.ts",
219
+ "originalSha256": "8fb12fba44abc0066360248855951833eca3684b0d340579db3409afe8a2c767",
220
+ "patchedSha256": "33b3c3f0257ffa9c1fb2158e533b59a3fab21e4dbfd10779e94f4f25d3589b10"
221
+ },
222
+ {
223
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/permission-system/events.js",
224
+ "originalSha256": "0cb3728dc72f402fe22c3a5d6bfd2b0d04c6f19e5b34a4bbba5bfd30036df76d",
225
+ "patchedSha256": "481473e54efa40db7026b8f7e746da3bd83fd576c86567cab2c9c182c2f4c6d2"
226
+ },
227
+ {
228
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/permission-system/index.js",
229
+ "originalSha256": "766231db41d65ded9d8f6dff02cee4c7db8475618cec3a9e4c63ff363b6fae66",
230
+ "patchedSha256": "c6ef2ab80b596f2ef2d884278cb015fe0e70ffb470ba467ec2de236613f7c814"
231
+ },
232
+ {
233
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/permission-system/internal-tools.js",
234
+ "originalSha256": "55e3bf1812cb479ea837fec6cf64b7c259c286ac33a3f9157b5f1c0720786728",
235
+ "patchedSha256": "e896a42e849d4ae162ee701e80defbf57dbd5ee0e55166589bd81a0c4fbe532b"
236
+ },
237
+ {
238
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/permission-system/prompt.js",
239
+ "originalSha256": "2541d6c3cc480ef6c2f3f35f1d4341edebdf560fcf35efd018ce115f6d66df4b",
240
+ "patchedSha256": "368dfffd9ef92c1de263f4087df5314fcb815cc69412159c97491693172f0720"
241
+ },
242
+ {
243
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/permission-system/service.js",
244
+ "originalSha256": "6ab78157291d0f716f13c28c513cdb8f6d4aa164f6743072e08472d15e23a4b5",
245
+ "patchedSha256": "3032b33ae9cc2ee71d04ecaa6e7ef88d50f6b04d650bd102450c626dc07b3043"
246
+ },
247
+ {
248
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/permission-system/types.d.ts",
249
+ "originalSha256": "8d932968f873297329acace2693696ce99a1c1131d0a8567f8e3ad00a9642679",
250
+ "patchedSha256": "787389a9ad318a5913456342881752a700535368164f996685f5eab9dc62a0c2"
251
+ },
252
+ {
253
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/runner.js",
254
+ "originalSha256": "b46fb6d7c52ceb1dd453ebde2868c37f13fd4a9df5dccab971a805d2facade71",
255
+ "patchedSha256": "aacef7f1f8ddf081e9b09c9724557647b78e043f9cb1b283f1629769bdbfd621"
256
+ },
257
+ {
258
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/types.d.ts",
259
+ "originalSha256": "ae1efdb5f5f68c3aa0d147d8f2828552ebcb6ec95b54817cb90393b927abcc20",
260
+ "patchedSha256": "a8c90acd1c4325130d98a0a10840bf35ca5f81b6d6e63592d2581db276482fb4"
261
+ },
262
+ {
263
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/model-runtime.js",
264
+ "originalSha256": "93390b951a8282d42d0a7ab69c44b8180d1647bcd1e163d3961c76b884ad8463",
265
+ "patchedSha256": "3f5a7c49c1453f399749e3d8f9cd41ee8ccedb0bc50038b36a46b2ae135859b3"
266
+ },
267
+ {
268
+ "path": "node_modules/@code-yeongyu/senpi/dist/modes/rpc/client-input-handler.js",
269
+ "originalSha256": "a5b2941f7aec5e8308a43b25f86a77512fdfdc84023cada38a624e47d5386a0e",
270
+ "patchedSha256": "f1ef159227eb458193c891e631a6dace61d22fc8bc02a746943172390509624e"
271
+ },
272
+ {
273
+ "path": "node_modules/@code-yeongyu/senpi/dist/modes/rpc/connection-handler.js",
274
+ "originalSha256": "df28c8c8aca7c01633510e2a892a1cca6cfef785f15e44c026a997788543e570",
275
+ "patchedSha256": "6c539f4ba8b29019df69f88404779b3350fbaaad1f4230c5182305c4360bad7f"
276
+ },
277
+ {
278
+ "path": "node_modules/@code-yeongyu/senpi/dist/modes/rpc/connection-question-bridge.js",
279
+ "originalSha256": "0c1d2049ccd1208b3b4324518a981ae6c138977c653a1d73fe2b8a021d587e79",
280
+ "patchedSha256": "0d1cfddc64180026845273957670fbe24176aaffa1abef325bca763332b00743"
281
+ },
282
+ {
283
+ "path": "node_modules/@code-yeongyu/senpi/dist/modes/rpc/multi-session-host.js",
284
+ "originalSha256": "97a038f5e753c9af2a3690b9ca19c8e4e5a21c6b4fb8d9578db825d9e6dc2cd1",
285
+ "patchedSha256": "f7374512bbd86f535d8ec8227436ada4f26b000f77eacff3217c809d3ff72489"
286
+ },
287
+ {
288
+ "path": "node_modules/@code-yeongyu/senpi/dist/modes/rpc/rpc-input-validation.js",
289
+ "originalSha256": "510e5a4f40b4f8c5fc03e262cbb75e8308359d58bd6adc490ce05aaf221244f5",
290
+ "patchedSha256": "71c4ab85d43cada62f615b5385af50059a60e63cc3b6f70c880b5bf0d00ee9e3"
291
+ },
292
+ {
293
+ "path": "node_modules/@code-yeongyu/senpi/dist/modes/rpc/rpc-session-state.js",
294
+ "originalSha256": "7ca916eb918090ee95282ab9745fcb88d541178879ca695e04f5bc6671e855b1",
295
+ "patchedSha256": "3ed1046c3a2d7a7641fb6d7d5a533edf97743e7649c3d3ce097f255720603102"
296
+ },
297
+ {
298
+ "path": "node_modules/@code-yeongyu/senpi/dist/modes/rpc/session-command-router.js",
299
+ "originalSha256": "abf376df630041cac726b0e636af23a08e460fce3bc42e4c133fbb56eab2676e",
300
+ "patchedSha256": "6a90c9217541973c2f8a8bfcdf484254cb5df78052ab0a6f3d80c6a4f1a5a072"
301
+ },
302
+ {
303
+ "path": "node_modules/@earendil-works/pi-agent-core/dist/agent.d.ts",
304
+ "originalSha256": "884ebc3eac83b37bb1958b3528940007921ea9d043cc3ba16fe3d2c908acdcd3",
305
+ "patchedSha256": "a9919b6168b09aa94d92e081984f151a3ce7753305d7c9b4cd1cfcf22e1d4461"
306
+ },
307
+ {
308
+ "path": "node_modules/@earendil-works/pi-agent-core/dist/agent.js",
309
+ "originalSha256": "424a417fd61f6994f1084ab41059c37219461550700c3e8501592152d39fd3d5",
310
+ "patchedSha256": "a3a5056faa7e7d3d5a27d639f7538592f05c3eacdf70010a446541014005c710"
311
+ },
312
+ {
313
+ "path": "node_modules/@earendil-works/pi-ai/dist/types.d.ts",
314
+ "originalSha256": "e02477744626af091150b401646dd9ff1816ef82258eefbcc0bfb42b1b709fe8",
315
+ "patchedSha256": "6d829b06724290da4bfa2d1cc596afb24de5dcc1add691edd7580e4c9f7c9b08"
316
+ },
317
+ {
318
+ "path": "node_modules/omo-ai/bin/lib/package-paths.js",
319
+ "originalSha256": "da57bd6016ab85a0f65f53cde53ca3b2e8606e2efc515bcb592d637c24401e67",
320
+ "patchedSha256": "b99f4ea56abecc7950f06c67fb0f538148e9baae4027c9b55f5debf130479686"
321
+ },
322
+ {
323
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/tps.js",
324
+ "originalSha256": "5889f6c9c04bc3775edeff1621504ae03cbcbc2273e2969d15599632962153f0",
325
+ "patchedSha256": "4ed77b4015ff9324ae5e3c363e1426f27968da8f985a46a7a48ffc724c08e9df"
326
+ },
327
+ {
328
+ "path": "node_modules/@code-yeongyu/senpi/dist/modes/rpc/session-router-close.js",
329
+ "originalSha256": "edbce53e7f808453afc9bd25201c3c2af702fa0ab2d804a146e4e2ed8a984ba3",
330
+ "patchedSha256": "e2d1f3ad6688ecbb446bed8fcd9bc66c3bdc37d347ce732ab64aacdf52348974"
331
+ },
332
+ {
333
+ "path": "node_modules/@code-yeongyu/senpi/dist/modes/rpc/session-router-open.js",
334
+ "originalSha256": "9b113e3470ae3bccb7377d7547d6984fd6a2ce13df0d9933c2f5ecfd543bedfb",
335
+ "patchedSha256": "eecbc65a009e3f273134a55d4f900da316d6d9c04e309838422c58ac41bf3e6e"
336
+ },
337
+ {
338
+ "path": "node_modules/@code-yeongyu/senpi/dist/modes/rpc/rpc-session-command-types.d.ts",
339
+ "originalSha256": "c2863929f5803edc4bebb71d120d4d155d1b19f6b43143ca109beef7a8ed5ba3",
340
+ "patchedSha256": "59089d04fc68bc89df84d56bee1f79ba7d2db184725780e7b5f9640e083f08a0"
341
+ },
342
+ {
343
+ "path": "node_modules/@code-yeongyu/senpi/dist/modes/rpc/rpc-session-state-types.d.ts",
344
+ "originalSha256": "b06a50d21c87a9ea7b1f81009e1f532748ceb9848bbbb6e961795e47ad1e9f4d",
345
+ "patchedSha256": "5b383e28e36028b33d3bd2cb480772d03a31964a8f88b33a5058ccb568d2bb9e"
346
+ },
347
+ {
348
+ "path": "node_modules/@code-yeongyu/senpi/dist/modes/rpc/rpc-mutation-response-types.d.ts",
349
+ "originalSha256": "e1e78903a8243846ae607597bcd59fdbf978f6da4cc30df12266e939334ae914",
350
+ "patchedSha256": "00d4fb7ade7227733e254b99df408902878637039cf45d49cb0c1ae12d231913"
351
+ },
352
+ {
353
+ "path": "node_modules/@code-yeongyu/senpi/dist/modes/rpc/rpc-question-types.d.ts",
354
+ "originalSha256": "15ae123b12770fe7a2e8891ba06faebe9680db68b2f8990331e324a2e49b3b71",
355
+ "patchedSha256": "4f3c6f400fe5b5f2c54e6c9d901ffe34371f76106286dc1c97d465ae24d66c70"
356
+ },
357
+ {
358
+ "path": "node_modules/@code-yeongyu/senpi/dist/core/extensions/builtin/anthropic-subscription/failover.js",
359
+ "originalSha256": "bcc9dbb3aaafbbd2840d95635c00d31d062ff1b61450ec039042873c71f8f51e",
360
+ "patchedSha256": "007bac87475fff79afd3070c023e668747399ae30156b4bf8db9e2bdab9c2d98"
361
+ }
362
+ ]
363
+ }
@@ -0,0 +1,50 @@
1
+ --- a/@code-yeongyu/senpi/dist/core/extensions/builtin/anthropic-subscription/errors.js
2
+ +++ b/@code-yeongyu/senpi/dist/core/extensions/builtin/anthropic-subscription/errors.js
3
+ @@ -90,7 +90,9 @@ function classifyErrorKind(error) {
4
+ const text = errorText(error).toLowerCase();
5
+ // Claude Code reports an account without the 1M window under the rate_limit code. It is a window
6
+ // entitlement, not a limit: retry at the standard window instead of blocking the account (senpi#3408).
7
+ - if (/\b(?:extra usage|usage credits) (?:is|are) required for long context\b/.test(text)) {
8
+ + // Claude Code also words it "Usage credits required for 1M context · turn on usage credits".
9
+ + if (/\b(?:extra usage|usage credits) (?:is|are) required for long context\b/.test(text) ||
10
+ + /\busage credits required for 1m context\b/.test(text)) {
11
+ return { kind: "long_context_unavailable", retryable: true };
12
+ }
13
+ if (/\b(enotfound|eai_again|econnreset|econnrefused|etimedout|enetunreach|ehostunreach|und_err_connect_timeout|und_err_socket)\b|fetch failed|socket hang up|connection reset by peer/.test(text)) {
14
+ --- a/@code-yeongyu/senpi/dist/core/extensions/builtin/anthropic-subscription/failover.js
15
+ +++ b/@code-yeongyu/senpi/dist/core/extensions/builtin/anthropic-subscription/failover.js
16
+ @@ -366,6 +366,13 @@ export async function* runFailover(options) {
17
+ event.nextAccount = options.selectFn(accounts);
18
+ }
19
+ }
20
+ + catch (selectError) {
21
+ + // Keep the failure that blocked this account: without it the caller sees only
22
+ + // "all accounts blocked" and loses the provider's own reason.
23
+ + if (selectError !== null && typeof selectError === "object" && selectError.original === undefined)
24
+ + selectError.original = classified;
25
+ + throw selectError;
26
+ + }
27
+ finally {
28
+ await options.onFailover?.(event);
29
+ }
30
+ --- a/@code-yeongyu/senpi/dist/core/extensions/builtin/compaction/speculative-summary.js
31
+ +++ b/@code-yeongyu/senpi/dist/core/extensions/builtin/compaction/speculative-summary.js
32
+ @@ -1,4 +1,4 @@
33
+ -import { sanitizeAnthropicToolPairs as sanitizeAnthropicPayload, } from "@earendil-works/pi-ai";
34
+ +import { sanitizeAnthropicToolPairs as sanitizeAnthropicPayload, uuidv7, } from "@earendil-works/pi-ai";
35
+ import { stream } from "@earendil-works/pi-ai/compat";
36
+ import { estimateTokens } from "../../../compaction/compaction.js";
37
+ import { consumeStreamWithIdleTimeout, DEFAULT_SUMMARIZATION_IDLE_TIMEOUT_MS, summarizationMaxDurationMs, } from "../../../compaction/stream-watchdog.js";
38
+ @@ -122,7 +122,12 @@ export async function generateSummaryMessage(options) {
39
+ const headers = providerRequest
40
+ ? await providerRequest.transformHeaders(options.auth.headers ?? {})
41
+ : options.auth.headers;
42
+ + // Same request identity split as completeSummarization: a fresh request id, with account
43
+ + // affinity and failover blocks bound to the caller's session instead of the shared store.
44
+ + const affinitySessionId = options.context.sessionManager?.getSessionId?.();
45
+ const responseStream = summarizationStream(options.context, options.snapshot.model, requestContext, {
46
+ + sessionId: uuidv7(),
47
+ + ...(affinitySessionId ? { affinitySessionId } : {}),
48
+ apiKey: options.auth.apiKey,
49
+ headers,
50
+ extraBody: options.auth.extraBody,