@agent-native/dispatch 0.6.1 → 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.
Files changed (146) hide show
  1. package/README.md +1 -1
  2. package/dist/actions/create-pylon-ticket.d.ts +3 -0
  3. package/dist/actions/create-pylon-ticket.d.ts.map +1 -0
  4. package/dist/actions/create-pylon-ticket.js +94 -0
  5. package/dist/actions/create-pylon-ticket.js.map +1 -0
  6. package/dist/actions/create-vault-grant.js +1 -1
  7. package/dist/actions/create-vault-grant.js.map +1 -1
  8. package/dist/actions/create-vault-secret.d.ts.map +1 -1
  9. package/dist/actions/create-vault-secret.js +4 -3
  10. package/dist/actions/create-vault-secret.js.map +1 -1
  11. package/dist/actions/get-vault-access-settings.d.ts +3 -0
  12. package/dist/actions/get-vault-access-settings.d.ts.map +1 -0
  13. package/dist/actions/get-vault-access-settings.js +10 -0
  14. package/dist/actions/get-vault-access-settings.js.map +1 -0
  15. package/dist/actions/grant-vault-secrets-to-app.js +1 -1
  16. package/dist/actions/grant-vault-secrets-to-app.js.map +1 -1
  17. package/dist/actions/index.d.ts.map +1 -1
  18. package/dist/actions/index.js +8 -0
  19. package/dist/actions/index.js.map +1 -1
  20. package/dist/actions/list-integrations-catalog.js +1 -1
  21. package/dist/actions/list-integrations-catalog.js.map +1 -1
  22. package/dist/actions/list-vault-grants.js +1 -1
  23. package/dist/actions/list-vault-grants.js.map +1 -1
  24. package/dist/actions/list-workspace-apps.d.ts.map +1 -1
  25. package/dist/actions/list-workspace-apps.js +5 -1
  26. package/dist/actions/list-workspace-apps.js.map +1 -1
  27. package/dist/actions/set-vault-access-settings.d.ts +3 -0
  28. package/dist/actions/set-vault-access-settings.d.ts.map +1 -0
  29. package/dist/actions/set-vault-access-settings.js +13 -0
  30. package/dist/actions/set-vault-access-settings.js.map +1 -0
  31. package/dist/actions/start-workspace-app-creation.d.ts.map +1 -1
  32. package/dist/actions/start-workspace-app-creation.js +6 -0
  33. package/dist/actions/start-workspace-app-creation.js.map +1 -1
  34. package/dist/actions/sync-vault-to-app.js +1 -1
  35. package/dist/actions/sync-vault-to-app.js.map +1 -1
  36. package/dist/actions/update-workspace-app-metadata.d.ts +3 -0
  37. package/dist/actions/update-workspace-app-metadata.d.ts.map +1 -0
  38. package/dist/actions/update-workspace-app-metadata.js +30 -0
  39. package/dist/actions/update-workspace-app-metadata.js.map +1 -0
  40. package/dist/actions/view-screen.d.ts.map +1 -1
  41. package/dist/actions/view-screen.js +4 -2
  42. package/dist/actions/view-screen.js.map +1 -1
  43. package/dist/components/app-keys-popover.js +16 -5
  44. package/dist/components/app-keys-popover.js.map +1 -1
  45. package/dist/components/create-app-popover.d.ts.map +1 -1
  46. package/dist/components/create-app-popover.js +38 -14
  47. package/dist/components/create-app-popover.js.map +1 -1
  48. package/dist/components/dispatch-shell.d.ts +4 -4
  49. package/dist/components/dispatch-shell.d.ts.map +1 -1
  50. package/dist/components/dispatch-shell.js +6 -6
  51. package/dist/components/dispatch-shell.js.map +1 -1
  52. package/dist/components/layout/Layout.d.ts.map +1 -1
  53. package/dist/components/layout/Layout.js +10 -3
  54. package/dist/components/layout/Layout.js.map +1 -1
  55. package/dist/components/messaging-setup-panel.d.ts.map +1 -1
  56. package/dist/components/messaging-setup-panel.js +2 -2
  57. package/dist/components/messaging-setup-panel.js.map +1 -1
  58. package/dist/components/workspace-app-card.d.ts.map +1 -1
  59. package/dist/components/workspace-app-card.js +41 -2
  60. package/dist/components/workspace-app-card.js.map +1 -1
  61. package/dist/hooks/use-navigation-state.js +12 -5
  62. package/dist/hooks/use-navigation-state.js.map +1 -1
  63. package/dist/lib/catch-all-target.d.ts +2 -0
  64. package/dist/lib/catch-all-target.d.ts.map +1 -0
  65. package/dist/lib/catch-all-target.js +95 -0
  66. package/dist/lib/catch-all-target.js.map +1 -0
  67. package/dist/lib/workspace-apps.d.ts +9 -0
  68. package/dist/lib/workspace-apps.d.ts.map +1 -1
  69. package/dist/lib/workspace-apps.js.map +1 -1
  70. package/dist/routes/pages/$appId.d.ts +2 -2
  71. package/dist/routes/pages/$appId.d.ts.map +1 -1
  72. package/dist/routes/pages/$appId.js +17 -8
  73. package/dist/routes/pages/$appId.js.map +1 -1
  74. package/dist/routes/pages/integrations.d.ts.map +1 -1
  75. package/dist/routes/pages/integrations.js +20 -15
  76. package/dist/routes/pages/integrations.js.map +1 -1
  77. package/dist/routes/pages/new-app.js +1 -1
  78. package/dist/routes/pages/new-app.js.map +1 -1
  79. package/dist/routes/pages/overview.d.ts.map +1 -1
  80. package/dist/routes/pages/overview.js +5 -1
  81. package/dist/routes/pages/overview.js.map +1 -1
  82. package/dist/routes/pages/vault.d.ts.map +1 -1
  83. package/dist/routes/pages/vault.js +23 -5
  84. package/dist/routes/pages/vault.js.map +1 -1
  85. package/dist/server/lib/app-creation-store.d.ts +13 -0
  86. package/dist/server/lib/app-creation-store.d.ts.map +1 -1
  87. package/dist/server/lib/app-creation-store.js +295 -9
  88. package/dist/server/lib/app-creation-store.js.map +1 -1
  89. package/dist/server/lib/env-config.d.ts.map +1 -1
  90. package/dist/server/lib/env-config.js +5 -0
  91. package/dist/server/lib/env-config.js.map +1 -1
  92. package/dist/server/lib/onboarding-steps.d.ts +12 -0
  93. package/dist/server/lib/onboarding-steps.d.ts.map +1 -0
  94. package/dist/server/lib/onboarding-steps.js +47 -0
  95. package/dist/server/lib/onboarding-steps.js.map +1 -0
  96. package/dist/server/lib/vault-store.d.ts +55 -0
  97. package/dist/server/lib/vault-store.d.ts.map +1 -1
  98. package/dist/server/lib/vault-store.js +210 -41
  99. package/dist/server/lib/vault-store.js.map +1 -1
  100. package/dist/server/plugins/agent-chat.d.ts.map +1 -1
  101. package/dist/server/plugins/agent-chat.js +2 -1
  102. package/dist/server/plugins/agent-chat.js.map +1 -1
  103. package/dist/server/plugins/core-routes.d.ts.map +1 -1
  104. package/dist/server/plugins/core-routes.js +4 -0
  105. package/dist/server/plugins/core-routes.js.map +1 -1
  106. package/dist/server/plugins/integrations.js +2 -2
  107. package/dist/server/plugins/integrations.js.map +1 -1
  108. package/package.json +13 -11
  109. package/src/actions/create-pylon-ticket.ts +109 -0
  110. package/src/actions/create-vault-grant.ts +1 -1
  111. package/src/actions/create-vault-secret.ts +4 -3
  112. package/src/actions/get-vault-access-settings.ts +11 -0
  113. package/src/actions/grant-vault-secrets-to-app.ts +1 -1
  114. package/src/actions/index.ts +8 -0
  115. package/src/actions/list-integrations-catalog.ts +1 -1
  116. package/src/actions/list-vault-grants.ts +1 -1
  117. package/src/actions/list-workspace-apps.ts +5 -1
  118. package/src/actions/set-vault-access-settings.ts +16 -0
  119. package/src/actions/start-workspace-app-creation.ts +8 -0
  120. package/src/actions/sync-vault-to-app.ts +1 -1
  121. package/src/actions/update-workspace-app-metadata.ts +32 -0
  122. package/src/actions/view-screen.ts +4 -1
  123. package/src/components/app-keys-popover.tsx +23 -7
  124. package/src/components/create-app-popover.tsx +47 -14
  125. package/src/components/dispatch-shell.tsx +16 -15
  126. package/src/components/layout/Layout.tsx +11 -5
  127. package/src/components/messaging-setup-panel.tsx +54 -39
  128. package/src/components/workspace-app-card.tsx +102 -0
  129. package/src/hooks/use-navigation-state.ts +10 -4
  130. package/src/lib/catch-all-target.spec.ts +218 -0
  131. package/src/lib/catch-all-target.ts +99 -0
  132. package/src/lib/workspace-apps.ts +9 -0
  133. package/src/routes/pages/$appId.tsx +21 -8
  134. package/src/routes/pages/integrations.tsx +57 -18
  135. package/src/routes/pages/new-app.tsx +1 -1
  136. package/src/routes/pages/overview.tsx +11 -3
  137. package/src/routes/pages/vault.tsx +76 -9
  138. package/src/server/lib/app-creation-store.spec.ts +61 -2
  139. package/src/server/lib/app-creation-store.ts +386 -11
  140. package/src/server/lib/env-config.ts +5 -0
  141. package/src/server/lib/onboarding-steps.ts +49 -0
  142. package/src/server/lib/vault-store.spec.ts +69 -0
  143. package/src/server/lib/vault-store.ts +266 -49
  144. package/src/server/plugins/agent-chat.ts +2 -1
  145. package/src/server/plugins/core-routes.ts +5 -0
  146. package/src/server/plugins/integrations.ts +2 -2
