@agent-native/dispatch 0.14.9 → 0.14.11

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 (34) hide show
  1. package/dist/actions/list-workspace-apps.js +1 -1
  2. package/dist/actions/list-workspace-apps.js.map +1 -1
  3. package/dist/actions/upsert-destination.d.ts +12 -12
  4. package/dist/routes/pages/dreams.d.ts.map +1 -1
  5. package/dist/routes/pages/dreams.js +25 -2
  6. package/dist/routes/pages/dreams.js.map +1 -1
  7. package/dist/server/lib/vault-boot-resync.d.ts +23 -0
  8. package/dist/server/lib/vault-boot-resync.d.ts.map +1 -0
  9. package/dist/server/lib/vault-boot-resync.js +44 -0
  10. package/dist/server/lib/vault-boot-resync.js.map +1 -0
  11. package/dist/server/lib/vault-store.d.ts +22 -0
  12. package/dist/server/lib/vault-store.d.ts.map +1 -1
  13. package/dist/server/lib/vault-store.js +49 -0
  14. package/dist/server/lib/vault-store.js.map +1 -1
  15. package/dist/server/plugins/agent-chat.js +2 -1
  16. package/dist/server/plugins/agent-chat.js.map +1 -1
  17. package/dist/server/plugins/db.d.ts +8 -1
  18. package/dist/server/plugins/db.d.ts.map +1 -1
  19. package/dist/server/plugins/db.js +13 -1
  20. package/dist/server/plugins/db.js.map +1 -1
  21. package/dist/server/plugins/integrations.d.ts.map +1 -1
  22. package/dist/server/plugins/integrations.js +2 -1
  23. package/dist/server/plugins/integrations.js.map +1 -1
  24. package/package.json +2 -2
  25. package/src/actions/index.spec.ts +12 -0
  26. package/src/actions/list-workspace-apps.ts +1 -1
  27. package/src/routes/pages/dreams.tsx +24 -2
  28. package/src/server/lib/vault-boot-resync.spec.ts +68 -0
  29. package/src/server/lib/vault-boot-resync.ts +50 -0
  30. package/src/server/lib/vault-store.spec.ts +132 -0
  31. package/src/server/lib/vault-store.ts +58 -0
  32. package/src/server/plugins/agent-chat.ts +2 -1
  33. package/src/server/plugins/db.ts +14 -1
  34. package/src/server/plugins/integrations.ts +2 -1
@@ -12,7 +12,7 @@ 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, 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.",
15
+ description: "List apps mounted inside this workspace deployment, including paths, absolute URLs, audience (internal/public), page route access overrides, and agent-card/A2A metadata for ready mounted apps by default. This is not the hosted/connected A2A agent registry; use list-connected-agents to discover agents such as Analytics or Content. UI polling callers can pass includeAgentCards=false to skip network probes.",
16
16
  schema: z.object({
17
17
  includeAgentCards: httpBoolean
18
18
  .default(true)
@@ -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;AAExB,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\";\n\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"]}
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;AAExB,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,yZAAyZ;IAC3Z,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\";\n\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 mounted inside this workspace deployment, including paths, absolute URLs, audience (internal/public), page route access overrides, and agent-card/A2A metadata for ready mounted apps by default. This is not the hosted/connected A2A agent registry; use list-connected-agents to discover agents such as Analytics or Content. 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"]}
@@ -6,18 +6,6 @@ declare const _default: import("@agent-native/core").ActionDefinition<{
6
6
  threadRef?: string | undefined;
7
7
  notes?: string | undefined;
8
8
  }, {
9
- id: string;
10
- ownerEmail: string;
11
- orgId: string | null;
12
- name: string;
13
- platform: string;
14
- destination: string;
15
- threadRef: string | null;
16
- notes: string | null;
17
- createdBy: string;
18
- createdAt: number;
19
- updatedAt: number;
20
- } | {
21
9
  id: string;
22
10
  ownerEmail: string;
23
11
  orgId: string | null;
@@ -34,6 +22,18 @@ declare const _default: import("@agent-native/core").ActionDefinition<{
34
22
  reviewedAt: number | null;
35
23
  createdAt: number;
36
24
  updatedAt: number;
25
+ } | {
26
+ id: string;
27
+ ownerEmail: string;
28
+ orgId: string | null;
29
+ name: string;
30
+ platform: string;
31
+ destination: string;
32
+ threadRef: string | null;
33
+ notes: string | null;
34
+ createdBy: string;
35
+ createdAt: number;
36
+ updatedAt: number;
37
37
  }>;
38
38
  export default _default;
39
39
  //# sourceMappingURL=upsert-destination.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dreams.d.ts","sourceRoot":"","sources":["../../../src/routes/pages/dreams.tsx"],"names":[],"mappings":"AAqEA,wBAAgB,IAAI;;IAEnB;AAklCD,MAAM,CAAC,OAAO,UAAU,WAAW,oDAmpBlC"}
1
+ {"version":3,"file":"dreams.d.ts","sourceRoot":"","sources":["../../../src/routes/pages/dreams.tsx"],"names":[],"mappings":"AAqEA,wBAAgB,IAAI;;IAEnB;AAklCD,MAAM,CAAC,OAAO,UAAU,WAAW,oDAyqBlC"}
@@ -272,7 +272,16 @@ export default function DreamsRoute() {
272
272
  setSelectedDreamId(urlDreamId);
273
273
  return;
274
274
  }
275
- if (selectedDreamId && dreams.some((dream) => dream.id === selectedDreamId))
275
+ if (selectedDreamId &&
276
+ dreams.some((dream) => dream.id === selectedDreamId)) {
277
+ return;
278
+ }
279
+ if (dreamsQuery.isLoading)
280
+ return;
281
+ // If the query failed, normalizeArray returns [] but the list is not
282
+ // confirmed empty — preserve the current selection so dreamDetailQuery
283
+ // can still load the detail from the URL param.
284
+ if (dreamsQuery.error)
276
285
  return;
277
286
  const nextId = dreams[0]?.id ?? null;
278
287
  setSelectedDreamId(nextId);
@@ -281,7 +290,21 @@ export default function DreamsRoute() {
281
290
  next.set("dreamId", nextId);
282
291
  setSearchParams(next, { replace: true });
283
292
  }
284
- }, [dreams, searchParams, selectedDreamId, setSearchParams]);
293
+ else if (!nextId && urlDreamId) {
294
+ // List settled successfully with no rows — remove the stale URL param
295
+ // so dreamDetailQuery does not fire for an ID that cannot be found.
296
+ const next = new URLSearchParams(searchParams);
297
+ next.delete("dreamId");
298
+ setSearchParams(next, { replace: true });
299
+ }
300
+ }, [
301
+ dreams,
302
+ dreamsQuery.isLoading,
303
+ dreamsQuery.error,
304
+ searchParams,
305
+ selectedDreamId,
306
+ setSearchParams,
307
+ ]);
285
308
  function selectDream(dreamId) {
286
309
  setSelectedDreamId(dreamId);
287
310
  const next = new URLSearchParams(searchParams);