@a5c-ai/krate 5.0.1-staging.eaefc7aec → 5.0.1-staging.ee474eb45
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/dist/krate-controller-ui.json +146 -8
- package/dist/krate-lifecycle.json +1 -1
- package/dist/krate-runtime-snapshot.json +223 -53
- package/dist/krate-summary.json +5 -3
- package/package.json +1 -1
- package/scripts/validate-ui.mjs +26 -3
- package/src/agent-workspace-controller.js +257 -2
- package/src/controller-client.js +8 -6
- package/src/controller-ui.js +71 -5
- package/src/data-plane.js +3 -2
- package/src/gitea-backend.js +36 -0
- package/src/resource-model.js +2 -2
- package/tests/codespace-controller.test.js +318 -0
- package/tests/deployment.test.js +13 -3
- package/tests/event-bus-integration.test.js +190 -0
- package/tests/krate.test.js +30 -1
- package/tests/notification-integration.test.js +179 -0
- package/tests/runner-integration.test.js +231 -0
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"platformNamespace": "krate-org-default"
|
|
20
20
|
}
|
|
21
21
|
],
|
|
22
|
-
"generatedAt": "2026-05-
|
|
22
|
+
"generatedAt": "2026-05-15T17:50:50.934Z",
|
|
23
23
|
"correlationId": null,
|
|
24
24
|
"controller": {
|
|
25
25
|
"mode": "krate-workspace",
|
|
@@ -293,6 +293,8 @@
|
|
|
293
293
|
"invites": 1,
|
|
294
294
|
"repositories": 1,
|
|
295
295
|
"pullRequests": 0,
|
|
296
|
+
"issues": 0,
|
|
297
|
+
"projects": 0,
|
|
296
298
|
"pipelines": 0,
|
|
297
299
|
"jobs": 0,
|
|
298
300
|
"runnerPools": 1,
|
|
@@ -327,7 +329,9 @@
|
|
|
327
329
|
"area": "api",
|
|
328
330
|
"resources": [
|
|
329
331
|
"Repository",
|
|
332
|
+
"KrateProject",
|
|
330
333
|
"PullRequest",
|
|
334
|
+
"Issue",
|
|
331
335
|
"Pipeline"
|
|
332
336
|
],
|
|
333
337
|
"docs": "src/api-controller.js"
|
|
@@ -579,7 +583,7 @@
|
|
|
579
583
|
"maintainers"
|
|
580
584
|
],
|
|
581
585
|
"invitedBy": "admin",
|
|
582
|
-
"expiresAt": "2026-05-
|
|
586
|
+
"expiresAt": "2026-05-22T17:50:50.931Z"
|
|
583
587
|
},
|
|
584
588
|
"status": {
|
|
585
589
|
"phase": "Pending",
|
|
@@ -591,7 +595,7 @@
|
|
|
591
595
|
"Pending": 1
|
|
592
596
|
},
|
|
593
597
|
"storage": "etcd",
|
|
594
|
-
"yaml": "apiVersion: krate.a5c.ai/v1alpha1\nkind: Invite\nmetadata:\n namespace: krate-org-default\n labels:\n role: member\n annotations:\n name: new-user-example-com\n resourceVersion: 1\nspec:\n organizationRef: default\n email: new-user@example.com\n role: member\n teams:\n - maintainers\n invitedBy: admin\n expiresAt: 2026-05-
|
|
598
|
+
"yaml": "apiVersion: krate.a5c.ai/v1alpha1\nkind: Invite\nmetadata:\n namespace: krate-org-default\n labels:\n role: member\n annotations:\n name: new-user-example-com\n resourceVersion: 1\nspec:\n organizationRef: default\n email: new-user@example.com\n role: member\n teams:\n - maintainers\n invitedBy: admin\n expiresAt: 2026-05-22T17:50:50.931Z\nstatus:\n phase: Pending\n storage: etcd\n",
|
|
595
599
|
"action": {
|
|
596
600
|
"list": "Open Invite records in krate-org-default",
|
|
597
601
|
"watch": "Watch Invite updates in krate-org-default",
|
|
@@ -803,9 +807,43 @@
|
|
|
803
807
|
"delegatedTo": "Gitea collaborators and team repository APIs"
|
|
804
808
|
},
|
|
805
809
|
"forgeRecords": {
|
|
806
|
-
"issues": "Gitea /repos/
|
|
810
|
+
"issues": "Gitea /repos/krate/_krate-org-default_/issues",
|
|
807
811
|
"pullRequests": "Gitea /repos/{owner}/{repo}/pulls"
|
|
808
812
|
},
|
|
813
|
+
"issueSync": {
|
|
814
|
+
"backend": "gitea",
|
|
815
|
+
"owner": "krate-org-default",
|
|
816
|
+
"repo": "_krate-org-default_",
|
|
817
|
+
"issue": "<issue>",
|
|
818
|
+
"project": null,
|
|
819
|
+
"repositoryRefs": [
|
|
820
|
+
"krate-demo"
|
|
821
|
+
],
|
|
822
|
+
"metadataKeys": [
|
|
823
|
+
"krate.a5c.ai/project",
|
|
824
|
+
"krate.a5c.ai/repositories"
|
|
825
|
+
],
|
|
826
|
+
"actions": [
|
|
827
|
+
{
|
|
828
|
+
"action": "ensureOrgMemoryRepository",
|
|
829
|
+
"owner": "krate-org-default",
|
|
830
|
+
"repo": "_krate-org-default_"
|
|
831
|
+
},
|
|
832
|
+
{
|
|
833
|
+
"action": "syncIssue",
|
|
834
|
+
"owner": "krate-org-default",
|
|
835
|
+
"repo": "_krate-org-default_",
|
|
836
|
+
"issue": "<issue>"
|
|
837
|
+
},
|
|
838
|
+
{
|
|
839
|
+
"action": "writeIssueRepositoryMetadata",
|
|
840
|
+
"issue": "<issue>",
|
|
841
|
+
"repositories": [
|
|
842
|
+
"krate-demo"
|
|
843
|
+
]
|
|
844
|
+
}
|
|
845
|
+
]
|
|
846
|
+
},
|
|
809
847
|
"webhookUrl": "http://krate-webhook-worker/repositories/krate-org-default/krate-demo",
|
|
810
848
|
"integrationPlan": {
|
|
811
849
|
"backend": "gitea",
|
|
@@ -961,7 +999,7 @@
|
|
|
961
999
|
"Ready": 1
|
|
962
1000
|
},
|
|
963
1001
|
"storage": "etcd",
|
|
964
|
-
"yaml": "apiVersion: krate.a5c.ai/v1alpha1\nkind: Repository\nmetadata:\n namespace: krate-org-default\n labels:\n gitBackend: gitea\n annotations:\n name: krate-demo\n resourceVersion: 1\nspec:\n organizationRef: default\n visibility: private\n gitHosting:\n backend: gitea\n owner: krate\n repository: krate-demo\n branch: main\n httpUrl: http://krate-gitea-http:3000/krate/krate-demo.git\n sshUrl: ssh://git@krate-gitea-ssh/krate/krate-demo.git\n deployKeyTitle: krate-argocd\n organization:\n kind: Organization\n name: krate\n delegatedTo: Gitea /api/v1/orgs\n sshKeys:\n kind: SSHKey\n scopes:\n - user\n - deploy\n - argocd\n delegatedTo: Gitea /api/v1/user/keys and /repos/{owner}/{repo}/keys\n permissions:\n kind: RepositoryPermission\n defaultCollaborator: write\n adminTeam: maintainers\n delegatedTo: Gitea collaborators and team repository APIs\n forgeRecords:\n issues: Gitea /repos/
|
|
1002
|
+
"yaml": "apiVersion: krate.a5c.ai/v1alpha1\nkind: Repository\nmetadata:\n namespace: krate-org-default\n labels:\n gitBackend: gitea\n annotations:\n name: krate-demo\n resourceVersion: 1\nspec:\n organizationRef: default\n visibility: private\n gitHosting:\n backend: gitea\n owner: krate\n repository: krate-demo\n branch: main\n httpUrl: http://krate-gitea-http:3000/krate/krate-demo.git\n sshUrl: ssh://git@krate-gitea-ssh/krate/krate-demo.git\n deployKeyTitle: krate-argocd\n organization:\n kind: Organization\n name: krate\n delegatedTo: Gitea /api/v1/orgs\n sshKeys:\n kind: SSHKey\n scopes:\n - user\n - deploy\n - argocd\n delegatedTo: Gitea /api/v1/user/keys and /repos/{owner}/{repo}/keys\n permissions:\n kind: RepositoryPermission\n defaultCollaborator: write\n adminTeam: maintainers\n delegatedTo: Gitea collaborators and team repository APIs\n forgeRecords:\n issues: Gitea /repos/krate/_krate-org-default_/issues\n pullRequests: Gitea /repos/{owner}/{repo}/pulls\n issueSync:\n backend: gitea\n owner: krate-org-default\n repo: _krate-org-default_\n issue: <issue>\n project: null\n repositoryRefs:\n - krate-demo\n metadataKeys:\n - krate.a5c.ai/project\n - krate.a5c.ai/repositories\n actions:\n - action: ensureOrgMemoryRepository\n owner: krate-org-default\n repo: _krate-org-default_\n - action: syncIssue\n owner: krate-org-default\n repo: _krate-org-default_\n issue: <issue>\n - action: writeIssueRepositoryMetadata\n issue: <issue>\n repositories:\n - krate-demo\n webhookUrl: http://krate-webhook-worker/repositories/krate-org-default/krate-demo\n integrationPlan:\n backend: gitea\n operations:\n - action: createOrganization\n owner: krate\n - action: createRepository\n owner: krate\n repo: krate-demo\n - action: ensureUserMappings\n owner: krate\n - action: addDeployKey\n owner: krate\n repo: krate-demo\n title: krate-argocd\n readOnly: false\n - action: addUserSshKey\n owner: krate\n repo: krate-demo\n title: developer key\n - action: addCollaborator\n owner: krate\n repo: krate-demo\n permission: write\n - action: addTeamRepository\n owner: krate\n repo: krate-demo\n team: maintainers\n permission: admin\n - action: protectBranch\n owner: krate\n repo: krate-demo\n branch: main\n - action: createWebhook\n owner: krate\n repo: krate-demo\n url: http://krate-webhook-worker/repositories/krate-org-default/krate-demo\n storage:\n mode: gitea\n persistentVolumeClaim: krate-gitea-data\n owner: krate\n repository: krate-demo\n httpUrl: http://krate-gitea-http:3000/krate/krate-demo.git\n sshUrl: ssh://git@krate-gitea-ssh/krate/krate-demo.git\n objectStorage:\n lfs: true\n artifacts: true\n search:\n provider: zoekt\n enabled: false\nstatus:\n ready: true\n route:\n repositoryName: krate-demo\n backend: gitea\n owner: krate\n store: gitea-primary\n receivePackReady: true\n httpUrl: http://krate-gitea-http:3000/krate/krate-demo.git\n sshUrl: ssh://git@krate-gitea-ssh/krate/krate-demo.git\n gitHosting:\n backend: gitea\n httpUrl: http://krate-gitea-http:3000/krate/krate-demo.git\n sshUrl: ssh://git@krate-gitea-ssh/krate/krate-demo.git\n integrationPlan:\n backend: gitea\n operations:\n - action: createOrganization\n owner: krate\n - action: createRepository\n owner: krate\n repo: krate-demo\n - action: ensureUserMappings\n owner: krate\n - action: addDeployKey\n owner: krate\n repo: krate-demo\n title: krate-argocd\n readOnly: false\n - action: addUserSshKey\n owner: krate\n repo: krate-demo\n title: developer key\n - action: addCollaborator\n owner: krate\n repo: krate-demo\n permission: write\n - action: addTeamRepository\n owner: krate\n repo: krate-demo\n team: maintainers\n permission: admin\n - action: protectBranch\n owner: krate\n repo: krate-demo\n branch: main\n - action: createWebhook\n owner: krate\n repo: krate-demo\n url: http://krate-webhook-worker/repositories/krate-org-default/krate-demo\n storage: etcd\n",
|
|
965
1003
|
"action": {
|
|
966
1004
|
"list": "Open Repository records in krate-org-default",
|
|
967
1005
|
"watch": "Watch Repository updates in krate-org-default",
|
|
@@ -2438,7 +2476,7 @@
|
|
|
2438
2476
|
"maintainers"
|
|
2439
2477
|
],
|
|
2440
2478
|
"phase": "Pending",
|
|
2441
|
-
"expiresAt": "2026-05-
|
|
2479
|
+
"expiresAt": "2026-05-22T17:50:50.931Z"
|
|
2442
2480
|
}
|
|
2443
2481
|
],
|
|
2444
2482
|
"mappings": [
|
|
@@ -2598,9 +2636,43 @@
|
|
|
2598
2636
|
"delegatedTo": "Gitea collaborators and team repository APIs"
|
|
2599
2637
|
},
|
|
2600
2638
|
"forgeRecords": {
|
|
2601
|
-
"issues": "Gitea /repos/
|
|
2639
|
+
"issues": "Gitea /repos/krate/_krate-org-default_/issues",
|
|
2602
2640
|
"pullRequests": "Gitea /repos/{owner}/{repo}/pulls"
|
|
2603
2641
|
},
|
|
2642
|
+
"issueSync": {
|
|
2643
|
+
"backend": "gitea",
|
|
2644
|
+
"owner": "krate-org-default",
|
|
2645
|
+
"repo": "_krate-org-default_",
|
|
2646
|
+
"issue": "<issue>",
|
|
2647
|
+
"project": null,
|
|
2648
|
+
"repositoryRefs": [
|
|
2649
|
+
"krate-demo"
|
|
2650
|
+
],
|
|
2651
|
+
"metadataKeys": [
|
|
2652
|
+
"krate.a5c.ai/project",
|
|
2653
|
+
"krate.a5c.ai/repositories"
|
|
2654
|
+
],
|
|
2655
|
+
"actions": [
|
|
2656
|
+
{
|
|
2657
|
+
"action": "ensureOrgMemoryRepository",
|
|
2658
|
+
"owner": "krate-org-default",
|
|
2659
|
+
"repo": "_krate-org-default_"
|
|
2660
|
+
},
|
|
2661
|
+
{
|
|
2662
|
+
"action": "syncIssue",
|
|
2663
|
+
"owner": "krate-org-default",
|
|
2664
|
+
"repo": "_krate-org-default_",
|
|
2665
|
+
"issue": "<issue>"
|
|
2666
|
+
},
|
|
2667
|
+
{
|
|
2668
|
+
"action": "writeIssueRepositoryMetadata",
|
|
2669
|
+
"issue": "<issue>",
|
|
2670
|
+
"repositories": [
|
|
2671
|
+
"krate-demo"
|
|
2672
|
+
]
|
|
2673
|
+
}
|
|
2674
|
+
]
|
|
2675
|
+
},
|
|
2604
2676
|
"webhookUrl": "http://krate-webhook-worker/repositories/krate-org-default/krate-demo",
|
|
2605
2677
|
"integrationPlan": {
|
|
2606
2678
|
"backend": "gitea",
|
|
@@ -2752,6 +2824,62 @@
|
|
|
2752
2824
|
}
|
|
2753
2825
|
}
|
|
2754
2826
|
],
|
|
2827
|
+
"projects": [],
|
|
2828
|
+
"issues": [],
|
|
2829
|
+
"issueSync": {
|
|
2830
|
+
"gitea": {
|
|
2831
|
+
"backend": "gitea",
|
|
2832
|
+
"owner": "default",
|
|
2833
|
+
"repo": "_default_",
|
|
2834
|
+
"issue": "<issue>",
|
|
2835
|
+
"project": null,
|
|
2836
|
+
"repositoryRefs": [
|
|
2837
|
+
"krate-demo"
|
|
2838
|
+
],
|
|
2839
|
+
"metadataKeys": [
|
|
2840
|
+
"krate.a5c.ai/project",
|
|
2841
|
+
"krate.a5c.ai/repositories"
|
|
2842
|
+
],
|
|
2843
|
+
"actions": [
|
|
2844
|
+
{
|
|
2845
|
+
"action": "ensureOrgMemoryRepository",
|
|
2846
|
+
"owner": "default",
|
|
2847
|
+
"repo": "_default_"
|
|
2848
|
+
},
|
|
2849
|
+
{
|
|
2850
|
+
"action": "syncIssue",
|
|
2851
|
+
"owner": "default",
|
|
2852
|
+
"repo": "_default_",
|
|
2853
|
+
"issue": "<issue>"
|
|
2854
|
+
},
|
|
2855
|
+
{
|
|
2856
|
+
"action": "writeIssueRepositoryMetadata",
|
|
2857
|
+
"issue": "<issue>",
|
|
2858
|
+
"repositories": [
|
|
2859
|
+
"krate-demo"
|
|
2860
|
+
]
|
|
2861
|
+
}
|
|
2862
|
+
]
|
|
2863
|
+
},
|
|
2864
|
+
"github": {
|
|
2865
|
+
"backend": "github",
|
|
2866
|
+
"owner": "default",
|
|
2867
|
+
"project": null,
|
|
2868
|
+
"issue": "<issue>",
|
|
2869
|
+
"repositoryRefs": [
|
|
2870
|
+
"krate-demo"
|
|
2871
|
+
],
|
|
2872
|
+
"metadataKeys": [
|
|
2873
|
+
"project item fields",
|
|
2874
|
+
"krate repositories field"
|
|
2875
|
+
],
|
|
2876
|
+
"actions": [
|
|
2877
|
+
"syncProjectItem",
|
|
2878
|
+
"syncIssueMetadata",
|
|
2879
|
+
"syncRepositoryLinks"
|
|
2880
|
+
]
|
|
2881
|
+
}
|
|
2882
|
+
},
|
|
2755
2883
|
"excellentFlows": [
|
|
2756
2884
|
"Create or import a repository",
|
|
2757
2885
|
"Browse code and copy clone commands",
|
|
@@ -2767,6 +2895,16 @@
|
|
|
2767
2895
|
"value": 1,
|
|
2768
2896
|
"href": "/repositories"
|
|
2769
2897
|
},
|
|
2898
|
+
{
|
|
2899
|
+
"label": "Projects",
|
|
2900
|
+
"value": 0,
|
|
2901
|
+
"href": "/agents/projects"
|
|
2902
|
+
},
|
|
2903
|
+
{
|
|
2904
|
+
"label": "Issues",
|
|
2905
|
+
"value": 0,
|
|
2906
|
+
"href": "/inbox"
|
|
2907
|
+
},
|
|
2770
2908
|
{
|
|
2771
2909
|
"label": "Pull requests",
|
|
2772
2910
|
"value": 0,
|
|
@@ -2944,7 +3082,7 @@
|
|
|
2944
3082
|
"maintainers"
|
|
2945
3083
|
],
|
|
2946
3084
|
"phase": "Pending",
|
|
2947
|
-
"expiresAt": "2026-05-
|
|
3085
|
+
"expiresAt": "2026-05-22T17:50:50.931Z"
|
|
2948
3086
|
}
|
|
2949
3087
|
],
|
|
2950
3088
|
"mappings": [
|