@a5c-ai/krate 5.0.1-staging.3e516d263 → 5.0.1-staging.4f9ca58bf

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 (106) hide show
  1. package/dist/krate-controller-ui.json +760 -10
  2. package/dist/krate-lifecycle.json +1 -1
  3. package/dist/krate-runtime-snapshot.json +223 -53
  4. package/dist/krate-summary.json +5 -3
  5. package/docs/agents/gaps-agent-mux-to-krate-crds.md +298 -0
  6. package/docs/openapi.yaml +1275 -0
  7. package/docs/todos.md +4 -0
  8. package/package.json +1 -1
  9. package/scripts/validate-ui.mjs +87 -12
  10. package/src/agent-adapter-controller.js +169 -0
  11. package/src/agent-approval-controller.js +47 -0
  12. package/src/agent-dispatch-controller.js +53 -6
  13. package/src/agent-gateway-config-controller.js +147 -0
  14. package/src/agent-memory-controller.js +47 -64
  15. package/src/agent-memory-import.js +327 -0
  16. package/src/agent-memory-query.js +292 -0
  17. package/src/agent-memory-repository-source-controller.js +255 -0
  18. package/src/agent-mux-client.js +1 -1
  19. package/src/agent-permission-review.js +101 -13
  20. package/src/agent-project-controller.js +117 -0
  21. package/src/agent-provider-config-controller.js +150 -0
  22. package/src/agent-secret-config-grant-controller.js +282 -0
  23. package/src/agent-session-transcript-controller.js +189 -0
  24. package/src/agent-stack-controller.js +52 -1
  25. package/src/agent-subagent-controller.js +160 -0
  26. package/src/agent-transport-binding-controller.js +121 -0
  27. package/src/agent-trigger-controller.js +273 -0
  28. package/src/agent-workspace-controller.js +546 -52
  29. package/src/agent-writeback-controller.js +302 -0
  30. package/src/api-controller.js +296 -3
  31. package/src/async-controller.js +207 -0
  32. package/src/audit-controller.js +191 -0
  33. package/src/auth.js +48 -6
  34. package/src/controller-client.js +26 -12
  35. package/src/controller-ui.js +74 -8
  36. package/src/data-plane.js +3 -2
  37. package/src/event-bus.js +61 -0
  38. package/src/external/conflict-controller.js +225 -0
  39. package/src/external/github/auth.js +96 -0
  40. package/src/external/github/cicd.js +180 -0
  41. package/src/external/github/git-forge.js +240 -0
  42. package/src/external/github/index.js +144 -0
  43. package/src/external/github/issue-tracking.js +163 -0
  44. package/src/external/provider-adapter.js +161 -0
  45. package/src/external/provider-resource-factory.js +161 -0
  46. package/src/external/sync-controller.js +235 -0
  47. package/src/external/webhook-controller.js +144 -0
  48. package/src/external/write-controller.js +283 -0
  49. package/src/gitea-backend.js +36 -0
  50. package/src/gitea-service.js +173 -0
  51. package/src/http-server.js +157 -0
  52. package/src/index.js +25 -0
  53. package/src/kubernetes-controller-async.js +511 -0
  54. package/src/kubernetes-controller.js +146 -80
  55. package/src/notification-controller.js +178 -0
  56. package/src/org-scoping.js +5 -0
  57. package/src/resource-model.js +19 -9
  58. package/src/runner-controller.js +272 -0
  59. package/src/snapshot-cache.js +157 -0
  60. package/tests/agent-adapter-controller.test.js +361 -0
  61. package/tests/agent-gateway-config-controller.test.js +386 -0
  62. package/tests/agent-memory-import-snapshot.test.js +477 -0
  63. package/tests/agent-memory-query.test.js +404 -0
  64. package/tests/agent-memory-repository-source.test.js +514 -0
  65. package/tests/agent-permission-review-v2.test.js +317 -0
  66. package/tests/agent-project-controller.test.js +302 -0
  67. package/tests/agent-provider-config-controller.test.js +376 -0
  68. package/tests/agent-resources.test.js +19 -19
  69. package/tests/agent-secret-config-grant.test.js +231 -0
  70. package/tests/agent-session-transcript-controller.test.js +499 -0
  71. package/tests/agent-subagent-controller.test.js +201 -0
  72. package/tests/agent-transport-binding-controller.test.js +294 -0
  73. package/tests/agent-trigger-sources.test.js +245 -0
  74. package/tests/agent-workspace-controller.test.js +22 -56
  75. package/tests/agent-writeback.test.js +292 -0
  76. package/tests/approval-persistence.test.js +171 -0
  77. package/tests/async-controller.test.js +252 -0
  78. package/tests/audit-controller.test.js +227 -0
  79. package/tests/codespace-controller.test.js +318 -0
  80. package/tests/deployment.test.js +30 -20
  81. package/tests/e2e/lifecycle.test.js +1 -1
  82. package/tests/event-bus-integration.test.js +190 -0
  83. package/tests/external-github-forge.test.js +560 -0
  84. package/tests/external-github-issues-cicd.test.js +520 -0
  85. package/tests/external-integration.test.js +470 -0
  86. package/tests/external-persistence.test.js +340 -0
  87. package/tests/external-provider-adapter.test.js +365 -0
  88. package/tests/external-resource-model.test.js +215 -0
  89. package/tests/external-webhook-sync.test.js +287 -0
  90. package/tests/external-write-conflict.test.js +353 -0
  91. package/tests/gitea-service.test.js +253 -0
  92. package/tests/health-check-real.test.js +165 -0
  93. package/tests/integration/full-flow.test.js +266 -0
  94. package/tests/krate.test.js +35 -6
  95. package/tests/memory-search-wiring.test.js +270 -0
  96. package/tests/notification-controller.test.js +196 -0
  97. package/tests/notification-integration.test.js +179 -0
  98. package/tests/org-scoping.test.js +687 -0
  99. package/tests/runner-controller.test.js +327 -0
  100. package/tests/runner-integration.test.js +231 -0
  101. package/tests/session-cookie-hmac.test.js +151 -0
  102. package/tests/snapshot-performance.test.js +247 -0
  103. package/tests/sse-events.test.js +107 -0
  104. package/tests/webhook-trigger.test.js +198 -0
  105. package/tests/workspace-volumes.test.js +312 -0
  106. package/tests/writeback-persistence.test.js +207 -0
