tailii-host 0.1.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 (141) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +51 -0
  3. package/dist/apnsConfigStore.d.ts +22 -0
  4. package/dist/apnsConfigStore.js +50 -0
  5. package/dist/apnsConfigStore.js.map +1 -0
  6. package/dist/apnsJwtProvider.d.ts +50 -0
  7. package/dist/apnsJwtProvider.js +158 -0
  8. package/dist/apnsJwtProvider.js.map +1 -0
  9. package/dist/apnsSender.d.ts +69 -0
  10. package/dist/apnsSender.js +155 -0
  11. package/dist/apnsSender.js.map +1 -0
  12. package/dist/approvalPushNotifier.d.ts +100 -0
  13. package/dist/approvalPushNotifier.js +236 -0
  14. package/dist/approvalPushNotifier.js.map +1 -0
  15. package/dist/broker.d.ts +24 -0
  16. package/dist/broker.js +197 -0
  17. package/dist/broker.js.map +1 -0
  18. package/dist/chatTailController.d.ts +87 -0
  19. package/dist/chatTailController.js +292 -0
  20. package/dist/chatTailController.js.map +1 -0
  21. package/dist/claudeSessionStore.d.ts +15 -0
  22. package/dist/claudeSessionStore.js +201 -0
  23. package/dist/claudeSessionStore.js.map +1 -0
  24. package/dist/cli.d.ts +2 -0
  25. package/dist/cli.js +53 -0
  26. package/dist/cli.js.map +1 -0
  27. package/dist/codexRolloutTailer.d.ts +56 -0
  28. package/dist/codexRolloutTailer.js +303 -0
  29. package/dist/codexRolloutTailer.js.map +1 -0
  30. package/dist/codexSessionStore.d.ts +23 -0
  31. package/dist/codexSessionStore.js +274 -0
  32. package/dist/codexSessionStore.js.map +1 -0
  33. package/dist/codexUsage.d.ts +16 -0
  34. package/dist/codexUsage.js +144 -0
  35. package/dist/codexUsage.js.map +1 -0
  36. package/dist/deviceTokenStore.d.ts +38 -0
  37. package/dist/deviceTokenStore.js +73 -0
  38. package/dist/deviceTokenStore.js.map +1 -0
  39. package/dist/dirLister.d.ts +9 -0
  40. package/dist/dirLister.js +98 -0
  41. package/dist/dirLister.js.map +1 -0
  42. package/dist/doctor.d.ts +36 -0
  43. package/dist/doctor.js +162 -0
  44. package/dist/doctor.js.map +1 -0
  45. package/dist/engine.d.ts +85 -0
  46. package/dist/engine.js +962 -0
  47. package/dist/engine.js.map +1 -0
  48. package/dist/hook.d.ts +67 -0
  49. package/dist/hook.js +511 -0
  50. package/dist/hook.js.map +1 -0
  51. package/dist/hookSettings.d.ts +40 -0
  52. package/dist/hookSettings.js +128 -0
  53. package/dist/hookSettings.js.map +1 -0
  54. package/dist/idleReaper.d.ts +13 -0
  55. package/dist/idleReaper.js +30 -0
  56. package/dist/idleReaper.js.map +1 -0
  57. package/dist/imageService.d.ts +53 -0
  58. package/dist/imageService.js +280 -0
  59. package/dist/imageService.js.map +1 -0
  60. package/dist/kick.d.ts +8 -0
  61. package/dist/kick.js +60 -0
  62. package/dist/kick.js.map +1 -0
  63. package/dist/launch.d.ts +107 -0
  64. package/dist/launch.js +396 -0
  65. package/dist/launch.js.map +1 -0
  66. package/dist/legacyHomeMigration.d.ts +1 -0
  67. package/dist/legacyHomeMigration.js +23 -0
  68. package/dist/legacyHomeMigration.js.map +1 -0
  69. package/dist/lineWriter.d.ts +9 -0
  70. package/dist/lineWriter.js +19 -0
  71. package/dist/lineWriter.js.map +1 -0
  72. package/dist/mdnsAdvertiser.d.ts +46 -0
  73. package/dist/mdnsAdvertiser.js +268 -0
  74. package/dist/mdnsAdvertiser.js.map +1 -0
  75. package/dist/observationLog.d.ts +54 -0
  76. package/dist/observationLog.js +108 -0
  77. package/dist/observationLog.js.map +1 -0
  78. package/dist/pairingCode.d.ts +60 -0
  79. package/dist/pairingCode.js +282 -0
  80. package/dist/pairingCode.js.map +1 -0
  81. package/dist/paths.d.ts +13 -0
  82. package/dist/paths.js +46 -0
  83. package/dist/paths.js.map +1 -0
  84. package/dist/permissionMode.d.ts +8 -0
  85. package/dist/permissionMode.js +32 -0
  86. package/dist/permissionMode.js.map +1 -0
  87. package/dist/planUsageFetcher.d.ts +35 -0
  88. package/dist/planUsageFetcher.js +172 -0
  89. package/dist/planUsageFetcher.js.map +1 -0
  90. package/dist/protocol.d.ts +329 -0
  91. package/dist/protocol.js +544 -0
  92. package/dist/protocol.js.map +1 -0
  93. package/dist/pushTokenCommand.d.ts +9 -0
  94. package/dist/pushTokenCommand.js +85 -0
  95. package/dist/pushTokenCommand.js.map +1 -0
  96. package/dist/pushTypes.d.ts +41 -0
  97. package/dist/pushTypes.js +68 -0
  98. package/dist/pushTypes.js.map +1 -0
  99. package/dist/sendLog.d.ts +14 -0
  100. package/dist/sendLog.js +64 -0
  101. package/dist/sendLog.js.map +1 -0
  102. package/dist/sessionActivityProvider.d.ts +7 -0
  103. package/dist/sessionActivityProvider.js +44 -0
  104. package/dist/sessionActivityProvider.js.map +1 -0
  105. package/dist/sessionIdleTracker.d.ts +19 -0
  106. package/dist/sessionIdleTracker.js +42 -0
  107. package/dist/sessionIdleTracker.js.map +1 -0
  108. package/dist/sessionListService.d.ts +27 -0
  109. package/dist/sessionListService.js +85 -0
  110. package/dist/sessionListService.js.map +1 -0
  111. package/dist/sessionMetadataStore.d.ts +33 -0
  112. package/dist/sessionMetadataStore.js +122 -0
  113. package/dist/sessionMetadataStore.js.map +1 -0
  114. package/dist/sessionSearch.d.ts +29 -0
  115. package/dist/sessionSearch.js +139 -0
  116. package/dist/sessionSearch.js.map +1 -0
  117. package/dist/setup.d.ts +83 -0
  118. package/dist/setup.js +412 -0
  119. package/dist/setup.js.map +1 -0
  120. package/dist/sleep.d.ts +4 -0
  121. package/dist/sleep.js +25 -0
  122. package/dist/sleep.js.map +1 -0
  123. package/dist/socketPath.d.ts +12 -0
  124. package/dist/socketPath.js +51 -0
  125. package/dist/socketPath.js.map +1 -0
  126. package/dist/subagentTailer.d.ts +15 -0
  127. package/dist/subagentTailer.js +399 -0
  128. package/dist/subagentTailer.js.map +1 -0
  129. package/dist/tmux.d.ts +62 -0
  130. package/dist/tmux.js +163 -0
  131. package/dist/tmux.js.map +1 -0
  132. package/dist/transcriptTailer.d.ts +61 -0
  133. package/dist/transcriptTailer.js +606 -0
  134. package/dist/transcriptTailer.js.map +1 -0
  135. package/dist/usageAggregator.d.ts +12 -0
  136. package/dist/usageAggregator.js +55 -0
  137. package/dist/usageAggregator.js.map +1 -0
  138. package/dist/version.d.ts +10 -0
  139. package/dist/version.js +45 -0
  140. package/dist/version.js.map +1 -0
  141. package/package.json +50 -0
