agent-dealer 0.1.0 → 0.1.2
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/bundle/server/dist/db/index.js +5 -0
- package/bundle/server/dist/db/schema.sql +2 -0
- package/bundle/server/dist/repository/agents.js +14 -5
- package/bundle/server/dist/repository/runs.js +30 -1
- package/bundle/server/dist/routes/index.js +18 -1
- package/bundle/server/dist/runners/claude.js +4 -10
- package/bundle/server/package.json +1 -1
- package/bundle/server/static-ui/assets/{index-Blmq-P5I.css → index-ChdPKYDd.css} +1 -1
- package/bundle/server/static-ui/assets/index-hIzZ8TM8.js +77 -0
- package/bundle/server/static-ui/index.html +2 -2
- package/bundle/shared/dist/agents.d.ts +100 -0
- package/bundle/shared/dist/agents.js +9 -0
- package/bundle/shared/dist/budget.d.ts +92 -0
- package/bundle/shared/dist/budget.js +108 -0
- package/bundle/shared/dist/index.d.ts +255 -0
- package/bundle/shared/dist/index.js +8 -0
- package/bundle/shared/package.json +1 -1
- package/dist/bin.js +0 -0
- package/dist/doctor.js +15 -6
- package/dist/env.d.ts +11 -0
- package/dist/env.js +39 -0
- package/dist/start.js +13 -2
- package/package.json +1 -1
- package/templates/prod.env.example +8 -7
- package/bundle/server/static-ui/assets/index-BPfTEO0-.js +0 -77
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
export * from "./runtime.js";
|
|
3
3
|
export * from "./agents.js";
|
|
4
|
+
export * from "./budget.js";
|
|
4
5
|
export * from "./execution.js";
|
|
5
6
|
export declare const RunStatus: z.ZodEnum<["queued", "plan_pending", "plan_approved", "running", "review", "done", "failed", "cancelled"]>;
|
|
6
7
|
export type RunStatus = z.infer<typeof RunStatus>;
|
|
@@ -561,6 +562,64 @@ export declare const CreateRunInput: z.ZodObject<{
|
|
|
561
562
|
agentId: z.ZodString;
|
|
562
563
|
planModel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
563
564
|
executeModel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
565
|
+
budget: z.ZodOptional<z.ZodObject<{
|
|
566
|
+
plan: z.ZodOptional<z.ZodObject<{
|
|
567
|
+
maxTurns: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
568
|
+
maxBudgetUsd: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
569
|
+
}, "strip", z.ZodTypeAny, {
|
|
570
|
+
maxTurns?: number | null | undefined;
|
|
571
|
+
maxBudgetUsd?: number | null | undefined;
|
|
572
|
+
}, {
|
|
573
|
+
maxTurns?: number | null | undefined;
|
|
574
|
+
maxBudgetUsd?: number | null | undefined;
|
|
575
|
+
}>>;
|
|
576
|
+
execute: z.ZodOptional<z.ZodObject<{
|
|
577
|
+
maxTurns: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
578
|
+
maxBudgetUsd: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
579
|
+
}, "strip", z.ZodTypeAny, {
|
|
580
|
+
maxTurns?: number | null | undefined;
|
|
581
|
+
maxBudgetUsd?: number | null | undefined;
|
|
582
|
+
}, {
|
|
583
|
+
maxTurns?: number | null | undefined;
|
|
584
|
+
maxBudgetUsd?: number | null | undefined;
|
|
585
|
+
}>>;
|
|
586
|
+
reflect: z.ZodOptional<z.ZodObject<{
|
|
587
|
+
maxTurns: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
588
|
+
maxBudgetUsd: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
589
|
+
}, "strip", z.ZodTypeAny, {
|
|
590
|
+
maxTurns?: number | null | undefined;
|
|
591
|
+
maxBudgetUsd?: number | null | undefined;
|
|
592
|
+
}, {
|
|
593
|
+
maxTurns?: number | null | undefined;
|
|
594
|
+
maxBudgetUsd?: number | null | undefined;
|
|
595
|
+
}>>;
|
|
596
|
+
}, "strip", z.ZodTypeAny, {
|
|
597
|
+
plan?: {
|
|
598
|
+
maxTurns?: number | null | undefined;
|
|
599
|
+
maxBudgetUsd?: number | null | undefined;
|
|
600
|
+
} | undefined;
|
|
601
|
+
execute?: {
|
|
602
|
+
maxTurns?: number | null | undefined;
|
|
603
|
+
maxBudgetUsd?: number | null | undefined;
|
|
604
|
+
} | undefined;
|
|
605
|
+
reflect?: {
|
|
606
|
+
maxTurns?: number | null | undefined;
|
|
607
|
+
maxBudgetUsd?: number | null | undefined;
|
|
608
|
+
} | undefined;
|
|
609
|
+
}, {
|
|
610
|
+
plan?: {
|
|
611
|
+
maxTurns?: number | null | undefined;
|
|
612
|
+
maxBudgetUsd?: number | null | undefined;
|
|
613
|
+
} | undefined;
|
|
614
|
+
execute?: {
|
|
615
|
+
maxTurns?: number | null | undefined;
|
|
616
|
+
maxBudgetUsd?: number | null | undefined;
|
|
617
|
+
} | undefined;
|
|
618
|
+
reflect?: {
|
|
619
|
+
maxTurns?: number | null | undefined;
|
|
620
|
+
maxBudgetUsd?: number | null | undefined;
|
|
621
|
+
} | undefined;
|
|
622
|
+
}>>;
|
|
564
623
|
}, "strip", z.ZodTypeAny, {
|
|
565
624
|
status: "queued" | "plan_pending" | "plan_approved";
|
|
566
625
|
title: string;
|
|
@@ -572,6 +631,20 @@ export declare const CreateRunInput: z.ZodObject<{
|
|
|
572
631
|
planModel?: string | null | undefined;
|
|
573
632
|
executeModel?: string | null | undefined;
|
|
574
633
|
acceptanceCriteria?: string | undefined;
|
|
634
|
+
budget?: {
|
|
635
|
+
plan?: {
|
|
636
|
+
maxTurns?: number | null | undefined;
|
|
637
|
+
maxBudgetUsd?: number | null | undefined;
|
|
638
|
+
} | undefined;
|
|
639
|
+
execute?: {
|
|
640
|
+
maxTurns?: number | null | undefined;
|
|
641
|
+
maxBudgetUsd?: number | null | undefined;
|
|
642
|
+
} | undefined;
|
|
643
|
+
reflect?: {
|
|
644
|
+
maxTurns?: number | null | undefined;
|
|
645
|
+
maxBudgetUsd?: number | null | undefined;
|
|
646
|
+
} | undefined;
|
|
647
|
+
} | undefined;
|
|
575
648
|
}, {
|
|
576
649
|
title: string;
|
|
577
650
|
agentId: string;
|
|
@@ -583,6 +656,20 @@ export declare const CreateRunInput: z.ZodObject<{
|
|
|
583
656
|
planModel?: string | null | undefined;
|
|
584
657
|
executeModel?: string | null | undefined;
|
|
585
658
|
acceptanceCriteria?: string | undefined;
|
|
659
|
+
budget?: {
|
|
660
|
+
plan?: {
|
|
661
|
+
maxTurns?: number | null | undefined;
|
|
662
|
+
maxBudgetUsd?: number | null | undefined;
|
|
663
|
+
} | undefined;
|
|
664
|
+
execute?: {
|
|
665
|
+
maxTurns?: number | null | undefined;
|
|
666
|
+
maxBudgetUsd?: number | null | undefined;
|
|
667
|
+
} | undefined;
|
|
668
|
+
reflect?: {
|
|
669
|
+
maxTurns?: number | null | undefined;
|
|
670
|
+
maxBudgetUsd?: number | null | undefined;
|
|
671
|
+
} | undefined;
|
|
672
|
+
} | undefined;
|
|
586
673
|
}>;
|
|
587
674
|
export type CreateRunInput = z.infer<typeof CreateRunInput>;
|
|
588
675
|
export declare const AgentConfigInput: z.ZodObject<{
|
|
@@ -591,18 +678,104 @@ export declare const AgentConfigInput: z.ZodObject<{
|
|
|
591
678
|
playbookId: z.ZodOptional<z.ZodString>;
|
|
592
679
|
planModel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
593
680
|
executeModel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
681
|
+
budget: z.ZodOptional<z.ZodObject<{
|
|
682
|
+
plan: z.ZodOptional<z.ZodObject<{
|
|
683
|
+
maxTurns: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
684
|
+
maxBudgetUsd: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
685
|
+
}, "strip", z.ZodTypeAny, {
|
|
686
|
+
maxTurns?: number | null | undefined;
|
|
687
|
+
maxBudgetUsd?: number | null | undefined;
|
|
688
|
+
}, {
|
|
689
|
+
maxTurns?: number | null | undefined;
|
|
690
|
+
maxBudgetUsd?: number | null | undefined;
|
|
691
|
+
}>>;
|
|
692
|
+
execute: z.ZodOptional<z.ZodObject<{
|
|
693
|
+
maxTurns: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
694
|
+
maxBudgetUsd: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
695
|
+
}, "strip", z.ZodTypeAny, {
|
|
696
|
+
maxTurns?: number | null | undefined;
|
|
697
|
+
maxBudgetUsd?: number | null | undefined;
|
|
698
|
+
}, {
|
|
699
|
+
maxTurns?: number | null | undefined;
|
|
700
|
+
maxBudgetUsd?: number | null | undefined;
|
|
701
|
+
}>>;
|
|
702
|
+
reflect: z.ZodOptional<z.ZodObject<{
|
|
703
|
+
maxTurns: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
704
|
+
maxBudgetUsd: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
705
|
+
}, "strip", z.ZodTypeAny, {
|
|
706
|
+
maxTurns?: number | null | undefined;
|
|
707
|
+
maxBudgetUsd?: number | null | undefined;
|
|
708
|
+
}, {
|
|
709
|
+
maxTurns?: number | null | undefined;
|
|
710
|
+
maxBudgetUsd?: number | null | undefined;
|
|
711
|
+
}>>;
|
|
712
|
+
}, "strip", z.ZodTypeAny, {
|
|
713
|
+
plan?: {
|
|
714
|
+
maxTurns?: number | null | undefined;
|
|
715
|
+
maxBudgetUsd?: number | null | undefined;
|
|
716
|
+
} | undefined;
|
|
717
|
+
execute?: {
|
|
718
|
+
maxTurns?: number | null | undefined;
|
|
719
|
+
maxBudgetUsd?: number | null | undefined;
|
|
720
|
+
} | undefined;
|
|
721
|
+
reflect?: {
|
|
722
|
+
maxTurns?: number | null | undefined;
|
|
723
|
+
maxBudgetUsd?: number | null | undefined;
|
|
724
|
+
} | undefined;
|
|
725
|
+
}, {
|
|
726
|
+
plan?: {
|
|
727
|
+
maxTurns?: number | null | undefined;
|
|
728
|
+
maxBudgetUsd?: number | null | undefined;
|
|
729
|
+
} | undefined;
|
|
730
|
+
execute?: {
|
|
731
|
+
maxTurns?: number | null | undefined;
|
|
732
|
+
maxBudgetUsd?: number | null | undefined;
|
|
733
|
+
} | undefined;
|
|
734
|
+
reflect?: {
|
|
735
|
+
maxTurns?: number | null | undefined;
|
|
736
|
+
maxBudgetUsd?: number | null | undefined;
|
|
737
|
+
} | undefined;
|
|
738
|
+
}>>;
|
|
594
739
|
}, "strip", z.ZodTypeAny, {
|
|
595
740
|
runtime: "claude_code" | "cursor_local";
|
|
596
741
|
deckId?: string | undefined;
|
|
597
742
|
playbookId?: string | undefined;
|
|
598
743
|
planModel?: string | null | undefined;
|
|
599
744
|
executeModel?: string | null | undefined;
|
|
745
|
+
budget?: {
|
|
746
|
+
plan?: {
|
|
747
|
+
maxTurns?: number | null | undefined;
|
|
748
|
+
maxBudgetUsd?: number | null | undefined;
|
|
749
|
+
} | undefined;
|
|
750
|
+
execute?: {
|
|
751
|
+
maxTurns?: number | null | undefined;
|
|
752
|
+
maxBudgetUsd?: number | null | undefined;
|
|
753
|
+
} | undefined;
|
|
754
|
+
reflect?: {
|
|
755
|
+
maxTurns?: number | null | undefined;
|
|
756
|
+
maxBudgetUsd?: number | null | undefined;
|
|
757
|
+
} | undefined;
|
|
758
|
+
} | undefined;
|
|
600
759
|
}, {
|
|
601
760
|
runtime: "claude_code" | "cursor_local";
|
|
602
761
|
deckId?: string | undefined;
|
|
603
762
|
playbookId?: string | undefined;
|
|
604
763
|
planModel?: string | null | undefined;
|
|
605
764
|
executeModel?: string | null | undefined;
|
|
765
|
+
budget?: {
|
|
766
|
+
plan?: {
|
|
767
|
+
maxTurns?: number | null | undefined;
|
|
768
|
+
maxBudgetUsd?: number | null | undefined;
|
|
769
|
+
} | undefined;
|
|
770
|
+
execute?: {
|
|
771
|
+
maxTurns?: number | null | undefined;
|
|
772
|
+
maxBudgetUsd?: number | null | undefined;
|
|
773
|
+
} | undefined;
|
|
774
|
+
reflect?: {
|
|
775
|
+
maxTurns?: number | null | undefined;
|
|
776
|
+
maxBudgetUsd?: number | null | undefined;
|
|
777
|
+
} | undefined;
|
|
778
|
+
} | undefined;
|
|
606
779
|
}>;
|
|
607
780
|
export type AgentConfigInput = z.infer<typeof AgentConfigInput>;
|
|
608
781
|
export declare const UpdatePlanInput: z.ZodObject<{
|
|
@@ -610,16 +783,52 @@ export declare const UpdatePlanInput: z.ZodObject<{
|
|
|
610
783
|
approve: z.ZodDefault<z.ZodBoolean>;
|
|
611
784
|
planModel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
612
785
|
executeModel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
786
|
+
planBudget: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
787
|
+
maxTurns: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
788
|
+
maxBudgetUsd: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
789
|
+
}, "strip", z.ZodTypeAny, {
|
|
790
|
+
maxTurns?: number | null | undefined;
|
|
791
|
+
maxBudgetUsd?: number | null | undefined;
|
|
792
|
+
}, {
|
|
793
|
+
maxTurns?: number | null | undefined;
|
|
794
|
+
maxBudgetUsd?: number | null | undefined;
|
|
795
|
+
}>>>;
|
|
796
|
+
executeBudget: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
797
|
+
maxTurns: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
798
|
+
maxBudgetUsd: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
799
|
+
}, "strip", z.ZodTypeAny, {
|
|
800
|
+
maxTurns?: number | null | undefined;
|
|
801
|
+
maxBudgetUsd?: number | null | undefined;
|
|
802
|
+
}, {
|
|
803
|
+
maxTurns?: number | null | undefined;
|
|
804
|
+
maxBudgetUsd?: number | null | undefined;
|
|
805
|
+
}>>>;
|
|
613
806
|
}, "strip", z.ZodTypeAny, {
|
|
614
807
|
approve: boolean;
|
|
615
808
|
planMarkdown: string;
|
|
616
809
|
planModel?: string | null | undefined;
|
|
617
810
|
executeModel?: string | null | undefined;
|
|
811
|
+
planBudget?: {
|
|
812
|
+
maxTurns?: number | null | undefined;
|
|
813
|
+
maxBudgetUsd?: number | null | undefined;
|
|
814
|
+
} | null | undefined;
|
|
815
|
+
executeBudget?: {
|
|
816
|
+
maxTurns?: number | null | undefined;
|
|
817
|
+
maxBudgetUsd?: number | null | undefined;
|
|
818
|
+
} | null | undefined;
|
|
618
819
|
}, {
|
|
619
820
|
planMarkdown: string;
|
|
620
821
|
approve?: boolean | undefined;
|
|
621
822
|
planModel?: string | null | undefined;
|
|
622
823
|
executeModel?: string | null | undefined;
|
|
824
|
+
planBudget?: {
|
|
825
|
+
maxTurns?: number | null | undefined;
|
|
826
|
+
maxBudgetUsd?: number | null | undefined;
|
|
827
|
+
} | null | undefined;
|
|
828
|
+
executeBudget?: {
|
|
829
|
+
maxTurns?: number | null | undefined;
|
|
830
|
+
maxBudgetUsd?: number | null | undefined;
|
|
831
|
+
} | null | undefined;
|
|
623
832
|
}>;
|
|
624
833
|
export type UpdatePlanInput = z.infer<typeof UpdatePlanInput>;
|
|
625
834
|
export declare const KickRunInput: z.ZodObject<{
|
|
@@ -628,16 +837,34 @@ export declare const KickRunInput: z.ZodObject<{
|
|
|
628
837
|
deckId: z.ZodOptional<z.ZodString>;
|
|
629
838
|
playbookId: z.ZodOptional<z.ZodString>;
|
|
630
839
|
executeModel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
840
|
+
executeBudget: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
841
|
+
maxTurns: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
842
|
+
maxBudgetUsd: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
843
|
+
}, "strip", z.ZodTypeAny, {
|
|
844
|
+
maxTurns?: number | null | undefined;
|
|
845
|
+
maxBudgetUsd?: number | null | undefined;
|
|
846
|
+
}, {
|
|
847
|
+
maxTurns?: number | null | undefined;
|
|
848
|
+
maxBudgetUsd?: number | null | undefined;
|
|
849
|
+
}>>>;
|
|
631
850
|
}, "strip", z.ZodTypeAny, {
|
|
632
851
|
runtime?: "claude_code" | "cursor_local" | undefined;
|
|
633
852
|
deckId?: string | undefined;
|
|
634
853
|
playbookId?: string | undefined;
|
|
635
854
|
executeModel?: string | null | undefined;
|
|
855
|
+
executeBudget?: {
|
|
856
|
+
maxTurns?: number | null | undefined;
|
|
857
|
+
maxBudgetUsd?: number | null | undefined;
|
|
858
|
+
} | null | undefined;
|
|
636
859
|
}, {
|
|
637
860
|
runtime?: "claude_code" | "cursor_local" | undefined;
|
|
638
861
|
deckId?: string | undefined;
|
|
639
862
|
playbookId?: string | undefined;
|
|
640
863
|
executeModel?: string | null | undefined;
|
|
864
|
+
executeBudget?: {
|
|
865
|
+
maxTurns?: number | null | undefined;
|
|
866
|
+
maxBudgetUsd?: number | null | undefined;
|
|
867
|
+
} | null | undefined;
|
|
641
868
|
}>;
|
|
642
869
|
export type KickRunInput = z.infer<typeof KickRunInput>;
|
|
643
870
|
export declare const RetryRunInput: z.ZodObject<{
|
|
@@ -1005,10 +1232,28 @@ export declare const PromoteLinearInput: z.ZodEffects<z.ZodObject<{
|
|
|
1005
1232
|
export type PromoteLinearInput = z.infer<typeof PromoteLinearInput>;
|
|
1006
1233
|
export declare const DraftPlanInput: z.ZodObject<{
|
|
1007
1234
|
planModel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1235
|
+
planBudget: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
1236
|
+
maxTurns: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
1237
|
+
maxBudgetUsd: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
1238
|
+
}, "strip", z.ZodTypeAny, {
|
|
1239
|
+
maxTurns?: number | null | undefined;
|
|
1240
|
+
maxBudgetUsd?: number | null | undefined;
|
|
1241
|
+
}, {
|
|
1242
|
+
maxTurns?: number | null | undefined;
|
|
1243
|
+
maxBudgetUsd?: number | null | undefined;
|
|
1244
|
+
}>>>;
|
|
1008
1245
|
}, "strip", z.ZodTypeAny, {
|
|
1009
1246
|
planModel?: string | null | undefined;
|
|
1247
|
+
planBudget?: {
|
|
1248
|
+
maxTurns?: number | null | undefined;
|
|
1249
|
+
maxBudgetUsd?: number | null | undefined;
|
|
1250
|
+
} | null | undefined;
|
|
1010
1251
|
}, {
|
|
1011
1252
|
planModel?: string | null | undefined;
|
|
1253
|
+
planBudget?: {
|
|
1254
|
+
maxTurns?: number | null | undefined;
|
|
1255
|
+
maxBudgetUsd?: number | null | undefined;
|
|
1256
|
+
} | null | undefined;
|
|
1012
1257
|
}>;
|
|
1013
1258
|
export type DraftPlanInput = z.infer<typeof DraftPlanInput>;
|
|
1014
1259
|
export declare const RuntimeModelOption: z.ZodObject<{
|
|
@@ -1698,6 +1943,8 @@ export declare const QueueSnapshot: z.ZodObject<{
|
|
|
1698
1943
|
playbookId: z.ZodNullable<z.ZodString>;
|
|
1699
1944
|
defaultPlanModel: z.ZodNullable<z.ZodString>;
|
|
1700
1945
|
defaultExecuteModel: z.ZodNullable<z.ZodString>;
|
|
1946
|
+
defaultPlanBudgetJson: z.ZodNullable<z.ZodString>;
|
|
1947
|
+
defaultExecuteBudgetJson: z.ZodNullable<z.ZodString>;
|
|
1701
1948
|
isBuiltin: z.ZodBoolean;
|
|
1702
1949
|
createdAt: z.ZodString;
|
|
1703
1950
|
updatedAt: z.ZodString;
|
|
@@ -1727,6 +1974,8 @@ export declare const QueueSnapshot: z.ZodObject<{
|
|
|
1727
1974
|
playbookId: string | null;
|
|
1728
1975
|
defaultPlanModel: string | null;
|
|
1729
1976
|
defaultExecuteModel: string | null;
|
|
1977
|
+
defaultPlanBudgetJson: string | null;
|
|
1978
|
+
defaultExecuteBudgetJson: string | null;
|
|
1730
1979
|
isBuiltin: boolean;
|
|
1731
1980
|
createdAt: string;
|
|
1732
1981
|
updatedAt: string;
|
|
@@ -1745,6 +1994,8 @@ export declare const QueueSnapshot: z.ZodObject<{
|
|
|
1745
1994
|
playbookId: string | null;
|
|
1746
1995
|
defaultPlanModel: string | null;
|
|
1747
1996
|
defaultExecuteModel: string | null;
|
|
1997
|
+
defaultPlanBudgetJson: string | null;
|
|
1998
|
+
defaultExecuteBudgetJson: string | null;
|
|
1748
1999
|
isBuiltin: boolean;
|
|
1749
2000
|
createdAt: string;
|
|
1750
2001
|
updatedAt: string;
|
|
@@ -1766,6 +2017,8 @@ export declare const QueueSnapshot: z.ZodObject<{
|
|
|
1766
2017
|
playbookId: string | null;
|
|
1767
2018
|
defaultPlanModel: string | null;
|
|
1768
2019
|
defaultExecuteModel: string | null;
|
|
2020
|
+
defaultPlanBudgetJson: string | null;
|
|
2021
|
+
defaultExecuteBudgetJson: string | null;
|
|
1769
2022
|
isBuiltin: boolean;
|
|
1770
2023
|
createdAt: string;
|
|
1771
2024
|
updatedAt: string;
|
|
@@ -1999,6 +2252,8 @@ export declare const QueueSnapshot: z.ZodObject<{
|
|
|
1999
2252
|
playbookId: string | null;
|
|
2000
2253
|
defaultPlanModel: string | null;
|
|
2001
2254
|
defaultExecuteModel: string | null;
|
|
2255
|
+
defaultPlanBudgetJson: string | null;
|
|
2256
|
+
defaultExecuteBudgetJson: string | null;
|
|
2002
2257
|
isBuiltin: boolean;
|
|
2003
2258
|
createdAt: string;
|
|
2004
2259
|
updatedAt: string;
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { Runtime } from "./runtime.js";
|
|
3
3
|
import { AgentWithHealth } from "./agents.js";
|
|
4
|
+
import { PhaseBudget, RunBudget } from "./budget.js";
|
|
4
5
|
export * from "./runtime.js";
|
|
5
6
|
export * from "./agents.js";
|
|
7
|
+
export * from "./budget.js";
|
|
6
8
|
export * from "./execution.js";
|
|
7
9
|
export const RunStatus = z.enum([
|
|
8
10
|
"queued",
|
|
@@ -183,6 +185,7 @@ export const CreateRunInput = z.object({
|
|
|
183
185
|
agentId: z.string().uuid(),
|
|
184
186
|
planModel: z.string().nullable().optional(),
|
|
185
187
|
executeModel: z.string().nullable().optional(),
|
|
188
|
+
budget: RunBudget.optional(),
|
|
186
189
|
});
|
|
187
190
|
export const AgentConfigInput = z.object({
|
|
188
191
|
runtime: Runtime,
|
|
@@ -190,12 +193,15 @@ export const AgentConfigInput = z.object({
|
|
|
190
193
|
playbookId: z.string().optional(),
|
|
191
194
|
planModel: z.string().nullable().optional(),
|
|
192
195
|
executeModel: z.string().nullable().optional(),
|
|
196
|
+
budget: RunBudget.optional(),
|
|
193
197
|
});
|
|
194
198
|
export const UpdatePlanInput = z.object({
|
|
195
199
|
planMarkdown: z.string(),
|
|
196
200
|
approve: z.boolean().default(false),
|
|
197
201
|
planModel: z.string().nullable().optional(),
|
|
198
202
|
executeModel: z.string().nullable().optional(),
|
|
203
|
+
planBudget: PhaseBudget.nullable().optional(),
|
|
204
|
+
executeBudget: PhaseBudget.nullable().optional(),
|
|
199
205
|
});
|
|
200
206
|
export const KickRunInput = z.object({
|
|
201
207
|
/** Uses run record when omitted at kick time. */
|
|
@@ -203,6 +209,7 @@ export const KickRunInput = z.object({
|
|
|
203
209
|
deckId: z.string().uuid().optional(),
|
|
204
210
|
playbookId: z.string().optional(),
|
|
205
211
|
executeModel: z.string().nullable().optional(),
|
|
212
|
+
executeBudget: PhaseBudget.nullable().optional(),
|
|
206
213
|
});
|
|
207
214
|
export const RetryRunInput = z.object({
|
|
208
215
|
feedback: z.string().min(1),
|
|
@@ -284,6 +291,7 @@ export const PromoteLinearInput = z
|
|
|
284
291
|
});
|
|
285
292
|
export const DraftPlanInput = z.object({
|
|
286
293
|
planModel: z.string().nullable().optional(),
|
|
294
|
+
planBudget: PhaseBudget.nullable().optional(),
|
|
287
295
|
});
|
|
288
296
|
export const RuntimeModelOption = z.object({
|
|
289
297
|
id: z.string(),
|
package/dist/bin.js
CHANGED
|
File without changes
|
package/dist/doctor.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import net from "node:net";
|
|
2
2
|
import fs from "node:fs";
|
|
3
|
-
import path from "node:path";
|
|
4
3
|
import { claudeAvailable } from "./cli-check.js";
|
|
5
|
-
import {
|
|
4
|
+
import { loadProdEnvFile, prodEnvFilePath, prodHomeDir, resolveBundledListenPort, shortenHome, } from "./env.js";
|
|
5
|
+
import { resolveServerEntry, resolveUiDist } from "./paths.js";
|
|
6
6
|
export async function runDoctor() {
|
|
7
7
|
let failed = false;
|
|
8
8
|
const major = Number(process.versions.node.split(".")[0]);
|
|
@@ -35,15 +35,24 @@ export async function runDoctor() {
|
|
|
35
35
|
else {
|
|
36
36
|
console.warn("⚠ dashboard bundle missing (API-only)");
|
|
37
37
|
}
|
|
38
|
-
const
|
|
39
|
-
const envFile = path.join(home, ".env");
|
|
38
|
+
const envFile = loadProdEnvFile() ?? prodEnvFilePath();
|
|
40
39
|
if (fs.existsSync(envFile)) {
|
|
41
|
-
console.log(`✓ config ${envFile}`);
|
|
40
|
+
console.log(`✓ config ${shortenHome(envFile)}`);
|
|
41
|
+
if (process.env.LINEAR_API_KEY?.trim()) {
|
|
42
|
+
console.log("✓ LINEAR_API_KEY set");
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
console.warn("⚠ LINEAR_API_KEY not set — Linear inbox disabled");
|
|
46
|
+
}
|
|
42
47
|
}
|
|
43
48
|
else {
|
|
44
49
|
console.warn(`⚠ no config — run: agent-dealer setup`);
|
|
45
50
|
}
|
|
46
|
-
const
|
|
51
|
+
const home = prodHomeDir();
|
|
52
|
+
if (fs.existsSync(home)) {
|
|
53
|
+
console.log(`✓ data ${shortenHome(home)}`);
|
|
54
|
+
}
|
|
55
|
+
const port = resolveBundledListenPort();
|
|
47
56
|
const free = await isPortFree(port);
|
|
48
57
|
if (free) {
|
|
49
58
|
console.log(`✓ port ${port} available`);
|
package/dist/env.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Production data + config directory (respects AGENT_DEALER_HOME from shell). */
|
|
2
|
+
export declare function prodHomeDir(): string;
|
|
3
|
+
export declare function prodEnvFilePath(): string;
|
|
4
|
+
/** Load ~/.agent-dealer/.env for CLI (Linear keys, port, etc.). Does not override existing env. */
|
|
5
|
+
export declare function loadProdEnvFile(): string | undefined;
|
|
6
|
+
/**
|
|
7
|
+
* Bundled npm start: listen on prod dashboard port (2222).
|
|
8
|
+
* Legacy setups used PORT=2221 for API-only; ignore that when bundling UI.
|
|
9
|
+
*/
|
|
10
|
+
export declare function resolveBundledListenPort(explicit?: number): number;
|
|
11
|
+
export declare function shortenHome(p: string): string;
|
package/dist/env.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import os from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import dotenv from "dotenv";
|
|
5
|
+
/** Production data + config directory (respects AGENT_DEALER_HOME from shell). */
|
|
6
|
+
export function prodHomeDir() {
|
|
7
|
+
return (process.env.AGENT_DEALER_HOME?.trim() ||
|
|
8
|
+
path.join(os.homedir(), ".agent-dealer"));
|
|
9
|
+
}
|
|
10
|
+
export function prodEnvFilePath() {
|
|
11
|
+
return path.join(prodHomeDir(), ".env");
|
|
12
|
+
}
|
|
13
|
+
/** Load ~/.agent-dealer/.env for CLI (Linear keys, port, etc.). Does not override existing env. */
|
|
14
|
+
export function loadProdEnvFile() {
|
|
15
|
+
const envFile = prodEnvFilePath();
|
|
16
|
+
if (fs.existsSync(envFile)) {
|
|
17
|
+
dotenv.config({ path: envFile });
|
|
18
|
+
return envFile;
|
|
19
|
+
}
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Bundled npm start: listen on prod dashboard port (2222).
|
|
24
|
+
* Legacy setups used PORT=2221 for API-only; ignore that when bundling UI.
|
|
25
|
+
*/
|
|
26
|
+
export function resolveBundledListenPort(explicit) {
|
|
27
|
+
if (explicit !== undefined)
|
|
28
|
+
return explicit;
|
|
29
|
+
if (process.env.WEB_PORT)
|
|
30
|
+
return Number(process.env.WEB_PORT);
|
|
31
|
+
const port = process.env.PORT;
|
|
32
|
+
if (port && port !== "2221")
|
|
33
|
+
return Number(port);
|
|
34
|
+
return 2222;
|
|
35
|
+
}
|
|
36
|
+
export function shortenHome(p) {
|
|
37
|
+
const home = os.homedir();
|
|
38
|
+
return p.startsWith(home) ? `~${p.slice(home.length)}` : p;
|
|
39
|
+
}
|
package/dist/start.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { spawn } from "node:child_process";
|
|
2
|
+
import { loadProdEnvFile, prodEnvFilePath, prodHomeDir, resolveBundledListenPort, shortenHome, } from "./env.js";
|
|
2
3
|
import { resolveServerEntry, resolveUiDist } from "./paths.js";
|
|
3
4
|
let child = null;
|
|
4
5
|
async function waitForHealth(url, attempts = 40) {
|
|
@@ -16,13 +17,23 @@ async function waitForHealth(url, attempts = 40) {
|
|
|
16
17
|
return false;
|
|
17
18
|
}
|
|
18
19
|
export async function runStart(options = {}) {
|
|
19
|
-
const
|
|
20
|
-
const
|
|
20
|
+
const envFile = loadProdEnvFile();
|
|
21
|
+
const home = prodHomeDir();
|
|
21
22
|
const uiDist = resolveUiDist();
|
|
23
|
+
const port = resolveBundledListenPort(options.port);
|
|
24
|
+
const entry = resolveServerEntry();
|
|
25
|
+
if (envFile) {
|
|
26
|
+
console.log(`Config: ${shortenHome(envFile)}`);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
console.warn(`No config at ${shortenHome(prodEnvFilePath())} — run: agent-dealer setup`);
|
|
30
|
+
}
|
|
22
31
|
const env = {
|
|
23
32
|
...process.env,
|
|
24
33
|
AGENT_DEALER_ENV: "production",
|
|
34
|
+
AGENT_DEALER_HOME: home,
|
|
25
35
|
PORT: String(port),
|
|
36
|
+
WEB_PORT: String(port),
|
|
26
37
|
AGENT_DEALER_WEB_URL: `http://localhost:${port}`,
|
|
27
38
|
AGENT_DEALER_API: `http://127.0.0.1:${port}`,
|
|
28
39
|
};
|
package/package.json
CHANGED
|
@@ -6,14 +6,15 @@ AGENT_DEALER_ENV=production
|
|
|
6
6
|
# SQLite data directory (default: ~/.agent-dealer)
|
|
7
7
|
# AGENT_DEALER_HOME=
|
|
8
8
|
|
|
9
|
-
# API + dashboard port when UI is bundled (default:
|
|
10
|
-
PORT=
|
|
11
|
-
AGENT_DEALER_WEB_URL=http://localhost:
|
|
9
|
+
# API + dashboard port when UI is bundled (default: 2222 — prod dashboard port)
|
|
10
|
+
PORT=2222
|
|
11
|
+
AGENT_DEALER_WEB_URL=http://localhost:2222
|
|
12
|
+
AGENT_DEALER_API=http://127.0.0.1:2222
|
|
12
13
|
|
|
13
|
-
# Linear (optional — manual tasks work without)
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
# Linear (optional — manual tasks work without; edit after `agent-dealer setup`)
|
|
15
|
+
LINEAR_API_KEY=
|
|
16
|
+
LINEAR_TEAM_ID=
|
|
17
|
+
LINEAR_STATE_FILTER="Todo,Backlog"
|
|
17
18
|
|
|
18
19
|
# Agent Deck UI proxy (optional)
|
|
19
20
|
# AGENT_DECK_API_URL=http://127.0.0.1:1111
|