@@ -19,7 +19,7 @@
19
19
  "platformNamespace": "krate-org-default"
20
20
  }
21
21
  ],
22
- "generatedAt": "2026-05-12T12:32:27.824Z",
22
+ "generatedAt": "2026-05-16T05:48:08.000Z",
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"
@@ -396,11 +400,11 @@
396
400
  "AgentDispatchRun",
397
401
  "AgentTriggerRule",
398
402
  "AgentSession",
399
- "AgentWorkspace",
403
+ "KrateWorkspace",
400
404
  "AgentApproval",
401
405
  "AgentAdapter",
402
406
  "AgentProviderConfig",
403
- "AgentProject"
407
+ "KrateProject"
404
408
  ],
405
409
  "docs": "docs/agents/"
406
410
  }
@@ -579,7 +583,7 @@
579
583
  "maintainers"
580
584
  ],
581
585
  "invitedBy": "admin",
582
- "expiresAt": "2026-05-19T12:32:27.821Z"
586
+ "expiresAt": "2026-05-23T05:48:07.997Z"
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-19T12:32:27.821Z\nstatus:\n phase: Pending\n storage: etcd\n",
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-23T05:48:07.997Z\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/{owner}/{repo}/issues",
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/{owner}/{repo}/issues\n pullRequests: Gitea /repos/{owner}/{repo}/pulls\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",
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",
@@ -1583,6 +1621,618 @@
1583
1621
  "apply": "Save resource changes",
1584
1622
  "delete": "Delete Selector in krate-org-default"
1585
1623
  }
