@agent-native/dispatch 0.6.0 → 0.7.0
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/README.md +1 -1
- package/dist/actions/create-pylon-ticket.d.ts +3 -0
- package/dist/actions/create-pylon-ticket.d.ts.map +1 -0
- package/dist/actions/create-pylon-ticket.js +94 -0
- package/dist/actions/create-pylon-ticket.js.map +1 -0
- package/dist/actions/create-vault-grant.js +1 -1
- package/dist/actions/create-vault-grant.js.map +1 -1
- package/dist/actions/create-vault-secret.d.ts.map +1 -1
- package/dist/actions/create-vault-secret.js +4 -3
- package/dist/actions/create-vault-secret.js.map +1 -1
- package/dist/actions/get-vault-access-settings.d.ts +3 -0
- package/dist/actions/get-vault-access-settings.d.ts.map +1 -0
- package/dist/actions/get-vault-access-settings.js +10 -0
- package/dist/actions/get-vault-access-settings.js.map +1 -0
- package/dist/actions/grant-vault-secrets-to-app.js +1 -1
- package/dist/actions/grant-vault-secrets-to-app.js.map +1 -1
- package/dist/actions/index.d.ts.map +1 -1
- package/dist/actions/index.js +8 -0
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/list-integrations-catalog.js +1 -1
- package/dist/actions/list-integrations-catalog.js.map +1 -1
- package/dist/actions/list-vault-grants.js +1 -1
- package/dist/actions/list-vault-grants.js.map +1 -1
- package/dist/actions/list-workspace-apps.d.ts.map +1 -1
- package/dist/actions/list-workspace-apps.js +5 -1
- package/dist/actions/list-workspace-apps.js.map +1 -1
- package/dist/actions/set-vault-access-settings.d.ts +3 -0
- package/dist/actions/set-vault-access-settings.d.ts.map +1 -0
- package/dist/actions/set-vault-access-settings.js +13 -0
- package/dist/actions/set-vault-access-settings.js.map +1 -0
- package/dist/actions/start-workspace-app-creation.d.ts.map +1 -1
- package/dist/actions/start-workspace-app-creation.js +6 -0
- package/dist/actions/start-workspace-app-creation.js.map +1 -1
- package/dist/actions/sync-vault-to-app.js +1 -1
- package/dist/actions/sync-vault-to-app.js.map +1 -1
- package/dist/actions/update-workspace-app-metadata.d.ts +3 -0
- package/dist/actions/update-workspace-app-metadata.d.ts.map +1 -0
- package/dist/actions/update-workspace-app-metadata.js +30 -0
- package/dist/actions/update-workspace-app-metadata.js.map +1 -0
- package/dist/actions/view-screen.d.ts.map +1 -1
- package/dist/actions/view-screen.js +4 -2
- package/dist/actions/view-screen.js.map +1 -1
- package/dist/components/app-keys-popover.d.ts.map +1 -1
- package/dist/components/app-keys-popover.js +17 -5
- package/dist/components/app-keys-popover.js.map +1 -1
- package/dist/components/create-app-popover.d.ts.map +1 -1
- package/dist/components/create-app-popover.js +38 -14
- package/dist/components/create-app-popover.js.map +1 -1
- package/dist/components/dispatch-shell.d.ts +4 -4
- package/dist/components/dispatch-shell.d.ts.map +1 -1
- package/dist/components/dispatch-shell.js +6 -6
- package/dist/components/dispatch-shell.js.map +1 -1
- package/dist/components/layout/Layout.d.ts.map +1 -1
- package/dist/components/layout/Layout.js +10 -3
- package/dist/components/layout/Layout.js.map +1 -1
- package/dist/components/messaging-setup-panel.d.ts.map +1 -1
- package/dist/components/messaging-setup-panel.js +2 -2
- package/dist/components/messaging-setup-panel.js.map +1 -1
- package/dist/components/workspace-app-card.d.ts.map +1 -1
- package/dist/components/workspace-app-card.js +41 -2
- package/dist/components/workspace-app-card.js.map +1 -1
- package/dist/hooks/use-navigation-state.js +12 -5
- package/dist/hooks/use-navigation-state.js.map +1 -1
- package/dist/lib/catch-all-target.d.ts +2 -0
- package/dist/lib/catch-all-target.d.ts.map +1 -0
- package/dist/lib/catch-all-target.js +95 -0
- package/dist/lib/catch-all-target.js.map +1 -0
- package/dist/lib/workspace-apps.d.ts +9 -0
- package/dist/lib/workspace-apps.d.ts.map +1 -1
- package/dist/lib/workspace-apps.js.map +1 -1
- package/dist/routes/pages/$appId.d.ts +2 -24
- package/dist/routes/pages/$appId.d.ts.map +1 -1
- package/dist/routes/pages/$appId.js +42 -8
- package/dist/routes/pages/$appId.js.map +1 -1
- package/dist/routes/pages/approval.d.ts.map +1 -1
- package/dist/routes/pages/approval.js +2 -1
- package/dist/routes/pages/approval.js.map +1 -1
- package/dist/routes/pages/apps.$appId.d.ts.map +1 -1
- package/dist/routes/pages/apps.$appId.js +2 -1
- package/dist/routes/pages/apps.$appId.js.map +1 -1
- package/dist/routes/pages/integrations.d.ts.map +1 -1
- package/dist/routes/pages/integrations.js +20 -15
- package/dist/routes/pages/integrations.js.map +1 -1
- package/dist/routes/pages/new-app.js +1 -1
- package/dist/routes/pages/new-app.js.map +1 -1
- package/dist/routes/pages/overview.d.ts.map +1 -1
- package/dist/routes/pages/overview.js +14 -1
- package/dist/routes/pages/overview.js.map +1 -1
- package/dist/routes/pages/vault.d.ts.map +1 -1
- package/dist/routes/pages/vault.js +25 -6
- package/dist/routes/pages/vault.js.map +1 -1
- package/dist/routes/pages/workspace.d.ts.map +1 -1
- package/dist/routes/pages/workspace.js +5 -3
- package/dist/routes/pages/workspace.js.map +1 -1
- package/dist/server/lib/app-creation-store.d.ts +13 -0
- package/dist/server/lib/app-creation-store.d.ts.map +1 -1
- package/dist/server/lib/app-creation-store.js +295 -9
- package/dist/server/lib/app-creation-store.js.map +1 -1
- package/dist/server/lib/env-config.d.ts.map +1 -1
- package/dist/server/lib/env-config.js +5 -0
- package/dist/server/lib/env-config.js.map +1 -1
- package/dist/server/lib/onboarding-steps.d.ts +12 -0
- package/dist/server/lib/onboarding-steps.d.ts.map +1 -0
- package/dist/server/lib/onboarding-steps.js +47 -0
- package/dist/server/lib/onboarding-steps.js.map +1 -0
- package/dist/server/lib/vault-store.d.ts +55 -0
- package/dist/server/lib/vault-store.d.ts.map +1 -1
- package/dist/server/lib/vault-store.js +210 -41
- package/dist/server/lib/vault-store.js.map +1 -1
- package/dist/server/plugins/agent-chat.d.ts.map +1 -1
- package/dist/server/plugins/agent-chat.js +2 -1
- package/dist/server/plugins/agent-chat.js.map +1 -1
- package/dist/server/plugins/core-routes.d.ts.map +1 -1
- package/dist/server/plugins/core-routes.js +4 -0
- package/dist/server/plugins/core-routes.js.map +1 -1
- package/dist/server/plugins/integrations.js +2 -2
- package/dist/server/plugins/integrations.js.map +1 -1
- package/package.json +13 -11
- package/src/actions/create-pylon-ticket.ts +109 -0
- package/src/actions/create-vault-grant.ts +1 -1
- package/src/actions/create-vault-secret.ts +4 -3
- package/src/actions/get-vault-access-settings.ts +11 -0
- package/src/actions/grant-vault-secrets-to-app.ts +1 -1
- package/src/actions/index.ts +8 -0
- package/src/actions/list-integrations-catalog.ts +1 -1
- package/src/actions/list-vault-grants.ts +1 -1
- package/src/actions/list-workspace-apps.ts +5 -1
- package/src/actions/set-vault-access-settings.ts +16 -0
- package/src/actions/start-workspace-app-creation.ts +8 -0
- package/src/actions/sync-vault-to-app.ts +1 -1
- package/src/actions/update-workspace-app-metadata.ts +32 -0
- package/src/actions/view-screen.ts +4 -1
- package/src/components/app-keys-popover.tsx +38 -8
- package/src/components/create-app-popover.tsx +47 -14
- package/src/components/dispatch-shell.tsx +16 -15
- package/src/components/layout/Layout.tsx +11 -5
- package/src/components/messaging-setup-panel.tsx +54 -39
- package/src/components/workspace-app-card.tsx +102 -0
- package/src/hooks/use-navigation-state.ts +10 -4
- package/src/lib/catch-all-target.spec.ts +218 -0
- package/src/lib/catch-all-target.ts +99 -0
- package/src/lib/workspace-apps.ts +9 -0
- package/src/routes/pages/$appId.tsx +45 -7
- package/src/routes/pages/approval.tsx +33 -3
- package/src/routes/pages/apps.$appId.tsx +6 -1
- package/src/routes/pages/integrations.tsx +57 -18
- package/src/routes/pages/new-app.tsx +1 -1
- package/src/routes/pages/overview.tsx +69 -29
- package/src/routes/pages/vault.tsx +101 -21
- package/src/routes/pages/workspace.tsx +21 -3
- package/src/server/lib/app-creation-store.spec.ts +61 -2
- package/src/server/lib/app-creation-store.ts +386 -11
- package/src/server/lib/env-config.ts +5 -0
- package/src/server/lib/onboarding-steps.ts +49 -0
- package/src/server/lib/vault-store.spec.ts +69 -0
- package/src/server/lib/vault-store.ts +266 -49
- package/src/server/plugins/agent-chat.ts +2 -1
- package/src/server/plugins/core-routes.ts +5 -0
- package/src/server/plugins/integrations.ts +2 -2
|
@@ -47,6 +47,7 @@ import {
|
|
|
47
47
|
} from "@/components/ui/select";
|
|
48
48
|
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
|
|
49
49
|
import { Textarea } from "@/components/ui/textarea";
|
|
50
|
+
import { Skeleton } from "@/components/ui/skeleton";
|
|
50
51
|
|
|
51
52
|
export function meta() {
|
|
52
53
|
return [{ title: "Workspace Resources — Dispatch" }];
|
|
@@ -528,6 +529,21 @@ export default function WorkspaceRoute() {
|
|
|
528
529
|
items: any[];
|
|
529
530
|
emptyText: string;
|
|
530
531
|
}) {
|
|
532
|
+
if (isLoading && (resources ?? []).length === 0) {
|
|
533
|
+
return (
|
|
534
|
+
<div className="space-y-3">
|
|
535
|
+
{Array.from({ length: 3 }).map((_, index) => (
|
|
536
|
+
<div
|
|
537
|
+
key={index}
|
|
538
|
+
className="rounded-2xl border bg-card px-5 py-4 space-y-2"
|
|
539
|
+
>
|
|
540
|
+
<Skeleton className="h-4 w-1/3" />
|
|
541
|
+
<Skeleton className="h-3 w-2/3" />
|
|
542
|
+
</div>
|
|
543
|
+
))}
|
|
544
|
+
</div>
|
|
545
|
+
);
|
|
546
|
+
}
|
|
531
547
|
if (items.length === 0) {
|
|
532
548
|
return (
|
|
533
549
|
<div className="rounded-2xl border border-dashed px-6 py-12 text-center text-sm text-muted-foreground">
|
|
@@ -555,9 +571,11 @@ export default function WorkspaceRoute() {
|
|
|
555
571
|
>
|
|
556
572
|
<div className="flex items-center justify-between">
|
|
557
573
|
<div className="text-sm text-muted-foreground">
|
|
558
|
-
{isLoading
|
|
559
|
-
|
|
560
|
-
|
|
574
|
+
{isLoading ? (
|
|
575
|
+
<Skeleton className="h-4 w-24" />
|
|
576
|
+
) : (
|
|
577
|
+
`${resources?.length || 0} resource${(resources?.length || 0) !== 1 ? "s" : ""}`
|
|
578
|
+
)}
|
|
561
579
|
</div>
|
|
562
580
|
<div className="flex gap-2">
|
|
563
581
|
<Button
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
2
2
|
import { runWithRequestContext } from "@agent-native/core/server";
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
generateWorkspaceAppDescription,
|
|
5
|
+
listWorkspaceApps,
|
|
6
|
+
} from "./app-creation-store.js";
|
|
4
7
|
|
|
5
8
|
const originalFetch = globalThis.fetch;
|
|
6
9
|
|
|
@@ -21,7 +24,15 @@ describe("listWorkspaceApps", () => {
|
|
|
21
24
|
name: "Agent-Native Dispatch",
|
|
22
25
|
path: "/dispatch",
|
|
23
26
|
},
|
|
24
|
-
{
|
|
27
|
+
{
|
|
28
|
+
id: "todo",
|
|
29
|
+
name: "Todo",
|
|
30
|
+
description: "Tracks personal tasks and follow-ups",
|
|
31
|
+
path: "/todo",
|
|
32
|
+
audience: "public",
|
|
33
|
+
publicPaths: ["/"],
|
|
34
|
+
protectedPaths: ["/admin"],
|
|
35
|
+
},
|
|
25
36
|
],
|
|
26
37
|
}),
|
|
27
38
|
{ headers: { "content-type": "application/json" } },
|
|
@@ -47,5 +58,53 @@ describe("listWorkspaceApps", () => {
|
|
|
47
58
|
}),
|
|
48
59
|
);
|
|
49
60
|
expect(apps.map((app) => app.id)).toEqual(["dispatch", "todo"]);
|
|
61
|
+
expect(apps.find((app) => app.id === "todo")?.description).toBe(
|
|
62
|
+
"Tracks personal tasks and follow-ups",
|
|
63
|
+
);
|
|
64
|
+
expect(apps.find((app) => app.id === "todo")?.audience).toBe("public");
|
|
65
|
+
expect(apps.find((app) => app.id === "todo")?.publicPaths).toEqual(["/"]);
|
|
66
|
+
expect(apps.find((app) => app.id === "todo")?.protectedPaths).toEqual([
|
|
67
|
+
"/admin",
|
|
68
|
+
]);
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
it("filters workspace apps by audience", async () => {
|
|
72
|
+
vi.stubEnv(
|
|
73
|
+
"AGENT_NATIVE_WORKSPACE_APPS_JSON",
|
|
74
|
+
JSON.stringify([
|
|
75
|
+
{
|
|
76
|
+
id: "dispatch",
|
|
77
|
+
name: "Dispatch",
|
|
78
|
+
path: "/dispatch",
|
|
79
|
+
audience: "internal",
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
id: "portal",
|
|
83
|
+
name: "Portal",
|
|
84
|
+
path: "/portal",
|
|
85
|
+
audience: "public",
|
|
86
|
+
},
|
|
87
|
+
]),
|
|
88
|
+
);
|
|
89
|
+
|
|
90
|
+
const apps = await runWithRequestContext(
|
|
91
|
+
{ userEmail: "dev@example.test" },
|
|
92
|
+
() =>
|
|
93
|
+
listWorkspaceApps({
|
|
94
|
+
includeAgentCards: false,
|
|
95
|
+
audience: "public",
|
|
96
|
+
}),
|
|
97
|
+
);
|
|
98
|
+
|
|
99
|
+
expect(apps.map((app) => app.id)).toEqual(["portal"]);
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
it("generates a concise seed description from an app prompt", () => {
|
|
103
|
+
expect(
|
|
104
|
+
generateWorkspaceAppDescription(
|
|
105
|
+
"Build me an app that tracks customer onboarding risks and handoffs",
|
|
106
|
+
"customer-onboarding",
|
|
107
|
+
),
|
|
108
|
+
).toBe("Tracks customer onboarding risks and handoffs.");
|
|
50
109
|
});
|
|
51
110
|
});
|