@agent-native/core 0.59.1 → 0.60.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 (188) hide show
  1. package/dist/a2a/index.d.ts +2 -0
  2. package/dist/a2a/index.d.ts.map +1 -1
  3. package/dist/a2a/index.js +1 -0
  4. package/dist/a2a/index.js.map +1 -1
  5. package/dist/a2a/invoke.d.ts +63 -0
  6. package/dist/a2a/invoke.d.ts.map +1 -0
  7. package/dist/a2a/invoke.js +157 -0
  8. package/dist/a2a/invoke.js.map +1 -0
  9. package/dist/agent/run-store.d.ts +15 -0
  10. package/dist/agent/run-store.d.ts.map +1 -1
  11. package/dist/agent/run-store.js +28 -0
  12. package/dist/agent/run-store.js.map +1 -1
  13. package/dist/chat-threads/store.d.ts +21 -0
  14. package/dist/chat-threads/store.d.ts.map +1 -1
  15. package/dist/chat-threads/store.js +128 -0
  16. package/dist/chat-threads/store.js.map +1 -1
  17. package/dist/cli/agent.d.ts +23 -0
  18. package/dist/cli/agent.d.ts.map +1 -0
  19. package/dist/cli/agent.js +300 -0
  20. package/dist/cli/agent.js.map +1 -0
  21. package/dist/cli/agents.d.ts +14 -0
  22. package/dist/cli/agents.d.ts.map +1 -0
  23. package/dist/cli/agents.js +95 -0
  24. package/dist/cli/agents.js.map +1 -0
  25. package/dist/cli/code-agent-executor.d.ts.map +1 -1
  26. package/dist/cli/code-agent-executor.js +264 -2
  27. package/dist/cli/code-agent-executor.js.map +1 -1
  28. package/dist/cli/create.d.ts +3 -2
  29. package/dist/cli/create.d.ts.map +1 -1
  30. package/dist/cli/create.js +154 -83
  31. package/dist/cli/create.js.map +1 -1
  32. package/dist/cli/index.js +50 -2
  33. package/dist/cli/index.js.map +1 -1
  34. package/dist/cli/invoke.d.ts +26 -0
  35. package/dist/cli/invoke.d.ts.map +1 -0
  36. package/dist/cli/invoke.js +227 -0
  37. package/dist/cli/invoke.js.map +1 -0
  38. package/dist/cli/templates-meta.d.ts +1 -1
  39. package/dist/cli/templates-meta.d.ts.map +1 -1
  40. package/dist/cli/templates-meta.js +9 -8
  41. package/dist/cli/templates-meta.js.map +1 -1
  42. package/dist/cli/workspacify.d.ts +1 -1
  43. package/dist/cli/workspacify.d.ts.map +1 -1
  44. package/dist/cli/workspacify.js +6 -6
  45. package/dist/cli/workspacify.js.map +1 -1
  46. package/dist/client/NewWorkspaceAppFlow.d.ts.map +1 -1
  47. package/dist/client/NewWorkspaceAppFlow.js +5 -4
  48. package/dist/client/NewWorkspaceAppFlow.js.map +1 -1
  49. package/dist/client/blocks/library/diagram.d.ts.map +1 -1
  50. package/dist/client/blocks/library/diagram.js +23 -17
  51. package/dist/client/blocks/library/diagram.js.map +1 -1
  52. package/dist/client/blocks/types.d.ts +2 -0
  53. package/dist/client/blocks/types.d.ts.map +1 -1
  54. package/dist/client/blocks/types.js.map +1 -1
  55. package/dist/client/chat/index.d.ts +1 -1
  56. package/dist/client/chat/index.d.ts.map +1 -1
  57. package/dist/client/chat/index.js.map +1 -1
  58. package/dist/client/index.d.ts +1 -1
  59. package/dist/client/index.d.ts.map +1 -1
  60. package/dist/client/index.js.map +1 -1
  61. package/dist/client/use-chat-threads.d.ts +13 -0
  62. package/dist/client/use-chat-threads.d.ts.map +1 -1
  63. package/dist/client/use-chat-threads.js +41 -0
  64. package/dist/client/use-chat-threads.js.map +1 -1
  65. package/dist/integrations/plugin.d.ts.map +1 -1
  66. package/dist/integrations/plugin.js +2 -2
  67. package/dist/integrations/plugin.js.map +1 -1
  68. package/dist/onboarding/default-steps.d.ts.map +1 -1
  69. package/dist/onboarding/default-steps.js +102 -0
  70. package/dist/onboarding/default-steps.js.map +1 -1
  71. package/dist/provider-api/actions/github-repo-files.d.ts +84 -0
  72. package/dist/provider-api/actions/github-repo-files.d.ts.map +1 -0
  73. package/dist/provider-api/actions/github-repo-files.js +213 -0
  74. package/dist/provider-api/actions/github-repo-files.js.map +1 -0
  75. package/dist/provider-api/github-repo.d.ts +11 -0
  76. package/dist/provider-api/github-repo.d.ts.map +1 -0
  77. package/dist/provider-api/github-repo.js +553 -0
  78. package/dist/provider-api/github-repo.js.map +1 -0
  79. package/dist/provider-api/index.d.ts +184 -11
  80. package/dist/provider-api/index.d.ts.map +1 -1
  81. package/dist/provider-api/index.js +519 -0
  82. package/dist/provider-api/index.js.map +1 -1
  83. package/dist/scripts/docs/search.d.ts.map +1 -1
  84. package/dist/scripts/docs/search.js +38 -13
  85. package/dist/scripts/docs/search.js.map +1 -1
  86. package/dist/secrets/register-framework-secrets.d.ts.map +1 -1
  87. package/dist/secrets/register-framework-secrets.js +11 -0
  88. package/dist/secrets/register-framework-secrets.js.map +1 -1
  89. package/dist/server/agent-chat-plugin.d.ts +32 -0
  90. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  91. package/dist/server/agent-chat-plugin.js +297 -2
  92. package/dist/server/agent-chat-plugin.js.map +1 -1
  93. package/dist/server/auth-marketing.d.ts.map +1 -1
  94. package/dist/server/auth-marketing.js +17 -7
  95. package/dist/server/auth-marketing.js.map +1 -1
  96. package/dist/server/auth.d.ts.map +1 -1
  97. package/dist/server/auth.js +6 -0
  98. package/dist/server/auth.js.map +1 -1
  99. package/dist/server/core-routes-plugin.d.ts.map +1 -1
  100. package/dist/server/core-routes-plugin.js +18 -98
  101. package/dist/server/core-routes-plugin.js.map +1 -1
  102. package/dist/styles/blocks.css +30 -8
  103. package/dist/styles/rich-markdown-editor.css +10 -4
  104. package/dist/templates/{starter-shell-sync.spec.ts → chat-shell-sync.spec.ts} +21 -21
  105. package/dist/templates/default/.agents/skills/actions/SKILL.md +5 -5
  106. package/dist/templates/default/.agents/skills/agent-native-docs/SKILL.md +63 -0
  107. package/dist/templates/default/AGENTS.md +22 -1
  108. package/dist/templates/default/actions/hello.ts +1 -1
  109. package/dist/templates/default/actions/navigate.ts +1 -1
  110. package/dist/templates/default/actions/view-screen.ts +1 -1
  111. package/dist/templates/headless/.agents/skills/agent-native-docs/SKILL.md +63 -0
  112. package/dist/templates/headless/.env.example +4 -0
  113. package/dist/templates/headless/.prettierrc +5 -0
  114. package/dist/templates/headless/AGENTS.md +58 -0
  115. package/dist/templates/headless/DEVELOPING.md +22 -0
  116. package/dist/templates/headless/_gitignore +36 -0
  117. package/dist/templates/headless/actions/hello.ts +14 -0
  118. package/dist/templates/headless/actions/run.ts +3 -0
  119. package/dist/templates/headless/package.json +22 -0
  120. package/dist/templates/headless/tsconfig.json +7 -0
  121. package/dist/templates/ui-primitives-sync.spec.ts +2 -2
  122. package/dist/templates/workspace-core/.agents/skills/actions/SKILL.md +5 -5
  123. package/dist/templates/workspace-core/.agents/skills/agent-native-docs/SKILL.md +63 -0
  124. package/dist/templates/workspace-core/.agents/skills/composable-mini-apps/SKILL.md +93 -0
  125. package/dist/templates/workspace-core/.agents/skills/secrets/SKILL.md +1 -1
  126. package/dist/templates/workspace-core/AGENTS.md +20 -3
  127. package/dist/templates/workspace-core/src/server/index.ts +1 -1
  128. package/dist/templates/workspace-root/AGENTS.md +25 -5
  129. package/dist/templates/workspace-root/README.md +7 -7
  130. package/dist/triggers/dispatcher.d.ts +2 -3
  131. package/dist/triggers/dispatcher.d.ts.map +1 -1
  132. package/dist/triggers/dispatcher.js +2 -3
  133. package/dist/triggers/dispatcher.js.map +1 -1
  134. package/dist/triggers/routes.d.ts +38 -0
  135. package/dist/triggers/routes.d.ts.map +1 -0
  136. package/dist/triggers/routes.js +202 -0
  137. package/dist/triggers/routes.js.map +1 -0
  138. package/docs/AGENTS.md +57 -0
  139. package/docs/SKILL.md +40 -0
  140. package/docs/content/a2a-protocol.md +1 -1
  141. package/docs/content/actions.md +48 -8
  142. package/docs/content/agent-surfaces.md +76 -14
  143. package/docs/content/cli-adapters.md +1 -1
  144. package/docs/content/cloneable-saas.md +5 -4
  145. package/docs/content/code-agents-ui.md +1 -1
  146. package/docs/content/components.md +1 -1
  147. package/docs/content/context-awareness.md +1 -1
  148. package/docs/content/creating-templates.md +9 -7
  149. package/docs/content/drop-in-agent.md +1 -1
  150. package/docs/content/faq.md +6 -4
  151. package/docs/content/getting-started.md +63 -73
  152. package/docs/content/key-concepts.md +24 -24
  153. package/docs/content/native-chat-ui.md +4 -4
  154. package/docs/content/pure-agent-apps.md +34 -10
  155. package/docs/content/security.md +1 -1
  156. package/docs/content/server.md +1 -1
  157. package/docs/content/template-chat.md +85 -0
  158. package/docs/content/template-dispatch.md +1 -1
  159. package/docs/content/tracking.md +1 -1
  160. package/docs/content/what-is-agent-native.md +7 -6
  161. package/package.json +10 -1
  162. package/src/templates/{starter-shell-sync.spec.ts → chat-shell-sync.spec.ts} +21 -21
  163. package/src/templates/default/.agents/skills/actions/SKILL.md +5 -5
  164. package/src/templates/default/.agents/skills/agent-native-docs/SKILL.md +63 -0
  165. package/src/templates/default/AGENTS.md +22 -1
  166. package/src/templates/default/actions/hello.ts +1 -1
  167. package/src/templates/default/actions/navigate.ts +1 -1
  168. package/src/templates/default/actions/view-screen.ts +1 -1
  169. package/src/templates/headless/.agents/skills/agent-native-docs/SKILL.md +63 -0
  170. package/src/templates/headless/.env.example +4 -0
  171. package/src/templates/headless/.prettierrc +5 -0
  172. package/src/templates/headless/AGENTS.md +58 -0
  173. package/src/templates/headless/DEVELOPING.md +22 -0
  174. package/src/templates/headless/_gitignore +36 -0
  175. package/src/templates/headless/actions/hello.ts +14 -0
  176. package/src/templates/headless/actions/run.ts +3 -0
  177. package/src/templates/headless/package.json +22 -0
  178. package/src/templates/headless/tsconfig.json +7 -0
  179. package/src/templates/ui-primitives-sync.spec.ts +2 -2
  180. package/src/templates/workspace-core/.agents/skills/actions/SKILL.md +5 -5
  181. package/src/templates/workspace-core/.agents/skills/agent-native-docs/SKILL.md +63 -0
  182. package/src/templates/workspace-core/.agents/skills/composable-mini-apps/SKILL.md +93 -0
  183. package/src/templates/workspace-core/.agents/skills/secrets/SKILL.md +1 -1
  184. package/src/templates/workspace-core/AGENTS.md +20 -3
  185. package/src/templates/workspace-core/src/server/index.ts +1 -1
  186. package/src/templates/workspace-root/AGENTS.md +25 -5
  187. package/src/templates/workspace-root/README.md +7 -7
  188. package/docs/content/template-starter.md +0 -78