1624
+ },
1625
+ {
1626
+ "kind": "AgentStack",
1627
+ "plural": "agentstacks",
1628
+ "apiResource": "agentstacks.krate.a5c.ai",
1629
+ "count": 0,
1630
+ "names": [],
1631
+ "items": [],
1632
+ "phases": {},
1633
+ "storage": "etcd",
1634
+ "yaml": null,
1635
+ "action": {
1636
+ "list": "Open AgentStack records in krate-org-default",
1637
+ "watch": "Watch AgentStack updates in krate-org-default",
1638
+ "apply": "Save resource changes",
1639
+ "delete": "Delete AgentStack in krate-org-default"
1640
+ }
1641
+ },
1642
+ {
1643
+ "kind": "AgentSubagent",
1644
+ "plural": "agentsubagents",
1645
+ "apiResource": "agentsubagents.krate.a5c.ai",
1646
+ "count": 0,
1647
+ "names": [],
1648
+ "items": [],
1649
+ "phases": {},
1650
+ "storage": "etcd",
1651
+ "yaml": null,
1652
+ "action": {
1653
+ "list": "Open AgentSubagent records in krate-org-default",
1654
+ "watch": "Watch AgentSubagent updates in krate-org-default",
1655
+ "apply": "Save resource changes",
1656
+ "delete": "Delete AgentSubagent in krate-org-default"
1657
+ }
1658
+ },
1659
+ {
1660
+ "kind": "AgentToolProfile",
1661
+ "plural": "agenttoolprofiles",
1662
+ "apiResource": "agenttoolprofiles.krate.a5c.ai",
1663
+ "count": 0,
1664
+ "names": [],
1665
+ "items": [],
1666
+ "phases": {},
1667
+ "storage": "etcd",
1668
+ "yaml": null,
1669
+ "action": {
1670
+ "list": "Open AgentToolProfile records in krate-org-default",
1671
+ "watch": "Watch AgentToolProfile updates in krate-org-default",
1672
+ "apply": "Save resource changes",
1673
+ "delete": "Delete AgentToolProfile in krate-org-default"
1674
+ }
1675
+ },
1676
+ {
1677
+ "kind": "AgentMcpServer",
1678
+ "plural": "agentmcpservers",
1679
+ "apiResource": "agentmcpservers.krate.a5c.ai",
1680
+ "count": 0,
1681
+ "names": [],
1682
+ "items": [],
1683
+ "phases": {},
1684
+ "storage": "etcd",
1685
+ "yaml": null,
1686
+ "action": {
1687
+ "list": "Open AgentMcpServer records in krate-org-default",
1688
+ "watch": "Watch AgentMcpServer updates in krate-org-default",
1689
+ "apply": "Save resource changes",
1690
+ "delete": "Delete AgentMcpServer in krate-org-default"
1691
+ }
1692
+ },
1693
+ {
1694
+ "kind": "AgentSkill",
1695
+ "plural": "agentskills",
1696
+ "apiResource": "agentskills.krate.a5c.ai",
1697
+ "count": 0,
1698
+ "names": [],
1699
+ "items": [],
1700
+ "phases": {},
1701
+ "storage": "etcd",
1702
+ "yaml": null,
1703
+ "action": {
1704
+ "list": "Open AgentSkill records in krate-org-default",
1705
+ "watch": "Watch AgentSkill updates in krate-org-default",
1706
+ "apply": "Save resource changes",
1707
+ "delete": "Delete AgentSkill in krate-org-default"
1708
+ }
1709
+ },
1710
+ {
1711
+ "kind": "AgentTriggerRule",
1712
+ "plural": "agenttriggerrules",
1713
+ "apiResource": "agenttriggerrules.krate.a5c.ai",
1714
+ "count": 0,
1715
+ "names": [],
1716
+ "items": [],
1717
+ "phases": {},
1718
+ "storage": "etcd",
1719
+ "yaml": null,
1720
+ "action": {
1721
+ "list": "Open AgentTriggerRule records in krate-org-default",
1722
+ "watch": "Watch AgentTriggerRule updates in krate-org-default",
1723
+ "apply": "Save resource changes",
1724
+ "delete": "Delete AgentTriggerRule in krate-org-default"
1725
+ }
1726
+ },
1727
+ {
1728
+ "kind": "AgentContextLabel",
1729
+ "plural": "agentcontextlabels",
1730
+ "apiResource": "agentcontextlabels.krate.a5c.ai",
1731
+ "count": 0,
1732
+ "names": [],
1733
+ "items": [],
1734
+ "phases": {},
1735
+ "storage": "etcd",
1736
+ "yaml": null,
1737
+ "action": {
1738
+ "list": "Open AgentContextLabel records in krate-org-default",
1739
+ "watch": "Watch AgentContextLabel updates in krate-org-default",
1740
+ "apply": "Save resource changes",
1741
+ "delete": "Delete AgentContextLabel in krate-org-default"
1742
+ }
1743
+ },
1744
+ {
1745
+ "kind": "KrateWorkspacePolicy",
1746
+ "plural": "krateworkspacepolicies",
1747
+ "apiResource": "krateworkspacepolicies.krate.a5c.ai",
1748
+ "count": 0,
1749
+ "names": [],
1750
+ "items": [],
1751
+ "phases": {},
1752
+ "storage": "etcd",
1753
+ "yaml": null,
1754
+ "action": {
1755
+ "list": "Open KrateWorkspacePolicy records in krate-org-default",
1756
+ "watch": "Watch KrateWorkspacePolicy updates in krate-org-default",
1757
+ "apply": "Save resource changes",
1758
+ "delete": "Delete KrateWorkspacePolicy in krate-org-default"
1759
+ }
1760
+ },
1761
+ {
1762
+ "kind": "AgentServiceAccount",
1763
+ "plural": "agentserviceaccounts",
1764
+ "apiResource": "agentserviceaccounts.krate.a5c.ai",
1765
+ "count": 0,
1766
+ "names": [],
1767
+ "items": [],
1768
+ "phases": {},
1769
+ "storage": "etcd",
1770
+ "yaml": null,
1771
+ "action": {
1772
+ "list": "Open AgentServiceAccount records in krate-org-default",
1773
+ "watch": "Watch AgentServiceAccount updates in krate-org-default",
1774
+ "apply": "Save resource changes",
1775
+ "delete": "Delete AgentServiceAccount in krate-org-default"
1776
+ }
1777
+ },
1778
+ {
1779
+ "kind": "AgentRoleBinding",
1780
+ "plural": "agentrolebindings",
1781
+ "apiResource": "agentrolebindings.krate.a5c.ai",
1782
+ "count": 0,
1783
+ "names": [],
1784
+ "items": [],
1785
+ "phases": {},
1786
+ "storage": "etcd",
1787
+ "yaml": null,
1788
+ "action": {
1789
+ "list": "Open AgentRoleBinding records in krate-org-default",
1790
+ "watch": "Watch AgentRoleBinding updates in krate-org-default",
1791
+ "apply": "Save resource changes",
1792
+ "delete": "Delete AgentRoleBinding in krate-org-default"
1793
+ }
1794
+ },
1795
+ {
1796
+ "kind": "AgentSecretGrant",
1797
+ "plural": "agentsecretgrants",
1798
+ "apiResource": "agentsecretgrants.krate.a5c.ai",
1799
+ "count": 0,
1800
+ "names": [],
1801
+ "items": [],
1802
+ "phases": {},
1803
+ "storage": "etcd",
1804
+ "yaml": null,
1805
+ "action": {
1806
+ "list": "Open AgentSecretGrant records in krate-org-default",
1807
+ "watch": "Watch AgentSecretGrant updates in krate-org-default",
1808
+ "apply": "Save resource changes",
1809
+ "delete": "Delete AgentSecretGrant in krate-org-default"
1810
+ }
1811
+ },
1812
+ {
1813
+ "kind": "AgentConfigGrant",
1814
+ "plural": "agentconfiggrants",
1815
+ "apiResource": "agentconfiggrants.krate.a5c.ai",
1816
+ "count": 0,
1817
+ "names": [],
1818
+ "items": [],
1819
+ "phases": {},
1820
+ "storage": "etcd",
1821
+ "yaml": null,
1822
+ "action": {
1823
+ "list": "Open AgentConfigGrant records in krate-org-default",
1824
+ "watch": "Watch AgentConfigGrant updates in krate-org-default",
1825
+ "apply": "Save resource changes",
1826
+ "delete": "Delete AgentConfigGrant in krate-org-default"
1827
+ }
1828
+ },
1829
+ {
1830
+ "kind": "AgentAdapter",
1831
+ "plural": "agentadapters",
1832
+ "apiResource": "agentadapters.krate.a5c.ai",
1833
+ "count": 0,
1834
+ "names": [],
1835
+ "items": [],
1836
+ "phases": {},
1837
+ "storage": "etcd",
1838
+ "yaml": null,
1839
+ "action": {
1840
+ "list": "Open AgentAdapter records in krate-org-default",
1841
+ "watch": "Watch AgentAdapter updates in krate-org-default",
1842
+ "apply": "Save resource changes",
1843
+ "delete": "Delete AgentAdapter in krate-org-default"
1844
+ }
1845
+ },
1846
+ {
1847
+ "kind": "AgentTransportBinding",
1848
+ "plural": "agenttransportbindings",
1849
+ "apiResource": "agenttransportbindings.krate.a5c.ai",
1850
+ "count": 0,
1851
+ "names": [],
1852
+ "items": [],
1853
+ "phases": {},
1854
+ "storage": "etcd",
1855
+ "yaml": null,
1856
+ "action": {
1857
+ "list": "Open AgentTransportBinding records in krate-org-default",
1858
+ "watch": "Watch AgentTransportBinding updates in krate-org-default",
1859
+ "apply": "Save resource changes",
1860
+ "delete": "Delete AgentTransportBinding in krate-org-default"
1861
+ }
1862
+ },
1863
+ {
1864
+ "kind": "AgentProviderConfig",
1865
+ "plural": "agentproviderconfigs",
1866
+ "apiResource": "agentproviderconfigs.krate.a5c.ai",
1867
+ "count": 0,
1868
+ "names": [],
1869
+ "items": [],
1870
+ "phases": {},
1871
+ "storage": "etcd",
1872
+ "yaml": null,
1873
+ "action": {
1874
+ "list": "Open AgentProviderConfig records in krate-org-default",
1875
+ "watch": "Watch AgentProviderConfig updates in krate-org-default",
1876
+ "apply": "Save resource changes",
1877
+ "delete": "Delete AgentProviderConfig in krate-org-default"
1878
+ }
1879
+ },
1880
+ {
1881
+ "kind": "KrateProject",
1882
+ "plural": "krateprojects",
1883
+ "apiResource": "krateprojects.krate.a5c.ai",
1884
+ "count": 0,
1885
+ "names": [],
1886
+ "items": [],
1887
+ "phases": {},
1888
+ "storage": "etcd",
1889
+ "yaml": null,
1890
+ "action": {
1891
+ "list": "Open KrateProject records in krate-org-default",
1892
+ "watch": "Watch KrateProject updates in krate-org-default",
1893
+ "apply": "Save resource changes",
1894
+ "delete": "Delete KrateProject in krate-org-default"
1895
+ }
1896
+ },
1897
+ {
1898
+ "kind": "AgentGatewayConfig",
1899
+ "plural": "agentgatewayconfigs",
1900
+ "apiResource": "agentgatewayconfigs.krate.a5c.ai",
1901
+ "count": 0,
1902
+ "names": [],
1903
+ "items": [],
1904
+ "phases": {},
1905
+ "storage": "etcd",
1906
+ "yaml": null,
1907
+ "action": {
1908
+ "list": "Open AgentGatewayConfig records in krate-org-default",
1909
+ "watch": "Watch AgentGatewayConfig updates in krate-org-default",
1910
+ "apply": "Save resource changes",
1911
+ "delete": "Delete AgentGatewayConfig in krate-org-default"
1912
+ }
1913
+ },
1914
+ {
1915
+ "kind": "AgentMemoryRepository",
1916
+ "plural": "agentmemoryrepositories",
1917
+ "apiResource": "agentmemoryrepositories.krate.a5c.ai",
1918
+ "count": 0,
1919
+ "names": [],
1920
+ "items": [],
1921
+ "phases": {},
1922
+ "storage": "etcd",
1923
+ "yaml": null,
1924
+ "action": {
1925
+ "list": "Open AgentMemoryRepository records in krate-org-default",
1926
+ "watch": "Watch AgentMemoryRepository updates in krate-org-default",
1927
+ "apply": "Save resource changes",
1928
+ "delete": "Delete AgentMemoryRepository in krate-org-default"
1929
+ }
1930
+ },
1931
+ {
1932
+ "kind": "AgentMemorySource",
1933
+ "plural": "agentmemorysources",
1934
+ "apiResource": "agentmemorysources.krate.a5c.ai",
1935
+ "count": 0,
1936
+ "names": [],
1937
+ "items": [],
1938
+ "phases": {},
1939
+ "storage": "etcd",
1940
+ "yaml": null,
1941
+ "action": {
1942
+ "list": "Open AgentMemorySource records in krate-org-default",
1943
+ "watch": "Watch AgentMemorySource updates in krate-org-default",
1944
+ "apply": "Save resource changes",
1945
+ "delete": "Delete AgentMemorySource in krate-org-default"
1946
+ }
1947
+ },
1948
+ {
1949
+ "kind": "AgentMemoryOntology",
1950
+ "plural": "agentmemoryontologies",
1951
+ "apiResource": "agentmemoryontologies.krate.a5c.ai",
1952
+ "count": 0,
1953
+ "names": [],
1954
+ "items": [],
1955
+ "phases": {},
1956
+ "storage": "etcd",
1957
+ "yaml": null,
1958
+ "action": {
1959
+ "list": "Open AgentMemoryOntology records in krate-org-default",
1960
+ "watch": "Watch AgentMemoryOntology updates in krate-org-default",
1961
+ "apply": "Save resource changes",
1962
+ "delete": "Delete AgentMemoryOntology in krate-org-default"
1963
+ }
1964
+ },
1965
+ {
1966
+ "kind": "AgentMemoryAssociation",
1967
+ "plural": "agentmemoryassociations",
1968
+ "apiResource": "agentmemoryassociations.krate.a5c.ai",
1969
+ "count": 0,
1970
+ "names": [],
1971
+ "items": [],
1972
+ "phases": {},
1973
+ "storage": "etcd",
1974
+ "yaml": null,
1975
+ "action": {
1976
+ "list": "Open AgentMemoryAssociation records in krate-org-default",
1977
+ "watch": "Watch AgentMemoryAssociation updates in krate-org-default",
1978
+ "apply": "Save resource changes",
1979
+ "delete": "Delete AgentMemoryAssociation in krate-org-default"
1980
+ }
1981
+ },
1982
+ {
1983
+ "kind": "AgentDispatchRun",
1984
+ "plural": "agentdispatchruns",
1985
+ "apiResource": "agentdispatchruns.krate.a5c.ai",
1986
+ "count": 0,
1987
+ "names": [],
1988
+ "items": [],
1989
+ "phases": {},
1990
+ "storage": "postgres",
1991
+ "yaml": null,
1992
+ "action": {
1993
+ "list": "Open AgentDispatchRun records in krate-org-default",
1994
+ "watch": "Watch AgentDispatchRun updates in krate-org-default",
1995
+ "apply": "Save resource changes",
1996
+ "delete": "Delete AgentDispatchRun in krate-org-default"
1997
+ }
1998
+ },
1999
+ {
2000
+ "kind": "AgentDispatchAttempt",
2001
+ "plural": "agentdispatchattempts",
2002
+ "apiResource": "agentdispatchattempts.krate.a5c.ai",
2003
+ "count": 0,
2004
+ "names": [],
2005
+ "items": [],
2006
+ "phases": {},
2007
+ "storage": "postgres",
2008
+ "yaml": null,
2009
+ "action": {
2010
+ "list": "Open AgentDispatchAttempt records in krate-org-default",
2011
+ "watch": "Watch AgentDispatchAttempt updates in krate-org-default",
2012
+ "apply": "Save resource changes",
2013
+ "delete": "Delete AgentDispatchAttempt in krate-org-default"
2014
+ }
2015
+ },
2016
+ {
2017
+ "kind": "AgentSession",
2018
+ "plural": "agentsessions",
2019
+ "apiResource": "agentsessions.krate.a5c.ai",
2020
+ "count": 0,
2021
+ "names": [],
2022
+ "items": [],
2023
+ "phases": {},
2024
+ "storage": "postgres",
2025
+ "yaml": null,
2026
+ "action": {
2027
+ "list": "Open AgentSession records in krate-org-default",
2028
+ "watch": "Watch AgentSession updates in krate-org-default",
2029
+ "apply": "Save resource changes",
2030
+ "delete": "Delete AgentSession in krate-org-default"
2031
+ }
2032
+ },
2033
+ {
2034
+ "kind": "AgentContextBundle",
2035
+ "plural": "agentcontextbundles",
2036
+ "apiResource": "agentcontextbundles.krate.a5c.ai",
2037
+ "count": 0,
2038
+ "names": [],
2039
+ "items": [],
2040
+ "phases": {},
2041
+ "storage": "postgres",
2042
+ "yaml": null,
2043
+ "action": {
2044
+ "list": "Open AgentContextBundle records in krate-org-default",
2045
+ "watch": "Watch AgentContextBundle updates in krate-org-default",
2046
+ "apply": "Save resource changes",
2047
+ "delete": "Delete AgentContextBundle in krate-org-default"
2048
+ }
2049
+ },
2050
+ {
2051
+ "kind": "KrateArtifact",
2052
+ "plural": "krateartifacts",
2053
+ "apiResource": "krateartifacts.krate.a5c.ai",
2054
+ "count": 0,
2055
+ "names": [],
2056
+ "items": [],
2057
+ "phases": {},
2058
+ "storage": "postgres",
2059
+ "yaml": null,
2060
+ "action": {
2061
+ "list": "Open KrateArtifact records in krate-org-default",
2062
+ "watch": "Watch KrateArtifact updates in krate-org-default",
2063
+ "apply": "Save resource changes",
2064
+ "delete": "Delete KrateArtifact in krate-org-default"
2065
+ }
2066
+ },
2067
+ {
2068
+ "kind": "AgentApproval",
2069
+ "plural": "agentapprovals",
2070
+ "apiResource": "agentapprovals.krate.a5c.ai",
2071
+ "count": 0,
2072
+ "names": [],
2073
+ "items": [],
2074
+ "phases": {},
2075
+ "storage": "postgres",
2076
+ "yaml": null,
2077
+ "action": {
2078
+ "list": "Open AgentApproval records in krate-org-default",
2079
+ "watch": "Watch AgentApproval updates in krate-org-default",
2080
+ "apply": "Save resource changes",
2081
+ "delete": "Delete AgentApproval in krate-org-default"
2082
+ }
2083
+ },
2084
+ {
2085
+ "kind": "KrateWorkspace",
2086
+ "plural": "krateworkspaces",
2087
+ "apiResource": "krateworkspaces.krate.a5c.ai",
2088
+ "count": 0,
2089
+ "names": [],
2090
+ "items": [],
2091
+ "phases": {},
2092
+ "storage": "postgres",
2093
+ "yaml": null,
2094
+ "action": {
2095
+ "list": "Open KrateWorkspace records in krate-org-default",
2096
+ "watch": "Watch KrateWorkspace updates in krate-org-default",
2097
+ "apply": "Save resource changes",
2098
+ "delete": "Delete KrateWorkspace in krate-org-default"
2099
+ }
2100
+ },
2101
+ {
2102
+ "kind": "AgentTriggerExecution",
2103
+ "plural": "agenttriggerexecutions",
2104
+ "apiResource": "agenttriggerexecutions.krate.a5c.ai",
2105
+ "count": 0,
2106
+ "names": [],
2107
+ "items": [],
2108
+ "phases": {},
2109
+ "storage": "postgres",
2110
+ "yaml": null,
2111
+ "action": {
2112
+ "list": "Open AgentTriggerExecution records in krate-org-default",
2113
+ "watch": "Watch AgentTriggerExecution updates in krate-org-default",
2114
+ "apply": "Save resource changes",
2115
+ "delete": "Delete AgentTriggerExecution in krate-org-default"
2116
+ }
2117
+ },
2118
+ {
2119
+ "kind": "KrateWorkspaceRuntime",
2120
+ "plural": "krateworkspaceruntimes",
2121
+ "apiResource": "krateworkspaceruntimes.krate.a5c.ai",
2122
+ "count": 0,
2123
+ "names": [],
2124
+ "items": [],
2125
+ "phases": {},
2126
+ "storage": "postgres",
2127
+ "yaml": null,
2128
+ "action": {
2129
+ "list": "Open KrateWorkspaceRuntime records in krate-org-default",
2130
+ "watch": "Watch KrateWorkspaceRuntime updates in krate-org-default",
2131
+ "apply": "Save resource changes",
2132
+ "delete": "Delete KrateWorkspaceRuntime in krate-org-default"
2133
+ }
2134
+ },
2135
+ {
2136
+ "kind": "AgentSessionTranscript",
2137
+ "plural": "agentsessiontranscripts",
2138
+ "apiResource": "agentsessiontranscripts.krate.a5c.ai",
2139
+ "count": 0,
2140
+ "names": [],
2141
+ "items": [],
2142
+ "phases": {},
2143
+ "storage": "postgres",
2144
+ "yaml": null,
2145
+ "action": {
2146
+ "list": "Open AgentSessionTranscript records in krate-org-default",
2147
+ "watch": "Watch AgentSessionTranscript updates in krate-org-default",
2148
+ "apply": "Save resource changes",
2149
+ "delete": "Delete AgentSessionTranscript in krate-org-default"
2150
+ }
2151
+ },
2152
+ {
2153
+ "kind": "ExternalBackendProvider",
2154
+ "plural": "externalbackendproviders",
2155
+ "apiResource": "externalbackendproviders.krate.a5c.ai",
2156
+ "count": 0,
2157
+ "names": [],
2158
+ "items": [],
2159
+ "phases": {},
2160
+ "storage": "etcd",
2161
+ "yaml": null,
2162
+ "action": {
2163
+ "list": "Open ExternalBackendProvider records in krate-org-default",
2164
+ "watch": "Watch ExternalBackendProvider updates in krate-org-default",
2165
+ "apply": "Save resource changes",
2166
+ "delete": "Delete ExternalBackendProvider in krate-org-default"
2167
+ }
2168
+ },
2169
+ {
2170
+ "kind": "ExternalBackendBinding",
2171
+ "plural": "externalbackendbindings",
2172
+ "apiResource": "externalbackendbindings.krate.a5c.ai",
2173
+ "count": 0,
2174
+ "names": [],
2175
+ "items": [],
2176
+ "phases": {},
2177
+ "storage": "etcd",
2178
+ "yaml": null,
2179
+ "action": {
2180
+ "list": "Open ExternalBackendBinding records in krate-org-default",
2181
+ "watch": "Watch ExternalBackendBinding updates in krate-org-default",
2182
+ "apply": "Save resource changes",
2183
+ "delete": "Delete ExternalBackendBinding in krate-org-default"
2184
+ }
2185
+ },
2186
+ {
2187
+ "kind": "ExternalBackendSyncPolicy",
2188
+ "plural": "externalbackendsyncpolicies",
2189
+ "apiResource": "externalbackendsyncpolicies.krate.a5c.ai",
2190
+ "count": 0,
2191
+ "names": [],
2192
+ "items": [],
2193
+ "phases": {},
2194
+ "storage": "etcd",
2195
+ "yaml": null,
2196
+ "action": {
2197
+ "list": "Open ExternalBackendSyncPolicy records in krate-org-default",
2198
+ "watch": "Watch ExternalBackendSyncPolicy updates in krate-org-default",
2199
+ "apply": "Save resource changes",
2200
+ "delete": "Delete ExternalBackendSyncPolicy in krate-org-default"
2201
+ }
2202
+ },
2203
+ {
2204
+ "kind": "Secret",
2205
+ "plural": "secrets",
2206
+ "apiResource": "secrets",
2207
+ "count": 0,
2208
+ "names": [],
2209
+ "items": [],
2210
+ "phases": {},
2211
+ "storage": "core",
2212
+ "yaml": null,
2213
+ "action": {
2214
+ "list": "Open Secret records in krate-org-default",
2215
+ "watch": "Watch Secret updates in krate-org-default",
2216
+ "apply": "Save resource changes",
2217
+ "delete": "Delete Secret in krate-org-default"
2218
+ }
2219
+ },
2220
+ {
2221
+ "kind": "ConfigMap",
2222
+ "plural": "configmaps",
2223
+ "apiResource": "configmaps",
2224
+ "count": 0,
2225
+ "names": [],
2226
+ "items": [],
2227
+ "phases": {},
2228
+ "storage": "core",
2229
+ "yaml": null,
2230
+ "action": {
2231
+ "list": "Open ConfigMap records in krate-org-default",
2232
+ "watch": "Watch ConfigMap updates in krate-org-default",
2233
+ "apply": "Save resource changes",
2234
+ "delete": "Delete ConfigMap in krate-org-default"
2235
+ }
1586
2236
  }