package/README.md CHANGED
@@ -98,7 +98,7 @@ Connect any data source, prompt for any chart. Build reusable dashboards, not th
98
98
 
99
99
  **Clips**
100
100
 
101
- <a href="https://agent-native.com/templates/clips"><img src="https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F7366585df5a545e697e254bb0138182d?format=webp&width=800" alt="Clips template" width="100%" /></a>
101
+ <a href="https://agent-native.com/templates/clips"><img src="https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F678be5a501a14ab8a508e5f7bc92c468?format=webp&width=800" alt="Clips template" width="100%" /></a>
102
102
 
103
103
  **Agent-Native Loom**
104
104
 
@@ -0,0 +1,3 @@
1
+ declare const _default: any;
2
+ export default _default;
3
+ //# sourceMappingURL=create-pylon-ticket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-pylon-ticket.d.ts","sourceRoot":"","sources":["../../src/actions/create-pylon-ticket.ts"],"names":[],"mappings":";AAOA,wBAqGG"}
@@ -0,0 +1,94 @@
1
+ import { defineAction } from "@agent-native/core";
2
+ import { z } from "zod";
3
+ import { recordAudit } from "../server/lib/dispatch-store.js";
4
+ const PYLON_API_BASE = process.env.PYLON_API_BASE_URL || "https://api.usepylon.com";
5
+ export default defineAction({
6
+ description: "Create a Pylon ticket. Use to escalate blockers from client meetings, route unmatched #customer-* posts that have no Slack channel, or open a follow-up that needs tracking. Requires PYLON_API_KEY in the Vault.",
7
+ schema: z.object({
8
+ title: z.string().min(1).describe("Short ticket title"),
9
+ bodyHtml: z
10
+ .string()
11
+ .min(1)
12
+ .describe("HTML body — Pylon renders this in the ticket"),
13
+ requesterEmail: z
14
+ .string()
15
+ .email()
16
+ .optional()
17
+ .describe("Email of the person the ticket is on behalf of"),
18
+ requesterName: z.string().optional(),
19
+ accountId: z
20
+ .string()
21
+ .optional()
22
+ .describe("Pylon account ID — provide either this OR requesterEmail to identify the subject"),
23
+ priority: z.enum(["urgent", "high", "medium", "low"]).optional(),
24
+ tags: z.array(z.string()).optional(),
25
+ assigneeId: z.string().optional(),
26
+ teamId: z.string().optional(),
27
+ }),
28
+ run: async (input) => {
29
+ const apiKey = process.env.PYLON_API_KEY;
30
+ if (!apiKey) {
31
+ throw new Error("PYLON_API_KEY is not set. Add it to the Dispatch Vault.");
32
+ }
33
+ if (!input.accountId && !input.requesterEmail) {
34
+ throw new Error("Pylon requires either accountId or requesterEmail to identify the ticket subject.");
35
+ }
36
+ const payload = {
37
+ title: input.title,
38
+ body_html: input.bodyHtml,
39
+ };
40
+ if (input.accountId)
41
+ payload.account_id = input.accountId;
42
+ if (input.requesterEmail)
43
+ payload.requester_email = input.requesterEmail;
44
+ if (input.requesterName)
45
+ payload.requester_name = input.requesterName;
46
+ if (input.priority)
47
+ payload.priority = input.priority;
48
+ if (input.tags?.length)
49
+ payload.tags = input.tags;
50
+ if (input.assigneeId)
51
+ payload.assignee_id = input.assigneeId;
52
+ if (input.teamId)
53
+ payload.team_id = input.teamId;
54
+ const res = await fetch(`${PYLON_API_BASE}/issues`, {
55
+ method: "POST",
56
+ headers: {
57
+ Authorization: `Bearer ${apiKey}`,
58
+ "Content-Type": "application/json",
59
+ },
60
+ body: JSON.stringify(payload),
61
+ });
62
+ if (!res.ok) {
63
+ const text = await res.text().catch(() => "");
64
+ throw new Error(`Pylon ticket creation failed (HTTP ${res.status})${text ? `: ${text.slice(0, 500)}` : ""}`);
65
+ }
66
+ const data = (await res.json().catch(() => null));
67
+ const issue = data && typeof data === "object" && "issue" in data
68
+ ? (data.issue ?? {})
69
+ : (data ?? {});
70
+ const ticketId = issue && typeof issue.id === "string"
71
+ ? issue.id
72
+ : "";
73
+ await recordAudit({
74
+ action: "pylon.ticket.created",
75
+ targetType: "pylon-ticket",
76
+ targetId: ticketId || null,
77
+ summary: `Created Pylon ticket: ${input.title}`,
78
+ metadata: {
79
+ title: input.title,
80
+ priority: input.priority,
81
+ tags: input.tags,
82
+ accountId: input.accountId,
83
+ requesterEmail: input.requesterEmail,
84
+ ticketId,
85
+ },
86
+ });
87
+ return {
88
+ ok: true,
89
+ ticketId,
90
+ ticket: issue,
91
+ };
92
+ },
93
+ });
94
+ //# sourceMappingURL=create-pylon-ticket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-pylon-ticket.js","sourceRoot":"","sources":["../../src/actions/create-pylon-ticket.ts"],"names":[],"mappings":"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","sourcesContent":["import { defineAction } from \"@agent-native/core\";\nimport { z } from \"zod\";\nimport { recordAudit } from \"../server/lib/dispatch-store.js\";\n\nconst PYLON_API_BASE =\n process.env.PYLON_API_BASE_URL || \"https://api.usepylon.com\";\n\nexport default defineAction({\n description:\n \"Create a Pylon ticket. Use to escalate blockers from client meetings, route unmatched #customer-* posts that have no Slack channel, or open a follow-up that needs tracking. Requires PYLON_API_KEY in the Vault.\",\n schema: z.object({\n title: z.string().min(1).describe(\"Short ticket title\"),\n bodyHtml: z\n .string()\n .min(1)\n .describe(\"HTML body — Pylon renders this in the ticket\"),\n requesterEmail: z\n .string()\n .email()\n .optional()\n .describe(\"Email of the person the ticket is on behalf of\"),\n requesterName: z.string().optional(),\n accountId: z\n .string()\n .optional()\n .describe(\n \"Pylon account ID — provide either this OR requesterEmail to identify the subject\",\n ),\n priority: z.enum([\"urgent\", \"high\", \"medium\", \"low\"]).optional(),\n tags: z.array(z.string()).optional(),\n assigneeId: z.string().optional(),\n teamId: z.string().optional(),\n }),\n run: async (input) => {\n const apiKey = process.env.PYLON_API_KEY;\n if (!apiKey) {\n throw new Error(\n \"PYLON_API_KEY is not set. Add it to the Dispatch Vault.\",\n );\n }\n if (!input.accountId && !input.requesterEmail) {\n throw new Error(\n \"Pylon requires either accountId or requesterEmail to identify the ticket subject.\",\n );\n }\n\n const payload: Record<string, unknown> = {\n title: input.title,\n body_html: input.bodyHtml,\n };\n if (input.accountId) payload.account_id = input.accountId;\n if (input.requesterEmail) payload.requester_email = input.requesterEmail;\n if (input.requesterName) payload.requester_name = input.requesterName;\n if (input.priority) payload.priority = input.priority;\n if (input.tags?.length) payload.tags = input.tags;\n if (input.assigneeId) payload.assignee_id = input.assigneeId;\n if (input.teamId) payload.team_id = input.teamId;\n\n const res = await fetch(`${PYLON_API_BASE}/issues`, {\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${apiKey}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(payload),\n });\n\n if (!res.ok) {\n const text = await res.text().catch(() => \"\");\n throw new Error(\n `Pylon ticket creation failed (HTTP ${res.status})${text ? `: ${text.slice(0, 500)}` : \"\"}`,\n );\n }\n\n const data = (await res.json().catch(() => null)) as Record<\n string,\n unknown\n > | null;\n const issue =\n data && typeof data === \"object\" && \"issue\" in data\n ? ((data as { issue?: Record<string, unknown> }).issue ?? {})\n : (data ?? {});\n const ticketId =\n issue && typeof (issue as { id?: unknown }).id === \"string\"\n ? (issue as { id: string }).id\n : \"\";\n\n await recordAudit({\n action: \"pylon.ticket.created\",\n targetType: \"pylon-ticket\",\n targetId: ticketId || null,\n summary: `Created Pylon ticket: ${input.title}`,\n metadata: {\n title: input.title,\n priority: input.priority,\n tags: input.tags,\n accountId: input.accountId,\n requesterEmail: input.requesterEmail,\n ticketId,\n },\n });\n\n return {\n ok: true as const,\n ticketId,\n ticket: issue,\n };\n },\n});\n"]}
@@ -2,7 +2,7 @@ import { defineAction } from "@agent-native/core";
2
2
  import { z } from "zod";
3
3
  import { createGrant } from "../server/lib/vault-store.js";
