@selesai/code 0.13.38 → 0.13.40

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 (92) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/core/intercom-rpc.d.ts +135 -0
  3. package/dist/core/intercom-rpc.js +64 -0
  4. package/dist/core/release-rpc.d.ts +137 -0
  5. package/dist/core/release-rpc.js +77 -0
  6. package/dist/core/resource-loader.d.ts +3 -0
  7. package/dist/core/resource-loader.js +3 -0
  8. package/dist/core/subagent-rpc.d.ts +110 -0
  9. package/dist/core/subagent-rpc.js +60 -0
  10. package/dist/extensions/agent-browser.ts +9 -0
  11. package/dist/extensions/pi-graft/cli.test.ts +5 -5
  12. package/dist/extensions/pi-graft/cli.ts +10 -5
  13. package/dist/extensions/pi-graft/commands.test.ts +5 -5
  14. package/dist/extensions/pi-graft/graft.integration.test.ts +1 -1
  15. package/dist/extensions/pi-graft/lifecycle.test.ts +26 -26
  16. package/dist/extensions/pi-graft/prompt.test.ts +1 -1
  17. package/dist/extensions/pi-graft/state.test.ts +9 -9
  18. package/dist/extensions/pi-graft/test-support.ts +1 -1
  19. package/dist/extensions/pi-graft/tools.test.ts +1 -1
  20. package/dist/extensions/pi-intercom/README.md +15 -0
  21. package/dist/extensions/pi-intercom/broker/broker.ts +277 -13
  22. package/dist/extensions/pi-intercom/broker/client.ts +6 -2
  23. package/dist/extensions/pi-intercom/broker/mailbox-persistence.test.ts +523 -0
  24. package/dist/extensions/pi-intercom/broker/paths.test.ts +4 -4
  25. package/dist/extensions/pi-intercom/broker/paths.ts +4 -2
  26. package/dist/extensions/pi-intercom/broker/spawn.test.ts +1 -3
  27. package/dist/extensions/pi-intercom/extension-api.ts +10 -0
  28. package/dist/extensions/pi-intercom/index.ts +188 -8
  29. package/dist/extensions/pi-intercom/intercom.integration.test.ts +280 -0
  30. package/dist/extensions/pi-intercom/package.json +1 -1
  31. package/dist/extensions/pi-intercom/release-readiness.test.ts +116 -0
  32. package/dist/extensions/pi-intercom/release-readiness.ts +93 -0
  33. package/dist/extensions/pi-subagents/docs/extension-api.md +8 -0
  34. package/dist/extensions/pi-subagents/docs/observability.md +8 -0
  35. package/dist/extensions/pi-subagents/src/extension/index.ts +51 -1
  36. package/dist/extensions/pi-subagents/src/extension/observability.ts +164 -0
  37. package/dist/extensions/pi-subagents/src/extension/release-readiness.ts +367 -0
  38. package/dist/extensions/pi-subagents/src/extension/rpc.ts +8 -1
  39. package/dist/extensions/pi-subagents/src/integrations/pi-web-session-liveness.ts +7 -1
  40. package/dist/extensions/pi-subagents/src/missions/workflow-state.ts +1 -44
  41. package/dist/extensions/pi-subagents/src/runs/background/async-job-tracker.ts +6 -0
  42. package/dist/extensions/pi-subagents/src/runs/background/notify.ts +13 -3
  43. package/dist/extensions/pi-subagents/src/runs/background/result-delivery-ownership.ts +269 -7
  44. package/dist/extensions/pi-subagents/src/runs/background/result-watcher.ts +11 -10
  45. package/dist/extensions/pi-subagents/src/runs/background/retained-nested-route-tracker.ts +15 -3
  46. package/dist/extensions/pi-subagents/src/runs/background/scheduled-runs.ts +64 -0
  47. package/dist/extensions/pi-subagents/src/runs/background/subagent-runner.ts +69 -6
  48. package/dist/extensions/pi-subagents/src/runs/shared/subagent-control.ts +14 -1
  49. package/dist/extensions/pi-subagents/src/shared/owner-record.ts +107 -0
  50. package/dist/extensions/pi-subagents/src/shared/process-identity.ts +87 -0
  51. package/dist/extensions/pi-subagents/src/shared/types.ts +9 -0
  52. package/dist/extensions/pi-subagents/test/integration/async-attention-clearing.test.ts +191 -0
  53. package/dist/extensions/pi-subagents/test/integration/result-watcher.test.ts +63 -0
  54. package/dist/extensions/pi-subagents/test/integration/stop-all-background.test.ts +142 -0
  55. package/dist/extensions/pi-subagents/test/support/fake-child-session.ts +8 -0
  56. package/dist/extensions/pi-subagents/test/unit/observability.test.ts +198 -0
  57. package/dist/extensions/pi-subagents/test/unit/process-identity.test.ts +75 -0
  58. package/dist/extensions/pi-subagents/test/unit/release-readiness.test.ts +715 -0
  59. package/dist/extensions/pi-subagents/test/unit/result-takeover.test.ts +332 -0
  60. package/dist/extensions/tokenin-onboarding.ts +142 -3
  61. package/dist/index.d.ts +6 -1
  62. package/dist/index.js +7 -0
  63. package/dist/main.d.ts +6 -0
  64. package/dist/main.js +1 -1
  65. package/dist/modes/index.d.ts +1 -1
  66. package/dist/modes/rpc/intercom-bridge.d.ts +14 -0
  67. package/dist/modes/rpc/intercom-bridge.js +75 -0
  68. package/dist/modes/rpc/intercom-bridge.test.d.ts +1 -0
  69. package/dist/modes/rpc/intercom-bridge.test.js +65 -0
  70. package/dist/modes/rpc/release-bridge.d.ts +35 -0
  71. package/dist/modes/rpc/release-bridge.js +159 -0
  72. package/dist/modes/rpc/release-bridge.test.d.ts +1 -0
  73. package/dist/modes/rpc/release-bridge.test.js +347 -0
  74. package/dist/modes/rpc/rpc-client.d.ts +34 -10
  75. package/dist/modes/rpc/rpc-client.js +45 -2
  76. package/dist/modes/rpc/rpc-intercom-transport.test.d.ts +1 -0
  77. package/dist/modes/rpc/rpc-intercom-transport.test.js +85 -0
  78. package/dist/modes/rpc/rpc-mode.d.ts +1 -13
  79. package/dist/modes/rpc/rpc-mode.js +239 -8
  80. package/dist/modes/rpc/rpc-release-transport.test.d.ts +1 -0
  81. package/dist/modes/rpc/rpc-release-transport.test.js +329 -0
  82. package/dist/modes/rpc/rpc-subagent-transport.test.d.ts +1 -0
  83. package/dist/modes/rpc/rpc-subagent-transport.test.js +60 -0
  84. package/dist/modes/rpc/rpc-types.d.ts +12 -2
  85. package/dist/modes/rpc/rpc-types.js +0 -6
  86. package/dist/modes/rpc/subagent-bridge.d.ts +23 -0
  87. package/dist/modes/rpc/subagent-bridge.js +93 -0
  88. package/dist/modes/rpc/test-fixtures/intercom-host.d.ts +1 -0
  89. package/dist/modes/rpc/test-fixtures/intercom-host.js +13 -0
  90. package/docs/rpc-subagent.schema.json +491 -0
  91. package/docs/rpc.md +210 -1
  92. package/package.json +2 -1