1587
2237
  ],
1588
2238
  "events": [
@@ -1826,7 +2476,7 @@
1826
2476
  "maintainers"
1827
2477
  ],
1828
2478
  "phase": "Pending",
1829
- "expiresAt": "2026-05-19T12:32:27.821Z"
2479
+ "expiresAt": "2026-05-23T05:48:07.997Z"
1830
2480
  }
1831
2481
  ],
1832
2482
  "mappings": [
@@ -1986,9 +2636,43 @@
1986
2636
  "delegatedTo": "Gitea collaborators and team repository APIs"
1987
2637
  },
1988
2638
  "forgeRecords": {
1989
- "issues": "Gitea /repos/{owner}/{repo}/issues",
2639
+ "issues": "Gitea /repos/krate/_krate-org-default_/issues",
1990
2640
  "pullRequests": "Gitea /repos/{owner}/{repo}/pulls"
1991
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
+ },
1992
2676
  "webhookUrl": "http://krate-webhook-worker/repositories/krate-org-default/krate-demo",
1993
2677
  "integrationPlan": {
1994
2678
  "backend": "gitea",
@@ -2140,6 +2824,62 @@
2140
2824
  }
2141
2825
  }
2142
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
+ },
2143
2883
  "excellentFlows": [
2144
2884
  "Create or import a repository",
2145
2885
  "Browse code and copy clone commands",
@@ -2155,6 +2895,16 @@
2155
2895
  "value": 1,
2156
2896
  "href": "/repositories"
2157
2897
  },
2898
+ {
2899
+ "label": "Projects",
2900
+ "value": 0,
2901
+ "href": "/agents/projects"
2902
+ },
2903
+ {
2904
+ "label": "Issues",
2905
+ "value": 0,
2906
+ "href": "/inbox"
2907
+ },
2158
2908
  {
2159
2909
  "label": "Pull requests",
2160
2910
  "value": 0,
@@ -2332,7 +3082,7 @@
2332
3082
  "maintainers"
2333
3083
  ],
2334
3084
  "phase": "Pending",
2335
- "expiresAt": "2026-05-19T12:32:27.821Z"
3085
+ "expiresAt": "2026-05-23T05:48:07.997Z"
2336
3086
  }
2337
3087
  ],
2338
3088
  "mappings": [