4
4
  export default defineAction({
5
- description: "Grant an app access to a vault secret. The secret can then be synced to the app. Admin only.",
5
+ description: "Grant an app access to a vault secret in manual vault access mode. Admin only.",
6
6
  schema: z.object({
7
7
  secretId: z.string().describe("ID of the secret to grant"),
8
8
  appId: z
@@ -1 +1 @@
1
- {"version":3,"file":"create-vault-grant.js","sourceRoot":"","sources":["../../src/actions/create-vault-grant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,eAAe,YAAY,CAAC;IAC1B,WAAW,EACT,8FAA8F;IAChG,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QAC1D,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,CAAC,gDAAgD,CAAC;KAC9D,CAAC;IACF,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC;CAC5D,CAAC,CAAC","sourcesContent":["import { defineAction } from \"@agent-native/core\";\nimport { z } from \"zod\";\nimport { createGrant } from \"../server/lib/vault-store.js\";\n\nexport default defineAction({\n description:\n \"Grant an app access to a vault secret. The secret can then be synced to the app. Admin only.\",\n schema: z.object({\n secretId: z.string().describe(\"ID of the secret to grant\"),\n appId: z\n .string()\n .describe(\"App ID to grant access to, e.g. mail, calendar\"),\n }),\n run: async (args) => createGrant(args.secretId, args.appId),\n});\n"]}
1
+ {"version":3,"file":"create-vault-grant.js","sourceRoot":"","sources":["../../src/actions/create-vault-grant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,eAAe,YAAY,CAAC;IAC1B,WAAW,EACT,gFAAgF;IAClF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QAC1D,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,CAAC,gDAAgD,CAAC;KAC9D,CAAC;IACF,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC;CAC5D,CAAC,CAAC","sourcesContent":["import { defineAction } from \"@agent-native/core\";\nimport { z } from \"zod\";\nimport { createGrant } from \"../server/lib/vault-store.js\";\n\nexport default defineAction({\n description:\n \"Grant an app access to a vault secret in manual vault access mode. Admin only.\",\n schema: z.object({\n secretId: z.string().describe(\"ID of the secret to grant\"),\n appId: z\n .string()\n .describe(\"App ID to grant access to, e.g. mail, calendar\"),\n }),\n run: async (args) => createGrant(args.secretId, args.appId),\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"create-vault-secret.d.ts","sourceRoot":"","sources":["../../src/actions/create-vault-secret.ts"],"names":[],"mappings":";AAIA,wBAgBG"}
1
+ {"version":3,"file":"create-vault-secret.d.ts","sourceRoot":"","sources":["../../src/actions/create-vault-secret.ts"],"names":[],"mappings":";AAIA,wBAiBG"}
@@ -2,13 +2,14 @@ import { defineAction } from "@agent-native/core";
2
2
  import { z } from "zod";
3
3
  import { createSecret } from "../server/lib/vault-store.js";
4
4
  export default defineAction({
5
- description: "Store a new secret in the workspace vault. Admin only. The secret can then be granted to specific apps.",
5
+ description: "Store a secret in the workspace vault. Admin only. Existing credential keys are updated. By default, saved vault keys are available to every workspace app; manual mode uses per-app grants.",
6
6
  schema: z.object({
7
7
  credentialKey: z
8
8
  .string()
9
+ .min(1)
9
10
  .describe("Environment variable name, e.g. GOOGLE_CLIENT_ID"),
10
- value: z.string().describe("The secret value"),
11
- name: z.string().describe("Human-readable label for this secret"),
11
+ value: z.string().min(1).describe("The secret value"),
12
+ name: z.string().min(1).describe("Human-readable label for this secret"),
12
13
  provider: z
13
14
  .string()
14
15
  .optional()
@@ -1 +1 @@
1
- {"version":3,"file":"create-vault-secret.js","sourceRoot":"","sources":["../../src/actions/create-vault-secret.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,eAAe,YAAY,CAAC;IAC1B,WAAW,EACT,yGAAyG;IAC3G,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,aAAa,EAAE,CAAC;aACb,MAAM,EAAE;aACR,QAAQ,CAAC,kDAAkD,CAAC;QAC/D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAC9C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QACjE,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,qDAAqD,CAAC;QAClE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;KACpE,CAAC;IACF,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC;CACxC,CAAC,CAAC","sourcesContent":["import { defineAction } from \"@agent-native/core\";\nimport { z } from \"zod\";\nimport { createSecret } from \"../server/lib/vault-store.js\";\n\nexport default defineAction({\n description:\n \"Store a new secret in the workspace vault. Admin only. The secret can then be granted to specific apps.\",\n schema: z.object({\n credentialKey: z\n .string()\n .describe(\"Environment variable name, e.g. GOOGLE_CLIENT_ID\"),\n value: z.string().describe(\"The secret value\"),\n name: z.string().describe(\"Human-readable label for this secret\"),\n provider: z\n .string()\n .optional()\n .describe(\"Provider grouping tag, e.g. google, sendgrid, slack\"),\n description: z.string().optional().describe(\"Optional description\"),\n }),\n run: async (args) => createSecret(args),\n});\n"]}
1
+ {"version":3,"file":"create-vault-secret.js","sourceRoot":"","sources":["../../src/actions/create-vault-secret.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,eAAe,YAAY,CAAC;IAC1B,WAAW,EACT,8LAA8L;IAChM,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,aAAa,EAAE,CAAC;aACb,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,CAAC,kDAAkD,CAAC;QAC/D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACrD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QACxE,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,qDAAqD,CAAC;QAClE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;KACpE,CAAC;IACF,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC;CACxC,CAAC,CAAC","sourcesContent":["import { defineAction } from \"@agent-native/core\";\nimport { z } from \"zod\";\nimport { createSecret } from \"../server/lib/vault-store.js\";\n\nexport default defineAction({\n description:\n \"Store a secret in the workspace vault. Admin only. Existing credential keys are updated. By default, saved vault keys are available to every workspace app; manual mode uses per-app grants.\",\n schema: z.object({\n credentialKey: z\n .string()\n .min(1)\n .describe(\"Environment variable name, e.g. GOOGLE_CLIENT_ID\"),\n value: z.string().min(1).describe(\"The secret value\"),\n name: z.string().min(1).describe(\"Human-readable label for this secret\"),\n provider: z\n .string()\n .optional()\n .describe(\"Provider grouping tag, e.g. google, sendgrid, slack\"),\n description: z.string().optional().describe(\"Optional description\"),\n }),\n run: async (args) => createSecret(args),\n});\n"]}
@@ -0,0 +1,3 @@
1
+ declare const _default: any;
2
+ export default _default;
3
+ //# sourceMappingURL=get-vault-access-settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-vault-access-settings.d.ts","sourceRoot":"","sources":["../../src/actions/get-vault-access-settings.ts"],"names":[],"mappings":";AAIA,wBAMG"}
@@ -0,0 +1,10 @@
1
+ import { defineAction } from "@agent-native/core";
2
+ import { z } from "zod";
3
+ import { getVaultAccessSettings } from "../server/lib/vault-store.js";
4
+ export default defineAction({
5
+ description: "Get the Dispatch vault access mode. Defaults to all-apps, where every workspace app can use every vault key.",
6
+ schema: z.object({}),
7
+ http: { method: "GET" },
8
+ run: async () => getVaultAccessSettings(),
9
+ });
10
+ //# sourceMappingURL=get-vault-access-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-vault-access-settings.js","sourceRoot":"","sources":["../../src/actions/get-vault-access-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,eAAe,YAAY,CAAC;IAC1B,WAAW,EACT,8GAA8G;IAChH,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACpB,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;IACvB,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,sBAAsB,EAAE;CAC1C,CAAC,CAAC","sourcesContent":["import { defineAction } from \"@agent-native/core\";\nimport { z } from \"zod\";\nimport { getVaultAccessSettings } from \"../server/lib/vault-store.js\";\n\nexport default defineAction({\n description:\n \"Get the Dispatch vault access mode. Defaults to all-apps, where every workspace app can use every vault key.\",\n schema: z.object({}),\n http: { method: \"GET\" },\n run: async () => getVaultAccessSettings(),\n});\n"]}
@@ -2,7 +2,7 @@ import { defineAction } from "@agent-native/core";
2
2
  import { z } from "zod";
3
3
  import { grantSecretsToApp } from "../server/lib/vault-store.js";
4
4
  export default defineAction({
5
- description: "Grant multiple Dispatch vault secrets to a workspace app. Existing active grants are skipped.",
5
+ description: "Grant multiple Dispatch vault secrets to a workspace app in manual vault access mode. Existing active grants are skipped.",
6
6
  http: { method: "POST" },
7
7
  schema: z.object({
8
8
  appId: z
@@ -1 +1 @@
1
- {"version":3,"file":"grant-vault-secrets-to-app.js","sourceRoot":"","sources":["../../src/actions/grant-vault-secrets-to-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,eAAe,YAAY,CAAC;IAC1B,WAAW,EACT,+FAA+F;IACjG,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IACxB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,KAAK,CAAC,wBAAwB,CAAC;aAC/B,QAAQ,CAAC,6CAA6C,CAAC;QAC1D,SAAS,EAAE,CAAC;aACT,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,CAAC,sCAAsC,CAAC;KACpD,CAAC;IACF,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC;CACnE,CAAC,CAAC","sourcesContent":["import { defineAction } from \"@agent-native/core\";\nimport { z } from \"zod\";\nimport { grantSecretsToApp } from \"../server/lib/vault-store.js\";\n\nexport default defineAction({\n description:\n \"Grant multiple Dispatch vault secrets to a workspace app. Existing active grants are skipped.\",\n http: { method: \"POST\" },\n schema: z.object({\n appId: z\n .string()\n .regex(/^[a-z][a-z0-9-]{0,63}$/)\n .describe(\"Workspace app id/path, e.g. customer-health\"),\n secretIds: z\n .array(z.string())\n .max(100)\n .describe(\"Vault secret IDs to grant to the app\"),\n }),\n run: async (args) => grantSecretsToApp(args.secretIds, args.appId),\n});\n"]}
1
+ {"version":3,"file":"grant-vault-secrets-to-app.js","sourceRoot":"","sources":["../../src/actions/grant-vault-secrets-to-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,eAAe,YAAY,CAAC;IAC1B,WAAW,EACT,2HAA2H;IAC7H,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IACxB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,KAAK,CAAC,wBAAwB,CAAC;aAC/B,QAAQ,CAAC,6CAA6C,CAAC;QAC1D,SAAS,EAAE,CAAC;aACT,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,CAAC,sCAAsC,CAAC;KACpD,CAAC;IACF,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC;CACnE,CAAC,CAAC","sourcesContent":["import { defineAction } from \"@agent-native/core\";\nimport { z } from \"zod\";\nimport { grantSecretsToApp } from \"../server/lib/vault-store.js\";\n\nexport default defineAction({\n description:\n \"Grant multiple Dispatch vault secrets to a workspace app in manual vault access mode. Existing active grants are skipped.\",\n http: { method: \"POST\" },\n schema: z.object({\n appId: z\n .string()\n .regex(/^[a-z][a-z0-9-]{0,63}$/)\n .describe(\"Workspace app id/path, e.g. customer-health\"),\n secretIds: z\n .array(z.string())\n .max(100)\n .describe(\"Vault secret IDs to grant to the app\"),\n }),\n run: async (args) => grantSecretsToApp(args.secretIds, args.appId),\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AA2D7D;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CA0DvD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AA+D7D;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CA8DvD,CAAC"}
@@ -2,6 +2,7 @@ import approveDispatchChange from "./approve-dispatch-change.js";
2
2
  import approveVaultRequest from "./approve-vault-request.js";
3
3
  import archiveWorkspaceApp from "./archive-workspace-app.js";
4
4
  import createLinkToken from "./create-link-token.js";
5
+ import createPylonTicket from "./create-pylon-ticket.js";
5
6
  import createVaultGrant from "./create-vault-grant.js";
6
7
  import createVaultSecret from "./create-vault-secret.js";
7
8
  import createWorkspaceResourceGrant from "./create-workspace-resource-grant.js";
@@ -13,6 +14,7 @@ import denyVaultRequest from "./deny-vault-request.js";
13
14
  import getAppCreationSettings from "./get-app-creation-settings.js";
14
15
  import getAgentThreadDebug from "./get-agent-thread-debug.js";
15
16
  import getDispatchSettings from "./get-dispatch-settings.js";
17
+ import getVaultAccessSettings from "./get-vault-access-settings.js";
16
18
  import getWorkspaceInfo from "./get-workspace-info.js";
17
19
  import grantWorkspaceResourcesToApp from "./grant-workspace-resources-to-app.js";
18
20
  import grantVaultSecretsToApp from "./grant-vault-secrets-to-app.js";
@@ -46,11 +48,13 @@ import searchAgentThreads from "./search-agent-threads.js";
46
48
  import sendPlatformMessage from "./send-platform-message.js";
47
49
  import setAppCreationSettings from "./set-app-creation-settings.js";
48
50
  import setDispatchApprovalPolicy from "./set-dispatch-approval-policy.js";
51
+ import setVaultAccessSettings from "./set-vault-access-settings.js";
49
52
  import startWorkspaceAppCreation from "./start-workspace-app-creation.js";
50
53
  import syncVaultToApp from "./sync-vault-to-app.js";
51
54
  import syncWorkspaceResourcesToAll from "./sync-workspace-resources-to-all.js";
52
55
  import syncWorkspaceResourcesToApp from "./sync-workspace-resources-to-app.js";
53
56
  import unarchiveWorkspaceApp from "./unarchive-workspace-app.js";
57
+ import updateWorkspaceAppMetadata from "./update-workspace-app-metadata.js";
54
58
  import updateVaultSecret from "./update-vault-secret.js";
55
59
  import updateWorkspaceResource from "./update-workspace-resource.js";
56
60
  import upsertDestination from "./upsert-destination.js";
@@ -66,6 +70,7 @@ export const dispatchActions = {
66
70
  "approve-vault-request": approveVaultRequest,
67
71
  "archive-workspace-app": archiveWorkspaceApp,
68
72
  "create-link-token": createLinkToken,
73
+ "create-pylon-ticket": createPylonTicket,
69
74
  "create-vault-grant": createVaultGrant,
70
75
  "create-vault-secret": createVaultSecret,
71
76
  "create-workspace-resource-grant": createWorkspaceResourceGrant,
@@ -77,6 +82,7 @@ export const dispatchActions = {
77
82
  "get-app-creation-settings": getAppCreationSettings,
78
83
  "get-agent-thread-debug": getAgentThreadDebug,
79
84
  "get-dispatch-settings": getDispatchSettings,
85
+ "get-vault-access-settings": getVaultAccessSettings,
80
86
  "get-workspace-info": getWorkspaceInfo,
81
87
  "grant-workspace-resources-to-app": grantWorkspaceResourcesToApp,
82
88
  "grant-vault-secrets-to-app": grantVaultSecretsToApp,
@@ -110,11 +116,13 @@ export const dispatchActions = {
110
116
  "send-platform-message": sendPlatformMessage,
111
117
  "set-app-creation-settings": setAppCreationSettings,
112
118
  "set-dispatch-approval-policy": setDispatchApprovalPolicy,
119
+ "set-vault-access-settings": setVaultAccessSettings,
113
120
  "start-workspace-app-creation": startWorkspaceAppCreation,
114
121
  "sync-vault-to-app": syncVaultToApp,
115
122
  "sync-workspace-resources-to-all": syncWorkspaceResourcesToAll,
116
123
  "sync-workspace-resources-to-app": syncWorkspaceResourcesToApp,
117
124
  "unarchive-workspace-app": unarchiveWorkspaceApp,
125
+ "update-workspace-app-metadata": updateWorkspaceAppMetadata,
118
126
  "update-vault-secret": updateVaultSecret,
119
127
  "update-workspace-resource": updateWorkspaceResource,
120
128
  "upsert-destination": upsertDestination,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ActionEntry } from \"@agent-native/core/server\";\nimport approveDispatchChange from \"./approve-dispatch-change.js\";\nimport approveVaultRequest from \"./approve-vault-request.js\";\nimport archiveWorkspaceApp from \"./archive-workspace-app.js\";\nimport createLinkToken from \"./create-link-token.js\";\nimport createVaultGrant from \"./create-vault-grant.js\";\nimport createVaultSecret from \"./create-vault-secret.js\";\nimport createWorkspaceResourceGrant from \"./create-workspace-resource-grant.js\";\nimport createWorkspaceResource from \"./create-workspace-resource.js\";\nimport deleteDestination from \"./delete-destination.js\";\nimport deleteVaultSecret from \"./delete-vault-secret.js\";\nimport deleteWorkspaceResource from \"./delete-workspace-resource.js\";\nimport denyVaultRequest from \"./deny-vault-request.js\";\nimport getAppCreationSettings from \"./get-app-creation-settings.js\";\nimport getAgentThreadDebug from \"./get-agent-thread-debug.js\";\nimport getDispatchSettings from \"./get-dispatch-settings.js\";\nimport getWorkspaceInfo from \"./get-workspace-info.js\";\nimport grantWorkspaceResourcesToApp from \"./grant-workspace-resources-to-app.js\";\nimport grantVaultSecretsToApp from \"./grant-vault-secrets-to-app.js\";\nimport listAgentThreadSources from \"./list-agent-thread-sources.js\";\nimport listAvailableWorkspaceTemplates from \"./list-available-workspace-templates.js\";\nimport listConnectedAgents from \"./list-connected-agents.js\";\nimport listDestinations from \"./list-destinations.js\";\nimport listDispatchApprovals from \"./list-dispatch-approvals.js\";\nimport listDispatchAudit from \"./list-dispatch-audit.js\";\nimport listDispatchOverview from \"./list-dispatch-overview.js\";\nimport listDispatchUsageMetrics from \"./list-dispatch-usage-metrics.js\";\nimport listIntegrationsCatalog from \"./list-integrations-catalog.js\";\nimport listLinkedIdentities from \"./list-linked-identities.js\";\nimport listVaultAudit from \"./list-vault-audit.js\";\nimport listVaultGrants from \"./list-vault-grants.js\";\nimport listVaultRequests from \"./list-vault-requests.js\";\nimport listVaultSecretOptions from \"./list-vault-secret-options.js\";\nimport listVaultSecrets from \"./list-vault-secrets.js\";\nimport listWorkspaceApps from \"./list-workspace-apps.js\";\nimport listWorkspaceResourceOptions from \"./list-workspace-resource-options.js\";\nimport listWorkspaceResourceGrants from \"./list-workspace-resource-grants.js\";\nimport listWorkspaceResources from \"./list-workspace-resources.js\";\nimport navigate from \"./navigate.js\";\nimport rejectDispatchChange from \"./reject-dispatch-change.js\";\nimport removePendingWorkspaceApp from \"./remove-pending-workspace-app.js\";\nimport requestVaultSecret from \"./request-vault-secret.js\";\nimport revokeVaultGrant from \"./revoke-vault-grant.js\";\nimport revokeWorkspaceResourceGrant from \"./revoke-workspace-resource-grant.js\";\nimport scaffoldWorkspaceApp from \"./scaffold-workspace-app.js\";\nimport searchAgentThreads from \"./search-agent-threads.js\";\nimport sendPlatformMessage from \"./send-platform-message.js\";\nimport setAppCreationSettings from \"./set-app-creation-settings.js\";\nimport setDispatchApprovalPolicy from \"./set-dispatch-approval-policy.js\";\nimport startWorkspaceAppCreation from \"./start-workspace-app-creation.js\";\nimport syncVaultToApp from \"./sync-vault-to-app.js\";\nimport syncWorkspaceResourcesToAll from \"./sync-workspace-resources-to-all.js\";\nimport syncWorkspaceResourcesToApp from \"./sync-workspace-resources-to-app.js\";\nimport unarchiveWorkspaceApp from \"./unarchive-workspace-app.js\";\nimport updateVaultSecret from \"./update-vault-secret.js\";\nimport updateWorkspaceResource from \"./update-workspace-resource.js\";\nimport upsertDestination from \"./upsert-destination.js\";\nimport viewScreen from \"./view-screen.js\";\n\n/**\n * Dispatch's actions registered as a flat name→entry map. Imported by\n * `@agent-native/dispatch/server`'s side-effect block, which calls\n * `registerPackageActions(dispatchActions)` so the framework's action\n * loader picks them up.\n */\nexport const dispatchActions: Record<string, ActionEntry> = {\n \"approve-dispatch-change\": approveDispatchChange,\n \"approve-vault-request\": approveVaultRequest,\n \"archive-workspace-app\": archiveWorkspaceApp,\n \"create-link-token\": createLinkToken,\n \"create-vault-grant\": createVaultGrant,\n \"create-vault-secret\": createVaultSecret,\n \"create-workspace-resource-grant\": createWorkspaceResourceGrant,\n \"create-workspace-resource\": createWorkspaceResource,\n \"delete-destination\": deleteDestination,\n \"delete-vault-secret\": deleteVaultSecret,\n \"delete-workspace-resource\": deleteWorkspaceResource,\n \"deny-vault-request\": denyVaultRequest,\n \"get-app-creation-settings\": getAppCreationSettings,\n \"get-agent-thread-debug\": getAgentThreadDebug,\n \"get-dispatch-settings\": getDispatchSettings,\n \"get-workspace-info\": getWorkspaceInfo,\n \"grant-workspace-resources-to-app\": grantWorkspaceResourcesToApp,\n \"grant-vault-secrets-to-app\": grantVaultSecretsToApp,\n \"list-agent-thread-sources\": listAgentThreadSources,\n \"list-available-workspace-templates\": listAvailableWorkspaceTemplates,\n \"list-connected-agents\": listConnectedAgents,\n \"list-destinations\": listDestinations,\n \"list-dispatch-approvals\": listDispatchApprovals,\n \"list-dispatch-audit\": listDispatchAudit,\n \"list-dispatch-overview\": listDispatchOverview,\n \"list-dispatch-usage-metrics\": listDispatchUsageMetrics,\n \"list-integrations-catalog\": listIntegrationsCatalog,\n \"list-linked-identities\": listLinkedIdentities,\n \"list-vault-audit\": listVaultAudit,\n \"list-vault-grants\": listVaultGrants,\n \"list-vault-requests\": listVaultRequests,\n \"list-vault-secret-options\": listVaultSecretOptions,\n \"list-vault-secrets\": listVaultSecrets,\n \"list-workspace-apps\": listWorkspaceApps,\n \"list-workspace-resource-options\": listWorkspaceResourceOptions,\n \"list-workspace-resource-grants\": listWorkspaceResourceGrants,\n \"list-workspace-resources\": listWorkspaceResources,\n navigate: navigate,\n \"reject-dispatch-change\": rejectDispatchChange,\n \"remove-pending-workspace-app\": removePendingWorkspaceApp,\n \"request-vault-secret\": requestVaultSecret,\n \"revoke-vault-grant\": revokeVaultGrant,\n \"revoke-workspace-resource-grant\": revokeWorkspaceResourceGrant,\n \"scaffold-workspace-app\": scaffoldWorkspaceApp,\n \"search-agent-threads\": searchAgentThreads,\n \"send-platform-message\": sendPlatformMessage,\n \"set-app-creation-settings\": setAppCreationSettings,\n \"set-dispatch-approval-policy\": setDispatchApprovalPolicy,\n \"start-workspace-app-creation\": startWorkspaceAppCreation,\n \"sync-vault-to-app\": syncVaultToApp,\n \"sync-workspace-resources-to-all\": syncWorkspaceResourcesToAll,\n \"sync-workspace-resources-to-app\": syncWorkspaceResourcesToApp,\n \"unarchive-workspace-app\": unarchiveWorkspaceApp,\n \"update-vault-secret\": updateVaultSecret,\n \"update-workspace-resource\": updateWorkspaceResource,\n \"upsert-destination\": upsertDestination,\n \"view-screen\": viewScreen,\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ActionEntry } from \"@agent-native/core/server\";\nimport approveDispatchChange from \"./approve-dispatch-change.js\";\nimport approveVaultRequest from \"./approve-vault-request.js\";\nimport archiveWorkspaceApp from \"./archive-workspace-app.js\";\nimport createLinkToken from \"./create-link-token.js\";\nimport createPylonTicket from \"./create-pylon-ticket.js\";\nimport createVaultGrant from \"./create-vault-grant.js\";\nimport createVaultSecret from \"./create-vault-secret.js\";\nimport createWorkspaceResourceGrant from \"./create-workspace-resource-grant.js\";\nimport createWorkspaceResource from \"./create-workspace-resource.js\";\nimport deleteDestination from \"./delete-destination.js\";\nimport deleteVaultSecret from \"./delete-vault-secret.js\";\nimport deleteWorkspaceResource from \"./delete-workspace-resource.js\";\nimport denyVaultRequest from \"./deny-vault-request.js\";\nimport getAppCreationSettings from \"./get-app-creation-settings.js\";\nimport getAgentThreadDebug from \"./get-agent-thread-debug.js\";\nimport getDispatchSettings from \"./get-dispatch-settings.js\";\nimport getVaultAccessSettings from \"./get-vault-access-settings.js\";\nimport getWorkspaceInfo from \"./get-workspace-info.js\";\nimport grantWorkspaceResourcesToApp from \"./grant-workspace-resources-to-app.js\";\nimport grantVaultSecretsToApp from \"./grant-vault-secrets-to-app.js\";\nimport listAgentThreadSources from \"./list-agent-thread-sources.js\";\nimport listAvailableWorkspaceTemplates from \"./list-available-workspace-templates.js\";\nimport listConnectedAgents from \"./list-connected-agents.js\";\nimport listDestinations from \"./list-destinations.js\";\nimport listDispatchApprovals from \"./list-dispatch-approvals.js\";\nimport listDispatchAudit from \"./list-dispatch-audit.js\";\nimport listDispatchOverview from \"./list-dispatch-overview.js\";\nimport listDispatchUsageMetrics from \"./list-dispatch-usage-metrics.js\";\nimport listIntegrationsCatalog from \"./list-integrations-catalog.js\";\nimport listLinkedIdentities from \"./list-linked-identities.js\";\nimport listVaultAudit from \"./list-vault-audit.js\";\nimport listVaultGrants from \"./list-vault-grants.js\";\nimport listVaultRequests from \"./list-vault-requests.js\";\nimport listVaultSecretOptions from \"./list-vault-secret-options.js\";\nimport listVaultSecrets from \"./list-vault-secrets.js\";\nimport listWorkspaceApps from \"./list-workspace-apps.js\";\nimport listWorkspaceResourceOptions from \"./list-workspace-resource-options.js\";\nimport listWorkspaceResourceGrants from \"./list-workspace-resource-grants.js\";\nimport listWorkspaceResources from \"./list-workspace-resources.js\";\nimport navigate from \"./navigate.js\";\nimport rejectDispatchChange from \"./reject-dispatch-change.js\";\nimport removePendingWorkspaceApp from \"./remove-pending-workspace-app.js\";\nimport requestVaultSecret from \"./request-vault-secret.js\";\nimport revokeVaultGrant from \"./revoke-vault-grant.js\";\nimport revokeWorkspaceResourceGrant from \"./revoke-workspace-resource-grant.js\";\nimport scaffoldWorkspaceApp from \"./scaffold-workspace-app.js\";\nimport searchAgentThreads from \"./search-agent-threads.js\";\nimport sendPlatformMessage from \"./send-platform-message.js\";\nimport setAppCreationSettings from \"./set-app-creation-settings.js\";\nimport setDispatchApprovalPolicy from \"./set-dispatch-approval-policy.js\";\nimport setVaultAccessSettings from \"./set-vault-access-settings.js\";\nimport startWorkspaceAppCreation from \"./start-workspace-app-creation.js\";\nimport syncVaultToApp from \"./sync-vault-to-app.js\";\nimport syncWorkspaceResourcesToAll from \"./sync-workspace-resources-to-all.js\";\nimport syncWorkspaceResourcesToApp from \"./sync-workspace-resources-to-app.js\";\nimport unarchiveWorkspaceApp from \"./unarchive-workspace-app.js\";\nimport updateWorkspaceAppMetadata from \"./update-workspace-app-metadata.js\";\nimport updateVaultSecret from \"./update-vault-secret.js\";\nimport updateWorkspaceResource from \"./update-workspace-resource.js\";\nimport upsertDestination from \"./upsert-destination.js\";\nimport viewScreen from \"./view-screen.js\";\n\n/**\n * Dispatch's actions registered as a flat name→entry map. Imported by\n * `@agent-native/dispatch/server`'s side-effect block, which calls\n * `registerPackageActions(dispatchActions)` so the framework's action\n * loader picks them up.\n */\nexport const dispatchActions: Record<string, ActionEntry> = {\n \"approve-dispatch-change\": approveDispatchChange,\n \"approve-vault-request\": approveVaultRequest,\n \"archive-workspace-app\": archiveWorkspaceApp,\n \"create-link-token\": createLinkToken,\n \"create-pylon-ticket\": createPylonTicket,\n \"create-vault-grant\": createVaultGrant,\n \"create-vault-secret\": createVaultSecret,\n \"create-workspace-resource-grant\": createWorkspaceResourceGrant,\n \"create-workspace-resource\": createWorkspaceResource,\n \"delete-destination\": deleteDestination,\n \"delete-vault-secret\": deleteVaultSecret,\n \"delete-workspace-resource\": deleteWorkspaceResource,\n \"deny-vault-request\": denyVaultRequest,\n \"get-app-creation-settings\": getAppCreationSettings,\n \"get-agent-thread-debug\": getAgentThreadDebug,\n \"get-dispatch-settings\": getDispatchSettings,\n \"get-vault-access-settings\": getVaultAccessSettings,\n \"get-workspace-info\": getWorkspaceInfo,\n \"grant-workspace-resources-to-app\": grantWorkspaceResourcesToApp,\n \"grant-vault-secrets-to-app\": grantVaultSecretsToApp,\n \"list-agent-thread-sources\": listAgentThreadSources,\n \"list-available-workspace-templates\": listAvailableWorkspaceTemplates,\n \"list-connected-agents\": listConnectedAgents,\n \"list-destinations\": listDestinations,\n \"list-dispatch-approvals\": listDispatchApprovals,\n \"list-dispatch-audit\": listDispatchAudit,\n \"list-dispatch-overview\": listDispatchOverview,\n \"list-dispatch-usage-metrics\": listDispatchUsageMetrics,\n \"list-integrations-catalog\": listIntegrationsCatalog,\n \"list-linked-identities\": listLinkedIdentities,\n \"list-vault-audit\": listVaultAudit,\n \"list-vault-grants\": listVaultGrants,\n \"list-vault-requests\": listVaultRequests,\n \"list-vault-secret-options\": listVaultSecretOptions,\n \"list-vault-secrets\": listVaultSecrets,\n \"list-workspace-apps\": listWorkspaceApps,\n \"list-workspace-resource-options\": listWorkspaceResourceOptions,\n \"list-workspace-resource-grants\": listWorkspaceResourceGrants,\n \"list-workspace-resources\": listWorkspaceResources,\n navigate: navigate,\n \"reject-dispatch-change\": rejectDispatchChange,\n \"remove-pending-workspace-app\": removePendingWorkspaceApp,\n \"request-vault-secret\": requestVaultSecret,\n \"revoke-vault-grant\": revokeVaultGrant,\n \"revoke-workspace-resource-grant\": revokeWorkspaceResourceGrant,\n \"scaffold-workspace-app\": scaffoldWorkspaceApp,\n \"search-agent-threads\": searchAgentThreads,\n \"send-platform-message\": sendPlatformMessage,\n \"set-app-creation-settings\": setAppCreationSettings,\n \"set-dispatch-approval-policy\": setDispatchApprovalPolicy,\n \"set-vault-access-settings\": setVaultAccessSettings,\n \"start-workspace-app-creation\": startWorkspaceAppCreation,\n \"sync-vault-to-app\": syncVaultToApp,\n \"sync-workspace-resources-to-all\": syncWorkspaceResourcesToAll,\n \"sync-workspace-resources-to-app\": syncWorkspaceResourcesToApp,\n \"unarchive-workspace-app\": unarchiveWorkspaceApp,\n \"update-workspace-app-metadata\": updateWorkspaceAppMetadata,\n \"update-vault-secret\": updateVaultSecret,\n \"update-workspace-resource\": updateWorkspaceResource,\n \"upsert-destination\": upsertDestination,\n \"view-screen\": viewScreen,\n};\n"]}
@@ -2,7 +2,7 @@ import { defineAction } from "@agent-native/core";
2
2
  import { z } from "zod";
3
3
  import { listIntegrationsCatalog } from "../server/lib/vault-store.js";
4
4
  export default defineAction({
5
- description: "List all workspace apps and their credential/integration requirements. Shows which credentials are configured, which are granted from the vault, and which are missing.",
5
+ description: "List all workspace apps and their credential/integration requirements. Shows configured credentials and effective Dispatch vault access.",
6
6
  schema: z.object({}),
7
7
  http: { method: "GET" },
8
8
  run: async () => listIntegrationsCatalog(),
@@ -1 +1 @@
1
- {"version":3,"file":"list-integrations-catalog.js","sourceRoot":"","sources":["../../src/actions/list-integrations-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,eAAe,YAAY,CAAC;IAC1B,WAAW,EACT,yKAAyK;IAC3K,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACpB,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;IACvB,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,uBAAuB,EAAE;CAC3C,CAAC,CAAC","sourcesContent":["import { defineAction } from \"@agent-native/core\";\nimport { z } from \"zod\";\nimport { listIntegrationsCatalog } from \"../server/lib/vault-store.js\";\n\nexport default defineAction({\n description:\n \"List all workspace apps and their credential/integration requirements. Shows which credentials are configured, which are granted from the vault, and which are missing.\",\n schema: z.object({}),\n http: { method: \"GET\" },\n run: async () => listIntegrationsCatalog(),\n});\n"]}
1
+ {"version":3,"file":"list-integrations-catalog.js","sourceRoot":"","sources":["../../src/actions/list-integrations-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,eAAe,YAAY,CAAC;IAC1B,WAAW,EACT,0IAA0I;IAC5I,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACpB,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;IACvB,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,uBAAuB,EAAE;CAC3C,CAAC,CAAC","sourcesContent":["import { defineAction } from \"@agent-native/core\";\nimport { z } from \"zod\";\nimport { listIntegrationsCatalog } from \"../server/lib/vault-store.js\";\n\nexport default defineAction({\n description:\n \"List all workspace apps and their credential/integration requirements. Shows configured credentials and effective Dispatch vault access.\",\n schema: z.object({}),\n http: { method: \"GET\" },\n run: async () => listIntegrationsCatalog(),\n});\n"]}
@@ -2,7 +2,7 @@ import { defineAction } from "@agent-native/core";
2
2
  import { z } from "zod";
3
3
  import { listGrants } from "../server/lib/vault-store.js";
4
4
  export default defineAction({
5
- description: "List vault grants which apps have access to which secrets. Optionally filter by app or secret.",
5
+ description: "List explicit vault grants used by manual vault access mode. Optionally filter by app or secret.",
6
6
  schema: z.object({
7
7
  appId: z.string().optional().describe("Filter by app ID"),
8
8
  secretId: z.string().optional().describe("Filter by secret ID"),
@@ -1 +1 @@
1
- {"version":3,"file":"list-vault-grants.js","sourceRoot":"","sources":["../../src/actions/list-vault-grants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,eAAe,YAAY,CAAC;IAC1B,WAAW,EACT,kGAAkG;IACpG,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACzD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;KAChE,CAAC;IACF,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;IACvB,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;CACtC,CAAC,CAAC","sourcesContent":["import { defineAction } from \"@agent-native/core\";\nimport { z } from \"zod\";\nimport { listGrants } from \"../server/lib/vault-store.js\";\n\nexport default defineAction({\n description:\n \"List vault grants which apps have access to which secrets. Optionally filter by app or secret.\",\n schema: z.object({\n appId: z.string().optional().describe(\"Filter by app ID\"),\n secretId: z.string().optional().describe(\"Filter by secret ID\"),\n }),\n http: { method: \"GET\" },\n run: async (args) => listGrants(args),\n});\n"]}
1
+ {"version":3,"file":"list-vault-grants.js","sourceRoot":"","sources":["../../src/actions/list-vault-grants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,eAAe,YAAY,CAAC;IAC1B,WAAW,EACT,kGAAkG;IACpG,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACzD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;KAChE,CAAC;IACF,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;IACvB,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;CACtC,CAAC,CAAC","sourcesContent":["import { defineAction } from \"@agent-native/core\";\nimport { z } from \"zod\";\nimport { listGrants } from \"../server/lib/vault-store.js\";\n\nexport default defineAction({\n description:\n \"List explicit vault grants used by manual vault access mode. Optionally filter by app or secret.\",\n schema: z.object({\n appId: z.string().optional().describe(\"Filter by app ID\"),\n secretId: z.string().optional().describe(\"Filter by secret ID\"),\n }),\n http: { method: \"GET\" },\n run: async (args) => listGrants(args),\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"list-workspace-apps.d.ts","sourceRoot":"","sources":["../../src/actions/list-workspace-apps.ts"],"names":[],"mappings":";AAYA,wBAYG"}
1
+ {"version":3,"file":"list-workspace-apps.d.ts","sourceRoot":"","sources":["../../src/actions/list-workspace-apps.ts"],"names":[],"mappings":";AAYA,wBAgBG"}
@@ -12,11 +12,15 @@ const httpBoolean = z.preprocess((value) => {
12
12
  return value;
13
13
  }, z.boolean());
14
14
  export default defineAction({
15
- description: "List apps installed in this workspace, including mounted paths, absolute URLs, and agent-card/A2A metadata for ready apps by default. UI polling callers can pass includeAgentCards=false to skip network probes.",
15
+ description: "List apps installed in this workspace, including mounted paths, absolute URLs, audience (internal/public), page route access overrides, and agent-card/A2A metadata for ready apps by default. UI polling callers can pass includeAgentCards=false to skip network probes.",
16
16
  schema: z.object({
17
17
  includeAgentCards: httpBoolean
18
18
  .default(true)
19
19
  .describe("Fetch each ready app's /.well-known/agent-card.json with a short non-throwing timeout and include agentCardUrl, agentCardReachable, a2aEndpointUrl, agentName, and agentSkillsCount. Defaults to true for agent calls; UI polling should pass false. Pending Builder apps are not probed."),
20
+ audience: z
21
+ .enum(["all", "internal", "public"])
22
+ .default("all")
23
+ .describe("Filter by workspace app audience."),
20
24
  }),
21
25
  http: { method: "GET" },
22
26
  run: async (input) => listWorkspaceApps(input),
@@ -1 +1 @@
1
- {"version":3,"file":"list-workspace-apps.js","sourceRoot":"","sources":["../../src/actions/list-workspace-apps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAExE,MAAM,WAAW,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE;IACzC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACjE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IACnE,OAAO,KAAK,CAAC;AACf,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAEhB,eAAe,YAAY,CAAC;IAC1B,WAAW,EACT,mNAAmN;IACrN,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,iBAAiB,EAAE,WAAW;aAC3B,OAAO,CAAC,IAAI,CAAC;aACb,QAAQ,CACP,2RAA2R,CAC5R;KACJ,CAAC;IACF,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;IACvB,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC;CAC/C,CAAC,CAAC","sourcesContent":["import { defineAction } from \"@agent-native/core\";\nimport { z } from \"zod\";\nimport { listWorkspaceApps } from \"../server/lib/app-creation-store.js\";\n\nconst httpBoolean = z.preprocess((value) => {\n if (typeof value !== \"string\") return value;\n const normalized = value.trim().toLowerCase();\n if ([\"true\", \"1\", \"yes\", \"on\"].includes(normalized)) return true;\n if ([\"false\", \"0\", \"no\", \"off\"].includes(normalized)) return false;\n return value;\n}, z.boolean());\n\nexport default defineAction({\n description:\n \"List apps installed in this workspace, including mounted paths, absolute URLs, and agent-card/A2A metadata for ready apps by default. UI polling callers can pass includeAgentCards=false to skip network probes.\",\n schema: z.object({\n includeAgentCards: httpBoolean\n .default(true)\n .describe(\n \"Fetch each ready app's /.well-known/agent-card.json with a short non-throwing timeout and include agentCardUrl, agentCardReachable, a2aEndpointUrl, agentName, and agentSkillsCount. Defaults to true for agent calls; UI polling should pass false. Pending Builder apps are not probed.\",\n ),\n }),\n http: { method: \"GET\" },\n run: async (input) => listWorkspaceApps(input),\n});\n"]}
1
+ {"version":3,"file":"list-workspace-apps.js","sourceRoot":"","sources":["../../src/actions/list-workspace-apps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAExE,MAAM,WAAW,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE;IACzC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACjE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IACnE,OAAO,KAAK,CAAC;AACf,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAEhB,eAAe,YAAY,CAAC;IAC1B,WAAW,EACT,4QAA4Q;IAC9Q,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,iBAAiB,EAAE,WAAW;aAC3B,OAAO,CAAC,IAAI,CAAC;aACb,QAAQ,CACP,2RAA2R,CAC5R;QACH,QAAQ,EAAE,CAAC;aACR,IAAI,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;aACnC,OAAO,CAAC,KAAK,CAAC;aACd,QAAQ,CAAC,mCAAmC,CAAC;KACjD,CAAC;IACF,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;IACvB,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC;CAC/C,CAAC,CAAC","sourcesContent":["import { defineAction } from \"@agent-native/core\";\nimport { z } from \"zod\";\nimport { listWorkspaceApps } from \"../server/lib/app-creation-store.js\";\n\nconst httpBoolean = z.preprocess((value) => {\n if (typeof value !== \"string\") return value;\n const normalized = value.trim().toLowerCase();\n if ([\"true\", \"1\", \"yes\", \"on\"].includes(normalized)) return true;\n if ([\"false\", \"0\", \"no\", \"off\"].includes(normalized)) return false;\n return value;\n}, z.boolean());\n\nexport default defineAction({\n description:\n \"List apps installed in this workspace, including mounted paths, absolute URLs, audience (internal/public), page route access overrides, and agent-card/A2A metadata for ready apps by default. UI polling callers can pass includeAgentCards=false to skip network probes.\",\n schema: z.object({\n includeAgentCards: httpBoolean\n .default(true)\n .describe(\n \"Fetch each ready app's /.well-known/agent-card.json with a short non-throwing timeout and include agentCardUrl, agentCardReachable, a2aEndpointUrl, agentName, and agentSkillsCount. Defaults to true for agent calls; UI polling should pass false. Pending Builder apps are not probed.\",\n ),\n audience: z\n .enum([\"all\", \"internal\", \"public\"])\n .default(\"all\")\n .describe(\"Filter by workspace app audience.\"),\n }),\n http: { method: \"GET\" },\n run: async (input) => listWorkspaceApps(input),\n});\n"]}
@@ -0,0 +1,3 @@
1
+ declare const _default: any;
2
+ export default _default;
3
+ //# sourceMappingURL=set-vault-access-settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-vault-access-settings.d.ts","sourceRoot":"","sources":["../../src/actions/set-vault-access-settings.ts"],"names":[],"mappings":";AAIA,wBAWG"}
@@ -0,0 +1,13 @@
1
+ import { defineAction } from "@agent-native/core";
2
+ import { z } from "zod";
3
+ import { setVaultAccessSettings } from "../server/lib/vault-store.js";
4
+ export default defineAction({
5
+ description: "Set the Dispatch vault access mode. Use all-apps for the default workspace-wide mode or manual to require explicit per-app grants.",
6
+ schema: z.object({
7
+ mode: z
8
+ .enum(["all-apps", "manual"])
9
+ .describe("all-apps shares every vault key with every app; manual requires grants"),
10
+ }),
11
+ run: async (args) => setVaultAccessSettings(args),
12
+ });
13
+ //# sourceMappingURL=set-vault-access-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-vault-access-settings.js","sourceRoot":"","sources":["../../src/actions/set-vault-access-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,eAAe,YAAY,CAAC;IAC1B,WAAW,EACT,oIAAoI;IACtI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,IAAI,EAAE,CAAC;aACJ,IAAI,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;aAC5B,QAAQ,CACP,wEAAwE,CACzE;KACJ,CAAC;IACF,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC;CAClD,CAAC,CAAC","sourcesContent":["import { defineAction } from \"@agent-native/core\";\nimport { z } from \"zod\";\nimport { setVaultAccessSettings } from \"../server/lib/vault-store.js\";\n\nexport default defineAction({\n description:\n \"Set the Dispatch vault access mode. Use all-apps for the default workspace-wide mode or manual to require explicit per-app grants.\",\n schema: z.object({\n mode: z\n .enum([\"all-apps\", \"manual\"])\n .describe(\n \"all-apps shares every vault key with every app; manual requires grants\",\n ),\n }),\n run: async (args) => setVaultAccessSettings(args),\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"start-workspace-app-creation.d.ts","sourceRoot":"","sources":["../../src/actions/start-workspace-app-creation.ts"],"names":[],"mappings":";AAKA,wBAkCG"}
1
+ {"version":3,"file":"start-workspace-app-creation.d.ts","sourceRoot":"","sources":["../../src/actions/start-workspace-app-creation.ts"],"names":[],"mappings":";AAKA,wBA0CG"}
@@ -20,6 +20,12 @@ export default defineAction({
20
20
  .optional()
21
21
  .nullable()
22
22
  .describe("Template to start from"),
23
+ description: z
24
+ .string()
25
+ .max(500)
26
+ .optional()
27
+ .nullable()
28
+ .describe("Concise AI-generated description of the app based on the user's prompt. Dispatch saves this while the app is being created."),
23
29
  secretIds: z
24
30
  .array(z.string())
25
31
  .max(100)
@@ -1 +1 @@
1
- {"version":3,"file":"start-workspace-app-creation.js","sourceRoot":"","sources":["../../src/actions/start-workspace-app-creation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAEhF,eAAe,YAAY,CAAC;IAC1B,WAAW,EACT,+jBAA+jB;IACjkB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QACrE,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,CAAC,EAAE,CAAC;aACP,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,gCAAgC,CAAC,KAAK,CAAC,EAAE;YAC3D,OAAO,EACL,yEAAyE;SAC5E,CAAC;aACD,QAAQ,EAAE;aACV,QAAQ,EAAE;aACV,QAAQ,CAAC,+BAA+B,CAAC;QAC5C,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,EAAE;aACV,QAAQ,CAAC,wBAAwB,CAAC;QACrC,SAAS,EAAE,CAAC;aACT,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,+CAA+C,CAAC;QAC5D,WAAW,EAAE,CAAC;aACX,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,wEAAwE,CACzE;KACJ,CAAC;IACF,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC;CACrD,CAAC,CAAC","sourcesContent":["import { defineAction } from \"@agent-native/core\";\nimport { getWorkspaceAppIdValidationError } from \"@agent-native/core/shared\";\nimport { z } from \"zod\";\nimport { startWorkspaceAppCreation } from \"../server/lib/app-creation-store.js\";\n\nexport default defineAction({\n description:\n \"Start creating a new workspace app from Dispatch when the request truly needs its own app. In local dev this returns a code-agent prompt; in production it creates a Builder branch when a Builder project is configured. The result must be a separate workspace app under apps/<app-id>, not a new route or file in apps/starter. If the request needs Mail, Calendar, Analytics, or another first-party app, use the existing hosted/connected app via links or A2A; do not clone, wrap, or nest those templates inside the new app unless the user explicitly asks for a customized copy.\",\n schema: z.object({\n prompt: z.string().min(1).describe(\"The user's app creation request\"),\n appId: z\n .string()\n .max(64)\n .refine((appId) => !getWorkspaceAppIdValidationError(appId), {\n message:\n \"Use a non-reserved app id with lowercase letters, numbers, and hyphens.\",\n })\n .optional()\n .nullable()\n .describe(\"Desired workspace app id/path\"),\n template: z\n .string()\n .optional()\n .nullable()\n .describe(\"Template to start from\"),\n secretIds: z\n .array(z.string())\n .max(100)\n .optional()\n .describe(\"Dispatch vault secret IDs to grant to the app\"),\n resourceIds: z\n .array(z.string())\n .max(100)\n .optional()\n .describe(\n \"Dispatch workspace resource IDs or knowledge packs to grant to the app\",\n ),\n }),\n run: async (args) => startWorkspaceAppCreation(args),\n});\n"]}
1
+ {"version":3,"file":"start-workspace-app-creation.js","sourceRoot":"","sources":["../../src/actions/start-workspace-app-creation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAEhF,eAAe,YAAY,CAAC;IAC1B,WAAW,EACT,+jBAA+jB;IACjkB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QACrE,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,CAAC,EAAE,CAAC;aACP,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,gCAAgC,CAAC,KAAK,CAAC,EAAE;YAC3D,OAAO,EACL,yEAAyE;SAC5E,CAAC;aACD,QAAQ,EAAE;aACV,QAAQ,EAAE;aACV,QAAQ,CAAC,+BAA+B,CAAC;QAC5C,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,EAAE;aACV,QAAQ,CAAC,wBAAwB,CAAC;QACrC,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,EAAE;aACV,QAAQ,CACP,6HAA6H,CAC9H;QACH,SAAS,EAAE,CAAC;aACT,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,+CAA+C,CAAC;QAC5D,WAAW,EAAE,CAAC;aACX,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,wEAAwE,CACzE;KACJ,CAAC;IACF,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC;CACrD,CAAC,CAAC","sourcesContent":["import { defineAction } from \"@agent-native/core\";\nimport { getWorkspaceAppIdValidationError } from \"@agent-native/core/shared\";\nimport { z } from \"zod\";\nimport { startWorkspaceAppCreation } from \"../server/lib/app-creation-store.js\";\n\nexport default defineAction({\n description:\n \"Start creating a new workspace app from Dispatch when the request truly needs its own app. In local dev this returns a code-agent prompt; in production it creates a Builder branch when a Builder project is configured. The result must be a separate workspace app under apps/<app-id>, not a new route or file in apps/starter. If the request needs Mail, Calendar, Analytics, or another first-party app, use the existing hosted/connected app via links or A2A; do not clone, wrap, or nest those templates inside the new app unless the user explicitly asks for a customized copy.\",\n schema: z.object({\n prompt: z.string().min(1).describe(\"The user's app creation request\"),\n appId: z\n .string()\n .max(64)\n .refine((appId) => !getWorkspaceAppIdValidationError(appId), {\n message:\n \"Use a non-reserved app id with lowercase letters, numbers, and hyphens.\",\n })\n .optional()\n .nullable()\n .describe(\"Desired workspace app id/path\"),\n template: z\n .string()\n .optional()\n .nullable()\n .describe(\"Template to start from\"),\n description: z\n .string()\n .max(500)\n .optional()\n .nullable()\n .describe(\n \"Concise AI-generated description of the app based on the user's prompt. Dispatch saves this while the app is being created.\",\n ),\n secretIds: z\n .array(z.string())\n .max(100)\n .optional()\n .describe(\"Dispatch vault secret IDs to grant to the app\"),\n resourceIds: z\n .array(z.string())\n .max(100)\n .optional()\n .describe(\n \"Dispatch workspace resource IDs or knowledge packs to grant to the app\",\n ),\n }),\n run: async (args) => startWorkspaceAppCreation(args),\n});\n"]}
@@ -2,7 +2,7 @@ import { defineAction } from "@agent-native/core";
2
2
  import { z } from "zod";
3
3
  import { syncGrantsToApp } from "../server/lib/vault-store.js";
4
4
  export default defineAction({
5
- description: "Push all granted secrets to an app by calling its env-vars endpoint. Returns the list of synced credential keys.",
5
+ description: "Push vault secrets to an app by calling its env-vars endpoint. In all-apps mode this syncs every vault key; in manual mode it syncs active grants.",
6
6
  schema: z.object({
7
7
  appId: z
8
8
  .string()
@@ -1 +1 @@
1
- {"version":3,"file":"sync-vault-to-app.js","sourceRoot":"","sources":["../../src/actions/sync-vault-to-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,eAAe,YAAY,CAAC;IAC1B,WAAW,EACT,kHAAkH;IACpH,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,CAAC,2DAA2D,CAAC;KACzE,CAAC;IACF,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;CACjD,CAAC,CAAC","sourcesContent":["import { defineAction } from \"@agent-native/core\";\nimport { z } from \"zod\";\nimport { syncGrantsToApp } from \"../server/lib/vault-store.js\";\n\nexport default defineAction({\n description:\n \"Push all granted secrets to an app by calling its env-vars endpoint. Returns the list of synced credential keys.\",\n schema: z.object({\n appId: z\n .string()\n .describe(\"App ID to sync secrets to, e.g. mail, calendar, analytics\"),\n }),\n run: async (args) => syncGrantsToApp(args.appId),\n});\n"]}
1
+ {"version":3,"file":"sync-vault-to-app.js","sourceRoot":"","sources":["../../src/actions/sync-vault-to-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,eAAe,YAAY,CAAC;IAC1B,WAAW,EACT,oJAAoJ;IACtJ,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,CAAC,2DAA2D,CAAC;KACzE,CAAC;IACF,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;CACjD,CAAC,CAAC","sourcesContent":["import { defineAction } from \"@agent-native/core\";\nimport { z } from \"zod\";\nimport { syncGrantsToApp } from \"../server/lib/vault-store.js\";\n\nexport default defineAction({\n description:\n \"Push vault secrets to an app by calling its env-vars endpoint. In all-apps mode this syncs every vault key; in manual mode it syncs active grants.\",\n schema: z.object({\n appId: z\n .string()\n .describe(\"App ID to sync secrets to, e.g. mail, calendar, analytics\"),\n }),\n run: async (args) => syncGrantsToApp(args.appId),\n});\n"]}
@@ -0,0 +1,3 @@
1
+ declare const _default: any;
2
+ export default _default;
3
+ //# sourceMappingURL=update-workspace-app-metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-workspace-app-metadata.d.ts","sourceRoot":"","sources":["../../src/actions/update-workspace-app-metadata.ts"],"names":[],"mappings":";AAKA,wBA0BG"}
@@ -0,0 +1,30 @@
1
+ import { defineAction } from "@agent-native/core";
2
+ import { getWorkspaceAppIdValidationError } from "@agent-native/core/shared";
3
+ import { z } from "zod";
4
+ import { updateWorkspaceAppMetadata } from "../server/lib/app-creation-store.js";
5
+ export default defineAction({
6
+ description: "Update the human-editable display name and description Dispatch uses for a workspace app. These details are also used as connected-agent/A2A context.",
7
+ schema: z.object({
8
+ appId: z
9
+ .string()
10
+ .max(64)
11
+ .refine((appId) => !getWorkspaceAppIdValidationError(appId), {
12
+ message: "Use a non-reserved app id with lowercase letters, numbers, and hyphens.",
13
+ })
14
+ .describe("Workspace app id, matching the apps/<id> folder"),
15
+ name: z
16
+ .string()
17
+ .max(120)
18
+ .optional()
19
+ .nullable()
20
+ .describe("Human-readable app name"),
21
+ description: z
22
+ .string()
23
+ .max(500)
24
+ .optional()
25
+ .nullable()
26
+ .describe("Human-readable app description"),
27
+ }),
28
+ run: async (args) => updateWorkspaceAppMetadata(args),
29
+ });
30
+ //# sourceMappingURL=update-workspace-app-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-workspace-app-metadata.js","sourceRoot":"","sources":["../../src/actions/update-workspace-app-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AAEjF,eAAe,YAAY,CAAC;IAC1B,WAAW,EACT,uJAAuJ;IACzJ,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,CAAC,EAAE,CAAC;aACP,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,gCAAgC,CAAC,KAAK,CAAC,EAAE;YAC3D,OAAO,EACL,yEAAyE;SAC5E,CAAC;aACD,QAAQ,CAAC,iDAAiD,CAAC;QAC9D,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,EAAE;aACV,QAAQ,CAAC,yBAAyB,CAAC;QACtC,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,EAAE;aACV,QAAQ,CAAC,gCAAgC,CAAC;KAC9C,CAAC;IACF,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC;CACtD,CAAC,CAAC","sourcesContent":["import { defineAction } from \"@agent-native/core\";\nimport { getWorkspaceAppIdValidationError } from \"@agent-native/core/shared\";\nimport { z } from \"zod\";\nimport { updateWorkspaceAppMetadata } from \"../server/lib/app-creation-store.js\";\n\nexport default defineAction({\n description:\n \"Update the human-editable display name and description Dispatch uses for a workspace app. These details are also used as connected-agent/A2A context.\",\n schema: z.object({\n appId: z\n .string()\n .max(64)\n .refine((appId) => !getWorkspaceAppIdValidationError(appId), {\n message:\n \"Use a non-reserved app id with lowercase letters, numbers, and hyphens.\",\n })\n .describe(\"Workspace app id, matching the apps/<id> folder\"),\n name: z\n .string()\n .max(120)\n .optional()\n .nullable()\n .describe(\"Human-readable app name\"),\n description: z\n .string()\n .max(500)\n .optional()\n .nullable()\n .describe(\"Human-readable app description\"),\n }),\n run: async (args) => updateWorkspaceAppMetadata(args),\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"view-screen.d.ts","sourceRoot":"","sources":["../../src/actions/view-screen.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;;AAqBH,wBAiHG"}
1
+ {"version":3,"file":"view-screen.d.ts","sourceRoot":"","sources":["../../src/actions/view-screen.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;;AAsBH,wBAmHG"}