@theway-ai/sdk 0.1.9

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 (60) hide show
  1. package/README.md +108 -0
  2. package/dist/client.d.ts +180 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/client.js +531 -0
  5. package/dist/client.js.map +1 -0
  6. package/dist/generated/commands.d.ts +195 -0
  7. package/dist/generated/commands.d.ts.map +1 -0
  8. package/dist/generated/commands.js +633 -0
  9. package/dist/generated/commands.js.map +1 -0
  10. package/dist/generated/events.d.ts +158 -0
  11. package/dist/generated/events.d.ts.map +1 -0
  12. package/dist/generated/events.js +1122 -0
  13. package/dist/generated/events.js.map +1 -0
  14. package/dist/generated/extensions.d.ts +184 -0
  15. package/dist/generated/extensions.d.ts.map +1 -0
  16. package/dist/generated/extensions.js +1309 -0
  17. package/dist/generated/extensions.js.map +1 -0
  18. package/dist/generated/graph_engine.d.ts +422 -0
  19. package/dist/generated/graph_engine.d.ts.map +1 -0
  20. package/dist/generated/graph_engine.js +3048 -0
  21. package/dist/generated/graph_engine.js.map +1 -0
  22. package/dist/generated/health.d.ts +83 -0
  23. package/dist/generated/health.d.ts.map +1 -0
  24. package/dist/generated/health.js +179 -0
  25. package/dist/generated/health.js.map +1 -0
  26. package/dist/generated/session.d.ts +854 -0
  27. package/dist/generated/session.d.ts.map +1 -0
  28. package/dist/generated/session.js +6790 -0
  29. package/dist/generated/session.js.map +1 -0
  30. package/dist/generated/settings.d.ts +182 -0
  31. package/dist/generated/settings.d.ts.map +1 -0
  32. package/dist/generated/settings.js +324 -0
  33. package/dist/generated/settings.js.map +1 -0
  34. package/dist/generated/state.d.ts +304 -0
  35. package/dist/generated/state.d.ts.map +1 -0
  36. package/dist/generated/state.js +1391 -0
  37. package/dist/generated/state.js.map +1 -0
  38. package/dist/generated/tools.d.ts +413 -0
  39. package/dist/generated/tools.d.ts.map +1 -0
  40. package/dist/generated/tools.js +2487 -0
  41. package/dist/generated/tools.js.map +1 -0
  42. package/dist/health.d.ts +20 -0
  43. package/dist/health.d.ts.map +1 -0
  44. package/dist/health.js +62 -0
  45. package/dist/health.js.map +1 -0
  46. package/dist/index.d.ts +15 -0
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/index.js +21 -0
  49. package/dist/index.js.map +1 -0
  50. package/docs/PROTOCOL.md +129 -0
  51. package/package.json +47 -0
  52. package/proto/commands.proto +70 -0
  53. package/proto/events.proto +87 -0
  54. package/proto/extensions.proto +99 -0
  55. package/proto/graph_engine.proto +236 -0
  56. package/proto/health.proto +26 -0
  57. package/proto/session.proto +498 -0
  58. package/proto/settings.proto +79 -0
  59. package/proto/state.proto +130 -0
  60. package/proto/tools.proto +238 -0