@@ -1 +1 @@
1
- {"version":3,"file":"core-routes-plugin.d.ts","sourceRoot":"","sources":["../../src/server/core-routes-plugin.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAuBlC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA+CvD,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AA4DzD;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AACvD,eAAO,MAAM,sBAAsB,0BAAqC,CAAC;AACzE,eAAO,MAAM,6BAA6B,+BAA0C,CAAC;AAErF,wBAAgB,yBAAyB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAQrE;AAmBD,eAAO,MAAM,kBAAkB,QAAwC,CAAC;AA0HxE,KAAK,6BAA6B,GAAG,CACnC,KAAK,EAAE,OAAO,KACX,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAE5C,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAsB,oCAAoC,CACxD,KAAK,EAAE,OAAO,EACd,OAAO,GAAE;IACP,cAAc,CAAC,EAAE,6BAA6B,CAAC;IAC/C,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CACjE,EACN,IAAI,CAAC,EAAE,SAAS,GAAG,UAAU,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAsD9B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,MAAM,GAAG,IAAI,CASf;AAUD,KAAK,cAAc,GAAG,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE9D,MAAM,WAAW,uBAAuB;IACtC,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oDAAoD;IACpD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2DAA2D;IAC3D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,uDAAuD;IACvD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,sEAAsE;IACtE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,sEAAsE;IACtE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qEAAqE;IACrE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oDAAoD;IACpD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;wCACoC;IACpC,eAAe,CAAC,EAAE,OAAO,iBAAiB,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IAChF,qEAAqE;IACrE,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB;;;;OAIG;IACH,cAAc,CAAC,EAAE,6BAA6B,CAAC;CAChD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,GAAE,uBAA4B,GACpC,cAAc,CA0iFhB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,EAAE,cAAyC,CAAC"}
1
+ {"version":3,"file":"core-routes-plugin.d.ts","sourceRoot":"","sources":["../../src/server/core-routes-plugin.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAuBlC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA+CvD,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AA6DzD;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AACvD,eAAO,MAAM,sBAAsB,0BAAqC,CAAC;AACzE,eAAO,MAAM,6BAA6B,+BAA0C,CAAC;AAErF,wBAAgB,yBAAyB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAQrE;AAmBD,eAAO,MAAM,kBAAkB,QAAwC,CAAC;AA0HxE,KAAK,6BAA6B,GAAG,CACnC,KAAK,EAAE,OAAO,KACX,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAE5C,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAsB,oCAAoC,CACxD,KAAK,EAAE,OAAO,EACd,OAAO,GAAE;IACP,cAAc,CAAC,EAAE,6BAA6B,CAAC;IAC/C,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CACjE,EACN,IAAI,CAAC,EAAE,SAAS,GAAG,UAAU,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAsD9B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,MAAM,GAAG,IAAI,CASf;AAUD,KAAK,cAAc,GAAG,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE9D,MAAM,WAAW,uBAAuB;IACtC,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oDAAoD;IACpD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2DAA2D;IAC3D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,uDAAuD;IACvD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,sEAAsE;IACtE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,sEAAsE;IACtE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qEAAqE;IACrE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oDAAoD;IACpD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;wCACoC;IACpC,eAAe,CAAC,EAAE,OAAO,iBAAiB,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IAChF,qEAAqE;IACrE,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB;;;;OAIG;IACH,cAAc,CAAC,EAAE,6BAA6B,CAAC;CAChD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,GAAE,uBAA4B,GACpC,cAAc,CAy8EhB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,EAAE,cAAyC,CAAC"}
@@ -34,6 +34,7 @@ import { validateTrackPayload } from "../tracking/route.js";
34
34
  import { registerBuiltinNotificationChannels } from "../notifications/channels.js";
35
35
  import { createNotificationsHandler } from "../notifications/routes.js";
36
36
  import { createProgressHandler } from "../progress/routes.js";
37
+ import { createAutomationsHandler } from "../triggers/routes.js";
37
38
  import { createGoogleRealtimeSessionHandler } from "./google-realtime-session.js";
38
39
  import { createTranscribeVoiceHandler } from "./transcribe-voice.js";
39
40
  import { runWithRequestContext } from "./request-context.js";
@@ -445,6 +446,21 @@ export function createCoreRoutesPlugin(options = {}) {
445
446
  // See `csrf.ts` for the threat model and allowlist.
446
447
  const { createCsrfMiddleware } = await import("./csrf.js");
447
448
  getH3App(nitroApp).use(createCsrfMiddleware(P));
449
+ // Agent discovery primitive — shared by headless CLI/A2A surfaces and
450
+ // UI shells that need to show connected peer apps without depending on
451
+ // the chat route namespace.
452
+ getH3App(nitroApp).use(`${P}/agents`, defineEventHandler(async (event) => {
453
+ const method = getMethod(event);
454
+ if (method !== "GET") {
455
+ setResponseStatus(event, 405);
456
+ return { error: "Method not allowed" };
457
+ }
458
+ const query = getRequestURL(event).searchParams;
459
+ const selfAppId = query.get("selfAppId") ?? undefined;
460
+ const { discoverAgents } = await import("./agent-discovery.js");
461
+ const agents = await discoverAgents(selfAppId);
462
+ return { agents };
463
+ }));
448
464
  // Demo-mode status — read by the client fetch interceptor and the
449
465
  // Demo mode settings toggle. `forced` reflects the DEMO_MODE env (a
450
466
  // hosted demo deployment); `enabled` ORs that with the per-user
@@ -1982,105 +1998,9 @@ export function createCoreRoutesPlugin(options = {}) {
1982
1998
  getH3App(nitroApp).use(`${P}/runs`, createProgressHandler());
1983
1999
  // ─── Automations API ──────────────────────────────────────────────
1984
2000
  // GET /_agent-native/automations — list all automations (parsed triggers)
2001
+ // PATCH /_agent-native/automations — enable/disable a jobs/*.md automation
1985
2002
  // POST /_agent-native/automations/fire-test — emit test.event.fired
1986
- getH3App(nitroApp).use(`${P}/automations`, defineEventHandler(async (event) => {
1987
- const method = getMethod(event);
1988
- const pathname = (event.path || event.url?.pathname || "")
1989
- .split("?")[0]
1990
- .replace(/^\/+/, "")
1991
- .replace(/\/+$/, "");
1992
- // Auth check applies to every method. Without this, any anonymous
1993
- // caller could `POST /fire-test` to emit unowned events that fan
1994
- // out across every tenant's matching trigger (the dispatcher
1995
- // short-circuits its owner check when `eventMeta.owner` is
1996
- // undefined). See audit 12 / fire-test finding.
1997
- const session = await getSession(event).catch(() => null);
1998
- if (!session?.email) {
1999
- setResponseStatus(event, 401);
2000
- return { error: "Unauthenticated" };
2001
- }
2002
- if ((pathname === "fire-test" || pathname.endsWith("/fire-test")) &&
2003
- method === "POST") {
2004
- try {
2005
- const { emit } = await import("../event-bus/index.js");
2006
- const body = (await readBody(event).catch(() => ({})));
2007
- // Scope the test event to the current user so only their
2008
- // automations fire, not those owned by other tenants.
2009
- emit("test.event.fired", { data: body.data ?? {} }, {
2010
- owner: session.email,
2011
- });
2012
- return { ok: true };
2013
- }
2014
- catch (err) {
2015
- setResponseStatus(event, 500);
2016
- return { error: err?.message ?? "Failed to emit test event" };
2017
- }
2018
- }
2019
- if (method !== "GET") {
2020
- setResponseStatus(event, 405);
2021
- return { error: "Method not allowed" };
2022
- }
2023
- try {
2024
- const owner = session.email;
2025
- const { resourceListAllOwners, SHARED_OWNER } = await import("../resources/store.js");
2026
- const allResources = await resourceListAllOwners("jobs/");
2027
- const resources = allResources.filter((r) => r.owner === owner || r.owner === SHARED_OWNER);
2028
- const FRONT_RE = /^---\n([\s\S]*?)\n---\n?([\s\S]*)$/;
2029
- const automations = resources
2030
- .filter((r) => r.path.endsWith(".md") && !r.path.endsWith(".keep"))
2031
- .map((r) => {
2032
- const match = r.content.match(FRONT_RE);
2033
- if (!match)
2034
- return {
2035
- id: r.id,
2036
- name: r.path.replace(/^jobs\//, "").replace(/\.md$/, ""),
2037
- path: r.path,
2038
- owner: r.owner,
2039
- triggerType: "schedule",
2040
- enabled: false,
2041
- mode: "agentic",
2042
- body: r.content,
2043
- };
2044
- const yaml = match[1];
2045
- const body = match[2].trim();
2046
- const meta = {};
2047
- for (const line of yaml.split("\n")) {
2048
- const ci = line.indexOf(":");
2049
- if (ci === -1)
2050
- continue;
2051
- const k = line.slice(0, ci).trim();
2052
- let v = line.slice(ci + 1).trim();
2053
- if ((v.startsWith('"') && v.endsWith('"')) ||
2054
- (v.startsWith("'") && v.endsWith("'")))
2055
- v = v.slice(1, -1);
2056
- meta[k] = v;
2057
- }
2058
- return {
2059
- id: r.id,
2060
- name: r.path.replace(/^jobs\//, "").replace(/\.md$/, ""),
2061
- path: r.path,
2062
- owner: r.owner,
2063
- triggerType: meta.triggerType || "schedule",
2064
- event: meta.event,
2065
- schedule: meta.schedule,
2066
- condition: meta.condition,
2067
- mode: meta.mode || "agentic",
2068
- domain: meta.domain,
2069
- enabled: meta.enabled !== "false",
2070
- lastStatus: meta.lastStatus,
2071
- lastRun: meta.lastRun,
2072
- lastError: meta.lastError,
2073
- createdBy: meta.createdBy,
2074
- body,
2075
- };
2076
- });
2077
- return automations;
2078
- }
2079
- catch (err) {
2080
- setResponseStatus(event, 500);
2081
- return { error: err?.message ?? "Failed to list automations" };
2082
- }
2083
- }));
2003
+ getH3App(nitroApp).use(`${P}/automations`, createAutomationsHandler());
2084
2004
  // ─── Application State CRUD ──────────────────────────────────────
2085
2005
  // Auto-mounted so templates don't need boilerplate route files.
2086
2006
  // ─── User-scoped settings store ────────────────────────────────────