@@ -0,0 +1,491 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "Read-only subagent stdio observability v1",
4
+ "oneOf": [
5
+ {
6
+ "$ref": "#/$defs/command"
7
+ },
8
+ {
9
+ "$ref": "#/$defs/response"
10
+ },
11
+ {
12
+ "$ref": "#/$defs/event"
13
+ }
14
+ ],
15
+ "$defs": {
16
+ "command": {
17
+ "type": "object",
18
+ "additionalProperties": false,
19
+ "required": [
20
+ "type",
21
+ "version"
22
+ ],
23
+ "properties": {
24
+ "type": {
25
+ "const": "subagent_status"
26
+ },
27
+ "id": {
28
+ "type": "string",
29
+ "maxLength": 128,
30
+ "pattern": "^[^\\r\\n]*$"
31
+ },
32
+ "version": {
33
+ "const": 1
34
+ }
35
+ }
36
+ },
37
+ "response": {
38
+ "type": "object",
39
+ "additionalProperties": false,
40
+ "required": [
41
+ "type",
42
+ "command",
43
+ "success",
44
+ "data"
45
+ ],
46
+ "properties": {
47
+ "type": {
48
+ "const": "response"
49
+ },
50
+ "command": {
51
+ "const": "subagent_status"
52
+ },
53
+ "id": {
54
+ "type": "string"
55
+ },
56
+ "success": {
57
+ "const": true
58
+ },
59
+ "data": {
60
+ "$ref": "#/$defs/snapshot"
61
+ }
62
+ }
63
+ },
64
+ "event": {
65
+ "type": "object",
66
+ "additionalProperties": false,
67
+ "required": [
68
+ "type",
69
+ "version",
70
+ "sessionId",
71
+ "epoch",
72
+ "revision",
73
+ "snapshot"
74
+ ],
75
+ "properties": {
76
+ "version": {
77
+ "const": 1
78
+ },
79
+ "sessionId": {
80
+ "type": [
81
+ "string",
82
+ "null"
83
+ ]
84
+ },
85
+ "epoch": {
86
+ "type": "string",
87
+ "minLength": 1,
88
+ "maxLength": 128
89
+ },
90
+ "type": {
91
+ "const": "subagent_event"
92
+ },
93
+ "revision": {
94
+ "type": "integer",
95
+ "minimum": 0,
96
+ "maximum": 9007199254740991
97
+ },
98
+ "snapshot": {
99
+ "$ref": "#/$defs/snapshot"
100
+ }
101
+ }
102
+ },
103
+ "snapshot": {
104
+ "type": "object",
105
+ "additionalProperties": false,
106
+ "required": [
107
+ "version",
108
+ "sessionId",
109
+ "epoch",
110
+ "revision",
111
+ "available",
112
+ "capabilities",
113
+ "fleet",
114
+ "runs",
115
+ "omitted"
116
+ ],
117
+ "properties": {
118
+ "version": {
119
+ "const": 1
120
+ },
121
+ "sessionId": {
122
+ "type": [
123
+ "string",
124
+ "null"
125
+ ]
126
+ },
127
+ "epoch": {
128
+ "type": "string",
129
+ "minLength": 1,
130
+ "maxLength": 128
131
+ },
132
+ "revision": {
133
+ "type": "integer",
134
+ "minimum": 0,
135
+ "maximum": 9007199254740991
136
+ },
137
+ "available": {
138
+ "type": "boolean"
139
+ },
140
+ "capabilities": {
141
+ "type": "object",
142
+ "additionalProperties": false,
143
+ "required": [
144
+ "snapshot",
145
+ "events"
146
+ ],
147
+ "properties": {
148
+ "snapshot": {
149
+ "const": true
150
+ },
151
+ "events": {
152
+ "type": "boolean"
153
+ }
154
+ }
155
+ },
156
+ "fleet": {
157
+ "$ref": "#/$defs/fleet"
158
+ },
159
+ "runs": {
160
+ "type": "array",
161
+ "maxItems": 32,
162
+ "items": {
163
+ "$ref": "#/$defs/node"
164
+ }
165
+ },
166
+ "omitted": {
167
+ "type": "object",
168
+ "additionalProperties": false,
169
+ "required": [
170
+ "runs",
171
+ "children"
172
+ ],
173
+ "properties": {
174
+ "runs": {
175
+ "type": "integer",
176
+ "minimum": 0,
177
+ "maximum": 9007199254740991
178
+ },
179
+ "children": {
180
+ "type": "integer",
181
+ "minimum": 0,
182
+ "maximum": 9007199254740991
183
+ }
184
+ }
185
+ }
186
+ }
187
+ },
188
+ "fleet": {
189
+ "type": "object",
190
+ "additionalProperties": false,
191
+ "required": [
192
+ "version",
193
+ "entries",
194
+ "totalActive",
195
+ "topLevelAsyncCapacity",
196
+ "omitted"
197
+ ],
198
+ "properties": {
199
+ "version": {
200
+ "const": 1
201
+ },
202
+ "entries": {
203
+ "type": "array",
204
+ "maxItems": 16,
205
+ "items": {
206
+ "type": "object",
207
+ "additionalProperties": false,
208
+ "required": [
209
+ "key",
210
+ "agent",
211
+ "startedAt",
212
+ "tokens"
213
+ ],
214
+ "properties": {
215
+ "key": {
216
+ "type": "string",
217
+ "minLength": 1,
218
+ "maxLength": 128,
219
+ "pattern": "^[^/\\\\\\r\\n]+$"
220
+ },
221
+ "agent": {
222
+ "type": "string",
223
+ "minLength": 1,
224
+ "maxLength": 96
225
+ },
226
+ "role": {
227
+ "type": "string",
228
+ "minLength": 1,
229
+ "maxLength": 96
230
+ },
231
+ "model": {
232
+ "type": "string",
233
+ "minLength": 1,
234
+ "maxLength": 128
235
+ },
236
+ "effort": {
237
+ "type": "string",
238
+ "minLength": 1,
239
+ "maxLength": 128
240
+ },
241
+ "startedAt": {
242
+ "type": "integer",
243
+ "minimum": 0,
244
+ "maximum": 9007199254740991
245
+ },
246
+ "tokens": {
247
+ "$ref": "#/$defs/tokens"
248
+ },
249
+ "goal": {
250
+ "type": "string",
251
+ "minLength": 1,
252
+ "maxLength": 512
253
+ }
254
+ }
255
+ }
256
+ },
257
+ "totalActive": {
258
+ "type": "integer",
259
+ "minimum": 0,
260
+ "maximum": 9007199254740991
261
+ },
262
+ "topLevelAsyncCapacity": {
263
+ "type": "object",
264
+ "additionalProperties": false,
265
+ "required": [
266
+ "used",
267
+ "limit"
268
+ ],
269
+ "properties": {
270
+ "used": {
271
+ "type": "integer",
272
+ "minimum": 0,
273
+ "maximum": 9007199254740991
274
+ },
275
+ "limit": {
276
+ "type": "integer",
277
+ "minimum": 0,
278
+ "maximum": 9007199254740991
279
+ }
280
+ }
281
+ },
282
+ "omitted": {
283
+ "type": "integer",
284
+ "minimum": 0,
285
+ "maximum": 9007199254740991
286
+ }
287
+ }
288
+ },
289
+ "node": {
290
+ "type": "object",
291
+ "additionalProperties": false,
292
+ "required": [
293
+ "key",
294
+ "status",
295
+ "children",
296
+ "omittedChildren"
297
+ ],
298
+ "properties": {
299
+ "key": {
300
+ "type": "string",
301
+ "minLength": 1,
302
+ "maxLength": 128,
303
+ "pattern": "^[^/\\\\\\r\\n]+$"
304
+ },
305
+ "runId": {
306
+ "type": "string",
307
+ "minLength": 1,
308
+ "maxLength": 128,
309
+ "pattern": "^[^/\\\\\\r\\n]+$"
310
+ },
311
+ "workflowId": {
312
+ "type": "string",
313
+ "minLength": 1,
314
+ "maxLength": 128,
315
+ "pattern": "^[^/\\\\\\r\\n]+$"
316
+ },
317
+ "agent": {
318
+ "type": "string",
319
+ "minLength": 1,
320
+ "maxLength": 96
321
+ },
322
+ "status": {
323
+ "enum": [
324
+ "queued",
325
+ "pending",
326
+ "running",
327
+ "complete",
328
+ "completed",
329
+ "failed",
330
+ "partial",
331
+ "paused",
332
+ "stopped",
333
+ "rejected",
334
+ "detached"
335
+ ]
336
+ },
337
+ "activity": {
338
+ "enum": [
339
+ "waiting_supervisor",
340
+ "needs_attention"
341
+ ]
342
+ },
343
+ "startedAt": {
344
+ "type": "integer",
345
+ "minimum": 0,
346
+ "maximum": 9007199254740991
347
+ },
348
+ "updatedAt": {
349
+ "type": "integer",
350
+ "minimum": 0,
351
+ "maximum": 9007199254740991
352
+ },
353
+ "endedAt": {
354
+ "type": "integer",
355
+ "minimum": 0,
356
+ "maximum": 9007199254740991
357
+ },
358
+ "progress": {
359
+ "type": "string",
360
+ "minLength": 1,
361
+ "maxLength": 256
362
+ },
363
+ "currentTool": {
364
+ "type": "string",
365
+ "minLength": 1,
366
+ "maxLength": 96
367
+ },
368
+ "tokens": {
369
+ "$ref": "#/$defs/tokens"
370
+ },
371
+ "error": {
372
+ "type": "string",
373
+ "minLength": 1,
374
+ "maxLength": 256
375
+ },
376
+ "reason": {
377
+ "type": "string",
378
+ "minLength": 1,
379
+ "maxLength": 128
380
+ },
381
+ "outcome": {
382
+ "type": "object",
383
+ "additionalProperties": false,
384
+ "required": [
385
+ "status"
386
+ ],
387
+ "properties": {
388
+ "status": {
389
+ "enum": [
390
+ "queued",
391
+ "pending",
392
+ "running",
393
+ "complete",
394
+ "completed",
395
+ "failed",
396
+ "partial",
397
+ "paused",
398
+ "stopped",
399
+ "rejected",
400
+ "detached"
401
+ ]
402
+ },
403
+ "success": {
404
+ "type": "boolean"
405
+ },
406
+ "exitCode": {
407
+ "type": "integer",
408
+ "minimum": -9007199254740991,
409
+ "maximum": 9007199254740991
410
+ }
411
+ }
412
+ },
413
+ "processTerminal": {
414
+ "type": "object",
415
+ "additionalProperties": false,
416
+ "required": [
417
+ "state"
418
+ ],
419
+ "properties": {
420
+ "state": {
421
+ "enum": [
422
+ "pending",
423
+ "observed",
424
+ "unknown",
425
+ "not-started"
426
+ ]
427
+ },
428
+ "observedAt": {
429
+ "type": "integer",
430
+ "minimum": 0,
431
+ "maximum": 9007199254740991
432
+ },
433
+ "reason": {
434
+ "type": "string",
435
+ "minLength": 1,
436
+ "maxLength": 128
437
+ }
438
+ }
439
+ },
440
+ "children": {
441
+ "type": "array",
442
+ "maxItems": 16,
443
+ "items": {
444
+ "$ref": "#/$defs/node"
445
+ }
446
+ },
447
+ "omittedChildren": {
448
+ "type": "integer",
449
+ "minimum": 0,
450
+ "maximum": 9007199254740991
451
+ }
452
+ }
453
+ },
454
+ "tokens": {
455
+ "type": "object",
456
+ "additionalProperties": false,
457
+ "required": [
458
+ "input",
459
+ "output",
460
+ "total"
461
+ ],
462
+ "properties": {
463
+ "input": {
464
+ "type": "integer",
465
+ "minimum": 0,
466
+ "maximum": 9007199254740991
467
+ },
468
+ "output": {
469
+ "type": "integer",
470
+ "minimum": 0,
471
+ "maximum": 9007199254740991
472
+ },
473
+ "total": {
474
+ "type": "integer",
475
+ "minimum": 0,
476
+ "maximum": 9007199254740991
477
+ },
478
+ "window": {
479
+ "type": "integer",
480
+ "minimum": 0,
481
+ "maximum": 9007199254740991
482
+ },
483
+ "windowPeak": {
484
+ "type": "integer",
485
+ "minimum": 0,
486
+ "maximum": 9007199254740991
487
+ }
488
+ }
489
+ }
490
+ }
491
+ }