@anhlp/alp-runtime 0.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 (94) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +7 -0
  3. package/README.md +7 -0
  4. package/dist/acp-transport.d.ts +114 -0
  5. package/dist/acp-transport.js +478 -0
  6. package/dist/antigravity-transport.d.ts +80 -0
  7. package/dist/antigravity-transport.js +609 -0
  8. package/dist/board-domain.d.ts +56 -0
  9. package/dist/board-domain.js +157 -0
  10. package/dist/board.d.ts +21 -0
  11. package/dist/board.js +69 -0
  12. package/dist/catalog.d.ts +31 -0
  13. package/dist/catalog.js +38 -0
  14. package/dist/claude-transport.d.ts +157 -0
  15. package/dist/claude-transport.js +671 -0
  16. package/dist/contracts.d.ts +163 -0
  17. package/dist/contracts.js +5 -0
  18. package/dist/events.d.ts +1 -0
  19. package/dist/events.js +0 -0
  20. package/dist/github.d.ts +10 -0
  21. package/dist/github.js +39 -0
  22. package/dist/handoff.d.ts +36 -0
  23. package/dist/handoff.js +73 -0
  24. package/dist/index.d.ts +24 -0
  25. package/dist/index.js +64 -0
  26. package/dist/language.d.ts +41 -0
  27. package/dist/language.js +68 -0
  28. package/dist/live.d.ts +48 -0
  29. package/dist/live.js +45 -0
  30. package/dist/mailbox.d.ts +24 -0
  31. package/dist/mailbox.js +36 -0
  32. package/dist/mcp-tools.d.ts +115 -0
  33. package/dist/mcp-tools.js +71 -0
  34. package/dist/permission-path.d.ts +2 -0
  35. package/dist/permission-path.js +44 -0
  36. package/dist/process-info.d.ts +14 -0
  37. package/dist/process-info.js +32 -0
  38. package/dist/providers.d.ts +28 -0
  39. package/dist/providers.js +71 -0
  40. package/dist/recall.d.ts +42 -0
  41. package/dist/recall.js +60 -0
  42. package/dist/resolve.d.ts +121 -0
  43. package/dist/resolve.js +238 -0
  44. package/dist/runtime-context.d.ts +43 -0
  45. package/dist/runtime-context.js +61 -0
  46. package/dist/runtime.d.ts +4 -0
  47. package/dist/runtime.js +2979 -0
  48. package/dist/session-config.d.ts +1973 -0
  49. package/dist/session-config.js +205 -0
  50. package/dist/session-state.d.ts +140 -0
  51. package/dist/session-state.js +0 -0
  52. package/dist/tool-results.d.ts +12 -0
  53. package/dist/tool-results.js +25 -0
  54. package/dist/tools.d.ts +674 -0
  55. package/dist/tools.js +375 -0
  56. package/dist/transport.d.ts +47 -0
  57. package/dist/transport.js +169 -0
  58. package/dist/usage.d.ts +15 -0
  59. package/dist/usage.js +35 -0
  60. package/dist/workspace.d.ts +101 -0
  61. package/dist/workspace.js +259 -0
  62. package/dist/worktree-domain.d.ts +88 -0
  63. package/dist/worktree-domain.js +196 -0
  64. package/package.json +256 -0
  65. package/src/acp-transport.ts +473 -0
  66. package/src/antigravity-transport.ts +658 -0
  67. package/src/board-domain.ts +185 -0
  68. package/src/board.ts +80 -0
  69. package/src/catalog.ts +32 -0
  70. package/src/claude-transport.ts +771 -0
  71. package/src/contracts.ts +166 -0
  72. package/src/events.ts +1 -0
  73. package/src/github.ts +37 -0
  74. package/src/handoff.ts +86 -0
  75. package/src/index.ts +26 -0
  76. package/src/language.ts +102 -0
  77. package/src/live.ts +86 -0
  78. package/src/mailbox.ts +46 -0
  79. package/src/mcp-tools.ts +73 -0
  80. package/src/permission-path.ts +37 -0
  81. package/src/process-info.ts +40 -0
  82. package/src/providers.ts +84 -0
  83. package/src/recall.ts +85 -0
  84. package/src/resolve.ts +230 -0
  85. package/src/runtime-context.ts +49 -0
  86. package/src/runtime.ts +3579 -0
  87. package/src/session-config.ts +301 -0
  88. package/src/session-state.ts +141 -0
  89. package/src/tool-results.ts +26 -0
  90. package/src/tools.ts +379 -0
  91. package/src/transport.ts +116 -0
  92. package/src/usage.ts +42 -0
  93. package/src/workspace.ts +318 -0
  94. package/src/worktree-domain.ts +216 -0