@@ -0,0 +1,329 @@
1
+ export declare const PROTOCOL_LEGACY = 0;
2
+ export declare const PROTOCOL_V1 = 1;
3
+ export declare const PROTOCOL_V2 = 2;
4
+ export declare const PROTOCOL_MAX_SUPPORTED = 2;
5
+ /** 承認要求に含まれる編集差分の構造化表現。 */
6
+ export interface ToolDiff {
7
+ kind: "create" | "edit";
8
+ path: string;
9
+ newText?: string;
10
+ oldString?: string;
11
+ newString?: string;
12
+ }
13
+ /** tool_activity の差分詳細(キャップ済み old/new と切り詰めフラグ)。 */
14
+ export interface ToolActivityDiff {
15
+ oldString?: string;
16
+ newString?: string;
17
+ oldStringTruncated: boolean;
18
+ newStringTruncated: boolean;
19
+ }
20
+ /** TodoWrite の 1 項目。 */
21
+ export interface ToolActivityTodo {
22
+ content: string;
23
+ status: string;
24
+ }
25
+ /** Claude Code transcript の tool_use を chat timeline に表示するための構造化通知。 */
26
+ export interface ToolActivity {
27
+ id: string;
28
+ name: string;
29
+ label: string;
30
+ file?: string;
31
+ addedLines?: number;
32
+ removedLines?: number;
33
+ diff?: ToolActivityDiff;
34
+ command?: string;
35
+ commandTruncated: boolean;
36
+ description?: string;
37
+ descriptionTruncated: boolean;
38
+ todos?: ToolActivityTodo[];
39
+ }
40
+ export type SubagentNodeStatus = "running" | "completed" | "error";
41
+ /** サブエージェント(workflow)進捗ツリーのノード状態通知。 */
42
+ export interface SubagentNode {
43
+ nodeId: string;
44
+ toolUseId: string;
45
+ parentNodeId?: string | null;
46
+ agentType: string;
47
+ label: string;
48
+ depth: number;
49
+ status: SubagentNodeStatus;
50
+ currentActivity?: string | null;
51
+ ts: number;
52
+ }
53
+ /** セッション一覧応答の 1 要素。 */
54
+ export interface SessionInfo {
55
+ name: string;
56
+ cwd: string;
57
+ alive: boolean;
58
+ updatedAt?: number;
59
+ }
60
+ /** マシン内会話 1 件(claude=jsonl / codex=rollout)。 */
61
+ export interface ClaudeSessionInfo {
62
+ sessionId: string;
63
+ cwd: string;
64
+ title: string;
65
+ updatedAt?: number;
66
+ /** 会話を駆動するエージェント(claude=既定 / codex, agent-tag)。未指定は claude 相当。 */
67
+ agent?: "claude" | "codex";
68
+ }
69
+ /** session_search_response の 1 検索結果。 */
70
+ export interface SessionSearchResult {
71
+ sessionId: string;
72
+ title: string;
73
+ cwd: string;
74
+ snippet: string;
75
+ updatedAt?: number;
76
+ }
77
+ /** slash_list_response の 1 コマンド候補。 */
78
+ export interface SlashCommandInfo {
79
+ name: string;
80
+ summary: string;
81
+ }
82
+ /** AskUserQuestion の選択肢。 */
83
+ export interface QuestionOption {
84
+ label: string;
85
+ description: string;
86
+ }
87
+ /** AskUserQuestion の質問 1 件。 */
88
+ export interface QuestionPromptQuestion {
89
+ header: string;
90
+ question: string;
91
+ multiSelect: boolean;
92
+ options: QuestionOption[];
93
+ }
94
+ /** AskUserQuestion の回答 1 件。 */
95
+ export interface QuestionAnswer {
96
+ questionIndex: number;
97
+ selectedOptionIndexes: number[];
98
+ otherText?: string;
99
+ /** 対象質問が multiSelect か(TUI 注入方式の選択に使う。旧形式欠落は false)。 */
100
+ multiSelect: boolean;
101
+ }
102
+ export type ChatRole = "assistant" | "user" | "system";
103
+ export type Decision = "allow" | "deny";
104
+ export type ControlMessage = {
105
+ type: "channel_hello";
106
+ v: number;
107
+ maxVersion: number;
108
+ serverVersion?: string;
109
+ } | {
110
+ type: "approval_request";
111
+ v: number;
112
+ id: string;
113
+ tool: string;
114
+ summary: string;
115
+ cwd: string;
116
+ diff?: ToolDiff;
117
+ } | {
118
+ type: "approval_decision";
119
+ v: number;
120
+ id: string;
121
+ decision: Decision;
122
+ reason?: string;
123
+ } | {
124
+ type: "session_list_request";
125
+ v: number;
126
+ id: string;
127
+ limit?: number;
128
+ cursor?: string;
129
+ } | {
130
+ type: "session_list_response";
131
+ v: number;
132
+ id: string;
133
+ sessions: SessionInfo[];
134
+ nextCursor?: string;
135
+ } | {
136
+ type: "session_start";
137
+ v: number;
138
+ id: string;
139
+ cwd: string;
140
+ name: string;
141
+ baseDir?: string;
142
+ resumeSessionId?: string;
143
+ title?: string;
144
+ agentType?: "claude" | "codex";
145
+ codexModel?: string;
146
+ codexSandbox?: "read-only" | "workspace-write" | "danger-full-access";
147
+ } | {
148
+ type: "session_reattach";
149
+ v: number;
150
+ id: string;
151
+ name: string;
152
+ } | {
153
+ type: "session_kill";
154
+ v: number;
155
+ id: string;
156
+ name: string;
157
+ } | {
158
+ type: "session_idle_hint";
159
+ v: number;
160
+ id: string;
161
+ name: string;
162
+ } | {
163
+ type: "error";
164
+ v: number;
165
+ id?: string;
166
+ code: string;
167
+ message: string;
168
+ } | {
169
+ type: "image_available";
170
+ v: number;
171
+ id: string;
172
+ path: string;
173
+ mime: string;
174
+ thumbnail: string;
175
+ width: number;
176
+ height: number;
177
+ relatedApprovalId?: string;
178
+ } | {
179
+ type: "image_fetch_request";
180
+ v: number;
181
+ id: string;
182
+ } | {
183
+ type: "image_fetch_response";
184
+ v: number;
185
+ id: string;
186
+ seq: number;
187
+ data: string;
188
+ eof: boolean;
189
+ mime: string;
190
+ } | {
191
+ type: "chat_output";
192
+ v: number;
193
+ streamId: string;
194
+ role: ChatRole;
195
+ text: string;
196
+ eof: boolean;
197
+ } | {
198
+ type: "tool_activity";
199
+ v: number;
200
+ activity: ToolActivity;
201
+ } | {
202
+ type: "subagent_node";
203
+ v: number;
204
+ node: SubagentNode;
205
+ } | {
206
+ type: "question_prompt";
207
+ v: number;
208
+ id: string;
209
+ questions: QuestionPromptQuestion[];
210
+ } | {
211
+ type: "question_answer";
212
+ v: number;
213
+ id: string;
214
+ session: string;
215
+ answers: QuestionAnswer[];
216
+ } | {
217
+ type: "question_dismiss";
218
+ v: number;
219
+ id: string;
220
+ } | {
221
+ type: "usage_request";
222
+ v: number;
223
+ id: string;
224
+ } | {
225
+ type: "usage_response";
226
+ v: number;
227
+ id: string;
228
+ inputTokens: number;
229
+ outputTokens: number;
230
+ cacheReadTokens: number;
231
+ cacheCreationTokens: number;
232
+ turns: number;
233
+ fiveHourUtilization?: number;
234
+ fiveHourResetsAt?: string;
235
+ sevenDayUtilization?: number;
236
+ sevenDayResetsAt?: string;
237
+ sevenDayFableUtilization?: number;
238
+ sevenDayFableResetsAt?: string;
239
+ } | {
240
+ type: "mode_get";
241
+ v: number;
242
+ id: string;
243
+ session: string;
244
+ } | {
245
+ type: "mode_set";
246
+ v: number;
247
+ id: string;
248
+ session: string;
249
+ mode: string;
250
+ } | {
251
+ type: "mode_set_response";
252
+ v: number;
253
+ id: string;
254
+ mode: string;
255
+ } | {
256
+ type: "slash_list_request";
257
+ v: number;
258
+ id: string;
259
+ cwd?: string;
260
+ } | {
261
+ type: "slash_list_response";
262
+ v: number;
263
+ id: string;
264
+ commands: SlashCommandInfo[];
265
+ } | {
266
+ type: "dir_list_request";
267
+ v: number;
268
+ id: string;
269
+ baseDir: string;
270
+ partial: string;
271
+ } | {
272
+ type: "dir_list_response";
273
+ v: number;
274
+ id: string;
275
+ entries: string[];
276
+ } | {
277
+ type: "browse_request";
278
+ v: number;
279
+ id: string;
280
+ path: string;
281
+ } | {
282
+ type: "browse_response";
283
+ v: number;
284
+ id: string;
285
+ path: string;
286
+ entries: string[];
287
+ } | {
288
+ type: "claude_session_list_request";
289
+ v: number;
290
+ id: string;
291
+ } | {
292
+ type: "claude_session_list_response";
293
+ v: number;
294
+ id: string;
295
+ claudeSessions: ClaudeSessionInfo[];
296
+ } | {
297
+ type: "dir_create_request";
298
+ v: number;
299
+ id: string;
300
+ baseDir: string;
301
+ relative: string;
302
+ } | {
303
+ type: "dir_create_response";
304
+ v: number;
305
+ id: string;
306
+ path: string;
307
+ ok: boolean;
308
+ } | {
309
+ type: "session_search_request";
310
+ v: number;
311
+ id: string;
312
+ query: string;
313
+ limit?: number;
314
+ } | {
315
+ type: "session_search_response";
316
+ v: number;
317
+ id: string;
318
+ results: SessionSearchResult[];
319
+ };
320
+ export type ControlMessageType = ControlMessage["type"];
321
+ /** decode が投げる型付きエラー。呼び出し元は「決定未取得」として安全側(deny)に倒す。 */
322
+ export declare class ProtocolDecodeError extends Error {
323
+ readonly reason: "invalid-json" | "missing-type" | "unknown-type" | "unsupported-version" | "legacy-unsupported-type" | "missing-field";
324
+ constructor(reason: "invalid-json" | "missing-type" | "unknown-type" | "unsupported-version" | "legacy-unsupported-type" | "missing-field", detail: string);
325
+ }
326
+ /** NDJSON 1 行(改行なし)を `ControlMessage` へデコードする。失敗は `ProtocolDecodeError`。 */
327
+ export declare function decodeControlMessage(line: string | Buffer): ControlMessage;
328
+ /** `ControlMessage` を canonical NDJSON 1 行(改行なし)へエンコードする。 */
329
+ export declare function encodeControlMessage(message: ControlMessage): string;