twinny 0.0.0-dev.260525150705
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/LICENSE +21 -0
- package/README.md +264 -0
- package/README.zh-CN.md +252 -0
- package/configs/banner.png +0 -0
- package/configs/logo.png +0 -0
- package/dist/app/caffeinate.d.ts +28 -0
- package/dist/app/caffeinate.js +96 -0
- package/dist/app/caffeinate.js.map +1 -0
- package/dist/app/daemon.d.ts +1 -0
- package/dist/app/daemon.js +44 -0
- package/dist/app/daemon.js.map +1 -0
- package/dist/app/lark-assets.d.ts +25 -0
- package/dist/app/lark-assets.js +108 -0
- package/dist/app/lark-assets.js.map +1 -0
- package/dist/app/startup-probe.d.ts +17 -0
- package/dist/app/startup-probe.js +90 -0
- package/dist/app/startup-probe.js.map +1 -0
- package/dist/app/wiring.d.ts +122 -0
- package/dist/app/wiring.js +694 -0
- package/dist/app/wiring.js.map +1 -0
- package/dist/cli/commands.d.ts +1 -0
- package/dist/cli/commands.js +47 -0
- package/dist/cli/commands.js.map +1 -0
- package/dist/cli/install-wizard.d.ts +41 -0
- package/dist/cli/install-wizard.js +629 -0
- package/dist/cli/install-wizard.js.map +1 -0
- package/dist/codex/appserver.d.ts +109 -0
- package/dist/codex/appserver.js +308 -0
- package/dist/codex/appserver.js.map +1 -0
- package/dist/codex/goal.d.ts +64 -0
- package/dist/codex/goal.js +433 -0
- package/dist/codex/goal.js.map +1 -0
- package/dist/codex/index.d.ts +6 -0
- package/dist/codex/index.js +7 -0
- package/dist/codex/index.js.map +1 -0
- package/dist/codex/protocol.d.ts +95 -0
- package/dist/codex/protocol.js +205 -0
- package/dist/codex/protocol.js.map +1 -0
- package/dist/codex/thread-name.d.ts +3 -0
- package/dist/codex/thread-name.js +27 -0
- package/dist/codex/thread-name.js.map +1 -0
- package/dist/codex/thread.d.ts +76 -0
- package/dist/codex/thread.js +80 -0
- package/dist/codex/thread.js.map +1 -0
- package/dist/codex/turn.d.ts +166 -0
- package/dist/codex/turn.js +746 -0
- package/dist/codex/turn.js.map +1 -0
- package/dist/config/bootstrap.d.ts +14 -0
- package/dist/config/bootstrap.js +56 -0
- package/dist/config/bootstrap.js.map +1 -0
- package/dist/config/index.d.ts +4 -0
- package/dist/config/index.js +5 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loader.d.ts +49 -0
- package/dist/config/loader.js +467 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/paths.d.ts +11 -0
- package/dist/config/paths.js +43 -0
- package/dist/config/paths.js.map +1 -0
- package/dist/config/secrets.d.ts +33 -0
- package/dist/config/secrets.js +85 -0
- package/dist/config/secrets.js.map +1 -0
- package/dist/conversation/manager.d.ts +701 -0
- package/dist/conversation/manager.js +7673 -0
- package/dist/conversation/manager.js.map +1 -0
- package/dist/conversation/queue.d.ts +8 -0
- package/dist/conversation/queue.js +28 -0
- package/dist/conversation/queue.js.map +1 -0
- package/dist/conversation/routing.d.ts +11 -0
- package/dist/conversation/routing.js +55 -0
- package/dist/conversation/routing.js.map +1 -0
- package/dist/errors.d.ts +6 -0
- package/dist/errors.js +17 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/lark/auth.d.ts +41 -0
- package/dist/lark/auth.js +132 -0
- package/dist/lark/auth.js.map +1 -0
- package/dist/lark/browser-auth.d.ts +68 -0
- package/dist/lark/browser-auth.js +258 -0
- package/dist/lark/browser-auth.js.map +1 -0
- package/dist/lark/cards.d.ts +140 -0
- package/dist/lark/cards.js +1150 -0
- package/dist/lark/cards.js.map +1 -0
- package/dist/lark/contact.d.ts +41 -0
- package/dist/lark/contact.js +122 -0
- package/dist/lark/contact.js.map +1 -0
- package/dist/lark/events.d.ts +65 -0
- package/dist/lark/events.js +218 -0
- package/dist/lark/events.js.map +1 -0
- package/dist/lark/files.d.ts +36 -0
- package/dist/lark/files.js +191 -0
- package/dist/lark/files.js.map +1 -0
- package/dist/lark/filters.d.ts +73 -0
- package/dist/lark/filters.js +678 -0
- package/dist/lark/filters.js.map +1 -0
- package/dist/lark/index.d.ts +10 -0
- package/dist/lark/index.js +11 -0
- package/dist/lark/index.js.map +1 -0
- package/dist/lark/messages.d.ts +87 -0
- package/dist/lark/messages.js +428 -0
- package/dist/lark/messages.js.map +1 -0
- package/dist/lark/openapi.d.ts +58 -0
- package/dist/lark/openapi.js +206 -0
- package/dist/lark/openapi.js.map +1 -0
- package/dist/lark/redactor.d.ts +5 -0
- package/dist/lark/redactor.js +68 -0
- package/dist/lark/redactor.js.map +1 -0
- package/dist/lark/types.d.ts +49 -0
- package/dist/lark/types.js +18 -0
- package/dist/lark/types.js.map +1 -0
- package/dist/launchd/install.d.ts +22 -0
- package/dist/launchd/install.js +114 -0
- package/dist/launchd/install.js.map +1 -0
- package/dist/launchd/plist.d.ts +10 -0
- package/dist/launchd/plist.js +61 -0
- package/dist/launchd/plist.js.map +1 -0
- package/dist/lock/index.d.ts +20 -0
- package/dist/lock/index.js +74 -0
- package/dist/lock/index.js.map +1 -0
- package/dist/main.d.ts +2 -0
- package/dist/main.js +11 -0
- package/dist/main.js.map +1 -0
- package/dist/markdown.d.ts +12 -0
- package/dist/markdown.js +149 -0
- package/dist/markdown.js.map +1 -0
- package/dist/observability/health.d.ts +25 -0
- package/dist/observability/health.js +187 -0
- package/dist/observability/health.js.map +1 -0
- package/dist/observability/logs.d.ts +10 -0
- package/dist/observability/logs.js +34 -0
- package/dist/observability/logs.js.map +1 -0
- package/dist/observability/system-notifications.d.ts +25 -0
- package/dist/observability/system-notifications.js +33 -0
- package/dist/observability/system-notifications.js.map +1 -0
- package/dist/profiles/guest.d.ts +19 -0
- package/dist/profiles/guest.js +241 -0
- package/dist/profiles/guest.js.map +1 -0
- package/dist/profiles/index.d.ts +5 -0
- package/dist/profiles/index.js +14 -0
- package/dist/profiles/index.js.map +1 -0
- package/dist/profiles/owner.d.ts +1 -0
- package/dist/profiles/owner.js +6 -0
- package/dist/profiles/owner.js.map +1 -0
- package/dist/store/db.d.ts +10 -0
- package/dist/store/db.js +29 -0
- package/dist/store/db.js.map +1 -0
- package/dist/store/index.d.ts +3 -0
- package/dist/store/index.js +4 -0
- package/dist/store/index.js.map +1 -0
- package/dist/store/migrations.d.ts +13 -0
- package/dist/store/migrations.js +79 -0
- package/dist/store/migrations.js.map +1 -0
- package/dist/store/repositories.d.ts +227 -0
- package/dist/store/repositories.js +1384 -0
- package/dist/store/repositories.js.map +1 -0
- package/dist/telemetry/client.d.ts +60 -0
- package/dist/telemetry/client.js +204 -0
- package/dist/telemetry/client.js.map +1 -0
- package/dist/telemetry/hash.d.ts +1 -0
- package/dist/telemetry/hash.js +8 -0
- package/dist/telemetry/hash.js.map +1 -0
- package/dist/telemetry/index.d.ts +4 -0
- package/dist/telemetry/index.js +5 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/posthog.d.ts +27 -0
- package/dist/telemetry/posthog.js +45 -0
- package/dist/telemetry/posthog.js.map +1 -0
- package/dist/telemetry/reporter.d.ts +13 -0
- package/dist/telemetry/reporter.js +29 -0
- package/dist/telemetry/reporter.js.map +1 -0
- package/dist/types.d.ts +330 -0
- package/dist/types.js +9 -0
- package/dist/types.js.map +1 -0
- package/dist/version.d.ts +1 -0
- package/dist/version.js +1 -0
- package/dist/version.js.map +1 -0
- package/dist/version.json +3 -0
- package/dist/workspace/index.d.ts +2 -0
- package/dist/workspace/index.js +3 -0
- package/dist/workspace/index.js.map +1 -0
- package/dist/workspace/manager.d.ts +14 -0
- package/dist/workspace/manager.js +69 -0
- package/dist/workspace/manager.js.map +1 -0
- package/dist/workspace/slug.d.ts +8 -0
- package/dist/workspace/slug.js +59 -0
- package/dist/workspace/slug.js.map +1 -0
- package/migrations/0001_initial.sql +102 -0
- package/package.json +85 -0
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
import type Database from "better-sqlite3";
|
|
2
|
+
import type { CodexThreadRecord, CodexThreadGoalStatus, CodexThreadMode, CodexThreadStatus, ConversationResponseMode, ConversationRecord, ConversationType, LarkMessageRecord, LarkMessageRouteKind, LarkMessageStatus, NewConversationRecord, ProfileName } from "../types.js";
|
|
3
|
+
export interface UpsertCodexThreadInput {
|
|
4
|
+
codexThreadId: string;
|
|
5
|
+
conversationKey: string;
|
|
6
|
+
profile: ProfileName;
|
|
7
|
+
name?: string;
|
|
8
|
+
model?: string;
|
|
9
|
+
effort?: string;
|
|
10
|
+
larkThreadId?: string;
|
|
11
|
+
codexThreadHasRollout?: boolean;
|
|
12
|
+
forkedFromCodexThreadId?: string;
|
|
13
|
+
forkedAt?: number;
|
|
14
|
+
}
|
|
15
|
+
export interface InsertLarkMessageInput {
|
|
16
|
+
larkMessageId?: string;
|
|
17
|
+
eventId: string;
|
|
18
|
+
larkUserId: string;
|
|
19
|
+
larkGroupId?: string;
|
|
20
|
+
larkThreadId?: string;
|
|
21
|
+
conversationKey?: string;
|
|
22
|
+
codexThreadId?: string;
|
|
23
|
+
codexTurnId?: string;
|
|
24
|
+
routeKind: LarkMessageRouteKind;
|
|
25
|
+
status: LarkMessageStatus;
|
|
26
|
+
text: string;
|
|
27
|
+
larkCreateTime?: number;
|
|
28
|
+
sideId?: number;
|
|
29
|
+
agentCardMessageId?: string;
|
|
30
|
+
rawEventJson?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface UpdateCodexThreadTokenUsageInput {
|
|
33
|
+
codexThreadId: string;
|
|
34
|
+
conversationKey: string;
|
|
35
|
+
profile: ProfileName;
|
|
36
|
+
inputTokens: number;
|
|
37
|
+
outputTokens: number;
|
|
38
|
+
cachedInputTokens: number;
|
|
39
|
+
reasoningOutputTokens: number;
|
|
40
|
+
totalTokens: number;
|
|
41
|
+
contextTokens: number;
|
|
42
|
+
contextWindow: number;
|
|
43
|
+
tokenUsageJson: string;
|
|
44
|
+
}
|
|
45
|
+
export interface UpdateLarkMessageTokenUsageInput {
|
|
46
|
+
larkMessageId: string;
|
|
47
|
+
inputTokens: number;
|
|
48
|
+
outputTokens: number;
|
|
49
|
+
cachedInputTokens: number;
|
|
50
|
+
reasoningOutputTokens: number;
|
|
51
|
+
tokenUsageJson: string;
|
|
52
|
+
}
|
|
53
|
+
export interface UpdateCodexThreadGoalStatusInput {
|
|
54
|
+
codexThreadId: string;
|
|
55
|
+
goalStatus: CodexThreadGoalStatus;
|
|
56
|
+
goalUpdatedAt?: number;
|
|
57
|
+
}
|
|
58
|
+
export interface UpdateCodexThreadCardInput {
|
|
59
|
+
codexThreadId: string;
|
|
60
|
+
conversationKey: string;
|
|
61
|
+
profile: ProfileName;
|
|
62
|
+
model?: string;
|
|
63
|
+
effort?: string;
|
|
64
|
+
name?: string;
|
|
65
|
+
larkThreadId?: string;
|
|
66
|
+
creatorOpenId?: string;
|
|
67
|
+
cardMessageId?: string;
|
|
68
|
+
}
|
|
69
|
+
export interface CodexThreadWorkStats {
|
|
70
|
+
turnCount: number;
|
|
71
|
+
totalWorkDurationMs: number;
|
|
72
|
+
}
|
|
73
|
+
export interface CodexThreadStatusStats extends CodexThreadWorkStats {
|
|
74
|
+
userMessageCount: number;
|
|
75
|
+
}
|
|
76
|
+
export interface ConversationStatusStats {
|
|
77
|
+
topicCount: number;
|
|
78
|
+
userMessageCount: number;
|
|
79
|
+
inputTokens: number;
|
|
80
|
+
outputTokens: number;
|
|
81
|
+
cachedInputTokens: number;
|
|
82
|
+
reasoningOutputTokens: number;
|
|
83
|
+
totalTokens: number;
|
|
84
|
+
totalWorkDurationMs: number;
|
|
85
|
+
}
|
|
86
|
+
export interface ReplaceCodexThreadForLarkThreadInput {
|
|
87
|
+
conversationKey: string;
|
|
88
|
+
larkThreadId: string;
|
|
89
|
+
codexThreadId: string;
|
|
90
|
+
profile: ProfileName;
|
|
91
|
+
model?: string;
|
|
92
|
+
effort?: string;
|
|
93
|
+
codexThreadHasRollout?: boolean;
|
|
94
|
+
}
|
|
95
|
+
export interface UpdateCodexThreadModelSettingsInput {
|
|
96
|
+
codexThreadId: string;
|
|
97
|
+
model: string;
|
|
98
|
+
effort: string;
|
|
99
|
+
}
|
|
100
|
+
export interface UpdateConversationThreadBinding {
|
|
101
|
+
codexThreadId: string;
|
|
102
|
+
profile?: ProfileName;
|
|
103
|
+
profileCodexHome?: string;
|
|
104
|
+
workspace?: string;
|
|
105
|
+
}
|
|
106
|
+
export interface UpdateConversationSettingsInput {
|
|
107
|
+
type?: ConversationType;
|
|
108
|
+
name?: string;
|
|
109
|
+
responseMode?: ConversationResponseMode;
|
|
110
|
+
}
|
|
111
|
+
export interface ConversationRepositoryOptions {
|
|
112
|
+
now?: () => number;
|
|
113
|
+
}
|
|
114
|
+
export declare class ConversationRepository {
|
|
115
|
+
private readonly db;
|
|
116
|
+
private readonly now;
|
|
117
|
+
private readonly insertConversation;
|
|
118
|
+
private readonly selectByConversationKey;
|
|
119
|
+
private readonly selectByTypeAndChatId;
|
|
120
|
+
private readonly selectByCodexThreadId;
|
|
121
|
+
private readonly selectAll;
|
|
122
|
+
private readonly updateSettings;
|
|
123
|
+
private readonly updateThread;
|
|
124
|
+
private readonly markCodexThreadRollout;
|
|
125
|
+
private readonly deleteByKey;
|
|
126
|
+
private readonly upsertCodexThreadStatement;
|
|
127
|
+
private readonly selectCodexThreadById;
|
|
128
|
+
private readonly selectCodexThreadByConversationAndLarkThread;
|
|
129
|
+
private readonly replaceCodexThreadForLarkThreadStatement;
|
|
130
|
+
private readonly updateCodexThreadUsageStatement;
|
|
131
|
+
private readonly updateCodexThreadCardStatement;
|
|
132
|
+
private readonly updateCodexThreadModelSettingsStatement;
|
|
133
|
+
private readonly updateCodexThreadNameStatement;
|
|
134
|
+
private readonly updateCodexThreadModeStatement;
|
|
135
|
+
private readonly updateCodexThreadStatusStatement;
|
|
136
|
+
private readonly updateCodexThreadGoalStatusStatement;
|
|
137
|
+
private readonly selectCodexThreadWorkStats;
|
|
138
|
+
private readonly selectCodexThreadStatusStats;
|
|
139
|
+
private readonly selectConversationStatusStats;
|
|
140
|
+
private readonly insertLarkMessageStatement;
|
|
141
|
+
private readonly selectLarkMessageById;
|
|
142
|
+
private readonly selectLarkMessageByEventId;
|
|
143
|
+
private readonly selectLarkMessageUsageTargetForTurn;
|
|
144
|
+
private readonly selectLatestSteeredLarkMessageForTurn;
|
|
145
|
+
private readonly selectUnfinishedLarkMessages;
|
|
146
|
+
private readonly updateLarkMessageUsageStatement;
|
|
147
|
+
private readonly updateLarkMessageProcessingStatement;
|
|
148
|
+
private readonly updateLarkMessageSteeredStatement;
|
|
149
|
+
private readonly updateLarkMessageQueuedStatement;
|
|
150
|
+
private readonly updateQueuedLarkMessageStatement;
|
|
151
|
+
private readonly updateLarkMessageSideMetadataStatement;
|
|
152
|
+
private readonly updateLarkMessageRecalledStatement;
|
|
153
|
+
private readonly updateLarkMessageCompletedStatement;
|
|
154
|
+
private readonly updateLarkMessageFailedStatement;
|
|
155
|
+
private readonly updateLarkMessageInterruptedStatement;
|
|
156
|
+
private readonly updateLarkMessageClearedStatement;
|
|
157
|
+
constructor(db: Database.Database, options?: ConversationRepositoryOptions);
|
|
158
|
+
create(input: NewConversationRecord): ConversationRecord;
|
|
159
|
+
getOrCreate(input: NewConversationRecord): ConversationRecord;
|
|
160
|
+
getByConversationKey(conversationKey: string): ConversationRecord | undefined;
|
|
161
|
+
getByTypeAndChatId(type: ConversationType, chatId: string): ConversationRecord | undefined;
|
|
162
|
+
getByCodexThreadId(codexThreadId: string): ConversationRecord | undefined;
|
|
163
|
+
list(): ConversationRecord[];
|
|
164
|
+
updateThreadBinding(conversationKey: string, update: UpdateConversationThreadBinding): ConversationRecord;
|
|
165
|
+
updateConversationSettings(conversationKey: string, update: UpdateConversationSettingsInput): ConversationRecord;
|
|
166
|
+
markThreadHasRollout(conversationKey: string, codexThreadId: string): void;
|
|
167
|
+
deleteByConversationKey(conversationKey: string): boolean;
|
|
168
|
+
upsertCodexThread(input: UpsertCodexThreadInput): CodexThreadRecord;
|
|
169
|
+
getCodexThreadById(codexThreadId: string): CodexThreadRecord | undefined;
|
|
170
|
+
getCodexThreadByConversationAndLarkThread(conversationKey: string, larkThreadId: string): CodexThreadRecord | undefined;
|
|
171
|
+
replaceCodexThreadForLarkThread(conversationKey: string, larkThreadId: string, update: {
|
|
172
|
+
codexThreadId: string;
|
|
173
|
+
profile: ProfileName;
|
|
174
|
+
model?: string;
|
|
175
|
+
effort?: string;
|
|
176
|
+
codexThreadHasRollout?: boolean;
|
|
177
|
+
}): CodexThreadRecord;
|
|
178
|
+
updateCodexThreadTokenUsage(input: UpdateCodexThreadTokenUsageInput): CodexThreadRecord;
|
|
179
|
+
updateCodexThreadCard(input: UpdateCodexThreadCardInput): CodexThreadRecord;
|
|
180
|
+
updateCodexThreadModelSettings(input: UpdateCodexThreadModelSettingsInput): CodexThreadRecord;
|
|
181
|
+
updateCodexThreadName(codexThreadId: string, name: string): CodexThreadRecord | undefined;
|
|
182
|
+
updateCodexThreadMode(conversationKey: string, codexThreadId: string, mode: CodexThreadMode): CodexThreadRecord;
|
|
183
|
+
updateCodexThreadStatus(conversationKey: string, codexThreadId: string, status: CodexThreadStatus): CodexThreadRecord;
|
|
184
|
+
updateCodexThreadGoalStatus(input: UpdateCodexThreadGoalStatusInput): CodexThreadRecord;
|
|
185
|
+
clearCodexThreadGoalStatus(codexThreadId: string): CodexThreadRecord;
|
|
186
|
+
getCodexThreadWorkStats(codexThreadId: string): CodexThreadWorkStats;
|
|
187
|
+
getCodexThreadStatusStats(codexThreadId: string): CodexThreadStatusStats;
|
|
188
|
+
getConversationStatusStats(conversationKey: string): ConversationStatusStats;
|
|
189
|
+
insertLarkMessage(input: InsertLarkMessageInput): LarkMessageRecord;
|
|
190
|
+
getLarkMessageById(larkMessageId: string): LarkMessageRecord | undefined;
|
|
191
|
+
getLarkMessageByEventId(eventId: string): LarkMessageRecord | undefined;
|
|
192
|
+
getLarkMessageUsageTargetForTurn(codexThreadId: string, codexTurnId: string): LarkMessageRecord | undefined;
|
|
193
|
+
getLatestSteeredLarkMessageForTurn(codexThreadId: string, codexTurnId: string): LarkMessageRecord | undefined;
|
|
194
|
+
listUnfinishedLarkMessages(): LarkMessageRecord[];
|
|
195
|
+
updateLarkMessageTokenUsage(input: UpdateLarkMessageTokenUsageInput): LarkMessageRecord | undefined;
|
|
196
|
+
markLarkMessageQueued(larkMessageId: string): void;
|
|
197
|
+
updateQueuedLarkMessage(larkMessageId: string, update: {
|
|
198
|
+
text: string;
|
|
199
|
+
rawEventJson?: string;
|
|
200
|
+
}): boolean;
|
|
201
|
+
updateLarkMessageSideMetadata(larkMessageId: string, update: {
|
|
202
|
+
sideId?: number;
|
|
203
|
+
agentCardMessageId?: string;
|
|
204
|
+
}): boolean;
|
|
205
|
+
markLarkMessageRecalled(larkMessageId: string): boolean;
|
|
206
|
+
markLarkMessagesProcessing(larkMessageIds: string[], update?: {
|
|
207
|
+
conversationKey?: string;
|
|
208
|
+
codexThreadId?: string;
|
|
209
|
+
codexTurnId?: string;
|
|
210
|
+
}): void;
|
|
211
|
+
markLarkMessagesSteered(larkMessageIds: string[], update?: {
|
|
212
|
+
conversationKey?: string;
|
|
213
|
+
codexThreadId?: string;
|
|
214
|
+
codexTurnId?: string;
|
|
215
|
+
}): void;
|
|
216
|
+
markLarkMessagesCompleted(larkMessageIds: string[]): void;
|
|
217
|
+
markLarkMessagesFailed(larkMessageIds: string[]): void;
|
|
218
|
+
markLarkMessagesInterrupted(larkMessageIds: string[]): void;
|
|
219
|
+
markLarkMessagesCleared(larkMessageIds: string[]): void;
|
|
220
|
+
private requireByConversationKey;
|
|
221
|
+
private toInsertParams;
|
|
222
|
+
private requireCodexThreadById;
|
|
223
|
+
private requireLarkMessageById;
|
|
224
|
+
private requireLarkMessageByEventId;
|
|
225
|
+
private markLarkMessagesTerminal;
|
|
226
|
+
}
|
|
227
|
+
export declare function createConversationRepository(db: Database.Database, options?: ConversationRepositoryOptions): ConversationRepository;
|