@@ -0,0 +1,238 @@
1
+ // Tool-operation domain (issue #75): the file/process/memory/skill operations
2
+ // a controller forwards through the daemon. The daemon implements ToolService
3
+ // against its execution environment (the ToolExecutor seam) so remote
4
+ // controllers can drive the daemon-side FS and process table; the request /
5
+ // response shapes mirror the daemon's agent tools (read / write / edit /
6
+ // exec / ls / grep / find / memory / install_skill).
7
+
8
+ syntax = "proto3";
9
+ package theway.grpc.v1;
10
+
11
+ // ── read_file ─────────────────────────────────────────────────────────
12
+
13
+ // Read a file as UTF-8 text with line pagination: 1-based `offset`, same
14
+ // window semantics as the `read` agent tool.
15
+ message ReadFileRequest {
16
+ string path = 1;
17
+ // First line to return (1-based). Absent = from the start.
18
+ optional uint64 offset = 2;
19
+ // Maximum number of lines to return. Absent = the whole file.
20
+ optional uint64 limit = 3;
21
+ }
22
+
23
+ message ReadFileResponse {
24
+ string content = 1;
25
+ uint64 total_lines = 2;
26
+ // true when more lines follow beyond the returned window.
27
+ bool truncated = 3;
28
+ }
29
+
30
+ // ── write_file ────────────────────────────────────────────────────────
31
+
32
+ message WriteFileRequest {
33
+ string path = 1;
34
+ string content = 2;
35
+ }
36
+
37
+ message WriteFileResponse {
38
+ uint64 bytes_written = 1;
39
+ }
40
+
41
+ // ── edit_file ─────────────────────────────────────────────────────────
42
+
43
+ // Search-and-replace edit (same semantics as the `edit` agent tool):
44
+ // replace `old_string` with `new_string`, optionally restricted to a
45
+ // 1-based inclusive line range.
46
+ message EditFileRequest {
47
+ string path = 1;
48
+ string old_string = 2;
49
+ string new_string = 3;
50
+ bool replace_all = 4;
51
+ optional uint64 range_start = 5;
52
+ optional uint64 range_end = 6;
53
+ }
54
+
55
+ message EditFileResponse {
56
+ uint32 replacements = 1;
57
+ }
58
+
59
+ // ── exec_command ──────────────────────────────────────────────────────
60
+
61
+ message ExecCommandRequest {
62
+ // Shell command line, run through the daemon's shell.
63
+ string command = 1;
64
+ // Working directory. Absent = the daemon's work dir.
65
+ optional string cwd = 2;
66
+ // Wall-clock timeout in milliseconds. Absent = executor default.
67
+ optional uint64 timeout_ms = 3;
68
+ }
69
+
70
+ // One streaming exec frame: zero or more output chunks (interleaved
71
+ // stdout/stderr), then a terminal exit frame.
72
+ message ExecOutputFrame {
73
+ oneof kind {
74
+ string output = 1;
75
+ ExecExit exit = 2;
76
+ }
77
+ }
78
+
79
+ message ExecExit {
80
+ int32 code = 1;
81
+ bool timed_out = 2;
82
+ uint64 duration_ms = 3;
83
+ }
84
+
85
+ // ── list_dir ──────────────────────────────────────────────────────────
86
+
87
+ message ListDirRequest {
88
+ string path = 1;
89
+ // Maximum number of entries to return. Absent = all entries.
90
+ optional uint64 limit = 2;
91
+ }
92
+
93
+ message DirEntry {
94
+ string name = 1;
95
+ // "file" | "dir" | "symlink" | "other"
96
+ string kind = 2;
97
+ uint64 size = 3;
98
+ }
99
+
100
+ message ListDirResponse {
101
+ repeated DirEntry entries = 1;
102
+ }
103
+
104
+ // ── grep ──────────────────────────────────────────────────────────────
105
+
106
+ message GrepRequest {
107
+ // Regular expression.
108
+ string pattern = 1;
109
+ // Search root. Absent = the daemon's work dir.
110
+ optional string path = 2;
111
+ // Filename glob filter (e.g. "*.rs").
112
+ optional string glob_filter = 3;
113
+ bool case_insensitive = 4;
114
+ // "content" (default) | "files_with_matches" | "count" — selects which
115
+ // GrepResponse list is populated.
116
+ optional string output_mode = 5;
117
+ optional uint64 max_results = 6;
118
+ }
119
+
120
+ message GrepMatch {
121
+ string path = 1;
122
+ uint64 line_number = 2;
123
+ string line = 3;
124
+ }
125
+
126
+ message GrepFileCount {
127
+ string path = 1;
128
+ uint64 count = 2;
129
+ }
130
+
131
+ message GrepResponse {
132
+ // output_mode "content".
133
+ repeated GrepMatch matches = 1;
134
+ // output_mode "files_with_matches".
135
+ repeated string files = 2;
136
+ // output_mode "count".
137
+ repeated GrepFileCount counts = 3;
138
+ }
139
+
140
+ // ── find ──────────────────────────────────────────────────────────────
141
+
142
+ message FindRequest {
143
+ // Filename glob (e.g. "*.proto").
144
+ string pattern = 1;
145
+ // Search root. Absent = the daemon's work dir.
146
+ optional string path = 2;
147
+ optional uint64 limit = 3;
148
+ }
149
+
150
+ message FindResponse {
151
+ repeated string paths = 1;
152
+ }
153
+
154
+ // ── memory (cross-session memory entries) ─────────────────────────────
155
+
156
+ message MemorySaveRequest {
157
+ string name = 1;
158
+ string content = 2;
159
+ optional string description = 3;
160
+ // Memory type tag ("user" | "preference" | ...), free-form.
161
+ optional string memory_type = 4;
162
+ }
163
+
164
+ message MemorySaveResponse {
165
+ string name = 1;
166
+ string path = 2;
167
+ }
168
+
169
+ message MemoryListRequest {}
170
+
171
+ message MemoryEntry {
172
+ string name = 1;
173
+ optional string description = 2;
174
+ optional string memory_type = 3;
175
+ string path = 4;
176
+ }
177
+
178
+ message MemoryListResponse {
179
+ repeated MemoryEntry entries = 1;
180
+ }
181
+
182
+ message MemoryReadRequest {
183
+ string name = 1;
184
+ }
185
+
186
+ message MemoryReadResponse {
187
+ string name = 1;
188
+ string content = 2;
189
+ }
190
+
191
+ message MemoryForgetRequest {
192
+ string name = 1;
193
+ }
194
+
195
+ message MemoryForgetResponse {
196
+ bool removed = 1;
197
+ }
198
+
199
+ // ── skill_install ─────────────────────────────────────────────────────
200
+
201
+ message SkillInstallRequest {
202
+ oneof source {
203
+ string url = 1;
204
+ string path = 2;
205
+ string content = 3;
206
+ }
207
+ // Two-phase install (same safety model as the install_skill agent tool):
208
+ // without `confirm` the call is a read-only preview and installs nothing.
209
+ bool confirm = 4;
210
+ bool overwrite = 5;
211
+ }
212
+
213
+ message SkillInstallResponse {
214
+ string name = 1;
215
+ string target_path = 2;
216
+ // false = preview only (`confirm` was not set); true = installed.
217
+ bool installed = 3;
218
+ optional string content_hash = 4;
219
+ uint64 size = 5;
220
+ bool existing = 6;
221
+ optional string warning = 7;
222
+ }
223
+
224
+ service ToolService {
225
+ rpc ReadFile(ReadFileRequest) returns (ReadFileResponse);
226
+ rpc WriteFile(WriteFileRequest) returns (WriteFileResponse);
227
+ rpc EditFile(EditFileRequest) returns (EditFileResponse);
228
+ // Streaming output: zero or more output chunks, then the exit frame.
229
+ rpc ExecCommand(ExecCommandRequest) returns (stream ExecOutputFrame);
230
+ rpc ListDir(ListDirRequest) returns (ListDirResponse);
231
+ rpc Grep(GrepRequest) returns (GrepResponse);
232
+ rpc Find(FindRequest) returns (FindResponse);
233
+ rpc MemorySave(MemorySaveRequest) returns (MemorySaveResponse);
234
+ rpc MemoryList(MemoryListRequest) returns (MemoryListResponse);
235
+ rpc MemoryRead(MemoryReadRequest) returns (MemoryReadResponse);
236
+ rpc MemoryForget(MemoryForgetRequest) returns (MemoryForgetResponse);
237
+ rpc SkillInstall(SkillInstallRequest) returns (SkillInstallResponse);
238
+ }