@@ -0,0 +1,1973 @@
1
+ import { type PermissionProfile } from '@anhlp/alp-core/permissions';
2
+ import type { ResolvedSession, RuntimeKind } from './resolve.js';
3
+ /** The mode the native harness runs with: a session in a copy writes the copy, though ALP treats it as read-only. */
4
+ export declare const nativeMode: (mapping: Pick<ResolvedSession, "mode" | "copy"> & Partial<Pick<ResolvedSession, "runtimeKind" | "antigravity">>) => string;
5
+ /** The OS sandbox ALP puts a Claude session's Bash in: its profile's base, or the copy it works in. */
6
+ export declare function claudeFloor(mapping: Pick<ResolvedSession, 'mode' | 'copy' | 'permissions' | 'runtimeKind'>): 'read-only' | 'workspace-write' | undefined;
7
+ /**
8
+ * Codex runs commands inside its sandbox without asking. With 'on-request' it
9
+ * asks ALP before a command leaves the sandbox, which an allow rule permits;
10
+ * with 'untrusted' it asks before every command, which a full-access session
11
+ * with deny rules needs. Without Bash rules nothing changes: Codex never asks.
12
+ */
13
+ export declare function codexApproval(mapping: Pick<ResolvedSession, 'mode' | 'permissions'>): "never" | "untrusted" | "on-request";
14
+ /** What the session's permission profile adds to its mode, for its instructions. */
15
+ export declare function permissionNote(mapping: Pick<ResolvedSession, 'mode' | 'permissions' | 'runtimeKind' | 'copy' | 'workdir' | 'copyOf' | 'antigravity'>): string[];
16
+ /** The profiles of a coordinator's targets that change what it may expect of them. */
17
+ export declare function targetNote(profiles: Record<string, PermissionProfile | null>): string[];
18
+ /** Model and effort choices available when assigning work to a configured agent. */
19
+ export declare function modelProfileNote(mapping: ResolvedSession, targets: string[]): string[];
20
+ /** The efforts a runtime-prefixed model takes; none for a model ALP does not know. */
21
+ export declare function profileEfforts(id: string): string[];
22
+ /**
23
+ * Explicit autocompact: Claude's native window or Codex's token limit. The older
24
+ * context setting still scales Codex's window by COMPACT_SHARE (ALPD §57).
25
+ */
26
+ export declare function contextConfig(runtimeKind: RuntimeKind, mapping: ResolvedSession): {
27
+ context: number;
28
+ config?: undefined;
29
+ } | {
30
+ config: {
31
+ model_auto_compact_token_limit: number;
32
+ };
33
+ context?: undefined;
34
+ } | {
35
+ context?: undefined;
36
+ config?: undefined;
37
+ };
38
+ /** The agent's skills for Claude, which loads them as its own (ALPD §59); Codex reads them from the instructions. */
39
+ export declare function skillConfig(runtimeKind: RuntimeKind, mapping: ResolvedSession): {
40
+ skills?: Array<{
41
+ name: string;
42
+ path: string;
43
+ }>;
44
+ };
45
+ export declare function nativeSessionConfig(runtimeKind: RuntimeKind, mapping: ResolvedSession, targets: string[], parentAgent?: string, role?: 'supervisor', supervised?: boolean, lessonFiles?: string[], targetProfiles?: Record<string, PermissionProfile | null>): {
46
+ developerInstructions: string;
47
+ mcpServers: Record<string, unknown>;
48
+ thinking: string;
49
+ /**
50
+ * ALP owns multi-agent orchestration.
51
+ *
52
+ * The adapter must disable/bypass the harness' native agent spawning
53
+ * while preserving all other native Codex capabilities.
54
+ */
55
+ nativeMultiAgent: boolean;
56
+ dynamicTools: ({
57
+ type: string;
58
+ name: string;
59
+ description: string;
60
+ inputSchema: {
61
+ type: string;
62
+ properties: {
63
+ outcome: {
64
+ type: string;
65
+ enum: readonly ["complete", "partial", "blocked", "reconsider"];
66
+ description: string;
67
+ };
68
+ summary: {
69
+ type: string;
70
+ description: string;
71
+ };
72
+ candidate: {
73
+ type: string;
74
+ items: {
75
+ type: string;
76
+ };
77
+ description: string;
78
+ };
79
+ scope: {
80
+ type: string;
81
+ items: {
82
+ type: string;
83
+ };
84
+ description: string;
85
+ };
86
+ verification: {
87
+ type: string;
88
+ items: {
89
+ type: string;
90
+ };
91
+ description: string;
92
+ };
93
+ risks: {
94
+ type: string;
95
+ items: {
96
+ type: string;
97
+ };
98
+ description: string;
99
+ };
100
+ discovered: {
101
+ type: string;
102
+ items: {
103
+ type: string;
104
+ };
105
+ description: string;
106
+ };
107
+ ownership: {
108
+ type: string;
109
+ description: string;
110
+ };
111
+ verdict: {
112
+ type: string;
113
+ description: string;
114
+ properties: {
115
+ result: {
116
+ type: string;
117
+ enum: readonly ["pass", "pass_with_findings", "fail", "blocked"];
118
+ };
119
+ criteria: {
120
+ type: string;
121
+ items: {
122
+ type: string;
123
+ properties: {
124
+ criterion: {
125
+ type: string;
126
+ description: string;
127
+ };
128
+ result: {
129
+ type: string;
130
+ enum: readonly ["pass", "fail", "not_checked"];
131
+ };
132
+ evidence: {
133
+ type: string;
134
+ description: string;
135
+ };
136
+ };
137
+ required: string[];
138
+ additionalProperties: boolean;
139
+ };
140
+ };
141
+ findings: {
142
+ type: string;
143
+ items: {
144
+ type: string;
145
+ properties: {
146
+ severity: {
147
+ type: string;
148
+ enum: readonly ["critical", "high", "medium", "low"];
149
+ description: string;
150
+ };
151
+ where: {
152
+ type: string;
153
+ description: string;
154
+ };
155
+ problem: {
156
+ type: string;
157
+ description: string;
158
+ };
159
+ fix: {
160
+ type: string;
161
+ description: string;
162
+ };
163
+ };
164
+ required: string[];
165
+ additionalProperties: boolean;
166
+ };
167
+ };
168
+ };
169
+ required: string[];
170
+ additionalProperties: boolean;
171
+ };
172
+ };
173
+ required: string[];
174
+ additionalProperties: boolean;
175
+ };
176
+ } | {
177
+ type: string;
178
+ name: string;
179
+ description: string;
180
+ inputSchema: {
181
+ type: string;
182
+ properties: {
183
+ assignments: {
184
+ type: string;
185
+ items: {
186
+ type: string;
187
+ };
188
+ description: string;
189
+ };
190
+ timeoutMs: {
191
+ type: string;
192
+ description: string;
193
+ };
194
+ };
195
+ additionalProperties: boolean;
196
+ };
197
+ } | {
198
+ type: string;
199
+ name: string;
200
+ description: string;
201
+ inputSchema: {
202
+ type: string;
203
+ properties: {
204
+ to: {
205
+ type: string;
206
+ description: string;
207
+ };
208
+ kind: {
209
+ type: string;
210
+ enum: string[];
211
+ description: string;
212
+ };
213
+ body: {
214
+ type: string;
215
+ };
216
+ replyTo: {
217
+ type: string;
218
+ description: string;
219
+ };
220
+ };
221
+ required: string[];
222
+ additionalProperties: boolean;
223
+ };
224
+ } | {
225
+ type: string;
226
+ name: string;
227
+ description: string;
228
+ inputSchema: {
229
+ type: string;
230
+ properties: {
231
+ taskId: {
232
+ type: string;
233
+ description: string;
234
+ };
235
+ };
236
+ additionalProperties: boolean;
237
+ };
238
+ } | {
239
+ type: string;
240
+ name: string;
241
+ description: string;
242
+ inputSchema: {
243
+ type: string;
244
+ properties: {
245
+ assignmentId: {
246
+ type: string;
247
+ };
248
+ };
249
+ required: string[];
250
+ additionalProperties: boolean;
251
+ };
252
+ } | {
253
+ type: string;
254
+ name: string;
255
+ description: string;
256
+ inputSchema: {
257
+ type: string;
258
+ properties: {
259
+ kind: {
260
+ type: string;
261
+ enum: readonly ["claim", "decision", "finding"];
262
+ };
263
+ body: {
264
+ type: string;
265
+ description: string;
266
+ };
267
+ paths: {
268
+ type: string;
269
+ items: {
270
+ type: string;
271
+ };
272
+ description: string;
273
+ };
274
+ };
275
+ required: string[];
276
+ additionalProperties: boolean;
277
+ };
278
+ } | {
279
+ type: string;
280
+ name: string;
281
+ description: string;
282
+ inputSchema: {
283
+ type: string;
284
+ properties: {
285
+ kinds: {
286
+ type: string;
287
+ items: {
288
+ type: string;
289
+ enum: readonly ["claim", "decision", "finding"];
290
+ };
291
+ };
292
+ limit: {
293
+ type: string;
294
+ description: string;
295
+ };
296
+ };
297
+ additionalProperties: boolean;
298
+ };
299
+ } | {
300
+ type: string;
301
+ name: string;
302
+ description: string;
303
+ inputSchema: {
304
+ type: string;
305
+ properties: {
306
+ pinId: {
307
+ type: string;
308
+ };
309
+ };
310
+ required: string[];
311
+ additionalProperties: boolean;
312
+ };
313
+ } | {
314
+ type: string;
315
+ name: string;
316
+ description: string;
317
+ inputSchema: {
318
+ type: string;
319
+ properties: {
320
+ question: {
321
+ type: string;
322
+ };
323
+ to: {
324
+ type: string;
325
+ enum: string[];
326
+ description: string;
327
+ };
328
+ options: {
329
+ type: string;
330
+ items: {
331
+ type: string;
332
+ };
333
+ description: string;
334
+ };
335
+ };
336
+ required: string[];
337
+ additionalProperties: boolean;
338
+ };
339
+ } | {
340
+ type: string;
341
+ name: string;
342
+ description: string;
343
+ inputSchema: {
344
+ type: string;
345
+ properties: {
346
+ scope: {
347
+ type: string;
348
+ enum: string[];
349
+ };
350
+ lesson: {
351
+ type: string;
352
+ description: string;
353
+ };
354
+ };
355
+ required: string[];
356
+ additionalProperties: boolean;
357
+ };
358
+ } | {
359
+ type: string;
360
+ name: string;
361
+ description: string;
362
+ inputSchema: {
363
+ type: string;
364
+ properties: {
365
+ name: {
366
+ type: string;
367
+ description: string;
368
+ };
369
+ description: {
370
+ type: string;
371
+ description: string;
372
+ };
373
+ body: {
374
+ type: string;
375
+ description: string;
376
+ };
377
+ roles: {
378
+ type: string;
379
+ items: {
380
+ type: string;
381
+ };
382
+ description: string;
383
+ };
384
+ lessons: {
385
+ type: string;
386
+ items: {
387
+ type: string;
388
+ };
389
+ description: string;
390
+ };
391
+ replace: {
392
+ type: string;
393
+ description: string;
394
+ };
395
+ };
396
+ required: string[];
397
+ additionalProperties: boolean;
398
+ };
399
+ } | {
400
+ type: string;
401
+ name: string;
402
+ description: string;
403
+ inputSchema: {
404
+ type: string;
405
+ properties: {
406
+ action: {
407
+ type: string;
408
+ enum: string[];
409
+ };
410
+ target: {
411
+ type: string;
412
+ enum: string[];
413
+ };
414
+ query: {
415
+ type: string;
416
+ description: string;
417
+ };
418
+ title: {
419
+ type: string;
420
+ description: string;
421
+ };
422
+ body: {
423
+ type: string;
424
+ description: string;
425
+ };
426
+ issue: {
427
+ type: string;
428
+ description: string;
429
+ };
430
+ labels: {
431
+ type: string;
432
+ items: {
433
+ type: string;
434
+ };
435
+ description: string;
436
+ };
437
+ };
438
+ required: string[];
439
+ additionalProperties: boolean;
440
+ };
441
+ } | {
442
+ type: string;
443
+ name: string;
444
+ description: string;
445
+ inputSchema: {
446
+ type: string;
447
+ properties: {
448
+ limit?: {
449
+ type: string;
450
+ description: string;
451
+ } | undefined;
452
+ status?: {
453
+ type: string;
454
+ enum: import("@anhlp/alp-core/tasks").TaskStatus[];
455
+ description: string;
456
+ } | undefined;
457
+ label?: {
458
+ type: string;
459
+ description: string;
460
+ } | undefined;
461
+ title?: {
462
+ type: string;
463
+ description: string;
464
+ } | undefined;
465
+ description?: {
466
+ type: string;
467
+ description: string;
468
+ } | undefined;
469
+ type?: {
470
+ type: string;
471
+ enum: import("@anhlp/alp-core/tasks").TaskType[];
472
+ } | undefined;
473
+ priority?: {
474
+ type: string;
475
+ description: string;
476
+ } | undefined;
477
+ labels?: {
478
+ type: string;
479
+ items: {
480
+ type: string;
481
+ };
482
+ } | undefined;
483
+ paths?: {
484
+ type: string;
485
+ items: {
486
+ type: string;
487
+ };
488
+ description: string;
489
+ } | undefined;
490
+ parent?: {
491
+ type: string;
492
+ description: string;
493
+ } | undefined;
494
+ blockedBy?: {
495
+ type: string;
496
+ items: {
497
+ type: string;
498
+ };
499
+ description: string;
500
+ } | undefined;
501
+ discoveredFrom?: {
502
+ type: string;
503
+ description: string;
504
+ } | undefined;
505
+ add?: {
506
+ type: string;
507
+ description: string;
508
+ properties: {
509
+ blockedBy: {
510
+ type: string;
511
+ items: {
512
+ type: string;
513
+ };
514
+ description: string;
515
+ };
516
+ related: {
517
+ type: string;
518
+ items: {
519
+ type: string;
520
+ };
521
+ };
522
+ parent: {
523
+ type: string;
524
+ description: string;
525
+ };
526
+ };
527
+ additionalProperties: boolean;
528
+ } | undefined;
529
+ remove?: {
530
+ type: string;
531
+ description: string;
532
+ properties: {
533
+ blockedBy: {
534
+ type: string;
535
+ items: {
536
+ type: string;
537
+ };
538
+ description: string;
539
+ };
540
+ related: {
541
+ type: string;
542
+ items: {
543
+ type: string;
544
+ };
545
+ };
546
+ parent: {
547
+ type: string;
548
+ description: string;
549
+ };
550
+ };
551
+ additionalProperties: boolean;
552
+ } | undefined;
553
+ reason?: {
554
+ type: string;
555
+ enum: import("@anhlp/alp-core/tasks").CloseReason[];
556
+ description: string;
557
+ } | undefined;
558
+ kind?: {
559
+ type: string;
560
+ enum: import("@anhlp/alp-core/tasks").GateKind[];
561
+ description: string;
562
+ } | undefined;
563
+ until?: {
564
+ type: string;
565
+ description: string;
566
+ } | undefined;
567
+ ref?: {
568
+ type: string;
569
+ description: string;
570
+ } | undefined;
571
+ gate?: {
572
+ type: string;
573
+ description: string;
574
+ } | undefined;
575
+ formula?: {
576
+ type: string;
577
+ description: string;
578
+ } | undefined;
579
+ vars?: {
580
+ type: string;
581
+ additionalProperties: {
582
+ type: string;
583
+ };
584
+ description: string;
585
+ } | undefined;
586
+ summary?: {
587
+ type: string;
588
+ description: string;
589
+ } | undefined;
590
+ unverified?: {
591
+ type: string;
592
+ description: string;
593
+ } | undefined;
594
+ note?: {
595
+ type: string;
596
+ description: string;
597
+ } | undefined;
598
+ action: {
599
+ type: string;
600
+ enum: ("close" | "list" | "create" | "link" | "update" | "start" | "reopen" | "gate" | "clear" | "pour" | "formulas" | "show" | "ready")[];
601
+ };
602
+ id: {
603
+ type: string;
604
+ description: string;
605
+ };
606
+ };
607
+ required: string[];
608
+ additionalProperties: boolean;
609
+ };
610
+ } | {
611
+ type: string;
612
+ name: string;
613
+ description: string;
614
+ inputSchema: {
615
+ type: string;
616
+ properties: {
617
+ taskId?: {
618
+ type: string;
619
+ description: string;
620
+ } | undefined;
621
+ agent: {
622
+ type: string;
623
+ enum: string[];
624
+ };
625
+ task: {
626
+ type: string;
627
+ description: string;
628
+ };
629
+ model: {
630
+ type: string;
631
+ description: string;
632
+ };
633
+ thinking: {
634
+ type: string;
635
+ description: string;
636
+ };
637
+ modelReason: {
638
+ type: string;
639
+ description: string;
640
+ };
641
+ mode: {
642
+ type: string;
643
+ enum: string[];
644
+ description: string;
645
+ };
646
+ isolation: {
647
+ type: string;
648
+ enum: string[];
649
+ description: string;
650
+ };
651
+ writeRoot: {
652
+ type: string;
653
+ description: string;
654
+ };
655
+ continueFrom: {
656
+ type: string;
657
+ description: string;
658
+ };
659
+ wait: {
660
+ type: string;
661
+ description: string;
662
+ };
663
+ etaMinutes: {
664
+ type: string;
665
+ minimum: number;
666
+ maximum: number;
667
+ description: string;
668
+ };
669
+ };
670
+ required: string[];
671
+ additionalProperties: boolean;
672
+ };
673
+ })[];
674
+ floor?: "workspace-write" | "read-only" | undefined;
675
+ permissions?: PermissionProfile | null | undefined;
676
+ skills?: Array<{
677
+ name: string;
678
+ path: string;
679
+ }>;
680
+ context: number;
681
+ config?: undefined;
682
+ runtime: RuntimeKind;
683
+ cwd: string;
684
+ model: any;
685
+ sandbox: string;
686
+ approvalPolicy: string;
687
+ } | {
688
+ developerInstructions: string;
689
+ mcpServers: Record<string, unknown>;
690
+ thinking: string;
691
+ /**
692
+ * ALP owns multi-agent orchestration.
693
+ *
694
+ * The adapter must disable/bypass the harness' native agent spawning
695
+ * while preserving all other native Codex capabilities.
696
+ */
697
+ nativeMultiAgent: boolean;
698
+ dynamicTools: ({
699
+ type: string;
700
+ name: string;
701
+ description: string;
702
+ inputSchema: {
703
+ type: string;
704
+ properties: {
705
+ outcome: {
706
+ type: string;
707
+ enum: readonly ["complete", "partial", "blocked", "reconsider"];
708
+ description: string;
709
+ };
710
+ summary: {
711
+ type: string;
712
+ description: string;
713
+ };
714
+ candidate: {
715
+ type: string;
716
+ items: {
717
+ type: string;
718
+ };
719
+ description: string;
720
+ };
721
+ scope: {
722
+ type: string;
723
+ items: {
724
+ type: string;
725
+ };
726
+ description: string;
727
+ };
728
+ verification: {
729
+ type: string;
730
+ items: {
731
+ type: string;
732
+ };
733
+ description: string;
734
+ };
735
+ risks: {
736
+ type: string;
737
+ items: {
738
+ type: string;
739
+ };
740
+ description: string;
741
+ };
742
+ discovered: {
743
+ type: string;
744
+ items: {
745
+ type: string;
746
+ };
747
+ description: string;
748
+ };
749
+ ownership: {
750
+ type: string;
751
+ description: string;
752
+ };
753
+ verdict: {
754
+ type: string;
755
+ description: string;
756
+ properties: {
757
+ result: {
758
+ type: string;
759
+ enum: readonly ["pass", "pass_with_findings", "fail", "blocked"];
760
+ };
761
+ criteria: {
762
+ type: string;
763
+ items: {
764
+ type: string;
765
+ properties: {
766
+ criterion: {
767
+ type: string;
768
+ description: string;
769
+ };
770
+ result: {
771
+ type: string;
772
+ enum: readonly ["pass", "fail", "not_checked"];
773
+ };
774
+ evidence: {
775
+ type: string;
776
+ description: string;
777
+ };
778
+ };
779
+ required: string[];
780
+ additionalProperties: boolean;
781
+ };
782
+ };
783
+ findings: {
784
+ type: string;
785
+ items: {
786
+ type: string;
787
+ properties: {
788
+ severity: {
789
+ type: string;
790
+ enum: readonly ["critical", "high", "medium", "low"];
791
+ description: string;
792
+ };
793
+ where: {
794
+ type: string;
795
+ description: string;
796
+ };
797
+ problem: {
798
+ type: string;
799
+ description: string;
800
+ };
801
+ fix: {
802
+ type: string;
803
+ description: string;
804
+ };
805
+ };
806
+ required: string[];
807
+ additionalProperties: boolean;
808
+ };
809
+ };
810
+ };
811
+ required: string[];
812
+ additionalProperties: boolean;
813
+ };
814
+ };
815
+ required: string[];
816
+ additionalProperties: boolean;
817
+ };
818
+ } | {
819
+ type: string;
820
+ name: string;
821
+ description: string;
822
+ inputSchema: {
823
+ type: string;
824
+ properties: {
825
+ assignments: {
826
+ type: string;
827
+ items: {
828
+ type: string;
829
+ };
830
+ description: string;
831
+ };
832
+ timeoutMs: {
833
+ type: string;
834
+ description: string;
835
+ };
836
+ };
837
+ additionalProperties: boolean;
838
+ };
839
+ } | {
840
+ type: string;
841
+ name: string;
842
+ description: string;
843
+ inputSchema: {
844
+ type: string;
845
+ properties: {
846
+ to: {
847
+ type: string;
848
+ description: string;
849
+ };
850
+ kind: {
851
+ type: string;
852
+ enum: string[];
853
+ description: string;
854
+ };
855
+ body: {
856
+ type: string;
857
+ };
858
+ replyTo: {
859
+ type: string;
860
+ description: string;
861
+ };
862
+ };
863
+ required: string[];
864
+ additionalProperties: boolean;
865
+ };
866
+ } | {
867
+ type: string;
868
+ name: string;
869
+ description: string;
870
+ inputSchema: {
871
+ type: string;
872
+ properties: {
873
+ taskId: {
874
+ type: string;
875
+ description: string;
876
+ };
877
+ };
878
+ additionalProperties: boolean;
879
+ };
880
+ } | {
881
+ type: string;
882
+ name: string;
883
+ description: string;
884
+ inputSchema: {
885
+ type: string;
886
+ properties: {
887
+ assignmentId: {
888
+ type: string;
889
+ };
890
+ };
891
+ required: string[];
892
+ additionalProperties: boolean;
893
+ };
894
+ } | {
895
+ type: string;
896
+ name: string;
897
+ description: string;
898
+ inputSchema: {
899
+ type: string;
900
+ properties: {
901
+ kind: {
902
+ type: string;
903
+ enum: readonly ["claim", "decision", "finding"];
904
+ };
905
+ body: {
906
+ type: string;
907
+ description: string;
908
+ };
909
+ paths: {
910
+ type: string;
911
+ items: {
912
+ type: string;
913
+ };
914
+ description: string;
915
+ };
916
+ };
917
+ required: string[];
918
+ additionalProperties: boolean;
919
+ };
920
+ } | {
921
+ type: string;
922
+ name: string;
923
+ description: string;
924
+ inputSchema: {
925
+ type: string;
926
+ properties: {
927
+ kinds: {
928
+ type: string;
929
+ items: {
930
+ type: string;
931
+ enum: readonly ["claim", "decision", "finding"];
932
+ };
933
+ };
934
+ limit: {
935
+ type: string;
936
+ description: string;
937
+ };
938
+ };
939
+ additionalProperties: boolean;
940
+ };
941
+ } | {
942
+ type: string;
943
+ name: string;
944
+ description: string;
945
+ inputSchema: {
946
+ type: string;
947
+ properties: {
948
+ pinId: {
949
+ type: string;
950
+ };
951
+ };
952
+ required: string[];
953
+ additionalProperties: boolean;
954
+ };
955
+ } | {
956
+ type: string;
957
+ name: string;
958
+ description: string;
959
+ inputSchema: {
960
+ type: string;
961
+ properties: {
962
+ question: {
963
+ type: string;
964
+ };
965
+ to: {
966
+ type: string;
967
+ enum: string[];
968
+ description: string;
969
+ };
970
+ options: {
971
+ type: string;
972
+ items: {
973
+ type: string;
974
+ };
975
+ description: string;
976
+ };
977
+ };
978
+ required: string[];
979
+ additionalProperties: boolean;
980
+ };
981
+ } | {
982
+ type: string;
983
+ name: string;
984
+ description: string;
985
+ inputSchema: {
986
+ type: string;
987
+ properties: {
988
+ scope: {
989
+ type: string;
990
+ enum: string[];
991
+ };
992
+ lesson: {
993
+ type: string;
994
+ description: string;
995
+ };
996
+ };
997
+ required: string[];
998
+ additionalProperties: boolean;
999
+ };
1000
+ } | {
1001
+ type: string;
1002
+ name: string;
1003
+ description: string;
1004
+ inputSchema: {
1005
+ type: string;
1006
+ properties: {
1007
+ name: {
1008
+ type: string;
1009
+ description: string;
1010
+ };
1011
+ description: {
1012
+ type: string;
1013
+ description: string;
1014
+ };
1015
+ body: {
1016
+ type: string;
1017
+ description: string;
1018
+ };
1019
+ roles: {
1020
+ type: string;
1021
+ items: {
1022
+ type: string;
1023
+ };
1024
+ description: string;
1025
+ };
1026
+ lessons: {
1027
+ type: string;
1028
+ items: {
1029
+ type: string;
1030
+ };
1031
+ description: string;
1032
+ };
1033
+ replace: {
1034
+ type: string;
1035
+ description: string;
1036
+ };
1037
+ };
1038
+ required: string[];
1039
+ additionalProperties: boolean;
1040
+ };
1041
+ } | {
1042
+ type: string;
1043
+ name: string;
1044
+ description: string;
1045
+ inputSchema: {
1046
+ type: string;
1047
+ properties: {
1048
+ action: {
1049
+ type: string;
1050
+ enum: string[];
1051
+ };
1052
+ target: {
1053
+ type: string;
1054
+ enum: string[];
1055
+ };
1056
+ query: {
1057
+ type: string;
1058
+ description: string;
1059
+ };
1060
+ title: {
1061
+ type: string;
1062
+ description: string;
1063
+ };
1064
+ body: {
1065
+ type: string;
1066
+ description: string;
1067
+ };
1068
+ issue: {
1069
+ type: string;
1070
+ description: string;
1071
+ };
1072
+ labels: {
1073
+ type: string;
1074
+ items: {
1075
+ type: string;
1076
+ };
1077
+ description: string;
1078
+ };
1079
+ };
1080
+ required: string[];
1081
+ additionalProperties: boolean;
1082
+ };
1083
+ } | {
1084
+ type: string;
1085
+ name: string;
1086
+ description: string;
1087
+ inputSchema: {
1088
+ type: string;
1089
+ properties: {
1090
+ limit?: {
1091
+ type: string;
1092
+ description: string;
1093
+ } | undefined;
1094
+ status?: {
1095
+ type: string;
1096
+ enum: import("@anhlp/alp-core/tasks").TaskStatus[];
1097
+ description: string;
1098
+ } | undefined;
1099
+ label?: {
1100
+ type: string;
1101
+ description: string;
1102
+ } | undefined;
1103
+ title?: {
1104
+ type: string;
1105
+ description: string;
1106
+ } | undefined;
1107
+ description?: {
1108
+ type: string;
1109
+ description: string;
1110
+ } | undefined;
1111
+ type?: {
1112
+ type: string;
1113
+ enum: import("@anhlp/alp-core/tasks").TaskType[];
1114
+ } | undefined;
1115
+ priority?: {
1116
+ type: string;
1117
+ description: string;
1118
+ } | undefined;
1119
+ labels?: {
1120
+ type: string;
1121
+ items: {
1122
+ type: string;
1123
+ };
1124
+ } | undefined;
1125
+ paths?: {
1126
+ type: string;
1127
+ items: {
1128
+ type: string;
1129
+ };
1130
+ description: string;
1131
+ } | undefined;
1132
+ parent?: {
1133
+ type: string;
1134
+ description: string;
1135
+ } | undefined;
1136
+ blockedBy?: {
1137
+ type: string;
1138
+ items: {
1139
+ type: string;
1140
+ };
1141
+ description: string;
1142
+ } | undefined;
1143
+ discoveredFrom?: {
1144
+ type: string;
1145
+ description: string;
1146
+ } | undefined;
1147
+ add?: {
1148
+ type: string;
1149
+ description: string;
1150
+ properties: {
1151
+ blockedBy: {
1152
+ type: string;
1153
+ items: {
1154
+ type: string;
1155
+ };
1156
+ description: string;
1157
+ };
1158
+ related: {
1159
+ type: string;
1160
+ items: {
1161
+ type: string;
1162
+ };
1163
+ };
1164
+ parent: {
1165
+ type: string;
1166
+ description: string;
1167
+ };
1168
+ };
1169
+ additionalProperties: boolean;
1170
+ } | undefined;
1171
+ remove?: {
1172
+ type: string;
1173
+ description: string;
1174
+ properties: {
1175
+ blockedBy: {
1176
+ type: string;
1177
+ items: {
1178
+ type: string;
1179
+ };
1180
+ description: string;
1181
+ };
1182
+ related: {
1183
+ type: string;
1184
+ items: {
1185
+ type: string;
1186
+ };
1187
+ };
1188
+ parent: {
1189
+ type: string;
1190
+ description: string;
1191
+ };
1192
+ };
1193
+ additionalProperties: boolean;
1194
+ } | undefined;
1195
+ reason?: {
1196
+ type: string;
1197
+ enum: import("@anhlp/alp-core/tasks").CloseReason[];
1198
+ description: string;
1199
+ } | undefined;
1200
+ kind?: {
1201
+ type: string;
1202
+ enum: import("@anhlp/alp-core/tasks").GateKind[];
1203
+ description: string;
1204
+ } | undefined;
1205
+ until?: {
1206
+ type: string;
1207
+ description: string;
1208
+ } | undefined;
1209
+ ref?: {
1210
+ type: string;
1211
+ description: string;
1212
+ } | undefined;
1213
+ gate?: {
1214
+ type: string;
1215
+ description: string;
1216
+ } | undefined;
1217
+ formula?: {
1218
+ type: string;
1219
+ description: string;
1220
+ } | undefined;
1221
+ vars?: {
1222
+ type: string;
1223
+ additionalProperties: {
1224
+ type: string;
1225
+ };
1226
+ description: string;
1227
+ } | undefined;
1228
+ summary?: {
1229
+ type: string;
1230
+ description: string;
1231
+ } | undefined;
1232
+ unverified?: {
1233
+ type: string;
1234
+ description: string;
1235
+ } | undefined;
1236
+ note?: {
1237
+ type: string;
1238
+ description: string;
1239
+ } | undefined;
1240
+ action: {
1241
+ type: string;
1242
+ enum: ("close" | "list" | "create" | "link" | "update" | "start" | "reopen" | "gate" | "clear" | "pour" | "formulas" | "show" | "ready")[];
1243
+ };
1244
+ id: {
1245
+ type: string;
1246
+ description: string;
1247
+ };
1248
+ };
1249
+ required: string[];
1250
+ additionalProperties: boolean;
1251
+ };
1252
+ } | {
1253
+ type: string;
1254
+ name: string;
1255
+ description: string;
1256
+ inputSchema: {
1257
+ type: string;
1258
+ properties: {
1259
+ taskId?: {
1260
+ type: string;
1261
+ description: string;
1262
+ } | undefined;
1263
+ agent: {
1264
+ type: string;
1265
+ enum: string[];
1266
+ };
1267
+ task: {
1268
+ type: string;
1269
+ description: string;
1270
+ };
1271
+ model: {
1272
+ type: string;
1273
+ description: string;
1274
+ };
1275
+ thinking: {
1276
+ type: string;
1277
+ description: string;
1278
+ };
1279
+ modelReason: {
1280
+ type: string;
1281
+ description: string;
1282
+ };
1283
+ mode: {
1284
+ type: string;
1285
+ enum: string[];
1286
+ description: string;
1287
+ };
1288
+ isolation: {
1289
+ type: string;
1290
+ enum: string[];
1291
+ description: string;
1292
+ };
1293
+ writeRoot: {
1294
+ type: string;
1295
+ description: string;
1296
+ };
1297
+ continueFrom: {
1298
+ type: string;
1299
+ description: string;
1300
+ };
1301
+ wait: {
1302
+ type: string;
1303
+ description: string;
1304
+ };
1305
+ etaMinutes: {
1306
+ type: string;
1307
+ minimum: number;
1308
+ maximum: number;
1309
+ description: string;
1310
+ };
1311
+ };
1312
+ required: string[];
1313
+ additionalProperties: boolean;
1314
+ };
1315
+ })[];
1316
+ floor?: "workspace-write" | "read-only" | undefined;
1317
+ permissions?: PermissionProfile | null | undefined;
1318
+ skills?: Array<{
1319
+ name: string;
1320
+ path: string;
1321
+ }>;
1322
+ config: {
1323
+ model_auto_compact_token_limit: number;
1324
+ };
1325
+ context?: undefined;
1326
+ runtime: RuntimeKind;
1327
+ cwd: string;
1328
+ model: any;
1329
+ sandbox: string;
1330
+ approvalPolicy: string;
1331
+ } | {
1332
+ developerInstructions: string;
1333
+ mcpServers: Record<string, unknown>;
1334
+ thinking: string;
1335
+ /**
1336
+ * ALP owns multi-agent orchestration.
1337
+ *
1338
+ * The adapter must disable/bypass the harness' native agent spawning
1339
+ * while preserving all other native Codex capabilities.
1340
+ */
1341
+ nativeMultiAgent: boolean;
1342
+ dynamicTools: ({
1343
+ type: string;
1344
+ name: string;
1345
+ description: string;
1346
+ inputSchema: {
1347
+ type: string;
1348
+ properties: {
1349
+ outcome: {
1350
+ type: string;
1351
+ enum: readonly ["complete", "partial", "blocked", "reconsider"];
1352
+ description: string;
1353
+ };
1354
+ summary: {
1355
+ type: string;
1356
+ description: string;
1357
+ };
1358
+ candidate: {
1359
+ type: string;
1360
+ items: {
1361
+ type: string;
1362
+ };
1363
+ description: string;
1364
+ };
1365
+ scope: {
1366
+ type: string;
1367
+ items: {
1368
+ type: string;
1369
+ };
1370
+ description: string;
1371
+ };
1372
+ verification: {
1373
+ type: string;
1374
+ items: {
1375
+ type: string;
1376
+ };
1377
+ description: string;
1378
+ };
1379
+ risks: {
1380
+ type: string;
1381
+ items: {
1382
+ type: string;
1383
+ };
1384
+ description: string;
1385
+ };
1386
+ discovered: {
1387
+ type: string;
1388
+ items: {
1389
+ type: string;
1390
+ };
1391
+ description: string;
1392
+ };
1393
+ ownership: {
1394
+ type: string;
1395
+ description: string;
1396
+ };
1397
+ verdict: {
1398
+ type: string;
1399
+ description: string;
1400
+ properties: {
1401
+ result: {
1402
+ type: string;
1403
+ enum: readonly ["pass", "pass_with_findings", "fail", "blocked"];
1404
+ };
1405
+ criteria: {
1406
+ type: string;
1407
+ items: {
1408
+ type: string;
1409
+ properties: {
1410
+ criterion: {
1411
+ type: string;
1412
+ description: string;
1413
+ };
1414
+ result: {
1415
+ type: string;
1416
+ enum: readonly ["pass", "fail", "not_checked"];
1417
+ };
1418
+ evidence: {
1419
+ type: string;
1420
+ description: string;
1421
+ };
1422
+ };
1423
+ required: string[];
1424
+ additionalProperties: boolean;
1425
+ };
1426
+ };
1427
+ findings: {
1428
+ type: string;
1429
+ items: {
1430
+ type: string;
1431
+ properties: {
1432
+ severity: {
1433
+ type: string;
1434
+ enum: readonly ["critical", "high", "medium", "low"];
1435
+ description: string;
1436
+ };
1437
+ where: {
1438
+ type: string;
1439
+ description: string;
1440
+ };
1441
+ problem: {
1442
+ type: string;
1443
+ description: string;
1444
+ };
1445
+ fix: {
1446
+ type: string;
1447
+ description: string;
1448
+ };
1449
+ };
1450
+ required: string[];
1451
+ additionalProperties: boolean;
1452
+ };
1453
+ };
1454
+ };
1455
+ required: string[];
1456
+ additionalProperties: boolean;
1457
+ };
1458
+ };
1459
+ required: string[];
1460
+ additionalProperties: boolean;
1461
+ };
1462
+ } | {
1463
+ type: string;
1464
+ name: string;
1465
+ description: string;
1466
+ inputSchema: {
1467
+ type: string;
1468
+ properties: {
1469
+ assignments: {
1470
+ type: string;
1471
+ items: {
1472
+ type: string;
1473
+ };
1474
+ description: string;
1475
+ };
1476
+ timeoutMs: {
1477
+ type: string;
1478
+ description: string;
1479
+ };
1480
+ };
1481
+ additionalProperties: boolean;
1482
+ };
1483
+ } | {
1484
+ type: string;
1485
+ name: string;
1486
+ description: string;
1487
+ inputSchema: {
1488
+ type: string;
1489
+ properties: {
1490
+ to: {
1491
+ type: string;
1492
+ description: string;
1493
+ };
1494
+ kind: {
1495
+ type: string;
1496
+ enum: string[];
1497
+ description: string;
1498
+ };
1499
+ body: {
1500
+ type: string;
1501
+ };
1502
+ replyTo: {
1503
+ type: string;
1504
+ description: string;
1505
+ };
1506
+ };
1507
+ required: string[];
1508
+ additionalProperties: boolean;
1509
+ };
1510
+ } | {
1511
+ type: string;
1512
+ name: string;
1513
+ description: string;
1514
+ inputSchema: {
1515
+ type: string;
1516
+ properties: {
1517
+ taskId: {
1518
+ type: string;
1519
+ description: string;
1520
+ };
1521
+ };
1522
+ additionalProperties: boolean;
1523
+ };
1524
+ } | {
1525
+ type: string;
1526
+ name: string;
1527
+ description: string;
1528
+ inputSchema: {
1529
+ type: string;
1530
+ properties: {
1531
+ assignmentId: {
1532
+ type: string;
1533
+ };
1534
+ };
1535
+ required: string[];
1536
+ additionalProperties: boolean;
1537
+ };
1538
+ } | {
1539
+ type: string;
1540
+ name: string;
1541
+ description: string;
1542
+ inputSchema: {
1543
+ type: string;
1544
+ properties: {
1545
+ kind: {
1546
+ type: string;
1547
+ enum: readonly ["claim", "decision", "finding"];
1548
+ };
1549
+ body: {
1550
+ type: string;
1551
+ description: string;
1552
+ };
1553
+ paths: {
1554
+ type: string;
1555
+ items: {
1556
+ type: string;
1557
+ };
1558
+ description: string;
1559
+ };
1560
+ };
1561
+ required: string[];
1562
+ additionalProperties: boolean;
1563
+ };
1564
+ } | {
1565
+ type: string;
1566
+ name: string;
1567
+ description: string;
1568
+ inputSchema: {
1569
+ type: string;
1570
+ properties: {
1571
+ kinds: {
1572
+ type: string;
1573
+ items: {
1574
+ type: string;
1575
+ enum: readonly ["claim", "decision", "finding"];
1576
+ };
1577
+ };
1578
+ limit: {
1579
+ type: string;
1580
+ description: string;
1581
+ };
1582
+ };
1583
+ additionalProperties: boolean;
1584
+ };
1585
+ } | {
1586
+ type: string;
1587
+ name: string;
1588
+ description: string;
1589
+ inputSchema: {
1590
+ type: string;
1591
+ properties: {
1592
+ pinId: {
1593
+ type: string;
1594
+ };
1595
+ };
1596
+ required: string[];
1597
+ additionalProperties: boolean;
1598
+ };
1599
+ } | {
1600
+ type: string;
1601
+ name: string;
1602
+ description: string;
1603
+ inputSchema: {
1604
+ type: string;
1605
+ properties: {
1606
+ question: {
1607
+ type: string;
1608
+ };
1609
+ to: {
1610
+ type: string;
1611
+ enum: string[];
1612
+ description: string;
1613
+ };
1614
+ options: {
1615
+ type: string;
1616
+ items: {
1617
+ type: string;
1618
+ };
1619
+ description: string;
1620
+ };
1621
+ };
1622
+ required: string[];
1623
+ additionalProperties: boolean;
1624
+ };
1625
+ } | {
1626
+ type: string;
1627
+ name: string;
1628
+ description: string;
1629
+ inputSchema: {
1630
+ type: string;
1631
+ properties: {
1632
+ scope: {
1633
+ type: string;
1634
+ enum: string[];
1635
+ };
1636
+ lesson: {
1637
+ type: string;
1638
+ description: string;
1639
+ };
1640
+ };
1641
+ required: string[];
1642
+ additionalProperties: boolean;
1643
+ };
1644
+ } | {
1645
+ type: string;
1646
+ name: string;
1647
+ description: string;
1648
+ inputSchema: {
1649
+ type: string;
1650
+ properties: {
1651
+ name: {
1652
+ type: string;
1653
+ description: string;
1654
+ };
1655
+ description: {
1656
+ type: string;
1657
+ description: string;
1658
+ };
1659
+ body: {
1660
+ type: string;
1661
+ description: string;
1662
+ };
1663
+ roles: {
1664
+ type: string;
1665
+ items: {
1666
+ type: string;
1667
+ };
1668
+ description: string;
1669
+ };
1670
+ lessons: {
1671
+ type: string;
1672
+ items: {
1673
+ type: string;
1674
+ };
1675
+ description: string;
1676
+ };
1677
+ replace: {
1678
+ type: string;
1679
+ description: string;
1680
+ };
1681
+ };
1682
+ required: string[];
1683
+ additionalProperties: boolean;
1684
+ };
1685
+ } | {
1686
+ type: string;
1687
+ name: string;
1688
+ description: string;
1689
+ inputSchema: {
1690
+ type: string;
1691
+ properties: {
1692
+ action: {
1693
+ type: string;
1694
+ enum: string[];
1695
+ };
1696
+ target: {
1697
+ type: string;
1698
+ enum: string[];
1699
+ };
1700
+ query: {
1701
+ type: string;
1702
+ description: string;
1703
+ };
1704
+ title: {
1705
+ type: string;
1706
+ description: string;
1707
+ };
1708
+ body: {
1709
+ type: string;
1710
+ description: string;
1711
+ };
1712
+ issue: {
1713
+ type: string;
1714
+ description: string;
1715
+ };
1716
+ labels: {
1717
+ type: string;
1718
+ items: {
1719
+ type: string;
1720
+ };
1721
+ description: string;
1722
+ };
1723
+ };
1724
+ required: string[];
1725
+ additionalProperties: boolean;
1726
+ };
1727
+ } | {
1728
+ type: string;
1729
+ name: string;
1730
+ description: string;
1731
+ inputSchema: {
1732
+ type: string;
1733
+ properties: {
1734
+ limit?: {
1735
+ type: string;
1736
+ description: string;
1737
+ } | undefined;
1738
+ status?: {
1739
+ type: string;
1740
+ enum: import("@anhlp/alp-core/tasks").TaskStatus[];
1741
+ description: string;
1742
+ } | undefined;
1743
+ label?: {
1744
+ type: string;
1745
+ description: string;
1746
+ } | undefined;
1747
+ title?: {
1748
+ type: string;
1749
+ description: string;
1750
+ } | undefined;
1751
+ description?: {
1752
+ type: string;
1753
+ description: string;
1754
+ } | undefined;
1755
+ type?: {
1756
+ type: string;
1757
+ enum: import("@anhlp/alp-core/tasks").TaskType[];
1758
+ } | undefined;
1759
+ priority?: {
1760
+ type: string;
1761
+ description: string;
1762
+ } | undefined;
1763
+ labels?: {
1764
+ type: string;
1765
+ items: {
1766
+ type: string;
1767
+ };
1768
+ } | undefined;
1769
+ paths?: {
1770
+ type: string;
1771
+ items: {
1772
+ type: string;
1773
+ };
1774
+ description: string;
1775
+ } | undefined;
1776
+ parent?: {
1777
+ type: string;
1778
+ description: string;
1779
+ } | undefined;
1780
+ blockedBy?: {
1781
+ type: string;
1782
+ items: {
1783
+ type: string;
1784
+ };
1785
+ description: string;
1786
+ } | undefined;
1787
+ discoveredFrom?: {
1788
+ type: string;
1789
+ description: string;
1790
+ } | undefined;
1791
+ add?: {
1792
+ type: string;
1793
+ description: string;
1794
+ properties: {
1795
+ blockedBy: {
1796
+ type: string;
1797
+ items: {
1798
+ type: string;
1799
+ };
1800
+ description: string;
1801
+ };
1802
+ related: {
1803
+ type: string;
1804
+ items: {
1805
+ type: string;
1806
+ };
1807
+ };
1808
+ parent: {
1809
+ type: string;
1810
+ description: string;
1811
+ };
1812
+ };
1813
+ additionalProperties: boolean;
1814
+ } | undefined;
1815
+ remove?: {
1816
+ type: string;
1817
+ description: string;
1818
+ properties: {
1819
+ blockedBy: {
1820
+ type: string;
1821
+ items: {
1822
+ type: string;
1823
+ };
1824
+ description: string;
1825
+ };
1826
+ related: {
1827
+ type: string;
1828
+ items: {
1829
+ type: string;
1830
+ };
1831
+ };
1832
+ parent: {
1833
+ type: string;
1834
+ description: string;
1835
+ };
1836
+ };
1837
+ additionalProperties: boolean;
1838
+ } | undefined;
1839
+ reason?: {
1840
+ type: string;
1841
+ enum: import("@anhlp/alp-core/tasks").CloseReason[];
1842
+ description: string;
1843
+ } | undefined;
1844
+ kind?: {
1845
+ type: string;
1846
+ enum: import("@anhlp/alp-core/tasks").GateKind[];
1847
+ description: string;
1848
+ } | undefined;
1849
+ until?: {
1850
+ type: string;
1851
+ description: string;
1852
+ } | undefined;
1853
+ ref?: {
1854
+ type: string;
1855
+ description: string;
1856
+ } | undefined;
1857
+ gate?: {
1858
+ type: string;
1859
+ description: string;
1860
+ } | undefined;
1861
+ formula?: {
1862
+ type: string;
1863
+ description: string;
1864
+ } | undefined;
1865
+ vars?: {
1866
+ type: string;
1867
+ additionalProperties: {
1868
+ type: string;
1869
+ };
1870
+ description: string;
1871
+ } | undefined;
1872
+ summary?: {
1873
+ type: string;
1874
+ description: string;
1875
+ } | undefined;
1876
+ unverified?: {
1877
+ type: string;
1878
+ description: string;
1879
+ } | undefined;
1880
+ note?: {
1881
+ type: string;
1882
+ description: string;
1883
+ } | undefined;
1884
+ action: {
1885
+ type: string;
1886
+ enum: ("close" | "list" | "create" | "link" | "update" | "start" | "reopen" | "gate" | "clear" | "pour" | "formulas" | "show" | "ready")[];
1887
+ };
1888
+ id: {
1889
+ type: string;
1890
+ description: string;
1891
+ };
1892
+ };
1893
+ required: string[];
1894
+ additionalProperties: boolean;
1895
+ };
1896
+ } | {
1897
+ type: string;
1898
+ name: string;
1899
+ description: string;
1900
+ inputSchema: {
1901
+ type: string;
1902
+ properties: {
1903
+ taskId?: {
1904
+ type: string;
1905
+ description: string;
1906
+ } | undefined;
1907
+ agent: {
1908
+ type: string;
1909
+ enum: string[];
1910
+ };
1911
+ task: {
1912
+ type: string;
1913
+ description: string;
1914
+ };
1915
+ model: {
1916
+ type: string;
1917
+ description: string;
1918
+ };
1919
+ thinking: {
1920
+ type: string;
1921
+ description: string;
1922
+ };
1923
+ modelReason: {
1924
+ type: string;
1925
+ description: string;
1926
+ };
1927
+ mode: {
1928
+ type: string;
1929
+ enum: string[];
1930
+ description: string;
1931
+ };
1932
+ isolation: {
1933
+ type: string;
1934
+ enum: string[];
1935
+ description: string;
1936
+ };
1937
+ writeRoot: {
1938
+ type: string;
1939
+ description: string;
1940
+ };
1941
+ continueFrom: {
1942
+ type: string;
1943
+ description: string;
1944
+ };
1945
+ wait: {
1946
+ type: string;
1947
+ description: string;
1948
+ };
1949
+ etaMinutes: {
1950
+ type: string;
1951
+ minimum: number;
1952
+ maximum: number;
1953
+ description: string;
1954
+ };
1955
+ };
1956
+ required: string[];
1957
+ additionalProperties: boolean;
1958
+ };
1959
+ })[];
1960
+ floor?: "workspace-write" | "read-only" | undefined;
1961
+ permissions?: PermissionProfile | null | undefined;
1962
+ skills?: Array<{
1963
+ name: string;
1964
+ path: string;
1965
+ }>;
1966
+ context?: undefined;
1967
+ config?: undefined;
1968
+ runtime: RuntimeKind;
1969
+ cwd: string;
1970
+ model: any;
1971
+ sandbox: string;
1972
+ approvalPolicy: string;
1973
+ };